diff --git a/CMakeLists.txt b/CMakeLists.txt
index bbd9598780d1b366b78b77a38c6662d76ecfb07a..3cc935939f4d2077a7d75ce1fc94ed2eef0fe6b5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1089,6 +1089,10 @@ elseif(APPLE)
 			if(NOT 3D_CONNEXION_CLIENT_LIBRARY)
 				set(WITH_INPUT_NDOF OFF)
 			endif()
+
+			if(WITH_INPUT_NDOF)
+				set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -weak_framework 3DconnexionClient")
+			endif()
 		endif()
 
 	else()
diff --git a/GNUmakefile b/GNUmakefile
index b6741d7e5f0654a381f2bd074ef97611d92e6e5b..8446541cfae3db1af0f13f0e213dd7560ca197bc 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -35,17 +35,33 @@ OS_NCASE:=$(shell uname -s | tr '[A-Z]' '[a-z]')
 # Source and Build DIR's
 BLENDER_DIR:=$(shell pwd -P)
 BUILD_DIR:=$(shell dirname $(BLENDER_DIR))/build/$(OS_NCASE)
+BUILD_TYPE:=Release
+BUILD_CMAKE_ARGS:=""
 
 
+# -----------------------------------------------------------------------------
+# additional targets for the build configuration
+
 # support 'make debug'
 ifneq "$(findstring debug, $(MAKECMDGOALS))" ""
 	BUILD_DIR:=$(BUILD_DIR)_debug
 	BUILD_TYPE:=Debug
-else
-	BUILD_TYPE:=Release
+endif
+ifneq "$(findstring lite, $(MAKECMDGOALS))" ""
+	BUILD_DIR:=$(BUILD_DIR)_lite
+	BUILD_CMAKE_ARGS:=$(BUILD_CMAKE_ARGS) -C$(BLENDER_DIR)/build_files/cmake/config/blender_lite.cmake
+endif
+ifneq "$(findstring headless, $(MAKECMDGOALS))" ""
+	BUILD_DIR:=$(BUILD_DIR)_bpy
+	BUILD_CMAKE_ARGS:=$(BUILD_CMAKE_ARGS) -C$(BLENDER_DIR)/build_files/cmake/config/blender_headless.cmake
+endif
+ifneq "$(findstring bpy, $(MAKECMDGOALS))" ""
+	BUILD_DIR:=$(BUILD_DIR)_bpy
+	BUILD_CMAKE_ARGS:=$(BUILD_CMAKE_ARGS) -C$(BLENDER_DIR)/build_files/cmake/config/bpy_module.cmake
 endif
 
 
+# -----------------------------------------------------------------------------
 # Get the number of cores for threaded build
 NPROCS:=1
 ifeq ($(OS), Linux)
@@ -61,14 +77,14 @@ ifeq ($(OS), NetBSD)
 	NPROCS:=$(shell sysctl -a | grep "hw.ncpu " | cut -d" " -f3 )
 endif
 
-
+# -----------------------------------------------------------------------------
 # Build Blender
 all:
 	@echo
 	@echo Configuring Blender ...
 
 	if test ! -f $(BUILD_DIR)/CMakeCache.txt ; then \
-		cmake -H$(BLENDER_DIR) -B$(BUILD_DIR) -DCMAKE_BUILD_TYPE:STRING=$(BUILD_TYPE) ; \
+		cmake $(BUILD_CMAKE_ARGS) -H$(BLENDER_DIR) -B$(BUILD_DIR) -DCMAKE_BUILD_TYPE:STRING=$(BUILD_TYPE); \
 	fi
 
 	@echo
@@ -80,9 +96,40 @@ all:
 	@echo
 
 debug: all
-	# pass
-
-# package types
+lite: all
+headless: all
+bpy: all
+
+# -----------------------------------------------------------------------------
+# Helo for build targets
+help:
+	@echo ""
+	@echo "Convenience targets provided for building blender, (multiple at once can be used)"
+	@echo "  * debug     - build a debug binary"
+	@echo "  * lite      - disable non essential features for a smaller binary and faster build"
+	@echo "  * headless  - build without an interface (renderfarm or server automation)"
+	@echo "  * bpy       - build as a python module which can be loaded from python directly"
+	@echo ""
+	@echo "Project Files for IDE's"
+	@echo "  * project_qtcreator - QtCreator Project Files"
+	@echo "  * project_netbeans  - NetBeans Project Files"
+	@echo "  * project_eclipse   - Eclipse CDT4 Project Files"
+	@echo ""
+	@echo "Package Targets"
+	@echo "  * package_debian  - build a debian package"
+	@echo "  * package_pacman  - build an arch linux pacmanpackage"
+	@echo "  * package_archive - build an archive package"
+	@echo ""
+	@echo "Testing Targets (not assosiated with building blender)"
+	@echo "  * test            - run ctest, currently tests import/export, operator execution and that python modules load"
+	@echo "  * test_cmake      - runs our own cmake file checker which detects errors in the cmake file list definitions"
+	@echo "  * test_pep8       - checks all python script are pep8 which are tagged to use the stricter formatting"
+	@echo "  * test_deprecated - checks for deprecation tags in our code which may need to be removed"
+	@echo ""
+
+# -----------------------------------------------------------------------------
+# Packages
+#
 package_debian:
 	cd build_files/package_spec ; DEB_BUILD_OPTIONS="parallel=$(NPROCS)" sh ./build_debian.sh
 
@@ -93,7 +140,10 @@ package_archive:
 	make -C $(BUILD_DIR) -s package_archive
 	@echo archive in "$(BUILD_DIR)/release"
 
-# forward build targets
+
+# -----------------------------------------------------------------------------
+# Tests
+#
 test:
 	cd $(BUILD_DIR) ; ctest . --output-on-failure
 
@@ -111,6 +161,21 @@ test_cmake:
 test_deprecated:
 	python3 source/tests/check_deprecated.py
 
+
+# -----------------------------------------------------------------------------
+# Project Files
+#
+
+project_qtcreator:
+	python3 build_files/cmake/cmake_qtcreator_project.py $(BUILD_DIR)
+
+project_netbeans:
+	python3 build_files/cmake/cmake_netbeans_project.py $(BUILD_DIR)
+
+project_eclipse:
+	cmake -G"Eclipse CDT4 - Unix Makefiles" -H$(BLENDER_DIR) -B$(BUILD_DIR)
+
+
 clean:
 	$(MAKE) -C $(BUILD_DIR) clean
 
diff --git a/SConstruct b/SConstruct
index 4f920190276714e11a1fb021489d1cb06da5ce58..81c12c7c318091e2ee6ce19ae4bb84dcfb1d502c 100644
--- a/SConstruct
+++ b/SConstruct
@@ -253,14 +253,23 @@ if 'blenderlite' in B.targets:
         if k not in B.arguments:
             env[k] = v
 
-# detect presence of 3D_CONNEXION_CLIENT_LIBRARY for OSX
+# Extended OSX_SDK and 3D_CONNEXION_CLIENT_LIBRARY detection for OSX
 if env['OURPLATFORM']=='darwin':
-    envi = Environment()
-    conf = Configure(envi)
-    if not conf.CheckCHeader('ConnexionClientAPI.h'): # CheckCXXHeader if it is c++ !
+    print B.bc.OKGREEN + "Detected Xcode version: -- " + B.bc.ENDC + env['XCODE_CUR_VER'][:9] + " --"
+    print "Available " + env['MACOSX_SDK_CHECK']
+    if not 'Mac OS X 10.5' in env['MACOSX_SDK_CHECK']:
+        print  B.bc.OKGREEN + "MacOSX10.5.sdk not available:" + B.bc.ENDC + " using MacOSX10.6.sdk"
+    else:
+        print B.bc.OKGREEN + "Found recommended sdk :" + B.bc.ENDC + " using MacOSX10.5.sdk"
+
+    # for now, Mac builders must download and install the driver framework from 3Dconnexion
+    # necessary header file lives here when installed:
+    # /Library/Frameworks/3DconnexionClient.framework/Versions/Current/Headers/ConnexionClientAPI.h
+    if env['WITH_BF_3DMOUSE'] == 1 and not os.path.exists('/Library/Frameworks/3DconnexionClient.framework'):
         print "3D_CONNEXION_CLIENT_LIBRARY not found, disabling WITH_BF_3DMOUSE" # avoid build errors !
         env['WITH_BF_3DMOUSE'] = 0
-    envi = conf.Finish()
+    else:
+        env.Append(LINKFLAGS=['-weak_framework','3DconnexionClient'])
 
 
 if env['WITH_BF_OPENMP'] == 1:
diff --git a/build_files/buildbot/master.cfg b/build_files/buildbot/master.cfg
index 1e70ec5e13e9afd5922d3c739a4192ab1531767d..5aa5a43abf75785768ea9330572f083f727cfe09 100644
--- a/build_files/buildbot/master.cfg
+++ b/build_files/buildbot/master.cfg
@@ -116,7 +116,7 @@ add_builder(c, 'linux_x86_64_scons', '', generic_builder)
 add_builder(c, 'salad_linux_x86_64_scons', '', generic_builder, 'soc-2011-salad')
 add_builder(c, 'win32_scons', 'windows', generic_builder)
 add_builder(c, 'salad_win32_scons', 'windows', generic_builder, 'soc-2011-salad')
-add_builder(c, 'win64_scons', 'windows', generic_builder)
+add_builder(c, 'win64_scons', 'win64', generic_builder)
 #add_builder(c, 'freebsd_i386_cmake', '', generic_builder)
 #add_builder(c, 'freebsd_x86_64_cmake', '', generic_builder)
 
diff --git a/build_files/buildbot/slave_compile.py b/build_files/buildbot/slave_compile.py
index 9dd39ccd3088b27d8e10fe18477072d5d55cf493..b83a65f2466301ecf2bdaed2f458c5f08c7c2dc9 100644
--- a/build_files/buildbot/slave_compile.py
+++ b/build_files/buildbot/slave_compile.py
@@ -134,7 +134,7 @@ else:
             scons_options.append('BF_FFMPEG_LIB=' + (' '.join(ffmpeg_lib)))
             scons_options.append('BF_FFMPEG_DLL=' + (' '.join(ffmpeg_dll)))
 
-            scons_options.append('BF_BITNESS='+bitness)
+            scons_options.append('BF_BITNESS=' + bitness)
 
         retcode = subprocess.call(['python', 'scons/scons.py'] + scons_options)
         sys.exit(retcode)
diff --git a/build_files/buildbot/slave_pack.py b/build_files/buildbot/slave_pack.py
index e779b10bd2a8272f2f76b7dacfedd31f24438ed8..5fdeb4a8ad558c237182235c004e3b0e0fa0c03f 100644
--- a/build_files/buildbot/slave_pack.py
+++ b/build_files/buildbot/slave_pack.py
@@ -98,7 +98,7 @@ if builder.find('scons') != -1:
             scons_options.append('BF_FFMPEG_LIB=' + (' '.join(ffmpeg_lib)))
             scons_options.append('BF_FFMPEG_DLL=' + (' '.join(ffmpeg_dll)))
 
-            scons_options.append('BF_BITNESS='+bitness)
+            scons_options.append('BF_BITNESS=' + bitness)
 
         retcode = subprocess.call(['python', 'scons/scons.py'] + scons_options)
         sys.exit(retcode)
diff --git a/build_files/cmake/config/blender_headless.cmake b/build_files/cmake/config/blender_headless.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..bd69eed30dddabfe13f7369ca3468c3c5884b5de
--- /dev/null
+++ b/build_files/cmake/config/blender_headless.cmake
@@ -0,0 +1,24 @@
+# headless configuration, useful in for servers or renderfarms
+# builds without a windowing system (X11/Windows/Cocoa).
+#
+# Example usage:
+#   cmake -C../blender/build_files/cmake/config/blender_headless.cmake  ../blender
+#
+
+set(WITH_HEADLESS            ON  CACHE FORCE BOOL) 
+set(WITH_GAMEENGINE          OFF CACHE FORCE BOOL)
+
+# disable audio, its possible some devs may want this but for now disable
+# so the python module doesnt hold the audio device and loads quickly.
+set(WITH_AUDASPACE           OFF CACHE FORCE BOOL)
+set(WITH_SAMPLERATE          OFF CACHE FORCE BOOL)
+set(WITH_FFTW3               OFF CACHE FORCE BOOL)
+set(WITH_JACK                OFF CACHE FORCE BOOL)
+set(WITH_SDL                 OFF CACHE FORCE BOOL)
+set(WITH_OPENAL              OFF CACHE FORCE BOOL)
+set(WITH_CODEC_FFMPEG        OFF CACHE FORCE BOOL)
+set(WITH_CODEC_SNDFILE       OFF CACHE FORCE BOOL)
+
+# other features which are not especially useful as a python module
+set(WITH_X11_XINPUT          OFF CACHE FORCE BOOL)
+set(WITH_INPUT_NDOF          OFF CACHE FORCE BOOL)
diff --git a/build_files/cmake/config/blender_lite.cmake b/build_files/cmake/config/blender_lite.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..d2b791baede546d22bcdbc0b731c1a06c44ee57d
--- /dev/null
+++ b/build_files/cmake/config/blender_lite.cmake
@@ -0,0 +1,43 @@
+# turn everything OFF CACHE FORCE BOOL) except for python which defaults to ON
+# and is needed for the UI
+#
+# Example usage:
+#   cmake -C../blender/build_files/cmake/config/blender_lite.cmake  ../blender
+#
+
+set(WITH_INSTALL_PORTABLE    ON  CACHE FORCE BOOL)
+
+set(WITH_BUILDINFO           OFF CACHE FORCE BOOL)
+set(WITH_BUILTIN_GLEW        OFF CACHE FORCE BOOL)
+set(WITH_BULLET              OFF CACHE FORCE BOOL)
+set(WITH_CODEC_FFMPEG        OFF CACHE FORCE BOOL)
+set(WITH_CODEC_SNDFILE       OFF CACHE FORCE BOOL)
+set(WITH_FFTW3               OFF CACHE FORCE BOOL)
+set(WITH_GAMEENGINE          OFF CACHE FORCE BOOL)
+set(WITH_IK_ITASC            OFF CACHE FORCE BOOL)
+set(WITH_IMAGE_CINEON        OFF CACHE FORCE BOOL)
+set(WITH_IMAGE_DDS           OFF CACHE FORCE BOOL)
+set(WITH_IMAGE_FRAMESERVER   OFF CACHE FORCE BOOL)
+set(WITH_IMAGE_HDR           OFF CACHE FORCE BOOL)
+set(WITH_IMAGE_OPENEXR       OFF CACHE FORCE BOOL)
+set(WITH_IMAGE_OPENJPEG      OFF CACHE FORCE BOOL)
+set(WITH_IMAGE_REDCODE       OFF CACHE FORCE BOOL)
+set(WITH_IMAGE_TIFF          OFF CACHE FORCE BOOL)
+set(WITH_INPUT_NDOF          OFF CACHE FORCE BOOL)
+set(WITH_INTERNATIONAL       OFF CACHE FORCE BOOL)
+set(WITH_JACK                OFF CACHE FORCE BOOL)
+set(WITH_LZMA                OFF CACHE FORCE BOOL)
+set(WITH_LZO                 OFF CACHE FORCE BOOL)
+set(WITH_MOD_BOOLEAN         OFF CACHE FORCE BOOL)
+set(WITH_MOD_DECIMATE        OFF CACHE FORCE BOOL)
+set(WITH_MOD_FLUID           OFF CACHE FORCE BOOL)
+set(WITH_MOD_SMOKE           OFF CACHE FORCE BOOL)
+set(WITH_AUDASPACE           OFF CACHE FORCE BOOL)
+set(WITH_OPENAL              OFF CACHE FORCE BOOL)
+set(WITH_OPENCOLLADA         OFF CACHE FORCE BOOL)
+set(WITH_OPENMP              OFF CACHE FORCE BOOL)
+set(WITH_PYTHON_INSTALL      OFF CACHE FORCE BOOL)
+set(WITH_RAYOPTIMIZATION     OFF CACHE FORCE BOOL)
+set(WITH_SAMPLERATE          OFF CACHE FORCE BOOL)
+set(WITH_SDL                 OFF CACHE FORCE BOOL)
+set(WITH_X11_XINPUT          OFF CACHE FORCE BOOL)
diff --git a/build_files/cmake/config/bpy_module.cmake b/build_files/cmake/config/bpy_module.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..5392705f0dc2eca5563bda2945eb3d7aded64860
--- /dev/null
+++ b/build_files/cmake/config/bpy_module.cmake
@@ -0,0 +1,34 @@
+# defaults for building blender as a python module 'bpy'
+#
+# Example usage:
+#   cmake -C../blender/build_files/cmake/config/bpy_module.cmake  ../blender
+#
+
+set(WITH_PYTHON_MODULE       ON  CACHE FORCE BOOL)
+
+# install into the systems python dir
+set(WITH_INSTALL_PORTABLE    OFF CACHE FORCE BOOL)
+
+# no point int copying python into python
+set(WITH_PYTHON_INSTALL      OFF CACHE FORCE BOOL)
+
+# dont build the game engine
+set(WITH_GAMEENGINE          OFF CACHE FORCE BOOL)
+
+# disable audio, its possible some devs may want this but for now disable
+# so the python module doesnt hold the audio device and loads quickly.
+set(WITH_AUDASPACE           OFF CACHE FORCE BOOL)
+set(WITH_SAMPLERATE          OFF CACHE FORCE BOOL)
+set(WITH_FFTW3               OFF CACHE FORCE BOOL)
+set(WITH_JACK                OFF CACHE FORCE BOOL)
+set(WITH_SDL                 OFF CACHE FORCE BOOL)
+set(WITH_OPENAL              OFF CACHE FORCE BOOL)
+set(WITH_CODEC_FFMPEG        OFF CACHE FORCE BOOL)
+set(WITH_CODEC_SNDFILE       OFF CACHE FORCE BOOL)
+
+# other features which are not especially useful as a python module
+set(WITH_X11_XINPUT          OFF CACHE FORCE BOOL)
+set(WITH_INPUT_NDOF          OFF CACHE FORCE BOOL)
+set(WITH_OPENCOLLADA         OFF CACHE FORCE BOOL)
+set(WITH_INTERNATIONAL       OFF CACHE FORCE BOOL)
+set(WITH_BULLET              OFF CACHE FORCE BOOL)
diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake
index b991edcd5d48d5c8e65af6de101140c9b47873b0..ffc920da473a07c47829952e65dcea26275c3683 100644
--- a/build_files/cmake/macros.cmake
+++ b/build_files/cmake/macros.cmake
@@ -62,6 +62,10 @@ macro(blender_include_dirs
 	foreach(_INC ${ARGV})
 		get_filename_component(_ABS_INC ${_INC} ABSOLUTE)
 		list(APPEND _ALL_INCS ${_ABS_INC})
+		# for checking for invalid includes, disable for regular use
+		##if(NOT EXISTS "${_ABS_INC}/")
+		##	message(FATAL_ERROR "Include not found: ${_ABS_INC}/")
+		##endif()
 	endforeach()
 	include_directories(${_ALL_INCS})
 	unset(_INC)
@@ -75,6 +79,9 @@ macro(blender_include_dirs_sys
 	foreach(_INC ${ARGV})
 		get_filename_component(_ABS_INC ${_INC} ABSOLUTE)
 		list(APPEND _ALL_INCS ${_ABS_INC})
+		##if(NOT EXISTS "${_ABS_INC}/")
+		##	message(FATAL_ERROR "Include not found: ${_ABS_INC}/")
+		##endif()
 	endforeach()
 	include_directories(SYSTEM ${_ALL_INCS})
 	unset(_INC)
diff --git a/build_files/scons/config/darwin-config.py b/build_files/scons/config/darwin-config.py
index 97e8e90e574a07d398b47aac75a0e1276a972e8a..ec6a3b082b8a0bead7854284080d489d5960e377 100644
--- a/build_files/scons/config/darwin-config.py
+++ b/build_files/scons/config/darwin-config.py
@@ -21,17 +21,23 @@ cmd = 'uname -p'
 MAC_PROC=commands.getoutput(cmd) 
 cmd = 'uname -r'
 cmd_res=commands.getoutput(cmd) 
-MAC_CUR_VER='10.5' # by default (test below fails on my 10.5 PowerPC)
-if cmd_res[:2]=='7':
+
+if cmd_res[:1]=='7':
 	MAC_CUR_VER='10.3'
-elif cmd_res[:2]=='8':
+elif cmd_res[:1]=='8':
 	MAC_CUR_VER='10.4'
-elif cmd_res[:2]=='9':
+elif cmd_res[:1]=='9':
 	MAC_CUR_VER='10.5'
 elif cmd_res[:2]=='10':
 	MAC_CUR_VER='10.6'
 elif cmd_res[:2]=='11':
 	MAC_CUR_VER='10.7'
+cmd = 'xcodebuild -version'
+cmd_xcode=commands.getoutput(cmd)
+XCODE_CUR_VER=cmd_xcode
+cmd = 'xcodebuild -showsdks'
+cmd_sdk=commands.getoutput(cmd)
+MACOSX_SDK_CHECK=cmd_sdk
 
 if MACOSX_ARCHITECTURE == 'x86_64' or MACOSX_ARCHITECTURE == 'ppc64':
 	USE_QTKIT=True # Carbon quicktime is not available for 64bit
@@ -60,21 +66,23 @@ elif MACOSX_ARCHITECTURE == 'i386' and MAC_CUR_VER == '10.4':
 	LCGDIR = '#../lib/darwin-8.x.i386'
 	CC = 'gcc-4.0'
 	CXX = 'g++-4.0'
-elif MAC_CUR_VER >= '10.6':
-	# OSX 10.6 and 10.7 developer tools do not come with sdk < 10.6 anymore !
-	MAC_MIN_VERS = '10.6'
-	MACOSX_DEPLOYMENT_TARGET = '10.6'
-	MACOSX_SDK='/Developer/SDKs/MacOSX10.6.sdk'
-	LCGDIR = '#../lib/darwin-9.x.universal'
-	CC = 'llvm-gcc-4.2'
-	CXX = 'llvm-g++-4.2'
 else :
-	MAC_MIN_VERS = '10.5'
-	MACOSX_DEPLOYMENT_TARGET = '10.5'
-	MACOSX_SDK='/Developer/SDKs/MacOSX10.5.sdk'
-	LCGDIR = '#../lib/darwin-9.x.universal'
-	CC = 'gcc-4.2'
-	CXX = 'g++-4.2'
+	if 'Mac OS X 10.5' in MACOSX_SDK_CHECK:
+		# OSX 10.5/6 with Xcode 3.x
+		MAC_MIN_VERS = '10.5'
+		MACOSX_DEPLOYMENT_TARGET = '10.5'
+		MACOSX_SDK='/Developer/SDKs/MacOSX10.5.sdk'
+		LCGDIR = '#../lib/darwin-9.x.universal'
+		CC = 'gcc-4.2'
+		CXX = 'g++-4.2'
+	else:
+		# OSX 10.6/7 with Xcode 4.x
+		MAC_MIN_VERS = '10.6'
+		MACOSX_DEPLOYMENT_TARGET = '10.6'
+		MACOSX_SDK='/Developer/SDKs/MacOSX10.6.sdk'
+		LCGDIR = '#../lib/darwin-9.x.universal'
+		CC = 'gcc-4.2'
+		CXX = 'g++-4.2'
 
 LIBDIR = '${LCGDIR}'
 
@@ -199,8 +207,8 @@ BF_GETTEXT_INC = '${BF_GETTEXT}/include'
 BF_GETTEXT_LIB = 'intl'
 BF_GETTEXT_LIBPATH = '${BF_GETTEXT}/lib'
 
-WITH_BF_GAMEENGINE=True
-WITH_BF_PLAYER = False
+WITH_BF_GAMEENGINE = True
+WITH_BF_PLAYER = True
 
 WITH_BF_BULLET = True
 BF_BULLET = '#extern/bullet2/src'
@@ -251,7 +259,7 @@ BF_OPENGL_LIBPATH = '/System/Library/Frameworks/OpenGL.framework/Libraries'
 BF_OPENGL_LINKFLAGS = ['-framework', 'OpenGL']
 
 #OpenCollada flags
-WITH_BF_COLLADA = False
+WITH_BF_COLLADA = True
 BF_COLLADA = '#source/blender/collada'
 BF_COLLADA_INC = '${BF_COLLADA}'
 BF_COLLADA_LIB = 'bf_collada'
@@ -276,8 +284,8 @@ if MACOSX_ARCHITECTURE == 'i386':
 elif MACOSX_ARCHITECTURE == 'x86_64':
     BF_RAYOPTIMIZATION_SSE_FLAGS = ['-msse','-msse2']
 
-# SpaceNavigator and related 3D mice
-WITH_BF_3DMOUSE = False
+# SpaceNavigator and related 3D mice, driver must be 3DxWare 10 Beta 4 (Mac OS X) or later !
+WITH_BF_3DMOUSE = True
 
 #############################################################################
 ###################  various compile settings and flags    ##################
@@ -296,31 +304,28 @@ CPPFLAGS = []+ARCH_FLAGS
 CCFLAGS = ['-pipe','-funsigned-char']+ARCH_FLAGS
 CXXFLAGS = ['-pipe','-funsigned-char']+ARCH_FLAGS
 
-if WITH_GHOST_COCOA==True:
+if WITH_GHOST_COCOA:
 	PLATFORM_LINKFLAGS = ['-fexceptions','-framework','CoreServices','-framework','Foundation','-framework','IOKit','-framework','AppKit','-framework','Cocoa','-framework','Carbon','-framework','AudioUnit','-framework','AudioToolbox','-framework','CoreAudio','-framework','OpenAL']+ARCH_FLAGS
 else:
 	PLATFORM_LINKFLAGS = ['-fexceptions','-framework','CoreServices','-framework','Foundation','-framework','IOKit','-framework','AppKit','-framework','Carbon','-framework','AGL','-framework','AudioUnit','-framework','AudioToolbox','-framework','CoreAudio','-framework','OpenAL']+ARCH_FLAGS
 
-if WITH_BF_QUICKTIME == True:
-	if USE_QTKIT == True:
+if WITH_BF_QUICKTIME:
+	if USE_QTKIT:
 		PLATFORM_LINKFLAGS = PLATFORM_LINKFLAGS+['-framework','QTKit']
 	else:
 		PLATFORM_LINKFLAGS = PLATFORM_LINKFLAGS+['-framework','QuickTime']
 
-if WITH_BF_3DMOUSE:
-	PLATFORM_LINKFLAGS = PLATFORM_LINKFLAGS + ['-weak_framework','3DconnexionClient']
-
 #note to build succesfully on 10.3.9 SDK you need to patch  10.3.9 by adding the SystemStubs.a lib from 10.4
 LLIBS = ['stdc++', 'SystemStubs']
 
-# some flags shuffling for different Os versions
+# some flags shuffling for different OS versions
 if MAC_MIN_VERS == '10.3':
 	CFLAGS = ['-fuse-cxa-atexit']+CFLAGS
 	CXXFLAGS = ['-fuse-cxa-atexit']+CXXFLAGS
 	PLATFORM_LINKFLAGS = ['-fuse-cxa-atexit']+PLATFORM_LINKFLAGS
 	LLIBS.append('crt3.o')
 	
-if USE_SDK==True:
+if USE_SDK:
 	SDK_FLAGS=['-isysroot', MACOSX_SDK,'-mmacosx-version-min='+MAC_MIN_VERS,'-arch',MACOSX_ARCHITECTURE]	
 	PLATFORM_LINKFLAGS = ['-mmacosx-version-min='+MAC_MIN_VERS,'-Wl','-isysroot',MACOSX_SDK,'-arch',MACOSX_ARCHITECTURE]+PLATFORM_LINKFLAGS
 	CCFLAGS=SDK_FLAGS+CCFLAGS
diff --git a/build_files/scons/tools/btools.py b/build_files/scons/tools/btools.py
index 9b911b9d6f0c719cee97595647f60232cdc63064..25e0582c536f13089213fe92763045a367804df7 100644
--- a/build_files/scons/tools/btools.py
+++ b/build_files/scons/tools/btools.py
@@ -149,7 +149,7 @@ def validate_arguments(args, bc):
             'BF_PROFILE_CFLAGS', 'BF_PROFILE_CCFLAGS', 'BF_PROFILE_CXXFLAGS', 'BF_PROFILE_LINKFLAGS',
             'BF_DEBUG_CFLAGS', 'BF_DEBUG_CCFLAGS', 'BF_DEBUG_CXXFLAGS',
             'C_WARN', 'CC_WARN', 'CXX_WARN',
-            'LLIBS', 'PLATFORM_LINKFLAGS','MACOSX_ARCHITECTURE',
+            'LLIBS', 'PLATFORM_LINKFLAGS','MACOSX_ARCHITECTURE', 'MACOSX_SDK_CHECK', 'XCODE_CUR_VER',
     ]
     
     
@@ -462,6 +462,8 @@ def read_opts(env, cfg, args):
         ('LLIBS', 'Platform libs', []),
         ('PLATFORM_LINKFLAGS', 'Platform linkflags', []),
         ('MACOSX_ARCHITECTURE', 'python_arch.zip select', ''),
+        ('MACOSX_SDK_CHECK', 'detect available OSX sdk`s', ''),
+        ('XCODE_CUR_VER', 'detect XCode version', ''),
 
         (BoolVariable('BF_PROFILE', 'Add profiling information if true', False)),
         ('BF_PROFILE_CFLAGS', 'C only profiling flags', []),
diff --git a/doc/doxygen/Doxyfile b/doc/doxygen/Doxyfile
index 79b3f1a4160bb0707ed2a3818ebbe610abe53589..b4d3b14b9dde48f8a74fa959b561a6af76a4dadb 100644
--- a/doc/doxygen/Doxyfile
+++ b/doc/doxygen/Doxyfile
@@ -31,7 +31,7 @@ PROJECT_NAME           = Blender
 # This could be handy for archiving the generated documentation or 
 # if some version control system is used.
 
-PROJECT_NUMBER         = "V2.58"
+PROJECT_NUMBER         = "V2.59"
 
 # 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
diff --git a/doc/python_api/rst/bge.logic.rst b/doc/python_api/rst/bge.logic.rst
index 128f87f76bd864f8464f526ea08d0f04abcdf587..798491b471059c521736a955e52e3d4e9da98361 100644
--- a/doc/python_api/rst/bge.logic.rst
+++ b/doc/python_api/rst/bge.logic.rst
@@ -217,6 +217,12 @@ General functions
 
    Loads a scene into the game engine.
 
+   .. note::
+
+      This function is not effective immediately, the scene is queued
+      and added on the next logic cycle where it will be available
+      from `getSceneList`
+
    :arg name: The name of the scene
    :type name: string
    :arg overlay: Overlay or underlay (optional)
diff --git a/intern/ghost/CMakeLists.txt b/intern/ghost/CMakeLists.txt
index d7658c50a366428ee136946e4637d7ab58c32eaa..bdda0f3382ebf008eb6db1b035ed829da8e2573a 100644
--- a/intern/ghost/CMakeLists.txt
+++ b/intern/ghost/CMakeLists.txt
@@ -149,6 +149,10 @@ if(WITH_HEADLESS OR WITH_GHOST_SDL)
 			intern/GHOST_SystemPathsX11.cpp
 			intern/GHOST_SystemPathsX11.h
 		)
+
+		if(NOT WITH_INSTALL_PORTABLE)
+			add_definitions(-DPREFIX="${CMAKE_INSTALL_PREFIX}")
+		endif()
 	elseif(WIN32)
 
 		list(APPEND SRC
@@ -204,10 +208,6 @@ elseif(APPLE)
 
 elseif(UNIX)
 
-	if(WITH_X11_XINPUT)
-		add_definitions(-DWITH_X11_XINPUT)
-	endif()
-
 	list(APPEND INC_SYS
 		${X11_X11_INCLUDE_PATH}
 	)
@@ -224,10 +224,6 @@ elseif(UNIX)
 		intern/GHOST_WindowX11.h
 	)
 
-	if(NOT WITH_INSTALL_PORTABLE)
-		add_definitions(-DPREFIX="${CMAKE_INSTALL_PREFIX}")
-	endif()
-
 	if(X11_XF86keysym_INCLUDE_PATH)
 		add_definitions(-DWITH_XF86KEYSYM)
 		list(APPEND INC_SYS
@@ -243,6 +239,14 @@ elseif(UNIX)
 		)
 	endif()
 
+	if(NOT WITH_INSTALL_PORTABLE)
+		add_definitions(-DPREFIX="${CMAKE_INSTALL_PREFIX}")
+	endif()
+
+	if(WITH_X11_XINPUT)
+		add_definitions(-DWITH_X11_XINPUT)
+	endif()
+
 elseif(WIN32)
 	if(MSVC)
 		set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX")
diff --git a/intern/ghost/intern/GHOST_NDOFManager.cpp b/intern/ghost/intern/GHOST_NDOFManager.cpp
index 855e27b99644411f61456f8a49f7e8fabf84d5c9..a24ccc3ff6c8d860eaae00ad196887d50e29c948 100644
--- a/intern/ghost/intern/GHOST_NDOFManager.cpp
+++ b/intern/ghost/intern/GHOST_NDOFManager.cpp
@@ -375,7 +375,7 @@ void GHOST_NDOFManager::setDeadZone(float dz)
 
 static bool atHomePosition(GHOST_TEventNDOFMotionData* ndof)
 {
-#define HOME(foo) (ndof->foo == 0)
+#define HOME(foo) (ndof->foo == 0.f)
 	return HOME(tx) && HOME(ty) && HOME(tz) && HOME(rx) && HOME(ry) && HOME(rz);
 #undef HOME
 }
@@ -386,9 +386,9 @@ static bool nearHomePosition(GHOST_TEventNDOFMotionData* ndof, float threshold)
 		return atHomePosition(ndof);
 	}
 	else {
-#define HOME1(foo) (fabsf(ndof->foo) < threshold)
-		return HOME1(tx) && HOME1(ty) && HOME1(tz) && HOME1(rx) && HOME1(ry) && HOME1(rz);
-#undef HOME1
+#define HOME(foo) (fabsf(ndof->foo) < threshold)
+		return HOME(tx) && HOME(ty) && HOME(tz) && HOME(rx) && HOME(ry) && HOME(rz);
+#undef HOME
 	}
 }
 
@@ -423,17 +423,17 @@ bool GHOST_NDOFManager::sendMotionEvent()
 
 	data->dt = 0.001f * (m_motionTime - m_prevMotionTime); // in seconds
 
-	bool handMotion = !nearHomePosition(data, m_deadZone);
+	bool weHaveMotion = !nearHomePosition(data, m_deadZone);
 
 	// determine what kind of motion event to send (Starting, InProgress, Finishing)
 	// and where that leaves this NDOF manager (NotStarted, InProgress, Finished)
 	switch (m_motionState) {
 		case GHOST_kNotStarted:
 		case GHOST_kFinished:
-			if (handMotion) {
+			if (weHaveMotion) {
 				data->progress = GHOST_kStarting;
 				m_motionState = GHOST_kInProgress;
-				// prev motion time will be ancient, so just make up something reasonable
+				// prev motion time will be ancient, so just make up a reasonable time delta
 				data->dt = 0.0125f;
 			}
 			else {
@@ -443,9 +443,9 @@ bool GHOST_NDOFManager::sendMotionEvent()
 			}
 			break;
 		case GHOST_kInProgress:
-			if (handMotion) {
+			if (weHaveMotion) {
 				data->progress = GHOST_kInProgress;
-				// keep InProgress state
+				// remain 'InProgress'
 			}
 			else {
 				data->progress = GHOST_kFinishing;
@@ -453,7 +453,7 @@ bool GHOST_NDOFManager::sendMotionEvent()
 			}
 			break;
 		default:
-			break;
+			; // will always be one of the above
 	}
 
 #ifdef DEBUG_NDOF_MOTION
diff --git a/intern/ghost/intern/GHOST_NDOFManagerCocoa.h b/intern/ghost/intern/GHOST_NDOFManagerCocoa.h
index 27397b711b7a0e2df9840416a8429de4c33d2a54..e9897f30104c2122ae84de83f3c28dee395b0011 100644
--- a/intern/ghost/intern/GHOST_NDOFManagerCocoa.h
+++ b/intern/ghost/intern/GHOST_NDOFManagerCocoa.h
@@ -22,10 +22,12 @@
  *
  * ***** END GPL LICENSE BLOCK *****
  */
- 
+
 #ifndef _GHOST_NDOFMANAGERCOCOA_H_
 #define _GHOST_NDOFMANAGERCOCOA_H_
 
+#ifdef WITH_INPUT_NDOF
+
 #include "GHOST_NDOFManager.h"
 
 // Event capture is handled within the NDOF manager on Macintosh,
@@ -47,4 +49,5 @@ private:
 };
 
 
-#endif
+#endif // WITH_INPUT_NDOF
+#endif // #include guard
diff --git a/intern/ghost/intern/GHOST_NDOFManagerCocoa.mm b/intern/ghost/intern/GHOST_NDOFManagerCocoa.mm
index 53a991a7396f78ede325f01cbf93bfbdbf59d9ec..409ed953134b517286d2666517da8849bb7349e1 100644
--- a/intern/ghost/intern/GHOST_NDOFManagerCocoa.mm
+++ b/intern/ghost/intern/GHOST_NDOFManagerCocoa.mm
@@ -22,7 +22,9 @@
  *
  * ***** END GPL LICENSE BLOCK *****
  */
- 
+
+#ifdef WITH_INPUT_NDOF
+
 #include "GHOST_NDOFManagerCocoa.h"
 #include "GHOST_SystemCocoa.h"
 
@@ -157,16 +159,22 @@ GHOST_NDOFManagerCocoa::GHOST_NDOFManagerCocoa(GHOST_System& sys)
 
 GHOST_NDOFManagerCocoa::~GHOST_NDOFManagerCocoa()
 {
-	UnregisterConnexionClient(m_clientID);
-	CleanupConnexionHandlers();
-	ghost_system = NULL;
-	ndof_manager = NULL;
+	if (available())
+	{
+		UnregisterConnexionClient(m_clientID);
+		CleanupConnexionHandlers();
+		ghost_system = NULL;
+		ndof_manager = NULL;
+	}
 }
-
-bool GHOST_NDOFManagerCocoa::available()
-{
-	// extern OSErr InstallConnexionHandlers() __attribute__((weak_import));
-	// ^^ not needed since the entire framework is weak-linked
-	return InstallConnexionHandlers != NULL;
-	// this means that the driver is installed and dynamically linked to blender
+extern "C" {
+	bool GHOST_NDOFManagerCocoa::available()
+	{
+		extern OSErr InstallConnexionHandlers() __attribute__((weak_import));
+		// Make the linker happy for the framework check (see link below for more info)
+		// http://developer.apple.com/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/WeakLinking.html
+		return InstallConnexionHandlers != NULL;
+		// this means that the driver is installed and dynamically linked to blender
+	}
 }
+#endif // WITH_INPUT_NDOF
diff --git a/intern/ghost/intern/GHOST_NDOFManagerX11.cpp b/intern/ghost/intern/GHOST_NDOFManagerX11.cpp
index 099fa15d179ee0335879bbfb278de277f19014c3..4dd5331903962875e8b01fa4f7c18e590a869c16 100644
--- a/intern/ghost/intern/GHOST_NDOFManagerX11.cpp
+++ b/intern/ghost/intern/GHOST_NDOFManagerX11.cpp
@@ -22,7 +22,9 @@
  *
  * ***** END GPL LICENSE BLOCK *****
  */
- 
+
+#ifdef WITH_INPUT_NDOF
+
 #include "GHOST_NDOFManagerX11.h"
 #include "GHOST_SystemX11.h"
 #include <spnav.h>
@@ -34,14 +36,14 @@ GHOST_NDOFManagerX11::GHOST_NDOFManagerX11(GHOST_System& sys)
       GHOST_NDOFManager(sys),
       m_available(false)
 {
-	setDeadZone(0.1f); // how to calibrate on Linux? throw away slight motion!
+	setDeadZone(0.1f); /* how to calibrate on Linux? throw away slight motion! */
 
 	if (spnav_open() != -1) {
-		// determine exactly which device (if any) is plugged in
+		/* determine exactly which device (if any) is plugged in */
 
 #define MAX_LINE_LENGTH 100
 
-		// look for USB devices with Logitech's vendor ID
+		/* look for USB devices with Logitech's vendor ID */
 		FILE* command_output = popen("lsusb -d 046d:","r");
 		if (command_output) {
 			char line[MAX_LINE_LENGTH] = {0};
@@ -50,15 +52,15 @@ GHOST_NDOFManagerX11::GHOST_NDOFManagerX11(GHOST_System& sys)
 				if (sscanf(line, "Bus %*d Device %*d: ID %hx:%hx", &vendor_id, &product_id) == 2)
 					if (setDevice(vendor_id, product_id)) {
 						m_available = true;
-						break; // stop looking once the first 3D mouse is found
+						break; /* stop looking once the first 3D mouse is found */
 					}
 			}
 			pclose(command_output);
 		}
 	}
 	else {
-		printf("ndof: spacenavd not found\n");
-		// This isn't a hard error, just means the user doesn't have a 3D mouse.
+		puts("ndof: spacenavd not found");
+		/* This isn't a hard error, just means the user doesn't have a 3D mouse. */
 	}
 }
 
@@ -73,11 +75,6 @@ bool GHOST_NDOFManagerX11::available()
 	return m_available;
 }
 
-//bool GHOST_NDOFManagerX11::identifyDevice()
-//{
-//	
-//}
-
 bool GHOST_NDOFManagerX11::processEvents()
 {
 	GHOST_TUns64 now = m_system.getMilliSeconds();
@@ -88,7 +85,7 @@ bool GHOST_NDOFManagerX11::processEvents()
 		switch (e.type) {
 			case SPNAV_EVENT_MOTION:
 			{
-				// convert to blender view coords
+				/* convert to blender view coords */
 				short t[3] = {e.motion.x, e.motion.y, -e.motion.z};
 				short r[3] = {-e.motion.rx, -e.motion.ry, e.motion.rz};
 
@@ -104,3 +101,5 @@ bool GHOST_NDOFManagerX11::processEvents()
 	}
 	return anyProcessed;
 }
+
+#endif /* WITH_INPUT_NDOF */
diff --git a/intern/ghost/intern/GHOST_NDOFManagerX11.h b/intern/ghost/intern/GHOST_NDOFManagerX11.h
index 82bd256c70736c6e869c50bf91217493f951672c..0a5497537563996ef6d5296d97ebe83acf1f5584 100644
--- a/intern/ghost/intern/GHOST_NDOFManagerX11.h
+++ b/intern/ghost/intern/GHOST_NDOFManagerX11.h
@@ -26,6 +26,8 @@
 #ifndef _GHOST_NDOFMANAGERX11_H_
 #define _GHOST_NDOFMANAGERX11_H_
 
+#ifdef WITH_INPUT_NDOF
+
 #include "GHOST_NDOFManager.h"
 
 /* Event capture is handled within the NDOF manager on Linux,
@@ -40,10 +42,9 @@ public:
 	bool processEvents();
 
 private:
-	//	bool identifyDevice();
-
 	bool m_available;
 };
 
-#endif
+#endif /* WITH_INPUT_NDOF */
+#endif /* #include guard */
 
diff --git a/intern/ghost/intern/GHOST_SystemCocoa.mm b/intern/ghost/intern/GHOST_SystemCocoa.mm
index 17f0f2d6ecde753edc0da85d9d9a3ce18ec1325f..303c2b24497df406d08ee3aa47f8d0325af20a80 100644
--- a/intern/ghost/intern/GHOST_SystemCocoa.mm
+++ b/intern/ghost/intern/GHOST_SystemCocoa.mm
@@ -21,8 +21,8 @@
  *
  * The Original Code is: all of this file.
  *
- * Contributor(s):	Maarten Gribnau 05/2001
- *					Damien Plisson 09/2009
+ * Contributors: Maarten Gribnau 05/2001
+ *               Damien Plisson 09/2009
  *
  * ***** END GPL LICENSE BLOCK *****
  */
@@ -43,16 +43,17 @@
 #include "GHOST_EventButton.h"
 #include "GHOST_EventCursor.h"
 #include "GHOST_EventWheel.h"
-#include "GHOST_EventNDOF.h"
 #include "GHOST_EventTrackpad.h"
 #include "GHOST_EventDragnDrop.h"
 #include "GHOST_EventString.h"
-
 #include "GHOST_TimerManager.h"
 #include "GHOST_TimerTask.h"
 #include "GHOST_WindowManager.h"
 #include "GHOST_WindowCocoa.h"
+#ifdef WITH_INPUT_NDOF
 #include "GHOST_NDOFManagerCocoa.h"
+#endif
+
 #include "AssertMacros.h"
 
 #pragma mark KeyMap, mouse converters
diff --git a/intern/ghost/intern/GHOST_SystemPathsX11.cpp b/intern/ghost/intern/GHOST_SystemPathsX11.cpp
index dd8935732c504974a175336b4d0043612d47bad0..135f5c42dc5d51babb8c9ff4792791bfe8e99c11 100644
--- a/intern/ghost/intern/GHOST_SystemPathsX11.cpp
+++ b/intern/ghost/intern/GHOST_SystemPathsX11.cpp
@@ -43,7 +43,11 @@
 #include <stdio.h> // for fprintf only
 #include <cstdlib> // for exit
 
-using namespace std;
+#ifdef PREFIX
+static const char *static_path= PREFIX "/share" ;
+#else
+static const char *static_path= NULL;
+#endif
 
 GHOST_SystemPathsX11::GHOST_SystemPathsX11()
 {
@@ -56,21 +60,12 @@ GHOST_SystemPathsX11::~GHOST_SystemPathsX11()
 const GHOST_TUns8* GHOST_SystemPathsX11::getSystemDir() const
 {
 	/* no prefix assumes a portable build which only uses bundled scripts */
-#ifdef PREFIX
-	return (GHOST_TUns8*) PREFIX "/share";
-#else
-	return NULL;
-#endif
+	return (const GHOST_TUns8 *)static_path;
 }
 
 const GHOST_TUns8* GHOST_SystemPathsX11::getUserDir() const
 {
-	const char* env = getenv("HOME");
-	if(env) {
-		return (GHOST_TUns8*) env;
-	} else {
-		return NULL;
-	}
+	return (const GHOST_TUns8 *)getenv("HOME");
 }
 
 const GHOST_TUns8* GHOST_SystemPathsX11::getBinaryDir() const
diff --git a/intern/ghost/intern/GHOST_SystemSDL.cpp b/intern/ghost/intern/GHOST_SystemSDL.cpp
index 69a9f936cf693bea950be2b365b5c3b8cdba8567..f2cc45731fa0c5a7b2dbed0910bc9bbf71d07e8c 100644
--- a/intern/ghost/intern/GHOST_SystemSDL.cpp
+++ b/intern/ghost/intern/GHOST_SystemSDL.cpp
@@ -146,7 +146,7 @@ convertSDLKey(SDL_Scancode key)
 	if ((key >= SDL_SCANCODE_A) && (key <= SDL_SCANCODE_Z)) {
 		type= GHOST_TKey( key - SDL_SCANCODE_A + int(GHOST_kKeyA));
 	} else if ((key >= SDL_SCANCODE_1) && (key <= SDL_SCANCODE_0)) {
-		type= GHOST_TKey(key - SDL_SCANCODE_1 + int(GHOST_kKey0));
+		type= (key == SDL_SCANCODE_0) ? GHOST_kKey0 : GHOST_TKey(key - SDL_SCANCODE_1 + int(GHOST_kKey1));
 	} else if ((key >= SDL_SCANCODE_F1) && (key <= SDL_SCANCODE_F12)) {
 		type= GHOST_TKey(key - SDL_SCANCODE_F1 + int(GHOST_kKeyF1));
 	} else if ((key >= SDL_SCANCODE_F13) && (key <= SDL_SCANCODE_F24)) {
@@ -167,6 +167,8 @@ convertSDLKey(SDL_Scancode key)
 		GXMAP(type,SDL_SCANCODE_APOSTROPHE,     GHOST_kKeyQuote);
 		GXMAP(type,SDL_SCANCODE_GRAVE,          GHOST_kKeyAccentGrave);
 		GXMAP(type,SDL_SCANCODE_MINUS,          GHOST_kKeyMinus);
+		GXMAP(type,SDL_SCANCODE_EQUALS,         GHOST_kKeyEqual);
+
 		GXMAP(type,SDL_SCANCODE_SLASH,          GHOST_kKeySlash);
 		GXMAP(type,SDL_SCANCODE_BACKSLASH,      GHOST_kKeyBackslash);
 		GXMAP(type,SDL_SCANCODE_KP_EQUALS,      GHOST_kKeyEqual);
@@ -198,6 +200,7 @@ convertSDLKey(SDL_Scancode key)
 		GXMAP(type,SDL_SCANCODE_CAPSLOCK,       GHOST_kKeyCapsLock);
 		GXMAP(type,SDL_SCANCODE_SCROLLLOCK,     GHOST_kKeyScrollLock);
 		GXMAP(type,SDL_SCANCODE_NUMLOCKCLEAR,   GHOST_kKeyNumLock);
+		GXMAP(type,SDL_SCANCODE_PRINTSCREEN,    GHOST_kKeyPrintScreen);
 
 		/* keypad events */
 
@@ -382,8 +385,26 @@ GHOST_SystemSDL::processEvent(SDL_Event *sdl_event)
 
 			GHOST_TKey gkey= convertSDLKey(sdl_sub_evt.keysym.scancode);
 			/* note, the sdl_sub_evt.keysym.sym is truncated, for unicode support ghost has to be modified */
+			/* printf("%d\n", sym); */
 			if(sym > 127) {
-				sym= 0;
+				switch(sym) {
+					case SDLK_KP_DIVIDE: sym= '/'; break;
+				    case SDLK_KP_MULTIPLY: sym= '*'; break;
+				    case SDLK_KP_MINUS: sym= '-'; break;
+				    case SDLK_KP_PLUS: sym= '+'; break;
+				    case SDLK_KP_1: sym= '1'; break;
+				    case SDLK_KP_2: sym= '2'; break;
+				    case SDLK_KP_3: sym= '3'; break;
+				    case SDLK_KP_4: sym= '4'; break;
+				    case SDLK_KP_5: sym= '5'; break;
+				    case SDLK_KP_6: sym= '6'; break;
+				    case SDLK_KP_7: sym= '7'; break;
+				    case SDLK_KP_8: sym= '8'; break;
+				    case SDLK_KP_9: sym= '9'; break;
+				    case SDLK_KP_0: sym= '0'; break;
+				    case SDLK_KP_PERIOD: sym= '.'; break;
+					default: sym= 0; break;
+				}
 			}
 			else {
 				if(sdl_sub_evt.keysym.mod & (KMOD_LSHIFT|KMOD_RSHIFT)) {
diff --git a/intern/ghost/intern/GHOST_SystemX11.cpp b/intern/ghost/intern/GHOST_SystemX11.cpp
index 105f71b514f9ad8b0f20dedaaa765d4263e87f13..d5100e589f2aa08933664c21d173bee751826d07 100644
--- a/intern/ghost/intern/GHOST_SystemX11.cpp
+++ b/intern/ghost/intern/GHOST_SystemX11.cpp
@@ -42,8 +42,10 @@
 #include "GHOST_EventKey.h"
 #include "GHOST_EventButton.h"
 #include "GHOST_EventWheel.h"
-#include "GHOST_NDOFManagerX11.h"
 #include "GHOST_DisplayManagerX11.h"
+#ifdef WITH_INPUT_NDOF
+#include "GHOST_NDOFManagerX11.h"
+#endif
 
 #include "GHOST_Debug.h"
 
@@ -815,22 +817,6 @@ GHOST_SystemX11::processEvent(XEvent *xe)
 	}
 }
 
-#if 0 // obsolete SpaceNav code
-
-	void *
-GHOST_SystemX11::
-prepareNdofInfo(volatile GHOST_TEventNDOFData *currentNdofValues)
-{
-	const vector<GHOST_IWindow*>& v(m_windowManager->getWindows());
-	if (v.size() > 0)
-		sNdofInfo.window = static_cast<GHOST_WindowX11*>(v[0])->getXWindow();
-	sNdofInfo.display = m_display;
-	sNdofInfo.currValues = currentNdofValues;
-	return (void*)&sNdofInfo;
-}
-
-#endif
-
 	GHOST_TSuccess 
 GHOST_SystemX11::
 getModifierKeys(
diff --git a/intern/ghost/intern/GHOST_WindowWin32.cpp b/intern/ghost/intern/GHOST_WindowWin32.cpp
index 1ba51376ff92a54837bb111bfe28dffb705990a3..0c8c0adf0413e46d1cf2737f32e63ca42349bcb8 100644
--- a/intern/ghost/intern/GHOST_WindowWin32.cpp
+++ b/intern/ghost/intern/GHOST_WindowWin32.cpp
@@ -612,7 +612,6 @@ GHOST_TSuccess GHOST_WindowWin32::setState(GHOST_TWindowState state)
 		wp.showCmd = SW_SHOWMINIMIZED;
 		break;
 	case GHOST_kWindowStateMaximized:
-		ShowWindow(m_hWnd, SW_HIDE);
 		wp.showCmd = SW_SHOWMAXIMIZED;
 		SetWindowLongPtr(m_hWnd, GWL_STYLE, WS_OVERLAPPEDWINDOW);
 		break;
@@ -629,12 +628,12 @@ GHOST_TSuccess GHOST_WindowWin32::setState(GHOST_TWindowState state)
 		break;
 	case GHOST_kWindowStateNormal:
 	default:
-		ShowWindow(m_hWnd, SW_HIDE);
 		wp.showCmd = SW_SHOWNORMAL;
 		SetWindowLongPtr(m_hWnd, GWL_STYLE, WS_OVERLAPPEDWINDOW);
 		break;
 	}
-	return ::SetWindowPlacement(m_hWnd, &wp) == TRUE ? GHOST_kSuccess : GHOST_kFailure;
+	SetWindowPos(m_hWnd, 0, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED); /*Clears window cache for SetWindowLongPtr */
+ 	return ::SetWindowPlacement(m_hWnd, &wp) == TRUE ? GHOST_kSuccess : GHOST_kFailure;
 }
 
 
diff --git a/intern/guardedalloc/MEM_guardedalloc.h b/intern/guardedalloc/MEM_guardedalloc.h
index a4beea6d8d5615141f1a59f5017fa3768751ecb8..f96a49b9f4afad63e3286277c8e1f2537c37928d 100644
--- a/intern/guardedalloc/MEM_guardedalloc.h
+++ b/intern/guardedalloc/MEM_guardedalloc.h
@@ -61,18 +61,6 @@
 #ifndef MEM_MALLOCN_H
 #define MEM_MALLOCN_H
 
-#ifndef LIBEXPORT
-#ifdef _WIN32
-#ifdef BLENDER_PLUGIN
-#define LIBEXPORT __declspec(dllimport)
-#else
-#define LIBEXPORT __declspec(dllexport)
-#endif
-#else
-#define LIBEXPORT
-#endif
-#endif
-
 #include <stdio.h> /* needed for FILE* */
 #include "MEM_sys_types.h" /* needed for uintptr_t */
 
@@ -107,7 +95,7 @@ extern "C" {
 	/**
 	 * Duplicates a block of memory, and returns a pointer to the
 	 * newly allocated block.  */
-	LIBEXPORT void *MEM_dupallocN(void *vmemh) WARN_UNUSED;
+	void *MEM_dupallocN(void *vmemh) WARN_UNUSED;
 
 	/**
 	  * Reallocates a block of memory, and returns pointer to the newly
diff --git a/release/datafiles/splash.png b/release/datafiles/splash.png
index d6ccdb5b733c56493eb27333ae73542ecae7a39b..79339095b0774b85ebf07d7758adf2dfa10c1077 100644
Binary files a/release/datafiles/splash.png and b/release/datafiles/splash.png differ
diff --git a/release/scripts/modules/bpy/__init__.py b/release/scripts/modules/bpy/__init__.py
index a43b42e49a14ffe232ff18d951bcf42fc7acb0d4..5c371fd750a7590c4f4593c567710556fc2a8ddd 100644
--- a/release/scripts/modules/bpy/__init__.py
+++ b/release/scripts/modules/bpy/__init__.py
@@ -44,14 +44,18 @@ from . import utils, path, ops
 ops = ops.ops_fake_module
 
 
-def _main():
-    import sys as _sys
+def main():
+    import sys
 
     # Possibly temp. addons path
     from os.path import join, dirname, normpath
-    _sys.path.append(normpath(join(dirname(__file__),
+    sys.path.append(normpath(join(dirname(__file__),
                                    "..", "..", "addons", "modules")))
 
+    # fake module to allow:
+    #   from bpy.types import Panel
+    sys.modules["bpy.types"] = types
+
     # if "-d" in sys.argv: # Enable this to measure startup speed
     if 0:
         import cProfile
@@ -65,6 +69,6 @@ def _main():
         utils.load_scripts()
 
 
-_main()
+main()
 
-del _main
+del main
diff --git a/release/scripts/modules/bpy_extras/io_utils.py b/release/scripts/modules/bpy_extras/io_utils.py
index 45664384efaa4372ccc3ba66a93fd67ab41153ee..6271c1f77b598ff7f85a62940392426f5d1bc7fb 100644
--- a/release/scripts/modules/bpy_extras/io_utils.py
+++ b/release/scripts/modules/bpy_extras/io_utils.py
@@ -379,7 +379,7 @@ def path_reference(filepath,
     is_relative = filepath.startswith("//")
     filepath_abs = os.path.normpath(bpy.path.abspath(filepath, base_src))
 
-    if mode in ('ABSOLUTE', 'RELATIVE', 'STRIP'):
+    if mode in {'ABSOLUTE', 'RELATIVE', 'STRIP'}:
         pass
     elif mode == 'MATCH':
         mode = 'RELATIVE' if is_relative else 'ABSOLUTE'
@@ -439,7 +439,7 @@ def path_reference_copy(copy_set, report=print):
             shutil.copy(file_src, file_dst)
 
 
-def unique_name(key, name, name_dict, name_max=-1, clean_func=None):
+def unique_name(key, name, name_dict, name_max=-1, clean_func=None, sep="."):
     """
     Helper function for storing unique names which may have special characters
     stripped and restricted to a maximum length.
@@ -456,6 +456,9 @@ def unique_name(key, name, name_dict, name_max=-1, clean_func=None):
     :type name_dict: dict
     :arg clean_func: Function to call on *name* before creating a unique value.
     :type clean_func: function
+    :arg sep: Separator to use when between the name and a number when a
+       duplicate name is found.
+    :type sep: string
     """
     name_new = name_dict.get(key)
     if name_new is None:
@@ -466,14 +469,15 @@ def unique_name(key, name, name_dict, name_max=-1, clean_func=None):
 
         if name_max == -1:
             while name_new in name_dict_values:
-                name_new = "%s.%03d" % (name_new_orig, count)
+                name_new = "%s%s%03d" % (name_new_orig, sep, count)
                 count += 1
         else:
             name_new = name_new[:name_max]
             while name_new in name_dict_values:
                 count_str = "%03d" % count
-                name_new = "%.*s.%s" % (name_max - (len(count_str) + 1),
+                name_new = "%.*s%s%s" % (name_max - (len(count_str) + 1),
                                         name_new_orig,
+                                        sep,
                                         count_str,
                                         )
                 count += 1
diff --git a/release/scripts/modules/bpy_extras/mesh_utils.py b/release/scripts/modules/bpy_extras/mesh_utils.py
index f94006741387ce0b2eeca43629fbc555b414401c..c965169ff04cdb267a43dd2abff40d21a1aaa410 100644
--- a/release/scripts/modules/bpy_extras/mesh_utils.py
+++ b/release/scripts/modules/bpy_extras/mesh_utils.py
@@ -294,7 +294,7 @@ def ngon_tesselate(from_data, indices, fix_loops=True):
         '''
         Normal single concave loop filling
         '''
-        if type(from_data) in (tuple, list):
+        if type(from_data) in {tuple, list}:
             verts = [Vector(from_data[i]) for ii, i in enumerate(indices)]
         else:
             verts = [from_data.vertices[i].co for ii, i in enumerate(indices)]
@@ -312,7 +312,7 @@ def ngon_tesselate(from_data, indices, fix_loops=True):
         used twice. This is used by lightwave LWO files a lot
         '''
 
-        if type(from_data) in (tuple, list):
+        if type(from_data) in {tuple, list}:
             verts = [vert_treplet(Vector(from_data[i]), ii)
                      for ii, i in enumerate(indices)]
         else:
diff --git a/release/scripts/modules/bpyml.py b/release/scripts/modules/bpyml.py
index fdf5172a0b3597418369c0a31dcc80a396ed1d0e..42d2bf94fbaa99585208db55ba70ecd78215519c 100644
--- a/release/scripts/modules/bpyml.py
+++ b/release/scripts/modules/bpyml.py
@@ -120,7 +120,7 @@ def fromxml(data):
         py_item = (xml_node.tagName, _fromxml_kwargs(xml_node), [])
         #_fromxml_iter(py_item, xml_node.childNodes)
         for xml_node_child in xml_node.childNodes:
-            if xml_node_child.nodeType not in (xml_node_child.TEXT_NODE, xml_node_child.COMMENT_NODE):
+            if xml_node_child.nodeType not in {xml_node_child.TEXT_NODE, xml_node_child.COMMENT_NODE}:
                 py_item[CHILDREN].append(_fromxml(xml_node_child))
         return py_item
 
diff --git a/release/scripts/modules/bpyml_ui.py b/release/scripts/modules/bpyml_ui.py
index 5df04b8bf34784c410cb0ce197bc0b69a2996ffe..f4b6de23dbb2cf93ce9b68fe8137bfc7fa3e2ff4 100644
--- a/release/scripts/modules/bpyml_ui.py
+++ b/release/scripts/modules/bpyml_ui.py
@@ -40,13 +40,13 @@ def _parse_rna(prop, value):
     elif prop.type == 'INT':
         value = int(value)
     elif prop.type == 'BOOLEAN':
-        if value in (True, False):
+        if value in {True, False}:
             pass
         else:
-            if value not in ("True", "False"):
+            if value not in {"True", "False"}:
                 raise Exception("invalid bool value: %s" % value)
             value = bool(value == "True")
-    elif prop.type in ('STRING', 'ENUM'):
+    elif prop.type in {'STRING', 'ENUM'}:
         pass
     elif prop.type == 'POINTER':
         value = eval("_bpy." + value)
diff --git a/release/scripts/modules/rna_info.py b/release/scripts/modules/rna_info.py
index 93a344f4b09f97570feed6f58aec66a5e0344742..943f86adecbeea2a001264dd8d075b6df2953b4e 100644
--- a/release/scripts/modules/rna_info.py
+++ b/release/scripts/modules/rna_info.py
@@ -148,7 +148,7 @@ class InfoStructRNA:
         import types
         functions = []
         for identifier, attr in self._get_py_visible_attrs():
-            if type(attr) in (types.FunctionType, types.MethodType):
+            if type(attr) in {types.FunctionType, types.MethodType}:
                 functions.append((identifier, attr))
         return functions
 
@@ -156,7 +156,7 @@ class InfoStructRNA:
         import types
         functions = []
         for identifier, attr in self._get_py_visible_attrs():
-            if type(attr) in (types.BuiltinMethodType, types.BuiltinFunctionType):
+            if type(attr) in {types.BuiltinMethodType, types.BuiltinFunctionType}:
                 functions.append((identifier, attr))
         return functions
 
@@ -260,7 +260,7 @@ class InfoPropertyRNA:
             if self.array_length:
                 type_str += " array of %d items" % (self.array_length)
 
-            if self.type in ("float", "int"):
+            if self.type in {"float", "int"}:
                 type_str += " in [%s, %s]" % (range_str(self.min), range_str(self.max))
             elif self.type == "enum":
                 if self.is_enum_flag:
@@ -595,7 +595,7 @@ def BuildRNAInfo():
             for prop in rna_info.properties:
                 # ERROR CHECK
                 default = prop.default
-                if type(default) in (float, int):
+                if type(default) in {float, int}:
                     if default < prop.min or default > prop.max:
                         print("\t %s.%s, %s not in [%s - %s]" % (rna_info.identifier, prop.identifier, default, prop.min, prop.max))
 
diff --git a/release/scripts/startup/bl_operators/add_mesh_torus.py b/release/scripts/startup/bl_operators/add_mesh_torus.py
index 27a6d21d519f812b685cfd7ef9863ab97197bd0d..1c4518c4feb11c401440610e0d1a510b8595917f 100644
--- a/release/scripts/startup/bl_operators/add_mesh_torus.py
+++ b/release/scripts/startup/bl_operators/add_mesh_torus.py
@@ -18,6 +18,7 @@
 
 # <pep8-80 compliant>
 import bpy
+from bpy.types import Operator
 import mathutils
 
 
@@ -81,7 +82,7 @@ from bpy.props import (FloatProperty,
                        )
 
 
-class AddTorus(bpy.types.Operator):
+class AddTorus(Operator):
     '''Add a torus mesh'''
     bl_idname = "mesh.primitive_torus_add"
     bl_label = "Add Torus"
diff --git a/release/scripts/startup/bl_operators/animsys_update.py b/release/scripts/startup/bl_operators/animsys_update.py
index 63d438a5066504634e3fc721d1a7f59186235d9a..3710c57ac167e74ac175984757324f87d1702ed2 100644
--- a/release/scripts/startup/bl_operators/animsys_update.py
+++ b/release/scripts/startup/bl_operators/animsys_update.py
@@ -686,9 +686,10 @@ data_path_update = [
 
 
 import bpy
+from bpy.types import Operator
 
 
-class UpdateAnimData(bpy.types.Operator):
+class UpdateAnimData(Operator):
     """Update data paths from 2.56 and previous versions, modifying data paths of drivers and fcurves"""
     bl_idname = "anim.update_data_paths"
     bl_label = "Update Animation Data"
diff --git a/release/scripts/startup/bl_operators/image.py b/release/scripts/startup/bl_operators/image.py
index 23bafe2eaae4bf39398c1afbf5f428648f4a8167..9226cbed51b737ba05d1a7860407d90cb75acb34 100644
--- a/release/scripts/startup/bl_operators/image.py
+++ b/release/scripts/startup/bl_operators/image.py
@@ -19,10 +19,11 @@
 # <pep8-80 compliant>
 
 import bpy
+from bpy.types import Operator
 from bpy.props import StringProperty
 
 
-class EditExternally(bpy.types.Operator):
+class EditExternally(Operator):
     '''Edit image in an external application'''
     bl_idname = "image.external_edit"
     bl_label = "Image Edit Externally"
@@ -61,13 +62,19 @@ class EditExternally(bpy.types.Operator):
     def execute(self, context):
         import os
         import subprocess
-        filepath = os.path.normpath(bpy.path.abspath(self.filepath))
+
+        filepath = self.filepath
+
+        if not filepath:
+            self.report({'ERROR'}, "Image path not set")
+            return {'CANCELLED'}
+
+        filepath = os.path.normpath(bpy.path.abspath(filepath))
 
         if not os.path.exists(filepath):
             self.report({'ERROR'},
                         "Image path %r not found, image may be packed or "
                         "unsaved." % filepath)
-
             return {'CANCELLED'}
 
         cmd = self._editor_guess(context) + [filepath]
@@ -100,7 +107,7 @@ class EditExternally(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class SaveDirty(bpy.types.Operator):
+class SaveDirty(Operator):
     """Save all modified textures"""
     bl_idname = "image.save_dirty"
     bl_label = "Save Dirty"
@@ -123,7 +130,7 @@ class SaveDirty(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class ProjectEdit(bpy.types.Operator):
+class ProjectEdit(Operator):
     """Edit a snapshot of the viewport in an external image editor"""
     bl_idname = "image.project_edit"
     bl_label = "Project Edit"
@@ -190,7 +197,7 @@ class ProjectEdit(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class ProjectApply(bpy.types.Operator):
+class ProjectApply(Operator):
     """Project edited image back onto the object"""
     bl_idname = "image.project_apply"
     bl_label = "Project Apply"
diff --git a/release/scripts/startup/bl_operators/mesh.py b/release/scripts/startup/bl_operators/mesh.py
index 344b238709f9feb490626699a80a1019ffc28a65..4114381f3dc3e484cbdca66dd2a133368fd95f63 100644
--- a/release/scripts/startup/bl_operators/mesh.py
+++ b/release/scripts/startup/bl_operators/mesh.py
@@ -19,11 +19,12 @@
 # <pep8-80 compliant>
 
 import bpy
+from bpy.types import Operator
 
 from bpy.props import EnumProperty
 
 
-class MeshSelectInteriorFaces(bpy.types.Operator):
+class MeshSelectInteriorFaces(Operator):
     '''Select faces where all edges have more then 2 face users.'''
 
     bl_idname = "mesh.faces_select_interior"
@@ -67,7 +68,7 @@ class MeshSelectInteriorFaces(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class MeshMirrorUV(bpy.types.Operator):
+class MeshMirrorUV(Operator):
     '''Copy mirror UV coordinates on the X axis based on a mirrored mesh'''
     bl_idname = "mesh.faces_mirror_uv"
     bl_label = "Copy Mirrored UV coords"
diff --git a/release/scripts/startup/bl_operators/nla.py b/release/scripts/startup/bl_operators/nla.py
index 469e9015e62ebb77a0cc1d71d9857ab8aa7837eb..44ed846e530053c0acef8cff618ca7f7f2318915 100644
--- a/release/scripts/startup/bl_operators/nla.py
+++ b/release/scripts/startup/bl_operators/nla.py
@@ -19,6 +19,7 @@
 # <pep8-80 compliant>
 
 import bpy
+from bpy.types import Operator
 
 
 def pose_frame_info(obj):
@@ -191,7 +192,7 @@ def bake(frame_start,
 from bpy.props import IntProperty, BoolProperty, EnumProperty
 
 
-class BakeAction(bpy.types.Operator):
+class BakeAction(Operator):
     '''Bake animation to an Action'''
     bl_idname = "nla.bake"
     bl_label = "Bake Action"
diff --git a/release/scripts/startup/bl_operators/object.py b/release/scripts/startup/bl_operators/object.py
index 627a1530fe15657c1bcf3aad7a7f93bd446faa28..79f57990f370e02274948ccdeacff43fa7d4665b 100644
--- a/release/scripts/startup/bl_operators/object.py
+++ b/release/scripts/startup/bl_operators/object.py
@@ -19,10 +19,11 @@
 # <pep8-80 compliant>
 
 import bpy
+from bpy.types import Operator
 from bpy.props import StringProperty, BoolProperty, EnumProperty, IntProperty
 
 
-class SelectPattern(bpy.types.Operator):
+class SelectPattern(Operator):
     '''Select object matching a naming pattern'''
     bl_idname = "object.select_pattern"
     bl_label = "Select Pattern"
@@ -99,7 +100,7 @@ class SelectPattern(bpy.types.Operator):
         row.prop(self, "extend")
 
 
-class SelectCamera(bpy.types.Operator):
+class SelectCamera(Operator):
     '''Select object matching a naming pattern'''
     bl_idname = "object.select_camera"
     bl_label = "Select Camera"
@@ -120,7 +121,7 @@ class SelectCamera(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class SelectHierarchy(bpy.types.Operator):
+class SelectHierarchy(Operator):
     '''Select object relative to the active objects position''' \
     '''in the hierarchy'''
     bl_idname = "object.select_hierarchy"
@@ -187,7 +188,7 @@ class SelectHierarchy(bpy.types.Operator):
         return {'CANCELLED'}
 
 
-class SubdivisionSet(bpy.types.Operator):
+class SubdivisionSet(Operator):
     '''Sets a Subdivision Surface Level (1-5)'''
 
     bl_idname = "object.subdivision_set"
@@ -263,7 +264,7 @@ class SubdivisionSet(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class ShapeTransfer(bpy.types.Operator):
+class ShapeTransfer(Operator):
     '''Copy another selected objects active shape to this one by ''' \
     '''applying the relative offsets'''
 
@@ -507,7 +508,7 @@ class ShapeTransfer(bpy.types.Operator):
         return self._main(ob_act, objects, self.mode, self.use_clamp)
 
 
-class JoinUVs(bpy.types.Operator):
+class JoinUVs(Operator):
     '''Copy UV Layout to objects with matching geometry'''
     bl_idname = "object.join_uvs"
     bl_label = "Join as UVs"
@@ -575,7 +576,7 @@ class JoinUVs(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class MakeDupliFace(bpy.types.Operator):
+class MakeDupliFace(Operator):
     '''Make linked objects into dupli-faces'''
     bl_idname = "object.make_dupli_face"
     bl_label = "Make Dupli-Face"
@@ -649,7 +650,7 @@ class MakeDupliFace(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class IsolateTypeRender(bpy.types.Operator):
+class IsolateTypeRender(Operator):
     '''Hide unselected render objects of same type as active ''' \
     '''by setting the hide render flag'''
     bl_idname = "object.isolate_type_render"
@@ -670,7 +671,7 @@ class IsolateTypeRender(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class ClearAllRestrictRender(bpy.types.Operator):
+class ClearAllRestrictRender(Operator):
     '''Reveal all render objects by setting the hide render flag'''
     bl_idname = "object.hide_render_clear_all"
     bl_label = "Clear All Restrict Render"
diff --git a/release/scripts/startup/bl_operators/object_align.py b/release/scripts/startup/bl_operators/object_align.py
index 7fd769c40c9bbb44dc2a9da51b4944492bf76e41..d4a3d826f2f5c47d6538ee2dd8d2af8517ab9598 100644
--- a/release/scripts/startup/bl_operators/object_align.py
+++ b/release/scripts/startup/bl_operators/object_align.py
@@ -19,6 +19,7 @@
 # <pep8-80 compliant>
 
 import bpy
+from bpy.types import Operator
 from mathutils import Vector
 
 
@@ -339,7 +340,7 @@ def align_objects(align_x,
 from bpy.props import EnumProperty, BoolProperty
 
 
-class AlignObjects(bpy.types.Operator):
+class AlignObjects(Operator):
     '''Align Objects'''
     bl_idname = "object.align"
     bl_label = "Align Objects"
diff --git a/release/scripts/startup/bl_operators/object_quick_effects.py b/release/scripts/startup/bl_operators/object_quick_effects.py
index ef10bfd737db05693035bafa2797c9e7c09a2de3..cd206da3a8ee4f5ee4b7da0b0973d2c2a23584b6 100644
--- a/release/scripts/startup/bl_operators/object_quick_effects.py
+++ b/release/scripts/startup/bl_operators/object_quick_effects.py
@@ -20,6 +20,7 @@
 
 from mathutils import Vector
 import bpy
+from bpy.types import Operator
 from bpy.props import (BoolProperty,
                        EnumProperty,
                        IntProperty,
@@ -45,7 +46,7 @@ def object_ensure_material(obj, mat_name):
     return mat
 
 
-class QuickFur(bpy.types.Operator):
+class QuickFur(Operator):
     bl_idname = "object.quick_fur"
     bl_label = "Quick Fur"
     bl_options = {'REGISTER', 'UNDO'}
@@ -104,7 +105,7 @@ class QuickFur(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class QuickExplode(bpy.types.Operator):
+class QuickExplode(Operator):
     bl_idname = "object.quick_explode"
     bl_label = "Quick Explode"
     bl_options = {'REGISTER', 'UNDO'}
@@ -265,7 +266,7 @@ def obj_bb_minmax(obj, min_co, max_co):
         max_co[2] = max(bb_vec[2], max_co[2])
 
 
-class QuickSmoke(bpy.types.Operator):
+class QuickSmoke(Operator):
     bl_idname = "object.quick_smoke"
     bl_label = "Quick Smoke"
     bl_options = {'REGISTER', 'UNDO'}
@@ -383,7 +384,7 @@ class QuickSmoke(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class QuickFluid(bpy.types.Operator):
+class QuickFluid(Operator):
     bl_idname = "object.quick_fluid"
     bl_label = "Quick Fluid"
     bl_options = {'REGISTER', 'UNDO'}
diff --git a/release/scripts/startup/bl_operators/object_randomize_transform.py b/release/scripts/startup/bl_operators/object_randomize_transform.py
index b94c4f06cd3260aa72a5f897043844640e068792..f65e3d27d830c37cdb680977bb86c59733fd6d45 100644
--- a/release/scripts/startup/bl_operators/object_randomize_transform.py
+++ b/release/scripts/startup/bl_operators/object_randomize_transform.py
@@ -19,6 +19,7 @@
 # <pep8-80 compliant>
 
 import bpy
+from bpy.types import Operator
 
 
 def randomize_selected(seed, delta, loc, rot, scale, scale_even):
@@ -87,7 +88,7 @@ def randomize_selected(seed, delta, loc, rot, scale, scale_even):
 from bpy.props import IntProperty, BoolProperty, FloatVectorProperty
 
 
-class RandomizeLocRotSize(bpy.types.Operator):
+class RandomizeLocRotSize(Operator):
     '''Randomize objects loc/rot/scale'''
     bl_idname = "object.randomize_transform"
     bl_label = "Randomize Transform"
diff --git a/release/scripts/startup/bl_operators/presets.py b/release/scripts/startup/bl_operators/presets.py
index fbcc327c3bdc0cdd426be5a15a3163908447f3e9..2fd0c4a9e12195a7648a305cc7961d0d0fe47594 100644
--- a/release/scripts/startup/bl_operators/presets.py
+++ b/release/scripts/startup/bl_operators/presets.py
@@ -19,6 +19,7 @@
 # <pep8-80 compliant>
 
 import bpy
+from bpy.types import Menu, Operator
 
 
 class AddPresetBase():
@@ -140,7 +141,7 @@ class AddPresetBase():
             return self.execute(context)
 
 
-class ExecutePreset(bpy.types.Operator):
+class ExecutePreset(Operator):
     ''' Executes a preset '''
     bl_idname = "script.execute_preset"
     bl_label = "Execute a Python Preset"
@@ -168,7 +169,7 @@ class ExecutePreset(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class AddPresetRender(AddPresetBase, bpy.types.Operator):
+class AddPresetRender(AddPresetBase, Operator):
     '''Add a Render Preset'''
     bl_idname = "render.preset_add"
     bl_label = "Add Render Preset"
@@ -194,7 +195,7 @@ class AddPresetRender(AddPresetBase, bpy.types.Operator):
     preset_subdir = "render"
 
 
-class AddPresetSSS(AddPresetBase, bpy.types.Operator):
+class AddPresetSSS(AddPresetBase, Operator):
     '''Add a Subsurface Scattering Preset'''
     bl_idname = "material.sss_preset_add"
     bl_label = "Add SSS Preset"
@@ -222,7 +223,7 @@ class AddPresetSSS(AddPresetBase, bpy.types.Operator):
     preset_subdir = "sss"
 
 
-class AddPresetCloth(AddPresetBase, bpy.types.Operator):
+class AddPresetCloth(AddPresetBase, Operator):
     '''Add a Cloth Preset'''
     bl_idname = "cloth.preset_add"
     bl_label = "Add Cloth Preset"
@@ -244,7 +245,7 @@ class AddPresetCloth(AddPresetBase, bpy.types.Operator):
     preset_subdir = "cloth"
 
 
-class AddPresetSunSky(AddPresetBase, bpy.types.Operator):
+class AddPresetSunSky(AddPresetBase, Operator):
     '''Add a Sky & Atmosphere Preset'''
     bl_idname = "lamp.sunsky_preset_add"
     bl_label = "Add Sunsky Preset"
@@ -273,7 +274,7 @@ class AddPresetSunSky(AddPresetBase, bpy.types.Operator):
     preset_subdir = "sunsky"
 
 
-class AddPresetInteraction(AddPresetBase, bpy.types.Operator):
+class AddPresetInteraction(AddPresetBase, Operator):
     '''Add an Application Interaction Preset'''
     bl_idname = "wm.interaction_preset_add"
     bl_label = "Add Interaction Preset"
@@ -299,7 +300,7 @@ class AddPresetInteraction(AddPresetBase, bpy.types.Operator):
     preset_subdir = "interaction"
 
 
-class AddPresetKeyconfig(AddPresetBase, bpy.types.Operator):
+class AddPresetKeyconfig(AddPresetBase, Operator):
     '''Add a Keyconfig Preset'''
     bl_idname = "wm.keyconfig_preset_add"
     bl_label = "Add Keyconfig Preset"
@@ -322,7 +323,7 @@ class AddPresetKeyconfig(AddPresetBase, bpy.types.Operator):
             keyconfigs.remove(keyconfigs.active)
 
 
-class AddPresetOperator(AddPresetBase, bpy.types.Operator):
+class AddPresetOperator(AddPresetBase, Operator):
     '''Add an Application Interaction Preset'''
     bl_idname = "wm.operator_preset_add"
     bl_label = "Operator Preset"
@@ -345,7 +346,7 @@ class AddPresetOperator(AddPresetBase, bpy.types.Operator):
 
     @property
     def preset_values(self):
-        properties_blacklist = bpy.types.Operator.bl_rna.properties.keys()
+        properties_blacklist = Operator.bl_rna.properties.keys()
 
         prefix, suffix = self.operator.split("_OT_", 1)
         op = getattr(getattr(bpy.ops, prefix.lower()), suffix)
@@ -367,12 +368,12 @@ class AddPresetOperator(AddPresetBase, bpy.types.Operator):
         return os.path.join("operator", "%s.%s" % (prefix.lower(), suffix))
 
 
-class WM_MT_operator_presets(bpy.types.Menu):
+class WM_MT_operator_presets(Menu):
     bl_label = "Operator Presets"
 
     def draw(self, context):
         self.operator = context.space_data.operator.bl_idname
-        bpy.types.Menu.draw_preset(self, context)
+        Menu.draw_preset(self, context)
 
     @property
     def preset_subdir(self):
diff --git a/release/scripts/startup/bl_operators/screen_play_rendered_anim.py b/release/scripts/startup/bl_operators/screen_play_rendered_anim.py
index a38d817d738f281d9a99e4fe768afc79442f428c..c2a09d6a4ae15a904f5323ba98a02ef8b7176273 100644
--- a/release/scripts/startup/bl_operators/screen_play_rendered_anim.py
+++ b/release/scripts/startup/bl_operators/screen_play_rendered_anim.py
@@ -21,6 +21,7 @@
 # Originally written by Matt Ebb
 
 import bpy
+from bpy.types import Operator
 import os
 
 
@@ -64,7 +65,7 @@ def guess_player_path(preset):
     return player_path
 
 
-class PlayRenderedAnim(bpy.types.Operator):
+class PlayRenderedAnim(Operator):
     '''Plays back rendered frames/movies using an external player.'''
     bl_idname = "render.play_rendered_anim"
     bl_label = "Play Rendered Animation"
diff --git a/release/scripts/startup/bl_operators/sequencer.py b/release/scripts/startup/bl_operators/sequencer.py
index 16b72406c498f8b7f617e12b66c97b6e4d42d0ed..d2f85c8d7c715d1b88f70841301922e96efde671 100644
--- a/release/scripts/startup/bl_operators/sequencer.py
+++ b/release/scripts/startup/bl_operators/sequencer.py
@@ -19,11 +19,12 @@
 # <pep8 compliant>
 
 import bpy
+from bpy.types import Operator
 
 from bpy.props import IntProperty
 
 
-class SequencerCrossfadeSounds(bpy.types.Operator):
+class SequencerCrossfadeSounds(Operator):
     '''Do crossfading volume animation of two selected sound strips.'''
 
     bl_idname = "sequencer.crossfade_sounds"
@@ -74,7 +75,7 @@ class SequencerCrossfadeSounds(bpy.types.Operator):
             return {'CANCELLED'}
 
 
-class SequencerCutMulticam(bpy.types.Operator):
+class SequencerCutMulticam(Operator):
     '''Cut multicam strip and select camera.'''
 
     bl_idname = "sequencer.cut_multicam"
@@ -112,7 +113,7 @@ class SequencerCutMulticam(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class SequencerDeinterlaceSelectedMovies(bpy.types.Operator):
+class SequencerDeinterlaceSelectedMovies(Operator):
     '''Deinterlace all selected movie sources.'''
 
     bl_idname = "sequencer.deinterlace_selected_movies"
diff --git a/release/scripts/startup/bl_operators/uvcalc_follow_active.py b/release/scripts/startup/bl_operators/uvcalc_follow_active.py
index 43ca9af59baccd8f945fc9ff6fb90a71e475b428..6c258d094e83c453c9d5c31b19797377bbd1177a 100644
--- a/release/scripts/startup/bl_operators/uvcalc_follow_active.py
+++ b/release/scripts/startup/bl_operators/uvcalc_follow_active.py
@@ -22,6 +22,7 @@
 # http://mediawiki.blender.org/index.php/Scripts/Manual/UV_Calculate/Follow_active_quads
 
 import bpy
+from bpy.types import Operator
 
 
 def extend(obj, operator, EXTEND_MODE):
@@ -226,7 +227,7 @@ def main(context, operator):
     extend(obj, operator, operator.properties.mode)
 
 
-class FollowActiveQuads(bpy.types.Operator):
+class FollowActiveQuads(Operator):
     '''Follow UVs from active quads along continuous face loops'''
     bl_idname = "uv.follow_active_quads"
     bl_label = "Follow Active Quads"
diff --git a/release/scripts/startup/bl_operators/uvcalc_lightmap.py b/release/scripts/startup/bl_operators/uvcalc_lightmap.py
index 9ae0cd0ddf961a048659685482f27954cafd7b87..6b1c6e1be9801d551e48459b8f1779ca1fa5ae6a 100644
--- a/release/scripts/startup/bl_operators/uvcalc_lightmap.py
+++ b/release/scripts/startup/bl_operators/uvcalc_lightmap.py
@@ -19,11 +19,20 @@
 # <pep8 compliant>
 
 import bpy
+from bpy.types import Operator
 import mathutils
 
 
 class prettyface(object):
-    __slots__ = "uv", "width", "height", "children", "xoff", "yoff", "has_parent", "rot"
+    __slots__ = ("uv",
+                 "width",
+                 "height",
+                 "children",
+                 "xoff",
+                 "yoff",
+                 "has_parent",
+                 "rot",
+                 )
 
     def __init__(self, data):
         self.has_parent = False
@@ -263,10 +272,9 @@ def lightmap_uvpack(meshes,
             del trylens
 
             def trilensdiff(t1, t2):
-                return\
-                abs(t1[1][t1[2][0]] - t2[1][t2[2][0]]) + \
-                abs(t1[1][t1[2][1]] - t2[1][t2[2][1]]) + \
-                abs(t1[1][t1[2][2]] - t2[1][t2[2][2]])
+                return (abs(t1[1][t1[2][0]] - t2[1][t2[2][0]]) +
+                        abs(t1[1][t1[2][1]] - t2[1][t2[2][1]]) +
+                        abs(t1[1][t1[2][2]] - t2[1][t2[2][2]]))
 
             while tri_lengths:
                 tri1 = tri_lengths.pop()
@@ -520,7 +528,7 @@ def unwrap(operator, context, **kwargs):
         if obj and obj.type == 'MESH':
             meshes = [obj.data]
     else:
-        meshes = {me.name: me for obj in context.selected_objects if obj.type == 'MESH' for me in (obj.data,) if not me.library if len(me.faces)}.values()
+        meshes = list({me for obj in context.selected_objects if obj.type == 'MESH' for me in (obj.data,) if me.faces and me.library is None})
 
     if not meshes:
         operator.report({'ERROR'}, "No mesh object.")
@@ -536,29 +544,58 @@ def unwrap(operator, context, **kwargs):
 from bpy.props import BoolProperty, FloatProperty, IntProperty
 
 
-class LightMapPack(bpy.types.Operator):
+class LightMapPack(Operator):
     '''Follow UVs from active quads along continuous face loops'''
     bl_idname = "uv.lightmap_pack"
     bl_label = "Lightmap Pack"
     bl_options = {'REGISTER', 'UNDO'}
 
     PREF_CONTEXT = bpy.props.EnumProperty(
+            name="Selection",
+            description="",
             items=(("SEL_FACES", "Selected Faces", "Space all UVs evently"),
                    ("ALL_FACES", "All Faces", "Average space UVs edge length of each loop"),
                    ("ALL_OBJECTS", "Selected Mesh Object", "Average space UVs edge length of each loop")
                    ),
-            name="Selection",
-            description="")
+            )
 
     # Image & UVs...
-    PREF_PACK_IN_ONE = BoolProperty(name="Share Tex Space", default=True, description="Objects Share texture space, map all objects into 1 uvmap")
-    PREF_NEW_UVLAYER = BoolProperty(name="New UV Layer", default=False, description="Create a new UV layer for every mesh packed")
-    PREF_APPLY_IMAGE = BoolProperty(name="New Image", default=False, description="Assign new images for every mesh (only one if shared tex space enabled)")
-    PREF_IMG_PX_SIZE = IntProperty(name="Image Size", min=64, max=5000, default=512, description="Width and Height for the new image")
-
+    PREF_PACK_IN_ONE = BoolProperty(
+            name="Share Tex Space",
+            description=("Objects Share texture space, map all objects "
+                         "into 1 uvmap"),
+            default=True,
+            )
+    PREF_NEW_UVLAYER = BoolProperty(
+            name="New UV Layer",
+            description="Create a new UV layer for every mesh packed",
+            default=False,
+            )
+    PREF_APPLY_IMAGE = BoolProperty(
+            name="New Image",
+            description=("Assign new images for every mesh (only one if "
+                         "shared tex space enabled)"),
+            default=False,
+            )
+    PREF_IMG_PX_SIZE = IntProperty(
+            name="Image Size",
+            description="Width and Height for the new image",
+            min=64, max=5000,
+            default=512,
+            )
     # UV Packing...
-    PREF_BOX_DIV = IntProperty(name="Pack Quality", min=1, max=48, default=12, description="Pre Packing before the complex boxpack")
-    PREF_MARGIN_DIV = FloatProperty(name="Margin", min=0.001, max=1.0, default=0.1, description="Size of the margin as a division of the UV")
+    PREF_BOX_DIV = IntProperty(
+            name="Pack Quality",
+            description="Pre Packing before the complex boxpack",
+            min=1, max=48,
+            default=12,
+            )
+    PREF_MARGIN_DIV = FloatProperty(
+            name="Margin",
+            description="Size of the margin as a division of the UV",
+            min=0.001, max=1.0,
+            default=0.1,
+            )
 
     def execute(self, context):
         kwargs = self.as_keywords()
diff --git a/release/scripts/startup/bl_operators/uvcalc_smart_project.py b/release/scripts/startup/bl_operators/uvcalc_smart_project.py
index 851f33bde115091a6d0b89c6ca9ca783d6b92e8b..8afd6c104e072c31d788f861be35cac2ec016705 100644
--- a/release/scripts/startup/bl_operators/uvcalc_smart_project.py
+++ b/release/scripts/startup/bl_operators/uvcalc_smart_project.py
@@ -20,6 +20,7 @@
 
 from mathutils import Matrix, Vector, geometry
 import bpy
+from bpy.types import Operator
 
 DEG_TO_RAD = 0.017453292519943295 # pi/180.0
 SMALL_NUM = 0.000000001
@@ -812,39 +813,26 @@ def main(context,
     global RotMatStepRotation
     main_consts()
 
-    # TODO, all selected meshes
-    '''
-    # objects = context.selected_editable_objects
-    objects = []
-
-    # we can will tag them later.
-    obList =  [ob for ob in objects if ob.type == 'MESH']
-
-    # Face select object may not be selected.
-    ob = context.active_object
-
-    if ob and (not ob.select) and ob.type == 'MESH':
-        # Add to the list
-        obList =[ob]
-    del objects
-    '''
+    # Create the variables.
+    USER_PROJECTION_LIMIT = projection_limit
+    USER_ONLY_SELECTED_FACES = True
+    USER_SHARE_SPACE = 1 # Only for hole filling.
+    USER_STRETCH_ASPECT = 1 # Only for hole filling.
+    USER_ISLAND_MARGIN = island_margin # Only for hole filling.
+    USER_FILL_HOLES = 0
+    USER_FILL_HOLES_QUALITY = 50 # Only for hole filling.
+    USER_VIEW_INIT = 0 # Only for hole filling.
     
-    # quick workaround
-    obList =  [ob for ob in [context.active_object] if ob and ob.type == 'MESH']
+    is_editmode = (context.active_object.mode == 'EDIT')
+    if is_editmode:
+        obList =  [ob for ob in [context.active_object] if ob and ob.type == 'MESH']
+    else:
+        obList =  [ob for ob in context.selected_editable_objects if ob and ob.type == 'MESH']
+        USER_ONLY_SELECTED_FACES = False
 
     if not obList:
         raise('error, no selected mesh objects')
 
-    # Create the variables.
-    USER_PROJECTION_LIMIT = projection_limit
-    USER_ONLY_SELECTED_FACES = (1)
-    USER_SHARE_SPACE = (1) # Only for hole filling.
-    USER_STRETCH_ASPECT = (1) # Only for hole filling.
-    USER_ISLAND_MARGIN = island_margin # Only for hole filling.
-    USER_FILL_HOLES = (0)
-    USER_FILL_HOLES_QUALITY = (50) # Only for hole filling.
-    USER_VIEW_INIT = (0) # Only for hole filling.
-
     # Reuse variable
     if len(obList) == 1:
         ob = "Unwrap %i Selected Mesh"
@@ -905,8 +893,8 @@ def main(context,
 
         if USER_ONLY_SELECTED_FACES:
             meshFaces = [thickface(f, uv_layer[i], me_verts) for i, f in enumerate(me.faces) if f.select]
-        #else:
-        #	meshFaces = map(thickface, me.faces)
+        else:
+        	meshFaces = [thickface(f, uv_layer[i], me_verts) for i, f in enumerate(me.faces)]
 
         if not meshFaces:
             continue
@@ -921,7 +909,7 @@ def main(context,
         # meshFaces = []
 
         # meshFaces.sort( lambda a, b: cmp(b.area , a.area) ) # Biggest first.
-        meshFaces.sort( key = lambda a: -a.area )
+        meshFaces.sort(key=lambda a: -a.area)
 
         # remove all zero area faces
         while meshFaces and meshFaces[-1].area <= SMALL_NUM:
@@ -1116,7 +1104,7 @@ def main(context,
 from bpy.props import FloatProperty
 
 
-class SmartProject(bpy.types.Operator):
+class SmartProject(Operator):
     '''This script projection unwraps the selected faces of a mesh. it operates on all selected mesh objects, and can be used unwrap selected faces, or all faces.'''
     bl_idname = "uv.smart_project"
     bl_label = "Smart UV Project"
diff --git a/release/scripts/startup/bl_operators/vertexpaint_dirt.py b/release/scripts/startup/bl_operators/vertexpaint_dirt.py
index 672db71e361edf866f3b3719af401c2a559e040b..facde82f812577133384065b6f0dc540a4ae0a2a 100644
--- a/release/scripts/startup/bl_operators/vertexpaint_dirt.py
+++ b/release/scripts/startup/bl_operators/vertexpaint_dirt.py
@@ -142,10 +142,11 @@ def applyVertexDirt(me, blur_iterations, blur_strength, clamp_dirt, clamp_clean,
 
 
 import bpy
+from bpy.types import Operator
 from bpy.props import FloatProperty, IntProperty, BoolProperty
 
 
-class VertexPaintDirt(bpy.types.Operator):
+class VertexPaintDirt(Operator):
     bl_idname = "paint.vertex_color_dirt"
     bl_label = "Dirty Vertex Colors"
     bl_options = {'REGISTER', 'UNDO'}
diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py
index af33e45668c19933b84a5e1f0a50cc2172f44314..fe75c54e60e6039990c7fce268b0e10efe64e555 100644
--- a/release/scripts/startup/bl_operators/wm.py
+++ b/release/scripts/startup/bl_operators/wm.py
@@ -19,13 +19,14 @@
 # <pep8 compliant>
 
 import bpy
+from bpy.types import Menu, Operator
 from bpy.props import StringProperty, BoolProperty, IntProperty, \
                       FloatProperty, EnumProperty
 
 from rna_prop_ui import rna_idprop_ui_prop_get, rna_idprop_ui_prop_clear
 
 
-class MESH_OT_delete_edgeloop(bpy.types.Operator):
+class MESH_OT_delete_edgeloop(Operator):
     '''Delete an edge loop by merging the faces on each side to a single face loop'''
     bl_idname = "mesh.delete_edgeloop"
     bl_label = "Delete Edge Loop"
@@ -76,7 +77,7 @@ def execute_context_assign(self, context):
     return {'FINISHED'}
 
 
-class BRUSH_OT_active_index_set(bpy.types.Operator):
+class BRUSH_OT_active_index_set(Operator):
     '''Set active sculpt/paint brush from it's number'''
     bl_idname = "brush.active_index_set"
     bl_label = "Set Brush Number"
@@ -104,7 +105,7 @@ class BRUSH_OT_active_index_set(bpy.types.Operator):
         return {'CANCELLED'}
 
 
-class WM_OT_context_set_boolean(bpy.types.Operator):
+class WM_OT_context_set_boolean(Operator):
     '''Set a context value.'''
     bl_idname = "wm.context_set_boolean"
     bl_label = "Context Set Boolean"
@@ -117,7 +118,7 @@ class WM_OT_context_set_boolean(bpy.types.Operator):
     execute = execute_context_assign
 
 
-class WM_OT_context_set_int(bpy.types.Operator):  # same as enum
+class WM_OT_context_set_int(Operator):  # same as enum
     '''Set a context value.'''
     bl_idname = "wm.context_set_int"
     bl_label = "Context Set"
@@ -130,7 +131,7 @@ class WM_OT_context_set_int(bpy.types.Operator):  # same as enum
     execute = execute_context_assign
 
 
-class WM_OT_context_scale_int(bpy.types.Operator):
+class WM_OT_context_scale_int(Operator):
     '''Scale an int context value.'''
     bl_idname = "wm.context_scale_int"
     bl_label = "Context Set"
@@ -166,7 +167,7 @@ class WM_OT_context_scale_int(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class WM_OT_context_set_float(bpy.types.Operator):  # same as enum
+class WM_OT_context_set_float(Operator):  # same as enum
     '''Set a context value.'''
     bl_idname = "wm.context_set_float"
     bl_label = "Context Set Float"
@@ -180,7 +181,7 @@ class WM_OT_context_set_float(bpy.types.Operator):  # same as enum
     execute = execute_context_assign
 
 
-class WM_OT_context_set_string(bpy.types.Operator):  # same as enum
+class WM_OT_context_set_string(Operator):  # same as enum
     '''Set a context value.'''
     bl_idname = "wm.context_set_string"
     bl_label = "Context Set String"
@@ -193,7 +194,7 @@ class WM_OT_context_set_string(bpy.types.Operator):  # same as enum
     execute = execute_context_assign
 
 
-class WM_OT_context_set_enum(bpy.types.Operator):
+class WM_OT_context_set_enum(Operator):
     '''Set a context value.'''
     bl_idname = "wm.context_set_enum"
     bl_label = "Context Set Enum"
@@ -207,7 +208,7 @@ class WM_OT_context_set_enum(bpy.types.Operator):
     execute = execute_context_assign
 
 
-class WM_OT_context_set_value(bpy.types.Operator):
+class WM_OT_context_set_value(Operator):
     '''Set a context value.'''
     bl_idname = "wm.context_set_value"
     bl_label = "Context Set Value"
@@ -225,7 +226,7 @@ class WM_OT_context_set_value(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class WM_OT_context_toggle(bpy.types.Operator):
+class WM_OT_context_toggle(Operator):
     '''Toggle a context value.'''
     bl_idname = "wm.context_toggle"
     bl_label = "Context Toggle"
@@ -244,7 +245,7 @@ class WM_OT_context_toggle(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class WM_OT_context_toggle_enum(bpy.types.Operator):
+class WM_OT_context_toggle_enum(Operator):
     '''Toggle a context value.'''
     bl_idname = "wm.context_toggle_enum"
     bl_label = "Context Toggle Values"
@@ -270,7 +271,7 @@ class WM_OT_context_toggle_enum(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class WM_OT_context_cycle_int(bpy.types.Operator):
+class WM_OT_context_cycle_int(Operator):
     '''Set a context value. Useful for cycling active material, '''
     '''vertex keys, groups' etc.'''
     bl_idname = "wm.context_cycle_int"
@@ -305,7 +306,7 @@ class WM_OT_context_cycle_int(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class WM_OT_context_cycle_enum(bpy.types.Operator):
+class WM_OT_context_cycle_enum(Operator):
     '''Toggle a context value.'''
     bl_idname = "wm.context_cycle_enum"
     bl_label = "Context Enum Cycle"
@@ -357,7 +358,7 @@ class WM_OT_context_cycle_enum(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class WM_OT_context_cycle_array(bpy.types.Operator):
+class WM_OT_context_cycle_array(Operator):
     '''Set a context array value.
     Useful for cycling the active mesh edit mode.'''
     bl_idname = "wm.context_cycle_array"
@@ -385,7 +386,7 @@ class WM_OT_context_cycle_array(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class WM_MT_context_menu_enum(bpy.types.Menu):
+class WM_MT_context_menu_enum(Menu):
     bl_label = ""
     data_path = ""  # BAD DESIGN, set from operator below.
 
@@ -405,7 +406,7 @@ class WM_MT_context_menu_enum(bpy.types.Menu):
             prop.value = identifier
 
 
-class WM_OT_context_menu_enum(bpy.types.Operator):
+class WM_OT_context_menu_enum(Operator):
     bl_idname = "wm.context_menu_enum"
     bl_label = "Context Enum Menu"
     bl_options = {'UNDO', 'INTERNAL'}
@@ -418,7 +419,7 @@ class WM_OT_context_menu_enum(bpy.types.Operator):
         return {'PASS_THROUGH'}
 
 
-class WM_OT_context_set_id(bpy.types.Operator):
+class WM_OT_context_set_id(Operator):
     '''Toggle a context value.'''
     bl_idname = "wm.context_set_id"
     bl_label = "Set Library ID"
@@ -466,7 +467,7 @@ data_path_item = StringProperty(
         description="The data path from each iterable to the value (int or float)")
 
 
-class WM_OT_context_collection_boolean_set(bpy.types.Operator):
+class WM_OT_context_collection_boolean_set(Operator):
     '''Set boolean values for a collection of items'''
     bl_idname = "wm.context_collection_boolean_set"
     bl_label = "Context Collection Boolean Set"
@@ -520,7 +521,7 @@ class WM_OT_context_collection_boolean_set(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class WM_OT_context_modal_mouse(bpy.types.Operator):
+class WM_OT_context_modal_mouse(Operator):
     '''Adjust arbitrary values with mouse input'''
     bl_idname = "wm.context_modal_mouse"
     bl_label = "Context Modal Mouse"
@@ -586,7 +587,7 @@ class WM_OT_context_modal_mouse(bpy.types.Operator):
             self._values_clear()
             return {'FINISHED'}
 
-        elif event_type in ('RIGHTMOUSE', 'ESC'):
+        elif event_type in {'RIGHTMOUSE', 'ESC'}:
             self._values_restore()
             return {'FINISHED'}
 
@@ -607,7 +608,7 @@ class WM_OT_context_modal_mouse(bpy.types.Operator):
             return {'RUNNING_MODAL'}
 
 
-class WM_OT_url_open(bpy.types.Operator):
+class WM_OT_url_open(Operator):
     "Open a website in the Webbrowser"
     bl_idname = "wm.url_open"
     bl_label = ""
@@ -621,7 +622,7 @@ class WM_OT_url_open(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class WM_OT_path_open(bpy.types.Operator):
+class WM_OT_path_open(Operator):
     "Open a path in a file browser"
     bl_idname = "wm.path_open"
     bl_label = ""
@@ -654,7 +655,7 @@ class WM_OT_path_open(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class WM_OT_doc_view(bpy.types.Operator):
+class WM_OT_doc_view(Operator):
     '''Load online reference docs'''
     bl_idname = "wm.doc_view"
     bl_label = "View Documentation"
@@ -708,7 +709,7 @@ class WM_OT_doc_view(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class WM_OT_doc_edit(bpy.types.Operator):
+class WM_OT_doc_edit(Operator):
     '''Load online reference docs'''
     bl_idname = "wm.doc_edit"
     bl_label = "Edit Documentation"
@@ -792,7 +793,7 @@ rna_min = FloatProperty(name="Min", default=0.0, precision=3)
 rna_max = FloatProperty(name="Max", default=1.0, precision=3)
 
 
-class WM_OT_properties_edit(bpy.types.Operator):
+class WM_OT_properties_edit(Operator):
     '''Internal use (edit a property data_path)'''
     bl_idname = "wm.properties_edit"
     bl_label = "Edit Property"
@@ -839,7 +840,7 @@ class WM_OT_properties_edit(bpy.types.Operator):
 
         prop_ui = rna_idprop_ui_prop_get(item, prop)
 
-        if prop_type in (float, int):
+        if prop_type in {float, int}:
 
             prop_ui['soft_min'] = prop_ui['min'] = prop_type(self.min)
             prop_ui['soft_max'] = prop_ui['max'] = prop_type(self.max)
@@ -876,7 +877,7 @@ class WM_OT_properties_edit(bpy.types.Operator):
         return wm.invoke_props_dialog(self)
 
 
-class WM_OT_properties_add(bpy.types.Operator):
+class WM_OT_properties_add(Operator):
     '''Internal use (edit a property data_path)'''
     bl_idname = "wm.properties_add"
     bl_label = "Add Property"
@@ -902,7 +903,7 @@ class WM_OT_properties_add(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class WM_OT_properties_context_change(bpy.types.Operator):
+class WM_OT_properties_context_change(Operator):
     "Change the context tab in a Properties Window"
     bl_idname = "wm.properties_context_change"
     bl_label = ""
@@ -914,7 +915,7 @@ class WM_OT_properties_context_change(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class WM_OT_properties_remove(bpy.types.Operator):
+class WM_OT_properties_remove(Operator):
     '''Internal use (edit a property data_path)'''
     bl_idname = "wm.properties_remove"
     bl_label = "Remove Property"
@@ -928,7 +929,7 @@ class WM_OT_properties_remove(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class WM_OT_keyconfig_activate(bpy.types.Operator):
+class WM_OT_keyconfig_activate(Operator):
     bl_idname = "wm.keyconfig_activate"
     bl_label = "Activate Keyconfig"
 
@@ -939,7 +940,7 @@ class WM_OT_keyconfig_activate(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class WM_OT_appconfig_default(bpy.types.Operator):
+class WM_OT_appconfig_default(Operator):
     bl_idname = "wm.appconfig_default"
     bl_label = "Default Application Configuration"
 
@@ -956,7 +957,7 @@ class WM_OT_appconfig_default(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class WM_OT_appconfig_activate(bpy.types.Operator):
+class WM_OT_appconfig_activate(Operator):
     bl_idname = "wm.appconfig_activate"
     bl_label = "Activate Application Configuration"
 
@@ -974,7 +975,7 @@ class WM_OT_appconfig_activate(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class WM_OT_sysinfo(bpy.types.Operator):
+class WM_OT_sysinfo(Operator):
     '''Generate System Info'''
     bl_idname = "wm.sysinfo"
     bl_label = "System Info"
@@ -985,7 +986,7 @@ class WM_OT_sysinfo(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class WM_OT_copy_prev_settings(bpy.types.Operator):
+class WM_OT_copy_prev_settings(Operator):
     '''Copy settings from previous version'''
     bl_idname = "wm.copy_prev_settings"
     bl_label = "Copy Previous Settings"
diff --git a/release/scripts/startup/bl_ui/properties_data_armature.py b/release/scripts/startup/bl_ui/properties_data_armature.py
index f2a3bac237359912d1b426dc383c90fd387b858e..94c40d11141fb3d6e30006a4a3fe1b31005be461 100644
--- a/release/scripts/startup/bl_ui/properties_data_armature.py
+++ b/release/scripts/startup/bl_ui/properties_data_armature.py
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Panel
 from rna_prop_ui import PropertyPanel
 
 
@@ -31,7 +32,7 @@ class ArmatureButtonsPanel():
         return context.armature
 
 
-class DATA_PT_context_arm(ArmatureButtonsPanel, bpy.types.Panel):
+class DATA_PT_context_arm(ArmatureButtonsPanel, Panel):
     bl_label = ""
     bl_options = {'HIDE_HEADER'}
 
@@ -48,7 +49,7 @@ class DATA_PT_context_arm(ArmatureButtonsPanel, bpy.types.Panel):
             layout.template_ID(space, "pin_id")
 
 
-class DATA_PT_skeleton(ArmatureButtonsPanel, bpy.types.Panel):
+class DATA_PT_skeleton(ArmatureButtonsPanel, Panel):
     bl_label = "Skeleton"
 
     def draw(self, context):
@@ -71,7 +72,7 @@ class DATA_PT_skeleton(ArmatureButtonsPanel, bpy.types.Panel):
         flow.prop(arm, "use_deform_preserve_volume", text="Quaternion")
 
 
-class DATA_PT_display(ArmatureButtonsPanel, bpy.types.Panel):
+class DATA_PT_display(ArmatureButtonsPanel, Panel):
     bl_label = "Display"
 
     def draw(self, context):
@@ -96,7 +97,7 @@ class DATA_PT_display(ArmatureButtonsPanel, bpy.types.Panel):
         col.prop(arm, "use_deform_delay", text="Delay Refresh")
 
 
-class DATA_PT_bone_groups(ArmatureButtonsPanel, bpy.types.Panel):
+class DATA_PT_bone_groups(ArmatureButtonsPanel, Panel):
     bl_label = "Bone Groups"
 
     @classmethod
@@ -147,7 +148,7 @@ class DATA_PT_bone_groups(ArmatureButtonsPanel, bpy.types.Panel):
         sub.operator("pose.group_deselect", text="Deselect")
 
 
-class DATA_PT_pose_library(ArmatureButtonsPanel, bpy.types.Panel):
+class DATA_PT_pose_library(ArmatureButtonsPanel, Panel):
     bl_label = "Pose Library"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -186,7 +187,7 @@ class DATA_PT_pose_library(ArmatureButtonsPanel, bpy.types.Panel):
 
 
 # TODO: this panel will soon be depreceated too
-class DATA_PT_ghost(ArmatureButtonsPanel, bpy.types.Panel):
+class DATA_PT_ghost(ArmatureButtonsPanel, Panel):
     bl_label = "Ghost"
 
     def draw(self, context):
@@ -213,7 +214,7 @@ class DATA_PT_ghost(ArmatureButtonsPanel, bpy.types.Panel):
         col.prop(arm, "show_only_ghost_selected", text="Selected Only")
 
 
-class DATA_PT_iksolver_itasc(ArmatureButtonsPanel, bpy.types.Panel):
+class DATA_PT_iksolver_itasc(ArmatureButtonsPanel, Panel):
     bl_label = "iTaSC parameters"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -266,7 +267,7 @@ from bl_ui.properties_animviz import (
     )
 
 
-class DATA_PT_motion_paths(MotionPathButtonsPanel, bpy.types.Panel):
+class DATA_PT_motion_paths(MotionPathButtonsPanel, Panel):
     #bl_label = "Bones Motion Paths"
     bl_context = "data"
 
@@ -289,7 +290,7 @@ class DATA_PT_motion_paths(MotionPathButtonsPanel, bpy.types.Panel):
         split.operator("pose.paths_clear", text="Clear Paths")
 
 
-class DATA_PT_onion_skinning(OnionSkinButtonsPanel):  # , bpy.types.Panel): # inherit from panel when ready
+class DATA_PT_onion_skinning(OnionSkinButtonsPanel):  # , Panel): # inherit from panel when ready
     #bl_label = "Bones Onion Skinning"
     bl_context = "data"
 
@@ -303,7 +304,7 @@ class DATA_PT_onion_skinning(OnionSkinButtonsPanel):  # , bpy.types.Panel): # in
         self.draw_settings(context, ob.pose.animation_visualisation, bones=True)
 
 
-class DATA_PT_custom_props_arm(ArmatureButtonsPanel, PropertyPanel, bpy.types.Panel):
+class DATA_PT_custom_props_arm(ArmatureButtonsPanel, PropertyPanel, Panel):
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
     _context_path = "object.data"
     _property_type = bpy.types.Armature
diff --git a/release/scripts/startup/bl_ui/properties_data_bone.py b/release/scripts/startup/bl_ui/properties_data_bone.py
index 9fc055e934367a393e3b429df055a3aedcf919cd..b3eaf88d5bfd066d70e900716c0628d3d2fb95b7 100644
--- a/release/scripts/startup/bl_ui/properties_data_bone.py
+++ b/release/scripts/startup/bl_ui/properties_data_bone.py
@@ -19,6 +19,7 @@
 # <pep8 compliant>
 
 import bpy
+from bpy.types import Panel
 from rna_prop_ui import PropertyPanel
 
 
@@ -32,7 +33,7 @@ class BoneButtonsPanel():
         return (context.bone or context.edit_bone)
 
 
-class BONE_PT_context_bone(BoneButtonsPanel, bpy.types.Panel):
+class BONE_PT_context_bone(BoneButtonsPanel, Panel):
     bl_label = ""
     bl_options = {'HIDE_HEADER'}
 
@@ -48,7 +49,7 @@ class BONE_PT_context_bone(BoneButtonsPanel, bpy.types.Panel):
         row.prop(bone, "name", text="")
 
 
-class BONE_PT_transform(BoneButtonsPanel, bpy.types.Panel):
+class BONE_PT_transform(BoneButtonsPanel, Panel):
     bl_label = "Transform"
 
     @classmethod
@@ -102,7 +103,7 @@ class BONE_PT_transform(BoneButtonsPanel, bpy.types.Panel):
             sub.prop(bone, "lock")
 
 
-class BONE_PT_transform_locks(BoneButtonsPanel, bpy.types.Panel):
+class BONE_PT_transform_locks(BoneButtonsPanel, Panel):
     bl_label = "Transform Locks"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -135,7 +136,7 @@ class BONE_PT_transform_locks(BoneButtonsPanel, bpy.types.Panel):
         row.column().prop(pchan, "lock_scale")
 
 
-class BONE_PT_relations(BoneButtonsPanel, bpy.types.Panel):
+class BONE_PT_relations(BoneButtonsPanel, Panel):
     bl_label = "Relations"
 
     def draw(self, context):
@@ -180,7 +181,7 @@ class BONE_PT_relations(BoneButtonsPanel, bpy.types.Panel):
         sub.prop(bone, "use_local_location", text="Local Location")
 
 
-class BONE_PT_display(BoneButtonsPanel, bpy.types.Panel):
+class BONE_PT_display(BoneButtonsPanel, Panel):
     bl_label = "Display"
 
     @classmethod
@@ -217,7 +218,7 @@ class BONE_PT_display(BoneButtonsPanel, bpy.types.Panel):
                     col.prop_search(pchan, "custom_shape_transform", ob.pose, "bones", text="At")
 
 
-class BONE_PT_inverse_kinematics(BoneButtonsPanel, bpy.types.Panel):
+class BONE_PT_inverse_kinematics(BoneButtonsPanel, Panel):
     bl_label = "Inverse Kinematics"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -308,7 +309,7 @@ class BONE_PT_inverse_kinematics(BoneButtonsPanel, bpy.types.Panel):
             #row.prop(pchan, "ik_linear_weight", text="Weight", slider=True)
 
 
-class BONE_PT_deform(BoneButtonsPanel, bpy.types.Panel):
+class BONE_PT_deform(BoneButtonsPanel, Panel):
     bl_label = "Deform"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -357,7 +358,7 @@ class BONE_PT_deform(BoneButtonsPanel, bpy.types.Panel):
         col.prop(bone, "use_cyclic_offset")
 
 
-class BONE_PT_custom_props(BoneButtonsPanel, PropertyPanel, bpy.types.Panel):
+class BONE_PT_custom_props(BoneButtonsPanel, PropertyPanel, Panel):
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
     _property_type = bpy.types.Bone, bpy.types.EditBone, bpy.types.PoseBone
 
diff --git a/release/scripts/startup/bl_ui/properties_data_camera.py b/release/scripts/startup/bl_ui/properties_data_camera.py
index 80cd5227fca8043d72182e0db9cbc151a5654e8c..f484d7b59e1a8ec7f44b0feb5e014fea42c4b07c 100644
--- a/release/scripts/startup/bl_ui/properties_data_camera.py
+++ b/release/scripts/startup/bl_ui/properties_data_camera.py
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Panel
 from rna_prop_ui import PropertyPanel
 
 
@@ -32,7 +33,7 @@ class CameraButtonsPanel():
         return context.camera and (engine in cls.COMPAT_ENGINES)
 
 
-class DATA_PT_context_camera(CameraButtonsPanel, bpy.types.Panel):
+class DATA_PT_context_camera(CameraButtonsPanel, Panel):
     bl_label = ""
     bl_options = {'HIDE_HEADER'}
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
@@ -53,7 +54,7 @@ class DATA_PT_context_camera(CameraButtonsPanel, bpy.types.Panel):
             split.separator()
 
 
-class DATA_PT_camera(CameraButtonsPanel, bpy.types.Panel):
+class DATA_PT_camera(CameraButtonsPanel, Panel):
     bl_label = "Lens"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
 
@@ -111,7 +112,7 @@ class DATA_PT_camera(CameraButtonsPanel, bpy.types.Panel):
         col.prop(cam, "dof_distance", text="Distance")
 
 
-class DATA_PT_camera_display(CameraButtonsPanel, bpy.types.Panel):
+class DATA_PT_camera_display(CameraButtonsPanel, Panel):
     bl_label = "Display"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
 
@@ -138,7 +139,7 @@ class DATA_PT_camera_display(CameraButtonsPanel, bpy.types.Panel):
         sub.prop(cam, "passepartout_alpha", text="Alpha", slider=True)
 
 
-class DATA_PT_custom_props_camera(CameraButtonsPanel, PropertyPanel, bpy.types.Panel):
+class DATA_PT_custom_props_camera(CameraButtonsPanel, PropertyPanel, Panel):
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
     _context_path = "object.data"
     _property_type = bpy.types.Camera
diff --git a/release/scripts/startup/bl_ui/properties_data_curve.py b/release/scripts/startup/bl_ui/properties_data_curve.py
index 3c88127c72403e07b265dde6e25cd003364ab0b8..6448b9a5229d908c632bbaa865c6121f5142eed9 100644
--- a/release/scripts/startup/bl_ui/properties_data_curve.py
+++ b/release/scripts/startup/bl_ui/properties_data_curve.py
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Panel
 from rna_prop_ui import PropertyPanel
 
 
@@ -48,7 +49,7 @@ class CurveButtonsPanelActive(CurveButtonsPanel):
         return (curve and type(curve) is not bpy.types.TextCurve and curve.splines.active)
 
 
-class DATA_PT_context_curve(CurveButtonsPanel, bpy.types.Panel):
+class DATA_PT_context_curve(CurveButtonsPanel, Panel):
     bl_label = ""
     bl_options = {'HIDE_HEADER'}
 
@@ -65,7 +66,7 @@ class DATA_PT_context_curve(CurveButtonsPanel, bpy.types.Panel):
             layout.template_ID(space, "pin_id")  # XXX: broken
 
 
-class DATA_PT_shape_curve(CurveButtonsPanel, bpy.types.Panel):
+class DATA_PT_shape_curve(CurveButtonsPanel, Panel):
     bl_label = "Shape"
 
     def draw(self, context):
@@ -108,13 +109,13 @@ class DATA_PT_shape_curve(CurveButtonsPanel, bpy.types.Panel):
         if (is_curve or is_text):
             col.label(text="Fill:")
             sub = col.column()
-            sub.active = (curve.bevel_object is None)
+            sub.active = (curve.dimensions == '2D' or (curve.bevel_object is None and curve.dimensions == '3D'))
             sub.prop(curve, "use_fill_front")
             sub.prop(curve, "use_fill_back")
             col.prop(curve, "use_fill_deform", text="Fill Deformed")
 
 
-class DATA_PT_curve_texture_space(CurveButtonsPanel, bpy.types.Panel):
+class DATA_PT_curve_texture_space(CurveButtonsPanel, Panel):
     bl_label = "Texture Space"
     bl_options = {'DEFAULT_CLOSED'}
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
@@ -133,7 +134,7 @@ class DATA_PT_curve_texture_space(CurveButtonsPanel, bpy.types.Panel):
         row.column().prop(curve, "texspace_size", text="Size")
 
 
-class DATA_PT_geometry_curve(CurveButtonsPanel, bpy.types.Panel):
+class DATA_PT_geometry_curve(CurveButtonsPanel, Panel):
     bl_label = "Geometry"
 
     @classmethod
@@ -166,7 +167,7 @@ class DATA_PT_geometry_curve(CurveButtonsPanel, bpy.types.Panel):
         col.prop(curve, "bevel_object", text="")
 
 
-class DATA_PT_pathanim(CurveButtonsPanelCurve, bpy.types.Panel):
+class DATA_PT_pathanim(CurveButtonsPanelCurve, Panel):
     bl_label = "Path Animation"
 
     def draw_header(self, context):
@@ -197,7 +198,7 @@ class DATA_PT_pathanim(CurveButtonsPanelCurve, bpy.types.Panel):
         col.prop(curve, "use_time_offset", text="Offset Children")
 
 
-class DATA_PT_active_spline(CurveButtonsPanelActive, bpy.types.Panel):
+class DATA_PT_active_spline(CurveButtonsPanelActive, Panel):
     bl_label = "Active Spline"
 
     def draw(self, context):
@@ -268,7 +269,7 @@ class DATA_PT_active_spline(CurveButtonsPanelActive, bpy.types.Panel):
             layout.prop(act_spline, "use_smooth")
 
 
-class DATA_PT_font(CurveButtonsPanel, bpy.types.Panel):
+class DATA_PT_font(CurveButtonsPanel, Panel):
     bl_label = "Font"
 
     @classmethod
@@ -332,7 +333,7 @@ class DATA_PT_font(CurveButtonsPanel, bpy.types.Panel):
         row.prop(char, "use_small_caps")
 
 
-class DATA_PT_paragraph(CurveButtonsPanel, bpy.types.Panel):
+class DATA_PT_paragraph(CurveButtonsPanel, Panel):
     bl_label = "Paragraph"
 
     @classmethod
@@ -361,7 +362,7 @@ class DATA_PT_paragraph(CurveButtonsPanel, bpy.types.Panel):
         col.prop(text, "offset_y", text="Y")
 
 
-class DATA_PT_textboxes(CurveButtonsPanel, bpy.types.Panel):
+class DATA_PT_text_boxes(CurveButtonsPanel, Panel):
     bl_label = "Text Boxes"
 
     @classmethod
@@ -401,7 +402,7 @@ class DATA_PT_textboxes(CurveButtonsPanel, bpy.types.Panel):
             row.operator("font.textbox_remove", text='', icon='X', emboss=False).index = i
 
 
-class DATA_PT_custom_props_curve(CurveButtonsPanel, PropertyPanel, bpy.types.Panel):
+class DATA_PT_custom_props_curve(CurveButtonsPanel, PropertyPanel, Panel):
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
     _context_path = "object.data"
     _property_type = bpy.types.Curve
diff --git a/release/scripts/startup/bl_ui/properties_data_empty.py b/release/scripts/startup/bl_ui/properties_data_empty.py
index 42b0af7eaf5de679b5d69d485d98f3fe9cbea34d..c781873e16c22c70b5afa1e739165303ccc87eb6 100644
--- a/release/scripts/startup/bl_ui/properties_data_empty.py
+++ b/release/scripts/startup/bl_ui/properties_data_empty.py
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Panel
 
 
 class DataButtonsPanel():
@@ -30,7 +31,7 @@ class DataButtonsPanel():
         return (context.object and context.object.type == 'EMPTY')
 
 
-class DATA_PT_empty(DataButtonsPanel, bpy.types.Panel):
+class DATA_PT_empty(DataButtonsPanel, Panel):
     bl_label = "Empty"
 
     def draw(self, context):
diff --git a/release/scripts/startup/bl_ui/properties_data_lamp.py b/release/scripts/startup/bl_ui/properties_data_lamp.py
index 36010c8b51100b82287e4cc2d4e8cf15f21efaf6..4ff180f74fbe76f2acfd969264daa53bcf62b6d9 100644
--- a/release/scripts/startup/bl_ui/properties_data_lamp.py
+++ b/release/scripts/startup/bl_ui/properties_data_lamp.py
@@ -18,15 +18,16 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Menu, Panel
 from rna_prop_ui import PropertyPanel
 
 
-class LAMP_MT_sunsky_presets(bpy.types.Menu):
+class LAMP_MT_sunsky_presets(Menu):
     bl_label = "Sun & Sky Presets"
     preset_subdir = "sunsky"
     preset_operator = "script.execute_preset"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
-    draw = bpy.types.Menu.draw_preset
+    draw = Menu.draw_preset
 
 
 class DataButtonsPanel():
@@ -40,7 +41,7 @@ class DataButtonsPanel():
         return context.lamp and (engine in cls.COMPAT_ENGINES)
 
 
-class DATA_PT_context_lamp(DataButtonsPanel, bpy.types.Panel):
+class DATA_PT_context_lamp(DataButtonsPanel, Panel):
     bl_label = ""
     bl_options = {'HIDE_HEADER'}
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
@@ -65,7 +66,7 @@ class DATA_PT_context_lamp(DataButtonsPanel, bpy.types.Panel):
             split.label(text=str(texture_count), icon='TEXTURE')
 
 
-class DATA_PT_preview(DataButtonsPanel, bpy.types.Panel):
+class DATA_PT_preview(DataButtonsPanel, Panel):
     bl_label = "Preview"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
 
@@ -73,7 +74,7 @@ class DATA_PT_preview(DataButtonsPanel, bpy.types.Panel):
         self.layout.template_preview(context.lamp)
 
 
-class DATA_PT_lamp(DataButtonsPanel, bpy.types.Panel):
+class DATA_PT_lamp(DataButtonsPanel, Panel):
     bl_label = "Lamp"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
 
@@ -115,7 +116,7 @@ class DATA_PT_lamp(DataButtonsPanel, bpy.types.Panel):
         col.prop(lamp, "use_diffuse")
 
 
-class DATA_PT_sunsky(DataButtonsPanel, bpy.types.Panel):
+class DATA_PT_sunsky(DataButtonsPanel, Panel):
     bl_label = "Sky & Atmosphere"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
 
@@ -187,7 +188,7 @@ class DATA_PT_sunsky(DataButtonsPanel, bpy.types.Panel):
         sub.prop(lamp, "atmosphere_extinction", slider=True, text="Extinction")
 
 
-class DATA_PT_shadow(DataButtonsPanel, bpy.types.Panel):
+class DATA_PT_shadow(DataButtonsPanel, Panel):
     bl_label = "Shadow"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
 
@@ -302,7 +303,7 @@ class DATA_PT_shadow(DataButtonsPanel, bpy.types.Panel):
             sub.prop(lamp, "shadow_buffer_clip_end", text=" Clip End")
 
 
-class DATA_PT_area(DataButtonsPanel, bpy.types.Panel):
+class DATA_PT_area(DataButtonsPanel, Panel):
     bl_label = "Area Shape"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
 
@@ -328,7 +329,7 @@ class DATA_PT_area(DataButtonsPanel, bpy.types.Panel):
             sub.prop(lamp, "size_y", text="Size Y")
 
 
-class DATA_PT_spot(DataButtonsPanel, bpy.types.Panel):
+class DATA_PT_spot(DataButtonsPanel, Panel):
     bl_label = "Spot Shape"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
 
@@ -362,7 +363,7 @@ class DATA_PT_spot(DataButtonsPanel, bpy.types.Panel):
             sub.prop(lamp, "halo_step", text="Step")
 
 
-class DATA_PT_falloff_curve(DataButtonsPanel, bpy.types.Panel):
+class DATA_PT_falloff_curve(DataButtonsPanel, Panel):
     bl_label = "Falloff Curve"
     bl_options = {'DEFAULT_CLOSED'}
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
@@ -380,7 +381,7 @@ class DATA_PT_falloff_curve(DataButtonsPanel, bpy.types.Panel):
         self.layout.template_curve_mapping(lamp, "falloff_curve")
 
 
-class DATA_PT_custom_props_lamp(DataButtonsPanel, PropertyPanel, bpy.types.Panel):
+class DATA_PT_custom_props_lamp(DataButtonsPanel, PropertyPanel, Panel):
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
     _context_path = "object.data"
     _property_type = bpy.types.Lamp
diff --git a/release/scripts/startup/bl_ui/properties_data_lattice.py b/release/scripts/startup/bl_ui/properties_data_lattice.py
index cd719b6fe8488c12ee503b559ea654b6aff50361..14d6ea66894ae488599ae9828a84529668e12f6f 100644
--- a/release/scripts/startup/bl_ui/properties_data_lattice.py
+++ b/release/scripts/startup/bl_ui/properties_data_lattice.py
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Panel
 from rna_prop_ui import PropertyPanel
 
 
@@ -31,7 +32,7 @@ class DataButtonsPanel():
         return context.lattice
 
 
-class DATA_PT_context_lattice(DataButtonsPanel, bpy.types.Panel):
+class DATA_PT_context_lattice(DataButtonsPanel, Panel):
     bl_label = ""
     bl_options = {'HIDE_HEADER'}
 
@@ -51,7 +52,7 @@ class DATA_PT_context_lattice(DataButtonsPanel, bpy.types.Panel):
             split.separator()
 
 
-class DATA_PT_lattice(DataButtonsPanel, bpy.types.Panel):
+class DATA_PT_lattice(DataButtonsPanel, Panel):
     bl_label = "Lattice"
 
     def draw(self, context):
@@ -76,7 +77,7 @@ class DATA_PT_lattice(DataButtonsPanel, bpy.types.Panel):
         row.prop_search(lat, "vertex_group", context.object, "vertex_groups", text="")
 
 
-class DATA_PT_custom_props_lattice(DataButtonsPanel, PropertyPanel, bpy.types.Panel):
+class DATA_PT_custom_props_lattice(DataButtonsPanel, PropertyPanel, Panel):
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
     _context_path = "object.data"
     _property_type = bpy.types.Lattice
diff --git a/release/scripts/startup/bl_ui/properties_data_mesh.py b/release/scripts/startup/bl_ui/properties_data_mesh.py
index 618a88f08799523312ee25d18f1fa1abab840937..896b76c59f6b25a9eec87e76b208ab54c769a2f3 100644
--- a/release/scripts/startup/bl_ui/properties_data_mesh.py
+++ b/release/scripts/startup/bl_ui/properties_data_mesh.py
@@ -18,10 +18,11 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Menu, Panel
 from rna_prop_ui import PropertyPanel
 
 
-class MESH_MT_vertex_group_specials(bpy.types.Menu):
+class MESH_MT_vertex_group_specials(Menu):
     bl_label = "Vertex Group Specials"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
 
@@ -36,7 +37,7 @@ class MESH_MT_vertex_group_specials(bpy.types.Menu):
         layout.operator("object.vertex_group_remove", icon='X', text="Delete All").all = True
 
 
-class MESH_MT_shape_key_specials(bpy.types.Menu):
+class MESH_MT_shape_key_specials(Menu):
     bl_label = "Shape Key Specials"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
 
@@ -61,7 +62,7 @@ class MeshButtonsPanel():
         return context.mesh and (engine in cls.COMPAT_ENGINES)
 
 
-class DATA_PT_context_mesh(MeshButtonsPanel, bpy.types.Panel):
+class DATA_PT_context_mesh(MeshButtonsPanel, Panel):
     bl_label = ""
     bl_options = {'HIDE_HEADER'}
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
@@ -72,14 +73,14 @@ class DATA_PT_context_mesh(MeshButtonsPanel, bpy.types.Panel):
         ob = context.object
         mesh = context.mesh
         space = context.space_data
-
+        layout.prop(context.scene.tool_settings, "mesh_select_mode", index=0, text="Vertex")
         if ob:
             layout.template_ID(ob, "data")
         elif mesh:
             layout.template_ID(space, "pin_id")
 
 
-class DATA_PT_normals(MeshButtonsPanel, bpy.types.Panel):
+class DATA_PT_normals(MeshButtonsPanel, Panel):
     bl_label = "Normals"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
 
@@ -99,7 +100,7 @@ class DATA_PT_normals(MeshButtonsPanel, bpy.types.Panel):
         split.prop(mesh, "show_double_sided")
 
 
-class DATA_PT_texture_space(MeshButtonsPanel, bpy.types.Panel):
+class DATA_PT_texture_space(MeshButtonsPanel, Panel):
     bl_label = "Texture Space"
     bl_options = {'DEFAULT_CLOSED'}
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
@@ -119,7 +120,7 @@ class DATA_PT_texture_space(MeshButtonsPanel, bpy.types.Panel):
         row.column().prop(mesh, "texspace_size", text="Size")
 
 
-class DATA_PT_vertex_groups(MeshButtonsPanel, bpy.types.Panel):
+class DATA_PT_vertex_groups(MeshButtonsPanel, Panel):
     bl_label = "Vertex Groups"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
 
@@ -168,7 +169,7 @@ class DATA_PT_vertex_groups(MeshButtonsPanel, bpy.types.Panel):
             layout.prop(context.tool_settings, "vertex_group_weight", text="Weight")
 
 
-class DATA_PT_shape_keys(MeshButtonsPanel, bpy.types.Panel):
+class DATA_PT_shape_keys(MeshButtonsPanel, Panel):
     bl_label = "Shape Keys"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
 
@@ -261,7 +262,7 @@ class DATA_PT_shape_keys(MeshButtonsPanel, bpy.types.Panel):
                 row.prop(key, "slurph")
 
 
-class DATA_PT_uv_texture(MeshButtonsPanel, bpy.types.Panel):
+class DATA_PT_uv_texture(MeshButtonsPanel, Panel):
     bl_label = "UV Texture"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
 
@@ -284,7 +285,7 @@ class DATA_PT_uv_texture(MeshButtonsPanel, bpy.types.Panel):
             layout.prop(lay, "name")
 
 
-class DATA_PT_texface(MeshButtonsPanel, bpy.types.Panel):
+class DATA_PT_texface(MeshButtonsPanel, Panel):
     bl_label = "Texture Face"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
 
@@ -331,7 +332,7 @@ class DATA_PT_texface(MeshButtonsPanel, bpy.types.Panel):
             col.label(text="No UV Texture")
 
 
-class DATA_PT_vertex_colors(MeshButtonsPanel, bpy.types.Panel):
+class DATA_PT_vertex_colors(MeshButtonsPanel, Panel):
     bl_label = "Vertex Colors"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
 
@@ -354,7 +355,7 @@ class DATA_PT_vertex_colors(MeshButtonsPanel, bpy.types.Panel):
             layout.prop(lay, "name")
 
 
-class DATA_PT_custom_props_mesh(MeshButtonsPanel, PropertyPanel, bpy.types.Panel):
+class DATA_PT_custom_props_mesh(MeshButtonsPanel, PropertyPanel, Panel):
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
     _context_path = "object.data"
     _property_type = bpy.types.Mesh
diff --git a/release/scripts/startup/bl_ui/properties_data_metaball.py b/release/scripts/startup/bl_ui/properties_data_metaball.py
index 6dda99bc37f710db39dd4bc64d7138dbab129bc4..cd894e60dbba9a1135ba9062cd8f3751e75deae2 100644
--- a/release/scripts/startup/bl_ui/properties_data_metaball.py
+++ b/release/scripts/startup/bl_ui/properties_data_metaball.py
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Panel
 from rna_prop_ui import PropertyPanel
 
 
@@ -31,7 +32,7 @@ class DataButtonsPanel():
         return context.meta_ball
 
 
-class DATA_PT_context_metaball(DataButtonsPanel, bpy.types.Panel):
+class DATA_PT_context_metaball(DataButtonsPanel, Panel):
     bl_label = ""
     bl_options = {'HIDE_HEADER'}
 
@@ -48,7 +49,7 @@ class DATA_PT_context_metaball(DataButtonsPanel, bpy.types.Panel):
             layout.template_ID(space, "pin_id")
 
 
-class DATA_PT_metaball(DataButtonsPanel, bpy.types.Panel):
+class DATA_PT_metaball(DataButtonsPanel, Panel):
     bl_label = "Metaball"
 
     def draw(self, context):
@@ -72,7 +73,7 @@ class DATA_PT_metaball(DataButtonsPanel, bpy.types.Panel):
         layout.prop(mball, "update_method", expand=True)
 
 
-class DATA_PT_mball_texture_space(DataButtonsPanel, bpy.types.Panel):
+class DATA_PT_mball_texture_space(DataButtonsPanel, Panel):
     bl_label = "Texture Space"
     bl_options = {'DEFAULT_CLOSED'}
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
@@ -89,7 +90,7 @@ class DATA_PT_mball_texture_space(DataButtonsPanel, bpy.types.Panel):
         row.column().prop(mball, "texspace_size", text="Size")
 
 
-class DATA_PT_metaball_element(DataButtonsPanel, bpy.types.Panel):
+class DATA_PT_metaball_element(DataButtonsPanel, Panel):
     bl_label = "Active Element"
 
     @classmethod
@@ -129,7 +130,7 @@ class DATA_PT_metaball_element(DataButtonsPanel, bpy.types.Panel):
             col.prop(metaelem, "size_y", text="Y")
 
 
-class DATA_PT_custom_props_metaball(DataButtonsPanel, PropertyPanel, bpy.types.Panel):
+class DATA_PT_custom_props_metaball(DataButtonsPanel, PropertyPanel, Panel):
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
     _context_path = "object.data"
     _property_type = bpy.types.MetaBall
diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py
index a02e6bd6469abeb04c334f5488eb24a245d246a8..65827775ad1bfbd114cc3da665da4f3795f7a2a0 100644
--- a/release/scripts/startup/bl_ui/properties_data_modifier.py
+++ b/release/scripts/startup/bl_ui/properties_data_modifier.py
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Panel
 
 
 class ModifierButtonsPanel():
@@ -26,7 +27,7 @@ class ModifierButtonsPanel():
     bl_context = "modifier"
 
 
-class DATA_PT_modifiers(ModifierButtonsPanel, bpy.types.Panel):
+class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
     bl_label = "Modifiers"
 
     def draw(self, context):
@@ -576,13 +577,13 @@ class DATA_PT_modifiers(ModifierButtonsPanel, bpy.types.Panel):
         sub = col.column()
         sub.active = bool(md.vertex_group)
         sub.prop(md, "invert_vertex_group", text="Invert")
+        sub.prop(md, "thickness_vertex_group", text="Factor")
 
         col.prop(md, "use_even_offset")
         col.prop(md, "use_quality_normals")
         col.prop(md, "use_rim")
 
         sub = col.column()
-        sub.label()
         row = sub.split(align=True, percentage=0.4)
         row.prop(md, "material_offset", text="")
         row = row.row()
diff --git a/release/scripts/startup/bl_ui/properties_game.py b/release/scripts/startup/bl_ui/properties_game.py
index 0c07451b3b2dcdde62413053dbe48b305765863c..f8be32e6c074f5a844df39075f466ab3d82db08f 100644
--- a/release/scripts/startup/bl_ui/properties_game.py
+++ b/release/scripts/startup/bl_ui/properties_game.py
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Panel
 
 
 class PhysicsButtonsPanel():
@@ -26,7 +27,7 @@ class PhysicsButtonsPanel():
     bl_context = "physics"
 
 
-class PHYSICS_PT_game_physics(PhysicsButtonsPanel, bpy.types.Panel):
+class PHYSICS_PT_game_physics(PhysicsButtonsPanel, Panel):
     bl_label = "Physics"
     COMPAT_ENGINES = {'BLENDER_GAME'}
 
@@ -167,7 +168,7 @@ class PHYSICS_PT_game_physics(PhysicsButtonsPanel, bpy.types.Panel):
             layout.prop(ob, "hide_render", text="Invisible")
 
 
-class PHYSICS_PT_game_collision_bounds(PhysicsButtonsPanel, bpy.types.Panel):
+class PHYSICS_PT_game_collision_bounds(PhysicsButtonsPanel, Panel):
     bl_label = "Collision Bounds"
     COMPAT_ENGINES = {'BLENDER_GAME'}
 
@@ -206,7 +207,7 @@ class RenderButtonsPanel():
         return (rd.engine in cls.COMPAT_ENGINES)
 
 
-class RENDER_PT_game(RenderButtonsPanel, bpy.types.Panel):
+class RENDER_PT_game(RenderButtonsPanel, Panel):
     bl_label = "Game"
     COMPAT_ENGINES = {'BLENDER_GAME'}
 
@@ -218,7 +219,7 @@ class RENDER_PT_game(RenderButtonsPanel, bpy.types.Panel):
         row.label()
 
 
-class RENDER_PT_game_player(RenderButtonsPanel, bpy.types.Panel):
+class RENDER_PT_game_player(RenderButtonsPanel, Panel):
     bl_label = "Standalone Player"
     COMPAT_ENGINES = {'BLENDER_GAME'}
 
@@ -251,7 +252,7 @@ class RENDER_PT_game_player(RenderButtonsPanel, bpy.types.Panel):
             col.prop(gs, "frame_color", text="")
 
 
-class RENDER_PT_game_stereo(RenderButtonsPanel, bpy.types.Panel):
+class RENDER_PT_game_stereo(RenderButtonsPanel, Panel):
     bl_label = "Stereo"
     COMPAT_ENGINES = {'BLENDER_GAME'}
 
@@ -305,7 +306,7 @@ class RENDER_PT_game_stereo(RenderButtonsPanel, bpy.types.Panel):
             layout.prop(gs, "dome_text")
 
 
-class RENDER_PT_game_shading(RenderButtonsPanel, bpy.types.Panel):
+class RENDER_PT_game_shading(RenderButtonsPanel, Panel):
     bl_label = "Shading"
     COMPAT_ENGINES = {'BLENDER_GAME'}
 
@@ -331,7 +332,7 @@ class RENDER_PT_game_shading(RenderButtonsPanel, bpy.types.Panel):
             col.prop(gs, "use_glsl_extra_textures", text="Extra Textures")
 
 
-class RENDER_PT_game_performance(RenderButtonsPanel, bpy.types.Panel):
+class RENDER_PT_game_performance(RenderButtonsPanel, Panel):
     bl_label = "Performance"
     COMPAT_ENGINES = {'BLENDER_GAME'}
 
@@ -344,7 +345,7 @@ class RENDER_PT_game_performance(RenderButtonsPanel, bpy.types.Panel):
         row.prop(gs, "use_display_lists")
 
 
-class RENDER_PT_game_display(RenderButtonsPanel, bpy.types.Panel):
+class RENDER_PT_game_display(RenderButtonsPanel, Panel):
     bl_label = "Display"
     COMPAT_ENGINES = {'BLENDER_GAME'}
 
@@ -360,7 +361,7 @@ class RENDER_PT_game_display(RenderButtonsPanel, bpy.types.Panel):
         flow.prop(gs, "show_mouse", text="Mouse Cursor")
 
 
-class RENDER_PT_game_sound(RenderButtonsPanel, bpy.types.Panel):
+class RENDER_PT_game_sound(RenderButtonsPanel, Panel):
     bl_label = "Sound"
     COMPAT_ENGINES = {'BLENDER_GAME'}
 
@@ -381,7 +382,7 @@ class WorldButtonsPanel():
     bl_context = "world"
 
 
-class WORLD_PT_game_context_world(WorldButtonsPanel, bpy.types.Panel):
+class WORLD_PT_game_context_world(WorldButtonsPanel, Panel):
     bl_label = ""
     bl_options = {'HIDE_HEADER'}
     COMPAT_ENGINES = {'BLENDER_GAME'}
@@ -405,7 +406,7 @@ class WORLD_PT_game_context_world(WorldButtonsPanel, bpy.types.Panel):
             split.template_ID(space, "pin_id")
 
 
-class WORLD_PT_game_world(WorldButtonsPanel, bpy.types.Panel):
+class WORLD_PT_game_world(WorldButtonsPanel, Panel):
     bl_label = "World"
     COMPAT_ENGINES = {'BLENDER_GAME'}
 
@@ -424,7 +425,7 @@ class WORLD_PT_game_world(WorldButtonsPanel, bpy.types.Panel):
         row.column().prop(world, "ambient_color")
 
 
-class WORLD_PT_game_mist(WorldButtonsPanel, bpy.types.Panel):
+class WORLD_PT_game_mist(WorldButtonsPanel, Panel):
     bl_label = "Mist"
     COMPAT_ENGINES = {'BLENDER_GAME'}
 
@@ -450,7 +451,7 @@ class WORLD_PT_game_mist(WorldButtonsPanel, bpy.types.Panel):
         row.prop(world.mist_settings, "depth")
 
 
-class WORLD_PT_game_physics(WorldButtonsPanel, bpy.types.Panel):
+class WORLD_PT_game_physics(WorldButtonsPanel, Panel):
     bl_label = "Physics"
     COMPAT_ENGINES = {'BLENDER_GAME'}
 
diff --git a/release/scripts/startup/bl_ui/properties_material.py b/release/scripts/startup/bl_ui/properties_material.py
index 296c05d78f5fa1ec975c7dcecfe2a4c40da09f62..13ce92f084c37f62733cebac50fc73372cbd9484 100644
--- a/release/scripts/startup/bl_ui/properties_material.py
+++ b/release/scripts/startup/bl_ui/properties_material.py
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Menu, Panel
 from rna_prop_ui import PropertyPanel
 
 
@@ -50,14 +51,14 @@ def simple_material(mat):
     return False
 
 
-class MATERIAL_MT_sss_presets(bpy.types.Menu):
+class MATERIAL_MT_sss_presets(Menu):
     bl_label = "SSS Presets"
     preset_subdir = "sss"
     preset_operator = "script.execute_preset"
-    draw = bpy.types.Menu.draw_preset
+    draw = Menu.draw_preset
 
 
-class MATERIAL_MT_specials(bpy.types.Menu):
+class MATERIAL_MT_specials(Menu):
     bl_label = "Material Specials"
 
     def draw(self, context):
@@ -79,7 +80,7 @@ class MaterialButtonsPanel():
         return context.material and (context.scene.render.engine in cls.COMPAT_ENGINES)
 
 
-class MATERIAL_PT_context_material(MaterialButtonsPanel, bpy.types.Panel):
+class MATERIAL_PT_context_material(MaterialButtonsPanel, Panel):
     bl_label = ""
     bl_options = {'HIDE_HEADER'}
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
@@ -144,7 +145,7 @@ class MATERIAL_PT_context_material(MaterialButtonsPanel, bpy.types.Panel):
                     row.label(text="No material node selected")
 
 
-class MATERIAL_PT_preview(MaterialButtonsPanel, bpy.types.Panel):
+class MATERIAL_PT_preview(MaterialButtonsPanel, Panel):
     bl_label = "Preview"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
 
@@ -152,7 +153,7 @@ class MATERIAL_PT_preview(MaterialButtonsPanel, bpy.types.Panel):
         self.layout.template_preview(context.material)
 
 
-class MATERIAL_PT_pipeline(MaterialButtonsPanel, bpy.types.Panel):
+class MATERIAL_PT_pipeline(MaterialButtonsPanel, Panel):
     bl_label = "Render Pipeline Options"
     bl_options = {'DEFAULT_CLOSED'}
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
@@ -203,7 +204,7 @@ class MATERIAL_PT_pipeline(MaterialButtonsPanel, bpy.types.Panel):
         col.prop(mat, "pass_index")
 
 
-class MATERIAL_PT_diffuse(MaterialButtonsPanel, bpy.types.Panel):
+class MATERIAL_PT_diffuse(MaterialButtonsPanel, Panel):
     bl_label = "Diffuse"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
 
@@ -260,7 +261,7 @@ class MATERIAL_PT_diffuse(MaterialButtonsPanel, bpy.types.Panel):
             col.prop(mat, "diffuse_ramp_factor", text="Factor")
 
 
-class MATERIAL_PT_specular(MaterialButtonsPanel, bpy.types.Panel):
+class MATERIAL_PT_specular(MaterialButtonsPanel, Panel):
     bl_label = "Specular"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
 
@@ -313,7 +314,7 @@ class MATERIAL_PT_specular(MaterialButtonsPanel, bpy.types.Panel):
             layout.prop(mat, "specular_ramp_factor", text="Factor")
 
 
-class MATERIAL_PT_shading(MaterialButtonsPanel, bpy.types.Panel):
+class MATERIAL_PT_shading(MaterialButtonsPanel, Panel):
     bl_label = "Shading"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
 
@@ -347,7 +348,7 @@ class MATERIAL_PT_shading(MaterialButtonsPanel, bpy.types.Panel):
             sub.prop(mat, "use_cubic")
 
 
-class MATERIAL_PT_transp(MaterialButtonsPanel, bpy.types.Panel):
+class MATERIAL_PT_transp(MaterialButtonsPanel, Panel):
     bl_label = "Transparency"
     # bl_options = {'DEFAULT_CLOSED'}
     COMPAT_ENGINES = {'BLENDER_RENDER'}
@@ -413,7 +414,7 @@ class MATERIAL_PT_transp(MaterialButtonsPanel, bpy.types.Panel):
             sub.prop(rayt, "gloss_samples", text="Samples")
 
 
-class MATERIAL_PT_mirror(MaterialButtonsPanel, bpy.types.Panel):
+class MATERIAL_PT_mirror(MaterialButtonsPanel, Panel):
     bl_label = "Mirror"
     bl_options = {'DEFAULT_CLOSED'}
     COMPAT_ENGINES = {'BLENDER_RENDER'}
@@ -471,7 +472,7 @@ class MATERIAL_PT_mirror(MaterialButtonsPanel, bpy.types.Panel):
         sub.prop(raym, "gloss_anisotropic", text="Anisotropic")
 
 
-class MATERIAL_PT_sss(MaterialButtonsPanel, bpy.types.Panel):
+class MATERIAL_PT_sss(MaterialButtonsPanel, Panel):
     bl_label = "Subsurface Scattering"
     bl_options = {'DEFAULT_CLOSED'}
     COMPAT_ENGINES = {'BLENDER_RENDER'}
@@ -523,7 +524,7 @@ class MATERIAL_PT_sss(MaterialButtonsPanel, bpy.types.Panel):
         col.prop(sss, "error_threshold", text="Error")
 
 
-class MATERIAL_PT_halo(MaterialButtonsPanel, bpy.types.Panel):
+class MATERIAL_PT_halo(MaterialButtonsPanel, Panel):
     bl_label = "Halo"
     COMPAT_ENGINES = {'BLENDER_RENDER'}
 
@@ -576,7 +577,7 @@ class MATERIAL_PT_halo(MaterialButtonsPanel, bpy.types.Panel):
         number_but(col, "use_star", "star_tip_count", "Star tips", "")
 
 
-class MATERIAL_PT_flare(MaterialButtonsPanel, bpy.types.Panel):
+class MATERIAL_PT_flare(MaterialButtonsPanel, Panel):
     bl_label = "Flare"
     COMPAT_ENGINES = {'BLENDER_RENDER'}
 
@@ -611,7 +612,7 @@ class MATERIAL_PT_flare(MaterialButtonsPanel, bpy.types.Panel):
         col.prop(halo, "flare_subflare_size", text="Subsize")
 
 
-class MATERIAL_PT_physics(MaterialButtonsPanel, bpy.types.Panel):
+class MATERIAL_PT_physics(MaterialButtonsPanel, Panel):
     bl_label = "Physics"
     COMPAT_ENGINES = {'BLENDER_GAME'}
 
@@ -641,7 +642,7 @@ class MATERIAL_PT_physics(MaterialButtonsPanel, bpy.types.Panel):
         row.prop(phys, "use_fh_normal")
 
 
-class MATERIAL_PT_strand(MaterialButtonsPanel, bpy.types.Panel):
+class MATERIAL_PT_strand(MaterialButtonsPanel, Panel):
     bl_label = "Strand"
     bl_options = {'DEFAULT_CLOSED'}
     COMPAT_ENGINES = {'BLENDER_RENDER'}
@@ -688,7 +689,7 @@ class MATERIAL_PT_strand(MaterialButtonsPanel, bpy.types.Panel):
         sub.prop(tan, "blend_distance", text="Distance")
 
 
-class MATERIAL_PT_options(MaterialButtonsPanel, bpy.types.Panel):
+class MATERIAL_PT_options(MaterialButtonsPanel, Panel):
     bl_label = "Options"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
 
@@ -737,7 +738,7 @@ class MATERIAL_PT_options(MaterialButtonsPanel, bpy.types.Panel):
             col.prop(mat, "pass_index")
 
 
-class MATERIAL_PT_shadow(MaterialButtonsPanel, bpy.types.Panel):
+class MATERIAL_PT_shadow(MaterialButtonsPanel, Panel):
     bl_label = "Shadow"
     bl_options = {'DEFAULT_CLOSED'}
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
@@ -781,7 +782,7 @@ class MATERIAL_PT_shadow(MaterialButtonsPanel, bpy.types.Panel):
             col.prop(mat, "use_cast_approximate")
 
 
-class MATERIAL_PT_transp_game(MaterialButtonsPanel, bpy.types.Panel):
+class MATERIAL_PT_transp_game(MaterialButtonsPanel, Panel):
     bl_label = "Transparency"
     bl_options = {'DEFAULT_CLOSED'}
     COMPAT_ENGINES = {'BLENDER_GAME'}
@@ -824,7 +825,7 @@ class VolumeButtonsPanel():
         return mat and (mat.type == 'VOLUME') and (engine in cls.COMPAT_ENGINES)
 
 
-class MATERIAL_PT_volume_density(VolumeButtonsPanel, bpy.types.Panel):
+class MATERIAL_PT_volume_density(VolumeButtonsPanel, Panel):
     bl_label = "Density"
     COMPAT_ENGINES = {'BLENDER_RENDER'}
 
@@ -838,7 +839,7 @@ class MATERIAL_PT_volume_density(VolumeButtonsPanel, bpy.types.Panel):
         row.prop(vol, "density_scale")
 
 
-class MATERIAL_PT_volume_shading(VolumeButtonsPanel, bpy.types.Panel):
+class MATERIAL_PT_volume_shading(VolumeButtonsPanel, Panel):
     bl_label = "Shading"
     COMPAT_ENGINES = {'BLENDER_RENDER'}
 
@@ -863,7 +864,7 @@ class MATERIAL_PT_volume_shading(VolumeButtonsPanel, bpy.types.Panel):
         sub.prop(vol, "reflection_color", text="")
 
 
-class MATERIAL_PT_volume_lighting(VolumeButtonsPanel, bpy.types.Panel):
+class MATERIAL_PT_volume_lighting(VolumeButtonsPanel, Panel):
     bl_label = "Lighting"
     COMPAT_ENGINES = {'BLENDER_RENDER'}
 
@@ -898,7 +899,7 @@ class MATERIAL_PT_volume_lighting(VolumeButtonsPanel, bpy.types.Panel):
             sub.prop(vol, "ms_intensity")
 
 
-class MATERIAL_PT_volume_transp(VolumeButtonsPanel, bpy.types.Panel):
+class MATERIAL_PT_volume_transp(VolumeButtonsPanel, Panel):
     bl_label = "Transparency"
     COMPAT_ENGINES = {'BLENDER_RENDER'}
 
@@ -916,7 +917,7 @@ class MATERIAL_PT_volume_transp(VolumeButtonsPanel, bpy.types.Panel):
         layout.prop(mat, "transparency_method", expand=True)
 
 
-class MATERIAL_PT_volume_integration(VolumeButtonsPanel, bpy.types.Panel):
+class MATERIAL_PT_volume_integration(VolumeButtonsPanel, Panel):
     bl_label = "Integration"
     COMPAT_ENGINES = {'BLENDER_RENDER'}
 
@@ -938,7 +939,7 @@ class MATERIAL_PT_volume_integration(VolumeButtonsPanel, bpy.types.Panel):
         col.prop(vol, "depth_threshold")
 
 
-class MATERIAL_PT_volume_options(VolumeButtonsPanel, bpy.types.Panel):
+class MATERIAL_PT_volume_options(VolumeButtonsPanel, Panel):
     bl_label = "Options"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
     bl_options = {'DEFAULT_CLOSED'}
@@ -970,7 +971,7 @@ class MATERIAL_PT_volume_options(VolumeButtonsPanel, bpy.types.Panel):
         row.prop(mat, "use_light_group_exclusive", text="Exclusive")
 
 
-class MATERIAL_PT_custom_props(MaterialButtonsPanel, PropertyPanel, bpy.types.Panel):
+class MATERIAL_PT_custom_props(MaterialButtonsPanel, PropertyPanel, Panel):
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
     _context_path = "material"
     _property_type = bpy.types.Material
diff --git a/release/scripts/startup/bl_ui/properties_object.py b/release/scripts/startup/bl_ui/properties_object.py
index cdbcf2cf53313a35af88035f7ce3997f0fbbb49d..0779debb1029821556cef84d0f92959519343a4e 100644
--- a/release/scripts/startup/bl_ui/properties_object.py
+++ b/release/scripts/startup/bl_ui/properties_object.py
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Panel
 from rna_prop_ui import PropertyPanel
 
 
@@ -27,7 +28,7 @@ class ObjectButtonsPanel():
     bl_context = "object"
 
 
-class OBJECT_PT_context_object(ObjectButtonsPanel, bpy.types.Panel):
+class OBJECT_PT_context_object(ObjectButtonsPanel, Panel):
     bl_label = ""
     bl_options = {'HIDE_HEADER'}
 
@@ -42,7 +43,7 @@ class OBJECT_PT_context_object(ObjectButtonsPanel, bpy.types.Panel):
             row.template_ID(context.scene.objects, "active")
 
 
-class OBJECT_PT_transform(ObjectButtonsPanel, bpy.types.Panel):
+class OBJECT_PT_transform(ObjectButtonsPanel, Panel):
     bl_label = "Transform"
 
     def draw(self, context):
@@ -68,7 +69,7 @@ class OBJECT_PT_transform(ObjectButtonsPanel, bpy.types.Panel):
         layout.prop(ob, "rotation_mode")
 
 
-class OBJECT_PT_delta_transform(ObjectButtonsPanel, bpy.types.Panel):
+class OBJECT_PT_delta_transform(ObjectButtonsPanel, Panel):
     bl_label = "Delta Transform"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -94,7 +95,7 @@ class OBJECT_PT_delta_transform(ObjectButtonsPanel, bpy.types.Panel):
         row.column().prop(ob, "delta_scale")
 
 
-class OBJECT_PT_transform_locks(ObjectButtonsPanel, bpy.types.Panel):
+class OBJECT_PT_transform_locks(ObjectButtonsPanel, Panel):
     bl_label = "Transform Locks"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -120,7 +121,7 @@ class OBJECT_PT_transform_locks(ObjectButtonsPanel, bpy.types.Panel):
         row.column().prop(ob, "lock_scale", text="Scale")
 
 
-class OBJECT_PT_relations(ObjectButtonsPanel, bpy.types.Panel):
+class OBJECT_PT_relations(ObjectButtonsPanel, Panel):
     bl_label = "Relations"
 
     def draw(self, context):
@@ -147,7 +148,7 @@ class OBJECT_PT_relations(ObjectButtonsPanel, bpy.types.Panel):
         sub.active = (parent is not None)
 
 
-class OBJECT_PT_groups(ObjectButtonsPanel, bpy.types.Panel):
+class OBJECT_PT_groups(ObjectButtonsPanel, Panel):
     bl_label = "Groups"
 
     def draw(self, context):
@@ -186,7 +187,7 @@ class OBJECT_PT_groups(ObjectButtonsPanel, bpy.types.Panel):
                 index += 1
 
 
-class OBJECT_PT_display(ObjectButtonsPanel, bpy.types.Panel):
+class OBJECT_PT_display(ObjectButtonsPanel, Panel):
     bl_label = "Display"
 
     def draw(self, context):
@@ -220,7 +221,7 @@ class OBJECT_PT_display(ObjectButtonsPanel, bpy.types.Panel):
             col.prop(ob, "show_transparent", text="Transparency")
 
 
-class OBJECT_PT_duplication(ObjectButtonsPanel, bpy.types.Panel):
+class OBJECT_PT_duplication(ObjectButtonsPanel, Panel):
     bl_label = "Duplication"
 
     def draw(self, context):
@@ -258,7 +259,7 @@ class OBJECT_PT_duplication(ObjectButtonsPanel, bpy.types.Panel):
 
 # XXX: the following options are all quite buggy, ancient hacks that should be dropped
 
-class OBJECT_PT_animation(ObjectButtonsPanel, bpy.types.Panel):
+class OBJECT_PT_animation(ObjectButtonsPanel, Panel):
     bl_label = "Animation Hacks"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -293,7 +294,7 @@ from bl_ui.properties_animviz import (
     )
 
 
-class OBJECT_PT_motion_paths(MotionPathButtonsPanel, bpy.types.Panel):
+class OBJECT_PT_motion_paths(MotionPathButtonsPanel, Panel):
     #bl_label = "Object Motion Paths"
     bl_context = "object"
 
@@ -315,7 +316,7 @@ class OBJECT_PT_motion_paths(MotionPathButtonsPanel, bpy.types.Panel):
         row.operator("object.paths_clear", text="Clear Paths")
 
 
-class OBJECT_PT_onion_skinning(OnionSkinButtonsPanel):  # , bpy.types.Panel): # inherit from panel when ready
+class OBJECT_PT_onion_skinning(OnionSkinButtonsPanel):  # , Panel): # inherit from panel when ready
     #bl_label = "Object Onion Skinning"
     bl_context = "object"
 
@@ -329,7 +330,7 @@ class OBJECT_PT_onion_skinning(OnionSkinButtonsPanel):  # , bpy.types.Panel): #
         self.draw_settings(context, ob.animation_visualisation)
 
 
-class OBJECT_PT_custom_props(ObjectButtonsPanel, PropertyPanel, bpy.types.Panel):
+class OBJECT_PT_custom_props(ObjectButtonsPanel, PropertyPanel, Panel):
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
     _context_path = "object"
     _property_type = bpy.types.Object
diff --git a/release/scripts/startup/bl_ui/properties_object_constraint.py b/release/scripts/startup/bl_ui/properties_object_constraint.py
index 5f79dd3127ad15f9366776006df8533a5c90b4e6..867abe4dd5d78a5eddb09c51640b4b98b96e8678 100644
--- a/release/scripts/startup/bl_ui/properties_object_constraint.py
+++ b/release/scripts/startup/bl_ui/properties_object_constraint.py
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Panel
 
 
 class ConstraintButtonsPanel():
@@ -755,7 +756,7 @@ class ConstraintButtonsPanel():
         layout.label("Blender 2.5 has no py-constraints")
 
 
-class OBJECT_PT_constraints(ConstraintButtonsPanel, bpy.types.Panel):
+class OBJECT_PT_constraints(ConstraintButtonsPanel, Panel):
     bl_label = "Object Constraints"
     bl_context = "constraint"
 
@@ -779,7 +780,7 @@ class OBJECT_PT_constraints(ConstraintButtonsPanel, bpy.types.Panel):
             self.draw_constraint(context, con)
 
 
-class BONE_PT_constraints(ConstraintButtonsPanel, bpy.types.Panel):
+class BONE_PT_constraints(ConstraintButtonsPanel, Panel):
     bl_label = "Bone Constraints"
     bl_context = "bone_constraint"
 
diff --git a/release/scripts/startup/bl_ui/properties_particle.py b/release/scripts/startup/bl_ui/properties_particle.py
index f23d05f4d17a55d6d6e5c0c8262ff558b1e1ad21..6187d95d932c1545a82ab221934e02dcb8607413 100644
--- a/release/scripts/startup/bl_ui/properties_particle.py
+++ b/release/scripts/startup/bl_ui/properties_particle.py
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Panel
 from rna_prop_ui import PropertyPanel
 
 from bl_ui.properties_physics_common import (
@@ -72,7 +73,7 @@ class ParticleButtonsPanel():
         return particle_panel_poll(cls, context)
 
 
-class PARTICLE_PT_context_particles(ParticleButtonsPanel, bpy.types.Panel):
+class PARTICLE_PT_context_particles(ParticleButtonsPanel, Panel):
     bl_label = ""
     bl_options = {'HIDE_HEADER'}
 
@@ -175,7 +176,7 @@ class PARTICLE_PT_context_particles(ParticleButtonsPanel, bpy.types.Panel):
                 split.prop(psys, "reactor_target_particle_system", text="Particle System")
 
 
-class PARTICLE_PT_emission(ParticleButtonsPanel, bpy.types.Panel):
+class PARTICLE_PT_emission(ParticleButtonsPanel, Panel):
     bl_label = "Emission"
 
     @classmethod
@@ -243,7 +244,7 @@ class PARTICLE_PT_emission(ParticleButtonsPanel, bpy.types.Panel):
                 row.prop(part, "grid_random", text="Random", slider=True)
 
 
-class PARTICLE_PT_hair_dynamics(ParticleButtonsPanel, bpy.types.Panel):
+class PARTICLE_PT_hair_dynamics(ParticleButtonsPanel, Panel):
     bl_label = "Hair dynamics"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -298,7 +299,7 @@ class PARTICLE_PT_hair_dynamics(ParticleButtonsPanel, bpy.types.Panel):
         col.prop(cloth, "quality", text="Steps", slider=True)
 
 
-class PARTICLE_PT_cache(ParticleButtonsPanel, bpy.types.Panel):
+class PARTICLE_PT_cache(ParticleButtonsPanel, Panel):
     bl_label = "Cache"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -323,7 +324,7 @@ class PARTICLE_PT_cache(ParticleButtonsPanel, bpy.types.Panel):
         point_cache_ui(self, context, psys.point_cache, True, 'HAIR' if (psys.settings.type == 'HAIR') else 'PSYS')
 
 
-class PARTICLE_PT_velocity(ParticleButtonsPanel, bpy.types.Panel):
+class PARTICLE_PT_velocity(ParticleButtonsPanel, Panel):
     bl_label = "Velocity"
 
     @classmethod
@@ -372,7 +373,7 @@ class PARTICLE_PT_velocity(ParticleButtonsPanel, bpy.types.Panel):
         #    sub.prop(part, "reaction_shape", slider=True)
 
 
-class PARTICLE_PT_rotation(ParticleButtonsPanel, bpy.types.Panel):
+class PARTICLE_PT_rotation(ParticleButtonsPanel, Panel):
     bl_label = "Rotation"
 
     @classmethod
@@ -420,7 +421,7 @@ class PARTICLE_PT_rotation(ParticleButtonsPanel, bpy.types.Panel):
             col.prop(part, "angular_velocity_factor", text="")
 
 
-class PARTICLE_PT_physics(ParticleButtonsPanel, bpy.types.Panel):
+class PARTICLE_PT_physics(ParticleButtonsPanel, Panel):
     bl_label = "Physics"
 
     @classmethod
@@ -455,7 +456,7 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, bpy.types.Panel):
             col.prop(part, "mass")
             col.prop(part, "use_multiply_size_mass", text="Multiply mass with size")
 
-        if part.physics_type in ('NEWTON', 'FLUID'):
+        if part.physics_type in {'NEWTON', 'FLUID'}:
             split = layout.split()
 
             col = split.column()
@@ -634,7 +635,7 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, bpy.types.Panel):
                     sub.prop(key, "system", text="System")
 
 
-class PARTICLE_PT_boidbrain(ParticleButtonsPanel, bpy.types.Panel):
+class PARTICLE_PT_boidbrain(ParticleButtonsPanel, Panel):
     bl_label = "Boid Brain"
 
     @classmethod
@@ -734,7 +735,7 @@ class PARTICLE_PT_boidbrain(ParticleButtonsPanel, bpy.types.Panel):
                 row.prop(rule, "flee_distance")
 
 
-class PARTICLE_PT_render(ParticleButtonsPanel, bpy.types.Panel):
+class PARTICLE_PT_render(ParticleButtonsPanel, Panel):
     bl_label = "Render"
 
     @classmethod
@@ -912,13 +913,13 @@ class PARTICLE_PT_render(ParticleButtonsPanel, bpy.types.Panel):
                 col = row.column()
                 col.label(text="")
 
-        if part.render_type in ('OBJECT', 'GROUP') and not part.use_advanced_hair:
+        if part.render_type in {'OBJECT', 'GROUP'} and not part.use_advanced_hair:
             row = layout.row(align=True)
             row.prop(part, "particle_size")
             row.prop(part, "size_random", slider=True)
 
 
-class PARTICLE_PT_draw(ParticleButtonsPanel, bpy.types.Panel):
+class PARTICLE_PT_draw(ParticleButtonsPanel, Panel):
     bl_label = "Display"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -979,7 +980,7 @@ class PARTICLE_PT_draw(ParticleButtonsPanel, bpy.types.Panel):
             col.prop(part, "draw_step")
 
 
-class PARTICLE_PT_children(ParticleButtonsPanel, bpy.types.Panel):
+class PARTICLE_PT_children(ParticleButtonsPanel, Panel):
     bl_label = "Children"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -1078,7 +1079,7 @@ class PARTICLE_PT_children(ParticleButtonsPanel, bpy.types.Panel):
         sub.prop(part, "kink_shape", slider=True)
 
 
-class PARTICLE_PT_field_weights(ParticleButtonsPanel, bpy.types.Panel):
+class PARTICLE_PT_field_weights(ParticleButtonsPanel, Panel):
     bl_label = "Field Weights"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -1098,7 +1099,7 @@ class PARTICLE_PT_field_weights(ParticleButtonsPanel, bpy.types.Panel):
             row.prop(part, "effect_hair", slider=True)
 
 
-class PARTICLE_PT_force_fields(ParticleButtonsPanel, bpy.types.Panel):
+class PARTICLE_PT_force_fields(ParticleButtonsPanel, Panel):
     bl_label = "Force Field Settings"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -1131,7 +1132,7 @@ class PARTICLE_PT_force_fields(ParticleButtonsPanel, bpy.types.Panel):
         basic_force_field_falloff_ui(self, context, part.force_field_2)
 
 
-class PARTICLE_PT_vertexgroups(ParticleButtonsPanel, bpy.types.Panel):
+class PARTICLE_PT_vertexgroups(ParticleButtonsPanel, Panel):
     bl_label = "Vertexgroups"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -1201,7 +1202,7 @@ class PARTICLE_PT_vertexgroups(ParticleButtonsPanel, bpy.types.Panel):
         # row.prop(psys, "invert_vertex_group_field", text="")
 
 
-class PARTICLE_PT_custom_props(ParticleButtonsPanel, PropertyPanel, bpy.types.Panel):
+class PARTICLE_PT_custom_props(ParticleButtonsPanel, PropertyPanel, Panel):
     _context_path = "particle_system.settings"
     _property_type = bpy.types.ParticleSettings
 
diff --git a/release/scripts/startup/bl_ui/properties_physics_cloth.py b/release/scripts/startup/bl_ui/properties_physics_cloth.py
index bce6ab993a7fd8a3fa5745a6beaffe7de7684f92..d5427d8bae871bd6a625f37210946d22f09cca79 100644
--- a/release/scripts/startup/bl_ui/properties_physics_cloth.py
+++ b/release/scripts/startup/bl_ui/properties_physics_cloth.py
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Menu, Panel
 
 
 from bl_ui.properties_physics_common import (
@@ -30,14 +31,14 @@ def cloth_panel_enabled(md):
     return md.point_cache.is_baked is False
 
 
-class CLOTH_MT_presets(bpy.types.Menu):
+class CLOTH_MT_presets(Menu):
     '''
     Creates the menu items by scanning scripts/templates
     '''
     bl_label = "Cloth Presets"
     preset_subdir = "cloth"
     preset_operator = "script.execute_preset"
-    draw = bpy.types.Menu.draw_preset
+    draw = Menu.draw_preset
 
 
 class PhysicButtonsPanel():
@@ -52,7 +53,7 @@ class PhysicButtonsPanel():
         return (ob and ob.type == 'MESH') and (not rd.use_game_engine) and (context.cloth)
 
 
-class PHYSICS_PT_cloth(PhysicButtonsPanel, bpy.types.Panel):
+class PHYSICS_PT_cloth(PhysicButtonsPanel, Panel):
     bl_label = "Cloth"
 
     def draw(self, context):
@@ -117,7 +118,7 @@ class PHYSICS_PT_cloth(PhysicButtonsPanel, bpy.types.Panel):
                 col.prop_search(cloth, "rest_shape_key", key, "key_blocks", text="")
 
 
-class PHYSICS_PT_cloth_cache(PhysicButtonsPanel, bpy.types.Panel):
+class PHYSICS_PT_cloth_cache(PhysicButtonsPanel, Panel):
     bl_label = "Cloth Cache"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -130,7 +131,7 @@ class PHYSICS_PT_cloth_cache(PhysicButtonsPanel, bpy.types.Panel):
         point_cache_ui(self, context, md.point_cache, cloth_panel_enabled(md), 'CLOTH')
 
 
-class PHYSICS_PT_cloth_collision(PhysicButtonsPanel, bpy.types.Panel):
+class PHYSICS_PT_cloth_collision(PhysicButtonsPanel, Panel):
     bl_label = "Cloth Collision"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -171,7 +172,7 @@ class PHYSICS_PT_cloth_collision(PhysicButtonsPanel, bpy.types.Panel):
         layout.prop(cloth, "group")
 
 
-class PHYSICS_PT_cloth_stiffness(PhysicButtonsPanel, bpy.types.Panel):
+class PHYSICS_PT_cloth_stiffness(PhysicButtonsPanel, Panel):
     bl_label = "Cloth Stiffness Scaling"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -207,7 +208,7 @@ class PHYSICS_PT_cloth_stiffness(PhysicButtonsPanel, bpy.types.Panel):
         col.prop(cloth, "bending_stiffness_max", text="Max")
 
 
-class PHYSICS_PT_cloth_field_weights(PhysicButtonsPanel, bpy.types.Panel):
+class PHYSICS_PT_cloth_field_weights(PhysicButtonsPanel, Panel):
     bl_label = "Cloth Field Weights"
     bl_options = {'DEFAULT_CLOSED'}
 
diff --git a/release/scripts/startup/bl_ui/properties_physics_common.py b/release/scripts/startup/bl_ui/properties_physics_common.py
index f7cf8da184033d6a7a1a17f2dd60e7ae8897bd31..204e25d9f011e84f6b64624b6912e1c867680c92 100644
--- a/release/scripts/startup/bl_ui/properties_physics_common.py
+++ b/release/scripts/startup/bl_ui/properties_physics_common.py
@@ -19,6 +19,7 @@
 # <pep8 compliant>
 
 import bpy
+from bpy.types import Panel
 
 
 class PhysicButtonsPanel():
@@ -44,7 +45,7 @@ def physics_add(self, layout, md, name, type, typeicon, toggles):
         sub.operator("object.modifier_add", text=name, icon=typeicon).type = type
 
 
-class PHYSICS_PT_add(PhysicButtonsPanel, bpy.types.Panel):
+class PHYSICS_PT_add(PhysicButtonsPanel, Panel):
     bl_label = ""
     bl_options = {'HIDE_HEADER'}
 
diff --git a/release/scripts/startup/bl_ui/properties_physics_field.py b/release/scripts/startup/bl_ui/properties_physics_field.py
index bd374f0a6f873808045e9347859d094426330349..aa0ff4c6c669bcbacb8b13e10d10bc7246d5d386 100644
--- a/release/scripts/startup/bl_ui/properties_physics_field.py
+++ b/release/scripts/startup/bl_ui/properties_physics_field.py
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Panel
 
 
 from bl_ui.properties_physics_common import (
@@ -37,7 +38,7 @@ class PhysicButtonsPanel():
         return (context.object) and (not rd.use_game_engine)
 
 
-class PHYSICS_PT_field(PhysicButtonsPanel, bpy.types.Panel):
+class PHYSICS_PT_field(PhysicButtonsPanel, Panel):
     bl_label = "Force Fields"
 
     @classmethod
@@ -167,7 +168,7 @@ class PHYSICS_PT_field(PhysicButtonsPanel, bpy.types.Panel):
                 sub.prop(field, "radial_max", text="Distance")
 
 
-class PHYSICS_PT_collision(PhysicButtonsPanel, bpy.types.Panel):
+class PHYSICS_PT_collision(PhysicButtonsPanel, Panel):
     bl_label = "Collision"
     #bl_options = {'DEFAULT_CLOSED'}
 
diff --git a/release/scripts/startup/bl_ui/properties_physics_fluid.py b/release/scripts/startup/bl_ui/properties_physics_fluid.py
index c7e3a9e722007efcf4150e305caeb3606dcc4ed7..46893af3582fbf8ec43cd158dfb708c31f9b6bb7 100644
--- a/release/scripts/startup/bl_ui/properties_physics_fluid.py
+++ b/release/scripts/startup/bl_ui/properties_physics_fluid.py
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Panel
 
 
 class PhysicButtonsPanel():
@@ -32,7 +33,7 @@ class PhysicButtonsPanel():
         return (ob and ob.type == 'MESH') and (not rd.use_game_engine) and (context.fluid)
 
 
-class PHYSICS_PT_fluid(PhysicButtonsPanel, bpy.types.Panel):
+class PHYSICS_PT_fluid(PhysicButtonsPanel, Panel):
     bl_label = "Fluid"
 
     def draw(self, context):
@@ -186,7 +187,7 @@ class PHYSICS_PT_fluid(PhysicButtonsPanel, bpy.types.Panel):
                 sub.prop(fluid, "velocity_radius", text="Radius")
 
 
-class PHYSICS_PT_domain_gravity(PhysicButtonsPanel, bpy.types.Panel):
+class PHYSICS_PT_domain_gravity(PhysicButtonsPanel, Panel):
     bl_label = "Domain World"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -236,7 +237,7 @@ class PHYSICS_PT_domain_gravity(PhysicButtonsPanel, bpy.types.Panel):
         col.prop(fluid, "compressibility", slider=True)
 
 
-class PHYSICS_PT_domain_boundary(PhysicButtonsPanel, bpy.types.Panel):
+class PHYSICS_PT_domain_boundary(PhysicButtonsPanel, Panel):
     bl_label = "Domain Boundary"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -265,7 +266,7 @@ class PHYSICS_PT_domain_boundary(PhysicButtonsPanel, bpy.types.Panel):
         col.prop(fluid, "surface_subdivisions", text="Subdivisions")
 
 
-class PHYSICS_PT_domain_particles(PhysicButtonsPanel, bpy.types.Panel):
+class PHYSICS_PT_domain_particles(PhysicButtonsPanel, Panel):
     bl_label = "Domain Particles"
     bl_options = {'DEFAULT_CLOSED'}
 
diff --git a/release/scripts/startup/bl_ui/properties_physics_smoke.py b/release/scripts/startup/bl_ui/properties_physics_smoke.py
index 61d8d2e3825dcf1d2022b3cbefc64a20a5786f06..771a778380d8516b3c9d38745af5477275b4711b 100644
--- a/release/scripts/startup/bl_ui/properties_physics_smoke.py
+++ b/release/scripts/startup/bl_ui/properties_physics_smoke.py
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Panel
 
 
 from bl_ui.properties_physics_common import (
@@ -38,7 +39,7 @@ class PhysicButtonsPanel():
         return (ob and ob.type == 'MESH') and (not rd.use_game_engine) and (context.smoke)
 
 
-class PHYSICS_PT_smoke(PhysicButtonsPanel, bpy.types.Panel):
+class PHYSICS_PT_smoke(PhysicButtonsPanel, Panel):
     bl_label = "Smoke"
 
     def draw(self, context):
@@ -103,7 +104,7 @@ class PHYSICS_PT_smoke(PhysicButtonsPanel, bpy.types.Panel):
                 sub.prop(flow, "temperature")
 
 
-class PHYSICS_PT_smoke_groups(PhysicButtonsPanel, bpy.types.Panel):
+class PHYSICS_PT_smoke_groups(PhysicButtonsPanel, Panel):
     bl_label = "Smoke Groups"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -131,7 +132,7 @@ class PHYSICS_PT_smoke_groups(PhysicButtonsPanel, bpy.types.Panel):
         col.prop(group, "collision_group", text="")
 
 
-class PHYSICS_PT_smoke_highres(PhysicButtonsPanel, bpy.types.Panel):
+class PHYSICS_PT_smoke_highres(PhysicButtonsPanel, Panel):
     bl_label = "Smoke High Resolution"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -168,7 +169,7 @@ class PHYSICS_PT_smoke_highres(PhysicButtonsPanel, bpy.types.Panel):
         layout.prop(md, "show_high_resolution")
 
 
-class PHYSICS_PT_smoke_cache(PhysicButtonsPanel, bpy.types.Panel):
+class PHYSICS_PT_smoke_cache(PhysicButtonsPanel, Panel):
     bl_label = "Smoke Cache"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -189,7 +190,7 @@ class PHYSICS_PT_smoke_cache(PhysicButtonsPanel, bpy.types.Panel):
         point_cache_ui(self, context, cache, (cache.is_baked is False), 'SMOKE')
 
 
-class PHYSICS_PT_smoke_field_weights(PhysicButtonsPanel, bpy.types.Panel):
+class PHYSICS_PT_smoke_field_weights(PhysicButtonsPanel, Panel):
     bl_label = "Smoke Field Weights"
     bl_options = {'DEFAULT_CLOSED'}
 
diff --git a/release/scripts/startup/bl_ui/properties_physics_softbody.py b/release/scripts/startup/bl_ui/properties_physics_softbody.py
index 61115a0590e3dd185284ce5f8919d99a2026d17c..0b55ccf95167b0f6b41539cd4b9c5584e89ae8a1 100644
--- a/release/scripts/startup/bl_ui/properties_physics_softbody.py
+++ b/release/scripts/startup/bl_ui/properties_physics_softbody.py
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Panel
 
 
 from bl_ui.properties_physics_common import (
@@ -44,7 +45,7 @@ class PhysicButtonsPanel():
         return (ob and (ob.type == 'MESH' or ob.type == 'LATTICE'or ob.type == 'CURVE')) and (not rd.use_game_engine) and (context.soft_body)
 
 
-class PHYSICS_PT_softbody(PhysicButtonsPanel, bpy.types.Panel):
+class PHYSICS_PT_softbody(PhysicButtonsPanel, Panel):
     bl_label = "Soft Body"
 
     def draw(self, context):
@@ -71,7 +72,7 @@ class PHYSICS_PT_softbody(PhysicButtonsPanel, bpy.types.Panel):
             col.prop(softbody, "speed")
 
 
-class PHYSICS_PT_softbody_cache(PhysicButtonsPanel, bpy.types.Panel):
+class PHYSICS_PT_softbody_cache(PhysicButtonsPanel, Panel):
     bl_label = "Soft Body Cache"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -84,7 +85,7 @@ class PHYSICS_PT_softbody_cache(PhysicButtonsPanel, bpy.types.Panel):
         point_cache_ui(self, context, md.point_cache, softbody_panel_enabled(md), 'SOFTBODY')
 
 
-class PHYSICS_PT_softbody_goal(PhysicButtonsPanel, bpy.types.Panel):
+class PHYSICS_PT_softbody_goal(PhysicButtonsPanel, Panel):
     bl_label = "Soft Body Goal"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -127,7 +128,7 @@ class PHYSICS_PT_softbody_goal(PhysicButtonsPanel, bpy.types.Panel):
         layout.prop_search(softbody, "vertex_group_goal", ob, "vertex_groups", text="Vertex Group")
 
 
-class PHYSICS_PT_softbody_edge(PhysicButtonsPanel, bpy.types.Panel):
+class PHYSICS_PT_softbody_edge(PhysicButtonsPanel, Panel):
     bl_label = "Soft Body Edges"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -180,7 +181,7 @@ class PHYSICS_PT_softbody_edge(PhysicButtonsPanel, bpy.types.Panel):
         col.prop(softbody, "use_face_collision", text="Face")
 
 
-class PHYSICS_PT_softbody_collision(PhysicButtonsPanel, bpy.types.Panel):
+class PHYSICS_PT_softbody_collision(PhysicButtonsPanel, Panel):
     bl_label = "Soft Body Self Collision"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -212,7 +213,7 @@ class PHYSICS_PT_softbody_collision(PhysicButtonsPanel, bpy.types.Panel):
         col.prop(softbody, "ball_damp", text="Dampening")
 
 
-class PHYSICS_PT_softbody_solver(PhysicButtonsPanel, bpy.types.Panel):
+class PHYSICS_PT_softbody_solver(PhysicButtonsPanel, Panel):
     bl_label = "Soft Body Solver"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -248,7 +249,7 @@ class PHYSICS_PT_softbody_solver(PhysicButtonsPanel, bpy.types.Panel):
         layout.prop(softbody, "use_estimate_matrix")
 
 
-class PHYSICS_PT_softbody_field_weights(PhysicButtonsPanel, bpy.types.Panel):
+class PHYSICS_PT_softbody_field_weights(PhysicButtonsPanel, Panel):
     bl_label = "Soft Body Field Weights"
     bl_options = {'DEFAULT_CLOSED'}
 
diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py
index 6d36db29a6c735200d6ea9e73925f4861836b95f..fb14372ebeafc213c210ffcc59b37ff96dcc84f3 100644
--- a/release/scripts/startup/bl_ui/properties_render.py
+++ b/release/scripts/startup/bl_ui/properties_render.py
@@ -18,27 +18,28 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Menu, Panel
 
 
-class RENDER_MT_presets(bpy.types.Menu):
+class RENDER_MT_presets(Menu):
     bl_label = "Render Presets"
     preset_subdir = "render"
     preset_operator = "script.execute_preset"
-    draw = bpy.types.Menu.draw_preset
+    draw = Menu.draw_preset
 
 
-class RENDER_MT_ffmpeg_presets(bpy.types.Menu):
+class RENDER_MT_ffmpeg_presets(Menu):
     bl_label = "FFMPEG Presets"
     preset_subdir = "ffmpeg"
     preset_operator = "script.python_file_run"
-    draw = bpy.types.Menu.draw_preset
+    draw = Menu.draw_preset
 
 
-class RENDER_MT_framerate_presets(bpy.types.Menu):
+class RENDER_MT_framerate_presets(Menu):
     bl_label = "Frame Rate Presets"
     preset_subdir = "framerate"
     preset_operator = "script.execute_preset"
-    draw = bpy.types.Menu.draw_preset
+    draw = Menu.draw_preset
 
 
 class RenderButtonsPanel():
@@ -53,7 +54,7 @@ class RenderButtonsPanel():
         return (context.scene and rd.use_game_engine is False) and (rd.engine in cls.COMPAT_ENGINES)
 
 
-class RENDER_PT_render(RenderButtonsPanel, bpy.types.Panel):
+class RENDER_PT_render(RenderButtonsPanel, Panel):
     bl_label = "Render"
     COMPAT_ENGINES = {'BLENDER_RENDER'}
 
@@ -69,7 +70,7 @@ class RENDER_PT_render(RenderButtonsPanel, bpy.types.Panel):
         layout.prop(rd, "display_mode", text="Display")
 
 
-class RENDER_PT_layers(RenderButtonsPanel, bpy.types.Panel):
+class RENDER_PT_layers(RenderButtonsPanel, Panel):
     bl_label = "Layers"
     bl_options = {'DEFAULT_CLOSED'}
     COMPAT_ENGINES = {'BLENDER_RENDER'}
@@ -173,7 +174,7 @@ class RENDER_PT_layers(RenderButtonsPanel, bpy.types.Panel):
         row.prop(rl, "exclude_refraction", text="")
 
 
-class RENDER_PT_dimensions(RenderButtonsPanel, bpy.types.Panel):
+class RENDER_PT_dimensions(RenderButtonsPanel, Panel):
     bl_label = "Dimensions"
     COMPAT_ENGINES = {'BLENDER_RENDER'}
 
@@ -240,7 +241,7 @@ class RENDER_PT_dimensions(RenderButtonsPanel, bpy.types.Panel):
         subrow.prop(rd, "frame_map_new", text="New")
 
 
-class RENDER_PT_antialiasing(RenderButtonsPanel, bpy.types.Panel):
+class RENDER_PT_antialiasing(RenderButtonsPanel, Panel):
     bl_label = "Anti-Aliasing"
     COMPAT_ENGINES = {'BLENDER_RENDER'}
 
@@ -268,7 +269,7 @@ class RENDER_PT_antialiasing(RenderButtonsPanel, bpy.types.Panel):
         col.prop(rd, "filter_size", text="Size")
 
 
-class RENDER_PT_motion_blur(RenderButtonsPanel, bpy.types.Panel):
+class RENDER_PT_motion_blur(RenderButtonsPanel, Panel):
     bl_label = "Sampled Motion Blur"
     bl_options = {'DEFAULT_CLOSED'}
     COMPAT_ENGINES = {'BLENDER_RENDER'}
@@ -294,7 +295,7 @@ class RENDER_PT_motion_blur(RenderButtonsPanel, bpy.types.Panel):
         row.prop(rd, "motion_blur_shutter")
 
 
-class RENDER_PT_shading(RenderButtonsPanel, bpy.types.Panel):
+class RENDER_PT_shading(RenderButtonsPanel, Panel):
     bl_label = "Shading"
     bl_options = {'DEFAULT_CLOSED'}
     COMPAT_ENGINES = {'BLENDER_RENDER'}
@@ -318,7 +319,7 @@ class RENDER_PT_shading(RenderButtonsPanel, bpy.types.Panel):
         col.prop(rd, "alpha_mode", text="Alpha")
 
 
-class RENDER_PT_performance(RenderButtonsPanel, bpy.types.Panel):
+class RENDER_PT_performance(RenderButtonsPanel, Panel):
     bl_label = "Performance"
     bl_options = {'DEFAULT_CLOSED'}
     COMPAT_ENGINES = {'BLENDER_RENDER'}
@@ -361,7 +362,7 @@ class RENDER_PT_performance(RenderButtonsPanel, bpy.types.Panel):
         sub.prop(rd, "use_local_coords", text="Local Coordinates")
 
 
-class RENDER_PT_post_processing(RenderButtonsPanel, bpy.types.Panel):
+class RENDER_PT_post_processing(RenderButtonsPanel, Panel):
     bl_label = "Post Processing"
     bl_options = {'DEFAULT_CLOSED'}
     COMPAT_ENGINES = {'BLENDER_RENDER'}
@@ -398,7 +399,7 @@ class RENDER_PT_post_processing(RenderButtonsPanel, bpy.types.Panel):
         sub.prop(rd, "edge_color", text="")
 
 
-class RENDER_PT_stamp(RenderButtonsPanel, bpy.types.Panel):
+class RENDER_PT_stamp(RenderButtonsPanel, Panel):
     bl_label = "Stamp"
     bl_options = {'DEFAULT_CLOSED'}
     COMPAT_ENGINES = {'BLENDER_RENDER'}
@@ -443,7 +444,7 @@ class RENDER_PT_stamp(RenderButtonsPanel, bpy.types.Panel):
         sub.prop(rd, "stamp_note_text", text="")
 
 
-class RENDER_PT_output(RenderButtonsPanel, bpy.types.Panel):
+class RENDER_PT_output(RenderButtonsPanel, Panel):
     bl_label = "Output"
     COMPAT_ENGINES = {'BLENDER_RENDER'}
 
@@ -543,7 +544,7 @@ class RENDER_PT_output(RenderButtonsPanel, bpy.types.Panel):
                 col.prop(rd, "quicktime_audio_resampling_hq")
 
 
-class RENDER_PT_encoding(RenderButtonsPanel, bpy.types.Panel):
+class RENDER_PT_encoding(RenderButtonsPanel, Panel):
     bl_label = "Encoding"
     bl_options = {'DEFAULT_CLOSED'}
     COMPAT_ENGINES = {'BLENDER_RENDER'}
@@ -600,7 +601,7 @@ class RENDER_PT_encoding(RenderButtonsPanel, bpy.types.Panel):
         split.prop(rd, "ffmpeg_audio_volume", slider=True)
 
 
-class RENDER_PT_bake(RenderButtonsPanel, bpy.types.Panel):
+class RENDER_PT_bake(RenderButtonsPanel, Panel):
     bl_label = "Bake"
     bl_options = {'DEFAULT_CLOSED'}
     COMPAT_ENGINES = {'BLENDER_RENDER'}
diff --git a/release/scripts/startup/bl_ui/properties_scene.py b/release/scripts/startup/bl_ui/properties_scene.py
index 7725f6616934489646f33b259a9cef60dc3458f0..6e96e1228e7ba266f20af9058870b77b6ed209fc 100644
--- a/release/scripts/startup/bl_ui/properties_scene.py
+++ b/release/scripts/startup/bl_ui/properties_scene.py
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Operator, Panel
 from rna_prop_ui import PropertyPanel
 
 
@@ -31,7 +32,7 @@ class SceneButtonsPanel():
         return context.scene
 
 
-class SCENE_PT_scene(SceneButtonsPanel, bpy.types.Panel):
+class SCENE_PT_scene(SceneButtonsPanel, Panel):
     bl_label = "Scene"
     COMPAT_ENGINES = {'BLENDER_RENDER'}
 
@@ -43,7 +44,7 @@ class SCENE_PT_scene(SceneButtonsPanel, bpy.types.Panel):
         layout.prop(scene, "background_set", text="Background")
 
 
-class SCENE_PT_unit(SceneButtonsPanel, bpy.types.Panel):
+class SCENE_PT_unit(SceneButtonsPanel, Panel):
     bl_label = "Units"
     COMPAT_ENGINES = {'BLENDER_RENDER'}
 
@@ -61,7 +62,7 @@ class SCENE_PT_unit(SceneButtonsPanel, bpy.types.Panel):
         row.prop(unit, "use_separate")
 
 
-class SCENE_PT_keying_sets(SceneButtonsPanel, bpy.types.Panel):
+class SCENE_PT_keying_sets(SceneButtonsPanel, Panel):
     bl_label = "Keying Sets"
 
     def draw(self, context):
@@ -94,7 +95,7 @@ class SCENE_PT_keying_sets(SceneButtonsPanel, bpy.types.Panel):
             col.prop(ks, "bl_options")
 
 
-class SCENE_PT_keying_set_paths(SceneButtonsPanel, bpy.types.Panel):
+class SCENE_PT_keying_set_paths(SceneButtonsPanel, Panel):
     bl_label = "Active Keying Set"
 
     @classmethod
@@ -144,7 +145,7 @@ class SCENE_PT_keying_set_paths(SceneButtonsPanel, bpy.types.Panel):
             col.prop(ksp, "bl_options")
 
 
-class SCENE_PT_physics(SceneButtonsPanel, bpy.types.Panel):
+class SCENE_PT_physics(SceneButtonsPanel, Panel):
     bl_label = "Gravity"
     COMPAT_ENGINES = {'BLENDER_RENDER'}
 
@@ -161,7 +162,7 @@ class SCENE_PT_physics(SceneButtonsPanel, bpy.types.Panel):
         layout.prop(scene, "gravity", text="")
 
 
-class SCENE_PT_simplify(SceneButtonsPanel, bpy.types.Panel):
+class SCENE_PT_simplify(SceneButtonsPanel, Panel):
     bl_label = "Simplify"
     COMPAT_ENGINES = {'BLENDER_RENDER'}
 
@@ -190,7 +191,7 @@ class SCENE_PT_simplify(SceneButtonsPanel, bpy.types.Panel):
         col.prop(rd, "simplify_ao_sss", text="AO and SSS")
 
 
-class SCENE_PT_custom_props(SceneButtonsPanel, PropertyPanel, bpy.types.Panel):
+class SCENE_PT_custom_props(SceneButtonsPanel, PropertyPanel, Panel):
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
     _context_path = "scene"
     _property_type = bpy.types.Scene
@@ -198,7 +199,7 @@ class SCENE_PT_custom_props(SceneButtonsPanel, PropertyPanel, bpy.types.Panel):
 #  XXX, move operator to op/ dir
 
 
-class ANIM_OT_keying_set_export(bpy.types.Operator):
+class ANIM_OT_keying_set_export(Operator):
     "Export Keying Set to a python script."
     bl_idname = "anim.keying_set_export"
     bl_label = "Export Keying Set..."
diff --git a/release/scripts/startup/bl_ui/properties_texture.py b/release/scripts/startup/bl_ui/properties_texture.py
index e216f0192975d3519ad525a203e1ba41caa36a7f..fe741b78daaab98e43128fa611a40b70f3191a8e 100644
--- a/release/scripts/startup/bl_ui/properties_texture.py
+++ b/release/scripts/startup/bl_ui/properties_texture.py
@@ -18,10 +18,11 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Menu, Panel
 from rna_prop_ui import PropertyPanel
 
 
-class TEXTURE_MT_specials(bpy.types.Menu):
+class TEXTURE_MT_specials(Menu):
     bl_label = "Texture Specials"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
 
@@ -32,7 +33,7 @@ class TEXTURE_MT_specials(bpy.types.Menu):
         layout.operator("texture.slot_paste", icon='PASTEDOWN')
 
 
-class TEXTURE_MT_envmap_specials(bpy.types.Menu):
+class TEXTURE_MT_envmap_specials(Menu):
     bl_label = "Environment Map Specials"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
 
@@ -80,7 +81,7 @@ class TextureButtonsPanel():
         return tex and (tex.type != 'NONE' or tex.use_nodes) and (context.scene.render.engine in cls.COMPAT_ENGINES)
 
 
-class TEXTURE_PT_context_texture(TextureButtonsPanel, bpy.types.Panel):
+class TEXTURE_PT_context_texture(TextureButtonsPanel, Panel):
     bl_label = ""
     bl_options = {'HIDE_HEADER'}
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
@@ -150,7 +151,7 @@ class TEXTURE_PT_context_texture(TextureButtonsPanel, bpy.types.Panel):
                 split.prop(tex, "type", text="")
 
 
-class TEXTURE_PT_preview(TextureButtonsPanel, bpy.types.Panel):
+class TEXTURE_PT_preview(TextureButtonsPanel, Panel):
     bl_label = "Preview"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
 
@@ -167,7 +168,7 @@ class TEXTURE_PT_preview(TextureButtonsPanel, bpy.types.Panel):
             layout.template_preview(tex, slot=slot)
 
 
-class TEXTURE_PT_colors(TextureButtonsPanel, bpy.types.Panel):
+class TEXTURE_PT_colors(TextureButtonsPanel, Panel):
     bl_label = "Colors"
     bl_options = {'DEFAULT_CLOSED'}
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
@@ -223,7 +224,7 @@ class TextureTypePanel(TextureButtonsPanel):
         return tex and ((tex.type == cls.tex_type and not tex.use_nodes) and (engine in cls.COMPAT_ENGINES))
 
 
-class TEXTURE_PT_clouds(TextureTypePanel, bpy.types.Panel):
+class TEXTURE_PT_clouds(TextureTypePanel, Panel):
     bl_label = "Clouds"
     tex_type = 'CLOUDS'
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
@@ -247,7 +248,7 @@ class TEXTURE_PT_clouds(TextureTypePanel, bpy.types.Panel):
         split.prop(tex, "nabla", text="Nabla")
 
 
-class TEXTURE_PT_wood(TextureTypePanel, bpy.types.Panel):
+class TEXTURE_PT_wood(TextureTypePanel, Panel):
     bl_label = "Wood"
     tex_type = 'WOOD'
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
@@ -276,7 +277,7 @@ class TEXTURE_PT_wood(TextureTypePanel, bpy.types.Panel):
         split.prop(tex, "nabla")
 
 
-class TEXTURE_PT_marble(TextureTypePanel, bpy.types.Panel):
+class TEXTURE_PT_marble(TextureTypePanel, Panel):
     bl_label = "Marble"
     tex_type = 'MARBLE'
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
@@ -303,7 +304,7 @@ class TEXTURE_PT_marble(TextureTypePanel, bpy.types.Panel):
         col.prop(tex, "nabla")
 
 
-class TEXTURE_PT_magic(TextureTypePanel, bpy.types.Panel):
+class TEXTURE_PT_magic(TextureTypePanel, Panel):
     bl_label = "Magic"
     tex_type = 'MAGIC'
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
@@ -318,7 +319,7 @@ class TEXTURE_PT_magic(TextureTypePanel, bpy.types.Panel):
         row.prop(tex, "turbulence")
 
 
-class TEXTURE_PT_blend(TextureTypePanel, bpy.types.Panel):
+class TEXTURE_PT_blend(TextureTypePanel, Panel):
     bl_label = "Blend"
     tex_type = 'BLEND'
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
@@ -336,7 +337,7 @@ class TEXTURE_PT_blend(TextureTypePanel, bpy.types.Panel):
         sub.prop(tex, "use_flip_axis", expand=True)
 
 
-class TEXTURE_PT_stucci(TextureTypePanel, bpy.types.Panel):
+class TEXTURE_PT_stucci(TextureTypePanel, Panel):
     bl_label = "Stucci"
     tex_type = 'STUCCI'
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
@@ -356,7 +357,7 @@ class TEXTURE_PT_stucci(TextureTypePanel, bpy.types.Panel):
         row.prop(tex, "turbulence")
 
 
-class TEXTURE_PT_image(TextureTypePanel, bpy.types.Panel):
+class TEXTURE_PT_image(TextureTypePanel, Panel):
     bl_label = "Image"
     tex_type = 'IMAGE'
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
@@ -382,7 +383,7 @@ def texture_filter_common(tex, layout):
     layout.prop(tex, "use_filter_size_min")
 
 
-class TEXTURE_PT_image_sampling(TextureTypePanel, bpy.types.Panel):
+class TEXTURE_PT_image_sampling(TextureTypePanel, Panel):
     bl_label = "Image Sampling"
     bl_options = {'DEFAULT_CLOSED'}
     tex_type = 'IMAGE'
@@ -424,7 +425,7 @@ class TEXTURE_PT_image_sampling(TextureTypePanel, bpy.types.Panel):
         texture_filter_common(tex, col)
 
 
-class TEXTURE_PT_image_mapping(TextureTypePanel, bpy.types.Panel):
+class TEXTURE_PT_image_mapping(TextureTypePanel, Panel):
     bl_label = "Image Mapping"
     bl_options = {'DEFAULT_CLOSED'}
     tex_type = 'IMAGE'
@@ -480,7 +481,7 @@ class TEXTURE_PT_image_mapping(TextureTypePanel, bpy.types.Panel):
         col.prop(tex, "crop_max_y", text="Y")
 
 
-class TEXTURE_PT_envmap(TextureTypePanel, bpy.types.Panel):
+class TEXTURE_PT_envmap(TextureTypePanel, Panel):
     bl_label = "Environment Map"
     tex_type = 'ENVIRONMENT_MAP'
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
@@ -518,7 +519,7 @@ class TEXTURE_PT_envmap(TextureTypePanel, bpy.types.Panel):
             col.prop(env, "clip_end", text="End")
 
 
-class TEXTURE_PT_envmap_sampling(TextureTypePanel, bpy.types.Panel):
+class TEXTURE_PT_envmap_sampling(TextureTypePanel, Panel):
     bl_label = "Environment Map Sampling"
     bl_options = {'DEFAULT_CLOSED'}
     tex_type = 'ENVIRONMENT_MAP'
@@ -532,7 +533,7 @@ class TEXTURE_PT_envmap_sampling(TextureTypePanel, bpy.types.Panel):
         texture_filter_common(tex, layout)
 
 
-class TEXTURE_PT_musgrave(TextureTypePanel, bpy.types.Panel):
+class TEXTURE_PT_musgrave(TextureTypePanel, Panel):
     bl_label = "Musgrave"
     tex_type = 'MUSGRAVE'
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
@@ -569,7 +570,7 @@ class TEXTURE_PT_musgrave(TextureTypePanel, bpy.types.Panel):
         row.prop(tex, "nabla")
 
 
-class TEXTURE_PT_voronoi(TextureTypePanel, bpy.types.Panel):
+class TEXTURE_PT_voronoi(TextureTypePanel, Panel):
     bl_label = "Voronoi"
     tex_type = 'VORONOI'
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
@@ -605,7 +606,7 @@ class TEXTURE_PT_voronoi(TextureTypePanel, bpy.types.Panel):
         row.prop(tex, "nabla")
 
 
-class TEXTURE_PT_distortednoise(TextureTypePanel, bpy.types.Panel):
+class TEXTURE_PT_distortednoise(TextureTypePanel, Panel):
     bl_label = "Distorted Noise"
     tex_type = 'DISTORTED_NOISE'
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
@@ -627,7 +628,7 @@ class TEXTURE_PT_distortednoise(TextureTypePanel, bpy.types.Panel):
         split.prop(tex, "nabla")
 
 
-class TEXTURE_PT_voxeldata(TextureButtonsPanel, bpy.types.Panel):
+class TEXTURE_PT_voxeldata(TextureButtonsPanel, Panel):
     bl_label = "Voxel Data"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
 
@@ -667,7 +668,7 @@ class TEXTURE_PT_voxeldata(TextureButtonsPanel, bpy.types.Panel):
         layout.prop(vd, "intensity")
 
 
-class TEXTURE_PT_pointdensity(TextureButtonsPanel, bpy.types.Panel):
+class TEXTURE_PT_pointdensity(TextureButtonsPanel, Panel):
     bl_label = "Point Density"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
 
@@ -733,7 +734,7 @@ class TEXTURE_PT_pointdensity(TextureButtonsPanel, bpy.types.Panel):
             col.template_curve_mapping(pd, "falloff_curve", brush=False)
 
 
-class TEXTURE_PT_pointdensity_turbulence(TextureButtonsPanel, bpy.types.Panel):
+class TEXTURE_PT_pointdensity_turbulence(TextureButtonsPanel, Panel):
     bl_label = "Turbulence"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
 
@@ -770,7 +771,7 @@ class TEXTURE_PT_pointdensity_turbulence(TextureButtonsPanel, bpy.types.Panel):
         col.prop(pd, "turbulence_strength")
 
 
-class TEXTURE_PT_mapping(TextureSlotPanel, bpy.types.Panel):
+class TEXTURE_PT_mapping(TextureSlotPanel, Panel):
     bl_label = "Mapping"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
 
@@ -858,7 +859,7 @@ class TEXTURE_PT_mapping(TextureSlotPanel, bpy.types.Panel):
         row.column().prop(tex, "scale")
 
 
-class TEXTURE_PT_influence(TextureSlotPanel, bpy.types.Panel):
+class TEXTURE_PT_influence(TextureSlotPanel, Panel):
     bl_label = "Influence"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
 
@@ -1034,7 +1035,7 @@ class TEXTURE_PT_influence(TextureSlotPanel, bpy.types.Panel):
             sub.prop(tex, "bump_objectspace", text="Space")
 
 
-class TEXTURE_PT_custom_props(TextureButtonsPanel, PropertyPanel, bpy.types.Panel):
+class TEXTURE_PT_custom_props(TextureButtonsPanel, PropertyPanel, Panel):
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
     _context_path = "texture"
     _property_type = bpy.types.Texture
diff --git a/release/scripts/startup/bl_ui/properties_world.py b/release/scripts/startup/bl_ui/properties_world.py
index c577af013744ed7d85325b1fb75a4c1124c89198..71ee03296a0c0cf15f847151421cae654a81590d 100644
--- a/release/scripts/startup/bl_ui/properties_world.py
+++ b/release/scripts/startup/bl_ui/properties_world.py
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Panel
 from rna_prop_ui import PropertyPanel
 
 
@@ -32,7 +33,7 @@ class WorldButtonsPanel():
         return (context.world and context.scene.render.engine in cls.COMPAT_ENGINES)
 
 
-class WORLD_PT_context_world(WorldButtonsPanel, bpy.types.Panel):
+class WORLD_PT_context_world(WorldButtonsPanel, Panel):
     bl_label = ""
     bl_options = {'HIDE_HEADER'}
     COMPAT_ENGINES = {'BLENDER_RENDER'}
@@ -61,7 +62,7 @@ class WORLD_PT_context_world(WorldButtonsPanel, bpy.types.Panel):
             split.label(text=str(texture_count), icon='TEXTURE')
 
 
-class WORLD_PT_preview(WorldButtonsPanel, bpy.types.Panel):
+class WORLD_PT_preview(WorldButtonsPanel, Panel):
     bl_label = "Preview"
     COMPAT_ENGINES = {'BLENDER_RENDER'}
 
@@ -74,7 +75,7 @@ class WORLD_PT_preview(WorldButtonsPanel, bpy.types.Panel):
         self.layout.template_preview(context.world)
 
 
-class WORLD_PT_world(WorldButtonsPanel, bpy.types.Panel):
+class WORLD_PT_world(WorldButtonsPanel, Panel):
     bl_label = "World"
     COMPAT_ENGINES = {'BLENDER_RENDER'}
 
@@ -99,7 +100,7 @@ class WORLD_PT_world(WorldButtonsPanel, bpy.types.Panel):
         row.prop(world, "color_range")
 
 
-class WORLD_PT_ambient_occlusion(WorldButtonsPanel, bpy.types.Panel):
+class WORLD_PT_ambient_occlusion(WorldButtonsPanel, Panel):
     bl_label = "Ambient Occlusion"
     COMPAT_ENGINES = {'BLENDER_RENDER'}
 
@@ -118,7 +119,7 @@ class WORLD_PT_ambient_occlusion(WorldButtonsPanel, bpy.types.Panel):
         split.prop(light, "ao_blend_type", text="")
 
 
-class WORLD_PT_environment_lighting(WorldButtonsPanel, bpy.types.Panel):
+class WORLD_PT_environment_lighting(WorldButtonsPanel, Panel):
     bl_label = "Environment Lighting"
     COMPAT_ENGINES = {'BLENDER_RENDER'}
 
@@ -137,7 +138,7 @@ class WORLD_PT_environment_lighting(WorldButtonsPanel, bpy.types.Panel):
         split.prop(light, "environment_color", text="")
 
 
-class WORLD_PT_indirect_lighting(WorldButtonsPanel, bpy.types.Panel):
+class WORLD_PT_indirect_lighting(WorldButtonsPanel, Panel):
     bl_label = "Indirect Lighting"
     COMPAT_ENGINES = {'BLENDER_RENDER'}
 
@@ -159,7 +160,7 @@ class WORLD_PT_indirect_lighting(WorldButtonsPanel, bpy.types.Panel):
             layout.label(text="Only works with Approximate gather method")
 
 
-class WORLD_PT_gather(WorldButtonsPanel, bpy.types.Panel):
+class WORLD_PT_gather(WorldButtonsPanel, Panel):
     bl_label = "Gather"
     COMPAT_ENGINES = {'BLENDER_RENDER'}
 
@@ -207,7 +208,7 @@ class WORLD_PT_gather(WorldButtonsPanel, bpy.types.Panel):
             col.prop(light, "correction")
 
 
-class WORLD_PT_mist(WorldButtonsPanel, bpy.types.Panel):
+class WORLD_PT_mist(WorldButtonsPanel, Panel):
     bl_label = "Mist"
     bl_options = {'DEFAULT_CLOSED'}
     COMPAT_ENGINES = {'BLENDER_RENDER'}
@@ -236,7 +237,7 @@ class WORLD_PT_mist(WorldButtonsPanel, bpy.types.Panel):
         layout.prop(world.mist_settings, "falloff")
 
 
-class WORLD_PT_stars(WorldButtonsPanel, bpy.types.Panel):
+class WORLD_PT_stars(WorldButtonsPanel, Panel):
     bl_label = "Stars"
     bl_options = {'DEFAULT_CLOSED'}
     COMPAT_ENGINES = {'BLENDER_RENDER'}
@@ -263,7 +264,7 @@ class WORLD_PT_stars(WorldButtonsPanel, bpy.types.Panel):
         col.prop(world.star_settings, "average_separation", text="Separation")
 
 
-class WORLD_PT_custom_props(WorldButtonsPanel, PropertyPanel, bpy.types.Panel):
+class WORLD_PT_custom_props(WorldButtonsPanel, PropertyPanel, Panel):
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
     _context_path = "world"
     _property_type = bpy.types.World
diff --git a/release/scripts/startup/bl_ui/space_console.py b/release/scripts/startup/bl_ui/space_console.py
index da6c102100b4e8c0c4286af3d7dbcebb17c4f066..d457a66def8340fb239dedb58f7bf1bf7da81725 100644
--- a/release/scripts/startup/bl_ui/space_console.py
+++ b/release/scripts/startup/bl_ui/space_console.py
@@ -18,32 +18,30 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Header, Menu, Operator
 from bpy.props import StringProperty
 
 
-class CONSOLE_HT_header(bpy.types.Header):
+class CONSOLE_HT_header(Header):
     bl_space_type = 'CONSOLE'
 
     def draw(self, context):
-        layout = self.layout
+        layout = self.layout.row(align=True)
 
-        row = layout.row(align=True)
-        row.template_header()
+        layout.template_header()
 
         if context.area.show_menus:
-            sub = row.row(align=True)
-            sub.menu("CONSOLE_MT_console")
+            layout.menu("CONSOLE_MT_console")
 
-        row = layout.row(align=True)
-        row.operator("console.autocomplete", text="Autocomplete")
+        layout.operator("console.autocomplete", text="Autocomplete")
 
 
-class CONSOLE_MT_console(bpy.types.Menu):
+class CONSOLE_MT_console(Menu):
     bl_label = "Console"
 
     def draw(self, context):
         layout = self.layout
-        layout.column()
+        
         layout.operator("console.clear")
         layout.operator("console.copy")
         layout.operator("console.paste")
@@ -55,7 +53,7 @@ class CONSOLE_MT_console(bpy.types.Menu):
         layout.operator("screen.screen_full_area")
 
 
-class CONSOLE_MT_language(bpy.types.Menu):
+class CONSOLE_MT_language(Menu):
     bl_label = "Languages..."
 
     def draw(self, context):
@@ -82,7 +80,7 @@ def add_scrollback(text, text_type):
             type=text_type)
 
 
-class ConsoleExec(bpy.types.Operator):
+class ConsoleExec(Operator):
     '''Execute the current console line as a python expression'''
     bl_idname = "console.execute"
     bl_label = "Console Execute"
@@ -100,7 +98,7 @@ class ConsoleExec(bpy.types.Operator):
             return {'FINISHED'}
 
 
-class ConsoleAutocomplete(bpy.types.Operator):
+class ConsoleAutocomplete(Operator):
     '''Evaluate the namespace up until the cursor and give a list of options or complete the name if there is only one'''
     bl_idname = "console.autocomplete"
     bl_label = "Console Autocomplete"
@@ -117,7 +115,7 @@ class ConsoleAutocomplete(bpy.types.Operator):
             return {'FINISHED'}
 
 
-class ConsoleBanner(bpy.types.Operator):
+class ConsoleBanner(Operator):
     '''Print a message whem the terminal initializes'''
     bl_idname = "console.banner"
     bl_label = "Console Banner"
@@ -139,7 +137,7 @@ class ConsoleBanner(bpy.types.Operator):
             return {'FINISHED'}
 
 
-class ConsoleLanguage(bpy.types.Operator):
+class ConsoleLanguage(Operator):
     '''Set the current language for this console'''
     bl_idname = "console.language"
     bl_label = "Console Language"
diff --git a/release/scripts/startup/bl_ui/space_dopesheet.py b/release/scripts/startup/bl_ui/space_dopesheet.py
index 930a2029d3213d521b895d1fbfa4a3987a5058c0..dfbd7b3ae14a14ab8fc5737f895223aa2ce7035a 100644
--- a/release/scripts/startup/bl_ui/space_dopesheet.py
+++ b/release/scripts/startup/bl_ui/space_dopesheet.py
@@ -19,6 +19,7 @@
 # <pep8 compliant>
 
 import bpy
+from bpy.types import Header, Menu
 
 
 #######################################
@@ -84,7 +85,7 @@ def dopesheet_filter(layout, context, genericFiltersOnly=False):
 #######################################
 # DopeSheet Editor - General/Standard UI
 
-class DOPESHEET_HT_header(bpy.types.Header):
+class DOPESHEET_HT_header(Header):
     bl_space_type = 'DOPESHEET_EDITOR'
 
     def draw(self, context):
@@ -96,21 +97,19 @@ class DOPESHEET_HT_header(bpy.types.Header):
         row.template_header()
 
         if context.area.show_menus:
-            sub = row.row(align=True)
-
-            sub.menu("DOPESHEET_MT_view")
-            sub.menu("DOPESHEET_MT_select")
-            sub.menu("DOPESHEET_MT_marker")
+            row.menu("DOPESHEET_MT_view")
+            row.menu("DOPESHEET_MT_select")
+            row.menu("DOPESHEET_MT_marker")
 
             if st.mode == 'DOPESHEET' or (st.mode == 'ACTION' and st.action != None):
-                sub.menu("DOPESHEET_MT_channel")
+                row.menu("DOPESHEET_MT_channel")
             elif st.mode == 'GPENCIL':
-                sub.menu("DOPESHEET_MT_gpencil_channel")
+                row.menu("DOPESHEET_MT_gpencil_channel")
 
             if st.mode != 'GPENCIL':
-                sub.menu("DOPESHEET_MT_key")
+                row.menu("DOPESHEET_MT_key")
             else:
-                sub.menu("DOPESHEET_MT_gpencil_frame")
+                row.menu("DOPESHEET_MT_gpencil_frame")
 
         layout.prop(st, "mode", text="")
         layout.prop(st.dopesheet, "show_summary", text="Summary")
@@ -134,7 +133,7 @@ class DOPESHEET_HT_header(bpy.types.Header):
         row.operator("action.paste", text="", icon='PASTEDOWN')
 
 
-class DOPESHEET_MT_view(bpy.types.Menu):
+class DOPESHEET_MT_view(Menu):
     bl_label = "View"
 
     def draw(self, context):
@@ -142,8 +141,6 @@ class DOPESHEET_MT_view(bpy.types.Menu):
 
         st = context.space_data
 
-        layout.column()
-
         layout.prop(st, "use_realtime_update")
         layout.prop(st, "show_frame_indicator")
         layout.prop(st, "show_sliders")
@@ -170,13 +167,12 @@ class DOPESHEET_MT_view(bpy.types.Menu):
         layout.operator("screen.screen_full_area")
 
 
-class DOPESHEET_MT_select(bpy.types.Menu):
+class DOPESHEET_MT_select(Menu):
     bl_label = "Select"
 
     def draw(self, context):
         layout = self.layout
 
-        layout.column()
         # This is a bit misleading as the operator's default text is "Select All" while it actually *toggles* All/None
         layout.operator("action.select_all_toggle")
         layout.operator("action.select_all_toggle", text="Invert Selection").invert = True
@@ -206,7 +202,7 @@ class DOPESHEET_MT_select(bpy.types.Menu):
             layout.operator("action.select_linked")
 
 
-class DOPESHEET_MT_marker(bpy.types.Menu):
+class DOPESHEET_MT_marker(Menu):
     bl_label = "Marker"
 
     def draw(self, context):
@@ -216,7 +212,6 @@ class DOPESHEET_MT_marker(bpy.types.Menu):
 
         #layout.operator_context = 'EXEC_REGION_WIN'
 
-        layout.column()
         layout.operator("marker.add", "Add Marker")
         layout.operator("marker.duplicate", text="Duplicate Marker")
         layout.operator("marker.delete", text="Delete Marker")
@@ -237,7 +232,7 @@ class DOPESHEET_MT_marker(bpy.types.Menu):
 #######################################
 # Keyframe Editing
 
-class DOPESHEET_MT_channel(bpy.types.Menu):
+class DOPESHEET_MT_channel(Menu):
     bl_label = "Channel"
 
     def draw(self, context):
@@ -245,7 +240,6 @@ class DOPESHEET_MT_channel(bpy.types.Menu):
 
         layout.operator_context = 'INVOKE_REGION_CHANNELS'
 
-        layout.column()
         layout.operator("anim.channels_delete")
 
         layout.separator()
@@ -268,13 +262,12 @@ class DOPESHEET_MT_channel(bpy.types.Menu):
         layout.operator("anim.channels_fcurves_enable")
 
 
-class DOPESHEET_MT_key(bpy.types.Menu):
+class DOPESHEET_MT_key(Menu):
     bl_label = "Key"
 
     def draw(self, context):
         layout = self.layout
 
-        layout.column()
         layout.menu("DOPESHEET_MT_key_transform", text="Transform")
 
         layout.operator_menu_enum("action.snap", "type", text="Snap")
@@ -301,13 +294,12 @@ class DOPESHEET_MT_key(bpy.types.Menu):
         layout.operator("action.paste")
 
 
-class DOPESHEET_MT_key_transform(bpy.types.Menu):
+class DOPESHEET_MT_key_transform(Menu):
     bl_label = "Transform"
 
     def draw(self, context):
         layout = self.layout
 
-        layout.column()
         layout.operator("transform.transform", text="Grab/Move").mode = 'TIME_TRANSLATE'
         layout.operator("transform.transform", text="Extend").mode = 'TIME_EXTEND'
         layout.operator("transform.transform", text="Slide").mode = 'TIME_SLIDE'
@@ -317,7 +309,7 @@ class DOPESHEET_MT_key_transform(bpy.types.Menu):
 #######################################
 # Grease Pencil Editing
 
-class DOPESHEET_MT_gpencil_channel(bpy.types.Menu):
+class DOPESHEET_MT_gpencil_channel(Menu):
     bl_label = "Channel"
 
     def draw(self, context):
@@ -325,7 +317,6 @@ class DOPESHEET_MT_gpencil_channel(bpy.types.Menu):
 
         layout.operator_context = 'INVOKE_REGION_CHANNELS'
 
-        layout.column()
         layout.operator("anim.channels_delete")
 
         layout.separator()
@@ -345,13 +336,12 @@ class DOPESHEET_MT_gpencil_channel(bpy.types.Menu):
         #layout.operator_menu_enum("anim.channels_move", "direction", text="Move...")
 
 
-class DOPESHEET_MT_gpencil_frame(bpy.types.Menu):
+class DOPESHEET_MT_gpencil_frame(Menu):
     bl_label = "Frame"
 
     def draw(self, context):
         layout = self.layout
 
-        layout.column()
         layout.menu("DOPESHEET_MT_key_transform", text="Transform")
 
         #layout.operator_menu_enum("action.snap", "type", text="Snap")
diff --git a/release/scripts/startup/bl_ui/space_filebrowser.py b/release/scripts/startup/bl_ui/space_filebrowser.py
index 73fe1a972525056ed9eaf3812c4ebe8e63fac6db..cf0d10c58448b39a0b1174e219b943307ec3fb2e 100644
--- a/release/scripts/startup/bl_ui/space_filebrowser.py
+++ b/release/scripts/startup/bl_ui/space_filebrowser.py
@@ -18,9 +18,10 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Header
 
 
-class FILEBROWSER_HT_header(bpy.types.Header):
+class FILEBROWSER_HT_header(Header):
     bl_space_type = 'FILE_BROWSER'
 
     def draw(self, context):
diff --git a/release/scripts/startup/bl_ui/space_graph.py b/release/scripts/startup/bl_ui/space_graph.py
index bfc1a0e3a23bb8942f6da6a46b5697f2dffc0956..c379ea95ea2eba193ae37c43dd42770559202383 100644
--- a/release/scripts/startup/bl_ui/space_graph.py
+++ b/release/scripts/startup/bl_ui/space_graph.py
@@ -19,9 +19,10 @@
 # <pep8 compliant>
 
 import bpy
+from bpy.types import Header, Menu
 
 
-class GRAPH_HT_header(bpy.types.Header):
+class GRAPH_HT_header(Header):
     bl_space_type = 'GRAPH_EDITOR'
 
     def draw(self, context):
@@ -35,13 +36,11 @@ class GRAPH_HT_header(bpy.types.Header):
         row.template_header()
 
         if context.area.show_menus:
-            sub = row.row(align=True)
-
-            sub.menu("GRAPH_MT_view")
-            sub.menu("GRAPH_MT_select")
-            sub.menu("GRAPH_MT_marker")
-            sub.menu("GRAPH_MT_channel")
-            sub.menu("GRAPH_MT_key")
+            row.menu("GRAPH_MT_view")
+            row.menu("GRAPH_MT_select")
+            row.menu("GRAPH_MT_marker")
+            row.menu("GRAPH_MT_channel")
+            row.menu("GRAPH_MT_key")
 
         layout.prop(st, "mode", text="")
 
@@ -61,7 +60,7 @@ class GRAPH_HT_header(bpy.types.Header):
             row.operator("graph.ghost_curves_create", text="", icon='GHOST_ENABLED')
 
 
-class GRAPH_MT_view(bpy.types.Menu):
+class GRAPH_MT_view(Menu):
     bl_label = "View"
 
     def draw(self, context):
@@ -69,8 +68,6 @@ class GRAPH_MT_view(bpy.types.Menu):
 
         st = context.space_data
 
-        layout.column()
-
         layout.operator("graph.properties", icon='MENU_PANEL')
         layout.separator()
 
@@ -107,13 +104,12 @@ class GRAPH_MT_view(bpy.types.Menu):
         layout.operator("screen.screen_full_area")
 
 
-class GRAPH_MT_select(bpy.types.Menu):
+class GRAPH_MT_select(Menu):
     bl_label = "Select"
 
     def draw(self, context):
         layout = self.layout
 
-        layout.column()
         # This is a bit misleading as the operator's default text is "Select All" while it actually *toggles* All/None
         layout.operator("graph.select_all_toggle")
         layout.operator("graph.select_all_toggle", text="Invert Selection").invert = True
@@ -142,7 +138,7 @@ class GRAPH_MT_select(bpy.types.Menu):
         layout.operator("graph.select_linked")
 
 
-class GRAPH_MT_marker(bpy.types.Menu):
+class GRAPH_MT_marker(Menu):
     bl_label = "Marker"
 
     def draw(self, context):
@@ -150,7 +146,6 @@ class GRAPH_MT_marker(bpy.types.Menu):
 
         #layout.operator_context = 'EXEC_REGION_WIN'
 
-        layout.column()
         layout.operator("marker.add", "Add Marker")
         layout.operator("marker.duplicate", text="Duplicate Marker")
         layout.operator("marker.delete", text="Delete Marker")
@@ -163,7 +158,7 @@ class GRAPH_MT_marker(bpy.types.Menu):
         # TODO: pose markers for action edit mode only?
 
 
-class GRAPH_MT_channel(bpy.types.Menu):
+class GRAPH_MT_channel(Menu):
     bl_label = "Channel"
 
     def draw(self, context):
@@ -171,7 +166,6 @@ class GRAPH_MT_channel(bpy.types.Menu):
 
         layout.operator_context = 'INVOKE_REGION_CHANNELS'
 
-        layout.column()
         layout.operator("anim.channels_delete")
 
         layout.separator()
@@ -195,13 +189,12 @@ class GRAPH_MT_channel(bpy.types.Menu):
         layout.operator("anim.channels_fcurves_enable")
 
 
-class GRAPH_MT_key(bpy.types.Menu):
+class GRAPH_MT_key(Menu):
     bl_label = "Key"
 
     def draw(self, context):
         layout = self.layout
 
-        layout.column()
         layout.menu("GRAPH_MT_key_transform", text="Transform")
 
         layout.operator_menu_enum("graph.snap", "type", text="Snap")
@@ -234,13 +227,12 @@ class GRAPH_MT_key(bpy.types.Menu):
         layout.operator("graph.euler_filter", text="Discontinuity (Euler) Filter")
 
 
-class GRAPH_MT_key_transform(bpy.types.Menu):
+class GRAPH_MT_key_transform(Menu):
     bl_label = "Transform"
 
     def draw(self, context):
         layout = self.layout
 
-        layout.column()
         layout.operator("transform.translate", text="Grab/Move")
         layout.operator("transform.transform", text="Extend").mode = 'TIME_EXTEND'
         layout.operator("transform.rotate", text="Rotate")
diff --git a/release/scripts/startup/bl_ui/space_image.py b/release/scripts/startup/bl_ui/space_image.py
index fa5579ea2e0f5ad2ebb584c0562da3171453f7f7..5d72482ce9c4bdc60b8d02e5115f66c0c8182b54 100644
--- a/release/scripts/startup/bl_ui/space_image.py
+++ b/release/scripts/startup/bl_ui/space_image.py
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Header, Menu, Panel
 
 
 class BrushButtonsPanel():
@@ -31,7 +32,7 @@ class BrushButtonsPanel():
         return sima.show_paint and toolsettings.brush
 
 
-class IMAGE_MT_view(bpy.types.Menu):
+class IMAGE_MT_view(Menu):
     bl_label = "View"
 
     def draw(self, context):
@@ -79,7 +80,7 @@ class IMAGE_MT_view(bpy.types.Menu):
         layout.operator("screen.screen_full_area")
 
 
-class IMAGE_MT_select(bpy.types.Menu):
+class IMAGE_MT_select(Menu):
     bl_label = "Select"
 
     def draw(self, context):
@@ -100,7 +101,7 @@ class IMAGE_MT_select(bpy.types.Menu):
         layout.operator("uv.select_linked")
 
 
-class IMAGE_MT_image(bpy.types.Menu):
+class IMAGE_MT_image(Menu):
     bl_label = "Image"
 
     def draw(self, context):
@@ -151,7 +152,7 @@ class IMAGE_MT_image(bpy.types.Menu):
             layout.prop(sima, "use_image_paint")
 
 
-class IMAGE_MT_image_invert(bpy.types.Menu):
+class IMAGE_MT_image_invert(Menu):
     bl_label = "Invert"
 
     def draw(self, context):
@@ -177,7 +178,7 @@ class IMAGE_MT_image_invert(bpy.types.Menu):
         op.invert_a = True
 
 
-class IMAGE_MT_uvs_showhide(bpy.types.Menu):
+class IMAGE_MT_uvs_showhide(Menu):
     bl_label = "Show/Hide Faces"
 
     def draw(self, context):
@@ -188,7 +189,7 @@ class IMAGE_MT_uvs_showhide(bpy.types.Menu):
         layout.operator("uv.hide", text="Hide Unselected").unselected = True
 
 
-class IMAGE_MT_uvs_transform(bpy.types.Menu):
+class IMAGE_MT_uvs_transform(Menu):
     bl_label = "Transform"
 
     def draw(self, context):
@@ -203,7 +204,7 @@ class IMAGE_MT_uvs_transform(bpy.types.Menu):
         layout.operator("transform.shear")
 
 
-class IMAGE_MT_uvs_snap(bpy.types.Menu):
+class IMAGE_MT_uvs_snap(Menu):
     bl_label = "Snap"
 
     def draw(self, context):
@@ -220,7 +221,7 @@ class IMAGE_MT_uvs_snap(bpy.types.Menu):
         layout.operator("uv.snap_cursor", text="Cursor to Selected").target = 'SELECTED'
 
 
-class IMAGE_MT_uvs_mirror(bpy.types.Menu):
+class IMAGE_MT_uvs_mirror(Menu):
     bl_label = "Mirror"
 
     def draw(self, context):
@@ -231,7 +232,7 @@ class IMAGE_MT_uvs_mirror(bpy.types.Menu):
         layout.operator("transform.mirror", text="Y Axis").constraint_axis[1] = True
 
 
-class IMAGE_MT_uvs_weldalign(bpy.types.Menu):
+class IMAGE_MT_uvs_weldalign(Menu):
     bl_label = "Weld/Align"
 
     def draw(self, context):
@@ -241,7 +242,7 @@ class IMAGE_MT_uvs_weldalign(bpy.types.Menu):
         layout.operator_enum("uv.align", "axis")  # W, 2/3/4
 
 
-class IMAGE_MT_uvs(bpy.types.Menu):
+class IMAGE_MT_uvs(Menu):
     bl_label = "UVs"
 
     def draw(self, context):
@@ -286,7 +287,7 @@ class IMAGE_MT_uvs(bpy.types.Menu):
         layout.menu("IMAGE_MT_uvs_showhide")
 
 
-class IMAGE_MT_uvs_select_mode(bpy.types.Menu):
+class IMAGE_MT_uvs_select_mode(Menu):
     bl_label = "UV Select Mode"
 
     def draw(self, context):
@@ -328,7 +329,7 @@ class IMAGE_MT_uvs_select_mode(bpy.types.Menu):
             prop.data_path = "tool_settings.uv_select_mode"
 
 
-class IMAGE_HT_header(bpy.types.Header):
+class IMAGE_HT_header(Header):
     bl_space_type = 'IMAGE_EDITOR'
 
     def draw(self, context):
@@ -412,7 +413,7 @@ class IMAGE_HT_header(bpy.types.Header):
             layout.prop(sima, "use_realtime_update", text="", icon_only=True, icon='LOCKED')
 
 
-class IMAGE_PT_image_properties(bpy.types.Panel):
+class IMAGE_PT_image_properties(Panel):
     bl_space_type = 'IMAGE_EDITOR'
     bl_region_type = 'UI'
     bl_label = "Image"
@@ -431,7 +432,7 @@ class IMAGE_PT_image_properties(bpy.types.Panel):
         layout.template_image(sima, "image", iuser)
 
 
-class IMAGE_PT_game_properties(bpy.types.Panel):
+class IMAGE_PT_game_properties(Panel):
     bl_space_type = 'IMAGE_EDITOR'
     bl_region_type = 'UI'
     bl_label = "Game Properties"
@@ -451,15 +452,13 @@ class IMAGE_PT_game_properties(bpy.types.Panel):
         split = layout.split()
 
         col = split.column()
-
+        
+        col.prop(ima, "use_animation")
         sub = col.column(align=True)
-        sub.prop(ima, "use_animation")
-
-        subsub = sub.column()
-        subsub.active = ima.use_animation
-        subsub.prop(ima, "frame_start", text="Start")
-        subsub.prop(ima, "frame_end", text="End")
-        subsub.prop(ima, "fps", text="Speed")
+        sub.active = ima.use_animation
+        sub.prop(ima, "frame_start", text="Start")
+        sub.prop(ima, "frame_end", text="End")
+        sub.prop(ima, "fps", text="Speed")
 
         col.prop(ima, "use_tiles")
         sub = col.column(align=True)
@@ -475,7 +474,7 @@ class IMAGE_PT_game_properties(bpy.types.Panel):
         col.prop(ima, "mapping", expand=True)
 
 
-class IMAGE_PT_view_histogram(bpy.types.Panel):
+class IMAGE_PT_view_histogram(Panel):
     bl_space_type = 'IMAGE_EDITOR'
     bl_region_type = 'PREVIEW'
     bl_label = "Histogram"
@@ -494,7 +493,7 @@ class IMAGE_PT_view_histogram(bpy.types.Panel):
         layout.prop(sima.scopes.histogram, "mode", icon_only=True)
 
 
-class IMAGE_PT_view_waveform(bpy.types.Panel):
+class IMAGE_PT_view_waveform(Panel):
     bl_space_type = 'IMAGE_EDITOR'
     bl_region_type = 'PREVIEW'
     bl_label = "Waveform"
@@ -508,13 +507,14 @@ class IMAGE_PT_view_waveform(bpy.types.Panel):
         layout = self.layout
 
         sima = context.space_data
+        
         layout.template_waveform(sima, "scopes")
-        sub = layout.row().split(percentage=0.75)
-        sub.prop(sima.scopes, "waveform_alpha")
-        sub.prop(sima.scopes, "waveform_mode", text="", icon_only=True)
+        row = layout.split(percentage=0.75)
+        row.prop(sima.scopes, "waveform_alpha")
+        row.prop(sima.scopes, "waveform_mode", text="", icon_only=True)
 
 
-class IMAGE_PT_view_vectorscope(bpy.types.Panel):
+class IMAGE_PT_view_vectorscope(Panel):
     bl_space_type = 'IMAGE_EDITOR'
     bl_region_type = 'PREVIEW'
     bl_label = "Vectorscope"
@@ -532,7 +532,7 @@ class IMAGE_PT_view_vectorscope(bpy.types.Panel):
         layout.prop(sima.scopes, "vectorscope_alpha")
 
 
-class IMAGE_PT_sample_line(bpy.types.Panel):
+class IMAGE_PT_sample_line(Panel):
     bl_space_type = 'IMAGE_EDITOR'
     bl_region_type = 'PREVIEW'
     bl_label = "Sample Line"
@@ -544,13 +544,15 @@ class IMAGE_PT_sample_line(bpy.types.Panel):
 
     def draw(self, context):
         layout = self.layout
-        layout.operator("image.sample_line")
+        
         sima = context.space_data
+        
+        layout.operator("image.sample_line")
         layout.template_histogram(sima, "sample_histogram")
         layout.prop(sima.sample_histogram, "mode")
 
 
-class IMAGE_PT_scope_sample(bpy.types.Panel):
+class IMAGE_PT_scope_sample(Panel):
     bl_space_type = 'IMAGE_EDITOR'
     bl_region_type = 'PREVIEW'
     bl_label = "Scope Samples"
@@ -562,16 +564,17 @@ class IMAGE_PT_scope_sample(bpy.types.Panel):
 
     def draw(self, context):
         layout = self.layout
+        
         sima = context.space_data
-        split = layout.split()
-        row = split.row()
+        
+        row = layout.row()
         row.prop(sima.scopes, "use_full_resolution")
-        row = split.row()
-        row.active = not sima.scopes.use_full_resolution
-        row.prop(sima.scopes, "accuracy")
+        sub = row.row()
+        sub.active = not sima.scopes.use_full_resolution
+        sub.prop(sima.scopes, "accuracy")
 
 
-class IMAGE_PT_view_properties(bpy.types.Panel):
+class IMAGE_PT_view_properties(Panel):
     bl_space_type = 'IMAGE_EDITOR'
     bl_region_type = 'UI'
     bl_label = "Display"
@@ -608,16 +611,16 @@ class IMAGE_PT_view_properties(bpy.types.Panel):
         if show_uvedit:
 
             col = layout.column()
-            col.label("Cursor Location")
-            row = col.row()
-            row.prop(uvedit, "cursor_location", text="")
-
-            col = layout.column()
+            col.label("Cursor Location:")
+            col.row().prop(uvedit, "cursor_location", text="")
+            
+            col.separator()
+            
             col.label(text="UVs:")
-            row = col.row()
-            row.prop(uvedit, "edge_draw_type", expand=True)
+            col.row().prop(uvedit, "edge_draw_type", expand=True)
 
             split = layout.split()
+            
             col = split.column()
             col.prop(uvedit, "show_faces")
             col.prop(uvedit, "show_smooth_edges", text="Smooth")
@@ -630,7 +633,7 @@ class IMAGE_PT_view_properties(bpy.types.Panel):
             sub.row().prop(uvedit, "draw_stretch_type", expand=True)
 
 
-class IMAGE_PT_paint(bpy.types.Panel):
+class IMAGE_PT_paint(Panel):
     bl_space_type = 'IMAGE_EDITOR'
     bl_region_type = 'UI'
     bl_label = "Paint"
@@ -646,9 +649,8 @@ class IMAGE_PT_paint(bpy.types.Panel):
         toolsettings = context.tool_settings.image_paint
         brush = toolsettings.brush
 
-        col = layout.split().column()
-        row = col.row()
-        col.template_ID_preview(toolsettings, "brush", new="brush.add", rows=3, cols=8)
+        col = layout.column()
+        col.template_ID_preview(toolsettings, "brush", new="brush.add", rows=2, cols=6)
 
         if brush:
             col = layout.column()
@@ -675,7 +677,7 @@ class IMAGE_PT_paint(bpy.types.Panel):
                 col.prop(brush, "clone_alpha", text="Alpha")
 
 
-class IMAGE_PT_tools_brush_texture(BrushButtonsPanel, bpy.types.Panel):
+class IMAGE_PT_tools_brush_texture(BrushButtonsPanel, Panel):
     bl_label = "Texture"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -690,7 +692,7 @@ class IMAGE_PT_tools_brush_texture(BrushButtonsPanel, bpy.types.Panel):
         col.prop(brush, "use_fixed_texture")
 
 
-class IMAGE_PT_tools_brush_tool(BrushButtonsPanel, bpy.types.Panel):
+class IMAGE_PT_tools_brush_tool(BrushButtonsPanel, Panel):
     bl_label = "Tool"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -699,9 +701,7 @@ class IMAGE_PT_tools_brush_tool(BrushButtonsPanel, bpy.types.Panel):
         settings = context.tool_settings.image_paint
         brush = settings.brush
 
-        col = layout.column(align=True)
-
-        col.prop(brush, "image_tool", expand=False, text="")
+        layout.prop(brush, "image_tool", text="")
 
         row = layout.row(align=True)
         row.prop(brush, "use_paint_sculpt", text="", icon='SCULPTMODE_HLT')
@@ -710,7 +710,7 @@ class IMAGE_PT_tools_brush_tool(BrushButtonsPanel, bpy.types.Panel):
         row.prop(brush, "use_paint_image", text="", icon='TPAINT_HLT')
 
 
-class IMAGE_PT_paint_stroke(BrushButtonsPanel, bpy.types.Panel):
+class IMAGE_PT_paint_stroke(BrushButtonsPanel, Panel):
     bl_label = "Paint Stroke"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -721,9 +721,9 @@ class IMAGE_PT_paint_stroke(BrushButtonsPanel, bpy.types.Panel):
         brush = toolsettings.brush
 
         layout.prop(brush, "use_airbrush")
-        col = layout.column()
-        col.active = brush.use_airbrush
-        col.prop(brush, "rate", slider=True)
+        row = layout.row()
+        row.active = brush.use_airbrush
+        row.prop(brush, "rate", slider=True)
 
         layout.prop(brush, "use_space")
         row = layout.row(align=True)
@@ -734,7 +734,7 @@ class IMAGE_PT_paint_stroke(BrushButtonsPanel, bpy.types.Panel):
         layout.prop(brush, "use_wrap")
 
 
-class IMAGE_PT_paint_curve(BrushButtonsPanel, bpy.types.Panel):
+class IMAGE_PT_paint_curve(BrushButtonsPanel, Panel):
     bl_label = "Paint Curve"
     bl_options = {'DEFAULT_CLOSED'}
 
diff --git a/release/scripts/startup/bl_ui/space_info.py b/release/scripts/startup/bl_ui/space_info.py
index f66cee7f431ba24516891a4c905f1d442a00f4d4..38c1e24f27ee81cfe5c7b43ffa3efd2ca97c7bec 100644
--- a/release/scripts/startup/bl_ui/space_info.py
+++ b/release/scripts/startup/bl_ui/space_info.py
@@ -18,9 +18,10 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Header, Menu, Operator
 
 
-class INFO_HT_header(bpy.types.Header):
+class INFO_HT_header(Header):
     bl_space_type = 'INFO'
 
     def draw(self, context):
@@ -86,19 +87,19 @@ class INFO_HT_header(bpy.types.Header):
         """
 
 
-class INFO_MT_report(bpy.types.Menu):
+class INFO_MT_report(Menu):
     bl_label = "Report"
 
     def draw(self, context):
         layout = self.layout
-        layout.column()
+
         layout.operator("console.select_all_toggle")
         layout.operator("console.select_border")
         layout.operator("console.report_delete")
         layout.operator("console.report_copy")
 
 
-class INFO_MT_file(bpy.types.Menu):
+class INFO_MT_file(Menu):
     bl_label = "File"
 
     def draw(self, context):
@@ -152,7 +153,7 @@ class INFO_MT_file(bpy.types.Menu):
         layout.operator("wm.quit_blender", text="Quit", icon='QUIT')
 
 
-class INFO_MT_file_import(bpy.types.Menu):
+class INFO_MT_file_import(Menu):
     bl_idname = "INFO_MT_file_import"
     bl_label = "Import"
 
@@ -161,7 +162,7 @@ class INFO_MT_file_import(bpy.types.Menu):
             self.layout.operator("wm.collada_import", text="COLLADA (.dae)")
 
 
-class INFO_MT_file_export(bpy.types.Menu):
+class INFO_MT_file_export(Menu):
     bl_idname = "INFO_MT_file_export"
     bl_label = "Export"
 
@@ -170,7 +171,7 @@ class INFO_MT_file_export(bpy.types.Menu):
             self.layout.operator("wm.collada_export", text="COLLADA (.dae)")
 
 
-class INFO_MT_file_external_data(bpy.types.Menu):
+class INFO_MT_file_external_data(Menu):
     bl_label = "External Data"
 
     def draw(self, context):
@@ -187,12 +188,13 @@ class INFO_MT_file_external_data(bpy.types.Menu):
         layout.operator("file.find_missing_files")
 
 
-class INFO_MT_mesh_add(bpy.types.Menu):
+class INFO_MT_mesh_add(Menu):
     bl_idname = "INFO_MT_mesh_add"
     bl_label = "Mesh"
 
     def draw(self, context):
         layout = self.layout
+        
         layout.operator_context = 'INVOKE_REGION_WIN'
         layout.operator("mesh.primitive_plane_add", icon='MESH_PLANE', text="Plane")
         layout.operator("mesh.primitive_cube_add", icon='MESH_CUBE', text="Cube")
@@ -207,12 +209,13 @@ class INFO_MT_mesh_add(bpy.types.Menu):
         layout.operator("mesh.primitive_torus_add", text="Torus", icon='MESH_TORUS')
 
 
-class INFO_MT_curve_add(bpy.types.Menu):
+class INFO_MT_curve_add(Menu):
     bl_idname = "INFO_MT_curve_add"
     bl_label = "Curve"
 
     def draw(self, context):
         layout = self.layout
+        
         layout.operator_context = 'INVOKE_REGION_WIN'
         layout.operator("curve.primitive_bezier_curve_add", icon='CURVE_BEZCURVE', text="Bezier")
         layout.operator("curve.primitive_bezier_circle_add", icon='CURVE_BEZCIRCLE', text="Circle")
@@ -221,7 +224,7 @@ class INFO_MT_curve_add(bpy.types.Menu):
         layout.operator("curve.primitive_nurbs_path_add", icon='CURVE_PATH', text="Path")
 
 
-class INFO_MT_edit_curve_add(bpy.types.Menu):
+class INFO_MT_edit_curve_add(Menu):
     bl_idname = "INFO_MT_edit_curve_add"
     bl_label = "Add"
 
@@ -237,12 +240,13 @@ class INFO_MT_edit_curve_add(bpy.types.Menu):
             INFO_MT_curve_add.draw(self, context)
 
 
-class INFO_MT_surface_add(bpy.types.Menu):
+class INFO_MT_surface_add(Menu):
     bl_idname = "INFO_MT_surface_add"
     bl_label = "Surface"
 
     def draw(self, context):
         layout = self.layout
+        
         layout.operator_context = 'INVOKE_REGION_WIN'
         layout.operator("surface.primitive_nurbs_surface_curve_add", icon='SURFACE_NCURVE', text="NURBS Curve")
         layout.operator("surface.primitive_nurbs_surface_circle_add", icon='SURFACE_NCIRCLE', text="NURBS Circle")
@@ -252,17 +256,18 @@ class INFO_MT_surface_add(bpy.types.Menu):
         layout.operator("surface.primitive_nurbs_surface_torus_add", icon='SURFACE_NTORUS', text="NURBS Torus")
 
 
-class INFO_MT_armature_add(bpy.types.Menu):
+class INFO_MT_armature_add(Menu):
     bl_idname = "INFO_MT_armature_add"
     bl_label = "Armature"
 
     def draw(self, context):
         layout = self.layout
+        
         layout.operator_context = 'INVOKE_REGION_WIN'
         layout.operator("object.armature_add", text="Single Bone", icon='BONE_DATA')
 
 
-class INFO_MT_add(bpy.types.Menu):
+class INFO_MT_add(Menu):
     bl_label = "Add"
 
     def draw(self, context):
@@ -302,7 +307,7 @@ class INFO_MT_add(bpy.types.Menu):
             layout.operator_menu_enum("object.group_instance_add", "group", text="Group Instance", icon='OUTLINER_OB_EMPTY')
 
 
-class INFO_MT_game(bpy.types.Menu):
+class INFO_MT_game(Menu):
     bl_label = "Game"
 
     def draw(self, context):
@@ -323,7 +328,7 @@ class INFO_MT_game(bpy.types.Menu):
         layout.prop(gs, "use_auto_start")
 
 
-class INFO_MT_render(bpy.types.Menu):
+class INFO_MT_render(Menu):
     bl_label = "Render"
 
     def draw(self, context):
@@ -343,7 +348,7 @@ class INFO_MT_render(bpy.types.Menu):
         layout.operator("render.play_rendered_anim")
 
 
-class INFO_MT_help(bpy.types.Menu):
+class INFO_MT_help(Menu):
     bl_label = "Help"
 
     def draw(self, context):
@@ -352,7 +357,7 @@ class INFO_MT_help(bpy.types.Menu):
         layout = self.layout
 
         layout.operator("wm.url_open", text="Manual", icon='HELP').url = 'http://wiki.blender.org/index.php/Doc:Manual'
-        layout.operator("wm.url_open", text="Release Log", icon='URL').url = 'http://www.blender.org/development/release-logs/blender-258/'
+        layout.operator("wm.url_open", text="Release Log", icon='URL').url = 'http://www.blender.org/development/release-logs/blender-259/'
 
         layout.separator()
 
@@ -379,7 +384,7 @@ class INFO_MT_help(bpy.types.Menu):
 # Help operators
 
 
-class HELP_OT_operator_cheat_sheet(bpy.types.Operator):
+class HELP_OT_operator_cheat_sheet(Operator):
     bl_idname = "help.operator_cheat_sheet"
     bl_label = "Operator Cheat Sheet"
 
diff --git a/release/scripts/startup/bl_ui/space_logic.py b/release/scripts/startup/bl_ui/space_logic.py
index 7f7aba71a467e12b9aa935ed359301eee6c47625..869a91124d3ed903be66cb6c1f412b6267ef824d 100644
--- a/release/scripts/startup/bl_ui/space_logic.py
+++ b/release/scripts/startup/bl_ui/space_logic.py
@@ -18,9 +18,10 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Header, Menu, Panel
 
 
-class LOGIC_PT_properties(bpy.types.Panel):
+class LOGIC_PT_properties(Panel):
     bl_space_type = 'LOGIC_EDITOR'
     bl_region_type = 'UI'
     bl_label = "Properties"
@@ -49,7 +50,7 @@ class LOGIC_PT_properties(bpy.types.Panel):
             row.operator("object.game_property_remove", text="", icon='X', emboss=False).index = i
 
 
-class LOGIC_MT_logicbricks_add(bpy.types.Menu):
+class LOGIC_MT_logicbricks_add(Menu):
     bl_label = "Add"
 
     def draw(self, context):
@@ -60,30 +61,24 @@ class LOGIC_MT_logicbricks_add(bpy.types.Menu):
         layout.operator_menu_enum("logic.actuator_add", "type", text="Actuator")
 
 
-class LOGIC_HT_header(bpy.types.Header):
+class LOGIC_HT_header(Header):
     bl_space_type = 'LOGIC_EDITOR'
 
     def draw(self, context):
-        layout = self.layout
+        layout = self.layout.row(align=True)
 
-        row = layout.row(align=True)
-        row.template_header()
+        layout.template_header()
 
         if context.area.show_menus:
-            sub = row.row(align=True)
-            sub.menu("LOGIC_MT_view")
-            #sub.menu("LOGIC_MT_select")
-            #sub.menu("LOGIC_MT_add")
+            layout.menu("LOGIC_MT_view")
 
 
-class LOGIC_MT_view(bpy.types.Menu):
+class LOGIC_MT_view(Menu):
     bl_label = "View"
 
     def draw(self, context):
         layout = self.layout
 
-        layout.column()
-
         layout.operator("logic.properties", icon='MENU_PANEL')
 
 if __name__ == "__main__":  # only for live edit.
diff --git a/release/scripts/startup/bl_ui/space_nla.py b/release/scripts/startup/bl_ui/space_nla.py
index 717adb3baa8a0c5efdbd77309972a760e2c8d8f9..c69af2c9a60982809b50556065be45d648c2f36d 100644
--- a/release/scripts/startup/bl_ui/space_nla.py
+++ b/release/scripts/startup/bl_ui/space_nla.py
@@ -19,9 +19,10 @@
 # <pep8 compliant>
 
 import bpy
+from bpy.types import Header, Menu
 
 
-class NLA_HT_header(bpy.types.Header):
+class NLA_HT_header(Header):
     bl_space_type = 'NLA_EDITOR'
 
     def draw(self, context):
@@ -35,20 +36,18 @@ class NLA_HT_header(bpy.types.Header):
         row.template_header()
 
         if context.area.show_menus:
-            sub = row.row(align=True)
-
-            sub.menu("NLA_MT_view")
-            sub.menu("NLA_MT_select")
-            sub.menu("NLA_MT_marker")
-            sub.menu("NLA_MT_edit")
-            sub.menu("NLA_MT_add")
+            row.menu("NLA_MT_view")
+            row.menu("NLA_MT_select")
+            row.menu("NLA_MT_marker")
+            row.menu("NLA_MT_edit")
+            row.menu("NLA_MT_add")
 
         dopesheet_filter(layout, context)
 
         layout.prop(st, "auto_snap", text="")
 
 
-class NLA_MT_view(bpy.types.Menu):
+class NLA_MT_view(Menu):
     bl_label = "View"
 
     def draw(self, context):
@@ -56,8 +55,6 @@ class NLA_MT_view(bpy.types.Menu):
 
         st = context.space_data
 
-        layout.column()
-
         layout.operator("nla.properties", icon='MENU_PANEL')
 
         layout.separator()
@@ -78,13 +75,12 @@ class NLA_MT_view(bpy.types.Menu):
         layout.operator("screen.screen_full_area")
 
 
-class NLA_MT_select(bpy.types.Menu):
+class NLA_MT_select(Menu):
     bl_label = "Select"
 
     def draw(self, context):
         layout = self.layout
 
-        layout.column()
         # This is a bit misleading as the operator's default text is "Select All" while it actually *toggles* All/None
         layout.operator("nla.select_all_toggle")
         layout.operator("nla.select_all_toggle", text="Invert Selection").invert = True
@@ -98,7 +94,7 @@ class NLA_MT_select(bpy.types.Menu):
         layout.operator("nla.select_leftright", text="After Current Frame").mode = 'RIGHT'
 
 
-class NLA_MT_marker(bpy.types.Menu):
+class NLA_MT_marker(Menu):
     bl_label = "Marker"
 
     def draw(self, context):
@@ -106,7 +102,6 @@ class NLA_MT_marker(bpy.types.Menu):
 
         #layout.operator_context = 'EXEC_REGION_WIN'
 
-        layout.column()
         layout.operator("marker.add", "Add Marker")
         layout.operator("marker.duplicate", text="Duplicate Marker")
         layout.operator("marker.delete", text="Delete Marker")
@@ -117,7 +112,7 @@ class NLA_MT_marker(bpy.types.Menu):
         layout.operator("marker.move", text="Grab/Move Marker")
 
 
-class NLA_MT_edit(bpy.types.Menu):
+class NLA_MT_edit(Menu):
     bl_label = "Edit"
 
     def draw(self, context):
@@ -125,7 +120,6 @@ class NLA_MT_edit(bpy.types.Menu):
 
         scene = context.scene
 
-        layout.column()
         layout.menu("NLA_MT_edit_transform", text="Transform")
 
         layout.operator_menu_enum("nla.snap", "type", text="Snap")
@@ -160,13 +154,12 @@ class NLA_MT_edit(bpy.types.Menu):
             layout.operator("nla.tweakmode_enter", text="Start Tweaking Strip Actions")
 
 
-class NLA_MT_add(bpy.types.Menu):
+class NLA_MT_add(Menu):
     bl_label = "Add"
 
     def draw(self, context):
         layout = self.layout
 
-        layout.column()
         layout.operator("nla.actionclip_add")
         layout.operator("nla.transition_add")
 
@@ -179,13 +172,12 @@ class NLA_MT_add(bpy.types.Menu):
         layout.operator("nla.tracks_add", text="Add Tracks Above Selected").above_selected = True
 
 
-class NLA_MT_edit_transform(bpy.types.Menu):
+class NLA_MT_edit_transform(Menu):
     bl_label = "Transform"
 
     def draw(self, context):
         layout = self.layout
 
-        layout.column()
         layout.operator("transform.translate", text="Grab/Move")
         layout.operator("transform.transform", text="Extend").mode = 'TIME_EXTEND'
         layout.operator("transform.transform", text="Scale").mode = 'TIME_SCALE'
diff --git a/release/scripts/startup/bl_ui/space_node.py b/release/scripts/startup/bl_ui/space_node.py
index abeee984fac34e2f4b6cd342f0340cd87af7fa06..96744cf19694d8d85b74bd6a918fc6c83a26b761 100644
--- a/release/scripts/startup/bl_ui/space_node.py
+++ b/release/scripts/startup/bl_ui/space_node.py
@@ -18,28 +18,29 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Header, Menu, Panel
 
 
-class NODE_HT_header(bpy.types.Header):
+class NODE_HT_header(Header):
     bl_space_type = 'NODE_EDITOR'
 
     def draw(self, context):
         layout = self.layout
 
         snode = context.space_data
+        snode_id = snode.id
+        id_from = snode.id_from
 
         row = layout.row(align=True)
         row.template_header()
 
         if context.area.show_menus:
-            sub = row.row(align=True)
-            sub.menu("NODE_MT_view")
-            sub.menu("NODE_MT_select")
-            sub.menu("NODE_MT_add")
-            sub.menu("NODE_MT_node")
+            row.menu("NODE_MT_view")
+            row.menu("NODE_MT_select")
+            row.menu("NODE_MT_add")
+            row.menu("NODE_MT_node")
 
-        row = layout.row()
-        row.prop(snode, "tree_type", text="", expand=True)
+        layout.prop(snode, "tree_type", text="", expand=True)
 
         if snode.tree_type == 'SHADER':
             row.prop(snode, "shader_type", text="", expand=True)
@@ -53,10 +54,8 @@ class NODE_HT_header(bpy.types.Header):
                     layout.prop(snode_id, "use_nodes")
 
         elif snode.tree_type == 'TEXTURE':
-            row.prop(snode, "texture_type", text="", expand=True)
+            layout.prop(snode, "texture_type", text="", expand=True)
 
-            snode_id = snode.id
-            id_from = snode.id_from
             if id_from:
                 if snode.texture_type == 'BRUSH':
                     layout.template_ID(id_from, "texture", new="texture.new")
@@ -66,10 +65,8 @@ class NODE_HT_header(bpy.types.Header):
                 layout.prop(snode_id, "use_nodes")
 
         elif snode.tree_type == 'COMPOSITING':
-            scene = snode.id
-
-            layout.prop(scene, "use_nodes")
-            layout.prop(scene.render, "use_free_unused_nodes", text="Free Unused")
+            layout.prop(snode_id, "use_nodes")
+            layout.prop(snode_id.render, "use_free_unused_nodes", text="Free Unused")
             layout.prop(snode, "show_backdrop")
             if snode.show_backdrop:
                 row = layout.row(align=True)
@@ -81,7 +78,7 @@ class NODE_HT_header(bpy.types.Header):
         layout.template_running_jobs()
 
 
-class NODE_MT_view(bpy.types.Menu):
+class NODE_MT_view(Menu):
     bl_label = "View"
 
     def draw(self, context):
@@ -110,7 +107,7 @@ class NODE_MT_view(bpy.types.Menu):
         layout.operator("screen.screen_full_area")
 
 
-class NODE_MT_select(bpy.types.Menu):
+class NODE_MT_select(Menu):
     bl_label = "Select"
 
     def draw(self, context):
@@ -127,7 +124,7 @@ class NODE_MT_select(bpy.types.Menu):
         layout.operator("node.select_same_type_prev")
 
 
-class NODE_MT_node(bpy.types.Menu):
+class NODE_MT_node(Menu):
     bl_label = "Node"
 
     def draw(self, context):
@@ -168,7 +165,7 @@ class NODE_MT_node(bpy.types.Menu):
 
 
 # Node Backdrop options
-class NODE_PT_properties(bpy.types.Panel):
+class NODE_PT_properties(Panel):
     bl_space_type = 'NODE_EDITOR'
     bl_region_type = 'UI'
     bl_label = "Backdrop"
diff --git a/release/scripts/startup/bl_ui/space_outliner.py b/release/scripts/startup/bl_ui/space_outliner.py
index 1f196cbd1917e648784c8c2ef515c7e3428579d5..b1e6eaf3245f6511fbcf41fad5da17407181cc59 100644
--- a/release/scripts/startup/bl_ui/space_outliner.py
+++ b/release/scripts/startup/bl_ui/space_outliner.py
@@ -18,9 +18,10 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Header, Menu
 
 
-class OUTLINER_HT_header(bpy.types.Header):
+class OUTLINER_HT_header(Header):
     bl_space_type = 'OUTLINER'
 
     def draw(self, context):
@@ -63,7 +64,7 @@ class OUTLINER_HT_header(bpy.types.Header):
                 row.label(text="No Keying Set active")
 
 
-class OUTLINER_MT_view(bpy.types.Menu):
+class OUTLINER_MT_view(Menu):
     bl_label = "View"
 
     def draw(self, context):
@@ -71,14 +72,13 @@ class OUTLINER_MT_view(bpy.types.Menu):
 
         space = context.space_data
 
-        col = layout.column()
         if space.display_mode not in {'DATABLOCKS', 'USER_PREFERENCES', 'KEYMAPS'}:
-            col.prop(space, "show_restrict_columns")
-            col.separator()
-            col.operator("outliner.show_active")
+            layout.prop(space, "show_restrict_columns")
+            layout.separator()
+            layout.operator("outliner.show_active")
 
-        col.operator("outliner.show_one_level")
-        col.operator("outliner.show_hierarchy")
+        layout.operator("outliner.show_one_level")
+        layout.operator("outliner.show_hierarchy")
 
         layout.separator()
 
@@ -86,7 +86,7 @@ class OUTLINER_MT_view(bpy.types.Menu):
         layout.operator("screen.screen_full_area")
 
 
-class OUTLINER_MT_search(bpy.types.Menu):
+class OUTLINER_MT_search(Menu):
     bl_label = "Search"
 
     def draw(self, context):
@@ -94,27 +94,23 @@ class OUTLINER_MT_search(bpy.types.Menu):
 
         space = context.space_data
 
-        col = layout.column()
+        layout.prop(space, "use_filter_case_sensitive")
+        layout.prop(space, "use_filter_complete")
 
-        col.prop(space, "use_filter_case_sensitive")
-        col.prop(space, "use_filter_complete")
 
-
-class OUTLINER_MT_edit_datablocks(bpy.types.Menu):
+class OUTLINER_MT_edit_datablocks(Menu):
     bl_label = "Edit"
 
     def draw(self, context):
         layout = self.layout
 
-        col = layout.column()
-
-        col.operator("outliner.keyingset_add_selected")
-        col.operator("outliner.keyingset_remove_selected")
+        layout.operator("outliner.keyingset_add_selected")
+        layout.operator("outliner.keyingset_remove_selected")
 
-        col.separator()
+        layout.separator()
 
-        col.operator("outliner.drivers_add_selected")
-        col.operator("outliner.drivers_delete_selected")
+        layout.operator("outliner.drivers_add_selected")
+        layout.operator("outliner.drivers_delete_selected")
 
 if __name__ == "__main__":  # only for live edit.
     bpy.utils.register_module(__name__)
diff --git a/release/scripts/startup/bl_ui/space_sequencer.py b/release/scripts/startup/bl_ui/space_sequencer.py
index c477a2ff62baf15470c88e529d57644b8eb872dc..84cc365425ebe59d4e7aec3e819d5ac132dcc797 100644
--- a/release/scripts/startup/bl_ui/space_sequencer.py
+++ b/release/scripts/startup/bl_ui/space_sequencer.py
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Header, Menu, Panel
 
 
 def act_strip(context):
@@ -27,7 +28,7 @@ def act_strip(context):
         return None
 
 
-class SEQUENCER_HT_header(bpy.types.Header):
+class SEQUENCER_HT_header(Header):
     bl_space_type = 'SEQUENCE_EDITOR'
 
     def draw(self, context):
@@ -39,14 +40,13 @@ class SEQUENCER_HT_header(bpy.types.Header):
         row.template_header()
 
         if context.area.show_menus:
-            sub = row.row(align=True)
-            sub.menu("SEQUENCER_MT_view")
+            row.menu("SEQUENCER_MT_view")
 
             if st.view_type in {'SEQUENCER', 'SEQUENCER_PREVIEW'}:
-                sub.menu("SEQUENCER_MT_select")
-                sub.menu("SEQUENCER_MT_marker")
-                sub.menu("SEQUENCER_MT_add")
-                sub.menu("SEQUENCER_MT_strip")
+                row.menu("SEQUENCER_MT_select")
+                row.menu("SEQUENCER_MT_marker")
+                row.menu("SEQUENCER_MT_add")
+                row.menu("SEQUENCER_MT_strip")
 
         layout.prop(st, "view_type", expand=True, text="")
 
@@ -76,7 +76,7 @@ class SEQUENCER_HT_header(bpy.types.Header):
                     row.prop(ed, "overlay_lock", text="", icon='LOCKED')
 
 
-class SEQUENCER_MT_view_toggle(bpy.types.Menu):
+class SEQUENCER_MT_view_toggle(Menu):
     bl_label = "View Type"
 
     def draw(self, context):
@@ -87,7 +87,7 @@ class SEQUENCER_MT_view_toggle(bpy.types.Menu):
         layout.operator("sequencer.view_toggle").type = 'SEQUENCER_PREVIEW'
 
 
-class SEQUENCER_MT_view(bpy.types.Menu):
+class SEQUENCER_MT_view(Menu):
     bl_label = "View"
 
     def draw(self, context):
@@ -95,8 +95,6 @@ class SEQUENCER_MT_view(bpy.types.Menu):
 
         st = context.space_data
 
-        layout.column()
-
         layout.operator("sequencer.properties", icon='MENU_PANEL')
 
         layout.separator()
@@ -129,13 +127,12 @@ class SEQUENCER_MT_view(bpy.types.Menu):
         layout.operator("screen.screen_full_area")
 
 
-class SEQUENCER_MT_select(bpy.types.Menu):
+class SEQUENCER_MT_select(Menu):
     bl_label = "Select"
 
     def draw(self, context):
         layout = self.layout
 
-        layout.column()
         layout.operator("sequencer.select_active_side", text="Strips to the Left").side = 'LEFT'
         layout.operator("sequencer.select_active_side", text="Strips to the Right").side = 'RIGHT'
         layout.separator()
@@ -148,7 +145,7 @@ class SEQUENCER_MT_select(bpy.types.Menu):
         layout.operator("sequencer.select_inverse")
 
 
-class SEQUENCER_MT_marker(bpy.types.Menu):
+class SEQUENCER_MT_marker(Menu):
     bl_label = "Marker"
 
     def draw(self, context):
@@ -156,7 +153,6 @@ class SEQUENCER_MT_marker(bpy.types.Menu):
 
         #layout.operator_context = 'EXEC_REGION_WIN'
 
-        layout.column()
         layout.operator("marker.add", "Add Marker")
         layout.operator("marker.duplicate", text="Duplicate Marker")
         layout.operator("marker.delete", text="Delete Marker")
@@ -169,14 +165,26 @@ class SEQUENCER_MT_marker(bpy.types.Menu):
         #layout.operator("sequencer.sound_strip_add", text="Transform Markers") # toggle, will be rna - (sseq->flag & SEQ_MARKER_TRANS)
 
 
-class SEQUENCER_MT_add(bpy.types.Menu):
+class SEQUENCER_MT_change(Menu):
+    bl_label = "Change"
+
+    def draw(self, context):
+        layout = self.layout
+
+        layout.operator_context = 'INVOKE_REGION_WIN'
+
+        layout.operator_menu_enum("sequencer.change_effect_input", "swap")
+        layout.operator_menu_enum("sequencer.change_effect_type", "type")
+        layout.operator("sequencer.change_path", text="Path/Files")
+
+
+class SEQUENCER_MT_add(Menu):
     bl_label = "Add"
 
     def draw(self, context):
         layout = self.layout
         layout.operator_context = 'INVOKE_REGION_WIN'
 
-        layout.column()
         if len(bpy.data.scenes) > 10:
             layout.operator_context = 'INVOKE_DEFAULT'
             layout.operator("sequencer.scene_strip_add", text="Scene...")
@@ -190,14 +198,13 @@ class SEQUENCER_MT_add(bpy.types.Menu):
         layout.menu("SEQUENCER_MT_add_effect")
 
 
-class SEQUENCER_MT_add_effect(bpy.types.Menu):
+class SEQUENCER_MT_add_effect(Menu):
     bl_label = "Effect Strip..."
 
     def draw(self, context):
         layout = self.layout
         layout.operator_context = 'INVOKE_REGION_WIN'
 
-        layout.column()
         layout.operator("sequencer.effect_strip_add", text="Add").type = 'ADD'
         layout.operator("sequencer.effect_strip_add", text="Subtract").type = 'SUBTRACT'
         layout.operator("sequencer.effect_strip_add", text="Alpha Over").type = 'ALPHA_OVER'
@@ -216,7 +223,7 @@ class SEQUENCER_MT_add_effect(bpy.types.Menu):
         layout.operator("sequencer.effect_strip_add", text="Adjustment Layer").type = 'ADJUSTMENT'
 
 
-class SEQUENCER_MT_strip(bpy.types.Menu):
+class SEQUENCER_MT_strip(Menu):
     bl_label = "Strip"
 
     def draw(self, context):
@@ -224,7 +231,6 @@ class SEQUENCER_MT_strip(bpy.types.Menu):
 
         layout.operator_context = 'INVOKE_REGION_WIN'
 
-        layout.column()
         layout.operator("transform.transform", text="Grab/Move").mode = 'TRANSLATION'
         layout.operator("transform.transform", text="Grab/Extend from frame").mode = 'TIME_EXTEND'
         #  uiItemO(layout, NULL, 0, "sequencer.strip_snap"); // TODO - add this operator
@@ -233,6 +239,7 @@ class SEQUENCER_MT_strip(bpy.types.Menu):
         layout.operator("sequencer.cut", text="Cut (hard) at frame").type = 'HARD'
         layout.operator("sequencer.cut", text="Cut (soft) at frame").type = 'SOFT'
         layout.operator("sequencer.images_separate")
+        layout.operator("sequencer.offset_clear")
         layout.operator("sequencer.deinterlace_selected_movies")
         layout.separator()
 
@@ -292,6 +299,7 @@ class SEQUENCER_MT_strip(bpy.types.Menu):
         layout.separator()
 
         layout.operator("sequencer.swap_data")
+        layout.menu("SEQUENCER_MT_change")
 
 
 class SequencerButtonsPanel():
@@ -320,7 +328,7 @@ class SequencerButtonsPanel_Output():
         return cls.has_preview(context)
 
 
-class SEQUENCER_PT_edit(SequencerButtonsPanel, bpy.types.Panel):
+class SEQUENCER_PT_edit(SequencerButtonsPanel, Panel):
     bl_label = "Edit Strip"
 
     def draw(self, context):
@@ -374,9 +382,11 @@ class SEQUENCER_PT_edit(SequencerButtonsPanel, bpy.types.Panel):
 
         if elem and elem.orig_width > 0 and elem.orig_height > 0:
             col.label(text="Orig Dim: %dx%d" % (elem.orig_width, elem.orig_height))
+        else:
+            col.label(text="Orig Dim: None")
 
 
-class SEQUENCER_PT_effect(SequencerButtonsPanel, bpy.types.Panel):
+class SEQUENCER_PT_effect(SequencerButtonsPanel, Panel):
     bl_label = "Effect Strip"
 
     @classmethod
@@ -514,7 +524,7 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel, bpy.types.Panel):
         col.prop(strip, "rotation_start", text="Rotation")
 
 
-class SEQUENCER_PT_input(SequencerButtonsPanel, bpy.types.Panel):
+class SEQUENCER_PT_input(SequencerButtonsPanel, Panel):
     bl_label = "Strip Input"
 
     @classmethod
@@ -558,6 +568,9 @@ class SEQUENCER_PT_input(SequencerButtonsPanel, bpy.types.Panel):
                 col = split.column()
                 col.prop(elem, "filename", text="")  # strip.elements[0] could be a fallback
 
+            # also accessible from the menu
+            layout.operator("sequencer.change_path")
+
         elif seq_type == 'MOVIE':
             split = layout.split(percentage=0.2)
             col = split.column()
@@ -595,7 +608,7 @@ class SEQUENCER_PT_input(SequencerButtonsPanel, bpy.types.Panel):
         col.prop(strip, "frame_offset_end", text="End")
 
 
-class SEQUENCER_PT_sound(SequencerButtonsPanel, bpy.types.Panel):
+class SEQUENCER_PT_sound(SequencerButtonsPanel, Panel):
     bl_label = "Sound"
 
     @classmethod
@@ -636,7 +649,7 @@ class SEQUENCER_PT_sound(SequencerButtonsPanel, bpy.types.Panel):
         col.prop(strip, "animation_offset_end", text="End")
 
 
-class SEQUENCER_PT_scene(SequencerButtonsPanel, bpy.types.Panel):
+class SEQUENCER_PT_scene(SequencerButtonsPanel, Panel):
     bl_label = "Scene"
 
     @classmethod
@@ -670,7 +683,7 @@ class SEQUENCER_PT_scene(SequencerButtonsPanel, bpy.types.Panel):
             layout.label(text="Original frame range: %d-%d (%d)" % (sta, end, end - sta + 1))
 
 
-class SEQUENCER_PT_filter(SequencerButtonsPanel, bpy.types.Panel):
+class SEQUENCER_PT_filter(SequencerButtonsPanel, Panel):
     bl_label = "Filter"
 
     @classmethod
@@ -732,7 +745,7 @@ class SEQUENCER_PT_filter(SequencerButtonsPanel, bpy.types.Panel):
             col.prop(strip.color_balance, "invert_gain", text="Inverse")
 
 
-class SEQUENCER_PT_proxy(SequencerButtonsPanel, bpy.types.Panel):
+class SEQUENCER_PT_proxy(SequencerButtonsPanel, Panel):
     bl_label = "Proxy"
 
     @classmethod
@@ -766,7 +779,7 @@ class SEQUENCER_PT_proxy(SequencerButtonsPanel, bpy.types.Panel):
                 flow.prop(strip.proxy, "filepath")
 
 
-class SEQUENCER_PT_preview(SequencerButtonsPanel_Output, bpy.types.Panel):
+class SEQUENCER_PT_preview(SequencerButtonsPanel_Output, Panel):
     bl_label = "Scene Preview/Render"
     bl_space_type = 'SEQUENCE_EDITOR'
     bl_region_type = 'UI'
@@ -791,7 +804,7 @@ class SEQUENCER_PT_preview(SequencerButtonsPanel_Output, bpy.types.Panel):
         '''
 
 
-class SEQUENCER_PT_view(SequencerButtonsPanel_Output, bpy.types.Panel):
+class SEQUENCER_PT_view(SequencerButtonsPanel_Output, Panel):
     bl_label = "View Settings"
 
     def draw(self, context):
diff --git a/release/scripts/startup/bl_ui/space_text.py b/release/scripts/startup/bl_ui/space_text.py
index b787fc5cf75f26f197f6c3b79226b864d5ec1409..300211a26bf081da6c3eda67ec93718a055f9121 100644
--- a/release/scripts/startup/bl_ui/space_text.py
+++ b/release/scripts/startup/bl_ui/space_text.py
@@ -18,9 +18,10 @@
 
 # <pep8-80 compliant>
 import bpy
+from bpy.types import Header, Menu, Panel
 
 
-class TEXT_HT_header(bpy.types.Header):
+class TEXT_HT_header(Header):
     bl_space_type = 'TEXT_EDITOR'
 
     def draw(self, context):
@@ -74,7 +75,7 @@ class TEXT_HT_header(bpy.types.Header):
                           else "Text: Internal")
 
 
-class TEXT_PT_properties(bpy.types.Panel):
+class TEXT_PT_properties(Panel):
     bl_space_type = 'TEXT_EDITOR'
     bl_region_type = 'UI'
     bl_label = "Properties"
@@ -105,7 +106,7 @@ class TEXT_PT_properties(bpy.types.Panel):
         col.prop(st, "margin_column")
 
 
-class TEXT_PT_find(bpy.types.Panel):
+class TEXT_PT_find(Panel):
     bl_space_type = 'TEXT_EDITOR'
     bl_region_type = 'UI'
     bl_label = "Find"
@@ -139,7 +140,7 @@ class TEXT_PT_find(bpy.types.Panel):
         row.prop(st, "use_find_all", text="All")
 
 
-class TEXT_MT_view(bpy.types.Menu):
+class TEXT_MT_view(Menu):
     bl_label = "View"
 
     def draw(self, context):
@@ -162,7 +163,7 @@ class TEXT_MT_view(bpy.types.Menu):
                         ).type = 'FILE_BOTTOM'
 
 
-class TEXT_MT_text(bpy.types.Menu):
+class TEXT_MT_text(Menu):
     bl_label = "Text"
 
     def draw(self, context):
@@ -171,7 +172,6 @@ class TEXT_MT_text(bpy.types.Menu):
         st = context.space_data
         text = st.text
 
-        layout.column()
         layout.operator("text.new")
         layout.operator("text.open")
 
@@ -188,13 +188,8 @@ class TEXT_MT_text(bpy.types.Menu):
             layout.column()
             layout.operator("text.run_script")
 
-            #ifdef WITH_PYTHON
-            # XXX if(BPY_is_pyconstraint(text))
-            # XXX   uiMenuItemO(head, 0, "text.refresh_pyconstraints");
-            #endif
 
-
-class TEXT_MT_templates(bpy.types.Menu):
+class TEXT_MT_templates(Menu):
     bl_label = "Templates"
 
     def draw(self, context):
@@ -204,7 +199,7 @@ class TEXT_MT_templates(bpy.types.Menu):
                        )
 
 
-class TEXT_MT_edit_select(bpy.types.Menu):
+class TEXT_MT_edit_select(Menu):
     bl_label = "Select"
 
     def draw(self, context):
@@ -214,7 +209,7 @@ class TEXT_MT_edit_select(bpy.types.Menu):
         layout.operator("text.select_line")
 
 
-class TEXT_MT_edit_markers(bpy.types.Menu):
+class TEXT_MT_edit_markers(Menu):
     bl_label = "Markers"
 
     def draw(self, context):
@@ -225,7 +220,7 @@ class TEXT_MT_edit_markers(bpy.types.Menu):
         layout.operator("text.previous_marker")
 
 
-class TEXT_MT_format(bpy.types.Menu):
+class TEXT_MT_format(Menu):
     bl_label = "Format"
 
     def draw(self, context):
@@ -244,7 +239,7 @@ class TEXT_MT_format(bpy.types.Menu):
         layout.operator_menu_enum("text.convert_whitespace", "type")
 
 
-class TEXT_MT_edit_to3d(bpy.types.Menu):
+class TEXT_MT_edit_to3d(Menu):
     bl_label = "Text To 3D Object"
 
     def draw(self, context):
@@ -258,7 +253,7 @@ class TEXT_MT_edit_to3d(bpy.types.Menu):
                         ).split_lines = True
 
 
-class TEXT_MT_edit(bpy.types.Menu):
+class TEXT_MT_edit(Menu):
     bl_label = "Edit"
 
     @classmethod
@@ -292,7 +287,7 @@ class TEXT_MT_edit(bpy.types.Menu):
         layout.menu("TEXT_MT_edit_to3d")
 
 
-class TEXT_MT_toolbox(bpy.types.Menu):
+class TEXT_MT_toolbox(Menu):
     bl_label = ""
 
     def draw(self, context):
diff --git a/release/scripts/startup/bl_ui/space_time.py b/release/scripts/startup/bl_ui/space_time.py
index 7e62465d1eef0cbb5155949757d7f4fa56c80351..db009fe43c223aa697ddfe7892d612aeb305a575 100644
--- a/release/scripts/startup/bl_ui/space_time.py
+++ b/release/scripts/startup/bl_ui/space_time.py
@@ -18,9 +18,10 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Header, Menu
 
 
-class TIME_HT_header(bpy.types.Header):
+class TIME_HT_header(Header):
     bl_space_type = 'TIMELINE'
 
     def draw(self, context):
@@ -34,10 +35,9 @@ class TIME_HT_header(bpy.types.Header):
         row.template_header()
 
         if context.area.show_menus:
-            sub = row.row(align=True)
-            sub.menu("TIME_MT_view")
-            sub.menu("TIME_MT_frame")
-            sub.menu("TIME_MT_playback")
+            row.menu("TIME_MT_view")
+            row.menu("TIME_MT_frame")
+            row.menu("TIME_MT_playback")
 
         layout.prop(scene, "use_preview_range", text="", toggle=True)
 
@@ -91,7 +91,7 @@ class TIME_HT_header(bpy.types.Header):
         row.operator("anim.keyframe_delete", text="", icon='KEY_DEHLT')
 
 
-class TIME_MT_view(bpy.types.Menu):
+class TIME_MT_view(Menu):
     bl_label = "View"
 
     def draw(self, context):
@@ -116,7 +116,7 @@ class TIME_MT_view(bpy.types.Menu):
         layout.operator("marker.camera_bind")
 
 
-class TIME_MT_cache(bpy.types.Menu):
+class TIME_MT_cache(Menu):
     bl_label = "Cache"
 
     def draw(self, context):
@@ -136,7 +136,7 @@ class TIME_MT_cache(bpy.types.Menu):
         col.prop(st, "cache_smoke")
 
 
-class TIME_MT_frame(bpy.types.Menu):
+class TIME_MT_frame(Menu):
     bl_label = "Frame"
 
     def draw(self, context):
@@ -162,7 +162,7 @@ class TIME_MT_frame(bpy.types.Menu):
         sub.menu("TIME_MT_autokey")
 
 
-class TIME_MT_playback(bpy.types.Menu):
+class TIME_MT_playback(Menu):
     bl_label = "Playback"
 
     def draw(self, context):
@@ -187,7 +187,7 @@ class TIME_MT_playback(bpy.types.Menu):
         layout.prop(scene, "use_audio_scrub")
 
 
-class TIME_MT_autokey(bpy.types.Menu):
+class TIME_MT_autokey(Menu):
     bl_label = "Auto-Keyframing Mode"
 
     def draw(self, context):
diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py
index e6fd8dcb9498bb7a21f613e757c0d65407934e00..148338368feafbe65a43a6d5dbf6987da53df8ec 100644
--- a/release/scripts/startup/bl_ui/space_userpref.py
+++ b/release/scripts/startup/bl_ui/space_userpref.py
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Header, Menu, Operator, Panel
 import os
 import addon_utils
 
@@ -75,7 +76,7 @@ def opengl_lamp_buttons(column, lamp):
     col.prop(lamp, "direction", text="")
 
 
-class USERPREF_HT_header(bpy.types.Header):
+class USERPREF_HT_header(Header):
     bl_space_type = 'USER_PREFERENCES'
 
     def draw(self, context):
@@ -99,7 +100,7 @@ class USERPREF_HT_header(bpy.types.Header):
             layout.operator("ui.reset_default_theme")
 
 
-class USERPREF_PT_tabs(bpy.types.Panel):
+class USERPREF_PT_tabs(Panel):
     bl_label = ""
     bl_space_type = 'USER_PREFERENCES'
     bl_region_type = 'WINDOW'
@@ -113,14 +114,14 @@ class USERPREF_PT_tabs(bpy.types.Panel):
         layout.prop(userpref, "active_section", expand=True)
 
 
-class USERPREF_MT_interaction_presets(bpy.types.Menu):
+class USERPREF_MT_interaction_presets(Menu):
     bl_label = "Presets"
     preset_subdir = "interaction"
     preset_operator = "script.execute_preset"
-    draw = bpy.types.Menu.draw_preset
+    draw = Menu.draw_preset
 
 
-class USERPREF_MT_appconfigs(bpy.types.Menu):
+class USERPREF_MT_appconfigs(Menu):
     bl_label = "AppPresets"
     preset_subdir = "keyconfig"
     preset_operator = "wm.appconfig_activate"
@@ -129,10 +130,10 @@ class USERPREF_MT_appconfigs(bpy.types.Menu):
         self.layout.operator("wm.appconfig_default", text="Blender (default)")
 
         # now draw the presets
-        bpy.types.Menu.draw_preset(self, context)
+        Menu.draw_preset(self, context)
 
 
-class USERPREF_MT_splash(bpy.types.Menu):
+class USERPREF_MT_splash(Menu):
     bl_label = "Splash"
 
     def draw(self, context):
@@ -149,7 +150,7 @@ class USERPREF_MT_splash(bpy.types.Menu):
         row.menu("USERPREF_MT_appconfigs", text="Preset")
 
 
-class USERPREF_PT_interface(bpy.types.Panel):
+class USERPREF_PT_interface(Panel):
     bl_space_type = 'USER_PREFERENCES'
     bl_label = "Interface"
     bl_region_type = 'WINDOW'
@@ -246,7 +247,7 @@ class USERPREF_PT_interface(bpy.types.Panel):
         col.prop(view, "show_splash")
 
 
-class USERPREF_PT_edit(bpy.types.Panel):
+class USERPREF_PT_edit(Panel):
     bl_space_type = 'USER_PREFERENCES'
     bl_label = "Edit"
     bl_region_type = 'WINDOW'
@@ -359,7 +360,7 @@ class USERPREF_PT_edit(bpy.types.Panel):
         col.prop(edit, "use_duplicate_particle", text="Particle")
 
 
-class USERPREF_PT_system(bpy.types.Panel):
+class USERPREF_PT_system(Panel):
     bl_space_type = 'USER_PREFERENCES'
     bl_label = "System"
     bl_region_type = 'WINDOW'
@@ -496,7 +497,7 @@ class USERPREF_PT_system(bpy.types.Panel):
         sub.template_color_ramp(system, "weight_color_range", expand=True)
 
 
-class USERPREF_PT_theme(bpy.types.Panel):
+class USERPREF_PT_theme(Panel):
     bl_space_type = 'USER_PREFERENCES'
     bl_label = "Themes"
     bl_region_type = 'WINDOW'
@@ -679,7 +680,7 @@ class USERPREF_PT_theme(bpy.types.Panel):
             self._theme_generic(split, getattr(theme, theme.theme_area.lower()))
 
 
-class USERPREF_PT_file(bpy.types.Panel):
+class USERPREF_PT_file(Panel):
     bl_space_type = 'USER_PREFERENCES'
     bl_label = "Files"
     bl_region_type = 'WINDOW'
@@ -755,7 +756,7 @@ class USERPREF_PT_file(bpy.types.Panel):
 from bl_ui.space_userpref_keymap import InputKeyMapPanel
 
 
-class USERPREF_MT_ndof_settings(bpy.types.Menu):
+class USERPREF_MT_ndof_settings(Menu):
     # accessed from the window keybindings in C (only)
     bl_label = "3D Mouse Settings"
 
@@ -780,7 +781,7 @@ class USERPREF_MT_ndof_settings(bpy.types.Menu):
             layout.prop(input_prefs, "ndof_lock_horizon", icon='NDOF_DOM')
 
 
-class USERPREF_PT_input(bpy.types.Panel, InputKeyMapPanel):
+class USERPREF_PT_input(Panel, InputKeyMapPanel):
     bl_space_type = 'USER_PREFERENCES'
     bl_label = "Input"
 
@@ -870,7 +871,7 @@ class USERPREF_PT_input(bpy.types.Panel, InputKeyMapPanel):
         #print("runtime", time.time() - start)
 
 
-class USERPREF_MT_addons_dev_guides(bpy.types.Menu):
+class USERPREF_MT_addons_dev_guides(Menu):
     bl_label = "Development Guides"
 
     # menu to open webpages with addons development guides
@@ -881,7 +882,7 @@ class USERPREF_MT_addons_dev_guides(bpy.types.Menu):
         layout.operator('wm.url_open', text='How to share your addon', icon='URL').url = 'http://wiki.blender.org/index.php/Dev:Py/Sharing'
 
 
-class USERPREF_PT_addons(bpy.types.Panel):
+class USERPREF_PT_addons(Panel):
     bl_space_type = 'USER_PREFERENCES'
     bl_label = "Addons"
     bl_region_type = 'WINDOW'
@@ -1071,28 +1072,36 @@ class USERPREF_PT_addons(bpy.types.Panel):
                     row.operator("wm.addon_disable", icon='CHECKBOX_HLT', text="", emboss=False).module = module_name
 
 
-class WM_OT_addon_enable(bpy.types.Operator):
+class WM_OT_addon_enable(Operator):
     "Enable an addon"
     bl_idname = "wm.addon_enable"
     bl_label = "Enable Add-On"
 
-    module = StringProperty(name="Module", description="Module name of the addon to enable")
+    module = StringProperty(
+            name="Module",
+            description="Module name of the addon to enable",
+            )
 
     def execute(self, context):
         mod = addon_utils.enable(self.module)
 
         if mod:
-            # check if add-on is written for current blender version, or raise a warning
             info = addon_utils.module_bl_info(mod)
 
-            if info.get("blender", (0, 0, 0)) > bpy.app.version:
-                self.report("WARNING','This script was written for a newer version of Blender and might not function (correctly).\nThe script is enabled though.")
+            info_ver = info.get("blender", (0, 0, 0))
+
+            if info_ver > bpy.app.version:
+                self.report({'WARNING'}, ("This script was written Blender "
+                                          "version %d.%d.%d and might not "
+                                          "function (correctly).\n"
+                                          "The script is enabled though.") %
+                                         info_ver)
             return {'FINISHED'}
         else:
             return {'CANCELLED'}
 
 
-class WM_OT_addon_disable(bpy.types.Operator):
+class WM_OT_addon_disable(Operator):
     "Disable an addon"
     bl_idname = "wm.addon_disable"
     bl_label = "Disable Add-On"
@@ -1104,7 +1113,7 @@ class WM_OT_addon_disable(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class WM_OT_addon_install(bpy.types.Operator):
+class WM_OT_addon_install(Operator):
     "Install an addon"
     bl_idname = "wm.addon_install"
     bl_label = "Install Add-On..."
@@ -1250,7 +1259,7 @@ class WM_OT_addon_install(bpy.types.Operator):
         return {'RUNNING_MODAL'}
 
 
-class WM_OT_addon_remove(bpy.types.Operator):
+class WM_OT_addon_remove(Operator):
     "Disable an addon"
     bl_idname = "wm.addon_remove"
     bl_label = "Remove Add-On"
@@ -1298,7 +1307,7 @@ class WM_OT_addon_remove(bpy.types.Operator):
         return wm.invoke_props_dialog(self, width=600)
 
 
-class WM_OT_addon_expand(bpy.types.Operator):
+class WM_OT_addon_expand(Operator):
     "Display more information on this add-on"
     bl_idname = "wm.addon_expand"
     bl_label = ""
diff --git a/release/scripts/startup/bl_ui/space_userpref_keymap.py b/release/scripts/startup/bl_ui/space_userpref_keymap.py
index 5658cc96281084e605ef32f9b2b60453947fdbc6..6a81ff5830ea624a5e67cb7f0d59560f23e4351c 100644
--- a/release/scripts/startup/bl_ui/space_userpref_keymap.py
+++ b/release/scripts/startup/bl_ui/space_userpref_keymap.py
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Menu, Operator, OperatorProperties
 import os
 
 
@@ -124,7 +125,7 @@ def _merge_keymaps(kc1, kc2):
     return merged_keymaps
 
 
-class USERPREF_MT_keyconfigs(bpy.types.Menu):
+class USERPREF_MT_keyconfigs(Menu):
     bl_label = "KeyPresets"
     preset_subdir = "keyconfig"
     preset_operator = "wm.keyconfig_activate"
@@ -135,7 +136,7 @@ class USERPREF_MT_keyconfigs(bpy.types.Menu):
         props.value = "context.window_manager.keyconfigs.default"
 
         # now draw the presets
-        bpy.types.Menu.draw_preset(self, context)
+        Menu.draw_preset(self, context)
 
 
 class InputKeyMapPanel:
@@ -232,7 +233,7 @@ class InputKeyMapPanel:
         flow = box.column_flow(columns=2)
         for pname, value in properties.bl_rna.properties.items():
             if pname != "rna_type" and not properties.is_property_hidden(pname):
-                if isinstance(value, bpy.types.OperatorProperties):
+                if isinstance(value, OperatorProperties):
                     InputKeyMapPanel.draw_kmi_properties(box, value, title=pname)
                 else:
                     flow.prop(properties, pname)
@@ -410,7 +411,7 @@ def export_properties(prefix, properties, lines=None):
     for pname in properties.bl_rna.properties.keys():
         if pname != "rna_type" and not properties.is_property_hidden(pname):
             value = getattr(properties, pname)
-            if isinstance(value, bpy.types.OperatorProperties):
+            if isinstance(value, OperatorProperties):
                 export_properties(prefix + "." + pname, value, lines)
             elif properties.is_property_set(pname):
                 value = _string_value(value)
@@ -419,7 +420,7 @@ def export_properties(prefix, properties, lines=None):
     return lines
 
 
-class WM_OT_keyconfig_test(bpy.types.Operator):
+class WM_OT_keyconfig_test(Operator):
     "Test keyconfig for conflicts"
     bl_idname = "wm.keyconfig_test"
     bl_label = "Test Key Configuration for Conflicts"
@@ -527,7 +528,7 @@ def _string_value(value):
     return result
 
 
-class WM_OT_keyconfig_import(bpy.types.Operator):
+class WM_OT_keyconfig_import(Operator):
     "Import key configuration from a python script"
     bl_idname = "wm.keyconfig_import"
     bl_label = "Import Key Configuration..."
@@ -542,22 +543,24 @@ class WM_OT_keyconfig_import(bpy.types.Operator):
     def execute(self, context):
         from os.path import basename
         import shutil
-        if not self.filepath:
-            raise Exception("Filepath not set")
 
-        f = open(self.filepath, "r")
-        if not f:
-            raise Exception("Could not open file")
+        if not self.filepath:
+            self.report({'ERROR'}, "Filepath not set")
+            return {'CANCELLED'}
 
         config_name = basename(self.filepath)
 
         path = bpy.utils.user_resource('SCRIPTS', os.path.join("presets", "keyconfig"), create=True)
         path = os.path.join(path, config_name)
 
-        if self.keep_original:
-            shutil.copy(self.filepath, path)
-        else:
-            shutil.move(self.filepath, path)
+        try:
+            if self.keep_original:
+                shutil.copy(self.filepath, path)
+            else:
+                shutil.move(self.filepath, path)
+        except Exception as e:
+            self.report({'ERROR'}, "Installing keymap failed: %s" % e)
+            return {'CANCELLED'}
 
         # sneaky way to check we're actually running the code.
         bpy.utils.keyconfig_set(path)
@@ -572,7 +575,7 @@ class WM_OT_keyconfig_import(bpy.types.Operator):
 # This operator is also used by interaction presets saving - AddPresetBase
 
 
-class WM_OT_keyconfig_export(bpy.types.Operator):
+class WM_OT_keyconfig_export(Operator):
     "Export key configuration to a python script"
     bl_idname = "wm.keyconfig_export"
     bl_label = "Export Key Configuration..."
@@ -665,7 +668,7 @@ class WM_OT_keyconfig_export(bpy.types.Operator):
         return {'RUNNING_MODAL'}
 
 
-class WM_OT_keymap_restore(bpy.types.Operator):
+class WM_OT_keymap_restore(Operator):
     "Restore key map(s)"
     bl_idname = "wm.keymap_restore"
     bl_label = "Restore Key Map(s)"
@@ -685,7 +688,7 @@ class WM_OT_keymap_restore(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class WM_OT_keyitem_restore(bpy.types.Operator):
+class WM_OT_keyitem_restore(Operator):
     "Restore key map item"
     bl_idname = "wm.keyitem_restore"
     bl_label = "Restore Key Map Item"
@@ -707,7 +710,7 @@ class WM_OT_keyitem_restore(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class WM_OT_keyitem_add(bpy.types.Operator):
+class WM_OT_keyitem_add(Operator):
     "Add key map item"
     bl_idname = "wm.keyitem_add"
     bl_label = "Add Key Map Item"
@@ -729,7 +732,7 @@ class WM_OT_keyitem_add(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class WM_OT_keyitem_remove(bpy.types.Operator):
+class WM_OT_keyitem_remove(Operator):
     "Remove key map item"
     bl_idname = "wm.keyitem_remove"
     bl_label = "Remove Key Map Item"
@@ -747,7 +750,7 @@ class WM_OT_keyitem_remove(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class WM_OT_keyconfig_remove(bpy.types.Operator):
+class WM_OT_keyconfig_remove(Operator):
     "Remove key config"
     bl_idname = "wm.keyconfig_remove"
     bl_label = "Remove Key Config"
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index 17b631ae50c7d2bf1d282d90c36d4bdd1fac0a6d..3a28cd30947be3e41fe517c1cba0bb3d78d59e17 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -18,9 +18,10 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Header, Menu, Operator, Panel
 
 
-class VIEW3D_HT_header(bpy.types.Header):
+class VIEW3D_HT_header(Header):
     bl_space_type = 'VIEW_3D'
 
     def draw(self, context):
@@ -128,7 +129,7 @@ class ShowHideMenu():
         layout.operator("%s.hide" % self._operator_name, text="Hide Unselected").unselected = True
 
 
-class VIEW3D_MT_transform(bpy.types.Menu):
+class VIEW3D_MT_transform(Menu):
     bl_label = "Transform"
 
     # TODO: get rid of the custom text strings?
@@ -180,7 +181,7 @@ class VIEW3D_MT_transform(bpy.types.Menu):
         layout.operator("object.align")
 
 
-class VIEW3D_MT_mirror(bpy.types.Menu):
+class VIEW3D_MT_mirror(Menu):
     bl_label = "Mirror"
 
     def draw(self, context):
@@ -218,7 +219,7 @@ class VIEW3D_MT_mirror(bpy.types.Menu):
             layout.operator("object.vertex_group_mirror")
 
 
-class VIEW3D_MT_snap(bpy.types.Menu):
+class VIEW3D_MT_snap(Menu):
     bl_label = "Snap"
 
     def draw(self, context):
@@ -235,7 +236,7 @@ class VIEW3D_MT_snap(bpy.types.Menu):
         layout.operator("view3d.snap_cursor_to_active", text="Cursor to Active")
 
 
-class VIEW3D_MT_uv_map(bpy.types.Menu):
+class VIEW3D_MT_uv_map(Menu):
     bl_label = "UV Mapping"
 
     def draw(self, context):
@@ -268,7 +269,7 @@ class VIEW3D_MT_uv_map(bpy.types.Menu):
 # ********** View menus **********
 
 
-class VIEW3D_MT_view(bpy.types.Menu):
+class VIEW3D_MT_view(Menu):
     bl_label = "View"
 
     def draw(self, context):
@@ -327,7 +328,7 @@ class VIEW3D_MT_view(bpy.types.Menu):
         layout.operator("screen.screen_full_area")
 
 
-class VIEW3D_MT_view_navigation(bpy.types.Menu):
+class VIEW3D_MT_view_navigation(Menu):
     bl_label = "Navigation"
 
     def draw(self, context):
@@ -350,7 +351,7 @@ class VIEW3D_MT_view_navigation(bpy.types.Menu):
         layout.operator("view3d.fly")
 
 
-class VIEW3D_MT_view_align(bpy.types.Menu):
+class VIEW3D_MT_view_align(Menu):
     bl_label = "Align View"
 
     def draw(self, context):
@@ -366,7 +367,7 @@ class VIEW3D_MT_view_align(bpy.types.Menu):
         layout.operator("view3d.view_center_cursor")
 
 
-class VIEW3D_MT_view_align_selected(bpy.types.Menu):
+class VIEW3D_MT_view_align_selected(Menu):
     bl_label = "Align View to Selected"
 
     def draw(self, context):
@@ -392,7 +393,7 @@ class VIEW3D_MT_view_align_selected(bpy.types.Menu):
         props.type = 'LEFT'
 
 
-class VIEW3D_MT_view_cameras(bpy.types.Menu):
+class VIEW3D_MT_view_cameras(Menu):
     bl_label = "Cameras"
 
     def draw(self, context):
@@ -404,7 +405,7 @@ class VIEW3D_MT_view_cameras(bpy.types.Menu):
 # ********** Select menus, suffix from context.mode **********
 
 
-class VIEW3D_MT_select_object(bpy.types.Menu):
+class VIEW3D_MT_select_object(Menu):
     bl_label = "Select"
 
     def draw(self, context):
@@ -430,7 +431,7 @@ class VIEW3D_MT_select_object(bpy.types.Menu):
         layout.operator("object.select_pattern", text="Select Pattern...")
 
 
-class VIEW3D_MT_select_pose(bpy.types.Menu):
+class VIEW3D_MT_select_pose(Menu):
     bl_label = "Select"
 
     def draw(self, context):
@@ -467,7 +468,7 @@ class VIEW3D_MT_select_pose(bpy.types.Menu):
         layout.operator("object.select_pattern", text="Select Pattern...")
 
 
-class VIEW3D_MT_select_particle(bpy.types.Menu):
+class VIEW3D_MT_select_particle(Menu):
     bl_label = "Select"
 
     def draw(self, context):
@@ -492,7 +493,7 @@ class VIEW3D_MT_select_particle(bpy.types.Menu):
         layout.operator("particle.select_tips", text="Tips")
 
 
-class VIEW3D_MT_select_edit_mesh(bpy.types.Menu):
+class VIEW3D_MT_select_edit_mesh(Menu):
     bl_label = "Select"
 
     def draw(self, context):
@@ -544,7 +545,7 @@ class VIEW3D_MT_select_edit_mesh(bpy.types.Menu):
         layout.operator("mesh.region_to_loop")
 
 
-class VIEW3D_MT_select_edit_curve(bpy.types.Menu):
+class VIEW3D_MT_select_edit_curve(Menu):
     bl_label = "Select"
 
     def draw(self, context):
@@ -573,7 +574,7 @@ class VIEW3D_MT_select_edit_curve(bpy.types.Menu):
         layout.operator("curve.select_less")
 
 
-class VIEW3D_MT_select_edit_surface(bpy.types.Menu):
+class VIEW3D_MT_select_edit_surface(Menu):
     bl_label = "Select"
 
     def draw(self, context):
@@ -599,7 +600,7 @@ class VIEW3D_MT_select_edit_surface(bpy.types.Menu):
         layout.operator("curve.select_less")
 
 
-class VIEW3D_MT_select_edit_metaball(bpy.types.Menu):
+class VIEW3D_MT_select_edit_metaball(Menu):
     bl_label = "Select"
 
     def draw(self, context):
@@ -617,7 +618,7 @@ class VIEW3D_MT_select_edit_metaball(bpy.types.Menu):
         layout.operator("mball.select_random_metaelems")
 
 
-class VIEW3D_MT_select_edit_lattice(bpy.types.Menu):
+class VIEW3D_MT_select_edit_lattice(Menu):
     bl_label = "Select"
 
     def draw(self, context):
@@ -630,7 +631,7 @@ class VIEW3D_MT_select_edit_lattice(bpy.types.Menu):
         layout.operator("lattice.select_all", text="Select/Deselect All")
 
 
-class VIEW3D_MT_select_edit_armature(bpy.types.Menu):
+class VIEW3D_MT_select_edit_armature(Menu):
     bl_label = "Select"
 
     def draw(self, context):
@@ -661,7 +662,7 @@ class VIEW3D_MT_select_edit_armature(bpy.types.Menu):
         layout.operator("object.select_pattern", text="Select Pattern...")
 
 
-class VIEW3D_MT_select_face(bpy.types.Menu):  # XXX no matching enum
+class VIEW3D_MT_select_face(Menu):  # XXX no matching enum
     bl_label = "Select"
 
     def draw(self, context):
@@ -674,7 +675,7 @@ class VIEW3D_MT_select_face(bpy.types.Menu):  # XXX no matching enum
 # ********** Object menu **********
 
 
-class VIEW3D_MT_object(bpy.types.Menu):
+class VIEW3D_MT_object(Menu):
     bl_context = "objectmode"
     bl_label = "Object"
 
@@ -732,7 +733,7 @@ class VIEW3D_MT_object(bpy.types.Menu):
         layout.operator_menu_enum("object.convert", "target")
 
 
-class VIEW3D_MT_object_animation(bpy.types.Menu):
+class VIEW3D_MT_object_animation(Menu):
     bl_label = "Animation"
 
     def draw(self, context):
@@ -743,7 +744,7 @@ class VIEW3D_MT_object_animation(bpy.types.Menu):
         layout.operator("anim.keying_set_active_set", text="Change Keying Set...")
 
 
-class VIEW3D_MT_object_clear(bpy.types.Menu):
+class VIEW3D_MT_object_clear(Menu):
     bl_label = "Clear"
 
     def draw(self, context):
@@ -755,7 +756,7 @@ class VIEW3D_MT_object_clear(bpy.types.Menu):
         layout.operator("object.origin_clear", text="Origin")
 
 
-class VIEW3D_MT_object_specials(bpy.types.Menu):
+class VIEW3D_MT_object_specials(Menu):
     bl_label = "Specials"
 
     @classmethod
@@ -850,7 +851,7 @@ class VIEW3D_MT_object_specials(bpy.types.Menu):
         props = layout.operator("object.hide_render_clear_all")
 
 
-class VIEW3D_MT_object_apply(bpy.types.Menu):
+class VIEW3D_MT_object_apply(Menu):
     bl_label = "Apply"
 
     def draw(self, context):
@@ -869,7 +870,7 @@ class VIEW3D_MT_object_apply(bpy.types.Menu):
         layout.operator("object.duplicates_make_real")
 
 
-class VIEW3D_MT_object_parent(bpy.types.Menu):
+class VIEW3D_MT_object_parent(Menu):
     bl_label = "Parent"
 
     def draw(self, context):
@@ -879,7 +880,7 @@ class VIEW3D_MT_object_parent(bpy.types.Menu):
         layout.operator("object.parent_clear", text="Clear")
 
 
-class VIEW3D_MT_object_track(bpy.types.Menu):
+class VIEW3D_MT_object_track(Menu):
     bl_label = "Track"
 
     def draw(self, context):
@@ -889,7 +890,7 @@ class VIEW3D_MT_object_track(bpy.types.Menu):
         layout.operator("object.track_clear", text="Clear")
 
 
-class VIEW3D_MT_object_group(bpy.types.Menu):
+class VIEW3D_MT_object_group(Menu):
     bl_label = "Group"
 
     def draw(self, context):
@@ -904,7 +905,7 @@ class VIEW3D_MT_object_group(bpy.types.Menu):
         layout.operator("group.objects_remove_active")
 
 
-class VIEW3D_MT_object_constraints(bpy.types.Menu):
+class VIEW3D_MT_object_constraints(Menu):
     bl_label = "Constraints"
 
     def draw(self, context):
@@ -915,7 +916,7 @@ class VIEW3D_MT_object_constraints(bpy.types.Menu):
         layout.operator("object.constraints_clear")
 
 
-class VIEW3D_MT_object_showhide(bpy.types.Menu):
+class VIEW3D_MT_object_showhide(Menu):
     bl_label = "Show/Hide"
 
     def draw(self, context):
@@ -926,7 +927,7 @@ class VIEW3D_MT_object_showhide(bpy.types.Menu):
         layout.operator("object.hide_view_set", text="Hide Unselected").unselected = True
 
 
-class VIEW3D_MT_make_single_user(bpy.types.Menu):
+class VIEW3D_MT_make_single_user(Menu):
     bl_label = "Make Single User"
 
     def draw(self, context):
@@ -948,7 +949,7 @@ class VIEW3D_MT_make_single_user(bpy.types.Menu):
         props.animation = True
 
 
-class VIEW3D_MT_make_links(bpy.types.Menu):
+class VIEW3D_MT_make_links(Menu):
     bl_label = "Make Links"
 
     def draw(self, context):
@@ -965,7 +966,7 @@ class VIEW3D_MT_make_links(bpy.types.Menu):
         layout.operator_enum("object.make_links_data", "type")  # inline
 
 
-class VIEW3D_MT_object_game(bpy.types.Menu):
+class VIEW3D_MT_object_game(Menu):
     bl_label = "Game"
 
     def draw(self, context):
@@ -987,7 +988,7 @@ class VIEW3D_MT_object_game(bpy.types.Menu):
 # ********** Vertex paint menu **********
 
 
-class VIEW3D_MT_paint_vertex(bpy.types.Menu):
+class VIEW3D_MT_paint_vertex(Menu):
     bl_label = "Paint"
 
     def draw(self, context):
@@ -1002,7 +1003,7 @@ class VIEW3D_MT_paint_vertex(bpy.types.Menu):
         layout.operator("paint.vertex_color_dirt")
 
 
-class VIEW3D_MT_hook(bpy.types.Menu):
+class VIEW3D_MT_hook(Menu):
     bl_label = "Hooks"
 
     def draw(self, context):
@@ -1021,7 +1022,7 @@ class VIEW3D_MT_hook(bpy.types.Menu):
             layout.operator_menu_enum("object.hook_recenter", "modifier")
 
 
-class VIEW3D_MT_vertex_group(bpy.types.Menu):
+class VIEW3D_MT_vertex_group(Menu):
     bl_label = "Vertex Groups"
 
     def draw(self, context):
@@ -1046,7 +1047,7 @@ class VIEW3D_MT_vertex_group(bpy.types.Menu):
 # ********** Weight paint menu **********
 
 
-class VIEW3D_MT_paint_weight(bpy.types.Menu):
+class VIEW3D_MT_paint_weight(Menu):
     bl_label = "Weights"
 
     def draw(self, context):
@@ -1076,7 +1077,7 @@ class VIEW3D_MT_paint_weight(bpy.types.Menu):
 # ********** Sculpt menu **********
 
 
-class VIEW3D_MT_sculpt(bpy.types.Menu):
+class VIEW3D_MT_sculpt(Menu):
     bl_label = "Sculpt"
 
     def draw(self, context):
@@ -1126,7 +1127,7 @@ class VIEW3D_MT_sculpt(bpy.types.Menu):
 # ********** Particle menu **********
 
 
-class VIEW3D_MT_particle(bpy.types.Menu):
+class VIEW3D_MT_particle(Menu):
     bl_label = "Particle"
 
     def draw(self, context):
@@ -1158,7 +1159,7 @@ class VIEW3D_MT_particle(bpy.types.Menu):
         layout.menu("VIEW3D_MT_particle_showhide")
 
 
-class VIEW3D_MT_particle_specials(bpy.types.Menu):
+class VIEW3D_MT_particle_specials(Menu):
     bl_label = "Specials"
 
     def draw(self, context):
@@ -1176,13 +1177,13 @@ class VIEW3D_MT_particle_specials(bpy.types.Menu):
         layout.operator("particle.remove_doubles")
 
 
-class VIEW3D_MT_particle_showhide(ShowHideMenu, bpy.types.Menu):
+class VIEW3D_MT_particle_showhide(ShowHideMenu, Menu):
     _operator_name = "particle"
 
 # ********** Pose Menu **********
 
 
-class VIEW3D_MT_pose(bpy.types.Menu):
+class VIEW3D_MT_pose(Menu):
     bl_label = "Pose"
 
     def draw(self, context):
@@ -1251,7 +1252,7 @@ class VIEW3D_MT_pose(bpy.types.Menu):
         layout.menu("VIEW3D_MT_bone_options_toggle", text="Bone Settings")
 
 
-class VIEW3D_MT_pose_transform(bpy.types.Menu):
+class VIEW3D_MT_pose_transform(Menu):
     bl_label = "Clear Transform"
 
     def draw(self, context):
@@ -1266,7 +1267,7 @@ class VIEW3D_MT_pose_transform(bpy.types.Menu):
         layout.label(text="Origin")
 
 
-class VIEW3D_MT_pose_slide(bpy.types.Menu):
+class VIEW3D_MT_pose_slide(Menu):
     bl_label = "In-Betweens"
 
     def draw(self, context):
@@ -1277,7 +1278,7 @@ class VIEW3D_MT_pose_slide(bpy.types.Menu):
         layout.operator("pose.breakdown")
 
 
-class VIEW3D_MT_pose_propagate(bpy.types.Menu):
+class VIEW3D_MT_pose_propagate(Menu):
     bl_label = "Propagate"
 
     def draw(self, context):
@@ -1295,7 +1296,7 @@ class VIEW3D_MT_pose_propagate(bpy.types.Menu):
         layout.operator("pose.propagate", text="On Selected Markers").mode = 'SELECTED_MARKERS'
 
 
-class VIEW3D_MT_pose_library(bpy.types.Menu):
+class VIEW3D_MT_pose_library(Menu):
     bl_label = "Pose Library"
 
     def draw(self, context):
@@ -1310,7 +1311,7 @@ class VIEW3D_MT_pose_library(bpy.types.Menu):
         layout.operator("poselib.pose_remove", text="Remove Pose...")
 
 
-class VIEW3D_MT_pose_motion(bpy.types.Menu):
+class VIEW3D_MT_pose_motion(Menu):
     bl_label = "Motion Paths"
 
     def draw(self, context):
@@ -1320,7 +1321,7 @@ class VIEW3D_MT_pose_motion(bpy.types.Menu):
         layout.operator("pose.paths_clear", text="Clear")
 
 
-class VIEW3D_MT_pose_group(bpy.types.Menu):
+class VIEW3D_MT_pose_group(Menu):
     bl_label = "Bone Groups"
 
     def draw(self, context):
@@ -1334,7 +1335,7 @@ class VIEW3D_MT_pose_group(bpy.types.Menu):
         layout.operator("pose.group_unassign")
 
 
-class VIEW3D_MT_pose_ik(bpy.types.Menu):
+class VIEW3D_MT_pose_ik(Menu):
     bl_label = "Inverse Kinematics"
 
     def draw(self, context):
@@ -1344,7 +1345,7 @@ class VIEW3D_MT_pose_ik(bpy.types.Menu):
         layout.operator("pose.ik_clear")
 
 
-class VIEW3D_MT_pose_constraints(bpy.types.Menu):
+class VIEW3D_MT_pose_constraints(Menu):
     bl_label = "Constraints"
 
     def draw(self, context):
@@ -1355,11 +1356,11 @@ class VIEW3D_MT_pose_constraints(bpy.types.Menu):
         layout.operator("pose.constraints_clear")
 
 
-class VIEW3D_MT_pose_showhide(ShowHideMenu, bpy.types.Menu):
+class VIEW3D_MT_pose_showhide(ShowHideMenu, Menu):
     _operator_name = "pose"
 
 
-class VIEW3D_MT_pose_apply(bpy.types.Menu):
+class VIEW3D_MT_pose_apply(Menu):
     bl_label = "Apply"
 
     def draw(self, context):
@@ -1398,24 +1399,24 @@ class BoneOptions:
             props.type = self.type
 
 
-class VIEW3D_MT_bone_options_toggle(bpy.types.Menu, BoneOptions):
+class VIEW3D_MT_bone_options_toggle(Menu, BoneOptions):
     bl_label = "Toggle Bone Options"
     type = 'TOGGLE'
 
 
-class VIEW3D_MT_bone_options_enable(bpy.types.Menu, BoneOptions):
+class VIEW3D_MT_bone_options_enable(Menu, BoneOptions):
     bl_label = "Enable Bone Options"
     type = 'ENABLE'
 
 
-class VIEW3D_MT_bone_options_disable(bpy.types.Menu, BoneOptions):
+class VIEW3D_MT_bone_options_disable(Menu, BoneOptions):
     bl_label = "Disable Bone Options"
     type = 'DISABLE'
 
 # ********** Edit Menus, suffix from ob.type **********
 
 
-class VIEW3D_MT_edit_mesh(bpy.types.Menu):
+class VIEW3D_MT_edit_mesh(Menu):
     bl_label = "Mesh"
 
     def draw(self, context):
@@ -1462,7 +1463,7 @@ class VIEW3D_MT_edit_mesh(bpy.types.Menu):
         layout.menu("VIEW3D_MT_edit_mesh_showhide")
 
 
-class VIEW3D_MT_edit_mesh_specials(bpy.types.Menu):
+class VIEW3D_MT_edit_mesh_specials(Menu):
     bl_label = "Specials"
 
     def draw(self, context):
@@ -1487,7 +1488,7 @@ class VIEW3D_MT_edit_mesh_specials(bpy.types.Menu):
         layout.operator("mesh.select_vertex_path")
 
 
-class VIEW3D_MT_edit_mesh_select_mode(bpy.types.Menu):
+class VIEW3D_MT_edit_mesh_select_mode(Menu):
     bl_label = "Mesh Select Mode"
 
     def draw(self, context):
@@ -1508,7 +1509,7 @@ class VIEW3D_MT_edit_mesh_select_mode(bpy.types.Menu):
         prop.data_path = "tool_settings.mesh_select_mode"
 
 
-class VIEW3D_MT_edit_mesh_extrude(bpy.types.Menu):
+class VIEW3D_MT_edit_mesh_extrude(Menu):
     bl_label = "Extrude"
 
     _extrude_funcs = { \
@@ -1542,7 +1543,7 @@ class VIEW3D_MT_edit_mesh_extrude(bpy.types.Menu):
             self._extrude_funcs[menu_id](layout)
 
 
-class VIEW3D_OT_edit_mesh_extrude_individual_move(bpy.types.Operator):
+class VIEW3D_OT_edit_mesh_extrude_individual_move(Operator):
     "Extrude individual elements and move"
     bl_label = "Extrude Individual and Move"
     bl_idname = "view3d.edit_mesh_extrude_individual_move"
@@ -1571,7 +1572,7 @@ class VIEW3D_OT_edit_mesh_extrude_individual_move(bpy.types.Operator):
         return self.execute(context)
 
 
-class VIEW3D_OT_edit_mesh_extrude_move(bpy.types.Operator):
+class VIEW3D_OT_edit_mesh_extrude_move(Operator):
     "Extrude and move along normals"
     bl_label = "Extrude and Move on Normals"
     bl_idname = "view3d.edit_mesh_extrude_move_normal"
@@ -1597,7 +1598,7 @@ class VIEW3D_OT_edit_mesh_extrude_move(bpy.types.Operator):
         return self.execute(context)
 
 
-class VIEW3D_MT_edit_mesh_vertices(bpy.types.Menu):
+class VIEW3D_MT_edit_mesh_vertices(Menu):
     bl_label = "Vertices"
 
     def draw(self, context):
@@ -1629,7 +1630,7 @@ class VIEW3D_MT_edit_mesh_vertices(bpy.types.Menu):
         layout.menu("VIEW3D_MT_hook")
 
 
-class VIEW3D_MT_edit_mesh_edges(bpy.types.Menu):
+class VIEW3D_MT_edit_mesh_edges(Menu):
     bl_label = "Edges"
 
     def draw(self, context):
@@ -1669,7 +1670,7 @@ class VIEW3D_MT_edit_mesh_edges(bpy.types.Menu):
         layout.operator("mesh.region_to_loop")
 
 
-class VIEW3D_MT_edit_mesh_faces(bpy.types.Menu):
+class VIEW3D_MT_edit_mesh_faces(Menu):
     bl_label = "Faces"
     bl_idname = "VIEW3D_MT_edit_mesh_faces"
 
@@ -1717,7 +1718,7 @@ class VIEW3D_MT_edit_mesh_faces(bpy.types.Menu):
         layout.operator_menu_enum("mesh.colors_mirror", "axis")
 
 
-class VIEW3D_MT_edit_mesh_normals(bpy.types.Menu):
+class VIEW3D_MT_edit_mesh_normals(Menu):
     bl_label = "Normals"
 
     def draw(self, context):
@@ -1731,7 +1732,7 @@ class VIEW3D_MT_edit_mesh_normals(bpy.types.Menu):
         layout.operator("mesh.flip_normals")
 
 
-class VIEW3D_MT_edit_mesh_showhide(ShowHideMenu, bpy.types.Menu):
+class VIEW3D_MT_edit_mesh_showhide(ShowHideMenu, Menu):
     _operator_name = "mesh"
 
 # Edit Curve
@@ -1771,13 +1772,13 @@ def draw_curve(self, context):
     layout.menu("VIEW3D_MT_edit_curve_showhide")
 
 
-class VIEW3D_MT_edit_curve(bpy.types.Menu):
+class VIEW3D_MT_edit_curve(Menu):
     bl_label = "Curve"
 
     draw = draw_curve
 
 
-class VIEW3D_MT_edit_curve_ctrlpoints(bpy.types.Menu):
+class VIEW3D_MT_edit_curve_ctrlpoints(Menu):
     bl_label = "Control Points"
 
     def draw(self, context):
@@ -1799,7 +1800,7 @@ class VIEW3D_MT_edit_curve_ctrlpoints(bpy.types.Menu):
             layout.menu("VIEW3D_MT_hook")
 
 
-class VIEW3D_MT_edit_curve_segments(bpy.types.Menu):
+class VIEW3D_MT_edit_curve_segments(Menu):
     bl_label = "Segments"
 
     def draw(self, context):
@@ -1809,7 +1810,7 @@ class VIEW3D_MT_edit_curve_segments(bpy.types.Menu):
         layout.operator("curve.switch_direction")
 
 
-class VIEW3D_MT_edit_curve_specials(bpy.types.Menu):
+class VIEW3D_MT_edit_curve_specials(Menu):
     bl_label = "Specials"
 
     def draw(self, context):
@@ -1823,17 +1824,17 @@ class VIEW3D_MT_edit_curve_specials(bpy.types.Menu):
         layout.operator("curve.smooth_radius")
 
 
-class VIEW3D_MT_edit_curve_showhide(ShowHideMenu, bpy.types.Menu):
+class VIEW3D_MT_edit_curve_showhide(ShowHideMenu, Menu):
     _operator_name = "curve"
 
 
-class VIEW3D_MT_edit_surface(bpy.types.Menu):
+class VIEW3D_MT_edit_surface(Menu):
     bl_label = "Surface"
 
     draw = draw_curve
 
 
-class VIEW3D_MT_edit_font(bpy.types.Menu):
+class VIEW3D_MT_edit_font(Menu):
     bl_label = "Text"
 
     def draw(self, context):
@@ -1853,7 +1854,7 @@ class VIEW3D_MT_edit_font(bpy.types.Menu):
         layout.operator("font.style_toggle", text="Toggle Small Caps").style = 'SMALL_CAPS'
 
 
-class VIEW3D_MT_edit_text_chars(bpy.types.Menu):
+class VIEW3D_MT_edit_text_chars(Menu):
     bl_label = "Special Characters"
 
     def draw(self, context):
@@ -1887,7 +1888,7 @@ class VIEW3D_MT_edit_text_chars(bpy.types.Menu):
         layout.operator("font.text_insert", text="Spanish Exclamation Mark|Alt !").text = b'\xC2\xA1'.decode()
 
 
-class VIEW3D_MT_edit_meta(bpy.types.Menu):
+class VIEW3D_MT_edit_meta(Menu):
     bl_label = "Metaball"
 
     def draw(self, context):
@@ -1920,7 +1921,7 @@ class VIEW3D_MT_edit_meta(bpy.types.Menu):
         layout.menu("VIEW3D_MT_edit_meta_showhide")
 
 
-class VIEW3D_MT_edit_meta_showhide(bpy.types.Menu):
+class VIEW3D_MT_edit_meta_showhide(Menu):
     bl_label = "Show/Hide"
 
     def draw(self, context):
@@ -1931,7 +1932,7 @@ class VIEW3D_MT_edit_meta_showhide(bpy.types.Menu):
         layout.operator("mball.hide_metaelems", text="Hide Unselected").unselected = True
 
 
-class VIEW3D_MT_edit_lattice(bpy.types.Menu):
+class VIEW3D_MT_edit_lattice(Menu):
     bl_label = "Lattice"
 
     def draw(self, context):
@@ -1953,7 +1954,7 @@ class VIEW3D_MT_edit_lattice(bpy.types.Menu):
         layout.prop_menu_enum(settings, "proportional_edit_falloff")
 
 
-class VIEW3D_MT_edit_armature(bpy.types.Menu):
+class VIEW3D_MT_edit_armature(Menu):
     bl_label = "Armature"
 
     def draw(self, context):
@@ -2008,7 +2009,7 @@ class VIEW3D_MT_edit_armature(bpy.types.Menu):
         layout.menu("VIEW3D_MT_bone_options_toggle", text="Bone Settings")
 
 
-class VIEW3D_MT_armature_specials(bpy.types.Menu):
+class VIEW3D_MT_armature_specials(Menu):
     bl_label = "Specials"
 
     def draw(self, context):
@@ -2028,7 +2029,7 @@ class VIEW3D_MT_armature_specials(bpy.types.Menu):
         layout.operator("armature.flip_names", text="Flip Names")
 
 
-class VIEW3D_MT_edit_armature_parent(bpy.types.Menu):
+class VIEW3D_MT_edit_armature_parent(Menu):
     bl_label = "Parent"
 
     def draw(self, context):
@@ -2038,7 +2039,7 @@ class VIEW3D_MT_edit_armature_parent(bpy.types.Menu):
         layout.operator("armature.parent_clear", text="Clear")
 
 
-class VIEW3D_MT_edit_armature_roll(bpy.types.Menu):
+class VIEW3D_MT_edit_armature_roll(Menu):
     bl_label = "Bone Roll"
 
     def draw(self, context):
@@ -2053,7 +2054,7 @@ class VIEW3D_MT_edit_armature_roll(bpy.types.Menu):
 # ********** Panel **********
 
 
-class VIEW3D_PT_view3d_properties(bpy.types.Panel):
+class VIEW3D_PT_view3d_properties(Panel):
     bl_space_type = 'VIEW_3D'
     bl_region_type = 'UI'
     bl_label = "View"
@@ -2094,7 +2095,7 @@ class VIEW3D_PT_view3d_properties(bpy.types.Panel):
         layout.column().prop(view, "cursor_location")
 
 
-class VIEW3D_PT_view3d_name(bpy.types.Panel):
+class VIEW3D_PT_view3d_name(Panel):
     bl_space_type = 'VIEW_3D'
     bl_region_type = 'UI'
     bl_label = "Item"
@@ -2119,7 +2120,7 @@ class VIEW3D_PT_view3d_name(bpy.types.Panel):
                 row.prop(bone, "name", text="")
 
 
-class VIEW3D_PT_view3d_display(bpy.types.Panel):
+class VIEW3D_PT_view3d_display(Panel):
     bl_space_type = 'VIEW_3D'
     bl_region_type = 'UI'
     bl_label = "Display"
@@ -2190,7 +2191,7 @@ class VIEW3D_PT_view3d_display(bpy.types.Panel):
             row.prop(region, "use_box_clip")
 
 
-class VIEW3D_PT_view3d_meshdisplay(bpy.types.Panel):
+class VIEW3D_PT_view3d_meshdisplay(Panel):
     bl_space_type = 'VIEW_3D'
     bl_region_type = 'UI'
     bl_label = "Mesh Display"
@@ -2227,7 +2228,7 @@ class VIEW3D_PT_view3d_meshdisplay(bpy.types.Panel):
         col.prop(mesh, "show_extra_face_area")
 
 
-class VIEW3D_PT_view3d_curvedisplay(bpy.types.Panel):
+class VIEW3D_PT_view3d_curvedisplay(Panel):
     bl_space_type = 'VIEW_3D'
     bl_region_type = 'UI'
     bl_label = "Curve Display"
@@ -2249,7 +2250,7 @@ class VIEW3D_PT_view3d_curvedisplay(bpy.types.Panel):
         col.prop(context.scene.tool_settings, "normal_size", text="Normal Size")
 
 
-class VIEW3D_PT_background_image(bpy.types.Panel):
+class VIEW3D_PT_background_image(Panel):
     bl_space_type = 'VIEW_3D'
     bl_region_type = 'UI'
     bl_label = "Background Images"
@@ -2302,7 +2303,7 @@ class VIEW3D_PT_background_image(bpy.types.Panel):
                         row.prop(bg, "offset_y", text="Y")
 
 
-class VIEW3D_PT_transform_orientations(bpy.types.Panel):
+class VIEW3D_PT_transform_orientations(Panel):
     bl_space_type = 'VIEW_3D'
     bl_region_type = 'UI'
     bl_label = "Transform Orientations"
@@ -2330,7 +2331,7 @@ class VIEW3D_PT_transform_orientations(bpy.types.Panel):
             col.operator("transform.delete_orientation", text="Delete")
 
 
-class VIEW3D_PT_etch_a_ton(bpy.types.Panel):
+class VIEW3D_PT_etch_a_ton(Panel):
     bl_space_type = 'VIEW_3D'
     bl_region_type = 'UI'
     bl_label = "Skeleton Sketching"
@@ -2375,7 +2376,7 @@ class VIEW3D_PT_etch_a_ton(bpy.types.Panel):
         col.operator("sketch.convert", text="Convert")
 
 
-class VIEW3D_PT_context_properties(bpy.types.Panel):
+class VIEW3D_PT_context_properties(Panel):
     bl_space_type = 'VIEW_3D'
     bl_region_type = 'UI'
     bl_label = "Properties"
diff --git a/release/scripts/startup/bl_ui/space_view3d_toolbar.py b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
index 85dd6f7da5e190d5613be932aa1eaafddcb06e9a..864d59f0cdb2625df607c66ae9c863867ac483aa 100644
--- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from bpy.types import Menu, Panel
 
 
 class View3DPanel():
@@ -61,7 +62,7 @@ def draw_gpencil_tools(context, layout):
 
 # ********** default tools for objectmode ****************
 
-class VIEW3D_PT_tools_objectmode(View3DPanel, bpy.types.Panel):
+class VIEW3D_PT_tools_objectmode(View3DPanel, Panel):
     bl_context = "objectmode"
     bl_label = "Object Tools"
 
@@ -106,7 +107,7 @@ class VIEW3D_PT_tools_objectmode(View3DPanel, bpy.types.Panel):
 # ********** default tools for editmode_mesh ****************
 
 
-class VIEW3D_PT_tools_meshedit(View3DPanel, bpy.types.Panel):
+class VIEW3D_PT_tools_meshedit(View3DPanel, Panel):
     bl_context = "mesh_edit"
     bl_label = "Mesh Tools"
 
@@ -165,7 +166,7 @@ class VIEW3D_PT_tools_meshedit(View3DPanel, bpy.types.Panel):
         draw_gpencil_tools(context, layout)
 
 
-class VIEW3D_PT_tools_meshedit_options(View3DPanel, bpy.types.Panel):
+class VIEW3D_PT_tools_meshedit_options(View3DPanel, Panel):
     bl_context = "mesh_edit"
     bl_label = "Mesh Options"
 
@@ -191,7 +192,7 @@ class VIEW3D_PT_tools_meshedit_options(View3DPanel, bpy.types.Panel):
 # ********** default tools for editmode_curve ****************
 
 
-class VIEW3D_PT_tools_curveedit(View3DPanel, bpy.types.Panel):
+class VIEW3D_PT_tools_curveedit(View3DPanel, Panel):
     bl_context = "curve_edit"
     bl_label = "Curve Tools"
 
@@ -237,7 +238,7 @@ class VIEW3D_PT_tools_curveedit(View3DPanel, bpy.types.Panel):
 # ********** default tools for editmode_surface ****************
 
 
-class VIEW3D_PT_tools_surfaceedit(View3DPanel, bpy.types.Panel):
+class VIEW3D_PT_tools_surfaceedit(View3DPanel, Panel):
     bl_context = "surface_edit"
     bl_label = "Surface Tools"
 
@@ -269,7 +270,7 @@ class VIEW3D_PT_tools_surfaceedit(View3DPanel, bpy.types.Panel):
 # ********** default tools for editmode_text ****************
 
 
-class VIEW3D_PT_tools_textedit(View3DPanel, bpy.types.Panel):
+class VIEW3D_PT_tools_textedit(View3DPanel, Panel):
     bl_context = "text_edit"
     bl_label = "Text Tools"
 
@@ -299,7 +300,7 @@ class VIEW3D_PT_tools_textedit(View3DPanel, bpy.types.Panel):
 # ********** default tools for editmode_armature ****************
 
 
-class VIEW3D_PT_tools_armatureedit(View3DPanel, bpy.types.Panel):
+class VIEW3D_PT_tools_armatureedit(View3DPanel, Panel):
     bl_context = "armature_edit"
     bl_label = "Armature Tools"
 
@@ -328,7 +329,7 @@ class VIEW3D_PT_tools_armatureedit(View3DPanel, bpy.types.Panel):
         draw_gpencil_tools(context, layout)
 
 
-class VIEW3D_PT_tools_armatureedit_options(View3DPanel, bpy.types.Panel):
+class VIEW3D_PT_tools_armatureedit_options(View3DPanel, Panel):
     bl_context = "armature_edit"
     bl_label = "Armature Options"
 
@@ -340,7 +341,7 @@ class VIEW3D_PT_tools_armatureedit_options(View3DPanel, bpy.types.Panel):
 # ********** default tools for editmode_mball ****************
 
 
-class VIEW3D_PT_tools_mballedit(View3DPanel, bpy.types.Panel):
+class VIEW3D_PT_tools_mballedit(View3DPanel, Panel):
     bl_context = "mball_edit"
     bl_label = "Meta Tools"
 
@@ -360,7 +361,7 @@ class VIEW3D_PT_tools_mballedit(View3DPanel, bpy.types.Panel):
 # ********** default tools for editmode_lattice ****************
 
 
-class VIEW3D_PT_tools_latticeedit(View3DPanel, bpy.types.Panel):
+class VIEW3D_PT_tools_latticeedit(View3DPanel, Panel):
     bl_context = "lattice_edit"
     bl_label = "Lattice Tools"
 
@@ -384,7 +385,7 @@ class VIEW3D_PT_tools_latticeedit(View3DPanel, bpy.types.Panel):
 # ********** default tools for posemode ****************
 
 
-class VIEW3D_PT_tools_posemode(View3DPanel, bpy.types.Panel):
+class VIEW3D_PT_tools_posemode(View3DPanel, Panel):
     bl_context = "posemode"
     bl_label = "Pose Tools"
 
@@ -425,7 +426,7 @@ class VIEW3D_PT_tools_posemode(View3DPanel, bpy.types.Panel):
         draw_gpencil_tools(context, layout)
 
 
-class VIEW3D_PT_tools_posemode_options(View3DPanel, bpy.types.Panel):
+class VIEW3D_PT_tools_posemode_options(View3DPanel, Panel):
     bl_context = "posemode"
     bl_label = "Pose Options"
 
@@ -459,7 +460,7 @@ class PaintPanel():
         return None
 
 
-class VIEW3D_PT_tools_brush(PaintPanel, bpy.types.Panel):
+class VIEW3D_PT_tools_brush(PaintPanel, Panel):
     bl_label = "Brush"
 
     @classmethod
@@ -677,7 +678,7 @@ class VIEW3D_PT_tools_brush(PaintPanel, bpy.types.Panel):
             #row.prop(brush, "use_pressure_jitter", toggle=True, text="")
 
 
-class VIEW3D_PT_tools_brush_texture(PaintPanel, bpy.types.Panel):
+class VIEW3D_PT_tools_brush_texture(PaintPanel, Panel):
     bl_label = "Texture"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -775,7 +776,7 @@ class VIEW3D_PT_tools_brush_texture(PaintPanel, bpy.types.Panel):
             col.active = tex_slot.map_mode in {'FIXED', 'TILED'} and brush.use_texture_overlay
 
 
-class VIEW3D_PT_tools_brush_tool(PaintPanel, bpy.types.Panel):
+class VIEW3D_PT_tools_brush_tool(PaintPanel, Panel):
     bl_label = "Tool"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -809,7 +810,7 @@ class VIEW3D_PT_tools_brush_tool(PaintPanel, bpy.types.Panel):
         row.prop(brush, "use_paint_image", text="", icon='TPAINT_HLT')
 
 
-class VIEW3D_PT_tools_brush_stroke(PaintPanel, bpy.types.Panel):
+class VIEW3D_PT_tools_brush_stroke(PaintPanel, Panel):
     bl_label = "Stroke"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -907,7 +908,7 @@ class VIEW3D_PT_tools_brush_stroke(PaintPanel, bpy.types.Panel):
             #    row.prop(brush, "use_pressure_spacing", toggle=True, text="")
 
 
-class VIEW3D_PT_tools_brush_curve(PaintPanel, bpy.types.Panel):
+class VIEW3D_PT_tools_brush_curve(PaintPanel, Panel):
     bl_label = "Curve"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -934,7 +935,7 @@ class VIEW3D_PT_tools_brush_curve(PaintPanel, bpy.types.Panel):
         row.operator("brush.curve_preset", icon="NOCURVE", text="").shape = 'MAX'
 
 
-class VIEW3D_PT_sculpt_options(PaintPanel, bpy.types.Panel):
+class VIEW3D_PT_sculpt_options(PaintPanel, Panel):
     bl_label = "Options"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -964,7 +965,7 @@ class VIEW3D_PT_sculpt_options(PaintPanel, bpy.types.Panel):
         layout.prop(tool_settings, "sculpt_paint_use_unified_strength", text="Strength")
 
 
-class VIEW3D_PT_sculpt_symmetry(PaintPanel, bpy.types.Panel):
+class VIEW3D_PT_sculpt_symmetry(PaintPanel, Panel):
     bl_label = "Symmetry"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -992,7 +993,7 @@ class VIEW3D_PT_sculpt_symmetry(PaintPanel, bpy.types.Panel):
         layout.prop(sculpt, "use_symmetry_feather", text="Feather")
 
 
-class VIEW3D_PT_tools_brush_appearance(PaintPanel, bpy.types.Panel):
+class VIEW3D_PT_tools_brush_appearance(PaintPanel, Panel):
     bl_label = "Appearance"
     bl_options = {'DEFAULT_CLOSED'}
 
@@ -1038,7 +1039,7 @@ class VIEW3D_PT_tools_brush_appearance(PaintPanel, bpy.types.Panel):
 # ********** default tools for weightpaint ****************
 
 
-class VIEW3D_PT_tools_weightpaint(View3DPanel, bpy.types.Panel):
+class VIEW3D_PT_tools_weightpaint(View3DPanel, Panel):
     bl_context = "weightpaint"
     bl_label = "Weight Tools"
 
@@ -1056,7 +1057,7 @@ class VIEW3D_PT_tools_weightpaint(View3DPanel, bpy.types.Panel):
         col.operator("object.vertex_group_levels", text="Levels")
 
 
-class VIEW3D_PT_tools_weightpaint_options(View3DPanel, bpy.types.Panel):
+class VIEW3D_PT_tools_weightpaint_options(View3DPanel, Panel):
     bl_context = "weightpaint"
     bl_label = "Options"
 
@@ -1093,7 +1094,7 @@ class VIEW3D_PT_tools_weightpaint_options(View3DPanel, bpy.types.Panel):
 # ********** default tools for vertexpaint ****************
 
 
-class VIEW3D_PT_tools_vertexpaint(View3DPanel, bpy.types.Panel):
+class VIEW3D_PT_tools_vertexpaint(View3DPanel, Panel):
     bl_context = "vertexpaint"
     bl_label = "Options"
 
@@ -1122,7 +1123,7 @@ class VIEW3D_PT_tools_vertexpaint(View3DPanel, bpy.types.Panel):
 # ********** default tools for texturepaint ****************
 
 
-class VIEW3D_PT_tools_projectpaint(View3DPanel, bpy.types.Panel):
+class VIEW3D_PT_tools_projectpaint(View3DPanel, Panel):
     bl_context = "imagepaint"
     bl_label = "Project Paint"
 
@@ -1214,7 +1215,7 @@ class VIEW3D_PT_imagepaint_options(PaintPanel):
         col.prop(tool_settings, "sculpt_paint_use_unified_strength", text="Strength")
 
 
-class VIEW3D_MT_tools_projectpaint_clone(bpy.types.Menu):
+class VIEW3D_MT_tools_projectpaint_clone(Menu):
     bl_label = "Clone Layer"
 
     def draw(self, context):
@@ -1225,7 +1226,7 @@ class VIEW3D_MT_tools_projectpaint_clone(bpy.types.Menu):
             prop.value = i
 
 
-class VIEW3D_MT_tools_projectpaint_stencil(bpy.types.Menu):
+class VIEW3D_MT_tools_projectpaint_stencil(Menu):
     bl_label = "Mask Layer"
 
     def draw(self, context):
@@ -1236,7 +1237,7 @@ class VIEW3D_MT_tools_projectpaint_stencil(bpy.types.Menu):
             prop.value = i
 
 
-class VIEW3D_PT_tools_particlemode(View3DPanel, bpy.types.Panel):
+class VIEW3D_PT_tools_particlemode(View3DPanel, Panel):
     '''default tools for particle mode'''
     bl_context = "particlemode"
     bl_label = "Options"
diff --git a/release/scripts/templates/operator_modal.py b/release/scripts/templates/operator_modal.py
index 78dbd4c6b433d5e47239f75e650d5668f58df896..a428b097f8233c76a705268b4b3b98178815c1d0 100644
--- a/release/scripts/templates/operator_modal.py
+++ b/release/scripts/templates/operator_modal.py
@@ -18,7 +18,7 @@ class ModalOperator(bpy.types.Operator):
         elif event.type == 'LEFTMOUSE':
             return {'FINISHED'}
 
-        elif event.type in ('RIGHTMOUSE', 'ESC'):
+        elif event.type in {'RIGHTMOUSE', 'ESC'}:
             context.object.location.x = self.first_value
             return {'CANCELLED'}
 
@@ -47,4 +47,4 @@ if __name__ == "__main__":
     register()
 
     # test call
-    bpy.ops.object.modal_operator()
+    bpy.ops.object.modal_operator('INVOKE_DEFAULT')
diff --git a/release/scripts/templates/operator_modal_draw.py b/release/scripts/templates/operator_modal_draw.py
index e7a1f6e4ffeafc573437d3f9de263610bd504f76..b3d525a59bf08596ad17292e6e31901cc82e5c8f 100644
--- a/release/scripts/templates/operator_modal_draw.py
+++ b/release/scripts/templates/operator_modal_draw.py
@@ -45,7 +45,7 @@ class ModalDrawOperator(bpy.types.Operator):
             context.region.callback_remove(self._handle)
             return {'FINISHED'}
 
-        elif event.type in ('RIGHTMOUSE', 'ESC'):
+        elif event.type in {'RIGHTMOUSE', 'ESC'}:
             context.region.callback_remove(self._handle)
             return {'CANCELLED'}
 
diff --git a/release/scripts/templates/operator_modal_timer.py b/release/scripts/templates/operator_modal_timer.py
index d2267191cf54f7fa8eea1544d95b5ebab16b85b9..ec47390da81f079dde40b9589ae183606c03242e 100644
--- a/release/scripts/templates/operator_modal_timer.py
+++ b/release/scripts/templates/operator_modal_timer.py
@@ -10,7 +10,7 @@ class ModalTimerOperator(bpy.types.Operator):
 
     def modal(self, context, event):
         if event.type == 'ESC':
-            return self.cancel()
+            return self.cancel(context)
 
         if event.type == 'TIMER':
             # change theme color, silly!
diff --git a/release/scripts/templates/operator_modal_view3d.py b/release/scripts/templates/operator_modal_view3d.py
index c494f121017e2660c4acd779eccdbaf5aa2c6bbb..925449835ca651d4b5dc76ad1b2205c86f7de755 100644
--- a/release/scripts/templates/operator_modal_view3d.py
+++ b/release/scripts/templates/operator_modal_view3d.py
@@ -29,7 +29,7 @@ class ViewOperator(bpy.types.Operator):
             context.area.header_text_set()
             return {'FINISHED'}
 
-        elif event.type in ('RIGHTMOUSE', 'ESC'):
+        elif event.type in {'RIGHTMOUSE', 'ESC'}:
             rv3d.view_location = self._initial_location
             context.area.header_text_set()
             return {'CANCELLED'}
diff --git a/release/text/readme.html b/release/text/readme.html
index 2b5a4071a7fd1cd6f56048d50861a0d3f304f221..95094b9c0cbc8863b9b19f1bc36f517261109fba 100644
--- a/release/text/readme.html
+++ b/release/text/readme.html
@@ -12,22 +12,22 @@
   </style>
 </head>
 <body>
-<p class="title"><b>Blender 2.58</b></p>
+<p class="title"><b>Blender 2.59</b></p>
 <p><br></p>
 <p class="header"><b>About</b></p>
 <p class="body">Welcome to Blender, the free, open source 3D application for modeling, animation, rendering, compositing, video editing and game creation. Blender is available for Linux, Mac OS X, Windows, Solaris and FreeBSD and has a large world-wide community.</p>
 <p class="body">Blender can be used freely for any purpose, including commercial use and distribution. It's free and open-source software, released under the GNU GPL licence. The entire source code is available on our website.</p>
 <p class="body">For more information, visit <a href="http://www.blender.org">blender.org</a>.</p>
 <p><br></p>
-<p class="header"><b>2.58</b></p>
-<p class="body">The Blender Foundation and online developer community is proud to present Blender 2.58. This release is the second official stable release of the Blender 2.5 series, and represents the culmination of many years of redesign and development work. <a href="http://www.blender.org/development/release-logs/blender-258/">More information about this release</a>.</p>
+<p class="header"><b>2.59</b></p>
+<p class="body">The Blender Foundation and online developer community is proud to present Blender 2.59. This release is the third official stable release of the Blender 2.5 series, and represents the culmination of many years of redesign and development work. <a href="http://www.blender.org/development/release-logs/blender-259/">More information about this release</a>.</p>
 <p class="body">What to Expect:</p>
 <p class="body">	•	Big improvements - This is our most exciting version to date, already a significant improvement in many ways over 2.49</p>
 <p class="body">	•	Missing/Incomplete Features - Although most of it is there, not all functionality from pre-2.5 versions has been restored yet. Some functionality may be re-implemented a different way.</p>
 <p class="body">	•	Changes - If you're used to the old Blenders, Blender 2.5 may seem quite different at first, but it won't be long before it grows on you even more than before.</p>
 <p><br></p>
 <p class="header"><b>Bugs</b></p>
-<p class="body">Although Blender 2.58 is considered a stable release, you may encounter a bug. If you do, please help us by posting it in the bug tracker or using Help → Report a Bug from inside Blender 2.58. If it wasn’t reported yet, please log in (or register) and fill in detailed information about the error. Please post detailed instructions on how to reproduce it or post a .blend file showcasing the bug.</p>
+<p class="body">Although Blender 2.59 is considered a stable release, you may encounter a bug. If you do, please help us by posting it in the bug tracker or using Help → Report a Bug from inside Blender 2.59. If it wasn’t reported yet, please log in (or register) and fill in detailed information about the error. Please post detailed instructions on how to reproduce it or post a .blend file showcasing the bug.</p>
 <p><br></p>
 <p class="header"><b>Package Contents</b></p>
 <p class="body">The downloaded Blender package includes:</p>
@@ -51,11 +51,11 @@
 <p class="header"><b>Links</b></p>
 <p class="body">Users:</p>
 <p class="body">	General information		<a href="http://www.blender.org">www.blender.org</a> <br>
-	Full release log 			<a href="http://www.blender.org/development/release-logs/blender-258/">www.blender.org/development/release-logs/blender-258/</a><br>
+	Full release log 			<a href="http://www.blender.org/development/release-logs/blender-259/">www.blender.org/development/release-logs/blender-259/</a><br>
 	Tutorials 			<a href="http://www.blender.org/education-help/">www.blender.org/education-help/</a>	<br>
 	Manual 			<a href="http://wiki.blender.org/index.php/Doc:Manual">wiki.blender.org/index.php/Doc:Manual</a><br>
 	User Forum 			<a href="http://www.blenderartists.org">www.blenderartists.org</a><br>
-	IRC 				<a href="irc://irc.freenode.net/#blender">#blender on irc.freenode.net</a><br>
+	IRC 				<a href="irc://irc.freenode.net/#blenderchat">#blenderchat on irc.freenode.net</a><br>
 </p>
 <p class="body">Developers:</p>
 <p class="body">	Development				<a href="http://www.blender.org/development/">www.blender.org/development/</a><br>
diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h
index 18f6ad21333b144ba7ae23d68cf43b9cc35eb16f..162b0de1d5ade070b09e4eb72d9be6aab946e03b 100644
--- a/source/blender/blenkernel/BKE_blender.h
+++ b/source/blender/blenkernel/BKE_blender.h
@@ -43,17 +43,17 @@ extern "C" {
 /* these lines are grep'd, watch out for our not-so-awesome regex
  * and keep comment above the defines.
  * Use STRINGIFY() rather than defining with quotes */
-#define BLENDER_VERSION			258
-#define BLENDER_SUBVERSION		1
+#define BLENDER_VERSION			259
+#define BLENDER_SUBVERSION		0
 
 #define BLENDER_MINVERSION		250
 #define BLENDER_MINSUBVERSION	0
 
 /* used by packaging tools */
 		/* can be left blank, otherwise a,b,c... etc with no quotes */
-#define BLENDER_VERSION_CHAR	a
+#define BLENDER_VERSION_CHAR
 		/* alpha/beta/rc/release, docs use this */
-#define BLENDER_VERSION_CYCLE	beta
+#define BLENDER_VERSION_CYCLE	alpha
 
 struct ListBase;
 struct MemFile;
diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c
index 13a84e0452fba2620f94ec1c0ac2c8a979391c38..97abc740c43fe25b25d29149647b2182bd6458b4 100644
--- a/source/blender/blenkernel/intern/depsgraph.c
+++ b/source/blender/blenkernel/intern/depsgraph.c
@@ -301,6 +301,7 @@ static void dag_add_driver_relation(AnimData *adt, DagForest *dag, DagNode *node
 	for (fcu= adt->drivers.first; fcu; fcu= fcu->next) {
 		ChannelDriver *driver= fcu->driver;
 		DriverVar *dvar;
+		int isdata_fcu = isdata || (fcu->rna_path && strstr(fcu->rna_path, "modifiers["));
 		
 		/* loop over variables to get the target relationships */
 		for (dvar= driver->variables.first; dvar; dvar= dvar->next) {
@@ -320,14 +321,14 @@ static void dag_add_driver_relation(AnimData *adt, DagForest *dag, DagNode *node
 							( ((dtar->rna_path) && strstr(dtar->rna_path, "pose.bones[")) || 
 							  ((dtar->flag & DTAR_FLAG_STRUCT_REF) && (dtar->pchan_name[0])) )) 
 						{
-							dag_add_relation(dag, node1, node, isdata?DAG_RL_DATA_DATA:DAG_RL_DATA_OB, "Driver");
+							dag_add_relation(dag, node1, node, isdata_fcu?DAG_RL_DATA_DATA:DAG_RL_DATA_OB, "Driver");
 						}
 						/* check if ob data */
 						else if (dtar->rna_path && strstr(dtar->rna_path, "data."))
-							dag_add_relation(dag, node1, node, isdata?DAG_RL_DATA_DATA:DAG_RL_DATA_OB, "Driver");
+							dag_add_relation(dag, node1, node, isdata_fcu?DAG_RL_DATA_DATA:DAG_RL_DATA_OB, "Driver");
 						/* normal */
 						else
-							dag_add_relation(dag, node1, node, isdata?DAG_RL_OB_DATA:DAG_RL_OB_OB, "Driver");
+							dag_add_relation(dag, node1, node, isdata_fcu?DAG_RL_OB_DATA:DAG_RL_OB_OB, "Driver");
 					}
 				}
 			}
diff --git a/source/blender/blenkernel/intern/displist.c b/source/blender/blenkernel/intern/displist.c
index 8f57490d0575726faa684fb93d9cf62c70eec79f..c2ed64686434630805db7458968d047c192fa7eb 100644
--- a/source/blender/blenkernel/intern/displist.c
+++ b/source/blender/blenkernel/intern/displist.c
@@ -1369,6 +1369,11 @@ void makeDispListCurveTypes(Scene *scene, Object *ob, int forOrco)
 	Curve *cu= ob->data;
 	ListBase *dispbase;
 
+	/* The same check for duplis as in do_makeDispListCurveTypes.
+	   Happens when curve used for constraint/bevel was converted to mesh.
+	   check there is still needed for render displist and orco displists. */
+	if(!ELEM3(ob->type, OB_SURF, OB_CURVE, OB_FONT)) return;
+
 	freedisplist(&(ob->disp));
 	dispbase= &(ob->disp);
 	freedisplist(dispbase);
diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c
index d6a9d950015094cc768f3f6e79189f9e4d41e306..13e13fbc3ffa651d9f43df005f8d149efd9a7cc7 100644
--- a/source/blender/blenkernel/intern/fcurve.c
+++ b/source/blender/blenkernel/intern/fcurve.c
@@ -1002,7 +1002,7 @@ static float dtar_get_prop_val (ChannelDriver *driver, DriverTarget *dtar)
 	
 	/* get property to read from, and get value as appropriate */
 	if (RNA_path_resolve_full(&id_ptr, dtar->rna_path, &ptr, &prop, &index)) {
-		if(RNA_property_array_check(&ptr, prop)) {
+		if(RNA_property_array_check(prop)) {
 			/* array */
 			if (index < RNA_property_array_length(&ptr, prop)) {	
 				switch (RNA_property_type(prop)) {
diff --git a/source/blender/blenkernel/intern/nla.c b/source/blender/blenkernel/intern/nla.c
index c02b5dda9ce0b8f5fc8bbbf5e2aa038a707b7305..bd238e72d0c6f66e9d5592cf2b5c60866156fdb3 100644
--- a/source/blender/blenkernel/intern/nla.c
+++ b/source/blender/blenkernel/intern/nla.c
@@ -1582,7 +1582,7 @@ void BKE_nla_tweakmode_exit (AnimData *adt)
 
 /* Baking Tools ------------------------------------------- */
 
-static void BKE_nla_bake (Scene *scene, ID *UNUSED(id), AnimData *adt, int UNUSED(flag))
+static void UNUSED_FUNCTION(BKE_nla_bake) (Scene *scene, ID *UNUSED(id), AnimData *adt, int UNUSED(flag))
 {
 
 	/* verify that data is valid 
diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c
index f6b405276371d10e3c274f655f501a125c393914..927d406eb610c344e4db07d2ac08f02e1bb577db 100644
--- a/source/blender/blenkernel/intern/node.c
+++ b/source/blender/blenkernel/intern/node.c
@@ -3399,7 +3399,7 @@ static int node_animation_properties(bNodeTree *ntree, bNode *node)
 		int driven, len=1, index;
 		prop = (PropertyRNA *)link;
 		
-		if (RNA_property_array_check(&ptr, prop))
+		if (RNA_property_array_check(prop))
 			len = RNA_property_array_length(&ptr, prop);
 		
 		for (index=0; index<len; index++) {
@@ -3417,7 +3417,7 @@ static int node_animation_properties(bNodeTree *ntree, bNode *node)
 		RNA_pointer_create((ID *)ntree, &RNA_NodeSocket, sock, &ptr);
 		prop = RNA_struct_find_property(&ptr, "default_value");
 		
-		if (RNA_property_array_check(&ptr, prop))
+		if (RNA_property_array_check(prop))
 			len = RNA_property_array_length(&ptr, prop);
 		
 		for (index=0; index<len; index++) {
diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c
index 5995b895061c695197c31f707a0ac171625bb48a..9aa1c6e29ebe1fd97dc75fa571d43fdc262db78c 100644
--- a/source/blender/blenkernel/intern/particle.c
+++ b/source/blender/blenkernel/intern/particle.c
@@ -4389,6 +4389,7 @@ void psys_get_dupli_path_transform(ParticleSimulationData *sim, ParticleData *pa
 	copy_m3_m4(nmat, ob->imat);
 	transpose_m3(nmat);
 	mul_m3_v3(nmat, nor);
+	normalize_v3(nor);
 
 	/* make sure that we get a proper side vector */
 	if(fabs(dot_v3v3(nor,vec))>0.999999) {
diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c
index d6a152a52809cb308ea9a59cf6836bbefd23cc73..3aebbea789f34673a91e2b8f6aa624aafba434a6 100644
--- a/source/blender/blenkernel/intern/sequencer.c
+++ b/source/blender/blenkernel/intern/sequencer.c
@@ -699,6 +699,7 @@ void reload_sequence_new_file(Scene *scene, Sequence * seq, int lock_range)
 			seq->len = 0;
 		}
 		seq->strip->len = seq->len;
+		break;
 	case SEQ_SOUND:
 #ifdef WITH_AUDASPACE
 		if(!seq->sound)
diff --git a/source/blender/blenkernel/intern/texture.c b/source/blender/blenkernel/intern/texture.c
index 036ba34d0c8e361f1941b58f24fa83d6ffffb8b9..493baebd1973273a9834c0e2af3524f60892863f 100644
--- a/source/blender/blenkernel/intern/texture.c
+++ b/source/blender/blenkernel/intern/texture.c
@@ -1005,7 +1005,7 @@ void autotexname(Tex *tex)
 
 Tex *give_current_object_texture(Object *ob)
 {
-	Material *ma;
+	Material *ma, *node_ma;
 	Tex *tex= NULL;
 	
 	if(ob==NULL) return NULL;
@@ -1015,6 +1015,10 @@ Tex *give_current_object_texture(Object *ob)
 		tex= give_current_lamp_texture(ob->data);
 	} else {
 		ma= give_current_material(ob, ob->actcol);
+
+		if((node_ma=give_node_material(ma)))
+			ma= node_ma;
+
 		tex= give_current_material_texture(ma);
 	}
 	
@@ -1080,17 +1084,6 @@ Tex *give_current_material_texture(Material *ma)
 			tex= (Tex *)node->id;
 			ma= NULL;
 		}
-		else {
-			node= nodeGetActiveID(ma->nodetree, ID_MA);
-			if(node) {
-				ma= (Material*)node->id;
-				if(ma) {
-					mtex= ma->mtex[(int)(ma->texact)];
-					if(mtex) tex= mtex->tex;
-				}
-			}
-		}
-		return tex;
 	}
 
 	if(ma) {
@@ -1165,11 +1158,6 @@ void set_current_material_texture(Material *ma, Tex *newtex)
 			id_us_plus(&newtex->id);
 			ma= NULL;
 		}
-		else {
-			node= nodeGetActiveID(ma->nodetree, ID_MA);
-			if(node)
-				ma= (Material*)node->id;
-		}
 	}
 	if(ma) {
 		int act= (int)ma->texact;
@@ -1198,16 +1186,8 @@ int has_current_material_texture(Material *ma)
 	if(ma && ma->use_nodes && ma->nodetree) {
 		node= nodeGetActiveID(ma->nodetree, ID_TE);
 
-		if(node) {
+		if(node)
 			return 1;
-		}
-		else {
-			node= nodeGetActiveID(ma->nodetree, ID_MA);
-			if(node)
-				ma= (Material*)node->id;
-			else
-				ma= NULL;
-		}
 	}
 
 	return (ma != NULL);
diff --git a/source/blender/blenkernel/intern/unit.c b/source/blender/blenkernel/intern/unit.c
index b89e576a56286b9aba3a78c7e0268633da13537a..a9792bc44fac1d041d0d44222904670ffea1a6ab 100644
--- a/source/blender/blenkernel/intern/unit.c
+++ b/source/blender/blenkernel/intern/unit.c
@@ -136,7 +136,7 @@ static struct bUnitDef buImperialLenDef[] = {
 	{"yard", "yards",		"yd", NULL, "Yards",	UN_SC_YD, 0.0,	B_UNIT_DEF_NONE},
 	{"foot", "feet",		"'", "ft", "Feet",		UN_SC_FT, 0.0,	B_UNIT_DEF_NONE}, /* base unit */
 	{"inch", "inches",		"\"", "in", "Inches",	UN_SC_IN, 0.0,	B_UNIT_DEF_NONE},
-	{"thou", "thous",		"mil", NULL, "Thous",	UN_SC_MIL, 0.0,	B_UNIT_DEF_NONE},
+	{"thou", "thou",		"thou", "mil", "Thou",	UN_SC_MIL, 0.0,	B_UNIT_DEF_NONE}, /* plural for thou has no 's' */
 	{NULL, NULL, NULL, NULL, NULL, 0.0, 0.0}
 };
 static struct bUnitCollection buImperialLenCollecton = {buImperialLenDef, 4, 0, sizeof(buImperialLenDef)/sizeof(bUnitDef)};
diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c
index 4db53999f10eb6bea2aec247c2add55c601cb0d8..fe7a7a181777830aa7ee00ec6f8751b62f4816f3 100644
--- a/source/blender/blenkernel/intern/writeffmpeg.c
+++ b/source/blender/blenkernel/intern/writeffmpeg.c
@@ -658,10 +658,12 @@ static int start_ffmpeg_impl(struct RenderData *rd, int rectx, int recty, Report
 	switch(ffmpeg_type) {
 	case FFMPEG_AVI:
 	case FFMPEG_MOV:
-	case FFMPEG_OGG:
 	case FFMPEG_MKV:
 		fmt->video_codec = ffmpeg_codec;
 		break;
+	case FFMPEG_OGG:
+		fmt->video_codec = CODEC_ID_THEORA;
+		break;
 	case FFMPEG_DV:
 		fmt->video_codec = CODEC_ID_DVVIDEO;
 		break;
@@ -1310,6 +1312,9 @@ void ffmpeg_verify_image_type(RenderData *rd)
 			/* Don't set preset, disturbs render resolution.
 			 * ffmpeg_set_preset(rd, FFMPEG_PRESET_DVD); */
 		}
+		if(rd->ffcodecdata.type == FFMPEG_OGG) {
+			rd->ffcodecdata.type = FFMPEG_MPEG2;
+		}
 
 		audio= 1;
 	}
diff --git a/source/blender/blenlib/BLI_ghash.h b/source/blender/blenlib/BLI_ghash.h
index dcc71fa12588fecbd81400e35c9935abe78111da..e4afc6ad79b7a753bcf19391787fc40461e90da0 100644
--- a/source/blender/blenlib/BLI_ghash.h
+++ b/source/blender/blenlib/BLI_ghash.h
@@ -53,14 +53,14 @@ typedef void			(*GHashValFreeFP)	(void *val);
 
 typedef struct Entry {
 	struct Entry *next;
-	
+
 	void *key, *val;
 } Entry;
 
 typedef struct GHash {
 	GHashHashFP	hashfp;
 	GHashCmpFP	cmpfp;
-	
+
 	Entry **buckets;
 	struct BLI_mempool *entrypool;
 	int nbuckets, nentries, cursize;
@@ -72,15 +72,15 @@ typedef struct GHashIterator {
 	struct Entry *curEntry;
 } GHashIterator;
 
-GHash*	BLI_ghash_new		(GHashHashFP hashfp, GHashCmpFP cmpfp, const char *info);
-void	BLI_ghash_free		(GHash *gh, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp);
-
-//BM_INLINE void	BLI_ghash_insert	(GHash *gh, void *key, void *val);
-//BM_INLINE int		BLI_ghash_remove	(GHash *gh, void *key, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp);
-//BM_INLINE void*	BLI_ghash_lookup	(GHash *gh, void *key);
-//BM_INLINE int		BLI_ghash_haskey	(GHash *gh, void *key);
+/* *** */
 
-int		BLI_ghash_size		(GHash *gh);
+GHash* BLI_ghash_new   (GHashHashFP hashfp, GHashCmpFP cmpfp, const char *info);
+void   BLI_ghash_free  (GHash *gh, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp);
+void   BLI_ghash_insert(GHash *gh, void *key, void *val);
+void * BLI_ghash_lookup(GHash *gh, const void *key);
+int    BLI_ghash_remove(GHash *gh, void *key, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp);
+int    BLI_ghash_haskey(GHash *gh, void *key);
+int	   BLI_ghash_size  (GHash *gh);
 
 /* *** */
 
@@ -149,127 +149,10 @@ unsigned int	BLI_ghashutil_strhash	(const void *key);
 int				BLI_ghashutil_strcmp	(const void *a, const void *b);
 
 unsigned int	BLI_ghashutil_inthash	(const void *ptr);
-int				BLI_ghashutil_intcmp(const void *a, const void *b);
-
-/*begin of macro-inlined functions*/
-extern unsigned int hashsizes[];
-
-#if 0
-#define BLI_ghash_insert(gh, _k, _v){\
-	unsigned int _hash= (gh)->hashfp(_k)%gh->nbuckets;\
-	Entry *_e= BLI_mempool_alloc((gh)->entrypool);\
-	_e->key= _k;\
-	_e->val= _v;\
-	_e->next= (gh)->buckets[_hash];\
-	(gh)->buckets[_hash]= _e;\
-	if (++(gh)->nentries>(gh)->nbuckets*3) {\
-		Entry *_e, **_old= (gh)->buckets;\
-		int _i, _nold= (gh)->nbuckets;\
-		(gh)->nbuckets= hashsizes[++(gh)->cursize];\
-		(gh)->buckets= malloc((gh)->nbuckets*sizeof(*(gh)->buckets));\
-		memset((gh)->buckets, 0, (gh)->nbuckets*sizeof(*(gh)->buckets));\
-		for (_i=0; _i<_nold; _i++) {\
-			for (_e= _old[_i]; _e;) {\
-				Entry *_n= _e->next;\
-				_hash= (gh)->hashfp(_e->key)%(gh)->nbuckets;\
-				_e->next= (gh)->buckets[_hash];\
-				(gh)->buckets[_hash]= _e;\
-				_e= _n;\
-			}\
-		}\
-		free(_old); } }
-#endif
-
-/*---------inlined functions---------*/
-BM_INLINE void BLI_ghash_insert(GHash *gh, void *key, void *val) {
-	unsigned int hash= gh->hashfp(key)%gh->nbuckets;
-	Entry *e= (Entry*) BLI_mempool_alloc(gh->entrypool);
-
-	e->key= key;
-	e->val= val;
-	e->next= gh->buckets[hash];
-	gh->buckets[hash]= e;
-	
-	if (++gh->nentries>(float)gh->nbuckets/2) {
-		Entry **old= gh->buckets;
-		int i, nold= gh->nbuckets;
-		
-		gh->nbuckets= hashsizes[++gh->cursize];
-		gh->buckets= (Entry**)MEM_mallocN(gh->nbuckets*sizeof(*gh->buckets), "buckets");
-		memset(gh->buckets, 0, gh->nbuckets*sizeof(*gh->buckets));
-		
-		for (i=0; i<nold; i++) {
-			for (e= old[i]; e;) {
-				Entry *n= e->next;
-				
-				hash= gh->hashfp(e->key)%gh->nbuckets;
-				e->next= gh->buckets[hash];
-				gh->buckets[hash]= e;
-				
-				e= n;
-			}
-		}
-		
-		MEM_freeN(old);
-	}
-}
-
-BM_INLINE void* BLI_ghash_lookup(GHash *gh, const void *key) 
-{
-	if(gh) {
-		unsigned int hash= gh->hashfp(key)%gh->nbuckets;
-		Entry *e;
-		
-		for (e= gh->buckets[hash]; e; e= e->next)
-			if (gh->cmpfp(key, e->key)==0)
-				return e->val;
-	}	
-	return NULL;
-}
-
-BM_INLINE int BLI_ghash_remove (GHash *gh, void *key, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp)
-{
-	unsigned int hash= gh->hashfp(key)%gh->nbuckets;
-	Entry *e;
-	Entry *p = NULL;
-
-	for (e= gh->buckets[hash]; e; e= e->next) {
-		if (gh->cmpfp(key, e->key)==0) {
-			Entry *n= e->next;
-
-			if (keyfreefp) keyfreefp(e->key);
-			if (valfreefp) valfreefp(e->val);
-			BLI_mempool_free(gh->entrypool, e);
-
-
-			e= n;
-			if (p)
-				p->next = n;
-			else
-				gh->buckets[hash] = n;
-
-			--gh->nentries;
-			return 1;
-		}
-		p = e;
-	}
- 
-	return 0;
-}
-
-BM_INLINE int BLI_ghash_haskey(GHash *gh, void *key) {
-	unsigned int hash= gh->hashfp(key)%gh->nbuckets;
-	Entry *e;
-	
-	for (e= gh->buckets[hash]; e; e= e->next)
-		if (gh->cmpfp(key, e->key)==0)
-			return 1;
-	
-	return 0;
-}
+int				BLI_ghashutil_intcmp	(const void *a, const void *b);
 
 #ifdef __cplusplus
 }
 #endif
 
-#endif
+#endif /* BLI_GHASH_H */
diff --git a/source/blender/blenlib/BLI_utildefines.h b/source/blender/blenlib/BLI_utildefines.h
index 9af55601ff7fcbd4632c73ec2bbb80c607df59a5..28ebb254f2af9e7f662cec5ff9f843fff5dc0a48 100644
--- a/source/blender/blenlib/BLI_utildefines.h
+++ b/source/blender/blenlib/BLI_utildefines.h
@@ -183,6 +183,12 @@
 #  define UNUSED(x) UNUSED_ ## x
 #endif
 
+#ifdef __GNUC__
+#  define UNUSED_FUNCTION(x) __attribute__((__unused__)) UNUSED_ ## x
+#else
+#  define UNUSED_FUNCTION(x) UNUSED_ ## x
+#endif
+
 #ifdef __GNUC__
 #  define WARN_UNUSED  __attribute__((warn_unused_result))
 #else
diff --git a/source/blender/blenlib/intern/BLI_ghash.c b/source/blender/blenlib/intern/BLI_ghash.c
index ff08ef4dba94fb7fd3a2c8551cf630fc86a8c04a..bfee350037ae898e06c2fc639ed6a09543f877ca 100644
--- a/source/blender/blenlib/intern/BLI_ghash.c
+++ b/source/blender/blenlib/intern/BLI_ghash.c
@@ -49,8 +49,6 @@ unsigned int hashsizes[]= {
 
 /***/
 
-/***/
-
 GHash *BLI_ghash_new(GHashHashFP hashfp, GHashCmpFP cmpfp, const char *info) {
 	GHash *gh= MEM_mallocN(sizeof(*gh), info);
 	gh->hashfp= hashfp;
@@ -67,14 +65,96 @@ GHash *BLI_ghash_new(GHashHashFP hashfp, GHashCmpFP cmpfp, const char *info) {
 	return gh;
 }
 
-#ifdef BLI_ghash_insert
-#undef BLI_ghash_insert
-#endif
-
 int BLI_ghash_size(GHash *gh) {
 	return gh->nentries;
 }
 
+void BLI_ghash_insert(GHash *gh, void *key, void *val) {
+	unsigned int hash= gh->hashfp(key)%gh->nbuckets;
+	Entry *e= (Entry*) BLI_mempool_alloc(gh->entrypool);
+
+	e->key= key;
+	e->val= val;
+	e->next= gh->buckets[hash];
+	gh->buckets[hash]= e;
+
+	if (++gh->nentries>(float)gh->nbuckets/2) {
+		Entry **old= gh->buckets;
+		int i, nold= gh->nbuckets;
+
+		gh->nbuckets= hashsizes[++gh->cursize];
+		gh->buckets= (Entry**)MEM_mallocN(gh->nbuckets*sizeof(*gh->buckets), "buckets");
+		memset(gh->buckets, 0, gh->nbuckets*sizeof(*gh->buckets));
+
+		for (i=0; i<nold; i++) {
+			for (e= old[i]; e;) {
+				Entry *n= e->next;
+
+				hash= gh->hashfp(e->key)%gh->nbuckets;
+				e->next= gh->buckets[hash];
+				gh->buckets[hash]= e;
+
+				e= n;
+			}
+		}
+
+		MEM_freeN(old);
+	}
+}
+
+void *BLI_ghash_lookup(GHash *gh, const void *key) {
+	if(gh) {
+		unsigned int hash= gh->hashfp(key)%gh->nbuckets;
+		Entry *e;
+
+		for (e= gh->buckets[hash]; e; e= e->next)
+			if (gh->cmpfp(key, e->key)==0)
+				return e->val;
+	}
+	return NULL;
+}
+
+int BLI_ghash_remove (GHash *gh, void *key, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp)
+{
+	unsigned int hash= gh->hashfp(key)%gh->nbuckets;
+	Entry *e;
+	Entry *p = NULL;
+
+	for (e= gh->buckets[hash]; e; e= e->next) {
+		if (gh->cmpfp(key, e->key)==0) {
+			Entry *n= e->next;
+
+			if (keyfreefp) keyfreefp(e->key);
+			if (valfreefp) valfreefp(e->val);
+			BLI_mempool_free(gh->entrypool, e);
+
+			/* correct but 'e' isnt used before return */
+			/* e= n; */ /*UNUSED*/
+			if (p)
+				p->next = n;
+			else
+				gh->buckets[hash] = n;
+
+			--gh->nentries;
+			return 1;
+		}
+		p = e;
+	}
+
+	return 0;
+}
+
+int BLI_ghash_haskey(GHash *gh, void *key) {
+	unsigned int hash= gh->hashfp(key)%gh->nbuckets;
+	Entry *e;
+
+	for (e= gh->buckets[hash]; e; e= e->next)
+		if (gh->cmpfp(key, e->key)==0)
+			return 1;
+
+	return 0;
+}
+
 void BLI_ghash_free(GHash *gh, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp) {
 	int i;
 	
diff --git a/source/blender/editors/armature/poseSlide.c b/source/blender/editors/armature/poseSlide.c
index 3d6888d87dcd6bbb32f5ef76f2a176367e1c17ae..69b7fff36074f9534697f17b39b80f034a2fff51 100644
--- a/source/blender/editors/armature/poseSlide.c
+++ b/source/blender/editors/armature/poseSlide.c
@@ -1000,7 +1000,7 @@ static short pose_propagate_get_refVal (Object *ob, FCurve *fcu, float *value)
 	
 	/* resolve the property... */
 	if (RNA_path_resolve(&id_ptr, fcu->rna_path, &ptr, &prop)) {
-		if (RNA_property_array_check(&ptr, prop)) {
+		if (RNA_property_array_check(prop)) {
 			/* array */
 			if (fcu->array_index < RNA_property_array_length(&ptr, prop)) {
 				found= TRUE;
diff --git a/source/blender/editors/datafiles/splash.png.c b/source/blender/editors/datafiles/splash.png.c
index aa358275335e2954c3974021ee9483e306a1ffa0..a3343496be783f6b4672293c780a725cb1f29467 100644
--- a/source/blender/editors/datafiles/splash.png.c
+++ b/source/blender/editors/datafiles/splash.png.c
@@ -1,6314 +1,6405 @@
 /* DataToC output of file <splash_png> */
 
-int datatoc_splash_png_size= 201866;
+int datatoc_splash_png_size= 204738;
 char datatoc_splash_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10,  0,  0,
-  0, 13, 73, 72, 68, 82,  0,  0,  1,245,  0,  0,  1, 26,  8,  2,  0,  0,  0,135, 56, 89, 17,  0,  0, 10, 79,105, 67, 67, 80, 80,
-104,111,116,111,115,104,111,112, 32, 73, 67, 67, 32,112,114,111,102,105,108,101,  0,  0,120,218,157, 83,103, 84, 83,233, 22, 61,
-247,222,244, 66, 75,136,128,148, 75,111, 82, 21,  8, 32, 82, 66,139,128, 20,145, 38, 42, 33,  9, 16, 74,136, 33,161,217, 21, 81,
-193, 17, 69, 69,  4, 27,200,160,136,  3,142,142,128,140, 21, 81, 44, 12,138, 10,216,  7,228, 33,162,142,131,163,136,138,202,251,
-225,123,163,107,214,188,247,230,205,254,181,215, 62,231,172,243,157,179,207,  7,192,  8, 12,150, 72, 51, 81, 53,128, 12,169, 66,
- 30, 17,224,131,199,196,198,225,228, 46, 64,129, 10, 36,112,  0, 16,  8,179,100, 33,115,253, 35,  1,  0,248,126, 60, 60, 43, 34,
-192,  7,190,  0,  1,120,211, 11,  8,  0,192, 77,155,192, 48, 28,135,255, 15,234, 66,153, 92,  1,128,132,  1,192,116,145, 56, 75,
-  8,128, 20,  0, 64,122,142, 66,166,  0, 64, 70,  1,128,157,152, 38, 83,  0,160,  4,  0, 96,203, 99, 98,227,  0, 80, 45,  0, 96,
- 39,127,230,211,  0,128,157,248,153,123,  1,  0, 91,148, 33, 21,  1,160,145,  0, 32, 19,101,136, 68,  0,104, 59,  0,172,207, 86,
-138, 69,  0, 88, 48,  0, 20,102, 75,196, 57,  0,216, 45,  0, 48, 73, 87,102, 72,  0,176,183,  0,192,206, 16, 11,178,  0,  8, 12,
-  0, 48, 81,136,133, 41,  0,  4,123,  0, 96,200, 35, 35,120,  0,132,153,  0, 20, 70,242, 87, 60,241, 43,174, 16,231, 42,  0,  0,
-120,153,178, 60,185, 36, 57, 69,129, 91,  8, 45,113,  7, 87, 87, 46, 30, 40,206, 73, 23, 43, 20, 54, 97,  2, 97,154, 64, 46,194,
-121,153, 25, 50,129, 52, 15,224,243,204,  0,  0,160,145, 21, 17,224,131,243,253,120,206, 14,174,206,206, 54,142,182, 14, 95, 45,
-234,191,  6,255, 34, 98, 98,227,254,229,207,171,112, 64,  0,  0,225,116,126,209,254, 44, 47,179, 26,128, 59,  6,128,109,254,162,
- 37,238,  4,104, 94, 11,160,117,247,139,102,178, 15, 64,181,  0,160,233,218, 87,243,112,248,126, 60, 60, 69,161,144,185,217,217,
-229,228,228,216, 74,196, 66, 91, 97,202, 87,125,254,103,194, 95,192, 87,253,108,249,126, 60,252,247,245,224,190,226, 36,129, 50,
- 93,129, 71,  4,248,224,194,204,244, 76,165, 28,207,146,  9,132, 98,220,230,143, 71,252,183, 11,255,252, 29,211, 34,196, 73, 98,
-185, 88, 42, 20,227, 81, 18,113,142, 68,154,140,243, 50,165, 34,137, 66,146, 41,197, 37,210,255,100,226,223, 44,251,  3, 62,223,
- 53,  0,176,106, 62,  1,123,145, 45,168, 93, 99,  3,246, 75, 39, 16, 88,116,192,226,247,  0,  0,242,187,111,193,212, 40,  8,  3,
-128,104,131,225,207,119,255,239, 63,253, 71,160, 37,  0,128,102, 73,146,113,  0,  0, 94, 68, 36, 46, 84,202,179, 63,199,  8,  0,
-  0, 68,160,129, 42,176, 65, 27,244,193, 24, 44,192,  6, 28,193,  5,220,193, 11,252, 96, 54,132, 66, 36,196,194, 66, 16, 66, 10,
-100,128, 28,114, 96, 41,172,130, 66, 40,134,205,176, 29, 42, 96, 47,212, 64, 29, 52,192, 81,104,134,147,112, 14, 46,194, 85,184,
- 14, 61,112, 15,250, 97,  8,158,193, 40,188,129,  9,  4, 65,200,  8, 19, 97, 33,218,136,  1, 98,138, 88, 35,142,  8, 23,153,133,
-248, 33,193, 72,  4, 18,139, 36, 32,201,136, 20, 81, 34, 75,145, 53, 72, 49, 82,138, 84, 32, 85, 72, 29,242, 61,114,  2, 57,135,
- 92, 70,186,145, 59,200,  0, 50,130,252,134,188, 71, 49,148,129,178, 81, 61,212, 12,181, 67,185,168, 55, 26,132, 70,162, 11,208,
-100,116, 49,154,143, 22,160,155,208,114,180, 26, 61,140, 54,161,231,208,171,104, 15,218,143, 62, 67,199, 48,192,232, 24,  7, 51,
-196,108, 48, 46,198,195, 66,177, 56, 44,  9,147, 99,203,177, 34,172, 12,171,198, 26,176, 86,172,  3,187,137,245, 99,207,177,119,
-  4, 18,129, 69,192,  9, 54,  4,119, 66, 32, 97, 30, 65, 72, 88, 76, 88, 78,216, 72,168, 32, 28, 36, 52, 17,218,  9, 55,  9,  3,
-132, 81,194, 39, 34,147,168, 75,180, 38,186, 17,249,196, 24, 98, 50, 49,135, 88, 72, 44, 35,214, 18,143, 19, 47, 16,123,136, 67,
-196, 55, 36, 18,137, 67, 50, 39,185,144,  2, 73,177,164, 84,210, 18,210, 70,210,110, 82, 35,233, 44,169,155, 52, 72, 26, 35,147,
-201,218,100,107,178,  7, 57,148, 44, 32, 43,200,133,228,157,228,195,228, 51,228, 27,228, 33,242, 91, 10,157, 98, 64,113,164,248,
- 83,226, 40, 82,202,106, 74, 25,229, 16,229, 52,229,  6,101,152, 50, 65, 85,163,154, 82,221,168,161, 84, 17, 53,143, 90, 66,173,
-161,182, 82,175, 81,135,168, 19, 52,117,154, 57,205,131, 22, 73, 75,165,173,162,149,211, 26,104, 23,104,247,105,175,232,116,186,
- 17,221,149, 30, 78,151,208, 87,210,203,233, 71,232,151,232,  3,244,119, 12, 13,134, 21,131,199,136,103, 40, 25,155, 24,  7, 24,
-103, 25,119, 24,175,152, 76,166, 25,211,139, 25,199, 84, 48, 55, 49,235,152,231,153, 15,153,111, 85, 88, 42,182, 42,124, 21,145,
-202, 10,149, 74,149, 38,149, 27, 42, 47, 84,169,170,166,170,222,170, 11, 85,243, 85,203, 84,143,169, 94, 83,125,174, 70, 85, 51,
- 83,227,169,  9,212,150,171, 85,170,157, 80,235, 83, 27, 83,103,169, 59,168,135,170,103,168,111, 84, 63,164,126, 89,253,137,  6,
- 89,195, 76,195, 79, 67,164, 81,160,177, 95,227,188,198, 32, 11, 99, 25,179,120, 44, 33,107, 13,171,134,117,129, 53,196, 38,177,
-205,217,124,118, 42,187,152,253, 29,187,139, 61,170,169,161, 57, 67, 51, 74, 51, 87,179, 82,243,148,102, 63,  7,227,152,113,248,
-156,116, 78,  9,231, 40,167,151,243,126,138,222, 20,239, 41,226, 41, 27,166, 52, 76,185, 49,101, 92,107,170,150,151,150, 88,171,
- 72,171, 81,171, 71,235,189, 54,174,237,167,157,166,189, 69,187, 89,251,129, 14, 65,199, 74, 39, 92, 39, 71,103,143,206,  5,157,
-231, 83,217, 83,221,167, 10,167, 22, 77, 61, 58,245,174, 46,170,107,165, 27,161,187, 68,119,191,110,167,238,152,158,190, 94,128,
-158, 76,111,167,222,121,189,231,250, 28,125, 47,253, 84,253,109,250,167,245, 71, 12, 88,  6,179, 12, 36,  6,219, 12,206, 24, 60,
-197, 53,113,111, 60, 29, 47,199,219,241, 81, 67, 93,195, 64, 67,165, 97,149, 97,151,225,132,145,185,209, 60,163,213, 70,141, 70,
- 15,140,105,198, 92,227, 36,227,109,198,109,198,163, 38,  6, 38, 33, 38, 75, 77,234, 77,238,154, 82, 77,185,166, 41,166, 59, 76,
- 59, 76,199,205,204,205,162,205,214,153, 53,155, 61, 49,215, 50,231,155,231,155,215,155,223,183, 96, 90,120, 90, 44,182,168,182,
-184,101, 73,178,228, 90,166, 89,238,182,188,110,133, 90, 57, 89,165, 88, 85, 90, 93,179, 70,173,157,173, 37,214,187,173,187,167,
- 17,167,185, 78,147, 78,171,158,214,103,195,176,241,182,201,182,169,183, 25,176,229,216,  6,219,174,182,109,182,125, 97,103, 98,
- 23,103,183,197,174,195,238,147,189,147,125,186,125,141,253, 61,  7, 13,135,217, 14,171, 29, 90, 29,126,115,180,114, 20, 58, 86,
- 58,222,154,206,156,238, 63,125,197,244,150,233, 47,103, 88,207, 16,207,216, 51,227,182, 19,203, 41,196,105,157, 83,155,211, 71,
-103, 23,103,185,115,131,243,136,139,137, 75,130,203, 46,151, 62, 46,155, 27,198,221,200,189,228, 74,116,245,113, 93,225,122,210,
-245,157,155,179,155,194,237,168,219,175,238, 54,238,105,238,135,220,159,204, 52,159, 41,158, 89, 51,115,208,195,200, 67,224, 81,
-229,209, 63, 11,159,149, 48,107,223,172,126, 79, 67, 79,129,103,181,231, 35, 47, 99, 47,145, 87,173,215,176,183,165,119,170,247,
- 97,239, 23, 62,246, 62,114,159,227, 62,227, 60, 55,222, 50,222, 89, 95,204, 55,192,183,200,183,203, 79,195,111,158, 95,133,223,
- 67,127, 35,255,100,255,122,255,209,  0,167,128, 37,  1,103,  3,137,129, 65,129, 91,  2,251,248,122,124, 33,191,142, 63, 58,219,
-101,246,178,217,237, 65,140,160,185, 65, 21, 65,143,130,173,130,229,193,173, 33,104,200,236,144,173, 33,247,231,152,206,145,206,
-105, 14,133, 80,126,232,214,208,  7, 97,230, 97,139,195,126, 12, 39,133,135,133, 87,134, 63,142,112,136, 88, 26,209, 49,151, 53,
-119,209,220, 67,115,223, 68,250, 68,150, 68,222,155,103, 49, 79, 57,175, 45, 74, 53, 42, 62,170, 46,106, 60,218, 55,186, 52,186,
- 63,198, 46,102, 89,204,213, 88,157, 88, 73,108, 75, 28, 57, 46, 42,174, 54,110,108,190,223,252,237,243,135,226,157,226, 11,227,
-123, 23,152, 47,200, 93,112,121,161,206,194,244,133,167, 22,169, 46, 18, 44, 58,150, 64, 76,136, 78, 56,148,240, 65, 16, 42,168,
- 22,140, 37,242, 19,119, 37,142, 10,121,194, 29,194,103, 34, 47,209, 54,209,136,216, 67, 92, 42, 30, 78,242, 72, 42, 77,122,146,
-236,145,188, 53,121, 36,197, 51,165, 44,229,185,132, 39,169,144,188, 76, 13, 76,221,155, 58,158, 22,154,118, 32,109, 50, 61, 58,
-189, 49,131,146,145,144,113, 66,170, 33, 77,147,182,103,234,103,230,102,118,203,172,101,133,178,254,197,110,139,183, 47, 30,149,
-  7,201,107,179,144,172,  5, 89, 45, 10,182, 66,166,232, 84, 90, 40,215, 42,  7,178,103,101, 87,102,191,205,137,202, 57,150,171,
-158, 43,205,237,204,179,202,219,144, 55,156,239,159,255,237, 18,194, 18,225,146,182,165,134, 75, 87, 45, 29, 88,230,189,172,106,
- 57,178, 60,113,121,219, 10,227, 21,  5, 43,134, 86,  6,172, 60,184,138,182, 42,109,213, 79,171,237, 87,151,174,126,189, 38,122,
- 77,107,129, 94,193,202,130,193,181,  1,107,235, 11, 85, 10,229,133,125,235,220,215,237, 93, 79, 88, 47, 89,223,181, 97,250,134,
-157, 27, 62, 21,137,138,174, 20,219, 23,151, 21,127,216, 40,220,120,229, 27,135,111,202,191,153,220,148,180,169,171,196,185,100,
-207,102,210,102,233,230,222, 45,158, 91, 14,150,170,151,230,151, 14,110, 13,217,218,180, 13,223, 86,180,237,245,246, 69,219, 47,
-151,205, 40,219,187,131,182, 67,185,163,191, 60,184,188,101,167,201,206,205, 59, 63, 84,164, 84,244, 84,250, 84, 54,238,210,221,
-181, 97,215,248,110,209,238, 27,123,188,246, 52,236,213,219, 91,188,247,253, 62,201,190,219, 85,  1, 85, 77,213,102,213,101,251,
- 73,251,179,247, 63,174,137,170,233,248,150,251,109, 93,173, 78,109,113,237,199,  3,210,  3,253,  7, 35, 14,182,215,185,212,213,
- 29,210, 61, 84, 82,143,214, 43,235, 71, 14,199, 31,190,254,157,239,119, 45, 13, 54, 13, 85,141,156,198,226, 35,112, 68,121,228,
-233,247,  9,223,247, 30, 13, 58,218,118,140,123,172,225,  7,211, 31,118, 29,103, 29, 47,106, 66,154,242,154, 70,155, 83,154,251,
- 91, 98, 91,186, 79,204, 62,209,214,234,222,122,252, 71,219, 31, 15,156, 52, 60, 89,121, 74,243, 84,201,105,218,233,130,211,147,
-103,242,207,140,157,149,157,125,126, 46,249,220, 96,219,162,182,123,231, 99,206,223,106, 15,111,239,186, 16,116,225,210, 69,255,
-139,231, 59,188, 59,206, 92,242,184,116,242,178,219,229, 19, 87,184, 87,154,175, 58, 95,109,234,116,234, 60,254,147,211, 79,199,
-187,156,187,154,174,185, 92,107,185,238,122,189,181,123,102,247,233, 27,158, 55,206,221,244,189,121,241, 22,255,214,213,158, 57,
- 61,221,189,243,122,111,247,197,247,245,223, 22,221,126,114, 39,253,206,203,187,217,119, 39,238,173,188, 79,188, 95,244, 64,237,
- 65,217, 67,221,135,213, 63, 91,254,220,216,239,220,127,106,192,119,160,243,209,220, 71,247,  6,133,131,207,254,145,245,143, 15,
- 67,  5,143,153,143,203,134, 13,134,235,158, 56, 62, 57, 57,226, 63,114,253,233,252,167, 67,207,100,207, 38,158, 23,254,162,254,
-203,174, 23, 22, 47,126,248,213,235,215,206,209,152,209,161,151,242,151,147,191,109,124,165,253,234,192,235, 25,175,219,198,194,
-198, 30,190,201,120, 51, 49, 94,244, 86,251,237,193,119,220,119, 29,239,163,223, 15, 79,228,124, 32,127, 40,255,104,249,177,245,
- 83,208,167,251,147, 25,147,147,255,  4,  3,152,243,252, 99, 51, 45,219,  0,  0,  0,  6, 98, 75, 71, 68,  0,  0,  0,  0,  0,  0,
-249, 67,187,127,  0,  0,  0,  9,112, 72, 89,115,  0,  0, 11, 19,  0,  0, 11, 19,  1,  0,154,156, 24,  0,  0,  0,  7,116, 73, 77,
- 69,  7,219,  6, 21, 16, 50, 48,139, 37,211,236,  0,  0, 32,  0, 73, 68, 65, 84,120,218,236,189,105,148, 93,215,117, 30,184,135,
-115,135, 55,215,171,  1, 19,  1,  2, 40, 78, 18, 73,137,166, 65, 41, 22,101,205,160, 90, 67,162, 88,138,  1,183,149,216, 89,113,
- 98, 32,238,100,181,148,172,101,  3, 29,219,105,199, 75,178, 72,175,229, 33,113,187, 19,194, 67, 71,109, 39,110, 17,146, 45,219,
-138,221, 22,161,182, 45,107,176, 45, 66,150,100, 81,226,  0, 20, 49,213,128, 26,222,171, 55,223,225,156,189,251,199,121, 85,134,
-  1, 18,  4, 41,208, 36,237,251,253, 32, 11, 85,119, 56,247,220,123,191,253,157,111,239,123, 14, 64,129,  2,  5, 10, 20, 40, 80,
-160, 64,129,  2,  5, 10, 20, 40, 80,160, 64,129,  2,  5, 10, 20, 40, 80,160, 64,129,  2,  5, 10, 20, 40, 80,160, 64,129,  2,  5,
- 10, 20, 40, 80,160, 64,129,  2,  5, 10, 20, 40,240,210,  7,191, 64,199,125,239,119,236,254,207,255,226,222, 67,111,191, 45,119,
-242,151,103,219, 69, 71, 23, 40, 80,160,192,223,  6,126,127,203,171,182,253,222,191,249,142,221,152,237,154,170,191,239,190, 59,
-111,217, 86,253,244, 95, 92,200,172, 20,221, 93,160, 64,129,  2,127, 99,160, 23,226,160, 21,200, 96,241,204,104,241,252,240,212,
- 55,135, 79, 60,249,254, 55,220,250,181, 95, 56,112,235, 13,141,162,187, 11, 20, 40, 80,224,229,173,223,159, 92, 25, 37,  0,239,
-188,163,169, 86, 93,175,107,123,189,153,109, 91,255,213,119,221,253,232,185,181,111,158, 95, 47, 58,189, 64,129,  2,  5, 94,174,
-252, 14,  0,159,155,235,255,249,252,232,192,183, 79,197,108,242,209,200,173,183, 32, 42,127,239, 59,239,158, 40,243, 31,253,229,
-130, 19, 45,186,190, 64,129,  2,  5, 94, 80,224, 11,122,244,155,102,162,223,251, 23,183,221, 90, 11,134,195, 28,152,105,199,158,
-120,215,174,175,158, 94,250,174, 15,253,254,153,139,189, 23,247,202,247,237,219,215,108, 54,  1, 96,110,110,110,110,110,238,101,
-113,183, 94,142,109, 46, 80,160,192,223, 78,126,  7,128, 74, 72,191,254,125,123,223, 51,219, 72, 70, 14, 64,112,235,206,210,141,
-123, 51,149,191,255,147,159,122,248,203, 23,158,247, 97,103,103,103,103,103,103,175,178, 65,187,221, 62,121,242,228, 85, 54,120,
-248,225,135,247,239,223, 15,  0, 71,143, 30,125,224,129,  7, 94, 22,119,235,165,217,230,125,251,246,237,223,191,191,217,108,238,
-219,183,207,255,230,228,201,147,115,115,115,199,143, 31,111,183,159,115,233,212,165,199,185, 58,158,245, 22, 23, 40,240,119, 28,
-230, 57,239,192, 24, 25,186, 50, 74,168,255, 63,254, 85,196, 64, 68, 68,  0,192, 15,254,238, 82,116, 48,126,251,174,122,150, 43,
-180,215,146,114, 53,152,218,250,233, 15,189,247,223,255,250,159,126,228, 99,143, 88,247,124,188,154,  3,  7, 14,220,127,255,253,
-207,186,217,241,227,199, 79,156, 56,113,236,216,177,226, 78,191, 16,180,126,224,192,129,  3,  7, 14, 92, 25,104,125, 16,122,240,
-193,  7,143, 29, 59,118,244,232,209,231,196,242,251,246,237,123,248,225,135,175,101,203, 19, 39, 78,220,119,223,125,197,141, 40,
- 80,224, 58,240, 59, 33, 30,122,221,182, 31,125,235,141,211,213, 80,144,  0, 17,136,128,  8, 16,209,240,230,207, 64,132,204,227,
-159,145,128,200, 41,166,  2, 54, 12,104, 99, 47,235,114, 25,225, 79,126,255,235,223,118,247,174,  3, 31,254,253,149,245,209, 11,
-116,121,  7, 54,112,240,224,193,231,161, 37, 11, 92,  5,143, 60,242,200,179,110,115,232,208,161,253,251,247, 31, 60,120,176, 16,
-218,  5, 10,188,164,249,253,  3,111,218,241,179,239,185, 57, 27,138, 10, 50, 33,  0,129, 34, 40,  2, 16, 10,130,  2, 40,  0, 33,
-  8,128, 40, 48, 32, 34, 16,128,  2, 35,  6,140,170, 94,226,251, 45, 85, 16,211, 97,246,166, 59,118, 61,246, 75,223,119,223,191,
-251,173, 47, 63,185,242,188,175,225,196,137, 19, 87,254,210, 75,200,205,159, 31,126,248,225,251,238,187,175,160,248, 23,  2, 39,
- 79,158, 60,126,252,248,201,147, 39,253,141,104, 54,155,251,247,239,247,204, 14,  0,179,179,179, 15, 61,244,208, 61,247,220,243,
- 60, 58,255,216,177, 99, 87, 73, 51, 20,119,179, 64,129,235,195,239,132,240, 67,175,219,166,131, 60, 79, 82, 16, 65,244, 70, 12,
-  2,  2, 32,  0,226,216,164, 97,162,169, 45, 64,  8, 34, 72,  0, 66,  0,  2,  8,224,153,158,  4, 68,129,  8, 28,  0,  3, 32,100,
-105,222,140,162,147,191,240,143,127,232, 23, 63,243,224,167,190, 62,142,  1,207, 17,207, 52, 72,247, 30,142,119, 15,246,237,219,
-119,232,208,161,151,139,207,254,114,193,177, 99,199,142, 29, 59,118,153, 54,111,183,219,199,143, 31, 63,126,252,248,131, 15, 62,
-120,232,208, 33, 79,241,207,175,243,189,189, 86,244,115,129,  2,207, 15,215,250,125,147, 40,252,204,103,231,145,210, 74,232, 42,
- 37, 40,199, 90,142,181, 28,203,248,135, 72, 98,202,192,229, 24,149,  1, 17, 68, 64,228, 18,178,206, 64, 18,144, 17,104,  2,144,
-130, 36,160, 25,136,128,168,170,228, 78,108,234,254,243,  7,222,254,208,143,191,187, 28,  5,215,241,218,142, 31, 63,126,169,102,
- 63,112,224, 64,113,191,175, 35,238,187,239,190,195,135, 15, 95,197,120, 57,124,248,240,166,250, 62,114,228, 72,209, 99,  5, 10,
-188,116,253,153,  7, 63,191,244,153,199,219, 55,207, 68,  8, 40, 27,220,237, 11,217, 83, 43,175,187,169,113,228, 29,183,149,131,
-146,136,  0, 51, 32,128,136,102,125,100,164, 93,119,209,204,205, 88,223,134,113, 29,108, 42,131, 21,237, 45,202,202, 19, 96, 71,
-128, 37,  5,231, 20,164,159,125,247, 27, 94,177,119, 71,227, 77, 31,124,104,144,228,215,235,242,124, 21,135, 87,145,215, 88,149,
-113, 25, 46, 43, 11,121, 30,158,192,102,169,207,181, 23, 53, 62,143, 93,174, 99,155, 55,207,126,245,125,175, 69, 89, 31, 59,118,
-204,167,193,125,147, 10, 23,190, 64,129,151, 40,191,  3,192,169,213,244,212,106,122,229,239, 95,189,171,254, 79, 94, 55, 91,229,
-200,138,  2, 33, 36,137,166,  3,112,  3,190,245, 13,230,158,247,243,222,239,184,114,200,160,173, 51,246,244,103,220,217,207, 35,
-135,160,170,  8,217, 48,219,119,211,246,223,251,169,247,237,255,145,227,249,245,155,172,230,249,213,137, 55,155,205, 67,135, 14,
- 29, 56,112,224,178,168, 48, 55, 55,231, 77,137, 43,137,239,254,251,239,247, 27, 31, 63,126,252,216,177, 99,254,  8,135, 14, 29,
-186,180,188,100,110,110,238,129,  7, 30,184, 74, 61,207,161, 67,135,142, 28, 57,114,217, 46,207,116,198,111,177,205, 87, 54,248,
-200,145, 35,135, 14, 29,242, 37,246,112, 61, 10, 84, 46, 37,244,205,195, 22, 40, 80,224,101,131,195,111,222,169,191,248,118,251,
-115,111, 31,254,236,219,  7, 15,188,169,255, 31, 94,211,255,241, 87,247,255,195,171,242, 47,253,119,125, 54,216,115,127,158,124,
-226, 80,242,201,195,201, 39,255,117,250, 59,255,107,250,219, 31,208, 63, 60,242,161,127,118,239,179,158,244,200,145, 35,155,  7,
-185,250,150,247,223,127,191,223,172,213,106, 93,250,251,135, 31,126,216,255,254, 74,235, 96,255,254,253,173, 86,235, 42,205, 62,
-125,250,244,149,163,129, 75, 15,184,111,223,190, 71, 30,121,228,153,118,127,240,193,  7,159,150,157, 31,122,232,161,103,218,229,
-145, 71, 30,105, 54,155,215,183,205,151, 53,248,202,221,175,177, 78,241, 42,216,191,127,255,230,209, 46,205,120, 95,223, 93, 10,
- 20, 40,112, 29,244,251,101, 40,135,252, 11,223,115,235, 15,188,246,134,116, 36,206,229,144,142,192,230,128,138,  1, 68,239,253,
-  8,223,249,110,191, 89,119,148,254,193, 87,206,252,193, 87,207,180,250,163,128,241,149, 59, 38,223,115,207,205,223,126,211,118,
-  0,224, 93,175,193,176,150,127,238,103, 32, 52,  0, 10,132,182,159,254,232,251,239,253,175,159,254,198,169,249,235, 48, 83, 77,
-179,217,220,180,221,175, 49, 83,119,224,192,129,135, 30,122,232, 82,  5,122,226,196,  9,175,124, 55,165,241,236,236,172, 47,200,
-121, 90,195,193, 51,181,215,224,190,176,  4, 54,170,197, 55, 69,186, 23,242,151,197,161, 75, 51,  4,155, 59,250,147,238,219,183,
-239,210, 86, 93,223, 54,251,200,225,245,245,230, 71, 67, 87,255,124,236,218,249,253,105,181,252,223,164, 63, 86,160, 64,129,231,
-140, 91,182,148,158,252,241,191,167, 63,251,214,225,253,111, 25,124,248,222,193, 79,236, 27,252,196,190,193, 79,222, 51,248,247,
-175,204, 62,243, 51,155, 18,236,139, 79, 44,124,231,255,254,177, 29,255,234,151,103,255,237, 71,111,251,145, 95,123,229, 15,255,
-218,109,255,230, 87,239,248,192,177,163,191,246,153, 65,146,141, 85,252, 99,159, 78,126,227,123,211, 79,125, 48,253,212,  7,210,
- 79,125, 80, 63,253,195,255,227,195,239,251,214,245,251,101,138,248, 50, 49,248,180, 90,120,118,118,118, 83,198,158, 62,125,250,
- 74,253,120,169, 76,190,172,  0,124,243,128, 30, 15, 61,244,208,101,142,196,236,236,236,166,168,111,181, 90,151,254,245,208,161,
- 67,151, 74,245,203,184,245, 74,109,126, 93,218,124, 89,131, 79,159, 62,125, 89, 10,250, 91,119, 84, 78,159, 62,253,180,125,117,
-141,250,253,202, 33,197,233,211,167, 55,107,162, 10, 20, 40,240,130,232,247,119,220,222,252,228, 63,187,221,136, 25,166, 57,184,
- 12,156,  5, 66, 64,  0,117, 56,189,203,188,246,251,253,102, 79, 46,181,191,255, 23,255, 96,121,100,203,149, 82,206, 28,  4, 28,
- 50,178,134,232,236, 39,254,236, 20, 19,125,232,253,111,  6,  0,190,249, 45,238,241,255, 23, 92, 31, 76,  9, 16,108,150,239,191,
-251,198,237, 83,149,197,181,193,181, 52,230,105,107, 51,246,239,223,127, 41,211, 29, 62,124,248, 90,244,251,131, 15, 62,184, 41,
- 99,159,182,100,219, 91,210, 94,237,250,154,203,167, 53,211, 79,156, 56,113,240,224,193,203,126, 57, 55, 55,119,244,232, 81,111,
-122,248, 34,241,227,199,143, 95,118,  9,115,115,115, 87,214,233,251,147, 62, 19, 69, 94,151, 54,207,205,205, 93,185,239,183, 40,
-150, 47, 77, 36, 60,191, 79,136,175, 12, 48,179,179,179, 71,142, 28, 57,114,228,200,203,104, 86,137,  2,  5, 94, 54,252, 30, 48,
-126,232,221,187,127,228,205, 55,164,  9,164,152,131,228,128, 10,  1,  1,  0, 32,104,158,153, 91,223,136,213,105,191,241,209,255,
-246,249, 39, 47,116,160, 81,237,244, 45,160, 99,132, 50,227,116,197, 52, 75,166,209,168,126,242,207,159,124,243, 29,187,247,223,
-181, 23,216,240,236, 27,237, 87, 62,138, 51,123, 64, 69, 16,195, 82,248, 15,239,189,233,191,252,238,215,174,165, 73, 87,159,168,
-224,216,177, 99,215, 88, 70,237,231, 81, 25,183,252,153,191,170, 63,121,242,228,177, 99,199, 60, 35,239,223,191,255,105,153,235,
-240,225,195, 79,187,239,137, 19, 39, 78,158, 60,185,105,152,108,186, 43,155, 63, 63,240,192,  3, 79,123, 94,127, 82, 95,  8,244,
- 66,180,249,153,206,251,188,177,111,223,190,205,251,226,207,254, 92,143,224, 39,177,217,116,117, 54,103,185,217,188,233,179,179,
-179,207,212,207,  5, 10, 20,128,231,186,190,199,206,137,240,243,255,250,142, 31,121,253,246,225,208, 57,112, 32, 57, 16,  0, 35,
- 50,162, 65,100, 66,131,180,227, 78,191,241, 83, 23,215,127,255, 43,231,160, 92,  2, 63, 93,  1,179,  3,234,165,238,169,149,225,
-220,242, 48, 87, 20,230,207,252,229, 89,191, 49, 78,223,172,163, 46,128,  5,  4, 64,  5, 43,175,189,109,219,117,185, 66,111, 64,
- 95,139,213,176, 73,148,237,118,251,234,124,180, 25, 45,158,182,166,222, 19,211, 85,104,235,178,211, 93, 58,206,184,202,121, 55,
-197,254,117,111,179, 47,176,185,142, 79,149,247,250, 55, 27,246,156, 88,184,221,110, 31, 61,122,244,166,155,110,186,231,158,123,
- 14, 30, 60,248,192,  6, 14, 30, 60, 56, 57, 57,121,105, 12,243,197, 66,197, 59, 92,160,192,117,208,239,175,159,173,125,230,159,
-223, 22,  8, 15, 51,  1, 86, 80, 65,  5, 20, 84, 70, 32,  4, 68,  0, 69, 19, 82,243, 70,191,253,153,149,238,104,152, 67, 61,242,
- 95,184,250, 25,200,128,  8, 84,215,251,121,158,217,157, 13,211,219, 40,117,199,218, 86,  0,134,116,136,165,154,130,130,181,119,
-205, 78, 19,161, 92,195, 76,241, 71,143, 30,125, 90,138,217,191,127,255,236,236,108,179,217,244,169,203,103,157,159, 96,147, 43,
-159, 53, 19,120,233,104,224,202,178,238,171,143, 21,174,164,254, 77,241,126,245, 29,175, 62, 13,195,183,210,230,235, 91,150,238,
-211, 30,155,  1,245,232,209,163,207,233,248, 39, 79,158,188,202,246, 15, 60,240,192,137, 19, 39, 54,173,170,251,239,191,255,105,
-195, 94,129,  2,  5,174,149,223,153,240,223,190,113,235, 79,191,125,103,150, 65, 18,  8, 18,168, 83,204, 37, 12,169,109, 93,  5,
-  8, 12,251,149, 66, 16,  0,212,250,189,182, 52,202, 28,  6, 78,  0, 20, 65, 21, 20,  0, 20, 20, 64, 17,152,  6,195,252,108,146,
- 68,119,109, 52, 64, 29,104, 14, 54,  1,170,163,138,138,236,104,198,  1, 83, 42,238, 89,155,119, 21, 31,214,123,181,222,119,126,
-248,225,135,239,185,231,158,171, 91, 10, 87,202,207,107,161,179, 43, 21,232,115,186,  7,215,206,209,155,222,206,245,109,243,117,
-228,119, 95,138,179,217,170,195,135, 15, 95,247,201, 59, 79,158, 60,121,244,232, 81,111,254,204,206,206, 30, 56,112,160,160,248,
-  2,  5,158, 39,191, 55, 74,252,241,127, 50,187,127,119,125,148,  9, 68,  6,  9, 52, 23,147, 75, 88,226, 31,252,228,153,217,169,
-232,232, 27,182, 39, 10,232, 37,124,158,203,234, 41,218,245, 26,  0,120,229, 13, 83,127,239,150, 45, 95,248,230, 10, 24,  3,138,
- 64, 10, 10,224,191, 91, 18,  4,196,164, 53,184,101,219,152,104,180,187,  0,105, 87,211,137,141,233,199, 20, 20,240, 91,158,157,
-222, 83,191,231,130,171,164, 67, 47, 99,189,103,157, 92,254,  5,194,179,  6,134, 43, 55,120,209,219,124, 21,114, 63,122,244,232,
- 11, 52, 51,243,230,103,177,112,157,234, 56, 11, 20,248,187,200,239,119,237, 40,255,238,247,221,180,171, 18, 14,  5,177,204,  0,
-160,153,196,162, 73,  8,239,249,232, 19,127,240,205,206,135,222,121,  3,122, 34,102,  4,  4, 48,164, 23,191, 14, 99, 39,  6,127,
-236,189,247,188,235, 27,159,130, 36,135, 40,  4, 69,  0,  0,  1, 16,  0, 21,232, 15,239,190,253,134,239,123,211, 29,126, 99, 89,
-254,166,106,142, 46,  3, 16, 80, 37,212,197,214, 32,187, 30, 95,177, 62,240,192,  3,155, 92,112,224,192,129,107, 97,156,231, 52,
- 43,192, 75,164, 34,251,165,208,230, 75,201,253,216,177, 99, 47, 92,125,139, 47,210,247,231,218,191,127,127, 81, 72, 83,160,192,
-115,227,119,  4,248,129,215, 78,253,210,123,246, 88, 11, 67, 67, 24,145,138,234,200, 85, 12, 62, 62,200,255,193,175, 60,241,228,
-114,  2,  0,167, 86, 83, 64,213,177,126,  7,136,203,238,204,231, 76,251, 12, 54,247,  0,192, 59,239,222,115,236,135,222,242,193,
- 95,249,147,225,122, 10,113,  4, 76,160, 10, 89, 14,195,209,183,191, 98,235,199,127,248,221,149, 56,  0,  0,200, 71,238, 27,159,
-192, 48,  2,116,160,162,226,128,232, 47,158, 90,145,235,180, 76,235,137, 19, 39,188,  7,114,141,223, 67,190,160,220,244,  2,225,
- 69,111,243,131, 15, 62,120, 41,185,191,208,149, 45,197,135, 78,  5, 10, 60, 43,158,177,126,230,208,235,102,126,249,187,246, 36,
- 22,242,178,193, 18,171,  0, 12, 93, 37,230,223, 60,213,121,237,207, 63,234,201, 29,  0, 30, 93, 30,  1, 33,248, 53,152,152,192,
- 24,176,253,252,115, 63,183,121,156, 31,124,219, 29, 95,252,200,119,127,240,239,191,106,239,100, 20,107, 94, 37,119,239, 45,211,
-255,199,255,242,214,207,126,248,192,222,173, 13,191,141,253,210, 47,235,250, 25,  8, 34, 69,  4, 80,176, 14,  8, 79, 62,185,252,
- 55,220, 23, 87, 86,182,188,212,206,123,229,  6, 47, 86,155,175, 36,247,205,218,205,191,  1,114, 47, 80,160,192,243,215,239,229,
-144,126,234, 45,219,179, 68,160, 26, 96,136,154, 41, 39, 54,170,240, 79,127,118,233,199,254,199,249,252,146, 21,245, 30, 93, 28,
-157,239,100,219,170,161, 83, 29,207,  5, 95, 42,203,185,207,218,207,255,188,121,253,  7,253, 54,175,222, 61,253,115, 63,240,198,
-143,124,159, 93,106, 13,194,192,236,152,172, 92,122, 46,247,141,223,182, 95,251, 53,136,203,  0,128,196,234,  4,157,228, 73,250,
-169, 63, 61,115,189, 46,242, 26, 45,218, 75,135,252,205,102,243,111, 76, 33,206,205,205,249,243, 94,125,134,203,167,253,235,139,
-213,230, 23,157,220,175, 61, 41, 93,160, 64,161,223,255, 26,166, 43,166, 25,177, 21, 80,167, 58,116, 97,230, 48,194,131,191,113,
-234,200,239,156,203,255,250,114,169,195, 76,126,225, 79,151,  3,  3,154, 56,  0, 69,  2,100,194,114,205,125,237,255,206, 79,252,
-152, 14, 87, 55,183,140,  3,179,103,107,227,175,145,123, 62,114,127,246,127,218, 63,249, 48, 70, 33, 50, 35,  2,  4, 17,228, 54,
- 32,248,189, 71,206,156, 91,238, 95, 47,114,223,228,247,171,115,193,165, 21,132, 87,126, 73,244,194, 97,243,188,254,163,214,107,
- 23,239, 47, 98,155, 95, 92,114,191,244, 74,159,223,252,160,  5, 10,252,221,229,247,165, 94,126, 38,177,229, 50,151,115, 87,102,
-232,145,188,241,191, 60,118,252,100,235,105, 55,254,229, 47,174,116,114,103,114,  7,185,128, 95,147,143, 17, 42, 53, 57,253,251,
-217, 39,190,223, 61,250,  9,237,206, 95,182,139, 14, 86,228,244,137,236,183,126,192,254,197, 47, 65, 28,  3, 27, 64,  5, 68,164,
-  0,147, 28, 88,255,183,255,250,165,235,114,121,190, 22,123,243,159, 87, 47,164, 59,126,252,248,165,235, 81, 60,191,249,226,159,
-  7,142, 31, 63,190,169,187,159,105, 29, 12, 63,121,239, 75,167,205, 87,146,187, 47, 91,124, 78,113,247,200,  6, 54, 67,215,181,
-124,134,230, 63,104,240, 63,251,181,162,138,215,184, 64,129,231,192,239,153,213, 55, 63,248,196,127,124,100,229,227,115,221, 35,
- 39,230,111,251,200, 95,254,217, 83,207,168,166,219, 67,251,131, 31, 63, 27, 68,172,125,171,185,  0, 32, 32,  2, 34,148,235, 96,
- 59,249,231,126, 42,251,196,251,179,223, 57,108, 63,247,211,246, 79,255,147,253,194,207,100,191,247,129,236,227,223,155,159, 56,
-170,253, 51, 80,105,  0, 17,248, 58, 72, 33, 77, 49,136,233, 35, 15,253,197, 55,207,127,171,147, 71,250, 53,225, 30,121,228,145,
- 77,202,123,214, 47, 60,225,146,121,  5,124,169,223, 85,212,244, 38, 61,125,235,247,160,221,110,111,166, 70,247,239,223,127,229,
-236,193,151,206,239,248, 18,105,243,149,228,254, 92,151,183,157,157,157,189,127,  3,155,247,200,127,166,112,149,175, 82,253,  6,
-155, 93,113,221,167, 85, 40, 80,224,111, 19,158,177,126,230, 92, 43,253,224,111,158,189,198,163,124,252,203,107, 63,191,183,250,
-193, 55,108, 27,117, 51,172,135, 16, 17, 16,  2, 40,  4,  1,  6,  1,168,232,218, 87,237,242, 73,  0,  5,  0, 36,  3, 38,132, 74,
-245, 18, 61, 15,144, 57,149, 82, 28,133,127,248,181, 11, 63,241,223,191,242,156,174,225, 26, 87,109, 61,124,248,240,179,114,193,
-137, 19, 39, 14, 31, 62,236, 25,214,211,229,137, 19, 39,252,164, 49,151,186, 61,251,247,239,247,148,244,156, 20,235, 85,112,236,
-216,177,205,137,124,253,202,212,155,235,154,250,181,170,155,205,230,220,220, 92,187,221,190, 82,161,191, 40,109,246,173,186,244,
- 55, 87,153,190,120,115,168,113, 45,197,169,126, 98,184,185,185,185, 19, 39, 78, 92, 54,255,204,165,115, 44,251,160, 82, 84, 70,
- 22, 40,240,124,248,253,185, 49, 44,192,143,124,242,220,150,122,240,254,187,166,146, 78,  6,181,  0, 99, 30, 87,196,  3,  0, 18,
-132, 49, 62,211,158,162,144, 58,233,102,165,237, 91, 79,158, 89,121,223, 79,253, 81,118,253, 22,111,218, 36,130,171,175, 20,122,
- 25,213,  2,192,253,247,223,239, 69,226,101,243, 80,190, 64,104,183,219,  7, 15, 30,124,248,225,135,125,170,192,107,219, 43, 55,
-120,166,153,212, 94,148, 54, 95, 38,171,159,117,155,231,180, 82,182, 31,126, 93,253, 54, 93,175,224, 90,160,192,223, 45,127,230,
-121, 32,119,250, 79, 63,122,250,167,255,104, 49, 14, 41,232,230,210,201, 33, 17,176,  0, 10,  8,120, 57,  0, 17, 16, 28, 64, 38,
-218,181,216, 78, 75,205,137,223,252,218,202, 91,126,244,211,235,131,236,122, 53,233,196,137, 19,199,142, 29, 59,120,240,224, 61,
-247,220,243,156,170, 44,142, 29, 59,118,207, 61,247, 92,125, 73,188,227,199,143, 95,223,143,239,253, 12,189,207, 52,219,240,179,
- 94,194,139,210,230,235, 14,111,226, 95,253, 74,253,178,233,215, 50, 26, 43, 80,224,239, 56,240,186, 31,241,173,183, 53,126,245,
-253,123,119, 55, 35,155,170, 53,  8, 49,163, 33,240,115,144,109,248, 41,224, 64,173, 64,226, 56,151, 32,192,174,131,127,249, 91,
-243, 31,251,252,188,168,190,212, 58,104,211,214,216,100,225,118,187,253,156,164,232,115,133,247, 82, 54,167,116,247, 54,197, 75,
-188,205, 47, 80,207,251,233,225, 46,101,255, 98,  9,167,  2,  5, 94, 76,126,  7,128,122,204,223,243,154,169,127,247,214, 29,123,
- 38, 66, 80, 84, 85, 65,148,141, 83,145,  2,169, 34,  2, 32,172,140,220,207,127,118,233, 87,191,184,178,212,201,138,155, 81,160,
- 64,129,  2, 47,117,126,247,136,  2,186,117, 75,252,221,223, 54,249,250,217,218,246,106, 48, 17, 81,200,152, 59,232,228,238,226,
-192,126,229,252,224, 55,190,188,246,232,194,168,159,186,226, 54, 20, 40, 80,160,192,203,137,223, 47,133, 97, 52,132, 76, 32, 10,
-214,233,101, 31, 73, 21, 40, 80,160, 64,129,  2,  5, 10, 20, 40, 80,160, 64,129,  2,  5, 10, 20, 40, 80,160, 64,129,  2,  5, 10,
- 20, 40, 80,160, 64,129,  2,  5, 10, 20, 40, 80,160, 64,129,  2,  5, 10, 20, 40, 80,160, 64,129,  2,  5, 10, 20, 40, 80,160, 64,
-129,  2,  5, 10, 20, 40, 80,160, 64,129,  2,  5, 94,210,192, 95,251, 79, 63,139,136, 10, 10,  0,196, 12,  0, 42, 14,156, 34, 17,
- 18, 40, 16, 51, 33,249, 73,125,129,144, 56, 96, 85, 69, 96,  4, 61, 51,247,196,142,221,183,133, 70,156, 40, 17,  2,224,120,186,
-  3, 68, 36, 12, 16, 68, 65, 65,  1,  8,  9,213,137, 10, 16, 19, 33, 18, 83, 16,176,168,130,128, 56,  0, 68, 17,  5, 64, 80,161,
-144,  9,  8, 17,  1,128,  8,  0, 64, 65, 85,149,  0,137,200, 47,229, 65,196,164,  0,140,170,126,238, 50,  4,192, 63,254,227, 63,
- 68,228, 59,110,191,157,131, 32,207,242,213,165,149, 71, 30,253,250, 91,247,223,247,138,217,157,189,110,207,230, 73, 20,242,176,
-211, 10,234,211,146,182, 79,125,227,113, 83, 42,205, 76, 54, 75,149, 74, 20,213, 76, 16,  0,177,225,  0, 16, 17, 65, 69, 20, 80,
-213, 17, 32, 16, 17, 50, 17,249,150,136,106,200, 70, 17,  1,  9,145, 16,192, 57,135,  8,132,172,170,128, 10,138, 64,  8,170,227,
- 93,209,128,138,170, 32, 32, 16,  1,168, 10,154,128,  1, 65, 69,129, 16,  1,197, 58,100, 32,242,157, 47,227,213,175, 20,  1,148,
-153,  0, 64, 68,  1, 65, 68, 12, 27, 17,241, 55, 67, 68, 16, 20, 56, 64,  0, 16, 17, 16,102,  3,128, 72,136,196,190, 91, 69,133,
-201,119, 38,178,  9,178,100,216, 91, 62,195,  1,  2, 32, 34, 35,  2, 41,  8,  0,179, 65,  4, 68, 84,113, 20, 84,103,118,223,201,
-153, 77, 71,157,184, 84, 62,127,254,169,143,254,198,111,221,126,211, 45,255,232, 61,111,183, 20,  0,200,185, 39, 30,255,210, 87,
-190, 30, 69, 49, 51,155,176, 92,153,217,158,165, 25, 56,235, 40, 88, 56,253,167,147,245,106,127, 48, 58,249,245,111,158, 91, 90,
- 94, 94,105,125,231,189,111,189,113,215,246, 44,  3,201, 71,128, 65,181,222,116,105, 47, 27, 14, 70,253,118, 62,232, 13,250, 93,
- 50,  1, 33,213,227,176, 62, 57, 83,106,110,205,179, 97,169, 62,185,117,231,238,184, 62,211,235,246,178,164,189,248,248, 35,147,
- 55,220, 82,111,110,201,211, 81,142,  1, 42,113, 96,108, 50,  4,  2,198, 64,156,123,234,236, 19, 54,205,235, 19,205, 60,233,238,
-188,249,149,103, 31,253,115,142,167,  9,176,212,104,100,163, 78, 92,155, 82,  7,105,178, 94,170, 76,219, 60, 27, 13, 86, 84, 41,
-207,242, 56, 10, 43,213,134, 42, 36,233,168,191,190, 58,189,101,199,212,150, 27, 91,139, 79,214,167,182,128, 41,247, 59,237, 97,
-119, 49,  8,171, 38,174, 72,214,103,138, 52, 44, 25,162,128,176, 92,171,138, 98, 80, 42,167,105,154,245,123,105,127,173, 62,181,
- 83,144,122,107, 23, 37, 89,189,241,206,123,151,151,230,215,151, 23,226,250, 36, 37,235,253,238,122, 20,150,219, 43,103, 51,  8,
- 92,150,199,  1, 89,103, 47,182,214, 74, 97, 92, 42, 87, 75,113, 84, 42, 87, 37, 29,118,251,157,229,213,229, 90,125,154, 77, 88,
-171, 55, 75, 81,  9,  8, 91,171, 23, 70,195, 81,169, 82, 37, 10,211, 81,223, 58,155,166,105,173, 20,246,  7, 73,154,167,132, 80,
-137,203,173, 78,123,190,213,189,101,231, 13,185,211, 48, 14, 80,236,160,183, 94,105,108,137,163,184, 18,  5, 97, 64,231, 46,156,
-153,158,217,179,103,239,206,187,239,186,145, 56, 84,231,128,  0, 65, 85, 68,129, 17, 25, 85,129, 72, 84, 81,  1,  8, 21, 16,  0,
-196,  9,160,127,213, 16, 20, 84,133,152, 68,198,239, 34, 48,177, 56,107,237,210,202, 74,183, 55,152,221,189,171, 86,141, 71,105,
-134,200, 34,  0,168,254,229, 21, 43,  0, 66,102, 99,133,  9, 79, 49,  8,168, 42,128, 42,142,  0, 20,157,  8,182, 59,163, 97,202,
-149,198, 68,100,176,219, 94, 95, 90, 90, 88, 88, 90, 88,106,181, 91,157,206,210,234, 90,175, 63,108, 54,106,111,187,119,223, 91,
- 95,115, 39,  3, 38, 22, 98, 34,206,243,245,229,149,211,243, 11, 75,235,189, 97,150, 85,226,232,214, 87,220,186,180,116, 49,  8,
- 77,125, 98,226,179,127,246,149,225,250,122, 16,176,128,160,106, 41, 42, 49, 83, 64,236,223, 14, 98, 66,164,241,178, 64,136,153,
-205, 73, 33, 10, 66,244,196,194,100,136, 50, 85, 98, 69,  7,169,181,224, 68, 17, 17,193,138,250, 21,138,156,170,  1,  0, 32,  1,
-  5, 39,192,  8,170,  0, 72,136, 78,197, 40, 90,223,153, 42,130,224, 15, 11, 10,162,162,138,136,170, 10,170,160, 42,160,106, 85,
-213,119,183, 40, 17,170,170, 83,145, 60, 87, 28,243, 36, 17, 89, 85, 84, 84,155,131,225,128, 13, 33,137,191, 87, 10,162,  0,  0,
-170,234, 84, 13, 32, 16, 32,  5,170,150,144, 80, 53,181,150,223,247,206,251,  0,  0,136,136,  8,128, 84,101,124, 39,252,196,237,
-128, 72,196,200, 68, 68,136,136, 36,162,136,  4, 32, 65, 20,187, 44, 31,229,174, 18,135,136,  8,160, 72,228,159,  8, 66,  4,103,
-253,109,222,156,241, 23, 61,243,248, 69, 86,  9,124,204, 80,  5, 80,117,170,132, 12,160,  0,168, 34,200,138,254, 81,  0, 20, 21,
-  2, 64,  0,  1, 85, 81, 64, 36,100, 98, 32, 30, 31, 93, 65, 84,149,144,171,149,232,137, 39, 79, 69, 81, 28, 71,113,169, 92, 99,
- 86,205,221, 99, 79,204,221, 52,123, 83, 41, 10,179, 44, 87,117,198,  4,189,246,218,214,157,123,187,157,214, 43, 95,253,218,116,
-212,182, 86,226,184,132, 48,110, 63, 19,161,162,162,  2, 34,  1,  9, 40, 51, 35,145,168, 16,177,170,  0,168,147, 28,  0, 16, 61,
-227,  3,109,206,105,239,251, 12, 55, 46,118,131, 88,193,  7, 13, 66, 85,  5, 68, 31, 47,  1, 17,145, 64, 55, 58,200, 47,133, 66,
-128, 68, 32,160,128,160, 74,100, 68, 28,136,  2,145, 63,220,198, 74, 85,168, 10,  2, 72, 68,104,124, 44, 65, 68, 26,119, 25, 34,
-168,128,  2, 33,108, 68, 68,255,156, 64, 50, 26,217,108,157,145, 13,177, 95, 97, 11,  8,  8,  9,137,  1, 84, 85, 65,121,122,247,
-157, 81, 24, 38,221,245, 40, 10,207,156, 57,245,235, 31,251,237, 93, 91,183,191,247, 31,190, 27,152, 84,164,181,188,252,231,143,
- 60, 66, 28, 16,170,137,171,113,117,194,162, 81,155, 16,  7,253, 94,203, 37,173, 90,173,210,234,116,206,206, 47,173,247,  6, 86,
-244,238, 87,221, 19,154,192, 57,196,160,100,216,128,138, 36,253,124,212,149,100, 96,243, 52,205, 70,164, 84,138,194,184, 84,226,
- 40,140,202, 77, 19, 87,131,184,188,101,251, 30,  1,114,249,  8,197,153,210, 68,154, 75,169, 54, 81,153,152,177,121, 38,  2,214,
- 14, 93, 58,234,247,122, 28,132,163,193, 96,148,164, 54,235,149,171,141, 81,123, 65, 52, 76, 83,225, 48, 76,211,174,179,185, 29,
-117,131,168,130, 38, 72,134,189,106,185, 62,234,175, 85, 39,111,  8,131,168,209,168,247,147, 97, 58,236,130,104,169, 20,113, 80,
- 17,117,149,106,189,213, 90,234,182,214, 56,136, 20,205,168,187,170,192,  2,129, 77,147,184, 62,157, 14, 90,206, 57,201, 19, 73,
-  7, 65, 92,149, 60,  5,103,173,205, 41, 44,  5, 97, 20,150, 75,  0,184,182, 54, 63, 49,181, 51, 46, 87,134,189,181, 82,101,130,
-216,164,131,158,  2,169, 16, 51,165, 89,110, 76, 16,132, 37,  1,100, 14, 74,149,186, 81, 71, 28,168,138, 49, 81, 80,106, 32,134,
-  6,181,223,111, 35,234,176,191,110,130,160, 55, 24, 84,170, 13,155,166,195, 97, 15,213, 41,106,218,107,213,170, 85,231, 92, 57,
-142, 50,  7, 97, 16,154,192,156,185,120,177, 81, 46,151,194,176, 63, 24,176,  9, 41,  8,243, 44, 47,151, 74,185,179,204,145,178,
-185,184,220, 22,167,211,205, 32, 42,197,226, 28,  0,224,198, 19, 53,214, 25,254,209, 85, 20,  0,  5, 69, 66,245,143, 19, 17,160,
-248,  7,218,115, 99, 16, 24,201,178,133,149,181,165,149,149,114,165,182,103,215,142, 48, 52,137,181,168,136,104,112, 44, 19, 16,
-  0,148,188,222, 67,242,175,  4, 33,232,248, 13, 65, 85, 54,104,157,116,250, 89,187,151,115,216,152,156,108,228, 73,178,180, 56,
-127,230,236,217,243, 11,243,243, 43,203, 11,171,171, 23, 22,151,197,201,235,191,253, 85,239,127,231,155, 94,115,199, 77,121,238,
- 64, 48, 86, 29,173,183,230,230,206, 62,121, 97,241, 66,187,147,165,233, 77,123,118,236,220,179,253,212,249,165,246,218,170,137,
-227, 47,127,237, 27,118, 56,156,168,149,  9,137, 80, 17, 41, 10,130,128, 13, 51,177, 33, 38, 50, 72, 10,162, 10, 68,  8,  8,108,
-152,144,152,199,175,108, 16,  4,128, 10,170,206, 58, 81,101, 64, 68,100, 36, 11,234,223,108, 43, 46,100,  6,  5, 64, 34, 34, 32,
- 96, 68,  5,  4, 66, 66, 84, 65,167,162,158,  8,136, 16, 81,  0, 16, 20, 17,212, 33, 49, 58,209,192,235, 60, 31, 44,  1,157,138,
-136,128,122,137, 12, 10,170,136, 42, 96,216, 43, 72, 97, 50, 72,  8, 28, 48, 97,192,  6,137,  8, 16,145,156,232, 38,185,123, 70,
- 17,  4, 20,  5,  0, 70,200, 69,197, 57,126,223,187,254, 39,212,113,200,  5, 80, 68, 64,175, 64, 17,152,145,136,144,144,153, 24,
-128,189,192, 84,117, 42,128,164,162,113, 20,174,175,175, 55,106, 53,245,234, 85, 21, 68,  0,199,203,240,161,103,116,  4, 68,127,
- 91,217,207,102, 70, 64,204,  4,136,160,160,128,170,128, 62,100,160,162,  1, 66, 98, 34,  5, 29,255,217,247, 15,  2, 35,161,215,
-209,232,167, 23, 70, 85,113,155, 15,140, 72,173,222, 28, 14,215,207,158,159,159,153,158, 12,194, 40, 12,227,128,105,121,117,105,
-165,221,190,101,118,150, 77,152,102,137, 97, 21,235,150, 47,206,183,214, 86,227, 82,165, 86,175,181,150,150,194, 40, 10,163, 24,
- 20,208,160,205,114, 32, 70, 68, 80, 96, 66, 36, 82, 21, 81, 69,  0,242,193, 14, 17,  0, 85,213, 57, 71, 72,134,140,234, 95, 91,
-193,196,175, 92,130,138,  0, 56, 30,189,160,128,167, 99, 54, 60,238, 17, 66,  0, 98,  3,226, 16,  4,  1, 16,198,225,205,223,  5,
-242,157, 35, 78,156, 83, 66,102,  6,244,239, 36,136,117,234, 28,248, 67, 40,128,128, 63,170,170,250, 72,  2,170,136, 24,  4,129,
-138, 40,  0, 17, 34,168,130, 34, 81, 50,236, 99, 62, 98,230,113,115,137, 16,  9,136,252, 46,106,221,150,155,239,174, 77,111, 77,
-187,157,184, 84,106, 47, 47,252,234,127,251,127,166, 39,183,124,255, 63,254,158,168, 90,177,105,154,141,250, 95,251,234, 87,251,
- 35, 65, 73,140,137,195,198, 54,113, 78,236,208,  4, 33, 71,141,108,212, 69, 55, 48, 97,184,178,210, 89,110,181, 58,189,  1, 51,
-237,221,121,  3, 33,170, 83,151,245, 13, 89,100,182,195,110, 54,234, 57,235, 68,  1,208, 88,200,  9,164, 82,169, 84, 38,102, 40,
-142, 37, 79,103,118,236,169,212, 39, 70,163, 65,150, 12,109,110, 43,149, 74,158,229, 46,205,179, 65, 91,213,165,105, 58, 28, 12,
-109,150,138,112,181,214, 92, 95, 95, 25,101,121, 41, 10, 89, 53,174,214, 21,201, 58,167,249, 96,106,235,174,184,212, 40,215,182,
- 84, 27,117,176,214,  2, 77, 52,106,224,146,110,167, 29,134, 37,151,117,178, 36,113,162,245,230, 13,154,117,234,141,153,250,228,
-214,114,101,178,215,237,244, 58,173, 82,181,234,210, 30,135, 37,230, 48, 46,149, 64, 44,184,212, 10,113, 16, 77,109,221,102,109,
-194, 38,  6,213,220,102,121, 50,140,203,141,124,212,203,179,145,130, 10, 26,114, 25,169,205, 83, 91,111, 78,170,115,134, 96,216,
-239, 68,113,196,128, 10,129,  2,132,  6,195, 48,136,162, 50, 32,244, 59,171, 89, 50, 98,142,242,108,148,140,146, 36, 79, 66, 38,
- 80, 65, 19,137,203, 42,213,102,183,211, 14,131,208,230,163,208, 68,195,225, 42, 19, 87,234, 91,157, 56,  0,104, 78,204, 12, 58,
-171,195, 36,153,158,168, 59,224,167,150,230, 43, 97, 80,138, 75, 66,134,208,168,230, 44,163,114, 84,142, 75, 85,112,110,152,246,
-215, 91,221,126, 47,159,222, 58, 83, 45, 71,206,137, 87,216,160,168, 99,110, 34,  0,135,196,176,241,246,146, 87, 88,170,170,138,
-  4, 32, 66,204,113, 20,175,119,218,143,157,122,178, 92,174,222,120,195,182,122,173,230,156, 19, 81, 38,220,144, 32, 94, 23,145,
- 31,176,250, 87,193,203, 23, 79, 29,  8,192,170,204,212, 29,142,150, 91, 35, 52,213,102,115, 75, 28,  6,107,203, 75,231,206, 62,
-117,238,194,133,249,149,165,133,149,181,243, 23,151, 47,182,218,187,183,111,255,193,  3,239,124,243,190, 87,150, 74,129,115, 88,
-162,208,246,251,231,207,158, 63,125,126,241,252,234,234,210,122,103,215, 84,179,210,168,174,180,187,103,231, 23, 83,  7, 23,230,
- 23, 58,173,142,  1,136,195,208,  4, 33, 32,196, 65, 96, 56,100, 38, 66, 12, 67, 19, 48, 41,128, 19, 21, 81, 66, 54, 68,162,202,
- 64,228, 25, 80, 20,145, 25, 48,119, 78, 65, 81,  1,  9, 68, 84, 65, 17,209,137, 42, 40, 35,  6, 76,138, 72,136, 28, 50, 18,140,
-  5, 58,128,  1,204,124,199,142,165, 60, 24, 67,168, 32, 72,128,104, 16, 77,200,170,200, 32,  2,154,139,  3, 81,  1,112, 42, 34,
-206, 83,171, 31,241, 19, 49, 17, 25, 98, 50, 20,112, 96, 69,141, 97, 67,100,152, 13,179, 42, 16, 42, 18,139,  8,129,  0, 49, 18,
- 18,146, 10,228,206, 50,141,  3,182,170, 24, 54,204,204,239,123,199,219, 97, 60, 18,131,177,226,  6, 37, 19,  4,198,248,136,198,
-134,193,  9,120, 37, 10,  4,  4,226,172,181, 14, 85,136,185,223,235,155,184,204,  8,  0,130,224,159, 27, 68,246,244,  1,140, 36,
-170,  0,200,228,131,186, 23,178,140,  4, 27, 93,131, 72, 34,  0, 42, 74, 62, 96, 17, 16, 26, 68,149,141,  1,161, 23, 15,  0,180,
- 33,  7, 20, 17,101, 99,180,227,  7,  1, 68,192,200, 91,183,109,123,242,137,199,243,204,150, 75,113, 92, 46,  9, 96,100,130, 71,
- 31,123, 98,203,246,173, 19,213,146,181,226,108, 90, 42,149, 69,225,214, 59,247, 45,159, 63, 85,159,190, 65, 37,  3, 64, 14,  2,
- 31,184,136,141,120, 59,  9, 17, 80, 65,188, 26,182, 72,  6, 25,199, 44,140, 74, 68, 76, 44, 27, 61,182,209,111,227, 39,218,143,
-154,254,234, 15,  0, 72,196, 76,168, 64,204,108, 80,196,249,105,241,253,184,  4,199, 99, 69,221, 60,154,202,120, 81, 89,102, 67,
-190,211, 12, 35,  0, 56,177,214,137,115, 27,177,  6,137,201, 71, 56,220,240,143,144,136,  0,114,103,137,152,  3,163, 10,158,208,
-137, 77,210,235,160,228,136,  6,213,  1, 18,140,  3,230,248,133,172,205,236,153,190, 97,214,165, 35, 86, 73,250,173,143,254, 95,
-191,210, 25,  6,141, 90,101,239,238, 27,  3, 68,100, 60,117,250,236,252,194, 60,177, 33,142,130,202,132, 41, 85, 76, 84, 42,215,
- 38,156,160,230,233,104,208, 10, 88, 16, 97,109,173,213,234,244, 46,174,181,234,181,230,237,183,239, 19,117, 78, 53, 42,149, 53,
- 25,216,100,228,172,213, 52,205,179, 20,  0,  6,163, 62,169, 76,214,155, 81, 41, 14,227, 42, 25, 14, 74,181,169,237,187,243,100,
-221, 41,  6, 97, 20, 70, 85,116,169, 40,167,121, 46, 46, 43,149,106,113,173, 97,147,172,183,190,140,  0,234,178,213,165,179, 38,
- 44, 87,234,211, 78, 68, 57,204,211,132, 77, 24,215,167,243, 65, 59,205,210, 81, 58, 92, 57,243,141,245,181,243,113, 84,179, 18,
-228, 14,  1,145,195, 88, 53, 74,  6, 23,227,114,173, 54, 57,213,235,180,173,115,181,137,105,219, 91,238,244, 90, 86,141,164,131,
-204,230,165, 90, 51, 25,116,203,113,212,152,220, 34,206,230,142,103,182,110,109,135,221,156,195,  0,  0, 32,  0, 73, 68, 65, 84,
- 76, 52,146, 68,114,155, 57,155,102,105,194, 65, 69, 80,  7,221, 69,226,216, 57, 27, 85, 38,243,100,148, 14,215, 43,181,201, 60,
-207, 59,171, 23,114,135, 96, 71,  1, 75,107,109,  9,213,142,146,129,136, 84,106,205,100,208,  3,149, 70,163,153, 99, 48, 28,116,
- 13,155, 52, 29,245,250, 45, 22,113,105,127,199,182, 93,136,148,228,163, 60,207, 51,155, 84,171,205,193,104,128, 92, 98, 14, 76,
- 16, 34, 82,146,101,129,230,235,157,149, 52,179, 97,104, 34, 70,235,116,173,215,223,218,108, 24,102,  0,137,226, 74,110,109,154,
- 14,146,204, 13, 71,125, 43, 46,205,157,117, 48, 24,216,230,100, 57, 14,  3,231, 28,130,215, 25,  8,  2, 72,128,202, 48,142,248,
-168,254,213, 27, 51, 52, 42, 40, 41,128,218, 51,103, 46,156,191,184,242,138, 91,111,218, 50, 53,229, 60,245,143,227,129, 31,  2,
-226, 37,250,157,  0,189,139, 73,  0,160,214,191,170, 64,164, 78,117,173, 51,234, 12, 97,106,122, 71,173, 90, 73,211,222,133,243,
-103,231,230, 78,157, 89, 88, 88,105,183, 47, 44, 46,207,175,172,146,194,254,239,216,247,207,191,235,109,219,166,235,163,204,  6,
- 28,  5, 78,151, 23,206, 61,113,234,236,133,139, 43, 43,189,126,104,176, 92,105,128,100,213,137,122,185, 57,245,232,163, 79, 12,
- 59,221,106, 96,162, 32, 48, 76,204,108,115,  9,  2,102,102, 68, 98,102, 34,227, 45, 40,113, 42,224,226,208, 56, 21, 43, 98,152,
- 17,192, 57, 29,123, 54,  0, 86,196,233,248,229,205,157, 24, 68, 67,228, 64, 12,177, 97, 34,196, 52,119,158,169, 68,196, 58, 33,
- 68,  4,117,170, 78, 53, 52,108, 69, 64, 33, 12,195, 49,161, 50, 25,  0, 81,151, 89, 69, 68, 66,112,  0, 78, 21, 68,157,130,147,
- 92,192, 33,176, 85, 33,  0,246,236,  8, 24, 48,  5, 97, 96,136,  1,212, 95,144,215,216, 12,168, 48,214,142, 62,112, 50, 27,111,
- 18,  8, 64, 96,140,122,233, 41, 26,135,134,131,192,  9,240,123,223,113,223,216, 92, 22, 65,130,141,155,164,134, 25,112, 44, 94,
-  9,128,252,240, 74, 21,  8, 65,145,  9,189,178, 71, 80,107, 53,142,  3, 80,245,227, 33, 64,224,192,120,  5,138,222, 46, 71,218,
- 20,244,222,121,242, 79, 18, 40, 48, 50,160, 23,181, 72,136,228,159, 54,111, 22,168,122, 67,130,152, 65,197,135,181, 13, 79, 70,
-253, 14,222,230, 70,  5, 64,116,206,197,229,122,189, 94,254,198, 55,191, 81, 10,130,114,165, 86,169, 85,153,120,212,239, 45,174,
-180,111,153,221,131, 72, 54,203,131, 48,136,194,112,216,105, 47, 46,204, 39,163, 81,158, 39,  8, 96,  8,152, 13,155,144, 77, 64,
-128, 68,232, 31,111,221,112,150,  0,209,199, 48,167, 22,145, 84, 81, 68, 54, 28,152,191,162,112,220, 92,236, 27, 55,199,165,127,
-165,169,  9, 73, 65, 92, 46,168,136,164, 10, 34, 86,253,181,251,211,121, 59, 30, 54,188, 79,239,174, 40, 32, 19,  3,  8, 56, 21,
-  1,113, 34, 54, 23,113,196,134,216,248,213,176,136, 88, 21, 20,156,151,235,158,184,253,176,102,220, 70,  1, 21,151, 12,123,  6,
-199,207, 49, 18, 27, 10, 17,141, 42,168,216,184, 62,179,253, 21,119,129,  2,137, 14,150,231, 63,246,177,227,167, 23,123,181, 74,
-240,198,183,190,109,235,238,189,221, 78,239,236,169,199,158, 58,115,142, 20, 24,208,148,106, 65, 24,  7, 81, 37, 46,199, 42,249,
-176,125,209,196,213, 78,235, 66,185, 18,165,163,100,105,101,109, 97,117,173,211,237,238,216,190,103,251,182,157,233,160, 31,134,
-229, 16,193, 89,135,234,210, 65, 43, 75,211,209,176,215, 77,134, 12, 84, 45,149,227, 74,149, 76,152, 91, 75,200,113,185, 86,169,
-213,243,204,137,179, 42,214,138,154, 32, 30,246,186,136, 80,105,212,  7, 73, 26,129, 29,117, 86,170,245, 45,128, 98, 51,187,184,
-116, 33,233,174,148,171,117,  0, 81, 69, 33,204,135,189,168, 58,193, 65, 28,  6,209,176,215,141,234, 83,229,198,142,116,216,234,
-183, 46, 84,106,147,229, 40,242,189,137,170,245,230,118,231, 50, 52,113,169,210,212,100, 61,201,109, 46,106, 45, 12,134,157, 45,
-219,111,118,105,191,187,190,108, 93,206,224, 64,105,148,102, 81,104,106,245, 90,150,231,221,245,238,250,197,179,206, 41, 71, 97,
- 88,170,  5, 38, 18, 65, 64,206,135, 93, 50,  6, 36, 67,132,184, 54,137, 20,172,175,183,152,184, 20,135,195, 52, 31,244, 59, 78,
-185, 90,107,168,104,167,223, 67,100, 54, 36, 54,  3, 98,102, 42,197,241, 96,208,171, 53,102,144,204,182,173,219, 20, 33, 79,179,
-204,201,112, 56, 66,144, 70,189, 97, 76, 56, 74,  6, 32, 46,  8,130,254,112, 96, 76, 96,202,141, 82,185, 26,134, 49,161, 76, 78,
- 52,  3,198, 51, 75, 75,219, 38,167, 26,149,154,147, 60,179,208,172, 79,148,194,184,189,222,177,249,  8, 68, 85,165,215,237,166,
-  9, 77,111,105,  6,129, 81,245, 47, 28,123,181,228,173, 61,245,146, 30,  1,145, 84, 69, 69, 67,195,  8,186,214, 90, 95, 88, 92,
-142, 74,165,219,110,190, 41,142,163, 36, 77,199, 82,125, 60,220,100, 29, 15, 92,121, 28, 22, 54,172, 73,239, 37,  2, 41, 19,170,
-213,222, 48, 91,235,102, 24, 84,167,183,108, 53, 42, 75,243,103,159,124,226,241,185,179,103,207, 95, 92,153,191,184,124,225,226,
-106,111, 56,250,182, 59,110,249,167,255,224, 45,111,125,205,237,136,144, 91,140, 49,200, 58,235,231,159, 58,123,234,220,252, 66,
-187, 51,204,242,157, 91, 38,103,103,247, 92, 28, 12,203,  1,141, 20, 31,127,236,113,116,110,178, 86, 54,204, 94,246, 24,166, 48,
- 32,102, 70,111, 60, 51,251, 87,204,191, 28,132, 36,130, 68, 68,  8,  4,128,136,134,  9, 16,157, 83,  1, 53,204, 68, 64, 48, 30,
- 80, 59,167,214,251,242,  4,162,154,229, 22, 17, 66, 99,156,138,127, 87,189,233,234, 37,178,248, 33, 56, 98,238,156, 33, 34, 38,
-231,156,  3,  5,192,192, 24, 39, 98,197,121, 18,244,  1,144,201,243, 40,  8,248,180, 29,  1,104,192, 28,  4,  6, 20, 55, 50,149,
- 28,  4, 20, 50, 17,170, 19,  0, 16,  5,197, 77,165,143,232,  0,  8,125, 56,  5,167,160,162,129, 33, 85, 33,  5, 36,230,127,244,
-174,119,168,247,103,136,200,  4,155, 41,149,141,241, 62,123, 99,192,223, 46,  5,240,222,207,  6,173, 49,  7,220,239,173, 87,170,
- 13, 80,245,140, 14, 10, 99,226,247,214, 47,249, 61, 85,252,144,109, 60,244,  3, 21,128,177,  5, 70,136,  4, 42,136, 27, 25, 24,
- 68,244, 97, 47, 87,111, 85,123,189, 12, 62, 59,233,221, 28, 81, 64,244,118,183,110, 12,  3,157,181,147,147,211,237,214,234,242,
-234, 90,173, 82, 46, 87,170,204, 20, 24,243,216,227,143, 85, 27,147, 55,238,216,154, 57,  7,  2, 81, 92,177, 89, 62,179,107, 54,
-224, 44,119,102,106,122, 50,207,109, 16,132,132, 62, 70, 10,241,216,178, 66,  4, 34, 70,246,193, 10, 64,201, 41, 24, 68, 25,143,
-120,132, 48, 32, 98, 80,241,254,137,239, 52,192,205,120,201, 62,206,249,102,142,169,159,128,188, 85,165, 58,142, 89, 10,200,132,
-  0,226, 28,168,  2,  1,121,107,104,156, 45, 69,  0, 32, 38,102, 68,  0, 17,113,226,136, 24, 84,153, 13, 25,218, 48,  6,145,144,
-125,148,245,105, 15, 68, 32, 68,239,243, 33, 34, 18,247,219,171,225,198,168,140, 40, 64, 38,  4,117,154,113, 84,219,118,203,171,
-131, 48,178,105,230,214,150, 63,241,241,143,159, 94,234,139,164,111,126,227, 27, 95,255,166, 55,148,235,213,198,244,214,139, 75,
-173,115,231,207, 90,129,106,115,154,163, 82, 84,169, 85,170,117,  4,155,142, 44,133,161,181,210,107,159,175,196,241,112,152, 44,
-174,172, 46,174,182, 70,163,116,215,142, 27, 38,235, 21, 70, 52,140,234,114,176, 35,181, 46, 29, 14, 20,100,100,109, 16,196, 17,
-101,108, 98, 54, 97, 20,132,104,  2, 11,184,235,230, 59, 65,243,206,234, 98, 80,174, 26,194,225,160, 99,  5,109, 54, 90, 91,248,
-134, 40, 75,150,166,195, 97,111,125,129, 76, 56, 88,111,165,121, 54, 74,134, 72,152, 13,215,171, 91,118,187, 44, 69, 17, 99,  2,
-210, 44,239, 47,133, 81,153,  3,195,204,  0, 24, 87,234, 89,210, 35, 50,189,238, 50, 82,  4,  8,121,210, 17, 53,  4, 82, 41,149,
-243,108,148, 12,211, 44,207, 93, 62, 10,163,210,196,196,180,  9,226,209,168,175, 88, 14,194,106, 50,236,165,217, 40,138, 99,230,
-192,144,102,253,245, 81,103, 69, 57,230, 48,172, 53,102, 80,173,203, 50, 69,142, 74,213,128,169, 90,155,112,214,149, 43,205,133,
-167,254, 98,148, 90,235,136, 56,  8, 48, 15,163,138,136, 41,197,209, 68,173, 82, 41,151,147, 65,183, 62, 49, 57, 92, 95, 67, 98,
- 39,106,179, 52,183,153,  9,202,229, 82, 57,177,121, 72, 48, 53, 61,221,106,173, 24,142, 65, 93,146,165, 54,203, 84,115, 68, 10,
-194, 88, 92, 30,  6, 65,150,165,113, 24,  6,198, 48,106, 24,132, 83,141,250,182,169,201,213,110,114,126,249,226,100,204, 32,106,
- 85,135,131, 30,100,189,173, 83,211,232,243,120, 28,177,  9, 49,136,114, 87,174, 86, 98, 99,198,111,178,110, 26, 40,227,247,147,
-198, 73, 40,226, 40, 14,  7,253,193,169,185,115, 74,188,107,215,141,147,205,  9, 17,235,114,  7,160, 27,254,224,216,132,245, 98,
- 98,156,101, 28,219,194,226, 77, 25,131, 38,  8, 76,146,229, 23,219,195, 84,131,122,115,178, 26,151,  6,157,181,167,158, 58,245,
-196,169,185,133,165,139,139,173,181,133,229,181,139,107,237,102,163,254, 63,191,243,245,239,121,203,190, 70,181,146, 58, 12, 32,
-160,204, 46,205, 95, 56,117,230,236,185,229,181,214,160, 95,171, 84, 69, 92,185, 86, 90,233,245,207, 47,172,174, 44,175,182, 86,
-214,  2,128, 74, 28, 25, 34, 64, 96, 98,226,141, 60, 31, 18, 19,179, 23,107,234,243,  3, 62,235,228, 95,152,141,215,  6,  1,  0,
-172,170, 55,153,144,  8,144, 17,  8, 64,145, 24, 81,153,144,137,  5,  4, 20,162, 40,  0,192, 92, 28, 51, 33,146,119,108,  4,192,
-187,231,138,184,145, 35,220, 40,  6,217,176, 41,116, 60,224,166,141, 88,224,101,234, 56,123,103,144,198,255, 37,242, 14,  7,143,
-115,116,158, 31, 52,117,146,139, 50,161, 32, 26, 66,227,229, 49, 34,  0,133, 99,234,  0, 98, 10,  9,137,216,137,  6, 65,200,196,
-162,150,223,251,142,183,143,125, 50,  4,220, 48,206, 65,198,170,148, 55, 92,229,177, 57,226, 51,162,155,166,  4, 42, 34, 15,  7,
- 61, 54,113,104,  0,  1, 68, 20, 69,124,171,  5,  4, 54, 92, 94,208, 49, 83,163,  2, 33, 91,117,228, 19,249,164,170,  2,  4, 98,
-197, 87,134, 16, 17,141,203, 80, 16, 60,243,171,194,152, 98, 69,193,249,203, 86,  4,  2, 26, 27,220,227,102,131, 19, 33,196,137,
-137,198, 19,167, 79,161, 72,169, 82, 46,151,171, 76,152, 13, 71, 95,125,236,177, 87,222,118,107, 28, 71,105, 50, 10,194, 32, 10,
-  3,103,211,106,163,  1,214,166,201,160,223, 27,148, 75, 21,175, 54,140, 49,162,  0,170, 76,140, 72,161,  9, 68,156, 56,241, 73,
- 41, 20, 21, 34,  0,144,113, 66, 66,  1,193,223, 16,177, 66, 76,190,215, 21,198,105, 21, 34,162,192,120,175,105, 51,245,170,  0,
-136,204, 76, 50, 30,201, 16,128,138,138,175,101,241,105, 47,241, 67, 92, 39, 62,241,139,  8,227, 82, 33, 34, 95,238, 98,130,192,
-191, 98,226,159, 34, 34,255,110,138,147,205, 78,247,133, 73, 68,172,  0, 78, 32, 31,245,194,136,  1,124,130,  6,144,200,103,211,
-182,222,116,119,185, 57,  9, 78,121,208, 61,241,251,191,249,165,111,158, 31,141,122,187,183,207,188,251, 29,239, 82, 21,113,182,
-189,178,182,190,222,109,181, 90,253,  4, 71,195, 94,169, 82,155,152,154, 98,195,171,243,231,195, 74, 13,208,228,217, 48, 29,172,
-150,163,184,221,107, 47,175,182,151,219,107,105, 46,175,188,245,206,201,122, 29,216, 16,128, 56,103,140,201,134, 61, 39,214, 58,
- 59, 24,142,226, 32, 36, 67,128, 32, 78,234, 19,147,200, 84,159,218,182,231,182,187, 71,217, 72,213,152, 40, 90,159, 63,213,239,
-172,148,203, 19,  6, 50, 75,241,212,204,158,193,250,121,144, 60,119,138, 20, 50,201, 83, 79, 61, 90, 46, 55, 57,136, 59,107,139,
-245,122,  3,145,109,154, 40,134, 89,158,244, 86,207, 83,121, 26,212,181, 46,206,169,106, 24,149,227,250, 84,185, 82,203, 83,171,
-224, 68,209, 57, 33,198, 52, 25,170, 27,218,204, 82, 80,234,117, 91,204,198, 89, 48, 65, 60,236, 46, 83, 80,206, 70,189,238,250,
- 50, 32,131,  9,202,229,114, 58,236,215, 38,166,152,163, 81,210, 47,215,183,132, 97, 57, 10, 40, 27,118, 22,231,159,234,247, 59,
-131,126,127,189,211,238, 15,186,173,245,214, 90,123,117,109,117,117,117,125,173,223,107,239,217,123, 83,167,219, 94,239,180, 29,
- 25,118,233,206, 93, 55,132, 38, 72,178, 52, 10, 34,  5,169,213,103,234,181,106,183, 61,223,104,238,184,253,214, 91,115,197, 86,
-167, 19,134,229,192, 48,146,233,172,175,245,187,107,166,220,  8, 56, 32,208,220, 89, 85,137,152, 12,  7,131,126,143, 66,  3,128,
- 73,150,161,205,183, 76, 78,139,234, 68,173,218,234, 14, 46,172,172,  6,154, 76,212, 27,  1,135,163,209, 48,142, 99, 67, 88,174,
-212,146,209, 16,  9, 37, 79,147,100,100,169, 50, 81, 11, 66, 67, 99,  5,129,227, 97,191, 31,119,170,  2,  6,204, 68, 43,203, 11,
-115,103, 23,118,239,218,185,109,219, 12, 33,230,121,166,168,227,119,115,108, 70, 42,160, 79,164,162, 42,160, 23, 12, 62,121,230,
-147,109,  4,136,176,188,218, 89,237,228,229,218,228, 68,125, 66,108,186,178,120,225,201,211,115,167,206,156, 91, 88, 89,185,184,
-214, 90, 92, 94, 27, 37,217,189,223,126,199,191,252,158,119,220,186,119,123,150, 41, 83, 92,162, 96,125,249,226,169, 83,167,207,
-158, 95, 90,234,116,  6, 73, 26, 71,225,174, 29, 51, 22, 41, 85, 60,245,212, 57,155,164, 33, 97, 41, 52,177,  9,140, 33,255,170,
-177, 33, 34,244,165,  7, 94,149,203,248,165,241, 47, 29, 25,  4,241, 41, 99, 21, 99,140,170, 58,245,217, 44, 36, 34,235,116, 60,
-  8,119, 34, 78, 75, 33,123, 27,202,140,223, 92, 35, 78,  0, 32, 10, 67,  4, 82, 85, 98,  6, 29,235, 95,148,241,171,109,136, 16,
- 73, 85,125, 73,132,117,170,162,232, 85, 34,128,241,246,213,216,216,240,132,143,155, 25,111, 20, 12,140,241,233, 73,102, 12,  3,
-178,  0, 78,148, 17,152, 88,  1,152,137, 17, 51, 25,215,196, 24,194, 92, 84,  0,141, 79, 16,  3, 34, 97, 41,142, 17,129, 24,  1,
-217, 40,168, 90, 65, 70,100,159, 35,  5,175,139, 65, 21,  5,212, 39,161, 85, 84, 20,152,156,117,160, 10,134,137,216, 87, 58, 25,
- 67,149, 74,185,213,238,236,216, 58,  1,226, 72, 17, 13,171,168, 83, 65,102,242,162, 21,137,152,196, 87, 23,  2,138, 82, 96,200,
-115, 50,  1,138,168, 56, 81,  7,160,  0, 10,194, 10,228,189, 17, 31,  3, 29,160,  2, 56,  7,136,226,252,120,  5,212, 87,149,120,
-123,126, 99,104,137,128, 42,185,205, 39,167,102,110,222,125,227, 19,167,206,148, 75,149,114,181, 82,170,148,119,239,218,181,176,
-188,252,135, 95,248,226,187,246,191,137, 48, 76,147, 52,142,204,160,215,229,104,155,106, 54,191,212,218,115,227,206, 81,191,109,
-194, 40,144, 88,  5, 56, 96, 36, 70, 36, 14,  2,155, 39,128,100,140,209, 13,179,  8, 73, 85, 24, 64,  0,192,  1, 24,  0,  4,114,
- 86, 16,209, 90,139,160,136,198, 71, 47, 64, 16,177,224, 54, 66,248, 88,233,176,170,  3,117,146, 43, 50,  1,128,162,218,220, 49,
-161, 50, 18,144,138, 32, 19,121, 89,197,168,170,  2,162,130,204,134,124,218, 85, 33, 12, 98,  0,116,206, 34,192,120,144,135, 64,
-108, 84,156, 47,114, 21,245,202,138,140, 33,167,121,104,226, 36, 77,136,116,156, 47,242,226, 69, 85, 68,166,246,190,170, 54,179,
-197, 37, 35,  6,250,147, 79,127,242, 51, 95,252, 26,154, 74, 37,192,119,191,237,109, 28, 16,  0,164,131, 65,123,113,105,121,117,
-213, 58,105, 78,212,  3, 99,250,195, 76,151,151,227, 40, 10,194,208,165, 67, 21,151, 36, 35, 67,104, 85,134,195, 52, 77, 50,151,
- 75, 64, 92,173,213,115, 52, 97, 64, 46,233,170,205,114, 17, 16,117, 89,218,233,172,229, 22, 13, 97,150, 43, 19,213, 27,229, 82,
- 24,244,115,152,222,177, 55,203, 70,171, 75, 75,185,181, 21,  1, 46,213,  3, 80,102,189,112,230,137,176,188,181,179,122, 65, 52,
- 80, 37, 16, 84,107,101,212,179, 78,195, 40, 38,130, 61,179,175, 76,134, 29, 53, 53,177, 57, 42,144,  9,202,205, 61,131,238, 26,
-136,204,220,112,123,150, 14,196,229,  4,194, 81, 20, 85,202,104, 56, 79,179,176, 84, 14,163,210,112,216, 83, 83, 53,145,233,183,
-151,  4,177, 55, 26,245,123,109, 92, 15,109,238,166, 38, 93,171,189,212, 25, 12,169,221,142,162,120,117,101, 41,119, 58,119,254,
- 76, 24, 86,172,205,134,201,233, 44, 29,  5, 65, 96, 51, 43,146,198, 97,200, 36,104,130,233, 45,183,246, 86, 23,195,218, 84,185,
-190,173, 74,162,136,203,107,173,133,165,101, 80,176,110, 56,236,181,206,174,174,130, 64, 16,151,179,108, 85,108, 70,176,140, 76,
- 40,216, 91,190, 56,191,188,216,235,247, 20, 49, 73,211, 71, 31,255,203,137,137,  9,103, 53,168, 52,  7,131, 65, 38,169,  2, 88,
-235,130, 32,156,156,106, 90,151,  3,104,128, 68, 76,150,141, 97, 28, 14,219,130,193,104, 56,184,107,239,141, 23,218,221,133,149,
-139,184,178, 72,166,220,172, 87, 76, 96,122,105,146,103,  3, 38, 96,151,151,226, 70,158,167,195, 65,114,118, 65,103,119,196,165,
- 82,121, 60, 50, 29,103,112,144,216,136,184,181,213,214,218, 90,171, 86,107,220,253,234, 59,136, 48,205,173,231,160,113,225,  7,
-  5,170, 14,145,  4,156, 47,207,213, 13, 91, 81, 21,144, 20, 84,189, 27,217, 31,166,107,157, 52,140,107,211,219, 26,140,174,211,
- 90, 58,191,112,225,220,133,133,229,181, 86,171,219, 93,110,119,  6,195,100,231,214,233,247,237,191,247,238,219,103,115,177,195,
-158,148,130, 56,237,245,158, 90,152, 63,179,112,113,173, 59,112,226,166,167, 26, 55,223,188,247,244,217, 69, 96, 46, 85,226,211,
-103,230,201, 74,189, 20,129,  8, 18, 41,162, 83,165,241, 40,130,137,192,  0, 16,162,211,113, 70,148,137,157,  8, 33,168, 74,174,
-132,160,140,232,124, 25, 40,184,136,140, 29,151,178, 64,192,228,172, 16,162, 34, 24,  3, 35,107,197, 10, 51, 91, 39,234,237, 29,
- 38, 43, 98,173,245,217, 50, 85, 37, 99,172,179,222,107,  6, 85,102, 82, 69,102, 20,241,166,133, 26,166,220,186, 60,115,202,192,
-100,236,184,220,  5,153,145, 17, 28,128, 56, 69, 37, 81,107, 76,  8, 52,166, 50, 38, 64,194,212, 42,168, 16,129,183, 13, 12,162,
- 83,205, 84,  2,230,205, 50, 14, 67,132,128, 42,154,137, 26, 34,  2, 80,113,140, 68,134, 93,154, 27, 80, 80, 18,  4, 22,103,125,
- 38,194, 41,160,103, 88, 68,167,130,130,196,140, 76,190, 12,214, 23,184,122,141,141, 68, 34, 80,171, 77, 92, 92, 62,157,231,181,
-144, 80,212,169,207, 28, 26, 38,149,113,  9, 18,  2,146, 33,103, 61,209,  9,100,224,216, 32, 43,146, 56, 21,231, 64,209,123,  8,
-138, 10, 34,162,190,114,156,198,174,  3,130,170,146,250, 33,  4,137,115, 62,230,249, 66,130,113,194, 90, 69, 21, 56, 96, 64, 99,
-157,222,249,234,187,207, 95,152, 95, 88, 89,154,218,178,101,122,102,102,106,203,204,205,187,119, 63,246,212,153,179,231,110,221,
-185,101,107,127,212, 67,212,122,109, 98,208,105, 35, 81,181, 90,217,186,107,247, 83, 95,127, 36,207,147,220,166,213, 90, 96,130,
-128,137,  1,213, 89, 11,104, 16, 65,197,137,  8, 33,138,  2, 43, 35,130,241,163, 51, 34,240, 67, 50, 28,103,160,  9,141, 31, 39,
- 58, 95, 45,235, 61, 19,239, 75, 33,170,170,130, 69, 16, 64,163,164,126,112,162,226,179, 29, 64,232, 75, 89,216,103, 61,152, 65,
-156,243,  9,115, 28,199, 74, 69,255,  9,130,136,130, 18,147, 79, 18,248,196,  4,  0,176, 65,151,171, 83,161,113, 32,  1,171, 57,
-  3, 33,163,117, 74, 27,114, 65, 21,145,212,229,131,233,217,123,106, 51, 59, 92,158,178, 49,127,246,  7,191,253,187,127,242,117,
- 19, 79, 72,214,125,239,187,222,177,109,231,174, 52,207,  2,209,214,202,202,252,217, 83, 43,171, 45,224, 82,109,106,  6,178,129,
-129, 32, 29, 37,221,245,174,184, 60, 46,213,154,211, 77,237,182, 74,113,100,109, 38,206,101, 54, 77, 93, 94, 42, 85,235,229, 10,
- 75, 82,170,110,145,128, 51,238,117, 58, 29, 10,227,220,229, 10,204,  1, 13,147,196,170,196,198, 89,173, 15, 70,  3,199,229, 82,
-109, 34,203,134,224, 18, 84, 84,117,206, 57, 19,212,231, 47,156,201,168, 49, 53,177,  5, 70,171,106,  2, 43, 32,106, 21,113,126,
-121,129, 77,108,109,154,231, 41, 84,234,195, 84, 34, 22,151,103,131,225,186,100,105,192,108, 69, 68,212,103,115,122,157, 86,226,
-242,198,196,204,104, 48,232,118, 86, 21, 89,  1,196, 90,  1, 80,133,100,212, 37, 48,213,198,132,203,179, 94,175, 23,133,129,137,
- 42, 75, 11,103,178,209,122,115,219, 45,229,200,220,176,125,103, 54,234,153,184,220, 27, 38,245,106, 61, 10,203,189,206, 90, 92,
-170,142,186,139,149,153,189,165,128, 85, 52, 52,148,231,125, 50,113,  9,183,212,154, 91,201,132, 65, 16, 24, 54,233, 96,117,219,
-204,119,116, 86, 22,  6,131,182, 76, 54,195, 82,221, 74, 14, 46, 79,135, 61, 32, 50, 65,144,167, 46, 87, 23, 33,143,178,180, 82,
-174, 37,233, 96,219,150, 27, 90,181, 70,150,165, 26,106, 24, 69,  1,241, 32, 97, 67,148,185, 94,187,219, 73, 50,231,242,132,162,
-184,187,218, 66, 65,231, 50, 50,193,133, 85, 37,164, 44, 79,213, 89, 19,198,140,124,186, 53,216, 53,201,  2, 21,177,105, 92, 42,
- 37,253,110, 35,174,138, 75, 71,157,213,230,142,221,195, 81,175,213, 94, 67,217,246,138,155, 74,140,234,198,190, 49, 50,113,127,
-208,153, 59,191, 88, 46,197, 55,207,238, 49, 97,148,187,204,229,138, 14,253,248,123,236,212,131,140,125,  6,241, 58, 75,198, 57,
- 54,167,222, 67, 36, 34,107,243,139,173, 65, 38,220,152,218, 22, 71, 81,210, 95, 95, 92, 94,124,234,204,217,179, 11,139,237, 94,
-175,213,233,118,122,189, 82, 92,126,231, 27, 94,251,206, 55,237,171,150,195, 81,226,  2, 53,145, 38,171,243,231,207,157, 91, 92,
- 90,239, 14, 70,137, 32,108,105, 84,102, 95,121,235,133,197,229,199,207, 94, 40,  7,184,182,222,139,201, 84, 75, 33, 42,134, 65,
-224,198,222,  0, 16,142,  5, 59, 40, 56,149,141,178, 58,  5,  6, 95,255, 38, 10,226, 36, 12,200, 41,138,117, 34, 68,164, 72,156,
-139,168, 42, 51,123,211,213, 48, 17,177,117,121,234,124,165, 10,102,214,  5, 76,  1,147, 83, 80, 85, 38, 22,117, 42,192, 72, 10,
- 10, 32,226, 52, 52,236, 68,112,108, 61,131,127,246,136,208,  1,128,  8, 51, 25,  0, 98, 84,  1,  2, 96, 36, 32, 20,159,158,246,
- 66,158,129, 48, 96,  4, 69,100, 66,  1, 85, 37,113, 62, 31, 71,138,224, 69,165, 56, 65,194, 72, 89,124,157,147,  2, 51, 90, 39,
-  2, 42,  0,145, 65,  5, 18, 21, 98, 54, 68,128,148,169,122, 39,  7, 80, 65,156,  2,169, 19,  1,  4, 52,140, 66,214, 90, 66,212,
-208,215, 74, 17, 19,138,  8,140, 77,  9, 95,252,135,170,121, 16,150, 38, 43,165,245,110,111, 75,179,225,131,156, 34,130,128, 16,
-160,108,184, 21, 46, 87, 81, 68, 84, 64, 81, 85,181, 10, 64,164, 99,205,192,  8,  2,170,138,130, 52,254,244, 64,  1,  4,137, 65,
- 81,172, 35, 38,246,151, 74,164, 54, 21, 37,  7,186, 81,227,130,160,110,236,114, 32, 19,170,179,121,169, 90,187,235,219,238,250,
-227, 63,249,194,242,210, 98,181, 86, 15,162,248,134,237, 59, 86, 90,107, 95,254,234,215,182,239,127, 75, 28,151,179,124, 24,215,
-106,177,228, 23, 47, 14, 67, 99,150, 22, 22, 43, 19, 19,235,173,118, 24,123, 19,204,224,216,222, 64,207,192,170, 42,121, 38,200,
-204, 70,196, 17, 49, 81,232, 63, 43,218,240,179, 16,  0, 12, 27,111, 21,233,216, 95,115,234, 11,131,  2,190, 36,105,140,  8,140,
-  8, 34,234,247, 38,102, 36,244, 55, 15, 68,199,229,236,168, 32, 32,190,150,212,215,216,128,142, 75,109, 68,113, 92,180, 48,182,
- 63, 85, 85, 69,137,213,151, 69, 48,  7,164, 98,157, 35, 38, 14, 24,133, 16, 89, 37, 71, 96, 36, 22,201,136, 66, 21, 23,213,118,
-212,182,236, 68,  4,230,224,212,151,190,240, 59,159,250,255,106,181,173,157,214,185,183,190,238,222, 91,111,125, 69,150,165, 28,
-  5,157,149,133,238,106,123,121,117,197, 90,104, 76,149,226,184,100,  9,195,176,108,162,164,  1,178,222,110,159, 63, 63,119,113,
- 37,170, 82,178,109,186, 62, 72,135, 73,154, 39,105,110, 51, 91,159, 40,199,  1,  4,165,173,170,132,146, 35, 50,228,105,150,118,
- 45,  4,169,115,226, 50, 75, 84,173,148,137, 57,181,118,152,185,153,157, 59, 42,149,242, 96,208, 67, 66, 21,181,121, 42, 38,130,
- 60,  3,200,107,245,109,105,154, 14,214, 22,201,148,157, 64,192,156, 13,215, 19,  9, 87, 90, 75,235,221,238, 40,203, 51,155,169,
-205, 40, 44, 27, 19,174,183, 22,163,184,142,  6,140,137,145, 41, 57,115,222,  4, 17,163, 68,198,116,187, 29,181, 26,134, 81,185,
- 82,115,226,162,106,  9,200, 25, 14, 20,110,112,214,109,223,182,221,102,195, 76, 48, 27,246, 65, 29,153, 64,192, 86,170,211,131,
-238,106, 92,138,182,110,217,181,182,114,126,170,222, 84, 67,206, 13,107, 19, 19,  1,  2, 75, 53,144, 60, 25, 14,162,114,205, 84,
-170, 49,213, 37,235,  7, 51,187,  7,253, 85,102,142,202,187, 64, 29,112, 41,203,134, 81,173,225, 72, 13,  7, 73,175,213,168, 79,
-165,214,154, 32,170, 54,102,192, 37, 75,231, 30,157,154,222,147, 59, 11,163, 65, 20,149,203,  1,198,129,169,150, 75,221,254, 80,
- 65, 93,218,199,184, 81,203,157, 77,250, 65,174,219,118,108, 71, 19,217, 44, 85,113, 64, 84, 41,213,109,158, 17,  3,128,201,211,
-190,179, 57,  6,165,222, 96, 80, 14,227, 85,130,149, 94,210,152,112,208, 31,  0, 64,158,230, 61, 24, 13,147,164,222,152,110,175,
-181,106,147,145,203,  7,167,207,205, 15,134,201,171,110,105,198,149, 10, 10,137,216,179,243, 23,218,189,225,238, 27,119, 77, 55,
- 39,178, 44,115, 89,134,136,138,168, 62, 25,132,254,193,219,168,114,240, 41,214,113,246, 94, 64, 21, 81,128, 80,156,180,186,195,
-206,208,197,229,137,153, 90,197,142, 70, 75,231,206,205, 47,204,159,159,191,184,212,106,181,187,221, 86,175,151,165,246,206,155,
-103,223,251,142,239,188,249,198,109,163,204,166, 73, 94, 22, 28,244, 86,207,159, 95, 56,187,176,214, 29,140,172,186,173, 83,141,
-198,150,173, 23,206,158,251,236, 23, 78,150,131, 32,207,178, 52,135,233,114, 89, 84, 16,  9,  9,212,123,153, 34, 56,118, 55,208,
-169, 58,231,216,144,115, 18, 18,163, 33,171,194, 42,128, 24, 18,229,  0,110, 92,157,  1,129, 33,231, 68,172, 53,134,189, 74, 52,
- 72,128,224, 92,158,185,156, 96, 35, 87,139, 24,109,102,138,201,128, 42,128, 18,250, 79, 48,189, 55,  5,113, 76, 10, 34,153, 50,
-128, 34,230, 78,152,  8, 72,179, 60, 67, 50,198,127, 59,164,222,178, 85,  1, 82,151, 19, 27,  5, 13,144, 19,231,194,200,168, 83,
-245,197, 60,136,  2, 40,226, 24,124,217,166, 26, 36, 50,152, 89,117, 78,195,144, 69,209, 58,103,173, 35,  0, 38, 18,135,  0, 24,
- 24,114, 78,243,220,  5,  1, 48,155,192,248, 50, 80,112, 98,141,138, 67, 36, 81, 71,134, 68,  4,145, 16, 72,172, 48,131, 49, 36,
- 42,  2, 32,160,164,226, 54,138, 66,112,252, 25,212, 56,155,154,229, 73,109,114,106,101,101,109, 28,207,189,208,222,240,154, 17,
- 81,  9,212,249, 76,186,108,116, 21,170, 47,209,  3,207, 77,130, 48,246, 42,128, 54, 62,246, 25, 39, 97,217,187,211,214,  9,179,
- 81,151, 19,178, 83, 63,142,193, 49,217, 33,248, 17,205, 56,  5, 12,154, 12, 71,123,102,111, 57,125,250,244,133,197,165, 70,163,
-185,101,199,142,234, 68,109,239,141,187,190,252,245,199,159, 58,191,244,138, 91,246,228,121,146,140,134,113,185,182, 99, 87, 20,
- 24, 57,245,248,233, 93,123,247,152, 32, 41, 85,234, 68,  1,128, 32, 69,224,220,248, 35, 47, 68, 38, 35,148, 89,107,137, 25, 20,
- 69, 69, 92,230, 83, 57,170,162,190, 40, 17,141,194, 56,167, 36,170, 68,232,172,168,  2, 35,128, 19, 96,  2, 85,223,131, 72,236,
-172, 85, 81, 52,  6,  8, 21, 68,133,137, 89, 20, 20,128,  9, 85, 85,  4,  8,193, 16,142,211, 84, 32,224,227,  8,121,151, 19, 67,
- 34,231,  3,207,255, 79,213,155,253, 74,214,165,103, 94,239,176,214,218, 83,236,136, 56,113,134,204, 60,249,205, 67,125,245, 85,
-149,171,108,183,171, 61,202,237,169,236,114,149,237,178,171, 12,182,154, 73,160,166,251,134,255,  4, 80,171,155, 65, 72,  8,  9,
-209,146,133, 68, 35,220, 72, 92,210, 32,104, 48, 32, 89,242, 88,245, 77, 57,103,158, 49, 78,204,177,199,181,222,151,139,181, 35,
- 11, 50,165, 84, 94,100, 70,158, 19,185, 99, 13,207,251, 60,191,  7,148,137, 21, 85, 69,137,152, 73,189,  6, 47,113,233,  7, 20,
- 84, 85,239,125,232, 58,107, 48,222,231, 84,213, 36,217,233,187, 95, 37,  4, 74,204,139, 79,255,230,159,253, 55,127,162,110,180,
-188,123,241,213,143,222,255,185,159,255,217, 46,120, 96,244, 93,104,218,254,102,177,171,193, 38,  9,151,179,135, 64,224,210, 98,
-183, 94, 24,195,100, 56, 79,243, 15,190,244,177,181,233,242,213, 95,  3,105,219,132,237,182,170,186, 62,248,112,118,118,127, 58,
- 59,111,154,125,  0,169,235,202, 11,144,113,237,186,107,219, 29, 25,139,100,186,206,247, 94, 70, 46,181,  0,187,166,121,119,114,
-  4,168,155,249, 85,223,122, 87, 76,172,115,208, 87,189, 49, 73, 90, 74,168,193,140,178,241,189,213,221,173, 73,210, 34, 47,119,
- 55, 23,139,229,221,174,237,117, 95,251,118,211,  7, 63, 61,126,216,245,126, 52,153, 30,  1, 88,  3, 89, 62, 65,114,128,222,158,
-165,121,146,167,105,102,152, 84,186,229,106,147, 39,  6, 80,136,178,209,228,220, 88, 84,223, 72,144,106, 95,161,111,179,188,196,
-182, 41,102, 39,  8,208,213,123,147, 30, 17, 33,205,206,170,218,135,230, 57,187,  4,129,250,174, 77,138, 50,207,143,154,102, 75,
- 46, 51, 46, 81, 47, 73, 90,132,182, 49,142, 66,223, 58,151,245,198, 73,232, 52,116,171,187,235, 98,122,146, 22, 71,190,107, 12,
- 83, 93,175,211,209, 24, 73,178,209, 36, 47,198, 62,  8,132,108,118,254,177, 53,148,  1,251,242,120,185,184, 42,138,113, 39,125,
- 49, 30,239,154, 94,136,243,108,212, 84, 43,144, 22, 56, 17,224, 81, 98,171,190, 13,125,207,214, 54, 77,  5, 96, 64,252,126,183,
-152, 28,157,250,224, 67,  8,142,123,223,238,217,218,137,213,206,211, 23, 47, 94,125,244,240, 62, 42, 74, 16, 84,153,142, 71,105,
- 49, 42, 39, 51,101,102, 55,  6,128,203,249, 46,207,138,119, 30,146,248,230,114,190, 24,149,147,175,125,249, 13, 67,212,212, 13,
-128,196,241,215, 96,116, 68,  5,140,118,222,131, 27, 66,  5, 84, 80, 15,167, 25, 16, 36,106,218,126,185,235,132,178,211,211, 41,
-128,236,215,183, 23, 47, 47,158,189,120,113,113, 59, 95,172,215,183,203,245,102, 87,189,255,198,249,183,255,222, 55,127,234,227,
-119, 44,187,253,182,117, 72, 88,181, 47,175,174, 94, 93,221,222, 44,183,117,215,191,243,214,131,147,251, 39, 79,158,190, 68,210,
-227,123, 39,207,254,246,209, 46,108,167,206,154,193,225, 67,162,241,164, 27, 53,211,232,234,132, 32,130,128,214,112, 28,  4,196,
-207,138,  1,138,150,142,160, 26,143, 80, 68,136,214,136, 23,195, 24,212,196, 89, 89, 28, 10,247, 65, 25,137,  1,172,165,198,  7,
- 11,106,136,131,  6, 80, 12, 74,128,195, 13, 56, 26,251, 68,212, 32,244,209, 75, 42,154, 25, 91,249,158, 20, 28,155, 56, 85, 82,
- 50,136,104,163,193,148,200,135, 48, 88, 10,137,226,118, 34, 42, 28, 71,109,136,206, 26, 81,144,  0,200,234,144,227,103,158,152,
- 64,201,  7, 69,  0,107, 89, 68, 69,  4,227,228, 79, 69, 80,153,136,129, 36, 32,168, 26,199, 10, 72,160, 34, 24, 68,218,174,117,
-136,252,251,191,245,173, 97,220,  6,168,162, 72,175, 61, 27,136,  8, 76,  3, 57,128,227, 59,166,175,135,126,  8, 58,172,215,204,
-128,236,154,253,154, 92,150, 36, 12,196,241, 37, 98, 70, 32,122, 57, 68,  5, 84,  3,196,212, 67,156, 66,176, 68,186,128, 34,129,
- 34, 34, 25, 98, 99, 16,135,191, 70, 67,186,211, 67, 52,150, 96,180,114,197,131,132,210,143, 29,245, 49, 43,134,132,164, 97,200,
-143, 74, 16,  4, 62,154,142,127,248,233, 39, 68, 48, 30,141,147, 52,203,146,108,191, 93,126,246,248,233,199, 31,127,148, 37,182,
-174,107, 66, 80,239,159, 63,125,218,116, 97,113,123,169, 64,121, 90,152, 52,161, 97,240,136, 32, 74,209,199,  2,138,136,108, 76,
-100, 57,224,193, 26,140,  0,  8,  6, 34,126,  0,130, 72,  0,160, 56,250,136,130, 13, 27, 27,141,  4, 68, 76,108,162,163, 37, 72,
-128,104, 93, 31, 50, 92,131,135, 61,142, 92,  6,187,165,101,130,215,184,135,104,  0,245, 56,196, 78,134,205, 16, 16, 85,149,  7,
-159,232, 48,174,  8,162, 28,125, 59,131,171, 85,  1,145,172,173,246,107, 75,136,132,140, 24,188,156,189,251, 19,105, 81,114,238,
- 86, 47,159,253,103,255,225,127,212,248,164,217,109, 30,220, 59,254,227, 63,254, 55,157,195,222,  7, 98,187,190,189,221,238,171,
-171,235,155,166,247,227,201,145,177,174, 93,223, 74,223,  5,213, 52,207,122, 31,218,221, 38,203, 83,223,110,250,250, 46,205,210,
-229,114,253,242,250,122,185, 93,239,247,245,116,148, 55, 77, 91,215, 45,170,162,239, 12, 66, 85,109,171,118, 95,183,149,146,171,
-118,123,237,155,162, 40, 70,197, 24, 92,126,122,255,173,119, 62,248, 56,136,174, 23, 55, 38, 25,245, 77,131, 32,171,155,167,  2,
-100, 56,247,221, 62,207, 50,241,109,211,  6, 54,110,179,184,122,249,252,211, 94,112, 50, 59, 43, 82,158, 76,142,206, 78,207,207,
-238,189,153,229,101, 98,168,200,115,107,243,196,210,241,100, 58, 59, 58, 97,195,134, 57, 75,115, 38,  5,  5, 52, 73, 90, 28, 21,
-163,177,229,132,136, 67,183,214,160, 93,187, 67,192,166,173,119,251,182,109, 27,235,220,110,241,188,105,118,163,233, 73,223,110,
- 85,130, 37, 90, 46,174,187,118,239,210,162,241, 61,179,171,183,139, 98,116,156,164,101,215, 86,171,155,207, 93, 90,102,121,222,
-238, 22,251,205,210, 38, 69,239, 59, 91, 76,  8,185,173, 87,190,175, 37,244,162,228,146,196,166, 37, 32,238, 23,215,192,201,120,
-114, 66,100,155,106,125,118,254, 78, 91,175,125,187, 33,162,182,105,125,  8,156, 29,133,190, 78,211,  4,137,179, 98, 90,239,215,
- 65, 84,196,231,121,177, 93,223,181, 29,  0, 83, 85, 87,139,229, 93, 80,204, 51,151, 37,174,235, 91,107, 18, 96, 72, 93, 74, 54,
-201,211,204,184, 36, 39,220,182,225,106,185, 58, 41, 83, 32, 83,213, 85,219,181,204, 46,201,198, 46, 73,179, 52,223,239,119,251,
-237,186,174,214, 47, 47, 46, 81,251,143, 62,124,127, 58, 30,139,130,136, 68,119,111, 20, 15,134, 88,182,198,103,137,200, 25,141,
-122,251,  0, 21, 65, 85,181,132,190, 15, 55,155,106,223, 80, 54, 62, 46,139, 81,232,171,235,139, 23,143, 31, 63,254,225, 23,143,
-159, 94, 94,221, 44,150, 23,183, 43, 66,252,222,175,255,194,191,245,189, 95,127,251,205, 51,239,  9,123,178, 33,108, 22,183,143,
- 31, 61,123,118,113,119,117,183,244,193,255,157,159,254,170, 41,211,207,158,188,184,185, 93,172,119,213,103,143,158,165,168,211,
- 44,183,  4, 97,136,104,  3, 68,119, 39,161,115, 22,  0, 33,102,172,226, 16, 14,193, 48,201,193, 21,148, 16, 67,212,226, 85,226,
-194, 22, 36,136,130, 49, 20,130, 26, 66, 66, 66,132, 32,234, 37,240, 65,232,140, 30, 17, 66,236, 85, 12, 57,195,212, 41,164,142,
-145,204,193, 16,135,200,208,118,194, 68,214,196, 40,169, 18, 34,177,  5, 84, 64,116, 76,113,177, 69, 21, 98,210,129,109, 64,113,
- 24, 29, 21, 33, 98,  2,  0,102,102, 84, 32, 66, 38,199,  4,204, 17, 82,130,241,232,168, 64,  8, 76, 16, 84,131,168,  2, 48, 98,
- 84,102, 40,154,115,112,216,179, 16,145, 77,100,143, 80,221,  7,  8,125,145, 39,252,  7,223,254, 13, 61,184,119, 32,190, 63, 81,
- 33,145,225,128, 44, 65,137,249,240, 82,  8,113,113, 81, 80, 13,  0,  0,  2,  2,  2,170,224,101,189,171, 71,101,  1, 26, 87,174,
-168, 91,  8, 18,137,246, 64, 20, 55,177,248,178,  3,133, 33, 42,243, 68, 81,134,102,107,  6, 97, 66,226,219,165,160, 10,  1,128,
-  7,235, 33,  8,224,107, 67, 97,156, 88,170, 32, 17,113,188, 24, 69,145, 90, 68, 85, 33,248,208, 79, 38,211,122,183,190,184,188,
-201,210,236,248,228,216, 57, 75,170,183,183, 55,155,170,249,240,189,119,189, 15, 93, 87,165, 89, 49,158, 30,127,249, 43, 95,109,
-251,246,195, 47,127,109,183,153, 27, 78,226,117,239, 96, 56, 12, 68, 28, 69, 12,137,175,141,135,159, 49, 30,  2,114,112,197, 12,
- 70,196, 67,134,  0,152,  8, 48, 62, 88, 68,196,100, 24,  1, 37, 40, 17, 25, 34,  5, 85, 15,198,152, 56,241,  4, 68, 20,137,238,
-182,190, 29,161,  0,  0, 32,  0, 73, 68, 65, 84,210,184, 43,134,136,154,137,142,174,225, 55, 48,108, 11,162,196,104,  0,227,163,
-131, 68, 76,  8, 64, 94, 36, 98,  9,226, 89, 67, 68,  0,133,200, 16,185,122, 55, 79,153,  0, 21,130, 47,207,222, 62,122,235,125,
- 16,237,170,221,127,245, 79,254,233,213,170, 75, 51,155, 37,246,223,249,247,254,225,241,236,168,218,239,200,119,187,229, 98, 87,
-215, 47, 94,188,218,108,150, 73, 49,153,156,156,249,190,101,231,128, 93,  8,146, 48, 43, 48, 24, 50,201,168,222,220,181,213, 93,
- 98,146,229,102,253,234,250,102,189,217,  6,193,223,248,213,223,235,219,118, 49,191,186,186,122,186,175,118,183,183,175,124, 16,
-199,198,247, 34,202,125,187,207,210,180, 44, 10,195,228,202,163, 55,223,253,210,244,236, 65, 83,239,250,182,118,233, 40, 27,143,
- 17,144, 92,105, 93,230,251, 30, 84,250,174,221,205, 95,112,146, 45, 87,243,128,238,250,246,210,165,227,212,130, 74,200,243,137,
- 49,166,111,183, 94,  2,187,172,223, 92,229, 89,234, 18,227,146,188,235,118,109,189, 27, 77, 79, 65,186,229,226, 82,218,122, 58,
- 59,  7,109, 49, 52, 77,179,113,105, 81,237, 54,189,  8,114, 90,213, 53,160, 33,194, 32, 82,237, 86,161,111,102,247,223, 47, 70,
-211,253,110,213,215,173,115,217,236,244,205,147,179,243, 94,250,224,  1,217,161, 77,172,181,210, 44, 85,125, 54,154, 37,197, 81,
- 91,237,140, 27,155, 52, 77,242,145,203, 70,214,230,117,187, 35,147,155, 36,103, 67, 46, 29, 85,235,185, 37, 76,210, 44, 59, 58,
- 31,141,143,251,118,139,108,136,141,223,207,145,204,232,248,156, 93,201,214,248,110, 75, 73, 62, 61,122,144, 36,142,141, 73,178,
-204, 37,169, 73,138, 36, 47,154,102,183, 93, 47, 44, 81,154,101,132, 66, 54, 57,157, 30,237,234,250,238,246,154,141,173,234,170,
-107,235,206,123, 38,211,183,219,213,122,233, 69, 63,120,227,222,182,237,151,155, 13,133,198, 37,229, 40, 27,185,180, 92,239,107,
- 34,241,245, 22,  3, 84,237,254,114,126, 53, 57,122, 99, 84,158, 78, 39,169, 97, 82, 17,124,125, 46, 64,  2, 80,160,168, 18,131,
-  4, 69, 38,  9, 18,215, 82,149,128,  0,  0,194,140,219,166,191,217,244,  1,220,209,244,152, 49,236, 86,243,103,207, 31,127,242,
-249,163, 31,126,254,248,226,250,230,118,185,220, 87,205,199, 31,188,253,143,254,248, 59,191,252,115,223,240, 34,190,131,  4,201,
-239, 54, 47,159, 63,253,228,139,231,215,203,205,106,183,127,120, 58, 61,185,119,246,249,203, 23,159,124,250,248,141,251,103,159,
- 62,126,213, 85,213, 89,153, 23,169, 83,208, 32, 26, 68, 85,  5,163,237,131, 32,  6,119,172, 97,112,164, 33, 14,117,129,136,122,
- 47, 42, 18,207,209, 65,197, 43,112,244, 46,  0,244,126,208,117,  5,  1, 68,153, 49,250, 62, 16, 49, 49,  6,  9,131, 42, 15,139,
- 48,  8,  2, 19, 89,195, 30, 48,179, 22,  5,188,134,120,  8, 19,  0,  5,112,214, 32, 66,  8, 66,128, 48, 28,133, 21,  8,  0, 48,
- 72, 24,178, 94,138,204, 28, 79, 89, 17, 84, 67,108,144,  8, 85, 84,145,  9,117, 96,216,160, 42,  9,136,202, 96,196, 16, 37,  4,
- 77,172, 17, 80, 17,140,192, 32,  2, 13,170, 28,121, 35,  0,  4,100, 12,139,130,136, 26,195,168, 74,134, 59,213,166,105, 82,103,
-153,137,191,255,157,223,164,193,  3, 27,255, 43,113, 56, 82, 14,110, 62, 53,150,162,219, 58, 26,209,117, 72,240, 12, 22, 60,208,
-120,188, 14,198,218,219,249,109, 94,148,206,177,198, 23, 84,193,131,129,230,199,145,  7,130,225,172, 13,128, 24,167, 13,  8, 68,
-108, 57, 90,252, 76,132,176,196,113, 13,197,220,231,193,131, 79, 28, 65,104,195,227,  6, 26,185,  5,164,140,160,196,150,145, 67,
- 52,226, 40,196, 51,242,249,189,251,207,158, 63,109,219,182,200,179,241,120,102,140,181,172,127,253,195, 79, 79,206, 78,238,157,
- 28,119,189, 39, 32,  8,253,118,183, 33,  8,183,151,175, 86,203, 85,154,100,196,198, 88, 23, 79,  3,175,173,193,130,  2, 66,113,
-226, 11, 32,136,134, 40,186,144, 56, 98, 12,134,141,148,  7,136,  2,188,118, 35, 29, 28,184, 18,130, 30,192,  2,226,163,134,136,
-135,189,250,199,139,120,124,239, 48,230,  9, 68, 95,179,110,226,  9, 29, 21, 52, 62, 23,128,192,164, 50,120,187,162,186,207,131,
-243, 17,135,108, 25,  2, 51,147,117, 65,197,239,214,206, 26, 13,158,147,226,244,163,159,100,102,145,246, 79,255,228, 79,126,244,
-249,243,196, 25, 75,240,123,223,253,238,151,190,244,222,118,117,135,100,219,186,106,  3, 94,221,204, 23,203, 85, 47, 48, 57,154,
-161, 73,250,182,202, 38, 39,125,211, 36,  9, 33,185,116, 84, 52,187,109,183, 91,246,161, 69, 95,177,179, 55,139,213,197,245,237,
-114,179, 45,199,227,159,253,198,207,  1, 64, 78,112, 60,202, 13,202,114,219,174,246,213,118,191,107,218, 94,180,103,194, 34, 47,
- 38,229,212,230,229,244,228,236,225, 59, 31,  5,213,186,218,239,151,175,  4,  8,149,148, 64,130,239,219,150,216,182,213, 70,196,
-231,229,177, 74,111,109, 10, 34,183, 55,151,121,158,213,155, 59,103,147,114, 60,201,199,167,117,179, 67,118,121, 81,250, 32,214,
-165,163, 98,214,117,149,177, 57, 24,183,189,254, 36, 27, 29,179, 49,134, 19,147,100,108, 24, 52, 32,217,188, 60, 82, 96, 64,118,
-206, 25,118, 73,154,163,116,105, 49, 33, 99,219,174,149,126,135,208, 50,115,146,151, 77, 93,245,221,158,216, 58,227,210, 52,147,
-208, 97,240,162,128,224,243,242,184, 24, 77,156,113,189,111,108, 58, 98, 55, 66,245, 74,228,235, 93,223,109,242,242,132, 20,122,
-241,134, 25,173, 51,198,238,182, 43,182,142,140, 97, 99, 99,186,210, 24,199,217, 68, 85, 33, 52,117,189,201, 70, 39,163,209,152,
- 13, 89,151,  4,223,245,189, 10,  0,160,233,155, 42,244, 45,113, 66,198,132,208, 55,117,195,132, 41, 67,211, 54,147,241, 52,201,
-179,201,248,168, 24, 77, 20,176,109, 27,239, 67, 89,142,203, 34, 67,208,220,152, 77, 47,109,144,113,158,  1, 99, 85,173,242, 44,
- 29, 21,121,211,237,151,187,181, 97,120,112,255,173,179,147,147,106,187, 94, 44,119,229, 40,201, 83,171,138, 42, 66, 48, 92,209,
-135, 73,219,  0,152, 82, 38, 36, 80, 20,136,200,150,222,251,249,166,219,214, 56, 25,207,202, 34,107,170,213,197,243,103,159,126,
-241,197, 39, 95, 60,125,252,226,226,213,205,124,179,175,207,207, 78,191,247,107,191,248, 71,223,253,123,199,179,241,110,215, 27,
- 49, 86,252,245,171, 23, 95, 60,121,252,236,114,190,221, 55,247,206, 78,198,179,169, 97,117,229, 72, 20, 94, 93,222,173, 23,171,
-113, 98,167,101,106,145, 68, 85, 20, 66, 76,209,255,255,115,127,113,  2, 23,231,169,140,112,192,155, 69,176, 10,  4,141,209, 36,
- 36, 32, 25, 78,147, 24,189,136,  3,171, 64, 69, 69, 13,198, 56,186, 26, 68,136,142, 65, 80, 69,160, 40,204, 14,218,189, 40,  0,
-227,193,251, 73,200,136,170,106,136, 37,202, 53,  3,175,140,130,132, 32, 18,  1, 39,160,135,241, 24,  0, 30, 66,142,175,131, 53,
-206,146,  2, 17, 64, 12,161, 19,  2, 35, 25,102, 66, 18, 47, 49,168, 31, 68, 52, 40,198,239, 14, 81,  7,  7, 53,  5, 80,199,230,
- 64,157,194,214,183,187,106, 11,234,157,117,251,170,119,  4,121,150,  2, 16,255,193,183,191,133,128, 32,175, 23,225,248,134, 28,
-244, 25, 27, 67, 68,131,183,250,240,103,226,152, 69, 20, 15, 75, 60, 34,147, 37,241,141, 15,121,158, 31,210,249, 26,205,253,209,
-208,205, 68,134, 34, 25, 17,226,238, 19, 95, 41,134,155,226,228, 48, 90,194,225,  0,210,138, 99,113, 24,214,188, 65,111,127,109,
- 24, 29, 88, 25, 24, 81, 92, 49,195, 48,172,161, 17,209,  3, 10,105, 86,140,203,209,211,103,207,153,185, 44,203,108, 52, 10, 93,
-232,251,238,217,197,213, 87,190,252,  1,  2,181, 77,197,132,109,211,148,211,217,252,246,250,205,247,190, 74,208,249,222,179, 51,
-113,202, 26,255,209, 32, 66, 58,124, 85, 10,192,104, 40, 14, 22,226, 20, 34,154, 96, 20,137,137,162, 85, 95, 33, 14, 21,136,137,
-140,  9,189, 87, 64, 98,139,168, 34,253,  0,212, 68,208, 32, 68,  6, 35, 82,143,136,137,226,162,124,152,208,202,  1, 25, 54,248,
-236,163,111, 21, 16, 72, 68, 34,129,136, 40, 18, 14, 16,128,137,192, 48,200,240, 22, 34,162, 49,  6, 17, 25,185,105, 26,232,247,
-  8,  2,156,223,251,248,103,146, 36,  1,134,127,241, 39,255,237,255,243,127,253, 37,160, 26,196,239,254,238,239,127,253,103,126,
-170,243, 33,180,173,  2,118,166, 32,103, 30,127,254,105, 35,198,229,163, 52, 43,200,164,140,218, 53, 85, 62,158, 16,160,203,242,
-221,106,153,100, 37,166, 73,187,124, 73,136,226,195,139,171,155,235,249,124,187,223,190,255,206,151, 63,120,231, 75,221,126,169,
-205, 70,212,247,109,171,234, 45,163,134, 80,181,181, 97,195,200,153, 99,227,242,201,233, 27,179,211,183,239,189,249, 86,219,214,
-187,253,222,216,210,185,164,171,215,100,178,174,173,251, 94,234,253,109,223,183,157,247, 73,146, 74,223,230,121,190, 92,221,117,
- 34,227,241, 44,203,138,114, 60,214,208,231,229,209,110,179, 40,203, 19, 98,139,136, 10,237,102,187, 12,192,142,  2, 38, 83, 82,
-200,203, 99,237,122,180, 22, 65,251,102,143, 12,105, 49,147,222, 19,120, 36, 98,230,182,221,131,244,251,245,157,181,217,126,121,
-  1,192,105, 62,203,199,227,166,217, 27, 87,244,138,189,247,132,241, 14,174,198,166,117,215,248,110,107,216, 41,168, 75,138,196,
-242,250,238,185,117,  5, 51,245,253,174,111,186,180, 24,141,167,103,204,184,185,123,101, 76, 10,218, 26, 67,136,144,184, 12,145,
-130,111, 69,149,217, 26, 75, 26,194,110,241, 60, 75, 70,197,120,150,101, 83,147,142, 66,215,181,251,185,168,189,187,248,209,228,
-248,173,122,123, 19,131,135,210, 86,206,114,219,238, 67,232,179,172,172,186, 32,  2,137, 69, 38, 98, 54,137, 97,245,189, 72, 79,
-168,198, 24, 36,174,118, 27, 31, 72,197, 79,138,114,177,217, 85,125,119, 54, 61, 74,139,210, 80, 39, 18,182,141, 47, 71,179,113,
-145, 10, 36,  1, 85,250, 74,208,237,250, 60, 75, 37,205, 48,242, 81,226,113, 74, 67,148, 21, 40,114,105, 14, 92, 41, 21,213,249,
-182,190,221,116, 46, 25,151,227, 50,116,245,245,197,139,199,143,158,124,246,248,201,167, 79,158,190,186,157, 95,223, 45,147, 36,
-253,189, 95,249,217, 63,250,206, 47,127,249,131,183,  3,128,118,152, 42,237,239,110,159, 60,122,252,248,229,213,197,221,218,251,
-254,239,254,244,215,147,163,209,143, 30, 63, 73, 45, 93,174, 55, 79,159,190,204, 13,165,150, 51,103, 53,  0, 49,  4,145, 32,209,
- 51, 29, 93,208, 50,160, 90,108,212,  3, 34,247,102, 56, 74, 17,146, 33,138,160, 52, 38,142,176, 64, 96,136,218,240,144, 39, 50,
-228, 67, 32,226, 65,156,  9,  0, 40,150, 56,232,160,144, 14,  4, 42,102, 38,244, 58,172,231,132, 36,160,175, 19,234,168, 58, 88,
- 51, 15, 25, 49,141,169, 46,132, 32, 64, 17, 53, 16,165, 87,133,131,122, 67,135, 83, 32,121, 81,  4, 32,  5,136, 91, 11, 35, 51,
- 43, 64, 47,194, 68, 74, 36,226, 69, 21,  1,141, 97, 47, 42,  0,134,144,153,124,  0,131,104,216, 40,170,146,  1,208, 32,186,218,
-239,171,170,114,198,214, 94,  0,100,154, 23,200, 54,168,231, 31,252,206,119, 15, 78,202,248, 83, 65, 35, 98, 43, 26, 66, 44,136,
-210, 16, 53,178,120,176,112,128, 68,115,203,192,251,164,  0,136,100, 19,190,157,207,103,179, 99, 38, 84,145, 24,137,141,163,246,
-136,110,128, 65,136,143, 17,241,  3,150, 40,206,110, 68,145,  8, 16, 53,196, 69, 76, 98,250,102,  8,215, 15, 70, 73,  6, 21, 84,
-133, 40, 97,199, 61, 15,  9,  9,136, 56,  2,213, 16,144, 15,129, 13, 36, 20,239,167,211,201,124,126,189, 90,109, 18,151, 76,143,
-142, 29, 19, 72,255,228,217,211,172, 40,223, 58,191,215,180,173, 34, 56,166,187,249,197,213,197,229,104, 84,186,196, 86,251,189,
-115,  9, 17,147,177, 33,  4, 68, 34,130,200, 81, 34,138, 90, 25,129, 12,236,203,104,101,137,215, 87, 36, 67,196,145,191, 51, 60,
-  3,162, 16, 20, 13, 33,160,104, 79, 20,103, 32,131,254,101,173,141,102,128,232, 55,141,204,  3, 56, 32, 68, 99,154, 44,166,121,
-227,115, 19,159,187,110,191, 92, 47,110, 34, 16, 15,  0,120,  8, 72, 33, 24, 82, 81,239, 37,158,238,153, 34, 21, 68,144,184,107,
- 27, 13,173,113,233,233,251, 63, 81, 76, 38, 64,244, 47,255,135,127,254,191,252,203,127, 69, 76, 10,221,111,255,246,239,254,210,
-183,126, 45,180,141,175,107, 52,166,222, 85,197,241,241,103,159, 60,218,119, 98,179, 12,186,189, 77, 70, 54, 45,162, 11,117, 92,
- 78,186,182,219,109,230, 68,214,247,221,118, 91,181,219, 87,214, 38, 77,239, 95, 92, 93, 94,223,173,171,166,254,230, 79,255,226,
-249,241,113,189, 93, 62,124,112,186, 95,173,246,251,253,110,191,238,154,174,239,187,  8, 38, 78, 24,242, 98, 60,154,220, 59,190,
-255,230,201,131, 55,210, 34, 91, 92,189,234,234,141,248, 94,124, 67, 54,221,205,159,145, 43,144,220,120, 58, 29,143, 38, 93,215,
- 49,104, 93, 45,154,166, 93, 46, 87, 89, 94, 74,  8,155,213, 69,146,142, 58,133,237,190,113,217,116, 84,100,193,119,196,166, 28,
- 31,133,  0, 65, 67,232, 27, 32,155,142, 38,228, 43,128,192,198,121,239, 67,223, 10,  0,153,188,110,246,192, 68, 40,136,214, 37,
- 37, 17, 37,249,136,172,117, 46,  1,232, 93,146,102,121,193, 38,173,215, 87, 26,124, 50,154,248,221,  2,141,101,240,187,197, 75,
- 55,154, 58, 91,116,237,190, 24, 31, 39, 89,225,125,107, 92,162, 32,245,102, 97,216, 58,155,113,146, 75,  8, 22,177,174,118, 77,
-181,156,158,188,195, 72,249,228, 56,116,141, 34, 22,121,177, 91, 93,138,242,126, 53,223,111,230,247,222,250, 74,231,219,197,205,
-197,252,197, 95,228,227,211, 16,250,190,222,165,197, 88,209,222, 92,127,114,114,255, 67, 68,234,251,122, 52, 62,107,218,189,244,
-125,154, 79, 73, 68, 67, 39, 26,156,203,178,172,140, 10, 95,221,119,219,170,202, 18,  7, 10, 46, 41, 70,197,184,110,170, 52, 45,
-124,232, 30,156, 28,239, 91,185, 92,220,158,159, 76,170, 30, 92,126,154,165,206, 38, 25, 91, 62, 59,190,223,117,226,123, 13,190,
-201, 39, 71,187,154, 74,199,169,141,247, 74, 19,153,131,  0, 98,144, 84,226, 32, 74, 25,177,106,187,139,219,170,237,205,209,236,
- 56, 53,124,119,243,242,201,163,207,159,189,184,248,236,233,179, 39, 23,151, 55,155,205,174,106,191,254,225,187,255,193,223,255,
-157,111,254,228,135, 10,228,189, 22, 38,211,186,122,241,236,241,231, 79,158,191,156, 47,230,203,205,135,111,158,177,113, 47,239,
-110, 47,111,110,137,146, 31,126,250,197,126, 83, 21, 76,121,154,193, 64,116,210, 32, 34,162,193, 43,209,224,  3, 70, 34,235, 44,
- 34,106,136,108, 69, 80,164,160,154,185,132,128, 68,189,138, 98, 60,161,171,180, 18,226, 41,151,  6,  9, 85,136,168, 11,  2,  8,
-164,168,  8,170,106, 12,145, 65,223,171, 18, 48, 34, 19, 42,104,194, 36,136, 10,104,  8, 45,178,  0, 70,238,107, 98,141,  4,101,
-166,  3,181, 81, 13, 50, 96,164,249,129,168, 32,128, 37,246,170,  6,217, 89, 51,200,179, 76,206,217,200,207,138, 94,113,162,152,
-121, 66,  5,177,204,170, 16, 68, 84, 53,179,  6, 17,124,219,123, 65,203, 72, 68, 94, 52, 97, 78, 12,  5, 69, 85, 49, 20,229,254,
- 96, 92, 70,113, 14,  2,202,100,  0,217,171,  4,145,105, 81, 32, 83,145,184, 46, 40,127,255,219,223,  2, 16,197,  8,122,199,193,
-251,  4,136,136,162,138,209,195, 30,191,142,152,114, 18, 21,  8,135, 64, 64, 92,117, 89, 73, 21,149, 66,255,127,255,217,191,210,
-236,244,236,120,172,226, 97, 24, 49,  2, 29, 96,185,170,162, 63,102, 10, 40,234,  0,208, 28, 36,102, 34,140,145,212,193,127,165,
-196,230,  0,207, 26,134,190, 58,140,128, 33, 78,161,163, 63, 48, 30,134,145,145,137,145,136,140, 33,100, 34, 70,212, 56,236, 46,
-139,209,231,143, 30, 25,166, 81,158,143,198, 19,239,189,248,240,215, 63,250,236,157,119,222, 30,229, 89,211,212,214, 36, 26,232,
-225,187, 95, 10,237, 54, 27, 31,213,251, 45,147, 77,146, 20, 32, 96,252, 95, 83, 69, 36,100, 30,238, 13,164, 26,167, 14, 56, 92,
-185,  8,144,140, 17,245, 32, 26, 83,  2, 49,195,230, 67,143, 76,  8, 52,208,208,  8,136, 40, 70,222,  0, 73,195,240,216, 12,186,
- 83, 60,129, 48, 73, 84, 54, 95,199,219,134,116, 49, 33, 99,232,186,235,139,199,119,151,207,218,174, 73,178,210,217, 12, 48, 50,
-146,101,200,210, 14, 55, 82,142,251,  1, 16, 51,219,182,218,106,183,155,220,123,111,122,255, 33, 90,254,171, 63,251, 63,254,244,
-159,255,143,104,156, 37,252,123,191,250,155,191,252,203,191,208, 54,117, 64, 98,195,190,247,110, 50, 93,220, 92, 61,254,226,133,
-162,128,120,165,148, 93,102,108, 26,124,157,184, 84,  7,127,177,201,138,241,171,151,207,155,221, 58, 49,181, 33,179,219, 87,183,
-183,243,155,213, 74, 21,126,233,103,126,201, 50,174, 22,183,161,175,111,110, 94,117,222,175,119,123, 37, 82,164, 36,113, 36,162,
- 40, 73,154,159,158,206, 78,239,157,151,147, 89,189,185,186,187,124,145,143,143,  9, 67, 80,107,140,237,218,106,191,153, 27, 66,
-106,238,234,170,  1,223,178,181,162,184,222,238,150,171,121, 60,130, 77, 78, 31, 88, 87, 36,217, 20,218,221,116, 54, 75,210,124,
-179,184, 14,210,231,134,234,122, 11,118, 52,202,199,137, 81,  4,232,218, 22,109, 90, 56,204,202, 51,235,210, 36, 31,129,  6,231,
- 82,210,160, 18,218,237,210, 55,171,190,217, 33, 59, 31,124,240, 93,232,154,128,148,230,165, 74,168, 58, 15, 72,210,247, 93, 87,
-247,117,165,100, 67,  0,223, 54,125,183,113, 46,  1,116,222, 55,125, 83,155, 36, 73,178, 82, 68,124,191, 71, 99,188,239, 21,201,
-119, 77,146, 20,219,187,151,174,152,244,205,190,237,122,178,169,130,238,215,243,188, 60, 38,195,162,234,242,178,175, 22, 93,189,
- 77, 82,215,117,158, 81, 76, 94,246, 94,  3, 64,240,237,116,246,214,104, 52, 37,130,208,251,182,217, 49,161,181,121,150, 37,  0,
- 97,223,182,214, 88,231,210,206,247,134,140, 87, 76,216,100,105, 54, 29,141,108, 94,250,182,182,  6, 68,217, 75, 96,  4,  6, 45,
-114,215,  4,189, 92, 46,207,202,163,114, 92, 38, 89,233,251,106, 52,154, 57, 11,155,245, 60,205,179,125,221, 22,121,129,200,158,
-166,134,170,204, 97, 16,193,  3,150, 52, 68, 19,  1,131, 87,189, 93,215,139,141,207,138,241,120, 60,234,234,253,229,171,103,159,
-126,246,232,243, 23, 47, 31, 61,127,241,242,102,190,222, 85, 39,211,241,247,127,227, 23,255,254,239,253, 74, 57, 46,171,218, 39,
-156, 38,192,235,219,171, 39,143,158, 60,121,113,189,216,237,142,198, 99, 98,154, 29, 79,196,114,211,135, 39, 79, 94,236, 55,155,
-105,158,167,214,198,188, 61, 13, 55,216,136,191,  2,195,209,197,141,132,131, 64, 97,136,141,179,209, 79,193, 68,140,209, 92, 16,
-124,136,248,191, 56, 83, 29, 92,240,136,236,172, 33, 38,  9,162, 10,214, 80,180,158, 51, 15,248, 17, 31, 20, 16,157,177,209, 57,
-111,141,233,130,196, 79, 83,132,138, 48,161,179, 86, 68,130, 68, 52,202, 32,211,139, 66,136, 71,119,198,131,209, 77,  5,213, 34,
- 89,230, 16,137, 13, 76,168, 49,191,138,162,160,170, 38, 34,127, 99, 15,  3, 89, 47, 18,211,191,  8, 24,194,128,119, 75,172,  1,
- 34,141, 58, 15, 82,208, 65, 93, 17,  0, 64, 81, 69, 67,204,236, 16,213, 26, 99,  8,216, 90,239,253,200,185, 60, 31, 33,114, 36,
-203,155, 56,212, 37,141,220,200,  1, 84, 31,227, 67,195,247, 54,224, 98, 52,138,188, 62,202,113,170, 72,106, 34,233, 24,226,174,
- 68,174, 28,143,202,201,213,237,252,227,247,206,  4,137, 15, 76, 11,208, 88, 91, 65, 10,160, 65,129,244,128,211,101,160,104,190,
-212,129, 69,192,128, 33, 82, 16,144,137, 14,238,157,168,212, 83,196,225, 34,235, 16,231,  5,136,170, 25, 32,106,  0,208,225, 12,
- 28,157,152, 72,175,209,243,225,222,253,  7, 31,190,255,246, 15, 63,121, 52, 41,167,121, 49,154,157,156,213, 77,117,117,125,243,
- 63,255,239,255,231,191,246, 59,223, 73, 18,223,117, 85, 81,102,  8,254,250,250, 98,223,246, 18, 90, 21, 77, 51, 71,100,144,152,
-112,184,157, 14,216, 47,142, 79, 12,197,171, 76,148,236,148, 34,  9,152,128, 32,174,206,145,212, 73,132, 26, 58,101, 23,155, 58,
-212, 43,218,104,245,241,104,  1, 35, 23,116,128,110,147,138,168,  0,169, 12,114, 84,212,134, 20,227, 96,121,176, 10,177,177,214,
-246,189,160, 66,208, 16, 72, 73,163,230,245,227, 20,246, 96, 90,250,177,142,133,190,173, 70,147,123,179, 55,222, 65,199, 55,207,
-159,253,119,127,242,223,247, 74, 70,228,239,124,243,231,126,253,183,127,115,254,226, 89, 23,120,118, 58, 21,223, 52,117,227,146,
-236,233, 23, 79, 39,167,247,183,171, 57, 72,112,197,200,144,138,  8, 41,249,174,113,197, 72,118, 59, 99,211,229,252,122,187, 94,
- 59,234,236,200,137, 98,213,182,157,104,  8, 82, 20,249,228,232, 72, 67,127,124,116,180, 89,205, 83,155,  8, 42,208, 90, 67,112,
-206,160, 74, 64,180, 54, 77, 92, 58,158,156,144,115,206,186,205,162,222, 55,251, 41,179,154,146, 52, 52, 85,157,143, 79, 77,154,
- 73,211, 85,141, 40,245, 76,210,236,215, 72,188,218,172,124,  8, 46,201, 20,109,211,244,161, 89,142,143,239,113,234,178, 98, 44,
- 34,217,228, 44,207, 70, 93,189,238,218,182, 40, 78,179, 44, 89, 45,175,210, 36,243, 34,  8,102,181,190, 73,133, 52,120, 31,188,
-117,133,104,221, 54, 59, 85, 32,209,170,174, 93,146, 65,144,205,102,165,193, 55,251, 59,182,187, 34, 73,198, 39,247, 76,211,106,
-128,106,115,105,109, 78,105, 46,156,143, 70,211,186,218,104,232, 65,125,179,191,147,222, 54,219,165,205, 70,163,163,  7,125,  8,
-193,107,183, 89,150, 39,231, 77, 93,139,111,202,241,232,244,225,251,202,134,196, 88,114,203,171, 23,137,203,146,209, 88,250,  6,
-216,200,238,198,141,239, 87,117, 55, 61, 62, 13, 94,136,231,171,197,117, 46, 38, 47,198,193,183,187,221, 93,215,213,170,161,111,
- 43,151,150,251,106,215,122,233, 85,141, 23, 81, 56, 62, 61,175,118,235,106,183,180,118,180,235,118,149,135,220,154,119,222,124,
- 75,250,166,107, 60,178, 17, 48, 29,180,121, 94,  0,232,221,122,137,160,231,211,241,178,110, 95,222,220, 36, 73, 98, 10,217, 85,
-123, 64, 99,221, 73, 50,154,230,249,168,170,119,155,249, 21,104, 47,221,186,222,151,239,156,167,133, 13,225, 80,235, 97, 25,251,
- 32,235, 77,183,237,193,114, 50,153, 58,223,181,215, 47, 47, 47,174,175, 94,190,188,124,113,115, 59, 95, 46, 23,155, 93,150, 38,
-191,245,139, 63,253,171, 63,251,141,243,251,199,117,235,195,190,181, 26,154,106, 63,159,223, 92, 93,221,188,186, 91, 90, 50, 95,
-251,202,251, 29,234,229,223, 46,  2,210,124,189,189,185,188,201,216,230,137, 99,134,224, 21,144,130,  4, 65, 81,  1, 68, 96,141,
- 46,205,184, 20,146,170, 38,198, 70, 90,183, 32, 68,220, 44,  1,134, 88, 38, 36,146, 24,246, 18,207,162,242,122,109,  2,208,166,
-239, 13, 98,226,172, 15,161, 11,194,135,161, 21, 33,106,100, 50,136, 34,136, 35, 20,133,206,247,113,190, 39,170, 28,  5,107, 36,
-141,211, 83, 36, 64, 69,  5, 70, 10, 64,132,161, 11, 62,214, 44, 68,209,128, 15, 78,136,232,189, 51, 54,138, 69, 66, 49, 53,138,
- 42,130,138,226,200,122,  9,162,234,125,207, 76, 68,232,189,136,138, 65,131,136,204, 38,104, 24,172, 36,170,136,200,132,  1, 81,
-130,178, 33, 81,102, 68, 54,108,  1, 90, 97, 47,129,217,132,182, 78,217, 76,138, 18,153, 37,120,107, 45, 33,240,247,191,251, 91,
-131,154, 17, 51,235, 18,  6,175,228,208,231, 34,120, 40,  2,136,114,132,143,139, 44,  2,227, 16,112,136, 64, 33, 36,100,195,167,
-247,239, 25,128,201,184,144,161,213, 36,146,203, 56,250,229, 35, 41,  1, 25, 21,  4,163,251,221, 34,  2,144, 33, 85, 60, 88,116,
-  6, 78,116,172, 89,137,225, 34,138,147, 17, 38,129,248,117, 33, 33, 26, 54,200, 72, 10,  4,236, 81,136,141,  4,137,  0, 60,  0,
- 69,144,129,200,  6, 16, 20, 78,143, 79,159, 63,127, 94, 55,109, 89,142,202,114,138, 12, 69, 86, 60,126,252, 36, 31, 77,206,239,
-157, 53,109, 77, 76,205,110,107,146, 49, 72,223, 52,126, 58,157, 74,156,224, 12,149,  0,116,200,168, 42, 42, 18,160, 68,145, 10,
- 25,  1, 21, 85,197,171, 14, 94,125,  0,245, 26,152, 45,  0,  4, 17, 16, 97,182,  3,238, 94,163,181,113, 72,246, 30, 64, 62,136,
-140,234,  3,196,218,168,120, 37, 49, 17, 22,198,  3, 15, 20, 94, 79, 88,201, 36,121,154, 23,249,228, 40, 73, 11, 67,134,144,128,
-135, 63, 18,135,222, 81,226,131, 24,159, 34, 70, 80,180,249, 27, 95,249,  6,167,110,125,125,243,159,255,199,255,164,106, 58,208,
-240, 51, 63,243,179,191,253,189,239,112,194,127,249,231,127,205,  8, 42, 80, 85,245,248,193,249,211,199, 47,175, 95,190,236,125,
-231,187, 54, 47,198,190,217, 18,198,216, 29,231,121, 89,239, 55,245,110, 71,160,155,213,178, 13,154, 80,155, 39,182, 15, 97,181,
-217, 92,205, 23,243,229,234,205,135,239,125,253,203, 95,111,214,215,168,126,191,219,168,234,122,183,111, 59,239,189, 15, 33, 48,
- 35,176, 45,139,241,249,249, 91,247,223,254,242,232,248,  1,168,191,189,186, 72,198,247,207, 30,220,223,173,110,196,135,208,183,
-214,229,126,183,168,170,245,102,181,  4, 52,245,126,157,231,197,246,238,213, 98, 87,229,229,145,113, 73,146,230,125,219,172,119,
-187,204,194,217,249,219,147,217,217,126,183, 87,233,214,183,143, 69,177,170,235,196,154,205,252,169, 45, 78,138,204,174, 86,235,
- 36, 45,218,222, 35, 38,125,215, 33, 37,170,161, 15,100,140, 77,179,178,175,119, 93,192,198,119, 93,219,139,132, 32,146,142,102,
-199, 39,179,113, 57, 78,179,241,110,125, 55,191,189,146,174,203,199, 83,  8,129,136, 81,122,147,228, 34,193, 89,155, 21,211,237,
-234,102, 52, 59, 31,207, 30, 24,131, 77, 85,177, 49,121, 57,189,121,250, 87,192,  6,209, 34,244, 36, 66, 72, 70,165,218,204,173,
- 75,251,174,174, 54,119,109,211,244,189,104,104, 79, 30,188,159,101,174, 90,223,181,117,221, 41,220,123,243,227, 44, 27,133,174,
-218,174,175,210,242,212,166, 19,239, 59,  4, 76,210, 76,165, 37,206,202, 81, 14,161, 69,202, 84, 61, 39, 73,175,100, 92, 70,214,
-149,229, 52,203, 11, 50,102,122,116,220,  9, 26,118,170,200, 18, 72,247,171,218,223,159,157,105,223,  4,192,241,104, 12, 46,107,
-130, 76,202,177,168,238,118,187,190, 15,109,181,237,155, 53,153,180,169, 86, 46,155,238,247, 59,178,147,170,  9, 89, 74,153,139,
-234, 39, 84,157,191, 94,246,157,216,188,204, 25,176,222, 46, 46, 46, 94, 62,121,250,236,211,167,207,190,120,121,113, 53,159,111,
-155,230,189,183, 30,254,131, 63,252,173, 95,255,197,159,116,121,210,236,  3,121,193,174,189,126,117,241,228,209,147, 23,151, 87,
-251,170,157, 78, 38, 18,250, 90,101,185,173, 46,175,239, 46, 47,174,239,110,151, 35,107,178,196,  1,170, 35,  3,128, 65,186,182,
-247,157,247, 68,232,189,198, 40,126,172, 55, 34,130,212, 24, 65, 12,160,108,152,201, 16,168,168,244,193, 91,230,200,233,237, 66,
-  0,136,250, 45,128,106, 98,109,156, 71, 89, 34, 64,236,189, 40,104,132,145,  5,  4, 17, 97, 30,178, 61, 68, 24,  4,122,  0, 34,
- 52, 76, 18,167,138,200,142,  7, 82, 83, 56, 84,167, 89, 99, 37,118,170,161, 18,  0, 50,  6,  9,175,161, 92,131, 40, 77,104,152,
- 65,193, 16,  9,196, 67,218,112,161, 48,196,145, 30,232, 69, 16,129, 99,176, 21, 80, 69, 18, 99,148, 48,168,  2,130, 33,235, 85,
- 45,179,179, 44,136,  2,200, 32,214,166,113,196,103,200, 48,129,143, 35, 73,230,170,105,219,174, 61, 42,114,101, 86, 80,199,228,
- 44,123, 81,254,254,111,127, 59, 26, 42, 35, 69, 13,134, 81,197,225,104, 25,211, 11,  7,158,144,234,144,221,130,104,192, 36, 68,
-166,  1, 85,104, 56,  4,201,179,164,222,173, 93,146, 25,  4, 17,101, 75, 24,129, 41,113, 46,200,195, 58,132,122, 64, 69,  7, 85,
-137, 66, 86,156,123,  3,  1,137, 10,179, 25, 40, 69,240, 99, 86,129, 14,225, 49, 38,100,107, 19, 98, 86,  0, 98, 14,128,134,120,
-136,243, 12,  6,204,184, 95, 97, 52,178, 74,  0,231,220, 40, 49, 79, 30, 63,205,139,209,104, 50, 78,109,166,193, 51,225, 39,143,
- 30,125,252,209,135, 73,146,180, 77,107, 44,229, 69, 57, 26,141,178,108,100, 77, 88, 45,215,121, 94, 48, 69, 70, 58,189, 70,236,
- 17,155, 88,228,132, 20,101,171, 16,111,141, 68, 36, 32, 17, 61, 54,164,250,136, 12, 91, 34, 20, 13,241, 34, 40,209,244, 73,  7,
-243,124, 76,169,  1, 74,232,112, 80,241,  6,158, 76, 36,126,138, 10, 33, 29,232,240,164,160,198, 18,155, 36, 77, 71,137, 43,140,
- 75,226,192,129,104, 40,216, 27,250,114,226, 30, 25,219,  0,216,160, 82,121,116,146, 29, 77, 86, 87,151,255,229, 63,254,199,139,
- 77,205,132, 31,127,244,229,239,252,254,247, 38, 39,211,213,124,253,252,209,227,  0, 84,173,215,247,206,239,215, 77,243,151,127,
-254, 23,100,243,182, 94,100, 73,110,172,101,155,  1,179,182, 59,  9, 93, 47,158, 65,124,144,245,174,109,234, 21,104, 72,172,103,
-132,182,111,231,203,229,205,252,110,185,221,125,240,238,151,222, 58, 61, 70,109, 22,119,119, 93,215, 46,231, 87, 85,  8, 93,219,
- 56,199,198, 88, 47,154, 37,217,209,236,232,193,195,183, 93, 94, 76,102,179, 32, 18,124, 16,223,216,164, 32,223, 41,154,190,219,
-183,187,141,248, 70,125,239, 70,179,196, 37,196,169, 33,252,252,179,191,242, 68,108,172,  4, 47,226,173, 77,146,108,212, 52,181,
-203, 70,218, 53,251,186,210, 32,192,169,250,218, 36,197,108,118,223,119,157,179,198,154, 60, 40,156,156,157, 51,244,222,119,  8,
-224,187,221,102,241,146, 77,154,103, 89,150, 56,223,121,227,146,190,173, 92,146, 42,226,201,233,217,  7, 31,126, 52, 46, 71,249,
-244,100,179,184,186,190,124, 21,  0, 27,145,190,173,165, 93,230,227, 25, 27,135, 42,198,229, 73,154,  0, 25, 38, 50, 54, 11,125,
-213,236, 22, 89,113, 28,143, 66,108,221,104,124,236,146,196, 34, 11,152,164, 40,  1,113,183,154,119,125,191, 91, 93, 38,229, 25,
-219,180,107, 42,182,121,146, 22,251,213,109, 16,117,233, 56,205,198, 68, 74,198, 26,227, 36,244,140,180, 93,206,147,209,113, 86,
- 78,189,111,217,166, 76,230,225,249,155,101, 57,170,246,213,226,234,179,233,236, 60,201,138,182,222,140,138,220, 37,233, 40, 75,
- 54,155,133,  2, 38, 89,193,140, 77, 91,117,253,206,184,233,108,124,100, 25,208,141,202, 81,153,184, 20,181, 91, 44,238,246,251,
-245,241,209,113, 31,124,188,155,111,118, 27,199, 38,120, 63, 61, 57,203,138,  9,106,104,122,223,132,188,200,153, 89,110, 55,221,
-106,  7, 46, 47,210,212,116,251,253,237,213,171,103,207,159,127,242,197,147,207,158,190,184,184,185, 93,108, 54,211,178,252,227,
-239,252,202,191,253,251,191,113,255,193,113, 93,117,216,163, 19,221, 45,239, 30, 63,126,250,252,213,213,237,106, 85, 20,133, 77,
-108,126, 52, 34,203,215,203,253,221,213, 13,250,144,177,157,228,169, 49,198, 25, 27,141, 45,157,239,  4, 52,154,146,163,215,197,
- 26,131,132,108,209,112,252, 97,  5,133,145, 57, 78, 53, 17,  0,209, 28,166, 86,177,235, 45,136,248, 16, 66,240, 40, 16,  9,220,
-150, 73, 15,142,189,131,160, 10,  1,  0,  8,  2,  0, 27,195,135, 79,143, 99, 82,196,  0, 10, 72,142, 98,126, 40, 30,218, 80, 84,
-153,169,151,161, 66, 35,222,234,163, 80, 59,100,151, 14,232, 62, 66,178,204,  4,241,165,162,241,134,  8, 73, 69, 35,206,157,  0,
- 21,200, 32, 49,178,168, 68,210,  9, 17,  9, 14,229, 18,113, 65,142,238,254,200, 20, 96, 38, 98,246,222, 27, 98, 54, 44, 32,145,
-219,111,200,116,160,155,253,190, 76, 56, 73, 19, 64, 52, 76,104,216,  7, 81,  5,254,254,183,127,235,117, 34,126,176,163,196, 91,
-  1,145,170,128,128,  6, 69, 30,134, 29,145,252, 30,141, 46,177,158, 53,174,120, 16,121,245,160,136, 28,186,126, 91,135,163, 73,
- 17, 66, 79,138,160,200, 76, 56, 36,178,116, 64,169, 35,168,  6, 84, 66,  1, 16,100, 38,213,240,218,124,  4,120,168, 55,229,248,
- 79,200, 97, 64,  2, 20,109,137,196,100,  9, 41, 46,165,252,227,222, 34,136,115,200,232,248,161,193,142,142,160,210,251, 94,138,
- 73, 49,191,187,219,110,119,163, 81, 57,157, 30, 35, 35, 51, 45,239,238, 22,155,237,199, 31,188,215, 52, 53,  0,116,109,157, 20,
-163,245,252,226,201,179,231,211,233,140,135,238, 85,138, 41,143,195, 14,199, 26,185,193,200, 34,158,200, 28,  4,145,  1,130, 29,
-111,145, 81,152, 31,198, 83, 26,119,133,161,183, 43, 14, 34,162,  5, 22, 16,196, 15,213,169,  3,194, 41, 38, 33,116,144,190, 98,
-171,162,  2,104,196, 26,  0,144, 49,131,122,197, 24,235,  3, 41,150,193,224, 48,209,125,205,210,143,215, 30, 81, 45,103,199,125,
-211,253,215,255,201, 63,125,118,113,235, 24,207, 31,190,249,  7,127,248,135, 71,199, 99, 64, 92,205, 87,151,207, 31,177, 77,201,
- 96,213,202,231,127,243,195,166,237,166,167,247, 25,196, 36,163, 32,194,132, 32,  1, 66,171,170,228, 70,204, 82,237, 54,219,125,
- 99,216,248,102,155,152,222, 32,117, 93,119,183, 88,191,186,157, 55, 93,247,181, 47,253,196,123,239,190,235,235,221,102,187,107,
-235,125,211,135, 16,231, 93,132,193,  7,103, 76,146,101, 71,163, 50, 41,202,242,222, 91,249,104, 82,239, 43,155,231,236,251,174,
-239,150,203, 27, 34, 35,221,158,147,146, 76,154, 36, 89,104,219,182,109,214,119,207,154,170,106,149,  4,156, 33,234,186,198,165,
-105,219,236, 51,203,197,248,204, 22,227, 16,130,209,208, 86,107, 38,108, 61, 42, 39,121, 81,100,229, 12, 84, 54,155, 59,151,228,
-108,120,113,253,210,186,196, 38,133, 82,234,209,245,237, 94, 65,141, 49,198, 37, 93,179,245,190,  1,147, 49,193, 59,111,189,107,
-157,187,189,124,186, 91,205,235,166,111, 60, 20, 69,142,210,  7,209,188, 56,202,210,194, 88, 86,114,161,111,216,112,154,142,156,
-115, 10, 94,124, 64,144,208, 55,108, 18, 54,148,184, 36,177, 73,189, 91, 73,240,125,187,109,118,187,190,109,141, 75, 93, 82,102,
-163,227,174,218,140,199,229,126, 53,207, 70, 35,148,110,183,219,121, 47,170, 98,144,231,183, 79,147, 36,203,242,212, 58,103,141,
- 77,179,212, 87,107,228, 76,197, 59, 75,251,213, 45, 67,107,210,108,179,186, 35,151,179, 49,251,245, 34,248, 54,205,203,113,145,
- 55,109,179,107,186,217,201,121,181,219, 92, 45,174,171, 94, 68,249,104, 50, 99,242,235,237,142,220,136, 56,166,231,237,241,236,
-120, 83,135,122,191,122,247,252, 60,132,190,235, 90,162,100,121,251, 34, 73,243,190,171,119,235, 69,215, 52, 77,179,107, 60,122,
-117,109,239,133,139, 44, 75, 65,186,229,221,237,179,103,207, 30, 61,123,254,197,243,151,207, 47,175,175,239, 22,125,144,159,255,
-198, 87,255,193,191,254, 91,223,248,248,189,182, 15,125,227, 83,206,124,211, 92,190,120,246,217,227,103, 23,183, 75,235,204,135,
- 31,189, 55, 57,157, 46, 86,235,201,209,244,118,190,184,184,184,182,  1,139, 52, 97, 67,198,112, 98, 13, 51, 91,230, 78,131,247,
- 66,131,191,145,152,140, 25, 58,127,200, 90,195,108,  0,145, 45,199,124, 97,144, 16, 67, 42,170,218,121,111, 14, 69, 55, 74,216,
-247, 93, 83, 55,251,182,233, 66, 71,  4,137,115, 81, 43,143,152,222, 24,200, 71, 68,107, 25,200,112,244,106,  3, 34,177,  2,244,
- 65, 35,183, 60,210, 24,131,168, 97, 50,200, 67,143, 52,128, 33, 36,192, 88,210,201, 24,185, 35,135,122, 77, 66,195, 38,250,185,
-141, 53, 62, 28,170,223, 48,234, 60, 96,136,141, 53, 33, 40,  2, 24,138,227, 80, 31, 67, 99, 52, 24,119,  8,  0, 58,239, 73, 53,
- 53, 46,  4, 25,202,  3,105,208, 84, 44,179, 33,238, 85, 64,133,137, 69, 85,  0,182, 85,141, 26, 38,197, 72, 21, 19,142,142, 73,
-181,108,124,  8,252,131,239,126, 43,122,183,135,238,150,131,211,218, 24, 22,149,225,155,146,136,147, 63,180,179, 12, 61, 75,135,
-209,203,193,140, 14, 72,138,152, 89,186,185, 91,158,204,166, 62,200,208,239,  7,136, 32, 72, 24, 29,131,  3,185, 22,226, 25, 21,
-227,138,136,230, 32, 91, 17, 69,206, 17, 17, 50,154, 72,148,  1, 64, 34, 19, 13,164,104,220,129,146,133,170, 66,114,232, 21, 84,
-  5, 12, 52,164, 63, 99, 38,106, 24,219,170,  2, 72, 48,104,210,196, 60,123,254,210, 50,149,227,163,178,156, 72, 16, 70,249,155,
- 79, 62, 61, 57, 59, 59, 57, 62,174,170,173, 97, 16, 65,151, 48,162,123,255, 75, 95,154,223, 92,186, 36,141,227,202, 56, 18, 21,
- 13, 16,123, 38,117, 48,105, 41,136, 14,244, 75,128,173,200,172,  0,  0, 32,  0, 73, 68, 65, 84, 28,180,120,213, 31,251, 63, 15,
-173,220, 49,116, 74,177,178, 41, 58, 78, 69, 67,  8,131,123,125,152, 40, 28,176,171,104, 34,225, 32, 26,153,244, 48,133, 29, 30,
- 81, 17,  5,101,231,226, 77, 10,145, 68, 34, 33, 42,130,153, 41, 86,197,198,123, 34,  0,177, 53,204,201, 63,251, 47,254,211, 47,
-158,223,178,225,163,233,248,  7, 63,248,163,  7,111,157,247,222, 27,107,231,183,171,221,122,149, 56, 91,181,221,252,234, 69,215,
-214,105, 94, 48,106,187, 91,128,136,201, 74,245, 29,  0,168,201, 93, 49,  2,245, 64,110, 53,191, 83, 36,107, 83,227,146,  4,118,
-132,184,222,237,239, 86,203,139,249, 29, 34,253,194, 55,127,241,104,124,116,125,125,161, 72,190, 23,233,251,166,217,231,105,218,
-116, 61, 16,147,250,114, 52, 62,187,247, 48, 25,207,238,191,251, 21,237,154,245,106,233,164,218,111, 46,174,158,127, 54, 62,125,
- 47,205, 71,204,216,108,215,213,118,213,119,117,219,110,250, 62, 40,154,186,217,111,154, 58, 77,178, 36,203,178,242,248,120, 58,
-157,157, 62,  4, 50,  0,208,110,239,170,205,171,187,139, 79,146,209,125,155, 78,250,174,102, 99, 18,195,187,249, 19,193,132, 56,
-169,182,215,104, 12,152,172,111, 26, 85, 96,195,170, 18, 66,111,152, 88,133,161, 69,164, 52,177,173, 15, 93, 31,202, 34, 77, 50,
-103, 92,209,212,219,174,107,239, 22,183,130,156,165,  9,155,164,200, 51,237,219,253,234, 34,203,203,174,222,112, 58, 41,203, 73,
-232,251,245,234, 42, 47,207, 76, 50, 10,226, 13, 51, 41,116,205,182,107, 43,182,169,  2,180,245, 14, 17, 64,188, 49,174,107, 86,
- 77,181,  1,105, 67,219,181,125,125,250,224,109,  8,161,110,234,229,106,238,146, 52, 27, 29, 37,105,102,136, 22, 87,143, 76, 82,
- 16,231, 93,187,223,109, 87, 66,220, 53, 77,223,182,251,245, 37, 39,101,154,228,235,249,133, 41, 38, 68,108,172,203,138,113, 57,
- 62,242, 93, 85,111, 55,249,248,164,170, 54,251,186, 59, 63,123,243,100, 58,  5,213, 52, 73,218,182,230,180, 72,242,146, 17,  2,
- 72,215,123, 32, 59,202,147,197,106, 85,117, 13,  3, 32,187,166,173,109, 90,178,205, 52,248,192, 41,184,124, 84,148,179,217, 40,
- 79,161, 24, 77,157,227,174,222,191,124,241,228,241,147,167,143,158,189,122,121,117,115, 49,191, 93,110, 54, 15,239,159,252,251,
- 63,248,206,239,255,230,207, 37,137,171,107, 97, 37, 35,184,189,189,121,242,248,209,203,235,219, 77,221, 24, 99,222,124,120,111,
- 94, 87,183,119,171,231, 23,183, 87, 23, 87, 55,151,139, 89,150,185,204, 38,214, 18,177, 37,102, 99, 25, 57, 22,245, 24,203, 10,
- 64, 64,214, 26,142,166,106,107,172, 49,209, 69, 97,201, 24,182, 42, 24,164,139, 11, 86, 68,220, 34, 19,138, 42,145, 33, 14, 18,
- 54,213,110,223, 52,193,139, 53,198, 90,107,136,153, 24, 16, 37, 18, 37,153,163, 47, 17,117,208, 48, 25, 14,233, 65,  0, 59,172,
-116,168, 49, 79, 52,  0,147, 95,247, 43, 11, 41,134,161,106, 13, 25,  0, 12,129, 87, 98, 52, 28,215,104,140, 96,253,240,154,236,
- 13,128,136,150,216, 48,245, 65,  0,148,129, 16,177,247,109, 80, 53,196,230, 96,175,140,133, 30,135, 92,100,220, 18,  6,110,139,
- 10, 26, 66, 71, 40, 72,130, 17, 98, 76,162, 96, 13,175,170, 26,164, 31,231,133, 51, 28,151, 65,107,204, 64,227, 87,229, 31,252,
-246,183, 15,116,245, 67,117,211,240,155,215,142, 73, 24, 92,236,116, 96,193, 15,  5, 18,131, 51, 59,118, 86,  0,113,180,191, 24,
-182,205,102, 45,156,100,169,197,160, 68, 16, 59, 30, 99,  4, 55,182,199, 17,113,108,126,100,203,100, 45,242,192,153,100,138,161,
-252, 67,248,159,  6,147,105,140,201,197,100, 66,252, 98, 98,116, 22, 49, 50,106, 14,205,238, 58,244,  3,195,  1, 76,125,152, 27,
-  0, 16, 40, 66, 57, 30,173,238,230,235,109, 53,153, 76,202,201,212, 89,179, 93,174,214,155,237,243,203,139,175,125,244, 37, 17,
-239,187, 94,213, 95, 94, 94,119, 77,103,156, 13,193, 75,232,147, 36, 27, 90, 74,134,121,165, 87, 81, 98,139,108, 84, 67,144, 30,
-233,192, 13,136,206,246, 67,163,112,196,130, 97, 24,222,187,129,155, 29, 55,234, 56,251, 25,246,212,168,199, 69,139,123,236,118,
- 10,177,207, 50, 34,201, 14,118,213,  3,236,126,160, 96, 28,154,203,  7,  7,155, 70,217, 62,186,143,  6, 50,245,176,209,241,255,
-244,167,255,226, 47,254,230,211, 60, 75, 70,121,250,123,223,251,254,151,191,254,149, 16,250, 40,121, 61,255,226,145, 71,147, 21,
- 37,113,194,  4,168, 52,158,206,216,164, 65,144,217,160,130, 49,182,105,234, 44, 79,153,141,239,234,186,147,106,187,102,  8, 93,
-219,168,180, 41,119, 42,176,217, 87,215,243,197,124,181,202,210,244,167,191,242,149,245,106,225, 12,139,248,182,218,214, 85,133,
-168, 77,215, 52,109, 75,160, 69,150, 61,120,240,230,248,236,188, 60,126,120,116,122,114,119,249,172,222, 87,109, 91,247,193,142,
-166,167, 16,218, 34, 47,250,170,218,110, 86,193,119,213,250,154, 76, 30,175,151,139,213,220, 36, 57,187,164,217, 45,197,119,211,
-227,  7,206,154,237,242,234,246,250, 81,215,134,201,244, 76, 20,243,209,108,187,120,185,190,123, 10,210,207, 30,188,239,219, 93,
-223,247,228,178, 44,205, 70,163, 73, 93,109,217,164,125, 87,133,122,211,119,123,151,140,130,239, 93, 98,146, 60,183,198, 26, 54,
-203,237,174,107, 43,  6,156, 78, 38,162, 90, 76,206,178, 98,162, 96, 22,203, 69, 81, 76,210, 44,203, 29, 21,105,225,202, 83,  5,
-  8,193,231, 69,169,253,174,247, 62, 77,143, 52, 52,168, 33,205, 38,136, 18,124, 71, 54, 83,  9,193,183,218,119,100, 12,145,173,
- 54,243,208, 53,160,216,117, 93, 94, 28, 73,240, 26, 68,186,110, 49,191, 44,202, 99,  8,181, 49,137, 97,187,223,204,141, 77,146,
-114, 86,215,117,239,251,248,137,171,150, 23, 46,201,247,213, 38, 14,103,146,116,172, 38, 95, 47,110, 56,155,156,158,222, 59,187,
-119, 30, 39, 79,128,176,218,172, 36,212,231,231,239,118, 77,181, 90, 92, 90,155,142,203,233,120,114, 44,190, 71,164,178,156, 90,
- 16, 36, 14,161, 67,228,196, 80,213,246, 77, 91, 23,153, 45,138,114, 52,153,  9, 96,181, 93,148,227,241,108, 54, 62, 61, 26, 29,
-207, 38,227,114, 34,190,189,189,122,245,248,241,147, 71,207, 94,188,184,184,121,113,125,125,125,183,200,146,228,219,191,244,205,
-127,247,  7,223,122,255,189,243,125,221,169,231,132, 76,187,219, 94,189,120,241,232,201,243,203,187,149,115,238,104, 92,164,227,
-209,182,218,255,232,179, 39,  4,186, 89,238, 50, 50,179,233,208,186,227,140, 49,108, 80, 20, 85,137,227,135, 26, 99,163,189,179,
-198, 48, 91,107,201,242,161,197,117,104,199,208, 32,160,202,  3,193, 54,146,151,134,106,104,139,216,251,176,111,234,222,247, 65,
- 68, 68,  0, 49, 75,210,212, 58,137,235,196,  1, 41, 18,139,165,227, 13,250,245,199, 21,145,216,196, 75,182,202,176,121,136, 57,
-184,253, 37, 70, 75,135, 89, 32,171, 70, 81, 97, 64, 60, 50,147, 42, 88, 34,141, 13, 60, 42, 49,193,207, 10, 38, 58,217,  0, 37,
- 82, 73, 20,129, 72,188, 71, 34, 27,115,  4, 67,205,  6, 32, 34,115, 76, 90, 33,  1, 24, 99,226,209,119, 56,250, 33,118,170,  7,
- 22, 56, 70, 84,194,190,247,117,219, 28,101, 89,154,166,189,  8,  1, 34,129,128,168,130, 97, 19,124,224, 63,248,205,111,197,253,
-235,144, 41,138,167,243,  1, 67,127,112,207, 64, 80, 96,203, 24, 65,155,168,116,200,143,198, 62,189, 40,  8,240, 64, 61, 49, 24,
-186,213,174,155, 29,149,240, 58, 55, 69,209,120, 66,  0, 74,236, 64,148, 13,177,179, 56,108,145,136, 81,129, 66,  6, 82, 67,116,
-104,241, 59,116, 30, 69, 12,127,172, 59, 57, 52,155,162, 53,  3,235,150,245, 80,212, 23,147,165,120,168,143,137, 19,227, 31, 55,
-128, 16,242,236,168,124,252,252, 69,150,102, 73,146,168, 74,219,212, 77,219,189,188,184, 60, 61,155,221, 59, 57,174,155,206, 37,
-201,244,248,254,  7, 31,190,255,234,197,147,227,211,123, 77,181,117, 46, 67, 54, 68,230, 48,144,143,237,101, 49,162, 27, 34,236,
- 69, 68, 94, 95,241, 84,  4, 99,148, 73,135,224,242,161,211,  3, 99,175, 85, 12, 68, 31, 54, 76,198,131, 32,  7,138, 16,157, 76,
-175,203,175,225,144,231,138, 79,221,240,131, 14,189,139, 67, 67,109, 84,  6,163,155, 50,234, 69, 58,244,185, 35, 25, 94, 47, 23,
-255,235,255,246,103,136, 48,202,242,239,254,238,247,127,226,167,190,222,213,123, 52,198, 26,222,172,182,151, 87,243,190,169,216,
-101,160,253,118,117,135, 54,  1, 96, 21,104,234,125,  8,222, 24, 98,194,118,191,207,202,163,182, 90,175,111, 95,125,241,217, 39,
-  9, 73,226,146,182, 19,166, 58, 33, 17,212,249,106,121,121, 51,223,236,171,147,217,189,175,125,244, 53,  8,157,120,223,182,253,
-174,218, 55,109, 77,210,239,154, 46, 73,146,224,187, 50,203, 78,207, 30,186,172, 72,178,220, 89,187,217,172,211, 81,201, 46,155,
-157,157, 23,229, 17,219,164,169,119,190,239, 58,223, 55,251, 61,177,  5, 99,198,105,186,188,125,177,238,188,179,  9,146,113,217,
- 52, 31,141, 38,227,178,239, 58, 32, 86, 76,173,177,211,241, 56, 41, 79,119,251,165, 77,199,156, 78,243,114, 98, 73,128,211,174,
-221,128,138, 15,221,104, 52, 43, 71,101,215, 53,157,111,109, 82, 26,151,236,182,139, 60,225,209,248,132,236, 40,207, 74,  9,173,
-244,161,105, 67,211,213,227, 44,237,170,185,136,220, 61,255,235,241,209, 73, 81, 76,172, 54, 71, 71,179,241,228,212,101, 89,187,
-223,136,120,155, 78,250,122,221, 87, 27, 65, 51, 26, 79,219,122,223,181,123,151,228,161,107,128, 12,137,  6, 13,105, 50,234,124,
- 31,246, 27, 66,211,  7,223, 54,123, 64,206,242,209,110,117,131,218, 36,217,  8,137,178,172,236,154,221,197,179,191,157, 29,159,
-111,183, 87, 68, 54,113, 41, 19,134,190, 75,210,113, 93, 45,167,167, 15,206,223,254,240,228,228, 94, 16,221,237,235,190,239,119,
-119,151,187,205,213,241,131, 15,218,106,219,118,117,158,230,117,117,247,226,213,243, 36, 27,167,121, 89,150, 51,155,142,235,253,
-122,114,116, 18, 66, 15, 32,198,218,162, 28,135,190,111,170,109,189,189, 61, 61,187, 79,196,198,101,  1,244,236,248,212,186,116,
-177,221, 48, 72,154,102,193, 75, 49, 41,239,157,205, 30,156,157,157,156,221, 99,134,197, 98,254,252,217,147,199,207,158, 62,189,
-184,120,126,121,253,226,242,122,179,111,126,242, 43,239,253,195, 63,252,246, 47,253,204,199, 72,216,212,193,105,162,190,189,126,
-249,226,249,211,103, 23,183,115, 65,252,198, 79,126,213,141,179,166,105,166,167,211,231, 87,183,203,187,149, 19, 28,101, 46,113,
-  6, 17, 19,231,172, 49,206, 37,160, 42,  8,214,184,248, 28, 91, 99,162, 12, 97,136, 13,153, 88, 65,  7,  3, 10,230,245,241, 18,
-172, 49,131, 96,  0, 16, 84, 29, 27,  2,  6,144,160, 33,136,  4,241,109,223,121,239,227, 85, 54,117, 46,113,238,240,233,163,193,
-138,128, 56,244,218, 19, 14,253,124,128,128,  1,  4,144, 88, 84,105,104,187, 70, 80, 96,231, 52, 12,173,161,160,224, 53, 16, 50,
-128,144,146, 18,198,211, 23, 32, 26, 70, 64, 22, 13,209,172, 25, 99, 74, 17,171,238, 67, 32,  0, 98,150, 32, 65,188,  7, 73,173,
- 99,  4, 17, 80, 85,203,212,123, 79,196,206,186, 78, 85,  1,140, 51,145,225,104,163, 63, 18,177,245, 30, 16, 82,195, 67,118, 22,
-212, 88,238,  4,150,219,237, 36, 51, 89, 54, 82,149,196,217,  8, 32, 83, 36, 13,130, 34,125,240,252,135,191,251,237,248,190, 73,
- 68,222, 68,219, 59,113,236, 94, 29,176, 38,100, 81, 53, 40, 24,131,136,  2, 10,104,162,232, 28,226,155, 56,212,232,198,115, 53,
-130,181,102, 62,191,153, 28, 29,131,  6, 81, 56, 52,196, 68, 11,164,193,104,110, 65, 64, 67,226,195,255,199, 75, 18, 91, 49,232,
-128,121, 65, 84,137,199,216,195, 47,209, 46, 21, 45, 74,160, 18,  6, 68,134,247, 49, 25, 12,  7, 62,101,188,135, 28, 80, 49,113,
- 23, 16, 16,  0,145, 81, 57,237,219,237,245,205, 93,146, 56, 85, 77,179,180,111,170,187,249,250,242,246,238,167,190,246, 85, 32,
-232,218,150, 49, 60,255,226,147,203,235,219,122,183,217,108,119, 69,158,255,184, 60,133, 92, 44,126, 29, 26,248,208,  2,138, 72,
-136,186,147,198,150,238,193,213, 24,221, 61,170,234,163,206, 18,131,176, 67,233,214,  1,230, 14, 12,  3,170, 95,227,225, 29,241,
-128,148,  4, 80, 54, 60, 64, 49,  7, 88,177,192,224, 11, 26, 12, 53, 26,194,192, 28,230,215,205,170,138,248,186,205,137,216,240,
-237,213,237,223,252,237,143,136,248, 87,126,237, 91,127,247,231,191,217,247, 13, 18,154, 36, 17,145, 39,159, 63,218, 46,111,  5,
- 96,179,184,105,235,166,239, 90, 81, 34,196, 52,115,203,171, 47, 76, 82, 78,142,143,234,170, 85,105,187,253,220,229,147,166, 15,
- 10,249,236,228,158,  7, 22, 47,133,217, 17, 97,215,201,221, 98,253,242,102, 94,183,205,195,  7,111,190,117,239,172,235, 58,100,
- 27,124, 95,237,183,109, 83, 19, 64,143,132,170,229,168, 44,203,201,244,244, 28,109,225,194, 58, 29,159,109, 87, 55,167,247, 30,
-134,206,223, 62,251,171,151, 95,252,249,189,251,111, 52,213,174, 44,103,218,215,161,235, 20,160,239,218,197,221,213,203,139,231,
- 94,237,131,123, 15, 70, 69,202,218,228,229,172,173, 42,129,158,217, 54,213, 38, 31,157,236, 86,215, 77,223,113, 50,217,220, 60,
-117, 89, 62, 57,126,  3, 84,140, 43, 64,177,109, 43,147,230, 68,230,254,253,115,214,253,100,246, 16,161,239,118,119,163, 98, 60,
-155, 78,181,223,153, 36,239,234,141,111,171,229,102, 21,218, 93,221,245,179,163,179,227,179,119,146, 36,105,235,157,177,110, 60,
- 26, 49,145,146, 77,211, 12,  0, 60,154,106,241,220,165,153, 49, 41,105,151,141, 79,247,139,151,168,106,146, 12, 85, 66,232, 21,
-116,113,249,169, 15,208, 84, 75, 13,253,118,117,195,164,214,168,117,133,138,110, 55,243,163,233,244,141, 55, 63, 32, 20,103,205,
-102,179, 16,118,132,218,181,155,122,187, 20, 98,239,187, 80,111,202,147,115,  0,173,119, 43,146, 78,208, 46,239, 46,119,171,235,
-213,234,110,114,250, 70,223,110,130,130,181,185, 49, 69,219,238, 63,127,244, 23,219,170,125,239,173,183, 31,188,241,209,100,118,
- 38,161,239, 85, 19,151,  2, 26,237,219, 44,205,215,183, 47, 39,227,113,121,124,111,183, 89,216,108,116,122,114, 58,155,157, 24,
-245,  0, 48,153,204, 78,143, 38,138,188,173, 26,  7,253,217,195,123,111,191,249,230,195,135,111,102, 69,178,223, 44,175, 46, 95,
- 61,126,244,248,233,171, 87, 47, 46,111, 94, 94,223, 92,223, 45, 38,163,209, 63,250,227,111,253, 27,191,243,171,229, 56,173, 91,
-207,144,164,236,182,203,187,167, 95, 60,122,241,242,114,185,171, 69,225,171, 95,251,224,229,124,254, 87, 63,252,188,105,154, 79,
- 30, 61,219,221,174,143,203,130,153,172, 97, 34, 74,216, 58,231,  6,179, 47, 17, 33,117,190, 87, 84,195, 73, 16, 65, 34,107, 88,
- 99,245, 28, 33, 32,  3,200,161, 18, 71, 45,177,130,118,189,143, 90,  8, 17, 90,107, 53,168,130,116,226,  9,145,145,154,206, 99,
- 36,164, 17,102,214, 26,155, 96,180,178, 16,115,140,215, 28,212, 21, 26, 18,148,132, 12,160, 40, 67,185,160,  6,  0, 81, 37,160,
-196,216,168,142, 10, 40, 33,116, 33,136,  4, 71, 36,224,  9, 45, 18, 58, 98,195,236, 44,130, 66,  8, 18,107,146,189,  6,  6, 74,
-152, 84, 99,219, 21, 56, 54, 68, 20, 65,243,134,153,145, 68,196, 11, 88, 67,196, 70, 84,152, 25,141,  9, 33, 48, 98, 98, 18,249,
-127,153,122,179,103,203,142,236, 62,111, 13,153,185,167, 51,221,177,  6, 20, 80,  0, 26, 13,160,  7,116,183, 40, 54, 37, 14, 10,
-201, 18, 29,164, 56,216, 17,166,104, 59,252,234,255,208,225,240,155, 34,252,100,217, 50,229,166,200, 22,155, 24, 10, 53,221,186,
-243, 61,243, 30, 51,115, 45, 63,228, 62,213,122,  7,112,  7,220,147, 59,247, 90,191,223,247, 73, 76,168, 26, 29,187,164,106,152,
- 83, 41,247, 64, 14, 68, 17,216,116,157, 37,200,179,140, 12,147, 65,241,170, 32, 12,160,162,117,219,108,247,219, 77,189,231,127,
-247, 23,127,146,252,168,135,209, 59,192, 24, 55,  5, 68, 18, 64,147, 16, 56,156,202, 99, 74,192,200, 25,  2,141, 92,203,228, 90,
-  5,148,244, 48, 74, 86, 82,231,250,122, 11, 38,207, 51, 55,174,  8,  5,  0,129, 71,156,142, 32, 34, 72, 42,108,  9, 64, 42, 25,
-167,253,199,251,170,234,136,  0, 58, 16, 27, 70, 66,228,248,134, 53, 22,167, 34,170,  2,241,193,221,174,227, 18, 24, 21,198,218,
- 50,235, 56,190, 80, 68,212,  8, 74,168,128,199,179,233,215,223,124, 29,130,100,206, 16,114, 94, 21, 97,240, 47, 95,191, 93,204,
- 22,159, 60,127, 90,215, 53, 25,227,108,241,241,103, 95,236, 55,155, 79, 63,251,210,247, 59, 69,103, 51, 99, 48, 83,  0, 69, 25,
- 21, 39, 48, 74,175,  8, 14,214, 85,  5, 80,136, 49, 34,  1, 27, 11,170, 81, 69,199, 27,252,104, 23, 79, 75,215,177,152,155,214,
-172,152,160, 78,227,221, 28, 68,254, 43, 87,227, 97,179,125, 88,150, 38,194,103,138, 27,169,104,148, 40, 49,166,226,243,136, 28,
- 74,255,145, 68, 17, 86,181,198,190,125,251,250,155,111, 95,253,193,239,255,139,127,245,111,254, 77, 84, 65, 99,216, 57, 67,124,
-253,246,178,222,183,138,174,107,234,147,197,162,243, 49,175,230,132,232, 44,117,125, 31,169,156, 45, 78,124,187,247, 81,200, 85,
-128, 90, 78, 38,131,151,186,222, 90,107, 64, 66, 89,229, 20, 55, 10, 80,119,237,122,187,191,184,185, 29,  6,255,249,167,159, 63,
-127,254, 67, 91, 78,194,224, 55,235,187,213,106,237, 24,250,126,104,135,222,104,152, 77,138,147,211, 71, 92,205,170,227,167,103,
-207, 62, 86,206,182,155,141,181, 60,244,245,195,237,109,164,220, 49,182,109, 80,245,155,187, 11,  5,112,214,181,219,135,227,211,
-199,189, 72,136, 48,248,206, 48, 31,159, 63,183,206,246,187, 59,223, 53,189, 80,221,180,  0,144, 21, 83, 32,163,125, 93, 44,206,
- 44,219,161, 94,245,237, 46, 43,202,233,108,230,242, 89,223,183,253,208,179,106,  8,126,122,244,216,119,117, 84, 42,170,133, 97,
-210,216,102,249,196,247,251,205,234,  1,108, 33,161,141,209,159,159,157,151,153,217,174,110, 92, 94,246, 98,183,155,165,111,119,
-200,  6, 66,223,236, 86, 68,198,229, 19,178,  5,147,176, 45,218,253, 78,165, 39,240,214,150, 93,179, 55,196,132,152,151,115, 16,
- 13, 94,117,216, 77, 23,231,156, 21, 49,224,110,191, 11,190,151,232,141, 49,195,208,  0,242,208, 53,109,235, 11, 75, 69, 53,207,
-178, 25,185,178,170,166,211,217,236,163,207,126, 84, 77,102,155,219,183, 93,239,183,155,123,203,220,135, 48,120,232,251,206,154,
-220,229,211,217,241,179,161,221,223, 94,127,183,235,250,179,211,231,103, 71,167, 38, 63,218,181,221,102,181,172,119, 43,178,133,
-115,153,205,178, 42,175, 86,219, 37,114,126,118,250,132,136,130, 42,155, 92,163,223,173, 87,235,213,125,223,249,  8, 88,230,110,
- 90,230,199,199,103, 79, 63,120,242,232,209,  7,243,249,194,119,205,221,205,213,139, 87,223,191,124,245,246,237,213,237,235,235,
-219,183,151, 87,253,224,159, 61,126,242,199,191,252,197, 31,254,242,231, 94,124,  8,228,208, 73, 59, 92,189,125,251,205,183,223,
- 61,172,182,221,224, 63,125,254, 88,156,121,121,113,121,117,117,155,229,238,230,234, 62, 83, 56,153, 20,150,153,152,173, 97, 75,
-  6,153,137,108,250, 96, 39,190, 13, 19, 19,179,106, 52,132,200, 12,154,210,144,134, 64, 37,213,212, 85, 12, 49, 32,121, 80, 66,
- 50,204,227,  4, 87, 85, 37, 42, 68, 64,204,173, 81, 64,  1,165, 17, 11,128,185,201,157,179,214, 26,235, 44, 34,229,228, 84,132,
- 14,194, 35, 58,228, 50, 12,145, 70, 21, 81, 68, 37, 36,  1, 32, 66, 75,156, 78,163,144,116, 69,160,  0, 96,144,152, 12, 18,138,
- 82, 26, 49, 41, 34, 51,119,189,104, 66,149, 13,130,160,233,243,153, 52,211,227, 53, 53,173,204, 64,211,180, 39,205, 68,172, 49,
-233, 13,132,145,162, 66,136, 65, 14,212,202, 52,231, 53,144, 30, 57, 41, 46,  1,137, 70,158,200, 35, 64,184,169,251,190,239,231,
- 85, 97,152, 17, 73,125, 96,147,188,161,184,218,239, 55,251,205,122,183,111,187,134,255,135, 63,251,147, 67, 34, 18,  1, 71, 48,
- 91, 66,190, 24, 74,123,206,180,166, 78, 45, 87, 68,148,244, 32, 56,164,134,104,228, 66,224, 88,209,213,177, 81,  6,251,122,168,
- 38,249,248, 67, 18, 34,144, 25,  1,149,  4,227,253,245, 32,113,  4, 24,175,196,160,168, 17, 33, 77,227, 70, 52,114, 58,167, 84,
-133,152,101,252,245,164, 84,119,  2,190,167, 45,132, 42,200,193,130,141, 35, 58,158, 16,  0,216, 56, 56,184,160,210,228,198,230,
- 25,144,124,255,234, 77,150,101, 69, 89, 90,147,101,214,108,182,155,191,255,230,219,175,190,248,225,164,116,237, 16,172,225, 52,
-237,123,120,184,123, 88,173,102,211,105,230, 10,197,212,161, 72,125,  8,129,131, 94, 35,173, 55,211,130, 27, 17,137, 12,105, 50,
-252,193,225,189,227,253,100,133,  0,  1, 12,130, 38,242,196,168, 69, 75,153,200, 49,131, 68,  4,170,200,137,237,132,128, 48, 34,
-146,198,249, 89,210,  2,142,163, 68, 69,192,209,214, 50, 38,  4,128,  8,146, 24, 88,  1, 80,152,248,197,247,175,143, 23,143,255,
-244,207,255,148, 45,  3, 17, 51, 35, 83,223,118, 87,239, 46, 23,199, 39,119,183,247,125,187,250,193,231, 63,174,219,160,128,195,
-208,171,234,208,181, 22, 21,213, 15,221, 16, 66,239,187,214,218, 60, 10,109, 55, 75, 29,246, 89, 49,171,102,139, 34,135,216,174,
-217,152,221,126,183,220,108,174,238,151,170,250,139,159,254,211,199,103, 79,  7,223,214,187,205,102,121, 39, 34, 26,251,186,235,
-141,181,179,201,164,112,110,186, 56,143,100, 22,231,207,142,142,142,124,223, 65, 12, 93,179,223, 45, 47,118,203,155,143,127,252,
-207, 23,199,167,171,187,119, 26,134,253,234,166,143,210,246,253,102,125,179,223,111, 87,155, 77, 81, 86, 97,104,  2, 58,235,178,
-197,116, 22,251,102,241,232,147, 44,203, 49,246,211,163,147, 16, 36,170, 84,197, 12,  1, 44,103,217,100,182,123,184,152,206,143,
-129, 12,129,196, 40, 67,187,129, 56, 68, 25,124,215, 45,183,235,161,169, 21,197, 16,102, 89, 25,  1, 50,151,  5,112,109,219,238,
-214, 55,121, 86,181,190, 47,157, 45, 38, 71,119,247, 15,117,211, 40,186,188, 58, 46,203,201,236,248,188,154,158,  9,168,247, 61,
- 19,205,102,199, 97,216,185,172,232,219,218,  7, 49,108, 11, 87,245,125,167, 18,235,229, 69, 91,239,145,217,185,140,216,118,245,
-206,251, 96, 13,117,221,214,152,140, 80, 44,179, 72,172,251,190,221,109, 84, 37,207,171, 68, 61, 59, 62,121, 82,175,111,145,200,
-102,230, 97,185,105,218,126,126,242,172,109, 59, 78,122,  0,180, 26, 98, 91,175,186,250,110,187, 93,101, 89,254,225,135, 63,154,
- 85, 89,140,254,225,246,117,211,108,157, 53, 89, 94,197,126, 31,194,112,124,114,158,151, 69,215, 13,147,217, 98,  8, 97,185,126,
-120,184,125, 91,148,165,203, 51, 47, 60,132,216,  7,145, 56, 24, 67,121,145, 63,253,232,217,249,227, 39,168,113,249,112,245,250,
-237,235,151, 47,223,188,185,190,121,123,125,243,250,242,234,110,249,112,122,116,242,187, 63,253,234,139,207,190,140, 17,203,172,
- 60, 61,153, 59, 50,119, 23, 23, 47,191,123,241,246,221,181, 34,127,254,213, 15,215,117, 61, 95, 76, 77,158,221,220, 47, 87,203,
- 13,251,120, 84,102,165,203,210,238, 46,203,220,  1, 50,136, 68,192,168, 81,  4,223,135, 33, 18, 92, 22, 49,130, 18, 96, 84, 61,
-128,124,213,164,138,203,184,167,  2,140, 96,172, 51,198, 28,154,149,169,235, 65,201,192, 71,233,211, 71, 88,228,  5, 91,118,214,
-102,153,115,200,201, 91,103,136,152, 44,170, 26, 75,150,  9,  0,153,204,123, 47,133,104, 28, 13,219,204, 56, 90,244,200,164,172,
-164,  2,130,228,198, 33,113,194,183, 35, 49,211,104, 15, 70,  5,229,132,116,  5, 50, 22, 70,236, 45, 90, 54,140,232,131, 39,  0,
- 99, 44, 38,236,235,120,147, 29,233, 52,134, 13, 16,137, 72,221,117, 93,187,207,156, 99,230,204, 90,  0,140, 81, 12, 39,234, 34,
-190, 87, 83, 37, 48, 78, 27,124,221,118,103,243, 50, 47,138,180,137, 77,150,187, 40,178,239,250,205,190,222,215,251, 56, 12, 65,
- 35,255,187, 63,255,211,241,218, 56,166,  9,255,171,246,227, 72, 20,131,247, 40,104, 69, 96, 72,225, 63,144, 16, 14, 25,110, 76,
-160,  8, 56,172, 12, 85,208, 24, 83,215,245,100, 90,141, 10,240,196, 45, 75, 14, 57, 66, 64, 58, 12,150,113,188,203,167, 57, 22,
- 49,162, 27,127,126,  6, 68, 78,194,115, 28, 99, 56,233, 64, 23, 98, 66,228, 20, 65,132, 20, 95, 81, 85, 76,111, 67,105, 76, 13,
-136, 33,  6,161,180,154,228,241, 75,160, 10,136, 34,193,249,241,249,219,139,183,171,237,126, 81,149,200,100, 93,150, 59,247,230,
-205,197,221,122,253,187, 63,249,188,109,107, 69, 26,252,176, 56, 57,186,189,190,121,254,131, 47, 99,223,  8, 17, 36,100, 68,194,
- 92, 38, 43,  0,142,253,223,  4, 84, 96, 99, 83,117,130, 76,242, 64, 81, 28,151, 30,169,  3,  6, 73,141, 64,  7, 90,100, 74,181,
-211,104,161, 73,220,152,241, 57,154,222, 65, 40, 13, 30,199, 16,234,184,203, 24,171,124, 35,131, 51, 33,135, 70,112, 77,218, 81,
- 31,182,222,  8,  4, 68,166,222,117,191,243,123,191, 55, 89, 76,131, 15,204, 35, 28,170,217,181, 89, 81,174,238,239,111,111,239,
-209,111,206,206, 31, 63, 60, 44,251,253,154,  9,201,228,182,156,247,205,150,108, 53,180,141, 43, 23, 38, 43,135,253,109,223,134,
-188,156,160,223, 71,229,163,163, 83, 24,214, 32, 67, 20,169,235,250,254, 97,115,179,220,186,194,253,225, 31,252,183, 89,238,118,
-203,155,174,105,251,208,151, 25, 55, 77, 61,248, 88,101,206,102, 89,225,220,226,217,231, 89, 81,157,127,240,241,205,155,191,191,
-124,245, 93, 49, 63,190,191,126,125,242,209,143,207,159,252, 32, 52,155,245,195,178,105,246, 57,161,168, 70, 69,107, 76, 49, 61,
- 82, 68, 36, 27,  3,228,213, 60,207,167,190,217,108, 86,183, 15, 87, 47,242,106, 26, 68,251,174,111,246,251,190,219, 78,170,249,
-180,154,222, 93,252, 23,  0,217,238, 86,157,200,209,100, 54, 59,125,186,188,187, 88,223, 95, 14, 96,145, 96,115,127,189,107,187,
- 97,240, 81,168,235,118, 40,218,181,195,106,187,235,186,246,225,246,229,116, 50,  3,155,  1,178, 70, 49, 54, 91,175,111, 55,235,
-251,232, 91,131, 66,232,155,245, 77, 86, 30,229,153,105,235,173,205,171,140,194,180, 42,171,197,153, 10,100,174, 42, 38,243, 40,
-178,186,255,222, 15,131,115, 19, 69, 36,104,153,108, 89, 76,  9,218,135,235,215, 67, 80, 84,241,205, 54,115,166,243,177,221,175,
-212, 22,245,182,137,177,101,227,234,205, 77, 62, 89, 52,237, 54,170,134, 24,251,193,159, 61,250,168,217,173,139,201,209,253,245,
-139,213,102,229,178,242,233,135,159,116,251,245,253,253,187,205,230, 22,221,241,147, 39, 31,230,229,148, 68,135,126, 91, 55,219,
-  8,236,125, 91,229,213,252,209,179, 73, 53, 87,239,207,158,126, 24,129,138,172,152,205, 23,125,  0, 97,103, 93, 37,160,150,134,
-188, 60,106,187,122,182, 56, 58, 57, 63,126,246,236,163,199, 31,126, 92, 77,202,122,179,126,119,241,253,247,175,222,188,185,190,
-121,115,121,249,230,242,250,230,238, 33, 70,253,201,151,191,248, 23,191,247, 47, 28, 75,110,244,151, 95,125,254,195,231,143,219,
-245,246,213,119, 47, 94,127,255,250,122,185,153,205,170,127,242,207,127,246,245,155,139,111,191,125,117,118, 60,249,213,111, 94,
-172,110,151,199,101, 81,230, 89, 10,163, 59,147,201, 33,174,203,204,108,141, 15, 67,140, 99, 80, 46,117,188,  1, 65,  5, 36, 66,
-154,144, 91,226, 24, 34,  1, 58,107, 67,140,138, 96,137,162,168, 50,218,204,129,136,128,250, 24,172, 49, 10,154,186, 69,227, 46,
-139,216, 75, 44,217, 36, 82, 84,102, 50, 85, 53,136, 25,155,241,109,254,240,154,155,  4,152,152,  8,143,160, 33,  2, 18,100,196,
- 10,202, 72,170,234,172,  9,193,  7, 81,  4,204,152,153,115, 81, 32, 67,233, 80, 78,  3,109, 83, 24,  0, 12, 49, 50,106, 82, 82,
-  3, 74, 58,109, 19, 62, 61, 72,204,172,179, 89,  6,136, 42,145,153,135, 40,168, 33,165, 76,210,117,207, 56,142, 81,125,240, 17,
- 33, 55, 92,230,153,143, 35, 99, 39,168, 58,102, 99, 40, 42, 26, 70, 85, 32, 85,  5, 92, 53,221,204,217,201,180, 12, 49,186,204,
-132, 56,178, 15, 85,213, 71,108,246, 91, 31, 98,148,  8, 72,252, 87,127,254,167,  7, 68, 60,143,244,153,145, 14, 60,  6, 33, 49,
-165,191,117,204,164, 96,194,249, 80,218, 48,143, 39, 84, 34, 38,164, 71,115, 34,144,145,225,126,223,230,147, 10, 15, 39,141, 25,
-195,149, 64,108,136,  9,148, 49,  9,189,198,103, 58, 32, 25, 68, 98, 96,132,120,120,202, 29, 68, 80, 32,122,232,112, 18, 51,162,
- 69,144, 52,196,  7, 80,128,  0, 35,246,126, 84,161, 35, 25, 72,140,211, 49,156, 41,160, 49,221,241,  1,149,152, 92,158,205, 38,
-249,111,190,249, 94,149,170,162, 96, 99,138,162, 84,141,223,190,120,125,122,118,252,244,252,184,233,189, 97,242,195,176, 94,222,
-159, 62,122,210, 15,251,182,238,202,178, 34, 54,170, 17,198,237,121,210,193, 88, 78,194,166,131,210,230,112,177, 38, 29,211,158,
-116,128, 65,194, 40,242,195,131,107, 27,136,  8, 71, 76, 95,178,187, 38,151, 12,198,180, 75,103, 51, 18, 51,222,255, 43, 18,149,
- 82,229, 10, 17, 64,131, 31, 66,223,131, 10, 25, 51, 90, 68,198,117,117,250,147, 39,145, 48,155, 29, 29,157, 28, 69,145,195,151,
-100, 31,212,119, 67,223,245,109, 59,108,183,235,201,236,100,113,250,248, 97,249,  0, 50,100,249, 28,137,134,253, 10,136, 53,122,
- 59,153, 91,151, 73,191,182, 89,161, 18, 92, 89,109,182,251,114, 50, 49,121,134,195, 61, 34, 72,148, 93,221,220, 60,172,238, 54,
-235,170,112, 95,125,252,201,126,223,248, 24,246,219,165,116,173,250,118,185,221, 89,107,202, 44,155, 20,213,252,248,177, 43,203,
-217,226,241,252,120,190,186,191,158, 28,127, 80,228,217,246,225,134,144,135,122,181,190,254, 46,198,193, 50,237, 86, 55, 18,227,
-230,225,214, 58,151, 25,123,127,127,179,223,239, 98,191,173, 38, 39, 97, 24,188,175,149,221,244,232,131,174,151,253,102,211,119,
-117,189, 91, 91,227, 34, 64,219,172, 78,206,158, 14,  2,235,221,254,252,236,195,190,107, 86,203,235,229,195,109, 47,248,228,252,
-113,145, 79,235,118, 87, 84, 39,170,169, 88,238,163,170, 32,169,104, 93,111, 38,213,121,179,122,141,106,216, 24, 17,105,247, 91,
-166,124,126,242,216,216, 10, 81,179,172, 98, 87,214,155,229,166,174,187,253,125, 89, 20, 69, 94,216,188,  2, 50,251,205,114,232,
-118, 97,104,171,201,145,239, 58, 87,204,  8,177, 40,178, 97,123, 71, 38,219,238,119,147,233,162,109, 26,182,134,137,156, 43,134,
-208, 51,185, 65,176, 94,221, 12,190, 63,121,244,145, 12,237,110,191,114, 89,193,202,189, 31, 92, 54, 53, 89,185, 90, 61, 72,104,
-167,211, 69, 94,206, 78,206, 63,144,161,182, 89,217,183,203,109,189, 63, 61,255,228,236,236,233,126,191,181, 54, 43,171,106,104,
-183,138, 86,  8,202, 98,102,179,114, 49,155,123, 95, 43, 21, 67,183,235,219,166,154,206, 65,  6, 17,241,125,235,235,  7,180,147,
-106,122, 52, 57, 57, 45,139,252,228,100,250,225, 71, 31, 45,206,206, 32,134,219,171,139,239, 95,124,247,234,245,187,139,187,251,
- 87, 23,151, 23,215, 55, 77, 55,156,159, 61,254,215,127,244,199,159,127,244, 60,  2, 60, 61,157,253,254, 87,159,157,205,171,183,
-175, 95,125,253,155,255,114,125,125,223,133,240,201,103, 31,238,218,250, 63,255,227,247,125,221, 54,237,240,230,205, 37,133,112,
- 50, 41, 28, 17,168, 88, 68,203, 14,205,225, 69,214, 82,138,160,140,204, 40, 70,133,180,183,132, 40,170, 10,198, 88,  0, 13, 49,
- 13, 53, 81, 17,188,143,204,134,  9, 85,200, 48, 51, 64, 12, 33,142, 46,108,151,182,116, 74,144, 66, 30, 62, 68, 69,200,152,189,
-168, 49, 92,216, 76, 53, 58, 54,200,172,196, 65,  4, 37, 57,130, 88,  1,162, 68,107,205,104,186, 84,201,140,179,198,248, 16, 17,
-208, 16, 42, 81,136, 33, 72, 66, 54,242,216,225, 33, 36, 70,102,210,195,150,111,220, 19, 24,134,145,236,146, 98,142,105, 15,  7,
-  2, 80,102,185,205, 93, 94, 84,128, 22, 16, 36, 70,  6,100, 99,199,135, 27,179,177, 38,105, 35,152,168,112,206,101,101, 72, 78,
- 78, 54, 42,154, 91, 55,120,159,124,223, 18, 53,133,248,214, 93,144,232, 23, 85,158,248, 57,162,239,191, 25, 96,131, 81,177, 31,
-122,  4,224,148,156,255,235,191,252,183, 48, 66,192, 18,138, 65, 15, 71,234,120,118,170,106,140, 81, 52,140,249, 34, 64,136, 99,
- 70,  5, 14,233, 78, 60,248,130, 82, 47, 33,169,162,131, 31,216,100,206,216,180,234,102,164,131,176, 15, 65, 21, 36,226, 24, 97,
- 76,255,166,  2, 33,168, 36, 64, 29, 28,190,246,  8,149,  4, 56,132,229,211, 64, 71, 65,131,168,  0,202,  1,153,158,126,171,114,
-120, 41, 72,131,154,136,  2,233,112, 71, 72, 53, 49, 64,102, 85,145,224, 79,142, 78,114,166,111, 94,189,158,148,165,203, 50, 99,
- 76,158,231,251,221,238,242,250,238,171, 31,253,144, 20,163,234,208, 15,179,227,243,182,217,159,156,158, 53,187,157,201,114, 38,
-107, 83,183,246, 16, 20,125, 79, 25, 75, 98,190,164,141, 79,223,  4,211,248, 72, 76, 40,249,145,134,193, 60,190, 11, 37,134,251,
-200,204,193,145, 91,150,126,139,214,164, 27,191,190,103,248,188, 55, 57,209, 97, 72,  3, 16,250, 62,246,173,134,160,209, 35, 25,
- 54, 38,133,159, 96,188,227,143, 15,148,162, 58,178, 69,201,198,176,225,100,140,173,183, 77, 12,131,181, 38,203,236,229,235,239,
-103,179,249,226,244,108,185,220, 16,103,170, 34,190, 33, 54,160,193,119,141,155,156,128, 12,125,239, 53, 34, 50,213,219, 61,162,
- 56,134,161,109,202, 66,178,188,100,196,205,102,243,230,242,122,187,171,159, 60,254,240,231, 95,253,158, 40, 72, 28,186, 97,224,
- 24,119,155,101,219,  5, 16,157, 85, 89,158, 87,166,152, 77,230,199,199, 79,158, 79,166,199,235,213,  3, 57,135,104,194, 16, 46,
-223,126,123,114,122, 82, 76,142,234,237,122,119,119, 25,135,166, 42,103,117,219,116,125,215,238,238, 55,251,125, 86,206,250,118,
- 11, 26,178,162, 90, 28,159, 75,236,235,122,231,187,218,135,110,126,116,154, 87,199, 97,232,  0,141, 69,  1,140, 26,112, 58,153,
-150, 69,222, 12,190,217,109,192,100,236,166,177,190, 93,156, 60, 65, 91, 52,251,181, 69,201,108, 54,116, 77,215, 53, 16, 35,146,
-  9,125,167, 42,157, 15, 89, 54,  1,245, 72, 56,153, 31,  3,  6, 84, 30,154,181,130, 26, 54,108,172,250,193, 71,248,228,211, 47,
- 17,176,235, 58, 68,246, 93,227, 92,214,245,173,115, 25, 33,251, 24,172,201, 13, 82,232,183,213,244, 52, 43, 38, 15,203,107,231,
-242,217,226,108,187,186,217,172,215,196,204,198,169,120, 33,203,100, 38,139, 99, 12,221,118,191,158, 78,143,137,140,205, 75,203,
-108,160,167,172,106,246, 91, 37, 12, 62,174, 55,247, 97,104, 95,190,252,135,135,219,139,199, 79, 62,250,252,203,223, 25,250,166,
-235,187,106, 50,233,247,235,162,156,180,205,154,171,  5, 71, 79,164, 69, 81, 20, 60, 24,138,197,226,241,126,179,100,195, 39,103,
- 79, 84,251, 32, 28, 99,104,234, 77, 94,150,147,197,113,206,254,236,209,201,249,227, 15,141,165,229,213,187,183,175,191,255,238,
-197,183,175, 47,175,222,222, 92,191,186,188,186,186,187, 43,179,252,151, 95,253,211, 95,252,228, 39,243,217,145,133,250,159,124,
-241,244,203,143,206,187,186,249,246,235,175,191,125,241, 34, 42,126,242,197, 15,214, 77, 93, 84,101, 57,157, 92,221, 60, 60,220,
-222,231,140,199, 85,153, 49, 29, 90,143, 68, 72,100,216, 36,186, 10,130,  4,  1,196,164, 10,138,160, 73,228, 60, 58,162,210, 77,
- 77,100,  4,188,140, 66,202,247,231,195,216,239,  9,170,  2,106,198, 15,214,120,158,190, 23,235, 16, 17, 33, 43, 98,198,233,  4,
- 23,102, 70,226,168,128,168,140,144,156, 27, 99,141, 39, 25, 38, 84,152, 77, 18, 95, 70,137,105,208,170,105,247, 58,222,149,212,
-144, 49,196, 52,150,196, 33,140,142, 76, 74, 53,207,132, 27, 73,233, 13,102, 78, 37, 85, 17,136,170,150,  8,152,156, 43, 50,103,
-201,152, 97,240,233,106, 28, 37,240,225,205, 28,  1,173,115,198, 24, 66, 18, 68,203, 12,196,168,104,153,104,132, 24, 35, 18,129,
- 40, 32, 50, 99,237, 67,221,119,199,101,110, 76,218,100,164, 94, 46, 41,  0, 27, 84, 33, 67,168, 64, 33,120,199,108,152,249,175,
-254,226, 79,199, 80,185,142,237, 71,122,143,183,  5, 56,232,132,198,124, 17, 41,176, 65,100, 30,140,205,130,156,  0,  0, 32,  0,
- 73, 68, 65, 84,169, 91,122,200,202,143,128,  8,  2, 68, 54,227, 52, 95, 69,122, 31,167, 69, 38, 99,153,115, 44,201,210,129,212,
-131,230,125,  1, 85, 19, 32, 14, 36, 97,126, 14, 97,168,145,233,169,233,107,165,104, 57,168,130,160,136, 79,192,156, 20, 38,  7,
-  9,240,219,160,108, 50, 46, 50,140,169,126, 69, 76,240,160,  3,181, 18,  0, 81, 67,  8, 39,103,243,251,251,135,229,166,153, 79,
-166,108,172,181,156,187,236,155, 23,175,  0,233, 71, 63,124,222,116,157,181,110, 58,155, 94, 93,188,  2,180,170, 61,129, 49,185,
- 69,193,  0,202, 68, 34,  2, 64,196, 12,140, 32,169,113,108,  0, 85, 98, 24,105,198, 35, 26,159, 71,149,251,161,125, 52,150,  7,
-198,191,108, 26,191,201,180,109, 56,120, 10, 14, 30,  1, 60, 44, 20,128,153, 15,170, 62, 52,  8, 49,138,138,104,240, 49,  6, 98,
-195, 89,110,141,211,180,124, 57, 64,233,137, 16, 20,109, 86,186,204,  0,  8,168, 18,225,126,189, 75,127,227,229,164,106,235,250,
-230,118,125,114,254,216, 49,222,190,123,197, 54,247,125, 27, 99,  4,204,141, 97, 53,133, 97,146,110,131,156,  1,128, 53,212, 52,
-245,217,227,103, 81,201, 55, 43,199,  1,  1,135,182,189,186,127,184,190,189,223,181,245,143, 63,251,242,209,249,163,221,110,139,
-174,240,125, 19,187,102,187,221,228,121,110, 29,206,139,130, 92, 57,127,250,217,217,135, 31,151, 85,209,245,245,126,179,137, 10,
-177,223,  7, 69, 85,115,114,124,214,109,238,114,151,147, 14,165,203,135, 97,120, 88,221, 21,174,128,232,149,179,114,178,152, 45,
- 30, 25, 91,  0, 42, 35, 34, 80, 16,218,110,239, 93, 81, 89,223, 32, 64, 49, 61, 65,130, 42,207,200, 77,216,229,161,190,119,229,
- 68, 20, 30,238,223,176,155,176, 49,251,253,110,177, 56,137,210, 27,147,  5,145,174,175,125,240,174,152,135, 40,195, 16, 66,232,
-156,  5,118,153,113, 69, 86, 77, 12,130, 53, 78, 40, 35, 67,108,216, 16, 26, 82,102, 14,126,200,138,178, 44, 74,  0,174,155,186,
-219, 47,183,155,155,197,124,214,111,215,213,228,168,217, 45,157,171, 50,107,  1, 99,223,213,  2,209,217,172,107,118, 89,230, 10,
-147, 33,241,124,126, 26, 37, 56, 54,193,119,179,217,162, 44, 43, 25,134,174,111,144,204,110,117, 99, 45, 17,179,201,139,251,235,
- 55,139,179,143, 89,181,110,  6,  8, 91,138,253,197,245, 53,101,139,143,158,126, 32, 67,187,218,110,119,219,141,198, 33,  4,143,
- 26, 39,211,227,160, 24,  1, 89,177,152, 28,125,252,201,199,177,175,129,109, 57, 59,217,173,239,212,247,100, 41, 47,231,168,222,
-123, 63,157, 45,206,159,156,159,206,167,103,143,158,148,121,213,213,155,203, 55, 47,190,123,241,221,155,119,151,111,111,110, 94,
- 95, 94, 93,222,223,119,189,255,249,151, 63,253,229, 79,126,150,229,101,108, 30,126,250,217,179, 95,254,248, 83,163,253,219,151,
-223,125,253,205,247, 87, 55,247, 31, 62,127,246,147,223,253,217,139,183, 23,215,151,215,211,105,245, 31,127,245,155,102,179, 59,
- 46,139,210, 90, 38, 29, 57,169,136,  6, 17, 13, 27, 54, 72,140,132, 17,128,211,145,198,137, 43,160, 18, 53,170, 26,102, 32,  4,
-162, 81, 39, 65,168, 18,129,192,160, 21,209, 68,149, 73,246, 84, 80,176,134, 17, 48,168,138,136,177, 70,223, 39, 45,144,162, 10,
- 17, 51, 27,  4,240, 65, 85,128,205,216, 28,100, 67,168,208,197, 48,132, 65, 20, 45, 51, 17,143, 84, 21, 74, 38,  5, 80,145,195,
-141, 50, 93,108, 15,218, 59, 50,128,104, 12, 48,179,143, 34,170,198, 82,140,  0, 49, 29,184,163,142,129, 82, 74, 26, 81, 36,166,
-227, 17,  5, 18,141,128,137,125,  8, 26,  2,162, 14,209,163, 34,  1, 43,130,177, 12,135,161,115,  8,130,136,206,152,168, 82,228,
- 14,121,236,222, 31, 60, 70,202,204,134,168,238,195,195,174, 57,171,178,162, 40,198, 25, 63, 40,146,121, 79, 94,147,212, 54,  7,
-116,198,176, 53,134,152,255,250,207,254, 36, 61,210,244,  0, 40, 72,124, 72, 28,233,236,  7, 60, 61, 34,191, 63,118,145, 85, 83,
-142,227, 80,231, 25,151, 18,  9,146, 54, 62,148, 25,241,246,126,125,114, 52, 19, 72, 54,139,113,199,105,172, 19,141, 49,142,125,
- 37, 77,176,178,  3,122, 31,198,159, 42,189,139, 64, 66,152, 43, 42,162, 16, 51,  2,106, 20,  4,149,148,180, 73,136,124,137, 32,
-138,152,156,223,227,212, 25, 81, 65, 98,194,166, 19,190, 95, 32,143, 79,163,180, 84, 33,165,163,233,228, 63,255,227,119, 34,178,
-152, 77,153, 77, 85, 85, 26,252,175,126,243,205, 15, 63,254, 96, 94,149,189,168,111,219,160,212,238,214,189,215,233,116, 74,200,
-198,101,132,140,227,136,102,132, 22,179,181,108,140, 74, 84,145,177,255,  6, 35,121, 46,253, 13, 18, 39,221,205,120,120, 39,  1,
- 99, 26,118,165, 63, 48, 21, 32, 34,228, 68,167,123,255, 10,115,104,  6, 51,143, 69,  2, 26,  7, 97,233, 17, 34,132,108, 44, 91,
-135,  9,211,129,172,168,170,137, 33,193,100,140,196,232, 92, 78,177, 71,182, 72,236,123,175, 10,  9,182,227,202,106,245,112,119,
-119,187,122,244,228,204, 50, 46,239,239, 77, 86, 25,227, 68, 48,134, 14, 84, 99,148,188,156,228,213,113,219,236,136,193,251, 33,
-203, 43,137,186, 93,221,249,161,165,216, 70,223,175, 54,187,183, 87, 87,239,110, 30,186,161,255,252,139,159,158,158, 60,106,219,
-182,222,220, 74,223,119,205, 30, 33, 32,219,194, 48,219,202,204,142,159,127,254,101, 81,205,124,219, 12, 93, 31,  5, 12,162,134,
-182,107,187,249,116,210,239,111,247,235,229,195,242, 62, 12,173,136,236,154, 38, 51,152, 91,123,245,112, 31,145, 13,232,208,181,
-237,254,206,184, 28,217,236,118,187, 24,250,114,241,168,200,203,174,217,102,185,107,155, 54,  4,111,140,105,219, 58,134, 97,113,
-246,108,232,219, 48,116,153,171,200, 86, 16, 59, 54,  5, 89, 99,  9,187,253,138,109,110, 76, 62,180,219,208,109,217, 80, 89,205,
-115, 99,206,207,158,196,160, 64, 48,159,205,217,228, 67,183, 85,241, 10,104,141, 35,182,251,205,141,113,229,252,236, 67,107,237,
-126,117, 95,215,117,179,186,100,228,199, 79, 63,210,208, 39, 90,  0,146,233,125, 55,244, 13,178, 85, 85,  9,  3,155, 92,193,244,
-131,239,187, 46,170,180,109,227,251, 14,  0,189,247, 54,207,103,211,163,229,242,214,216, 44,138, 26,162,217,217,  7,  8, 74,156,
-117,237, 94, 12, 33,114,179,223,182,245,189,216,242,201,179, 47,116,127,157, 85,243, 94,248,234,221,139,160, 70, 37, 26, 12,147,
-163,199, 81, 67,179, 93, 50,229, 26,186,118,183,100,107,140,181, 38, 63,126,184,122,187,222,172, 29,163, 45, 22,251,237,198,183,
-235,211,211,163, 39, 31, 60, 62, 59, 59,153,206,231, 49,248,229,221,197,235,239,191,253,205, 55, 47, 94, 95,221,188,189,186,190,
-184,186,121, 88,175,143,166,199,191,255,139,223,249,131,127,246, 47,231, 71,231, 39,211,242, 15,126,241,195, 79,159, 63,189,121,
-247,246,191,252,253,111,222, 92,220, 24,151, 45,142, 23,219,102,255,235,111, 95,132,190,127,119,125,127,117,113,147, 35,206, 75,
-151,204,215,105, 37,133,  9,160,193,108,141, 33, 34, 69, 80, 21,131,135, 63,103, 78,200,188,131,204,136, 15,155, 41, 66,209, 49,
-162, 65,132,162, 98, 13, 39, 38,159, 87,  1,145, 44,203,198, 20, 10,147, 49,108,144,130, 70, 68, 98,235, 64,213, 25, 78, 87,114,
- 34, 50,140,136,152, 20,107,  9, 36, 34,170, 26, 65,  8, 28,219,  4,246,114,140,170, 32, 34,170,146, 54,130,138,191,181, 15,165,
- 60,136,  2,  2, 74,102,140,168,198,152, 68, 86, 16, 69,140, 97, 54,  9, 39,  5, 99,254,132, 65,229,192,184,196,196, 32, 36,  0,
-  8, 26, 83,176, 48,132, 16, 37, 90,102, 34, 74,224, 66,  4, 48,236,128, 14,  0,250, 36,221,182, 28,163,104, 12,104, 76,210, 95,
- 35,162, 99, 71,  8,187,118,120,216,213,167,147,108, 49,153,  4,197, 16,252,248,104,132,241, 88, 30,115,212, 10,  4,192,100,202,
-188, 96, 50,233, 25,152,104,238, 99,240, 46,141,218, 15, 30, 60, 76,131, 19, 34,  4, 34,149, 36, 11, 26,  3, 55,108, 80, 66, 74,
-120,164,158, 17,230,152, 16,143,138,192, 54, 51, 32,105, 65, 33, 42,112,  8,122, 67,240, 62, 73,207,211, 46, 52,129,  6,112, 44,
-252,104,144, 48,134,216,129,147, 23, 73, 14,224, 69,149,152, 64,196,128, 72, 18, 84, 68, 81,210,232,159, 70, 55, 87, 74,183, 38,
-178, 40, 65,210,217,137,188,159,112,164, 93,238,168,200, 38, 66,164,179,199,143,127,254,163, 79,254,211,223,127,183,152, 84,167,
-143,206,163,234,243, 15, 63,186,186,189,255,223,254,253,255,245,191,254,213,159, 81,244,192,230,147,207,126,180,223, 92,122, 79,
-153,163, 97,232,141,205,152,232,189, 17,117, 12,  1,197, 32,122,208,124,131,  0,140,250,174, 20, 90, 71,228,  3,230,147, 84, 66,
-194,206,128,200,184,139,161, 67, 92,104,156,215, 36, 65,251,200,197, 31,223, 99, 12,114,178,245, 29,244, 99,170,168, 24, 51, 91,
- 64,130,200, 51, 19, 25,133,120,  0,201,167, 82, 85, 84, 69,227,242,244, 46, 17, 36,118,109,207,  4,168,194,198,198,193,  7, 47,
- 24,  7,151,101, 46, 47, 92,158,139,130, 53,232,141,  1, 45,178,162,232,214, 75,128,208,172,151,209,215,110,114,164,128,121, 89,
-190,250,250,111,103,139, 39,219,118, 37, 28,163,226,174,174,239, 87,219,102,232, 20, 96,102, 20,128,188,239,131,104, 12, 26,186,
- 38, 70,177, 86, 17, 89,200,124,248,241,167,179,197,105,211,250,213,187,127,  4, 59,141,209, 71,129, 56,116,251, 93,237, 50,123,
-119,115,223,214, 75, 11,116, 52, 43,  1, 34,104,118,115,183, 69, 37,239,133,180,111,129,103,243,  9,241, 84, 67,183, 31,122, 87,
- 30,147,  6, 63,172,187,129, 63,248,228,167,243, 42,219,213,221,190,107,187,166,  6, 68,231, 92,229, 92,232, 80, 84,123,239, 93,
-225,216, 98, 93,223, 91, 58,203, 51,183,215, 91, 18,175, 42,121,181,232,155,189,115, 69,110, 76,235,227,106,243,208,246,193, 50,
- 69,223, 15,126,232,155,109,  8,195,244,248,105, 94, 84, 97, 24,178,124,166, 49,114,108,189,  2,160,160,168,115,213,116, 50, 93,
- 44,206,111,175, 46,242,233,153,111,235,162,154,132, 62,250, 24,187,182,182,206,213,187,123, 54,153,130,134,190,107,135,166, 92,
-156, 26, 19,125,143,189, 31,202,114,222, 55,187,203,253, 62,159, 76, 75,231,238,239,239,170,106,230,200, 70, 98, 54,230,232,209,
-243, 16,245,229,197,119,193,199, 15,158,126, 58,173,114,203, 84, 45,206,141,157, 10,244,121, 49, 99, 91, 41, 12,182,152, 70,  0,
- 67, 46,198,104,  8, 56, 47,125,191, 79, 55,159,235,203,151, 49,  6, 87, 76, 57,183, 76,236,202,108, 49, 63, 89, 44, 38,211,217,
- 84,  4,118,155,245,245,219,151,223,190,248,246,221,213,205,229,221,221,221,242, 97,181,221, 89,182,191,255, 59,191,255,211, 47,
-127, 62,248,190,105, 54, 95, 60, 93, 60, 61,121, 50,248,230, 31,126,245,171,215,175,223, 70,196,103, 63,248,240,254, 97,133,185,
-121,242,232,252,213,223,252,250,106,179,157,217,172,154, 26,163, 35,169,157, 80,251,144,168,176,224,140, 65, 50, 81, 67,210, 79,
-130,170,143,162, 72, 76,202,196, 49,  2, 17, 43,104,140,162,  2, 76, 38,125, 74,137, 40,170,128, 38, 50,187,  1,210, 24,162, 15,
-193,176,  1, 50,221, 48, 88, 99,152, 76,114,225,197,228, 48, 82, 68,145,204,177,247, 10, 42,214, 25, 85,209,  8,200,148, 27,  4,
-165,160, 81, 65,211,231, 35,135, 12,144, 80,132,  0,162, 74, 58,204,144, 40,136,210, 33,135,173, 72,162, 18, 21, 24,213, 24,  2,
-114, 62, 65,105, 65, 18, 14,209, 57, 78,222, 57, 80, 48, 72, 74,128,162, 49,106,202,227, 39,250,187,181, 20,135, 24, 35, 90,103,
- 53,106,219, 15,134,146,105, 89,  1,209, 56,198, 17, 25, 21, 41,209, 95,  9,211, 21, 48, 70, 73,198, 25, 82, 72, 10, 64, 34, 20,
- 17,239,195,126,232,115, 75,179, 34,247,  2,162,146,101,142, 13, 15,  9,105,  9,160,239,121,244, 18, 77,122,209, 79, 27,221,191,
-254,183,255, 22, 70,144,239, 72,254, 74,239, 42,  4,105,162, 64,163,  5,232,160, 64, 65, 98, 96, 64,136,137, 91,175,  7,233,118,
-162,236,195,251,  4, 14, 40,147, 81,223, 54,145,143,170, 66, 20, 12,189, 87,159,143,247,103,192, 36,168, 82, 34, 98,155,134, 53,
-239,215,168,114,128,100,165,127,108,212, 37,225,  1,193,  9, 32,  8, 17,  4,226,248, 86,  1,163,209, 85, 64,  0, 65, 35, 32, 18,
- 42,165,121, 79, 10,134, 38, 71,176,198,241, 17, 69,132,  4,162,250,228,244,244,205,155, 55,171, 93,125,114,114,194, 68, 81,244,
-120, 49,251,246,219,239, 93,150,253,224,217,121,106, 12, 22,213,244,245,247,191,185, 95,174,171,106, 66,204,198, 26, 50, 22,245,
-160,242,  2, 21, 77, 25,199,148,236,228,145,132, 57,190,142, 16,  2, 16, 50,160,164, 96,254, 56, 84, 18, 57, 68,188, 14,255,143,
-198, 39, 96,122,133, 18,162,100,246, 30,177, 67, 18, 71,193, 35, 30,188,183, 42, 17, 20,137,152, 51, 67,236, 84,131,170, 16,165,
-  2, 29, 17, 16, 16,106,192, 98, 50, 97,151, 49, 82,  8,106,  8,251,190,115,153, 35, 54,153,163,229,195,170,238,195,217,241, 25,
-163,191,187, 91,123, 47,161,223, 71, 31, 20,130, 53,206,100, 57, 34,249, 40, 68,232,123,111,157,241,253, 32,194,204,102,168,151,
-185,  1, 85,184, 95, 47, 47,174,110,234,174, 47, 93,254,203,159,253,226,126,187,241,253, 64, 68,210,237, 99,191,247,162,147,204,
- 69,165,199, 31,125,252,193,231, 95, 69,209,216, 55, 69, 53,151,232,219,253,182,204, 74,244, 77,240, 97,191,126,216,110, 87,147,
- 34,159, 58, 83,247,109,215, 14,235,186, 93,239,119, 65,194,174,109, 38, 85,229,178,172,111,247,243,227, 39, 49, 74,219, 54,140,
-154,226,163,207,158, 60,211, 97, 83,150, 71, 16,187, 24,194,110,191,149,208,151,147,227,190,223,152, 98,106,108,150, 87,211,161,
-221,103,249,220,100, 51, 38,106,238,223,102,211, 57, 25, 71,214, 74,240,200, 25,160,194,176,204,242,162,238,  2,145, 35, 66,100,
-102, 66, 85, 36,227,156,113,190,223, 24,107, 69, 52,244,245,233,241,233,116, 50,147, 97, 48,150, 93,158,177, 49, 55,111,191, 25,
-134,182,235,218,193, 15,109,189,202, 11,151,229,133,181, 22,  1, 16,172, 42,250,190,115, 89,225,125,147, 27,103, 93,161,234,243,
- 98,218, 13,181,  2, 75,236, 69,  2,  8,122,239,217, 98, 91,215,  2,220,110, 46,239, 87, 15,239, 46, 95,158,158, 60,121,254,209,
- 15,202,233,169,239,106, 36,147,151,149, 82,182,190,125,201,  8,179,147,167, 67,187,170,166, 83, 13,190, 93,221,230,229, 76, 68,
- 33,  6,206,220,100, 50,157, 31,159,173,214,173, 42, 28,159,156,103, 89,177,152, 87,167, 39,213,108, 62,173,166,211,110, 24, 86,
-119, 87, 47,191,251,205,175,127,253,235,239, 47, 47, 47,111,111, 47,174,175,183,245,254,211,231,159,253,247,127,242,151,159,124,
-248,169, 31,186,227,138,127,239,139, 15, 22, 37, 93,190,125,243,221,215,223,189,189,190, 61,127,114,250,233,151,159, 44,235,253,
-122,185, 41, 74,247, 31,254,230,239,135,125,125, 94, 77,203, 60, 79,106, 64,227, 18,145,  9,149,209,178,117,134,141, 49,173,239,
- 15, 59, 60,  5,196, 16,211, 50, 27,147,201,250,240,218,138,137,208, 21,162,152, 36, 48,196,  4, 43, 81,213, 24,130, 34,162, 99,
- 22,213, 40, 33, 81,216,211,  0, 54,104, 58,112,152,  8,148, 49,248,177,173,157, 94,225,  9,136, 13,137,128, 15, 33,196,192,137,
-213,113,120, 75,  0,144,180,220,146,148,  7, 60,132,208,144, 80,144, 82, 50,129, 16,153,145,157, 53, 72,132, 24,162, 70,149,164,
- 22, 73, 41,  6,195,148,240, 33,137,142,251,126,143,120,200,179, 41, 51, 91,195, 33,  6, 85,180,214, 36,195,225,168,230, 99, 82,
-129, 16, 35,155, 20,185, 65, 51,142, 49,210, 96,136,  9,148,201, 70, 85, 67,148,182,193,203,182,139,189, 63,155,148,  2, 86, 33,
- 18,113, 58, 18, 13,145,136,166,129,  1, 35,105,146, 65, 19, 50, 27,195,198,107, 52,154,214, 33,163, 91, 68,248,183,134, 33,100,
-128,209, 32, 13, 32, 18, 15,218,232,228,  9, 98, 72,220,171, 49,227, 50,178, 30, 85, 35, 37,223,180,168,  2,158, 30,205, 94,220,
-236,240,124,174, 49,142, 10,246,  3, 69, 82, 71,213,201, 88,203,140,222,115,122, 83, 24, 23, 32,244,222, 93,164,135,147, 93,100,
- 68,  1,129, 14,  4,170, 64,  2,145,233,144,227,161, 20, 94,209,148,136, 84, 28,161,  5,100, 57,189,118,232,152, 13,226,131, 53,
- 67,  1,  9, 84, 76,102,255,232,159,253,252,255,248, 63,255,223,119,151,151, 63,248,244, 99, 80, 87,228,103, 63,254,252,211,255,
-240,159,254,243,143, 62,123, 86,100,102,215,108, 77,150,157, 61,122,  4,144, 47, 22,147,213,114,195,236, 44,233,104,153, 79,246,
-117, 60, 28,207,248,219,217,153, 15,129,217, 28,236,144, 49, 17, 31, 84,129, 17,226,200, 83, 56, 60,177,  0, 18, 83,126,252,157,
-140,112,130,164, 45, 76,205, 92,129,247,188,  8, 29,173,179, 56, 66, 45,  0,148, 36, 14,170, 64,204, 35,186,255,224,131, 76, 26,
-112,  0,137, 33,250,174, 35, 66,114,153,177,108,243, 76, 85,155,221,  6,165,243, 58,204,170,133,134,174,223,173,179,201, 49,160,
- 49, 16,251,110,227,138,169, 10, 16,104, 64,140, 40,209, 55, 93,167,121, 89, 40,178, 97, 32,199, 49,202,224,227,224,189,134,240,
-244,147,207, 49,159,247,219,203,233,116,209,109,238, 66, 95, 71,  4,198, 56,  4,153,157,126,112,246,236,147,174,217, 18, 87, 26,
-187,245,253,205, 16,134, 24,194,126,123,247,112,115, 81, 84,167,113,168,213, 55,  3, 14,131,232,122,189, 33, 50,203,237, 14, 24,
-251,125, 93,239,182,134,205,220,229, 81, 36,  6,239,138, 73,169, 88,111, 87, 82, 20,229,244,232,104,177,104,107,192,188,148,122,
-217,180, 77,140,234, 12,134,216,247, 67, 40,226,206, 32, 69,208,204,101,210,109, 61,185,216, 14, 68,198,215, 91, 71, 70,144, 67,
-191, 87, 42,242,172, 44,167,147,253,110,141, 49,  8,196, 40,193, 88,174,102, 19, 21,180, 54,151,232,157, 45, 39,121,222,113,182,
-139,241,254,225,190,200, 55, 77,211, 84,147,217,208,118,141, 42, 81, 86, 77,103,113,183,243,190, 39, 37, 17,106,247,219,180, 22,
- 26,186,118,232,  7,231,178,190,173,153,173, 53,166,233,154, 24,176,116,184,233,219,162, 90,128, 39, 25,122, 59, 61,153,103,185,
- 53,102,121,119, 57,132,110, 24, 90, 59, 61,125,156,229,179,220,173,239, 46,170, 35,216,109,239,171,217, 41, 15,144,217,118,113,
-242,200, 58, 27,200,204, 22,143,250,118,155,103,133,177,206, 26, 82, 31,119,235,119,229,100, 78, 54,103, 99, 44,199,117,221, 62,
- 49,225,228,248,168,154,149,101, 81, 68,  9,203,187,219,205,253,237,155,215,223,191,188,120,247,238,246,246,226,250,102, 87,215,
-139,217,226, 15,127,247,143,254,201,207,127,135, 98,219,215,235,175, 62,125,244,244,180,218,173, 55, 95,127,251,221,237,253,106,
-190,152,156,156,157,244, 49,254,237,175,191,206,173,123,245,246,234,226,205,117,153,217,233,209, 49,234,  8,115, 53,142,210,199,
- 46, 32,103, 99,217, 26,124,  8,214,176, 68, 13, 26, 25, 57,213,240,144, 24, 84, 65,116,  8, 65,130, 26,147, 92,170,130, 68,150,
- 77,170,253,228,153,233,135, 16, 35,160,162, 37,  4,196, 33, 70,  4,101, 99, 52,136,162, 48,154,116,174,165, 74,121,240,209, 90,
-195, 25, 74, 28,213, 15,  6, 72, 65,130,136, 70, 33, 34,209,113,180, 78,204, 16,  5,  8,162,160,140,222, 15,140, 41, 19, 50, 14,
-138,  1, 68,152,  9,  1,125, 76, 67,  4,245, 18, 19, 46,139,129,211, 60, 56,109,139,  1, 48,170, 32, 37, 15, 19,  6, 21, 28,171,
-149,160,160,101,150,  9,104,244,193, 57,151,216,130,160, 74,204, 72, 42,  1, 84,212,176, 37,195, 32,193, 50,167, 15,171, 33,  4,
- 67,226,189, 97,  6, 96,107, 88,  6,141, 81,216,224,190,237,135,182, 61,158,149,232, 28,  8, 36, 79,  8,  3, 42, 81,148,212, 70,
-210,224, 21, 29, 89,230, 36,125, 72, 55, 68, 82,224,255,241, 47,255, 28,198,246, 15,209, 72,114, 72,135,225,248,118,112,184, 95,
-114,154,213, 28,230,216,240, 94,179,148, 46,245, 35, 98, 75, 14,216, 96,  0,  0, 45,178,252,237,197,197,124,113,108, 71,119, 35,
-140, 98,189, 68,187, 25,239,250,138, 68,108, 80,198, 23,134,180, 34, 68, 72,251,130,195, 47, 46, 61, 54, 71, 33,121,242, 28, 43,
- 40,210, 97,210, 50, 46,145, 83, 39,120,124, 63, 24, 23,140,240, 62,248,163,128, 60,146, 20, 32,205,254, 80,  1, 98,152,206,102,
-187,237,246,226,234,174,176,217,236,120, 62,244, 67,158,101,203,229,102,179,111,127,254,197,243,174,247, 18,195,221,205,125, 63,
- 12,243,227,147,253,102,229, 76,230,178, 12,229,208, 56, 26,179,139,233, 27, 76, 96,  5,  0, 68, 54,227,251,208,216,196,  2, 69,
- 66,145, 56,254,232,108, 21,  5, 98, 68, 38,  0, 26,141,224, 99,  6,149, 15,165, 93,132, 67, 45, 56,101,204,210, 43,146,140,104,
-186,164,136, 81,149,244,227,152,113,194,150,  2, 52,156, 50, 88, 69, 81,205,144,176,109,  7,  4, 84,241, 69,206, 10,132,192,113,
-104,110,175,239, 59, 15,179,105,229, 50,115,121,249, 16,252,128, 10,214,229,169, 76,128, 49,248,174,141, 68,126,191,201,138,194,
-247, 33, 70, 65,191,  5, 38, 19,183, 73, 26,247,230,250,246,118,185,236,188,255,225,199, 63, 48,161,117,197, 52, 52,123,223,212,
-237,230,174,245,126, 86, 76,148,233,195, 31,126,117,116,254,164,221,109,156,115,211,147, 15,218,166,235,183,203,122,125,101,109,
- 97,140,205, 51, 75,204, 57,103, 93, 83,199, 40,189,232,126,187, 14,  8,165,205, 55,187,141,117, 89,149, 59,103,204,209, 98, 33,
-170,205,126,215,117, 53,187,114,113,124,222,214, 59,136,189,203,202,205,190,185,189,121, 27, 49,223,239,215,211,249,137, 14,141,
- 97, 39, 50,  0, 66,136,218,251, 16,154,135,227,179, 15,252, 48,212,155,155,124,114, 76, 68,174,156,151,147, 89,150, 57,  6,109,
-247, 75, 31,116,240,123, 66, 86,136, 32, 93,140, 42,126,200,178,124,232,107, 54,121, 20,159, 57,  6,141,253,224,219,118, 48,164,
- 49,120,227, 50,118,  5,136,206,103, 11, 16, 25,134,182, 40,167,189, 31, 92, 86,177,117, 49,232,234,225, 74,128, 77, 58,128,217,
-130,192, 48,244,192, 72,  4,126,232,145,108, 68, 41,242, 28, 20,230,211,227,135,229,187,235,213,114,191,219,158,159, 63, 59, 57,
- 58, 33,114,229,226,220, 90, 87, 78,143,  1, 89, 21, 66, 24,182,235, 27,147, 79,201,228,205,126,103, 25,243,124, 14,138,157,239,
- 21,140, 53,  1,144, 57,203, 39,213,220, 21,185,244,155,103,207, 30, 61,122,244,104,113,188, 96, 99,187,118,255,112,253,238,205,
-203, 23, 95,127,251,205,139,139,183,151,119,119, 23,183, 55,117,221, 60,123,242,193,159,253,235, 63,126,246,193, 15,183,171,219,
-179,137,251,242,249,105,105,244,205,171,151,255,240, 15, 95,  7,137,121,145,  7, 17, 83,229,222, 15,223,125,255,182,221,181, 19,
- 99,143, 38,149, 25, 95, 82, 37,141, 83, 84, 49,202, 40,181,176,198, 72, 82,175,165,216, 71, 34, 34, 26,131,138, 68,104, 82, 14,
-122, 60,107,240, 32, 60, 98,132,145,237, 46, 81,130,138,170,102,142,129, 72, 36, 42,162,177,196,201, 71,151,252,113, 34,134,153,
- 57, 53,158,128, 13,161,  1,245,202, 68,134,199,117,215,193, 21,145, 14,113,176,204,169, 17, 58,  4, 25, 41, 44,100,  0,  1,153,
-249, 16, 40, 78,183, 68, 99,  9, 20, 99,148,116,169,125,223, 47, 97,194,168,224, 12, 89,231, 44,178,138, 40,104,110,242,132, 42,
- 87, 21,139,148, 14, 54,195,134,  0,  6, 31,  8, 34,115, 90,154, 41, 34,165, 72,184,247, 66, 76, 76, 22,  9, 13,  2,145, 17, 85,
- 38, 50,214,166, 11, 29,145,161,228,  3, 81,  1, 68, 99,168,247,113,189,223,207,138,188,204,179,116,202,216,145,150, 67,160, 74,
- 68, 34,170,  0,134,137,153, 12, 51, 18,138,130, 15,145, 64,211,224, 46,249,197,137, 71, 34,138,144,234,225,196, 79,194,114, 80,
- 64,213,247,235,208,247, 97,111, 76,250, 91, 34,162,164,170,  5,  2,  6, 84, 57,136,161, 33,  0, 31, 79,243,135,237,238,233,241,
- 76, 36, 61, 53, 15,133,132, 52,120, 79,187, 79, 73, 88, 48,147, 86,185,  4, 36, 33, 40,104,210,154,166,245, 35, 17, 18, 74,  2,
-175,140, 96, 25,213, 67,202, 38, 69, 19,211,166, 29, 15,227,123, 81, 33,  1, 73, 55,221,116,157, 39,192,241,176, 37,  4, 74,195,
- 18, 85, 38, 85,252,157,159,126,249,221,219,235,235,187,187,106, 50, 45,171, 50,138,255,224,233,163,191,251,205,119, 95,125,249,
-241,249,201,162,238,194,143,126,246,187, 18,154,237,174, 57,127,250,120,189,218,184,224,152, 24,209, 40,  0, 59,171,209,171, 74,
- 12, 66, 72,232,140, 98, 36, 66, 85,209,212, 85, 96, 74, 15, 42,  9, 33,253, 94,147, 24,132,144,213,164, 55,216, 20,110, 61,108,
- 17, 84, 16, 57,  1, 66,117, 92,152, 34, 18,146, 49, 26, 98,140,131,113, 46, 97,232, 53, 36, 98,157,112,234,138,164,121, 86, 20,
- 53, 12,  0,209,  7,155, 51, 18,182, 93, 15, 10, 93, 83, 91,146, 96, 45,145, 74,240, 38, 43,216, 24,132,  8, 81,216, 88,155,229,
-138, 71, 72,168,210,183,251,218,106, 12, 54, 23,229,216,181,192, 70,163,247, 30,173,225,108,250, 40,160,217,175, 95, 89,235,186,
-190,105,154,150, 16, 13, 91, 34,107,166,143,172,205,219,193, 83, 24,  6, 31, 93, 86,177, 45,167, 71,243,249,233, 73, 93,111,189,
-224,244,228, 81,232,118,190, 93, 85,199,103, 93,179,111,235,218, 57,179,219,174,135,190, 71,241, 64, 90,239,219,213,234,206,139,
-150,197,116,181, 89, 55, 67,180, 20,247, 97,112, 54,107,183,155, 72,182, 29,250,188,156, 13,195, 16,154, 77,244,158,220,196,149,
-139,219,235, 43, 99, 43,132,161,116,150,137, 64,216, 15, 77, 84,200,184, 10,245, 67,181, 56,245, 68,235,235,111,178,242,180,156,
-159,179,177, 24,  3, 16, 33, 90,109,247,198, 96,181,120,204, 77,141,  4, 67,219, 24, 91, 33,120, 37,107, 12,239,150,151,197,244,
- 88, 67, 19,177,220,174,111,227,224,201,230, 72, 56,116,129,136,173, 41,253,176,235,155,189,198, 61,178,149, 32, 49, 14,251,237,
- 93,107,171,204, 56,237,215, 89, 62, 55,140,126,232, 32,202,224, 99, 28,106, 96,107,139,249,224,  7,  2,200, 51,215,180, 97, 49,
- 59,219,238, 30,190,125,243,155,166, 94,255,240,195, 47,  5,141,203,136,136,251,254, 30, 86,146,231, 19,233,119,214,132,193,235,
-126,243, 48, 61,127,158,229,147,118,191, 70,197,  0,188, 95,223,100, 46,115,197,116, 49, 59, 10, 67, 71,166,244, 33, 88,226,217,
-164,154,125,250,233,164,170,178, 44,239,218,166,174,119,155,251,155,111,190,251,250,197,235,139,205,126,191,218,108, 55,155, 13,
- 91,243, 63,255,119,255,203, 23, 95,252,164,174,235,216,110,126,254,233,209,147,211,249,237,213,205,203, 87, 47,183,155,221,179,
-143, 62,172,206,166,255,223,223,254,227,179, 71,199,157, 14,191,250,135,239,102,228,206,171,210,199,168,136,108,156,196,161,105,
-251, 62, 52,185,181, 69,150,231,121, 22, 99, 80,  5, 31, 67,140, 98, 83,237, 61, 13, 16,172,  9, 94,200,176, 65,235,131, 71,  5,
-203, 28, 48, 38,173,  3,  1, 41, 64,225, 44,170,168,136,199, 36,  2,228,193,135,145,170,164, 98,192,120,  1,  4,148, 24,172,179,
-133,115, 94, 49,  9,155,148, 48, 70,193,136,206, 25, 81, 53,160, 33,137,136,  1, 13,211,144,182,112,138, 62, 13, 69, 69,217, 80,
-242,119,166, 68, 37,160, 26, 99, 67, 12, 17,129, 64, 83,132,  7,  8,208, 25,136, 10, 34, 41, 15,168, 24, 81,217,177, 97,107, 37,
-134, 94,133,  9, 24, 77,140, 67,  4,116,105,  9, 11,138,136,142, 40, 34,134,168,133,203,  0, 16, 33, 42,129,  4,176, 76, 94,162,
-  2, 86, 69,209,  6,  1,137,214,218,160,136,160,  6, 13,128,104,140, 41,175, 14, 18, 33,105,224, 84, 17, 68, 98,188, 94,110, 10,
-198,163, 73,217, 69,113,136,145,176,139,222, 32, 27, 70,  0, 26, 68,144, 17, 99,  4, 38, 80, 13, 33,  2,128, 65,238,209, 19, 40,
-  1,241,255,244,151,127,  1,  8,140,128,230,183, 17,125, 28, 35, 26,233, 65,136,227, 61, 55,161,  5, 36,140, 36,152,195, 26, 22,
- 71,132,103,194, 36,143,113,245, 52, 71,  8,128, 83, 19,239,183,237, 98, 62, 17, 25,239,246,233, 68, 38, 32,125, 95,184, 79, 35,
-133, 68,200, 26,139, 84,  4,128, 26,  3,154,131, 24,100,108,185,141,  5, 78, 64, 74, 13,177,177, 16,251,219,164,230, 40, 34, 77,
-122,215,177,120,139,  4, 74, 32,137,131,147, 30,103,227,216, 28,145,  1, 40, 70,157, 76,114,  6,255,143, 47, 47,115,103,102, 71,
-115, 98,202,141, 27,250,254, 55, 47, 47,126,254,229, 39, 65, 98,223,247,183, 87, 23,203,229, 50,200, 48,244, 67,238,242,  4,205,
- 52,198,106,148, 68,101, 24, 31,129,162,105, 89, 35, 49, 34, 36,249,150, 66,122, 77, 27,215,195,172,154,222, 71, 18, 69, 72, 37,
- 10, 26, 67,104,210, 28, 38, 77,114,144, 65,163,140, 58, 66,194, 84,171, 83, 20, 64,  2, 77,141, 92,  0, 76,116,103, 68,250,109,
-238,120,108, 35, 43,  0, 66, 86,206, 13, 99,219,180, 89,158,245,117,107, 51,139, 54, 67,  4, 21,181,214, 61,220,222,183,245,230,
-248,241,179,217,124,122,241,234,123,224, 76,162,236,151,247, 46,171,140,203, 35, 88,100, 43,161,103,195,125, 63, 40,160,205, 28,
-160, 27, 86,239,218,122, 89,230,249,114,179,189,184,185,109,187,222, 11,252,226,167,255,204,162,248,118, 75,177,237,219,253,166,
-237,166,211, 41,101,238,217,243, 47, 92, 81,121, 49, 89, 81,146,134,187,139,151,104,109,189,188,204,108, 85, 86,149,250,222,135,
-136, 34,221,246,190,233,122, 65, 18,223,163, 49, 79, 79,159,108,235,205, 32, 65, 99,200, 51, 87, 85,147, 40,113, 24, 90,227,114,
-137, 66,168,  2,216,117,155,211,179,199,190,111, 86,235,109, 93,239, 67,243,144,229, 37, 32,119,109, 45,136,117,219, 53,237,158,
-  8, 28, 27,114, 57, 82, 33,200, 33,198, 97,232, 93, 53, 37, 54,245,110, 37,202,206,112,  8, 61, 72,168,155, 70,136, 65,209,162,
-175, 38, 39,206,102,108,115, 36, 38, 67,136,216,118,221,118,183,149, 48,236,214,247,  0,120,180, 56,206,156,169,155,214,230,229,
-126,191,239,187,225,104, 49, 45,242,  2,208,129,239, 76, 54,  9,253,110,114,116,228,152, 98,240, 89, 86, 13, 62,206,166,179,147,
-163,121, 81, 76, 53,134,172,156, 16, 72,235,251,182,239,110,151,183,147,242,168, 98,146, 24,  0,105, 54, 61, 98,150,182,235,216,
- 22,229,252, 12,181,179, 46,207,202,197,126,189, 42,170,105,244,221,208, 55, 89,158,  7, 17, 81,244,221,190, 40,114,212, 33,250,
- 22,144,143,142, 22,143, 31, 31, 85, 85, 54,153, 76, 84,180,222,109,238,111,223,190,121,245,242, 87,127,247,119,223,188,186,184,
-185,127,184,123, 88,  6,209, 31,125,241,227,255,230, 15,255,248,195,167,207,111,223,254,230,209,220,252,248,147,163,130,240,235,
-175,191,249,254,197, 43, 54, 12, 76,154,217,111, 95, 93,236, 54,187,235,171,155,239, 95, 94, 30,103,238,164, 42,153,153, 13,151,
-142, 51,107, 66,  4, 31, 35, 34,176,161,204,216,180,169, 28,111,170,138,214,146, 87, 85, 80, 98, 78, 98,179,  4,154, 77,168,193,
-160,146, 86,121,  2, 96,136, 13,161, 68,241, 33, 36,125,141,177,172,162,137, 42, 59,214, 17, 15,221, 72, 69, 16,213,182,239,153,
-137, 24, 67, 20,195,204,128,206, 26, 70, 35,163,205,103,204,135, 32,160, 53,236, 12, 43,170, 38,  1,247,232,131, 38, 64, 48,105,
-190,195,156,  2,239, 57, 83,170, 74, 38,146,176,136, 16,170,113, 38,125,243, 76,236,216, 18, 37,186, 31, 57,166, 40,154, 10,235,
-134, 80, 16, 64,128,137,172,229, 46,  8,129, 26,102, 77,132, 94,107, 81,  5,  1,251,100, 88,101,163, 10,134,208,218, 44,136, 26,
- 34, 34, 43, 26,145,146, 65, 57,213,143, 16, 16, 12,162,  2,129,234,253,182,  1, 13,103, 39,115, 47, 96,  8,129, 25, 85,153,216,
- 18,132,177,217,  3,170, 34, 49, 16, 83,  8,202, 76,  0, 24, 68, 98, 28, 12, 82,239,  7, 51,238, 69, 85, 53,200,225,136,  2,132,
-209, 73,136, 35,103,102,100,236, 42, 68, 96, 30, 19, 55,144, 30,118, 73,151,138,201, 16, 61,238,  8,146,108, 21, 64, 99,200,171,
- 41, 63,220,140, 35,244, 17, 84, 25,117,140,141,208,248,229,198, 41,198, 97, 57, 43, 74, 76, 18, 21, 76, 98,117,166,227, 78, 80,
- 89, 17,188,136,  1, 16,140,170, 35,138, 39,117, 91,137,  8, 68,210, 77,253,125,252, 71,  9,223,123,212, 71, 73,169,140,163, 27,
-  5, 21,145,168,158, 21, 17,160,239,241,231, 63,253,201,197,229,253,213,205,221,108, 54, 63, 62, 57,214, 28, 62,126,246,236, 63,
-254,237,223,253,205,223,125,251,135,255,244,199, 15,251,246,228,236,217,211,140,190,251,230,155, 47,127,242,179,118,191, 19,  0,
- 86,  9, 33,188, 87,187,167,196, 21, 27,163,160, 26, 21, 21, 84,  6, 69, 65, 97, 64, 64,178, 32,202,214,136, 38,  8,193,216,184,
-  2, 65, 98, 77,140,124,100, 74,111,127,160,128, 17,211, 91, 41, 32,168, 72,196,177,  1,160,  2,138, 17,217,162,161,196,104,163,
-145,238, 44,132,246,191,202,  4,163,248,104,115,215,247,189,117,150, 48, 22, 85,161,164,160,  1,201,162, 73,175,  5, 32,  2,245,
-190,142, 39, 71,214, 21, 81,160,110,246, 38, 43, 93, 89, 49,218,102,187,236,234, 70, 36, 90, 84,116,121, 57,169, 24,  1,140,221,
- 14,181,181,198, 71,241,222,119,221,224,125, 40,114, 87,152, 16,169,204,114, 30, 54,187,221,110, 55,201,243,220,186,197,241,169,
-113, 69,179,219, 70,228,249,252,169,177,153,162, 33,100,107, 93,179,221, 22,229,164,239,187, 60,115,203,237, 18,216,101,  0,125,
-221,  2, 59,146,184,218, 62,236,246, 27,195,121,140, 50,153,206, 50,166,182, 27, 24, 89,253,  0,156,  5, 68,195,118,126,244,148,
-145,167,147,108,181,222,220,223,109, 23,179,217,116,118,220, 52,123, 69,202,172,107,234, 38,203,139, 50,207, 69,164,223,175, 57,
-159, 64, 24,156, 37,180,115,  8, 67,240, 29, 16,135,190,217,118,189,201,103,108, 50,227, 38, 12,146, 57,106,155, 48, 12, 53,171,
-230,213,145,250,154,162,  4,148,170,152,102, 68,125,183,153,157,127,104, 12,  3, 65,215,110,183,245,182,240,118, 82, 86,131,247,
- 26, 98, 27,106,231,170,174, 94, 13,245,242,201,249,243,188, 42,218,253,174,105,106, 76,122, 10,208,135,235,139,233,201,121, 81,
- 20,198,184,251,135,183,251,182,159,149,243, 39,167,143, 21, 12,229, 85,145,209, 48,248, 16,189, 35, 10,193,163, 15,251,237, 61,
- 97,  4, 16,227,154,220,209,233,241,209,190,174,219,190, 27,134,218,123,207,174,130, 96,144, 50, 54, 89, 94,232,233,201,209,217,
-227, 71, 69,145,199, 16,134,174,217,172, 30,174, 46,223,188,185,120,251,234,205,229,205,253,114,185, 89, 13, 62, 62, 59, 63,255,
-139,191,248,235, 79,191,248,234,238,221,149,214, 87, 63,255,252,105,149,187,155,215,111, 94,190,122,195,140,130,128,142,171,197,
-228,250,250,225,237,235,139,210,216,220,152, 79, 78, 79,152,  9, 84, 19,155, 54, 70,236,195, 96,  8, 38,121, 22, 66,242, 22,144,
-162, 48, 18, 42, 26,  2, 33, 80, 66,142,202, 70,  1, 48, 68, 85,  9,  9, 54,146, 34,207,134, 16,  0, 13, 81,142, 16, 69,135, 32,
-201,146, 74, 76,138,136,204, 40,209,135, 94, 21, 44, 83, 16, 80, 80,107,141, 70, 29,  0,147, 72, 58, 77, 68,211,255,  5, 80, 12,
- 49,210, 97,127,170, 99, 72,  7,216, 80,136, 49, 68, 53, 64,128, 18, 37, 29,152,227,205, 83, 83,153, 18, 52,105, 25,132,149, 34,
- 34,146,239,189, 73,224,176,  4, 62, 36,195, 72,233,196, 79,195, 99, 75, 24, 68, 36, 70, 52,204,100,188,198,140,172,113, 24, 98,
-  8, 65,210,240, 24, 15, 55,214, 16,162, 15,209, 25,227, 40,  7, 20,  5,116,100,131,134, 32,225,208,177, 18,228,145,208,144, 92,
- 74,140,200,134, 98, 16,208, 88,119,253, 48, 12, 39,211,202,144, 65,144, 20,112, 84,228, 16, 37,149,245, 49,197,117,130,  8,160,
- 68,207,100, 19,187, 94, 84, 17,104,240, 94, 98, 48,135,173,109,226,120,141, 91,102,129,  8,148, 68, 19, 64, 72, 17, 99, 74,219,
-  0, 26, 28, 87,123, 66, 56,134,251, 19,239, 13,120,148, 20, 33, 40, 19, 70, 25,199, 96,189,102, 25, 67,  8, 49,173,105, 17,137,
-129,148,  0, 34,140,143,132,180,247,246, 17, 17,137,237,200,144,140, 66,140, 26, 89, 37,241, 23, 89, 85, 34,  8, 40, 48,167,226,
-146,142,  4, 24, 64, 48,  4, 49, 61, 85, 18,122,102,172,236, 30,150, 61,  0,162,104, 84,149, 68,210,115, 58,121, 71,  4,144, 52,
-138,142,245, 89, 17,133, 63,250,189,159,253,239,255,254,255,217,110,183,206,185,217, 98, 14,160, 95,126,246,233,255,253,171,191,
-255,233,231,207,115,231,186,174,157, 46, 30, 45,102,147,183, 47,191, 21,208,179,199,207, 80,149,153,  1, 73,  1, 73,146,204, 26,
- 53,134, 52, 67,151, 24,131,239,149,192, 24, 99,200,164,134,147, 28,250,200, 35, 97,152,136,141, 17,141, 41,129,139, 64,169,185,
-167, 32,227,152,246,158, 56,101,  0,  0, 32,  0, 73, 68, 65, 84, 82, 99, 34, 55,164, 97,153,200,168,115,  4,212,212,106, 35, 36,
-137, 50, 14,157, 36,138, 82,194, 17,165,226,117,236,134,193, 71, 87, 22, 81,196,228, 14, 52, 50,129,146,129,232,137, 17,173, 67,
-155,203,208,176, 70,114,101,179,188, 39,213,106,122, 98,139,162,221,111, 80,192, 15,189, 43, 42,196,200,126, 27,  7,228, 98, 94,
- 20, 19, 85, 40,139, 34,  4, 29,124,136, 33,246,195,112, 50,153, 73,140, 96, 93, 28, 86,171,229,  3, 49,101, 89, 94,148,213,209,
-217,211,200, 44,128, 46,159,102,121, 17, 99,232,218,118,186,152, 19,101,132,117,219,108,234,253,186,172,166,121, 94,108,219,102,
-223,180,247,155,245,233,209,233,182,222, 11,113,158, 79,  5,145, 82,141,  0,193,185,156, 12,109, 55, 43, 91, 40,  6,140,108, 50,
-166, 97,127,127,191,  3,195,110, 54,153,134, 32,171,205,  6,148,189,247,  6,109,140,126, 62,127,180,200,176,  7,183,220, 46,157,
- 98, 97, 29,144,179,182,240,237,182,109,154,201,226,188, 23,169,219,173,201, 52,168, 49,134,138,162, 98,136,197,100, 46,209,239,
-238,222,186,172, 84,224,182,222,238,154,102,177, 56,203,140,221,214,251,249,236,172,238,189, 72,204,108, 54,159, 44,154,102,211,
- 55,117, 53, 59,241, 26,218,253,234,244,113, 85, 76,230,155,135,123, 64, 10,245,186,237, 60, 16,183,205,222,119,117,113,244,184,
- 31, 38,147,106, 49,196,246,155,183, 47,103,213,252,217,249,211, 24,154, 16,194,110,191, 98,151, 23,217,177,203,105,  8,131,143,
-234,251,125, 86, 46,178, 44, 71, 38,137,195,116,113,110,179,105,189,185,181,121, 53,153,206,195, 48,100, 25, 13, 67,237, 37, 20,
- 69,241,232,108,118,124, 52,159,206,167, 64,220,119,237,126,187, 92,222, 93,189,126,253,246,197,155, 55,151, 55,247,203,205,118,
-187,219,156, 31,159,252,171,127,249,231, 63,248,232,249,201,227,103,251,187,119,231,110,119,246,232,180,221,237,190,254,245,175,
-239, 31,238,159,126,248,212,205,167,239,254,238, 31, 62,121,242,201,247, 87,215,111,222, 93, 76, 93, 54,201,172, 77, 29, 28,  4,
-135,152, 90, 64,138,152, 25,  6, 16,  1,114,228,  4,128, 65,153,221,248,210,153,198,198,168,206,226, 16, 19, 76, 17,172,203,250,
- 16, 85,148, 56, 37, 41,161, 96,142, 18,  3, 32, 16,102,206, 48,179,166,207,132, 37,138,232,209, 19, 24,102,236,188,  7,145, 44,
-119, 49,168, 40,152, 49,215,  4, 22,  8, 13, 70, 21, 63, 68, 34,214,  0,214, 82,210,236,  9, 66,110,185,243, 33, 68,  9, 65,216,
- 16,104,106,246,163, 40, 48,211,225,202, 39,169, 35, 19, 84, 36, 38,111, 20,170, 42, 89,  2, 25,239,135,150, 24,144, 65,  3,165,
- 85,153, 70, 47,234,197, 51,176, 51,206,199, 64, 70,138,204, 74,148,255,159,169, 55,251,182, 36,185,238,243,246, 20,145,195, 25,
-239, 80, 83, 87, 87,119,  3,141,129,  0, 65,  2, 20,  8, 83,166, 37,216,178, 23, 41,137, 11,146, 37,175,101,210,255,166,159,237,
-  7,123, 45,201,131, 44, 89, 52, 41, 52,128,238,174,121,186,243,116,166,204,140,216,123,251, 33,242, 92,168,159,250,161,186,250,
-214,189,167, 34, 35,247,254,253,190,111,155, 84,  8,  0, 57,136, 67, 49,141, 48,238,186,132,  8,109, 93,  3,178,217,192,161,222,
-237,122,117,117,117, 34, 82, 87,116, 12, 18,  2,225,144,243,200,204,114,  3, 64, 77,136,  0, 73,245,110,189, 57,156,214,109,211,
-154,155, 25, 84,140,  9,129,136, 43, 34, 66,202, 56,152, 17,186, 34,  1,164,210,157,228,145, 13, 14,158,178, 49,  0,179,240,223,
-252,234,175,198,129,  8,143,107,211,241, 73, 75,163, 49,200,125, 60,114, 11,145,103,180,  5, 18,179,208, 61,108,253, 30, 71, 62,
-210,201,247, 36,  1,114, 32,228,220,239,178,243,180,141,227, 35,214, 12,108, 20,138,112,  1,136, 21,220,132,121,  9, 92,150,237,
- 72,  1,199,140,117,158,130, 84,135,113,238, 81,134, 66,165,184, 75,145, 71, 23, 82,217,114,142,249, 28,250,207,168,186,101, 58,
- 95,152,208,  5,102,  9,165,117,  1, 99, 60,221,137, 11, 51, 46, 79,166,237,176,219,190, 57,189, 92,206,231,128, 72,204, 85,172,
-206, 46, 46, 62,158, 95,252,226,143,127,184, 90,175,213, 97,182, 88,188,127,255,254,248,209, 99, 75, 29,145,148, 70,  7,151,146,
- 42,140,238, 36,164, 17, 43,234, 14, 34, 49,132,186,244,197,212,178,231,242, 25,  0, 55,167, 49, 19, 54,214,198, 10,118,  3,161,
- 92, 71,246,195,174,253,254, 29, 16, 93, 29, 10, 89, 66,184,208,239,203, 93,102,127, 19, 25,247, 65,191, 55, 95,113,  4,174,164,
-170, 64,147,123,230, 16,170,182,149,170, 18, 41, 94, 89,185, 60,187,216,108,118,243,233,116,121,116,248,254,229,243, 33, 39, 53,
- 13, 49, 14,125,191,185, 59, 87,160,217,124,201,130,117, 59, 67,174,187, 33, 79,167, 51, 71,188,120,247,213,108, 54, 77,170,167,
-231, 87,151, 55,183,119,155,237,179,207,190,251,249,167,159, 89,127,115,123,254,113,115,119,215,212,205,100,186,156,204,166,245,
-226, 16,168,178,212,207,142,143, 23,  7,199, 39,175,254,147,170,115,  8,222,109,136, 25,212,119,187,109, 96,233,119,171,245,122,
-179, 27,  6, 55,223, 13, 93, 64, 55,181,171,155, 27,  9, 60,109, 91,180,228, 96, 33, 84, 89, 45, 86, 49, 10,239,186,158, 56,162,
- 14,132,222,204,143,186,221,182,105,103,110,176, 77,253,110,216, 12,131,110,118,155, 16, 99,148,186,157, 55,211,122,114,119,119,
-233, 24,  4, 53,109,111, 72, 98,168, 22,245,236, 40,109, 46, 57, 84, 20,154, 80, 79,132, 48,128,198,192, 41, 41,164,126,232,214,
-102, 54,108,111,171,201, 28, 45,135, 80,  7,180,212,175, 23,135,143, 55,235,171,219,213,170,169, 99, 21,154, 88,213,121, 88,171,
- 34, 72,181,221,220,205,167,139,249,108,158,205,  9, 97,219,173, 47, 46,207,150,139, 69,191,221,220,109,214,211, 58,  6,196,117,
-215, 95,222, 93,175, 86,219,227,249,131, 42,212,169, 91,109,182,107,146,166,169, 26, 20,238,119,119,221, 96, 10, 60, 91, 28, 11,
-218,108,249,137,144, 32,232,225,227,239,172, 87,183, 78, 56,153, 47,235,102,137, 62,  4, 17, 85,152, 46, 14, 63,249,244,179,207,
-158, 30, 46, 14,151,147,201, 68,213,215,119, 87, 39,239,223,188,120,254,205,215,223,188,248,245, 55,207, 95,191, 63, 57,187,190,
-169,132,254,244,167,255,197, 95,252, 55,255,236,232,232,  9,195, 46,216,230, 81, 59,204,  2,124,248,240,238,235,175,126,115,187,
-221, 77,103,237,244,241,195, 95,127,243,245,213,229,205,233,217,229,235,231,175,143,154,233,188,110,  0, 70,181, 24, 19,233, 24,
-200, 45, 57, 66,199,189, 96,161,220, 55,  1,255, 51, 68, 42,  1, 19,101,115,176,113,165,180, 75,  3, 24,112,224,210,104,171, 98,
- 84,203,230, 48, 12, 22,132,192, 33, 91, 22, 18, 14, 81,136,212,177, 56,233,152, 73, 72,130,144,102, 35,194, 42, 22, 27, 90,209,
- 76, 19, 24,172,182,219,117,183, 37,192, 58,  8,133,144,213,  4,145,  9,147,186,155, 67,  9,166,151, 59,103,225, 30, 50,  8, 48,
-  0, 80, 25,181, 20, 19,211,232, 95, 26,217, 88,228,165,232,  4, 33,212,204,191,151,195, 17,130,130,169, 42,238,155, 42, 65, 56,
-136,100, 53,  7,171, 99, 85,110,116,  6, 94, 51,  3,162,129, 71, 17,  4,234,134,  1,193,  0, 89, 53, 21,108, 73, 33,253, 18,115,
- 20,  6,243, 98,236, 19, 98, 31,183,156,224,238, 68,124,185,222, 16,224,193,180, 45,211,241, 40,161, 31, 83, 67,152,  1,  0, 76,
-176,204, 29,188,232,182,145,196, 85, 67,  8,  0, 60, 12,  3,  2,198, 42,154,155,248,232,138, 40,240, 45, 47,157,221, 61,108,230,
-247, 16, 19, 36,128, 61,173,189,176, 86, 52,219,232, 99,245,177,123, 95, 38, 37,134,206,229,129, 81, 66,164,224,109, 91,157,175,
- 55, 15, 14, 38, 41,217,253, 96,191,160,133,205, 70,238,188, 59, 32,147,227,126,122, 54,158,217, 58, 66,126, 97,255,236,113,180,
- 50,199, 40, 30, 59, 24, 53, 44, 35, 96,126,228,  3,143, 63,150,  2,166,247,194, 35,114, 47,197, 33,  7,  3, 31, 11, 69,247,196,
-203, 50,233, 35,196,156,253,199, 63,252,242,249,251,211,219,213,182,174,171,170,153, 49,241, 31,126,255,251,255,251,255,245,239,
-254,191,223, 61,255,241,151,159,159,223,172,172,169, 68,120,185, 56,184,248,248,206, 20,103,179, 25,144,186,211,184,137, 38,217,
-135, 24,157, 41,112, 19,  9,196,193,138,176,143, 93,220, 77,213,105,172, 98, 23, 28, 68,217, 69,237, 31,109, 56, 62,159, 44, 41,
-  5,161,146, 42,  3, 80,205,196,204, 69,110,149, 13,139,171,140,137, 88,184,244,192,198,206,175,239,115,242,180,217,238, 66,152,
- 81, 85,158,209, 94,152, 90,229, 27,169,253,  0, 65,153,137,133, 37, 84, 16,100,200, 67, 82, 16, 14,121,216,165,148, 17, 24, 53,
-  1,213,228, 20,171,104,177,137,237,128,204,110,138,158,  8,201,205,182,219, 93, 54, 75,150, 31, 63,122, 22,231, 71,183, 55,119,
-105, 72, 77,211,206,102,139,208,212, 40,181,153,186, 15,154,134,182,110, 85,123,105, 14, 14,230, 77, 26,214, 90, 77,170,202,250,
-110, 55,159, 31,229,180, 73,221, 78, 98,172,156, 53, 15,235,110,152,207, 15,214,187,205,186,219, 85, 85,173, 33, 41, 10, 82,232,
- 82,231,170,194,178,222,220, 41, 73,  3,154, 85, 15, 15, 63,191,221,108, 78,223,254,166, 57,122,102,128,144,186, 97,183,142,213,
-  4,124, 75, 88,167,148, 54,183,107,159,203,241,209,163, 52,232,106,125, 99,200, 48,244,217, 51,121,149,157,250,213, 93,108, 38,
-105,183, 21, 81, 97,  4,135,118,178, 72,187,235,128, 13,113,232,183,171,110,187,219,220, 94,212,205,204, 83, 46,166,  5,150,122,
- 49,173,218,186,185,188,120,221, 78,102,187, 93,159,129,176,223, 52,109,251,224,201,231,183, 23, 31,222,188,254,102, 50, 91, 86,
-237, 66, 98,221, 39,171,171,186, 74,249,118,179, 62,187,185,236,213,103,117,252,236,233, 15,136,252,230,250, 52,103,109,154,153,
- 90,130, 80,123,159,  1,120, 50,153, 14, 67,246,161,191,189,124, 31,155,165,230, 29,197,185, 13,217,242, 16,235, 90, 72,134,110,
-213,109, 86, 93,191, 93, 28, 28, 62,253,100, 57,159,205,154, 73,131, 64,219,205,221,221,205,197,201,219,119,111, 62,190,123,247,
-241,244,227,249,197,197,245, 53,113,245,163,239,253,193,159,253,236,103, 15, 30, 60,189, 62,191,  8,222, 63,126, 52,123,120, 32,
- 87, 23,215,191,253,221,203, 12,217,  9, 23,143, 14,  9,236,219,175,191,185, 58,187,241,148,221,224, 59, 15, 31,142, 62, 96, 24,
-145,211, 64,128,134, 99,172,217,138,194, 20,145, 64,136, 75, 36, 60,151, 52,161,237, 71,148,123,151, 90,206,134, 68,194,236,142,
-168,218,176,140,206,  2, 71,  7,111,107,206,224,224, 24, 36, 32,137,230,148, 93, 71,170, 30, 16,137,168, 90,234,119, 82, 62,239,
-  9,132, 73, 17, 24,113, 63,106,119,  4, 74, 89, 59,210, 54, 90, 32,114,132,172,138,  0, 81,120,112, 77,144,203,139, 57, 11,  1,
-144, 67, 78, 57, 51,161,193,184,128, 45,  2,191, 98, 88,139,101,139,  0, 12, 96,204,193, 93, 75, 67, 49,114, 80,205,102,192, 36,
- 28, 88, 71,243,101, 57, 45,129, 69, 70, 11,102, 12,110, 26,145,  7, 75,194,145,176, 36,226,178, 48, 13,154, 81, 51, 49,187, 89,
-118, 71,196, 40, 72,196,201,180, 12,100, 92,157,200,179, 27,  2,  9, 57,146, 92,172,182,150,134, 71,203, 69,168, 42,  3, 80, 85,
-117,141, 76,132,232, 72,141, 56, 18,247, 67, 38,  4,195,  2, 72, 33, 36, 66, 15,238,100,104, 85, 21, 75, 56,197,204,249,111,254,
-229,175,202,145, 72,  4,196, 82,206,  6, 47, 20,247, 49,102, 13,196,100,170,128, 68, 36,227,184,219,199, 93,231,168, 49,  4, 18,
-188,143,232,143,206,219,123,250, 22,120, 58,191, 90, 29, 31, 30,169,235,222,148, 10,191, 15, 45,142, 17, 23, 96,137, 14,  6, 90,
-234, 72, 35,116,197,192, 16,125,236,244,236,  3,142,229,155,133, 68, 72,100,247, 94,233,194,164, 87,219,223,128,125, 12,207,143,
-187,207, 18, 29,116,220, 59,237,198,219,245,  8, 98,118, 42,177, 80,135,166,109,151, 77,252, 15,191,121,254,224,112, 73, 72, 77,
-221,  8, 99,234,119,255,225,171,175,255,228,199,223, 71,198, 33, 13,211,249, 81, 26,250,102, 62,221,172, 86,117, 51,221,151, 99,
-121, 28,  6,185,122, 86,150,200, 34,133, 43,112,143,241, 41,107, 11, 46,187,158,242,  3,115,199,146, 21, 35,192,145,166, 32, 99,
-116,125, 28,210,149,184, 62,238, 73,203,229, 55, 67,191,183,188,143,250,129,130, 96,187,191, 91,  1, 32,229,108,147,201,188,140,
-124,194,164, 17,  9,253,110, 71,160, 96,196, 65, 68,232,250,106, 53,100, 93, 30, 44,234,166,126,253,252, 37, 19, 85, 85,157,211,
- 96,142, 96, 20,218,152,186,109,100,137, 12, 85, 59,179, 52,116,171,221,208,119,253,234, 99, 51,155,245,195,240,250,253,135,187,
-213,102, 55,116, 63,255,217,159,195,176,189,185,185, 68,237, 39,147,118,114,240,168,239,239, 98,213, 80,  8, 64, 17, 67, 56, 58,
-122,  0,174,219,205, 58,109,111,250, 93,162, 16, 44,229,235,139,247,253,230,238,227,233,187,186,158,170,105, 63,116, 18,107,  7,
-175, 99,188, 88,173,222,158,157, 47, 38,117, 78,189, 25, 48,  7,116, 13,194, 49,134, 65,181,170,235,109,183,173, 98,123,187,235,
- 20,  8, 25,115, 82,215, 97,117,123, 17,155,165,  8, 27,  9, 18,147,227,221,205,199, 71, 15, 30,118, 57, 29, 31, 62,186,184,189,
-114,146, 52,172, 17, 61,165,236,136,  0, 70,158,165,154,196,170,114, 53,116,205,218,131,105, 51, 93, 36,237,  8,185,170, 27, 77,
- 25,193,251,221,230,240,248, 49, 33,198, 80, 87, 33,204,231,179, 94, 65, 40,132, 88, 55,211, 69, 74,187, 93,183, 43, 91,238, 88,
- 53,177,106,204,204,134,221,144,128, 24,111, 86, 55, 87,119,119,139,197,241,180,158,128,123,238, 87,234, 86, 46, 89,117,211,176,
- 68,205,137, 99,203, 85,117,120,248,160,219,237,110,110, 46, 72, 90, 53,115, 80, 14, 85, 26,118,195,208, 31, 28, 29,167,164,221,
-230,118,249,224,241,179, 47, 62,255,236,217, 39,243,249, 60,212,213,208,245, 55,151, 31, 63,190,127,243,242,197,183,191,253,246,
-197,215,175,222,188, 61, 57, 61,191,190,121,120,120,252, 47,255,242, 87,191,248,233,159, 16,113,238,134,167, 11,248,195,239,125,
- 18,  5, 94,125,243,226,213,139,151,203,227,229,163,239,124,242,246,228,108, 57,159,172,135,252,237,171, 55,190,237, 31,207,231,
-179, 73,205, 34, 44,  1,193, 43, 17, 22,206,121,244, 98,194,158,136, 93, 86,159,163,211,174,140, 53,199, 12, 53,152,  3,122,105,
-116, 22,167,217, 72, 29,  8, 65,162,112, 86,232,178,153, 67,228, 34,184,164,146, 86,100,226, 50,100, 29, 52,131, 67, 45, 21, 50,
-155, 42,184,  2,160,142, 23, 31, 35, 34,  7,112,117, 71, 55,119,205, 30, 66,168,130, 76,155,154,104,252, 58,239,225, 49, 50,166,
-205, 93,132,  0, 80, 85,211, 48,216, 62,184, 77,132,132,100,134,194, 28,153, 74,103,101,140, 83,178,187, 25, 34,163,123, 54,237,
-115, 18,100, 68, 52,  4, 98,170,235,154, 29, 13,198,  3,213, 29,133, 89,  8,165, 92, 37, 75, 15,  8,201,193,  2,139,169,237, 82,
-111,170, 99, 87,223,203,178, 18,232,222,177, 13,196,136, 34,210,169,154, 41, 35, 34,241,221,174,191,219,174,143, 23,211,217,100,
-106,  5, 71,187,167,113,193,200,153,129,193,172, 36,108,178,163, 32,  8, 21,166,229, 88, 96, 42, 79, 89, 68, 54, 55,254, 31,255,
-229, 63,191,231, 17, 66,241,202,194,126, 58,179,215,209,142,141, 27, 24,115,123,197,204,231,200,  5,156, 70,247,247,241,177, 81,
- 38,229,148, 97, 64, 53,  7,183, 16,226,110,183,173, 39, 83, 28,175,203,116,255,129,216, 11,154,198,113, 49, 17,  9,153,223, 11,
-163,225,222, 32, 61, 62, 16,120,143, 90, 39, 36, 28,143,122, 46,216,155,194,156, 27,225,184,123, 41, 55,142, 29,166, 49,148,227,
- 48,254,230,227,162,114,196,206,141,184,201,242, 53,169,250,209,225, 65,191,186,126,119,190,154,183, 85,168, 43,137,113, 62,157,
-188,120,249,246,110,187,249,163, 31,124,150, 18, 30, 28, 30,189,127,243,226,193,163, 79,183,155, 43, 66, 97,  9, 35,196, 14,220,
- 85,145,132,100,  4, 64, 34,114,249, 26,  0, 93,115, 98,100,187, 47,172,142,149,168,223, 35,126,246,174, 38,255,125,209, 23, 75,
-153,120,164,238,141, 79,145,146,240, 44,183,146,178,185, 46, 55,172,251, 54, 90, 81,176, 43, 84,237,178,153, 84,229,  9,141, 44,
-214,239,220,156, 89,220,149, 66, 32,131,139,139,171,205,106,211, 52,117, 21,227,217,217,101, 12,130, 40, 14,100,253,142,130, 32,
- 82,136, 77, 61,153,169,131, 13, 89,251, 53,133,122,117,247,222,134,117, 83, 53,171,219,245,235,247, 31,110, 86, 43,169,234,127,
-240, 71,127,186,185, 62,  1,205, 77,221,196,170,166,170, 37,208,122,126, 40,161, 33,162,249,116, 42, 18,146,194,118,117,109,195,
-174,212,147, 77, 77, 83,223,119, 59, 55, 63,156,181, 68,124,118,126, 78,204,217, 52,138,188, 60, 57,121,254,241, 28, 65,231,245,
-148,145,154,201,100,216,174,235,186, 18,150, 33,105, 78,  9,  1,170,170,218,165, 92,140,149,110,131,  3,197,102, 14,218,163,166,
-236, 62,244, 27, 39, 18, 97,236,111,165, 89, 84,161, 90,173,110,141,130,132,102,215, 15,105,232,147, 38,211, 14,210, 48, 59,120,
-232,195, 70, 98,219, 30, 60,132,220, 19, 75,218,173,186,221,198,  0,212,225,234,242,189, 16, 12,221,174,239,119,147,105,107,154,
- 52,237,118,155,187, 88, 77, 54,187, 77,211,180,135,203,227,126,200, 49, 54, 13,167,110,187,155, 31, 62,220,236,118,232,  6,110,
-119,219,213,237,221, 57, 81,108,171,118, 82,  5, 34, 32,142,132, 14,200,179,197, 17, 32,174,239, 46,171,186, 85,131,216, 78, 60,
-111, 53,167,201,116,174,125,127,248,228, 51,169,107,161,128, 68, 67,191,110,170,202,156,243,176,251,228,179,103,159, 60,126, 48,
-155,183, 85,172,114, 78,183, 87,231, 39,239, 94,189,125,243,234,219,231, 47,127,243,252,197,203,247, 31, 46,174,174,171,170,249,
-135, 63,251,197, 95,252,147, 95,205, 38,147,174,219, 46,167,179, 31, 62,157, 62, 56,154,156,189,123,247,205,111,126,123,122,122,
-250,240,201,  3, 90, 78,190,254,250,197,171,119,103,235,237,246,155,175, 95, 45, 57, 62, 60,152,197, 24,162,196,194,141,169, 66,
- 76, 57, 37,205, 12,140, 60,246, 35, 93,221, 71, 12,212,248,126, 61,206,102, 13,172, 20, 57,193,  1, 64, 93, 17, 25,152,204,161,
-144, 23, 93, 33, 25,152, 89, 21,169,156,131, 57,149,138, 59,231,236,136, 46,194,102, 88, 79, 38, 34,108,230, 89, 19, 49,115, 16,
-115,205, 89,  5,145,137,173,220,112,165,220, 27, 77, 68, 68, 56,  4, 73,102,166,185, 60, 36, 76,205,202, 22,  0,188,116,145,212,
-220, 17, 68,196,212, 82, 74, 69,222,141,200, 64, 20,131,  4, 33,115, 52,223,103, 63,220,134,161, 44,125,124,211,237,182,219, 45,
-131, 11, 19, 48,215, 76, 68,104, 14,106, 88, 30, 90,229, 47, 48,179,  0,248,144, 19, 34, 75, 16,130,130,149, 39, 24,115,110,110,
-128, 66, 24, 57,150,254,148,  1, 49, 18,141,221, 20, 49, 53, 71, 23, 34, 33, 41,164,179,171,245,234,176, 14,135,  7,203,172, 86,
- 20, 64, 35, 56,160,144,208, 75,252,159,152,136,178,121, 32, 68,132, 52, 62, 86, 65, 68,204,188, 31, 50,120,138, 28,135,156,248,
-175,127,245, 87, 37, 39, 15,123,239,236,120,232,220, 11, 41,168, 92, 21,217, 11,210,182,244, 51,199, 55, 48, 51, 32,  2, 96,230,
- 98,156,160, 50,115, 40,187, 20,  4, 51, 71, 68,161,176,217,110, 20,112, 82, 85,251, 20,211, 94, 90, 94, 34,131, 28, 96,159,171,
-188, 95,112,239,139, 10,229,201, 50,142,211,247,190, 17, 36,166,241, 21, 10,203,129,111, 99,240,166,184,250,138, 89,209,  1,  8,
-164, 52,161,220,220,242,104, 41,221,155,  8,  9,144, 71, 29, 70, 25,152, 48, 49,130, 39, 68,124,250,228,193,239,158, 63,151,170,
-  9,196,177,109, 69, 66,  0,251,219,223,124,251,253, 47, 62,157,182,205,197,229, 69,213, 78,206,222,191,206,202,147,182, 97, 10,
-247,168, 49,  4, 36,150,113, 28, 63, 26, 38,199, 94,215,254,241, 54,198, 25,209, 74,180,115, 60,217,203, 99,207, 76,247, 82,243,
- 17,145,140,123, 67, 86,225,173,150,220, 99, 81, 71,142, 92,161,  2,243, 17, 70,166,189,  2,  4,220,209, 64,171,122,  6,165,  3,
-194,162, 93, 66, 38, 22, 25, 97, 53,177,  2,135,171,243,243,219,235,219,118, 58,153, 76,166, 87,103,151,206, 68,204,170,105,216,
-174,171, 16, 21,105, 58, 95,134,216,110,111, 46,185,142,  8, 20,155,249,229,155,175,218,182, 22,162,179,203,171,247,103,167,183,
-171,245,116,118,240,189, 47,126,208,111, 87,117, 12,117,  8, 10,192,213,108,126,252,164,158, 31, 17, 49,152,215,147, 73, 61,153,
-109,215,151,105,123, 87, 62,172,238, 14,154,250,126,171, 67,207, 33, 94, 93,126, 20, 66,142, 21, 34,130,234,205,106,245,155,215,
-111,175,118,187,100, 94, 19, 50, 59,  1,182, 77, 27, 98,  0,240,193,212,145, 88, 74,114, 46, 50,128,101,155, 46, 14, 31, 28, 29,
- 31, 28, 28,221,221, 93, 44, 38, 51, 33,138,177, 33,130,229,124, 41,177,218,117,221,135, 15,175, 86,215, 39,230,146, 82, 46,237,
- 24,150,170,174,170,197,242,120, 80,173,170,138, 67,  3,  8,211,233,162,239,214,221,144,155,182, 13,213,172, 95,221,132, 80, 77,
-167,203,118,210, 58,133, 52, 12,204,236,136, 46, 85, 55,116, 76,178,221,172, 39, 77,197, 85,197, 64,117, 21, 63,188,127,254,248,
-209,179,108,112,123,119,113,117,119,147, 21,150,211,217, 98,126, 88,183,179,161,219, 90, 78, 82,213,230,212,182,109,100,122,251,
-230,107, 12, 77, 12,181, 84, 13,161,  6,198, 97,183, 69,230,245,234,162,235,179,230, 62, 86,147, 97,232, 99,172, 16,252,224,209,
-131,103,159,125,122,116,124, 24, 98,176,156,239,110,174, 78,223,191,126,255,230,245,243,215,175,191,121,249,242,229,187,247,111,
- 78, 78,192,237, 31,254,226, 31,253,213, 95,254,235, 79, 30, 63,203, 78, 85,208, 79,151,252,233,113,220,172,174,126,251,247,191,
-249,240,238,  3,  8,183,199,  7, 55, 55,183,191,254,237, 11, 22,190,188,188,141, 41, 29,181,237, 98, 82, 35, 11,130,179,112, 85,
- 87,228, 48,168,186,131,  8,  7, 33, 40, 31, 85, 46,214, 57, 42, 27,166,113,215,  3,152,243,120,174, 19, 98,206,138, 52,222,199,
- 83,206,149,176, 48,169,121,246,204,136, 76,148,205,212,157,  1,133,169, 79,  6,238, 34,165, 75, 47,109, 59, 41,252,188,114,122,
-121, 89,200,237,103,227, 68,232,227,176,150, 20, 12,192,163,112, 54, 23,100,  0,136, 33,218, 61,224,171,100, 19,192, 16,  8,  0,
-133,198, 40,118, 86, 64,100, 17, 97,230,200,196, 28,  0,201, 74,142, 19,165,192,112,128, 48, 48, 57,192,166,239,182, 93,151,116,
- 80,213, 16, 66, 93,213,230,168,  8,129,136,  3, 23,208, 20, 33, 16, 81, 26,  6,119,148, 32, 64, 68,142, 34, 33,229, 92,238,207,
-230,134,224, 69,174, 22,  3, 35, 10, 73, 96, 70, 46, 48,  3,  3, 53, 37, 26,169,130,194,104,  0,103, 55,183,145, 96,210, 78,193,
-129,137,  2,139, 19, 49,161, 48, 15,106, 89,115, 96, 20,142,197,117,138, 69,130,231,206,128,  8,144,220, 83, 30,250,156,  8,221,
- 28,220, 53,105,230,191,249, 87,191,162, 50,204, 26,157,121,190,175,166,  2, 48,151,141, 51, 98,  1,  3,112,217,  1, 20,211,105,
- 65,163,112,161,157, 48,162, 59,151,171, 61,221, 27,174, 75,210, 18,137,208, 83,119,181,238,142, 22, 83, 27, 39,232, 14,230,200,
-196, 44,200, 12,232,180,255,255,142,226, 58,218,179,112,  9,205,246,146,163,194,194, 33,  6, 66, 27,239,236,232, 58,  0, 18,161,
-184,233, 94,165, 84,110,196, 94, 70, 52, 82, 64,190,238,229, 96, 47, 98, 87,162,241,112,164,125,154,144,101, 52, 92,147,176,101,
- 99,137,211, 70,158,191,254,216,212,117, 83, 55, 28,226,164,174,111,175,111,191,122,254,234,151,127,246, 99, 51,121,242,233,119,
-187,237,205,241,227,167, 58,108,205, 13, 24, 17,156,165, 38,145,251, 63, 58, 34,186,170,221,227,  4,202,202,185,184, 80,136,156,
- 24,247, 23,120, 26,137,237, 72, 33,236, 93, 89, 99, 22, 22, 70,162,205,216,101, 45, 57,  1, 64, 96,145, 82,109,130,209,215, 72,
- 37,168, 58, 82,111,  0,  0, 40,112, 32, 98, 87,115,211, 17,234,108,  6,128, 18, 35,228, 62,196,234,250,234,246,246,250,182,137,
-248,224,233,179,243,147,143,195,110, 11, 76,253,110, 35,129, 65,106, 68, 36, 75,253,208, 27, 56,185, 75,219,230,126,115,250,241,
-155,195,249,220, 29,222,158,157,157, 94, 92,238,118,187,131,227,199, 63,248,206,247, 97,232,  8,147, 57, 77,150,199, 49, 74,179,
- 56, 64,  3, 32,170,154,217,193,131,135,221,102,123,125,113,190, 91, 93,214,211, 35, 51, 37,194,245,245,135,213,221, 77,172,218,
-163,227,121, 83, 77,135,212,119,125, 47, 18,250,148,111, 55,219, 23,151, 87, 77,140,235,174, 91,247,195,195,249,124, 54,109,231,
-179,233,122,189, 97, 97, 50, 99,196,200, 97,218, 76,102,237,100,215,109,182,235,179,227,135, 79, 34, 35, 64,  2,  8,192,225,250,
-242, 68,  1, 84,109, 57,155, 76,102,203,205,106,213,101, 99,176,186,153, 32, 16,152, 18, 11,104,119,112,116,204,168,169,207,196,
-177,106,234,180, 93,153, 25, 18, 87,205,124,189,221,138,219,208,173,167,179,165,235,208,119,219,166,158, 24,  0,133, 38, 15,131,
-171, 34, 98,140, 85,113,160,107, 78,139,249,236,209,227, 39, 93,242,205,110,123,122,249,209,220, 31, 30, 62,248,236,217,119,235,
- 24, 83,191, 33, 22, 98,174,234, 86,200,242,176,155,207, 15,205,211,213,233,199,233,242,  1, 11,  9,203,100, 50, 81,240,122,182,
- 68, 14,169,223, 52,211, 67,145,216, 13,  3, 90, 94, 44,167, 95,124,249,195, 39, 79, 63,105, 39, 45, 16,174,175,111,206, 79,222,
-190,127,243,234,213,155, 55,223,190,121,245,226,245,155,247,167,167, 87, 55,119,159,127,250,249, 95,252,242,159,253,201,207,255,
-220, 52, 93,126,248,246,233, 81,251,189, 71,211,138,236,253,235,215,175,190,121, 30, 39,205, 39,223,253,228,221,249,229, 98, 49,
-173, 23,211,183,239, 79, 96,179, 91,214, 97,218, 54,117,140, 18,197,193,170, 88,199,192, 41,185,170,145,140,216,118,131, 34,255,
- 36, 65, 38, 44,145,118, 36, 42,119,122, 50, 28, 63,168,128,144,  7,  3, 66, 22, 86,115, 70,170,107,113,245,148, 18, 34,  6, 97,
-  0, 27,204,136,152,  1, 72, 72,213,202, 75,108, 74,153,  2,183,117,139, 76,204, 92,133, 90,205,134,161,  7, 48, 66, 82,211, 18,
-193,184, 71,216,  6,230,192,130,196, 41,171, 35, 70, 33, 38, 26,114,169, 19, 58, 32, 48,146, 58, 26, 16, 19, 11,145,238,187,129,
- 33, 68, 22,138,228, 34,  1, 88,  0, 81,152, 17,209,  0,179,246,  0,206, 68,  8,100,197, 97,175,182,235,187,108,218,132,170,138,
-181, 19, 17, 83,164,178,210,132,210, 19,117,247,193,156,  1, 88, 68,193,155, 42, 58,128, 90, 46, 50,234, 98, 84,102, 32, 53, 71,
- 43,148,  3,231,146,209,116, 55,  4, 38,102,194,170,138,229,111,187,170,157,221,172, 64,243,225,114, 25, 42,145, 32, 37,235, 29,
-152, 17, 73,221, 17, 85,136, 41,132, 49,134, 87,  8,132, 56,162,150,179,186,217,136,184, 76, 57, 89, 82,  4,207,170,252,215,255,
-226,175,240,126,147, 58,254,168,246,179, 10, 47, 66, 40, 35, 68,183, 34, 28,221,223, 66,177,140,154,138,224,169, 96, 23,198, 41,
-119,121, 27, 64, 42,207,121, 64,112, 55,171, 99,184,188, 91, 31, 30, 44,193,108,132, 30,151,121,178,  4,  0,195,189,203,124,124,
- 73, 26,175,245,123,248,121,129,247, 96, 49,132, 56, 49,141,192, 96,146, 98, 80, 50, 55,  0,115,244,145,248,179,231, 35,224,200,
- 87,128,255,252,120,101, 34,102,218,203, 67, 70,217,202,152, 31,247,123, 40, 36, 32,226, 98, 49,127,251,246,221,102,151,234,166,
-153,205, 22, 36, 60,109,171,111, 95,190,221,116,221, 31,124,249,244,234,118,117,248,224,225,203,223,253,221,237,237, 93, 12, 33,
- 86, 77, 85, 85, 99, 99, 96, 28,109,241,254,203, 24,185,239,123,220,111,  9,174,250,189,129,182, 76, 97,246, 24,  6,  7, 40,143,
- 52, 40, 67,202,189, 55,145,  0,156,144,178,233,248,164,114,119,213,113,196,  4,  5, 71, 44, 80, 54,199,128,136,228,142,205,108,
-129,  4, 28, 24,172,180, 81,106, 98,166, 40,224,102,106, 84,197,179,247,167, 55, 23,167,143, 63,255,242,240,104,241,246,197, 55,
-102,142, 24,136,  2, 50,166,237,157,176,116,125,202,238,147,233,212,128, 67, 85,107, 63,156,159,126,253,224,224,168, 79,195,155,
-147, 15, 23,151,183,219,190,251,206,103,223,123,116,120,  4,158, 98, 61,  5,183,170,105,219,233,220, 12,  8,105,189,186,155,212,
- 49,198,184,190, 91, 27, 65, 85,207,171,186,234,215,183, 64,  2,110,171,187,107,215,158, 45,137,136,230, 30, 12, 84,251, 58,214,
-231, 55,183, 31,111,110, 99,  8, 67, 26, 86,187,206, 28, 22, 77, 67,232,204,236,106,102,185, 64, 89, 99,172,146, 14, 72, 50,157,
- 46, 93,  7,115,234,115,182, 97, 75, 14,219,108, 57,231,110,123, 55,157, 29,116,219,187,203,147,215,199,143, 62, 25, 20,118,219,
-205,144,135,221,234, 22, 67,157,182,215,211, 73, 43, 18,171,102,154,134,222,115,202, 57, 97,  8,145,171,224,  3,144,232,230,182,
-235,215, 77,156, 24, 64, 21, 42,205,  3,120,202,105, 48,184, 71,168,142,233,216,190,235,143,143,142, 85,211,201,233,199,179,203,
-243, 39, 15, 63,249,242,241, 35, 83, 36,130,197,242,176,236, 75,178, 38,137,177,235,187, 40,113,117,117,162,142, 28,171,186, 93,
- 28, 45,143,154,201,140, 37, 84,245,132,  8,135,221,102, 58, 63,220,237,182, 49,192, 39, 79,159, 62,253,226,243,167,159,127,177,
- 88, 46,136,176,239,118, 55,103,167, 31, 63,190,124,245,234,197,139, 55,111,158,191,125,251,238,227,201,233,229,101,211, 46,126,
-254,199, 63,255,229, 47,255,194,186,205,118,115, 61,107,195,247,159, 46, 63, 57,170,110, 47,206, 95, 60,255,230,221,219,247,135,
-143, 30,200,172,122,241,246,228,250,250,166, 75,233,255,253,143, 95,181,128,199,139,121,185, 56,147,176,136,  4,  9,238,150, 28,
-152, 40,198, 88,208, 32,128,140, 68, 18,  2, 99,240,241, 98, 49,210,172,156, 72, 93,105, 60,  8,208,212, 75, 25,221,178, 85,194,
- 33, 80,202,170,230, 69,135,170,  6,227,210,110, 63, 61,117,  0,205,153,144,129, 32,105, 70,192,226, 80, 27, 73,217,238,130,148,
- 53, 83,201, 12,  2, 32, 64,118,207,170,129,217,202, 59, 43, 67,  8,146,239,239, 79,  8, 68, 20,152,145,136,139,183, 20, 81, 77,
-109, 20, 42,  1, 19,212, 85, 85,104,145, 33, 10,222,147,174,144,  0, 48,136,236, 99,131,132, 68,234,168,154, 43, 98, 38,169, 98,
- 85, 87, 53, 34, 38, 29,157, 10,149,136,150,219,228,190, 12, 90,  7, 41,  1,237, 50,240, 41, 55,223,177,186,104,102, 37, 75,  1,
- 44, 68,169,196,138,  0,138,254, 21,247,133,210,219, 46,245,155,221,241,114, 30, 37, 34,115,217,101, 10, 23,170, 64, 65,251,114,
- 54, 37,116, 33,  6,135,178,113, 69,148,108, 57,171,129, 41,130,  7,102,  7,247,236,217, 70,244,174, 20,172,126,153,101, 56,148,
- 50, 17, 22,138, 11, 32,154,106, 73,168,143, 50,220,226, 38, 33,134,130, 24,199, 82,252, 45,214,108, 48,  4,244,209,190,173,217,
- 36,148,107, 39, 56,184, 48,  5,240, 97,200, 65,112,108,245,208,152,122,220,251,181,131, 83, 46, 49, 72, 98, 34,100,240, 12,128,
- 72,209, 45,151, 29, 62,252, 30, 74,227,128, 72,158,198,111,175,129,129,209,216, 85,200,128,251,248,225,200,231,  2,118,  4, 34,
- 87, 32, 30,171,183, 72,227,230,220, 29, 56,160,235,200,242, 45,128,175,125,250,  7,255,228, 39, 63,248, 95,255,205,223,206,166,
-147,217,124, 81, 85,213,131,  7,143,126,242,131,239,254,251,255,248,187,239,125,254,201, 98, 62,149,120,180, 60, 56,110,166,  7,
- 96,125,183, 93,199, 16,144,  1, 89, 10, 31,127,100, 31,239,255, 65, 32, 71, 67,211,114,252,155, 27,  1, 56,146,103,245,189, 41,
- 11, 65,129,198,225,220,248, 14, 68,163, 53,214,209, 16, 11, 78,136, 16,201, 77,157,120,124, 38,151, 14, 24, 21,111,148,140,111,
- 87, 68,238,136, 28, 16,140, 81, 48,208,158,182,  3,160, 35, 28,199,  1,250,126,144,170, 70,203,150,147, 84,211,108,131, 75, 64,
- 55,161,137,199,206,  0, 84,135,102, 50, 75, 67,230,186,133,156,239,110,207,  8,200,193,134,174,239,118,131,186,  1,203,241,193,
-131, 24, 34,104,101,121, 72, 57, 69, 96,215, 60,236, 86,210,204,183,219, 93,253,217, 60,155,165,220,161,  3,115,180,220, 73,172,
-183,235, 85,183,221, 78, 39,243,213,237, 37, 66,149, 82, 87,133, 26,155, 44, 60,185,219,110, 46,214,171, 24, 99,215,237,234, 88,
- 85, 49,158,175,183,191,121,255,225, 39,242,217, 52,106, 51,169, 25,133,136,173,108, 59, 28,145, 41, 84, 19,239, 87,  9, 58, 71,
- 89,111,187,192,146,179,166,126,215,111,174,211,110,215,167,158, 98,187,187, 62, 23,169,234,217,252,118,117, 59,244, 55,146,166,
-152,181,219,109,155,201, 18,192,  2,161,185,138,196,233,100,142,238,105,219, 53,117,211,175,184,170,231, 28,216,147,154,169, 83,
- 76, 93, 63, 12,155,102,113,228,160, 68, 21, 48,231, 60,244,119, 87, 18,226,219,147,183,  8, 72, 34,143, 14,142,107,241,215, 47,
-127, 23, 15, 62,205,187,174,173, 99,223,247, 57,231,205,237,105,221,206,186,205,102,246,228,139,156, 82,  2,158, 47, 30,144,224,
-102,183,157, 49,162,199,174,187, 11,213,108, 58,155,109,118,187,249,114,241,228,147, 39,135,199,143,155,105, 91,213, 85,206,233,
-238,242,242,246,234,236,227,199, 15, 31,206, 78,223,159,156,158, 95, 93, 95, 92, 93,  7,145,159,254,232, 31,252,225, 15,255,240,
-248,193,163, 97,232,171, 42,252,228, 59, 15,231,147,184,219,172,126,247,235,111,207, 79,207,143,143, 15,226,114,126,114,117,117,
-246,187, 27,142,116,113,118,181,186,188,125, 60,153,182, 85, 44, 54,212, 32, 17,129, 96, 20,228, 65,  0, 42,121,152, 97, 72,132,
- 16,152,178,187,185, 17,114,182, 68,232,112,207,219,118,173, 88,134,172,163,141,205,140,160,160,100,196,  0,250, 93, 14,145, 69,
-  0, 28, 82,214,209,226,137,134,232, 76,148,212,  8,177,137,  1,152,187, 93, 26, 63,255,134,125,215, 73, 16, 50, 48,243, 97, 72,
-  4,  0, 76, 14,150,179,138,112,195, 49, 83,206,232,  8, 32,196, 14,168,238,224, 94,104,169,165, 53, 57,152, 11,177, 16, 13,160,
- 57, 89, 16,102, 34,  7,  8, 76, 37,252,147,213,154,186,174,154, 70,179,101, 48, 80,141, 78, 61,  0, 58, 16,129,129, 27,  1, 58,
- 78,234, 32,132, 41,107, 29, 67, 12,161, 12,165,195,168,200,246, 62, 37, 34,  2,183,146, 73, 65,199,156,141,  3,147,131, 25, 18,
-129,250,152,136, 83,119, 17, 26, 15, 75, 70, 43,  3,  9,  5,  4, 53,231,128,104,106, 34, 97, 51,164,245,106,125,180,156, 55, 77,
-  3,192,138, 70, 96, 40, 84,232, 47, 99, 83, 19,176, 14, 17, 16, 85,205, 65, 27,174, 18,104,202,169,140,199,220, 93, 53,185,187,
-154,  3, 58, 19,  6,129, 65,139,235,138, 70,115, 19,162,152, 91,137, 96, 59,104, 33, 68,152,161,151, 19,115,159,113, 47,135, 35,
- 90, 49, 37, 57,  2,  1,255,254, 57,171,106,  5,126,175,230,  2,160, 37,211, 45, 82,  7,223,245, 93,144,118,212,162,250,239, 57,
-136, 48,218, 48,200,192,205,148,137, 75,253,117,204,252, 23, 11, 17,  8,130,238, 69,166, 37, 23,227,132,232, 90, 86, 41,224,186,
- 15,114, 34, 48,129,105,233, 50, 16, 21,177,  8,128,  7,100, 97,203, 90,176,100,238, 10,194,160,  5, 79,227, 54, 66,119, 96, 12,
-174,104, 78,217, 31, 63,124,242,229,103,167,175,223,157, 78,231,203,199, 79, 62,  9, 77,252,244,233, 39,215, 55,119,255,230,255,
-254,251,127,253, 79,255,209,201,235,231,103, 39, 31,230,203,254,217,151, 95,158,188,125, 61, 12,179,170,145,194,243, 28,195, 67,
-  8,238, 58,230,247,115, 66, 66, 96,178, 62,151,  1,184,153,187,237,223, 43, 75,186, 31,145, 73,124,223,244, 27, 17, 57, 12,224,
- 96,106,136, 78, 92, 84,175,163,111, 27,220, 29, 84, 36,142, 73,248,130,154,  4, 29,223, 97,176,144,158,193,164,252, 29, 96, 24,
-193,153,232, 41,133,233,212,250,164, 41,143, 16,110,145,156,  6,205,157,107,118, 51,138,220, 13,125,182,220,180, 11, 70,204, 57,
-233,221,201,224,113,183, 89,205,154,214,145, 55, 67, 63,148,196,130,250,131,137,208, 40,116,113,138,109, 51, 95, 18, 83, 69,144,
-186,221,195,163,229,242,112,121,113,122,182,186,185,154,204,231,185,219,176, 52,204,113,210, 78,230,179,233,199, 87, 95,  1,241,
-228,240,225,110,117,177,238,110, 69,164,101,188,217,172,110,182, 91, 38,154, 78,166,151, 55,215, 77, 93,153,250,215,239, 62, 48,
-243,207,190,243,172, 69, 97, 52, 53,159, 52, 77,221, 84,144,116,151, 50,  0, 12,102,145,132, 98, 12, 18,178,165, 88, 69,178, 76,
-177, 30, 82,183,222,238,152,105,219,117,135,  7, 19, 14,146,163, 66,208,139,128,  0,  0, 32,  0, 73, 68, 65, 84, 92,245,185, 78,
- 59, 52,  5,131,221,234,186,158,204,251,212,  3,113, 45,188,189, 61,  3,105, 61, 27,162,186,233,124,118,148,114, 55,244,155,172,
- 30, 99, 59,157,207,132,142,145,195,144,134,172,  3,246,202,129, 87,185, 91,223,222, 60,125,242,236,225,193,193,186, 31,220, 13,
-176,218, 14,137, 85,251,148,114,218,101,243, 71, 79, 62,245,212,113,172,234,102, 89,199,138, 14, 31,244,219, 91,215, 33,155, 24,
-122,186,190,146, 80,117,171,179,201,193, 19,239, 55,159,124,247,  7,207,190,252, 97,213, 84, 49, 86,154,211,234,246,250,230,242,
-236,226,252,228,253,135, 15,111,222,125, 60,191,185,190,190,185,219,244,221,231, 79, 63,255,241, 23, 95,124,247,187, 63, 86,221,
-154,237, 30, 45,103,159, 29, 31, 50,218,221,237,213, 55, 95,253,166,157, 77,143,158, 62,250,240,238,221,193,147,199,121,  5, 87,
-215,215,179,170,122, 52,109,166, 77,163,  6,206, 12,128,149,136, 48,247,169, 31, 15,119,230,100, 57, 15,185,112,238,136, 56, 67,
-105,206, 91,246, 44,128,238,158,203, 43, 30,146,170,171,167,242,198,108,217,132,  9,204,221,113, 80, 19,182,182,109, 82, 78, 62,
- 46, 97,109,252, 43,136,  8, 64, 93,223, 75, 96,119, 87, 64,200, 57,196,178, 85,130, 97,216, 33,196,174,219,130,131,170,194, 24,
-224, 35, 54,144,192, 10,158, 93, 17,209,221,132, 37,155,103,115, 70,171, 99, 76,163, 21,154,220, 60, 34,103, 75, 69, 53, 76, 97,
- 44,147, 74,140,253,144,192,148,153,171, 42,150, 70,120, 61,109, 25,100,215,237,134,161, 83,179,200,  1,203,229,  8, 77,205,213,
-189,169,171,  9,177,187,  5, 10, 10, 70,224,204,188, 27, 58, 33, 10, 72,125,210, 42,112, 54,119,247,209,165,138,100,228, 90, 98,
-245, 76, 57,187, 42,  8,221, 95, 77, 81, 29,  3, 67,100, 73,140,  0,174, 57,169, 58, 51,239, 44, 95,173,110,231,109, 61,155, 47,
- 52,247,128, 74,136,238,164,201, 42,102,  4, 80,128,128,132, 76,106,106,150,  9,137, 36,118, 57,185, 25, 33, 76, 42,222,118, 62,
-120,  2, 70,102, 73, 58,140, 67, 21, 48, 85,227,191,249,171,127, 10,132, 88, 46,131, 14, 37,202,  2,  4,123, 52,185,187, 57,149,
-152, 34,151,179,143,137,246, 95,114, 81, 45, 49,114,  1,203,140,171,130,145,182, 76,  4, 86, 82,234,232,196, 12,121, 88,247, 54,
-107, 27,216,155,186, 73,246, 64,131,177,192,227, 69,144, 13, 99,141,184,128,182,246, 90, 21, 51, 44,221,  4,252, 61,101,126,  4,
- 14,140,138,110, 40,239,239,132, 88, 94, 68,202,108,100,252,101,101,138, 65,227,107,  6, 16, 56, 20, 34,205, 61,109, 14, 17, 65,
-132,238, 79,121,119, 52,240,167, 15,151,223,190,122,147,210, 48,157,206, 38,147, 69, 51,105,217,244,197,155,247,243, 89,123,124,
-184,252,228, 59, 63,172,  2, 13,131,137, 64, 30,114,140,209, 53,151, 37,193,248,240,227,145,159, 51,102,120, 96,255, 36,115,221,
-175,153,201, 85, 71,114, 77, 16, 55, 71, 36, 14, 97,220,133, 48, 33, 50, 20, 40, 13,141,192,  5,  4, 64,164, 82,121,229,241, 22,
-127,207,141,252,125,170, 65, 51,214, 85,  4,150,210,  8,227, 58,122,182,130,191, 65,  0, 10,162,154,175, 46,111,187, 33, 79, 39,
-211,131, 71, 71,239, 94,191, 35,105, 76, 21, 65, 81,234,213,245, 41,113,104,218,182,219,221, 73,140,110,166, 78,155,187,211, 73,
- 35,194,116,126,121,125,122,113,121,189,190,107, 38,179,127,252, 95,254,147,213,234, 70,152,221,210,226,248, 33, 14, 29,114, 19,
- 39,179,201,124, 81,214,179,183,151,103,  0, 52, 93, 30, 64,218,173,238,238,186,110,235,121,  7,110,196, 33,245, 93,197,232, 57,
-197, 24,251,126,183,217,236,158,127, 56,253,230,253, 73, 54,173, 66, 21,165,206, 90,  4,132,252,225,234, 10, 28,166,109,235,234,
-211, 73,219,165,132, 37, 69,132,156,211,182,110,230,234,158,114, 74,221,106,189,237,189, 84,254, 98,181,217,174,204, 93, 77,147,
- 51, 35,130,246,185, 91,109,  7,173,219, 89,191,187,227,170,101,242, 40, 81,251, 13,114, 85,181, 97, 24,122, 55,  4, 75,132,184,
-219,221,177,136,187,182,237, 98,125,115, 90,215,211,105, 59, 97, 68, 17,  4, 55, 85,184,184, 58, 89,173,239,212,168,110,231, 13,
-179, 73,180,212, 55,205, 68,152,155,197,  3, 29, 54,150, 19, 73,152,206,150,110,249,238,246,250,193,163,167,199, 15,159, 76,102,
- 83,194,  0,150,186,212, 81,168, 43,225,205,221,117, 53, 91, 54,179,229,226,224,224, 15,254,228, 23,159,126,239,251,237,108, 74,
-196,219,205,221,229,213,201,201,219, 55,175, 94,189,124,249,230,245,243,183, 31,222,159,157,223,173,215,243,233,226,151,191,248,
-243,191,252,239,254,251,118,118, 52, 88,255,232,225,195,207,143,234,103,199,237,230,238,250,237,203, 23,223,124,253,237,147,207,
- 62,141,203,217,191,251,219,191,127,240,224,248,242,230,246, 55,191,254,246, 97,219, 28,207, 39,128, 92,  0,233, 85,164,166,170,
-  9, 41,171, 39,245,146, 64, 40,141,121,205,  9,108,140, 23, 19,  1,  3,101,205,229,205, 61,153, 17,161, 48, 35,160,170,  5, 97,
- 34, 30,205,206,140,165,159,195,204, 49,114,206,154,109,196,148, 11,163, 90,185,145,  1,  5,140, 65, 76, 97,124,153, 46,200, 71,
- 26, 89, 52,238,168, 57,131, 89, 54, 13,136,204,236,  0, 81,162,237,  9, 35,184,  7, 88,149,  5, 85,225,240,148,200,130,136,140,
- 51, 37,  0,117,199, 66, 64, 33, 22, 33, 53,199,189,140, 65,205, 99,  8,109, 59,169,155,118,159, 83, 48,116, 48,183, 40, 34,145,
-213,204, 84, 99,  8, 72,100, 62, 10,252, 16, 33,169,166,108,130,132,196, 57,123, 93,  9,145,152,121,206,206,130, 76,161, 44,117,
-131, 80,206, 90, 12, 36, 65,  8,144,205,140,  8, 73, 40, 74, 68,  4,102, 22,137, 52,190, 97, 27,  0,174,187,  4, 41, 47,231,179,
-200, 20,235, 10,129,213, 85,208, 89,216, 44, 51,146, 16,141,204, 64, 68, 33,206,238, 57,165,148,115,133,132, 20,179,102, 24, 89,
-177,168,106, 66,232,  6, 89,179, 48,187,155, 96, 97,204, 91, 17, 28, 26, 24,  1,  0, 49, 27, 26,186,187, 58, 17,154, 58,162,129,
-149,187,182,123,118, 39,196,194,  9,  0,116,  7, 45,110,111, 55, 87, 47,143, 10,194,226, 59, 29, 25,186, 57,217,108, 62,127,255,
-234,132, 30, 44,161,228,105,145,144,196,192, 93,129,  4,203, 44, 26,198,217,213, 56, 92,  1, 47,176, 45,190,215, 24,141,139,203,
-113,119,234,196,226,234,  8,110,234, 44,156,135, 60, 50,184, 28, 12,139,113,213,  0, 16,  5,193,246,222, 65, 32,115, 43, 41,121,
-188, 71,240,222, 27, 51, 20, 74,112,168,228,154, 84,181,138,213,159,254,236,123,255,219,255,249,235,249,116,214, 76, 91,161,112,
-252,232,241,179, 39,151,255,199,191,255, 79,223,253,252,211,205,213,201,251, 15,239,  9,163, 68,110,219, 73, 93,215, 18, 35,161,
-170,  1,163,192,168,139, 42,182,151, 66,169,115, 34,214,212,  3, 17, 20, 66,129,106,249,246,162,144,233,232,176, 85,205, 56, 86,
-125,141,164,180, 75, 96,156,130,129,187,105,201,115,  1,154, 59,149,242,153,155, 35,149,183, 31, 41,105,168, 24,  3,114, 64, 38,
- 10,194, 68,150,114,209,160,163,187,199, 74,147,186, 67,238,182, 67,191, 75,121, 32,  3,  2,236,250, 77,136,147,148,125,123,115,
- 86,183,139,102,118, 52,116, 27, 68,214,190,231,106,106,253, 46,167, 97,114, 48,203, 41,119,253, 48,100, 27,186,244,228,241,  3,
-138,109,104,102,152,186, 56, 59,172,218,101,191,237,168,170,208,108,216,108,218,217,209,250,238, 90, 83,215, 46, 22, 66,212, 35,
- 94, 95,157, 46, 14, 30,109,239,174,167,243, 67, 17, 57, 56, 92,244,119, 55, 44, 65,181,  7,105,179,247, 23,171,213,217,205, 77,
-219, 86,102, 62,109,218,202,227,174, 31,102, 77,219, 84,213,139,211,139, 42, 86, 63,250,236,  9, 51,207,234,233,114, 57,235,186,
-225,230,230,188, 75,105, 24,122, 34, 70,174, 82,159,114, 26, 80, 98,206,195,108,190,128, 28, 52, 89, 74,125,234,214,119, 68, 71,
-139,121,172, 39,104, 87,102,105,182, 56,170,163,120,182, 97,232,118,119, 23, 92, 15,136, 11, 38, 26,186, 27, 66,195,208,206,166,
- 75,116, 50,244, 73, 83,221,198, 42, 15,119,170, 65, 53,139,230,110,183,187, 94,111,152,165, 14, 50,155, 63,184, 91, 93,223,110,
- 86,134, 64,154,114, 26,220,109,182,120,152,211,110,121,248,232,246,246,114,189,186,238,251, 65,194,180, 27,244,228,171,255,103,
- 50, 61, 88, 30, 62, 48,183,182,106,154,118,126,115,119, 61, 63, 56,254,209, 31,253,164,157, 31, 30, 30, 31, 87,149,228,156,251,
-190, 91, 93, 95, 95,156,189,123,251,238,205,201,217,249,201,217,213,217,213,229,245,221,106,218, 76,126,246,  7,127,252, 71, 63,
-254,163,186,153,190,124,249,119,237,244,232,  7, 79, 31, 60,125, 52, 77,221,221, 55, 95,255,250,228,253,201,209,147,199,192,124,
-122,113,249,226,221,135, 60,164,175,190,250, 70,204,159, 46,103,117,  8,201, 64,152, 17,169, 10, 76, 84,240, 44, 22, 98,108,155,
- 58, 13,189,170,130, 89,233,203, 88, 89,126, 66, 25,  5,148,172,130, 23,149,  0, 33,245, 41, 69, 14,200, 52,104, 14, 36, 34,140,
-238,230,206,140, 76, 56, 36, 75, 29, 56, 19,  0,162, 25, 16, 21,145,230,190,236,  8,125,202,132, 24, 98, 25, 49,187, 48,  7,  9,
-217,178,153,170,230,162,182, 22,100,226, 17, 90,158,221,145, 75,227, 27,205,202,219,171, 17,137,136,244,125, 18, 66, 36, 84,211,
-172,101, 82,237,  5,249, 72, 35, 37, 11, 84, 29,185,  8,244,220, 92,131,  8, 33,246, 93, 55,164, 76, 72,217,243,208,247,224, 78,
-232,131,102,200,  8,  8, 18, 99,105, 96,133, 24, 80, 61,129,230,148,128, 32,148,190,  9,141,105,115,119, 43,211,126,  7, 83, 27,
-  0, 28, 28,147,105,249, 69,131,165, 98,237, 99, 17,112,103, 14,132, 96,206,224, 70,104, 64,228,110,140,124,215, 15,219,245,230,
-209,225,124,210, 54,170, 86,254, 68,117,136, 57,103,116, 39, 14,238,174,166, 76, 65,  4, 93, 45,229,156,179, 18,123,100,114, 33,
- 43,  7,  5, 22, 25,108, 16,114, 51, 45,236, 52, 34,128,  1,132, 17,180,204,100,144,  0, 24,198,212,184,141, 64,117,195,123,163,
-249, 72, 13,216, 15, 50, 92,141, 36,128, 25, 75, 89, 82,131, 59, 48,161,187,141,123, 78,252,189, 24, 29, 92, 73,234, 38, 98,206,
-142,224,229,  5,192,212, 10,  0,216, 11, 91,216,141,202,137,168, 99,135,130,192,243,  8, 43,222,235,213,105, 31,153,119,115, 47,
-105, 66, 36, 36,169, 10,172,107,  0, 35,  3,115,  0,166,178,142, 69, 83, 79,128,110,121, 76,  3, 16,168, 59,237, 17,105,165, 64,
- 33,132, 99, 96,126,  4,234,  0,122, 80, 55,  6, 28, 82,254,252,201,167,143,143,222,191,120,243,110,121,116,112,112,248,100,113,
-120,244,253, 31,124,239,236,226,234,127,254, 95,254,237,191,250,111,127,254,233,103,223,173,106,185,190, 89, 63,125,246,236,250,
-244,148,152,156,  8, 24,116, 84,  5,224,158, 51,195, 68, 98,101,151, 43,  1, 28,135,180, 99, 64,160, 64,129, 77, 13,205,145,193,
- 82,146, 80,141,  0, 36, 68, 66, 44,100,158,251,244,234,125,231,110,116,137, 35,104,202, 40, 76, 36,251, 98,  7, 33,147, 13, 25,
- 34, 99, 96,100,209,190,119,166,125,243,  2,185,146,180,235,  1,145, 67,133, 68,136, 81, 68,192,149, 72, 16,197, 53,107,182, 12,
-113, 50,171,119,119,167,195, 96,177,169,192,128,153, 55,171, 43, 25,159,156,150,210,224,  4, 89,117,214,212,253,118, 35, 28,116,
- 24,170,229, 19,119, 55, 52,221, 93,  3,122,159,105,105, 25,184,230, 56,113,211,221,230,206,186,141,232,182,173,167, 94,  9,153,
- 26, 36,208,184, 53,239,251,126,219,247,174,118,183,190,185, 94,109,213,245,110,179, 11, 18, 66,144, 71,143, 30,217,135,147,171,
-171,179,131,217, 28,145,254,238,213,171, 24,165,105, 38, 19, 35,242,165,132, 48, 40, 84,245,146, 64,123, 85,  1, 75,128,109, 51,
- 49,247,108,182,233,118,100, 90,213, 45,185, 33,  2,161,119,253,110,209, 54,211,195,199,125,175,253,250,210,114, 94,206, 38, 67,
- 31,182,134,112,123, 38,213,212,188, 35,169, 45,173,174,111, 94,198,246,160,169, 39,205,100, 78,228,211,201,228,230,230,170, 31,
-250, 16,229,122,221,221,173, 55, 77,213, 78,154,137,166, 45,154, 91, 78,234, 74, 48,165,170,118, 87,142,209, 44,167,100,253,118,
-117,125,246,254,240,248,243,229,193,113, 73, 23,214,237,228,102,181,238,178, 79,231,243,221,135,231,186,187,251,201,159,253,215,
-207,190,255,227, 80, 73, 16,  1,135, 52,244,235,213,205,245,233,135,183,111, 94,189,253,240,241,227,217,249,217,229,213,213,106,
-213,117,253,247,190,248,226,127,248, 23,255,211,197,199,183,125,191,147,118,249,228,193,147, 31,125,126, 52,109,240,226,252,205,
-155,111, 95, 78,151, 11,105,155,179,203,179, 39, 95, 60,186,222,236, 78, 79, 47, 23,117, 56,168, 98, 29, 43, 66, 40,165,193,192,
- 92, 69,201,102,217,157,  8,235,186, 42,167, 79, 95, 66,236,197,178, 73, 88,110, 18,230,198, 20,220,115,185,220,171,154, 16, 15,
-154, 43,  9,201,114,133, 21, 98, 64,180,126, 72,217,124, 86, 87,253,208, 51, 99, 36,114,115, 83, 99, 71, 22,234,146,  2,227,164,
-170, 77,181,207,  9, 16,145, 69,246,195,130, 58,136, 35, 15,253, 64, 76,234, 46, 76,238,230,232,117, 19,  7,117,112, 11,132, 74,
- 24, 72,178, 90,118, 64,242, 72, 85,136, 65,115,  6,112,114, 20,146, 62,167,148,141,  9,  8, 37, 91, 34,112,  9, 81, 53, 17,178,
- 48,198, 80, 37, 85,115, 16, 34,145,232,142, 93,223, 71,213, 16,121,219, 23, 98, 78, 86,183, 97, 72,194,194, 33,224,136, 66,  1,
- 66, 32,211,205, 48,  8, 49, 35, 59, 24, 18, 50,177,101, 15,145, 25,209,144,220,220,  5,192, 72,199,188,181, 23,172, 14,131,199,
- 32,136,129,220,202,236, 55, 18, 15,230,110,  9,203, 23, 73, 18, 67,236,212,110, 47,175,159, 28,206,167,147,  5,170,151, 52,167,
-186,147,107,140,156,179, 41,128,153, 87,194, 56,194,241,157, 80,155, 90,118,253, 48,244, 67,219, 86, 65, 88, 51,  1,  6,243,174,
- 12,217, 42,145,242, 72,203,217,  1,153,255,250, 95,252, 85,129, 18,220,199, 34,247,175,251,232, 54,140, 42, 59,192, 61,146,191,
- 92,189,209,221,153,208,204, 28, 92,152,169,244, 63, 97,236,153,238,201, 94, 99, 43,108,188, 38, 51,166,221, 26,171, 54,148, 71,
-122,233,113, 21, 40, 17,148,197, 67,  1, 80,142, 24, 73,  3,  5, 64,115,231, 81, 65,228,224, 99,181,149, 92,221, 21,192, 16,101,
- 28,224, 23,110,  3,142,104, 93,223,227,140, 75,108, 28, 76, 29,204, 61,153,230,130,209,216,255,102, 99, 96,  6,121,156,154,141,
-227, 31,  2, 70, 46,133, 37,  0, 32,161,199,199,179, 95,255,238,133, 57, 28, 30, 29,198, 80,185, 89, 19,229,239,126,243, 77, 59,
-109, 14,151,211,217,241,147,155,211,247,103, 39, 31,251,110,215, 78,102,197, 39,201,132, 44,161,244,185, 75,172,197, 52,131, 91,
-193,253,154,149,144,108,145, 52,101, 55, 71,102,  4,160, 66,133,116,  7, 30,191,207,197,102,139, 72,110,174, 41, 49, 33,241, 56,
- 76, 47,175, 32,154, 51,184,150, 47,189,164, 32,202,103,180,110, 23,177,106, 76,149, 24,137,  3,197, 96, 89,209,204,189,  4, 73,
-145, 88, 94,252,230,171,190,239,151,243,201,242,201,227,183, 47,158, 35,197,156, 54, 93, 63,  8,123,211,206,182,155, 77, 59, 93,
- 16, 49,  5,209,156,114,206, 54, 92,205,167,179,237,110,119,117,115,115,122,113,121,187,217,254,193,151, 63,126,244,232, 19,212,
-206,242,  0, 28,134,126, 93, 71,105,219, 86, 51, 85,243,227,136,233,252,195, 55, 92, 77,153,201,140, 82,191,233,251,237,100,126,
- 96, 57, 77, 23, 75,118,212,221,238,228,252,125, 86,100,  8,169, 31,222,157,159,191,185,184,238,135,220,165, 62,144,148,  0, 66,
-136,114,187,222,172, 54,235,  7, 71,135,219, 93,255,238,226,108,209, 78,134,180,  5,  0, 22, 73, 41,213, 33, 58,184,154,238,182,
-119, 85, 61,233,119,235,174, 91, 35, 32, 75,165,218,  5,137, 93,218, 73,136,221,238, 78, 88,218,118,114,113,246,209,193,170,122,
-210, 15,121, 24,118,109,211,184, 99, 54,182,220, 25, 88,219, 46,152,164,235, 86, 77, 53, 65, 16,  3, 35,  4, 71, 28,134, 33,231,
-225,244,246,214,129, 31, 31, 62, 56, 88, 30,  1,178, 27,152,166,131,197, 82,234,246, 96,126, 80,  5,217,179,178,243,102,183,173,
-218,217,164,138,147,195,135,105, 72,253,234, 60,198,106,182, 56,158,206, 14,115,191,233,251,190, 31,250,159,254, 87,191,252,242,
-143,127, 94, 87, 33,  4, 65,132,205,102,115,115,121,246,246,197,215, 95,127,253,187,231,175,223,188,254,240,241,205,201,249,205,
-106, 85,199,240,203,159,255,249, 47,126,242, 39,159, 60,123,134, 49,180, 77,251,229,147,233,247, 63,153,107,218,189,125,249,234,
-221,203, 55,143,191,251, 25,180,245,111,127,251,245,211, 79,159,188,120,119,250,235,191,253,221,163,182, 94, 78,218, 42, 10,148,
- 28, 50, 81, 45, 17,  9,134,114,191, 35,169,171,202,193, 85,147,154, 10, 11,148, 98, 28, 22,181, 36, 10, 83, 32, 41,241,143, 18,
- 61,224,200,150, 13,  8, 16, 41, 16, 59,104,182,188,235,123,  4, 12, 76,217,148,144,186,172,110, 90, 96, 89,106, 54,152, 71,230,
-192,216,167,156,114, 46,114,248, 40,228,136,102,214,198,160,102, 73,115,121,103, 29, 69,213,128, 85, 12, 93,159,205,146,170, 22,
-239,  6,  0, 57,154, 16, 71, 97, 98, 26,114,206, 41,155,123, 19,162,186,186, 91,129, 22,128,155,  0,  5,150,236,230,  0, 33,176,
- 58,170, 59, 33, 86, 66,196,156, 82, 50,183, 32,146, 52,119,125, 34,129,156,117,215,117,170,218, 54,117,206,217, 53, 49, 18, 33,
- 69, 33, 53,239,213,152,  8, 16,202,216,185,220,210,132, 89,136,179, 89, 25,149, 18, 22, 95,  6, 18, 17, 17,103, 83, 55,207, 14,
- 81, 36,198,160,110,  0, 42, 28,144, 73,152, 13, 72,205,170, 82, 72, 33, 62,185,185, 99,203,203,217, 12,204, 32,  8,122,209,207,
- 17,  9,151,222, 30,185,  9, 35,161,184,155,130,  7, 70,145,106, 59, 12, 58,244,145, 37,151,215,122, 98,183,220,167,  4,132, 21,
- 83,118,  2,176,146,222, 51,  4,254,235, 95,253,243,  2, 12,178,189,105,110,223, 23, 29,231,218, 60, 74, 55, 70, 36,  1,236, 59,
- 14,247,160,177,177,177, 92,238, 39,232, 68, 92,216,149, 99,184,124,212, 60,  1,  2,122, 26,182,131, 78,154,186,168, 23,  1, 20,
- 73, 70, 37,147,141, 77, 56,119, 48,176, 82,199, 42, 35, 10, 26, 73,  6,123,176,145,187,105, 26, 47,180, 35, 78,158,240,254, 37,
- 99,223, 12, 66,  4, 34,161,189, 90, 22, 74,  2, 21,201, 65, 75,232,138,198,  0,252,184,122,184,207, 69,238,255,251,242, 36, 43,
- 47, 20, 54,155,205,216,243,183,175, 62, 28, 44, 23,  7,  7,  7, 33,  4, 83,157,212,241, 63,254,167,175,191,243,236,193,124,182,
-168, 39,211,155,171,219, 47,190,243,221,237,221, 13, 49,  9,145, 57,236,227, 46,163, 67,170,188,148,236,105, 16, 12,142,158, 77,
-193,133,100, 52,194,178,  0, 24,236,135,141, 62,110,111,138, 95, 16,  0,139,113, 23,239,159,153,238,174, 57,237, 86,151, 57, 15,
- 44, 21,  7, 25, 25, 79, 76, 14, 20,234, 22,  1, 89,194,168, 98,  5,  7,207, 20,196,251,158,136, 37,132,161,239,222,191,249, 96,
- 92, 29, 28, 29, 29, 60, 60,252,248,230,125,223,247, 20, 91,192,200,168,183,103,111,128,235, 24, 69,164,114, 34,  4,200,125,175,
-253, 77,136,213,102,187,253,112,118,254,241,252,114, 72,249, 79,255,244, 31, 47, 39,113, 72, 67,153,197, 85, 85, 92, 28, 60,224,
-230, 96,117,115,190, 60,126, 84,181,245,249,233,  9, 34,166,237, 93, 74,125, 30,186,201,236,209,176, 93, 15,253,206, 53, 15,221,
-250,226,228,165, 26, 70,  9,221,110, 85,183,245,203,119, 31,159,159,158,246,185,215,148,135,156,133, 57,165,161, 79,125, 19,235,
-110,232, 17,160,169, 99, 82,187,184, 93, 45,167,203,229, 98,190, 91, 93,214,205,100, 72,249,238,238, 44, 48,  3,137,129,212,117,
-221,111, 55, 18,171,166,158,152, 27, 19,109, 54,235,108, 46,177, 65,183,171,219,219, 12, 30,171, 26,192, 93,251, 32, 21,154,174,
-239,110,154,118,174,195, 22, 60,115,168,116,216,180,211, 67,137,147, 97,216,170, 38,  0, 24, 82, 94,109,119,131,218,162, 93,212,
- 34,117,211,244,187,213,250,238,170,105, 91,145,112,176, 92,244,221,110,215,245,179,233, 36, 15,195,144,146,170, 13, 41, 87,245,
- 20, 72,204,114,223,247, 40,245,108, 50,  3,160,213,110,163,230, 77,172,126,240,211, 63,250,226,251, 63, 18, 22, 32,239,119,187,
-221,122,115,254,241,253,183, 95,127,245,252,197,139, 87,239, 63,188,254,120,250,225,236, 28,221,127,240,236,211,127,252,243, 63,
-251,252,201, 83,103,140, 85,117, 56,159,124,241,112,218,242,112,241,241,227,187, 87, 47,135,148,214,219, 93,103,250,242,219, 23,
-183,119,235,215,175, 62,110, 46,111, 30, 78,154,182,169, 80,  8,172, 80,  4,  9,  9, 12, 44,171, 35, 82, 21, 42, 10, 98,154, 83,
- 74, 35, 34,144,152, 89,136, 66,249,192, 23,175,145,129,187, 89,209, 28,149, 17,171, 48,152, 90, 45, 92,138,148,110,229, 87,162,
-186, 49, 33,145, 48,  2,128,152,233,160,234,  0,194,224,133,223, 91,206,128,209,165,201, 81, 66, 29, 36,101,  5, 55, 52,100,102,
-  3, 18, 98,199, 18,197,182, 33, 15,227,145, 10,168,102,102, 57,134, 80,254, 78,149,134,160, 48, 27,162,165,236, 96,229,212, 40,
- 30,  4, 97, 50,244,113, 43,133, 52,118,220,203,225, 86, 44, 58, 68,132, 66,136,149,  4,  5,200,230,140,192,  8, 41,167,156, 19,
-  0, 85, 65,152, 73,  1,209, 65,  8, 28, 89,136, 74,103, 86, 88, 16,128,137,108,140,218,219, 40, 90, 64,148, 80,194,254,131, 38,
- 45,255,211, 66,199, 18, 98, 36, 49, 47,191, 18, 10,137,158, 16,131,200, 77,151,118,219,213,225,124, 30, 75, 55,106,156, 64, 35,
- 34,106,  6, 98,144,192,200,236,230, 10,134, 72,194, 84,184,235,232, 94,198,107, 64, 20,  3,151,165,183, 16,133, 32, 10,  8,102,
-  4,174, 89,213, 45,231, 44, 40,  1, 93, 11,189,196,247,164,147,251,209,138, 23,102, 26,209, 72,176, 28,235,152,182,143,105, 23,
-242, 56,248,126,156,130, 37,238,200,228, 14,251, 32,149,237, 71, 30, 80, 55,205,197,249, 10, 15,102,100, 96, 94,232,230, 25, 28,
- 44, 57,162, 33,147,141,231,214,  8,138,  3, 40, 82,139,113, 66,131,192, 37,  3,238, 18,213,148,241, 30, 92,199,128,186, 39,147,
-177,147,238, 49,153, 86, 18,174,102,128,196, 44,204,136, 89,139,191,207,113,172,146, 22,143,248,253,100,198,144,144,152,205,188,
-100, 43, 17, 16, 49, 12, 74, 63,250,209,247,190,121,249,225,221,187,119,135, 71, 15, 38,147,249,226,248, 72, 85,207, 46,175,255,
-237,191,255,245,163,199, 79, 82, 63,236, 54,183, 92,215, 10,105,232,119,128, 88,  2,181,166,  5,118, 77,229, 13,198, 13, 76, 93,
- 34,151,146, 19, 48,146,123, 78, 61,138, 16,130,165, 68, 60,254,145,202,232,  9, 17,193,117,127, 65,128,145,125,140,232,166, 36,
-140, 44,110, 70, 34,224,108,123,  1,226,184, 49,134,226, 83,119,102,215, 33,113,211,186, 38, 44, 22,202,170,  2,137, 14,150,214,
-119,182,187,  5,136,174, 10,166,204,194,161,252,124,135, 52,164,164,216,134,170,219,110,154, 89, 32,  7, 53,239,119,183,101,177,
- 53,228,126,219,117, 67,202, 85,  8,  7,109,216, 93,190, 85,108,195,100,174,121, 23,227,  2,144, 79, 63,188,237,119,125,218,222,
- 52,213,242,203, 63,248,233,199, 55, 47, 79,222,254,174,158, 30,144, 84,136,149,129,  1,122,183,186,232,182, 29,202, 84,208,130,
-224,132,105,187, 94,125,184,190,209,236, 66, 65, 68,251, 60,220,174, 86,179,201,164,170, 99, 91,197,249,100,114,183, 94,179, 80,
- 96,233,250,225,239, 95,191,172,  3, 30, 78,219,100,151, 18,154,166, 57,170, 68,239,174,175,166,  7,143,234,192,237,100, 34,161,
-233, 82,159,250,181, 89,116, 77,187,190, 23,137, 21, 35, 80, 64,199,126,187,201,  0,149,240,174,219, 49, 97,159, 85,250, 93, 12,
-177,223,173,153, 47,164,154, 66, 74,193,185,169, 39,169, 95,175, 54,155,235,235,147,200,205,225,100,145, 92,145, 67, 78, 67,172,
-230,253,144,186,110, 59,157, 31, 95,223,221, 14,221,122,179, 89,  5, 38, 68,182,156,169,110, 17,112,183,189, 90, 44, 31, 13,253,
-182,110,106, 52,179, 97,123,244,228,179, 93,191,107, 22,139,103,159, 61,123,240,244,177, 83,216,238,182, 58,116,155,187,245,229,
-213,199, 15,239,222,191,251,240,225,205,201,233,217,197,205,106,187,249,242,217,231, 63,253,242,139,131,249,193,106,155,110,119,
-221,227,163,195, 71,173, 29,206,233,246,230,226,253,219, 55,237,180, 26,192,  6,205,203,135,139,183,167, 23,175,223,124,168,131,
- 28,183,173, 72,  9,124,  3,  0,178, 16,  7, 41,  9,105,102,140, 21,141,158,226,100, 14, 40,194,170, 94, 42,220, 33,132,172,150,
- 29,177,180,120,204,120,116, 55,131,151,127, 71,  7,128, 24, 56,155, 21,123,176,144,171,249,254,147, 12, 96, 70, 68,217,114,202,
-169,239,135,194,160,138,194,196,130,132,213,216,200,103, 97, 30,242,224,138,134, 78,192, 70,142,110,177, 10, 68,  2,217,138,107,
- 45,  4, 49,179,253,122,140, 74,219,209,  0,  0,177,140, 82,211, 48,144,155,132,176,237,123,243, 92, 94,100,147,154,163, 16, 19,
- 33, 37,119, 70,172, 57,168,171, 22,180, 11, 11,  3, 23,233,178,128,168,155, 32, 83, 69,105,112,207,230,144,171, 88, 73, 33,245,
- 19, 69,226,  4,102,102, 21,143,125,159,192,236,238,166, 90, 34,122,196, 66,224, 54,118,104,152,152, 82,202, 80, 84, 36,224,136,
- 24, 88, 40,134, 62,101,207, 10,  4,106, 42, 82,230, 60,128,228,219,148,239,238,110,230, 77,221, 54, 77,249, 73,185,131,255,255,
- 84,189,215,151,101,201,117,167,183, 93,196, 57,231,186,244, 89,174, 13,218,192, 53,  0,130, 67,209,138,196, 12, 37, 74, 90,212,
-112,104,158,134,212,155,254, 73, 45,189,105, 73,163, 53, 67,105,196,161,  8, 52, 97, 26,109,202, 87,102, 86,250,235,142,137,216,
-123,235, 33,206, 45, 80,111,  0, 26,171, 58, 51, 43,239, 57, 17,123,255,126,223,135, 94,134, 16, 34,236,101,181,166, 89, 85, 99,
- 21, 76, 65,179,150,191, 17, 69,  8,194,149,112,175, 94, 22, 36, 66,136,  8,217,156,  1, 18, 80,159,147,166,161,169,107, 85,227,
-127,255, 87,255,227,  8, 98,124,103, 64, 26,143,240, 59, 54, 11,254, 38, 27, 78, 72, 68,193, 11,166,166, 20, 10,162, 32,145,219,
-200,146,100, 34,192,119,143,153,113, 35, 58,178, 67,129,136,237,230,230,126,127,190, 55,238, 10,137,139,173,123,228, 16,  4,122,
- 39,118, 29,255,205,238,132,100,160, 59,103, 83,193, 64,234,168, 41,228,176,171, 35,141,180,176,209,216,  7,136, 72,130,  4, 68,
-130, 92, 46, 35,133, 86, 81,184,138,160,128,140, 52, 22,109, 75, 55,130,129, 10,147,236, 29,125,172, 72,164, 16, 81,144,217,221,
-170,192,179, 58,254,236, 87,223, 44, 22,243,189,253,163,130,196, 58,216,159,255,211,231,191,116,247,143,222,127,239,228,209,131,
-203,203,183,179,217,188,223,182,177,174,217,199,133,  5,115, 24, 51,151, 14,196,140, 92,252, 34,239,118,186,227, 70,193, 77,193,
-205, 85,181,239, 28,180, 60,230,125,132,184,209, 40,131,100, 26, 99, 14, 88,102, 48,198,194, 34, 81, 36, 74,172,138,212,189, 76,
-186,204,168,158,206,137,176,188, 25, 98,221, 88, 74, 40,236, 14,200,  1,180,183, 65,157,194,249,155, 55, 57,219,193,233,131,163,
-211,195,179,231,175, 33,196,118,189,204,219,155, 46,217,252,240, 33,186, 74,168,203, 97, 72, 29,187,205, 77, 16,101,225,219,155,
-229,249,229,237,221,102, 83,215,147,255,238,207,254, 26,136,185,154, 16,241,252,232,116,113,240,240,237,217,139,229,249,215,251,
-167,143,231,123,251,  8,116,255,246,217,118,211,237, 29, 62,244, 60,104,214,249,252, 40,229, 62,183,155,183,231,175,238,239,175,
-182,219,251,201,108,159,  0,108,216, 92,221,222,252,236,233, 43, 71,209,156,  8,129, 16,171, 32,109,206,168,120,189, 90,214, 85,
-188, 95,111,134,156,131,240,188,153,116, 89, 47,175,111, 79,247, 22,179,201, 36,229, 60,169, 39,195,176,110,234,137, 35,247,253,
- 96,154,203, 26,142, 44,153, 42, 83,189,191, 88, 16,146,147,228,212,151, 58,116,144,170,164,193,170, 42,106,182,217,116, 58,108,
-239,102,123,199,170,154, 21,145, 72,132, 83,191, 94,109,215,142, 20, 83, 90, 28, 62,210,156, 40, 84, 33, 68,  4,200, 57, 15, 67,
- 27,235, 41,168,130,231,216, 44,204, 76,115, 18,198, 72, 58,169,154,166,170,182,247, 23,166,221,102,121, 43,213,164,239,214,235,
-187,179,197, 98, 95,154,248,254,199, 31, 77,103,179, 48,153,130,234,242,246,234,254,246,230,245,139,111,190,126,246,244,229,217,
-235, 87,231,151, 23, 55,119, 93,215,254,248, 59,223,251,201,143,127,119, 90, 87,219,237, 82,170,248,241,123, 71,159,125,231,253,
-200,126,246,250,229,213,229,249,225,163,211,181,229,103, 79, 95,206,166,147,167, 47,207,222,188, 56, 63,110,154,195,102, 30,133,
-128,198, 81,167, 16, 69,150,194, 58, 68,  0,  3,151, 50,199,128, 34,118,116, 98,  9, 33,136,  8, 16,211, 40, 85,  3,181, 84,142,
- 71,230,230, 56, 94,208,  1,144,  2,170, 21,128, 24,160, 89,233,  8,142,151, 98, 70,115, 23, 66, 69, 65,112,181,180,220,180,253,
-208,149, 95,248,166, 42, 15, 77,158, 53, 53,160,108,251,174,124,250,199,130, 44,141,149,198,114,122, 29, 93,110,224,234, 16, 36,
-148,153,  0, 49,243, 72, 14,192, 29,150,170,216,235,148, 16,179,101, 64,102, 68,225,242, 44,114, 53,152, 84,177, 10, 33,171, 26,
- 64,148,192,200, 40,129,131,  8,115, 73,183,112,145, 25,143,228,153,210,185,161,192, 36, 33, 34, 11,  0,140,159, 38,119, 66,246,
-145,219,  2,133, 79,238, 14,230,102, 89,137,  9,145, 56,200,144,210,200,188, 65, 68, 32, 17,  6, 26, 79,159,187, 73,  7,186,121,
- 96,146, 32,125,182,235,213, 42,160,157, 30, 28, 73, 12, 37,177,142, 72, 54,198, 14,137, 74,211,  5,129,  2, 49,138,170,149,210,
-168,186,103,117, 68,172, 88,114,105,232,  3,104, 78,234,128,  0, 33,  4,117, 72,169,213,172, 49,132, 40,146, 77,165,144, 35,188,
- 40, 81,105,204,  6,154,217,  8, 13, 54,220,145, 97,202,211,200,220,  7, 40,131,110, 34, 34,  4,  3,196,162,120,197, 17, 12, 89,
-  6, 19, 37, 52,  9,142,232,136,196,140, 57, 15,140, 68,168,217, 81,132, 44,239,106,170,132, 84, 66,221,185,232, 62,160,152, 90,
- 13,160,248,  0,132,196,124, 76,206,184, 39, 87, 47, 67,157,157,159,111, 55,212, 41, 47,  5, 65, 82,  0, 43, 44, 72, 80,176, 98,
- 28,  0,244, 18,  0, 66,  0, 10, 12, 12,144,189, 36, 81, 68,138, 38, 79,203,204,222, 77,203, 44,173,252,235,145,184,164,119,147,
-193, 71,159,188,255,193,211,151,207, 94, 60, 59, 57, 57, 61, 56,121,188,183,127,224,150, 62,120,252,240,127,253,223,255,254,  7,
-223,255,222,201,233,254,235,103,207,194, 71,159,180, 93, 55, 95, 64,118, 37,  4,  2,115,237,  1,101, 92, 92,141,203, 27, 40, 21,
- 39, 40,233,119,205, 72,100, 89,  1,193,114,118, 53,  3,119,  3, 14,145, 36, 32,178, 91, 46, 87, 59, 31,209,171,239,  2,172,  8,
-224, 34, 66, 20,202,231,174,  0, 54,205, 11, 69, 58,  8,187,102,231, 72,150,147,230, 36,177, 86,119,  6,  7, 96,174, 88,189,143,
-245, 44, 91,139,232, 34, 49, 78,103, 55,175,222, 16, 59, 73,104,151,183,243,189, 35,105,166,106,217,242, 48, 12,125,234,213,117,
-136,181,152,218,182,107,219,161,235,186,238,228,248, 68,132, 52,231,146,190,154,204, 22,183,183,151,125,215,214,251, 15, 31,188,
-255, 73, 12,184, 93,221,172, 90, 67, 14,195,176, 77, 41,247,237,218,161, 95, 93,191,110,102,  7,205,226,232,232,228,189,156,186,
-246,254, 38, 19,105,183,121,246,230,108,185,221,198, 32,204,148, 20, 67,140,132,152,214,235,229,144,212,237,250, 46, 11, 19, 33,
-181, 93, 95,133, 88,  5,190,184,189,249,135,175,191,254,201,236, 95, 77,234,104,154,219,182,111, 26,234,135, 13, 58, 74,172,212,
-208,135, 62,214,139,245,237,219,189,163,163,105,228,155,126,227,161,233,123,103,142, 96,195,208,183, 36,  2,  2,140,184,183,152,
-119,237,  6,144,133, 25,160,  2, 34,215,116,125,183,108, 66, 51,107,166,179,197,209,166,170,153,209, 45,128, 15,166,104, 68, 41,
-119,161,154,  4,137,221,208,130,153,118, 43,166, 48,157,238,117,237, 18,133,177, 84,237,129,179, 51,199, 73,234, 90,  4,142,243,
-227,106, 62,121,112,242, 96, 50,155,187,230,246,254,166, 93,111, 94,189,126,126,115,119,119,117,125,123,189, 92, 93, 94,223,174,
- 54,155,110,232,191,255,193,251,127,240,217,103,155,245,181,204,142, 62,252,214,183, 63,120,114,184, 63,175,110,175, 46,174,206,
- 47, 58, 77, 55, 55,203,231,151, 55, 81,232,250,126,121,246,230,178, 66,120, 56,157, 78, 38, 21,  9,155, 90,  0, 84, 53,102,  2,
-240, 12, 10, 64,204,145,216,146,105,118, 47,128, 57, 67,140, 49, 16,146,249,200, 42, 41, 65, 94, 83,125,215,187,  6, 36, 38,  0,
-  5,  0,138,129,186,161,117,  0,176, 28,165,178,242,153,195,226,254,180,130,  4, 30,  0,132,204,213,186,109, 63,228,108, 57, 33,
- 82,227,209, 50, 76, 39,140, 36,217, 12,  0, 39, 85, 61, 88,  6,119,137, 66,128,134,216, 15, 57,  8,131,  3,137,184,186,162,  6,
- 32,113,103,137,102, 89,193,  8, 17, 89,212,213,221, 69, 36,103,181,241, 74, 14,228,168, 38, 64, 84,177, 24,130,102,  3,183, 40,
-164,154, 85, 51, 17,135, 66, 51, 20, 42,104,240,228,142, 88,132, 84, 86,140,224,229, 40, 64,204,165,152,154,178,199,200,230,224,
-134, 85,164,172,217,  1,208,156,145, 11, 35,217, 44, 27,184, 16,  2, 71,119,  3,244, 97, 72, 37, 15, 97, 68, 37, 38,231,134,192,
-104,102,  8, 72, 65,176, 16,145,203, 77, 60,235,114,181,246, 60, 28,236, 47,140, 16,204,144,201,178,185, 15, 18,  3, 98,116,205,
-221,208, 49,115, 64,206, 58,246,  4, 16,209, 44,  3,208,164, 14,230, 88, 94,108, 65,100,200,102, 64,194,228,136,106,158,251, 14,
- 11,162, 31, 57,144, 32, 41,255,237, 95,255,229,168,205, 40,203, 77, 87,252, 13,200,203, 71,156, 97,193,200,140,227,130,145, 44,
- 38, 66, 84,198,234, 80, 22,239, 94, 66, 72,196,  5, 85, 52,226, 14,169, 68, 99,202,176, 29,101,189, 90, 41,201,162,174,199, 83,
-187,249, 88,195, 65, 42,184,204,194,109, 40, 44,183,119, 14,115, 34, 65,112,179,140,224, 84,142,222,196,  8,246, 14, 20,143, 99,
-197, 11, 24,145, 73, 80,200, 71, 55, 97,185,115, 32, 34,186,230,  2,231, 39,100, 48,243,221,184,125,199,211, 44, 46, 13, 96, 34,
- 96,218,129,  4, 12, 49,224, 14,244, 79,196,199,123,139,207,127,249,213,100, 50,221,223,219, 55,181,245,118, 89,  5,121,254,252,
-213,118,219,126,240,228,209,131,  7,239, 93, 95,158, 45, 14, 14,115,202, 28,  2, 19,169,230,172,153, 57, 72, 96,179,  2, 65, 26,
-139,187,204,  2,200, 96, 14, 68,160,217,205, 76,251,178, 87, 32,166,157, 73,149,223,169, 19,  0,138,237, 10,128, 72,132,199, 37,
- 56, 18, 33, 23, 19, 86, 97,106, 34,130,103,197,216, 52,211,137,131,  3,185, 52,181,165,150,235,202, 29,202,124,115,220,164, 56,
-222,222,172,179, 99,195,126,252,224,244,249,151, 95,231,140, 28,  4, 93, 66,136, 65,196, 65, 17,  8, 67, 52,128,225,238,141, 14,
-247,211,166, 73,217,223, 94, 94,159, 95, 93, 95,221, 92,255,193,239,253,233,199, 31,124,124,127,115,150,141, 79, 30,127,216,183,
-219,183,231,111,  4, 82, 93,215, 39,143,222,191,191,185,186,191,189,201, 78,218,109,167,135,167,194, 18,171,169, 33,108,215,247,
-158, 83,169,158,213,117,115,119,127,103,166,243,233,222, 63,126,243,236,237,253, 61,186,153,121, 70, 67,128,148,108,211,110, 10,
- 21,206, 29,204,189,138, 33,155,170, 25,128,207,154,201,186, 79,131,230, 39, 71, 39, 81,236,228,224,176,237, 90, 85,213,220,229,
-108,154,218, 62, 39, 79,121,189,186,173,170, 89,197,216,245,109, 55, 12, 70,209,135,142,131, 76, 39, 51, 32, 88,212, 53,135,176,
- 90,223,131, 67,144, 56,164,222, 85,239,215,183, 93,238, 15, 38,147,189,189,195,242, 73,  8, 18, 28, 28, 72,214,171,251,106, 50,
-  5, 75,154,250,186,153,110,182, 43,  3, 14,174,  8, 57, 84, 77, 64,148, 16, 99, 83, 51,210,122,179, 76,234, 15, 78, 31,169,106,
- 93, 55,135,199,135, 31,127,255,179,163,211,199,211,189,133,229,225,234,237,249,219,139,179,103, 47,158, 63,125,241,242,217,155,
-179,151,231, 23,231,215, 55,171,182,203,105,248,236,211, 79,254,245,239,253,235,233,116,222, 76,154, 15, 31, 31,125,255,211,247,
- 16,242,139,175,190,188,189,186,186,190,191,159,158, 28, 17,230,179,139,203,171,171, 27,237,134,147,102, 50,173, 42,145,130, 89,
-183,146,142,149, 16,220, 45,187, 17, 50, 35, 32,129,154,155,  3, 26, 48, 18,  7,137, 65,144,104,100,100,168,  1, 86,139,141,129,
-  0,  0, 32,  0, 73, 68, 65, 84,130,102, 43, 63, 85, 87, 31,143,169,227,120, 26,213,180, 27,  6,  5,175, 37, 32, 98,214,156, 71,
-128,107,185,146, 82,249,133,170, 99, 52, 53, 32, 31, 52, 13,154,163,132,170, 10,117,172, 38,117,237,  4, 64, 28, 40,102,183,140,
- 14,232, 33,  8, 33,179, 68, 83, 39, 22, 66, 32, 39,135, 34,105, 98, 97, 33,225,  2, 50,171,132, 99,224,148, 85,147,149,222,103,
-105,214,151, 47, 64,193,  3, 75, 93,213, 90, 42, 38, 12,133, 62,130,  5, 53, 72,100,142,117, 21,203,183, 15,  0,140, 24,130,148,
- 67,150,186, 23, 77,102,137,249, 23,201, 39,135,  0,142,234,198,194,133,123, 85,202, 49,  6,227, 80,186, 28,195,145, 71,205,131,
-153, 34,129, 68, 65,146, 64,104,170, 36, 92, 54,137, 72,104, 69,208,198, 50, 42,166,221,251,172, 55,203,245,193,108, 82,135,  9,
- 51, 57,163,102, 39, 68,137, 21,  0,164, 46,149,162, 25,146,104,233,237,  7,113,  3,117, 21,  9, 84, 76,182,142, 33, 50, 66, 24,
- 33,187, 68,238, 10,132,238, 20,  2,165,148,  5, 33,134,104, 14,201,141,255,167,191,249,203, 82,187,161, 82,161, 45,163,115, 55,
- 48, 32, 10,165, 41, 90,198, 44,  5,150,160, 58, 98, 91,  0,188, 76,155, 16,138, 48,218, 70,  7,105,105,155,218, 72,161,132,209,
-198, 81,210,136, 76,104, 87,183,235,211,147,147,194,224, 38,  2,116, 64, 97,166, 66, 46,251, 23,  3, 34, 64,  0,167,119,246,110,
- 70,  4,125,215,123, 42, 80,223, 17,152, 75,236,230,160, 80,216,198, 68,164,154, 76,211,216,218, 66, 20,198,194, 86, 52,  0,116,
- 35, 65, 36,216,153, 89, 70, 80,194, 56, 47, 49, 64, 66, 22,242,146, 54, 26,153, 55, 69,162, 66,102,190,127, 56,243, 33,189, 58,
-127, 59,169,235, 16,107, 85,101,146, 38,208,255,251,171, 95,255,238, 15,191,255,222, 39,159,228,180,101,137, 87,111,207,231,211,
- 89,187,188, 45,149, 49,102,114,135,178, 47,114, 51,176, 50,196, 50,183,177,245,228, 14,166,185, 16,140,115,210, 80, 85, 59, 87,
- 54,239,232,207,229,255,166,196, 28, 88,180,  8,249, 70, 99,206,248, 93,143,164, 26,  0,  7, 15,205,172,142,226,  6, 82, 85, 96,
-234,206,163,188,187,164,238,119,192,157,179, 23,111,186,118,179,191, 63, 63,122,116,250,242,233,203,238,254, 13,112,133,  4, 20,
- 26,142,141,169,113,168, 72,104,216, 44,  1,117, 72,155, 73, 61,233,250,246,252,234,230,250,246,254,230,246,250,191,249,211,191,
-  8, 54,228,172,205,116, 18,154,250,246,234,173,160, 15, 67, 63, 63, 56, 61,121,242,173,151,223,124,241,250,233,151,110,196,161,
-  2, 77,195,230, 46,107,191,189,123,187, 56,122,172,219,229,122,121, 59,217, 59, 98,200, 57,219,225,209,233,237,242,230, 63,252,
-244,243,118,232,199,220,106,105, 84, 70,169, 99,213,245,131,169, 57, 66, 29, 99, 55,244,  8, 88,135,202,213,137,169,  9,241,226,
-246,110, 82,135, 71,251,251,136,218,109, 54,183,203,123, 96,  1,203,154, 53,212,245,222,116,166, 28,250,190,173, 98,112,228,108,
- 94,  9, 91,234,205,180,226,200,238,205,164,  9,145,235, 48, 35, 48,  9,161, 79,195,221,122,233,200, 39,251,167,164,202, 18, 36,
-212, 89,125, 24,218,205,250,114,232,250,102,190, 87,197,144,183,247,200,  1, 92, 83, 74,211,233, 52, 52,117, 93, 79,133,165,237,
- 55, 34, 34, 92,  5, 22, 66, 48,144,110,187,110,154,230,232,244,248,131, 79,191,189,216, 91,196,186,218,172, 86,175,159,125,243,
-236,197,139,215, 23, 23,175,206,206,222,188,189, 60,191,186,218,182,253,193,124,254,227, 79, 63,253,254,123, 79,126,240,233,119,
-  7,205,145,253, 71, 63,250,206,241,126,115,117,254,242,205,243,231,113, 62,169, 79,143,159, 63,125,113,116,184,247,236,252,252,
-245,171,139,125,146,189, 73, 45, 92, 70,186,160,142, 33, 22,154, 58,189,147, 43,141,193,129,221,196,148,152, 72,  4, 11,166,131,
-  9, 12,  8, 73, 53,149, 87, 62,193,120, 20, 34, 38,179, 81,167, 60,104, 54,205, 66, 28, 37, 32,104,241, 52,215,129,213,156,136,
- 10, 21, 88,152,193,161,207,217, 77,  5,133, 88,  8, 48,136,236, 77,167,117, 83, 35, 18,  2, 23, 28,121,209,125, 76,170, 74, 21,
-115, 46,167, 58,100, 24,235, 47, 92,248,142, 65,178,153, 32,146, 16, 19,162,131, 89,130, 29,174,150,  9,137,216,220,221,140, 40,
-148,216, 95,185,241, 75, 96,112,114,  7, 33, 98,102, 32,138,165,211,102,227,104,133, 17, 29, 10,218, 23,118,243,  0, 39, 34,  4,
- 74,160,194, 44, 44,229,127,103,102, 68, 23, 17, 24,187, 54, 62,226,176, 16,152, 24,144,203,  4,149,152,153,196,199, 33, 15, 56,
- 64,168, 98,153,120,144,160,148,182, 36, 82,209,109, 19,120,114,127,117,121, 51,139,116,188,127,224,194,110,134,136, 49,114,140,
- 85,223, 15,174, 86,236, 87,238,238,121, 64, 17, 34, 42, 24,125,166, 17,  6,142,224, 66,108, 88, 90, 92, 32, 66, 57, 27, 33,  5,
- 18,164, 50, 37, 19, 18,  2,132,192,108,102,242,206,145,100,136,224, 86,182,172,227, 42, 23, 12,208,137, 75,131,171,  0, 29, 93,
-  2, 58,228,145,176,172,  9,  1,136, 25, 10, 75,169, 28,230,205,128,118,114,214, 29, 76,168,252,124,221,108, 54,155,194,245,178,
- 27, 58,118, 37,178, 49, 97, 20, 16, 21, 28,209, 70, 17,108,233,124, 42, 32,169,103, 64,102,  0, 55, 68, 39,112, 29,149,212,174,
- 99,239,137, 81,205,118,137,124, 99,  4,181,130,193, 33, 64,116,  5,231,241,241,233, 96, 14, 84,166, 28,  8,200,176, 43,235, 22,
-217,110, 57,161, 51,  2,160,230, 81,120,  4,232,136, 10, 36, 56,234,169,176,107,211,247,191,253,225,215, 47,207, 95,190,122,249,
-237,201,124, 62, 91,160,227,199, 31,125,252,244,229,235,255,243,239,255,225,244,193,195,201,108,255,235, 47,126,249,224,225,123,
- 93,187,201,105, 80,160,138,104, 32,140, 36, 37,111,137, 68, 57,103, 82, 55, 71, 65, 41,163, 41, 32,112,203, 57, 39,116,  4,205,
-169, 39,137,149,185, 51, 58,184, 97, 16,215,194,199, 23,112,207,166, 35,108, 64, 11,156, 33, 16,243, 14,121, 63,254, 58, 86,177,
- 33, 22,140,194, 34,169,237,136,201,138, 92,197,203,219,133, 88,  8, 18, 58,168,185,203,100,110, 41,213, 85,213, 78, 14, 65, 38,
-105,123,131,161, 54,197,126,121,198, 85, 67,213,158,  8,211,116,186,185, 87, 85,107,219,126,211,117, 67, 26, 66, 12,211, 40,171,
-213, 70,152,166,211, 73,187,221, 14,171, 43,106,102,177,170,247,142, 78, 87,183, 87,195,102, 21,154, 57, 11,111,238,206, 86, 58,
-196,208,204,246,142,193,141,208,103,135, 39,213,108,127,189,110, 45,111, 48,136,153, 62,123,249, 66,129,102,205,244,226,234,109,
- 93,215,133, 82,  8,230, 65,100, 49,155,174,214, 27, 68,236,135,148,213,220,180,169,227,164,153,108,186, 77, 53, 13,123,211,217,
-255,245,243, 95,109,187,238,163,195,121, 37,161,132, 43,234, 42,152,170, 33, 13,253,186,174,234,204,210, 42,228,172,154,  6,144,
- 88,215,245,208,110,144,156,221,186,174,229,206,129, 36,185,166, 54,145,165,105, 12,117,211, 16,100, 64, 31, 82,175, 57,101,195,
- 80, 79, 28, 98,202,221, 60,196,245,245, 69,108, 38,147,122,202, 28, 99,149,200,  7,203,230,161,114,181,170,154,149, 19,202,122,
-125, 55, 12,219,106,114, 88, 53,123,167,239, 61,122,248,228,201,116,182,232, 55,203,243,215,207,206, 94,189, 62,187,120,123,113,
-123,119,115,119,119,121,191,218,180,237, 65,221,124,231,147, 15, 63,124,252,164,169, 99,223,175, 57,196, 79,222,127,248,248,116,
-127,232,150,175, 46,206,215,155, 85,159,252,242,242,170,190,185,190,188,186, 94,109, 54,235,251,245,227,249, 60, 20, 53, 18, 56,
- 58, 82, 73, 52,162,140,199, 18, 80, 36, 36, 16, 53,117,179,210, 44, 66,216,181, 49,202,227, 14, 72, 34,244,125, 42,241, 18, 48,
-119, 46, 43, 55,  6,240, 16,130, 35,108,219,142,129, 40,  4,203,218,167, 65,136,137,164, 10, 96,238, 18,130,187, 51, 50,153,153,
- 57, 17,162, 82,  8,  4,128,145,163, 72, 36, 84, 38,180,241,108,103,105,232, 67, 44,158, 84,206, 25,  8,169,138,204,130,230,104,
-230, 12,  0,110, 28,163,103, 69,178, 24, 72,192,145,176, 31,178,106, 18,146,119, 22, 33, 70,200, 14, 34,  1,208, 60,155, 21, 27,
- 27,141,231,189,209,135, 60,254, 80,208,  0,204,129, 16,152, 72,213, 92,112,  7,  5,  3, 87,183, 29,124, 28,  5, 39, 40, 41,171,
-186, 10,202,136,188, 53,200, 57,155,141, 93,246,146,216,241,172, 10, 30,  2, 59,  4, 40,221, 47, 68, 68, 86, 53,100,162, 82,237,
- 47, 58, 16,  7, 66, 50,  1,114, 47,169,108, 36,190,187,223,214,228,199,251,  7, 78,168, 41, 23,236, 46, 34, 12,125, 63, 82, 74,
-  0,134,148,235, 40, 70,177, 60, 63, 67, 36, 51,176,156,  1,140, 16,144, 88,221, 32,121,168, 36,101,203,217,132,209,140,212, 51,
- 19,163, 84,134,217,157,221, 53,229,164,166,226,230,200,229,175,  0,  0,204,138,104,142,104,167,197, 24, 21, 76,184, 19,192,113,
- 32, 79,  5,249, 40,101, 71, 90,152,239,133, 66, 94,108,161, 59, 52,226,206, 39, 90,182, 19, 86, 64, 99, 49,144,182,109, 95, 71,
- 86,195,192,239,152,137,187,  3,185,187,187, 18,160, 26,136,144,  1, 10, 10,128, 22, 36,188,102, 39,114,244,114, 61, 49,119,128,
- 92,166, 48, 86, 16, 60,229, 95, 15, 64, 44,193, 77,157,157,202,202,156,128,128, 25,203,109,130,119, 60,130, 82,203,  6, 87,  3,
- 66,216, 25,167, 10,210, 43,131,  9,160,  3,227, 59, 31,172,153,154,197,102,254,253,111,127,240, 79, 63,127,126,176,255,230,193,
-163, 15, 88,170,253,195,147, 31,125,239,123,255,219,223,255, 63,255,213,143,191,254,228,187,223,117,240,131,163,147,203,203, 23,
-200, 81, 66, 68,142, 72,226,106, 32,240, 46,116, 84,118, 96,238, 78,204,230,142,217, 10, 54, 71,123,  5, 55, 75,  3,132, 26,137,
- 93, 13, 36,184,250,191,184,213,112,185, 52,218, 59,218, 37,226,152,110,130, 18,115, 98, 66,145, 16, 20, 48,198,144,218,222, 13,
-176,137,144,179, 35,128,161,155,162, 80,185,215, 72,156, 48, 13,221,242,206,225, 81, 86,  5, 14,192,128,213,132,  1,134,190,175,
-247, 78,153, 99,187,221,138, 80,187,220,178, 59,130,175,182,109,151,134, 62,231,217,116,159, 53,229,188, 57,126,239,211,237,182,
-239,218, 84, 77,246,185, 94, 68,134,163,  7,143,214,247,247,106,218,174,174, 39,211,  3,205,253,222,131,247,105,176,148,  7, 87,
-247,193,218,110,123,176,191,104,215,171,170,217, 75,195,230,230,230,234,233,249,219,166,110, 14,103,179,245,118, 85,133, 42,105,
- 42, 94, 89,115,143, 33,212,161,218,244,219,166,169,221, 53,185,223, 45,215,245, 73,112,164,235,229,234,112, 62,157,212,213,151,
-175,206,186,182,251,240, 96,111,177, 55, 13,132, 39,139,253, 77,223,175,218,237,182,221, 74, 77, 49,198,126,  0, 17,202,  2,  8,
-144,114, 15, 76,224, 57,229, 33,152, 99,140,203,212, 11,242,233,124,193,204, 67, 50, 96, 34, 51,181,212,200, 92,135,101, 93,205,
-204,187,249,100,214, 49, 84, 85,157,234,169,170,222,223, 93, 30,157,190, 31, 67, 29,121,114,117,121,150,219,190, 34,168,166,139,
-166,138,174, 67,136,117, 96, 58,122,242,112,186, 63, 63,121,240,164,174,234,245,205,229,171,215,207,158, 61,127,121,118,121,125,
-123,191,186, 95,111,174,239,239, 45,231,143, 78,246,126,239,123, 63, 48,226,161,223,112,213,124,242,201,119,190,253,233,  7, 65,
-240,234,229,179,139,179,203,193, 18, 52, 53, 82,122,245,236,185, 43,106,202, 77,109,139,195, 69, 25,137, 16, 65, 54, 98, 30,225,
-236,234,170,134, 33,144, 57,128,122,225,254,101,208,146, 64,246,114,195, 35,226, 64,166,208, 89,  6,203,129, 37, 33,228,156, 66,
-140, 10,  6, 64,181,  4,116, 75,110, 41,229, 32,194,194,105,232,  1, 53, 48, 23,201,  6, 35, 25,122,118,175,153,213, 61, 89,145,
- 78, 80, 29, 74,137, 26,171, 42,106,214,164, 94,170,120, 96,104,  0,192,128,140,234,198,142,  8,196,194,224, 48, 12, 41,136,236,
-158, 27,140,238,192, 36,129,201,205, 85,135,148, 11,222,124,112,171,163,168, 66,210,162,214,  3, 33, 30,178,103,135, 81, 59,228,
-227,127, 34, 17, 46, 31,100, 83,181,  2, 58, 70, 68,214,172, 68,187,211,156,131,  3,134, 74,202,  5,130,136,137,204, 13,200,204,
- 29,212,149, 70, 74,250,152,104,  1, 64, 46,211,255, 12,  0,206,  2, 77, 93,245,106,166, 25,156,204, 50, 87, 12, 25, 77, 45,198,
- 74,213,  4,208,128, 28, 52,185,149,166, 15, 11, 33,210,122,219, 14,185, 61,217,223, 51,  7,204,218, 76, 38,125,206,160,166,189,
-  1, 32,  6,198, 76,217, 83,168, 88,213, 76, 29,133,192, 69,179, 33, 32, 69,241,236, 92,158,131,238, 28,176, 27, 20,208,234, 74,
-250,  1, 34,187,121, 51,164, 62,  4,239, 21,  1, 70, 61,105, 81,193,225, 40, 76, 68, 46,127, 27,101, 71,237, 69,223,236,230,  8,
- 68, 76, 12,174,110,  6,164,197,144,142,166, 32, 82,228, 77,254, 27,159,198, 59, 10,217,111,196,208, 80, 80,127, 96, 78, 76, 68,
-216,212,149,153, 11, 49, 22,213,159,146, 23,128, 39, 48,162, 35, 56,162,115, 89, 41,188,187, 79, 20, 90,129,107,129,206, 19,  9,
-120, 46,143,227, 17,  8,108,138,200,  8,163,145, 21,203,177,151, 16,172,172,139, 29,161,100,244, 11,203, 12, 71, 42,227, 40,144,
- 53, 47,138, 83,247,130, 49, 40,192,221, 48,102,103, 11, 74,167,100,106, 12, 28,179,234, 39, 31,125,240,213,243,179,139,243,243,
-189,131,227, 73, 51, 93,183,219,135, 15, 30, 62, 62, 61,252, 95,254,143,255,244, 63,159, 28, 54,147,197,155, 23,207, 31,127,240,
-248,234,205,107,102, 17, 33, 55, 51, 80,203,169, 24, 73, 88,196,  0, 65,117,188,152,186, 35,139, 64,157,144, 24, 45,119, 93,209,
- 52,137, 48,114,220, 73,195,116,164, 34, 23,166,252,232, 62, 25,193,206, 56, 50,131, 20,128, 11, 14,193, 77,153, 37,247,189, 15,
- 29, 86,209, 53,193,160,192,108,253, 22, 37,146,  8,  0,184,102,242,140,  4, 97, 50,147,201, 76, 98, 20, 81,  3, 16,105,210,246,
- 30, 24,195,244,160,219,172,128,188,109,187,126,115, 27, 98,  5,140,171,237,198,134,164, 41,205, 23,199,117, 61,225, 89,213, 13,
-105,221, 39, 75, 93, 53,221,203,214, 79,247,142, 99,  8,106, 58,217, 59,124, 88,205,114, 82,174, 14,114,223,131, 41,152, 57,113,
- 66, 55,199,251,251,187,147,211,  7,203,219,219,205,242,246,238,250,106,147,242,219,235,243,166,122, 60,105, 38, 67, 74, 65, 68,
-205,  1, 28, 13,204,117, 58,157, 40, 89,223,103, 85, 96,196,236,126,123,191,137, 18,  3,162,  3,238, 77,231,142,240,242,230, 90,
-136,226,164,222, 91,204,212,146,165, 36, 66, 33, 78,182,109, 91,155,166,182, 91,183,247,179,189, 83, 55,243, 80, 87,  8,109,223,
- 17,210, 54,117,158, 83,110,183, 15, 14, 14, 55,155,123, 51,152,204, 15,  2,  7,100,153,198, 25, 34,187, 97,183, 90,198,201,124,
-190, 56,246, 13,119,171,101,140,149, 35,247,166,235,237,221,222,252, 96,181,186,203, 89,171,122, 26,  5,187,190,243,212,181,155,
-155,189,195,147, 71, 31,127, 58,153, 79,246,247,143, 35,194,205,197,171,103,207,159,191,120,245,250,213,219,183,183,247,203,219,
-229,170, 29,210,188,150,223,255,193,143,143, 23,115, 99,  9,213,164,  2,255,157,207, 62,249,232,227,199,171,235,219, 23,175,158,
- 65, 32, 58,156,222,126,243,234,120, 86,221,111,187,155,171,213,241,180, 57,158, 77,  2, 81, 45, 98, 96, 93,118,100, 12, 60, 66,
-141,  0, 81,161,216,174, 75,185,194, 10,105, 73, 28, 74,222,  3,137,136,  4, 17,204,212,129, 24,144, 66, 72, 41,169, 26, 49,103,
-205, 33,132,170, 18, 52, 77,110,  8, 24, 43, 41,212,  0,  4,100,150, 52,100,183, 44, 18,156,209, 82,170, 42, 65, 96, 27,134, 66,
-163,170,132,218,172,129,  8,  9,135,148, 53,103,148, 82,197, 35,119,143,145,220,105, 72,137, 35,  5, 10,160,158,221,208,113,132,
- 59, 10,169,142, 20,115, 68, 24,122,205, 41,177, 20, 61, 27, 50, 50, 69, 73,125, 50,115, 97, 20,230,148,181,207,  3, 49, 86,129,
-209,160,207,138,  8, 21, 81, 54,199,209, 26,104,102,206,  4,204,156,212,  8, 29,120,100,  1, 23,112, 13, 19, 13,230,129,  3,128,
-165,161,175, 39,181, 57,112,208,146,138,134,113, 42, 93,240, 90, 46,129,221,201,114,166,128, 18, 42, 53,216,118, 67,153,198,184,
-230, 16,196,140,132, 12, 24, 16,172,140,162, 84, 53,165,140,239,198, 58,228, 76,190,110,251, 58, 72, 85, 69, 71, 38,162, 97, 24,
-  8,201,  0, 49,  2,170,105,118,  2, 19,145, 33,165, 18,145,100,226,100, 10,110, 33, 70, 80, 76,150,145,168, 72,104, 53, 91, 19,
- 17,101,178,109,251,200,146, 53, 39, 29, 28, 49, 37,  5, 55, 32, 32,163,170, 38,221,244,252,183,127,243, 23,136, 94, 34,231,163,
-181,179,224,250,119,109,161,  2, 46, 64,  7,100,148,130,200,  4, 43,206,168,146,100,218, 89, 64, 97,236,158,142,208, 94,192,127,
-129,120, 41, 27, 90, 40,113, 65,130,109, 55, 76,167,147,146,213,  7, 47,203,107, 42,153,152,  2,207, 42, 73, 33,102,193, 82,157,
- 47,143,177,242,180,221, 93, 49,  9,101, 44, 92,185, 58, 24,143,108,173, 50,174, 22,  0,231,241,116, 91,250,159,176, 27, 56,161,
-131, 16,218,152, 47, 26,177,198,180, 75, 43,226,200,177,183,194,246, 26, 49,  1, 14,  8, 62,120,185,240,185, 75,168, 38, 21,125,
-241,205,203,138,121, 54, 95,  8, 11, 16, 76,131,252,236,139, 47, 31,156, 30,255,241, 31,255,201, 55,191,254,220, 73,134,161, 11,
-165,244,140, 72, 44,136, 78, 28, 36,196, 50, 94, 14,194,136, 50, 38,151,208,  1,164,100, 67, 37, 70,169, 42,150,138, 99, 45, 81,
- 70,106,194,206,190,234, 56,150,120,223,185, 38,199,151, 16,122,137, 84,130, 57,133,106,118,112, 12,224, 88,  0,205, 54,250,182,
- 65,196, 52,203,100, 66,132, 96, 54,180,237,197,203,179,118,187, 57, 56,125,180,127, 56, 63,123,113, 54,116, 27,196,104, 58, 12,
-237, 38, 84,117, 78, 67,191,185,219, 44, 87,174,234,233, 46, 84, 21, 17,190, 62,123,115,189,218,220,222,221,126,252,225, 39,223,
-249,248, 83, 71,186,189,189, 71, 79, 58,172, 60,171,154,205,231,243, 88, 87,171,155,243,155,179,111,230,243,253, 42,152, 97,204,
-125, 23, 24,182,203,155,102,118,184,190,191,137,161,210,172,169,111,207,206, 95,111,251,237,203,243,243,151, 55,247, 65,228,250,
-238,118, 59, 12,219,109, 59,169, 38,165,146, 32, 32,229,196, 80,133,  0,  0,253,208, 23,197,109,223,247,106, 26, 99,197,132,219,
-190,223,155, 78,131,212, 23,119,183, 19,161,121, 85, 53,177, 74, 67,151, 12, 17,161, 27,210,102,187, 33,176,166,170, 99, 12,132,
- 54,105,166,197,  6,147,  0,  1,112,194, 52,141, 49,153,129,219, 98,255, 84, 24,  7, 29,136, 48,  6,206, 67, 74, 41,183,237, 38,
-132, 73, 93, 85, 44, 53, 73,236,186,117,201,207, 78,154,217,124, 18, 87,155,109,172,103, 64, 50,164,109, 63, 36, 34, 90,236, 31,
- 28, 63,121,252,240,225,163,217,100,106, 58, 92,189,125,243,213,211,103, 95, 62,125,246,226,236,252,252,242,230,122,117,143, 14,
- 63,252,214,135,127,240,233, 39,123,139,253,205,118, 21,132,190,251,237,111,253,209, 31,253,238,222, 94,115,117,246,230,155,175,
-191,  0,  9, 91,180,175,190,126,186, 93,183,183,247,203, 87,223,188, 60,156, 78, 15,167,211, 42, 10,  0,149,155,188,136,148,222,
- 80,233,156,184,  2, 49,169,169,187,150,176, 29, 51,141,170, 81, 44, 24,118, 34, 41, 55, 84, 18, 17,119, 27,178,149,  5, 25, 17,
-138, 68,  2, 24,  6, 29, 17, 43,204,133, 73, 48,202,209, 10, 10,195,177,100, 27,132,216, 84,135, 33, 19, 99,249, 67,221, 65,136,
- 75,131,143,  9, 57, 72, 29,164,244, 31,203,116,222,202,209, 36,169,149, 76, 98,  1,237, 49, 17,162,154,151,248, 32, 18, 20,138,
- 12, 49, 51,113,100,108, 38,196, 12,110,  6,110,197, 47,148,114, 86,117,145, 17,163,224,136, 34,130,196,227,133,188, 64,234,125,
-100,172, 91,249,230, 72,202,216, 23,118,157,111, 34,140, 65,220,192, 13,152,197,204, 11,122,182,184, 46,204, 33,231,236,217,198,
-254, 60, 35,  3,141, 30,134, 29,140,135,139,110, 72,184,244,219,205, 60,231, 84,118,168, 35, 92,171,188,119,221,  0,144,200,174,
-239,219,156,250,199, 71,199, 18,171, 50,222,160, 18,157, 96, 44, 52, 97, 36,  2,194,156, 51, 17, 74, 96,  4,204,170,196, 68, 44,
- 59,139, 27,  2, 98,202, 58,174,226,128,204,149,  0, 82, 78,230, 10,238, 69, 61,173,166,104, 30, 16,213,161, 75,189, 20, 46, 57,
-148,124,236, 59,241, 16, 24,  2,141,204,  1,216,  1,249, 93,221, 17,202, 36,216,208, 11,134,146,120, 23, 63, 87, 32,222,205,102,
-156,118,235, 85,  3, 45,175,  0, 40,151,109,182, 16, 48,111, 50,161, 91,113,184, 18, 34,216,136,138,223,233,141,202,142,220,221,
- 60,165,145, 58,134, 82,158, 97,  5, 44,236,224,128, 54, 46, 13,112,252,  2,193, 13,140, 92,208, 45,227,206, 72, 58,230, 80,136,
-212, 20, 28,220,148,133,124,124,165,149,128, 13, 58, 58,168,  2, 49,144,153, 35, 59, 32, 35,170,145,176,131, 33,102,247,113, 69,
-235,232,136,226,  0,223,250,240,189,215,175, 46,159,189,126,189,119,116,122,124,112, 60,228,116,120,116,242,209,227,199,127,255,
-159,255,233,147,247,159,204, 14, 78,187,245,122,211,182, 77,108,204,198,223, 99, 36, 25,221,229,229, 70, 88,238,143, 76,105,200,
- 60,198,151,194, 24, 30, 34,118, 36, 22,  6, 51, 51, 37,100, 22,210,108, 37,226,227,  8, 76,130, 12,174, 62, 42,253,136,  2, 22,
-220, 27,  1,  3,145,132, 42,166,190,  7, 55,116,  2,114, 20, 97,150,212,117, 82, 53,136,168,109, 79,130,  6, 56, 12,131, 90,206,
-121,  0,112, 10, 50, 12,109, 85,113,234,219,122,182, 31,235,250,238,230,162,221,172,211,160, 16,132,  9, 37,136,153,247,125,118,
- 51,115, 60,168,130,  8, 95,221,109, 73,162, 19,181,155,139, 24,115, 53, 91,196,170, 78, 93,207, 28,166,123,  7,174,221,197,211,
-159,206, 30,126, 70,177,202, 67, 27,226,116,232,183, 33,134,170, 10, 60,  9,  8,118,116,242,208,146,254,211,175,190, 94,183,173,
-106,142, 85,125,125,127,217,246, 29, 35, 45,246,102,160,108,168,163,155,209,113,214, 76, 82,233,  8,102,171,170,208, 15,185,237,
-251,131,249,236,106,185, 92,109,214, 85,172, 76,253,243,215,111,212,108,218, 52, 68,146,186,252,224,248,192, 29,134,102, 50,227,
-188,152,206,215,109, 50, 75,132,118,151,  7,205, 57,109, 54, 33, 68,101,234, 52, 75, 53,  5,224, 62,117,145,188,150, 70, 45,109,
- 87,173, 84,205,116,126, 80, 87, 13,199,208,247,171,118,187,241, 48,161, 80,187, 57,176, 19,134,183, 23,103, 32,181,196,202, 28,
-215,203,117, 29,235,199,239, 63, 62, 57, 57,217, 63, 60, 66,130,229,205,117,219,109,159,189,120,243,197,179,103, 87, 55,183,151,
-119,119,247,171,245,195,195,131,127,253,163, 31, 46, 38, 21, 98,216,182,221,147, 39,143,254,240, 15,255, 96,182, 55,187, 57,123,
-253,246,197, 43,170,164, 53,171,192,191,254,229, 87,183,171, 13,171, 47, 98,245,222,209, 17, 34, 25,162, 21, 91,  3,148,150, 56,
- 56, 18,144, 23, 87,133, 19, 22,127, 61, 18, 33,163, 20, 57, 76, 49,113,176,101, 51, 36, 42,151,114, 70,212,148,152,131,144,185,
- 27,139, 20, 18, 84, 57,200, 19, 82,206,137,208, 74, 63,221,205, 84,141,  4, 20, 52,132,128, 14,157,246,132,224, 74, 49,144,187,
- 39, 29,132,136,145,204,119, 68, 39,  2, 17,  6, 36,  6, 36,194,156, 70,213,154, 32,230,114,229, 54, 99,137,229,168, 84,172, 32,
- 37,196, 65, 14,217,115,145,183, 89,  9,116, 40,136,160, 57, 48,  9,244,222,165,196, 33, 84,130,185, 48,164,152,193,156,208, 17,
-  9, 28,187,161, 39,148, 16,131, 59,100,176,194, 44,  1,112,  5, 45,167, 79, 69,140, 81,  0,217,114,202,217, 16,133,  3,152, 57,
-149,  7, 17, 96,168,234,161,239,221, 44,103, 85, 65,231,152,250, 97,218,230,166, 26,241,173,101, 58, 33, 18,134, 60,  8,113,172,
-106, 53, 53,119, 36, 10, 33, 20, 82, 74,113,110,131, 38,224,236,224,236,184,105,245,118,181,124,255,112,143,130, 12, 73, 53,229,
- 80, 69, 14,  1,204,221, 13,171,106, 72,189, 14,137,133, 57,  4,200,166,217, 68, 48,114,116,194,220,182, 18,  5,153,115,  2, 51,
-101,230,148,180,138, 76, 84,126,224, 86,248, 96,142,230, 68,  6, 10,  0,217, 92,125,168, 36, 84, 18,248,111,255,234,223, 22,188,
-  4,130,145,196, 18,105,247,223, 96, 99,220, 45,151,102,177, 67,129,179, 48,150,226, 37, 33,243,152,163, 25,  5, 67,133,162,190,
-227, 12,239,216,140, 59,146,243,248,230,244, 24,248,254,110, 57,159,205,137,208,137,220,157, 75,244,222,169, 48,136,177,212,247,
-203, 11,  1,125,135,141, 20,119, 27,209,232,163,119,148,113,244,131,148,222,  6,150,238,217, 46, 86, 50,106,194,139, 43, 29,208,
-203,124,  9, 11, 58,125,196,178,235,142,130,  9, 64, 99, 90,157,145,129,128,169,152,177,199,253,  9,128,161, 19,145, 20,202, 57,
-146, 27,242,147,135,135, 95,125,253, 18, 29,231,  7,251, 37,149, 22,  9,126,249,213,211,195,197,252,247,255,248, 79, 89,252,201,
-183, 62,  6, 75, 67,159, 37,196,113, 13,129, 94, 74,  6,166, 94,202,124, 86,128, 97,101, 54, 88, 38, 93,128,194, 34,177, 54, 45,
- 27, 32, 41, 60,168,178, 62,197,194,147, 46,135,148, 49,236,244,206,233, 42, 68,232,142,194,113,236,223,231, 68,147,154, 56, 32,
-139,182, 27,  4, 96, 97, 27,  6,138, 21, 32,181,171,246,226,237,205,208, 15,135, 71,  7,199, 15, 14, 95, 61, 59,115, 16, 64,  4,
-142, 66,182,221,220,  1,  5, 27,202,245,183, 21,204,205,100,218,181,237,243,215, 23,155,174, 95,109,214,191,255,227,223,137,177,
-238, 84,171,186,217,110,182,142, 74, 50,109, 22,  7, 15, 30,191,135,  0,200, 28, 66,163, 82, 85,211,125,145, 10, 88,  8, 40, 86,
- 49, 15,195,116, 58, 31,134,141, 43,133, 56,177,220,159,189,126,246,205,213,165, 57,108,219,109, 63, 12, 65,120,221,118, 67,202,
-154,117, 82, 53, 76,187,139, 10,  0, 19,215, 85,181,221,118, 41,167,194, 74, 83,205, 65, 24,  0, 55, 67,234,115, 58,156,207,213,
-248,110,189,221,111,164, 31,146, 33, 12, 67,222,110,151,  7,243,153,231,182,213, 84,197,166,215,244,118,121, 43,192,  7,211, 57,
-  7,  1,162,170,170, 73,234,162,192,117,  2,194, 88,178,166,243,197,  1,152,170, 42, 17,230,148,  2, 85,235,118, 11,224,192,113,
- 58,169,137,176, 31,134,118,181, 58, 56,122,220,181,119, 65,234,201,116,250,254,183,222,127,242,228,201,241,131, 39,200,184, 94,
-223,191,189, 56,127,254,252,245, 23,207,158,189,188,184,184,190,187, 27,134,244,195, 15,159,252,249,239,253, 94,141,116,183,186,
-147, 88,127,255,179,239,252,228,223,252,  4, 65,159,127,241,243,182,235, 14, 63,122,239,171, 95,127,121,116,122,216,131,254,242,
-139,167, 13,242,233,222, 94, 16,174, 98, 33,111,163,  3,198,200, 68,193,193,134,156,133, 68,132,163, 84,230,214,165,158, 74, 60,
-128,202, 30, 30, 75,112, 86, 42,210,221, 66,140,  9,  5,195,224, 57,198,138,  0,128, 40,196, 88,254, 81,182, 44, 36,  0,160,102,
-204, 92, 14,188, 99,163,  5, 16,208,103,117,227,  0,170, 25,221,  4,  2, 51,155,155,102, 37,  4, 34,204, 96,104,238,  4,117,224,
-193,193, 29,155,170,118,192,156,179,155,197,170, 22,192,193,178,234,144,213,  3, 11,128,169,187,  8,163, 35, 35, 40, 64, 49, 79,
- 16, 11, 83, 49,  2,138, 26, 40, 50,123, 80,132,161,119,115,107,154, 72,200,155,148,104,  7,  1,136, 65, 12,209, 13,250,156,144,
-160, 14, 21,160,113,144, 29, 66,203,119,174,185,210,123, 97,  9, 65,115, 46,113,240, 40,236,  4, 68,200,140,229,248,203,228,224,
-216, 37,133,189,189,227, 15, 63,118,162,233,209,254,182,239, 60, 13,149,132,242,136,231, 42,152,102,102,138,177,241, 34,133,  5,
- 10,129,205,157,133, 98,168,145,137,136, 68,  2,185, 27, 88,202,249,102,189,158,197,176,183, 88, 40,129, 48, 85, 85, 99, 96,238,
- 26, 67,148, 24,135, 52,184,186,  4, 97,  9,102, 90, 80,  5, 33,196,108,234, 73, 41,112, 54,232,219,174,174, 36,214,181,185, 49,
- 99,224, 80,172, 80,224, 86, 70, 82, 37, 89,164,  6,105,232, 34, 83, 12, 81, 36, 12, 89,249,239,254,230,223,149,155,203,168,152,
- 48, 55, 47, 46, 36, 42, 48,229,241,244, 75,165,  4, 84, 18, 47, 69, 41, 50,190,  0,138,102,200, 84,113,  7,186,255,205,240, 32,
-251,  8, 57, 68,128,209, 38,141,194,114,115,119, 23,235, 70,202,216,164,136,149,199,151, 45, 20,120,157,255,102,182,236,102,134,
- 40,  5,248,136,192,224, 90, 52, 78,224, 86,172,176, 99,207,110,215,204, 31,149, 91, 35,210,101, 71,151, 87, 45,119, 81, 87, 21,
-166, 29, 14,186,132, 94,199,187, 23,224, 78, 38, 69, 64,130, 96, 14,  6,158,179, 23,196, 40, 16,113,112, 52,128, 92, 42, 12, 33,
- 78,132,245,215,223,188,152,207,102,211,217, 66, 85, 69, 36,117,253, 23,223, 60,253,206, 71,143,154,217,222,211, 47,254,249,213,
-235,179,217,164, 97, 33, 34,118, 85,150,186, 84, 67, 72,  4,119,248,156,113, 40,  8, 94,138,178, 68,236,  8,110,137,136,199,236,
-100,217,250, 35,192, 24,231, 31,191, 57, 83,123,167, 83,  4,  0,  0, 67, 98, 68,169, 38,211,122, 58, 51, 55, 10, 97, 44, 34, 32,
-131, 25,215,117,217, 68,129, 59, 50,101,213,155,183,183,128,188,152, 53,251,135,123, 95,127,254,179,156, 83, 30,218,178, 92,108,
-183,219,118,179, 74,195,192,210, 68, 78,149,216,100, 50, 91,175, 86,231, 23,111,239,214,155,190,239, 62,251,214, 39,235, 28,154,
-233,193,116,214,104,234,209,114, 61,153, 30, 61,122, 63, 72, 76, 67, 87, 46,145, 55,103,111,246, 15, 79,134,187, 55, 85, 93,117,
-171,107, 98, 86,245,170,153,185,235,221,197, 11,115,208,212,255,226,203, 95,127,125,113,217, 84, 53,184, 95,223, 47,137,  1,129,
- 82,202, 41,107,100,170, 98,133,227, 26,197,  1,161,212, 77,187,161,119,  3, 38,202,170,219,174,175, 66, 96,166,229,106,125,114,
-112, 52,155, 86, 73,253,205,213,125, 19,  4,137,186, 52, 12, 89,217,237,126,185,204, 40,119,109,219,246,105, 94, 77,132,  5, 17,
- 24,189,138,145,128, 85, 19, 19,228, 62,183,219, 21,179, 68, 65, 70,234,251,126,181, 93, 71,230,126,187, 76,106,219,110, 45,113,
- 98, 72,129,104,187,190, 95,223, 95, 87,147, 61,142, 97,187, 93, 70,  9,199,167,199,239,127,248,240,209,163,247, 66, 93,117,219,
-213,253,253,213,171,231,175,159,191,126,243,229,203,215,207,222,156,173, 54,237,209,108,246,147,223,250,193,191,250,244,187,219,
-161,223,164,116,184,191,255,147, 63,249,253,143, 63,253,240,250,226,205,179, 95,253, 42,206,103,241, 96,246,171,159,255,242,238,
-126,121,125,183,252,197,207,190,124,114,120,112,180, 55, 33, 42,149,204,157,224, 30,177,232,109,136,136,153,132, 66,193,252,154,
-231,114,220,226, 29,228,  5,  9, 11,253, 36,231,172, 59, 84,118,193,248, 49,145,170,230,156,153, 48,231, 60,168, 85,204,204,108,
-106, 99,  6,112,247,108,124,247, 73, 14, 33,164, 60, 56, 88,202,137, 72,  0, 32,171,  5, 41, 59, 87,178,172,194, 12, 68,197, 48,
- 19, 89,  2, 99,182,162, 55, 34, 44,122,107, 51,115,235,186, 54, 48,  3,148,103, 42,  0,144,250, 56, 76, 41, 42, 77, 38, 52,181,
-130, 39, 35, 70, 32,108,219,108,169,112, 99,112,200,102,238,  2,196,196, 10, 24,136, 71,214, 58, 88, 25, 40,101, 27,112, 76,206,
-193,152,108, 30,143, 79, 20, 99, 44,172,180,130,180,101, 36,  3, 39, 66, 97,212,108,106,227,136,118,221,246,188,183, 56,253,240,
-195,215,175,207,126,241,249, 47,117,232,  6,135,161,109, 39, 76, 37, 33,  3,  6,196,140, 72, 67, 26,136,184,142, 21, 10,231,148,
- 74,241,189,132, 80, 89, 68, 85, 83, 30,  8,168, 27,172,107,219,147,189, 61,138,  1, 29,153, 48,229, 30,220,202,  3, 54, 21,174,
- 53, 97, 78,  9,192,153, 69, 66, 64,112,115,  3,116, 18, 54, 51, 52, 11,149, 56, 16,  2, 72, 12,106,224,166,170, 94,222,145,  8,
- 32, 18,  3, 65, 55, 40,130, 51, 19, 11,153, 58,130,105,118,254,219,191,250,139,114,235, 39, 34, 40,110, 39, 44,250,164,241, 27,
-222,  9,162, 10, 72,160,244,160,  0, 28,184, 44,251,192, 10,218,144,136,220,  0,242,120,133, 25,161,137,163,103,124,204, 74,150,
-147, 38, 11,231,190, 85,140, 77, 32, 96, 66, 26, 17,  6, 99,223,169,156, 84,137,  0, 73,136,118,211, 69,212,  2,189,113, 99, 70,
-112,163, 93,135,179,240,139,127,211,159, 45, 30, 13, 23,220,181,148, 70,142, 36, 90,121,203,149,166,214, 72, 10,222,169,172,199,
- 79,196, 88,133,  2,164,209,137, 87,102,124,192,132, 72, 94,244,214, 60,210, 48, 16,193,204,247,231,147,179,243,183,203,213,102,
-177,191,215, 76,102,  6,214, 84,225,151, 95,127,211,109,183,191,253,219,191,181, 89,221, 29, 28, 61, 58, 57, 61,190,191,190,110,
-166,115, 68, 50, 51, 34,161, 81, 15, 89,122,218, 12,163, 40,158,222,121,177, 97,100,254,184,103, 29,241, 14,  0,174, 90,190,141,
- 29, 63,109, 12,137,151,  2, 55,114,160,114, 23,113,111,230,123,210, 52,174,234, 90,198,127,228,110,204,  2, 14,150,148,  8,213,
-140,  0,134,110,184, 95,174,171,201,100, 50,173,143,222,123,120,241,242,213,182, 85,228,144, 54,215,201,121,115,249,114,200,192,
- 97,226,158,154,104,211,105, 83,207,246,110, 46,175,222, 92,190, 93,110, 58,176,252,225,123,159,196, 88, 31,157, 60,212,148,182,
-247, 23, 44, 18,235,186,105,154,155,139, 87, 57,219,226,240,232,246,229, 47,110,175, 47,165,158, 69,242,197,193,131,118,115,159,
-213,235,201,140,114,187,217,172,235,217, 65,168,234, 77,187,250,249,151,191,126,121,121, 53,153, 76, 98, 85,119,221,118,211,118,
-204,148, 82,114,176,110,200, 44, 88, 87, 77,153,166, 33,161,186,243, 56,136, 76,229,173,172, 94,134,242,142, 64,109,223,214, 49,
- 62, 60, 62,185, 90,222,247,195, 80,  7,100, 32,116,157,206,230, 30,235,117, 55,228,182,159, 68, 86,237,212, 97,179,109,  1, 16,
- 29,134, 60, 48,  7, 51, 95, 45, 47,103,243,253, 89,211,112, 96, 52,239,115,150, 88,245,125,127,115,115,141,104, 36,141, 84,149,
-112, 68,235, 84,109,182,127, 84, 85, 53, 73,156,207, 22,143,223,123,252,224,225,241,124,190, 24,210,176,186,191,123,115,246,230,
-217,179,151, 95,191,124,241,213,139,151,175,222, 94,244,195,240,221,  7,199,127,248,217, 15, 30, 30,157,172,214,183,125,238,255,
-228,143,254,240,119,126,239,183,173,239,159,125,241,139,126,232,223, 92, 94,118,195,246,243,207,127,169,174,151,175,222,  6,243,
-227,189, 89,211,196,210,207,200,238,129,199,250, 76, 89, 67,141, 45,118,226,146, 81, 99,161,162, 51, 67, 26,  9,168,238,227,156,
- 56,171, 21,155, 88, 54, 67,  0, 70, 76,217, 68,  8,  1,133,169, 79, 57,229, 36,194, 99, 52, 15,137,  9,133,201,220,  9,108,188,
- 89, 50,185, 90, 63,100, 65, 43,169,110, 71, 80,240, 74,216, 71,140,107, 25,242, 19, 17, 79,235,134,168,100, 21,160,220, 77, 75,
- 90,180,124,196, 66,  8, 69, 93, 29, 99, 32, 14,128,165, 40, 68, 14, 72,142,129, 17,198,171, 54,150,165,145, 59,164,108, 34,236,
-160,105,116,191,130,  0, 50, 11,  2,150,180,123,249, 34, 89,100,220,157,130,149,250,163,170,250,144,251, 33,187,153, 89,102, 47,
- 39, 81,218,177, 16, 32, 48,227, 46, 45,170,102, 44,140,174,125,202,105, 50,121,244,254,251, 63,253,233,207,255,241,167,159,111,
-218,237,237,122,141,142,219,161, 61,153, 76, 41,136,132,192,210, 32, 26, 22,141, 38,128,153, 26,128,169, 18, 51,193,184,137,244,
- 17, 65,195, 14,112,185, 92, 78, 34, 77,103,179, 18, 25, 47,179, 70,115,207, 89,153, 41,112, 96,102, 43,207,207, 49, 42, 81, 78,
-183, 96,166,132, 32, 49,142, 51,132,194, 60, 40,210,214,242,100, 34, 34,192, 32, 92,164,165, 44, 72, 28,213, 64, 45,187, 25, 34,
-171, 41,255,251,191,254,183, 35,131, 19,  1, 92,203, 73,121,231,158, 53, 24, 97,133, 64, 59, 93, 86, 41,185, 50,142, 43, 73,  4,
- 26,  3,167, 59,242,139,163,185, 25,145,  3,252,102,156, 15,217, 74,204, 31,  8,136,208,115,191,237,243,108, 49,113,117, 32, 67,
-167,221, 49,116,172, 30, 16,130, 32,171,155,131,141,  1, 24, 36, 66,231,209, 27, 98,165,149,244, 14, 30, 89,106, 84,227, 94,165,
-252, 87, 30,215, 61,229,246,224, 72,110, 99, 84,114,  7, 87,240,119,192, 25, 66, 32,122,215,168, 69,183, 49,145, 96,232, 69, 37,
-136,  8,133, 19, 91, 82, 70, 37,203,233, 14, 34,113, 58,169,126,249,229,243,166,106, 22,139, 57, 35,106, 78, 85,160,255,251,167,
-255,252,157, 15,158, 12, 67,191,186,191,155,237,237,245,221, 22,176,200, 61,136, 88, 28,129,144, 29,128,136, 17, 75,124,200,223,
- 37,147, 67,  8,190,251,109,165, 81,217,190,219,107,104, 42, 91, 96, 98, 26,239,220,184, 83,211,240, 88,103,115,208, 73,179,143,
-  8, 33, 10, 32,  2,104,145,113,199,197, 47, 76,  0,  0, 32,  0, 73, 68, 65, 84,195,248, 66, 40,160, 78, 34,166,110,219,157,191,
-122,189,190, 95,205,102,179,227,211,163,103, 95, 61,237,146, 78,234,122,179,188,202,198, 64,229,202, 41, 81,112, 90,195,222,209,
-233,100,186,215,110,150,111,206,207,151,171, 21, 75,252,173, 31,255,164,170,136, 73, 55,219, 13, 87,147, 88, 77,167,251, 39,251,
-135, 15,150,119,183, 55,183,215,148,182,179,131, 19,237, 59, 53,219, 59, 60,105, 55,203,205,166, 77,125, 91,133,234,249, 23,255,
-153,171,249, 98,113,220,109,238,239, 87,203,175,207,223,100,131,182,221,204, 39,115,100,124,123,117,221,118,189, 35, 16,146,  1,
- 12,195, 16, 67,140, 18, 75,134, 23, 25,205,188,142, 49, 74,220,246,189,219, 88,196, 31, 82,142, 44, 76,156, 52,149,157,206,221,
-182,237,134, 97,209, 76,246,246,231,153, 48,245,  3,154,  7,118,142, 77,219, 13,128, 24, 34,103,215, 62,229,108,144, 85, 75,110,
-162,106, 26,  4, 77,253,160, 57,  3,147,165, 52,168,239,237,159, 90,110,251,118, 53, 91, 28, 48, 34, 19, 79,166,243,161,223,110,
- 55,203,147,147,147,135,143,143, 22,  7,  7, 36, 52,116,253,106,181, 60,187, 56,123,245,250,213,211, 87,103, 79, 95,189,121,123,
-115, 51,171, 39,127,252,217, 15,190,245,232,  9,177,220, 93,159,125,255,  7,159,253,215,127,252,147,211,  7,  7,103, 95,127,211,
-110,239, 19,249,245,205,237,254,201,225,170,237,159,125,243,  2,187,116,180, 55,221,155,213, 33,160,144,164,108, 36, 20, 72,138,
-212,162,216,208, 10, 94, 27,129,193, 93,221,153,216,204,204, 29,193,  8,139, 11,201,  3,133, 33,231,119,147, 83, 51, 35, 36, 34,
-206, 57,215,117, 40,115,155, 97, 80, 70, 12,145, 45,229,162,244,  9,204, 62,218, 24, 80, 77,199, 90,148, 91,145, 27,147,  8,131,
- 24, 96, 12, 66, 88, 74, 36,132, 36,136,164,230,204,197,116,138,217,181, 92,248,153, 48, 23,233, 23,151,135, 17,187,155,112, 25,
- 50, 11, 19,  0,161, 57, 48, 35, 11, 23,252,139,169,  2, 16, 49,169,101,115, 51,164, 32,140,128,142, 76,129,  3, 34,  2,  7, 22,
- 20,  6,166, 33, 27,168,198, 58, 20,149, 31, 16,151,192, 68,249,250, 33, 27, 54,149,236,239, 81,172, 86, 41,117,195, 32,133,167,
-130,  5,125, 67, 14,224,166,169,172,223,  0,208,173,235,251,165,218,209,227,199,103,111, 46,190,126,254,188,109,183,136, 56,159,
- 78,159, 60,120,176, 89,175, 30, 76, 26,  9, 53,135, 24,234,198, 77,205,141,193,179,101, 64,175, 66,  3, 80,208, 91,192,132,229,
- 83, 35,196,128,112,115,187,178,212, 29,238,239,129,200,238,172,  6, 14,142,132,194, 50, 10,190, 67, 69,140,132, 98,106, 65, 56,
-134,224,238,170, 90,226,207,150, 45,134, 64,196,234,198,  8, 33,134,241,178,174, 30,138,239, 19,220,220,152, 80, 88, 10, 79,145,
-169,220,227,176, 79,  3,255,221,223,252, 37,140,205, 93, 26,145, 38, 59, 17,202,  8, 34, 52,103, 14,227, 81, 24,119, 17, 61,220,
-157,140,145, 70,155, 94, 57,180, 23,150,123,161, 32,  2,185, 41, 16, 65,185,106,  1, 18,151,165,144, 85, 85,120,251,246,246,225,
-195,  7,102, 61,161, 56,184,155, 34,122,129, 19, 20, 70,174,249,136,198,216,189,210, 71, 47,221,142,216,131, 72, 50,126,197,165,
- 39,108, 90,152, 57,  6,133,251,232, 64, 96,  6, 89,177,200,174, 93,109, 20, 66,  1,140,175,167,157, 68,157,208,144,  5,118, 47,
-138, 17, 86,  7, 56,154,196,203,189,115,188, 47,  8,241,  8,241, 45, 89,170,253, 69,115,119,123,123,117,187,156,205,231,147,201,
-196,  0, 68,112,189, 92,159, 95, 94,255,183,127,246,223, 47, 22,245,249,217,249,124,239, 96,187, 90, 86, 85, 61,170, 85, 88,118,
-120, 63, 65,230,130, 22,  0,211,221, 76,109, 55, 90, 42,129, 35, 47,223,206,187,  6, 22,151,125, 54,208,  8, 21, 37, 34, 98, 46,
-119,175,210, 47,159,236, 29,196, 88, 59,112,121, 67,  0,179,229, 97,204, 18,140, 71, 24, 68,164,213,221,242,252,205, 25, 56,238,
-237, 79, 15,142, 31,188,252,250,153,171, 74, 12, 73,217,109,200, 41, 33, 73, 53,157,138,200, 98,198,251, 71, 15,145, 56,245,253,
-203,151,175,174,238,238,231,243,253,239,126,244,109, 32, 72, 67,110, 22,135,100,158,134,237,226,224,144, 72, 54,235,229,230,246,
-250,230,250,162,158,204,174, 94,127,209,109, 87, 67,183, 78,155,101,156,236,121,185, 75, 54,115,244,108,214,181,119,111,127,241,
-213, 87,255,241,167,159,207,167, 83, 98, 90,109, 86,125, 26,110,238,151,  5,233, 92,130, 66, 69,103, 60,169,235,192,226, 35,216,
-159, 28,188,156,165,218,126,200,234, 72, 92,196, 41, 85,172, 20,124,219,181,136,120,176, 88, 76,154,201, 98,222,172,187, 36,  6,
-185,221, 58, 34, 32,101,205,106, 46, 34, 85,172, 42, 17, 68,234,251,158,133,205,116,218, 52,125,187,149,170,169, 10,154,124, 72,
- 64, 20, 24, 35,113,219,183,205,100, 42, 68, 34,149,153,  3, 41, 32, 60,254,240,131,247,223,123, 50, 91,204,193,181,111,187,213,
-242,254,242,242,237,171,243,203, 47, 95,188,122,126,126,190,221,110,191,251,222,251,127,246,187,127, 24,172,223,118,221,180,230,
- 63,252,147, 63,250,225,143,127,123,232, 54,111,190,249,245,228, 96,177, 66,248,197,175,190,  0,160,231,175,206,222, 60,125,125,
-188,152,236, 47,102, 84, 76,200, 14,170, 26, 67, 96,228,178,101, 41,251,134, 24,100,132, 61, 33,148,252,137,153, 49, 11,142, 53,
- 69, 39, 96, 66,206,154,136,208, 70,105, 54,140,212, 95,  9, 85, 37,217,220, 82,  6,196,186,138,102,110,250, 78,134, 67,142, 92,
-  8,220,194, 40, 34, 41, 37, 36,182,  2, 88,103, 86, 85,119, 15, 68,166,166,154, 10,251,186,196, 99, 98, 93, 87, 18,  1,193, 65,
-131, 68,115, 69, 34, 53,  8, 34, 33, 72, 20, 33,100,115,  8,204,229, 33, 80, 38, 11,136, 68,238,196,130,200, 64,152,179,149, 64,
-114,161,165,238,208,169, 36, 18,202,169, 62, 27,136, 68, 98, 48,115, 75, 78, 34,196,156,205,136, 88, 36,128, 89,249,128, 32, 82,
- 78, 42,  7,179,230,193,195,151, 23,151,157,170,212,245, 42,229,205,144,153,176, 22, 14,204,  6,102,  6,230,185,180,190, 37,178,
- 14,105,173,105,241,240,244,118,217,254,227, 79,127,182, 92,111, 75,152, 45,198, 96, 14,236,237,147,131, 35, 96, 38, 68, 22,202,
- 57,107,206,150,141,152,  0, 11, 21,197,133, 24, 68, 10,112,133, 28, 84,109,185,222,220,222,223,159,238,207,170,166, 81, 53,220,
-217, 49,  2,  5, 70, 84,  7, 66, 39,150, 66, 81, 44, 70, 13,162, 48,228, 84, 76, 44,229,239,184,174,130,170, 17,130, 16, 19,203,
-120,209, 66, 38,  2,  3, 74, 67, 22, 44,  1,254,210, 82,245, 16,248, 29, 56, 32,165,196,127,251,215,255,142,198,  7,115,113,217,
-141, 18,163, 50,193, 86,203, 84,110, 33,227,131,145, 60, 59,162,150, 50, 49, 73,145,107,192,187,208, 98, 73, 53,150, 33,199, 72,
- 91, 30,179,150, 35,231,177,200, 54,  2,243,197,229,245,225,201,177,148,223, 92,244,157, 57,116, 28,195,149,120,209, 59,113, 42,
- 34,113,241,  8,150,211, 72, 54, 42, 43,249,113,164,225,102,201, 13,118, 35,176,221,168,103,167, 28,249, 23,226, 18, 32,  2,121,
- 23,156, 28,169, 46, 72,129,  0, 25, 32,188,163,199,143,177,202, 29, 91, 14,  1, 13,138,173,155,161,160,233,137,202, 23, 73, 28,
- 31, 62, 60,121,254,252, 53, 16, 77,166,179,102, 50, 25,134, 20,132,190,252,250,217,233,225,126, 30,250,171,235,183,119,119,183,
- 68, 30,171,186, 60,224,202,142, 98,231, 27, 68, 64,176, 33,149, 83,120,169, 44,143,160, 55,215, 66,254, 43, 99, 36, 87, 43,186,
- 75, 26, 65,209,255,191,183,222,120,255, 33, 66,  8,243,227,135,229,231, 55, 94, 67, 10,148,172,236, 78,204, 41,198,180,221, 74,
- 29,215,171,237,229,249,165, 14,219,197,254,193,209,233,131,151, 79, 95,164,172,105, 72,125,219,173,111,222,  0, 79,117,243,182,
-154, 29,245,235,187,246,254,245,222, 98, 65,  0, 47, 94, 60,255,217,175,191,216,172,183, 31,125,252,221, 15,222,255,176,219, 46,
- 93, 83,179, 56, 78,195, 22, 89, 42,219,174,111,222,128, 52,104, 90, 87,245,245,229,197,124,255, 84,152, 86,247, 43, 71,105,215,
-171,102,182, 87,  9,197,201, 52,167, 14,101,210,117,195, 47,190,250,213,197,106,243,244,197,203,189,197,220, 29,210,144,238, 86,
-235,145,183,231,227,164, 42,187,166,148, 38,245, 52,136,248,110, 83,239,  0,129,163, 35,180,125,251,174, 66, 55,228, 97, 82,213,
- 72,152,205,126,248,233, 71, 76,248,249, 87,207,183, 93, 55,175, 66,172,107, 51,  3,146,178,191,  6,  5, 98,110, 87,119,186, 43,
-226,215, 49, 70,166,182,221,198,216,  8, 67,144,186, 14,146, 77, 65,147,123,118,207,194,129, 89, 36, 72, 96,108,166,211,111,125,
-250,201,163, 71, 79, 66,140, 67, 26,218,174,189,191,187,251,242,217,179, 95, 61,253,230,155,151,175,223, 92,188, 93,212,211, 63,
-248,236, 71,191,243,157, 79, 38,179,197,171,103, 95,124,250,201,183,254,135, 63,255,243,253,253,253,231,191,252,231,118,187, 92,
-117,237, 23, 95,126,245,242,155,103,147, 73,243,236,215, 79,107,131,147,253,121, 93, 87,174, 70,132, 89,157,152,133, 67,136, 12,
-192,229,227, 23,162,  8, 48,129,140,177,246, 50,145,196,146,192, 51,  0,160, 34,102, 24, 13, 56,  0,136,234,202, 28, 25, 17,137,
-170, 88,  1,143, 79,124, 22,137, 49,142,127,172, 48, 88,  9,171, 80, 96, 78,158,139,193, 46,165,172,166,165,166,158,135,212,247,
- 67, 37,  2,  8, 99,149,164, 48, 55,152,128,104, 58,105, 88,202, 53, 31, 10,184,196,198, 79, 44, 87, 49,  6,150,108,134,204,187,
-157,  0,102,117, 34, 38, 38,112, 36, 17, 22, 81,  3, 22, 14,204,229, 83, 38,194,  8,  2, 88,144,225, 84,246,135, 76,196, 66,230,
-154,213,  9,203,189,151,144,208,204, 75, 40, 82,221,  0,129,  3,187,186,154,206,159, 60,185,223,180, 95,127,249, 84,115, 98,150,
-219,251,165, 17, 34,139, 19, 72,  9,203,144,148, 19, 15,160,229,148,135,156,113, 58, 27, 12,159, 63,127,121,187, 90,169,101, 48,
-127,242,240,228,241,163,199,151,215,111, 63, 60,220,219,159,237, 67, 73, 97, 26,228, 97,240,157,156, 90, 40, 20, 73, 81,105,147,
- 49,242, 48,162,228,253,250,110,133,174,139,253, 57, 51,131,123,178, 92, 30,196,163, 68,176,212, 17,188, 76, 30, 32,196,160,217,
-218,190, 19,198, 24,162,  2, 86,204, 14,144, 76,105,100,107,210,238,105,198,224,218, 15, 10,150,130,112,118,207,217,145,128,145,
-204, 60, 59,148, 62, 48, 34,230,172,252,119,127,253, 23,239, 48,181,229, 83,130,229, 39,189,227, 90,189, 83,102,240, 78, 83, 14,
-  4, 99,148, 22,  1,139, 72,174, 80,120,202, 16,185, 44,115,124,151,185, 46, 83,136,241,143,  7, 68, 48,117,102, 89,223,223,106,
-152, 44, 38,149,155, 35,128,144, 56,148, 28,149,191, 75,221,140, 70,234, 82, 62,246,119, 39,239,119,231,145,200, 99,100,189, 76,
-240,129,138,241, 17, 11,212,134,184, 68,125, 74, 27, 23,129,  9,153, 73,118,128,117,112,119, 55,203,133,129, 74,229,116, 11,101,
-158,232,239,156, 37,190,243,126, 56,130,  1,238,214,  5,227, 35,150, 16,220, 76,155,166, 18,242, 23, 47, 94, 47,246,246, 98, 85,
- 85, 85,221,118,237,102,189,185,190,190,250,193,119, 63,253,228, 59,223,185, 58,123,241,254,  7, 31, 93, 93,188,142,161, 25, 61,
- 57, 37,199, 35, 76, 64,174, 14, 52,182,195, 70,  6, 82,201,134, 90,  1,246,152,143,212, 72, 51, 24,249, 27,  5, 68, 51,178, 85,
-119, 28, 30, 68,100, 38, 51, 88, 28, 28,149,  1, 44,184,  1,209,216, 35,  6,114,  3, 20,113,207,224, 32, 44,119, 87,119,119, 55,
-119, 89,243,193,225,241,193,201,226,236,213, 89,215, 14,155,229,101,151, 90,164, 41, 87, 65, 98,147,123,219,172, 46,254,195,127,
-250,143,255,240, 95,254,233,243,159,255,244,191,252,236,243,203,187,251,164,233, 71,223,251,221,131,163,135, 92, 53, 20, 23,195,
-230, 54,181,247,113, 54,223, 59,121,184, 89,173, 40, 86,221,102,189,188,127,219, 76, 23,195,230,126,187,188, 93, 28, 62, 90,222,
-189, 69,150,186,158,222, 95,190,238,218,141,166, 97,177,127,188,222,220,253,243, 55, 79, 89,228,236,250,250,110,185,100,166, 24,
-  4,157,134,212,219,  8,141, 40,215, 24,202, 57,101,213,166,174,130,132,221, 55, 12,230,214,132,255,143,169, 55,251,177, 45,185,
-206,252,214, 16, 17,123,159, 49,231,155,119,190, 85,117,107, 96,145, 44,138, 67, 73,108,146, 18,  7, 73,109, 11, 26, 72,169,219,
-109, 73,221,104,184,209, 15,134, 97,192,126,243,191,100,216, 64,195,176, 13,195, 48,108,  9, 80,183,221,118,183, 68, 81,226, 88,
-243,157,115, 30, 78,230, 25,247,222, 17,107, 45, 63, 68,156, 44,189, 93,178, 88,200,203,147,251,196, 94,177,190,239,251,125, 94,
- 64,155,174,203,231,156,168, 38,179,135,251,123,119,183,183,167,203,213,217,197,117,191, 55,154,204,175, 85, 99,191,234,101,230,
-129, 74,146,148,174,174, 47,178,236,148,136, 45,165,126,175,234, 87, 53,  0,132,224,205, 52, 38,109,154,102, 54,159, 48,234,173,
-205,173,221,221,189,157,173, 61,118,161,141, 93,168,195,237,251, 15, 31, 60,126,253,246,157,187,200, 20,155,213,116,122,245,242,
-224,229, 47, 63,252,244,233,171, 87,167,231,215,211,233,244,209,254,173,255,228,219,223,189,127,123,135,125,208,216,126,231,251,
-223,125,255, 55,190, 57,187, 56,189, 60, 59, 58,191, 56, 89,116,177, 30, 15,125,  8, 47, 62,125,222,206, 86, 91,227,225,112, 80,
- 97, 89,252,113, 50,115,236, 56,167, 65,  0, 50,205, 42,132, 42,243, 86,147,  9, 17, 99,142,171,130,186,181,171,192,196, 20, 36,
-137, 57,199,153,194,  4,102,142,124,206, 62, 49,123, 85,209, 36,196,236,  8, 85, 85, 68, 85,129,185, 88,205,204, 20,137,193,160,
- 14,190,237,162, 33,120, 42,242, 90, 76, 41,169,152, 89,238, 84,206, 28,115,114, 92, 87,158,208,213,222,173,145,168,104,144,227,
-232,232,216,  1,160,115,164,146, 61,151,132,128,236,179, 11, 30,156,203,239,  6,246,161, 38,231, 16,160,170,  2, 50,171,105, 76,
-234, 28,154,129,137,  9, 24, 57,151, 68,136,153, 61,145,101,209,  8, 67, 85,  1,114, 65, 56,  1,128,168,100,109,137,139, 63,159,
- 20, 23,210,180,200,207,159,189,154, 76,231,147,171,235,243,203,137,130,142,  7,195,235,197,124,213, 70,116, 28,  8, 29,168,247,
- 62,207,175,177,233, 58,230, 48,222,252,249,  7,159, 30,158,158,128,161,169, 18,113,221,235, 93,205, 22, 53,200, 59,247,239,147,
-115,  0,172, 42, 93,138,148,133, 17, 53,239,188,161,137,149, 74, 44, 51,200,104,107,239,221,124, 21,231,243,249,173,237,141,170,
-174,146, 90,236,186,224, 42, 34, 66,162, 12,129,202,198,246,162,246,  1, 74, 18,  3,169,234, 32,  6,170,209, 57,159,151, 20, 25,
-197,115,131,141,101,164,164, 81, 69,156, 99,118,216,117,130,102,204, 84,101,124,  2,  0,170, 33,145, 42,152,196, 40,137,255,244,
- 71,127, 88, 42,233,138,160,154,199,237,140,113,207, 14, 60,203,139,247, 53,234,203, 40,135,126,138,173, 97, 61,185,175,231,204,
-188,174,206,219, 98,202, 18,120,  9, 60,173,211,173,165, 14, 80, 23,173,108,109, 12, 37, 38, 43, 43,110, 83, 48,212,210, 21, 72,
-228,214,205,128,134,120, 51,178,150,217, 58,123, 94, 11, 26, 31,114,247,  8,150,165,  5, 17, 21, 95,189,  3,200, 77,193,133,131,
-137,159,155, 39,  1, 13, 21, 81,212,242,130,  4, 50,244,  6,215, 65,214,245,250, 41,123, 54,160,168, 72,153, 91, 99, 55,152,245,
-140,118, 22,181,221,237,205,167,207, 94, 69,177,254,112, 84, 87,125,231,168,109,154,159,126,248,105,205,221,254,254,206, 98, 54,
-255,248,195, 95,157, 31,191, 10,140,190,238,177,243,236,  3,177, 67,200, 45, 34,172,146, 84,  4,137, 75,240, 67,109,109, 57, 45,
-237, 58, 57, 65,199,107, 33,152,156, 47,191, 44, 94, 39,  6,212, 56, 56, 19,243,245,168,191,177,153,177,154, 26, 99,201, 70,100,
-174, 89,222, 43,117, 29, 34,115,229,231,215,179,179,195,195,148,236,238,163,135,163,205,209,171,167,175,186,110,217,174,218,212,
-169,167,  4,  0,  0,  1,152,122,220, 45,151,179,207, 94, 30,126,248,236,229,249,228, 26,193,  0,221, 55,190,242, 53,239, 43,212,
- 68, 68,177,185,  6,145,219, 15,223,214,152,212, 85, 34,214, 76, 39,189,193,184, 10,117,179, 90,176, 27,174,218,149, 25,110,108,
-236,116, 77,211,182,203,225,104,179,238,111,118,205,236,147, 79, 62,252,229,179,231,249,249,152, 92, 93,119, 49,153,218,206,198,
- 24,145,150,171,  6,214,215,152,252, 91, 78, 41,169,105,175,174,  3, 59, 85,181,242,234,197, 94,221,219,232, 15,135,189,161,129,
-142,251,245,107,251,123, 41,197,103, 71, 39,128,174,235,154,141,209,104,119,107,235,236,106, 42,169,171,124,157,105,209,170,138,
-190,114,206,123,199,  8,224,188,223, 26,141,103,243,105,138,157,239, 15,219,216, 69, 81,116,158,  9, 71,181, 75, 93, 28,141,199,
-203,118,117,189,152,111,237,237, 60,122,243,173,251,175,189,190,177,189,139,200,211,235,203,195,195,195,207,158, 63,251,232,211,
-231,  7,103,167,231,151, 83,231,232,155,191,246,213,175,127,225,109, 54,152,207,231,247,238,237,127,227, 27, 95,221, 24,143,142,
-159,127,150, 40,117,  8,191,248,228,179,189,205,141,195,243,139, 79,126,249,241,198,160,191, 53,234, 83,161,129,228,203, 98,  6,
-157,251, 12,228,102,202,197,108,200,142,204,178, 26, 68,134,150,123,125, 45,231,119,214,119,238,164,234,152, 45,143,216,217,211,
-134, 64,128,206,187, 36, 41,207, 68,140,148, 84, 76, 85, 83, 44,223, 40, 67, 41,166, 44, 66, 68,  5,160,220, 58,131, 25,231, 74,
-222,  5,206,200, 11,202,205,116,196,142,136,201, 57, 70, 36,209,168,128,149,119, 42,121, 61,146,145, 37,204,132, 49,199,115, 28,
-  1,  0, 51,  3,100,249,151,137,152, 43, 95,238,174,148, 61,135, 22, 37, 86,235, 43,133,138, 58, 31,216,145,103,102,239, 16, 73,
-147,196,100, 89,196,205, 59, 37, 98, 86, 80, 19,201, 58,115,169, 53, 67, 50, 85, 83,153, 38, 89,118, 58,157,207,155, 85,211,165,
- 14, 81, 99, 23,163, 72, 74,201,133,208,136, 38,226,202,129,  3, 67,132,174,137,139,148,252,198,232, 98,114,125,116,122,214,117,
-157, 35, 66,132,183,222,120,216, 38,157, 93, 95,125,229,209,221, 97,221, 47, 36,154,210, 83,103,142,125,130,114,196, 85,161,103,
-  0, 42,146, 36,  2,152, 39, 15,166,199, 23,147,205,158, 31,142,134,170,128,104,142,125, 89, 24, 48,  6,226, 76,205,117, 76,128,
-220,165,148, 99, 77,204,222,  0,152, 28, 33,139,196, 44,149,147,154,102, 39, 18,145,129,117,169,147,100, 68,168,102, 10,200,  8,
- 68,152,161,  5, 42,134,136,150, 50, 90,  1, 29,115,140,202,127,246,163, 63, 44, 13,117,  6,136,180, 70, 13,220,212,244, 25, 34,
-115,185, 94, 97,129,245,174,119, 41, 89, 40,200,128,150,242,156,173, 37, 12, 85, 64, 46,173,132, 57, 59,191,238, 87, 53, 34, 48,
- 68,239,252,233,233,209,206,173, 59,146,186,204,  3, 64,200,190, 32,204,203,250, 60,122,150,176,149,149, 12, 85,126, 67, 20,163,
- 75,166,246,174,215,180,140,  4,142,110,140,246, 88,108,129,134,146,241,110,192,197, 74, 77,159,215,196, 26,163, 65, 38, 80, 32,
- 50, 64, 42, 48, 28, 67, 36,203,183, 24, 64, 34,244,148, 77,186,229,103,223,124,167,104,253, 90, 37, 71,126, 52,170, 62,121,246,
-114,208,239, 87,117,221,239,247,235, 58, 44,166,211, 15,159,159,190,125,123,188,119,247,222,203,167, 79,190,241,205,127,244,226,
-179,143,123,253,126,127,180,157,219,169,204,178,233, 84,178, 11,146,202,235, 15, 11,180, 30,203,175,120, 45, 55,184,178,139, 89,
-123,224,136,125,233,154, 93,247, 30, 32, 81,232,143,171, 94,207,180,224, 76,193,  0,156, 67,100,141,137, 72,129, 28, 57,159, 59,
-160,175, 46,167,103, 39,167, 10,112,239,222,237,126, 21, 62,253,240,227,  4, 56,191, 60, 97,239,129, 61, 98,109,237, 60, 38, 29,
-247,181, 23,120,115, 52,232,247,122, 73, 82, 23,211,112, 56,252,250, 23,191, 38,113, 21,170,254, 96, 99,163,237,162,247,117,175,
-223,107,187,180,156, 28,167,118, 89, 15,119,134, 27, 91,166,182, 90,204,134,227,205,170, 55, 34,166,174, 89,228, 12,180,196,184,
-177,185,141, 93,252,241, 47,127,230,234,129,129,121,162, 69,179, 66, 38,199,212,180,109, 94,171,173, 37, 38, 92,191,188,177,137,
- 73, 84,  6, 85,133,192,154, 61,147,101,182,192,189,173,173,175,190,253,218,157,157, 29,  3,119,126,189,152, 45,150,200,214, 52,
-157,247,110,119,103, 43,248,234,233,241,177,103,232,215,189,202,249, 36,186, 22,184, 32,182,173,170,  5,143,222,133,170,215,  7,
-213, 94, 85, 17, 82,155, 98, 21,124,191,223, 31, 12,198,  4,208, 27,110, 62,120,231,157, 55,191,244,222,254,189,215, 67, 21,154,
-249,245,193,171,103,207, 62,123,250,228,229,171,151, 71, 39,  7,103,103,231, 87,215, 95,121,252,250,251,239,190,123,255,238,107,
- 81,210,214,206,206, 55,191,245,235,175, 61,186,127, 61, 57,107,154,217, 39,159,124,244,226,244,116, 62,157, 93, 78,174,143, 94,
- 29, 45, 39,179,157,209,112, 88,215, 55,222, 93, 34, 10,222, 37, 77,156,193,179,200, 88, 54, 84,107,110,117,233,207,225,181, 50,
-134,204,222, 51,235,122, 39, 73,228, 20,208,179, 47,137, 15, 36, 68, 82,149, 54,118,193,249,108,146, 17,137, 18, 59, 38, 16,133,
-224,  3, 50, 90, 30, 95, 40,103,103, 92,105, 66,101,  2, 68,102,242, 76, 92,204,  8,204, 46,228, 94,132,138, 93, 76,194,232,128,
-144,115, 43,142,170,130, 49, 51, 98,110,197, 96, 36,172,214,158, 22, 38,151,127, 83,196,236, 28, 35, 81,169,137,203,143,122, 82,
- 67, 32, 32,145,132,  0, 57,205,  0,104, 92,210,161,104, 42,128,192,193,103, 19,142,  9,146, 39, 48,131,148,208,231,141,129,187,
-209,226,  8, 41,153,  1, 98,135, 41,132,122,190,108, 22,171, 85, 82, 80,181,220,188,218,175,195,100,186,  0,128,  6, 81,201,192,
-120,217,  9,142, 71,211,101,243,243, 15, 62,158, 47, 22, 25,173,222,239,213,222,135,243,201,213,151,239,223,221,223,220,138,170,
-160, 72, 76, 42,160,166, 61, 23,216,249, 76,177,245,206, 35,115, 62, 91, 67, 85, 49, 51,170, 77,102,203,118, 53,223,218,222,240,
-189, 26,217, 35,113,215,117,206, 17,135,  0, 70,106,106, 42,142,208,  8,219,166,243,140,136, 44, 26, 93, 30,251, 50, 33, 17, 13,
-153, 68,196,214,125,212,162,154, 67,203,204, 78,147, 16, 97,  8,228, 66, 21, 69, 40, 59,199, 25, 21,208, 36,121,231,204, 12,243,
- 46,238,207,255,228, 71, 96,160, 32,165,200, 54, 79,182, 72,  0,192,174,108,191,168,240, 24,  0,128,202,122,187,228,101, 11,228,
- 29,203, 42, 60, 71,128,141,224,230,159,222, 48, 13, 21,145,137, 75,119,135, 25,212, 85,117,126,114,234,251, 27,126, 29,145, 42,
-131, 26, 25,185, 27,141, 49, 71,103,179,129, 68, 11,  3,  6, 74,176,215, 44, 99, 35, 53,  7, 74, 11,238, 38,163, 91,202, 95,201,
- 76,  1,137, 17,  5,184,172,186,217, 21,202, 78, 94,200, 19,123, 32,134, 66,154, 51,204,171,223,108,154, 41, 34,167, 34,152, 65,
- 78,237,  2, 49, 27,144, 34, 16, 16,231, 16, 22, 33,  0, 27,232,246,206,206,242,250,250,226,122, 62, 30, 13,201,133, 58,244, 24,
-245,195,207, 62, 67,115,  3, 94,190,124,241,106,255,193, 27,154, 58,141, 82, 15,135,196,206,135, 42,171,200, 25,129, 74,204, 89,
- 53, 45,141,103, 25,250,147, 93,237,133,136,161,107, 36,112,185,224,100,241,245,134,172,192,236,204,180, 63,218,169,122,125,160,
- 92, 69, 70,150, 18,128,165,166,201,175,  8, 83,115,217,184,214,181,147,201,252,228,213, 11,235,150,175,191,243, 14,123,247,252,
-201,139,235,211,  3,209,174,238,111,197,100,177,155, 85, 85,237, 29,250, 16, 25,157,119, 46,166,238,252,106, 10,128,183,239,220,
-121,247,241,187, 10,145,156, 71,224,118, 62, 55,196,224, 56, 25, 46,103, 87, 93, 27,  1,124,187,188, 88, 45,103,139,217,213, 96,
-180, 41,113,185,154, 28, 57,  4, 96, 95, 85,149, 11, 30, 36, 61,249,236,131, 31,127,244,113,236,186,121,211,204,166, 83,  1, 11,
-176,126,  6,208,242,155, 45,198,  8,107,135, 93, 78, 47,116,109,151,204,250,253, 62,234, 90,212, 55,243,204,119,246,198,151,211,
-249,197,245,162,170,170,173,205,209,254,214, 78,219,118,215,179,105, 47,212,103,147, 11, 48,245, 92,157, 92, 93,143, 67, 80,144,
-202,123,  2, 76,210,121,230,182, 93, 25, 81,191,234, 85,193, 87, 85,127,181,184,114,190,118,228,137, 45, 37,107,147,116, 41,237,
- 61,120,244,230, 87,190,126,251,225, 27,195,141, 45,105,227,114,118,249,228,201,147, 23,175, 14, 15, 78, 79,159, 31, 28, 30,157,
- 93,116, 93,247,107,143,223,122,124,255,158, 26, 59,166,119,223,120,248,245,175,191, 71,218, 93, 28, 61,127,249,244,137, 16,  8,
-232,214,230,240, 39, 63,254,153,182,114,107, 52,220, 24, 13, 60,121,200,161,142,210,245, 75, 73,173,114, 21, 33,106,238,226,201,
-206, 63,242, 57, 41,152,123,148, 68,133,153, 21, 17, 84,193, 52,105,110,246,241,106,150, 84,234, 16,136, 25,193,114,102, 71, 84,
- 77,181, 87,247,  8,172,137, 89, 51, 67, 34, 74, 38,136,236, 61,  3, 96, 29, 42, 17, 81, 85,199,156, 97, 91,236, 24, 50, 38,  9,
-161, 72,150,128,204,148, 52,121,199,142, 93, 20,245,142,242, 77, 57,127, 71, 99, 18, 52,242,129,131, 39,  1, 76,146, 16, 13,201,
-  1,176,169,  8, 42,152, 18,187, 42,120, 66, 80,133,220,149,  9,142,186, 54, 17,147,115, 78, 36,130,129,247,174, 77,137,137,122,
-117,149, 13, 67, 34,146,109,136,136,  6, 70,206,121, 35, 51, 66, 38,151, 13, 43, 76,228,216,137,170, 98,206,189,  2, 35, 16, 96,
- 39,118,113,117,237, 60,189,126,239,254,178, 89,165,152, 16, 76,212,174,174,175,199,131,254,112, 56,156, 45, 27, 64, 55,139, 66,
- 33,184,224,143,143, 79, 46,174,167, 34,137,  8,251,117,245,248,181, 71,199,151, 87,247, 55,134,111,221,221, 71,176,192, 30,157,
- 67, 38,118,232,157, 19, 64, 83,173,122,181,227,144, 36,105, 74,228, 28,  5,103,162, 68,144,196,206, 46,175,110,109, 15, 55, 54,
-119, 93,168,136,188, 74,116,228,216, 57, 51, 75, 49,153,168, 35,108, 58,149, 24,123,117, 45,  6,160, 90, 85, 61, 85,200,192,112,
-  3, 35, 36, 53, 69, 85,207,220, 73, 76, 49, 49,179,247,190,105, 27, 53, 53,212, 42,184, 78,208,146,196,148,242, 36,152, 45,128,
-236, 57,195,229,234, 16, 90, 21,254,179, 63,254, 67, 64, 40,115, 47,131, 74,177,  9,146, 17, 18,169,100,170,250, 26,201,  5, 86,
-138,188,254,193, 94, 62, 31,165, 89,137,132,181,150,  9, 37,118,104, 72, 25, 32,130,  8, 32, 57, 64, 65,104,160,206,  7,137, 93,
- 84, 28, 13,107, 64,159,255,165,220,134, 90, 56,186,133,115,150,117, 95, 51, 53,162,245,202,  4,177, 44,202,243,215,  3, 72, 52,
-229,211, 63,159,205,  8,154, 55,249,159,163,211,197, 64,129,214,247,144,124, 74, 26, 57, 36, 95, 40,146,197,169,175,121, 85,165,
- 57,172, 91,218,150,180,252,191,101,202, 23, 20,206,197, 38,235,183, 24,229, 69,166,218,120,212,127,121,120,236,125, 85, 85,189,
- 42,  4, 23, 66, 77,250,211,143,158,108,247,253,151,190,250,222,225,171,163, 71,111,191,115,118,124, 52,222,216,113,190, 42,246,
- 76, 43,142, 87,  0,  2,226,178, 13, 67, 64,226, 27, 76,155,153,170,  8,136, 42, 96,161,142,220,  4, 17,242,146,162, 92,147,192,
- 68,135, 59,183,217,179,118,109,142,229, 81,229, 76, 44,187,116,164,139,161, 87,105,236, 76,162, 37,189,184,156, 45, 22, 77, 24,
-108, 62,122,252,168,109, 86, 31,252,253,143,167,167,175,122, 27,183, 37,117,132, 22,234, 13, 12, 53,168, 90, 55,117,206, 37, 73,
- 23,147,233,197,228,122,177, 92,125,233, 11, 95,249,194,151,223, 71,100, 49, 52,176,184,154,223,122,240,104,255,193,155,231,  7,
- 79,102, 23, 47,124,168, 92,175, 47,221, 74,218,153, 52,215, 73, 36, 54, 77,175,215,159,205,174, 57,244, 24, 89, 99,179,152, 77,
-254,238,131,159,190,154, 76,135,253,126,215,117,203,182,109,219, 40,160,102, 38, 73, 37,105,126, 30, 21, 44,137,220,136, 64,121,
-156,104, 99,231,144,122,189,218, 76,107,239,111,109,143,198,131,193,241,233,229,217,228,170,137, 93,215,117,154,196, 57, 26,246,
-122,139,166,105, 98,155,162, 36, 85,239,160, 75,118,181,152, 87,132, 62, 84,140,138,232,242, 84, 91,247,  6,102,170, 73,230,243,
- 75, 48,246,222, 87, 33,204, 23, 75, 51,219,191,125,231,189,111,188,255,248,139,191, 54,218,216, 68,194,217,229,233,217,225,171,
- 39,207,158,188, 56, 56,120,254,234,240,197,193,201,233,100,178, 51, 30,127,227,205, 55, 95,187,119,111, 54,155,222,187,115,251,
-215,191,241,222,131,251,119,206, 79, 14,154,213, 28,  7,189,143,159, 62,175,157, 63,155, 78, 62,251,224,233,102,175,190,179,189,
-105,104,249, 41,228,226, 68, 35, 98,  6,  4,239, 88,138,146,136,162,178,174,199, 89, 55,187, 16,218,231,104,223,162, 70, 17, 48,
- 19, 38, 17,199,158,185,236, 42,136, 93, 76,217,150, 13,165,246,192,128,215,193, 37,102,118,236, 51,186, 60,  4, 23, 83,  2, 49,
-118,107,237, 14,114, 83,118, 46,187, 84, 88,247,120, 56,196,224, 93, 38, 63,  6,239, 12,129, 28,177, 39,176,245,201,193,148,146,
-170,145, 15, 85,224,192,236, 68, 68, 82, 71, 76,140,204, 46, 16,162,228, 75, 61,  2, 17, 37, 85, 85,101, 66, 68,144, 36,153,254,
-139,  4,204, 14,145,147,198, 20, 37,223,  4, 68, 21, 12, 44, 26, 82,142, 62, 98, 38,164,243, 58, 33,152, 93,193,180,254, 90, 19,
-185, 64,200,200,192,216,116, 93,  8,161,107, 83,240,174,233, 98,142,  8, 24, 88,219,182,117, 85, 13,135,131,179,139,203, 65,191,
-126,117,114,246,226,240,168,156, 98,132, 91, 91, 27,200, 46, 46, 23, 95,125,120,183,215,235, 25,144, 88,102,205, 35,128,  3,208,
-224, 42,  0, 16, 81, 85,  1,196,170,242,165,240, 19, 80, 13, 46,166, 83,135,186,187,187,171, 68,  6,230, 66,197, 33,  0, 65,238,
-120, 34,114,162,169,235, 58,102,240,206,229,149, 50, 82,182,132,150,190,114, 19, 41, 59,122,114,130,192, 72, 92,  2, 48,226,200,
-229,190,204, 92,183,204, 68,196, 46,171,181,165, 33, 46,103,184,136,137, 72, 69,156, 81,  6, 99,230,238,173,188,221, 32, 80,203,
- 48,252, 50,200,230,187, 34,193, 77, 95,105, 25,117,129, 32,195, 52,179,133,116,109,227,206,144,159,245, 61, 32, 39,217, 44, 71,
-168,114,161,  5, 51,155,217,198,120,120, 50,153, 33,142, 51,139,147,145,204,  4, 29, 65,150,  3, 51,248,203,138, 22,105, 37,220,
-129,235,  6,162,252, 56,  2,161, 19,205,232,211,146,245, 65,  2,180,181,238,  4, 69,190,128,204,230,202,243,176,100,131, 60, 50,
-179,164,132, 38,235, 96,238, 58,133,101,152, 35,162,134,134,  6,140,206, 32,183,218,100,217, 62, 39, 49,114,196,200,149, 14, 66,
- 64, 49, 27,111,110, 62,186,183,127,120,114, 49, 24, 14,189,115,131,193,232,141,199,111, 29,156,156,253,221, 39,135, 15, 30,221,
- 57,124,249,100,213,174, 16, 45,198,198, 73,133,236, 16,179,197,202, 64, 20, 28,131,105, 70, 45,151,129, 29,233, 31, 72,  2, 98,
-  6,204,222,192, 84,  5,145,214,136,102, 40,216, 31, 81,231, 56, 10, 34,128,116,157,  1,147, 99, 48,213, 85, 99,230,184, 14, 42,
-145,131,215,156,153, 66,118,189, 26,236,136,152,177, 91, 16,210, 98,114, 53, 61,122, 49,186,251, 24, 24,217, 56, 54, 43,147,171,
-173,251,111,205, 47, 94,144, 26, 32, 55,171, 70, 68, 76,177,139,205, 59,111,189,139,224, 22, 87, 19,244, 20, 23, 83, 53,  9,152,
-150,147,147,233,233,115,195, 42,166, 84,  3,104, 90, 93, 93, 28,246,  7, 27, 33, 84,189,254,230,201,179, 95, 12, 55,246, 70,155,
-123,179,243, 87, 72,210, 25,158,206, 86,207, 95, 30,248,135,247, 87,171,101, 18,201,215,210,124,150,172,145,212, 56,118,189, 85,
-215, 45,155,166,164,162,181,116,190,156, 76, 46,204,244,139,143, 31, 17,200,209,197,213,116, 25,209, 36,248, 42, 89, 90,181,171,
-166,109,150,205, 98,216, 27,222,221,187,117,116,126,153, 52,174, 86,171, 20,171,187,251,123,109,108,143,102,139,205,141,113, 23,
-213, 48,133, 48,242, 85, 13,154,144, 67,  4,168,122,155,205,106, 49, 95,173,146, 65,175,223,127,237,141,183,222,250,210, 23, 71,
-219,219, 85, 93,167,102,113,117,117,121,121,118,118,118, 57,121,241,234,224,224,236,252,228,226, 10, 76,222,189,255,224,173,123,
- 15, 36,117,108,242,131,223,250,214,195, 55, 94,139,203,217,197,201,243, 15,127,245, 33,143, 70, 85, 21, 22,203,197, 47,126,126,
-170,177,219, 25, 15,250,245,  0, 16,217,149,234, 32,133,  0,  0,142, 17,152, 98, 18,  3,200,  1,212,148,149,152, 98,205, 54, 34,
-114,142, 37,  9, 88,134, 97,229, 86,103, 68, 70, 77, 42,  6,204, 46,105,100, 98, 48, 52,208,212,166,188,216,149, 36,  4,185,132,
- 11,213, 12,208,188,243,106,224,152, 50, 78, 82,196,  0,137,125,190,251,103,176, 23,198, 46,  1,162,168,121, 70, 17,  3, 54, 95,
-170,239,204,123,135,153, 52,204, 25, 84,198,236,208,136,216, 44,198,232,125,  8,117, 37,162, 73, 51,  6,  7, 29,251,242,158, 54,
- 35,176,220, 74,  6,  6, 64,230, 12, 98, 30,106,136, 75, 91,131, 42, 66,118,223,  3,146,115, 62,115,187,141,137,  9,173, 43,130,
-170, 97,217,220, 50, 25, 42, 18, 48, 34,  1,118,154, 37,226,114,217, 35, 87, 89,188, 53, 24, 17,242,213,244, 26,  1,246,247,182,
- 87,177, 75, 41,129,105,211,196,182,237,136, 56,171,  2,139,229,106,181,106,  1, 44, 56, 78,104,143,238,220,173,  6,253,143, 63,
-254,244,219,111,190, 54, 26,141,162, 49, 59,  0,233, 20,146,168,  5, 87, 27,  4,  5, 19, 81,246, 76, 68,102, 16,147,229,150,104,
- 83, 49, 37,233,186,173,209,176,204,150,204,132,138, 68, 92,215,150, 36,182, 77, 76, 45,  3, 24,174, 17,229,  8,170,146,245,218,
-220,127, 10,  6,228,125,183, 90, 49,  3,147, 15,228,146,197, 14,  0, 12,170,224, 82,210,130, 56, 70, 11, 33, 36, 81,  4,171,124,
-136,109, 68,208,188,244, 82, 49,239,193, 33, 17,123,254,179, 31,253, 17,174,239,253, 89,  7,229,245,159, 36, 11,137,246, 57,153,
-232,166,196, 47,239,206,214,177,126, 88,247,129,174, 21, 90, 43,204,195,236,135, 33,102, 66,179,108,236, 45,224, 73, 51, 85, 14,
-124, 53,185, 30,141,134,156, 93,182, 25, 18, 95, 60,131,121,239,128,165, 58, 96, 61,201,100, 47,124,190, 53,100, 73, 10,144,114,
-207, 97,105,175,  6,202,137, 80, 88, 67,139,242,  8,204,232,179, 93, 60,159,250, 89,184,227, 18, 94,203,181,117,153, 64,147,  1,
-188,186, 86, 97,105,221, 52,136, 88,214,141,185, 51, 47,255,124, 42,127, 88,239,114,204, 96, 52,168,159,191,120,165, 70,195,209,
-136,209, 85,161,  2,144,103,175, 78,182, 42,247,181,247,191,222, 44,151,239,124,249,107,121,219,228, 10,127,137, 85, 20,188,195,
-242,238, 85, 83, 41, 43,254,155, 79, 23,214, 54, 32, 40, 19, 90,142,170,174, 97,157,108, 57,207, 76,152, 84,199,219,251,228, 28,
- 17,107,106,193, 72, 21,128,208, 87,158,156,183, 24, 77,204,  5,111, 41, 97,229, 46, 78, 46,175, 38, 23,  0,114,239,193,195,179,
-231,159,156,156,157,187,225,134,181,141,117,201,168,234,143, 70,182, 60,107, 22, 87, 33,176,169, 46,151,171,179,203,203,147,171,
-137,153,125,239,123,191,191,156,207,187,213, 89, 24,236,  1, 86, 91,251,247,247,238,220,157, 78,206, 63,250,201, 95,110,223,127,
-123,235,214,163,174, 91, 57,215, 71,163,225,230,118,175,238,169,152,196,102, 48,218,188, 60,125, 90, 85,195,203,147,231,179,229,
-114,176,177,  3, 68,159, 60,123,218,175,  7, 77,215,181,146,184,200,115,132,255,  0, 33, 84,  5, 47,162, 41, 38, 66,  2,  2, 83,
-136, 42,227,186,247,181,183, 30, 45,151,205,193,249, 52, 38,225,155, 98,118, 64,  5, 19,176, 36,105,217,180, 73,100, 60, 28, 44,
-155,166,141,157, 99,106,186,118,119, 99,227,114,182, 76, 41,237,110,110, 24, 64,191, 10, 76, 84,213,181,180,171, 80,245, 76, 90,
- 67, 68,246,161,238,255,250,183,190,245,218, 59, 95, 24,141, 54,152, 93,183, 90, 29, 29, 30, 76,206,206, 95, 29,157,124,252,228,
-233,179,227,227,139,201,164,118,244,149,219,187,119,119,119,  0, 97, 99,107,248,253,239,126,123,111,127,111,114,252,234,224,249,
-211,165,234,249,244,106,107,115,243,167, 63,254,249,106,209,236, 14,123,227,222,  0,114,234,192, 50,199, 57, 75,100,234,157, 55,
-192, 36,169, 10,181, 67,143,136,201,  4,115,199,178, 99,  0, 11,158, 85,243, 76,134,236,  3,227,250, 43,167,229,102, 67,136, 10,
-249, 16, 68, 48,107,150,109,168,188,222, 36,179, 77, 29,114, 22, 51, 29, 81, 62,197,152,193,178,  9, 26,  9, 12, 68, 77, 82, 36,
-210,174,233, 98,140,162,198, 55,122, 47, 80, 93, 87,109,148,224, 24, 50,177,  5, 81,132,206,123,  0,  0, 32,  0, 73, 68, 65, 84,
- 89, 36, 47,237,153,216,221, 20, 79, 34,145,  1, 72,206,221, 19,122,199,107, 11, 47, 25, 18,136,114,112,192, 57, 33,143, 96,104,
-162,  8,148, 63,  4,  4, 98,159,155, 66, 44,137, 58,231,138,  4,  5,192,128,158, 89,  1,201,113,102,183, 50, 51, 82, 89,231, 50,
-231,238, 76,208,148,152,184,147,104,136, 46, 31, 19,204,129,160, 38,215,247, 78, 64, 79,175,166,219,155, 27,247,111,221,190,158,
-205,213,196,212,218, 46,166,148,222,123,231,157,208,239, 29, 28, 30,167,204, 47, 81, 24,244,235,179,201,244,205,205,225, 27,247,
-111,147,171, 12,133,152, 68, 84, 13, 42, 87,231,143, 52, 71,141, 56,120, 80, 52, 77,204, 62, 95,163,153,248,114, 54, 35,208,241,
-104,131,170, 80,140, 64, 49, 58, 79, 38,218,197,174,107, 59,239, 93,211,118,106,169, 10, 46,199, 24, 85,210, 77,229,  6,123,111,
- 96,146, 18,152, 57, 23,192, 49,168,169,169,  3,  0,162,166, 77,160,185,248,  1,  0,192,121, 44, 27, 99,211, 46,117,154, 79, 85,
-179,186,118,  0,108, 40,162,202,127,254,199,127,160,240,249,190,165,220,249, 57, 51, 22,214,241, 85,179,172,  7,174, 95,  2,152,
-223,  3,185,211, 99,125,137, 44,151,165,162,244,229,127,148,173,226,136,133,170,140,159,187,206,205,192,177, 91,204,231, 85,175,
-239,185, 88,172, 16, 13, 52,111,246,114,105,158, 17,223, 24, 94, 74, 17, 32,226, 77, 51, 93, 70,226,100,188,251, 58,218,207,235,
-188,233,250, 16,167,130,197,192, 27,133,216,138, 23, 94,172, 96, 85, 33,223,118,214, 50,  2, 23,199, 56, 56,  0,151,205,254,132,
- 30,201,209,205, 70, 36,203,155, 57,151,148, 11,165, 16, 16, 48, 73, 28,109,222,246,245,248,131, 95,253,116,115,115,183,174, 66,
-148,212,175,235,139,203,203,227,203,249, 55,127,227, 27,253,241,214,100,114,213, 46,151, 33, 84,206,249,242,145, 56, 42,204, 79,
-205, 45,175, 14, 49,135,241,180,108,214, 51, 86, 19,  1,209,200,249,130, 91,115,174,128,131,214,111, 63, 83,  1,170, 70, 91, 91,
-218,182,232, 56,159,  4,106,144, 73, 71,210,180,165, 59, 29,141, 66,109,109,119,240,244,233,124,222,244,250,189, 59, 91,131,131,
-167, 79,206,167,139,204,209, 19,242,113, 53,185,117,255,241,236,250,210,108, 53,236,247,218,182,107,150,171,227,243,201,197,100,
-210,171,195,155,247, 31,163,175,145, 56,137,178,227,205,141,225,120,123,235,244,248,132,123,163,237,157,123,205,234,106,181,152,
-163,164,222,230,174,103,127,121,242, 34,174,230,211,217,180,109, 87,  0,140,152, 66, 53, 60,159,156,133,241,246,195,123,247, 47,
- 47, 46, 63,126,246,164,242,222, 33, 50,145,128,229,165,110, 25, 81, 12, 84, 44, 56, 82,145, 70,  4,  0,234,224,239,223,218,121,
-116,123,255,131,151,  7,159,188, 58,236,215,189, 42,  4,195, 28, 53,179, 27, 23,110,126,217, 70,233,186,182,243,204,171,174, 83,
-180, 85,211,173, 86,203, 65,191,183,138,210, 52,205, 32,240,104, 48, 96,196, 16, 92,191,215,119,236, 98, 39,189, 65,253,224,254,
-131,127,244,155,223,191,253,224, 97, 93,215,136,176,152, 93, 93,158,157, 30, 28, 31, 62,121,241,242,163,231,207, 95,157,158,199,
-174,187, 61, 28,188,182, 53, 98,135,219, 91, 91,223,252,141,111,252,230,119,190, 67,100,151, 39,135,234,232,232,226, 92, 37,246,
-122,189,167,207,158, 99,219, 61,216,219,206,198,176, 44,121, 22,252, 23,187, 42,244,188, 15,249,187,234,124, 64,  0,  5, 77, 18,
-  1,128,128, 96,173,226,171,154,130,101,127,177,230, 66, 78, 34, 53, 17, 75,149,243,162,106,152,235,241,172, 75,106,  4, 85,  8,
-102,249, 65,202,144, 55,202, 59, 22, 38, 66,178,252,252,198,  4,104,196, 62,111, 71,  8, 76, 85,187,197,178,137, 34,222, 59,230,
-108, 70,177,236,152, 19, 53, 79,148, 85, 47, 19,209,164,196,121, 19,205, 64,168, 38,128,134,142,242, 46, 37,251,184,156,203,128,
-132,156,124,  4, 34,204,  4,221,124,145,206, 61,186,136,232,153,162,154,119,236, 40,168,106,236, 50,180, 43,  0,162,105,121,117,
-  1, 32, 58, 42,126, 13,  4,199,156, 93, 24,148, 53, 54,  2,231,179,120,139,235, 46,161,252, 21,206, 57, 45,116, 76,149, 11,163,
-224,170,224,231,171, 38,106, 34,128,126,213, 91,181, 93,  8,110, 52, 28,189,241,248,209,238,173, 91, 32, 73, 13, 98,215,189,249,
-218,195,227,139,235, 13,167,191,254,214, 99, 10, 61, 68, 74, 93,  4,  0, 31,152,128, 65,213, 12,136,152,157, 51, 68, 19,205,221,
-155,121,177,236,217,181, 81,174, 38,215,187,155, 27,190,223,255, 60, 21,132, 16, 99,148, 78,178, 25, 64, 82, 98,151, 43,  6,139,
- 22,201,204,153,114,136,196,  0, 20,187,142,  9,153,153,153, 52, 74,222,201, 73,134,223,230,106, 11,196, 98,160,146,252, 14,  7,
-134,114,187, 65,  2,239, 60,  2,138, 41,  3, 68, 49, 87,130,146, 37,166,143,160,166,  0, 12,153, 65,145,111, 83, 10, 72,101,196,
- 95,239, 64,193,200,  4,254,193, 18, 30,  0, 13,  5,115, 83,199, 77,205,  7,162,161, 67,144,172,117, 90, 81,192, 51, 38,201, 68,
-  5,188,227,249,162,169, 93,223,146,130, 83, 52,128,164, 96,  0, 46,107,152,168, 55,  6,110,  2, 68,191, 46,227,206, 58,110,  2,
- 91, 51, 80, 11, 99, 62, 15,238, 89,157, 84,  4, 82, 81,205,117,126,  6,196,133, 93,134, 55, 64,156, 53,196,191,224,149, 29,129,
-228,179, 59,228, 75, 16,146,154,121, 66,188, 41,250, 40,174, 33,  3, 68,116,134,134,166,136,140,108, 38,169,235, 92, 53, 24,108,
-222,126,255,254, 59,207,158,126,250,226,229,179,119,222,121,199,208, 66,221,123,251,141, 71,127,249,239,255,195,223,253,244,163,
- 31,252,227,239,189,122,250, 23,183, 31, 62,  6, 77,109,183,236,245, 71, 10,198, 72,104, 42, 34,235,212,  1, 32,170, 33,152,154,
-105,102,159, 74,206,155,169, 42,138,250, 16,138,125,126,253,247, 95,179,173, 41,248, 96,201,200,123,  0, 67, 70,235,196, 57,151,
- 61,148,138,232, 42, 15,  8,150,242,208,199, 73, 49, 54,203,197,242, 44, 54,247, 19,  7, 32,239,136, 17, 24, 36,109,239,222, 21,
- 85,114,  3,182,  5, 32,155,170,128, 78,231, 11, 81,189,179,115,119, 99,188, 53, 91, 92,139, 73,175, 55,168,  6,189,237,253, 59,
-104,230,124, 24,111,223, 53,228, 80, 13, 17,  3, 72,215, 45,231,203,213, 84, 76, 12,171,205, 91,247,156,171,219,217,249,106, 57,
-237,141,239,172,212,227,114,182, 92,204,239,223,189,253,252,213,203,195,139,139,173,241,120, 88, 85,216, 38,201,156, 82, 34, 21,
- 51, 80, 38, 66,197,186, 10,169,105,239,223,218,221,218, 24,159, 92, 92,254,248,163, 79, 12,128,152, 46,167, 87,204,155, 85,168,
-140, 45, 37, 51,176, 92, 70,155, 82,202, 93, 45,209, 18,  2,246,235,170, 21,241,140, 33,132,166,109, 30,220,190,243,234,244, 84,
- 52,121,118,183,118,182,151,139,101,175,223, 55,149,189, 91, 59,239,189,255,205,123, 15, 95,175,  7, 61, 51,136,237,234,106,114,
-121,125,117,241,252,197,193, 71, 79,159, 31, 95, 78,166,243, 89,223,225, 87, 30,220, 11, 68,203, 46,190,247,165, 47,126,251, 55,
-191,211, 31, 14, 47, 78, 94, 94,156,157, 54,236,207, 79,143,175, 39, 87,243,101,179,156,205,119,250,189,189,205,205, 12,116, 35,
- 51, 50, 48,  3, 38, 32,231,178,119,183, 75,202,235,185,  8,203,194,179, 24,182, 50,253,149,204,152, 80, 17,187, 38, 18,145,115,
-206,  0, 50, 57,  0,201, 37,145,192,100,  6, 73, 68, 65,131,227, 60,203,231,163,217,146,174,115, 75, 12,140,142, 72,172,148,178,
-250,192,196, 36,201,136, 17, 29, 37,233,242, 96,232,125,240,193, 33, 18,173,235,141,215,248, 40,200,186, 72,222,105,112, 33,116,
- 16, 20,218,224,218,217, 12, 64,168,206,  7, 96, 36,181,104,154,215, 41, 42,186,166, 90,149, 53,102,197, 28,213, 20,160,246, 46,
-138,136,118,128, 22,106,  7,138, 41, 37, 46,215,116, 64, 34, 16,141,173,248,224, 29,130,  8,100,203, 10,153,199, 76, 23, 65,202,
-241,248,146,118,230,236,158, 52,114,214,243,204, 14, 82,212,164,214,135,234,158,115, 85,224, 23,103,151,227, 81,191,174,  7, 77,
-108,119, 55, 55,238,220,190,235,156,251,244,227, 79,106,239, 94,127,120,111,212,175,187,164,221,114,246,222, 23,223,  8,189,126,
- 66, 86, 21, 23,124,182,140,136,116,236, 93, 46,223,179, 66, 89, 54, 85,203, 86, 81, 21, 72, 34, 87,215, 83,239,160,234,215,101,
-147, 68,136,  0,171,182, 69, 16, 71, 92,122,203,205,145,165, 46,111, 32,215,133, 76,184, 94,248,138, 36,102,  2, 36, 69,180, 84,
- 44,112,200, 14,  0, 48, 69,206, 80, 19,200, 41, 51,  5,242,  8, 70,204, 77, 76,166,137,128,  8, 32,197, 84, 10,155,137,  1, 34,
-255,233,143,126, 15, 20, 53, 87, 31,225, 90,182,187,241,128,131,130,102,215,140,102, 96,241,122, 23, 65,166,166,104,165,138,163,
-132,102, 11, 26,184, 60, 20,121,179, 97,101,157,  3,184,102, 47, 32,168, 25, 35,129,153,164,110,214,116,219,195,129, 34,100, 74,
- 39,130, 21, 21,116, 77,218,202,115,153,138, 33, 26,173, 27,166,178, 19,188,  8,148, 76,104, 25,226,142, 80, 66, 82,153, 94,157,
-191, 53, 69, 36, 69,176,194,222,231, 98, 18, 42, 24, 59, 45,175,172,  2, 48,206,151,190, 50,249, 91,246, 78,  2, 80, 89,121,230,
-235, 76,126,230,145,114,154,143,  9, 37,181, 92,111,236, 61,120,211,249, 10, 13,238,236,223,253,217,223,255,141,175,234, 81,191,
-175,192, 85, 85,117,203,197, 71, 79, 95,126,225,241,235,231,103, 71,174,234,213,189,170,157,175,216,251, 44,250,131,152,169,101,
- 72,228,141,229, 40,251,235,173,120, 37, 17, 84,  9, 29, 51,101,101, 41,235,186,153, 16,130,136,200,  4, 98, 68,174, 55, 28,151,
-158, 15, 69, 75,137,168,112,182, 65,209, 85, 65,163,  2,152,198, 40, 93,119,248,226,229,197,241,179, 10,245,141,119,191,124,126,
-181,154,175,146,165, 86,208, 13, 55,183,  6,155,219,147,147,  3,105,102,117,109,190,242,179,233,244,242,226,234,197,225,225,245,
-116,242, 59,191,253,195,123,143,222,186,186, 60,100, 21, 52, 25,239,221,185,117,231,206,245,197,217,229,249,113,206, 63,155,193,
-226,250,148,129, 86,177,139,106, 33, 12, 24, 52,181,141,175,122,243,197,213,173,253,  7,171,197,100,145,244,213,241,209,197,197,
-  5,169,221,190,181,255,242,213,193,108,181, 68,196,162, 56, 33,  3,192,160,223,223,223,222,189,189,123,103,123,115,235,222,222,
-254,155,247,111,205,218,246, 87, 79,159, 79,151, 43,206, 56, 83,196,100,210,181,113, 80,213, 12,200, 76,162, 89,158,135,130, 26,
- 33, 96,  8,204,  8, 96,109,151,  6,189,122,127,123,247,106, 62,143, 41, 14,250,189, 89, 19,137,169, 95,247,  7,117,237,188,123,
-243,237, 47,124,231,119,127,111,255,254,163, 80, 85,102,208,182,139,139,179,179,147,163,163,143, 62,123,250,139, 79, 63, 59,188,
-184, 92, 53,139,253, 97,255, 11,251,183,201,204,147,253,254,239,253,238,183,190,251,253,249,244,242,229, 39, 31,  8,225,213,108,
-118,113,126,118,120,112,220, 53,237, 70,229,247, 54, 55,123,253,192,142,196,114, 79, 16, 39, 21,239, 28, 51, 87,189,218, 84,141,
-172,242,204,134,185, 65, 35,123,116,147,  8,179, 99,228,104, 49,231,206,197, 64, 85,153,200, 57, 78,162, 25,118,167,150, 55, 56,
- 40,170, 98,185, 84, 47, 24,  1,  1,128, 90,  8,  1,212,186,216,121,231,138,167,146, 73,237,230, 69,  3,102, 70,236, 66,240,102,
-166,162,142, 89,213, 68,165,246,  1,144, 28,241, 77,222, 28, 12,156,163, 28, 94, 34,114,206, 59,116,236, 28,151,168,170, 35,211,
-148,186,200,128,196, 46, 11,253,249,219,106, 37,141,143,150, 84, 36,101, 11,140,153,101,163,181,152,185,224,188,207, 90,130,  6,
-207,107,194, 45, 33, 97,210,242, 27, 52,131, 76, 76,203, 24,250,156,255,178, 44,101,  2,100,  8,176, 38, 41, 75,121,  3, 99,244,
-236,216,115, 29,252,112,128,149, 19,  3,  0,204,107, 16,172,136,118, 55,250,211, 85,247,252,240,104,123, 99,227,141,215, 31,237,
-221,189,189, 92, 46,159, 62,125, 62,185,154, 14,  7,253, 47,125,233,139,231,151, 23,253,186, 26,142, 55,217, 52, 16,113,168, 68,
-149,188, 51,  1,231,189, 39, 76,166,  6, 80, 85, 85,166, 94,102,129, 76, 85, 65,117,217,164,249,124,186,183,185,225,235, 58,111,
- 41, 36, 99,191,184,116,143,132, 80,153,154, 20,253,147,208, 32, 73,182,129,186, 60,134,122,  2,224, 92,186,157,231,104,134,130,
-106, 81,203,  7,102,249,143,130, 72,206,135,252, 81,139,  8, 19,  6,114, 64, 28,147, 16, 90, 86, 55,137, 76, 12,249, 95,252,147,
- 31,221, 48,186,114,108, 30,204,242, 17, 88,224,234,229,100, 46,139,153,245,  6, 39, 51,187,176,152, 17,139,240,153, 45,225,185,
-119, 15, 16,208, 74,223,213,141,143,114,205, 17, 91, 63,109,196,120, 61,155,239,237,237, 88, 20,200,145, 75,164, 18,208,192, 82,
-149,151,127, 48,229,166,214,178,251, 70,181,124,115,  5, 67, 68, 45,205,126,184, 94,196,148, 69, 13,150,134,244,178,195,200, 95,
-164,146,191, 42,122,112,217,  5,216, 77,165,120,118,180, 56, 68,203,193,238,124,217, 55, 48, 98,198,108, 97, 44, 27, 80, 82, 75,
-217,217, 32,210, 57, 55,220,125,248, 54, 35,105,106, 65,213, 48,253,245,191,255,127,212,116,184,177,225, 92, 80,176,126,229,159,
- 61,125, 78, 68,239,191,255,181, 20,187,222, 96,180, 90, 78,  1, 92,240, 30, 76,129, 29,160, 49,115,214,174,215,229,176,229, 99,
-203,151, 20,118,  1,153, 51,159,207,214,159, 99,158,247, 12, 12,129,204,160, 55,222,235,109,140, 76,  5,209,105,219,144,119,232,
- 40, 83,130, 75, 88,192,140,208, 82, 23,197,240,201, 71,159, 76,206, 94,109,109,223,122,253, 75, 95,121,241,242,224,228,248,  8,
-201,213,129,187,249,  5,170,196,110,201,222,215, 53,152, 89,187, 88, 30,157,159,191, 60, 57,107, 99,247, 91, 95,255, 13,244, 21,
- 80, 29,  6, 91, 85,191, 87,245,250,227,205,205,233,213, 36,198,214, 98,219, 92,157,248,254,118, 85,241,106, 58,211,148,130,247,
-109,187, 20,177,254,160, 47,178, 26,141,247,147,201,103,159,254,234,114,177,250,234,151,191,222, 31, 12,  8,181,223,171,151, 93,
-115,122,113, 97,136,129,243, 70, 88,115,113,193,108,181, 92, 46, 23,155,227, 90,165,253,232,249,193,229,108,158, 36,  3,101,233,
-230,138, 40, 34, 41,197, 80,213,185, 95,190,104, 63,249, 86,171,226, 61, 43,114,112, 60, 30, 15,251,117,189, 49, 28,137,196,235,
-233,188,223,171, 31,222,190,125,116,121,217,182,205,189,253, 91,223,249,222,119,191,250,205,223,234,143,199,192, 36, 93, 92, 92,
- 95, 92,156, 30, 31, 28, 29,253,234,227, 79, 62,124,242,252,236,106,106,113,245,214,222,222, 27,123,183,146,200, 23,190,240,230,
- 15,255,228,159,238,222,218, 57,124,246, 25,247,170,147,201,164,105, 87,189,141,209, 71,159, 61,117,141,222,218, 24, 85,149, 87,
- 64,  4, 18, 67,199,172,102, 68,202,142,217,185,124,212,  2, 99,134,136,230,130,209,236,212,  2, 32,239,216, 74,160,130, 24, 81,
- 77, 37, 37, 68, 82,179,182, 75, 55,115,189, 11, 14, 12, 36,138, 22,151,  0,170,165,252,  7, 51, 72, 41,154, 41, 59, 78,144,193,
-147,152, 73, 71,217, 66,135,144, 31, 34,146, 46,102,183,177,130, 85, 85,189, 46,201, 10,236, 41, 15,194, 76,132,185, 64, 14,144,
-156,175,170,128,136,196, 76, 88,252, 28,  0,156,213, 53,188,113,  4,168,154, 40,231,176,120,161,200,  2,123, 15,107, 39,111, 18,
-113,149, 99, 36,208, 12,151,  2,199, 62,139,132,107,232,  2, 81, 70,238,  0,102, 30,132,137, 38, 85,186,169,111, 91,167,251,243,
- 89, 73, 84, 98,152, 24,152,129,144,192,123,116, 30, 29, 53,204,154, 12,165, 83,116,222, 28,178,227, 10,177, 66,155,182, 29,162,
-171, 43,239,157,235, 98, 92, 46, 27,231,120,103,111,107, 58, 91, 93,158,159,221,187,125,123,149,116,209, 53,163, 16, 92, 38,197,
- 18,186,172,130,136, 57,207,140, 20, 69, 66,  8,154, 23,168, 10, 20,156,154, 93, 94, 94,247,  2,245,135, 67,100,151, 79,137,146,
-250,  7,117, 76,  6,164, 73, 96,237, 58, 37,200,115, 41,  1, 90,148,164,106,206,177, 33,153,228,141,157,178, 15,185,186,199, 12,
- 12,244,134,189,149,119, 40,204,  4,134, 73, 69, 77, 42, 31,114,175, 96, 30,219, 13, 32, 37, 97, 71,193,251, 46,138, 43,162, 79,
-198, 32, 40, 32,170,  1,129, 74,126,241,139, 38, 64, 52, 19, 38,159, 67,244,249,204,213,108,156,  2, 44,165, 85, 57,182, 90,154,
-158,208,  0, 52,  1,115,238,154, 65, 51, 43,117, 26,  5,217,152, 97, 55,  2,128,190,234,147,158, 45, 35,  5,135, 38, 37,163, 87,
-102, 88, 69,163, 66,231, 45, 37,171,150,145,121,104,217, 72,161, 37, 13,149,225,106, 57, 44,244,249,221, 14,129, 24, 98,202, 33,
-175,  2, 28, 37,128,148, 52,207,238,185, 35,204,  4,136, 28,129,101, 57,193, 76, 12,  0,185,  3,  3, 99, 71,166,107,112, 61, 65,
- 41,241,138,  8,140,249,218, 12,140, 76,160,209, 87,227,237,187,111, 16, 65, 59,159, 57,246,203,118,254, 63,254,247,255,195,183,
-126,251, 15, 63,250,229,223, 28,159, 28, 62,188,247,186,103, 30,110,108,189,245,214,227,127,251,215,127,251,205,247,127,109,114,
-113,118,122,114,210, 52,203,221, 77,  8,193, 87, 85,207, 36,145, 15,152,109, 64,170, 55, 96, 28,145, 44,183, 18,  2,178,243,102,
- 70, 76,196,168, 98,150,148, 42,135,136, 38,  9,179,133, 70,193,213, 85, 94, 85,170, 68,170,188,175,130, 36, 49, 81,  3, 50,139,
-146,148, 60,202,170, 67,213,110,185, 92, 94, 29, 18, 18,135, 10,136,201,132, 92, 61,218,232, 49, 50,244,234,216,172, 92, 53,114,
-212,144, 11,210,197,216,165,233, 98,217,180,237,176, 63, 28,247,  7, 64,182,115,107,239,250,244,116,122,113,112,247,193,107,177,
-105,  1, 25,212, 37, 97, 85,110,151,179,171,147, 39,231,167,135,183,110,191,214, 45, 47,134, 27,251,206,135,213,252, 98, 53,187,
-212,129,138,129,186, 65,183,188,250,201,207,255, 54,  4,119,112,112,184, 92,206,123, 92,189,245,240,209, 98,177,200,101,144,128,
- 32, 42,  6,112,127,111,183,223,247,151,147,249,241,229, 68, 36,245,171,106, 80,133,139,233,180,211, 82,199,152,159,220,121,215,
-202,213,100,119,123, 19, 17, 53,139,226,201, 12,161,174,  7,142,176, 75,169, 87, 85, 49, 37,231, 61,160, 13,251,195,126,221, 63,
-191,190,138,233,120,123, 99,235,119,190,251,157, 31,254,254, 31,246,134, 67, 81,  1,208,213,244,122,122,117, 62,185,184,122,121,
-112,240,233,179,103,  7,167,231, 87,211,249,237, 81,255,254,214, 46,139,214,189,250,143,126,244,  7,111,188,249,230,229,241,225,
-139, 87,  7,110,107,227,232,228,232,240,240,104,181,138,139,217, 98, 84,247,182,247,198,204,148, 84, 52,165, 80, 85, 73, 58, 43,
-231,100,  6,170,172,  3,122,  8, 41,137, 18,105, 82,116,152, 33, 76,154, 47, 31,  0,136, 20, 37,113,169, 52,241,201, 18,130,229,
-  6,100, 85, 12,193, 73,210,152,132, 88, 61, 57, 84,136,102,142, 29, 25,164,168, 49, 69,246, 44,162, 46,167, 33,203, 85, 29,137,
-157,153,130, 26,  7,111, 81,164,139, 84, 48,115,232,200,153, 73,191,223,235,186, 78, 76,  8, 60,168, 49,161,152, 24,144, 67,207,
-206,161, 65,210,228,156, 71, 70, 84, 51,129, 36, 74,222,192,128,137, 85, 81, 44, 91,182, 45, 91, 78, 85, 18, 18, 59,207,146, 80,
-215,252, 44, 32,242, 76, 32,160,166, 34,210,171,107,201, 14,123,  3, 34,210,117,172, 50,247,197, 58, 31, 76, 33,197, 14,  0, 50,
-114,129,152,129, 12,196, 24, 44,198, 84,240,184, 25, 92,152, 49,226,142,209,186, 64,209, 59,232,162, 52, 77, 52,243,  0,129,200,
- 48, 25, 33, 38, 67,100,255,218,107,143, 38,147,233,249,229, 21,145, 27,142,122,111,189,249,134, 72, 34,199, 63,249,201,207,150,
-171, 85, 29,194,178,237,234, 80, 53,241,242,245,157,237,126,168, 82, 50, 37,201,102, 21,149, 14,209, 85,222,199, 24,115,190,132,
-  3, 74,146,182, 73,166,105, 60,218,  6,192,148, 26, 34,118,174, 82,  5, 34, 37,116, 41,117,206,177, 82,134,185, 27, 57, 70, 81,
-199,104,106,121,132, 71, 87,224, 94,121,131,103, 70, 41, 38,135, 64,204, 32,178, 74, 17, 68,123, 85, 63,111,134, 29, 81, 82, 81,
-211,186, 10,146,160,137,157,169,120,231, 16, 33,154, 18, 66, 29,156,  0,116, 81, 84,147,195,155,105, 49,247,106,100,211,119, 54,
-156,103, 99, 36,  0, 81,126,  3, 75, 54,164,128, 89,169,146,128, 12,155, 65, 48, 33, 38,149, 28, 57, 53, 84, 99, 15,153,167,187,
-238,218,131,178,204, 95,183, 89, 32,187, 60,252, 14,106,119,122, 53,127,109,175, 78,154, 76, 81, 83, 71,174,206, 26, 59, 25, 16,
- 26, 96,  6, 54,  2,230,179,111,141, 30, 54,211,114, 69, 64, 99,204,216, 72, 66,206, 14, 91,  3, 53, 49, 64, 69,164,226, 27, 42,
-228,132, 82, 32, 96,172,104,  8,196,229, 70,137,165, 95,132,  0,  1, 36, 33, 25,104,126, 15,100, 14, 67,105, 74, 42,252,100, 53,
-  3,197, 92,112,233,135,155,183,223, 32,164,184,156,131,129, 72,250, 95,254,167,255,249, 75, 95,251,205,111,255,167,191,187,152,
-158,125,252,225,207,199,131,173,205,237,109, 31,252,195,135, 15, 62,123,246,226,127,255,191,254,239, 63,254,131,223, 62, 58,124,
-177,104,250,183,239,221, 61, 63, 63, 53, 52, 71,156,137, 19,107,255,169,113,240, 41,  9,128,229, 88,  4, 34,169,  8, 59,199,236,
-  0, 12,201,188,167,194,248,225, 96,160,  6, 74,236, 66,  8,228,189,153,211,182, 69,246,177,109, 16, 29, 18,128, 36,141, 29, 57,
- 75, 81, 76, 20, 68,150,167,199,169,107,155,118, 73,161,135, 76, 70, 21,  0,196, 78, 18, 64,111, 56,108,103, 83,212,206,247, 34,
- 65, 47,106, 90,181,205,245,124, 17, 83,220,191,117,123, 25, 19,205,231,179,233,108,113,121,184,185,255, 58,251,222,201,241,209,
-233,233, 17,167,213,114, 58,217,186,253,184,153,207,183,239,188,189,177,251,168,139,173,165, 97,108,174, 16,250,237,226,170,234,
-141,201,249,197,108,122, 57,159, 29,157,158, 84,190, 82,137,163,209,198, 98,181,218,217, 30,134, 58, 60, 95, 45,147, 73, 82, 85,
-209,141,209,240,222,222,222,178,107, 63,124,126,232,  0,  8, 77, 16,187,212,121,230,241,112, 56,153,206,242,149, 43, 63, 95,  8,
-184,138,237,116, 62,223, 30,143,172, 45,170,180,129, 73,138,139,174, 13,193, 15,251,155, 87,211,121,211, 52, 75,102,  1,168, 42,
-119,103,119,119,111,111,231,191,251,111,254,219,119,223,253,210,233,100, 18,219, 85, 74,113, 62,185,188,154,156, 93, 93, 93, 63,
-121,241,226,227,231, 47,207, 46,174, 84,226,227,221,141,135, 59,219,201,224,225,131,187,191,255,195, 31,122, 71, 79,126,245,211,
- 38,197,179,139,179,233,179,167, 81,116,190,106,108,214, 60,218,221,206,166,149, 36,102,  8,222,135,148,132,145,213,140,217, 49,
-113, 82, 81,128,202,251, 85,215, 48,112,118, 19, 43,  9,129, 47,161,105, 83, 64,  8, 62, 52,171,150, 24, 21, 57, 73,155,119,146,
-132,  4,144,178,111, 98,213,116,206,177,247,142,  1,197, 84,192,152, 80, 37,  9,  0, 33, 85,149, 23,177,218,185,108,126, 43,212,
-116, 36, 85,113, 33, 88,138, 42,209,202,127, 99,236,  8,173, 88,144, 99,234,156,119,165,233, 23, 73,147,  1, 97,  8,193, 59,238,
-146,186, 92,150,160, 10,134,228, 72,146,178, 35, 80, 96,246, 98,130, 88, 44,  2,228,243,166, 94, 28,115,206,166, 18, 49,130,137,
- 42,121, 66, 64, 17, 53, 80,231,208,161,139, 93, 66,196,  4,234,202, 62,129, 68, 75,169,  5, 38,212, 46,229, 27, 52, 50,229,  6,
-100, 64, 32,114,169,107,147, 73,134, 52,176,247,197,251,231,156, 74,  2, 75,192,232, 67,165,113, 41, 17,155,200,189, 94,  8,190,
-110,218, 68, 72, 34,178, 84,  9,183,246, 23, 71,167, 79, 95, 29,136,200,201,217,121,175,170,222,251,226, 23,134,155,227,167,159,
- 61, 91,204, 23,201,244,233,203,163,126,191,218,123,109,251,244, 98, 18,245,242,222,214,214, 70,237, 29,113,211,117,193, 59, 71,
- 85, 39,218,172, 26, 98, 46,175, 61, 49, 77,178, 92, 45,234,202,187,186, 86, 77, 72, 30,129,146, 36,199, 94, 84,146,180,236,156,
- 65, 41,164,  3, 64,206, 99, 57, 64,178,232,216,105,174,  3, 71,  0,209,224,170,100,162, 41, 17,160, 33,161, 42,152, 57, 37,116,
-156, 36,101, 68,101,215, 53, 36,234,152, 82,236, 16, 40, 56,175,192,170,  6,146,152, 28,104, 82, 64, 73,209, 33,154,170,203,114,
-142,153,228,159,173,182,166, 44, 20,249,145,214,149, 46,101, 35,175, 80, 62,112,  0, 53, 40,247, 52,195,108,176, 45, 74,167, 21,
- 95,100,201,193, 18,165,181, 57,102,109,219,194,117,103,148,234,246,206,238, 39, 47, 14,117,255,109,131, 14,  9,141,216,202,168,
- 93,188,178,144, 41,  8,154,255, 93, 93, 47,170, 63, 79, 58,149,158,115, 43, 55,136,172, 44,107, 17, 39, 11,238, 88,138, 38,  2,
- 37,222,151,143,135,108,176, 65,180, 92,197,183,182,118,194, 58,150, 10,107, 36, 66,126,150, 81, 13,145, 13, 20,114, 16, 66, 13,
-125, 53,222,189, 71,177,105,151,173,137, 86,131,141,191,252, 63,254,215,189,253,123,223,253,193,183,210,197,217,251,191,254,237,
-103, 79, 62, 57, 63, 59, 25, 12,122,193,247,234,190,188,247,238, 59,255,238, 63,252,245, 55,190,246,149,199,111,190,243,225, 47,
-127,118,120,248, 28, 68,125, 21, 48, 12,146, 68,  2,133,146,108,178,216,197,188,150, 50,203,  4, 52,135,148, 93,112,100,166,142,
-110,100, 57, 48,135, 40, 12,160, 92, 85,206, 59,137,157, 22,215,148,100, 74,120,198,138, 17, 15,173, 93,105,155,208,179,166,164,
-  6,198,  1,184, 71,161, 39, 73,144, 16, 45,197,136,131, 81,189,184, 60, 73,171, 69,127,188,133,148, 12, 48,117,113,177,106,154,
- 54,154,217,195,187, 15,183,111, 61, 60, 63, 63,233, 22, 87, 91,251, 15,170,186,106,150,203,197,116,  1,203,217,244,250,120,116,
-235,141,110,213, 88, 90,213,117,117,126,122,192,213,192,135,186,107,168,105, 91, 36,116,161,234,247,251,199,167, 71, 81,245,241,
-107,143,145,236,229,203, 87, 42,178, 61,222, 90, 54,139,174,107, 66, 85,205,175,174,198,195,254,131,237, 77,101, 58,189,184,188,
- 88,204, 29, 56,231,168, 19, 69,100,207,  8,  8,158, 97, 99,208,187, 94, 44,213,214,144,103,  3, 36,152, 46, 22,128, 48,170,250,
-217,207,100, 10, 28, 56,120,223,118,105, 50,189, 10,190, 74, 98,139,182, 37,128,157,173,205,127,246,163, 31,125,255,123, 63,216,
-222,221,155, 47, 86,150, 98,187,152, 95, 79, 46, 38,147,139,211,179,179, 39, 47, 94, 62,125,117, 52,157, 47,  6,193, 61,216,189,
-213,167, 56, 30, 13,190,247, 59,191,243,240,225,131,229,114,222, 54,221,193,233,  9, 59, 26,236,108, 30,158, 79, 46,142,206,118,
- 55, 55,246,239,237,139,152, 90,142, 31,194, 13,225, 54,  3,193,179, 77, 46, 83, 92, 10,195, 22,128, 40,219,190,185,140, 62,106,
- 46,176,154,182,177, 67,  7,132, 24, 37, 17,162, 15, 46,198,232,136,131,239,181,169,139, 34, 33, 91,105,205,  4, 12, 12,130,247,
- 49,198,130,255, 50, 19, 69, 48,136,146,214,248,170,210,196,228,152, 32,165, 82,152,144,157,111,197,230,  6, 42, 34,152,152, 92,
-  6,117,136, 25,  0,177, 39,135,  0,  4,146,249,163, 14, 77, 37,169, 17,  2, 36, 95,102, 66,204,142,142,252,157,163,117,151, 52,
-249, 92,184,157,143,108,179,114,207,117,168, 73,192, 52,248, 74, 64,116, 93,129,237,184,216,139,205,140,153,137, 81,146,230, 81,
- 14,205,229, 90, 80, 66,  4,  7,150, 52,197,  8, 32,158, 89, 76,193,204,196, 50,123, 54,198,232, 16,156, 35,199,144, 36,138,176,
-168,177,115, 49, 17,162, 16,162,153, 46,187,206,111,110,137,243,139,233, 76, 85,163, 74, 59, 91, 50,211,213,116,250,225, 39,159,
- 57,231,216,249,118,185, 48,132,249, 98,245,233,147,231,195, 94,223,143,194,243,243,243,253,241,120,191,223,243,181, 71,128,164,
-134,107, 21,  1,212,128,144,  1,163,225,170, 89,237,110,142, 17,149,156, 83, 17,  5, 33,100, 81,129,114, 78, 24,153,228,197,122,
-222, 74,229, 70,188, 16,156,198,148,  9, 91,249,168, 81, 19, 34,  2,231, 77,180, 19,241, 68, 62,120,  4, 18, 75,165,252,195,180,
-246, 33, 65,178,210, 90, 65,  6, 16, 37, 58,224,117, 53, 42,196,212,145, 90, 50,139,109,231, 32,111, 79,  0, 32,195,173,242,250,
-165, 24,192,243, 65,206,  8,150,169,211,156,249,184, 98,235, 68,106,238,228, 54, 80,  4,250, 60,113,153,203,230,208, 48,207,149,
- 88,214,223,248,121, 35,133,166,178,168, 87, 13,131, 81,144,231, 49,162,247, 65, 98,100,230,108,182, 89,159,222,154, 51,114, 55,
-164,119, 90,215,209,101,118, 11,103,172,174, 17,162,154,161,169, 41, 73,238, 19, 55, 21,203, 45, 45,165,126,210, 12,201, 50,254,
- 32, 99,118,  0,200,145,129, 17,128,150,247, 85,161,174,175,107, 87, 11,111,216,  0,243,164,  0,  4, 68,190,164,106, 57, 12,199,
-251,218, 53,203,197,220, 15,199,163,209,230,191,251,171,191,188,184,156,254,147,255,252, 15,218,174, 73, 77,220,216,217,249,193,
-239,253,254,255,246,111,254,205,230,246,245,214,150,235,247,  6,119,239,221,125,237,222,157,191,248,171,191,122,227,241,127,177,
-179,187,119,244,226,197,157,  7,247,167,215, 87,117, 61, 80, 85,  3,112,206,229, 16, 47,172, 59,230, 51,158, 41,151,100,153, 26,
-176,230, 88, 72, 33, 56, 32,162, 50,  0,  8,168, 67,100,132, 36,  9,185, 50, 19, 75,121, 41,134,154, 26, 14, 61,  0,177,152,144,
-193, 98, 34,102, 64,139,205,170, 10,190,223,171, 13,161,109, 22,236,168,215,239,199,216,116, 49, 58, 95,161,115,249,235,159, 98,
-154, 47, 87,162,  9,  8,135,195,209,124, 62, 79,177,233,245,123,104,104,106,221,114, 46,105,213,219,216, 80,109,110,221,189,127,
-121,116,188, 92,206, 42,231,130,235,117,205,140,137,171,193, 86,211, 44,118,246, 31,199, 24,153,194,209,229,213,197,100, 18,188,
-155,205,103,215,211,235, 46, 73, 29,194,106,181, 88, 54,171,219, 59,187,111,220,185,181,106, 87,103,147,235,235,197, 34, 37, 35,
-180,136, 38, 89,169,161,242, 92,169, 98, 21,220, 14,141,207,103, 51,209, 92,194, 11, 38,  8, 96,215,179,185,137, 13,122,125,  5,
- 37,196,174,139,109,106,  7,189, 30, 34,  3,194,173,221,189,147,179,211,247,223,123,239, 95,255,171,127,253,250,155,111,130,217,
-116, 54,107,154,213,245,249,201,249,197,217,244,106,242,226,240,213,199, 79, 94, 94, 92,207,230,203,213,237, 81,127,183,231,201,
-210,111,253,230,119,191,250,205,223, 72,109,119,240,236,227,176,181,241,234,197,171,131,163, 99, 95,251,203,143,102,155, 85,239,
-173,251,247,152, 89, 21, 68, 53,195,249,147, 40,103,252, 28,179, 99,140, 73,  1, 64,146,249,158, 79, 49,197, 36,158, 60, 33, 68,
-137, 72,140,197, 64, 12, 64,216, 69, 49,211,138,157,130,117, 34,158, 56,130,137,  2, 19, 39, 83,235, 58,  1,237,133, 10, 84, 20,
-243,105, 72,146, 84, 44,230, 47,128, 26,  4, 87, 42,203,186,152, 15, 92, 16,211,202,121, 32,180,220,111, 74,100,  6,  4,108,168,
-196, 36, 49, 33,  3, 50, 57,240,206,177,  2, 38,  3,231,200, 85, 30, 20, 84, 13, 80, 77,  5, 57,215, 49,172, 17, 82,  4,166, 74,
-182,214,165,160,180,167,154,  1,147,  7, 48,  0,201,237, 12, 41, 38, 23, 24, 12, 77,172,109,163, 35, 34,246,109, 23, 25,201,  7,
-175, 32,146, 52, 64, 70,230,130,115,206, 68, 76,  0, 20,140,243,183, 15,114,231,160,154, 90, 42,189, 29,153,185, 68,200, 38,201,
- 52, 37, 35,  2,172,189, 87, 77, 14, 99,229,114,127,189,151, 86, 75,213, 25, 34, 17,182,203,101, 12, 97,123,247,214,207,126,246,
-139,151,135,135, 49, 37, 21, 65,  4,102,254,232,201,179,233,108,246,246,107, 15,171,224,192,250,157,180, 49, 73,219,182,170, 18,
-106,159,146, 76,154,166,141,237,189,212, 15, 85, 48,246,128, 14,  8, 68,  5,193, 24,156,169, 94, 76,174,107,166, 94,175, 39, 98,
-206, 33, 58,151,186,148, 39, 69, 98, 84, 37,102,140,106,185,209, 84, 84, 36,198, 16,  2, 51, 24, 58,  5, 69,  2,109,219,  8, 70,
-  0,222,187, 76, 70, 69, 48, 66, 20, 19, 75,138,204, 38,108, 32,  4,192, 68,132,172,166,185,130, 77, 68,  1, 21,149, 12, 65, 85,
- 29, 25, 48, 27, 96,219, 44,243,161,199,127,250, 39, 63,164,210, 97, 93,204, 78, 57, 48,157,221, 54,249,151,154,243, 11, 57,180,
- 74, 72, 80,198, 98, 88,247, 73, 81,254,147,228,237, 48,220, 84,106,175, 43, 85, 97,125,192,150, 66, 84, 40, 29, 89,  8,204,232,
-171,126,106, 22,147,166,219, 28,244,242,123,  5,168,116,159,174,169,145,101,183, 15,  5,181,179,254,161,107,209, 22,203,146, 95,
- 76, 19,  2,231,102, 16,188,177,196,151,189, 83,185,103, 80, 38,209, 16,172,157,245,144,163,195,  0,104,106,170, 37,164,188,198,
- 18,195, 77,106, 22,202,118, 92,242,164,164,200, 27,183, 30,121, 77,171,217, 53,249,170, 55,222,253,201,255,251,127,254,127,127,
-251,203, 63,255,151,255,106,188,179, 25,187,148, 99,166,251,143, 31,159, 61,123, 62,185,186,232,247,  7,189,170,167,104,131, 94,
-245,183, 63,249,197,206,198,104, 56,168, 94, 29, 28,236,221,187,191,152, 78,217, 57,239,  3, 59,159, 49,127,228,124,126,163, 18,
-175,139,210,161, 20,129,100,  3, 46,220, 20, 40, 18,103, 66, 14,  2,114,168,123, 91,187,214, 70,118, 46,251,152,192,121, 48, 65,
-118, 96, 96, 77, 75, 76,169,107, 32,138,235,213, 23,231, 23,207, 63,251,164, 63, 28, 63,120,227,189,173, 17,191,120,246,172, 83,
-114,140,237,170, 35, 95,  3,122, 38,117,218, 58,246,211,217,245,179,131,195,139,203, 43, 81,248,238,183,190, 95,123,143,132, 41,
-105,215,197, 59,247,223,188, 60,126, 10, 85,125,242,233,207,118,239,188,102,139,163,147,163,151,224, 42, 80, 81, 75,131,205,253,
-166, 89, 17,121,102,215, 53,243,213,244,188,137,241,248,242, 98,185, 90, 94, 76,206,174,174,175, 13,144, 17, 23,171, 37,162,219,
- 28,140,238,239,110,158, 76,174, 62,120,250, 98,217,118,193, 85,227,225, 40,132,138,  8, 85, 12, 10,150, 35, 99, 47, 80, 13,123,
-253,126,143,221,172, 89,150,141,253, 58, 90,209,106, 36, 68,231,188,169,130,105,  8, 97, 80,247,154, 20,  3, 57,145,248, 47,126,
-244,195,255,250,191,252,175,118,239,221,  1,128,166,109,103, 87,215,179,139,179,179,243,227,131,131,131,143,158, 61,253,224,147,
-103,151,243,165,117,221,163, 33,239,143,199,227,205,241, 63,255,103,255,244,203,223,248,250,241,243,207,140,186,167, 79, 95,254,
-205,127,252,137,105, 90,182, 93,119,189,218, 29,141,182,199, 67, 98, 84,179,140,177, 69,  4, 53,169,216, 27, 64,237,157,168,117,
- 73, 17,136,179,105, 93, 37,143,109, 73,147, 38,115, 57,203, 77, 64,132, 14, 72,146, 34, 50, 33,181,154, 16,160,242, 14,153, 60,
- 58, 51, 97,230, 20, 35, 19, 57,162, 54, 70, 65, 97,100, 34,146,164,209, 20,  1, 99, 74,222,185, 64, 20, 85,193,160,252,101,136,
- 42,239,188,247,146, 84,  5,144, 64, 82,110,228, 32,212, 12, 81,209,236, 82, 70,  2, 98,  6, 34,239,188,243,204,196,177, 19, 42,
-109,204,202,159,127,188, 64,200,236,  8, 16, 25,185,208, 78,144, 76,164,116,153,113,105,236,203,171,234, 20,163, 39,  6, 68, 83,
-141, 41,121,231,139,139,142,137,153,204, 18, 24, 50,162, 34, 56,239,192, 76, 98,  4, 66,199,108,152,255,158,142, 28, 49,179, 98,
-126,121,  3,  0, 56,226,204,163, 66, 77, 64, 36, 41, 33, 17, 57,236, 82, 71,132,206, 99,221,247,206,145, 34,169, 16,115, 64,118,
-160, 22,219,102, 42, 54,190,251,112, 54,155,191,122,246, 98,190, 88,154,  8, 34,238,239,237,142,135,163,243,211,179,199,219, 27,
-177, 93,184, 80, 63,184,127,187, 93,197, 36, 34,102, 41,165,249,124, 57, 26,244,183,183,183,142, 47, 39, 11,145, 10,201,179,137,
-161,169, 32, 24,168,154,232,178,137,179,249,116,107, 60, 10, 33,212,189, 30, 50,117,177, 69, 67, 67, 65,228,124,  6,170, 10,136,
- 73, 23, 59,137,181,115, 64,212,197, 46, 38,113,  4,222, 85, 49,137,170,  5,207,156, 91,225,  0,200, 49, 32, 39,233, 24,  9,217,
-139, 38, 66, 12,228, 82, 18, 53, 13, 62, 83, 55, 65, 74,230,  3,145, 80,162, 48, 81, 39, 98,217,139, 99, 70,200, 49, 41,255,243,
- 63,249, 35,  6, 34, 96, 68, 99,162,155,162,189,140,172,203,  8,  2,184, 97,138,  1, 98,190,114, 26,222,164,159,214,227,110,158,
-254, 13, 11, 21, 11, 50,115, 55,165,117,231,224,154,136,152,235,  8,214, 69, 26,132,168, 85,  8,103,103,151,155,227,177, 22, 45,
-209, 16,145,179,155,135,110, 58,208,243,170,198,110,216,144,249,  2, 65, 89, 17,208, 53,142,  6,141, 74, 60,137,224,134, 76,133,
- 64,144,177,120, 25, 73, 10,217,  6,105,  6, 38,249, 34, 64,165, 46,  1, 48,255, 15,145, 28, 97, 64,116, 68,133,117, 69,235, 66,
-141, 28,162, 31,142,247, 29,232,252,226,216, 87,131,193,198,246,243,207, 62,250,139,127,251, 31,255,179, 63,255,151,119,239,239,
-205, 98, 88,172,  0,  0, 32,  0, 73, 68, 65, 84, 47,230, 11, 68,116,193,115,  8,136,180,123,239,193,  7, 63,253,251, 94, 47,120,
- 31,170,208,243,190,154, 78, 39, 31,124,246,244,215,190,244,238,253,  7, 15, 22,179,105,221,235,173,102,243,170,170,205,  4,200,
- 57,174, 10, 79,223, 82,174, 33, 52,203, 25, 96, 46,182,184,117, 25,113,185,126,163, 67,100,181,212, 31,111,135,170, 87,118,106,
- 76, 42,136,150, 10,241,205,121,149, 36, 93,219, 77, 39, 92,247,  8,233,252,240,240,240,232,229,230,237,135,123,183,118,  7, 27,
-163,103,207, 94,173,150, 75, 75,105, 57,187,178,212, 50,249, 16,168,242,166,170,231, 23, 23,175,142, 78, 38,179,153,115,252,250,
-237, 59,210, 44,218,102, 41, 18,119,246,110,135, 42,204, 23, 43,135, 54,222,217,111,163,168, 68, 35,214,118,217, 31,110,134,254,
-168,157, 95,184,224,130, 15,210, 78, 23,243,107, 32,247,234,228,248,197,233,241,189,253, 59, 49, 37,252,255,169,122,179, 95,207,
-178,235,190,111, 77,123,159,243, 27,238, 88, 99,207,221,236, 73,164, 72, 74,156, 36,146,226, 40,106, 36, 69, 81,164,133,200, 38,
- 69, 89,177,173, 40, 72,140, 12, 22,242, 18, 36,128, 31,243, 15,228, 37, 47,  9,  2, 35,128, 96,196,116,100, 11,176,104, 72,130,
-172, 64,150,100,155, 18,  7,145,236,169,170,250,214,173,186,117,231,225, 55,157,179,247, 94,107,229, 97,159, 95,181,242,208,232,
-135,174,170,174,170,251,187,231,236,189,214,247,251,249,  0,143, 71, 13, 56,148,220,237,110,110,  4,225,215,246,238,159, 94,206,
- 54, 70,147,174,239,163, 52, 34,204,204,141, 52,227, 81, 59,157, 76,198,237,120, 58, 30,  3, 98, 74,217,204, 74, 78, 44, 64,196,
- 41,149,255, 95, 17,195, 33,229,220, 84,130, 21, 96,133,164, 92,204,230,239,126,249,165,127,252,247,127,243, 11, 95,252,146,140,
-167,174,186, 90, 46,206, 79,142,142, 31,238, 61, 60,120,112,240,232,224,141,123,111,191,181,247,176,235,243, 98, 49,127, 98, 36,
-207,220,190,249,147, 31,251,248, 23,127,249, 11,227,201,232,228,248,225,157, 59,111,244,185, 80, 32, 96, 60,222, 63, 26, 17,223,
-220,221,158,140, 90,  4,119, 32, 29,148, 44, 64, 66,  8, 82, 69, 60,125, 42, 82,117, 63,  8,  6,104,232, 21, 87, 57,140,254,134,
-173, 87,253,104, 97, 42, 86,155,164,110,186, 78, 57,122, 12,226,230,165,104, 54,103,150,170,  2,110,131, 48,114,229,  7,120, 21,
-  3,  3, 54, 77,163, 69,135,254,202, 99,119,177,176,102,117,175,231,130,225,177, 42, 33, 34, 34, 48,168, 22, 48,171,225, 97,102,
- 65, 36,105,  4, 17, 89,  2,173,239,224,248, 88,164, 12,107,126,149,112,197, 82, 58, 32, 19,186, 85,221,241,112,254, 42, 53,167,
- 11,100,106, 44, 28, 99,163,102, 41,103, 38, 22,145, 74,243, 27, 34, 48,110,176,222,184, 14,171, 87,  0, 14,209,  7,  4, 12, 35,
- 50,  5,102, 34, 85,211,148,134,166, 19, 81,177, 12,224, 76,236, 80, 17,151, 68,132,102,  0, 70, 44, 82, 77,112,195,  2,187,102,
-139,205,201, 52,169,198,235, 79, 36, 45,255,254,207,254,242,236,226,162, 62,224, 70,109,123,109,123,123, 62,159,189,231,230,206,
-171, 79,221,158,182,237,124, 49, 59,159, 47,  1,105,123,115,179, 79,217,172,184,251,162,235,175,174,102,219, 27, 83,  9,225, 42,
- 39,206,214, 54,244,216,117,137,196,103, 87,151,145,112,107,103, 27, 99, 44,197, 76, 11,147, 32,227, 64,122, 33, 66, 66, 85,175,
-110,206, 97,107,232, 64, 72,177,137,106,158, 74,207, 67, 75,  0,234,181, 76, 72,220,220, 77,  9,217,220,221, 52, 72,  0,162, 98,
- 90,185,158, 53,222, 10,  6, 84, 57, 23,238,110, 32, 66, 85,100, 10,195, 78, 17,  9, 49,231, 36, 67, 78, 30, 29,153,193, 42,106,
-172,106, 66,209,134,175,159,213, 77,123,125,208,195,112,182,246,129,213,230,235,217,188, 15,  3, 24,243,250, 40,174,118,  2,164,
- 58,106,124, 39,  0,227, 44,193, 74, 81,115, 80, 67,128,146,250,208, 52, 12,185, 20,175, 44, 22, 31,104,148,  0, 72,192, 84, 65,
-151,235,201,248, 26,  3, 90,231, 61, 53,232, 60,212,184,134,177,188,175, 27,182,245, 20, 95,  7,239,180,190,240, 13, 47,  6,119,
- 43,149,200,235,158,213,164, 86,  6,201,135,  0, 88,189, 46,212,209, 24, 65,197, 92,160,  0,152, 91,113,167,209,100,139,205, 86,
-231, 51, 77,101,250,212,238,219,111,124,255, 95,253,254, 31,124,238,167,127,238,153,167,174,207, 47,206,157,163, 27, 74,219,186,
-154,165,124,253,137, 91,207,191,244,202,163,253,187,109,211, 86, 56,246,187,223,253,234, 31,255,233,191,255,225, 91,119, 62,246,
-145, 15,222,125,227,135, 28, 37,247,169,109,218,102,186, 37,238,230,  5,134,251, 18,107,202,142, 72, 40,110,197,144,201,171,194,
-144,220,134, 78,150,123,189, 82, 84,246, 95, 52, 51,102,242,146,205, 24,209, 93, 21, 20, 93,168, 20,115,  0,203,125,152,108,131,
-132,146,186,110, 49,219,185,245,220,104,114, 77, 75,118, 20,203, 89, 23,103,189,  5,  8,109, 16, 22,194, 16,140,136,186,213,106,
-181, 90,229,146,213,124, 50,106,167,227,201,120,251,250,226,236, 97,206,105, 60,153, 94,158, 60,236,150,243,102,247,214, 98,118,
- 24,227,102,215, 41, 97,140,163,105,211,198,229, 98, 49, 26, 79,143,246, 95,227,184,105,230, 39,  7,247, 54,118,111, 95, 45,150,
- 87, 23,151,151, 87,151,211,209,196, 76, 17,253,198,134,176,141, 15, 79,207,132, 67, 46,118, 49,159,223,222,221,109, 66, 72,150,
-117,149, 28, 64, 43,249,121,173,254,237,251, 52, 20, 18,  0, 75,182,150,163,183,126,181, 90,112, 93,  5,173,211,145,179,213,106,
-107, 83,162,200,213, 98, 65,147,209,127,245,245, 95,255,210, 47,126,254,230,237, 39, 65,184,228,126, 49,155, 29,236,221, 57,120,
-248,240,244,242,252,209,233,233,209,209,233,217,229,172,235,186, 92,244,222,254,193,  7, 63,245,209, 95,251,234,215, 54,183, 55,
- 46,143, 15,112, 28, 15, 78, 30, 29, 28,159,110,117,249,209,201, 89, 89,118,215,183, 54, 70, 33, 84,241, 69, 37,212, 19,177, 91,
- 70,224,218, 50,175, 59,163, 48, 64,179,171, 32,200,235, 73, 22,107,199,199, 21, 17,  8, 67,241,108,238,232, 16, 68,212, 10,  2,
-155, 58, 50,176, 48, 58,228,172, 69, 75, 51, 10,214, 91, 49,  3, 98, 34, 82,128,100, 26,232,113, 53,207,  9, 61,229, 84, 11,227,
-238,238,  8, 66, 66, 12,230,181,111,239,194,164,102, 76, 12,232,174,170, 86,132,184,250,179,193,234,123,  9, 88, 56,198,152,251,
- 92, 45,119,196,132,230,170,142,132,181,139,224,213,235,188,254,158,170, 22, 53,192, 10,  6,198,154, 95, 20, 98, 43,198, 49,178,
-144,169,247, 57, 17, 64,  8,204, 72, 54, 80,  2,217,235,239,155,200,193, 57, 68,183,108, 14,174, 42, 33,212, 56,204,  0,254, 54,
- 40, 41, 91,213,235,212,233, 36, 99, 46,134,136, 34, 81,179, 18, 98, 77, 14,214, 56, 95,140,193, 17,204, 33,231,202, 45, 64,  4,
-  3,119,114,239, 83,214,201,180,235,251,189,189,183, 23,203,101, 37,238, 78,154,230,125,239,121,207,183,190,247,253,103,166,252,
-236, 19,183, 28,121,131,195,139, 28, 30, 28, 29, 95,186, 74,144, 40,  2, 30, 83,201,110,154, 82,153,205,151, 44,125, 19,227, 57,
- 98,187,234, 67,136, 33,142,  0,113,177,234,180,207, 55,111,239, 18,135,250,148,174, 71, 79, 38, 10, 44,166,102, 86,123,139,  0,
- 68,224,142, 84, 25, 60,188,234,123, 93, 46, 41,196,128,100, 94,135, 97, 22,145, 20,170, 77,139,214,154,101, 30,128, 97,  3, 39,
- 22, 74, 46, 18,197,181, 84,146,137,187, 19, 56, 19,230, 58, 64,119, 39, 68, 85,245, 98,192, 96,174,252,213, 47,255,242, 32,242,
- 92, 87,129,134,150, 81,253,209,180, 86,122, 12, 13,248, 53,255,  7,  0,  8,137, 42, 31,134,  9,201,  6,147,198,186,183,191,  6,
-101, 84, 92,212, 48, 37,169,184, 12, 53,211, 58, 94,  7,170,217, 38,128,146, 58, 67,153,140,  6,107, 73,101,243, 12, 72,151, 33,
- 75,255,120,234,179,  6,231,226, 59, 36,246,199,167,238,122,156,175, 16,204,250,113,169,131, 30,170,  0,189,202,134, 52,127,135,
-113,178,254,165,  7,233, 88,117, 57, 97, 28,  4,129, 48,148,102,  1,129, 80, 16,205, 20,166, 27, 55, 24, 40,245, 43, 68, 30,111,
- 95,187, 60, 63,249,103,191,251,141,159,248,216, 39, 63,244, 19, 63, 89,208,205,137, 36, 80, 16, 68,164, 70,170,219,122,107,123,
-247,123,127,253,173, 70, 68, 98,195, 44, 77, 24,161,235,183,190,243, 55, 47, 63,247,244, 51, 47,190,116,126,118,250,234,143,254,
-216,229,249,  9,197,136, 21, 12, 28, 27, 83,173, 23, 29,175, 87, 12, 17,215, 60, 72, 73,253, 29,219,  8, 12, 99,172,  0,128,161,
-153, 52,227, 22,153,205,192,213,136,  5,212,172,100,168,141, 67, 71,237, 59,108, 26,239, 22,230, 14,163, 29,195,176,152, 93,222,
-126,250,153,241, 56,220,121,243,110,202,154,138,177,132,102,178,129, 96,163,198,  0, 32,245,253,241,241,241,195,147,147,249,188,
-187,182,181,253,204,205,155,227,182,237, 23, 87, 40,194,100, 94,250,  2,152, 87, 23, 44, 35,102, 58,121,120,247,246,115,175,140,
- 39, 91,147,233, 54, 34, 93, 94,157,  8,142,227,120,210,140,118,118,111, 60,131, 49,236, 29, 29,134, 24,172, 88, 82,189,185,189,
-177,184,186,124,251,240,248, 98,213,165,156, 75,201,211,209,228,240,244,100,217,247,163,209,200,244, 49,218, 31,235,  5,189,118,
-171,115, 46, 67,209, 98,232, 92,123,211,  4, 84,232, 74,166,199, 54, 71, 34,112,116,211, 85,223,125,236,253,239,251, 31,255,219,
-127,252,243, 63,255,139,163,141,205,130,182,154, 47,102,231, 71,123,119, 94,191,115,231,206,131,195, 71,119,246,238,239, 31, 28,
- 93,204,102,169,148,251, 15, 15,217,225,127,250,173,175,255,231,191,254,181,210, 47,115, 90,190,241,250,107,111,190,241,214,201,
-233,249,124,177,186, 60,189,156,176, 92,223,220,104,130,212,130, 89,109,182,153,  1,  2,  4, 18, 36,124,220, 55,102,228,172,190,
-214,207,160,130, 34, 16,177, 56, 12, 90, 95, 43,197,135,  0, 24,  3, 14, 50,221, 97,148, 72, 84,121,169,160, 30, 99,112, 32, 29,
-146,109, 94,141,154, 33, 72, 53, 25, 33,129,173,105,163,132, 84,143, 61, 49, 48, 85,152,181,163, 13, 91, 92, 24,224,  7,165, 16,
-  9, 49,162,224, 99,143, 37, 97, 61,249,130,106,133, 83, 57,135, 88, 89,102,245,142,136,196, 52, 64, 65,180,178,  6, 96,221,172,
-103, 98, 83, 87, 45,109,  8,200,  4, 72,109, 59,114,117, 55, 75, 37,183,109, 91,211,114, 89, 51,178,  4,150, 58,175,117, 85, 67,
- 12, 44,170, 69,205,153,128, 88,144,  4,153, 56,202,160,127, 94,247, 18,131, 80,101,115, 87,254,196, 32,152, 68,174,231, 61,  7,
- 36,146, 32,193,215,104, 20, 22,113,135, 46,171,171, 19,113, 94,117, 11, 76,211, 91,207,189,254,218,157,187,247,246,114,201,128,
- 64, 72,227,201,228,240,236,124,108,171, 15,189,252,162,180, 99,174,127,113,204, 27,177, 97,164,179,213,106, 52, 26, 95,219,222,
- 90,172, 58,213, 34,194,171,156,186, 85,218,217,156,160, 68, 72,186,187,179, 89,204,  1,125,149, 74, 32,223,190,118,173,126, 53,
-107,182, 67,130, 32, 81, 81,203,185,135,161,  3, 92, 25,  6, 40, 66, 78,172, 93,  7,174,132, 94, 31,146, 73, 53,178,  0,135,100,
- 89,  0,161,  2,150,171,110, 69,173, 88,169, 84,126, 98,118,119,225, 10, 54,112,172, 27, 11,115,119,232,115, 65,  0, 18, 68,164,
-156, 50, 11,163,160,155,119,171,196, 95,253,202, 47, 33, 16, 62,214,150, 14,159, 50, 24,198,187,184,182,246,213,235, 72, 45, 25,
- 80, 61, 54,250,208,181, 92, 87, 93, 97,157, 94, 30,118,153,176,198,152,250, 80,232,175,105, 21,120, 28,107, 91,139, 89,153, 80,
- 68,174,150,253,246,100,188,206,177,172,191, 81,135,152,200, 99,  3, 83,125,250, 15,163, 42,  7, 95, 19, 66,135,148,207, 80,248,
-  4, 95, 19,  5,106, 54,127,160,128,213, 23, 24, 13,107, 84, 90, 59, 99,235, 11,133, 43,215,  9,152,  5,227,154,170, 94, 79,141,
-132, 72,128,138, 72, 77,179,217,112,236,230,179, 82, 74, 59,158,164,126,249,255,252,222,191,126,247,143,126,240, 83,159,250,169,
-226, 70, 18,173,100, 22,137,177,  1,114,116, 50, 51,205,186,177,115,109, 53,155,221,187,119,103, 60,106, 70,147, 41, 19, 78,219,
-184,183,255,112,182, 88,125,248,195, 31,154, 93,156,157, 93,156,175,150, 51, 65,146, 16, 88, 26,176, 74, 61, 32,215, 82, 52,161,
- 87, 93,189, 59,  2, 75, 24, 30,238,235,202,216,250,143,137,227,237,157, 16,163,229,226,169,175, 19,124, 64,228,208,212,191,106,
- 96,212,148,220,212,145, 39,215,175,165, 98, 15,246,246, 23, 93,255,228,211, 79,141,167,237,254,189,189,213,114, 46,177,105, 68,
-132, 72, 70, 45, 67,114,203,169,239,247,246, 31,158, 92, 92,206,151,221,173,157,173, 23,158,124,242,242,226, 76,198, 27, 55,159,
-122,151,132,105,234,242,120,115,231,209,222,107, 72,  4, 86,220,140,161, 28,239,191,198, 44,139,171, 83,  4,230, 16,151,171, 21,
-120, 22,  9,  7,143, 30,254,224,238,155,165, 20,  4, 13, 80,250,148,226,104,251, 98,190,188,127,240, 48,245, 73,130,148,146, 82,
- 46,171,174,103, 97, 33, 30,148, 47,131,181,203,137,107, 62,  4,194, 90,168, 91,207,234,102, 94,137,181, 69,181,126,209, 25, 81,
- 85,183, 54, 54,127,235,239,253,103,255,243,239,252,147,119,253,200,123, 81,130, 89, 89, 94, 93,157, 60,218,191,251,214,235,175,
-189,245,230,254,193,225,157,  7,  7, 71,167,231,102,142,200,155,211,205,207,124,248,  3,191,243, 15,190,246,145, 15,127,224,244,
-228,224,193,222,189,195,227,163, 56, 29, 49,241,157,215,223,222,110,155, 39,119,119, 55,198, 35, 66,174,221,162,162,102,197,144,
-134, 34,210,227, 79,117,213,200, 20, 53,124,140,187, 28,216, 25, 96, 94, 28,192, 75,241,162, 54,124,251,184,185,149,172,  8, 80,
-215,199, 67,191, 20, 77,205,218, 81,163, 10,128, 16,  2, 13,191,130, 57, 11,187, 13,159,109, 53,231,138,185, 70,116,116,102, 68,
-166,146,213,220,107, 89,191,254,176, 24,197,205,189,216,122,141,  4,228,228,106, 72, 36, 81,234,208,211,208, 16, 73, 98, 36, 71,
- 45,250,248,236, 84,231,229,176, 46,108, 51,139,185,173,  7,166, 53, 78,140, 77,219, 20, 53, 98,174, 92, 63, 55,119,130, 38,180,
-166,131,150,  7,106, 50,193,193,235,157,134,165,109, 26, 53,171,158,102, 22,  1,170,106, 42,172, 66,205, 97,172,  1, 96,174,106,
-234,104, 65,196,205,112, 64, 51,129, 91, 65,198, 16,132, 68, 28,173,  6,189, 99, 96, 65,236, 75,113, 43,224,228,142, 90, 52,121,
-226, 27, 79,158,159,207,246,246,246, 86,203,101,165,196, 63,255,204,147, 27, 27, 91,151,103,199, 63,245,242, 11,211,205, 45, 14,
-177,150, 30, 57,132, 81,219,140, 66, 12,102,171,126,217,153,183, 77, 59, 26, 79, 22,139,149,106, 61,233,226,241,249, 69, 35,176,
- 61,110, 36,136,179, 92, 94,206, 54, 55,198, 18, 35, 20, 67,162, 16,155,166,109, 81, 66,125, 10,161,  1,  2, 26, 58, 86,175,156,
-176,170,163, 91,125,220,155,131,169,214,244, 68,  5,196, 10,135, 84, 50, 85,189, 44,113,189, 42, 17,179,149,130,213,101,205, 53,
-165, 90, 31, 89,200, 64,106, 90,187, 14, 34, 84,241,241,196,100,128,150,173,126,255,  8, 62, 70, 36,226,160,133,115,180, 53,148,
-119,200, 64, 85,212, 21,241, 90,178,240, 56,220, 50, 60, 97,235,188, 75,  0,173,244,206,193,104,168,153,193,223, 66,156, 59, 16,
- 16,227,128,109, 31,182,172,232,104,  4,104,234,200,220,247,157, 34,  1,168, 91, 53,144,185,187, 85, 72,239,  0,151,135,  1, 11,
- 92,205, 30,104,238,110,  3, 29,119, 29, 99,127, 44,  6, 25,134,254,248, 14, 59,198, 31, 31,245,215,128,204,225,210, 83,215,  8,
-132, 14,164,142,100,238,172,180,206, 27, 13,252, 30,116, 53,156, 76,174,177,150,249,217,177, 34,143,167,155,162,171,255,251, 95,
-254,139,205,157,103, 63,241,241, 15, 25, 11,228,190, 44,230,212, 78, 89,154,202,170, 55, 83, 77,  6, 72,121, 57,127,255,143,125,
-232,173, 31,252,205, 98, 57,107,154,182, 29,111,180,155, 91,239,127,239,123,190,243,189,239,190,241,250, 27,239,250,145,247,252,
-197,159,252,209,139,175,188,251,226,244,176,235,  3,135, 72, 52,169,209, 33, 32, 18,137,136, 84, 67,238,232,224,165, 32,177,150,
- 12, 81, 88,194, 99, 47, 57,  2, 74,140, 86,119,203, 33, 32,  1, 40, 89,238, 60,  0,  9,155,106, 73,102,170,200, 50,190,190, 35,
-147, 54,221, 63, 76,125, 65, 83,235, 23,200,215, 44,245, 78, 77, 32,147, 32,161,153, 94, 93, 29,181, 91,193, 12, 82, 74, 93,206,
-102,166, 94,158,126,226, 73,230, 24,219,166, 29, 77, 66,104,  0,209,209, 78, 31,188,182,185,117, 19,226,244,234,226,112, 50,106,
- 75, 49,119, 89,245, 93, 28,109,104,233, 79,246,222, 28,221,124, 22, 11,228,146,175,186,126, 99, 50,106,144,150,253,226,232,172,
- 75, 57,191,248,236,238,243, 79, 63,125,121,117,121,103,127,127,149,243,246,116,115,115, 50, 45,170, 53,237, 81, 87, 12,230, 54,
-112, 14,141,221, 13, 12,140,214,103,137, 53, 63,147, 16,182,101,178, 96, 89,229,164,165,  0,208,103, 63,246, 19,191,253,245,175,
-127,240,131, 31, 65,  9,203,212,151, 46, 93,158, 29, 61,216,187,123,231,238,221,  7,199,199,  7,199, 39, 23, 87,243,148, 82, 42,
-170,186,250,145,231,158,253,233,159,252,240, 39, 63,250,161,110, 62,123,248,112,111,101,229,181,253,253,221,205,233,236,242,252,
-248,237,195,167,110,236, 78,218,198,220,192,  0,153,  7, 35, 11, 14,201, 23, 90, 31,128,234,216, 23,  0,114, 54,  3, 21, 98, 36,
- 54,247,154, 56, 84, 85, 87,205,154,187,190,147, 16,  4,153,153,193, 16,136, 66, 16,115,115,115, 66, 44,166,136, 20, 67, 83,114,
- 41,197,137,145,131,228,156,235,156,180,226,198, 66, 45,175,154,173,219,206,192,224,107, 86,158,185,154,  3, 82, 32,115, 21,137,
- 68,172,170,128, 64,129,144,168, 58,108,128,128,155, 48, 96, 59, 24,153,217,235, 59, 82,139, 57, 18,145,155, 59,168,132,  0,102,
-102,  3,168,207, 29,173,162,216,221,161, 86, 66,  8,177,128,155,135, 16,192, 93,221, 28, 48,198,160,238,165,104,125,249,161,  3,
- 26, 20,215, 97, 29, 34,108,  6,165,228,122,144, 34, 51, 47, 86,125,126,224,195,131,165, 90,103,145,169, 54,  3,204,114,201, 42,
- 36,101, 16, 60,212, 11, 60, 19,137,153,170,106, 12,132, 28,138,218,154, 74,199,106, 30,152, 86,221, 10,119,110, 34,143,126,240,
-253,191, 58, 62, 57,  3, 84,102,154, 78, 39,161,137,103, 23,151, 63,241,226,243,219,215,174, 23, 71, 84,139,177, 81,118, 45,125,
-178,130, 66, 79,222,184, 54,105,227,193,229,153, 55, 45,182,227,146,138,154, 78, 71,205, 43,175,190,252,253, 31,188,126,125,186,
- 65,196,224,124,117,185,100,128,102, 52,114,117,103, 20,145,216, 54, 44, 65,221, 66,108,220,113, 57,191, 42,171, 21, 19, 18, 83,
- 81,173, 10,110, 95,195, 96, 25,221,133,170,246,150,  3,149,140,110, 26, 66,228,122,151,130, 66, 65, 92, 13, 28, 80,  4,220,145,
-  9,128,153, 84,179, 57, 86, 18,135,187, 59, 11,187, 91,238, 13,184, 26,191, 17,193,155, 40,142,132,185, 72,229,237,255, 45,207,
-167, 85,234,244,  0,227, 27,234,191,104,245,177,190,206,198,215,201,204,227, 12, 31, 85,170, 58,160, 16,224,176,114,169,167,120,
- 48, 85, 34,  2, 38,  7,112, 37,112,165,186, 42,170, 18,141,138,166, 67,136, 65,  2,148,229,114, 53,109,216,215,209,220,  1,235,
- 72,130,128,192,  6, 74,102, 90, 61,140,195, 75,162,128,105, 25, 14, 27, 53,148, 54, 12, 33,125, 96,220,212,  9, 34, 83,157, 59,
- 13,181, 91,170,236,174, 53, 22,109, 80,247,209,154,100,128, 80, 91,172,195, 59,108,232,146, 54,113,131, 85, 75,214,229,242,106,
-186,125,115, 58,150,111,252,139,127,121,213,243, 87,126,246,179, 24, 56,119, 29,  5, 78, 93,215, 54,  6,104,  3, 27, 36,247, 86,
-136,  2, 47, 46, 23,132,242,234,203,175,124,247,245,239, 52, 77,219,142, 38, 65,154,103,159,123,246,225,195,131,255,248,173,191,
-186,182,187,225,  8,142, 20,219, 81, 55, 95, 76,198, 91,104,102,132, 76,193,209,  6,210,252,112, 10,136,166,  5, 76, 73,  2, 56,
-186, 42, 18, 33,203,223,106, 39,187,101,163, 24,202,106,137,178, 86, 62,  6,174,185,104,100,105, 54, 38,161,141, 80,108,118,113,
-110,104,197, 74,159,115, 96,170,165, 58,142,155, 64,174,101,181,188, 58,198,173, 91,134,158,179,246,169, 79, 69,221, 96,103, 60,
- 97,193,  8,160, 90, 70,211,105,  8, 97, 49, 59,115,222,104, 55, 54,132,169,191,162,166,221,228, 24, 71, 27, 29, 35,148,180,236,
- 23,139, 66,180, 53,217,188,186, 56,207,169, 39,239, 91, 76,251,199,151,177,105, 75, 49, 64,126,227,222,157,107,215,182,111,221,
-186,177,247,224,193,124, 62,239, 82,154,182, 77, 16,169,196,149,154,175, 37,115,100,246, 90, 34,174, 83,104, 70,115,  0,179,  1,
- 43, 97,102,136,196,184, 57, 26,245, 37,111,111,111,252,215, 95,251,141, 47,125,225,243,237,214,246, 42,103,235,186,126,181, 56,
- 63, 62,216,123,251,238,157,189,135,123,  7,  7, 39,151, 23,245, 15,  4,230, 59,211,201,251, 95,124,246,107, 95,254,210,198,180,
-189, 56, 63,125,253,  7,223,167,209,116,222, 47, 90,145,183,126,120,119, 20,227,179,215,119, 36,200,192,123, 33, 28,  8,183,  6,
-204,140,110, 21, 56,103,232, 78, 40,136, 14,144,146, 18, 58,209,160,166, 51,213, 92,114,  5, 19,116,125, 90,165, 46,245,201,205,
-146, 65,211,182,109, 24,  1, 40,162,  8,178,155,117, 90,154,216,  8,139,213,137, 12,  1,128,231,146, 75, 46,196,  2,224, 65, 16,
-136,188,254,231,122,238,179, 97, 69, 85, 80,173, 74,242, 98, 61, 12,214,161,  7,173,147,246,106,197, 29,156, 43,226,128,165, 86,
-  7, 88,168, 86, 90,  0,161, 20,117,243,208,114,213,125,148,129,201, 12,  0,200, 40,106,134,  3, 50,209,115,206, 18,132, 88, 16,
- 32,196, 80, 65,  3,197, 84,136,153,165,170,125, 40,240,122,106,204,204,140,158, 57, 70,  4, 79,125, 34,102,  7,100, 22, 22, 46,
- 10,128, 90,157, 16,182,190,139, 19, 98,173,132,  1, 20, 85, 69, 18,116, 42,110, 80,177,136, 49,212,239,243,162,  5,200,219,201,
-200,114,201, 37, 49, 72,165,223, 32,  0, 35, 25, 88,118, 26, 53,227,171,139, 83, 36, 52, 87, 66, 26,143,218,247,190,242,242, 27,
-247,238, 63,209,198, 39,110, 92,115, 17,  2,174, 29,162,218,132, 15,177,117,114, 43,190,181,179, 35, 28,206, 46, 47, 46, 82,122,
-225,185,167,154,166, 77,169,191,255,240,112, 20,228,250,246, 38, 16,171,123,183, 92,238,236, 76,131,196,106,141,  6,247,146,146,
-230, 82,227,236,220,182,204,132,109,212, 92,114, 86, 52, 53, 34,  2, 71, 22, 85, 35, 66,  3,118, 47, 66,148,139,101,243, 24, 69,
- 45,104, 89, 57, 50, 49,184,163,103, 37, 30, 70,221, 69,139, 21,173, 97, 45,150,208,149,  2, 96,132,140,204,170,133,  0, 72,208,
- 10, 40,  0, 49, 48,144,155,131,171,  8,136, 59,161,  2, 49, 33,113, 13,255, 57, 26, 13, 40,130,225, 25,237,234,143, 81,193,117,
- 28, 99, 86, 97, 38,245, 31,  0,160,186,153,169,  8, 26, 92,247,135,234,110,215,209,234,161,160, 18,199,220, 84,144,212,  7,151,
-164, 87,102,173,209,116, 50,154, 45, 87,155,227, 45, 85,179, 10,217,169,112,211,186,156,177,186,155,  1,  7,119, 43, 85,252,184,
- 22, 40,213,209,167, 33,210,154, 68, 63,252, 91,213, 24,217,107, 73, 99,205, 45, 25,126,159,143, 35, 12, 85, 73,101, 62,212,119,
-  7, 78,142, 15, 51, 74,174, 68,189,192,106,125, 74,221,106, 37,113, 60, 25,143,255,240,155,191,191,119,124,245,107, 95,252, 37,
- 48, 77,243, 21,  8, 33,141, 43,231,171, 70,210,173, 87, 55,114, 77, 38, 77,201,189,165,171, 23, 95,124,229,181,183, 94, 95, 44,
- 22,227,209,188, 29, 77, 67,104, 94,122,241,249,191,254,246,183,247,247,246, 62,252,209,207,222,187,251,218,205,219, 79, 28,237,
-239,229,210, 17,  5,150, 88,107,  5,128, 58,100, 96,136,204,242,122, 19,129,192,  3, 79,217, 75,  6, 64,146,  0,170, 53, 16,236,
-230, 90,172, 70,143,165,105,220, 13, 74,  1,179,176,185,209, 76,198,110, 94,186, 62,151,186,100,206, 23,167,103,169,175,211,110,
- 18,  9, 18, 67,238,251,148, 11, 33,131,231,249,114,145,250, 84, 74, 14, 65, 38,227, 81,202,165,148,254,230,245,167,219,201,100,
-121,121, 28,227,104, 50, 41, 77,172,  9, 64,118,192,249,217, 33, 69, 42, 89,103,151, 39,170, 62,221,184,121,121,188,215,229,252,
-230,221,215,190,115,231,110, 46,152, 77,111,223,124,130, 89,206,175,174,174,174, 86,243,213, 66,152,183, 54,166, 41, 23, 34,208,
-162, 86,245, 13, 18,107,159,179,184,  7, 51,  5, 21, 67, 71, 44,158, 45, 33,215,199,212,128,201,171,226, 58, 71,244, 95,249,220,
-103,126,253, 87,127,237,213,151,127,164, 39, 47,238,125,183, 92, 94,156, 31, 30,236,191,117,247,238,219, 15, 15, 14, 78,207,102,
-243,133,154,239,108,110, 45, 87,203, 27,155,155,191,250,243,159,249,192,123,222,125, 53,187,184,119,119,239,244,226, 10,218,136,
-164,111,190,126,103,179,105,111,239,110,141,154, 88,177, 89,104,128,132,224,238,197,220,181,105,218, 92, 10, 19,187, 89,214, 82,
- 93,195, 61, 25, 40, 80, 32, 51,171, 99, 76, 51, 16, 33,118, 66,242,148,148,168,  9, 82,140,108,185,236,199,109, 67,128, 69, 75,
-140, 17,  1, 74, 81,  7, 13, 28,132, 67, 85, 46, 68, 10,238, 85,185,142, 18,  4,215,236,123,215,181,163, 30,208,204,106,244, 69,
- 75, 38,  0,103, 10, 78,142, 48, 16,154,152, 48, 16, 20,231,234,  6,169,119,106,170,  3,210, 10,220, 24,246, 59, 89, 85,152,  1,
-129,132,173,216,144,199, 29,146, 98,162, 94, 74,201,245, 36, 84, 91, 69, 77, 20, 67, 34, 38, 33, 84,179, 90,144, 10,196,245, 85,
-235,136, 34,140,142,  6,250,184,122,198, 60, 42, 57,195, 16,110, 39, 34,  2,119,213,194,200,  5,106,116,194, 25, 49, 48,170, 87,
-168, 25,230,148,221, 92,152, 76,209,209,136, 25, 12,  2, 49, 11,171,170,154, 13, 93, 63, 45,232, 32, 32,117,100,207,  8,195,240,
-203,204, 68,250,212,191,253,246,253,179,243, 43, 66,220,218,216,140, 44,123,  7, 71,161,244,175,188,235,105, 71,  6,132, 24, 56,
-247,150,114,102, 17, 36, 86,119, 48, 37, 36,142, 56,217,218, 22,230,166, 91, 30,157,156, 30,155, 19,248, 72,232,165,167,159,148,
-166, 69,162,217,178, 39,178,182,109,153,217,138,186,170,162, 89,  6,119, 19, 38, 15,161, 17,105,218,201,226,234,162, 20, 69,116,
-172,213,  4, 39, 43,134,132, 14,206,129,  3, 54, 93,215,  5, 97,137, 65,221, 64,141, 36,186, 25, 88,  1, 96, 98,  6,128, 82,195,
-142, 32,224,  0,102,110,102,102,  1,121,176, 82,184,  9,177,154, 42, 32,178, 49,114,229, 61,168, 89, 27,101,101, 36,143,135,212,
-181,  0,186,238,232, 15,238, 14,175,180,102, 38,175,158, 13, 36,175, 32, 98,172, 76, 33,171,108, 57,183, 92, 91, 72,235,222,235,
-218,236,204, 72, 86, 43, 81, 53,240, 49,100, 10,234, 64,200, 20,136, 28,  1,212, 29, 77, 55, 38,211,139,195,115,189,190, 93, 47,
-142,132,224, 90,136,155,245,148,220,135,130,175, 19, 24, 88, 93,185, 61, 14,168,243,250, 68, 94, 57,233,132,174,117,228,226,238,
- 14,130,166,  3,224,125,160, 35,172,239,212,239, 44, 16,170,  2, 13, 13,108,192,117,213,189, 21, 48, 50,142,188, 75,  5,186, 92,
-178,170,239,236,236,252,224,251,223,250,206,107,251,191,250,229,191,179,115,227,102,239, 22,132, 43,147,178,153,110,  9,163, 21,
-173, 70, 25,226,224,170,168,  6, 78, 33,182,237,116,227, 39, 62,246,169,127,251,  7,223,152,140,167, 77, 51, 65,166, 91,183,159,
-218,221,219,255,235,239,254,240,249,119,189,212, 45,103,247,223, 90,228, 82, 70,211,109,115, 35,181,122,  0,172,223,205, 36,164,
- 90,189, 53,196,200,213,210, 98, 80, 96,141, 18,116, 10,196,162, 41, 33, 59,  6,  9,227,209,128,163, 69, 79,243,165,150, 66, 18,
-218,233,  8,152,202, 34,153,186,170,166,110,133, 28,195,168, 45,221,146,  7,103,  8,  9,203, 74,123,213, 66,131,221,102,153,178,
-246,185,180,136,172, 37,155,229,174,219,189,121,171,109, 71,139, 11,159,157, 63, 42, 38,171,217,101,  8,194, 84, 98,228, 44, 44,
-196, 77,187,145, 82, 86, 45,103, 71,251,103,203,217,198,198,246,101, 15,219,187,183,231,243,249, 38,211,219, 15,238,103,179,105,
- 51,122,230,246,237,139,197,188,194,  6, 83,201,  0,174, 90,183,106,145, 70, 52, 80,234, 80,235, 37,145,  8,234,100,184,168,153,
-  2,178,  5,166, 32,193, 12, 76,211,211, 79, 61,249,235, 95,254,242,103, 62,253,105,105, 70,  9, 49,231, 62, 45, 23, 87,103,167,
-175,191,245,198,219,247,247,247, 15, 31,157,207,230, 41,229, 85,215,109, 76,198,109,224,207,252,248, 79,254,220,167, 63, 38,140,
- 23,243, 51, 31, 53,119, 14,143,199, 49,204, 22,139,123,119,247,119,154,209,141,157,141,122,253,119,116, 66,145,224, 94, 60,187,
- 34,144, 41,230,162, 72,  4,228, 94, 12,136,128,217,220, 24,217,200,213, 44,  6,113,244, 90, 66,  2, 38, 47, 86,178,  1,120, 96,
-182,208,244,220,197, 54,132,166, 97,146, 16, 34, 33, 22,247,241,184, 45,165,184,131,170, 18,184,  1,192,144,185,196,162, 22,185,
-114,  4,177,118, 59, 29,188,198,  0,  0,200,221,192, 75, 93, 73, 50,210, 48,117,103,242,186,124, 52,  4,174,200,108, 18, 33, 83,
-  3,100, 38, 89, 55,  7,135, 51, 12, 17, 12, 47, 74,162,122, 76, 91, 39,161,201,220,106,235, 69, 85,235,  5, 49,171,  3,152,  4,
-  0, 85, 53,118,132, 32, 13, 98,118, 83,112,167,200,245,202, 93, 25, 81,128, 40, 33,184,230, 82, 50, 90,101,152,155, 19,128, 43,
-  6,114,131, 90,126,212,162,210,196, 74, 91,146, 24, 75,214,110,153, 99, 32,  5, 55,171, 68, 20,148, 16,171, 15,175, 91,245, 33,
- 10, 33,106, 81, 98, 67, 51, 36,130, 50, 12,103,171, 29,165,206, 34,114,215,117,243,197,116,178,241,210,139,163,135,251, 15,111,
-223,184,118,181, 92, 92,158, 28,127,242,149, 23, 38, 27,211,  2,228,224,185, 79,238,208,180, 49, 23,173,154, 31,226,152, 75,238,
- 83, 38,102, 25,181,215, 71,241,198,238,110, 46, 70,  0, 34,204, 49, 82,136, 57,229,229,124,177,179,181, 57,106, 70,197, 29,209,
- 41, 70,183,  2,168, 68, 18,218, 81,108, 71,238,174,150, 42,174, 29,134,173,197, 48,119,168, 15, 44, 51,  3,200,213,142,146, 82,
- 30,  2, 33,106,136,160, 78, 60,140,218,173,166,135, 74, 42, 80, 25,223,149, 42,106,230, 54,164, 74,  8, 17,178, 49, 97, 46,238,
-217, 80,234, 18,168, 82,105, 77,192,135,142, 47, 12,156,220,  1, 75,  0, 96,213,191,142, 44,107, 98,251, 80,193,122,140,  8,131,
-170,144,115, 28, 94,  9, 60,168,222,235,243,178,146, 29,157,192,179, 14,210,181,117,248,163,226, 23,144,  6,204,154, 32,130, 35,
-183, 65,115, 63, 91,234, 70,227,107,188, 12, 13,152, 92,112,119, 67,174,143,107,131, 42, 21, 25, 80, 25, 21, 31,236, 68,232,117,
- 74,234,149, 84, 49,208,174,169,142, 91,180,122, 98,214,211,163,129,128,135,  6,198, 64,190, 70, 27, 97,101,103, 98,  0, 55,167,
-  2,142,168, 33,173,150, 28,152,136,115,191,216,218,222, 57, 59,124,251,223,254,201,159,127,230, 19,159,218,222,154,172,250, 62,
-142, 39,200,193, 53,187, 16,212,149,  9, 58,106,189,114, 20, 71, 40, 93,146,192, 68, 32, 49, 60,122,116,255,141,187,251, 59, 59,
-187, 49, 54,219, 91,215, 41,210, 11,239,122,225, 47,254,226, 47,127,248, 55,223,255,240, 71, 63,250,214, 27, 63,184,118,227,137,
-110,185, 80, 45, 28,162,153,  3,162,153, 17,128, 91,109,150, 65, 29, 63,154,170,217,  0, 87, 48,  0, 64,148, 40, 68,128,227,145,
-165,158,170,162, 70, 33,110,142,242,170,  7, 18,  9,194,236,253,229,220,  1,173, 36, 38,214,188,210, 82,186,110,145,251,194, 76,
-237,120,178, 90,174,192, 59, 51, 57,123,180,103,150,133,185,244,101,177,234,178,230,101,223,191,240,244, 83, 49,240,108,118, 49,
-221,190, 62,158,108,204, 79,246,207, 78, 46, 78, 30,237,143,183,111,140, 39,187,196,220,140, 54, 47, 79, 14,206, 47,142,110,220,
-122, 78, 74,  6,157,117,243, 69, 15,240,244,205,231, 83,191,184,154,207, 67, 43,185, 36,132, 80,138,198, 16, 12,252,116,118,150,
- 82,213,  8, 96, 81, 35, 38, 20,  4,243, 26,197,245,199,  7,133, 58,216, 54, 38,180,200,132,129,135,110, 62,194,178,239,167,227,
-209, 47,124,242, 83,191,249,181,175,238,222,124,202,  8,220,105,181,184,184, 58, 59,121,112,127,239,173,189,123, 15, 15,143, 79,
- 47,175,150,171,110,213,175,174,102,171,171,217,229,179,239,126,245,191,248,242, 47,189,252,202,139, 71,143, 30, 28, 29, 28,148,
- 24, 94,123,243,205,205,233,248,219,127,243,198, 36,198,119, 93,219,  9,177,173,255,119, 66, 46,128,236, 14, 70,  6,202, 24,212,
-148,132,204,138, 96,240,226,245, 80, 95,  5,246,202, 76,129, 34,214,132, 50, 32, 98, 32, 44, 14,170, 70,136, 10,104,166,168, 58,
-105,154, 62,219, 56,140, 66, 19,205,205,179, 54, 81,106, 81,  5, 73,164,254,116, 24,  8,169,224, 36, 60, 40,235,170,118,192,220,
- 29,161, 17, 46,234,174,185,250, 55,106,168,140,144,235, 15, 86,176,192,129,  0, 85, 21,137, 28, 61, 52,193,212, 88,  4, 76,  7,
-243,193, 26, 11,197, 36, 92,255,134, 43,222,  0,176,142,160,212,  0, 77, 69,164,128,186,185,187, 34, 72, 41, 38, 96, 90, 74,223,
-107,  8, 77,108,154, 24, 91, 51, 47,150,  9, 24,137, 77,171,101, 19, 12, 32, 50, 27,225,106, 53,199,250,132,113,213, 82,180, 88,
-208, 34,177,209, 82,136,184, 20, 99, 36, 17, 94, 47,242,168, 66,105, 66,164,146, 11, 11,215, 68, 10,  2,150,212,171,  3, 33, 52,
-161,  5,207,234, 74, 36,165,104,234,150,174,185,109, 70,128, 92,237,206, 44, 68,  8, 90,108,204,120, 49, 63, 47, 57,111,109,110,
-149,155,215, 15,207, 46,230,179,171,143, 60,125,235,218,245,107,189,186,251, 96,238, 54,208,172,136, 68, 12,160, 86, 42,116,138,
-152,221, 92,154, 16, 80,122,205, 65,144,135,192, 14, 90,238,115, 65, 66,107, 70,163,164,165, 34,241, 77, 11,184,199,208, 54,211,
- 45, 67, 48, 85,203, 37,119,189,230, 28, 69,250,146,200, 29, 84, 49,  8, 50,187,154,185, 50,139, 57,184, 21,  0, 84, 53,130,117,
-145,146, 17,204, 85, 75,  1, 23, 98, 94, 63,106,193,141,152,205,204, 74, 17, 17, 32, 50, 51, 45, 30,  3,135, 16,178,154,121, 34,
-174,127,249,117,146, 81,247,171, 36,  0, 54, 48, 94,124,189, 17, 53, 87,116, 25,160,148,108,110, 72, 80, 11,244, 76, 88, 79,240,
-195,124, 99,192, 20, 59,212, 83,239,176, 66,120, 28, 60,116,168,243,211,122,172,  6,115,130,250,108,214, 97,118, 92,167, 32,224,
- 96,166,176,179, 57, 58,191,188,216,186,189, 85,116, 29,107, 89, 39,140, 96, 32, 78, 84, 67, 47,194, 26, 89, 89, 27,167,195,160,
- 25,225,177, 70,160, 94, 54,222, 81, 84, 87,116,101,125,235,173,163, 97, 67,198,125,200, 83, 27,  0,131,  9, 84, 69, 12, 26, 50,
- 51, 76,210,197, 37,  0, 32, 54, 73,211,120, 52, 57, 61,220,255,198, 55,191,249,190,247,127,228, 61,239,121,207,226,242,180,217,
-190, 25,154,198,205, 92, 26, 52,101,110,  1, 81,213,172, 47, 68, 68,160,181, 31,200,194, 64,188,154,157,252,238,239,254,243,103,
-158,124,151,230,254,236,226,108, 50,221,108, 66,123,237,198,141, 23,158,127,238,175,191,251,218,143,188,239,125, 55,111, 63,249,
-246,189, 59,194, 50,153,110, 17,179,132,134,234,145,132, 35,  2, 33,  9,128,154,171,103,116,112, 80, 67, 66,172, 52, 18,128,166,
- 29,213,125, 75,201,198,160,128,  4,104,121,149,172,152,230, 28,218,209,106,181,204,171, 20, 71, 17, 89, 16, 57,173,114, 46,190,
- 90,174,136,177,153,140,  0, 60, 52, 13,184, 90,209,131,131,187,183,111,237,154, 89,214,210,247,189, 25,104,209,141,209,248,226,
-242,188,235, 86, 79, 62,251, 74, 90,205,246,238,188, 49,155,151, 16,167, 86,188,150,193, 74,234, 32,196,182,221, 52, 45,103,167,
-247, 79, 79, 31,149, 82,118,175, 61, 59, 26, 79,206,174, 78,219, 81, 60, 58, 62,153,205,230,203,110,233,  5, 10,104, 16,190,156,
- 45,143, 79, 79,215,117,227,250,249,  1, 53,136,  1,  8, 80,135,237,200,240,181,145, 74,140,243, 58, 82,  3, 45,202,204,207, 61,
-247,212,111,254,234,223,249,228,167, 62, 53,222,220, 77, 57, 89, 94,205, 78, 79, 15, 15,238,239,221,191,191,247,224,240,224,236,
-236,114, 54, 75, 93,127,185, 92, 30, 62, 58,126,226,250,206, 63,250,242, 23,127,229, 23, 63,215, 16,252,240,175,254,242,178, 91,
-197,173,173,126,181, 58, 61, 60, 23,245, 27,155,147,157,141, 49,137,172,235, 15, 72,132, 97, 24,163, 27, 19,153, 91, 20, 86, 55,
- 83, 50,171,165, 16, 48, 55,102,170,178, 48,  2, 52,179,202, 10,210,  4,171,164, 64, 22, 66, 16,102,239, 58,175,160,177, 16,166,
-173, 24, 66, 45, 22, 13, 40, 14,128, 38,180,106,252,146,225,176,  0,  0, 32,  0, 73, 68, 65, 84,158, 53, 51,  9,145, 56,  2, 40,
- 72,144,156,251, 24, 98, 81, 69,  2,211,122,223, 38, 77,181,248, 74, 14,  4, 80, 87, 47, 52,200, 75,153,  2, 35, 49,129, 67, 77,
- 39, 48, 73,197,168,187, 43, 50,231,108,178, 62,172,175,217,219,104,102,170,165, 54, 68,212,  1,220,152,196,177,168, 41,168,179,
-176,170,151,100, 76, 80, 84,179,153, 91,113,  8,238, 94, 82,114,  0, 97,  1, 32, 97, 54, 83, 51, 39,177,200,146, 82,114,117, 38,
- 82, 45,102,  3, 21,213,221, 84,213,146,139, 69, 25,161,163,  0,184, 48, 21,  4,205, 10,110, 20,184, 30, 47, 73,170, 39,212,  9,
-161,100,  5, 52, 97,113,128,226, 61, 33, 85,203,  4,147,146,251, 42,173,144,164,105, 66, 19,131,106, 49, 85,  3,  8, 68,220,  8,
- 26,197,  9, 30,158, 29,165,229,234,154,208,  7, 95,126,254,198,181,157, 12,  8, 14, 66,132,  0,185, 62,225,188, 30, 58,107, 98,
- 30,188,202, 59, 92,221,160, 55, 69, 30,124,114, 69,157,220, 37,134,197,213,101, 19, 37,196, 86, 93,173, 30, 34,165,234,249, 68,
- 75,114,162,220,117,253,106,  5,238,  6,198,136,129, 24,152, 28,138,  3,184,102, 36, 65,231, 10,193,198,202,120, 32, 31,100,156,
- 76,238, 78,132,170, 24,132,  9,184,228, 92,165,160, 64,108,234,132, 24,154, 72, 76, 41, 43,  2,  4,  6,  0,212, 10,120,224,160,
- 57,195, 80, 76,243, 46,169,101, 21,213, 36, 84, 87,221,160,  3, 36,  1, 28,235,123,184,254,177,203, 48,235,112, 39,226, 26, 76,
- 30,228, 97,110,235, 96,228, 80, 76,114, 53,148,193,116, 55,148,146,234,113,  6,214,104, 96,171,117, 93,128, 74, 45,199,181, 75,
-  3,192,212,118,182,119, 78,239, 61, 40, 55,166, 96, 14,196,143, 57,128, 96,117,204, 95,  5,215,235,192, 78,133, 92, 86, 93, 23,
- 26, 60,238,216,214,219,134,173, 11,120, 84, 61, 43,213,208,138, 96, 21,163,129, 88,179,104,100, 69, 11, 99,160,250,138,144,136,
-168,230, 25, 76, 17, 55,250, 69, 82,135,166,105,204, 60, 54,237,114,126,246,141,111,254,225,243, 79,191,244,209, 15,252,104,223,
-247, 78, 33,142, 90,115,181,126, 37,147,109, 36,206, 89,145,168,116, 61,198,  8,168,158, 82, 78,169,221,218,206,125,183,125,243,
-230,239,253,179,111,172,122,253,205,127,248, 15, 15, 30,188,249, 23,127,246,167, 27, 27, 27, 79,220,126,122,132,147,167,158,126,
-250,252,242,226,175,255,211,183, 62,253,185,159,121,244, 96,111,178,177, 67, 68,125,183, 68, 36, 39,100, 36, 34, 20, 10,106,182,
-166, 92, 22,  4,  2,169, 30, 53,  4, 55, 51,224,216, 34,139, 43, 16,162,107,  1, 66,119,243,236,142,104, 10,221, 98, 89, 82,223,
- 76, 71, 66,156,115, 49,230, 46,173,144, 12,164,169,137,216,209,100, 67, 51,244,185, 47,253,226,244,232,225, 51, 79,220, 80,211,
-197, 98, 57, 95, 46, 87, 57, 35,248,141,221,157,130, 49,182,178,123,243, 73,105,162, 67,136,145,101,218,230, 84,192,203,229,249,
-213,120,178,201,165,191,188, 58, 62,159,157,108, 77,119,111,221,126, 87, 94, 45, 38,155,187,139,213,236,193,225,193,178, 91, 25,
-192,230,198, 70, 53,220, 35,194,168,105,158,185,221,252,199,254, 59,167,231, 87, 34,188, 70,  4,  1,186,241, 90, 24, 96, 14, 12,
- 94, 91, 68,117,176,199,  8, 24,100,185, 88,108, 79, 55,190,242,249,159,251,249,207,124,246,217, 23, 95,146,102,146, 53, 47,103,
-231,103,199,  7,247,223,222,187,255,240,209,195,227,227,147,203,203,217,124,126,113, 57, 63, 59, 61,235,115,254,248,123, 95,253,
-173, 95,251,149,151, 94,122,161,239,150, 39,179,203,189,171, 75, 75,221,237,221,205, 59,247,238,111,181,205,  4,145,167, 99, 98,
- 25,180, 59, 72,130,104,234,131,102,167,138,161,173, 26, 10,208, 84,139, 21, 24, 42,150,213, 62, 10,197,114,160, 80,175,141,150,
-221, 12, 66, 32,119, 70, 32,  3,227,138,231,173,  7,115,  0, 68, 18, 97,  2, 84,240,202,125, 50,119,  3,168,151, 54,215,130, 34,
- 18,  2, 16,180,113, 82,180, 84, 51, 25, 35,170,209,208,160,182,193, 91, 54, 44,227,104,120, 23, 18,146, 27, 20, 51, 97, 10, 44,
-245, 40, 77,  6, 34,141, 90,178, 82, 80,170,144,  6, 25,209,145,106, 12, 13,  1,137,  4,220,213, 21,141,  0, 64, 53,215,118,168,
-  3,  3,225,120, 60,234,187, 85,234, 87,102, 30, 69, 48, 68, 48, 44, 37, 83, 64, 67,100,103, 34, 42,166,128, 86,  5, 79,125,159,
-188,100,168,220, 75, 67,131,194, 72, 53,  5, 80,204, 25,205, 76, 83,223, 55,227,104,165,122,186, 60,  4,201, 89,135, 76,155,147,
- 48,187, 23,213, 97, 46, 28,164,117,215, 84, 10,242, 58,  4,  1,128, 72, 97, 52,  6, 14, 77,219, 72,  8, 86, 20,  1, 73, 24,204,
-235, 16,121, 50,218, 28,163,110,143, 11,154, 87,113,130, 26, 34, 20,230, 96, 96, 96, 70, 80,163,138,238, 57, 57, 50, 18, 49, 49,
- 48,154,170, 33,171,101, 70,  6,228, 65,131, 71,200,129,251, 84,250,229,106,247,137, 27,192,102,201,173,228, 56, 26,  1, 99,206,
-170,203, 21,199,236,230, 69,213,107,158,167, 88, 54, 88,219,176,234, 37,129, 29,177,218,138, 16,209,234, 87,113,120, 86,129, 59,
-160, 35,115, 36, 42, 37,151,222, 58, 66, 66,175,113, 88,171, 15,203, 84, 74,196,166,105,154,190,207, 37, 39,  9,204,128,196, 97,
-161, 74,140, 96,158,138,129,167,173,233,164,184, 72, 28, 95,203,185, 51, 45,197,138,  0, 56, 24, 18,219,192,211, 88,215,135,200,
-234,126,214, 77,  7,207,115, 93,177, 86, 43,163, 15, 68, 97, 68, 66,169,111,130,193,133,138,160, 80,121,  4, 68, 21,100,134,131,
- 94,  3, 89,234,149, 65,135,131,190,  1,128, 75, 19,219,136,203,101,158,182,  1,220,  1, 10, 32, 13,209,176, 26,214,161,199, 47,
- 15,115, 68,  7,  5,171,149, 55, 34,192,186,200, 53,115,171, 63,143,  4, 65,181,164, 65,  9,100,128, 10,  6, 38,117, 16, 64, 85,
- 56,238,238,184,254, 18, 24,120,239,128,110, 74, 97,203,150, 93, 94,204,154,141,169,196,145,151,100,253,252, 27,255,230,155, 55,
-174, 61,241,185,207,124, 26, 16, 74,223,181, 27,155, 36,193,  1,156,196,212,172,155,243,104,  3, 12,220,156,106, 39,133,164,153,
-142, 81,173,109,199,243,163,  7,255,250,247,191,249,115, 63,247,165, 39, 95,121, 17, 17,130,252,135,203,179,179,157,173,221,166,
-153,236,236, 92,127,226,214,147,119,238,221,127,229,254, 61, 53,155, 93, 93,222,124,242,233,229,225,129, 48,135,102, 84, 19,175,
-230,201, 17,221, 12, 17,205,180,162,254,134, 41, 87,157, 70, 17,154,154,155, 97, 32, 80,183,172,142, 72,181,  1,  1, 86,114,230,
-216,162,185, 49,  2, 97,183, 92,246, 41,231,212,  7, 66,226, 16,218,134,  9, 83,191,100,145,211,195, 71, 87,203,  5, 71,118,183,
- 62,245, 57,231,101,215,141,  2,111,143,154, 16,195,104,251,122,136, 45,179,180,211,173,229,201,241,168,221,237,211,101, 78, 75,
-  2,184, 56,127,244, 96,255,174,  1,189,250,226,171,139,217,  5,115, 92,234,197,229,197,209,229, 98,126,116,117,121,117, 53, 27,
-143,166,227, 24,164,105, 22,179,171,113,211, 44,251,148,250,238,230,245,221,203,217,252,111,  3,154,161, 30, 87,124, 88,148,215,
- 24,100,237, 72, 48, 67, 54,  3, 43,239,125,233,197,255,242, 55,190,254,254, 31,251,128,180, 99, 35, 92, 92,157, 95,156, 30, 62,
-124,176,127,244,232,224,238,131, 71,199,231,103,103,179,217,114,209, 29, 30,159,156, 92, 92,142, 99,248,239,191,250,229,191,251,
-149, 47, 45,231, 23,119, 94,255, 33, 52,163,183, 31,238,175,102,151, 15, 30, 28,189,246,198,131, 27,211,201,181,141,105,211,214,
-121, 11,129, 17, 81, 64, 50, 45, 85, 82, 71,200, 12, 96, 89,135,242,189,  4,  2, 48, 54, 41,238,197, 92,234, 67,208,140,128,177,
-230, 38,209,139, 25, 19, 58, 99, 94,229,182,137, 21, 23, 40, 18,114,202,213,217,214,  4, 86, 39,  7, 68,  9,128,174,217,144,177,
-194,133,113,176,209,  3,  7, 33, 34,213, 66, 68, 49, 72,202, 57,247, 67, 74, 10,  0,156,157, 64,176, 94,154,125,136, 30,  0,186,
-106, 38,142, 68, 20, 56,  2,177,106, 38, 55, 32, 44,165, 39, 34, 98, 97,116, 25,176,142,193, 92, 21, 44,132,152, 83, 15,238, 64,
-200, 30, 12,204,221, 41, 48, 34,105, 41,129, 89, 66,200,165, 16,113,136, 35,  7,179, 82,152,  9,  3,215, 33,175,212,163,132,149,
- 16, 34, 18,151, 92,250, 62, 33, 16,178, 84, 91,102, 51, 10,232,113,213,119, 53,146,207, 90,  5, 62,128, 64,166,201,129,221, 13,
-193,115,234,213,140,137,130,200, 48, 46,118, 16, 17, 17, 46, 57, 23, 77, 48, 72,  1, 43,210,222, 17,204,  0,154,166,149,192,228,
-168, 73, 89,  4,192, 82, 94,185, 89,108,226,186,165, 73,227,113,235, 70,185,203, 14,206, 77,112,117,115, 99,102, 67,212,236, 37,
- 23,171, 97, 87,207,228,129, 56,168,154, 23, 99, 34, 39,  6, 71, 80,165, 32,161,137, 41,165,190,207,151,179,101,  8, 40, 44, 86,
- 76,152, 80, 70,197, 12,212,189,226,203,187,206, 28,115, 73,204,193, 75, 33, 38,172,234, 30, 98,  5, 80, 51, 68,104, 99,232,172,
- 84, 69,109,237,173,145,144,166,140,204,245,102,165,131,194, 10, 35,  5,114, 79,166, 66, 28,162,228, 94, 11,104, 20,142, 49,164,
- 84,152,  8,130, 56, 64,118, 37,208, 73,211,116, 61,231,180, 16, 52,146,102,217,155, 22,147,231, 95,124,113,213, 23, 45,101, 62,
-187, 88, 46,103,218,175, 28, 75, 77,164,  0, 14,152, 69, 98,210,172, 53,164,239,174,117, 32, 52, 24,180,129,235, 50, 28,234,166,
-181, 78,139,214,100,210,154,229, 55,132,186,  6,241,117,115,202, 43, 50,110,120,113, 25,214,203, 36,146,230,178, 53, 25,207,150,
-221,246,102,155,212,  5,240, 29,204,247, 59,248,200,193,244,242, 88,250, 87,147, 52,107,132,116, 70, 39, 17, 80, 51,211,130,224,
-174, 96, 76, 60, 52,131,148, 81,134,247,137,177, 62,246, 89, 15, 24, 32,  0, 52, 34,113,152,120,151, 87,203,  5,  7, 33, 14, 69,
- 51,106,255,  7,127,252, 71, 18, 70,159,252,200,  7,139, 22,112, 36,142,205,100,170,197,136, 89, 29, 65,147, 47, 23, 32,173,165,
-142,194,  8, 25,192, 12, 65, 17,212,220,199, 27,163,255,243,127,251, 63, 36,110,127,254, 23,126,102,254,232,209,120, 99,227,163,
-159,249,236,191,251,195,127, 51, 95,204,154,241,120, 50,153,220,188,113,253,252,252,244,245,215, 95,251,201,143,253,212,241,233,
-225,114, 49,107, 39,163,156, 87,136, 64, 34,110, 86,128, 68,216,113,253,184,171,232, 19, 68,174,244, 55,225, 32,177,228, 21, 34,
- 51,  7, 69, 71,  0,116, 67,211,220,247,121,181,228,102, 20,219, 64, 96,234,234,102,134, 36,161, 49, 71,244, 34, 34, 24,184,148,
- 12,224,171,211, 71,119, 95,255,214,213,106, 69,196,238,184, 92,172, 22,243, 69,234,250,157,201,  6,161,164,238,234,250,228,121,
- 67, 58, 57,216,239,187, 69, 78,253,229,201,241,120, 50,238,187,171,249,229,241,170,215,219, 79, 60, 55, 34,186, 60, 61,238, 87,
-151, 32,141, 57, 77, 39,211,243,171,217,124,177,100,  9,155,155, 91,253,106,126,122,124, 88,138,  7,  9, 76,120,112,114, 49, 91,
- 46,  0,220, 75,241,181,246,220,220, 16, 98, 85, 83,212, 47, 43, 51, 86, 67, 99,113,187,177,187,243, 11,159,248,196,151,190,248,
- 75,183,158,122,166,152,169,149,203, 71,135,103,167,135, 15, 30, 60,120,116,116,114,255,209,225,225,217,105,151,210,229,108,113,
-112,112, 92, 74,249,236,135,222,247,143,190,252,133, 15,127,232,199, 30, 30, 62,220,187,243, 54,143, 71,221,233,241,253,183,239,
-  7,230,136,116,125,103, 60,157, 76,107,236, 10,  3,  4, 17,  0, 50,215,146,157,185, 34, 34,  0,208,181, 40, 17,136, 80,234, 11,
- 58,  8,198,130,133,208, 76, 43,117, 20, 17, 25,  9,138,107, 73, 26,155,216,196,198, 74, 54,199, 56,138,245, 59,161,137,148,178,
-213, 55,  0,177,160, 48, 42, 16,139,230,172, 73,171,163, 25,208, 41, 10, 34,122,113, 34,  0,181,164,153, 49,  8,122, 81, 37, 68,
-  9, 92, 39,230, 53, 92,  0, 72,214,103,115, 99, 25, 82,  3, 37, 43, 75,168,234, 66, 67,  7, 55, 14,195,169, 28, 76,  1, 88, 68,
-  0, 93,181,  0,120,177,158, 88, 16,216,177, 98, 60,234,164,200, 16, 32,112,163, 86,192,189,105, 71, 57,103,207,217, 21, 88, 68,
- 66,112, 51, 15,200, 92,185,193,131,217, 39, 21, 99,193,156,122,213, 34, 65,152,  8,144, 93, 43,219, 50,162,170,170,162,123,148,
- 80,140, 21, 10, 66, 30,162,173,185, 32, 90,229,255,173, 85,112,100,168,160, 80,201,107,213, 63, 87,147, 35, 68,192, 66,224,104,
-235,212, 93,  8, 77, 81,  5, 39,  3, 71,174, 71,132,194, 68, 20,215, 53,248, 32,232,144, 74,134, 82, 98,100, 67, 40, 57,  3, 48,
- 56, 58,128, 38,128, 58, 87, 82, 83, 80, 68,113,128,156,147,136,112, 27,114,210, 58, 50,138,177,181, 84, 22,125,110,154,160,200,
- 57,149,205,233, 24,  9,155,216,154,121, 78,197, 84,205,141, 43,170, 55,151,161, 78,236, 70, 18, 85, 11,104, 17,150, 82,114,173,
-203,171,217,106,181, 34, 10, 86,117, 21,132,134,144,251,108,224,  1, 17, 29,180, 43,  6, 86, 37,167,154,147,  2, 10, 18, 32, 20,
- 85,142, 28, 81, 82,209,249,124,222,180, 17, 89,172, 55, 43,  9,212, 73,  8,205,  2, 58, 52, 13,184,153,153, 16,178,144, 72, 19,
-183,218,198,212, 38,147,166,239,182,186, 85, 74, 57,165,110, 89,114, 41,165,115, 75,174,133,220,  5,135,244, 60, 24, 32,131, 15,
-151, 86,  3, 83, 24,240, 50,107,104,146, 33,184,129,  8, 18,185,155, 43, 12,253,183,245,116,129, 24,157,  6, 52, 76, 24, 18,175,
- 12,204, 53, 15, 55,217,218, 56,217, 63,  1,218, 37, 45,128, 53, 77, 64, 96,117,148, 67,239, 68,115,  6,208,  8, 18, 13,115, 36,
-112,215,172, 78, 96, 62,204,246,177,130,108,  4,  8, 12,148,129,173, 90, 84,215, 75,  2,245,170,137,164,161, 23,177,102,163,  9,
-166, 82, 74, 14,161,149, 54,  0, 24,171,254,201,159,253,191,103, 75,248,229,159,249,220,168, 13,165,239,226,168,149,166,181,156,
- 33,140, 16,204,186, 57, 52, 35,106,218,210,173, 76, 83, 19, 71,174, 78, 65,160,184,166,210,110,110,220,127,243,205, 63,254,163,
- 63,253,234, 87,255,193,116, 68, 71, 39,179, 91,207, 63,245,190,167, 63,241,253,239,126,251,222,222,157,205,205, 45, 30, 79,119,
-110,220,120, 98, 54,123,112,240,232,248,232,145,153, 94,156,156, 96,224,205,233,118, 69,228,168, 22,145,168,238,188,198, 96,186,
- 27,186, 58, 80,113, 32, 66,  9,141, 99,109,110,114, 41, 25,  7,181, 57,150,164,150, 51,139, 72,224, 10,111,214,174, 51,181, 40,
-178,185, 49, 61, 98,  2, 83,  4,240,156, 33,167,213,197,193,221, 55,223, 92, 44,231,197,107,156, 86,207, 46,206, 86, 41,247, 69,
- 55,  2,247,221,108,177, 90, 60, 19,199,105, 57,219,127,243,  7, 38, 60,154,236,164,229,236,244,120,111,181,154, 79, 38,187, 79,
-237,108, 16,203,233,241,253, 85,159, 56,180,139,171,147,233,116, 71,  0, 95,187,243, 58,145,108,111,108,174,186,197,197,229, 69,
-219,140,219,157,241,229,249,185,131, 33,162,170,165,164, 64,142, 64,149,147,103,110,132, 85,173,172,170, 30,  2, 11,242,162,239,
- 38,109,251,211,159,248,216, 23,126,246,103, 95,122,233, 85,105,219, 85,223, 45,175, 46,175, 46,206,142, 31, 29,220, 63,184,127,
-111,255,232,248,236,116,217,247,139,229,234,225,241,233,225,225,201,143,191,244,236,111,255,218, 87, 62,254,161, 31,  5,243,195,
-211,163, 71,151, 23, 15,207, 78, 95,216,125,225,193,189,115, 74,182,189, 53,106, 55,166,102,224, 64, 66,161, 42,140, 77,161, 62,
-236,214,208,105,175,216,  0,145,250,104, 80, 38,246,186, 41,  2,240,226,196, 80,180, 16,  7,114,211, 92,140, 49, 80,  0,115, 67,
-165, 90,169,  8,129,  8, 74, 86,115, 19, 17, 71,130,202,119,118, 68,169, 91,115,224, 38,120,113,226, 90,191, 24,108, 58,245, 84,
-195, 64,117,238,175,165, 62,239, 24,137,132,177,232,112,164,193, 72, 88,181, 79,110,142, 40, 65, 72,106,186,188, 86, 32,171, 95,
-222,200,201, 65,240, 49,147,  3,201,173, 84,186, 33,186, 89, 65,225,198, 64,235, 64,213,204,213, 50,146,184,165,220, 47,144,163,
- 48, 43, 58,  5,172, 79,121, 48,116, 52, 70, 52,115,102, 38,172,164, 78, 67,  2,100, 54, 53, 12,145, 16,185,137,214,169,171, 86,
-229,183,136,152, 85,217,147, 50,  5,  3,119,176, 24, 91, 45, 90,212,200,128, 67, 64,102, 53,181,172,132,140, 78,246,216, 52,164,
-133,100,184,185, 32,177,153, 86,237,144,106,113,171,189, 94, 71, 71,179, 60, 80,164,181,150, 90, 48,167,140,134, 44, 68,109, 40,
- 89, 93,149, 41,152, 91, 46, 69, 92,  6,106, 19,185,214,240, 66,  5,221, 19,185,131,169, 35, 65,219, 54, 41,245, 57,247, 34, 18,
-131, 32, 81,191, 88,129,229,241,120,203,220, 82,223,129,163,169,215, 52,166,155,193, 58,164,  7, 68,142,164,170,107, 97,144,215,
- 83,185,170,213, 39, 76, 93,136, 59, 64, 49,133, 42, 13, 71,169,153,171,122,231, 70, 68, 55,112, 99,243,  2,129,132,144,153,181,
-184,154,213,113, 21, 56, 90,214, 16, 24, 60, 40,148,162,202, 66, 28, 24,157,180,148,234, 10, 83,115, 57, 58, 60,104, 66,100, 17,
-145,208,142,198,163,241,168, 56,104,151, 82, 46, 41,245,170, 86, 82, 90,204, 47, 87,105,  5,152, 26, 33, 17,170,132,198,234,122,
-  5,199, 90, 89,242,202,130,175,171, 23,118,172,251,226, 33, 71, 91,199, 57, 25, 24,134,190,182, 15,235, 12,167,225,197, 11,107,
- 66,111, 12, 49,146,207,150,182,209, 82,221,178, 14, 45,164,119,192,195, 72, 14,250, 24, 31, 86,237,209,170,136,168, 96,  4, 52,
-128,244, 28, 28,120,173,247,171, 76, 62, 99, 12, 64,  8, 86,188,168, 86,188,180,240, 16, 15, 37,  4, 87, 45, 13,245,139,162,160,
-128,210,180, 44, 65, 74,247,231,255,225,207, 95,191,119,248,149, 47,124,126, 99,212, 40,176, 52,129,152, 72,  2,181,141,149, 82,
- 82, 41,125, 47,106,208,180,106, 30,198, 91,200,161,238, 71,156,  5, 24, 68,211,239,255,171,223,123,249,213, 31,255,236,103, 63,
-121,126,126,186,117,227, 26, 69,  1,132,159,254,252,151,255,175,255,253,127, 61, 57, 61,122,170, 25,141, 70,147, 27, 55,111, 92,
- 94, 93,124,231,123,223,255,196, 39, 63,113,237,214,237,131,189,189,209,116,178, 92,204, 16,128,164,218,176,196,121, 80,109,153,
-131,107, 97,146, 32,172, 96, 65, 34, 99,189, 78, 58, 16,121,201,174,166,165,168, 58, 97,160, 17, 51,  5, 96,204, 93, 15, 88, 59,
- 83, 24,  3,107, 94,181,163, 73, 46,170, 10, 97, 52,221,191,191, 63,191, 56,198,208,228,172,174,144, 82,186,154,207, 85,213, 92,
-183, 39, 45, 96,104,198, 59,196,113,185,152,115,179,113,113,252,118,145,229,229,249,201, 52,198,182, 29,141,198,211,227,163,251,
- 55,110, 60, 61,157,108, 35, 44,155, 81, 83,186,132,166,  7,  7,123,251, 39,103,198,184, 13,147,212,247,  0, 18,132, 71,145,206,
- 65, 83, 42, 91,155, 91,227,241,136,153, 79,207, 47,144,168,235,140,  8,  9, 89, 68,250,146,119,183,182,136,248,248,252,188,128,
-189,251, 93,207,255,221, 47,125,241, 67, 31,252, 40, 55, 49,171,117, 87, 23,171,217,213,201,241,225,193,225,209,253, 71, 15,247,
-246, 15, 46,151, 43, 45,229,228,226,226,222,254,195,174,235,127,227,103, 63,253, 59,191,253,117,102,126,112,239,173,249, 42,173,
-162,180,232,199,143, 78, 78,142,207,130,195,141,233,198,120,220, 56,  0, 51, 17, 11, 49, 19,147,170, 57,174, 63,217,117,112,135,
-200,196,117,171, 91, 95,255,131,235,124, 13, 45, 52, 32,112, 18,226, 98,134,140, 50,160,184,156, 25,129,152, 12,137,196,173,104,
- 41, 33,182, 40,168,197,  8, 48,  8, 27,152,102,151,  6,205,152,145,156,234,228, 19, 37, 68, 64, 43,217,  2,147,185, 25,162, 16,
- 50, 80, 68, 94,235,197, 40,149,204, 36, 14, 38, 34,185,174,218,209, 42,218, 17,144,214,201,245, 90, 63, 52,211, 66, 28, 76,173,
-106,226, 17,171,142, 57,152,123,133,216,120,  8, 86,138,107,225,128, 94,220,192, 88,164,238,222, 58,119, 65, 33, 64, 64,113,235,
-209,133,132,212,106, 49,149,107,239,208, 93,115, 41,230,200, 44, 14,238,168, 33, 52, 18,131,155,229,156,170, 97, 13,145, 28,140,
-136,234, 82,215,212, 20,149,  0,138, 58,244,169, 38, 52, 80,  6,  7,180,153,214,219,131,170, 10, 17, 18,153,186,176, 96, 12,154,
-178,154,  7, 54, 65, 82, 80, 55, 47,166,163,166, 45, 37,151, 98,109,228,162,230, 14,129,197,201, 52,151,213,170, 52, 77,144, 24,
-115,206,154,147, 27, 32,146, 14,201,120,170,233, 15,  4,176, 65, 53, 66,  4, 88, 12,114, 82,192, 18,  2,187,147,106,182,226,230,
-217,  1,  5, 65,213,151,139,229,214,198,  8,156, 52, 23, 36, 22, 38, 19, 72, 93, 66, 53, 96, 34, 14, 77, 12, 57, 23, 55, 21,116,
-163, 10,135, 34, 85,243,  2, 44, 40,210,168, 23, 28,170,150, 53,  5, 11,128, 76, 12,106,106, 37,115, 16,181,108,138, 81,  0,132,
-201, 76,176, 97,  2,  7,236, 86,125, 19, 67,237,189, 86, 64, 60, 18,170, 13,229, 36,150,144,115, 17, 17,225,  8,192,158, 83, 96,
- 92, 37,146, 31,126,239,219, 49,198, 32,113, 50,158,182,227, 73,144,216,140,219,102, 60,106,163, 52,141,152,121,214, 50,154, 78,
- 76, 75,223,117,243,217, 85,151, 87, 96,137,  4, 91,102,  0, 96,170,110,143,  1,244,226,  4, 40,176,214,157,214,  8, 98,125,126,
- 35, 51,174,229, 54,107, 47, 45,130,  1,176,215,234,218, 99,128,  7,110, 78, 71, 39,231,231,155, 79, 93,131, 26,240,178, 65, 52,
- 82,233,100,  0, 84,205,218,149, 83,225, 86,119,168,108,182, 78,  5,  1,  1,216,227,175,223, 99,124,241,192,115,247,170, 61, 32,
-100,162, 65, 12,246, 78, 81,181,235, 51, 33, 59,104,104, 34,199, 16, 17,191,243,237,255,244,237,215,247,126,230,147,159,186,113,
-227,218,106,213,177, 56, 57,177,  8,  9, 91, 41,174,238,134,210,180,220,140, 45, 37, 25,141, 66,140,174,  9,152,173, 95,166, 46,
-109,238,108,188,249,189,239,126,251, 59, 63,252,239,254,155,127, 82,250,  5, 82, 24,109,142, 52, 21,239,250, 27,183,175,253,248,
-135, 63,250,214,223,124,123,119,247,198,198,214,214,230,238,181,103,159, 46,135,143, 30, 28,236,221,123,249,189, 31, 32,134,187,
-111,188,118,235,214, 45, 99, 23,144,129,200, 89,239,173,128, 90,138, 51, 86, 86, 26,168,135, 27, 83,131, 12, 94,  0, 25, 29,204,
-177,164,100,200,192,  2,218,147,145, 68, 82, 83,237,123, 15,145,208,144, 27,105, 98,211, 52,163,102,210, 45, 19,197,112,126,124,
- 48, 63, 63,221,104,219,211,211, 19,243, 18, 37,244,121,149,250, 84, 76, 65,125,123, 99,147,133,174,223,124,166,109,199,103,103,
- 71,253,234, 98,190,156, 95,204,142, 95,121,233, 61,253,236,196,165,237, 86, 11, 82, 59,122,120,127,251,218, 45, 75,125,167, 61,
- 88, 41,165, 28,157, 30,175, 82, 10,161, 57, 62, 57,157, 76, 39,227, 81, 59, 95, 45,247, 31, 30, 86,148, 91,183, 88, 92, 45,231,
- 27,163, 81,234, 83, 42,165,132,128,160,132, 34,  8,207, 60,241,228,255,242, 79,255, 41, 34,253,187, 63,253, 19, 70,250,248,199,
- 63,122,253,250,173,174,104,202,185, 95,206, 47, 46,206, 78,143,143, 14,142, 79,247,246, 31, 60, 60, 62, 94,172,186, 92,202,193,
-163,227,135, 71, 71, 47, 60,121,227,127,248,234,175,254,252,103, 63,126,114,126,254,240,254,126,188,177,125,244,232,173,211,139,
-171,201,100,154, 83,126,122,103,139,155, 80,233, 71, 36, 50, 60,116,144, 76,235,167,210,105,248,224,162,122, 33,148,172,213,148,
- 86, 73, 91, 53, 66, 60, 84, 68, 36, 68,179,162,174, 37, 37, 10,  4,206,245,  8,171,238,208, 37,105, 71,196,156,115,207,204,237,
-164, 85, 29, 38, 12, 65,130,106,  6, 64, 98, 72,201,130, 72,205, 41,115,144,122,  6,172,111, 29, 67, 70,  0, 65, 42,166,129,  5,
-193,144, 72, 88,138, 41,112,112,115,100, 78,185, 84, 50, 30,  7, 25, 64,174,  0,129,217,145, 24, 73,213, 76, 21,137,221,172,138,
-156, 53, 39,226, 32, 44,224, 84, 67,182,  8,232, 69,209,  9,  5, 29,144, 98,136,129, 61,151,148,179,187, 71,105,220, 61,151, 84,
-212,154, 24,145,196,181,212, 17, 13,  0,177, 72, 46,201,212, 34,133,210, 84,  5,180, 35, 18,  5, 46,106,194, 92, 23, 41,255, 31,
- 83,111,246,107, 89,118,223,247,253,166,181,246, 62,231,220,169,110, 77, 61,177,155,221,236,230,212, 77,113,104, 42,164, 38, 90,
-180, 68, 74,138,230,200,178, 76,203,  3, 20, 36,182,131,  0,142,147,135,188,229,111,  9,144,135,  0, 14,144,135, 24,182,  3, 36,
-134, 96, 41, 78,160, 64, 18, 41, 90,108,146,221,236,238,170,174,233,222,170, 59,223,123,134,189,215,250, 13,121, 88,251,182,242,
-218,168, 70,221,170, 58,103,239,181,126,191,239,247,243,  1,110,144,203,230,138,  1, 85,133, 86,163,157,  2,215,200, 44, 77,168,
- 93,116,100,144,220,117,102,  6,136,169, 25, 58, 17,219, 42,200,171, 18,147,  8,154,218, 52,133, 15,147,128, 82,  6, 34,234,115,
- 54, 51, 34,110, 57, 18, 47,213,131,102, 93, 10, 34,211, 10,224,110,200, 73,220, 13, 98, 90, 63, 68,152,  8,  1, 66,232,100,123,
-176, 86, 89, 64,  0, 98,117,  4,116, 32,102,134, 36, 19,243,121, 83,212, 67, 83,218,110,148, 56,181,106,206, 16,144, 36, 59, 70,
-131,  0,184, 41,130,  7,130,186,183, 40,136, 90,101,100, 78,220, 34, 39, 76,220,166,209,230,138,128, 68,217,180, 52,202, 16, 96,
- 14, 85,128, 72, 93, 50,167,208, 34,146, 34, 92,155,201, 64,114,120, 32, 57, 48,  1,132,186, 67,  0, 18,115, 22, 87,173, 86, 37,
-  9,139, 68,160,186, 77,230,172,  0,249,227, 63,253,211,220,165,121,215,239,110,109,205,231,139,221,157,157,197,124,103,177,181,
-181,187,183,151,250,174,235,251,148,186,220,  9, 68,154,207,231,187,123,123,170,182,217,172,202,184,185, 60, 63,119, 12, 65, 20,
-114,225,137, 85,131,  8,200, 48, 73,236, 38, 98,134,181,192, 74,211,241, 97,180, 96,179, 95,199, 43, 39,194, 87,155,185, 32,130,
-131,239,236,110, 31,221,123, 88,117, 95,174,213,221,173,165, 52, 61,160,145,221, 26, 68,144, 32, 16, 16,205,157,193,193,  1,101,
-130, 40,  0, 52, 96,219,  4, 33,160, 22, 52,105,187, 96, 64, 68,129,246,241,155,124, 38,209, 36, 18,129,136,172, 17,115,238,178,
- 71, 44,250,244,225,143,126,240,167,223,255,201, 47,126,227, 27,175,127,230,245,245,249, 41,  0,  2,231,112,167,180,232, 22,219,
- 58, 86, 71, 87, 51, 76, 57,144,176,239, 72,  4,220, 16,  9,193,235,102,195,196, 57,117,255,246,143,255,228,173,183,190,242,250,
-235,175,156, 28,157,236,188,112,215,172,145,  6, 56, 60,190,240,213,159,190,255,222, 15, 47,206, 79, 23,243,157,249,108,113,235,
-185,231,182,118,247, 46,207, 15,206,142, 15,111,221,121,161,140,101,255,185, 23,158, 61,122,216,229, 57, 18,133, 25, 32,153, 22,
- 69,100,186,134,104,182,111,117,202, 96, 14, 72,225, 30, 30,230,134, 41,147, 25,160,  3,  6, 49, 89, 45,238,  1,194, 72,  9, 37,
-185, 57,215, 53,212, 97,  0,183,178, 44,195,248,189,255,231,143,143, 79, 14,111,239,236,212,112,115,168, 90, 54,155, 58,150,113,
-185, 30,114,226, 78,242,106,179,254,196,238,237,203,203,163,251, 31,124,127,177,189,245,133,175,252,194,211, 39,143, 60,120,172,
- 64, 56, 82,240,108,247,246,233,241,195,213,234,108,185, 60, 15,128, 50,172, 16,224,224,244, 36,229,156, 68,170,151,229,114,181,
- 92,175,139, 87,173,182,189,232, 54,  1, 87,171, 43,139,168,102,179,174, 87, 95,247, 41,153, 51, 39,  6,226, 87, 94,124,254,181,
-215, 94, 83, 74,191,247,220, 11, 16,174, 16,165,142, 90,199,113,181, 60, 59, 62,126,116,240,248,193,227, 71, 31, 61, 62,184, 92,
-173,135, 50,158,158, 95, 62,122,122,220, 17,254,179,223,254,213,127,240, 59,191,182,191,179,120,122,126,118,178,186, 58, 60, 63,
-255,196,173, 29,158,207, 55, 79,142,120,208,151,111,237, 49, 83, 56, 32, 79,208,217,196, 73,221,139, 25, 95,131,241,218,  6,169,
- 69,109,189, 24,113,184,180,213,253,148,160,136,198, 31, 69, 12,  8, 98,  9,  7, 68,176, 50,157,230, 26, 38,189,169,227, 20, 92,
- 36, 17,139,153,181, 10,  7,  6,170,105,195,168, 66,192, 44,243,212,150, 72, 20,246, 49,129, 15,194, 33, 80,  9,  9, 69,208, 52,
-194,  9,201,213,135, 24, 51,165, 64,172, 97, 80,161, 49,178,167,188,183,  7, 80, 80, 96,173,230, 94, 83, 74,132, 52,161,193,  1,
-217,193,205, 37,117,209,142,232,225,200, 28,  1, 85, 71,225, 52,209, 61,152, 89, 68,171, 66,  4,183, 13,167, 27, 34,166,148,219,
-190,138, 16, 26,101,132,152, 60,160,106,  5, 15, 68,114, 68,230, 52, 89,152, 34,180, 26, 33, 57, 26, 11, 91,107,182, 52,154, 43,
- 68,120,157,112, 82,  0,  0,193,146, 56,  9, 19,171,170,155, 39, 78,208,228,210,140,110,225,209,210, 55, 19,208,150,168, 29, 91,
-167, 15, 57, 94, 79, 38,219,179, 65,195,152, 25,  0, 85, 43, 65,  8, 35, 18,123, 27, 60, 54, 18, 46, 88, 29,170,244, 25,128, 35,
-130, 33, 12, 92,125,  2, 43,182,161, 47, 39,110, 89, 76,143,136,  0,134, 96, 33, 32,177,240,246, 67, 95, 93, 45,133, 33,245,194,
- 34,166,129,129, 94,  3,165,249, 95,155, 61, 46, 16,136, 25,209,  1,194,204,130,136, 72, 50, 66,104, 53,145, 22,133,  3,135,118,
- 74, 99,  8, 55, 31,153,165,169,172, 32, 90,148,  9,221,130,192,155,143,187,185,151, 27,173,195, 61,  4,145,157,  7, 51,140,198,
- 59,112, 68,162,156,146, 66,120,152, 26,147,247, 93, 30,134, 49,204,153, 80,190,241,181,183, 15,158, 62,123,124,112,248,240,234,
-106, 40, 37,194,183, 23, 91, 59, 91, 91,251, 55,246,119,118,182,183,183, 23,187,219,251,243,237,157,196,221,108, 49, 19, 17, 38,
-217,222,218,229,221,253,155, 55,159, 87,171,155,245, 48, 12,235,112, 55, 27,173,110, 34,106, 22,206, 57,220,131, 88,108,  2,233,
- 77, 63, 71, 59,134,160,249,100,226,152,248,235, 24, 17, 50,225,120,193, 44,114,146,197,188, 59, 95,110,110,109,119, 45, 42,211,
-152,170,222, 34, 93,161, 19,174,  2,  0,194,  0,161,253,175, 40,132, 24,230,  6, 36, 13, 82, 54, 29, 17,136,166,142,171, 87,159,
-136,193,136,212,204, 29,136,215, 28,133,198,155,103,162,178, 25,231,139, 57,  3, 60,249,240,189,127,253,239,255,195, 23,223,250,
-242,155,111,188, 54, 14, 35,112,  6,173,156, 50,231, 25,162,131,187,106,177,198,233, 40,163,100, 67,112,100,118,171,121, 54,179,
- 97,  8,194,157,189,189, 31,127,239, 47,223,123,255,209,127,255,223,252,238,197,233,113, 90,100, 97,118, 51, 64, 64, 22, 85,191,
-177,183,247,234, 27,159,125,116,239, 39, 55,246,110,108,237,190, 34,204,171,229,197, 48,214, 39, 79, 30,237,111,223,  8,139, 82,
-108,107,247,198, 48, 14, 61,205,166,198,237,100,248,248, 88, 91,229,193, 34,253, 44, 26,150, 69,192,134,145,136,221,172,253,249,
- 41,119,220,229,178, 41,110,181,245,137, 67, 29,220,211,124,143,242,130, 37, 13,101, 20,162,207,126,225,205,245,213,217,241,249,
-217,249,122, 68,  4,173,181,150,162,238, 85,117,167,203, 44,189,137,188,255,254, 15, 86,155, 53, 11,219,184,153,205,183,250,249,
-206,197,197,249, 98,239,206,197,217,193,124,103,215, 93,239,220,121,249,226,236,116,123,107,103,121,117,190, 53,223, 94,174,175,
-158, 93, 45,133,133, 17, 41,245,165,140, 59,123,187, 96,245,234,106,244,136,205,102, 77,132,243, 52,171,181, 50,182,203, 40, 49,
-161,123,168, 90,223,117, 15, 63,250,112,239,185,151, 56, 37, 83,211, 97, 53,174, 87, 87,103,167,199,199,199, 15, 30, 62,124,239,
-163,251, 71,199,231,155, 90, 86,171,213, 71,  7,135,231,231, 87,223,248,242,155,255,245,119,126,247, 75,159,251,244,179,227,167,
-239,125,248,116,137,120,121,126,118,114,118,126,244, 23, 23, 87, 71,231,183,247,182,230,243, 57, 64, 32,178,136,144,144, 89,  8,
-231, 70,160, 16, 33,119, 79,204,102,142,  2,104,100, 94,195,175,129,163,238,200, 60,  5,242, 90, 75,226,154, 90,205,130,  0, 92,
-171,181, 70, 49, 32, 82, 22,112,212, 98,  8,145, 58,  2,  0, 83,205, 57,213, 90, 27,247,209,204,155, 97,192, 32,138,198, 52,107,
-107, 55,220,198, 83,181,246, 48, 65, 34,113,173, 17, 17, 34,161,134,130,  9,154,164, 59,232,186, 23,208,178,145,224,222,222, 10,
-230,110,102, 57,165,118,105,189,158,120,212,  0,228,196,225, 22, 24, 17, 46,204, 22,142, 36, 68, 30,136,166,165,203,125,  0, 14,
-195, 64,  4, 93,215, 67, 64,173, 37,144, 72,200,205,163,181,226,117, 20, 22, 70,241,176, 90, 74, 98, 65, 22,191,118,204, 16,160,
-185,171, 25, 34,160, 80,173,154,115, 70,  9,100,210,162,110, 74,200,  0,102,109,169,214, 94,  9,136,110, 97, 86, 91,241,202,  3,
- 32,220,220, 91,104,169, 21,214,219,219,179, 77,204, 90,116,131, 82,246, 98,225,154, 19,155,135,155, 19, 51, 35, 27,184,155,183,
-208, 85,139, 68, 91, 53, 17,140, 32, 15, 39,100,103,104, 14,  5, 73,169,140,  5,145,160, 65,180,  2,129,176,235, 58, 53,213,170,
-  1, 24,104,  4, 20, 14, 97,209,132, 24, 64,176, 92,143,227, 48, 60,119,123,191,253, 35, 34,  9,154, 75, 38,  8, 68,230,128, 32,
- 11,243,218, 42,176,147,110,  8, 67,195, 19, 10,  2, 19,215,214,155,111,114,105, 45,181, 29,103,113, 26,211,  7, 49, 17,182,196,
-145,179, 96,173,209,152,145,140,172,174,211,214, 23, 16,131,138,141, 12,  0,196, 30,198,142,210,177, 70,123,109,182,137, 55, 89,
- 85, 12, 37,102,168, 32,159,250,228,107,175,191,246,170, 59,184,235,249,201,201,195,167, 79,159, 62, 59, 58, 60, 61,125,114,120,
- 16,128,179, 89,191,179,181,115,251,230,205,155,251,251, 55,118,183,187,110,214,247,243, 60, 91,116,253, 98, 54, 95,244,125,151,
-115,183, 29,139, 90,107, 25,107, 45,117,216,172,199, 97,117,177, 92, 51, 70,223,185, 16, 16,  7, 34,135,217,180,180,106,201,198,
-235, 23,111,131, 88,127,220,166, 67, 64,  2,  7,164, 27, 59,187,  7,103,151,183,182,238, 76, 15,247,233, 97,110, 72,220, 10, 77,
- 31,123,138,193,  3,184, 97, 53,166,230, 18,134, 55, 93, 77,227,227, 35, 53, 58, 54,121, 24,182,226, 56, 33, 32, 24, 52,163,192,
- 20,247, 81,  0,138, 32,  2,183,  1,189,223, 44, 47, 63,120,112,255,197, 23, 63,241,245,183,191, 52, 84,107,252, 27,234,250,234,
-216,177, 72,202,170, 22,181,130,123,212, 66,136,161, 69,182,246,  8, 28,153, 77,199, 50,174,186,249,108,184,186,248, 31,255,229,
-255,250,181,175,190,253,220,115,183, 86, 21,246,238,220,209, 82,154,211,  5,  8, 33, 40, 40,127,250,205, 47,126,248,222, 59,155,
-113, 68,132, 15,222,251,209,159,255,249,159,125,238,115,111, 94,158, 94,222,217,191,253,242,235,175,255,228,135,239,188,240,242,
-171,227,229, 89,238,187, 86, 82,192,107,  5, 78,219, 51,187, 27, 73, 74,204,238,225, 90,128,176,108,198,220,231, 90, 85,152, 48,
- 76,114,111, 69, 91, 58, 35,188,134, 75,115, 53, 72,  2, 17,166,212,153,  7, 32,220,185,245,252,171, 47,125, 98,184,121,227,163,
-255,248, 67,136, 40, 99, 57,191, 56, 91,173,134, 97, 24, 95,190,181,143, 48, 44, 55, 60, 95,236,222,153,221,126,237,115, 63,181,
- 94, 45,215,171,165, 72, 42, 87,199, 35,  0,  5, 18,145,214,225,233,211,135,  1,120,121,118, 52,155,111, 11,225,241,229, 37, 80,
-234,115,214, 90,189,214,113, 24, 74, 25,102, 89,152, 98, 51, 12,101, 24, 61,  2,197,144,168,134,  7,184, 71,168,250, 98,158,255,
-224, 63,253,246, 47,253,252,127, 50,142,155,171,243,227,156, 23,230, 49, 46, 47, 46, 46,206, 30,220,255,240,199, 31,222,127,122,
-124,116,118,121, 53, 12,227,229,114,117,239,225,193,238,188,255, 31,254,139, 63,252,253, 95,255, 22, 99,252,232,135,239,228,221,
-157,243,205,234,236,244, 98,179, 25,234,106,179,221,245, 55, 95,184,131, 68,104,237,  9, 12,205,139,134, 52,149,239,153, 80,161,
- 97,202, 32,194, 19, 74,227, 16,  4,  2, 72, 96,147,127,186,123, 32, 17, 16,139,155, 19,132,134, 19,  2, 26, 96, 96,151,164,213,
-154,104,194,120, 80,238,179, 71,148,106, 57,101, 36,175, 85, 53, 66,152, 28,192,195,147,100, 10, 12,110,136, 61,143,  8,100,116,
- 11,  4,111,167,228,246,  6,183, 80, 22, 46,155,226, 49, 18,161, 32,183,248,  5,241,244, 97, 71, 64, 34,244,  0,183,  0,108, 69,
- 89,144, 36, 13, 62,211,190, 92, 17,192,194,224,224,225, 49,201,206, 80,221, 39, 53, 12, 34,  6,164,156,195,194,180,144, 16, 33,
-170,150,169, 46,200, 72, 72,196,228,228,196,220, 10,178,181, 86, 68, 17,142,143, 59,130,215, 74,  5,  0, 64, 55, 99,230,176,224,
- 22,151,  0, 52,117, 12, 32,150,240,112, 11,164,212,242,120,216,122,  3, 83,216,218,107,  0, 79,188,231,105, 30,141, 33, 30, 74,
-237,204, 30,224, 14, 44,  2, 96, 90, 75, 83, 71,140,163,166,204, 73,216,  2,204, 44,  8,115,154, 97,128, 90, 49,115, 66,194, 28,
- 17,110,213,145,201, 27,183, 22, 57,204,212,131,169,193,103,  3, 60, 82,151,155,171, 36, 34,104,241,204,182,221,  0,  0, 32,  0,
- 73, 68, 65, 84, 50,202, 74,  0,  6, 53, 87, 39,180,142,230,122, 51,246,130,146,164,140, 85, 36,  1,121,146,172,166,222,184, 49,
-196, 68,232, 70,101, 28, 89,  4,145,219, 76, 79,152, 48,  0,208,167,248,  3,128, 59,154, 41,114,107, 48,112,184,  1, 97, 18, 81,
- 13, 36,144, 44,181,148, 90, 42,  2, 16, 11,  0,154, 43, 76, 91,229,  8,119, 12,  3, 10, 78,169,170, 11, 34, 50,213,162,237, 95,
-146,129, 29,161, 12, 42, 12, 17,228, 90, 74, 45,178,218,172, 33,188,185,235,182,119,246,126,234,230, 62,253,212, 23,163,234,217,
-217,233,211,211,211,199,135,135, 79, 14, 15,239, 63,184, 79,156,111,236,237,221,222,223,219,223,219,219,221,221, 89, 44,182,182,
- 22,219,253,108,187, 95, 44,250,190,207,125,223,229,156, 89,230,243,153,199,141, 90,107, 29,198,106,101, 24,149,  3, 50,103,  7,
-191, 90, 93,172, 86,103,183,110,110, 45,114,  2, 39,119,143,  9, 67,214,232,208,  0,225,237,236, 82,107,204,102, 51, 59, 60, 42,
- 22, 66,134, 32, 83, 76, 61, 38,127, 35,  4,120,212,169,199,132,129,147,174, 30, 24,169,145,239,169,149,189,175,219, 85,237, 95,
- 18, 38,  0, 65,160, 67, 27, 11, 54, 88,205,148,173, 12,  0,242,196,226, 29, 94,158, 60, 59, 89,157,127,237, 27, 63,127,121,124,
-190, 90,173,250,173,109, 27,174, 80,122, 40,235,192, 12,179,222,172,  2,184,121, 73,121,134, 44, 40, 57,172,230,174,115, 47,  4,
- 62,174, 75,191,216, 22,240,127,243,111,254,213,106, 83,127,253,151,126, 97, 53,140,219,119,158,107,177, 82,  1, 12, 96,176, 64,
- 68, 29,134,231, 94,122,249,147,159,250,236,225,163,251,125,206,167, 39, 71,175,190,246,250, 11, 47,188,248,253,239,126, 23,  2,
- 95,255,244,107,183,246,111, 61,254,232,253,221,189,155,195,114, 53,219,222,134,107,174,231,100,129, 96, 10,183,220,207,145,194,
- 55,  3, 48,219,104,121,214,139, 80, 25, 43,  1,200,108,166, 99,  9,  0,  2, 48,102,208, 26,227, 50, 80, 48,247,110,224, 58, 98,
- 90, 16, 98,189,186, 40,235, 43, 52, 93, 23,221,212,130,128, 87,155,205,217,197,229,114,189,254,196,173,173,189, 25, 31, 45, 55,
- 47, 60,255,234,222,206,222,209,211,  7,227,234,234,226,248,201,106,244,126,107,111,121,113, 36,253,182, 90,192,169,162,235,234,
-242,196, 41,111,198,138,172,  8,113,190, 41,243,126,190, 25, 87, 73,186,182, 46, 41,101,116,243,198,111,185,113, 99,239,252,242,
- 50,179, 64, 66,211,  2, 41, 47,175, 46, 95,253,196,243,255,252,143,254,209,215,190,246,181, 82,198,213,114, 57,172,151,195,106,
-163, 58,158,159,157,188,255,193,253,247,238,221, 59, 62, 61, 27,138,110, 54,155,103,199,103,151,203,171,191,253,149, 47,252,139,
-255,252, 15, 95,125,249,133,163,195, 67, 89,116, 31, 28, 60,125,107,127,175,223,217, 58,254,224,  1,215,122,107,123,209,212, 53,
-  0,172, 48,148,177, 70, 56, 51,  7, 36,145, 68, 64, 14, 17,141, 78,218, 54, 94,129, 86,219, 22,167,169,201, 24, 17,192,241,122,
-181,195, 85,107, 76,189, 15,180,  8,110,162, 68, 70,210,  9, 32, 64,128, 66,220,102, 45,185,133, 28,213, 88,146, 32, 71,184,  8,
- 19,144,123, 88,120, 67,156,183, 20,159,169,122, 68,  0, 36,225,118,215,100, 98, 10,115, 85,225, 22,107, 15, 11, 71, 34, 78,226,
- 30,200, 83, 58,182, 61, 18, 27, 86,144,166,181, 39,180, 90,109,251, 54, 17, 50,  0,154, 42,  8,119,185,175,117,  8,136,102,193,
- 70,194, 68,201,205, 90,126, 25, 25,132, 69, 75, 37,118,206,217,195, 39, 22, 43,  0, 51,139,176,121,140,181, 50,145,187, 18,147,
- 90, 48, 33, 34, 52, 68, 76,132, 33,114,171,156, 71, 56,181, 26, 57, 54,207, 66,152, 59, 18, 74,202, 77, 87,216,208,179, 44,210,
-218,172, 77,120, 20,  0, 64, 70,200, 83, 67, 31,140,144, 66, 13,  9,  2, 27, 60,189, 76,238, 53, 68, 64, 16, 33,102,174, 85,  3,
-144,152,186,220, 69,120, 41, 21, 66, 33, 16,168,173, 25,  0,192, 32, 60,145, 20,213, 64,119,109,127,210,169, 28,139,220,142,207,
- 94,171, 33, 50,146, 55, 34,200,212,165, 20,214,162, 44,162,170,195,102,216,153,117,222,238,207,141,254,125,173,163, 64,132,148,
- 68,171,185,153, 52,248, 59, 70, 51,116,154,153,185, 77,135, 50, 38, 43, 26,  4,194,164, 13,232,105,149, 17, 17, 88,189,245, 34,
- 98,162,237,  2,185,155,155, 18,101, 68,134, 48,132,168, 85,153,200, 60, 56,  0, 57,132,177, 97, 87, 26,236, 63,144,180, 26, 81,
- 36, 97,117, 51,213,148, 36, 89, 11,171,  2,  6,132, 69,128,147, 85, 67,221, 32,242, 98,123,231,141,253,189,183,222,124, 75, 16,
-206,175, 46,238,127,240,193, 59,247,238,221,123,248,224,199,239,127,152,178,108, 47,182,110,221,216,219,219,221,219,223,219, 91,
- 44, 22, 59,187,123,243,249, 34,247,115,150,148,243,108,190,216,162,157,157,  6,134,209,234,204,108, 14,227,176,119,244,172, 59,
- 95, 46,215, 52,166,140, 61,113,110, 34, 87,  8,100, 66,240,150, 64,167,134,  4,148,188,183,179,181, 30,203,222, 34,181, 71, 54,
- 34,181,137,121,248,245,147, 61,  0, 88,176,145, 44,209,137,200, 52, 38,136, 24, 65, 99,239, 33,183,174, 76,155, 18,  5,  0,145,
- 91, 75, 72, 48, 95, 19,222,  9, 49, 16,173,129, 14,160,212,205,179,203,243, 87, 63,251, 26, 83,108,223,222,218, 44, 99,181,220,
-204,102, 11, 18, 65, 76, 20,144,183,119,221, 85, 40,113,154,  5,  9,184,135, 43,138,232,184, 34,196, 97,216, 80,238, 82,146,195,
-251,239,255,249, 95,189,255,135,191,255,123, 73, 88,187,158,187,174, 53,159,213, 29, 96,104, 50,132, 70, 87,250,242, 79,255,252,
-255,252,131,239, 59,124,184,152,205, 36,119,247,239,189,127,181,186,250,241,251, 87,175,125,234,213,215,222,124,171,190, 99,194,
-178,186,186, 76,243,121,106,189,187,192,112,100, 22,112,143,136,212,205, 81, 18,118,238, 99, 69, 34,166, 40, 99, 97, 65,192,208,
-128,  8, 64,150,192, 64,107,230, 68,129,136,136, 66,210,215,113, 73,146,162,223,215,113, 24,175, 78, 49,236,108,189,118, 11,143,
- 56, 59, 59,119,179, 27, 91,189,107,253,127,127,252,224,230,206,246,247,222,253, 32,103,153,117,249,253,143, 14,175,134,243,187,
-119, 95, 38, 76,243,188, 72, 44,  8,176, 41,117,119,177,131,116, 98,102,139,237,155,106,163, 41, 93,172,135,138,148,146,128,133,
-106,233,103,179,186,172,151,203, 37,  0,119, 73,246,119,118,181,120, 68,237,115, 62, 60, 58,234,186,254,183,126,249,231,254,232,
- 59,127,255,149,215,222,216, 12,197,124, 29,  4,195,122, 88,175, 86,231,151,103, 31,220,255,232,222,253, 71,151,235, 85, 25,245,
-248,226,236,236,244,252,246,141,253,127,254,157,223,253,157,223,248,213,205,102,253,215,127,245,221,221, 87, 94, 56,121,252,232,
-240,228,100,118,255,193,187,239,188,255,226,205,221,173,221, 45, 55,107, 46, 60, 34, 24,  6, 93,111, 54,128, 48,235,250,156,  8,
- 81, 80, 40, 98,154,194, 38,193,234,138,212, 26,111,112,109, 31,117,107,192,151,107, 89, 82,120, 16, 49,139,104,169, 16, 54, 26,
-176,200, 44, 39,  3, 43, 69, 73, 48,  0,204,157, 68, 72,216, 84, 93,  3, 39, 61,186,229,190,183,170, 45,254,208,224, 33, 72, 40,
- 76,238, 14,146,217,194,194,105, 50,190,131,183,133, 47,147,106,101,226,246,  8, 69,154,202, 38, 31,179,191,219,248,  8,152, 24,
-201, 49,  8, 39, 94,147, 89,109,154, 73,119, 13, 13,100,132,208, 82,134, 86,250,103, 34,  4,110,169,237,191,185, 14,186,215, 90,
-136,145, 19,155, 90,  4, 52, 57, 52, 49,185,251,176, 41, 44, 41,137,120,  4,  3,163,112, 47,160, 90, 39, 21, 90,  4, 17, 88,173,
-125,206, 85,107, 75,240, 34, 37,104, 69, 19,226,  0,224,102,113, 14, 84,215,198, 37, 38,136, 10,128,156, 90,153,133, 24,181, 90,
- 43,153,146, 16, 19, 91, 13, 35,107,121, 49, 55, 37,102, 66,210,170,146,152, 57,212,124,220, 12, 73, 36, 18,  3,248,176,222, 64,
-227,163,  7, 49, 77, 90,206,  8,146, 28, 30, 80,213, 68,196,194, 68,184, 93,130,167, 67,143,169, 85,101, 17,145,220,116, 19, 17,
- 32, 44, 85,171,154, 99,  4, 17,  3,194,106, 61,100,225,189,253,189,166, 44,132,152, 10, 55,140,172,104, 17, 81, 74, 37,162, 60,
-235, 74,209,128, 72,196,  1,160,166,100, 33, 89,134, 90,  5, 49,108,  2,252,154, 58,128,103, 17, 55,115, 87,  2,106, 23,148,  0,
-  5,228,118,188,104,151, 69,  0,114, 85, 55, 35,196, 44, 98,225, 57, 33, 73, 87,107, 69, 55,238,103,161,218, 86, 70,156,176, 95,
-204, 54,101,116, 45,140, 72,125,102, 78, 56, 20,153,134,207, 77,164, 29,147, 26,140,154,135,195,108,117,121,238, 68, 89,228,173,
- 47,124,241,203,111,127,101,181, 92, 30, 28, 30, 62, 60, 60, 58, 60, 60, 56,120,246,244,254,163, 71,  0,188,187,181,189,191,191,
-123,247,230,222,214,206,238,206,214, 78,215,207,231, 59, 59,219,243,109,201, 57,229, 60,155,205, 49,  9, 33,206,102, 93,151,187,
- 97, 24, 46, 47, 46,134,178,190, 24,171,219, 72,110, 34,209, 51, 37,  1, 73,146,120,234,145,162,199,238,206,206,209,197,250,230,
-206,204,220,176,125,108, 91,179,116,242,138,180,145,186, 57, 76,182, 23,188,118,180, 54,247,  0,182,185, 26,112,184, 33, 18,160,
- 18,101,  0,  2, 97,208,128, 54, 55,107,159,109,181,233,178, 11, 16,225,121,158, 94,125,227,213, 46,241,184, 41,148,120,177,213,
- 93,148,203,177, 32,149,113,247,198,110,120,  3, 84,160,150,209,170, 82,219,254,154,  5, 49, 98,251, 90, 66, 55,235,125,117,245,
-151,223,253,222,167, 63,253,249,183, 62,243,201,139,243,203, 59, 47,188,236, 86,218,211,  2,136,133, 59,183, 64, 68, 33,172,181,
-236,222,218,255,202,215,126,246, 79,254,221,255,190,181, 88,228,156,250,126,254,226, 11, 47, 60,125,250,236,254,  7, 31,204,102,
-139,155,119, 95,248,241,247,255,226,185,187, 47,143,235, 43, 33,226, 44, 13,111,108,181, 54,235,227,100,122, 84,215,170,121, 62,
- 99,166, 90,215,161,225,140, 48, 86, 98,  4,114,171, 26,213,180, 42,231,140,109,195, 28, 53,165, 29, 78,253,120,254, 76, 55, 27,
- 34,114,247,195,211, 51,243,152,119,233,242,234,162,140,195,211,211,139,139,229,234,108, 57, 84, 15, 64, 94, 46, 47,199,113,204,
-249,131, 62,119,221,  7,143,  5,  2, 48,  4,202,214,246,222,238,214,222,140,160, 79, 98, 97, 12, 39, 93, 39, 15,151,171, 71,207,
- 78,247,111,221, 14,117,  6,154, 44,230,200,225,136,  8,203,245,230,206,205,189,157,237,217,217,121, 57, 57, 63,187,123,235,230,
-111,127,251, 91,191,247,155,191, 57,223,217, 91, 13,155,208, 90,198, 90, 54,195,197,213,213,225,225,147,251,143, 14, 14,143, 79,
-150,155,245,114,189,121,244,248,233,114,189,252,214,215,191,250, 79,254,224,119,222,120,253,211, 79, 30,126,180, 28, 47,159,156,
- 28, 63,187,186, 24, 71, 37,247,227,123, 15, 95,123,110,191,235,187,112, 96, 78, 65,145, 36, 87,171,110,134, 64,136, 18, 64, 72,
- 41,  0,107, 41,237,219,154,128, 75,177,182,196, 67,196,106,198,136,128,232, 62, 65,247,  2,177,152, 39, 64, 74,108, 26, 94, 11,
- 11,187, 17, 35,  8,163,154, 33, 97,238, 82, 76,149,121,105,218,131,  8, 32,166,208, 42, 50, 11, 36,173, 10,238,128,236, 97, 77,
- 11,134,209, 50,231,192, 14,197, 93, 36,  5, 24, 18, 69, 91, 80,121,  4,  4, 17, 86,171, 89, 50,226,199,122,163, 96, 36, 15,107,
- 73, 52, 18,  1, 36, 66,200, 68, 49,153,206,130, 37, 69,184,107,109,174,204,128,104, 49, 33, 68, 76,194, 16,164,166, 97, 78,109,
- 80,133,100,234,136,200,137,220,204,140,194,189,105,155,136,200,204,144,128, 83,  2,143,  0,247,176,156,102, 13,148,220,120, 31,
-161,214,254,226, 28,172, 81, 39,195,220,209,136,164, 81, 41,  1,160,203, 57, 92, 77, 43,  0,112,227,106,  4,168,161,176,  4,161,
- 59, 32, 57, 70,251,217,  0,  8,219, 16, 99,226, 25,168, 82, 91, 48,154, 65,162,156, 19, 49,169, 42, 34, 72, 74,128, 16, 85, 53,
-130,137, 63,214,117, 70,  0,132, 83,151,201,195, 45,188, 22, 64, 48,  0, 17, 65,156,222,172, 16,232, 86, 16, 33,  9,  3, 35,128,
-154,129,228,228,181,182,222, 90,179, 84, 71,168, 41, 12,235,205,206,206, 28,136,155,246,190,129,101,205,161,186, 97, 43,102,122,
-  4, 56,  1,  9,139,187,186, 59, 18,117, 93,246,170, 85, 45,170, 66, 22,143, 64, 22, 36,119,119, 78,226,106,215, 22, 38,182, 82,
- 72, 18, 64,154,196,209,  0, 72,216,198,170,109,154, 10,230,230, 83,255,174,150,129,137, 81, 18, 52,129,181,131,100,  6,193,106,
- 74,216,186,244,198,141,232,145, 89, 32, 90,191,184, 97, 35, 39,149, 93,  0, 16, 55, 38, 41, 50,160,123, 12,155,245, 56, 34, 51,
-191,244,194,139, 47,191,252,178,149, 58,214,122,185,188,122,252,228,240,222,131,199, 31,222,255,240,157,247,116,103,107,251,206,
-237,155,183,247,110,108,109,111,221,216,219,221,221,221,159, 47,182, 23, 91,187,243,237,173,190,235,171,142, 14,150,102,249,134,
-220, 80,157,107, 51, 23,140,101, 28,135, 85,173,161,234,235, 26,166,130,206, 76,139,153,206,146, 92, 93, 94,192, 75, 55,187,196,
-222, 90,179,166,128,224,244,255,115,103, 67,203, 89, 57,  4,  5, 70,251, 72, 53, 97,103, 88,  0,122,152,145, 72, 75,212,  0, 50,
-184,181, 69,111,139,243, 52,116, 42, 10,121,131,191, 19,  6, 64,206, 25, 49,180, 86,108,188, 10,211,221, 27, 59,231,103,231,203,
-139,186,127,247, 57, 34, 78, 76,225, 96,166, 77, 65, 99,170,102, 99,238, 59, 70, 30,215,155, 60,159, 11,243,241,225,193,159,191,
-243,254, 63,250,131,191,123,124,248,228,246,167,222,252,216, 87,235,227,128,130, 22, 53,204, 56, 11, 10,133,177,187,126,241,171,
- 95,255,193,119,255,114,117,117,177,179,179,187,189,179,219,160,158,143,158, 60,189,115,243,254,141, 23, 63,201, 36,253,246,118,
- 45,235,205,122,185,197, 55, 90,125,105,106,  2,  3,165,173,173,112,133, 90,242, 44,179,112, 45,163,135, 77,145, 85, 66, 36,114,
- 51,175,213,106,109,178,152,230,220,212,170, 72,168,171, 11,168,107,  2,179,205,250,236, 98,121,190,222,188,180, 63,103,240,139,
-171,101, 41,117, 40,234,238,235,205,122, 44,155,253,157,253,190,239,198, 90,170, 57,150,178, 30, 70, 11, 55, 83, 70,196,179, 21,
-211,179, 81, 71,114,220,217,158,119,210,213,186, 73,156, 66,100,189, 90,237,236,237,113,224,184, 30, 55,101,221,229, 57,241,170,
-140,163,131,175, 86,155,139,245, 82,178,124,243,203, 95,255,245, 95,253,246,167, 94,253, 84, 32,173,214,203,178, 89,175,150,203,
-243,211,147,229,106,245,224,201,163, 15, 31, 60,185,184,186, 28, 85, 79,207,206, 31, 60, 57,248,220,203, 47,255,195,223,249,199,
- 63,255,245,159,  6,175,167, 87,167, 31, 61,123,184,152,245,119, 95,121,233,199, 63,120,119, 60, 95,110,207,186,221, 69,215, 82,
- 98, 41,229, 73, 64, 44,109,188, 77,205,232, 38,146,212,172,225, 94,  5, 81,205, 21,221,193,  1,200, 44, 48, 65,151, 72,181, 77,
- 97,128, 36,143, 99, 33,114, 97,108, 53, 91, 33,242,128,  8,231, 46,145, 69, 45,222,205, 16, 35,128,  5, 29,136, 34,220, 34, 64,
-114,106,246,177,212,119,166, 58,225,199,144,152, 24,  3, 61,204,219, 99, 17,128,136,172,  5, 35, 29, 16,209,109, 66, 86, 33,120,
- 85, 35, 71, 17,153,212,193, 24,102, 14,132,238,134,136, 30, 17,224,140,210,192, 80,118,189,143,108,199,160, 54,196,  3, 68,  7,
-100, 22, 64, 96, 78, 17,230,230, 30, 22,  1, 36,140, 17,136, 17,  4,196, 28, 22,174,214,224, 78,204,137,137, 17, 67,205, 89, 24,
-  1, 61,188, 53,182,144,219,253, 47,  8, 17,  5,205, 60,245, 73,213, 16,177,239,250, 82,149,164,253,166,212,166, 31,196,130,142,
- 90, 10,113, 16, 49, 64, 48,114, 49,  3,  0, 73,140, 66,  0,200,102, 22,232, 22,204,212,242, 69,209,214, 27,173, 69, 15,228, 17,
- 44,220,254,230,171, 57,121,211,218,229,112,141,136, 36, 18,234,225,222, 72,136, 44, 66,136, 22, 14, 22,225,218, 36,165, 45,150,
- 29, 17, 76,  4,130, 90, 21,192,152,164,173,208,107,177, 89,159,152,195,106,109,213,178, 78,196,205,212,205, 35,170,  6, 49,205,
-231, 91,129,228, 90,  3, 81,136, 85, 77,213,136,200, 32, 56,204, 29,  4, 25,168,177,145, 49, 33, 50, 75, 85,115, 15,130,144, 46,
- 71,  4,185,223,253,212, 11, 44,242,240,135,239, 34,112,238, 58,173, 58,234, 72,225,148, 90,118, 66,152,167, 32,141,183,215, 72,
-147,208,133, 99, 98, 17,114,211,  8,109, 92, 68, 11, 71, 69,102, 82,139, 58, 22,172,200,125, 70, 72, 24,  5, 52,144, 73, 82, 39,
-162,  2, 24,  0,196,137,221,212,194,  1, 26, 77,173, 13, 58, 40, 38,216, 98,  4, 33, 96, 20,173,  4,  8,166,132,152,152,111,238,
-221,184,181,191,255,246,151,127,202, 34, 78, 14, 15,254,226,175,127,244,193,131, 71,239,254,228, 39,187,219,187,119,239,220,190,
-125,243,230,173,253,253,155,251,183,182,182,182,155,116,116,179, 90,113,151,152, 18, 19,139,116,121, 54,227,109, 42,195,198, 27,
- 10, 24, 92,213,203,184, 41,165,174, 52,134,  0,173,254,215,239, 61,125,233,185, 61,230,152,117, 73,136, 82, 78,213, 44,212,112,
-194,151,  5,160,180, 91,103, 76,246, 85,  0,128,152,100,193, 48,177,114,218,246,164,148,134, 90, 68, 73,237,118,118,109,118, 37,
- 98,135, 41, 47,143,109,141,127,253,  6,112,  8, 15,192,253,219,123,103,112, 57, 44, 87, 55,238, 62, 79, 93,167,181,216,122, 21,
-  1,198,  2,225, 41,247,  2, 94, 86, 35, 64,128, 43,172, 87,255,199,127,248,179, 55, 94,251,244,110, 39,105,107, 39,207,231, 54,
-142, 32, 30,  1,216, 24,123,213,165,203,212,117, 94,171,107,  9,151,188,216,250,185,111,254,242,191,253,223,254,101, 68, 44,102,
- 51,130,  4, 30,199,199,103,207,142,207,186,174,191,115,231,238,102,121,190,127,247,197,243,103, 79,106, 29, 83,154, 11,161,  7,
- 33, 88,  4,116, 41,187, 69,235,  5,149,205,224, 30,  1,132,196,174,163,164,  4, 16,182, 41,170,149,187,121, 68,227, 55,145, 87,
- 29,139, 42,  0,155,233,234,170, 92,157, 46,175,174,142, 47, 47,239,238,228,203,205,112,112, 49, 46,178, 97,132,154, 69,200,214,
-108,203, 93, 75,217,172,198, 13, 98,131,154, 49,162, 33,128,180, 96,  9,162,170,  9, 97,215, 45, 82,234,  0,184,  4,123,  4,  3,
- 28, 28, 31,207, 22,243,234,113,113,177, 52,119, 89,208,238,214,214,145,214,176, 56,190,188,204,  2,255,229,223,251,206, 79,191,
-253,211,105, 62, 27,198,106, 58,142,195,112,121,126,126,177,188,124,118,116,244,209,227,199,143, 15,159,142, 69, 55,227,240,228,
-240,217,249,229,229,175,125,253,237,255,246,191,250, 39,139,197,236,248,209,  3,185,177,251,222, 79,126,116,254,244,216,144, 30,
-221,127,188, 55,239,110,238, 47,192,  9,130, 57,152, 56, 85,179,148,216, 53,170,142,  0, 48,155,247,195,166,  8,167,174, 79,227,
-168,140,  2,204, 69, 45, 34, 28, 12,129,137, 33, 12,192,124,163, 38,137, 19,209, 88,172,216, 64, 76,137,147,155, 87,173, 41,139,
-185, 49,145, 16,153,  6, 32,228, 76, 86,148, 37, 97, 43,103,134, 91, 53,164,112,165,  6, 38, 27,139, 50,177,224,199,210, 75, 10,
-159,218,249, 85, 61, 53,159, 42,130, 16,170,151,143,101,146,197,172, 99, 70, 48,206,220,112, 20,141, 61,197,  8, 78,  1,  6,238,
- 70, 36, 30,212,102,192,230,129,196, 44,201,106,153,200, 99,209, 20,217, 72,211,225,130, 81, 48,106,212,170, 57,119, 36, 92, 75,
-117,117,206,210,  4, 74,142, 68, 64,  0, 42,196, 22, 54,106, 21, 78, 57,101, 11,131,118,117,  8,  8, 64,213,202,228,  0,168,224,
-  8,200, 34,106,174,170, 76, 12,204,185, 75,170, 10,140,140, 12,224,161,230, 17, 30,209,207,186, 82,107,132,181,242,203,117,180,
- 55,216, 80,193,155,218,  2, 34,204,195,195, 24, 73, 48,134,106,194,212,245, 93, 84,  5, 64, 48,168,161,  0,192,220,  0,159, 56,
-169,158, 60,180,170,  2,  8,177, 67, 16, 51, 18, 34,178, 87,115, 31,  1,  0,157, 89,196,205, 82,226, 82,109,226,  4, 64,  8, 73,
-245, 54,167,165,156,121, 24, 43,181, 59, 60,  1, 64,168,121,123, 46, 64,232, 82,199, 44,132,194, 76, 20,220,149, 82, 55,227,144,
- 82,146,196, 13,126, 40,189, 80,117, 11,143,106, 57,119,125,238,116,172,131, 22, 38,206, 89, 34,124,189, 30,137, 41, 16, 30,127,
-120,191, 23,161,148,193,221, 33,136, 69,196,220,  3,129,131,130,165,249, 91,  2,194,152,196, 28,204,106, 74, 12,152,195, 21,193,
-221, 13,153,194,216, 74, 77,137, 83,206, 36, 51,201,166,227,  8, 68, 86,181, 73,138, 56,103, 13,199, 90,221, 84,166,171, 74,139,
-163, 52,101,  7,  6, 77,171, 18, 14,155, 52,122, 13, 77, 76, 56,  5,162,130, 28,173,249,226,193,139, 51,209,243,159,120,229,239,
-127,254,243,155,171,213,193,193,225, 15,222,251,201,227, 39,135, 63,250,241,113, 55,155,221,190,181,127,235,198, 94,159,123, 17,
-  6, 15,206,156, 57,167,156, 89, 40,167,190,239,186, 82,  6,102,201,179,190,203,189,164,110,214,237,152, 27,  6,167,174, 95, 36,
-254,254, 59, 63,122,254,149,207, 93,156, 31,217,133, 74,194, 25,215, 89, 71,204,145, 48, 56, 17, 19, 35, 11,178,128,107, 27, 74,
- 67, 56,254,141,147,121,170,191, 94, 11,229,155,153, 47, 32, 28, 12,131, 63, 94, 80,125, 44, 99,253, 88,219,212,224,150,141,125,
-140,  8, 70,152,246,110,237,172, 46,175,250,113,191,  7, 53,117,236,102, 62, 86,  2,200,139, 45, 64, 40,171,149,169,230, 69, 15,
-227,248,195, 15, 63,248,241, 71, 79,255,187,127,250, 71, 96,155,173,219,207,  1,  0,205, 22,161,170,227, 70,114,135,129,146,152,
- 51,135, 86,175,  5,212, 33,131,151,241,179, 95,252,210, 79,126,252,131,251,239,191,187,183,187,183,115,163,159,197,226,230,173,
-155, 63,250,240,209,243,207,221,186,251,210, 43, 63,121,247,  7, 22, 88,199, 77, 23, 36, 93,103,193, 77,208,202,185,199,196, 81,
- 43,245,185, 86,211, 90, 19, 55,147, 67,112, 74,200,232,  6,152, 58,  2,  4,175, 36, 25,194,189,140,212, 39, 36, 28,151, 39,164,
- 21,213,204,244,100,181, 58,175,155, 71, 39,203,117, 81,  2, 90,143,165, 29,211,170,171,134,118, 73, 54,227,102, 24,107,223,145,
- 16, 71,  3,248, 55, 94, 76, 52, 37,189, 33, 73,128, 95, 46, 47,158,191,251,252,214,238,236,234,236, 18,  2,186, 46, 31, 62,125,
-186,187,189,131,204, 89,  4,  0,  5, 35,137, 96,192, 87,223,252,220,239,255,246,111,126,250,211,159,221, 84,173, 69,135,245,229,
-106,181,188,184,184,188,184,188,120,250,236,248,222,227,135, 71,167,103,165,214,179,243,203,131,163,227,151,239,220,250, 23,223,
-249, 59,191,250,183,127,225,106,121,249,244,209,209,209,201,209,201,  7, 63, 57, 61, 57, 73, 57,157, 61, 61,251,228,237, 61, 78,
-  2,208,160,193,164, 17, 96,202,196, 67,169, 18,  0, 44, 76, 36,192,214, 49, 33, 16,230,110,214,226, 28,181, 17,193,218,103,132,
-130,140,176,186,139, 16, 35, 13,165,122, 88, 34,  1,162,106, 21,  9,165, 19, 51,203, 57,187,195,104,158, 83,134,104, 49, 92,  2,
- 32, 68,114,112,195,  9, 54,233, 17,204, 20,128, 41,101, 68, 80,171, 44, 66,128,230,138,212,214,134, 72, 20,141, 92, 99,127, 19,
- 18,107,107, 94,  0,119, 72,148,187,220,254,  3, 70,  0,147,155, 25,128,  0, 19, 33, 80,134,128, 68,162, 81, 16,185, 37,193,234,
- 56,182, 23, 68, 76,104, 39,  4,112,102,102, 18, 96,172, 99, 37,  4, 97,246,176, 80, 64, 18, 20, 53, 83,240, 32, 97, 97, 70,162,
- 48,240,112, 68, 74, 66,136,164,174,205,233, 12,  0,106,218, 46,132,225, 78, 44, 45,243,230, 54,  5, 46, 25, 73, 93,175, 19, 58,
- 68,192, 36,162,234,222,132, 21,102, 56,121, 91,249,122,140,132,  0, 96, 97, 13, 14,234,224,129,  1, 26,125,238, 12,221,212,115,
-  6,  8,172, 85,115, 74,165, 20, 85, 37,102, 17, 17, 34, 64,172,230,140,  1,196,109,219, 44, 14,  0,209, 94, 27,181, 84,  4,243,
-176,246,107, 39, 12, 58, 73,173, 26,230,212, 40, 88,129,155,162,  2,152,103, 89,205,193,157, 24,193,129, 32,  2,168,170, 49,145,
- 79,216,  1,216, 44, 55, 55,118, 23,204,172,234,102, 42, 36,193,141,108, 10,204, 40,194,141,230,201,211,211,194,181,186,154,138,
- 16, 39, 52,117,119, 72, 45, 48, 30,193,129, 85,141, 19,154,  6,104, 32, 43,210,199,231,105,176, 97,240, 48, 96,102, 18,117, 35,
-164,217,124, 94, 84, 33,148, 16, 16, 73,186,121,181,130,228,169,239, 70, 51, 93,111, 94,253,210, 27,251,207,223,253,238,255,249,
- 39,104,158, 82,146,121, 86,  3,211, 74, 22,156,137,145,197,205,154, 34,163,197,173,166,181,245,  4, 48,177,214,161,104, 99, 65,
- 64, 68, 20, 36,112, 85, 50,196, 32,  2, 35, 36, 70, 52,192,113, 24,199, 77, 33,194,231,158,127,241,165, 79,188, 88,198,114,114,
-122,246,228,233,211,131,195,227, 15,239,223, 91, 94,173,  3,209,212,187, 62,101,233,182, 23,179,217,172,159,117,185,207,157,122,
-205,185,155,117, 93,223,245, 41,231,197, 98,171,235,103, 41,165, 78,251,217,238,238,130,134,177,172,238, 62,119,171,150,106, 14,
-238, 49, 88,213,162,168, 22,232, 68,214,201,152,197, 18, 55,236,160,119, 89,  8,208,153,  1, 40, 76,161, 21, 51,176,237, 92, 38,
- 67,247, 20,218,105,101, 22, 71,196,  6,135,167,201, 57,213, 76,197,209,118, 85, 19, 92,222,221, 24,169,159,243,229,197,129,205,
-110,246, 89,154, 13, 12,137, 16, 65,199, 82,135, 65, 50,187,169,149,242,239,255,236, 47,127,235, 91,191,216, 17,224,214, 45,206,
-226,225, 28, 97, 22,156,178, 71, 32, 17,162, 51, 83,217, 12,  0,212,204, 39,110,  6,179,217, 55,190,249, 43,  7,143, 31,157,157,
-156,230,174,239,230,243,253, 91,183,206, 79, 47,222,187,247,168,159,239, 60,247,194,107,227,250, 18,115,223, 37,169,195,166,159,
-111,181,197, 95,238,103,  4,224,141,139, 82, 53,207,250,178, 92,153,123,202, 61, 37,  2,199,240,226,174,141, 35,  1, 86,  0,133,
-187,158,136,234,234, 98,214,239,102, 44,207, 30,189,255, 31,255,234, 47, 78,158, 29,212,193,138,122, 22, 54,243, 82,170,105,117,
-247,205,102, 19,225,170,176, 90,109,152, 37,161,  8,178,130, 93, 51,223,  8, 16, 24,201, 92,203, 88, 35,135, 87,187,188, 90,222,
-220,221,229, 46,103,150,243,213, 57,114, 90,173,214, 59, 91, 11, 34,  4,132,243,139,139, 79,220,189,253,171,191,248,139, 63,247,
- 51, 63,179,216,219, 91, 13,213,117, 28, 87,171,211,211,243,147,211,163,163,163,163, 71,135, 79, 15,158, 29, 45,203,102,121,181,
- 57,124,118, 60, 79,244,143,127,227, 91,191,253,173,111, 62,119,247,206,106,220, 60, 62,124,188, 90,173,118,110,239,159,141,171,
-139,139,203,253,173,173,231,111,237,153, 55,224, 31,179,164,218,194, 15, 76,132,204, 64, 44, 20,  4,110,128, 14, 73,  4,  9,153,
-209,180,  9,104,168, 61,203,  8, 41,154,166,163,217,219, 61, 70,173,  0,144, 56,199, 52,183, 67, 83,167, 36, 76,185,157,236, 82,
-146, 70,142, 35,230,182,229, 84, 53, 22,102,108,230, 58,108, 19,237,118,132,  6,130, 76,217,220, 45, 76,136, 13,128,147, 68, 56,
-  5, 34,195, 68, 41, 17, 66,164, 90,148, 17,176,237, 75,173, 81,158, 16, 61,220,131,124,194, 44,169, 25,  3, 52,137,143,161, 17,
-  9, 37, 10,245,136, 72,179,236, 30,109,211,192, 16,  0, 65,169, 39,183,106, 21, 42,  0,227,244, 46,158,  2,141, 14, 24, 66, 12,
- 12, 48,181,187,201, 16,174,191, 21,220, 82, 12,204, 84,171,182, 71,124,219,115,181, 71,252,116, 36, 34, 36, 76,230, 90, 93, 17,
-152,  5, 29,137, 17,181, 22,119,134,107,211,189, 55, 43, 20, 77,197,174,230, 75, 79, 36,214, 96,133, 62,153, 70,130,162,122,243,
-170, 71,132, 55, 56,173,181,249,123,226,150, 43, 47,238,204,200, 44,225, 26, 30, 72,228, 30,204, 65,204,230,129,225, 34,132, 72,
- 32, 93,216,  4, 67,199,160,  8, 35,188, 14, 81, 67, 16, 96, 43,231,171,218,  4,190, 13,115, 12, 11, 68,247,182,150, 99, 70,  0,
- 58,187,220, 36,162,174,235,181,106,132, 39,102,107,  2,222, 52,213, 43,193, 45, 48, 35, 55,234, 57,185, 59, 51, 19,246,238, 21,
- 12, 24,  9,201,205,129, 24,219, 93,  6, 17,189,  6, 17, 71,139,224,178, 56,152,150, 98,126,157,141,  5, 12,128, 78, 56, 64,204,
-125, 98, 73,133, 99,132,129, 17,146, 19,142,170, 30,150, 83,122,246,225,253,147, 71,  7,204,137, 48,132,217,204,175,129,140, 81,
-138, 85,171,210,106,205, 96,147, 37, 21,131,  3,204,189, 73,174, 48,194, 90, 83, 20,185,201,117, 35, 12,208,104,226, 97, 92,179,
- 80, 16,  3, 40,181,183,229,122, 40,232,  6,164,219,187,219,111,238,111,127,254, 51,111, 12,155,245,147,195,103,239,221,187,255,
-224,225,225, 48,212,141,175, 62,252,232, 98, 61,214, 89,215,245,179,217, 98,150,183,183,118,102, 93,154,167,196, 73,102, 57,179,
-200,172,203,125,215,109,237,236, 16,203,131,119,255, 58, 94,126, 49, 73,215,205,103,125,206, 44, 11,230,228, 78, 85,199, 90,134,
-106,174, 21,116,212, 50,174,136,160, 23, 22,162,190,163,204,152, 36,229, 89,110, 86, 39,243,104,167,120,192, 73,224,228,102,225,
- 64,130, 72, 50, 65,239,133,145, 57, 84,167,  5, 45, 18,181,249, 76, 64,  0, 26,  4, 49, 39,176,229,234, 36, 98,191,159,205, 16,
-212,172,184,226,230,236, 24,137,136, 18,154,191,247,193,  7, 55,111,221,253,220,171, 47, 14, 14, 55,118,118,128,201,203,104,170,
-224,150,182,182,235,122,128,  0, 72,172,197,  0,197,235,200, 93, 10, 85,202, 89,199,113,190,187,255, 51,223,248,246,255,245,239,
-254,245,238,122, 57,159,207,103,179,249,157, 59,183, 14,158, 28, 92, 92, 94,221,217,190,177,253,226, 75,239,191,243,215, 71, 79,
- 55,251, 55,246,187,217, 28,145,180, 90,238,103,237, 66, 85,215, 99, 16, 67,128, 90,149,214, 19,170, 21,101, 22, 86,180, 42, 17,
-  7,102,  4,197, 40, 72, 93,  0,  2,240,162,199,135,247,238, 95, 46, 55,159,124,229,141,123,239,126,240,222,211,243,170,214,119,
-226,230,227,160,  0, 10,129,163, 21,115,219, 84,115,143,174, 99, 34,116,240, 54,144,253,216,110,232,104,238, 86, 74, 73,153, 34,
-193,106,179,218,219,217,186,177,179,253,209,227,199,165,150, 27,219,249,114,189, 82,173, 93, 78, 26,240,183,190,250,149, 95,255,
-149, 95,185,251,226,203,152,186, 81,171,151,241,242,226,228,217,211,195,139,243,139,123, 15, 31, 63, 60, 60,184, 92,175,199,205,
-120,124,113,126,122,118,246, 51,111,126,230,159,254,189,191,243,250,235,159,124,250,248,241,179,243,227,167,199, 71, 79, 15,159,
- 84,139, 15, 31, 63, 30,206, 47, 94,220,219, 19,193,106, 77,248,206,  0, 68,204,110,181,170, 39,136, 32,112,140,106, 53,129, 68,
-132, 54,112,138, 75,245,170,225,137,184,250,164,225,109,219,251,  8, 48,247, 54,232, 22, 70,117, 84,183, 44,211,  5,128,169, 57,
-150,188,201,225,  3,192, 28, 16,155,100,110,202,103, 77, 12,  3,139, 32, 38, 33, 55,  3,  8, 73,115,196,104,143, 72,  4,170,102,
-109,215, 76, 68, 78, 17,134,102,202, 60, 53, 21, 25,  9, 66,193,129,137,107,107,101, 67,106,228, 27,245, 32,188, 14, 77,185, 59,
- 64,187,219,  3, 66,115,206, 51,160,153,133,134, 36, 49, 15,102, 10,247,208, 82,219,232,156,201,195,195, 20, 49,  1, 98, 68, 37,
-226,148,146,106,128,187,187, 19,146,187,182,200, 60,132, 53, 37,125, 68, 12,155,145,136,152,209, 17,213,131,176,229,183,128,112,
-162,152,149, 82,163,245,210,133, 60, 90, 35,131,186,249,124,216, 12,224, 70, 41,133,163,187,195,228, 93,165,192,105,117,105,208,
- 42,160, 22,166, 36, 82,170,  9, 11,145,149, 98, 45,224,  4, 68,165, 20,170, 53,119, 51, 51, 43,181, 50, 33, 96,104, 13, 78,216,
- 18,  1, 34,  9,204, 93,139,214, 98,  0, 34, 12,225,192,142,206,204, 98, 94, 85, 75,151,122,132,164,132,101,181, 38,  7,234, 51,
- 24, 88, 53,184,174,  9,198,181, 56, 98,146,133, 97,  3,253,  7, 37, 89,111, 54,115,145,246, 65, 87, 32,119,240,240,148,147,131,
-123,141,128,202,146,137,160, 86, 15, 83,226,132,129, 97, 17,160,156,196,171,171,150,148, 83,206, 84,213,109,116, 64,151,148, 32,
- 72, 18, 15, 67,105,153, 34, 51, 15,  3, 17,142,166, 42,236,147,105,140,234, 18, 35,176,180,224,110,235,233,168,106, 78,  2,196,
- 18,225,142, 26,161,171, 85,167, 58,159,207,198, 90,212, 13,192, 17,217, 61, 26,124,  8, 34,164,189,  1, 39,215, 40,178,123,193,
- 86,160,107,166,211,  9, 86,196,205,116,  2,222,198, 53, 96, 30, 19,103,191,185, 82,153,  3, 12,145, 29,140,  9,131, 32, 28,195,
- 77, 29,  2, 48,119,253, 27,111,124,234,173,207,125, 54,220,  3, 57, 76,135, 58, 46, 47,175,142,143,143,190,247,195,247, 78,175,
-150, 23, 39, 71, 79,170,  5, 98, 22,206, 41,111,117,253,108,158,179,164, 62,119, 66, 56,142,155,163,147,227,121,223,205,250,249,
-246,246,214, 98, 62,159, 47,102,210,207,102,253, 98,222,207, 89,208,157,220,221,108,199,221,135, 97,181, 44,195,229,102, 84,117,
-198, 16,194,157,237,217,172, 75,179,140,132, 70,200,222, 18,148,238, 83,234,217, 20,  1,130, 82, 32,176, 65, 52, 35,253,132, 44,
-110, 41, 57, 71,247,  0, 22,  9, 67, 68,230, 14, 99,189, 60,170,101, 49,223,218,235,250,206, 76, 65,136,220, 49, 32,172,188,123,
-239,241,219, 95,120,243,114,185,185,243,202, 93,226, 20,227,136,220,185, 22, 78,104,195,  8, 30,196,136, 68,225,238,101,131,146,
- 17,  9,  4, 56,165,178, 94, 91,209,207,127,233,203,239,191,251,206,213,197,233,214,246,216,205,230,139,237, 45, 73,114,112,248,
-108,190,152,229,249,203,187, 55,247, 22,139,237,237,221,221,243,147,227,189,253, 91, 64,212,205,183,136,185,140, 67, 25,171,100,
-168,234,169,155, 33,167,105,156,105,106, 70, 34,105, 42, 10,184, 55,145, 91,148,186, 89,158,253,248,135,127,101, 21,119, 16, 25,
-203,170,216, 70, 21, 32,220,161,186,  5, 86, 51, 47,174,153,114,241,113, 84,117, 12,166, 41,157,221,216, 62, 68,204,141,182, 31,
- 24, 17,163,105, 42,214,247,157, 99,156,158,159,119, 41, 45,151,203,220,117,  0,112, 99,103, 71,181,222,220,223,255,173, 95,254,
-230,207,253,220, 47,240,108,238,  0, 97,186, 57, 63, 59, 57, 61,122,250,228,201,211,227,147,135,  7,  7,  7,199, 39, 67, 45, 23,
- 23,151,231,231,231, 59,139,197, 63,251,221,223,248,253,223,252,118, 32, 28, 30, 60, 57, 56, 61, 26, 30,172, 14,143, 78,210, 44,
- 63,248,240,225,237,237,173,231,246,246,192,221,108,250, 54, 34, 16, 35, 19,165, 46, 49, 98,193,169,160,131,  0, 82, 91,253,199,
-117, 44, 35, 56,244,253, 44,115,170,230,204, 18,211,194, 61, 40,144, 17, 71, 83,102, 38,160,  0, 76, 66,194,108, 26,216, 86, 67,
- 13,161,139,220, 24, 16,173, 62,223,110,  0,146,164,117,112,154, 20, 87,178, 32,224, 88,106, 27, 37,184,106, 32,182,200,180, 70,
- 13, 15, 72,132, 68,225,225,225, 16,134,132,192,152, 92, 12, 12, 99,106,194,  4, 64, 22,102,148, 82, 11,114,195,156,  1,130,121,
- 40, 33,  7, 53,250,  6,  6,122,155,195,153,182, 80, 21,166, 44, 14,144,132,221,181, 29,140, 91,162,188,233, 67, 72, 90, 39,222,
- 26,245, 37,  0, 73,  2, 49,225, 88,218,253,195, 60,  8,  0, 89, 88,146,169,181, 82, 28, 65,195,247, 33, 51,133, 53,247, 20, 96,
-128,  7,148, 65, 69, 24,144, 17,130,136, 75, 25,  0,128, 40,141, 99,  1,  7, 32, 49,117, 66, 64, 32,202,130, 13,115, 73,140, 12,
-161,225, 16,  2, 76,194, 14,174,102, 89,208, 35,188, 56,  2, 36,145,170,166,101,204, 57, 35,164,198, 16,224,166,232,113, 64, 66,
-119, 13, 39, 73,201, 76,213,140, 34,152,137, 48,170, 27, 19, 51,  9, 18,152, 25,  6, 18,177,185,107, 85,194,232,186,206, 74, 13,
-179,  6, 49, 33,132,182,137,109,150, 56, 15, 96, 12, 32,  8, 70, 14, 68,228,203,229,154,195,183,119, 23,215, 77,120, 16,102,180,
-134,197, 53, 66, 68, 76,102,166,106, 72,148, 82, 86,179, 90, 53,119,137,185,115, 83, 34,234,251, 92,171,154, 83,  0,230, 46, 69,
-132,171,135,107, 13, 77, 89,180,170,106, 77,157,184,116,227,102,157,147, 80, 78,110,193,196,104, 17, 68,156, 68,171,130,143,129,
- 40,148, 33,193, 20,192,207,157, 14,163,160,  2, 50,  4, 14,227, 38, 39, 49,160, 82,107, 67,236,182,119,219, 84,234,111, 76,178,
-  8,244, 80, 36,142,104, 81,241,143, 81,162,237, 78, 51,205,178,221,162, 21,219, 62, 38,179, 83,187,255, 56,  6,  6,181, 41,  7,
-196,199, 35,240,118, 29, 44, 99, 25,198,145,129, 26, 79, 66,132,110,220,216,221,223,223,121,235,243,159, 65,176, 50,148,171, 97,
-125,120,120,242,236,244,226,252,226,242,240,232,228,248,244, 92,181,  6,130,112,218,157,247,171,177,228,148, 37,165,124, 44,125,
-150,148,187, 89,151,186,148,103, 93, 63,219, 90,204,230,219,253,172,203, 93,223,119,139,174,223,245,216, 13, 51, 85, 53, 11,143,
- 40,238,151, 23, 25,107,255,230,  0,  0, 32,  0, 73, 68, 65, 84,235,112,152,207,122, 17, 12, 43,137,128, 25, 82,226, 94, 88,184,
- 25,198, 61,130, 28,167, 22,212,181, 70, 22,154,  6,204,189, 48,160,218,132,  7,  0,198, 52,163,113,189, 33,148,212,221,112,213,
-148, 82,  0,131,218,189,143,238, 45,230,253,173,189,197,246,173, 59,105, 62,  7, 17,164,100,165, 82, 74,144,210,184, 90,167,220,
- 97, 74,156,164, 14, 35,114, 70, 98,136, 32,194,178, 25,188, 70,203, 77,127,237,231,255,214,191,250, 95,254,167,229,229,130, 18,
-111,237,236,221,189,243,220,193,179,131, 23, 63,241,252,234,244,164,172,203,122,189,186,121,247,  5, 61, 57, 25, 55,107, 11, 42,
- 67, 89,159,157,215,106, 34,220,184,193,  4, 16, 90, 36, 37,141,208,205,134, 82, 15, 94,194, 13,133, 49,205,114,215, 93,158, 28,
- 63,185,255,254,179,167,143, 23,243,125,177,234,101, 73,220, 35,120, 81, 15, 12,136,112,179,240, 64,104, 14, 69,116,135, 22, 28,
-238,114, 98,100, 96, 50,171,146,154, 65, 11,168,197,177,  1,  8,112, 24, 71,102, 22,128,171,186,188, 66,156,205,230,  0,241,236,
-236,236,115,159,122,237,237, 47,124,245,151,190,241, 11,159,124,237,117,163,100, 54,134,198,197,217,179,131,199, 15, 31, 61, 58,
- 56, 56, 58,122,122,124,114,122,121,185, 92,175,199, 81,109, 44,223,254,218,219,223,249,173, 95,121,241,249,187,195, 88, 87,117,
-248,224,131,247,247,238,222,174,225,167,239,157, 47,150,242,202,205,125,105,232, 11,194, 86,192, 17, 74, 13, 60,224, 26, 10, 78,
- 36, 64,228, 96, 24, 24,220, 18,216, 82,134,181, 22,  3, 68,143, 48,  8, 17, 70,  4, 15, 16,100, 70,182, 90,129,154,103,206,221,
- 61,101, 97, 68, 53, 39, 33, 12,244,107,254,  9, 51, 58,128, 32,153,155, 27, 50,147, 19,170, 71,206,185, 33, 98,137,185,105, 13,
-114,146,201, 72,  5,209, 52,210,214, 72,176,109, 72, 82,221, 39, 85,142,184,153, 86, 99, 97,112, 36,226,214,137, 71, 32,140, 48,
-240,233, 75,216, 16, 49, 64,197,134, 32, 98,100, 87,179, 80, 73, 66, 76,165, 42,  5, 83, 66,132,  4,224,109,230, 12, 96,  8,196,
- 76,238,142,209, 54,120,237,156,142,204, 18,209, 98, 21, 20, 17,166,138,137,200,128, 16,145,153,137,204,162, 12, 35, 49, 79, 46,
-157, 22,222,185,110, 94,129, 59, 16, 14,181,164,212,181,153, 27, 33, 90,173, 67, 93,155, 42, 33, 72,158, 17, 51, 37,193, 70,  0,
- 48, 11, 50,175, 13, 84,147, 34, 44,156, 60,188, 75, 98,  6, 97, 78, 72, 22,211,228,146,178,160,123, 41,198,137,115, 98,  0,244,
-170,  8, 78,204,208,134, 57, 56, 89,223, 48,192, 26,141,139,217,145,106, 45,204,156, 57, 33,161,153,114, 16,139,  0,128, 14, 21,
- 40, 48,156, 89,212,204, 28,220,140,153,132, 57,166,  5,  0,  2,146,144, 24,155,155,182,106, 59, 16, 68,120, 41, 99, 47,210,117,
- 61, 64,152,  7, 58, 88, 11,110, 16, 10,139,187,181, 31,  0,129, 48,160,  1, 22, 82, 74, 17, 24,224,196,130, 68,117,179,113, 83,
- 78, 89,114, 66,226,113, 24,204,172,205,  0,173, 40, 97,112,226,118,214,236,114,215,208, 81,215,198, 62,  2,198,112, 39,  2, 15,
-209, 90,131, 11, 79,241, 43,116, 15, 97, 54,173,136,129,170,156, 68,181,213,196, 82,139, 78, 85,173, 29, 65, 97, 17,130,214, 22,
-139,169,218,241,177, 30,152, 40,188,101,196,195,213,154, 86,187,221,194, 38,156,192,  4, 13,  8, 98,104,191,112, 98, 53, 18, 48,
- 50,  4,123, 40,  2,187,  7,128, 35, 49,  3, 64, 40, 32, 66,123,128,128,121,216, 48, 20, 66, 19,162, 89,158,189,241,234, 43,159,
-249,116, 91,236, 66, 25,235,249,249,229,197,102, 56, 60,124,246,224,241,225,227,167, 71,167,151,151,106,216, 47,250,237,126,107,
-123, 62,159,207,114,159, 59,102,234,152,152,168, 95,244,125,223,117,121,182,189,216,158,109,109,207,231, 91,125,223,247,179,185,
- 16,115, 18,139, 40,163,166, 46, 53,102,225,122, 53,152,149,171,227,115, 45,101, 62, 75, 59,139,188,191,183,221, 37, 16, 70,141,
-  9,125,128, 72, 16,166, 78, 28, 17,132, 16, 35, 42, 32, 39,104, 58, 70, 70,236, 97,121,117, 76,132, 93,151,114,191, 85,174,206,
- 93,228,207,190,247,238, 55,127,246,103,182,111,220,204, 59,123, 33, 25,128,192,194,202,166,223,222, 25, 55,  3, 69,147,220,170,
- 22,119,175, 24,228, 85, 49,139, 90,104, 81, 18, 36,194,178, 90,191,240,234,167,190,240,246,207,254,224, 47,254,239,249,246, 86,
- 63,203,251,183,111, 62, 59,125,118,255,222,163, 47,191,181,181,152,111,237,222,188,245,244,224,209,214,238,246,242,236,100,231,
-206, 75, 59, 55,111,214,161, 48,  1, 37,177,162,  0, 10,200,224,170,197, 28,136, 68,194, 43, 54,208,156,136, 16,124,244,238, 59,
-199,135,135,175,125,234, 21, 27,223, 56,125,252,120, 24,150, 17,136,117,125,181,190, 42,102,215, 61,130,  9, 22,225,230, 99, 25,
-138, 86, 51,219,154,207, 61, 28, 16,178, 99,107,140, 35, 11, 16, 16,178,215, 86, 24, 68,119, 28,107,205,243, 89,146,100,102, 24,
- 80,212,190,240,153, 55,254,225,127,246, 59,111,126,254,243,221, 98, 39,136,107, 29,202,106,117,118,116,120,255,193,131,135,  7,
- 79, 30, 29, 62,187, 88,174, 86,195,176, 90, 46, 33,240,237,207,124,250,215,126,246, 75,111,190,249,198,250,106,121,116,114,178,
-  1,248,240,189,247, 46, 78, 47,142, 87,171,147, 39, 79,159,219,223,235,152, 93,109, 26,255,122,  0, 50,139, 96, 80, 68, 20,173,
-  8,211,135, 19,  3,204,156, 25, 93,  1, 16,205,180,207,125,207,169,132, 11, 50, 49,183, 19, 75, 47, 93,209,106,181,  0, 17, 19,
-186,169, 19,145,135, 85,167, 68, 41,139,153, 55, 17,176,135, 17, 73,  0, 36, 73,110, 86,218,  7,153, 48,209,245, 97,188,121,  7,
- 33,  2,167,232,222, 20, 24,  7,132,112, 36,208, 58,108,134, 53, 32, 39, 73,125,215,183,205,143,153, 49,161,  3, 20, 45, 13,249,
-141, 68, 24,206, 68,197, 10,179, 16, 32,162, 48,179,106,117, 12,225,222,221, 61, 52,218,232,223,221, 16,174,141,135, 17, 97, 22,
- 78, 72, 24, 40,210, 77, 88,120,  0, 11,119, 45,192,200,148, 60, 90, 73, 10, 32,162,150, 66,140,204,226,110,204,200, 13,172,  8,
-160, 94,219,142,248,250,141,213,106, 84, 65,128,238,109,  0,129, 34, 76,224, 36, 18, 13, 53,156,187,132,208,204,124, 94,134,174,
-155, 55,140,160,176, 20, 51,215,104,114,146, 54,249, 71,114, 68, 28,203,200,212,161, 48,168,165,196,  8,  8, 44,101,179,105,164,
-  7,143, 64, 11,119,  5,224,214,164,101, 36,157, 90,  2,109,156,239, 22,152, 88,  0,145,  8, 82,223,115, 99, 58, 22,  3, 38,  7,
-135, 90,  1, 98, 54,159,215, 98, 21,198, 90, 70, 32,102, 65,102,177,234,109,129, 57, 73,158, 49, 28, 44, 44, 16,154, 19, 20,192,
- 99, 61,234,122,179,190,181,187, 75,132, 30, 33, 34,166, 30, 97,225, 33,196,197,172,154,181,183, 91,120, 56, 26,139, 16,203,132,
- 52,116,  7,  2, 83,165,196,146,179,169,130,105,  4,166,255,143,170, 55,255,181, 44,187,238,251,214,180,247, 57,119,120, 99, 77,
- 93,213,  3, 41, 81,205,110,146,205,169, 57,180,154,106,142,110,139,164, 24,138,162, 69, 89,142,100, 39,113,130, 68, 63, 40,113,
-126,136, 99, 56,131,127,200, 96,196,128,129,  0,137,101,196, 64,128, 32,137, 17, 40, 30,228,196,146,160, 72,150,100, 18,154, 76,
- 89, 18, 69, 50,221,108,246, 80, 93,115,215,171,122, 85,111,126,247,222,179,247, 94,107,229,135,117, 94,219,249,  3,216,120,172,
-123,239, 57,123,175,245,253,126, 62,194,166, 90, 90, 21, 32, 32,  8, 96,142, 48, 35, 33, 16,120, 81,100,130,200,158,162, 67,188,
-199, 87,  6,  6,113,  5,215,112,144, 19, 64, 60,150, 60,105,107,128,  6,225,195, 66,196,120, 20,163, 39, 34, 51,  0, 48,  9,147,
- 55,180,184,118,225,191,226,169,  5, 15, 14, 12,254,127,  6, 37, 15,115,208,217,219,124,236,149,  2,134,249,136,  1,162,241,131,
-225,  1,137,179, 63, 33,  1, 26, 56,146,147,163,185,  2,  8,128,  3,  1, 33, 25,  0,155, 59,184,214,230, 96,170,234, 17,113,218,
-216,218,184,244,200,197,247,188,243,209, 82,219,213,155,119,207,111,175,239, 29,157, 92,191,126,251,218,221,221,197, 98,121,253,
-214,253,162,154, 88,166,253,164,159,116, 91,107,107,147,190, 35,132,212, 73, 79,185,235,186,181,249,188,159, 77,166,147,217,124,
-190,158, 39,179,174,159, 32,  1,186,117,179,217,124,115,189, 13,101, 62,155, 13,165, 28, 29, 31,237,236, 45,239,236, 28,228,204,
-147, 73,119,110,107, 99, 54,235,251,190, 19, 38,173, 48,118,161,221, 49, 22, 78,166,136,  0,144,209, 61,  9,205, 55,242,242,100,
-191,235,174,180, 97, 69, 76,223,250,246,119, 46,109,109, 94,185,116, 94,102,107, 36,226,117,  5,210,183, 82,211,108,189, 86,211,
-170,156,132, 69, 76,155,131, 33,101, 45,141,177,  1, 37, 91, 54,102, 38, 73, 72,238,230,110,237,  3, 31,123,254,213,151,190,125,
-124,112,192, 34,169,235, 47, 63,114,229,149,239,189,114,249,210,249, 71, 46, 93, 56,220,123,184,191,187,243,240,  1,111,109,172,
- 49,118, 96, 70, 96,121,214, 53, 29, 69,149, 64,236, 14, 90, 10,166, 14,221,180, 22,230,212, 79,167,135,251,123,111,126,255,165,
-245,245,205,143,188,240, 35, 66,244,230,119,191,107,117,104,234, 93,194,197,241,233,235,119,239,171, 54, 51,180, 81,164,110,102,
-190, 26,202,106, 85,106, 83,119, 95,174,150,165, 12,224, 16,177, 16, 10,193, 11, 35,  1, 10,162, 32, 16,132, 75,202, 76, 93, 50,
-129,195,164,151,175,190,240,103,126,226, 75, 63,118,238,226, 21, 96,  2,135, 97,181, 60, 57,220,187,115,251,198,205,155,183,111,
-222,189,119,127,119,239,164,172, 22,167,203,217,100, 58,221,220,254,204,  7,158,254,228,199,159,153,230,124,255,206,109,158, 77,
-111,188,126,253,218, 91,119,183,182,230,187, 15,247, 54, 82,126,116,251, 28,162,183,102, 77,  1,200, 73, 17,153,  3, 51,224,228,
-166,134, 70,213, 53, 51,194, 88,224, 96,112,112,215, 56,130, 50, 18,100,153,130, 83, 52, 65,221, 25, 65,173, 33, 66,234,178,187,
- 87, 53,225,204,  8,213,155, 16,  1, 82,107,134, 68, 68, 20, 47, 18, 32,  4,128,161,212,216, 70,154, 89,150,164,230, 68, 28, 33,
-196,240, 81, 26,152,106,  5,  7,  2, 28,161, 88,  0,109, 53,236,237,239, 29, 30, 29,112,146,205,249,166,155, 75, 74,238,200,204,
- 81, 49,  9,112, 63,140,232, 93, 90, 13,203,145,133,194,  9, 76,155, 85, 36, 38, 22,213,192,103,  9, 50,153, 26, 17,158,105, 26,
- 33, 64, 84,102, 74,132,113, 33,  7,112,140,105, 48, 56,146, 72, 22,109,154, 82, 98, 34, 53, 53, 87,116,118,  3, 11,126, 16, 66,
-124,236,142,144, 57,153,123,109,202,177, 31, 52, 83,176, 78,146, 54, 37,  4, 68, 49, 11,213,137,251, 24,144,119,107, 26, 42,183,
-148, 72, 68,128,130,201,131,230,202, 73, 24,140,145,171,170, 42, 48,177,122,  3, 71,194,108, 86,145,144,152,221,176, 14,133,  1,
-251,174,  3,162,214,170,171, 34, 51,163,212,166,224,141, 57,185, 67,206, 25,208,203,170, 33, 69, 78,  9,205, 12, 16,115,151,193,
-160,150, 98,110,209, 34,142, 89, 58, 98, 10,165,198, 89,118,159,227, 90, 15,166,196, 34,136,198, 60, 70,  7, 35,242,139,160,106,
-230,206,137,155,214,140,216,245,189,  3,130,147,170,154, 42,  0, 40,128,131, 17, 65,135,169,212,230,222,194,147,110,106,140, 28,
- 19,149,214,138, 72, 74, 41,171,186,106,213,166,  0,110,205, 67, 86,193, 72,230, 78,214,186,190,  3, 76,102, 86,107, 99,  9,130,
-177,131, 57, 36,108,101,160,209,103, 74, 73, 80,  1, 93, 91, 22,  9, 46, 38,168, 50,138, 90,137, 39,116, 91, 46,101,210,135,  7,
-201, 20,136,  0,192,153,153, 83, 22, 34,242,160, 29,163, 35, 51,170,198,198,213, 35, 69,237,128,168, 64, 50, 22,227,206,200, 96,
- 48, 30,230,199,123,227,216,199, 27, 69, 77,241, 21, 36, 11, 22,218,232,228,  8,225,  0,  2,208,216, 42, 32, 12, 98,234, 56,236,
- 30,255,231, 32, 60,110,234,205,252,244,116,  1, 20,232,127,153,206,230,231,206,111,191,251, 93,239,100,112, 55, 59, 56, 58, 60,
- 58, 89,220,187,247,112,103,239,224,214,237,123,111,222,190, 89,171,185,225,108,222,111,172,205,215, 38,147,245,181, 89,223, 77,
-250, 36, 34,210,245, 93, 63,233,167,179,233,180, 95,155,172,173,117,169,115, 67, 73,210,175,245,243,217,180, 22, 29, 86,171,213,
-106,177, 88,158,222,184,125,191,212,150,132,214,215,103,211, 73,222, 88,155,110,206,103, 41, 11,130,213,230,102,102,230, 64,198,
-136,134, 32,156,104, 29,142,142, 31,144,118, 94, 15,110,223,123,248,165,207,127, 33, 77, 59, 36, 68, 98, 36, 86,179,148, 19, 90,
- 27,142, 23,148, 24,220,218,234, 20,243,148,130, 23, 39,  6, 78,173,168,153, 75,  2,  4, 67, 36,100,172,165,204,187,244,220, 11,
-159,251,253,175,255,250,108,125,141, 37,159, 59,127,241,209,199, 79, 94,122,229,141,173,205,121, 34,124,230,195,207,189,117,235,
-218,124,115,  3,115, 79,148,112,194,206,226,195,106,100,102,129, 89, 27,212, 93, 28,181,150,190,235,140,233,245, 87, 94, 62,218,
-219,127,231,147,239,121,228,137, 71,221,218,226,225, 94, 18, 89,173, 86, 34, 80,181,253,157, 95,252,165,251,199,  5, 24, 24,209,
-212, 44,236,192,128,165,148,128,219, 33, 97, 83,115, 71,139,111, 80,236, 19,  7, 11, 67,227,116, 50, 69,  8, 34,  7, 10,225,106,
- 88, 54,211,231,223,255,204,159,251,210, 23, 62,252,236, 71,165,159,173, 86, 75, 47,165, 12,139,253,  7,247,110,223,185,113,253,
-246,221,183,238, 61,120,112,112,176, 26,202,173,157,123,173,212, 47,191,240,195,159,255,196, 71, 30,187,114,190,154,183,201,228,
-245,151, 95,185,252,196, 99,179, 11, 27,245,214,237,195,221,195,139,235,243, 89,238, 74,107, 49, 17, 74,137,  2, 22,237, 16,182,
-123,119, 51, 12,244, 16,158, 25,101,  8,131, 10, 22,  0, 81, 66, 34,134, 36,100, 65,170,162, 32,164, 55,119,103,230, 56,152,114,
-148, 47,145, 50, 71, 55, 44,222, 16,104,  6,103,222,106, 55,211, 40, 41, 81, 98, 34, 42,181,129,  3,139,140,218, 68,192,128,  4,
-128, 99,107,  5, 36,157,253, 88,188, 53,109,173,170,106, 51, 45,221,144,211, 36,119,152,114, 23, 55, 89, 36, 64, 34, 53, 71,  4,
- 34,104,106,204,201, 77,193,173, 89, 37,116,226,140,136,161,229,100, 17,143,205,109,151, 64,221,205,115,151,205,204,220,137, 37,
- 26,144,102, 22, 56,171,118,134, 71,117, 87, 80, 22, 22,119,211, 22,169,161,200, 70,251, 40,111,  8,150, 60, 24,130,  0, 26, 34,
-178, 48, 33, 40, 24,  9, 38, 75,181, 42,143, 16, 63,103, 10,175,111,212, 10, 13,194,139,102,102, 78, 41,139,131,131, 91,107, 45,
-229,140,132, 34,226,106,173,169,176,152,183,166, 70,148,204,154, 65,115,243, 72,101,  0, 96,158,116,209,237, 10, 63, 42, 34,134,
- 67,131,152,227,126, 70, 72,181,148,136,  0, 57,248, 80,171, 16, 83,234, 29,188, 14, 21,162,247, 14,216,170,177,  0,230,  4, 77,
-233,172,211, 18,182,  6,109, 26,215, 35, 96,  6,128, 80,119,  4,  6, 44,242,223,102, 45,  9, 17,145,154,150,229,114, 58,235, 89,
-216,205, 67,102,  2, 64,102,158,  8, 99,202,135,  0, 41,177, 54, 52,109, 68, 76, 73,136,176,172,  6,247,248, 52,205,107,  9,240,
-178,170, 15,181, 50,  0,247,217, 28, 93,149,153,209, 59,109,  0,164,238, 38,140,241, 64,100,  2, 39,215, 58, 52,181, 68,202,210,
- 25,170,170,215, 82, 90, 27,  8,129,132,137, 83,120, 12,137,169, 54, 32,114, 76, 98, 77, 41, 17, 34,145, 68,  7,148,132, 19,172,
-  6,  1,183, 49,180,228,132, 49, 71,165,248,152, 71,131, 42, 96,192,213,129,128, 69, 80,163, 26, 23,141, 58,  2,  3,103, 24,169,
-151,204, 60,190,  4,198,166,112, 32,218,163,135, 19,208, 71, 87, 83, 30, 55,214, 35, 63,  3,204,162,198,  6, 35,191,205, 70, 85,
- 19, 56, 75,  8,233,124, 62,225, 59,247, 15,223,245,248,185, 85, 89,130, 49, 48,228,190,123,100,182,126,249,145,199, 19, 27, 82,
- 50, 45,187, 15, 31,222,124,235,254,205, 59,119,223,184,113,247,198,254,254, 98, 40, 93,206,235,243,217,246,250,198,108,210, 79,
-102,211,105,151,251,148,167,147, 73,223,247,156,178, 48,179,164,174,235,165,207, 89,186,205,173,237,173,237,109, 53,179,214, 86,
-101, 53, 44,151, 15,247,135,221,189,  5,217,253, 60, 73, 91, 27,179,141,121, 63,153,246, 73, 72, 18,  7, 30,193,195,216,144,109,
-117,116,240,245,223,254,103, 63,240,228,135,250,217,156, 38, 76,169, 71,132,214,162,115, 66,203,163, 19, 96,  6, 20, 74,226,173,
- 17,130,214,130,238, 40,201,204,135,163, 83, 74,220,229,  9,130, 91,173,209,221,104,194, 63,244,222,103,190,251,167,127,120,114,
-116, 36,210,167,190,123,199, 19,239,120,233,240,232,206,221,  7,143, 92, 60, 95,155, 78, 55,214, 94,250,147,111,127,225,167,159,
-235, 38,221,176, 60,181,161, 98, 96, 78, 28,117,168, 14,204,140,128,214,207,215,134,197,241,247,254,229,183, 46, 62,242,216, 15,
- 60,251,108,158,207,189, 14,203,147, 99,109,214,154,102,134,181,249,250,175,252,139,127,249,242,141, 59, 79, 60,122, 89, 91,  3,
-  0,181,  8, 70, 26, 48, 13,173,  2,  1, 58,145,141,233,236, 17,160, 31,253,183, 56, 39, 32,168,105,202, 68,131, 35, 81, 45,117,
- 50,153,254, 59, 95,251,234, 79,126,249,203,179,205,115,138,120,186, 60,174,167, 39,171,213,234,225,253,157,171, 55,110,236,236,
- 61,188,243,214,206,201,106,208,170,222,252,177,173,237,159,122,241,147,159,253,212,115,171,197,201,193,254,225,236,202,229,235,
- 55,175, 31,157,156, 76,143, 14, 95,126,233,181,  9,248,185,205,181,102, 94, 77,205,128, 24, 66, 81,231,128,103,186,220,198,146,
-  1,200, 13, 83,162,177,222, 22,235, 20, 36, 68, 87, 12, 38, 52,154,123, 51,199,128, 82, 56,153,171,  3, 72, 98, 51, 96, 70,247,
-132,160,  1,135, 97,  4,143,116,202,232,228,117, 68,212, 90, 57, 37, 32, 70,138,125,103,114, 80, 73,  9, 41,214,240, 99,169,154,
-  4,181,170, 27,164,156,206, 26, 73, 88,213,152,243,108,186, 86, 84,  9,160,235,166,253,164, 75,194,181, 54, 38,  4,  4, 27, 61,
-192,228,136,110,192,212,  1,249,217,108,215,132, 59,117, 55, 87,162,248,255,174, 72, 12,232,222, 60,136, 43,109, 85, 93, 66, 64,
- 78,237,108,176,222, 52,196, 68,  8,132, 96, 40,125, 87,106, 97, 66, 48,114,180,224, 48, 39, 17,208,166,102,168, 74, 73, 96, 68,
- 52,128,121,192,238, 25,208,  5,160,105, 64,146,209,212,  9,129, 25, 91, 36,135,145,  1, 34,  2,223,226, 23, 79, 28, 21, 76, 69,
-196, 52,153,184,155,185,106, 81,114, 68,161,229,106,133,128, 34,108,160, 72,152,132,  1,104, 88, 45,152, 57,247,189, 54, 39, 39,
-109,197, 77, 71,183, 50, 17,162,171, 91,159,250,170,165,148, 34, 57,141,239, 17,181,148,123,116, 55,173, 35,  6, 89,155,  1,144,
- 99, 74,210,180, 98, 11,192, 74, 33, 78, 76,217,124, 64, 71, 39,231, 68,140,210,180,180, 86,193,137,153,132,196, 92,107, 45,137,
-163, 31,131, 72,128,218,178, 12,155,155,235,134, 74, 32,238,160, 77, 17,144, 16, 76, 21,144,165, 35,  4, 82,115,111,  5,187,100,
- 13,134, 85, 99, 42,204, 44, 34, 26,210,190,166,196,236, 85,173, 85,102, 36, 98, 52,239, 36,169,228, 86, 86,197, 42,131, 51,118,
-136,228,234, 44, 40, 93,183, 42, 67, 27,  6, 83, 39, 70,  3,196,214, 16,201,220,203,176, 88,158,158,128,123,238,187,126, 50, 99,
- 17,119,  2,132,148,196,180, 81, 44, 74,  1,  8,153,153,221, 91,109, 37,122, 75, 18,113,215,120, 88,  7, 11,142, 24,157,  8, 27,
-156,165,134, 16,220,115,162,110, 58, 61, 61, 62, 30,213,214,228,  4,136,128, 76,232,128,  4, 20,135,165,209,160,231, 99, 60, 37,
-242, 98, 54,154,204,221,205,  9,206, 22,179, 14, 24, 49,106,198,127,109,158, 63,  2,199,162,158,230,142,110, 70,  8,155, 91,179,
-221,235, 59, 85, 55,227,246,106,224,110, 28,109,221,214, 16,176, 34,224,133, 11,231, 31,191,114,233, 83,207,125,144,136, 15,246,
-247,175,222,216,185,181,115,255,214,221,157,131,163,163,123,187, 59, 32,105, 58,157,110,205, 55,182,214,214,182,182, 54,250,201,
- 36, 51, 45, 23, 75,107, 85,178,116,125,215,119,211,233,116,214,245, 83, 78,156,115,154,244, 19, 66, 17,161,170, 54, 44, 23,251,
- 71,195,131,131, 67,240,189,233,164,223,218,152,245,157,244, 93,234,251,  9, 19,229,137, 16,251,185,199,158, 56,127,241,146,100,
-161,156, 57,119,109,185,212,102,148,104,185, 90, 58, 11,153,106, 83,150, 44, 41,155,186, 53, 39, 84,  2,209,161, 17,115, 55,153,
-131, 89, 43,195,120,136, 19,  6,135,212,201,135, 63,254,252,111,252,211,127, 50,157,205, 69, 68, 68, 30,123,236,202,245,155,183,
- 47,157,219, 60,217,125, 43,109,108,108, 94,122,  7,164,201,106, 88,182, 97,  9,200, 86,  6,140,189, 89,  4,135, 17,  8,224,214,
-235,175, 30, 28, 60,248,193,167,158,218,218,190, 80, 85, 17, 90,169,173,156, 46, 93,161,149,161,149,225,143,190,127,247,229, 27,
-111, 85,109, 26,247, 82,112, 83,  7,104,194,180, 28, 90,173,138, 12, 35,241, 97,180, 69,140,176,114,240, 51,150,133, 25, 10,161,
- 99, 83, 16,241,231, 63,252,193,127,239,103,254,205, 31,126,238,249, 69,177,  6, 90, 22, 39,101,113,124,184,191,127,227,230,141,
-155,119,238, 60,216, 63,120,112,176,127,116,116,122,120,124,122,229,194,249,143,124,224,125, 95,252,145,143, 93,188,112,254,254,
-238,189,226,237,254,254,254,193,173, 91,230,118,116,114,186,251,205,239,172,175, 77,214,103, 83,240, 72, 99, 97,202,236,110,136,
-146, 56,133, 19, 46,114,134, 77,125,116,189,128, 35, 98, 45,205,208,  0, 52,113,199, 66,224,130,  8, 54,198,120,199,237,130,161,
-  7,113, 62, 60, 68,  4,232,166,156,196, 32,236,146,156, 18,155,131, 16,132,241,199,205, 41,231,127,229,249, 34,  6, 48, 66,  6,
- 36, 51,  5,116, 53, 27, 83, 47,230,132,100, 50,186,137,  0,212,192, 17,129,133,166,147,105,160, 50, 88, 18,145, 52,141,169,246,
-  8,  3, 38,234, 28, 60, 16,  2,148, 81,171,145, 48,152, 58,177,122, 13,163, 42, 18, 86,213,152, 25, 18, 32,101, 70,247,216, 51,
-115,188,246, 70,139,165,  3,130,224,232, 63, 96, 34, 39,175,173, 34,160,153,113,156,230,163,214,175,205,205,152, 81,129, 16, 41,
-244, 56,102,122,102,179,119, 85,109,174,  0,136,200, 66,  9,208,173,182,130,158, 68,192, 76,132,195,244,132,  0,  1,253, 54,135,
- 86, 12, 25,213, 20,136,180, 42,128,147,176,187,235, 80, 25, 17, 44, 38,233,200, 12, 67, 93, 17,  8,177, 36, 97, 53,179, 82, 29,
- 60, 64,239,168,200, 34,197,170,  8,245,221, 68,181,161, 97,234,186, 56,153,146, 36,103,141,135, 76,211,202, 46,177,144,100, 71,
- 36, 72, 28,167, 74,  5,100,146,108,170,  8,149,128, 60,147,171,106,209, 56,110, 50, 82,136,144,170, 85, 66,202,153, 32,232,  5,
- 72,136,176, 88,156,204,122, 94,155,225,233,210,154,133, 81,138, 16,216,188,169, 91, 78,236, 81, 33,102,204,211,110,117,122,210,
-212, 37,101,194,228,126,198,126,211,  6, 72, 10, 72,  4,146,164,169,106, 45, 40,153, 58, 92, 21,117,163, 36, 41,130, 95,110, 38,
-157,132,220, 10, 29, 82,223,107,105,102, 13, 17,147, 36, 53, 91, 44, 78, 79, 79,143, 48,212, 33,204,181, 22, 67, 35, 52, 18, 97,
-201,  8,140,104, 35,198,192, 21,128,154,186,171, 33, 39, 66,149,145,199,131,  4,  6, 68,236, 64,174, 10,122, 70,246,  4, 32,119,
- 16,234, 38,211,217,218,108,185, 56,  1,139,214,231,120,157,  3,  0,115,156, 76,251, 97,185, 10, 31,222,153, 24, 47,102,246,113,
-101, 54, 24, 51,  1,163,173, 35,104, 44,128,  9, 92, 71, 86,198,248,114,128,241,209, 63,142,236, 45,234, 16,169,159,111, 77,243,
-253,189,211,203, 23,230,165,104,208,150,163,137,132, 36,129,  0, 93, 13,195, 48,  0,130, 35, 17,167,238,253,239,125,250,131,239,
-127,175,185,105,171, 71, 39,139,195,147,211,123,119,119,111,236,220,187,255,224,222, 75,175,191,118,124,114,178,182,177,177,181,
-182,190,181, 54,235,187,110, 34,137, 19, 11, 83, 18,158,118, 29,167,110,210, 79,242,116, 50,153,204,186,233,108,109,125,190,185,
-185,133, 76,230, 84,219,176, 92,174, 78,150, 85,219,130,232, 48,  9,118, 89, 54, 55,214, 62,242,161,247,156, 44, 38,146,166,221,
- 36, 55,179, 90,171,132, 67, 61,117,218,138,187,179,144,123,171, 13, 71,134,172, 72, 89,174, 90,211,220,119,148, 72,135, 37,134,
-235,119,236,255,145,214,250,212,211,207,252,241,239,125,227,250,141, 27, 79, 63,245, 30,230,110, 99, 99,107,247,254,189,171,111,
- 94,223,219,219,127,249,234,181,233,252,252,198,229,119,191,235,201, 31,172,165, 94, 56,183, 49,212,226,214,180,106,151,179,164,
-124,243,205,239,223,191,119,255,210,229, 43,207, 60,251, 28, 17,181,214, 82,159,235,114,185, 90,172,  0,  9, 81, 91, 93,221,122,
-112,248,205,215,222, 64,130,205,110, 46,204,203,214, 98,223, 18,239,152,197, 80, 34, 26, 17, 79, 13, 51, 80,119, 85,165,209, 49,
- 18,134, 44, 32, 22,107,122, 90,135,119, 60,114,241, 47,126,237,167,126,236,243, 95,152,174,175, 45,154,169,105, 25, 78, 78, 15,
-246,110,223,186,126,237,230,157,157,221,221,135,  7,135,167,203,101,109,109,247,224,248,221,151, 47,253,236, 87,190,240,190,167,
-127,  8,193, 23,104,247, 15,247,115,162,249,249,205, 55,111,221, 57, 61, 60, 93,155,229,243,143,156,  3,  6,107,163,215,136, 48,
- 33, 96,236,232,154,106,228,152, 28, 40,212,121,116,198,148,245,136,159, 58, 54, 67,179,  6,212,197,227, 23, 28, 29, 61,186, 44,
- 57,115,216, 67,  1,199,113,  3,128, 81,162,184,159,119, 19, 50,  7, 68, 74, 76,200, 90, 87,104,234,200, 68, 16, 40, 65, 84, 51,
-198,145,209,  4,103, 64,175,178, 90,229,156, 21, 32,179, 40, 24, 33, 19,131,169,  1,  2, 81, 76,120, 29, 56, 77, 83, 98, 97, 83,
-139,127,180, 51,163, 48, 34,119, 72, 44,194,140,162,174,102, 78, 66, 64,232, 21, 17,209,106, 65,192,232,181,114, 16,201,  1,153,
-121, 40,133,131,188, 37, 12,224, 77, 91,202,177, 72,139, 70, 36,  0, 17, 11,130, 81,179,134, 72,156,168, 22,  5, 30,237,196,218,
- 26,159,161,208, 88, 36,244,131,163, 86, 97, 20, 39,  5, 96, 62, 62,101,  2, 48, 36,228, 46, 51,104, 48, 44, 75,169,110, 74, 34,
-110,202, 34,238,192,128, 78, 65,  8,193, 82, 10,115, 96,188, 44,160,222,142,  8,236, 72,172,218,172, 25,167, 28, 66,241,166,138,
-102, 40,224,134,173, 57, 19, 26,  3, 49,101, 76,110,214,106, 97, 22,236, 71,200,226,200, 29, 81,211,152,188,145, 68, 93, 17,153,
-200, 16,153,212,148,136,172, 89, 51,117, 51, 48,131,204,200,130,110, 13, 20, 16,128,188, 35,  6,199,218,204,205,195,104, 25, 16,
- 91,102,116,160,214,154, 53,159,172,245,173,177,123, 13,114,148,171, 58,  0,139, 16,197,120,149, 49,161,150,106,214, 36,103, 54,
- 80, 53, 63,219,205,226,184,  6, 13,235,179,145,116,153,  8, 92, 90,243, 90, 91, 39,236,193, 77, 99,116,112, 73, 25,  8,  3,254,
-195, 57,187,181,234,192, 68, 40, 98,160, 69,109, 40,203, 82, 74, 98,234, 58,145,156, 23,203, 33,105,157,206,230, 41, 37,  0,170,
-222,220,160,105, 75,196, 46,238,102,140,132, 44, 97,165, 22, 68,  1, 82, 71,244, 24, 46, 71,138, 43,  9, 33,154, 86,228,  4,140,
-  8,184, 88,148, 97,177,  7, 30,171, 84,  5,181,240,226,170,  3, 19,174,134,234, 58,102,191, 40, 82,107,163,125, 53,234,193, 52,
-142,235,201,193, 29,205,220,160,129, 69,161, 23,  0,132,185, 53,115, 15, 40, 82,188, 17, 66, 75,229,  8,108,106, 85,253,194,133,
-139,215,239, 62,192,243, 27,  4, 58,194,186, 29,152, 71,204,  5,134,188,119, 76,172,187,169, 46, 87,  3,132, 22, 23, 96, 54,159,
-205,215,230,143, 95,126,228, 57,249,  0,  0, 29,236,237, 95,189,181,243,224,225,238,119,190,119,245, 79,111,221, 44,165,178,240,
-246,198,230,214,218,124,218, 79,215,167, 57, 73, 98,166,148,100, 58,153,244,253,100,109, 99,109,109,190,206, 93, 55,159,173,167,
-212,245,155,219,156,216,155,173, 86,131,106, 89,213,246,242,171, 55,239,237,220,234, 39,243,227, 97,241,216, 59,223,113,110,125,
-163,159,174,201,180,211, 85,117,111,117,112, 64,178,218,188, 14, 60,153, 17, 50,161,182,218,106,107,125,159, 64,213,155,  2, 80,
-216,107, 80,  4,  1, 93,141,146, 32,167, 47,253,244,191,245, 11,255,221,127,125,111, 99,231,145, 43,143,106,171,231,207, 95,250,
-214,159,252,201, 75,111, 92,253,192,251,159,249,185,255,248, 63,185,112,249,202,239,255,243,223,253,129,119,189, 11,193,  2, 58,
- 56,155,111,221,191,250,242,157,187,119, 78,134,250,161,231, 63, 51,159,166, 86,205,234, 42,247, 25,137,202,114,112, 85,153, 76,
- 97,113,122,120,120,240,141,151, 94, 62, 90,149, 73,215,169,107,107, 45,238, 85, 90,171,170,166, 68,171, 97,137, 20, 40, 84, 55,
-213,224,  2, 78, 82,118, 38, 45,213,220,208, 17,  8, 74, 27, 78, 22,237,171, 47,126,238,175,252,  7, 63,119,225,242,163,142, 84,
-170,170,182,197,233,254,253,219,183, 95,187,250,250,206,253,  7, 15, 15,142,246,142,142,150,139,229,222,193,201, 99, 23,207,253,
-165,207,127,250,199, 62,247,105, 68,223,127,176,211,111,159,123,235,230,237, 55,174, 94,155,206,103, 59, 59,187,182, 42,235,179,
-126,109,218,185,186, 91,188,200, 89, 36,129,162,186,183, 22, 56,147,176,115,140,241, 85, 28,  7, 49, 35,202,159, 25,205, 49, 33,
- 49,163, 42,184,215,156,187,166,214,134, 65,152, 35,159,138,170,204, 12,230,234,144,187, 68,228,165,150,174, 75, 76,194,136,181,
- 52, 64, 87,111, 58,152, 48,169,121,202, 25,204,134,170,194,112,118,142,182,196,156,114, 82,179, 97, 49, 16,115, 68,  1,155, 91,
-240, 99,181, 86, 31,139, 22,134,  0,146, 18,104, 19, 22,  0,  0, 50,116,103,230,162,  3,199,190,146,196, 16,137, 18,160,187, 26,
- 18, 18, 50, 57, 22,112,116, 39,230, 90, 86, 41,247,241, 98,117,  6, 68,170,173,138,196,157,197,209, 28, 29, 82,226, 81,113, 31,
-234,231,174,115, 48,173,  5,137, 25,129,132,155, 90, 74, 28,100, 74, 68,  7,240, 26, 33,200,152,187,135,210, 90, 88, 56,181, 86,
-188,  2, 36, 32,100, 38,116,115,112,103, 78, 22,156, 94, 68, 51, 55, 53, 22,  1, 98, 74,  2,138, 72, 56, 22,  1,  1, 91,211, 46,
-165,230,102,174,196,236,166, 90,149,  4,136,201,213, 77, 27, 50,  3, 50,186,  2,139, 53, 99, 66, 55, 53,117, 74,146, 18,155,123,
- 78, 73, 91, 99,161, 86, 29,221,193,  9, 28,180,173, 56,245,110,170,171, 37, 10,251,184,126,137,153, 27,155,154, 26, 96,116, 47,
- 99,118, 26, 57,109, 38, 64,114, 87,  0, 39, 36,224, 88, 19, 32, 17,147, 66,133,198, 64, 34,194, 66, 60,162,215,218,233,178,168,
-185,203,124, 40,238, 32, 85,141, 28, 19,179,145,180, 97, 32, 38,146,100,181, 13,117, 72,146,136,201,195, 65,  1,166,173, 57,144,
-129, 50, 37, 18, 30, 86,  3, 35,246, 93,178,248,231,118, 32,198,196,164,  0,166, 99,147, 78,139, 57, 52,182, 72,126, 65,171, 74,
- 96,147, 46, 87,179, 90, 86,246,118, 69, 30, 97, 24,134, 44, 66,203,  1,117,112, 22, 85,245, 86,193,128, 73, 80,220, 11, 84,109,
- 80,129,187, 30, 28,117, 85, 41,172,118,191,249,139,255,171, 35,170,106,102,118,115, 39, 39, 71, 71, 64, 16, 34,118,104,128, 24,
- 66, 91, 15, 64,157,123,124,150,164, 70,153, 90,  5,146, 24, 90, 33,132,148,114, 76,215,140,190,108, 98,  4,247,192,208,131,133,
-107,194, 29,209,212,152, 24,172,153,219,217,151, 35, 16,123, 62, 26, 10,198,136, 78,180, 11, 65, 82,186,241,230,205,203,143, 94,
-202, 57,169, 57,162,132, 22, 18, 65, 21,128,125,164,211,  1, 80, 48,210, 16,137, 48,161,152,171,199, 43, 23, 98,178,136,152, 19,
-231,220,117,169, 35,161,186, 90, 92,191,121,247,234,157,183,190,243,242,107, 55,118,238,149,161,138,228,105,238,230,243,217, 36,
-119,211,105, 38,196, 73,215,173, 79,167,147, 73, 55,153,205, 38,179,181,249,108,109, 58, 91,239,215,215, 36, 37,109,102,205,172,
- 44,142,142, 15, 79, 22,167,181,180,220,205,114,223,  9,138, 48,206,231, 27,231,206, 95,220,220,156,243,100,221,173,229, 44,152,
-178, 59,154,105,107,134,  4,  9, 49,158, 44,196,130,204,174, 10,232, 78, 89, 24,  0, 73,151,203,254,226,185,223,254,199,255,232,
-219,127,242,205,167,158,124,170,159, 76, 63,241, 99, 95,157,110,204, 22,135,139,189,  7,251, 77,235, 31,252,243,223,126,226,137,
-199, 63,250,225,247, 45,150, 38, 93, 71,166,191,251,245, 95,255,198,215,127,235, 43, 63,249, 51, 31,251,228,103,107, 25,180, 22,
- 64,146,156, 80,171,154,105, 49,201,108,165,157,236, 92,255,235,127,227,191,248,250,119, 95, 91,159,247,171, 85,185,176,189, 61,
- 95, 95,107,181, 58,192,233,201,105, 25,134,156,242,155,119,110, 85,211,241, 74,  6,160,166,147,156,215,231,211, 81,111,120,118,
-244,157,246,179,191,244,181,175,124,245,199,191,234,146,145, 64,213,150,203,197,225,222,238,141,171,175,191,121,253,198,221,189,
-253,227,147,195,131,163,197,241,241,241,201,201,242,241, 11,231,127,254,167,127,226,233,103,158,122,240,224,126, 63,159, 93,191,
-118,237,230,181,155,156,165,169, 29,220,223,223, 92,155,117, 57,169, 41, 34,100, 74,205,106,184,208,152, 50, 33, 17, 66, 51, 85,
- 48,  4,113,104, 24, 75,124,164, 62,231,210, 42, 40,168, 67,206,201, 92,  1, 33, 97, 42,173, 56,  2, 35, 97,132,237, 28,136,168,
-153,117,185, 35,166, 40, 44, 73,102, 20,114,  3,166, 60,142,160,162,204,161,102,106,221, 36,183,218, 28, 12,153, 92, 99,  9,  9,
-  0,214,212, 18, 39, 34,140,158,140, 48,169,105, 45, 45,165,132,128, 44,212,212, 36, 10,177,222,152,115,220, 90, 57,119,110,134,
-236, 54,168, 67,132, 59, 33,102, 50, 36, 60, 18,143,220, 89,216, 92,181, 90,144,100,204,180,149,128,185, 75, 84,140,  0, 92,205,
-152,200,221,136, 81,213,187, 46,155,121,211, 26,  0, 22, 87,151,204, 86,199, 61,153,186, 11,179,153,137,100, 67, 43,171, 33, 98,
- 45, 34,130, 76,160,142, 72,214, 10,178,  8,161,157,153,118,106, 81, 97,228,  8,137,107, 35,  0,  3,226, 36, 86, 20,120,172, 53,
-138,144,  3,122, 53,236, 16,116,124, 78,128,162,129,169, 90,213, 38,241,147, 52,148,212,153,183,248,  7,180, 86,136, 82, 68, 30,
-213, 52,231,220,106,139,217,138,  1, 36, 73,109, 40,193,181, 66, 78,241, 49,213, 86,115, 18, 97, 81, 83,213, 22, 57, 14,100, 82,
- 53, 68,116, 51, 71,167, 32,156, 19, 35,176,121,209,214,132,  5, 83,182,166,110, 70,204, 66,169, 89,117,111, 48,178,197,209,221,
- 76,109,212,113,184, 73, 74, 93,146,102,229,193,238, 81, 78,105,190, 62, 51, 53, 87,211,214, 80,178,  1, 32,112,  4,147, 84,213,
- 21, 56, 37,247, 22,139, 68,173, 42,194,165,148, 96, 53, 51,147, 33,130, 97,196, 76,136, 16,153, 25, 83,105, 37,246, 67, 41, 39,
-109, 86, 90,109, 85,153, 17, 25,153,  5,  1, 68,146,  1,212,161,104, 85, 39, 99,115,103, 57, 61, 62, 57, 56,220,213,106,228,202,
-146,114,151, 56,117, 93,215,207,230, 51,160,212, 90,107,173,153,214,176,212,129, 53, 78,  9, 40,161,213,227,211, 83,  9,162,101,
- 98,113,  4, 96,136,156,  0, 66,112, 87,206,166,232,128, 99, 67,214, 61, 86, 85,128,238,220,242,108,195, 79, 86,136, 98,104,241,
- 56, 31, 47,189,222,  0,  4,  8,204,192, 85, 67, 68, 22,183,182,248, 56, 28,140, 16,205,234,219, 34, 81, 24,  3,244,  4,110,206,
-  0, 78, 35, 33, 44,226,164, 14, 77,219,214,230,252,240,116,121, 33, 39,112,  5, 68, 69, 96, 15,222,182, 65, 88, 59, 28,145,129,
-129,131,157,160,222,176,161,140,243, 36, 36, 24, 95, 29,181, 89,105,203, 19, 28, 64, 85, 36, 63,241,206, 31,120,242,201,167,254,
-204, 11, 47, 44,151, 39,187, 15, 30,220,218,185,127,237,246,206,193,193,225,238,238,222, 91,247,  7,  0,156, 78,251,249,116,182,
- 49,155,174,207,103, 93,218,237,167,253,164,155, 76, 38,211,201,124,190,182,177, 53,153,206,211,108,118,121,253, 28,103,138, 48,
-130,170,214,218,134,178, 58, 62, 60,122,120,184,159,136, 82,238,103,107,179,237,243, 23,250,217,250,250,214, 22,115,102, 49, 34,
-106, 67, 73,185, 39, 17, 52, 67, 22, 48, 51, 67,233, 19,130,107, 41,216,117,122,186,124,238, 83,159,125,229,165,151,174, 95,123,
-243, 51, 95,252, 10, 49,237,223,123,240,173,111,126,235,209,199, 30, 61, 93, 13,247,118,238,105, 93,125,236,249,231,147, 14, 90,
-234, 31,254,193,215,255,240, 15,255,197, 39, 63,251,197, 15, 61,251,177,197,209, 33, 16, 70,116, 15, 84, 77,213, 29, 73,196, 12,
-185,156,252,223,255,215, 63,248,227, 55,110,204, 38,147,253,195,147,147,211,147, 39,174, 92,209, 86,205, 29,204, 91,107,128,206,
-153, 89,164,174,148,  9,213,177,169,102,225,217,100, 50,212,154,122,139,241,191,  0,  0, 32,  0, 73, 68, 65, 84, 83,239,174,165,
-212, 62,167, 23, 62,250,236,207,126,237,167, 62,240,161,103,  7,117,115, 31, 86,203,131,135,187, 15,238,223,185,115,231,206,141,
-219,119,119,118,119,143, 78, 22,123,199,  7,123, 15,143, 47,110,172,125,237, 43, 95,252,209, 79, 62, 55,153, 79, 87,106, 39,195,
-242,224,232,144,147,116,235,179,183,174,223,157,247,249,202,133, 13,150,168,105, 48,  1, 54, 48, 74, 29,104,224,193, 71,103, 21,
-144,147,  7,221, 19,153,  9,153, 16,176,214, 10,  8,196,161, 53,  5, 70,  1,211, 10,141,  3, 38, 14,224, 14,147,148, 28, 80,205,
-123,201,136,  8,142, 93,159, 91,107,106, 78,234, 68,161,232,  4, 68,114,213,234,134,230,200, 88,107, 67, 64, 55, 48,247,240, 64,
-185,107,104,139,221, 13,124,124, 22,150,166,222,140,153,144, 66,130,234,  8, 10, 40,170, 42,210, 57, 56, 10, 49,  8,184,  7,  7,
- 76, 35, 96,204,227,148, 50,100, 64,  0, 46, 40, 10,170,205, 17,145,162,137,175, 78, 44, 41,199,240,210, 70,167, 93,120,137,220,
-193,192,208,145,176,214,130,  0,174,  6, 72,204, 68,146,212, 26, 50,185, 67, 12, 43, 34,174,101,214, 76, 35,242,200, 20, 56,162,
-218, 40, 74,190, 36, 97, 98, 50,136,133,  0,231,142,  1,220, 85, 41,101, 12,151,133,153,213,  6,132,241,182, 32,137,176, 22, 96,
- 66, 43, 54,154, 60, 34, 75,202,  4, 97,109,115, 71,116,238,216,180,142,139, 27,115, 34,118,247,160, 50,  0,146,154, 98,228,249,
- 72,  0, 76, 91,117,215,113,101, 13,  0,236,  8, 36, 30,224,176,  2,  4, 68,201,221,192, 60,224, 97,170,230, 22,116,172,145,172,
-  3,129,158, 39, 22, 98, 71,  4, 17,116,  2,104,234,133, 16, 29, 82,107, 85,173, 16,  1,  5, 12, 85, 13,201,153,199, 37,170,106,
- 33, 29,214,182,102,  4,160, 35,202,132,  1, 33, 81, 38,164,170,101,252,212,100,236,241, 68, 73,141,216, 75,109,173, 20,201, 93,
-160,104, 69,216,208,173, 69,160, 21, 24,201,208, 68, 24,212,171,155,170, 82,232, 41, 18, 18,160,187, 11,146,129,215,214, 70,216,
- 25,114,171,166,238,160, 53,231,180,182,182, 57, 12, 75,109, 67,162,113,101,201,132,197, 12,181, 32,160,176, 24,146, 89,  3,183,
- 88, 42, 16,141,221, 85, 65, 70,108, 22,  3,243,209, 76, 10, 13,244,108,171, 22, 86, 97, 26, 11,157, 68, 28, 50, 63,179,234,142,
-203,227, 83, 68,110,222, 24, 16,200,131, 75,224,  4,132,226,224, 96,228,214,136,200,180, 97,236, 77,105, 12,235, 98,244,173,131,
- 80,133, 48,210,175,144,220,  1, 41,131,215,179,225,126,244, 15,130,255,226,221,116,118,176,187, 15, 91,219, 68,  8,152,196,213,
-225, 12,255,129,233, 44,208,102, 48, 82,159,244,140,221, 64,113, 77,139,215,210,153, 81,203,  1,128, 68,204,218,201,233,242, 20,
- 86,196,104, 38, 23,206, 93,186,124,233,137,231,158, 69,132,225,244,116,117,120,124,178,179,187,247,242, 43,175,124,239,234,173,
-171, 55,110,  0,203,133,115,155,143,158,191, 52,155,118,243,126, 34,249,158,112,238,  3,149,214, 79,214, 55,183, 38,179,141, 60,
-233,147,116,146, 83,234, 36,119,201,212,221,188,169, 45, 78,151, 39,199,215,154, 42, 17, 11,243,185,139, 23, 47, 92,188,188,126,
-110,179,239, 58, 16,104,139,193,  1,234, 80, 60, 36,246,165, 98,206, 36,162,110, 93,234, 62,253,226,231,167, 91,219, 23, 46, 63,
-114,188,127,112,227,218,213,255,231,215,127,121,123,125,253,116,181,120,235,173,183,160, 13,159,248,212,103,182,103,253, 31,252,
-238,239,189,227,  7,223,245, 31,254,149,255,172,155, 77, 26,146, 14, 39, 44,  9, 39, 93,215, 73, 43,197,128, 16,204,134,147,181,
-245,173, 95,251,213,223,248,123,255,240,159, 54,231, 46,165,213,170, 72,151,193,124,181, 42,169, 75, 85,171,106, 99, 64, 70,122,
-199,229,203,175,188,121,141,  0, 28, 44, 11,111,172, 77,205,218,149,243, 23,111,220,186,181,181,189,245,254, 39,159,250,241, 63,
-251,153,103,159,253,232,198,246,249,211,229,178,169,158,158,156, 60,184,119,103,111,247,254,237,187,247,110,220,185,181,127,112,
-124,188, 92,221,122,235,238,131,135,123,127,241,139, 47,254,133,159,248,242,230,230,218,209,225, 94,230,245,195,197,225, 27, 87,
-223,156, 77, 38,119,238,237, 14,135, 39,231,214,231,157,  8,114,118,119, 98, 98, 65, 87,  7,115, 38,  4,150, 86, 74,100,106,137,
-192, 26, 10,241, 96,141,129, 34,234,225,238, 72, 28,224,163, 40,  2, 53,109,128,156,  9, 85,181,180,138,196,147, 46,  7, 32, 32,
- 84, 68,136, 40,157, 52,211,230, 70, 14,230, 77,  9, 18, 39,117, 48, 71,118,144, 16, 62, 32,161, 91,173,  3,177, 16, 51,  2,186,
- 89,151, 83,171, 88,181,141,152, 25, 36,179,168,141, 40, 16, 15,181,246,210,145, 36,139,  9,162,161, 27,142,110, 85, 30,105,230,
- 74,128, 18, 66,154, 56,243,184,129,163,121,150, 28, 56, 93, 70,100,196,218,204,201, 89, 82, 60, 79,155, 22, 83,175,171,146,166,
-125,  0, 59,205,148, 19,  3,140,214, 58,107,149,115,206, 93,174,181,130,105,100,189,135,213,138, 89,  8, 64,221,  9,  0, 17, 73,
-216, 76,205,  3, 88,233,238,161,230,  0,102,106, 85, 35,199,207,156,145,208,208,208,145,186,190,149, 26, 91,229, 32,218, 56,128,
-153,194,219,245,245,216,174, 26, 32, 19,178,181,210,  2,157,  6, 68, 72,212,165, 60,156,174,154, 55,  8, 47,145, 96,173,134, 26,
- 60, 63,  7,183, 62,167,218, 84, 56, 57, 90,213, 33,246, 14,105, 50, 37,240, 50, 20, 24,  7,176,128, 34,214,106, 60,245,180, 86,
- 18, 38,193,214, 20,153, 18,147,162, 32, 48,160,141,232,140,179,185,176,154, 74, 55, 65, 34,107,197, 20,192,226,212,103, 41, 51,
- 52,  0,176,170,154,133,153,129,144, 99,202,207,146,247, 15, 86,230, 46,140,156, 97, 48,215,218,186,190,119,133,230,170,214,136,
-208,145,209, 81,181, 16, 64,238,115, 43,173,148,194,130, 72,232,200,129,149, 87, 83,108,196,146, 40,187,185,129,129,153,165,156,
-213,131,165,140,225, 17,  7,  8, 40,144, 34, 83,169, 21,207,230, 32, 73,242, 74, 85, 75, 33,135,196,201,184,204,102,179,196,188,
- 26, 18,185, 49, 11, 39, 81, 85,172, 13, 69,130,122, 31, 17,222,218, 74, 40,121,153,141,144,145, 18,254,214, 63,250,223, 81,  3,
- 37,143,142, 72, 97,233, 36, 32, 16, 68, 84,173,196,130,196, 62,194,152, 76,213,  1,128,199,118,250,216,117,197,177,240,228,110,
- 30,199, 40,  7,116, 71,183,134,163, 50,209,112,212, 33, 34, 88,177,177, 86, 30, 75,218, 51,167, 40,134,183, 80, 66,140,  0, 17,
-  4,  8,138, 25, 56,162,129,195,157,187,187,143, 95,185,140,228, 72, 35,182, 31,198, 83,191,  3, 56, 50,187,  2,131,  7,  7, 33,
-226, 94, 28,190,196,208, 13,135, 77,155,198, 20,  4, 17,131,185, 71,238,201, 57, 78,123,132,104,224, 50, 66, 78, 65,132,226, 70,
-127,227,250,237,215,174,223,122,253,234,213,215,110,236,172,134,210,117,253,198,218,250,230,124, 50,157, 79,103,169, 67,132,220,
-165,217,108,125,115,243,220,124, 99, 61,119, 29, 26, 32, 72,158,244,192,136, 33,218, 32, 81,109,106,208,180,173, 78,142,202, 48,
-  8,229,205,139,231,182, 46, 93,186,116,241, 98,234, 58, 45, 53, 77, 38,222, 84, 85,223, 22, 66,155, 99,191,190,166,165,252,242,
- 63,248, 63,167,235,219,151, 46, 93,248,111,255,230,127,243, 96,239, 97,173, 69,107,121,238, 67,207,188,227,209,119, 60,253,228,
-147,239,251,224,199, 55,183, 55, 92,146,183,149,244, 19, 91, 13, 36, 93, 63,159,212, 58,232, 80,129, 56,165, 68, 90,255,248,119,
-191,241,215,255,214,223,218,217, 63, 74,204, 71, 39, 71,203, 85, 57,183,185,121, 97,107,163,168,166,156,202,106,213,180, 17,139,
-160,212, 90,110,188,181,147, 50, 45,150,101, 99,109,106,102, 63,255,239,255,220, 95,253, 79,255,203,255,233, 23,126,225,246,245,
-239,127,233,197, 79, 95,184,116,217, 37, 32,124,245,112,111,239,240,240,225,209,225,209, 27,215,222,188,113,251,222,201,106,113,
-178, 88, 93,187,125,103,150,250,191,246,151,255,252,103, 62,241,252,225,241, 97,  3, 95,213,114,237,213, 87,239,237,237,247,125,
-191,251,214,206, 52,229,249,218,148,137,  8, 57,165,148, 88, 64,216, 93,107, 53,109,205,220,  0,136,  4,201,177, 13, 13,133,221,
- 77, 18,187,122,164,  9,205, 28, 49, 34, 35,132,100, 90, 21,153,209, 44,119, 73,213, 90, 85,102, 96, 22, 98, 65, 36, 73,125,179,
-  6, 54,158, 39, 28, 16,  5,234,170,177, 48, 51, 69, 82, 62,  5,108, 46, 78,  0,  6,200,  4,224, 72, 96,106,  6,200,  8,165, 21,
- 10,218, 96,180,100, 71,220,134,155,  1, 48,103,166,166,205,220, 25, 36,229,206, 32,138,154, 73,  0, 86,101, 32,162,156, 39, 10,
-141, 16,204,193,170, 49,147, 33,196, 57,212, 44, 74,211,232,224,230, 42,148, 56,145, 27, 48, 51,168, 22,109,163,212,  9,128,156,
- 33, 33, 51,214,170, 76,140,230,128,209,139,134,166, 53,165,142, 56, 46, 57, 70,200, 66, 92,181,164,148, 84, 13, 97, 28,122,187,
-197,129, 14,212, 42,115, 30,203, 64,200,136, 14,174, 36,217, 17, 25, 89,181, 34, 81,213,198, 64,196,236, 26,210,133, 56, 50, 33,
-145,152, 85,119,167,196,164,212, 90,  5, 48,109, 78, 76,136, 40,146,  1,176,105, 49, 68, 10,142,184, 26,198,250, 97,116, 41,123,
-109,  6,  4,125,215, 33, 51,152,155,150, 88, 43, 70,126,159, 49,155,215,106, 85,136,  3, 20, 21, 19, 39, 18,102,150,161, 12, 96,
- 72, 76,136,  4,110,102,166,224,224,144,187,132,196,146,179,154, 81, 56, 78,227, 73, 16,128,179, 48,172,  3,149, 58,140,148, 45,
-  0,199, 81,148,201,140,203,197,240,224,193,131, 43,151,182,103,235,179,166,238,148, 90,195, 54, 12, 77,149, 40, 26, 81,132,228,
-173, 24, 49, 16,208,170, 12,113, 16, 80,211, 82,180,147,132,194,109, 85, 57, 49, 16, 73, 74,230, 22, 93, 13, 12,155, 28, 82, 45,
-131,153,137, 72, 98, 49,194, 86,139,154,215,170,  1,110, 19, 18, 98, 82,117,176,  2,156, 90, 43, 76, 76,136,  0,212,172, 90,169,
-218,154,121, 35, 76,224,158,102, 19, 68,  9, 46,152, 19, 15,171,149,151,210,101,246, 36,194,201, 12,142,142,143,  5,226,210,139,
-238, 62,246, 32, 72, 40,104, 51, 14, 72,156, 67, 92, 26, 45, 56, 64,231, 24,158,140, 73,209,  8,207,135,227, 20,198, 12,175,171,
-159, 81, 92, 98,220,130, 72, 96, 28, 75,  8, 31, 95,174, 52, 86, 63,224,236,151,130,255,154,150,247,140, 91,230,103, 76,122,  8,
- 22, 41,225,172, 79,123, 39,203, 75,155,107,234, 68,140,102, 21,130,142, 29,215, 13,139,253, 84,132,123, 70, 72, 69,224,115,240,
-172,124, 11, 35, 53, 14,192,195,166, 23,147,121, 25,239,119,174,227, 92,151,221,213,155,123,107,182, 92, 41, 34,156,191,116,241,
-241,119, 60,254,133,207,125,250,116, 88,220,187,123,239,234,181, 91, 55,222,186,127,239,222,189,187,247,238,153, 67,215, 79, 55,
-231,179,205,173,197,225,241,193,185,147,205,148, 38,136,140, 72, 57,167,110, 50,235, 39,211,148, 59,201, 89,152,145,121, 50,233,
- 39,147,206,  1,218, 80, 86,171,229,245,239,125,239,205,239,189,220,165,126,227,252,185,141,237,237, 78,120,190,182, 62,217, 88,
- 67,119,107, 14,224,175,253,191, 47,253,218, 47,255,147, 95,254,181, 95,249, 11,127,254,103,103,125,102, 65,119, 72,146,250,156,
- 24,253,254,253,187,239,126,250,153,199, 30,127,108,255,224,225, 72,141, 82,227,110,  2,224,101,185, 52, 85,100, 33,145,148,228,
-205,215, 94,249, 59,127,255,239, 31, 45,135, 89,151, 22,203,213,114, 53,116,185,203,185,171,181, 57,122, 83, 87,181,120,116,161,
-224,241,201, 98,213,170,  2,159,219,220,120,228,194, 57, 97,126,228,210,133,110,123,246, 31,253,181,191,250, 43,255,219,255,178,
-182,190,161, 78,229,224,240,224, 96,239,193,222,195,131,195,195,163,197,201,181, 27,119,238,237,239,181,170, 59,187, 15,143,142,
- 15,191,252,194, 39,254,221,159,252,242,250,250,116,247,225,253,188, 54,191,246,242, 75,107,219,155, 23,223,249,248,155,119,238,
- 30,237,238, 95,218,222,144, 94,220,162, 10,203,136,136, 66,  6,232,192, 22, 40,110,197, 68,216,212,205, 28, 37,152, 30, 52,246,
-175,193, 28,199,149,125, 92,203,173, 58, 68, 75,159, 88,155,  3,250,116,218,199,210, 39,172,108,234, 45,101,118,247, 50, 52,140,
-163,119,179,156,  5,  9,195, 59, 71,132,106,200,228, 76, 76, 76,224,168,214,162,162, 41,210, 51, 98, 45,171, 94,164,152, 67, 76,
- 23, 61,146, 18,136, 72,146,208,155, 85,173,  8,200,146, 98,221,202, 68,  0,  1,186,178,148,251,248, 37,162, 97,244, 67, 40,129,
-169, 18, 37, 53, 51, 51, 80,144, 94,226,105,149,164, 35, 64, 83, 67,162,214,154,170,137,176,  7,103,214, 77, 58, 50,115,109, 22,
-220,  0, 36, 34,  2,  7, 55,107, 57,231, 51, 26, 16, 18, 49,130, 27, 40, 33,181,214,224,172,175,128,  8,192, 36,145, 86,198, 56,
-183, 49,113,236,207,200,157,130,149,214,188, 49,139,  1,164, 80,184,  0, 32,135,234, 18,152,132, 24,181, 22,143, 31,111, 51, 27,
- 75,235, 68,108, 72,152, 82, 87, 91,  9,224, 54, 19,187,153,199,  1,255,109,193,125,160,208, 18, 49,227,104,223,140,249,155,141,
- 42, 54,201,161,100,242,  4, 20, 55,  6, 34, 66, 65, 65, 86,183, 86, 75, 76,219,209, 99, 83,129, 72,152, 69, 90,109,170, 74,128,
-173, 41,186,183, 90, 85, 27,117,226, 26, 99, 94,119, 36, 85, 19,242, 46,245,170,205, 65,221,156,144,141,213,155,213, 65, 79,150,
- 53, 75,146,212,155, 34, 16,187,130,171, 34,209, 36,137,154, 87, 53,134, 38, 44, 68,160,106,205, 90, 98, 30,170,170, 25,177,228,
-204,181, 26, 65,  3, 33,117, 19, 96, 53,139, 52,151,187, 91, 45,200,137,132,130,238, 25,208,  8,112,137,225,  3, 19,130, 27, 35,
- 59,154, 59, 50, 99,  3, 38,240, 46,247,173, 53,  0, 26,139,120, 29, 34,145, 14,232,136,210,119,128,196,132, 70,104, 13, 93,107,
- 74,130, 76, 90,155, 15,197,217, 88, 36,  5,130,135,136,226,141, 58,206, 97,194,255,130,  4,166,129,164, 80,  3, 24,225,233, 49,
- 93, 33,143, 85, 43,208,104, 45,141, 53,202,219, 61, 56, 64,115,115,112,142, 15,193, 60, 94,  0,177,186,137,174, 99, 72,209,213,
-235,219, 61, 41,124,219, 75, 69,177,  7,141,247,205,  8, 42,  3,  2,100,154,207,231,119, 31,158, 92,220,218,208, 90, 73,198, 63,
-199,209,  9,221,205,  1, 10,  1,  3,158,233,156, 70,240,231, 56,150,123, 59,129, 57, 70,191,208,  1, 89, 77,  3,135,141, 68,238,
- 22, 29,244, 51,  3, 20,158, 93, 29, 16,  1,106, 25, 74, 51,192, 37,170,157, 59,119,225,145, 43,143,125,174,239,202,176, 60, 61,
- 89,188,241,250, 27,111,222,185,247,198,155,215,175, 94,219,239,186,254,253, 79,231,205,237,201,209,193,126, 81,155, 72,234,102,
-199,194,204,148,178, 72,215, 79,152,243,100,210,167,110, 42, 29,231, 44, 93, 39,179,201, 84,209,172,217,201,201,209,225,222,195,
- 58, 44,221,177,235,251,233,124,109,251,220,165,217,108,242,218, 75,223,113,228, 23, 95,252,209,247,190,247,153,215, 95,253,254,
-201, 98,245, 35, 31,250,224,131,135,247,111,221,191,247,218,141, 91, 63,250,252, 39, 94,254,206, 31,125,240,233, 31,218,122,228,
- 49, 19, 70, 78,192,224, 90,221, 73,235,138, 40,113,198, 46,165,211,211,147,255,241,239,253,221, 27,111,221, 21,162,218, 60,247,
- 19, 60, 62, 78, 57,137,160,162,215, 82,169,217,216,196,  3,108,170,  9,248, 61,239,124,226,226,214,230,250,250, 26, 16,150,213,
- 10, 12,202,241,162, 52, 61,172,181, 93,191,122,241,252,197,  7,247,119, 30, 60,124,120,119,111,255,238,253,135,187,  7,135, 67,
-109,139,197,170,149,242,228,163,151,126,230, 39,254,242,179,239,123,207,238,189,157,219,183, 30,174, 63,246,232,245,155,215,110,
-237,220, 91, 27, 86,175,127,239,181,173,233,108,227,194,  6,145,100, 72, 21, 65,152, 57, 37,  4,112, 16,119, 37, 36,102,170,138,
-  8,174,224,102, 77, 56,155, 55, 38,142, 37, 60, 50, 50, 73, 80, 28,123,145, 56, 75,164, 46, 17, 99,107,174, 45, 96, 15, 98,238,
-146,115,120,236,204, 20,  9,107,105,204,148, 19,107, 43,205, 92,128,152, 72,221,204, 32,117,130,103,180,114, 55,  3, 26,205,157,
- 66,132,152, 76, 27,142,188, 16, 68, 55, 34, 34, 34,  1, 84,142,122, 43, 17,130, 10,140,167, 19, 38, 34,114, 64, 38,142, 41,  1,
- 49, 19,176,155, 26, 52,226, 12,140, 86, 11, 34,114,226, 82, 42, 40, 72, 39,230,170,181, 32,114,128,  7, 36,103, 48,  0,  0,117,
- 23, 30,153,125, 72, 72, 32,173, 54, 64,140,189,  8,191,109, 27,117, 96, 78,110, 54, 50, 67, 16,163,106, 27,129,180,241, 16,213,
- 20,136,136,  9,137, 77, 13,140,192, 13,192,145, 29, 99,126,196, 36,196,181, 44,199,157, 23,202,  8,140, 68,134,179,177,170,187,
-186,183, 58, 40, 19, 35,177, 89,137,210, 53,170,155,121, 74,172,  6, 67, 89, 17, 51,185,  1, 35,186,  6,156, 42,254,  3,194, 88,
- 20, 50, 11,  0,154,214,102, 65, 56, 32, 66,114,  4,100, 71, 38,107,110,213,144, 72, 56,215,225, 20,226, 21, 70,193,131,138, 83,
-188,  3,185, 27, 34, 26,  1, 75,151,192,177, 12, 43, 17,110,238,225, 96, 28, 86,131,107, 67, 66,111,109,124,225,177,152,154, 91,
-197, 52, 69, 97, 66,215, 85,165, 88,107,135,113, 17,125, 88,173,214, 38, 61,112, 82,195,214, 76, 85, 83,202, 68,104,102, 96,218,
- 39,169,138, 10,  4,222,136,176, 26,186, 26,161,115,159,181, 85, 48, 99, 17, 36,  0,192, 24,130, 49, 32, 82,114, 85,111, 13, 56,
-210, 60,142, 64,194,236,214, 98, 47, 11, 68,232,134,128,106, 13,200,  4, 18,133, 61,180, 66,112,161, 17, 49,246, 28,174, 81,163,
- 21,228, 36,137,220,206,158,219,241,208, 66,138,105,134, 70,254,197, 93, 68,  0,  7, 25,171, 69,163,150, 41,200,145,163, 35, 42,
- 82, 98,  8, 60,202, 60,  1,221,226,102, 38, 86,219, 40, 58,138,212, 83, 92, 30, 99,139, 13, 64,196, 58, 62,211,149, 70, 58, 54,
-142,185,218,168,135,185,219, 72,230, 20,243, 10, 56, 78, 89, 96, 20, 37, 70,252,214,222,174,  5,198,159,232,230,253,116,218,238,
-222, 63, 89, 14,179, 94,220, 13, 34,179,115,246, 30, 64,148,241,171,233,196,142, 16,234,153, 72, 42, 32,142, 23,195,120, 85, 32,
-193,152,130, 38,160,248, 47, 84,164,  4,  1, 24,194,  0, 39, 16,140,151,  8, 15,168,207,217, 35,  0,154,153, 46,151, 67, 41,128,
-222, 77,250,103, 63,254,209,231,152,172,233,238,253,123, 47,125,255,141,189,131,213,206,157,157, 63,125,229,123,203, 82, 38, 93,
-119,126,107,123, 99,125,125, 99,125,115, 62,237, 19,103,206,196, 44, 73, 40,231, 46,231,174,239,167,169,159,244,253, 84, 82,154,
-116, 61,174, 37, 71, 91,158, 46, 87,203,227,221,187,183,110,190,249,170,186, 79,187,201, 39, 62,254,195, 31,250,145, 79, 28,236,
-239,253,238,215,127,243,167, 62,255,217,225,244,120,177, 56, 80,131,195,163,197, 75,175,191,254,161,103,158,249,214,119,190,253,
-226, 99,239,244,178,114,  4,104,  8, 77, 49, 37, 51, 96,132, 76, 12,173,254, 15,127,251,111,254,206, 31,253,233,198,218, 70, 35,
-211, 86,115,215,109,111,108,181,218,  8,200, 84,193,161,105,139,177, 44,  1,182, 90, 63,252,222,167,250,190, 83, 53, 51,155, 77,
-103, 31,123,254,249,207,124,230,179, 77,109, 50,157,130,211, 43,175,190,  6, 79,182, 27,183,111, 95,187,181,115,231,193,131,213,
- 48, 20,243,182, 24, 38, 57,255,248,103, 95,248,202, 23, 62,173,170,119,239,220, 74,235,235,215,191,255,242,195,239,125,127, 99,
- 99,122,120,120,124,176,179,119,121, 99,115, 50,205,194,162,205, 21,130, 28, 50,126,  1,205,212,192, 28, 76, 56, 81,130, 85,171,
-238,142,156, 16, 49,167, 14, 33, 58,132,241, 56, 69, 74, 57,139,171, 25,186, 75, 78, 35,146,158, 32,247,221,104, 24,163, 68,200,
-241,  5,213, 82, 78,151, 67,206,194, 35,154, 70, 82,192,143,220, 83, 74, 62, 42,188,226,235,193,103,103, 43, 72,146,136,197, 74,
- 68,205,  8, 37,155,233, 72,123,113,116,  4, 38,  2,228,177,177, 77, 33, 81, 26,241,134,169, 79,181, 52,  0, 15, 69,158,105, 35,
-102,  2, 80, 43,194, 25, 88,172,213,161, 86,  2, 28,159,252,224,136,236,232,216,140, 18,213,178, 66,226,156, 82,220,141,221, 44,
-158,251,241, 61,119,119, 55,100,145,104,  3, 17, 16, 75, 48, 97,  4,193,213, 12, 34,216, 35,210,180, 98,152,233, 41,150,194,224,
-110,228, 20, 41,173,152,210,140,226, 87, 96, 80,111, 90,137, 50,184,134,129, 62,236, 36, 65,  7,118, 51, 66, 84,115,145, 17,194,
-133,128, 68, 29, 34,168, 58, 75, 66,211,214, 20,  0,162, 95,  0,163,201,131,153, 32, 80,248,  6, 96,136,221, 36,153,186,171,130,
- 27,  3, 26,161,187, 27, 24,  2, 83,226,128, 18, 59,162,105,149,212,163,164,148,194,158, 75, 96, 45,126,199, 36, 34,147,201,112,
-114, 72, 44,128,160,173, 34, 80,234, 18, 18,101,183,178, 90,106, 27,136,197, 69, 76, 21, 49, 17,153,153, 86,213,142,147, 18,154,
- 57,212,202, 34,158,114,171,133,200, 72,164,  1,158,158, 12, 76, 48,153,117,165, 53, 64,100,164,212,101, 83, 31, 81,107,224,222,
- 84,107, 35,169,204, 29, 34,116,137,107,169,230,208,106, 37,128, 81,237, 11,160, 69,153,  9,  0, 76, 13,160,178,  8,117, 83,211,
-218,154,163, 41,165,222, 90,117, 48,171,134,  4, 73,146,161,184, 14,102,114,198,103,140, 60, 36, 26,186, 48, 18,231,214, 66,179,
-213,136, 48,117, 29,  1,105,112, 72,226,123,135,224,148,180,148,152, 67,165, 44,110,222, 90,105,165,184,187,140, 97,198, 49,142,
-248,175,218, 73,129,138,119,120,155, 83,112, 54,163,  7,208,218, 16,129, 41,153, 85,243, 58, 22,220, 34,170, 96,128,  0,110,141,
- 32, 74,171, 24, 61, 67,  3, 37, 20,  4,114,215,  8,179,140,201,106, 56,203,157,141,117,168,241,  1,122,134, 47, 59, 59,128,  0,
-132,180,151,  0,207,109,174, 63, 60, 56, 90,127,244, 66,169,198, 36,128, 42, 68,218, 52,226, 51,145,135, 69,112, 36, 68, 54,107,
-209,207, 54,116,114,114,194,241,234, 48,162, 17,  4,128,200,220,  9, 35,102, 27, 16,232,120,228,171,187,142,140,228,241,236, 31,
-255, 38, 20,241,128,120, 93,185,171,170, 46, 22,139, 88,225,174,111,109,253,200, 15, 63,251, 91,223,248,227,223,251,163,111,189,
-118,227,230,167,158,123,126,123,107,253,254,238,222,235, 87,223, 60, 58, 57,238,251,188,177,190,121,254,252,185, 11, 91,219,211,
-105, 63,157,206, 24,129, 25,  9, 40,229,110, 54,157, 38,233,186,233, 44,165, 46,229,220, 79,182,231,235,235, 90, 74, 25,202,201,
-233,241, 80,135, 86,245,245,111,127,235, 93,143, 93, 42,101,200,235,155,107,243,181,217,164, 59, 58, 89,188,114,237,198,149,139,
-151, 76,245,232,224,112, 99,115, 99,121,184, 39,147, 57, 79,167,186, 28,242,100,138,222, 82, 74,127,247,191,255,219,255,248,215,
-127,147, 57, 61,220,223, 27, 90, 69,132,182, 82, 97,110,173,196, 20, 34,170,192,113, 57, 51,183,196, 60,233,242,233, 98,129, 72,
- 79,189,235,  7,127,248, 35, 31,221, 62,183,209,245, 51, 18,249,157,127,246, 27,111,188,246,202,213,107,111, 14,195,112,253,238,
- 91, 15, 15, 78,139,181,229,170,144,234, 11, 31,124,207,159,251,210,231,207,111,111, 62,184,127,127,178,185,189,191, 58, 93, 60,
-188,255,206,119,255,192,206, 31,125,231,251,223,125,109,123, 99,109,243,220,102,238,114,164, 44, 42,214,113, 81,147,200,154, 69,
-199, 26,212, 73, 88,171, 41,120,230,228, 96, 34,226, 26,114, 92,200, 97, 66,  7,204, 57,  1,178,187,147, 41, 50, 35,146, 89, 35,
-238, 56,200,130,238,204,145,192,179,156,186,161, 22,100,154, 79, 59,179,120, 36,  9,178,171,170, 57,  8,163,131, 51,137,189, 13,
-209,139,128, 61, 64,238,123, 83,  4,109, 30,140, 64,119, 98, 38, 32,  0, 30,133,238,161, 37,116, 35, 97,  7, 32,162, 40,136, 34,
- 65,128, 33,213, 92,152,192, 65, 56, 53, 80, 34, 86, 45,110,209,218, 35, 68,200,146,  3, 56,  5, 30,127, 10,  2,120,234,165, 21,
-165,208, 73,171,143, 50,  2, 64, 48,123, 27, 44, 67,  8, 14,134, 30,146, 63,118,  3, 51,141,241,135,129,159,145,100, 80,181,153,
-130,116, 56,158,240,131, 75,235,216,154, 33,115, 52, 91, 17,188, 25,  1,145, 89,163, 51,253,171, 42,196,110,211,154,  5,  1,198,
- 65,  9,216, 84, 57,146,215,142,200,140,146, 64, 27, 33, 37,162,166,213,194, 75,  5, 96, 77,213,148,137,133,146,  6,  6,153,101,
- 44, 17, 57, 88,173, 65,169, 66,201, 96,142,110,220,101,107, 10,224, 90, 27,  9,121,115,  4, 71,150,216,177,155,153,170,145, 90,
-164,143, 42, 53, 34,  6,215, 60,157,107,173,174,141,137,157, 40,165, 84, 22, 75, 71,101,230, 48,235,157,229, 44, 44, 88, 20,140,
-160,110, 99, 86,149,178,  5, 80,137, 25, 60, 91, 45,204,172,181,102, 97,  7,226,177,125,137, 94, 13,163, 66,135,224,109, 60,251,
-198, 56,  0,137,173,233, 56,244, 33,140,  0,110,107, 21, 73,146, 72,109,213, 90,147, 62,129, 59,139,184, 91,171,154, 66, 45, 87,
-203,216,245,100,112,211,102,205, 96, 28,214,199,215, 47, 32,  2,156,152, 99,101, 24,145, 93, 51, 34,102, 18,107, 96,228,241, 91,
- 65, 96,  7,109,102,208,138,197, 44,197, 89,209,136, 29, 60,  1, 33, 34,242,191,253,181,159, 12,202,  3,112, 60,116,199,146, 66,
- 60,112,221,194,199, 21,138, 38,  0, 87, 10, 90, 19,130,155,186,213,113, 55,233,103, 22,148,113,186, 98, 99,155, 96, 28,144,194,
-216, 31,119,  3, 60, 83,  3,  4,154, 17, 99,154,159,130,124,233,160, 65,173,  4, 66,114, 15,108, 11,140, 41,158,200,194,251,124,
- 62,219,221,125,176,182, 54,163,120,153, 32, 56,208, 56, 96, 57,219,242,198,145, 16,157, 16,  1,213,198,162, 35, 33,134,112, 19,
-199, 85, 65, 24,122,199, 63, 35,238, 10, 20,175, 42,139, 42,  4, 24,160,  5,146,231,237, 59,  8,156,129, 19, 60, 36, 49,132, 62,
-242, 23,180,153,  3, 18, 19,148, 87,223,120,227, 51, 47,252,232,127,254, 55,254,171, 23, 62,249,185, 63,251,226,143,126,225,203,
- 95,254,212, 71, 63,241,200,246,214,106,177,188,117,251,238,203,175,190,122,245,250,245, 59, 59,247, 79, 78, 22,195, 80, 12,125,
- 24,134,227,211,211,227,227,163,227,227,189,163,163,253,211,163,189,211,197,137,213,  1,220, 89, 48, 75,126,223,199,159,187,119,
-251,214,111,255,234, 47,205,166,179,115,151, 46,182,213,106,103,119,247,244,116,209,106, 61, 93, 13,139, 97,121, 97,123,163,148,
-242,222,119,191,211, 83,143,146,235,233, 41, 96, 75,179,201,172,159,252,234, 47,253,195,255,249, 23,255,143,190,235,114,234, 87,
-101, 89,181,182, 86, 75, 45, 67, 41,196, 24, 54,203,197,106,209,106,115, 83, 97, 34,226,156,152,192, 54, 54,230, 47,126,234,133,
-143,124,240,  3,243,245,245,214,170,145,124,243,247,127,175, 44,235,239,125,243, 27,183,238,188,117,188, 92,238, 29, 31, 13,181,
- 45, 78, 86, 87,182, 55,126,254,103,190,242,111,124,241, 69, 93,157, 62,184,123,239,202,211, 79,237,157, 30,190,244,167,223,157,
- 76, 38,191,243,  7,127,114,124,111,239,252,230,124,146, 66, 53,133, 89,114, 48,172, 19,243, 25,132, 20,171, 58,161,199, 32,158,
-153,137,  8,193, 83, 74, 76, 76, 36, 99, 43,221, 29,156, 82, 78, 49,206,205, 93,242,209,134,225,153,196, 65, 91,177, 46,167,216,
-159,  3, 33, 18,215, 86,137,  8, 25,181,153, 48,139,196,176,193, 51, 11, 50,185, 65,102,113,143,239,102, 20,203, 13,153, 88, 68,
-139, 34,141,171,203,176,253,197,208, 63, 10,218, 24, 95, 83,138,167, 58,138,164,216,178,  1, 70,205,149,180, 68, 61, 53,  0, 30,
-227,212,146,  3, 32, 99,234,238,146, 50, 34,169,106,146, 28,233,158,148,187, 56,244,113,150, 17, 74, 12,222,245,189,182,166,214,
-130, 99,192, 34, 66,168,205, 20, 65, 88, 40,177,171, 35, 64, 55,157,184,121,188,  3,152,  8, 29,204,205,221, 83, 18,119,143,227,
-164,187,143,186, 55, 14,221, 21, 68,103,133,162,145,136, 56,254, 34, 88,252,140, 15,197, 20,169, 83,178, 86,199,126,187, 53,  2,
-140,236, 16,184,230,174,115,247,213,106,129,  8,146,187, 56, 57,185,134,109,  3,213, 44,162, 71,196,136,194,232, 97,171,  7, 36,
- 20, 73,173, 52, 14,254,101,107,227,  8,118,108,244, 90,252, 81,163,118,  2, 17,  1,180,213,113,171, 64, 68, 28,232, 39, 10, 66,
-125,202,  2,238,218, 70,110,149,170, 82,252, 44,129,154, 41, 49, 50, 73, 60,114, 66,112,239,102,110, 17,218, 33,215, 70, 12, 68,
- 84,106, 57, 61, 62, 93,155, 79, 82,223,161,191, 77,160, 68, 36, 50, 13,138, 35,217,255,199,212,155, 61, 89,150, 93,231,125,107,
-218,231,156,123,111,206, 53,245, 80, 61,119,163,187,209,  3,128,  6,209,104, 16, 36,  8, 82, 32,130,146, 41, 75, 14,218, 82, 40,
-252, 96, 61,248,143,112, 56,194,255,134,159, 28,122,176, 21,114,132, 77,209,164, 77,147, 65,145,  4,105,138, 34,  1, 18,108,  0,
- 13,160,231,161,170,107,204,204,202,225,102,230,189,247,156,189,247, 90,203, 15,235,220,130,186, 30, 43, 58, 43,171,242,158,125,
-214,254,214,247,253,190,224,178, 37,102, 78, 53, 23, 51, 67,162, 36,172, 21,106,205,196,152, 36,245,171, 30,220, 89, 24,  9, 93,
-161,148,162,165, 50, 17,113,114,112,171, 97, 47, 68,140, 43,193,154,204, 70,140,204, 73,221, 97,237,245, 76, 44,134,  8,160,109,
- 59,225, 36, 86, 45, 32,116, 36,225, 48,  3,  4, 55, 51, 64, 71,119,162, 68,  0,234,134,104, 72, 99, 45,162, 16, 85, 51,252,222,
-255,249,111,  1, 49,152,253,  1,162,  9, 14,117, 44, 64,109,156,162,105,173,225, 88,180,216,196, 74,218,193,198,  8,  3, 32, 49,
- 89, 29,139,225, 71,160, 12, 50, 34,  1,152,122, 37,143, 94,  4, 48, 55, 26,141,145, 35, 99,220, 29,144, 18,184,131,107, 56,103,
- 12,198,181, 21, 34,135,117,114, 13, 81, 64,119,107, 82,115,247,246,173,141,237,203, 91, 27,201, 20,194, 78, 59,158,255, 33,180,
-  3,152, 41, 35,226,248,185, 13,225,137,227, 61,195,200,145,126, 69,230,177,138, 21,105,141,204, 10,132,224, 56,159, 43, 16,199,
- 31, 29,  3, 60,254, 98, 59,235, 22,188, 52, 32,105, 16, 43, 99,128, 93,199,118,175,205,217,204,251,197,141,251,244,194, 43,175,
-212,220,183, 91,155,186, 26, 56,165,217,238, 46, 52,  9,150,171, 91,183, 62,255,240,253,247, 62,248,232,163, 79, 62,253,240,246,
-237,219,224,222, 54,205,165,157,221,189, 75, 59,179,217,180,109, 82,219,180,137,  8,208,146, 52,210, 52,147,182, 61,191, 56,191,
-241,201,103,167,171,213,107,207, 63, 55,228,161,154,175,150,171,119, 63,249,228,222,193,241,209,124, 14,136,223,124,227,181,182,
-105,191,241,214,183, 94,124,238,249, 73, 71, 27,123,215,218,173,237,201,100,243,253, 31,253,224,127,248,159,254,199,219,135, 71,
- 40, 50, 63, 61,203,185, 18, 33, 49,108,207, 54,174,238,238, 73,195,203,126,149,139,158,206,207,230, 23,231,134,222,164, 22, 29,
-159,120,236,234,175,189,241,149,111,190,249,181,237,189, 75,192, 92,242,234,236,232, 32,211,198, 66,235,151,223,248,230,127,252,
-139, 63,255, 95,255,221,191, 65,116,230,212, 16,125,251,107, 95,250,231,223,253,213,141,173,233,221,155,183, 73,232,116,190, 88,
-106,249,249,207,223,155, 77,167,159,221,184,181, 51,155,238,206, 54,153, 49,165,134,145,187,110,210,164,142, 19,150, 82, 28,188,
-154, 51,162,170, 73,147,  8,160,105, 36,168,  7,102,206,137,  8, 24, 17, 70, 14,164,  1, 18, 16, 81, 45,202, 66, 34,226, 96,110,
-104,106, 44, 88,114, 14,111, 28,137,160,163,129, 51,177, 19, 32, 48,163,143,174, 47,140,254, 32, 18,110, 29, 52, 60, 35, 90, 20,
-  8,220, 20, 20, 88, 88, 71, 22,180, 19, 53, 99,126, 58,145, 27,160,171, 90, 69, 96, 68, 86,173,238, 74,110, 16,118, 78,150,241,
- 17, 32, 54, 45,190,102,159, 68,221, 89,240,226,221, 67,174,244,245,199, 44, 60, 17,  8, 30,228, 22, 64, 20,183,234,224,137,147,
- 89,209,234,156,216,215,151,137,174,155,212, 82,188, 86, 12,162,128, 21,183, 74,148,136, 89,132,107,169,205,214, 54,186, 14,103,
- 23,193,228, 41,101, 96, 17, 87,143,129,154,133,109,253,249, 37,  4, 34, 30,134, 65, 56,  1, 83,160, 40,205,130, 47, 24,101, 63,
-236,235,108, 48, 17, 97,144,126, 17, 84,139,155, 18, 11, 16,228, 97,144,212,144,133,126, 43,128, 12,164, 94,235,  8,159, 51,119,
-192, 96,240, 86,211,182,155,184,186,150,138, 76,230,170, 90,132,133,136,163,140,162,148,236,166, 72,  9, 64, 49, 37, 52,167,166,
-  1,175,174,166,170,241,228,197, 90, 46, 28, 44,194, 82, 93, 53, 40,205, 97,188, 49,139, 26, 96, 51,183,216,214, 34,197,199, 37,
- 10, 99,181,228, 32, 10,152,187,170, 49, 50, 49,105,169, 36, 76,192,195,176, 52,245,139,229,194,221,174, 94,218,171, 78, 65, 76,
- 33, 70,140,251, 25,  9, 18,235,176,138,210,225,178, 42,146,152,132,221,131,137,225, 14,100, 53,107,173,  0,198,146,192, 71,114,
-117,238,  7,100,148,196,238,241,186, 18,243,242, 80,230, 96, 68, 68, 12, 69, 43,162, 89,238,230,166,238, 22,  6,  1,110, 90, 98,
- 25,155,223,173,130, 26, 49,170,153,  8,197,  5,119,220,118,198,220,236, 70,148,156,192, 84,213,140, 25,173,232,106,185, 18, 64,
-240,232,  4, 64, 26,231,228,117,  1,147, 59, 34,136, 91,  5, 86,115, 32,160,166,237, 74, 94,169, 22, 66,102, 18,243, 10, 16, 37,
-234,102, 10,  4, 49, 58,192,154, 61,109,163, 99, 50, 46, 59,230,107,124,196,248,172,122,192,155, 28, 16, 52, 80,199,235,234, 26,
- 28,235,162,  2,220, 49,222, 13,192, 61, 26,  6,108,119,123,231,248,226,226,210,206,149, 65, 53,228,150,113, 98,139,107, 60, 96,
-224,237,226,107,174,153,177, 20, 78, 27,163,145,104,191,134,101,  5,119,202,192, 28,200,137, 19,  0, 24,  0,163,243,195,247,184,
-195,104, 46,122,200,234,  1, 15,178,166,105, 70,198,117,189, 13,128, 27,154, 93, 44, 87, 58, 12,127,240,135,127,252,223, 63,246,
-228,222,181, 61, 48, 42,106,216,201,249,233,169, 86, 21,198,199,159,120,242,137,231,191,240,143, 16,250,163,131,147,243,197,221,
-123,183,110,220,188,253,217, 71,239,223,189,115,251,167, 63,127,183, 47, 58,219,152,238,110,110,237,237,108,238,110,237,182,140,
-203,213,162,148,114,249,210,229,179,219,183,127,242,222,  7,207, 60,254,152, 17,167,166,217,219,222,154,159, 93,172,134,238,108,
-177,250,248,198,237, 55, 95,127,233,207,254,226, 79,135,161,183, 58, 72,106, 39, 27,155, 27, 93,243,123,191,255,187,251,167,103,
-147,201,180,154, 49,209,227,215,174,236,108,109, 94,218,217,217,154,117,128, 80,171, 86,173,102,182,234,247, 46,150,171,139,101,
-127,177,236,175, 63,114,245, 55,127,245, 87,190,244,234,203,237,100, 54,172,150,249, 98,245,224,193,225,253,251,247, 30,123,230,
-165,183,190,254,173,247,223,253,249,211, 79, 61,245,242, 75,175,254,228,221,159,255,218,151,190,252,221,183, 94,125,233, 11,207,
-156,156,236,159, 28,174, 38, 91,155, 63,123,247,253,199,175, 63,118,122,112,126,235,246,225,181,221,205,199,119,247,218,134, 29,
- 16, 81,  8,153,133, 13,220, 80,  5,132,147,160, 91, 29, 42, 48, 10,176,171, 73,219,  0, 34, 33,171,153,169, 17,184, 75, 48,204,
- 24,192, 57,174,205, 12,200,  2,174,  0,100,238,200,200, 68, 40, 44,241,241,138,110, 53,112, 38, 66, 70,244,224,227, 57, 58,186,
-106, 85,109, 82,  2, 68,181,  1,145,137,  4,221,152, 73, 53,  3, 16,114,160,131, 29,132,131, 29, 31,152, 92, 55, 69, 64,173, 38,
- 77, 19, 89, 39, 97,174, 22,126, 43, 90, 55,140,115,192,243, 71,230, 33, 58,128, 51,177,105,193, 17,193,228, 90, 11, 34,115, 35,
-102,  6,110, 44,141,187, 18, 11, 11, 23,205, 14, 21, 28,164,105,  3,104,204, 45,  6,  2,132,  0, 89, 34, 79,148,144, 37,182,138,
- 72, 84,149,153,197, 93, 75, 85,  4,239, 79,142, 48, 46,153,132, 64,158, 82,  3,  0,158, 32, 86,196, 62, 14, 76,152, 82,210, 82,
-106,173, 73,196,  1, 92, 43, 34, 19,187, 23,139,112,144,  3,148, 60,116,147,137,186,187,123,209,146,226,122, 75, 17, 29, 97,112,
- 87,133,182,233, 76, 77,213,136, 83,188,165,116, 40, 36,140,163,241, 20,  3, 34, 29,134, 63, 55, 80,171, 36, 20,171,  2,228,134,
-136, 28, 64,173,198,218, 54,110, 12, 14,196,142, 14,102,181,152,213,117, 28, 29,152, 57, 54,203,  4,164,238,213,106,173,133,136,
- 92, 29, 34,193,134,228, 53,115, 34,100,  2, 68,175,185,150,156, 36,141,  7,101,172,  3,181,154, 25, 32,172,111,134,142,140,238,
- 94, 44, 35, 51,184, 14,185,110,206,218, 96,187,  3,161,170,150,193, 83, 51, 58,154, 64,  1, 89, 24, 92, 75,149, 36,  8,144, 75,
-145, 17, 22,133,170, 53,210, 21,  0, 68, 68,238, 24,141, 95,156, 72,213,180, 26, 11,  2,160,179, 65, 37,112,179,234,220, 16,178,
-120, 85, 18,202, 67, 17,118, 70, 82, 71, 55, 80,173, 49, 55,128,187, 89, 89,167, 70, 41, 16,208,142,152,139, 65, 92,244,251,123,
-  0,  0, 32,  0, 73, 68, 65, 84, 85, 16,144,212,154, 41,130,  3,178,170,142, 53,216, 44, 14,170,181,198, 41, 43,163, 80, 49, 54,
-122, 96,208, 51, 16,137,193,117,116,143, 64, 44, 98, 20, 32,175,  6,  3,224,224,106,140,110,  6, 66,148,167, 94,122,246,232,254,
-254,197,201, 41,196, 90,  6,217,189,128,213,248, 93,  0, 55,119, 33,212, 81, 94, 71,  8, 87,127,116, 66,  5,191,192, 28, 24, 71,
-121,124, 92,118,233,200,234, 27, 15,254, 17,140,103,174,237,164,237,143,231,232,177, 45,  3,246, 16,243, 71, 33, 31,220, 57,234,
-113, 41, 44,237,182,214,144,192, 29, 25,208, 70,192,177,197,197,  5,209, 84, 61,172, 67,230, 70, 76,100,  0, 64, 15, 21,195,181,
-130, 19,103,189,141,104,181, 53,157,202,171, 59, 35,241,184, 64,246, 16,160,220,223,123,255,221, 15, 62,248,248,141,141, 87, 64,
- 85,152,128,192, 74,129,106,142,188, 58, 59, 39,233,221,212,129,246,118,118,247,118,247, 94,127,245, 43,192,191, 93,170, 61,184,
-127,255,206,135, 63,251,135,119,222,249,233,187, 31,124,252,233,141,201,228,206, 80,244,210,238,229,221,205,141,249,114,104,219,
-110,255,232,206,116,214,238,109,108, 59,209,222,246,206,131,227,211,161,148,101, 94,221, 59, 56, 58, 57, 91, 92,218,217, 94,172,
- 22, 47,126,225,229,227,163,  7,139,243,147,211,253,229,179,207, 62, 55,157,110,150, 92,150,253,106,119,123,231,185,103,158,220,
-156,117, 94,243,233,217,249,173, 59,119,247,143, 78,246, 54,102,109, 55, 81,211,147,243,243,154,203,203, 47, 60,247,242, 23, 94,
-218,187,186, 71, 32,231,167, 39,243,249,209,225,225,131,131,163,227,251,199,135,127,244,215,223,255,151, 67,189,122,237,250,209,
-209,193,191,252,111,254,219,139,255,229,127,254,205, 55, 95,252,194, 11, 79,222,186,249,233,229,107, 87,101, 99,243, 79,254,195,
-247,106,191, 80,240,183,127,242,222,222,214,198,172,155, 16,  0, 97, 34,  6, 96, 34,  1,150,134, 56, 26, 54, 80,107,149, 70, 90,
- 67, 35,144,196, 41, 49, 16, 49, 38,247,202,204, 30, 81,205,  0,224,226,250, 66,235,166,  3,160,152, 35,152, 43, 11, 58,128, 43,
-146, 25,139,152, 42, 33, 57, 33, 17,137,136,153,229, 82,201, 92,132, 75, 45,132, 40,156,108,252,  0, 56,161, 59, 84, 66, 10,103,
-  5, 26, 35, 65,214,154, 72,128, 88,205,153, 48,181,169, 86,139, 38, 16, 23,  6, 68, 32, 79,148,220,130,132,238,174,154,218,  6,
- 17,115, 45, 68,  6, 64,194,  2,204, 96, 26, 48, 39,225,196, 34,160,213,213, 48, 49, 35,  3, 49,228,146,218, 86, 77, 67,110, 41,
- 81,204,  4,201, 37,248,169, 42,210,150, 97,  8,247, 61, 32,113,219,160,249,120,251,  0,142, 41, 39, 97,114, 51,171,138,204, 14,
- 68,173,160, 65, 56,193,199, 34,107, 48,112,151,166,209, 82, 25, 81,154,206,181,  6,214,145, 16,221, 12, 71,132, 50,154,186,176,
- 16,249, 80,  7,116,145,148,170, 90,112,229, 18, 39, 45,153,155, 54,170,249, 34, 13, 32,228, 80,  3,233, 21,223,175,187, 43,183,
-201, 21,107,237, 83,219, 70,164, 68,154, 73,156,224,241,164,155, 59, 19, 99, 98,  0,179, 92,194,202, 15,  0,169,109,205,212, 29,
- 74,173,106,  5,137,192,141,153, 85, 13, 32, 14, 40, 77,169,  1,130, 90, 98, 17, 33, 73,216,180, 26,154,235, 90,116,137,100,111,
- 84,241, 50, 11,242, 80, 74,180,  5, 55, 77,155,115, 30,245,166,234, 36, 76, 78,106,  5,  3, 26, 42,220, 52,221,241,209, 73, 25,
-122,217,232,214, 86, 35,  8, 51,103, 41,165,109,219, 64,218, 49, 49,184, 73,211,230,156,173, 90,155, 18, 32, 91, 20,234, 26,  0,
- 99,234, 58,173,197,170, 73, 74, 76, 28, 41, 48,138,192,141,123, 53,147,113, 76,  5,138,227, 94,195, 87,128, 77,211,128,187,153,
- 17,  1, 10, 43,132, 15, 42, 94, 21,129,221, 53, 34,230,182,201, 67, 14,219, 24, 51, 69,106, 86, 49, 58,204,200,  1, 24,209,136,
-205, 28,129,148, 72,208,  7,173,252,175,255,197,239,  0,211,152, 22,197, 40,239,137,252,207, 72, 20, 48,112,  2,139,104, 49, 32,
- 32,104,244,123, 69,163, 49,162,  1,225,116,107, 99,117,113, 81,134, 12,235, 54, 15,  0, 36, 74, 30, 39, 30, 18, 32, 71,149, 19,
-141,253, 79,164,102,142, 30,209,159, 32, 34,132, 49,115,116,203,140, 49,211,135, 70,118, 71,  4, 70,138, 49, 90, 26, 94,204,207,
-157,100,218,166, 88,164, 32, 71,205,  8, 34,193,120, 73, 12, 23,206,120, 48,115,136, 94,184,  6,144, 69,253, 50,132,137,127,116,
-144,  5,136,201, 70,171,205,250, 18,243,139,133, 47,  2,128,193,184, 24,142,215,144,  1, 17,137, 32, 33,150,248,184,  3, 34,138,
-180,101,181,252,189, 63,250,179,141,217,244,139, 47,190,156,102, 27,205,108,106,165,172,161, 56, 44,109, 75, 76, 62, 82,250, 44,
-231,222, 74,  6,103, 93,173, 58,150,167, 95,122,245,173,239,124,231,159,126,247,183,158,188,122,233,133,167,159,190, 24,234,205,
- 91,159,223,188,123,239,228,244,120, 85,202,208, 15,253,170,223,158, 78,221, 29, 72,  0,109,185, 88,170,249,114, 40,243,179,249,
-107, 47,190,112,116,124,242,196,245, 39, 38,211,174,233,218, 82, 43,131, 62,245,196,227, 47,190,244,236, 87, 95,127,253,165,231,
-158,106, 18, 31, 29, 29, 30, 62, 56, 62, 61, 59, 35,192, 47, 62,247,220, 83,215,175,129,219,124, 62,103,162,175,126,229,181,151,
-158,123,113,115,119,135,128,143,246,239,220,189,115,235,214,157,123,183,246,247,239,236,239,127,242,249,221, 91,247,247,191,254,
-213, 55, 31,125,252,241,239,125,239, 79,158,186,254,244,116,186, 49,191,255,241, 35,123, 27,171,161,220,188,125,247,251,255,240,
-246,139, 79, 61,250,119,111,191,123,247,238,254,181,141,217,230,172, 19,100,  2, 70, 22,230,196, 66,179,110,218,182,173, 69,176,
- 12,169,147,177, 45,152,137,153,  8,204,153, 24, 99,225,204,236, 16,185,209,148,162,132, 19,130,136, 36,230,227, 47, 33, 41,197,
-220, 93,136,128,208, 17,144, 88,  1,136,198,107,187,131,119, 41,185,234,144,  7, 51, 72,146, 20, 52,165, 54,  4,127,117, 75,210,
-134, 14,209, 36, 42,181,230, 90, 36,138,120,172,144,  8, 16,148, 90,226, 94, 63,106,211,110, 68,108,181,144, 52,137, 17,  0, 57,
- 73,184, 38,  9, 49, 49,115, 26,255, 92,112, 48,171, 44,140,200,102,165,228,210,180, 83,  2,172,246,240,204, 53, 38, 97,  2, 53,
-195,145,154,142, 14, 94,189,180, 77, 87,107, 86, 48,102,  1,196, 16,184,221,109,212,166,205,  1, 42, 50,147, 48, 49, 25,232,200,
-104, 10, 65,149,200, 32, 56, 53,228,224,  6,128,106,156,146,176,184, 42, 16, 49,146,175, 87, 94,163, 64,132, 35,226,219,204, 24,
-121,  4,175,  3,112, 18, 68,180, 81,119,  4, 55,101, 78, 68, 80,171,154,107,132,245,144, 27, 51, 11,153,165,150,130,  8, 41, 53,
- 41,117,146, 18,177,172, 22, 23, 97,202, 48,173,210,180, 81,218,227,102,174,217,199,  2,136, 58,210, 52, 71,155,156, 69, 86,  9,
-129,  0,101,141, 26,  4,198,228,136,170,217,209,171, 86, 26,229,221, 17, 68, 59,154,250,133,221,  0,193, 83,147,130,101,130,225,
-  7, 49, 47,121, 32, 33,102,114,119, 73,  9,145,107, 41, 57, 23,119,107,186, 14,144,181,234,233,217,121, 39, 52,153,205,  0, 80,
-154,198,212, 21,128, 16, 83, 74,102,166,213,208,163, 62,139, 99, 67,205,140, 85, 85,107,173,181,198,242, 88,146,184,  1,  2,113,
- 98, 32, 28,135,205,248,201,169,154, 85, 22,138,221, 28, 18, 19,178,170, 66,236, 62,152,  3,223, 54,174, 15,  1,153, 41, 53,201,
- 77,  9, 49, 10,168, 83, 34, 96, 41,125,209, 90, 25,  9,137,204,107,232,207,225, 37,115, 55,102,174,213,115,206,104,198, 18,199,
- 23,149, 82,248,191,251, 23,191,  3,224, 28,105,145, 96,177,  1, 19,137,123,229,135,101, 77,177,175,199, 24, 10,204,215, 35,188,
-187,134, 65,241,244,240, 65,201, 89, 34, 76, 28,213, 31, 78,227, 83, 17, 53,101,128,142,196,204,227,138,213,171,240, 90,133,143,
-190, 65,138,159,127, 88,105,198, 31,224,216,143,  8, 54,250, 20, 31,222,183,  1,  4,225,108,209, 95,217,221,169,106,163,253, 43,
-  8,108, 48,166, 83, 31,190, 26,214,225,218,113,147,  7,  4, 20, 29, 81,163,129,107,196,136, 83,112,  8,145,214,255,215, 72, 61,
-255,207, 92,240,107, 95, 79,148, 50,192,136, 99, 30,205,185,  4,235,181,130,139, 72, 93,156,255,193,159,252,229,253,253,131,215,
- 95,251,202, 19, 79, 61,237, 96, 22,128,198,112,164,153,186, 86,115,  3, 45, 72, 13, 11, 73,219,105, 84,163,205,102,139, 97,249,
-217,207,127,254,217,167, 31,191,240,234, 27,175,126,237,173, 95,255,173,223,254,175,126,243,187,223,254,245,111, 63,251,200, 85,
-103, 17,150,123,  7,247,139,215,205,217, 12,137,102,221,100, 53, 12,125, 95, 86,195,112, 60, 63,107, 89, 54,166,221,103, 55, 63,
-237, 23,103,195,197,217,238,238,246,245, 39,174,111,110,110, 47, 23,139,155, 55,111,124,248,241, 71,247,247,247,135, 85,143,136,
- 77, 74,179,233,228,246,225,254,223,189,243,238,135,159,221,188,186,119,233,245, 87,190,248,196,245,235, 41,137,214,122,239,246,
-173, 27,183,110,222,188,117,247,206,225,131,123, 15, 14, 62,187,187, 63,191, 88,129,251,175,188,245,214,213,107, 79,124,255, 63,
-253, 85,206,171, 87,191,242,198,189,195,147,147,253,123,105,107,230,102,247,238, 31,124,250,241,231,179,212, 92,221,222,110, 83,
- 23,194,  2,  9,165, 70,218,182,221,232,102,  1,144,106,154,212, 38,137,102, 48, 98, 36,226,182,109, 25,133,133,185,145,168,149,
-  8,248, 84,172,187,181, 42, 51, 55,209, 53,170, 21,  9,132,133,137, 12, 92, 18,197, 14,159,144,152,  4, 69, 90, 22, 38,138,162,
- 75, 68,172,165,  6, 42, 81, 82, 66,162,166, 73,128, 81, 65,229, 76,132,232, 36,204, 72,170,138,177, 41,  5, 39, 20,150, 20,184,
-193,200, 72,120,141,  1,130,146, 52,102, 70, 12,113,193, 67,230,184, 85,172,171, 10, 16,204,136,  4,192,137, 88,132,133, 57, 70,
-230,201,100,106, 90,221, 97, 93,230, 14, 44,  4,128,185,150, 70,154,177,244, 44,168,208,128, 57,231,240, 92,147,  8,145,132, 43,
- 49,214,161, 16, 31, 51,  7, 55, 51, 85, 55, 67, 98,112, 67, 87,100, 66, 22, 87,139,180,163, 19,130,  3, 49, 17,179,175, 39,167,
- 68, 88,171,141,237,114, 50, 62, 21,196, 50,150,237, 18, 18,203,168,113, 17,141,117,215,200, 68,228,170, 68,205,136,254, 39, 16,
-110,214,174,188,134, 37, 89,205, 16,166,238,166,113,  5,179, 98,102,110,150, 38, 77,252, 40,153,217,193, 89, 82,108,176, 97,109,
-122,102,110, 12, 44, 42,125,106,169,200,  8,107,239, 54,104,101,102,  2, 66,162,106,149,137, 72, 18, 35, 73, 18,119, 71, 71,226,
-168, 80,164,120, 32, 71, 88, 97,148,196,  1,160,224,168,241, 18, 17,179,176,152, 71,174, 62,220, 56,218, 78, 59, 34, 86, 53,215,
- 90,134,220, 15,195,108, 54,225,148,220,141,  4,133,132, 89, 68,162,147,207, 89,136,132, 49,  0, 67,  0, 66, 92,205,173, 42,160,
- 71,212,107,  4, 50,  3,144,112,148, 20, 33, 11,160,137,196, 59, 50, 20, 93,148,166,197,241,123,240,181, 93,195, 61, 42,109, 17,
-128,176,105,146, 57,130,187,230, 16,171, 67,190,114,119,116,211, 36, 76, 76,170,102,181, 68, 69,109,  8,132, 44, 98,230,165,148,
- 54,113,211, 74,108, 61, 29, 44,  9, 13,165,  8,  6,163, 25,108,124,169, 99, 12,235,128,196,160,  6,  8, 76,  2,192, 14, 15, 39,
-111, 26,173,132,235,109, 99, 68,  4, 99,201, 73, 68,232,236,160,134, 99,137,135,233, 56, 60,  3,120,164,176,105, 77,181,199,  0,
- 90,140,139,166, 88, 20,248,248, 66, 65,128,245, 86,127,124,103,196, 15,222, 60, 10,116,102, 27,155,251,135,183,251,154,133, 81,
-  3,252,141,163, 84,191,198, 12,208,232,118,  7,196, 16, 15,215,189, 34, 96,190,166, 91,142,160, 40,136,124,214,232, 60, 26, 43,
-104,215, 71, 60,172,109,249,136,107,105,117,157,132, 25, 75, 78,124,188,167,140,105,103,100, 26,242, 10, 17, 87, 67,255,127,252,
-238,255,254,226,211, 79,209,214, 54,  0,212, 33, 55,179, 41,152,186,186,107,193,166,  3, 43, 78, 13, 24,214,190,119,173,221,246,
-222,205, 79,222,255,252,195, 15,190,240,218, 87,158,126,241, 69,116, 60, 61, 62,182, 62, 83, 35, 59,179,173, 55,127,249, 55,126,
-229, 55,126, 19, 17,255,175,127,247,191,253,219,223,255,253,173,141,173,157,205, 45, 98,222,219,218,186,183,127,240,200,165,157,
- 55,191,243,173, 23,158,121,122,210,180,205,116,186,123,105,215,115,222, 63, 60,120,247,230,173,227,227,  7,234, 54,235,166, 59,
- 59,219,128, 50, 44,207,151,125,127,112, 60,191,123,127,191,106,221,217,218,126,233,153,167, 95,126,225,197,203, 87, 47,245,125,
-127,126,124,124,120,116,124,251,238,221,123,199, 71,243,139,213,209,233,233,217, 98, 85,213,182,187,  4,147,102,123,107,107,239,
-242,229,183,190,250,181, 31,255,252, 71, 87, 62,127,228,249,151,223,184,243,249,199, 31,126,120,227,213,151,159,157,144,236,237,
-236,204, 38,157,130,245,171, 85, 41, 58,237, 90,146,132,192,196,108,170,146, 18, 68, 87,167, 97,173, 53,  9,143,155,109,194, 64,
-134,153,234, 72,175, 83, 23,  9,254,  4, 54,147,198,170,169, 26,194,216, 86,170, 69,137, 81,132,115,174,130,192,204,213, 10, 66,
- 66,117,133,113, 71,110,  6,106,230,128,210,112,205, 40,140, 64,148, 36, 85, 85,  0,173, 96,140, 66, 72, 85, 11,115,211,182,147,
- 82, 11,141, 97, 33,119, 71,179,232,175, 71,245, 98,  0,157,180, 86,205,216, 56,181,163,251,203, 11,179,152,213,232,138, 67, 67,
-145,164,170,241,123,196,104, 85, 75, 45, 76, 34, 44,165, 84, 36,228,160,116,  9,187,123, 24, 31,133,197,204, 29,161,105, 83,213,
- 98,102,132,136,196, 14,222, 54, 83,  5,245,106,225,144,171,170,137,153, 89,204,117, 93, 58,  8, 76, 80, 53, 74,143,185,214, 98,
-  1,116, 84, 71, 22,  0, 35,145,144,  7, 80,216,181,186,131,134, 58, 73,  2, 60,162, 63,136,193, 67,183,197,136,156, 84, 22, 50,
-163,192,  8,  6, 70,152,137,169,237,134,146, 17,136, 57, 17, 51, 32,155, 85, 66, 48,181,120,138,161,196, 10, 84, 13,204,171, 17,
- 59, 37, 65, 96,228,240,150, 97,173, 89,109,  0,160,104, 67,197,113,  8, 53,116, 52,116,115,151, 70,220,204,214, 81,116,105,187,
-104, 45,119,215,200,129,131,198, 83, 27, 78,188,216,  6, 39, 71, 55,205, 68, 72,192, 81,224,178,222,196,114,117,117,  0,173,181,
-105,  4, 17,133, 69,173, 56, 96,211, 38, 34,210,170,174,202,194, 78,120,126,186, 74,132,179,217,180,239, 11,153,233, 80,129, 93,
-205, 71,249,138,198, 47, 28, 49,125,  0, 46,185,  7, 87,162,113,126,134,112, 19,  6,222, 38, 10,179,194,192,231, 88,173, 34, 96,
- 74, 77, 84,227,104,173, 34, 34,210, 84,172,161,143, 59, 82,180,117,135,244, 87, 77,  1,157, 24, 17, 36,212, 39,213, 74,148, 72,
-  8, 70,235, 45, 69,105, 98, 72, 10, 34,160,230, 53, 23, 66, 76,146,140, 73,163, 48, 18,209, 69, 74, 41,170, 22,229, 24,  1,134,
- 76,235,253,166,153, 23,178, 17,219, 11,  8, 96,133, 25,145,192,107,104, 30,177,213, 15, 82,123,144, 57, 35, 96,229,228,190,246,
- 56, 58,  2, 34, 51, 26,185, 87,136,162, 26, 48,114,  5, 39, 13,108,204, 47,118,167, 30,228,130,241,237, 30,112,190, 17, 98,  9,
- 99,187,196,104, 57,247,200,227,164,212, 52,173,156,158,247,151,183,167,  2, 99, 27,153,227,218,239,131,  0, 96, 40,145,190,131,
-240,138,174, 51,169, 15,145,  8, 16,107, 85,164,  4, 96,241, 19,  2,  8,204,102,  3, 17,106, 29,101,122, 30, 59,139,226,151,195,
-104,160,140,175,129,191, 40,175,124,152,140,202,195,162,207,101,103, 99,235,251,111,255,253,123,159,124,244,229,183,190, 89, 42,
- 53,210,160, 87,  7,  3, 78,216,180,132,  6,188,  1,230,117,117, 65,210,154,241,219,127,245,103,117, 24,190,246,205, 95, 17, 73,
-101,121, 65,169, 67, 53, 36,196, 90,250,229,162,217,220, 41,231,231,142,242,155,255,228,191,252,147,255,248,215,247,246, 15,  4,
-169,107,186,231, 94,120,238,219,223,254,149,107,143, 60, 74,  8,121, 24,212,252,236,248,248,231, 63,253,241,225,254, 97,173,182,
-183,189,117,105,119,103, 99, 99,179,152,158,156,158,156, 47, 78,115,191,186,127,116,188,127,124,122,101,119,251,217, 71, 30,191,
-121,112,255,177, 71,175, 60,242,200,229,163,147,147,253, 59,119, 78,151,139,207,110,223,187,127,120,152,107, 57,154, 47,122, 85,
- 66,220,217,152,136,240, 70, 55,121,252,250, 83,117,181,186, 40,250,246, 79,127, 74, 77,123,253,209,195,103,158,126,225, 15,254,
-246,255,251,222,247,127,148,152,209,109, 99,218, 93,217,217,218,106, 91,132,170, 73,118,184,217,156, 78,185,109,  4, 73, 68,184,
-149,146, 43, 34,153, 89,173, 53,110, 63,193,185,141,135, 83,205, 69, 82,120,183,137,201,181,142,159, 31,128,212, 80,233,189, 90,
- 13,196, 41,160,165,134, 45, 91,223,231,168, 91,226, 16,102,208,  9,172, 47,165,225, 20,142,238,212,140, 98,111,173, 35,230,133,
- 57,  5, 14,101,194,162,224, 21,148,132,208, 88,189, 70,147, 92, 34, 46, 57, 27,  0, 75,195,113, 50, 10, 43, 80, 39,104, 70,134,
-149, 41,153, 23, 38, 49, 53,103,168,150,107, 44,105, 29,137,164, 12,153, 25,153, 83, 76,  0, 44,109, 41, 61, 16,136,176, 35, 10,
-167,162, 67,  0,187,172, 26, 39,214, 90, 17, 80, 72,220,172,145,  6, 16, 86,195, 50, 81,130,128,224, 56, 17,170,106, 45,181,  0,
-142,  0,250,170,165,102,107,187, 41,144,106,209,212, 54, 96,  0,234, 96,174,164, 12, 72,137,205, 42, 98,138,200,126, 44,129, 97,
-244, 60, 56, 17, 22,211,177,155,211,220, 67,107,  2, 43,171, 33,132, 32,115,147,212,  2,146,106,169,165,162, 41, 50, 17,115, 55,
-219,204,253,146,169, 85, 83,135,202,132,230,238,  9,192,200,172, 48,146,113, 48,138,141,132, 72, 82, 89,245,  0, 54,246, 72, 69,
-114,  7, 89,132,242,144, 29, 92,213,164, 33,  6,  6, 83, 13,142, 46, 32, 33,230,220,143,167, 30,162, 36,177,234,  8,128, 99,250,
-193, 57, 53,106, 21,192,220,106,100,233,205, 76,173, 74,106, 29,176,150,149,128, 51,146,130, 55, 77, 34,  4, 51,173,106, 77,106,
- 88,176, 20, 11, 93,187,  2,152,218, 80, 74, 45,101, 99,214,154, 65,211,165, 50, 12, 57,175,144, 18, 39, 17, 33, 38, 30,138,145,
- 16, 53,108, 10, 94, 43,  0, 66, 29,101, 20,205, 67, 74, 41,218, 80, 29, 42, 19,  7,235, 66,171, 34, 25,161, 32, 73,  4,223,250,
- 85, 38, 66,100, 39,  0,115, 71, 97, 83,  5,168,132,194,141,128,197,248,111, 81, 33,195,210,228,190,215, 90,153,176,145, 68,212,
-104,169,200, 24, 31,110, 48, 21, 38,117,119,245,229, 34,167,196, 28,101,232,165, 38, 35,  2, 52,192,162, 86, 75, 77,232, 73,146,
-180,205, 76,107,209,162,160,  0,232,230, 69,181,  0,130,161, 71,210,223,213,144,216, 29, 92, 67,162,  9,127, 97,180,106, 27,  0,
- 27, 56,184, 11, 35, 84, 11,223, 77,200, 44, 10, 42, 81,105, 98, 17,195,117,  7, 69, 55,  7, 35, 88,163, 16, 70,131, 74,176,175,
- 33, 98,213,244,208, 98,233,  1, 70, 24,131,173,104,225, 34, 10,189,196,247,182, 55,206,151,231,182,211,185,133,219,199,  9,  5,
-240, 23,150, 27, 87, 95, 59,103,128,208, 13,100,220,210, 91,133,177,100,210,136, 25, 80, 71,211,141, 43, 97,227,107,169,101, 77,
- 56,160,241, 74,176,126,111,174,191, 97,  0, 89,127,107,241,174, 26,213, 38, 71, 18,173,168, 17,210, 51,253,163, 63,254,195, 47,
-190,250, 58,  8,115, 74,142,  9,149,205, 12,189, 20,179,201,116,230,224, 66,219, 55, 62,122,111,255,254,189,235,207,191,240,196,
- 83, 79,215,162,165, 95,185,129, 14, 25, 72, 40, 81,189,152,179, 32, 49,152, 82,233, 87,219, 59,151,126,231,159,254, 23,255,233,
-239,127,248,230, 87,223,184,254,216,227,109,215,230,161,191, 56,155,207,207,230,251,119,247,143, 79,142,  8,113, 50,153, 92,127,
-244, 49, 64, 27,114,206,197,110,124,126, 59,123,153, 54,147,249,252,226,228,124,126,122,122,118,105,107, 99, 99,210,126,124,251,
-198,201,249,197,207,223,253,120,181,234,239,222,219, 31,114,190,125,120,120,112,124,154,115,237,179, 86,179,170,229,202,238,222,
-238,172,123,229,197, 23, 95,121,225,249,159,188,253,125,106,102, 55,111,124,112,105,107,122,120,247,243,249,252,228,189, 15,222,
-223,127,240,128, 29, 86, 67, 65,180, 69,174,183,142,206, 86,195, 80,114,  5,128, 54, 53, 41, 81, 43, 50,105, 91, 68,106, 19,109,
-109,205,118,167,155,179, 73, 59,105,187,166,147,205,182,107, 82,211,181,210, 54,141,  8,139,  8, 57,  0,162,164, 89,  4,163,135,
-146,133,152, 69, 76, 77, 26,106, 82, 91,135,106,102,170,149,141,137,169, 75,173,169, 18,  2,160, 27,120, 85, 11, 16,149, 51,  8,
- 18, 33, 41, 56,141, 67,125, 33, 70,  6,209, 40, 58,  0, 85, 15, 34, 54, 33, 71, 10, 28,165,101, 85,173,230, 24,220,149, 32,243,
- 73, 18, 22,  5,115, 71,119,101, 30, 45,131,238,192,169, 29,103,  5, 51,143,166, 62,115, 17, 98, 73,181,148, 53,203, 80, 83,211,
- 50,113,213,194,130, 53, 15,210, 74,173,138, 65,136,  9,241,144,  9, 33, 26,227,208,204, 26, 78,238, 24,193, 22,  7,168, 53,243,
-232, 88, 70, 52, 71,166, 20,211,171, 87,113,  6, 97,213, 12,174,224, 64, 34, 36,108,213,106,  9, 28, 13, 80,113,  7, 35, 73,234,
-142, 86,  0,153, 72,192,189,145,209,255,102, 90,165,107, 77, 43,  0,178,164, 24,130,  9, 73, 75, 94,183,194,146, 51, 18,145,230,
-218,251,185,170, 18, 37, 78,  9,133, 76,139, 52, 93, 85, 19, 80,173,108, 86, 37, 52, 88,136,147,174,144,144, 27,104,201,129, 90,
-  0, 64,  7, 27, 86, 53, 30, 50, 18,212, 98, 72,142,136, 66,  9,192,204, 93,205, 24, 17, 16,152,211,184,154,116, 37, 98, 87, 19,
- 22,  7, 41,185,231, 17,233, 28, 40,158, 74, 76, 76, 77,205,  3, 34, 54, 50, 81,203,177,215, 41,125,102,102,  7,107,186,  9,142,
-107,210, 56, 40,136,193,156, 64,213, 17,112, 58,155,177, 72, 46, 37,151,234,234,142, 67,  2,103, 17, 16,105,153,209,173,214,177,
- 85,  6, 28,168, 33, 51, 23,  7,132,198,180,162,  1, 73, 67,216,  1, 90, 52,127,177, 16,  2, 25, 56, 81,  2, 80, 51, 77,141,132,
-158,150,173,146, 27, 99,147, 36,185,179,154, 98, 44, 37, 29,204, 99,147, 64, 53,103, 34,108,155, 38, 18, 12,  6, 70, 66,148,  4,
- 12, 29,171,116,162, 69,189, 42, 50,  8,138,187,155, 43, 50,183, 56, 54,183,212, 92,  0, 52, 58,138, 77, 85,158,127,233,139, 49,
-128,214, 90,115, 63,148, 92,106, 41,170,165,148, 92,251, 85,169,131, 87, 51,  0, 43,213, 64,209, 13,121,196, 82,155, 27, 97,194,
-113,150,135, 90, 43,140,146,134,173, 93,227, 15,115,168,241, 87, 15,101,196,127, 65,240, 12, 49,159,201,109,148,155,198, 98,176,
-181,168,  2,107, 18, 24, 34, 35,  4,218, 24,209, 13,192, 85,117, 58,157, 29,205, 23, 90,214,134,122, 28,215, 79, 65, 58,136,216,
- 42, 33,129, 58, 80, 88,100,195, 92, 83,215,139,211, 49,180, 69,107,193, 63,136,106,176, 86,104,104,  4, 20,143, 71, 58, 50,  6,
- 16, 58, 62, 31, 64, 15,143,246,177,136,112,252, 62,205, 67, 69, 13,119,125, 59,105,126,252,179,159,124,244,254,135, 47,190,246,
-138,170,134,198,136, 68,166,  5,212,164,225,249,233,201, 79,254,230,111, 55,246,118,191,244,141, 95, 78,238,171,179,211,104, 72,
-112, 85,119, 69,200,165,100, 17,105, 54,102,104,104,208,148,213,241,173,179,249, 19, 79, 61,253, 95, 95,191,174, 53, 95, 92, 28,
-223,189,117,118,231,222,189,179,243, 83,102,222,217,220,122,226,250,163,181,148,210,231,213, 48,148, 82,220,225,236,236,220,172,
-108,110,110, 30, 60, 56, 57,189, 56,  3,180,199,175, 93,117, 45,203,229,176, 88, 13,181,232,207, 62,249,236,211,187,247,192,245,
-228,108,185, 26,250,234,  6,136, 67, 46, 69,117,119,115,250,252, 19,143,254,250, 91,223, 48,215, 63,252,139,191,184,115,255, 96,
-107,218,117, 93,218,156, 77,143, 78, 47,206,238, 30, 77,218,201,238,246,206,238,214, 38,137,144, 27, 34, 95, 12,139,154,181, 77,
-120,239,224,193,253,163,163,249,225,121, 45,198,204,204,152,171, 51,115,236, 81,188, 22, 18,153,117,147,157,205,141,182, 21,116,
-108,147,  8, 11, 19,150,154,103, 93,218,152, 78,183, 55, 54, 68,210,172,107,187,166,153,164,102, 99, 99, 42, 73,186,212, 36,102,
-  0,157,205,218, 36,  9,220,  9,176, 84, 37, 34,  5,155,177, 88,227, 53,  2, 65, 66, 90,149,147,196, 11, 33,168,  2, 85, 51,136,
-112, 43,230, 30,233, 18,116,140, 18,  6, 83,215, 26,133, 54,192,136, 85, 29, 67,114, 36,140, 53,146,185, 17, 71,135, 42,131, 83,
- 84,210,128,121,146, 86,107,213, 92, 35, 10,231,110,181, 14,  0, 20,254, 28, 73,162,213,134, 50,  8,203,136,210,  5,110, 90,169,
-121,136,207,161,130, 53,212, 72, 74, 37, 15, 62, 82,180, 13, 64,145, 24, 29,212, 44, 49,219, 24, 32,119, 36,134, 17,231,181,214,
- 34,221,  8,152,154,228,163,157,  6,184, 73, 16, 88, 47,  0,108, 88, 48, 57,130, 85,167,212,152,  6, 48,155, 76, 21, 12,144,145,
- 83,170,181, 82,164,100, 34,135,133, 80, 45, 71,215,105,192,206,195,153, 67,  8,110,150,186, 41,  2,154, 22,  8, 72, 21,113,215,
-205, 74, 94,152,214,168, 45,140, 76,144,155, 70, 39,137, 99,212,199,178, 59,152, 42, 10,135,247, 27,192,139,  2,163, 17, 38, 78,
-141,105,  5,144,128, 77,114, 98,175,106, 86,163,157,139, 92, 66,251, 86, 85, 36,105, 83, 91,204, 92,115, 69, 68, 64,110,164,230,
-  2,164, 35,194,193,170, 72, 51, 86, 86,116,100,230,  4,  0,106, 49, 74,131,141, 11, 19, 74, 92, 11, 46,135, 60,153,118,196, 98,
-165,138, 72, 55,221,208, 90,180, 22, 34,138,178,173,209,191, 29, 71, 10,160,131, 49, 75,106,154, 90, 84, 61,139,180, 99,120,134,
- 92, 13,  8,128, 36,153, 41,154,163, 33,196, 20, 12, 72,196,238,166,213,226, 92,114, 55,230,102,180,145,140,150,190,128,192,155,
-123, 37,  4, 64,113, 48,208,104,126, 15, 58,122,136,251,168, 86, 36,177,  9, 91, 13,111,186,167,196,136, 46, 13,175,114, 65,128,
-166,229, 92,  0,212,184,109, 72,146,148,190, 71,196, 48, 73,182,147, 73, 59,153,136,  8,186, 19, 55,234,213, 76,221, 76,115, 46,
-165,104, 85,211, 90, 74, 63,244,189,230, 82, 85,193,172,106, 14,111,127,104,169,130, 52, 22, 56, 49, 97, 20, 41,185,174,151,147,
- 99,248,  8,  8,176,174,167,222,120,105,  5, 78,224, 97, 95,107,124,144,199,227, 30, 44,124,174, 15,209,146,136,  8,100, 96, 41,
- 53, 66, 56, 20,237,228,161,213,249, 63,171,133, 93, 83, 35,  1, 97,148,197,226,205, 97,190, 62,203, 97,205, 31, 91,131,142,185,
- 13,214,252,152,243, 34, 10, 35,255, 24,173, 10,176,  2, 18,162,  3, 18, 38,198, 17,134,231,161,239,  7,  9,219,208,  1, 35,169,
- 28, 11, 51,236,151, 23, 63,248,187,191,125,237, 43, 95,174, 96, 81, 95,141,224,169,109,155,201,244,198,123,239,220,185,183,255,
-204, 43,175, 62,249,228,147,203,243, 51, 19,241, 90,195, 52, 93,115,145, 36,  0,134,102,204,105,113,252, 96,217, 15, 23,231, 23,
-203,229, 69,173,195,176, 92,172, 46, 46,142, 78, 79, 30, 28, 28, 56,241,164,229, 39, 30,121, 12, 25,207,207, 47,110,124,246,249,
- 80, 74,155,186, 73,219, 21, 47,171,161,175,185, 18,226,157,187,251,139, 97,213,164,  6,193, 46,150,139,156,243, 80,235,197,197,
-  2,  9, 29,253,238,225,225,249,114,  5,170,210,180,136, 56,228,204,196,207, 62,118,237,219,191,244, 75,175,188,250,210, 79,223,
-123,247, 47,190,255,195, 73,211, 60,249,216,181, 85,191, 90, 12,185,150,178, 24, 74,147,146,179,173,114,110,134,161,  3,106,155,
- 36, 41, 61,190,189,253, 91,223,254,181,203,215,246, 78,230,243,227,227,147, 59,119,110,223,184,125,251,147, 79,111,222,222,223,
- 63, 60, 57, 46,181, 32, 51, 17, 80,147,200, 33,215,210, 15,153,  9, 75,181,243,101, 31, 90,225,233,252,236, 98,121, 65,196,166,
- 33,125,114,  4, 56,  5,145,164,233,186, 38,178,152, 91, 27,147,173,110, 54,219,156,109,180,237,183,222,120,237,240,228,116, 53,
- 12, 91,211,105, 74,178, 57,105, 38,237,164,235, 82,155, 38,169, 17, 55,155, 78, 59, 84, 67,  4, 16, 70,100,105,147,153, 34,177,
-154, 25,152,232, 88,122, 97,166,220, 72, 89, 21,115, 37,  6,240,128,162,147, 72,170, 70,224, 33,248,166,152,185, 41,184, 29, 14,
- 35,178,152,215,225, 14, 32, 98,176,226, 76,  8, 72,209,155,220, 74, 11,104,106, 26,254, 50,205, 25, 29, 36,226,175, 41,129,213,
- 90,162, 69, 36, 62,125,238, 30, 84,175, 96,  6,176,219,202, 45,198, 90, 95,251,236, 24, 76,181, 22, 98,193, 36,196,108, 81, 50,
- 36, 12,234,128,100, 99,114, 10,129,162,167,201,  3,230, 26, 91, 59,100, 66, 38,247,234, 52,186,106,192, 45,165,182,170, 89, 45,
-140, 98,236,235, 66,168, 74,146,192, 76,189, 48,  8, 19,154, 42, 33,214,192,  1,161,153, 85, 55, 48, 53,105, 88,107, 24,  5, 28,
-169, 25, 99,234, 68, 96,110, 90,221,141, 72, 70,150, 36, 56, 56,  8, 51, 97, 32, 13,138,199,254, 24,169,154,215, 92, 17, 32,234,
- 73, 35,  1, 91, 75, 25, 87,166,142, 70, 88,203,192,194, 66, 92,139,154, 58,142,250, 59, 68, 39, 53, 50,150, 33,147,  8, 73,242,
- 90,215, 16,115,116, 87,100, 65,115, 39,247, 98, 86, 10,106,157,237,204,136,208,133,165,105,  4,  1,188,211, 82,113,108,161, 35,
- 18,  2,  7,171, 21, 41, 90,168, 84,139, 58, 16,197,250, 20,220, 61,254, 53, 36,165,132,145,234, 36, 50,116,102, 96,230,192,166,
- 68,201,248,195, 96,188,155, 81,114,141,109, 31, 32,  2,168, 43,250,152,119,171,181, 56, 20, 73, 18,160,133,152,122,205,193, 74,
- 54, 55,102, 18,105, 74,205,106,228,101,144,148, 88,194,254,103,179, 46,229,234,165, 90,178,209, 48, 72,140, 98,174, 96,  0, 70,
- 22,160, 32,183,154, 87,163,165, 36,162,161,238,224,214,116, 13,  1, 34, 75,212, 27, 50, 97, 28,253,165,170,213,226, 14,166,181,
-207,189,230,161,230, 65,107,181, 90,220,172,154, 58,160,154,153, 42,129, 59, 26,154, 99,133, 49,164,236,192, 97, 52, 35, 10, 36,
- 12, 90, 88, 38, 97,108,225, 70,  3, 70,176, 64,163, 25,140,180,248,  0,  1,163,153,111,204, 38,171,213,176,185,179, 89,204,226,
- 37, 77, 35,170, 56, 16, 13,177,109, 29, 35,240,227,218,150,113,172,238,140, 86, 88,116, 64,142, 94, 41,  8, 94, 52, 19,  1,142,
-246,208,181,220, 14, 64,163,159, 34,202,124,195,203,131,232, 14,107,224, 38,172,113,199,  0,232,203, 97,136,156,177,  0, 22,245,
- 31,188,253,131,127,117,250,175,186,157, 77,  7, 35,110, 26,225,195,187,159,127,246,233, 71,147,141,205, 47,127,237,173,174,235,
- 22,167, 39, 86,171, 13,  3,  0,  1,168,  3, 74,211, 89, 93, 20,133,249,217,124, 56,188, 55,172,250, 82,134,213, 98,113,118, 62,
-191, 56, 61,157,207, 79,139,218,164,107,175, 92,190,140,  4,170,245,116, 62,159,159, 95, 32, 35,177, 96, 41,139,213,226,162, 95,
-170,217,172, 73,  2, 56, 95, 46, 87,253,144,146,212, 50, 20,171,203,126,232, 75, 95,  7,173,166,125,214, 50,148, 86,100,144,116,
- 81,181, 12,131,185, 38, 78,111,190,254,242, 63,250,198, 55,180,234,191,255,127,255,248,246,189,131,221,173, 13, 55, 59, 61,157,
- 23, 13,131, 44, 18, 39, 10, 63,138, 21, 53, 85,203,  6,178,181,181,241,204, 19, 79, 60,251,202,203,195,106,117,117,178,121,229,
-234,181, 47,126,241, 85,116, 88,173,250,197,114,113,116,112,112,227,246,173, 27,183,239,220,190,119,247,222,225,131,227,227,227,
-197,106,121,120, 90,212,183,103,147, 86, 53,154, 33,237,234,222,222,238,214,118, 13,158,150,163,187,199,  3, 96,227,143,  3,181,
-150,172,182,127,122,113,223,206,  1, 96, 40,195,123, 55,110, 62,249,232,181, 62,235,193,241, 17,  1, 21, 45, 79, 60,122,141,185,
-121,252,209, 43,119,246, 15, 54,187,  9,  9,147,249,149, 75,123,187,155,155,171, 60,212, 90,246, 54, 55,173,234,149,189,157, 39,
-159,121,250,238,189, 59,109,162, 68,169,235, 26, 95,228,174,105, 22,171, 94,132,164, 21, 55,151, 10,106, 14,204,140,206,220,196,
-124,106,224, 34, 98,213,170, 22,146,212,181,157, 22,205,117, 72,146,226,129,228, 54, 60,214,182,174,196, 86,171,198,200,  0,110,
- 90,152,  5,220,212, 61, 17,155,170,131, 16, 33,141,142,  3,141,  6, 98, 85,117,196,148, 82,201,217, 12,152,192,221,117, 24, 72,
-146,164,228,128, 30,244, 62,137,233,216,153, 57, 80,195, 99, 80,145, 24,220,198,162,231,104,221, 28,  7, 82,160, 64,145,128,  3,
- 10,131,122,196,109,137,107,201, 99,114, 11,  9,205,220,149,144, 29,220,180,  4, 98, 13,193,181,102,  4,182, 90,193, 85,173,178,
-115,209,194,136,204,108,165,186, 25, 16, 42,  0,212, 66, 97, 75, 26, 71,166,136,161,208, 67,130, 43,115,227,154,145,  4,221,106,
- 29, 88, 24,  3, 36,101, 22, 36, 18, 85,103, 38, 11,114,253,218, 52, 61,244, 67, 59,105,155,166, 45,181, 90, 29, 48, 76,248, 20,
- 92,  9, 52,176,126, 88, 74, 98, 78,  9,  0,192,108,236,248, 54,141, 71, 83,107,198,232, 83, 74,124,124,118,214,  8,  3, 74,248,
-205,227,125,207, 44, 96,182,206,145, 49, 16,187, 43,155, 59,130,105,245,209,240, 18, 48, 34, 55, 51,135, 32,214,248,136, 41,209,
- 66,196,204, 73,107, 46, 85, 17,129, 80,204,148,  0,140,208, 29,129,200,212,106, 45,140, 41,145,152,214,154, 51,162,248, 26,132,
-192, 34, 97, 86,196, 64,246,  2,153,106,213,129,152,192,149, 82, 42,185,119,  0, 17, 80,104,204,173, 12,125, 74, 18, 81, 43, 33,
-160,182, 27, 44,175,134,218,138,145,131,132,192, 23,193,128,177,240, 59,150,157,232,230, 26,246, 18,119, 67, 27,170,141,101,181,
- 52,182, 16, 90,224, 43,145,136, 88, 18, 54,221,198, 38,  5, 69,127,189,193,116, 55,118,175,102,181,214, 50, 12,185,228, 50,172,
-180, 86,211,193,114, 45, 57,107,201, 10, 54,198,180,  1,192,156,156, 35, 21, 54, 38, 82, 21,199,177,127,125, 80,131,187,199,226,
-215,124, 50,153, 28, 28,157,227,165, 45,171, 46, 65, 11, 28,181,115, 27, 15, 98, 68, 24,233,170, 33,237,216,232,197,  9,194,153,
-173,149, 34, 20,240,  2, 80,  1, 24,220, 29, 12, 92,109,204,127, 68,138, 35, 60, 53,145,169,227, 17,182,233, 81, 49,192, 35,152,
- 15,195, 70,  3,140, 82,150,197, 29, 86,171, 30, 85,133,233,163, 79, 63,253,228,147,143, 95,255,250, 55,200, 21,  9,223,255,233,
-143, 15, 30, 60,248,202,155,111, 78,164,  1,180,254,124,142,141,128,154,235,  8, 58, 94, 44, 22, 67,238, 47,206, 78,135,146,107,
-206,181,174,206,206,207,206,142,143, 79, 78,230,253,144,119,182, 54, 54, 54, 55, 16, 89, 77, 79,207,206,136,168,239,135,163,249,
- 92,107, 37,132,170,134, 14,155, 27,179, 54,165,101,223,247, 67, 31, 35,149,153, 45, 86,139,146,107,174, 86, 53,247,185,150,161,
- 42,128, 59,110, 76,166,  0, 70,140,102,245,108,217,239,110, 78,255,217,111,124,251,235, 95,254,210, 95,254,224,239,126,240,211,
-119, 39, 73,182,167,141,106, 77,156,218,214,173, 55, 38, 94,213, 60, 63, 61,109, 83, 55,157, 77,166, 77,199,200,228,240,143,127,
-245,155,175,188,246,218,135,239,191,255,231,127,250,231,223,250,198,215,185,105,157,218,176, 33,119, 93,211,108,109,237, 94,123,
-244,133,215,190,164, 57,151,161, 88,233, 79, 78,142,246, 31, 28,125,114,243,198,167, 55,111,206,231,103,135, 39,199,165,106, 86,
- 95, 13, 43,150, 70,213,194,182, 10,  0,  9,132, 29, 29,161,  2,160, 90, 67,105,146,204,  9, 29,148,144,114,209,171,151,246,174,
-238,237,221, 62,124,112,105,103,235,124,209,159,247,203,243,139,197, 75,207, 62,178,127,114,250,224,248, 84,246,232,108,185,154,
- 76, 59, 96,190,119,116,122,112,124,178,179, 53,219,111,231,199, 23,231, 47, 61,251,156,109,236,189,253,225,231,215,175, 93,185,
- 88, 92, 44,251,188, 49,233,174, 92,185,122,251,238,157, 47,189,242,250, 79,127,248,246,119,191,243,143,101, 58,123,251,135,127,
-251,232,149,171,139,197,249,233,233,241,230,198,108,182, 49,219,221,221, 61,190,125,111,210,166,134,155, 33, 95,  8, 49,129,182,
-157, 44,115,105,186, 54, 53, 45, 58,154,105,215, 54,196,141,150,129,128,141,130, 75, 88,221,136,133,132, 91, 32, 46, 90,  9,219,
-152, 13, 16,  1, 18,168, 35,170, 23, 29,218, 36,102,238, 86,  5, 81, 36,133,155,218, 16,192,212,140, 73, 18, 24,132,237,  7,209,
- 72,196,171, 33,130,213, 10, 52,138,215,113,109, 37, 34,228, 78,203,224,106,241,104, 89,213,160,112,122, 85,  5,236,186,182,214,
- 90,243, 64,192,163,149, 69,141,136, 84,107, 25,  6, 22,  9, 41, 57, 50,165, 90,134,181,113, 46,110,  9,134,132,165, 86, 66, 71,
- 73,150,123, 11, 51, 62,  2, 32,153,214, 90,140,153, 82,219,105,173,170,133, 37,133,175, 84,107, 54,112,180,140, 44,210,164, 40,
- 57,138,193, 43,166,254,224, 72,233,156,219, 26,  0,  0, 32,  0, 73, 68, 65, 84,133,233,152,152, 53,103, 32, 22, 17, 80, 11,215,
-149, 34,169, 41, 33,  9,139,145,187, 86, 68, 76,169,197,113, 26,180,113,235,  7, 72, 17, 60, 52, 35,247,106, 74, 12,125,159,117,
- 40,219,151, 55, 37, 73, 28,205, 64, 80,173,  2, 56, 38,178, 18,184,220, 42, 72,134, 28,187,220,162,133, 89, 26, 78,202,100,181,
- 34, 11,161, 89, 53, 22, 10, 68,  0,115,131, 86,221,  1, 93,163, 58,216,  0,  9,141,153,204,153,161,230,108,  8, 22,145,218,120,
- 81, 40, 56,113,170,185,  2, 21, 73, 45, 50,107, 41, 94, 12, 19,163, 48, 40, 14,195,146, 17, 36, 62,  9,192,195,144,187,148,152,
- 83,113, 64, 44,  8,216, 54,109, 45, 57,181, 32, 44,125, 45,224, 74,140,109,203,236, 96,232,226,213, 65,226,216,212, 16,166,208,
- 53,142,170, 48,144, 68, 49,182,141, 53, 29, 10,228,166, 10,117,237,128,113, 65,116,240, 98,  0, 64,181,198,225, 88, 66,238, 70,
-  7,175,196, 72, 36,194, 34,211, 13,218,164, 20,133, 35, 20,149, 42,100, 86, 85,173,214, 33,247,117, 24, 74, 30,180,150, 90,122,
-143,134,222, 18,192, 97, 13, 42,119, 20, 60,185, 58,198,112, 33,208,166,164, 94,212,108, 76,178,142, 70,228,112, 51,249,136, 18,
- 24, 13,240, 52,118,  8, 96,152, 38,215,172,165,209, 15, 90, 28,  8,185,129,135,238, 71,100, 32, 71, 32,183, 53, 61,222,  0,216,
- 31,238, 87,221, 28,201,  0,162,154, 61,  2,183,113, 71, 32, 97,186, 24,  6,  7, 44,166,137,  1, 28, 79,231,167,111,191,243,206,
-215,190,245,107,251, 55, 63,122,239,103, 63,121,244,133,151,126,237,107,223, 40,139,179,160, 83,133, 15,167,  2, 13,253,217,176,
- 90,158,206,231,125,127,166,181,230,210,247, 23,203,131,195,195,179,211, 19, 53, 19,226,217,180,219,221,222, 58, 95, 44,206, 46,
- 46,134,156, 81,104,185,232,  1,177,148, 92,138, 10, 97, 85,101, 39, 39,152,159,159,153, 66, 95,135,212,200,106, 81,138, 14,136,
-144,171,230, 82,251,126,229,238,132,220, 53,201,209, 64, 73,205, 23, 57,151, 82, 55,167,211,173,217,198,191,254,157,223, 22,145,
-127,243,187,191,183,127,116,114,101,123,163,235, 58, 48,175,  0,125, 89,185, 66, 35, 92,171,158, 45, 87,125, 85,135, 85, 62, 43,
- 85,203,206,214,214,211,207, 61,251,230, 91,223,152, 47, 46, 14, 31, 28,252,251,255,240,167,119, 63,255,232, 87,191,254, 38,138,
- 76,102, 51,105, 38,210, 52,148, 90,  8, 12, 54, 49, 78,  0,133,119,155,102,107,119,247, 11,207, 63, 83,243,176,184, 88, 60, 56,
- 58,186, 88,245,  7, 15,142, 62,187,125,251,104,126,122, 58, 95,158,157,157,247,154,221, 76,  1,138,  3,133, 24, 70, 96,104,163,
- 71,203,161,168,182,109,218,221,218,120,231,163, 79, 78,206,231,215,175, 94,158,116,205,197, 82, 16,113,209,175, 46, 79, 55,210,
- 53,155,159,175, 38, 73, 38, 41, 61, 56, 58, 25,106, 73, 68,179,182,237,186,118, 27,116, 54,153,246,203,197,222,230,198,238,206,
-238,189,251,  7,243,179,211,188,177, 49,153,164, 95,122,227,141,157,237,157,179,229,208,204, 54, 72,228,124,185,252,202, 19,207,
-124,246,249,173, 71, 54,175,252,232,157, 31, 62,255,220,243,203,  7,139,110,114,249,246,252,248,246,254,205,169,208,116, 50, 77,
-132,119, 15,238,223,188,115,239,171,175,189,122,126,190,186,125,231, 86,206, 37,161, 23,173, 93,203,151,247,246, 74, 41,146,248,
-137, 71, 30,235,251,126, 54,237,134,161, 76,154, 52,155,204,134,146,187, 36,192, 16, 81, 47,225,  8,204,114,211, 36,112,  3, 39,
- 17, 17, 18, 73,104,209, 55,210, 38, 70, 79,146,204,171,153, 59, 37, 66,  5, 39,  7, 51, 36,110, 91,118, 51, 36, 80, 67,102, 78,
-140, 62,154,193, 36, 37,117,117,115,226,240,173, 25,119,169, 33, 41,195, 10,137,154,212,198,131,230, 86,153,217,170,130, 89, 44,
-188,221, 50, 74,243,208,  7,  1, 35, 84,145, 68,200,234,160,117, 64, 68,112,170,154,213,141,129,147,164,161,244,160, 78,  4,105,
-210,128,106,173,  5, 64,  1,193, 44,131,114, 56,193, 67,135,119, 85,  0,112, 83, 64, 12,248, 68, 48, 69,220,157, 24, 64, 45,108,
-207, 20, 12,100,166,156,115,211,180,210,180,154,135, 38, 37,119,182,170,142, 64, 36,128,145,119, 52,  7, 67, 48,  7, 25,137, 17,
-174,137, 88, 17, 28,  7, 68,  5,240, 82,234,116,163,107,155,  4,232,169,105,114, 45, 86, 43, 34,170, 58,147,112, 44, 60, 66,197,
-133,192,120,  1,147, 56,162,186,161,186, 52,173, 87,231,132,133,212,189,132,234,140,166, 65, 64,  7, 51, 74,226, 72,110,198, 76,
-106,174, 86,132,160,105, 91,  0,176, 97, 53, 44,151,156, 82,106, 90,228, 52,228, 21,145, 19, 75, 81, 69, 45,194,  2,146,114,173,
- 80,178,176, 76,103, 83,173,170, 86, 71, 95,164, 76, 12,160,239, 87, 73, 18, 98, 42,121,193, 84, 83,219, 58, 72, 41, 78,212,149,
- 90,130,100,192, 68, 66, 36,200, 15,149,104,  7, 20, 48,245,135,206,145,135,181,123,107,178,155,155,129,198,114, 39, 78, 65,  6,
- 87, 64,  6, 96,  7,  5, 29,157,145,224,230, 78,227,230,209, 52,122,146, 12,160,232,216, 66,  6, 24,245,128,107,166, 41, 96,215,
-117, 56,153, 18,163,  5,178,193,157, 88,162,160,178,106,177, 92, 29,205, 21,204,180,150,236, 86, 75,201, 94, 85,  8, 55,218,249,
-241,121,217,219,238,106,169,228, 21,104, 52, 81,141, 32, 95,164, 72, 28, 88, 40, 52, 68, 96,250,208,235,136, 40, 49, 27,  4,177,
-198,227,242, 56, 90,240,  1, 45, 10,159,214,252,122,242, 81,246,  9, 54,  1, 18,  0,143,221,130,161,195, 57,  2, 18, 40, 16,194,
-209,233, 28,136,162, 16,109, 40,213,193,255,225,199, 63,252,251,191,250, 51,173,250,210,215,126,249,234,163,143,246,231,103, 44,
-130,166,117,232,235, 48, 28, 31, 31,156,205,207, 75,205, 94, 75, 95,250,211,163,163,253,253,251,167,243, 51, 50, 69,132, 89, 55,
-157, 78, 59,119, 80,176,229, 98,177, 92,173, 28,124,181, 26,250, 82,170,106,132, 58,152, 40,145, 52,137, 27, 73,185,234,233,249,
- 42,151, 90,107,248,103, 74,159,  7, 65, 86,179,170,138,128,128,164,235,218, 29, 71,  0,194, 54,165, 36,  2,  0,139,101,249,155,
- 31,189,115,235,206, 61,105,248,169, 71,174, 58, 88, 46, 85,107,117,128,134, 19, 11,157, 94, 44, 78, 47,206,231,231, 23, 96, 70,
- 52,233,218, 68,140,231,231, 23,203,126,117,124,114,231,120,255,248,163, 27,159,170,219,247,126,240, 67,215,161,107,218,182,155,
-110, 78,186,217,230,230,108,182,217,116,109,211, 77,164,153, 36, 34, 71,168, 69, 83, 18, 74, 73,102,219,151,247,174, 94,185,254,
-108,208,123, 23,139,211,211,227,  7,103,243,249,249,114,113,124,122,126, 50, 63,189,187,127,176,127,120,112, 50, 63,159,159, 47,
- 86,195, 16,102,  6, 34, 20, 66,  5,216,217,154,245,125,255,242,147, 79,252,228,147,194,196,231, 23,203, 73,215,  2,194, 59, 31,
-124,212,117,237, 99,215, 46,221, 63, 62,126,225,250, 35,243,179, 51, 34,158, 78,187, 71,118, 47,165,212, 32,210,225,131,249,108,
-186,127,229,145,171,169, 73, 31,125,250,105,159,135, 87, 95,124,201,192,102,147,233, 59,239,188,179,234, 87, 87, 47, 93,249,155,
-191,254, 75, 98,254,226, 23,190,120,112,248,224,193,225,237,239,126,231,159,252,232,167,255,112,229,210,229,131,195,125, 16,154,
-159,156,234,226,124,235,209,171, 64,124,240,224,240,244,252,236,210,246,246,209,241,131,195,163,211,  7,231,231,102,250,224,248,
-184, 31,250,229,170,223,221,222,204,213,186,196, 79, 61,118,124, 60, 63, 39,180,161,212,105,219, 46,250,229,233,217, 34,137,172,
-134, 92, 75, 77, 77,218,154,108, 72, 43, 58,244, 33,199,115, 20, 68,129, 73,168,233,  8,200,220, 16,110,109,206,158,189,118,245,
-213,231,158,220,218,220, 89,174,150,253,144,103,211,  9, 49, 19, 19,152,165,182, 51,240,166,105,165, 17, 87, 71, 70,105, 91,243,
- 18, 45,128,113, 21,230,148,180,170,185,166,110, 50, 10, 20,166,110,192, 41,130, 78, 70,208,154,107, 60,  6, 90,138, 36,126, 24,
-207,113,  0,114,183, 90,130,152,170, 54,250,226,184,157,120,201, 37,103,  2,  6,114,  2, 46,185, 18,134,126,144, 70,137, 72,107,
-208,204,214,  6,186,245,226,205, 33, 12, 75, 99,159, 56,146,149, 28,185,197, 40,218, 69,196, 90,115,128,119,208,176, 97, 86, 83,
- 51, 85,197,166,235,162, 64, 17, 64,199,  0, 58, 10,140,252,  9, 20,150, 50, 12,106,185,107, 18, 81,215,231,162,117,216,218,222,
- 72,221,164,148,218,151, 30,145,221,113,196, 31, 86,149,166, 35,193,218,231,234, 61, 73,135,140,128,104,177, 50,101, 64, 76, 33,
-212,104, 52,114,137,128, 27, 40,170,  6, 97,155,137, 90,119, 99,  2,  3, 82, 53,112, 79,169, 33,130, 90,116,252,139,128,187,123,
-233, 51,  9, 53,205,196, 74,113,247,134,152, 82, 91, 75, 41,117, 96, 32, 73, 98,192,170, 22,251,156, 72,194, 34, 20, 68, 22, 97,
-119, 71, 52,105, 90, 85,131, 92,145,157,133,107,173, 86, 20, 29, 19, 19, 33, 22, 53, 65,166,208,155, 28,  0,172, 64,100,223,194,
-230, 24, 51,240, 72, 88,  4,119,133, 95,132,145,194,102, 98, 16, 39, 56,140, 22,195,241,181, 64, 12, 81,186, 24,160,188,192, 25,
-152,173, 49,193, 26, 77, 14,107,244,163, 35, 83,173, 53,102, 14,  0, 50, 83, 48, 55,202,128,136,152,132,176, 50,184,147,116,226,
-128, 72,179,177,140,201,141,185,109, 38,147,159,126,112,235,213,175,126,109,113,177, 48,112,203,189, 85, 85,203,154,135,210,247,
-181,100,  0, 19, 50, 64, 51, 48, 25, 17,  9, 50,178,229,162,214, 32,232, 73, 97,109,  5,113,138, 98,170,245, 43, 15,126,241, 95,
-252, 59,216,200,133,125,184, 50, 30, 29,247, 35,121,214,141,192, 79, 78,206,120,180,218, 35, 56, 60,255,212, 19,167, 15,238, 93,
- 44,250, 95,254,245,239,128, 64, 93,245,228,214, 95,156, 31,239,223, 93, 44, 22,181,150,  0,233,205,231,199,251,119,239,223,190,
-119,167,150,178,187, 57,187,180,189,113,126,177,  2,176,243,161, 63, 93, 92,212,172,171, 92,136,189,148,186, 28,134,139,190,103,
-119, 97,158,181,237,246,198, 38,130, 45,242, 80,139,173,114,  1,192, 82,173,148, 50,228,108,102, 68, 44, 68,236,148,189, 14,165,
-196, 85, 76,152,  8,193, 98,195,109, 30, 65, 26, 36,102,174,119,238,239, 95,222,221,102,225, 92,242, 48,244, 41,181, 10, 62,107,
- 59,102, 62,156,159,206, 23, 11,114, 80,167,101, 30,178, 90, 63, 12,211,233, 36,165,230,232,108,254,246, 15,126,112,255, 96,255,
-243,123,247,107,213,227,249,217,143, 63,252,120,115, 58,107,154,102,218, 72, 74, 77,155,154,174,105, 82,215,206,186,105, 59,233,
-132,165, 77, 77,215,181,123,151,174, 76,183,119,152,144, 37,169,153,161, 78,118,118,155,205,221, 43,154,173,170,230, 98,150,135,
-220,231,161,228, 90, 47,206,206, 30, 28, 61,120,255,131, 15, 63,188,241,217,253,227,147,249,233,217,157,163,211,221,205,238,210,
-108,242,209,237,219,194,252,224,120,206, 66,132,124, 50,191,112,119, 54, 59,155, 47, 30,187,124, 25,  0, 87, 67,157, 77,105,185,
-202,183,203,193,164,149,203,123, 87, 88,154,157,141,237, 27, 55,110,189,247,209,135, 72,244,230,235, 95,122,230,233, 39,127,246,
-254,251,183,238,220, 33, 76,143, 62,114,117,107,107,123,218,117, 15,142,239, 63,114,237,218, 71,159,125,122,253,177,235,255,207,
- 31,253,223,199, 71,199,111,255,248,199, 79, 94,127,236,230,231,183, 62,188,241,233,230,172,187,187,191, 63,100, 61,124,112,240,
-204,147, 79, 31,159,156,214, 82, 14,143,142,  0,173,147,110,181, 88, 25,104, 67, 84,114,206,185,212,204, 31,124,250,153,153, 78,
-186,201,252,226,172, 20,173,102,203,190,111,165,233,186,110,107, 58, 45,181, 63,187, 56,134,149,212,146,133,165, 58,  8, 64,106,
-210, 48, 12, 85,161,152,149, 60,184, 99,174,165,109,154, 31,116,205,183,238, 61,247,221, 47,127,105,190, 92,204, 54, 54,171,121,
-223, 47,206, 22, 11, 98,153,180,141,154,129,195,108,182,177,204,195,180,155,110,108, 76,151,171,213,162,239, 83, 74,109, 74, 53,
-247,221,198,166, 48,159,207,143,118,246, 46, 15,181,182, 93,103,225, 15,145, 68,204, 73,152, 68,192,144,  4,145, 69, 80, 37, 53,
-  0,206,206,132, 92, 74,  0, 59, 71,147, 18, 90,  5, 34,168,  0, 85,221,  1, 85,145,216,204, 44,176, 53,113,140, 36,118, 83, 48,
-111,155,198,  0, 70,218,224, 72, 95, 96,  7,  2,140,122, 16,113, 48, 83, 29,245,237, 72,188, 85,101,137, 54,136, 20, 15,150,214,
- 66,204,170, 70, 28,  9,217, 58,184, 11, 65,173,182, 46,229, 49,116, 16, 22,112,200,185, 34, 51, 83, 91,212,  5,188,212,218, 54,
- 50,157,181, 81,141, 52, 26,170, 17,  0,176,149,100,  6,154, 51, 16,161, 16, 25,130, 87,  8,202,115, 84,129,153, 99, 82,143,118,
- 44, 83, 38,113,163,172, 43, 92,211, 19,209, 65,181, 39, 17, 36, 70, 52, 64,115, 64,213,161, 86,  4, 64,105,146, 15,102,101,160,
-196,200,168,102, 88,122,230,166,170,170,233,176, 28, 82,211, 72,106,188,230,154,141, 18, 72,211,169,107,201,185,230,  2,104, 66,
-226,174,196, 52,198,175,156,204, 93, 29,200,209,139,  1, 82,234, 90, 53,143,157, 40, 50,202, 72, 63,136,130,150,136,178,121,112,
- 41,200,205,224, 33,249,125,148, 71,  0,188,  6, 80, 96,173,148,217,216,176, 61, 46, 92,141, 56,208,125, 20,229, 50, 30, 12,224,
-209,231,187,206,114, 59,186,186,167,117, 64,200,204,181,184, 81,192,139,163, 96,211, 52,194,202,189, 33,168,134,234,163, 36,  2,
-186,134, 62, 58,152,214,233,230, 86, 62, 63, 92,156, 47, 82,195,230, 64,105, 19,132,113,108,216, 65,116,179,234, 53,247,181,244,
-166, 89,139,106, 94,  2, 40,160,133, 99, 38, 72,162, 99,154,202,196,113,205, 42, 91, 55,241,132, 85,211,205,199, 18,171,168,131,
- 51,115, 30, 91, 94, 99,250, 32, 32, 95,251,249,  9,113,208,138,  4, 85,157,219,230,169,203,151,207, 22,171, 79,238,220,126,231,
-231,239,125,243, 55,190,187, 58, 62, 92,244,195,241,209,225, 48, 44,137,  5,220,206, 78,143,207,206, 78, 15,238,223, 63, 58,126,
-144,136,175,238,237,116, 77,179, 28,134,251, 15, 14,207, 46,250,221,141,233,241,217,185, 35,182,152, 42, 20,234,177,175, 67,191,
- 90, 78, 36,237,110,110,110,206,102,203,213,242,100,121, 94,171, 37, 22,215,186, 40,185,214,156, 75, 53,211,209, 99,140,100, 54,
-148, 90,150,181, 38,145, 41, 19, 18,230, 92, 99, 29,109, 10,110, 54,105,154,148, 68, 16,183,102, 19,117, 85,179,154,181, 22,109,
- 38,173,229,255,159,169, 55,137,213,237,202,242,188, 86,179,247, 62,231,124,221,237, 94, 99,251,249,217, 14,135, 35, 28,153, 17,
-145, 81,217, 85,166,146, 84,137, 74,101, 22,133, 10, 21,205,  0, 81,  2,169, 70, 48,  5,166,  8, 49, 65,  2, 49, 99,134, 24, 33,
- 33, 49,161,144,144, 16, 32, 64, 84, 86, 67,210,100, 86,146, 77,100, 56,108,135,237,112,243,186,251,222,237,191,238,156,179,247,
- 94,107, 49, 88,231,123,193,200,122,178,116,223,125, 95,179,207, 94,107,253,215,239, 87,199, 49,155,194,205,118, 83, 74,110, 56,
- 10,113, 74, 33, 75, 32, 83, 81,205,185,152,216,151,207, 94,252,233,143,127,186,222,111,247,125,189, 91,175,175,111,239,170, 72,
- 19, 67,151,154,182, 75, 77,140, 41,134,196, 28, 98,219,117, 49, 16,119,169,157,207,219, 16,194,114, 62, 91, 45,143,186,182,107,
-218,182,155,205,219,166,233,230,203,110,121,138, 12,200, 20,219, 96, 21, 83, 55, 43,227, 40, 82, 79,142,143,223,127,255,253,223,
-254,173,223,178, 90,214,155,205,245,213,245,207,159,124,243,228,233,211,199,111, 60,248,159,255,233,255,217,153,174,183,251, 33,
- 23, 68, 33, 14, 15, 78,142, 98, 72,132,118,188,152,221,237,134,152,210,213,205,221,124,214, 65,156, 29, 47,143,238, 54, 27, 12,
-248,226,213,139,219, 77, 47,106, 15,142, 86,179,166,249,103, 63,254,139,113, 20, 17,184, 27,238, 30,234,217,106,222,189,251,222,
-123,119,155,219,255,252,191,252, 47,126,248,253,239, 55, 33, 92,188, 58,255,224,157,119,126,254,244,201,243, 23,207,206,175, 47,
-126,231, 71, 63,170, 21,126,252,217,199,215,119,235,191,254,203, 63, 56,154,119, 31,125,254,105,184,134,126,236, 31,221,191,255,
-249,211,167, 71,171,197,237,102, 35,160, 49,240,110, 40, 38,163, 65,147,115, 30,171,250,224,169,230, 42,165, 12, 38, 90, 11,129,
-152,106, 96,231, 12, 43, 25, 50,152, 77, 40,116,191, 30, 42, 51,155, 42, 35, 52,129,106,213,255,253,199,159, 44,186,217,119,223,
- 56,189,188,236, 79,207,206, 56,196,161,148, 20, 56,196,174,101,188,189,219, 84,213,196,172,185,191,120,185,173,102, 72, 20, 48,
-100, 25, 54,155, 53,  3,167,121,115,254,228,155, 89, 88,152,230,220,231,126, 63, 84,173, 20,163,230, 12, 28,251, 97,115,114,124,
-116,183,222,206,151, 75,142, 17,192,218,166, 75,109,203,129,137,145,145,129, 57,132, 24,155, 16, 67,170, 57, 55, 33, 26,162, 26,
- 85, 67, 66,170,248,154, 56, 66,126,209, 97, 68,  1,209,138, 10, 32,128, 60,249,123,194,148, 97, 59,100, 64, 85, 20, 32,168,228,
- 24,210, 56,102, 83, 77, 93,227,132,119,142,193,106, 17, 51, 66,  0,228,212,132, 90, 51,130, 72,169,177,153,153,  8,135, 32, 34,
-  6, 22,  8, 67,224, 81,114,192,160,102,100,  8,192, 76, 98,  0,185, 31,218, 38, 33, 69, 19,101,102,226, 48,214, 26, 16, 13,169,
- 31,122, 63,168,136,  2,199,168, 42,110,228,133, 64, 80, 17,136, 76, 65,134, 66, 41, 17, 49, 77, 84, 89,233, 66, 91,106, 22,173,
-136,172, 96, 33, 68,138, 92,107, 69,226,192,109,201,131,137,196,212,  1, 99, 41, 35, 33,197,121,151,115,149, 90, 66, 72,238,222,
- 66,  4, 85,  9, 72, 12, 72, 49, 41, 70,169,123, 53, 45, 37,123, 96,187,141,177, 26, 90, 45,161, 11,164, 92,173,122,175,140,152,
- 13, 48,247, 67, 72,129, 24, 69, 36,143,133, 65, 67,106, 17, 17,159,252,248,255,  5,  4,145,250,186, 51,193, 68,135,114,105, 58,
-220, 14,250,107,157, 78,124, 32,183,151, 78, 83, 70, 15,190, 56,134,200,124,143, 60,170, 85, 83,  1, 37, 96,240, 61, 88, 52,183,
- 53,121, 19, 28,172, 42, 76,118, 41,111,197, 79,201, 71, 64,  6, 21, 81,245, 25,233, 20, 84, 57,120,157, 94,107,157,124, 40,175,
-166,109, 59,251,252,175,254,132,151,111,126,251,253,199,227,232,175,133,212,195, 67,139, 67, 64,199, 87,193,148, 69, 38, 68, 83,
- 44, 50,106, 30,165, 22,224,170, 69,213,  4, 68, 65, 20, 65, 84,139,167,101,124,102,207, 78, 42,163, 95,128,201, 28,160,129,  4,
- 68,140, 64, 83,230,147, 96,186, 10, 24,190,121,127,241, 31,252, 71,255,201, 79,190,122,217, 68,238, 66,184,219,110,247, 99,253,
-246,123,143,127,253,215,126,243, 15,126,255,111,237, 54,107,  1, 83, 41,181,212,245,221,205,197,249,139,237,110, 19, 57,182, 93,
-219, 52,169, 14,227,245,221,221,237,221,109, 41,133,153, 25,177,148, 98,228, 52, 77, 54,211, 42, 26, 67,104,153, 85,235, 62, 75,
-174, 69,253, 97,168, 90,138, 84,168,121,204, 70, 16, 57, 25, 88, 25,114, 46,185,138,  0, 66,147, 26, 70, 44, 85,135, 60,228,146,
-193,  1,116,196,109,140,196,164,162, 37,215,106,  5,145,205,172, 84, 65,196,227,197, 98,204,181, 72, 81,173,183,155, 29, 24,196,
- 16, 16,112, 20, 49,128,154,139,212,178,203,162,160, 49, 48, 81, 88,118, 13, 35,115, 12,127,254,233, 23, 57,231, 16,  2, 51, 69,
-166,192, 28, 67,104, 99,228,192, 77,138, 93, 74, 77,138,109,147,150,243,249,106,177,236,218,182,109, 66, 19,155,166,109, 23,179,
-249,124,214,181, 93,219,181, 93,215,118, 49,165,216,166, 24,154,152, 82,140,201,  1,207,  8, 16,154,  8,138,227,216,223,222, 94,
-223, 94,221,190,188,184,126,117,249,106, 24,199,235,155,155,187,221, 78,213, 74, 45,166,154,154,244,205,243,231,111,222,127,240,
-198,189,123, 23, 87, 23,159,124,249,245,201,114,241,240,193,105, 21,168,185, 12, 57,207,230, 29, 35,173,102,139,147,227,227,179,
-227,251, 77, 75, 47,175,174,246,251, 76, 33,129,230, 55, 30,156,109,119,251,156, 71, 64, 40,185, 34,218,106,121, 36,165,252,236,
-235,175,218,216,116, 77,162, 64,171,217,226,207, 62,253,120,214,180, 93,215,253,240, 91, 31,124,252,205, 23,215, 55,155, 89,155,
-154, 16,174,119, 91, 16,101,162,175, 94, 93,140,253, 24,  2,229,177,182, 93,215,165, 84,165, 26, 24,136, 14,165,246,227,208,151,
- 28,137, 25,105,181,104, 61,239, 45,217,209,193, 65,204,136, 40,134,184,222,238, 60,149,159,107, 81,179, 49,151, 54, 53, 77,228,
-126, 28,  1,232,239,252,230, 47,253,242, 91,111, 45, 87, 43,102, 54, 67,  1, 40, 99, 95, 75, 37,142,199, 71,171, 89,151,158, 62,
-125,202,129,153,194,217,201, 89, 54,139,  4,165, 20, 53, 48,173, 93,211,138,228,188,223, 80,106, 41, 52,104, 56, 84,201, 99,143,
-156,152, 12,181,238,118,187,249,124, 65, 33, 13,251,189, 17, 72,150,166,237,230,179,118,179,185,149, 90,123,129,213,233,189,231,
-183,119,183,119,107, 69,236, 82, 92, 46, 22,179, 38,174,102,243,166,137,179, 89, 23,  2,181, 33,117, 93, 19,  2,199,148,  8,205,
- 77,108,230,234, 31,243, 32,135, 51, 38, 85, 69,165, 22, 51,166,200, 42,197, 42, 16,153,160, 49, 50, 18, 58,140,222, 23,160, 56,
-184, 78,137, 13,216,100,156,  6,158,196,106,  6,170,128,228,141,154,  3, 78,138, 21, 12, 65,  3, 65,191,219, 14,187,205,242,236,
- 40, 53,115, 17,112,251,183, 20, 41,121, 28,246, 59, 41, 85, 69,154,121, 27,155, 46,198,  6,137,129,144,136,201, 80,252, 71,171,
- 79,119,201,247,146,252, 74,106,254, 80,210,106,147,157,136, 39,239,149,169,168, 56,144,199,239,173,196,129,128,138, 84,  3,101,
-194,170,211,104,211,111,146, 42, 74, 76, 28, 26,  3,169,185, 74,169,  8, 66, 77, 66,160, 50,142,  4,232,152,101, 20,128,128,222,
-149, 21,  5, 19, 33, 52,115,251, 10, 34, 17, 87, 85, 52,219, 15, 99,208,131, 28,195, 39,163,191, 96,246, 78,115,108,243,113,176,
- 29,142, 55, 63,114,221, 46, 53, 69, 78, 29,218, 65,  7, 34,182,170,104, 65,  3,112, 44,132, 33,  3, 41,138,137, 32,161, 67, 34,
- 14, 60, 70, 71, 95,146,170, 97, 32, 56,108, 28, 81, 96,203,170,224, 30, 40,223,112,160,  3,189,102, 82,251, 25,248, 31,173,148,
-250,230,219,143, 63,251,250, 21,242,119, 56, 57,206,127, 32, 71,154,  1,168,  8,170,202,212, 54,249,197,158,  5, 32, 32, 99,138,
- 45, 33, 90,131, 72,104, 42,166,106,200, 96,162,166,150,179,169,  8,152,149, 98, 86, 76,213,204, 87, 54,136,192, 48,  6,  2, 66,
-  8, 96, 50,217,130,204,220, 22, 66,  1,  2,179,  1,118,129, 83,155, 62,124,239,189,119,223,255,206,183,223,255,224,141,135,111,
- 64,140,187,221,174, 31,247,187,245,250,233,147,111, 54,235,205,106,181, 72,109,243,248,241,187,170,186, 93,111,246,251,189,148,
- 98,181,174,230,139, 38, 53, 67, 30,134,126,159, 71, 11, 33, 48,198, 20,194,110,232,  5,173,140, 99, 37,170, 90, 74,149, 42, 54,
-150,106, 53, 35, 97,224, 24,137, 40,181, 69,106,173, 85, 68,  0,172,109, 18, 81, 80,179, 60,230, 94,242,190, 31,204, 52, 53,169,
-109,186, 38,177,169,229, 82,251,126,168,162, 82, 85,173, 26, 72,228, 16, 67,108, 83, 24,107,222, 13,253, 56, 86, 99,104,218,132,
-222,186, 18,101,  2, 81,139, 49,140,185, 32,129,228,122,187,222,230, 42, 72,148, 98, 20,145,177, 84,223, 27,172, 85, 75, 49, 83,
- 51,  4,  2,  8, 68,129, 83,155, 98,219,117,179, 54, 33, 95, 51,199, 54,134,174,235,230,109, 51,239,102,243,174, 59, 57, 62, 62,
- 90, 45,230,221,172,105, 99,203, 77,240,174, 63, 18, 69,127, 78,164,182,137, 67,206,159,124,254,245,215,207,158, 93,222,220,214,
- 42,236, 30,138,192,  4,184,152,205,209, 64, 73,180,226, 88,243,241,106, 53,107,186, 92, 43,135,248,238,155,111,133,128,175, 46,
-111, 31,156,158, 40,115,106,187,  6,163, 49,189,251,248,157, 49,231, 79,190,250,188, 31,247,227, 56, 70,142,111,220,127,104,  0,
- 31,253,236,103, 41,132,123, 71,167, 79,206,159, 63,126,243, 65, 10,205, 71,159,126,122,113,125,133,  0,111, 62,188,255,234,252,
-186, 77,241,203,252,204,170,188,253,248,254,126,200,127,242,209, 79,246, 99,255,232,254,131, 77,191,251,252,201,179,237,208,119,
- 77,179,217,238,114,173,145, 35, 97, 56, 57,106, 17, 64,181, 42, 40, 26,184, 61, 92, 77, 77, 28,171,  4,234,149,182, 90,  6,104,
-204,196,173,161,177, 81,176, 34,165,141, 13, 18, 84, 15, 11, 59, 70, 19, 99,  8,220,151,250, 63,253,179,143,238,126,105,252,181,
-247,223,153,207,230, 41, 70,145, 34,128,219,113,232,154, 80, 75, 30,160, 80,108,114, 30, 54,235,203,245,221,205,155,143, 30,115,
-196,171,205,122,177, 60,238,135,190, 10,236,182,155,121,151,108,200, 99,217, 45,143, 78,216,228,100,185,184,188,219, 96,138, 98,
-204,237, 34,231,129,114,142, 33,164,110,209,221,159,109,119,187,175, 46,174,190,120,254,234,242,110,253,252,226,242,102,215,223,
-245,123, 41,210,166,134, 35, 51, 81, 21,105, 99,138,145,103, 77, 34,226,163,249,188, 73, 33, 48,166,148,218, 20, 78,102,179,179,
-227,213,106,181, 92, 46, 22,139, 54,158,204,187,217,124, 49,155,181,  1,184,105, 19, 98, 36, 66, 41, 90, 44,148, 82, 20, 16,234,
- 72, 12,101,204,136, 53, 52, 77,136,141, 74, 85, 85,  4, 52, 20, 34,194,152,170,129,212, 74,137,  3, 51,197, 56,142, 61,136, 80,
- 19,208,184, 90,117, 43, 44,135, 88,115,222,245,101,214,166,200,141,129,113, 12,154, 51, 65, 35,104,165, 20,157,240, 53, 48,246,
- 61, 42, 32,114,211, 53,140, 36,234, 93, 39,  4,  3,230,201, 70, 61,241,221,192,151,249, 73,  0,107, 53,230,137, 87,107, 90, 85,
-225,144,154, 86, 48, 67, 85,142, 36, 86,197,140, 67, 80,161, 82,138,137, 97,164, 24,131,128,106,150,201,242, 40,197, 76,152, 24,
-152, 85,  4,213, 98, 98,226, 54,231, 98, 42, 72, 76,137,205,208,180, 26, 96,140, 33,171, 25,104,205,153, 17,140,131,168,250,104,
- 29, 16,  2,120,  2,242,112,196,155,153,137, 18,  7,183, 96, 31,130,142,168,170,147, 64,  0,100,146, 99, 76,181,137,159,252,116,
- 32,114,129, 33,160, 58,116,114,218, 15, 18,143,170, 76,253,238,195,230, 18, 33, 72, 53,  3, 51,228, 16,212, 65, 69, 96, 96, 34,
- 21,128,  8, 21, 60, 77,165,102,116, 80,  6,250,171,239, 71,177, 35,107,106,201,237,242, 12,202, 87,251, 92, 23,179, 69, 25, 71,
- 69,114, 34, 12,210,  1, 54,140,206, 80,  3, 20, 68, 86, 83,115,159,159,138,168, 26, 48,129,188,158, 52, 24, 18, 82, 72, 24, 18,
- 33,152,121, 17, 70,170,181, 12, 25,160,168,212, 50,142, 62,111, 64, 21,  0, 13, 10,102, 10,254,106,134,  0,166,255,248,143,254,
-184, 91,156,254, 27,255,250, 63,255,157,239,124,120,122,124, 90, 12,114, 25,111, 54, 55,121,183,187,120,254, 98, 55,110,135,253,
- 56, 91, 46,127,229,215,126, 35,160,221,222, 92,230,113, 24,246,251,125,191, 15, 20, 16,113, 62,159, 25,209,213,229, 43, 85,104,
-154, 56,111,155, 62,231,245,102,191, 86, 33, 68,102, 14, 77,218,247,253, 80,107,169, 42,181,168, 89,215, 52,128,144,139,130, 34,
-162,137, 72,201,153, 35,167, 24,171,202,174,223,239,246, 61, 16,118, 49,158,157,156,196, 24, 84,117,204,121,187, 27,164,138,152,
- 14,227, 40, 34, 69, 44,  6, 94,116, 77,211, 68, 64,220, 13,227,190,239, 85, 45,196,192, 76,125, 63, 86, 17, 17,  5,173,  2,168,
- 98, 69,100, 55,236,171,210,190, 31,115,173, 64,136,106,195,144,  1,161,139,209,239, 56,200, 76,140,193,195,213,196, 41, 52, 28,
-144,136, 21, 64,204,100,180,205,254,118, 24,118, 78, 43,232, 82,106,218,118,222,181,109, 74,203,197,188,107,219,163,197, 98,181,
-156,117,169,155,205, 83,219,116, 90, 36, 16, 60,127,117,241,151,159,126,126,179,222,132, 64,132, 28,136, 66, 19, 81, 49, 48,251,
-114, 80,136, 49, 48,153,218, 88,242, 56,244,215,140,179,210, 18,226,163,  7, 15,139,106, 76, 93,151,162,245, 61,168, 14,162, 17,
-195,118,183,123,246,242, 98, 44,195,172,235,218,208,206,186,118,209, 53, 93,219, 17,232,213,205,205, 21, 92,205,187,217,139,139,
- 43, 34,186,190,187,157, 55,237,195,123,103,127,249,217,103,185,212, 95,249,224,219, 33,132, 71, 39,103,219, 50,124,115,254,188,
-239,135, 89,215,221,174,239, 62,251,250,233,118,232, 17,200,  4,231,221,226,216, 65,106,132, 34,146,139,248,103,146, 13,128, 25,
-  0, 65,166,201,149,195, 77, 85,197, 14,206, 73,111,  6,138,105, 27, 40, 80,136, 49,168, 26,171,  9,104,  8, 78,102,155,188,170,
- 98,246, 79,126,250, 51, 41,195,175,127,240,173,213,234,120,232,119, 93, 59,159,119,203,192,225,201,211,103,169, 13,167,171,179,
-118,209, 52,105, 86, 74,169, 98,219, 60,156, 28,175,252,119,217,239,247, 20,210, 88, 49,198,208,239,135, 86,165,137,225,197,229,
-171, 97, 44,177,105,  9,185,101,124,248,198,187,130,225,110,232, 63,123,121,253,241,159,125,242,245,179,167,219,221,102, 63,140,
-158,218,218,230,140,104,196, 20, 34,197, 20, 73, 77, 69,212,164, 31,107,206, 69, 13,246, 57, 35, 98,191,223, 21,147,126, 95, 69,
- 11, 83, 56,154,207, 56, 76,152,219,147,163,238,222,106, 89, 10,222, 91,118,203,197,252,193,217,241,195,179,211,123,171,249,195,
-211,147,197,114,149,154, 36, 34,109,147, 40, 54, 98,128,  8,217,216, 60,114,  3, 70,200, 82, 20,  1,186, 89,151,199,106,102,192,
- 16, 66,128, 72, 53, 23, 54,224, 64, 68,193, 16,173,106, 41, 37, 15,121, 62, 91,148,106,145,162,170, 43,162, 42, 17,206,186,110,
-  0,147, 90,192, 64,212, 40, 50,  7, 52,211,172, 85,171,112, 76,132,196, 33, 72,205,181, 20, 10,193,183, 95,  8,163,234,168,136,
- 76, 33,  4,241,203,164,100, 87,247,161,169,146, 33, 81,162,  8,181,142,109, 66, 64, 26, 11,214, 42,181,  8, 49, 27,154, 33,228,
-156,209, 32,117,141, 84, 41,121, 52,209,118, 49,203,163,136,214, 24, 35,167, 84,197, 47, 79, 77,173,217,233,101, 76, 68,161, 21,
-201, 98,226,224,213, 72, 60, 61,244, 17,137,153,153,  9, 33,184,166,195,113,254, 62, 50,128,195, 10,168,167,  2, 17, 92, 44,106,
- 64,134,128, 24,216, 23,181, 15,196, 92,  4, 49,227, 41, 15,238,132, 70, 67,  0, 53,213, 10,134,138,138,232, 62, 29,114,132,133,
- 31,183, 86, 20,105,218,214,  5, 68,100,223, 24,155, 16,196, 94, 92,197,224,  4, 81, 71,  2, 76,165, 66,205,197,144, 25,105,  2,
- 35,128, 10,226,106,181,232,183,155,229,124,102, 86,164,136,119,197,171, 78, 64, 31, 79, 33,162,  1,160,104, 57, 52,205, 61, 65,
- 67, 54,173,197, 78, 43, 10,  0,106,104, 89, 21, 92,143,168,238,163, 65,226,134,136,230,136, 56, 91, 50,  6,210,170, 37,143,142,
-185, 81,201, 76,102, 90, 47,206, 95,125,245,228,252,225,163,247,255,237,127,231,183,149,160, 14,229,118,179,190,189,122,117,113,
-254,108,179,190,235,135,108, 64,143, 30,189,253,246,219,199, 77,211, 93, 95, 95,212,146,219,182,  1,177,174,155, 49,147,154, 13,
-187,126, 40,165,105,154,  7,247, 31,222,220,222,108,182,219,253,110, 44, 34, 77,227, 90,  3,237,135,190,106, 29,179,128, 65,138,
-145, 65, 13,209,140,170,149,170,181,142,238, 72,179,144,194, 56,150,205,110,159,115, 21,213,229,108,118,180, 56,138,145,138,214,
-190, 31,183,251,126, 24, 71, 66, 45, 21, 20,212, 53,208, 93,136, 77,219,166, 16, 74,213,126,216, 23,169, 78, 11,237,135,236, 43,
-204, 34,213,135, 49, 85,172, 40,168, 34,242,172,101,106,211,204, 91,172,232, 11,108,  0,140,145,192, 16,137,137, 76, 13,232, 80,
- 25,186,163, 67,132,  0, 74, 85, 64, 77,129,123,195,245,126,215,140,195,142,131,145,  5,164,197,108,121,239,244,200, 99,145, 77,
-228,174,235,102, 41,205,102,221, 98,182, 80,145,167,175, 46, 74,205,169, 73, 82,242, 62, 15,140,100,189, 79,194, 17,153, 16,128,
- 57, 57,  2,187,212, 98,166, 82,139,112,232,102, 75, 14,129, 12,112,142,166,186,156,  7, 32,172, 34,  4,120,117,123,219,143,125,
-155,210,209, 98,181,237,247, 87,235,219,219,245,250,225,201, 81, 81,120,121,125,221,165, 48,235,186,187,205,221,110,191,191, 94,
-239,154, 16,179,214, 89, 59,187,119, 28,175, 55,235,237, 56, 50,192,151, 47, 94,236,250, 65,196,206, 47,175,119, 99, 38,228,163,
-249,252,193,217, 49,152,150, 90,251, 62,  3, 76,187,230,190,172,101,  4,  2,168,158, 55, 35, 48,122,109,246, 37,133,106,  6,100,
- 80,  1, 81,205, 55,242, 65,141, 14, 42,131,130,166, 85,213, 55,255,196, 99,201,  6,  1,139,232, 31,126,244,115,197,240, 55,126,
- 48,187,127,118,118,121,115,119,181, 94,191,255,232,109, 76, 77, 95,237,122,125, 43, 82,219,166,171,165, 15,180, 60, 90, 30, 23,
-209,243,235,107, 82, 67,205,185, 82,155,186, 87, 87, 55, 15, 79, 79,  3,112,192,116,118,114, 86,  4,198, 97,255,217, 55, 95, 95,
- 14,218,127,250,252,217,213,229,102,191, 30,134, 60,140, 57,165,152,152,152,208, 24, 39,121, 27, 34,128,214, 42, 76,117,234,204,
- 26,153, 89, 85, 97,196, 90,106,100, 66, 36, 84,  9, 12,134,156,  2, 51,  1,147,  1,144,136,108, 54,253, 56,214,139,155, 93,209,
-162,  6, 99,206, 12,198, 28,212,180,  9,225,108,185,122,252,240,244,193,233,201,106,222,206,231,179,183,206,142, 79,143,142, 79,
-142, 87,145, 29, 90,167,179,229, 10,128,202, 48,  4, 50, 34, 52,177,196,161,212, 18, 57, 96,  8, 38, 46,207, 66, 49, 88,223,238,
-153,177,105,102,238, 89, 68,  0, 15,122,115,140, 96,134,156,192,140,209, 18, 49, 80, 64, 12, 20, 40, 80, 99,  9,164,102, 81, 65,
-135, 28, 68, 48, 19,  4, 82, 55,  2, 81, 52, 83,177,233,100,  1, 68,100, 86,169,165,140,136, 20, 98,148,146,213,147,166,  8,132,
- 98,  6, 68,156,102, 73,213, 36,143,224, 54, 15, 36, 17, 49,213, 16,162,176, 12,195,216,134,  6, 83,147,165,212, 92, 38,175, 30,
-  6, 70, 82, 43,129, 26,  5, 48,169, 76,228,127,  5,  2,231,146,217, 76, 81,220,228, 71, 70, 64, 28, 38,238,181,186, 26,233,181,
- 38, 85,108,114,136, 35, 34, 49,138,122, 52,134, 94,211,  1, 94, 51,207,188, 51,  6,158, 46, 58, 48, 99, 28,179,138,254,141, 71,
-  4, 53,104,154, 38, 52, 97,127,187,157,198,172,140,  6,122,200,160, 24, 34, 17,144, 65,245, 22, 92, 49, 37,100, 34, 84, 69,241,
- 65,235, 20,216,121, 93, 98,120,184,207,204, 76,114, 57, 58, 58, 94,223, 92,158, 28, 45,107,206, 98,202, 46,111, 69, 68, 83, 60,
- 44,149,226, 36, 95,192,  3,167,221,  0,209,127,229,233,128, 87,143,128,138,151, 54, 19, 88, 24, 12,196,166, 56,191, 85, 32, 16,
-173,160,  8,  8,129,  1,136, 67,104,204, 22,151,175,206, 63,249,232,227,152,102,239,126,231, 87,218, 24, 47, 46, 94,148, 82, 46,
-206,159,191,122,249,188,223,245, 72,225,173,183,223,253,224,222, 61,149,  2, 86,145,105,223,175,119,155,117,149,250,234,242, 85,
-191, 31, 24, 48,166,112,114,118,186, 60, 89,149,203,203,139,139,139,126,200, 57, 15, 33,198,148,  2,138, 86,173,253, 40, 99,206,
- 98,230, 44,134, 89,147,156,143, 80, 69, 75,201,181,230, 90, 51,  2, 41,192,126,200, 85,197,  4,218,212, 28,175,102, 77, 96, 49,
-221, 13,155,113, 83,242, 88,199, 82, 74, 45,204, 33,134, 48,150,222,192,  0, 83,215,117,206,157, 42, 82, 76,140,155,152,112, 70,
-104,132,176,219, 13, 96,176,181,253,186,212, 34, 82,157, 45,129,236, 42, 43, 67,243, 44, 44, 59,185,223,133, 11, 30,175,147,154,
-205,212, 42, 19,250,198, 28,152,127,198,148,145, 49,160,170,198, 16, 23,243,238,118,179, 17,  0,  2,  5,195, 44,178,235,247, 39,
-101,214, 54,237, 56,150,161, 14,227,144, 47,197,196,  4,192, 82,140,  6, 22, 67, 84, 48,239,191, 22,176,  8, 68, 76, 42,162,181,
-130, 97,201, 91,175, 43, 85, 21,  9,168,232,200,149,134,253,232,215, 76,160, 24,130, 33, 68, 12, 77,140, 68, 72,204,111, 52, 15,
- 13,196, 41,196, 93,104,  1,244,203,231,207, 75,173, 99,201,121,236,115,201, 99,169,155, 33, 63, 60, 57, 93, 45,102,231,215, 23,
-199,139,163,148,226,147,243,203,237,176,219,238,134, 64, 68, 72,217,138, 55,233, 12, 97,172,217, 12,115,169,165, 10,162,  2,210,
-235, 74, 82,201,211,199, 64,  0,162,158,230,125,189,188,225, 82, 31, 99, 38,247,186, 43, 40, 35, 24,130, 50, 18,133,156,  7,169,
-197,124, 40, 69,  6,132, 38, 96, 12, 96, 70,  6, 49,134,255,235,211, 47,111, 54,235,127,237,119,126,123,214, 52,251,166,219,238,
-119,203,174,235,139,169,148,221,238, 70, 49,214, 82,204,140, 98, 88,223, 93, 15, 67, 47, 34,109, 12,243, 89,119,180, 88,222, 59,
- 89,237,134,124,181,219,127,250,245,167, 95,159,191,120,121,187,239,115, 30,139, 84, 19, 38, 92,204,103,  4, 60,107, 19, 25,136,
-169,137, 78, 10, 11, 53, 69, 52, 53,246, 97,156, 47,143,219, 68, 15,156,  0,220,170, 22,244,150,  0,  0, 32,  0, 73, 68, 65, 84,
-104,134, 88, 85,165, 90,145, 10,  2, 98,101, 32,138, 16,  8, 33,139,  0,193,176,173,  8, 18,  1,136, 48,166,104, 64,106, 82,178,
-222,150, 97, 55,142, 79,175,111, 14,200, 29,139,196, 72, 56,159,205,151,109,211, 54,241,116, 49,187,119,118,122,182,156, 31, 47,
- 22,199,171,197,209, 98,182,152,207,222, 56, 59,109,231, 29,  1,  6,  4,140,193,185,134,125,206, 90,243,217,217, 49, 82,200, 37,
-179,  9,  5,156, 86,141,106,225, 24,151,171, 48, 14,161, 12, 99, 21,137,238,147,180,232, 78,104, 68, 34, 16, 53,247,131,177,170,
-163,149,221,144, 77,234, 90,113, 68,162, 32,181,212,154, 67, 68,  7,232, 35, 18,197, 38, 16,214, 58,150,226, 75, 50,  8,  0, 82,
-170,107,227,192,208, 84,129, 12,204,128,217,106, 97, 12, 49,  0, 18,169,  9,  1, 26,147,169,168,136, 79,169,  1,185, 74,  5, 19,
-160,  0,198,  6, 86,198,130, 44, 33, 68,  1,208,126,175,181,112,228,169,186,  5, 85, 67,114, 61, 29, 77, 81,152,131, 30, 69,241,
-181, 78,122, 82,231, 49,145,122, 65,233,116, 35, 87,251, 57,251,104, 90,213,153,174,224,132, 32,134,132,120,112,126,148,113, 44,
-227,  8, 96, 80,205,124,137,106,250, 12,211,148, 44,157,104,118, 82,171,146,239, 37,185,148,152,204,137,163,224, 20, 89, 95,  3,
- 86,197,  9, 55,138,166,146,230,139,171,155,103, 82,134, 92,202,  4,137,124, 29,173,157,  6,  4,234, 26, 97, 38,  4,155,136,100,
-126,196,155,218, 68,113, 35,115,189,217, 47,214,230,192,125,223, 64, 46, 11,192,105,209,219, 87, 38,114,149, 50,148,126,188,253,
-236,147,159, 14,195,240,238,183,190,179,156,207,175,175, 94,124,115,115,121,125,117,181,223,238,114,174,247, 30, 62,252,238,247,
-126, 16, 83, 35, 37,223, 94,191,122,245,242, 85, 41,117, 55, 14,155,221, 78,139, 52, 77,138, 33,164, 20, 83,211,132,200, 47,207,
-207,215,235, 53,  0,198, 16, 23,243,102,143,176, 27,246,227, 48, 22, 17,239,247, 17, 97, 36, 14, 28,156, 97, 93,160,140,217, 65,
- 50, 90, 69, 74, 45, 34, 86,  1,186, 16, 87, 93,203, 76,129,121,187,223,109,182,217, 12, 66,136,181,202,182,239,157,195,188,235,
-247,110, 38,105,155,102, 22, 19,209,  4,189, 83, 21, 19,147, 90,119,227,222,115,179,155,221,126,172, 32, 90,247, 67, 53, 82, 54,
- 50,  0,197,226, 49, 90,246,131,123,210, 54,170, 34,130, 24,240, 68,110, 32, 81,241,167,178,203, 11, 13,  8, 76, 77,249,117, 10,
- 15, 21, 45,164, 24,198, 82,  1, 98, 32, 68,  0,145, 90, 74, 77,169, 34, 26, 42,186,133,109, 28,234,245,230,238,209,253,147,239,
- 62,126,115,189, 27,231,179,213,237,246,246,234,246, 14, 24, 71, 49, 70,  0,196, 38, 38,100,242,111,129, 42,  1, 22,154,238,149,
-117, 43,142, 24,131, 73,109, 22,136, 41, 36, 14, 76, 28, 67, 10,145,188,158,157,181, 73, 83, 10,129,143,142, 79, 68,106,174, 53,
-231,113, 24,199, 82, 43, 82,  8,  8, 95, 62, 59,191,222,172, 95, 93,222,169, 42,113,152,117,109,192,144,152, 51,100, 52, 55, 78,
-  0,161,144, 37, 10, 68,149, 24,107,  5,159,239,131,190, 14,126, 77, 22,176, 73,201, 62, 29,238,238, 93, 82,241,156,177, 34,152,
- 41, 16,  8, 64,173, 70, 64,232,203, 53, 54,129,237,212,204,196, 38,163,197,  4,214, 69,  6,248,233,147, 87,252, 39,127,246, 91,
-223,121,119,222,206,  2,242, 80, 75, 30,135, 89, 55,159, 47, 79,119,195,158, 57, 94,173,183,  5,104,213,182,219,102,119,118,239,
- 29, 12,233,118,179,249,163,143, 63,253,242,252,242,197,213,205,213,102,189,222,237,252,175,155,167, 24, 83,138, 64, 41, 68, 80,
- 51,156,102,161,  7, 42,147,203,233,166,175,154,255,199,243,120,132,128,132, 38,147, 73, 14,167, 64, 51, 16,146,248,193,133, 20,
-  0, 64,173, 98, 45,185,104,  5,166, 48,228, 28,189,199, 81, 68,188, 48, 80, 69, 83, 64, 14, 14,135, 64, 42,126,220,170,230,156,
-215,160,151,235,205, 55, 47, 94,206,158,189, 26, 74,185, 92,223,161,200,188,233,150,243,110, 53,235, 22,139,217,114, 54,123,112,
-180,124,120,122,116,118,188,122,243,222,201,106,185, 76,132,243, 38, 49, 83,199, 93,149, 12,132,234,171,142, 30,190,119,115, 72,
- 16,198,192, 41,185,110,211,166, 64, 33, 33, 77,  6, 54, 53,156,  8, 29, 19, 13, 17,  1, 25,129,  8, 21,145, 25,188,159, 12,160,
- 74, 33,128,145,105, 29, 74, 97,  2,164, 88, 84, 77,196,164,114, 12,129,217, 12,213,109, 30,106,  8, 26, 67,210, 24,196, 84,165,
-128, 42, 48,  7,130,108, 19,103,212,227, 45, 90, 43,  0,144,243, 17, 12,131,115,135, 76,193, 60,140, 10,160, 90, 10, 18,  8,161,
-134,137,129, 55, 61,119,205,219,218,211,138, 19, 26, 34,123,139,  2, 93,129,230, 11, 74,132,211,197,195, 76,127, 17, 20, 63, 20,
-144,134,128, 76,175,117,126, 14,155, 48,  3,157,246,130,156,169,134,108, 83,199,199, 75, 84,157, 26,250,  6, 22,  2, 79,104,  1,
- 48,  6, 18,  1, 67,  3,154,182,136, 13, 77, 69,205,128, 34, 97, 32, 19,  1,  4,  6,252,248,163,143,122,  9,191,250,131, 15,215,
-155,157,155, 34, 16,217,192, 76, 42,  2,  2,138,151, 36,234,202, 78,244, 44,102, 69, 37, 15, 62,250,129,132,122, 48, 18,178, 47,
- 18, 79, 82, 43, 39, 12,195,  4, 71,211,221, 38, 87,145,188, 31,158, 63,253,230,217,243,167, 15, 31, 60,124,240,232,237,245,245,
-203, 47,127,118,113,125,117,173,104,139,197,252,209, 59,223, 58,187,247, 48,165,180,190,189,122,249,244,201,110,191,221,108,247,
- 23, 87, 55,185,228, 90,165,155,181,173,119,244,136, 16, 96, 55, 12,249,110,  8,196,243,249, 66,164,170,202,205,221,118,179,219,
- 35,122,239, 12,  9,137, 67,195,140, 62,219,204, 57, 15,101, 48,131, 90, 74, 41,101,204, 85,204, 66,224,196, 24, 66, 48, 67, 81,
- 25,203,168,166,251,177,144, 71,142, 76,198, 90, 76,193, 80,199,162,136, 12,  8, 77, 72,145,120, 63,142,178, 23,100, 84,213, 90,
-197,212, 74,173,187,190, 18, 83,151,218, 77,159,199, 82,220,210, 11,  2,130,138,  7,143,138,223, 61, 21, 20,  1,176,170, 25, 41,
- 26,249,119, 28,136, 14, 66,117, 64, 35,  3, 51, 49,243,112, 18,142,165,150, 90, 42,134,212,198, 24, 66,  3,179,253,184, 38, 44,
- 12, 17,  9, 69,180,104, 45, 69, 92,175, 92, 75, 53, 48, 14, 52,107,218,  7,199,199,187, 33, 95,111,118, 33,118, 39,171,147,183,
-222,124, 20, 66,216,239,134,167,231, 95,207,218,249,144,199,245,110,211,132, 56,129,249, 28, 37,228, 66, 13,112,176, 10, 42,130,
-168, 88, 17,130,218, 35, 56,101,156,153,152,  2,  5,110, 67, 19,153,253,244, 15, 76, 13,209,114,121, 10, 75,  0,134,183,223,120,
-115, 24,198,  7, 15, 30,142, 99,217,236,119,227, 56,140,227, 88, 85, 12,160, 88,173,181,130, 89,173, 85,212, 11,246, 73,245, 32,
-106,  2,198, 52,237,115, 59, 25,210,212,136,176,138,231,205, 14,110,  3,159,255,136,248, 94, 30,129,  1, 24,  3,154,136,212,  2,
-104,132,216,  4,222,  7,178, 90, 96, 34, 19,250, 13, 11,171,170, 31, 17,204, 28, 99,252,248,217,121,174,229,111,253,181, 31, 22,
-145,245,110,211,166,214, 52, 31, 47, 22, 93, 10,253, 48, 70,228,156,235, 75,158,255,249,243,155,243, 31,127,113,126,117,185,217,
-141,213,252,173, 23,149, 26,152, 24, 88, 93, 65,105,230, 89, 53, 17,229, 80,192, 32, 87, 97,162, 10,224, 68,201,250,154, 30, 66,
- 72,  0, 33,134, 82, 10, 24,130,218,  1,244,135, 10, 96,165,154, 86,240,214,147,  2,187, 82,208,227,228,128, 85,133,201, 84,161,
-138, 11, 61, 44,139, 16,162,130, 89,  5, 37, 20, 21,  3, 16, 52,241,  5, 61, 70, 83,149, 82,208,148, 16,152, 49, 20,154,135,  4,
-209,  0, 97,168,117,123,115, 93, 47,174, 94,187,171,  8, 48, 16,221, 63, 89, 17,211,201,124,118,122,180, 60, 91,204,142,142,143,
- 30,221, 59,125,243,236,120,121,180, 88, 45, 86,243, 14, 99,  8,216,116, 50,155,249,141,170, 10,248,250,  8, 99,144,168, 86,213,
-204,141, 44, 72,156,  0, 76,164, 34, 29,206, 59, 85,166,  8,  6, 22,146,212,130,140,128, 36,106, 10,  3, 35,135, 38,162, 66,173,
-  2,170, 41,178,197, 56,228,140, 38,236, 70, 23,243,125,160, 88, 68,152, 29, 40, 25,212,143, 58,196,136, 36, 77, 35,101,212, 82,
-152, 57,164, 36,230,251,252,132,211,238, 10,131,  1, 51,107, 46,222,101, 33, 53, 38, 50,197, 96, 96, 40,134,126, 22, 19,146,136,
- 63,152, 21, 25,205,152, 13, 12, 14, 36, 69, 31,  5, 31, 96,144, 58,245,217, 15,184,223, 67, 86, 94,213, 64,144,  8, 29, 55,111,
-254,224, 81, 64, 37, 63,255,213,128,212,121,234,254, 83,112,194, 15,161,169,130, 33,  5,191, 31, 79,255,155,252,202,103,122, 64,
-210,160, 34,  2, 88,215,196,253,126,215,117,243, 16,200, 84,134,237,250,127,251,195,127,242,163, 95,250,246,180, 81,237,198,166,
- 73,135, 41,160, 70, 97,  2,  9,121, 89, 73,166,  8, 12, 19, 71,195, 84,170, 83,128,  1,200,192, 64,166,252, 59, 34, 18,161, 17,
-104,150, 93,159,199, 97,204, 99, 38, 10, 55,183,175,158,124,245, 85,205,195,106,177,220,220, 94,127,253,197, 23, 55,219,219, 89,
- 59,187,119,118,111,177,152,137, 98, 32, 94,223,188,186,185,186,190,184,190,188,185,219,238,199, 65, 68, 18,115, 10, 60,159,117,
-204, 88,198,108,208,152,122,152, 23, 25,217, 84,183,219,254,160, 35,136, 71,139,249, 48, 14, 99, 46, 76,196, 20,153,160,150, 50,
-214, 90,164,170,129, 26,228,113, 44,181,136, 72,147,146,145,239,153,217,110, 24,134, 97, 68, 98, 98,146, 42,197,106,195,201, 64,
-115, 81, 53, 11,145,170, 98, 76, 92, 75, 54,131,221,208,111,  7,155, 86,149,145,246,251,126, 63,148, 92,165, 40, 18,105,224,184,
- 31,199, 42,  2,166, 85,108,114, 93,130,  7,213,  8,  0,164, 24,178,161,122,186,217, 37,247,102,100,193, 51, 88,138,135,159,140,
-190, 51,206,190,237,226,168, 69, 68, 64, 29,242, 16, 57,117, 41,201,124,182,222,237,  0, 36, 33,  3, 64, 63,142,  8,180,104, 91,
-241,244,172, 41,128,198,192, 47, 46,175, 63,120,252,230,119, 31,191,121,219,151,111, 61,126, 12,132,203, 89,151,  5,111, 54,155,
- 71,247, 78, 63,127,242, 13, 66, 56, 61, 58,189, 89,223,237,250, 97, 49,107,134,154,  1,145, 17, 99,140,  8,174, 43, 37,239,141,
- 28,214,169,124,155,198,178, 20, 27,109,143,123, 79,192, 50,113, 10,145,153, 99,216, 51, 83,160,200,137,  3,211,106,177,162, 21,
-189,129,247, 16, 88, 84, 75,205,162, 58,142,227,102,187, 45, 67,185,237,183,231, 47, 95,249,208,195,247, 60, 68,100,130,158, 34,
- 32, 98,209,105, 39, 92,193,180,122, 28,  9,145,144, 12,216,215, 85, 17, 16,125, 39,127,106,245,152,  2, 56,174, 88,213, 11, 38,
- 67, 62,240,183,157,172,162,244,255, 83,192, 19,  2,  6,250,236,252,114,252,147, 63,255,253, 95,249,165,183,238,159,130,192,171,
-205,245,197,205,237,249,122,251,213,203, 87, 69,232,118,191,239,115,201, 37,251,166,249,178,153,165, 24, 24, 33,103, 85,  0,243,
- 29,124, 68,166,102,218,209,  3,  5,110,204,132,136,167,166,  3, 64, 38, 82, 21, 54, 80, 83,168,128,137,216, 47,112, 19,226,207,
-215,216, 93, 91, 12, 14,244, 16, 80, 49, 35,  0, 49, 51,172, 85, 66, 17,241,  4,182,  1,154,137, 10,  0,105, 53, 69, 83, 70, 30,
-167, 39, 11, 38,112, 21,140,185,165, 34, 66, 64, 67, 17, 20,213, 41, 80, 80, 75,169,  5,  9,  3, 19,138,129,  0, 19, 70,  6, 21,
- 70, 66,  3, 45,162,219,126, 24,115,125,121,117, 91,164,238,115,110, 67, 88,204,230, 93,234, 24,117,214,198,163,197,236,222,209,
-209,227, 55,238,157, 30,173,190,243,248,209,131, 71,111,213,177,134,182,227, 96, 76,134,196,140,172, 68,160,122,128,153, 35,135,
-224, 27, 82,136,196, 33,152,161, 22,225, 38,197,212, 14,227,222,170, 34, 35, 35, 19,  6,201,130, 12, 72, 64,136,165,138,106,230,
-233,161, 99, 49,112,169,140,117, 20,171,  4, 72, 24, 69, 65, 64,240,176, 82,175,102,181, 10,115,192, 48,205,112,  3,153,255, 38,
-147, 34,219,212, 12,198, 97, 48, 80, 36, 36, 74, 50, 22, 51,157,216,102, 41, 68,117,108,174, 42, 78, 83,121,244,  1,166, 29,144,
- 94, 96, 54,149,101, 30, 81,199,137,113, 10,204, 33,198,169,135,126,248,204, 57,231,  8,253, 92, 62,  4, 27, 65, 77,173,162,103,
- 43,189, 28,128, 67,237,112, 16,209, 34,177,211,241, 15,170, 12,157, 40, 35,254,179,166,131,  8,136,136,  3,254, 31,255,232,127,
-253,  7,255,227, 63,164,216,164, 38,157, 28, 31,175, 88, 16,219, 24, 83, 81, 45,185, 56,159, 18, 76,  8,193, 81, 97,160,134,128,
- 42,117,194,227, 33,169,186,254,113,226,176,138,249,121,143, 90, 11, 34,113, 76,206,115, 26,199,186,223,247,227,126, 44,181, 74,
- 25,251,126,251,242,249,147, 79,191,248,249,131,179,251,128,118,121,117,211, 38,142,177,121,120,118,186,104, 23, 22, 35, 26, 45,
-150,179,126,191,125,242,228,249,211, 23,231,165, 84,  4,104,154, 38,133,224, 53, 81,205, 82,217,220, 37,109,104, 34,121, 55,142,
-238, 53, 79, 41,181,177,203, 99,238,247,187, 77,191, 39,230,166, 73, 34,138,104,185,228,109, 63,228, 82, 60,166,201, 33,112,  8,
- 41, 70, 67, 41, 85,107, 17, 19,  5,196, 90,197, 24, 85,101,216,143,132,148, 82, 18, 17, 67, 85, 85,173, 54,100,185,221,110,230,
-237, 44,165,192,158,201, 67,205, 37,239,246,121,189, 29,198, 90, 29,254, 30,208,181, 12,154,221,239,131,147, 62,195,247, 13,139,
-105,240,192,135,161, 42,208,235,239, 51, 26, 26,162, 55,190, 29,244,140,206,154, 83, 68, 12,  7, 13,  0, 29, 54, 45,188,177,144,
- 75,  1,196,101,215, 17,242,110,191, 29,165,  6,160, 90,  4,147,229,154, 83, 19,177, 90, 21,245, 36,234, 80,228,231, 79, 95,156,
- 30, 45,255,213,127,233,239,214,177,254,241, 95,254,197,217,209,114, 55, 14,167,199,171,227,227,227,250,229,215,199,179, 21, 34,
-174,119,251,239,127,240,189,199, 15, 31,156, 30, 45,215,251,253,159,254,213, 79,246,227, 78, 69, 68, 37, 48, 85, 17,166, 72,165,
- 32, 34,  5, 33,  3, 12,140,196,222, 54, 49, 68, 53, 45,162,163,100,  2,  2, 68, 66, 76, 20,128, 49,112,100, 34, 36,238, 82,106,
- 98,226, 16,  3,117,204,164,243,197,189,147,123, 49,144, 33,230, 92,174,174,175, 46,110,174,155, 20,  8, 97, 44,165,168,152, 23,
-216,106,132, 88, 85,137, 48, 48, 87, 44,  8,192,  4, 34,126, 11,115, 20, 48, 16,  0,241,161, 39,111,128, 76, 28,  8,171,131, 66,
- 32, 48, 87, 21, 21, 67,159, 50, 33, 25,184, 31, 97, 82,197, 35, 96,176,160,  0, 95,156, 95, 17,252,244,131,183,238,127,254,226,
-234,197,122,125,187,217, 87,129, 20,120,222, 80,140,141, 59, 44, 49,160,169, 41, 26,169,103, 46,167,212,243,129,134, 58,149,183,
-  0,  8, 90,212,144,  9,226,164, 89,166,160, 42,168,197, 12,128,140,170, 33, 84,176, 96,213, 87, 79,212,  0, 80,139, 74, 34,244,
-193, 34,121,131,222, 43,  2,240,130, 89, 20,148,  0,201,231, 56, 62,208,211,137, 99, 12,254, 88,159,228,157,  6,102,204, 76, 82,
- 29,224, 94,173, 86, 53,  2,100,128, 97, 24,157, 83, 41,234,144,209, 82, 85,  0, 16,148, 16, 60,219,173,168, 98,218,136, 26, 49,
-144, 80, 66,103,102,170, 89, 29,213,246,235,225,229,205,221, 79,190,252,166,  9,105, 24,243,127,248,247,255,133, 95,251,157, 31,
-221,222,109, 75,209, 50,150, 49,143,232, 61,182,195,135,188,153,205, 99, 51,179, 42, 76,202,156,212, 76, 74,230,192,  6, 25, 12,
-138,148, 16,131,144, 18, 64, 21, 53,172,212, 54, 40,181, 84,149, 98, 33, 48,  7,158,234,  0, 10,166,142, 86,111, 69, 51,146,119,
- 16,176,141, 51,  1, 45,146,107, 29,  3,199, 24,147, 65,213, 42, 85, 32, 53,141, 42,154,136,103,223,253,194, 77,129, 16,217,140,
-144, 76,171,114,215,120,136, 54, 16,134, 34,  3, 81,152,122,213,236,  4, 94,  7,225, 78,254, 61, 56,200,142, 15, 14,105, 31, 59,
-123,222,157,224, 53,113,221, 38,143,210,129,248,168, 48,  5, 40,125,111, 85, 39, 45,134,175,227,185,228,101,242,126, 28,160,141,
-168,134,  1,188,197,133, 19, 80,223,237,127,226,239, 19, 78, 19,134, 39, 95,124,250,223,252,119,255,195,203,157,158, 46,106,190,
-189, 59,127,113, 94,213,126,251,215,126,253, 31,255,225, 31,190,241,248,189,119,223,125,171,150, 50,141,179, 14,146,245,137,227,
- 75,236,191,254,107, 96,217,107,248,  0, 79,219, 22,  2, 20, 84,160, 31,181,228,220,239,198,113,232,107, 25, 17,116,236,119, 47,
- 47, 94,125,252,201,199,219,125,158,207,103,151,183, 55,100,120,188,154, 47,230,139,118, 62,107,218,212,197, 48, 86,123,117,121,
-241,252,167,231,235,245, 54,231, 28, 82,211,166,196, 68, 49,177, 40,  4, 98,  3, 81,177, 24, 89,198,220,247,195, 68,108, 98,236,
- 82,  7,  8, 67, 25,174,111,111,199,113, 68,228,174,105,192,108, 55,246,251,190,119, 38,143,136, 49, 97,138, 13,115,100, 70,  0,
- 27,242, 40,213,218,216,142, 50,172,183,219, 10, 74, 16,192, 80, 84,221,150,161,112,104, 22, 82,192,132,  9,108,185,176, 54,198,
-162,101,172,197,128, 25,240,118, 51,108,251, 49,151,202, 19, 77,194, 12, 44,155,  5, 64,158,112,160,238, 46, 87,247,110,177,239,
-171,137, 18,163,169,235,139, 12,192, 64, 20,144, 39, 49,139, 29,  2,170,160,135, 10,143,144, 21,225, 32,210, 68,  5, 35, 52, 96,
-132, 90,242, 94,164,107, 82, 10,171,109,223,151, 82,134,113, 92, 52,211,250,120, 64,170,128,165, 22, 64, 20,213,171,117,255,224,
-222, 89, 25,182,159, 63,121,  9, 24, 62,120,255,219, 79,207, 95,198,148,182,235,245,188,235,152,224,226,230,230, 91,111,189,245,
- 43, 31,126,235,231,207, 94, 60,126,244,240,114,189,126,247,237, 71, 47, 94,190, 66,176,243,171, 11, 10, 60,140,153,188, 87, 34,
- 74,132,134, 24, 34,  7,160,144,  2, 96, 32, 48, 38,118,186,180,  6,243,225, 66,150, 34, 21,136,138,155,  6,118, 59, 12,156, 56,
-114, 36, 10, 41, 70, 98,134,144,  9, 21,113,214,181,111, 60,124,120,239,228, 76,172,168,193,174,239,135,126, 95, 75, 25,203,184,
-239,199, 82,107, 24,177,152,223,202, 15,223, 28, 38,158, 32,214,200, 60,161, 51,166,164,177, 63, 32, 85,152,  2, 17,171,100,  0,
- 99,114,229, 24,160, 65, 64, 84, 51, 69, 50,167,234, 57, 22, 30, 13,209,218, 72, 63,127,117,251,217,249,229,118, 44,140,216, 53,
-177,137,254,117,101,191,127,218,164, 86,152, 24, 36, 72, 78, 37, 65,125, 45,173,113,178,176,139,107,204,124, 21,190,170,132, 24,
- 84, 39, 38,171,248,147,200,195,121,  6,136, 36, 34, 41,113, 29, 43, 48, 51, 18,  0,166, 64, 67,241, 69, 70, 35, 66, 81, 16,177,
-170, 83, 46,131, 24, 69, 64,192,212,109,217,224, 56,  0,212,  9,248, 14,136,152, 85,  3, 64,203,140,211,210,185,169,184, 26, 20,
-128,120, 63,150, 41,185, 98,134,211,243,233,176, 22,233,  2, 20, 64, 81, 80, 21, 15, 95,123,159,197,135,  7,185,102, 85, 83, 21,
- 52,232, 98,156,117, 77, 74, 60,239, 58, 20, 11, 68,221,162,129, 85, 82, 85,145, 98,170,165,148, 90, 93,  3,179, 23,201, 28, 26,
- 17,180,113, 67, 28, 24, 88,242, 32,170,168, 18, 82,139,  6,160, 98, 86,153, 25, 12, 24,188,167,129, 20,131,199,200,252, 81, 94,
- 85,  3, 98, 12, 49,107, 38,136,  0,232, 47, 81,  5, 81, 21,  4, 11,222,193, 69,168, 50, 41,221,171, 20,166, 38, 48,138, 59,196,
-196,164, 86,  4, 35, 52,226,  0,  0,200,177, 74, 77,104,  4, 22,  0, 80, 13, 77,196,199,189, 32,250,250,189,245, 59,184,136, 76,
- 77,138,  3, 23,  0,180,122,197, 25, 56, 58,  7,206,251,245,228,117, 37,251, 76,107,106,250, 76, 50,107,  4,164, 56,189,244,  6,
-135, 65,187,  7, 86,  4,129, 16,  9,216, 38,135,146, 55,218, 39,162,  1,121,208,157, 48,170,137, 63,117, 76,245,241,251,223,253,
-123,255,242, 31,252,215,255,253, 63,116, 73, 66, 12,109, 54,249,217,151, 95,125,244,201, 71,127,227,247,126,255,251, 31,126,235,
- 58,103, 80, 33,226, 64, 92, 65,225,176,185,229,221, 68,  5,163,105, 22,236,104, 58, 36,160,172,  2,162, 34, 92,139,149, 82,182,
-155,219,190,223, 90,173,196, 36, 82,159, 62,249,230,203,111,158,172,183,251,132,180,154,117, 90, 43,165,248,222, 59,111, 29,159,
-158,206,186,217,122,189,126,242,226,197,205,245,245,122,187, 99,  3,111,132,206,187, 24, 99,104,218,  6,145, 68, 10,146,186,118,
-217,207,229, 90,196, 64,  3, 48, 16,182, 41,110,242,122,183,223,101,209,200,161,105, 58,211, 58,228, 97,179,221, 86,169, 96, 24,
-136, 99, 10,129, 25, 13, 69,171, 65, 21,245,207,143,246,253,120, 43, 27, 85, 43, 34,128, 40, 38,  0, 16, 41, 18,123,161,140, 38,
- 86,138,204,187,121,219,117, 82,235,118,  8, 23,151,151, 64,156, 98, 36, 47,196,144, 76,209, 73, 31, 38,  0, 96,242, 11,242,130,
- 78,195,118, 63,174, 81,236, 96, 46,124,221,181,  3,143,114, 79, 80,185, 73, 81,110,224, 31, 36,251,133, 96, 23,196,227,183,230,
-192, 31, 23,100, 29,122, 23,  6,186, 27,251,200,113, 57,155,143, 57,239,199,190, 47, 37, 40, 35, 66,228,144,179,  0,216,209, 98,
-121,124,180,124,235,254,131,211,227,249, 59,143, 30,125,253,244,229,241,106,126,117,115, 99, 64,243, 38,237,153,110, 55,155,253,
-176, 59, 91,172,126,240,157, 15,190,124,246,124,183, 27,186,118, 86,164,158, 95,190,236,115, 63,140,101,170,228,204,198,154, 85,
-100,179,223,139,  2, 49, 53, 49, 52, 49, 49, 97,  8,132,196,129, 25,145, 66,226, 36,193, 27,122,190, 66,229, 25, 98,  1, 33,196,
- 92,118,144,  1, 21,140, 56, 16,197, 20,  2,167, 38,  4,171, 89,192, 76,141, 57, 18, 26, 50,117,109, 71,243,165,106, 21, 53,  5,
-171, 89, 74,201,253,216,247,195,176,222,238,110,215,119,185, 31, 70, 51, 50,100, 14,106,224, 59,223,174,238, 33, 35, 12,228, 23,
-231, 64, 72,  8,204, 60,214,  2, 64,132,168,206,237, 10,225,224,134,155,164,165,222,252, 36,164,121,162,106, 36, 10,106,224, 62,
-107,158,250,147, 10,230, 56,247,105,238, 45, 86,153,153,144,  1, 21,  1,130,129, 78, 52, 51,159, 15,168, 26,138, 78,192,121,240,
- 25,130,169,249,202,161, 40,120,202,  7, 16, 20,170,148, 32,147,177, 27,  8,153, 25,153,235, 96,168, 94,195, 24,120, 58, 14,192,
- 39,177, 42, 38,166, 65, 39, 85,146, 18,128,  0, 51,153, 30,160,234, 62, 79, 86, 45, 85,109, 42, 11,209,192,162,151,245,160, 38,
- 85,112,210, 63,192, 52,192, 38,191, 96,190,254,248, 33,162, 34,  0,161,122,108,  0, 13,205,249, 42,182,207, 25,181,154, 90,211,
- 36, 81,169,185,214, 34,226, 21,111, 21,164, 98,106,104,170,102, 33,  4,102, 87,195,  1,152, 32,100, 65, 52, 18, 52, 21,149, 92,
- 70, 83, 20,  0,217,141,218,151,217,124,142, 20,164,142,158,220,101,118, 81, 19,136,178,138,170,168,128,166, 24,  1,200, 16,152,
-130,104, 65,162, 67,116,219,199,  6,164,104,102, 24, 41, 16, 83,197,172, 62,215,  1, 69, 34, 15,215, 35, 19,  6, 12,196, 24,130,
- 22,  1, 80, 38,139,161,  1, 19,172, 37,248, 16,  5, 12,  0,217,  3,141, 70, 19,  3,192,251,240, 96, 64,254, 15,242,181, 86, 64,
- 35, 50,127,  5, 19,193, 33,133,110, 98,194,132,248,250, 94, 76, 62,125,  3, 87,159, 78,189,243,169,103,228,231,  2, 78, 92,245,
-224,162,130,234, 48,162,195, 93,219, 76,200, 67,144,164, 40, 83,215, 29,125,252,139,  0,156,126,227,183,126,247, 39,127,245,217,
- 95,126,121, 62, 22,  5,172, 98,245,249,179,175,175,119, 35,254,223,127,252,175,252,139,191, 23, 17,170,  1,  0,138,  1, 35,187,
-125,220,107, 34, 39,200,212, 90, 76, 32,117, 45, 49,155,218, 80,180,100, 21,195,177,223,110, 54, 55,195,230, 70,181, 16, 52, 24,
-224,213,249,213, 23, 95,124,241,234,246,246,236,228,232,209,189,123,254,140,185,127,239,228,241, 59,239,150, 90, 63,254,228,147,
- 39, 47,206,183,155, 45, 50, 53,169,233, 98,116,109, 83,219,134,200, 41,196, 84,107,221,247,123,169, 38, 32,104, 48,150, 44, 62,
- 22, 16,193,192, 49,165,128,184,221,237,247,117,156, 55,179, 46,145, 66,237,251,221,221,110, 39, 53, 35,133, 16, 98, 74,145,  0,
-106, 21,138,228,153, 76,100,220,237,251, 82,234, 56,142, 67,205, 67, 17, 52,240, 37,108, 71, 81,215, 92, 20,168,141, 12,  8,185,
- 10, 80,192,192,221,172, 67, 83,142,169, 31,199,190, 31,  1,145,137,170, 74,155, 82, 79, 67, 21,144,170, 96, 54,249, 33,  0,  0,
-176,250,136,115,218, 52,112,150,160, 47,240,201,107, 78,  4,161,153, 84, 18, 52, 70,240,110,236,228,142,240,176,  7,152,107,214,
- 16, 84,125, 72,134,  7,110,219,107, 23, 35, 32, 98,128,168,162,131,230,211,213,252,141,120,180,222,236,171,  8, 87,170,117, 60,
- 93,173,254,218, 15,126,248,203,223,253,246,217,209,241,213,245,205,205,230,174,235,230, 63,127,242,205, 63,247,215,127,253, 39,
-159,126,129,  0,127,244,167, 95, 75, 41,187, 97,124,116,239,222,143,190,247,221, 24,194, 23,223, 60,249,240,219,239,253, 47,255,
-232, 15,127,254,252, 89,140,225,187,239,188,255,217,147,175, 36,151,181,202,221,250, 46,139, 34,113,147,218, 89, 55,107, 34, 65,
-213,106, 58,230,177,102, 25,139, 53,109,154,165,176, 94,103, 10,161,235, 98, 12, 33,134,164,166, 76,204, 20,220,  9,163,100,100,
- 17,  3,130,214,177, 74,174, 57,114,206, 28,183, 62,116, 34,  8,192,109, 19,230,179,217,241,201,106, 53, 91, 44, 22,139,197,114,
-217,164,132,224,208, 43, 37,166, 97,216,247,195,112,187,221,223,222,220, 92,222,220, 92, 92, 95, 95,223,221,109,118,187,113, 24,
- 21, 16,136, 34,154,130, 53,137,171, 26,249, 22,  9, 10, 81, 64,  0,102, 14,200,194, 64,170,  8,134, 85,  9, 95,231, 18,  4, 12,
- 98,224, 64, 80, 11, 18,128,  0, 84, 55, 60,160,209, 65, 81,227, 89, 55,  5, 83,180, 68, 36,102, 85, 20,193,200, 64,208,204,128,
-201,199,132,140,204,117, 20, 96, 68,196, 20,130,  1, 72, 17,181,233,140,  7,223,122, 12,  0, 78, 87, 55,200,165,  4,242, 46,196,
-116,133,102,132, 74,147,172,195,  0,101, 66,157, 24, 57,242, 89,  9, 95, 63,239, 41, 32, 84, 10, 80,242, 97, 68,230,119,  8, 52,
-213, 26, 83, 16,255, 98,147, 41,128,  2,  4,131, 38,165, 34,117,132,202, 24,188, 28,170,135, 91,188, 63,142,166, 63,168, 30,118,
- 56,209,196, 52,152, 41,138,104,201, 37, 48, 35,186,123,141,188,  9,129, 64,222,156, 48,169, 70,135, 46,238,228,150,245,184, 97,
- 48, 83,  4, 99, 99, 65,  8,204, 33,206,167, 35, 18, 76, 22, 77, 63,150, 50,246,165,102,  4,202,219, 29,161,174,142,143, 65, 33,
-  4, 78,169, 17,199, 67,233, 33,202,  2, 96,200,117,204, 68, 16,187, 14, 20, 84,132, 56,160, 66,213,202, 42, 20, 99, 84, 54,173,
-197,  4, 77,128,162,203, 41,  1, 45,181, 51,160, 70, 84, 17, 70,173, 89,148, 74, 41,  0, 86,198, 26,204, 44, 16,187, 88,212,  7,
-125,147, 74,148, 24,181,138,186,192,197,  5, 52,206,226,114,189,246,212,192, 57,204, 48, 13,167, 81,172,247,225,205, 49,188, 56,
-133, 61,217, 84, 16, 25,220, 71,240,186,181,232, 44, 80, 55,225,137, 77,115, 39,169,126, 11,161,224,240,107,179, 98,134,130,  8,
-200, 65, 93,  4,  8, 38, 90, 67,211,158,157, 29,133,111, 94, 50,113, 95,198,191,253,183,255,206,223,255,187,191,251, 31,255,167,
-255,217, 71,207,111,239,110,215,247, 79, 87,  8, 40, 90, 35,199, 73,176,164, 21,129, 28, 32,105,  0,134, 65,  8,106,  1, 85,200,
-185,236,247,125, 25,247,155,187, 43,169,125, 41,194,204, 99, 63,188,186,120,250,252,229,121,191, 31, 87,199,171, 31,125,248, 97,
-215, 70, 49,107,186,166,107,103,219,253,238,159,254,241,255,243,244,233, 11, 84,156, 47,218,163,213, 74, 75,165, 72,136,200,132,
- 41,165,192,156,115,222,247, 89,180, 26, 88,169,101, 59,246, 42,214,196,232,143,103, 64,146, 34,125,217,138, 89, 12,180,104, 90,
-209,124,181,223,229, 33,103,169, 76,212,181, 11, 87, 56,214,146,199,113, 64,132, 93,191, 51,128,174, 73,  6,160, 34,187,253,190,
-207, 85, 14,210,  6, 64,  8,136,200, 44,110,206, 50,219, 13,121,172, 18, 66, 56, 89,117,  0,  8, 68,203,249,113, 72,187,162,114,
-125,123,155,135, 33,  5,130,138, 33,193,201,114, 46,106, 85,178, 20,237,171,136,135, 66,193,  0, 72,138,137, 21, 15, 85,161, 17,
-128,232,180,220,172,  0,236,253,129,131,142,124, 10, 68,191, 70, 38,123,119, 21, 64, 13,244,160, 51, 68,  0,100, 36,100, 50,209,
-170,114,160, 80,184,  5, 27,  8,112,187,207,139,123,179,227, 85,216,238,119,106,150, 82, 60, 61, 57,249,217,151, 95, 32,193,111,
-252,234,175, 62,189,120,117,117,125,243,103, 31,125,244,  7,191,247, 55,193,240,234,230,246,110,183,101,179,211,147,179,251, 32,
-247, 79,206,250,220,255,244,203, 47,193,234,221,245,237,237,110,247,224,232, 56,197, 16, 80, 77,236,102,191, 55, 85,160,112,178,
- 88, 44,218,200, 33, 52,137,251,177,  8,212, 89,140,  2,154, 51,  0, 85,239, 39,109,246,251,237, 48,  6,226,227,197,114, 62,107,
-124,170,204, 68,196, 76, 72,145,137, 89, 72,200,145,135,196, 20, 34, 51,211,178,107, 87,179,249,209,209,124,217, 45,142, 87,203,
-  7,247, 78, 23, 71,171, 38,164,110,190,108,187,  6, 57,198,208, 32, 18, 51, 41, 96,238,119, 82,133,  2, 73,201, 67, 63,230, 50,
- 12,251,225,250,246,238,249,203, 23,215, 55,215,175,174,110,206,175,174,251,113, 44,181,108,182, 61,249,188, 36,155,169, 16,147,
- 78,155,241,147, 28,144,  2, 50, 51, 30,114, 16, 16,152,249,144,129, 64,245,224, 26,185, 43,141,208,  0,  2,130,  0, 25,  0,249,
-206,253,100, 34,  7, 84, 31,237,249, 56, 16,170,154,162, 69, 85, 67,101, 32, 19, 19, 81,102, 34,162,215,177, 31, 31,183, 76,236,
- 61,  3, 37,223,106,  3, 85, 13, 49, 32, 76, 19, 26,157,  0,124, 38, 82, 99,  8,136, 19,114,209,151,187,244,128,242,155,232, 49,
- 66, 58,177, 24,136,129, 92,202,  3,  8,234, 78, 47, 55,165,120,129, 15, 20, 27,166,202,125, 41,191,160,221, 30, 98,205, 94,205,
-  0, 26,  1, 16,177,128,248,  5, 72,204,129,184,160,134,  6, 26,136, 83, 72,204, 44,104,106, 26,152, 60, 48,231,135,149,233,193,
-241,  0, 24,188,154,240,198,254,244,  8,241, 50,  2, 85, 11, 76, 37,170, 17, 83,215,112, 23, 16,176, 19,145, 82,115, 85,232,251,
-141,130,201, 86,193,128, 56, 32,114, 12,129,145, 93, 21,146, 56,104, 67,138,106, 82, 69,192,197,132, 68,200,212,148,154,163,162,
- 25, 34,179,235,225,189,155, 69, 76, 41,118, 20,163, 26,128,168, 48,131, 48,162,184,160, 43,166, 24,124, 70,195,164,106,138,222,
-233,113,168,130,200,148,129,132, 26,220, 91,228, 23,187,105, 44, 64,240,122,156, 58,153,103,109,122, 49,224,208, 79,  7, 50,127,
-202, 50,  3, 18, 30, 72,147, 94, 19, 76, 18, 73,143, 87, 22, 53,156,150,152, 60, 41,139, 83,236,210, 59, 62,135,241, 45, 26,146,
- 11,124,  3,154,197,212,157,156,156,196, 16,108, 28,  9,237,195,247, 31, 47,239,191,253,239,255,187,255,222,215, 47, 46,222,184,
-127,154,165, 18, 34,249,146,147,191,201, 22, 20, 76,180, 42, 54,128, 73,209,198,220,247,187,245,110,123, 11,160,253,110, 43,181,
-214,113, 24,114,190,189,187, 27,246,187,167, 47, 94,222,237,199,119,223,124,248,230,123, 15, 30,156,158,238,199,129, 98,179,217,
-220, 62, 57,127,181,221,238,250,126, 47, 34, 71,243,101,140, 68,132,166, 48,155,207,129,212,239,190, 82,202, 48,228,177, 12,106,
-152,203,184, 31,134, 92, 74, 76, 77, 27, 83,206,185,170, 17,152, 47,103,167,148,128, 96,236,135,245,176, 21, 81, 69,136, 28,102,
- 33,229,156,183,253, 46,231,108,104, 12,160,196, 94,250,116, 77, 82,131, 82, 11,152,  6,230, 38,162,177,  9, 64, 46, 89, 68, 81,
- 77, 12,198,177, 20,145,249, 98, 53, 14,163, 24,204, 83,211,196,208,180, 29, 24, 50,208,106,182, 84, 49,  4,188,190,185,164, 16,
-131,  9,171,142,165,  0, 81, 96,142, 28, 79,219,118, 40,  5,  0, 57,  4,169,117, 44,165, 31,185,106,  5,133,125, 46,224,187,109,
-190,109,140, 24,152, 39,241, 49,144, 19,129,  8, 80,124,124, 98,102,  0,213,243,193,  2, 72,211, 12, 29,253,147, 86,157,169,239,
-233, 16, 80,  3,144,226,242, 94,149,250,205,249,171, 20, 82,100, 34,198, 93, 63,252,252,155, 39,187,156,111,215,155,245,110,207,
- 28,150, 77,184,184,188,250,209,135,223,251,175,254,219,127,240,245,243,167,219,221,240,214,131,179,229,172, 93,180,205,243,203,
-139, 79,191,220,236,198,225,151,223,123,175,214, 50,239,154,161, 31,158, 93, 92,252,197,231,159,143, 99, 65, 14,247,143,142, 56,
-134, 89, 10,226,254, 63, 32, 55,150,149, 34,175, 23,253,162,219, 19,  8,  3,179,175,153,148, 42,102,134, 25,  8, 81, 85, 82,106,
- 76,149,153,145,177, 73, 13, 17,182, 93,119,180, 92, 52, 41, 53,145, 17,177,140,117,135,253, 88,203,237,122, 29, 83, 76, 49,165,
-192,177,105, 98,224,182,105, 83,211,116, 93,155, 82,215,117, 93,136, 77,  4,167,225,116, 11, 64,169,245,222,155,143,190,243,225,
-135, 53,143, 67,223,239,251, 97,191,219,221,238,119, 55, 55,183,125,223, 95, 92, 93,157, 95, 92,188,188,188,185, 94,223, 14,227,
- 40,166, 82,235, 80,106,100, 98,167,222, 33, 50,162,168, 17, 25,161,138, 10, 57,196, 65, 13, 16,196, 27, 47,  6,  7,199,185,137,
- 11,196,167,131,210,200,231,  2,  7, 97, 41, 32, 86, 81, 35,216,245,  3, 35, 66, 12,168,130, 94, 68,136, 77, 20, 28,175,225,192,
- 16,216, 13, 11,  4,102, 98, 74, 58, 61,241,  1,212,192,204,170, 86,123, 61,112,115, 71,142, 79,231,241,181,146,243,144,214, 38,
-239, 26, 79,171,135,135,101,115,111,113,160, 79,250, 15, 43, 57, 83,168,207,197,182, 94, 13, 42,168, 39,158,189,123, 48,197,165,
- 16, 25,253,251,105,116, 88,119, 84,223, 66, 64,242, 49, 53,161, 63,180,176, 77,105,250,165,167,203, 40,153, 26,210, 65,215,137,
-232,203, 76,126, 75,179,195,125,  6,192,165, 17, 14, 83,215,201,149, 34, 25, 57,  0, 96, 19, 40,197,160,106,210, 84,  4,168,213,
-212,164,152, 20, 49, 43, 40,158,245, 80, 52,211,148, 26, 34, 66, 85,110,102,192,164, 42,140,236, 26, 91,153, 54, 71,145,136,137,
-128, 66, 40, 90,104,172,128,172,181,162,169, 15,234, 25,217,204, 68, 53,120,109,124, 80,160,122,168, 82,209, 96, 28,247,138, 16,
- 98, 98, 12,192,234,207,241, 73,154,  1,  7,162,129, 41, 26, 34,177,119, 27, 38,199,152,185,203,132,166,115,158,144,  1,100,154,
-218,226,100,  3,156,108,123, 56,125,198,216,208, 87, 38,124,250,141,138, 46,  8,  6,243,119, 85, 77,161, 40, 78, 15, 34, 64, 53,
- 32,131,144,222,126,231,209,172,249,201,205,126,247,111,253,189,127,243,111,254,238,111, 93,223,174,219,229,201,247,150, 39, 99,
-206, 46, 64, 83, 21, 49,  9,196, 96,152, 85,139, 24, 88,163,162,187,237,171,187,219,203, 60, 12,181,230, 54, 54,155,237,238,110,
-125,179,185, 91,143, 99,217,236,182, 23, 55, 55,187,113, 24,134,252,155, 63,252,254, 59, 15,239,109,250,225,235,103,207, 95, 92,
- 94,170,170, 41, 68,102, 38,106,155, 70, 65, 83,136, 77,140,181, 20,136,147,246, 88,164, 74,150,  2,178, 27,122,149, 58,150,234,
- 76,184, 38,182, 77,211,212, 90, 74,201, 49,133, 20, 98, 32,206, 85,214,187,253, 48, 12,128,126,231, 49, 16,237,181, 82,128,126,
- 28,107, 22, 66, 42,160,168,150, 18,165,192, 33,132,148, 18,170,133,166, 51, 21, 77, 96,125,191, 29,199, 82, 10,136,229, 92, 55,
-251,190, 22, 49,131, 16,194,138, 98,106,177,239,183,137,136,153, 82, 74,132, 40,181,132, 54,205,218, 57, 32,170,202,118,191, 13,
-145,135,221,110,148, 74, 24,198, 33,171, 72,215, 53, 99, 29,115,214, 54,197, 89,155,174,238,  6,145, 82, 85, 23, 41, 22,  6, 85,
-200, 94,177,  1, 86, 25,198,106,136,180,104, 23,164,162,170,128,254,205,135,195, 90,244,161,168,  3, 51, 65,142,129,137,204,196,
- 79, 86,  1,129,131,150, 17,255, 63,166,222,228,201,146, 43, 75,239, 59,211,189,238,254, 94, 68,228,136,  4,178,208, 72,160, 10,
-133,  2, 10,133,170,234,177,154,205,238,102, 75, 38,146, 34,165,141, 54,250, 87,100,166, 21, 55,210, 74, 75,153,100,148,204,180,
-144, 22,148, 22,220,203,180,144, 68,177, 57,136,109,106, 90, 79, 53,  0,141, 49,231,200,136,200,136,120, 17,239, 61,119,191,247,
-156,163,197,185, 30, 40, 24, 12, 11,100,100, 90, 70, 60,247,123,207,240,125,191,143,192,201,168,137,173, 29,220,231,105,174,232,
-146, 51,128, 87,117, 97,222,238, 71, 51,115,155,254,242,201, 55,111,222,125,240, 63,255,243,127,158,200, 62,249,224,253, 63,255,
-155, 95,117, 41, 37,198,199,175, 94, 61,125,121,140, 68,111,222,191,115,118,121,113,126,181, 59,223,108,166,121,158,107,217,205,
-179, 16,175,114, 74, 89,192,148, 72, 98,148, 69, 68,132, 22,233,151,220, 68,191,212,183,144,140,152, 46,185,153,  9, 68, 48, 54,
-127,164,218,126,  0,  0, 32,  0, 73, 68, 65, 84,104,200,254, 16, 38, 51, 44,133,136,204,  9,220, 78,207, 55,167,231,175, 69, 82,
- 34,236,115,151,251, 62,  9, 15, 41,231, 62,175,251,190,239,186, 33,119,195,106,232, 82,215,101,  1,132,156, 83, 78,105,213,117,
- 93,238, 83, 78,125,238, 68,114,215,103,233,114,226, 14, 68,250,131,131,225,240,214, 29,128, 50, 79,101,154, 34, 98,177,150,178,
-223,237,171,233,118,187,221,238,118, 47, 94,157, 60, 63,126,254,234,228,244,229,217,235,205,213,245, 84, 74,169, 85, 17,170, 59,
- 34,177, 80,226,206, 92, 17, 32, 49, 59,  2, 97,  0,129, 48, 10, 52, 71,211,166, 91, 39,107, 34, 93, 50,168,177,225,173,174,213,
- 42,129,171, 59, 24, 42, 32, 49, 87,176, 82,106,183, 94,185,151, 22,228, 19,193,216, 11, 84, 53, 80,105, 46,208,178, 49, 29,  8,
-145, 16, 84,219,218,  5, 93,145, 40, 94, 98,173, 21,146, 52,183,161, 81,156,231,222,246, 54,104,  8,160, 14,130, 75,163, 16,190,
- 11,144, 69,211,225,  0,  2,208,166,234, 30, 33, 24,128,224,218,250,138, 88,  7,196,182,207,221,169,154,133,202, 40,164,249, 14,
- 28,131,108,110,147,105, 20, 68,  6,174, 45,235, 77,209, 20, 68, 22,163, 71, 88,144, 26, 13, 55, 80, 89,176,252, 23, 91,125, 27,
-161,111, 96, 22,231,123,196, 62, 65,117,  5,  3, 35, 50, 83,  4, 96, 32,141,234,219,157, 24, 73,200, 99,125,138,136,  0,101,198,
-113,222,199, 29,171, 87,215,132,158, 83, 39, 34, 76,243,208,119, 57, 15,224,125,245, 26, 20,150, 54,140,211,234, 54,155, 53, 86,
-164,154,154,107,151, 68, 82,150,134, 62,140, 40,120,136, 80,104,  2, 80,104, 42, 87, 34, 34, 45, 21,127, 45,225, 34,246, 62, 45,
-178,176,197,163,198,245,127,131,160, 97, 12,123,196, 18,140,221,248,234,237,113,112, 12, 51, 95,236,199,205,219,154,179,209,127,
-169,  9,103,189,137, 54,227,154,176,224, 32, 56, 48,130,130,129,131,170,126,239,251, 31,189,255,232, 47,206,175,174,254,252, 47,
-254,242,247,126,243,147,135, 15,238,107,144,  3,157,193,201, 45,196,178,190, 29, 75,169, 62,215,121,127,189,223, 94, 95,108, 47,
-207,129, 60,247, 67,166,238,250,250,252,228,234,197,102,179, 57,187,216, 92,239,198,205,126,111,238, 12,246, 27,247,238,173, 87,
-  7,168,246,255,253,205,175,230, 82,166, 90,250,190, 59, 90,175, 81,141,146, 76,115,233,251, 62,160,201,165,148,170,202,  0,165,
- 76, 83,213,237,126, 55,149, 74,136,224, 80,138,185, 27,177,116, 41, 51,147, 91, 69,244,245, 48,152,131, 22,221, 76,187,105,158,
- 40, 48,159,104,213,124,156,138,187,151, 50,155,249,106,232,136,220,221, 87,146, 73, 66, 89, 33, 34,  4,224,187,121,174,181,152,
-195, 84,202,126, 63, 22,179,243,203,125, 47,121,181,202,215,251, 73,152,  0,201,106,153,167,221,193,225,209, 52,143,213,189, 58,
-148, 90, 19,167,209, 77,231,210,119,121, 42,124,235,240,246, 56,141, 69,173, 78, 51,  2, 36, 78, 38, 58, 47,241, 89,230,243,118,
- 95,  9,161,216,156,114, 63,237,118,213,157,137, 51, 51, 85,221,169, 18,120, 45,109, 92, 86,185,152, 71,195, 36, 14, 46, 66, 72,
-174,165, 21, 96, 81, 20, 75,162, 46,101, 55,175, 78,137,221, 92,201,227,212, 16, 10,207,106,173,106,176, 36,236, 26, 17, 24,242,
- 28, 87, 53, 25, 40,108,107,249,252,155, 47,127,247,147,159,220,221, 77, 47, 78, 95,253,187,159,255,229,135,239,189, 43, 44,235,
-126, 24,250,225,151, 95,126,115,118,185,233, 58, 41,251,114,126,113, 61,149, 82, 74, 81, 51,  4, 76,196,  8,  4, 72,130,220,165,
- 52,206,234, 14,140, 76, 34,132,128,192,166,213, 29, 52,150,144, 64, 90, 29, 51, 58, 97, 76,120,205, 93,137, 96, 54,103,100,193,
-162,160,110, 45, 39,129, 80,205,136, 96,154,167,205,246,122,158,231,169,234,186,235,238,221,185,219,103, 49,119, 38,200, 93,238,
-114,223,119,169, 75,121,181, 26,214,125, 78,185,235,115, 78, 44,253,208, 13, 93,223, 17,165,156, 72,120, 72,137, 24,153,164,203,
-221,106,189,202,125,223,247,125,204,115, 68, 56,165, 78, 97,181, 62, 58, 68, 71,115, 53,181,143,127,232,243,180, 87,211,237,213,
-110,115,117,117,189,187,186,216, 92,157,158,111, 78,206, 78, 47,175, 55,187,237,190,104, 25,167, 66,233,234,122,187,171,101,  6,
- 18, 96, 36,201,  8,144, 18, 67,117, 87,  7,196,204,162,110, 70, 97, 75,105,154, 66,104,193,  8,132,110,171,190,175,102,141,101,
-  2,192,205,158, 98,  6, 75, 27,191,168,171,133,196,213, 84,227,165, 70, 53, 16,136, 50,182, 80, 51, 48, 18, 69,208, 34,  2, 16,
-  9,199,200,  5,  0, 12,127, 61, 78,231,102, 30, 31, 69,222, 77, 34,115, 51, 81,218,183,206,169,246, 79, 59, 81,  0,144,131,107,
-  2, 74,203, 95,207,  1,144,141,154,247,161,141, 16,  4,129,144,237,198, 95,230,145, 64, 17, 99,101, 52,171, 49,173, 90,124,  5,
-184,240, 80, 22,157,246,242, 95,132, 95, 27, 76,123,  4, 52,147,186, 57,134, 70, 74,172,204, 76, 24, 55,209, 98,246,141, 11,  5,
- 33,  8, 95,  6,  8,173,246, 37,162, 62,177, 69,226,220,  0,213, 76,171,206,102,101,156,232, 26, 25,185,239,187,156,  6,247,210,
- 15,189, 71,114, 33,160,161, 51, 83,124,215,237, 90,131,228, 54, 10, 32,  0, 90,219,106,104, 88, 14, 21,  0, 82,234,  0,129,137,
- 22,253, 98, 67, 18,184,  1,210, 34,130,108,202,241,166,182,113,215,144, 83,182,212,246, 80, 97, 16,220,124, 45, 52, 35,176,131,
-183,213,  5, 32,120,132, 48,154,183,150,203, 26,186,166, 54,169, 76,  5, 39, 68,148,166,140,132,198,181, 49,208, 82,215,183,239,
-255,228, 71, 31, 62,125,245,250,179,191,253,244,191,249,111,255,233, 31,254,236,183,223,125,231,237,119, 31, 61, 90, 31, 12,117,
- 46,213,113,158,109,119,181,221,110,175, 46, 94, 31,107,157,  9, 41, 13,131,187,237,174,199,103, 79, 95,108, 54,151,211, 92,205,
-180,212,249,122,172,199,167,231,175, 55,175, 75,133,223,250,248,251,204,252,226,244,149,187,119,146,115, 74, 67,223, 73, 98, 87,
-115,  4, 68, 31,134, 46,145, 76,101, 95, 38,155,234, 92,107,157,180,106, 41,145, 44, 44,200,115,173,238, 22, 90,198,148, 36, 49,
- 87,  4,161, 84,173,238,119,251,237,110,111, 90,195,228, 51, 77,234,164,153, 72,193,221, 93, 85, 29, 17,192,166,185,  6,112,115,
-246,146, 85, 82,230,113,218,215, 42,136, 84,106, 13,207,250,241,201,235,235,237,148, 83,222,142, 99, 62,148,144,187, 54,145, 42,
-248,245,118,123,116,120,120,184, 94,237,246,211,209,129,153, 26, 11,130,185,147, 39,228, 33,103,181,218,231,161,238,182,251,113,
-138, 48,248,177, 86, 34,116, 80, 15, 74,  4,243,126,158, 19,114, 39,121, 15,123,115, 23,137, 72, 73, 22,115, 71,  3,100,  0, 71,
-  2,181, 90,220, 28, 32, 71,151,167, 68, 78,156,144, 16, 17,104,154, 75,117,200, 44,  0, 80,172,148, 82, 99,220,198, 76,128,216,
-161, 64,196, 60, 18,155,107,148,252,193,115, 37, 36,213, 90,107,201, 41, 27,249,126,156,190,248,234,201,203, 87,167,219,253,  4,
-102,230,254,171,175, 30,223,191,125,171,152,255,237,227,199,227, 56,137, 72,172,131,198,105,102, 38, 38,170, 53,188,126,102,110,
-  2,236,230,115,173,  4,160,142,166,245,160,235, 23, 43,174, 19, 35, 20, 23,  0,  5,216,105, 89, 85,129,182,149, 91,  8, 23,177,
- 84,139,229,131,186,187, 51, 33, 17, 67, 68,187,  0, 48,177,176,212, 64, 98,187,169,251, 56,238,189, 88,215, 77, 35,237, 47,208,
-138,129,  1,100, 73,195,208,245, 57,229,156,135,161,207, 41,173,251, 44,146,186,110, 24,152,115, 18, 96, 72, 40, 34, 32,146,251,
-156,187,148,134,213,106, 24,250, 46,231,148,251, 97, 53,244,253, 64,146,220, 13,145,186,213,129,214,185,239,215,111,188,249, 80,
-132,145, 12,129,208,169, 90,157,203,140,  0,169, 27,246,219,237,147, 23, 79,126,245,249,151,127,253,243, 95, 62,121,254,236,242,
-234,202, 61,244, 43,136,  8,137,153, 18,121,141, 96,131,155, 96, 50,112,160,162,145, 94,205,196,132,106, 75, 22,  4,128, 91, 99,
-125, 99,152,135, 12,152,140, 66,203, 67,106,132,102,  4,192,132, 20,101, 25, 33, 32,171,213,208,184,187,129, 53,144,  3,178, 83,
-187,211,  9,168,233,112,113, 97, 65,  1,242,194, 75, 89,150, 59,196, 88,212, 36,126,251,114, 44,135,185,107, 73,230,137,  4,160,
-182,217, 69,192,128,159, 80, 60,140,  0,205,124,199, 33,216, 64, 52,  6, 32, 98,138,243, 23,180, 13,232,169, 21,229,234, 78,  4,
-173,172, 13,225, 56, 51, 53, 44,  4,  1,212,240,237, 59,146,131,125,123,200,251, 50,  0,115, 87,162, 22,115,100,176,232,  9,208,
-163,147, 80,112,  4,108, 43,180, 38,219, 86, 55, 66,  3, 11,179,146, 16,101, 79,128, 29,118,224, 80,205,118,243, 56,150, 73,221,
-253,106,139,104, 93,146,190, 27,170, 26,186,167, 68,194,153, 72,156,132,216,187,220,201, 50,180,106,183, 36, 24, 54,212, 10,179,
- 47, 22, 82,162,229, 39,223,200,235, 97,162, 96,168, 22,243,211,118, 29, 53, 13, 98,  0, 14,110,166,111, 97,192,117,247, 26,169,
-153,232,248,107, 67,123, 68,140, 68, 93, 96,140,  9, 69,148,123,113, 91, 48,198, 84,108, 33,130,197,157, 23,105, 26,224, 88,  1,
- 63,250,248,195,255,227,255,254,215,128,248,217,151,159,159,188, 58,249,224,189,119,254,206,239,253,236,251, 31,252,160, 22,189,
-188, 60, 63,125,245, 98, 30,183,135,135, 71, 40,208,247,171,147,151, 47, 79, 63,255,114,187,219, 95,239,119,211, 52,147,208,189,
-163, 91,187,113,252,213, 87, 95,159, 95,111,175,183,227, 88,230,219,135,107, 43, 58, 82, 93,245,131, 59,136,144, 48, 17, 49,154,
- 86, 55,  0, 34,164, 82,202,102,188,218,239, 71,119,136,158, 11,  8, 19,231,226,166,117,158,107, 65,132, 97,232,187,148,208, 41,
- 39,  6, 71,171,229,106,119,189,159,198,121,156, 83,206,136, 20, 91, 92,117,173,181,170,137,147, 23,179, 56,211,157, 41,114, 26,
-  1,168, 79,210,117,169,212,146, 37, 57,200,103,143,159,100, 74,138,176,189, 30, 83, 48, 50,213, 76,107,223,165,170,134,190,240,
- 50,  1, 75, 45,151,155,205,237, 59,119,182,219,113, 55,238,115,215, 59,130,106, 33,166,169, 22, 22, 73,194,134, 86,180,198, 20,
-181, 84,117,115, 68, 81,131, 82, 85,132,133,152,153, 70, 40,241,227,142,135, 33, 11,141,179, 13, 34,163, 22,  5, 19, 32, 64,112,
-  2, 50, 92,180, 84,160,110,  8,  4,234,  6,241,173, 88,173,213,152, 10,145, 86,109,108,103,116, 84, 80,116,  6,116,247, 10,222,
- 75,190,179, 62,236,114,183, 94,245, 69,171, 19,141,187, 73,189, 74,238, 90, 35,120,168,227, 56, 79,115, 57, 90,103,102,100, 98,
-114,152,231, 73,205,201,177, 27,122,173,  5,213,220, 21,208, 59,145,105, 46,213, 20, 29,138, 25,  2,133, 11, 49,179,236,166,153,
-185,246, 41,133,155,217, 90,245,233,193,215,107, 52, 95,106,228, 59, 48,103, 18,  8,225,  7,162,  1,144,144,155, 41, 56, 85, 55,
- 52,  2, 53,171,174,218, 34,222, 13,209,117,210,194, 46,  4,168,132,106,142,228, 65,125, 40, 85,103, 24,231,121,190,112,221,238,
- 39, 36,100,230, 62,167,190,235, 87, 67,215,229,212,229, 28, 35,155,156,164, 11, 74, 79,151, 51,113,151,101, 24,134, 46,119, 89,
-184, 75,121, 88,175,114,215,175,134, 97,181, 62, 76, 73,186,156, 73,160, 91,175, 57, 15,145,120,156,220,123,176, 97,117,216,175,
-214,170,245,209,247, 63,250,217,239, 79,187,203,215, 79,158,124,243,249, 23,127,251,217,151, 95,125,253,244,233,241,217,249,197,
-245,118, 86,239, 34,149,135, 81,  8, 33, 49, 87, 82, 55,161, 64, 38,  4,222,210,204,141,145,163,173,119, 34, 87,183,104,244,137,
- 91,132, 25,114,172,206,132, 83,169,161,101, 64, 34, 65, 98,243, 54,110,  1,192,101,  9, 27, 55, 34,148,150,140,214, 42,101, 15,
- 63, 38, 80, 44,233,154,187,106, 17,  6, 17,128, 90, 76, 66,  8,177, 45, 57,173,169,244,112, 17, 95, 35,199,138,216, 33,192,230,
-145,215,215,118, 70,141, 75,  8,232,196,136, 68,168,174,161,193,181,216, 38, 36,  6,152, 45, 66,181, 91, 43, 25,170,109,188,  1,
-164, 44, 29,  6,184,234,  2,123,246,  6,165, 93,138, 89,  2, 86, 85,243,106,145,112, 68, 28, 50, 69,247,216,139,  7,139,194, 64,
-154,151,196,129,219,212, 19,220,205,128,163,113,114,159, 43,176,196, 11,232,  0, 68,148,  0,145,128,  1,148,157, 80, 12,240,106,
-220,155,170,155,233,149,  1,104,151,115,150,126,213,119,251,253, 94,218, 90, 58,124,101,109,221, 12,174, 21,111,150, 13, 20, 97,
- 31,161, 44,178,136, 77, 71, 66,175,182,200,219,117,177,  9,133,206,141,220,181,157,247, 68, 96, 96, 94,225,219, 44,168,112,164,
- 33,  0,129,153, 55, 45, 87,204,176, 24,201,220, 52,214, 41, 20,238,133, 40, 23,220,127,109,155,235,224, 26,119, 70, 45,229,254,
- 91,239,254,230, 15, 30,157, 92,141,191,255,163,143,126,240,254,247,238,223,191,143, 36, 95,127,241,171,211,147, 83,240,122,184,
- 62,236,115,119,113,113,121,189,217,156,156,191,222,237,167,125,153,146,200,170,235,190,243,224,222, 60,207,167,103,103,159, 63,
-123,250,234,252,138,192,133,232,135,223,125,247, 96, 61,220,187,125, 72,  8, 85, 43,146, 88, 45, 85, 43,170, 33,186, 35,129,217,
-230,250,122,183,189,174,  6, 57,  0, 50,136,213, 20,204,175,166,107, 38, 18,225,219,221,161,177,103,150,248,166,247,101,190,190,
-222,109,167, 49, 17,179,112, 56,102,135,126,165,251,237, 56,205,  6, 46,196,192,100, 90,  9, 64, 77,  3,113, 42, 68,140,196, 12,
-213,230,231,207, 94, 49,117,255,228,191,252, 39, 95, 61,121,246,171,127,250,223,207,243,252,250,242, 82,132,215,183, 14,246,179,
- 13,125, 58,191,170,166, 86, 52,152, 29,109, 73,133,136, 87,215,215,171, 97,117,116,176,186,220, 92, 31,172, 15, 74, 17, 22,164,
-153, 10, 75, 38,236,251,213,225,176, 58, 63, 59,207, 34, 14,190, 26,242,213,126,207, 89, 57,  9, 16,220,191,117,251,244, 98, 51,
-116, 66, 44, 70, 20, 27,113, 74, 92,171, 58,225,144, 18, 78,188, 31, 39, 71, 71, 39,111,175, 80, 51,184, 41,128, 24, 26, 24, 18,
- 81,160, 42,152,219, 20,212, 91, 63, 76,128,  8, 40,  8, 73,210, 84,139,213, 90,124,  6,234, 19,107,217,111,163, 33,239, 51,164,
- 52, 16, 16,137, 60,184,123,239,106,191,125,189,185,250,250,249,177, 24,118,210, 79,101, 20,102,106,175,186,163,185, 85, 83, 34,
-116, 72,200,213, 76,205,192,213,177, 97, 18,  8, 25,217, 12,116, 50,205, 22,127, 21,  5, 98,171,138,136,203, 57,  0, 44, 20,173,
-190,197,159, 10,110,132, 14,144,152, 23,225,167,185, 19, 25,184, 43,  3,251, 77,131,218,214,128, 14, 68,104,228,161,161,142, 52,
-155,104, 33,212,112,137,182, 49, 11,183,141,143,101,  7,110, 89,228, 96,189,202,196,142,222,117, 29, 33,231, 36,196,148,133,115,
-206, 41,165,204,148, 82, 26,186,174,207, 34, 57,245,169, 99,132, 68, 57, 15,114,116,120,112,251,240,246,193,193,193,122,189, 62,
-188,125,255,232,206,157,225,240,136,136,  9, 28, 69,144,  0,220, 25, 81, 65,214,183,239,125,120,251,238,135, 63,252,201, 63, 28,
-183,175, 95,159, 28,159,188,250,250,155,111,158, 60, 63, 62, 61,191,120,117,118,122,121,189,119,132,121,182,169, 20, 97,  1,194,
-156,123,119, 23, 38,164, 20, 51, 91, 92,104, 37, 45, 51, 16,177,173,206,144, 98, 79, 14,170, 72,158, 57,133,209,205, 76,213,156,
- 88,124,185, 71,  9, 80, 81, 17,161,170,118, 76,229,166,114,132,155,204,180, 38,243,105, 46, 24,144,246,203, 17, 87, 20,127,144,
- 56, 17, 35,160,161,241,  2, 59,107, 34,108,  4, 36, 86,117,108,190,249,229,224,109, 53, 66,192,194, 12,200,220,145,136,200,157,
-136,213, 20, 35,198,129, 66, 56,  0, 75, 62, 51,194, 82,177, 66, 76, 26, 33, 14,254,133,189,212,154, 77, 82,117, 83, 67,161,160,
-249, 91, 84,252, 30,182,  9,115,211, 24,204,195,194,112, 12,218,157,149, 95,243,185, 97, 24, 76,  5,208, 48,216,173, 37,242,173,
- 85, 35,186, 58,150,188,216,134,103,180,148,219,132, 68,137,  1, 73,188,153,  9,182,101,183,215,233,122,183, 21,244,101, 76, 14,
- 75,252, 70,  0,228,201,209, 17, 12,144,  1,151,134,169,153,230,220, 98,242,142,238, 22,123,232, 72,218,141,185, 64,155, 97, 44,
-198, 49, 95,246,183, 55,124,207, 88,130,132,228,104, 73,224,  0,140,189,136, 47,152,119, 35, 22,104,161, 33, 13,152,215,158,  1,
-  4,  4,  6,  7, 98,116,173,199, 39,215, 63,252,233,111, 15,119, 31,174,250, 92,139,190, 58,121, 89, 38, 69,132,163,195,161,148,
-233,233,139, 23,187,235,253, 56, 77, 87,227,246,242,250,250,104,189,126,248,198,131, 59,135,  7,251,253,254,197,233,201,203,211,
-243,147,215, 23, 93,206,127,247,167,159,220, 59, 56, 82,240,195,163,213,126,156,213,180,204, 90, 74, 65, 82, 85,141,184,  2,117,
-173, 85,205,157,  8,187,220,101, 36, 15, 39,155,233, 60,207, 76,120,180, 94, 11,179,169,137, 36, 98,208,170, 83, 45,211, 56, 93,
-239,247,132, 88,171, 42, 56, 91, 37,130,185,204,211, 52,  3, 26,144,247, 34,232, 56,107, 85,208,134,137,212,226,140, 64, 84,117,
-222, 92,143,199, 39,151, 87,219,253,126,156,255,167,127,246,191,156,156,158, 61, 63,126,241,254,219, 15,227,227,119,112, 39, 74,
- 57, 25, 68,150, 39,181,101, 82,232,206, 12,129,252,229,233,233,111, 60,124,147,136, 47, 47,175,242,189,148, 83,239,104,102,138,
-169, 99,128,219, 71,183,159,203,241,245,126,191,234, 58,145,212, 49,  5,247, 53, 46,250,142,217, 28,132,128,209,185, 97, 84, 85,
- 29,200, 93,132,  7, 64,187, 70,110,205, 46,248,194, 41,137, 94,186,120,101,194,  0,153,  0,  3,170,169, 59, 47,143,113, 20,250,
-204, 84, 76,115,146,162, 10, 72, 67,215,177, 81,173, 58,214,232,153,221, 28,246, 69,117,154,137, 57, 37, 62, 61,219,140, 58,143,
-227,254,225,189,219, 66,180,159, 13,152,195,  0,172,209,248, 25,104,244,194,140,170,234,139,121,123, 73,  6,  3, 70,182,162, 90,
- 53,158,200,198,127,105, 51,220, 70,196,  6,196,176,147,154,153,186,  3,130, 32,128,129,  9,153, 91,117,133,152,131, 53,220,  0,
-182,199, 31, 17,129,220, 26, 90,203,188, 90, 83,112,128, 69,166,129,187, 66,251,209, 54,130,  9,185,215,152,119, 48, 16,185,186,
-147,215,170,100,147,187, 79,137,173,154,  1,133,140, 72,  8,114,151,221, 60,167,212,117, 57, 19,163, 96,206,194,200, 41,167,195,
-174,123,231,237,183, 15,135,213,106,245,108,189,238,239,220,186,211, 13,107, 36,202, 34,135,119,110, 57, 80,151,123,  3, 12,232,
- 30, 16,211, 48,188,241,240,221,187,111, 62,252,232,163, 31,150,185, 78,243,126,183,219, 95,188, 62,127,252,252,233,167, 95,124,
-241,197, 55,223, 60,123,117,122,252,250,226,122,183, 19,102,160,148, 26,176, 16,152,154,191,136,136, 69, 88, 43,168, 41,132, 50,
- 31,193,204,139, 27, 58,144, 16,133, 87, 42,138, 62, 91,236,176,161,172, 65, 49, 51,130,160, 11, 44,217,198,208,170,228,152,146,
-235,175,165,218,  7,197,123,249,  3,194, 66, 36, 30,194, 73, 71, 53, 88,142,241,184,197,137,192, 25,160, 66, 59, 56, 98,216,203,
-240,173,186, 15,193,209,226,172,  3, 70,202, 33,226, 36, 22,166, 90, 45, 94,115,116, 52, 11,247,246,141, 35,251,219,168, 59,140,
- 69,180, 47, 81, 78, 26,195,105,240, 82,145, 25, 17,136,200,156,209,212, 92,137, 56,198, 45,237,225,143,105, 53, 81,153,103,180,
- 16, 53,199, 62,  3,137, 28,153, 24,216,209, 66,197, 98,109, 33,172,104,228, 64, 81,131,136, 51, 88,109, 30,134,200, 23,138,114,
- 36,224, 80,142,136,216, 37, 46, 53, 11,134,174, 31,221,111, 28, 76,136, 21,130, 91, 76,192, 11, 39,164, 93,175, 28,183,119,216,
- 64, 23, 28,204,205,185, 30, 50, 35, 13,208,102,171,181, 23,175,240,194, 25,110,158, 24, 64,189,249,118,  1, 91,234,222,242, 47,
- 32,242,183,146, 75,183,112,163, 33,144, 33,160,105,115, 83, 51,191,124,254,226,171,207, 63, 51, 83,113, 31,199,169,214,130,238,
-146,  8,220,119,187,237,230,242,122, 28,231,203,237,213,102,123,141,140,247, 14, 15,205,233,233,241,241,151, 79, 30, 79,115,185,
-216,110,215,185,251,248,253,247,238, 28, 30, 34,154,186, 58,227,197,197, 70,213, 92,157,146,  0, 82,128, 97,231, 90,204, 60,177,
-  8,161, 16,119, 93,214, 82,118, 58,153,170,171,179,240,122, 88,117, 93,103,165, 24, 57, 33,151, 58,142,251, 58,205, 99,228,245,
-  0, 54,117,  1, 17,120,141,139, 29, 36,177, 57,205,117,222,205,  5, 52, 52,224,144,144, 89, 72, 59,158, 13,204,212,198,250,242,
-197,233,197,126,234,251,204,  5,254,175,127,241, 47,175,199, 93, 74, 93,164,159,131, 90,173, 22,225,181, 34,  2, 64, 85, 39,116,
-183, 82, 49, 11, 16,105,173, 36,124,181,223,191,190,236,110, 31,221,121,125,177, 89, 13, 59, 97, 97,166, 66, 69,152,114,234,186,
-110,120,248,224,193,215,143,159, 48,179,169, 18, 83,169,102,170,125,223,205,115, 37,193, 62,201,110,138, 97, 74, 19,163, 97,208,
- 69, 84,153, 19, 34,104, 40,207, 72,204,107,128,244, 26, 31,196, 76,114,210,170,145,170, 28,114,250, 69, 21,219, 26,222,128,  6,
- 19,139,227,184, 74,121,232,147,161,105,197,162,213,145,209,189, 79, 57,110,212,170,182,219,143,171, 85,198,153,  9,184, 79,137,
-144, 83,132,201,123,244,232,224,230, 70,102, 78,212,  4,121, 81, 40,121,172,242,111, 50,208,181,106, 56,122, 72,  4,  0, 66,165,
-218, 98,146,205,  4,145,137, 24,201,138, 45,128,105, 96, 68, 55, 37,103, 87,195, 86,228,199,105,109, 77, 70,141, 96,238, 73,  0,
- 57,182, 87, 65, 28,160,136, 43,  8,242, 54, 32,161, 87,119, 87,211,100,169, 77, 62, 23, 85,134, 55,168,113,204,113, 99,243,228,
- 72,  8,136, 93,146,170,170,128, 86,109, 59,142, 90,175,182,211,180, 26,186, 44, 41, 47, 96, 99, 78,242,234,242,242,232,224,160,
- 75,233,160, 31,134,161, 95,119, 29, 11,221,191,125,235,224,214,109, 34,236,146,  0, 98,151,250,156,187, 24,  3,113,202,204, 29,
- 37, 74,195, 32, 93,119,120,116,255,205,135,239,124,244,163, 31,255,131,127, 80,231,221,180,219,111,159, 62,123,250,245,227, 39,
- 95,126,253,245, 55, 47,142,175,182,219,215,181,186,187, 97,198,132, 26,200, 26, 34,206,168,147, 17,199,218, 18,169,197,211, 57,
-179,152, 85, 67,170,106, 66,196, 28,  2, 41, 93, 94,111, 16,162,212,102, 96,112, 83,190, 81,  4,145, 46,  9,246,  1,196, 37,118,
-112, 35, 34, 97,177, 80, 97, 57,123,140,188, 52,150,122,214, 97,131, 25, 68,245,233,196,228,132, 81,189,  3, 32,160,  4,186, 22,
-  1, 24,133, 89,139,  1, 57,146, 19,129, 26,131, 23,102, 49,  3, 16, 38,231, 68,216,231, 38,115, 55,143,181, 66, 99,116, 52, 46,
- 51, 58, 88,117,215, 32,162, 99, 91,192, 44,203,102,115, 83,  5, 52, 68,  2, 74,160,170,170, 81,164, 54,105, 80,252,  5,221,146,
-112,220, 32,182,120, 70, 90,202, 51, 56,218,162,200, 97, 49, 85,138, 28, 34,179, 24, 28,198, 93,225, 24, 33, 12,128,136,  5,148,
- 67,  0,187, 92, 31,193,247,149,245,221,195, 58,215,113,179, 71,196,192, 36,128, 27,183,240,140,232, 84,154,200, 13, 22,201,123,
-168,153,  2, 13,131,205,142,234, 45,124, 47,106,243, 26, 60,184,176, 73, 55,134,160,171,135,139, 49, 48, 95,120,131, 79, 10,210,
-100,171,191,194,  7,143,208,128,200, 55,116, 24,104,179, 26, 11,  4, 10, 32,226,126,115,125,252,252,169, 86, 69,172,106,213,205,
- 16,172,206, 94, 74, 45,102,251,121,188,218,237,199,105,116,176,213,208,151, 82,207, 55,155,171,253,184, 94, 13,101,174,143,143,
-143, 39,131, 63,250,228, 67, 64, 58,190, 60, 39,167,148, 19, 35,245, 57,185,233, 88,103,155,125, 42,197,219, 42,136,134,156,135,
-174, 43,106,106,117,183,221,207, 86, 72,128, 80,242, 32, 57,229, 68, 56,151,169,148, 50,141,213,138, 78, 58,107, 13, 14,  6,230,
-212,105,173,165,204,204,196,204,197,171,112,118, 47,227, 56, 79,117,174, 85, 17, 97,189, 90, 29, 12,195, 92,234,108,238,230,197,
-204, 84, 95,159,190,238,144,179,164, 78,212,213, 16, 80, 36,117, 41,  1, 81, 51,  3,  4,235,217,125,183, 31,133,168,150, 50,215,
-106,110, 40,204,200,194, 50, 53,113, 11, 60, 61, 62, 59, 90, 31, 14,171,238,252,114,219,167,180, 94,173, 85,235, 92, 40, 73,  7,
-238,247,238,222,125,247,209,219,199,167,175, 21,208,  1, 59, 78,  8,128,238,177, 91,131,182,238, 64, 66,  4, 97, 48, 51,183,196,
-100,230,142,150,153,139,185,129, 86,171,241,248,234, 66,139,117, 38,115, 18, 65, 53,171, 75, 15, 26,126, 63, 88,102,220, 40,136,
- 37, 18, 34,220,201, 16, 41, 17, 87,179,102, 72,161,  8, 99,194,166,215,174,154,186,110,154,119,234,174, 21, 10, 20,171,166,  4,
- 64,177,105,  4, 38, 18,135,  8,211,136, 84,171,230, 20,  5,196, 82,227,204, 39,166, 46, 49, 23,186,145, 68, 56, 56, 11,235,108,
- 11,213, 46,102,235,224,  8, 66, 56,  2, 16,  2, 35, 26, 18, 50,105,  8,100,137,106,113,117, 75,128,205, 42, 25, 96, 62,184,129,
-158,106,116, 49, 22, 11, 60, 71,141,155, 61,218,114,103, 39,  4, 96, 36, 54, 87,  0,243, 86,176,162,186, 81, 72,246, 16,208,189,
- 20,165,174, 11,195, 78, 41,181,207, 93, 20,122,227,126,175,106, 57,149,174,116,137, 60,172,173,175, 95, 95, 15, 67, 98,230,131,
-213,208,231,110, 53,116, 73,228,214,225,193,157,195,195, 62,165,174, 19, 71,114,247,149,164,220, 15, 93, 39,125,215, 69,130,121,
- 30,134,190,235,115, 55,164, 97, 69, 64, 34, 57,247,235,225,240,214,155,111,191,247,251,191,231,227,188,127,125,118,114,113,254,
-250,155,103, 47, 94,188,124,249,242,228,244,248,236,236,106,179,121,125,225,165,236,212, 98,240,228,140, 40, 44,169,203,228,100,
-160,204,226,213,129, 49,165, 16, 46, 97, 76, 61,200, 73,162,130, 69,208,160, 98, 85, 15,201,184, 35, 56,163, 16, 33,222,156,148,
-216,  6,141,156,152, 82,204,236,147,128, 99,228,140,138, 27,128,  5,214,165,141,224,218, 49,100,  4, 80, 45, 66, 16,113, 65,235,
-183, 84, 33, 14,212,  1, 34,147, 83, 36,168, 24,180, 48,160, 37,  0, 26,137, 57,154,146,248, 36,189, 17,211,252, 91, 94,222, 50,
-123,  8, 15,135, 55,232, 70, 20,168,182,172,135, 45,194, 34,220,108,201,188,  1,143, 28, 35,  8, 26,200, 50,109,111, 14, 76,  7,
-  7,157,205,204, 49, 81,168,113,163, 53, 69,  4,183, 74, 30,191,247,  6, 90,110, 14, 24,254,  5,154, 43, 32, 88,153, 17,193,140,
- 41,  5, 79,193,101,119,177, 13,  3, 28, 34,130,105, 36,149,196,109,131, 16,131,255, 54, 92,251, 53, 86, 79,188,199,205,  1, 17,
- 39,178,171,  7,149,  0,  0,129,  3, 29,137, 13, 44, 19, 63,  8,162,120,226, 33, 92,104,128,  8, 12,168,109,207,  0,238, 90,221,
- 20, 89,190,253,180,252,  6, 93, 11,241,116,226,146,124, 51,237,230,147,147, 19, 32,201, 93,  6, 69,238,169,168,215,185, 34, 22,
- 36, 52,199,162,142, 68,204,220,231,110,154,103, 96,239,251,225,244,226,242,114,187,219,108,182, 36,240,198,209,173,205,245,150,
- 88, 68,196,217,124,154,170,218,118,  2, 68,210,218,  2,121,145, 96, 37, 29, 18, 26,216,245,254, 26,129,170,169,169,118, 41, 35,
-115,151, 59, 70, 24,231,233,114,156,212, 52,162, 15,192,192,153,147,120, 85, 37,146, 70,183,117,212, 89, 41, 67, 45,122,113,253,
-122,158, 11,  3,222, 58, 60,122,247,189,223,184,119,251,118, 41,245,108,115,241,234,252,188,130,206,181, 92,156, 95,222, 58, 88,
-181,213, 94,236,117,150,129,134,154, 11, 57, 49,186, 85,226, 76, 14,102,170, 85, 99,194,166,102,213,171, 56, 71,162, 18,137, 36,
- 78,140,229,114,123,253,252,228,248,157,183,223,190, 44,219,221, 60, 83, 78,107,238,180,206,227,180,207, 57, 37,150,239,191,247,
-221,237,126,188,184,188,156,230,145,192,110,193, 42,167,116, 53,142,153, 57,196,146, 55,246,110,119,247,170, 55,220, 40, 68,200,
-132, 45,100,162, 69,240, 53, 98,  9,  5,179, 36,202,177,168, 99,131,161,136,141,221,204, 44,130,236,168, 85,205,193, 16, 82, 34,
- 32,161, 14, 89,204,133, 41,115, 82, 87, 68, 87,243,106,218,101,145, 44, 10, 78, 68,196, 80, 74,132,211, 57,120,  9,197,158, 33,
- 16,177, 87,195, 20,155, 93, 32,  2,245,216,232,135, 20, 27,192,193,153, 19, 75,164,136, 48, 74, 76,127,171, 27, 19,153,155,131,
- 23,179,158,217,188, 70,208,139, 24,168, 42, 19,183, 27,193, 20, 56,155, 87,211, 10, 36, 49,209,173,170,109,236,184,240,175,137,
-176,128,130,131,106,149, 76,139,100,141, 28,136, 17,  5,161, 88,179, 33,162,121, 27,129,162, 87,135, 68,225,243, 35, 68,119,  6,
-  5, 83,111, 95, 90,213, 74,100,153, 45, 19, 75,  6,140, 19, 86,171,169,151, 90, 38, 53,187,190,222,170, 25, 19,231, 36,125,223,
-173,215,253,209,106,213,117, 89, 56,  9, 17, 51,136,228,117,215,229,156, 86, 17, 47,147,250,190,203,253,144, 15,214,  7,125,223,
- 15,253,106,181, 94,165,174, 79,221,192,210,  3,226,157,123,111,220,127,240,157,247, 63,252,100, 26,199,113,119,181,185,188,184,
-186,218, 28,159,156,158,156,158, 60, 59, 62,254,230,249,139, 39, 47, 79, 46,174, 54,165,214,237,110,159, 57, 49,147, 66,101, 14,
- 57, 14,  7,124,  5,219,110, 15,189, 49, 46, 67,127, 78,138, 26,178,200, 24,149,196,145,178,144, 12,155, 24,  5,155,150, 37,188,
- 58,  9,200,201,129,156,140,221,205, 57,164, 60,208,  2,153, 17,145,208,204,129, 17,190, 69,151, 91,203, 42,114,176,144,244, 45,
- 27,203, 27, 90,106,219,236, 82, 98, 38,  2,243, 72,121, 38,150, 80,140,152, 41, 56, 90, 91,177, 70, 82,  4,224, 13,181, 35,  6,
- 19, 55, 82,251,208,132, 47,248, 28, 34,178, 16,129, 34,186,214,182,169,109, 31,162,182,185, 76,252, 62,111,134,  4,111,  2, 83,
- 95, 94,124, 69, 98,106,224,174,  5,248,  5, 16,185,122,181, 42,130,155, 46,162,166,136,214,  0,  7,112,209,106, 20,195, 37, 92,
-176, 48,180, 28, 39,222,210,164,  2, 17,140, 68,225,118,134,101, 85,218, 70, 43, 17,176,  4,213, 33, 88,130,140, 55,  7,120,211,
-201,196,120,201, 99,167, 26,147, 28,  6,212,134,255,245,  8,237,  8,141,119,131,145,184, 57, 96, 29,175, 92,146, 72,231, 55,  2,
-169,182,241, 37,160, 52,239,183, 73,100,125,239,222, 52,207, 90,107,153,166,157, 93,237, 71, 69, 65,159, 21,180,170,214, 32, 13,
- 37,102,  7, 66,171, 67,159,235,110,122,244,246,131, 62,115,151,251, 44, 60, 77,243, 56,151,106, 51,115, 78, 57,205,251,218,247,
-195,208,247, 90,138,185, 35, 19, 49,109,182,219, 37, 48, 69, 87,121,224, 46,166,124,224,174,251, 82, 29, 12,  9,202, 84,  0,176,
-239, 18, 75, 42,181,154, 25, 90,100,140,213,162, 69, 40,153,218,229,118,156,230,249,246,173,195,239,127,239,253, 55,111,221,149,
-148, 46,247,211,171,227,227,203,237,102,179,189, 42,197,166, 82,246, 87, 87,155,203,203,187,183, 15,135,174,171,181, 76,181,180,
-232,187,229,165, 96,226, 68,130,196,179,106,164,111,  2,  6,143, 73,220,247, 92, 17, 40, 98,179, 16, 42, 40,132,159, 13, 94,190,
- 58,189,119,235,206,186,239,174,174,119, 93,150, 34,210,177,204,117, 70,132, 36,169, 75,221,131,123,247,254,147,127,248,159,253,
-241,223,251,251,255,213,127,253, 95,188, 62, 63,145,212,215, 90,135,156,106, 64,161,193,213, 13, 44,208, 84, 64, 12,138,206,232,
-213, 61, 17,177, 51,  1, 86,116,138,222,144, 22, 51,155, 80,228,205, 57,186,106,136,102, 49, 20,238, 65, 46, 55, 51, 32, 69,  4,
- 13, 34,141,147,106, 93, 13,171,237,126,118,130, 33,165, 89,177,130, 18, 97, 66,226,196, 89,114, 45,102,106,166, 33,211,141,238,
- 49,170, 61,114,112,171, 26,240,103, 97,174,181,170,129,214,146,115, 71,109,127,132,224, 80,212, 56,156,136,  6,206, 65, 89,112,
-  6,172, 53,198,179, 70,200, 93,162,185, 54,227,191, 11, 23,111, 29,166,  5,147,133, 16,212,133, 25,162,111,136,  0,  5, 98,104,
-142,141,118,159, 81, 37,245,133,115, 27,228,164,208, 23, 51, 54,215,163,153, 35, 84, 64, 84,232,144, 50, 10,103,154, 75, 13,131,
- 96, 80,172,188, 56, 13, 24,  9, 59, 49, 40,176, 54,110, 38,  0,116, 50, 50, 42,174, 45, 39, 25, 32,188, 72,101, 46, 51,149,113,
-242,203,171,171,241,185,178,208,173,131,245,122,181, 10,128,  1, 49,247,194, 93,151,135, 62, 53,205, 14, 19,139, 28, 30,172,135,
- 46,175,186,238,112,189, 94,173, 86,  7,171,129,115,150,212, 31,172,215,253,234, 64,186, 62,165,238,240,246,189, 97,125,120,175,
-206,143,222,253,174,187,215, 50,109,206, 47,174,182, 87,155,203,205,229,245,245,243,151,199, 79, 95,157, 94,109,183,175, 55,155,
-253,118,187, 25,103, 33, 20,100, 71, 20,145,106, 32,238,  8,145,161,  6, 11,223,209, 17,113, 65,149, 52,195, 14, 52,209, 28,  2,
- 27, 53,137, 54,  2,139,171, 18,135,123,147, 56, 33,  2,150, 18,148,164,118, 48,248, 34,225,128,165, 64,140,227, 71, 23,225, 75,
-164,241,181,172,149,144, 12, 68, 59,217, 34,206, 61,142, 40,228,  8, 47, 77, 45, 74, 58, 86,191, 65,196, 70,110,171,226, 80,151,
-184, 44,147,155,106,142,136,236,145, 19,  7,132,132, 70,214,224,187,224, 76,209,255,181,235,188, 33,144,141,220, 42, 17,180, 18,
- 41,102,223,209,209,185, 52,201, 22, 18,169,133,  0,  5,102,  7, 50, 66,118,208,162,  6,  6, 70, 64,128,225,210, 32,  0, 34,116,
-226,224, 57, 33,204,210,102, 42,209,  3,112,  3,202,  0, 49,122,203,217, 36,108,223, 26,180,242, 25,221,212,  1,208, 90,253,222,
-174, 77,102, 15,148, 67, 12,214,153,150, 14,107,233,131,161,221, 78, 49,127,  9,132, 66,195,218, 52,166,  4, 53,228,100,236,164,
-106, 81,171,182, 87, 62,200,141, 95,136,  8, 10, 36, 84,139,167,188, 62,184,125,247,155, 47, 62,123,246,236,233,249,249,185,187,
-139,228,213,170,235,242,192, 34,110, 70, 76, 73,132, 66,187, 35, 12, 58,129,217,237, 91,183, 58,217, 85, 55, 53,155,166,113,158,
-209,  0, 18,137,112,  7,110,106,154, 36,153,217,110, 63,  1, 57, 19,215,121,218,110,183, 14,216,229,220,137, 56,186,186, 78, 69,
- 17,208, 85,171,107, 38,174, 90,186,212,203,225, 26,129,153,161,206, 37,206,146, 18, 28, 49,  7, 83, 43, 84, 14,111, 29,125,252,
-206,163,223,252,209,143, 31,189,243,206,241,139,151,191,248,244,211, 95,126,241,249,102,179, 27,231,113, 46,179,153,109, 54,155,
-121,156, 51,147, 57,198,220,198, 84,139, 90,202,  9,205,113, 66,106, 24,174,176,  9,144,185, 86,211, 64,187, 84, 43,128, 14,106,
-200,136, 72,174, 86,230,226,234,156,155,166,202,205, 94,190, 58,121,247,157,239, 76,165, 94,110,182,  4,168,238,104,190,199,253,
-225,193, 97,146,244, 71,127,248, 31,253,227,255,244, 63, 63, 56, 90,221,187,119,255,213,171, 19, 17,103,192,120, 98,114, 74,212,
-200,245,128, 72,161,252,142,221,187,171, 11, 83,206,201, 17,231,121, 90,128, 29,206,  8,  4,192,142,138, 55,251,164,120, 39,  8,
- 92,205, 65, 40, 64,129, 52, 87, 87,173, 96,110,100, 76,  4,238,243, 92,  0,161,134, 11, 24, 80,213,  8,208, 69,146,100,166,197,
-  1,143, 46,140,251,192, 93, 47,189, 75,248,230,144,192,162,136, 48, 15,171,214, 92, 52,158, 76, 66, 68, 66, 85,117,  2, 20,172,
- 65,113,137,238,  3,193, 99, 15, 10,  4, 26,188, 12,174, 22, 53, 50,128,213,196,157, 85,171,165, 32,226,220, 18, 21, 20, 41,153,
-107,109,146,225,118,  6,223, 56,119,149, 21, 35, 50,199, 12, 13,147,224, 52, 53,246,121, 83,211, 44, 37, 61,160, 58,139,187, 33,
-179, 56, 45,  0,118,114,196,128,110, 18, 71,120,100,155, 55,187,153,171,115,130,132,172,168,141,224, 73,139,193,144,212, 28, 48,
- 16,160, 12, 54,234,118, 28,175,182,123, 52, 63, 90, 13,196, 36,140, 41,103,  2,226,196, 57,229,156,169,151,156,115,151, 19,119,
-146,250, 85,238, 36, 31,172,250,245,122,117,216,245, 67,223,229,174,203, 93, 62, 24,250,156,187,220, 13,171,131,117,202,125,215,
- 13,136, 60,172, 15,134,213,193,  3,  2,175, 90,107, 21,226,177, 76,  4, 54,207,243,171, 87,103, 63,255,236,211,111,158,189, 56,
- 62, 61, 27,119, 99,213, 98,176,159,102,245, 27,106, 55,  0, 16,  8, 18,170,107,192,199, 57, 14, 28, 84,111,117,234,205,120,208,
-192,123, 38,  5, 39,226,200,133, 54, 53, 53, 71,  0,117,207,204, 69,153,200, 35,212,138, 48,166, 46,173, 83, 36,112, 14,  5,162,
-  6,134,207,  9,176, 58, 80, 67,236,128,187, 99,140, 98, 56, 56,225, 97,202, 52, 55, 11, 45, 15,186,183,143,213,205, 85,137, 72,
-131,150,186,212,236,  0, 26,118,132,  0, 48, 48,177, 27,186, 43, 33,  3,130, 86, 69, 71,  5,131,  8, 11,114, 55,181, 70,111,113,
-  3, 48, 87,138,216, 80, 47, 14,230, 16,224, 48, 48, 68,177,  8,222, 19,  6, 51, 48,192,132,209, 70,132, 82,220,212, 41, 42,  7,
- 67, 17,  2, 51,115,136,177,146, 91,113,  5,105,125,135,108,161,  0,  0, 32,  0, 73, 68, 65, 84,184, 71, 67, 96,  8, 25,255,146,
- 59,218,238,171,112,241,134,176,183,  5,151,198,172, 81,218, 20,101,193,124, 59, 16,134,101,180,141,234,205, 34, 79, 36,196,141,
-109,187, 26, 94, 40,186, 49, 77, 53,197,170,135, 44, 30,150,180, 63,  0, 39,202,253,161,  3,164, 44,193,169,  3, 66, 20,  4,242,
-105,103,132,155,191,253,229, 95,254,242,151,159,238,166,130,177,234,169,117, 26,199, 59,247,243, 81,215, 87, 45,243,172,251,237,
-110, 44,101, 63,207,166,181,168, 10,194, 52, 77,115,173,196, 56,205,138, 14,194,140,132, 68, 70,146,136, 72, 68,194,184, 73,140,
-106,186,185,190, 38,162,131, 97, 93,180,146, 67, 68,242,100,118,  9,178,146,164,158, 83, 74,121,158,107, 18,156,171, 86,181, 90,
-235, 92,234, 60,205,234,150, 72, 50, 34, 39,118,164,247,222,251,240, 63,248,147,255,240,141,  7,111,237,246,151, 47, 30, 63,249,
-197, 47,127,241,229,227,167,103, 23,175,167,185,160,112,153,117,183,219,158, 93,108,214,125, 71,196, 28, 82, 10,119,162, 48, 27,
-169, 46, 20,190, 22,113,  8,110,106,204,132,  8, 66,194, 40,128, 40, 64, 34, 50,142, 83, 78, 20,241, 87,234,234,158, 92,221,221,
- 88,120, 42,243,225,106, 93,212,198, 89,207,183, 87,105,191,251,147,191,247, 31,167,126,248,238,187,239,223,190,115,239,224,240,
-246, 87, 95,253,226,127,252, 31,254,187,191,252,229, 95,221, 57, 60, 50,115, 53, 51,245, 26,167, 10, 84, 12,188,172,171,  8, 16,
- 65, 80,  3,147,176, 35,152, 26,145, 44, 10, 89,119,192,112, 66, 19,179,215, 86, 65, 17, 71,178,161, 46,162, 18,104,  5,105,195,
- 78,169, 27,238,231,210,231,100,142, 86, 21,208, 74, 53,228,  6, 13,159,107,217,108,118,111,220, 73, 57,  9, 32,  2,145,151, 26,
-233,198,194,172,106,136, 48,171,129, 25, 33, 99, 91,251,248,130, 11, 53,128,  8, 64, 64, 55, 80, 13,  7, 99,243,210, 73, 34,100,
-210,217, 57,228,  4,228,197,116, 81,241,135, 42,215, 17,145, 57, 19, 41,134, 92,164,217,158,  2, 71,130,112,147,156,237,100, 26,
- 28, 45, 74,146, 56,161, 85,109,229,155, 89,181, 80,230, 52,203,247, 66,206,114,100,131,136, 79, 67,215,246, 69,241,235, 13, 40,
-101,213, 90,  4,168, 25,  3, 84, 51,199,136, 60, 17, 39,180,234,140, 75, 10,230,141,158, 97,  9, 68, 13,  7, 37, 19, 17, 97,176,
-131,133, 41,214,197,251, 50,219,  8,136, 59, 70, 22,225, 46, 39,  4, 39,150,190, 99,230,212,119, 41, 49,229,212,173,215,253,144,
-211,208, 13,183, 15, 15,186, 46,247, 57, 31,172,  6, 78,105,189, 26,134,190,207,221,208,119, 93,183, 90,231,188,146,148,136,229,
-104,125, 32, 41, 59,194,155, 15, 31,253,224,163, 31, 77,227,118,115,113,113,177,217,108,206, 47,158,159,157,188, 58, 62,249,230,
-213,203,205,230,234,244,252,178,204,115, 53,219,205,197,171,  1, 97, 18, 70, 71, 98, 34, 66,172,230,130,168, 26,252, 74,  4,226,
-112,158, 70,222,179,147,186,167, 80,112, 51, 21,179, 80, 50,129, 17, 48,154, 59, 82,236, 91,155,236,208,150, 31,203, 92, 35,163,
- 77,  0,  1,136,110,226,197,224,  6,186,139,180,200, 79, 24, 29,141, 26, 60, 44,216,149, 55,250,118, 68, 68, 23, 64,116,171,238,
- 64,204,170, 10,193,250,  1, 70,  2, 80,  5, 52,  3,250, 86,216, 77,168, 85,  9,128,152,151,104, 57,  0, 55,116, 39, 76, 49,221,
-  5,141, 23,131,150,207,207,220, 75, 68, 52,186, 26,  2,  1, 51,184,130, 57, 49,152, 49, 58, 80,242, 27,109, 88, 51, 20,169, 26,
-152,  1,  3,144, 99,149,166,114, 33, 92,200,201,112,  3, 10, 67,230,136,165, 14,161, 17, 18, 96, 83, 70, 54, 36, 27,186, 69,104,
- 71,236, 71,130,157,  9,234, 36,172,177,206,130,197,217,122,131, 31,139,196,154, 24, 93, 49,199,206,  1, 35,199,104, 65,  7, 99,
- 11,188,162,200, 21, 88,210, 55,226,166, 68, 47, 58,207,229,171, 95,254,249,167,159,125, 41, 57,247,  4,243,190,140,211,140,224,
-132,124,241,228,235,187,135,183,193,253,197,233,235,253,180,119,135, 98,150,  8,205,125, 54, 80, 53, 20, 40, 69,193,189,235,134,
-148, 18,177, 18, 50,  1, 22,213,105,156,162,  6,170,181, 24, 88,159,  7, 97,217,207,163,186, 77,134,185,203, 89,168, 86, 29, 58,
-102, 22,117, 21, 17, 53, 45,117,222,237,170,130,154, 66, 45,165, 84,251,224,251,223,253,173,223,252,145,142,219,191,249,213,151,
- 83,165,223,253,221, 63,248,232,147, 31, 51,210,217,201,139,175,190,250,252,233,211,231, 79,143, 95, 94,236,182,213,161,  2,142,
- 87,215, 39,167,103,171, 46, 51,161,144,180, 36, 20, 55, 93,166,222,145,244,118, 99,  3, 23, 22, 68, 48,211, 36,105,201,189, 83,
- 68,209,102,221,142,209, 37,249,162, 77,165, 56,238,156, 14, 86,221, 63,254,147, 63,250,223,255,159, 63,253,236,139,167,136,  7,
- 63,251,187,127,244,201,143,127,231,254, 27,111,237,174,183,251,253,246,222,131, 55, 51,119,227,180, 19, 20, 71, 84,181,170, 21,
-153,176, 26, 82,152,214,113,183,223,229, 36,224,216,155,185, 97, 16,157,204,129, 19, 89,243,139, 71,119,198,  0,198, 76,  6, 77,
- 89, 28,247, 19,199,112, 48,  6,163,241, 73, 39,178,201,213, 52,150, 77, 99, 41,136,126,152, 86,202,232, 32,230, 74,206,153,211,
- 52,239,107,181,106,181,162, 43,128,171,163, 66, 81,141,113,106,112, 75, 56,114, 95,155, 30, 43,244,137, 22, 98,118, 98,  1, 44,
-129, 26, 39, 65,  7, 99, 36,116,143,180, 76,211,170,213,180,106, 16,  2, 29,221,  9,213, 53, 11, 49,146, 98,  5,160, 33,  9,163,
- 42, 32, 58, 71, 73,238,  0,228,  6,238,156,196,172, 78, 83, 64,146,111,194,174,  9, 48, 60,158,205,243,101, 65,209,247,160, 50,
-196, 10,177,233,230, 85,137,164,169,201,219,214,203,129,227, 35,112,207, 18,147, 69, 99,100,101,  4, 66,  7, 19,128,182,164,115,
- 44,214, 64,205,140, 60,107,137, 31, 73,164, 25,183,  9,130,155,182,156,202, 54, 29, 70,226,182,225, 11,179, 32, 34, 49, 76,165,
- 78,243,108,  1,196,210,154, 88,152,121,189, 90,173,251,174, 75,210,119, 41,231,156,187,180,202,185,207,121,200,121,181, 94, 15,
- 93, 90,175, 86,235,190, 95, 29,172,130,179,192,156,239,220,189, 51, 12,  7,  8, 88,181,  2,178,164,116,247,141,251,119, 31, 60,
-240,234, 63,  1, 55, 43,227,126,156,231,114,121,117,185,217, 92, 94, 93,110,142, 79, 79, 95,158,156, 62,125,249,242,228,236,226,
-244,114, 51, 78, 83, 20,240, 36,108,224,130,132,140,113, 63, 45, 14, 98,136, 67, 52,130, 62, 74,109,  3, 29, 89, 64,130,  8, 40,
- 68, 11,205,133, 28,156,188, 21,150, 49,101,139,185, 60,161, 67,176,135, 90, 43,  1,156, 36,166,243,137,152,163,173,138,201,116,
- 28,236, 81,217, 18,163,105,169, 21, 91,134, 93,140,237, 20,195,  0,141,232, 54, 33,176,  1,121,128,245, 34, 33,137,200,220,153,
-197,205,154, 27,  3,205, 85, 23,239,127,187,140, 45,104,201, 49, 14, 33,114, 85,112, 39,116,115, 52, 68,175, 74,216,164,144, 49,
-211,162,144, 57,180, 23,191, 66,176, 13, 73,192,149, 24,  0, 73,171, 11, 64, 68,153,219, 18,153,181,160, 17,  2,220, 29,195,155,
- 27,121,  0,222,180, 36,141,245,182,208,194, 41, 24,165, 49, 70, 15,107, 91, 67, 70,218,226,  0,163,230,132,128, 38, 41, 35,104,
- 25, 77, 77,129,182, 32,103, 17,144, 33, 46, 70, 97,160,152,221,182, 89, 63,133, 30, 73,203,171, 23,143,193,234, 84, 76,213, 18,
- 17,139,168, 57, 18,245,156, 75,153,111,223,186,245,144, 96, 42,117, 30,139, 67,115,138,207,165, 78,230,104,214,173, 58, 68,146,
-224, 30, 97, 50,179,221,180,179, 98,200,236,142, 14,186, 26,214,171,110,152,117,154,230,169, 86, 69,194,148, 82, 98,206, 73,  8,
-153,208, 13,161,148, 58, 78, 83, 81,173, 85,193,112, 53,228,183,190,115,247,131, 31,124,240,238,163,183,223,251,238,251,255,239,
-191,249,183, 63,255,244,235, 55,222,250,222,207,126,246,135,247, 31,188,113,121,121,241,252,217,227, 47, 31,127,249,248,201,243,
-211,203,215,103,103,151, 99,153,183,227,212, 19,226, 60,169,106, 74, 44,115, 60,161, 45,163,188,148,138,102,136, 80,204, 40,210,
-175,154,199,143,  0, 81,193, 58, 64,  8,124,107,153, 24, 33, 39,170,166,238,  1, 92,137,150, 19,130, 42,  8, 64, 85,235,195,251,
- 15, 62,254,232,  7, 10,248,195, 79,118,127,231,247,254,152,152,190,248,252,231,156,153,145,118, 87, 23,127,254,239,254,197,201,
-171, 87,239,127,239,123,231,155,139,221,238,218, 81, 28, 17, 84,179,112,180,212,146, 18,206, 37,120,174,166, 86,162,250, 64,  7,
-211,117,119, 48,169,109,199, 17, 16,144,165, 25,152,156, 66,  1, 69, 76, 84, 66,  1, 30,203, 72,160,229,160,  9, 98,  9, 26, 48,
- 83,226,100,224, 99,209,161,106,192, 43,  8,  0,128,230, 50, 19, 81, 18,206, 57,117,156,138, 22,  7, 53, 52,  4,138,  3,190, 46,
-185, 64,136, 24,  2,251, 88,143, 48,161, 11, 79, 85, 83,219,103, 66, 53, 37, 64, 65,172,213, 65,160,122, 21, 16,  7, 68,161, 37,
-129,202,173, 24, 51, 90, 49, 23,100,  2,175,128,224, 67, 78,157,164,125,169,204,  8, 70,137, 96, 87,141,192,213,173,106,101,100,
- 38,208,200, 45, 13,205,  7,133,166,195,170, 57,  1,168, 42,  0,166, 76, 96, 80,205, 58, 34, 17,132, 57,170,127,178, 72, 91, 10,
-251, 58,144, 32,155,171, 45,216, 63, 48,104,174, 40, 68, 82, 47, 20,122,208, 48, 72, 32, 35, 36,225,170,238,160, 10,102,  0,140,
-210, 18,145,155,149,188,129,158,111,184,221,130, 28,125,125,  5,167,  8,146, 79,204,222,236,154,128,230,224,213,180,104, 53,  3,
-  7,155,198,145,  0,153,145, 56,245,125,238,146,112,112,238, 68,134,156, 82, 74,235,190, 63, 88, 13, 71, 71,  7,  7, 67,183, 94,
- 31,158,158,190, 28,134, 33,119, 67,196,115,117, 93, 30,134, 30,156,115,215, 17, 11, 33,229,213,176, 90, 31,222,190,115, 55,  8,
-248,213, 96,222,239,231,105,183,189,222, 94, 92,111,158, 62,123,241,242,244,228,217,139,227,215, 23,231,199,175, 47, 94,157, 95,
- 68,184,146, 26,  9, 53, 76, 90, 40,241, 19, 67, 88, 53,132, 81,136,171, 86, 68, 32,194, 20, 73, 44, 17, 70, 68,120,147, 40,198,
-141, 84, 24,228, 32, 52,  0, 14, 57,166,155, 35,170, 25, 49,113,131,226, 96, 78,172, 45, 78,202, 23,134,113,171,226,131,209, 27,
- 80,129, 40,  8,128,  0,140,161, 97, 65,154,218,165,229,222,185, 18,182,176, 45, 22,114, 37, 85,109,235, 99,226,112,155, 55, 91,
- 41, 81,208, 67, 90, 31, 28,154,  5,111,149, 81,112, 47,181, 70,187,128,213,144, 17, 53,242,170,204, 72, 24,128, 10, 40, 35,  7,
- 67,200,221, 65,136,147,  8, 17, 54,185, 15, 97,211,171,132, 69,106,129,237,199, 94,  9,  2,251, 15, 30,233, 86, 77,210,190, 88,
-162,226,235,113,129,249, 68,193,190,132,143,104,148,159, 45,180,199,173, 85, 66,110, 72, 76,148,227, 94, 92, 76,128, 49,225,191,
-185, 58, 29,106,160,165,219,122, 25,  9, 41,229,243,227,159, 63,126,254, 82, 29,227,  5, 51, 32, 22,234,178,152,122,159,147,100,
- 70, 55, 53,216,237,103,119, 55,175,234,110, 34,100,184, 62, 76, 17, 72, 49, 77, 19,  0, 86,175,117,170,101,156, 13, 16,208, 19,
-146,  8, 13,253,138, 16,175,199,136,235,116, 97, 73, 89, 82,202,137,176,186,162,186, 90, 81,245, 88,192,190,253,157,183,222,122,
-235,173,119, 31,125,231,209,163,119,190,243,240, 97, 55, 28,254,249,159,253,235,255,237,159,253,175, 87, 91,252,221,223,255,251,
- 31,124,252,145,150,242,226,249, 55,199,207,158, 60,123,254,242,155,167, 79,159,159,156, 92, 94, 95,143,115,241, 50,157,159, 95,
-222,187,125, 68,132,130, 72,190,180, 41,110,193, 23, 71, 70,  4, 98, 96,194, 57,145, 32,230, 96,239, 50,  3,  1,  8,210,108,154,
-148, 16,157,132,201,205, 13,168,125, 52,128,142,230,192,200,184, 80,176,199,185,188,247,232,157,238,246,123, 31,252,228,173, 15,
-192, 95, 60,123,252,111,255,236, 95, 50,165,  7,111,126,103,191,191,250, 87,255,230, 79,  9,169,147,180,234,134,239,190,247,221,
- 95,252,226,231, 14,128,142,234,238,106,136, 52,149,  2,238,171, 46,  3, 17,152,  2,161, 56, 77, 53, 58, 80, 35,196, 94, 36, 26,
- 97, 70,106, 88, 56, 52, 64,137,237, 37, 54,194,115, 32,106, 29,  1, 57, 84, 93,216, 44, 90,236,177,175,129,170,102,110,137,210,
- 52,149, 74, 34,174,213,177,204,165,203, 29, 18,205, 90,201,191,165,203,198,120, 54, 56, 71,181,121,208,140,137, 67,221, 24,226,
- 20,170,106, 28,118, 84, 10,148, 49, 39,  9,  9,252, 18, 44,217, 34,126,208,111,104,124,158,  4,157, 44, 92,154, 44,108,230, 99,
-153, 29,169,153,196, 69,176,204, 72, 45, 36,220, 12, 12, 45,146,234,  8, 64, 29, 98,247, 83,106,141,111,187, 86, 75,137,193,201,
-172,106, 85,167,  4,109,183,231, 17, 62,201, 20, 22,  9, 50,115, 64, 35, 36,213,182, 81, 32,102, 98, 14, 51,160,  3,146, 97,157,
-103,179,138,144,131,222,179,204, 83, 33,117, 92,180, 68,218,178,162, 49, 50, 24,152, 35, 52, 91,174,  7, 64, 56,230, 73, 10, 30,
-159,132, 81,117,227,130,232,176, 68, 77, 88,108, 29,201,201, 24, 89, 34,207, 32,165,177,214,185, 96, 53,215,221,190, 99, 41, 86,
- 50, 51, 16, 49, 75,159,211,170,239, 87, 67,119,208, 15,  7,  7,195,106,232,134,110,232, 36,113,146,190,147,156,250,174,147, 62,
-119, 73, 18, 11, 15,235,149,112,150,148,136,115,206,132,144, 88,100, 37,135,235,195, 59,111, 17,127,240,193, 71,228,182, 31,199,
-221,118,187,217, 94,191, 62,191,184,188,220, 60,121,241,252,244,252,226,122,187, 59,191,186,222,239,167,253, 60, 86,211,162, 96,
-  6,106,234,  0, 73,  8, 64,136, 82, 80, 43, 34, 30,189,160, 34,128,196,254,201,  1, 16,133,168, 90,108, 91, 64,150, 21, 46, 17,
-  9,177,153,133,228, 12, 96, 33, 96, 97,155,237, 45, 27,164, 37,181,193, 35,  0,189,113,162,218,151,  3, 97,152,219,160,  5, 76,
- 89,219,232,146, 59, 68, 30,113, 51,101,  0,152, 26,130,  3, 50,160, 11, 80,117,107,163,  9,102, 86,119,110,100, 98, 36,116, 69,
-175,113, 90, 54,131,149,187,215, 82, 89,210,183,243,109, 10,254,170, 75, 12,175, 20,221,193,188,136, 18,152,137,199,227,205,228,
-166,128, 76,139, 50,184,109,161, 27, 70,167,193,219,190, 37,138, 53,229,145,  7, 21, 18, 29,136,184,165, 43,181,214,102, 49,158,
-181,196,113,  6,114, 88,240,128,113,113, 32,177,164, 28,122,136,184,139, 99,137, 71,230, 72,201,173,132, 15,243, 70,214,138, 14,
-200,172,181,170, 78,183, 14, 15, 55,215,251,253,126,156,203, 92,107, 40,112,153,  5,175,167,110,232, 82, 41, 87,175,175,174,171,
- 43, 90, 16,  1, 67,125,203, 72,153, 25,139,214,170, 74,  8,251,221, 56, 77, 83,117,  0,128,196,204,201, 51,115, 85, 43,101,106,
-  3,100, 48, 17,202, 89,180,214,205,126, 86, 83, 65,236,251,244,230,253,187, 63,252,240,163,159,254,206,239,124,247,  7, 31,215,
-105,203,156, 16,241,223,255,217,191,250,226, 87,191,122,118,124,241,157,119,222,255, 71,127,240,199,221,176,222, 92,158, 93,158,
- 29, 63,127,252,228,155,103,207,190,122,250,236,197,201,217, 56,207, 86,244,122,187, 57, 90,245, 44, 40,194,166,206, 72, 36,100,
-136,146, 90,190,149, 57,148, 90,197, 57, 72,167, 41,230,110,238,166,198,129, 97, 37, 12,196,146,  8,171, 66,  2,156,230,162, 86,
-  1,169,170,102,136,137,135, 26,180, 66, 16,  9,126,248,209,199, 51,201,211,103, 95, 62,127,246,245, 95,252,213, 95,215,121,255,
-206,219,143,142, 14,142, 62,251,244,175, 94,190,120,241,232,209,163, 97,232,137,249,173,251,111, 92, 60,120,243,236,242, 28,118,
- 38,196, 69,103,145, 62,130, 39, 17,157,212,136,136,128,170,169, 16,  4,175,168,154, 38,201, 68,228,224,213,205,209,153, 57,144,
- 46,141,213, 23,214,133, 24, 14,180, 16,238, 72,214,132,234,150, 76, 25,113, 50,205, 64, 76,116, 61,142,135,136, 97,106,139, 90,
-136,144, 12, 92,205, 84, 45,167, 36,200, 68,162, 62,131,130,113,188, 75, 16,100,172,170, 45, 48, 20,151, 49, 35, 34,219,188,100,
-196, 46,161, 81,113, 44, 38, 78, 22, 65,141,205, 53,233,  8,136,194, 30,130,238,155,228, 64,  4, 71,163,120, 81,  9,196,209,204,
-  2, 69,128,134,140,130,137,104, 12,194, 53, 27,129, 25,144, 99,151,115,169,  5,192,154, 43, 31,121,154,103,  2, 72,188,100,158,
- 16, 32, 48,121,147,146, 34,  2,  9,183,238,184, 41,131, 61,  2,183, 35,215, 20, 22,231, 61, 73, 66, 47,110, 74,145,167,  8,168,
- 97,146, 69, 66,224, 86,183, 42, 50,123,133,136,148,111, 59,132, 26,224, 19,112, 95, 34,250,144, 48,200,230, 16, 97,120, 26,155,
-191, 22, 95, 25, 90,146,224, 45,148,128, 59, 32, 18, 65, 85,  3,212,121, 42,202, 58,142,211,229,110,116,132,163, 97,117,112,216,
-175,251, 85,151, 83,159,115, 78, 28,137,116,189, 36, 97,238,115, 94, 13,253,170,239,147,112,215,247,135,221,208,117,169, 27,114,
- 78, 61, 49,231,174,235,187, 78, 56,115, 78, 11,225,157,214,195,122, 88,175,222,122,240,150,153,254, 12,126,199, 74,221,238,119,
-187,235,237,213,118, 60, 61,127,117,118,113,249,234,236,252,213,217,217,171,215,175,167,221, 84,204,107,169, 85, 11,  0,115, 66,
- 71, 23, 97, 50, 90,118,206,128,224,196,228,  8, 34, 82,107,141,  9,179,129,  5, 75,199,192,235, 52,249,162,244,178, 22, 10, 16,
-138,117,108, 34,109,167,248,131, 16,151,255,211,104,198, 24,  3,108,  3,163,156, 96,137,154,102, 55,211,106, 80,193, 35, 54,189,
-213,254, 68,161,186, 66, 39,  0, 36,171,222, 76,251,132,232,160, 80, 17, 82,132, 95, 70, 76,200,141,112, 62,182,236, 78, 56, 23,
-195,106,204, 36, 76,106,102,166,129,110,247, 37,  8, 29,221,201, 17,205,160, 22, 89, 52,187,186,100, 34,195,146,157, 71,110,218,
- 46,177, 16, 40, 45,109,202, 13, 40, 51, 56,246, 45,154,181,101,105, 69,245,111,191, 70, 60,  0, 71,242,198, 75,107,203,230, 32,
-213, 97, 48, 32,144, 34,200,165, 41, 94, 91, 55, 96,203, 28,185,233, 70,155,182, 20,220,173,158,156,158,157, 92, 92,  9,128,176,
-184,131,214, 49,240,126,196, 82,180,150, 93,157,199,253,229,213,182, 17, 57,213,153,129,129,164,203,128, 56,105, 85,173,227,126,
- 52,247,237, 84, 45,  2, 16,136, 14, 14,214, 67,223,153,154,154,166,148, 23,153, 40,149, 82,166,105, 74, 73,134,220,191,247,238,
-219, 63,253,201, 79, 62,250,232,163,219,119,239, 29,221,190,173, 36,175,158, 63,203,196,147,109,255,236, 79,255,207,207,126,241,
-183,235, 91,111,254,193,223,251, 71,239,125,247,251, 69,203,217,139,167,175, 94, 61,121,241,226,213, 23, 95,125,243,245,179,103,
-231,219,171,113, 63,127,231,222,157,205,197,197,181, 57,162,  4,200,218,106,204,193, 48,120,138, 45,  3, 60,254,234, 28, 98, 80,
-118, 66,  9,116, 13, 68, 66,119, 24, 27, 80, 88, 70,157,106,213, 33,119, 10,174, 22, 68, 67, 68, 98,175,102,174,110,238,142,102,
-112,184, 94,191,253,230, 27, 47, 30,127,250,213,151,191,124,249,252,249,135,143, 30, 12, 57,175,110, 61,156,116,126,250,252,133,
-147,151,121,222, 19,247, 93, 62, 88, 29, 60,124,240,240,245,229,165,185,107,169,147,170,176,  1, 98,177,218, 33, 21,119,114, 27,
-186,172,181,201,174,212, 65, 13,  4, 97,149,211,118, 42, 13,226,132, 64, 76,141,122,234, 81,190, 16, 51,151,144, 73,182, 90, 20,
-153,136, 96,113, 96,151,234, 57, 57,250,126,154,  9,168, 75, 82,180, 38,226,224, 96,187,163, 32,207,141, 27,111, 49, 20,117,188,
-209, 48,196, 99,103,173, 91,185, 41,120, 16, 45, 58, 60,187, 57,232,176,133, 73, 26,170, 22, 98, 81,117,171,170,234,138,142,  0,
-218,158, 68,172,173, 14, 50,  0, 76,146,144,121, 30,107,173,154,136, 28, 41, 10,179,218,118,221,165,106,141,240, 38,152,  1, 29,
-212,109,174,133,  0, 29,  8, 93, 37, 69,143,225,234, 96,  0, 41,164,244,230,180, 56,223,185, 49,171,188,225,  9,137, 98,132,175,
-  8, 72,216,165,180,155, 39, 85, 21, 78, 96,115, 32,  6,110,118,134,170,150, 16, 42, 49, 33, 72, 64,126,192,155,218, 30,192,105,
- 17,229, 47, 57,166,204,225,113, 15, 84, 26, 91,219,109,  9,136,217, 28,153,124,236,168,205,170,105,200, 24,152, 95, 37,230, 46,
-231,185,106,172,171, 75, 85, 17,100, 34, 55, 45,170,103, 85,181,214,169,175,225,204,236,187,156, 18, 35, 80,  4,164,  8, 19, 17,
-102, 73, 57,165, 46,167, 85,206, 41,165,126,200,235,126,232,186, 60,116,125,159, 19,  3, 96,238,250,148, 36,194, 78,186, 60,116,
- 61,178, 32, 18, 75,252, 98,215,175,214,247,136,222,211, 71,115, 41,155,171,203,113,183,175, 90,231,185, 92, 94, 95,158,190, 62,
-127,117,118,113,242,250,108,187,223,239,199,105,183,223, 79,181,132, 93,153,152, 32, 32,180,192, 76,136, 34,165, 22, 71,230,196,
- 68, 24,254, 79,166,182,250,158, 77,209, 13,204,  9,  2,  0,185, 56, 66,233,134, 65,115, 35,233, 84,184, 33,209,199,  4,128,170,
- 27,186, 57, 97,219,163, 64,139,138,197, 16, 57,199, 64,178,241, 72,109,113,252,181,165,177,  1, 16, 16, 35,178, 91,245, 27, 22,
- 11,115,187,225, 27, 17,166, 69,224, 56,128, 43,104,211,222,131, 59, 88,213, 72,102, 55,231,170, 21, 93,  1, 65, 90, 77,141, 72,
-204, 30,138,131,  5, 16,130,209,140, 99,172, 82, 99,120, 67,205,166,106,182,120, 86,  9, 99,185, 76,116, 67, 87, 88, 20,149, 75,
- 11, 13, 10,106, 55, 94,  3,136,206, 28, 16,  9, 35,162,215,108, 94, 92,143,203,246,191, 49,229,155,133, 21, 29, 92, 45,118, 14,
- 93, 63, 28, 30, 12,125,146, 59, 71, 71,166, 90, 77, 17, 96,156, 39, 36,210,106,238, 32, 41,111, 46, 55, 87, 83,205,136,197, 12,
- 25, 17,180,154,237,118,251,185, 94,101, 97, 68,154,213,118,211,232, 14,125,215,221, 59,186,221,245,  9,137,208,161, 98,181, 82,
-231, 82,193,161,154, 30, 12,253,155,111,220,255,248,195, 15,126,242,227, 31,223,191,127,255,240,246,209,176, 62,208,234, 70,248,
-252,233,147, 97,117,132, 96,191,250,235,191,248,197, 47, 62, 61,187,216,253,224,147,223,255,248,147,159, 14,171,213,118,119,125,
-117,250,242,248,213,179, 79, 63,251,252,139,199, 79,142,207, 47,199,253,126,183,219, 94,109,118,223,127,112,239,217,184, 85,112,
- 32,207,194, 12, 88, 21,162, 76, 99,164, 68, 84, 98,113, 14,102,213,156,216,220, 56,110, 57,194,161,235,218, 80,  2, 80, 67,245,
-  4, 22,214,205,128,189,138, 96,153, 27, 11,136,200, 67,164,133,  0,238,250,224,238,189,219,195,208,247,233,183,126,240,193,227,
- 85,247,240,193,157,127,255, 55,191,120,248,189,183,182,219,205, 79, 63,249,237,111,190,249,162,212, 57,107, 46,165,100, 73,111,
- 62,124,227,228,236,228,229,217,169,122,101,164, 82,212, 77,  9,160, 70, 94,135,182, 71, 55, 28,186,166, 26, 26, 62, 97,206, 82,
-139,  3,  3, 48, 32,152, 35,146, 32,  2, 82, 85,107,110,212,  5,245,  7, 13, 68,228,145, 46,239,136,234,106, 36,232,110,128, 87,
-227,136,216,103, 33, 67,220,207,133,137,170,  1, 16,218, 60, 71, 43, 92,172,130, 27, 19, 53,226, 69,108,116,154,154, 26,  8, 97,
-154,231,185, 86,  9, 66,177,131, 87, 51,  7, 19,101, 70,195, 54,135,172, 85, 19,179,185,106, 85, 68, 39,247,190, 75,165,170,131,
- 33, 80, 60,151, 72, 80,107, 29,107, 61,224,100,224,148,144, 72,204, 45,178, 40,173,214,102,161,  5,208,170,130, 75,105,239,110,
-170, 10,102,166, 20,121,238,228,166, 80, 93,209,219,110,193, 91, 39,237, 13, 99, 69, 12,209, 53, 24, 58,122, 52,189, 81,231, 16,
-160,112,138,156,100, 95,252, 34, 76, 64, 68,174, 26,191,221,192,137,168,106,  1, 67, 74,124,131, 89,  9,251,212, 66,124,197,152,
-139, 70, 20, 30, 44,208,143,200,161,246,150,121,225,106, 10, 33,149, 10,  6, 32,  0, 53,168, 47, 55,109,191,121, 85,141, 19,206,
-220,  8,254,127,166,222, 44,230,178,236,186,239, 91,195,222,251,156,115,239, 55,213,216, 53,117,117, 23,123, 96, 15,156,154,148,
-154, 52, 69,137,140, 34, 89,163,165, 64,136,148,216,112, 98, 35,  1,132,  0,  1,140, 32,121,201, 75, 94,  2,  4,240,107,134,183,
-  0,  2, 12,219, 72,140,  4,118, 98, 57,138, 68, 77,148, 41, 74, 28, 76,154,166, 66,182,122,238,170,238,174,233,171,250,230,239,
-222,115,246,222,107,173, 60,172,125,190, 38,186,208, 15,141, 66,117,213,173,115,247, 89,251,191,254,255,223,159, 90, 51,  6, 51,
- 51,139,138,136,156, 74,166, 64, 82, 36, 70, 78, 33, 16,227,106,181, 38, 98,255,252, 23, 49,245,139, 46, 16,  5, 14,125, 23, 83,
-136, 41,165,141,161, 75, 41,165,232, 51, 60, 96,224, 33,117, 41,134,141,229, 50,246,105, 72,125, 23,135,152, 56,164,238,224,232,
-104,127,127,255,202, 19, 79,220,188,121, 35,134,136, 76, 68, 65, 85,107, 41,165,150,211,213,122,119,247,209,201,201,225,193,209,
-241,254,209,209,222,254,193,238,254,193,254,193,193,148,115, 22, 29,167,177, 40, 84,133, 72, 76, 72,204,236, 23, 52, 78,  6,136,
- 49,114,206,138, 64, 70,172,136,213, 29, 49,136, 13, 17,215, 82,245,138,198,128,136, 20,218,231, 70,205, 20,104, 34, 45,145,161,
-213, 99,183, 32, 70,  1,219,110,166, 21, 84,121, 59,145, 53, 71,189,103,140,212, 16,217,204,107,144,230,142,105,108,185, 78,112,
-208, 77,123,117,  3,241,172, 63,178, 49,162,138,169,136, 35,108,172,250,123,165,165,141, 12, 33,152, 91, 74,125,226,249, 49,198,
-165,155,239,157,254,224,125, 89,126,212, 58, 14,109,190, 71,250,128,222, 32, 60,103,152,183,230,128,179,102,126,108, 56,130,  6,
- 26,155,171,187,189, 63, 93,  4, 64,230,247,137,139, 88, 98,170,128,179, 81,167,237,150, 13, 24,137, 73,106, 85,179,235, 55,158,
-140,223,253,193,253, 71,143, 13,112, 49, 12, 23,206,109, 93,186,116,145,  1, 57,112,191, 92,162,232, 95,189,246,250,198, 73,175,
- 96, 84,164,130,212, 92,171, 65,223,165,205,141,101,206, 50,150,113,149,167, 46,118,139,161,223, 88, 44, 76,245,232,244, 84,106,
- 69,  4, 81,116,142,202,243,183,110, 62,247,212,205,151, 63,253,201, 23, 95,250,100, 55,244,211, 52,229,113, 13, 28,149,195,131,
-247,223, 89,108,158,235,151,203,187,239,191,245,214,143, 94,187,115,231,222,114,251,234, 47,252,234, 47, 63,113,245,137,213, 42,
- 31, 29,238,157,236, 63,122,239,189,119,127,248,250,235,183,239,222,203, 42,227,122,212, 50, 89, 21,  3,165, 16, 58, 78,135,211,
- 81,201,213, 19,244,138,218,136, 69,160, 28, 56, 23,  4,179, 24, 34, 34,176, 25,130, 23,241,176, 78,121, 17, 35, 19,250,198, 92,
- 77,  1, 73,149,192, 32,132,  0,168,204,228,199,  3,  1, 17,130,104, 69,  0, 10, 20, 98, 16,179, 39,175, 92,221,220, 90, 90, 76,
-112, 98, 67,215, 49,210, 43,159,250,137,184,185,253,225,221, 59,183,158,121, 97, 88,108,148, 50,149, 16, 40, 12, 68,125, 71,195,
-173,167,159,190,115,255,222,241,209, 49,  4,238, 35, 50,115,215,245, 37, 79,145,  8,  8,214, 83, 97,196, 34, 74,132,145,153, 57,
-  0,145, 86,141,204,164, 86, 69, 33,160,154,145,170, 16, 53,187,140,105, 11,244, 32, 84,213,128,132,161,157,245,  6, 22,  3,229,
-  9, 80, 12,169,229, 76,143,198,105, 49,116, 12, 72,136,235, 41,175,199,154,171, 94,218,222, 80, 81, 85, 43,185,213,194,121,161,
- 18,158, 61,108,  4,205, 91,205,129, 85,192,196, 31, 82, 53,  0,194,169,148, 92,100, 72, 48,137,153,163, 12, 68,171,152,248, 68,
- 33, 90,160, 86, 85, 36, 43, 82,171, 59,156,145,209,192,148,198,162,170,218,121,149,152,153,122, 34, 15,128,144,165, 86, 36, 52,
-119,180,155,  1,162,  0, 24,178,104,102,128, 64, 84, 76, 74,177, 24, 81, 43,170, 25,113,112,190, 74,160,153, 20,110,224,181,233,
-218,180, 19,144,217, 62, 89,205,198, 41, 11,181, 33,160,152,170, 40,  0,130, 43, 65,136,  6, 48,169,129, 72, 21, 85, 53, 66,  5,
-195,  8,168, 51, 24,196,203,122,136,192,172,154,121,192,  8, 16, 28,157,137,228,  0,  0, 48, 49, 19, 81, 39,177, 41,128,187,213,
-102,209,138, 60,  2, 38,128, 10,200, 76, 85,140, 16,177,130, 85,175,109,171,  0,177,154,138, 86,223, 13,146,215, 73, 58,116,  9,
-160,150,154, 75, 17, 25,171,234,233, 84, 16,161, 99,222, 90, 46,140, 99, 32,244,100,114, 66,142, 28, 98, 10,125,234, 82,224, 20,
-152,163, 95,138, 56,134,208,119, 93,159,210,176,236,  4,232,248,232,248,202,197,115,227,201,226, 94, 25, 67,232,250,190, 95, 46,
- 54,251,161,163,148, 22,177, 59,183,115,254,234,213,107,181, 10, 24,148,156,205,106, 45, 50,230,188, 26, 79,243, 52,126,120,239,
-225, 95,191,247,238, 59,239,221, 57, 56, 60,200, 69,213, 84,154,232, 66,128,136,200,169,163, 98,101,150, 68,196,196,144,  3, 27,
- 74,123, 88,  9,145, 20,102, 59, 84, 11, 98,181,154, 17,103, 21, 89, 85,207,111,121,242,209,154,235,209,115,160, 86, 85, 26,150,
-151,208,  7,  8,100,179, 98,226,  3, 10, 17,  3, 25,145, 83, 31,204,  8, 64,220,150,128,102, 14, 55, 84,164, 90, 36,240,217, 37,
- 21, 60,245,  6,228,125,233,134,100,236,249, 88,113, 23,103,195,222,184, 27, 93,125,113,235,101,167,103,130,  9,  0,  2, 27,233,
- 28,  4, 68,244,106,  7,247, 98, 99, 91,200,182,127, 33,179, 63,185,243,127, 52, 34,244,216,246,220, 44, 77, 90, 42, 68,155,  1,
-113, 49, 32,  1,161, 57,229,192, 42, 84,197, 64, 31,189, 51,  8,193, 64, 68, 13,176,150,178,117,238,226,114,115,145,213,114,145,
-147,213,234,228,244,164,139,253, 98,209, 41, 64,  8, 92,171,189,183,251,240,222,238,158, 39,252, 93,233, 76, 49, 84,178,253,189,
-195, 85, 25,  3,113, 23, 83,138, 73, 85, 31,237,239,231, 82,212,172,235,210,197,157,157,231,110,221,124,250,214,205,207,124,242,
- 51, 55,159,190,149,250, 84,204,166,213,180,127,184,175, 85,250,229,166,  2,222,127,255,131,205,243,151,215,235,211,111,254,197,
-159, 61,188,119, 47,215,240,212, 75,159,251,212,167, 63, 27, 98, 56, 57, 57, 57, 61, 57,218,189,123,231,173,183,222,122,253,221,
-247,246,143,143,166,154,115,206,  7,143,119,183, 54, 22,165, 86,100, 38,164,173,173,173, 71, 71, 39,204, 20, 42, 68,138,163,101,
-255,150, 82,104, 32, 38, 81, 43,181,228,154, 99, 76,171,169, 46,  7, 70, 36,  5, 68, 14,203,190, 19, 83,  3,255,139, 48, 14, 64,
- 66,  2,192, 10,203,110,113,202,167,185,120, 24,  3,  9, 67,151, 12,193,138,  8,152,221,188,121, 29,152, 85,229,228,248, 52,117,
-195,198,246,230,202, 22,167,185,174,215, 99, 63, 12, 59, 91, 91,251,251,187,139,110,168,165,148, 88,134,110,216, 88,110,189,240,
-236,179,223,252,238,247,242,148,193,176,239,250, 82,  4,137,200,154,213,137,252,193, 51, 16, 53, 21,  5, 53, 10, 36, 89,134, 62,
-173, 86, 35,  2, 38,142, 99,201,137, 73,114,169,162,136, 32, 96,243,196,104,234,200, 61, 50,173, 78,191,182, 10,  0,222,160,134,
-128,136, 99,201,227,148,185,239, 87,211,116,114, 58,114,224,245, 52,238,238,203, 88, 13,  9,157,188,  8, 58,155, 67, 90,187,131,
-122,173, 50,154, 97, 84, 82,175, 19,109, 88,119,247,236,159,142,171, 69,159,136,217, 20, 48,180, 10, 38,240,148,134,146, 33,121,
- 29, 19,  4, 91, 79,197,251,160, 19, 33,128,121, 95,121, 45,106, 96, 72,152,136, 68, 32,  4, 32,107,212,120, 85, 45, 34,  6,202,
- 16, 26, 57,157,200,192,136,130,230,214,154,233, 53, 93,129, 73,196,102,216, 82,147, 49,219,103,  9,136,170, 30,133, 53, 49,  5,
- 64, 54, 99,212,170,142,209,  7,195,153,166,173,  2,144,152, 65,132,192,140,200,181, 21, 83, 32, 68,101,242, 24, 21,184,177,218,
-107,164,145,154,150,224, 34, 60,  0, 34,  8,104,128,128,  0, 12,192,212,108, 21,179, 73,186, 17, 97, 61, 70, 32, 96, 80,197,131,
-233,166, 82, 85, 20, 72,153,102,227, 53,154, 25, 49,171,154, 48,165, 16,106, 45,129,189, 45,  4,137,130,155,117,221, 12,  2,  0,
-162, 80, 68,160,148, 85, 21,  3,228,192, 17, 48,164, 20,188,237,135,200, 43,207,250, 46,116,177, 15,140,204,236, 21, 17, 69,181,
- 15,241,116,181,186,247, 96,111,177,236, 23, 93, 55,120,  8, 43,165, 97,185, 12, 33,109,108, 44,186,110,209,197, 33,116, 97,216,
-232,145, 34, 18, 16, 32,  6,234,210,240,138,232, 47,214,124,124,116,116,122,122,242,240,241,238,163,221,189,123, 15,239,223,127,
-244,104,247,209,254,241,233,169,152,228,226,110, 37,194,166, 15, 55,108,187,203, 22, 31,201,215, 86, 93,136, 80, 69, 17,  1,246,
-208, 15,162,143,227,234, 55, 47,183,160, 16,225,220, 12,228, 84,122, 64, 69,191, 48, 33, 32,105,109, 27, 22, 51, 69, 99,161, 74,
-129, 33,207,240,225, 38,142, 32, 24,144,145, 89,  5,176,216,113,235,125, 50, 35, 95,242,138, 48,176,239,219,180,121, 33,205,204,
-  2,121, 99,224,204,181, 62,163,152, 57,242,161, 89,101,230,173,250, 89,187, 30,186, 92,101,106, 10,200,216,168, 82,106, 64, 72,
- 30,175,105, 56,  1,105, 13,136,142,249,157,243,200,166,  2,212,140,165,132,145,187,222, 97,111, 20,135, 58,174, 64,213,130,192,
- 71,114,144,183,166,159, 97,152,173,223, 60,247,236,179, 79,255,209,159,125, 39, 34,230, 90,166, 41,175,242,158,152,118, 49,  2,
-218,193,209,106,204,121,204,213,  7,127,246,223, 17,193, 88,115, 21, 93,244, 61,  3,137,234,225,201,169,104, 61,183,181,249,226,
-205,235,207, 61,251,220,203, 47,189,248,212,199,158,222,217, 62,199, 49, 18,197, 92,166,211,131,131, 90, 42, 35,244,203,205,227,
-195,189,213,209, 81,236,187,245,233,241,234,232,240, 47,190,254,181,135,123,167, 79,221,250,248,103, 63,249,202,229,171, 87,180,
-148,195,189,199, 39, 71,123,247, 63,184,243,250,155,111,189,119,255,254,106,189,158,166, 92,214,171,142,  3, 24, 16, 49, 51, 67,
- 41, 85,100,174,108, 86,  3,  8,228, 93, 87,160,214,118, 97,162, 21, 25,167, 49,151, 90, 77,211, 88,242,114, 57, 48,128,136,136,
-106,100, 14, 20,192,128,  3,250, 34, 62,112, 12, 64,165,148,192,204, 33,154, 76,202,164, 38, 41, 80, 12, 72, 72,104,214,247,221,
-173,155, 79,  2, 19, 25,158,174, 86,139,205,205,126,177, 44, 43,235, 88,175, 94,189,190,216,220, 89,110,110,191,127,247,253, 29,
-201, 54, 66,225,152, 56,  4,230, 27, 87,174, 93,189,252,193, 59,239,191,111, 49, 33, 96,150,156,136, 38, 51,118,204,128,128,131,
- 33, 43,129,138,230, 60,161,104,138, 41, 16,134, 64,109, 97,  9, 64,136,130, 24,252,203,210, 70, 73, 83,  5, 83, 80, 18, 51, 46,
- 42,  0,182,104,133,234,218,130,181,  8, 36,118,178,158,138,143,123,140,  0, 32,170,199,211,218,249,138,126,248, 18, 35, 43,206,
-194, 94,235,133, 86,  0, 67, 72,126,211,116,239, 45, 97, 96, 80, 63, 89, 16, 68, 13,205, 98, 64, 51,  8,236,105,219, 80,173,136,
- 74,138, 44,134,213,193, 15,238, 57, 65, 82, 39, 60,169,115,228,155, 28,132, 76, 56,195,117,136,  2, 81,105,119, 98, 55,127, 25,
-145,161,137, 50,162,170, 22,169, 49,  4,247,222,160,130,231,212,129, 19,149,181, 52,128, 95, 59, 79, 85,221,242,172,224,183,126,
- 53,171,146, 33, 19,147,123,172, 26,179,219, 20, 48,186,129,116,222, 71,180,254,132,102, 77,214, 54, 93, 82, 96, 45,  5,196,113,
- 33,228, 40, 24,117, 25,118,102,255, 21, 85,102,178,143, 82, 60,174, 46,195,220, 61, 11, 16,253,134,174, 28,  8,170, 49,218,186,
- 26,184,133,217,183,228,170,110, 54,244,229,191, 19,170, 13, 64,212,237, 43, 13, 92,228, 88, 72,  1, 33,135, 72,160,  2, 82, 10,
- 88,205,220,195, 87,179,151, 44,219,186, 86, 38,204, 85, 85, 37,134,144,186,212,197,216,197, 16, 83, 66,131,190,227,253,227,163,
- 46,198, 52,116, 29,115,223,245,125,159, 82,136, 27,139, 97, 72,221,114,232,251,190,239, 98,183,216, 88,196,148,250,174,143,169,
-139, 93,191,185,185, 81,115, 53,192, 16,195,114,251,220,230,185, 11,215,158,188,165,181,138,212,113, 28,143,142, 15,247,247,247,
-247, 15, 14, 15,142,246,119,119, 31, 98,191,121,120,188, 70,176, 16,152,153, 28, 91,211, 28,101,141, 29, 22, 28,235,142, 40, 70,
-174, 73, 43,216, 44,226, 32,152, 17,181,180, 65,235,101,163, 70,241,194,134, 19,243, 22, 60, 85, 66, 18, 84,  4, 67,140, 70,134,
- 76,132, 84,161, 54,  3,142, 53, 60,229, 25,185,161, 57,246,253, 96,  3, 49, 48, 98,140, 20,164,170,  2, 48, 32, 18,  5, 34, 21,
- 65,166,208, 98,194, 38, 54,163,115,220, 51,237,135,126,179, 43,254,120,223, 96, 91, 83, 17,124,180, 61,248,104, 42,104,177, 44,
- 59,107,228,112,199,100, 64,146, 89,194, 98, 48,109, 65, 14, 64, 52,197,192,196,  4, 34, 24, 98,236,  7, 45, 89,107, 54, 32,  5,
- 65,199,141,249,114,164, 58,223, 16,  9,169, 27,134, 11, 59, 23, 98,236,151,139,197,149, 33,109,116, 49, 79,101,148,188, 26,235,
-123,119, 63, 16,145, 46,112,100,246, 82,217,192, 76, 33,212, 92,142,199,124,186,158, 96,140,145,124, 70,241,  9,  0,  0, 32,  0,
- 73, 68, 65, 84,233,242,249,229, 75,207, 61,245,249,207,125,238,147,159,250,204,133, 11, 23,185, 11,136,193,204,114,201,164,128,
-108,134,150, 87, 99, 72, 41, 12,221,193,238,131,216, 15, 93,138,239,191,247,222, 95,191,254, 67, 93,143,213,250, 87,255,198, 23,
-158,125,254,  5,238,120,125,116,116,116,176,127,184,255,248,221,247,222,121,247,253, 59,251,199, 39,121, 42, 82,202, 56,174,  8,
- 20,  9, 82,224,200,212,  7, 94,137,157, 73,165,162, 80,139,204,150,126, 64,  0, 98,116,195, 25, 33,  2,210, 60, 15, 58, 15, 67,
-205,205,181,  0, 28,  8,157, 71,130,  4, 64,160,158,138,131, 16, 40,198,128,140,  0,204,142,117, 70, 52,  0,  5,221, 26,134, 39,
-206, 95,208,170, 38,120,114,124, 60,108, 44, 98, 76,108,143,233,248,136, 48,254,201,239,253,239,180, 62, 90,244,189,170, 89,208,
- 41,143,204, 33,133,180, 88, 44, 95,124,238,227,183,239,221,171,181, 34, 35,  1, 36, 14,185, 86, 21, 21,239,124,  0, 27, 82,152,
- 86,133, 16,  2,113,198,194,104,129, 83,138, 82,  1,179,151,107,136,  3, 91,216,  7, 13,155,241,239,216, 38,111,119,229, 98,253,
-136,147,126,230, 30,161,169, 86, 47, 73,240,149, 14, 51,129, 18,  5, 58, 89,175, 87,171,156,186, 48,191, 68,218,178,255,172, 84,
-217, 76, 75, 21, 16, 83,  2,149, 51, 11, 24, 68, 78,203,110,225,219,165,172, 22,208, 16, 24, 68, 25,131, 89, 14,115,  0,157,  1,
-181, 10,  6, 79,149, 66,  8,172,181, 34,179,  2,136, 25, 59, 81, 67,212,189, 38, 85,196,157,112,206,232,243,218, 11, 98,247,226,
- 33,114,152, 74, 65,  0,102, 18,105,208,226,162,181, 84, 81, 45, 56,127, 67, 60,230,205,  8,  0, 22,128,156,186, 80, 84,  1, 13,
-153,252, 68,175, 38,140,108,109,183,142,162,170, 89,176, 65,182,  1, 12, 74, 41,  4, 32,164,196,172,181, 17,230,231,130, 19,108,
-133,232, 31, 85,228, 72,104,142,127, 72, 68, 76, 92,154,247,200,121,226, 51, 82,  4,144, 61,199,211,176, 11,  8, 45,123,196,117,
-173, 72,140, 10,226,110, 40, 17, 39,185,231, 82,218,201,101,192, 12, 96, 86, 12, 52,215, 90,  4,  9,202,172,236,139,129,  9,  9,
- 40, 53,110,163,187, 69,  5, 49, 17,  3,136,248,211,158,139, 20,209, 34, 58, 81, 94, 14,139, 40, 58,149,146,214, 33, 48,187, 50,
- 17,  3,197, 20,186, 24, 83,136, 30,194,234, 82, 26,186,174,139,161,239,135,161, 31,250, 46,110, 44, 23,195,208,111, 46, 54, 66,
-234, 66,228,161, 31, 82, 26, 66,138, 93,191, 96, 14,169,235, 54,134,197,198,185,243,151,175,220, 80,201,160, 54,214, 58,141,235,
-  7,251, 43,  1, 69,212,104,171,229, 16, 83,196, 46, 68, 10, 24,  8, 84, 81,124, 53,217, 74, 95,125,250, 36,115,132,128, 79,190,
-  0,170, 78,188,157,115, 76,224, 93,118,164, 34,126, 82, 34,  6,195, 98, 96, 76, 84, 69,144,140,128,180,152, 56, 80,167,122,207,
-163,249,243,214,108,252, 30, 70, 53, 99,102,213,230, 58,246,153,155, 24, 77, 26,100,173,148, 66,  8, 38, 16,  0,205,164, 52, 30,
-153,219,166,  4, 40,204, 85,184, 28, 64,218,209,143,179,231,221, 37, 54,215, 76,188,160,206,128, 77,  5,145,193,140,168,209,224,
- 41, 18, 33,214,226, 10, 59,250, 29,  4, 65, 90,248,101, 54,227,104, 45,  0, 29, 14, 29, 99, 66,107,247, 93,  3,241,203, 17,250,
- 13, 88,221,203,213, 58,166,191,243,245, 63,254, 39,255,219, 63,255, 96,239,120,209,199,190, 31,182, 55, 23,125,140,162,117,255,
-240,120,181, 94,249, 37,177,133, 97,  5,114,173,117, 53, 78, 83, 57, 93,175,171, 64,223,197,223,254,207,254,246,151,191,244,133,
-237,243, 23,185,235,215,167,167,211, 56,214,169, 96,  0, 98, 98, 12,128,160,117,170,181,164,229, 50,246,195,222,253,123, 91,231,
- 46, 20,149,175,127,253, 79,198,211,147,211,211, 92,113,249,202, 23, 63,123,229,202, 53,131,122,116,112,124,116,240,248,195,247,
-239,220,253,224,206,155,239,127,  0,  2, 67,162,213,241, 88,107, 61, 61,205, 27,125, 56, 29,215,185, 10, 24, 22, 67,138, 28, 99,
-152,114,110, 17,  1, 39,216,182,173, 23,184,  0,114,182,153,142, 33,136,170,154, 33,177, 58,170,199,  4,209,136,208,225,203,196,
-164,  0, 20,121,145,186,147,211,245, 56,142,193,209, 87,  6,238,181,  5, 69, 32, 20,160,107, 23, 47,158,223,217,230, 16,179,148,
-113,156,128,  8, 57,112,234,227,144,167,147,227,144, 15,111, 92,222,  1,182,135,  7, 71,129, 67, 45,181,134, 41, 32, 83, 76, 87,
-175, 92,254,212, 11, 47,188,249,238,187,196,  0,102, 49,242, 98, 24, 20,237,232,248,100, 42, 18, 41,  4, 74,219, 11, 50,196,170,
- 26, 66, 36,  0, 53, 75, 33,  5, 67,  1, 67,  9,100,234,183, 46,  6, 40, 98,103, 81,106, 59,219,216, 56, 70, 64,181,182,193,160,
-165, 36, 16, 77, 76,146, 49, 32,154, 87,189, 35,100,173,137,162,153, 26,  9, 26,131,170, 17,219,204,167,  6,  3,242, 53, 63,243,
-114, 99,227,224,232,144, 17,144, 64,197,103,198,112, 86,243,  8,  8, 37,103, 69,234,135,174,102,169, 82,204,212, 20, 74,206,234,
-121,116,  2, 84, 82,109,213,196,128, 64,106,171, 41, 99,128,200,  9,152,165, 72,223,241,148, 53,198, 88, 69,156,129, 32, 13, 38,
-131,193, 25,168, 98,142,142,226, 64, 17, 81, 12, 85,  0, 64,  3,114,  5,173,106, 78,120, 85,171,168,209, 12, 74, 21,117,174,121,
- 53,  0, 76, 72,147, 40,134, 16,124,208,  5, 86, 53, 86,169, 14,155,103, 53,  0, 32,  7,112, 10, 26,136,148,158,147, 81,176, 70,
- 54, 52,  4,159, 38, 28,119,166,228,122,171,218,143,117,216,121,188,172,101,125,221,225,102,179, 81, 14, 26,174,167, 69,229, 67,
- 72, 51,226, 79, 83, 12, 49,176, 95,233,189,196,195, 91, 79, 13, 64, 85,  9,168, 50,138, 65,154,239,  1, 78,143, 10, 76, 69, 20,
-196,136,221, 99,225,130, 20, 40,130,170, 17,161, 26,154, 21,117,199, 54, 57,  3, 94, 17,  3,  0,138, 26,177, 17,154, 86, 85, 50,
- 13, 52,173,166,169, 78,206,102, 88, 14,131,  2,214, 34, 67, 23, 98,140, 93, 74, 49,112,100,238, 83, 74, 41,246,125, 55, 12,253,
-198, 98, 99,209,197,190,235,151,139, 97, 99,185, 57,244, 41,164, 52,244, 67, 23, 83,236,251,174,139, 28,250, 16, 34, 49, 15,203,
- 97,177, 92,218,  5, 43,181, 74,214,211,233,244,184,200,116,184, 98,172,129,172, 75, 76,104, 41, 80,  0,  8,193,  2,161,  2,163,
-136,187,104, 85, 42,152, 63,173,174,206,179,169,205,182, 25, 66, 82, 40,254,140, 59,207,178, 52,184, 37,160, 47,114,125, 91,219,
-162,235,124, 86, 60,101, 20, 72,205, 64,218,246,141, 40, 52,114,157, 49,153, 99,201,218,137,215, 18,174,110,200,  7, 11,190,212,
-117,137,199,107, 71,126, 44, 60,130, 42,245,172,213,  9,200, 95,249,190,  5,118, 77,161,189,146, 64, 60,  8,127,150,199,  5,  1,
- 72,203,142, 82,210, 71,135, 31,197,161,156,207,143, 60,247,122,184,226, 35,150, 43, 45, 55, 67, 72, 82, 39,205,197,196,165,127,
- 68, 48,213,218,186, 83,196,186,197,178,172, 79,254,213,239,254,222,159,252,249, 55,223,120,255, 94,  8,233,250,133,115, 67,207,
-187,123,143,214, 83, 77, 41,113,160, 24, 34,  1,100,147, 44,181, 78, 53,  4,222, 30,250,  7,  7,107,  5, 74,221, 48,112,248,123,
-255,241,111,254,230,111,254,135, 39, 99, 62,157, 38, 91,143,181,102,  4, 98,138,104,  8,130,  2, 21,212, 56,134,245,225, 94,183,
-220, 62,125,120, 63,198,240,206,219,111,188,241,195, 31,140,171, 41,246, 91,151,175,223,122,230,185,231,187,110,200,227,250,244,
-244,104,239,193,253, 59,183,223,189,125,247,222,238,227,199, 23, 46,236,252,242,151,191,120,184,247,240,159,253,203, 63,150, 22,
-119,103,191,161,  3,129,204,  8,105, 63,238, 17,177,235,152,155,105,205, 98,160,234,121, 22,175,190, 33, 66,162, 34,210,224,213,
-237, 44,244,240, 46, 48,130,170, 56,195,107, 42, 82, 72,151, 67,  7,132,165, 40, 52,246,121, 11,239, 40, 40,170, 94,127,226,210,
-176, 88,  2,112,169, 39,235, 60,185,121,137, 57, 46,150, 27,235,245,234,217, 23,158,123,231,173,119,158,121,234,169,189,147,215,
-196, 52, 49, 77, 37,135, 16, 82,133, 62,245,159,124,241,229,156,203,131,199,143, 17,  3, 34, 86,173, 93, 76, 23,182,183,198, 90,
-199,245, 58, 75, 97, 36,119,242, 32, 98, 35,  5, 17,110,117,139,163,113,157,157,148, 81, 52, 48, 86,  5,102,211,218,158,152, 24,
-147,255, 97, 34,243,164, 69,213,220, 10,233, 16, 68,  4,164, 64,226, 55,133, 51, 59,151,226, 56, 21,167,180,183, 64,  3,243, 92,
- 12, 65,160,154,107,113,110,177, 84, 89,141,167, 45, 11, 46,149, 17, 77,  8, 16, 68,140, 25, 66,224,128,152, 11, 24, 88, 45,162,
-106, 82,213, 11,175,252,227,102, 34,169, 16,  2,120,139,152,169,137, 89,  8,205,  1, 15,140, 86,  4, 25, 69, 32, 75,217, 14,132,
-  8, 35,181,110, 73, 96,215,143,177,148, 98,104,  6,148,  2,213,138, 58,151, 32,128, 66,136,113, 90,157,142, 37,119,204, 51, 64,
-219,175, 32,104, 85, 49,249,  9,172,196,104, 85,129,180, 84,224,192,102, 38, 82,115, 21, 55,211,177, 18,  2,155,170,129,154,106,
- 98, 54,138,226, 62, 59,153, 41,232,  6,128, 26, 17,149,168, 74,235, 66,  6, 80,155,193,181,224,140,243, 86,155, 77, 74,134,115,
-  6,199,124,231,235, 95,117,228, 64,168,222,249,192,205, 13, 29, 56,148, 90,141,176,168, 85,133, 24,217,239, 90,204,232, 94, 88,
-149,106,192, 70,205,253,205, 72,  4, 20,129,178,170, 18,249, 75,148, 42,198,192, 42, 85,196,140, 80,196,  2,187,133,202, 39,128,
-179,151,141, 33,128,138, 82,236,  1, 10,113,  3, 24,  6,102, 85, 53, 83,169,146, 69, 15,142,143,  3,211,162,239,  2,115,145,202,
-196, 93,  8, 33,134, 24, 99,223,167,101,215,167, 46, 49,113,159, 82,223, 58, 78,226,214,114, 57, 12,253,114, 88, 14,139,190,239,
-250,141,197,178,235,251,152,186, 20, 35,167, 62,198, 46, 48,239,108,108,  2,162,200, 54,  0, 86,209,146,203, 84,166,147,117, 70,
- 19, 21,141,164,129, 17,161,166,  0, 12, 76,224, 55, 11,100, 12,  4, 34,160,  0,232, 73, 14,  5, 53,191,236,  1, 32, 96, 45,202,
-158,160,101, 86,135,109, 32,  3,212,118, 19, 21,109,189,211,  1,139,  2,250,192, 79, 72,110,160,243, 73,170,153, 12,145, 61,199,
-174,224,179,181,223, 42, 60, 31, 23,126,124,159,226,179, 82,243,235,195, 89,161,161,157,225,225,177,149,192,105,123, 28, 63,202,
- 93,  0,249,123,218, 35,209, 98,132,152, 87, 25, 86, 69,177, 81,213,154,162, 32, 45,166,217,206,108, 83,  0,168, 83,134,184,158,
-100,146,113,173,146,141,  0,129,193, 23,173,102,  0, 12,148, 22, 27,139, 58, 30,255,238,191,248,231,191,255,245,111,223,223,125,
-244,228,149, 75, 87,207,157, 83,162,191,251,159,254, 39,122,248,224,247,254,240, 15,127,248,206,135, 53, 67, 45,202,140, 12,112,
- 97,123,249,241,231,158,121,229,211,175,188,244,242,203, 95,251,131,127,245, 59,255,215,159, 46, 22,139,197,114,241,179, 95,249,
-153,195,227,163,169, 40,130,  6,198,237,157, 29,173,178, 30,215, 90,107,173, 37,164,168, 98,199, 71,135,181, 76,125,205,143,247,
- 31,223,187,115,103,117,114, 20, 49,225,246,185,143, 61,247,210,197,139, 23,145,104,117,122,116,184,247,232,238,  7,119,222,185,
-243,222,189,  7,187, 99, 41, 95,248,220,167,127,246,167, 94,125,226,242,133,175,126,245,171,134,152,124, 86, 36,208, 42, 76,196,
-110, 90,  7,231,245, 75,203,143,207,165, 98, 42,128, 64, 41, 80,  0,118,174,  3, 49, 70,226,117,173,244,145,169,180,137, 26,158,
-130, 39, 98, 81,  3,130,192, 92, 74,166,212,153,128,168, 34,145,103, 36, 35,205, 17, 74,132,103,159,190,153,186,142, 67, 24,167,
-105, 53,174,201,147, 21, 72, 16,121, 88, 12,100,112,237,169, 27,111,252,232,205,203, 91,155,247, 14,142,186,  5, 33, 96,174,165,
-235,122,100,234,251,238,229,231, 95,122,248,237,111,  0, 97,  8,193, 12,198, 60,109, 44,150,  9, 33,103, 46, 42, 33,134, 64, 84,
-196, 84, 37, 49,  3, 34, 41, 12,125,199,132,235,113,116,204,104,187,233,213,179, 10,  6, 21,169,134, 24, 76,153,153, 77,209, 95,
-131, 70,232, 70, 99, 68,  2, 71,235,121, 57,152,170,138,197, 96, 42,243, 42, 10, 25, 60, 15, 98,  4,  8,106, 76,220, 69, 20, 17,
-151,114, 24, 40,144, 91, 29,  0,136,141, 10, 54, 62, 27,149, 82, 67, 12,102, 86,155, 69,193, 16,160,138,197, 72, 14,253,225,200,
-193,247,215,134,102, 80,197, 84, 84,201,  8, 64, 21,173, 42,  7, 42,  5,138, 84, 52, 44, 69,192, 32,113,168,156, 85, 17, 20, 24,
- 13,145,156,201, 14,  6,162,202,204,173, 50,  4, 17,136,178, 72, 41,  5,206,112, 82, 51,105, 91, 93,181,182,182, 11,  3, 38,  3,
-  9,196, 98,213,185,208,162,162,166, 82, 21,  0, 42, 88,136,  0,132, 80, 27, 80,176,197, 88, 68,146,251,246,154,  3,143, 16,200,
- 64,208, 67,195,115,131,181, 41, 40,250,250,167,109,  0,213,144,180,253, 76,223, 82,179,  2,  2,198,  0, 62, 48, 82, 96,  6,204,
- 42, 96, 38, 34,213,  0, 56,200, 56,249,197,159, 80,  3, 55,194, 41, 19, 86,169, 85,180, 75,  4,  6,206,143,137, 41,168,  1,  6,
-244,152, 76,195,178, 83,131,254,180,158, 44, 70,102, 34, 51,113, 49,246, 44, 85, 67, 13,189, 76, 14,240,111,155, 29,159,135,149,
-208, 87,130, 54,247,131,130, 34, 76, 99,  1,203,107, 64, 12,206,105,212,190,239,134,126,240,237,151,147,241, 67,  8, 93,  8, 41,
-121,182, 54, 13, 67, 90,246,195,230,230,198, 48,116, 27,253,114,177,232, 67,136, 33, 82,138, 67,236, 98,215, 59,165, 34, 14, 67,
-183, 92,110, 35, 50, 82,144, 50, 22, 17,171, 50,150,241,184,228,105, 26, 29, 19, 23, 73,186,200, 41,  2,145,  5,162, 64, 32, 82,
-124,155,104,  6, 94,  4,198,132,160,100,100, 90,107, 51,197,107,171,243, 64, 67,116, 11,141, 35,  3, 20,  5,209,179, 90,214, 32,
-148,142,105,129,121,187, 47,132,200,  1, 76,156, 63,  8, 38, 18, 40, 32, 67,  0, 51,138,140,181, 45, 93,  0, 20,136,144,192,155,
- 43, 85,219, 11,216, 31,186,217,158,239,221,194,243,171,105, 94,188, 54,245,198,171,254,128, 65,180, 89, 34,129,  0,213, 13,181,
-224, 94, 76,192,179,254, 64,  3, 83,168,117,125, 10,106,134, 98,173, 48,170,130, 54,242,188,106,237,135,205, 59,111,254,232,119,
-126,231,159,124,239,245,183,158,122,242,234,111,255,194,111, 97, 89,255,213,155,183,127,229,215,126,253,197, 23, 62,206,225,147,
- 31,127,229, 39,111,191,249,218,201,193,241,122, 28,179,212,237,157,115,183,158,123, 97,231,220,185,106,134, 72,191,242,171,191,
-252,151,223,251,193,107,239,239,165,190,207, 57,199,116, 65,117, 84, 51,205,229, 95,252,254,255,253,236,115,207,191,244,194,173,
-131,131,227,197,214, 14,167,248,240,246, 59, 59, 23,174, 96, 56,247,253,191,248,250,238,195,187,169,235, 67,218,216,216,185,126,
-253,230,173,141,205, 69,158,198,253,189, 71,187,247,239,190,251,214,155, 31,220,191,187,127,188, 58,191,179,241,247,255,214,175,
- 62,243,244,211, 83,206,121, 42,227, 52, 25,114, 76,168,160, 96, 54,141,217,123, 56, 75,206,129, 90, 70,128,145,152,112,156,154,
-129, 34, 50,133,200, 72, 28, 18,139, 24, 34, 34, 82, 85,143, 76,183,207,160,249,144,192, 35, 47,115,150, 29,140,137,187, 20,213,
- 12, 24,106,173,126,102,  4, 38, 17,  1, 11,165, 26,  1, 62,113,241, 98, 26,  6,128,224,165, 43,226, 68, 42,  4,164, 46,117,253,
-201,225,254,229,243, 23,118, 47, 62,188,254,196,181,227,215,254,250,100, 61,110, 14,139,105,189, 74, 49,109,198, 24, 67,186,252,
-196,249,171,151,158,120,244,120,223,196, 60,236,105,166, 33,196, 20,226,209,170,244,  1, 13,136, 35,104, 49,245, 71,  4, 96,170,
- 83, 31, 82, 23, 35, 48, 69,211,140, 12, 80,207, 34,207,158,123,149,106,150,130, 35, 50,201,188,208,238,163,174,221,179, 55, 96,
-155,108,137, 93, 14, 78,196,110,169, 60,235,107,112,155, 54,162, 49,160, 17, 33,  3,136,170,104, 43,253, 48, 83,169,168, 58,215,
-232, 40,  0,213,246, 52, 27,128,198, 64, 38,140,156,189,111, 47,134, 96, 94,155,224, 55, 81, 49, 13,134,132,126,248, 34,129,170,
- 41,180,208,122,  8,140,  8,185, 10, 16, 17,113,151,226,170, 28, 85, 64,209, 82,107,112,100, 68,235,174,119, 75,107, 81, 96,212,
-154,205,128,153, 60,133,164,230,110, 71, 84, 19,255, 77, 53,154, 92, 51,174,  0,121, 81, 23, 65, 12, 92, 49, 16,  3,122,221,132,
-  2,205,221, 56,  2, 72,158, 68, 71,223,145,178,153,128, 26, 50, 97,109, 20,147, 54, 43, 56,223, 48,251,118, 22, 65, 45,  6, 36,
- 67, 85,209,217,191,224,  5,135, 24, 60,223,101,236, 59,  0, 53,138, 12, 80,137, 41, 79,197, 68,196, 45,170, 51,183,146,136,  9,
-160,138, 68,142,168, 10,103,211, 31, 57, 77, 22, 69,107,201, 10,228, 46,192,150, 89,156, 11,189, 92,179, 64,  0,168,214,204,209,
-158,128, 86, 51,171,198, 78,214, 69,240, 48, 67, 34,133,  0, 30,  3, 50, 49,140,  6, 77,239, 68, 81, 97,114,137,207,207, 25, 64,
-130,170, 42, 85, 78, 78, 87, 68,148,107,206, 85, 35,113, 63,116,151,206,109, 33,176,128,197, 64,145, 99,140, 33,133,212,199, 24,
-187,180,236,251,237,205,173,229, 70, 63,196,142,  3, 35, 66,228,216, 47,210,178, 95,246,139,126, 88,116, 41, 45, 23,139,205,148,
-122, 94, 14, 75,221, 70,132,170, 57,231, 98, 85,199,156, 75,205, 39, 99,145, 50,197, 72, 68, 18, 48, 37,200,204,254,  7, 33, 13,
-168, 89,208,154,175,169,129,230,164, 69,158, 68,149,144,188,207,171,149,224, 57, 54,  1,154,149,211,204,206, 18,166,109,  4,242,
- 93, 41,182, 34, 17, 23,111, 81, 41,168, 87,125,160,255,186,194,254, 41,214,150, 29,197, 25, 91,216, 32,144,243,187,125,110,183,
-108,149, 86,115, 60,206, 87,178,132,238,134, 52,108, 47, 19,152,205,252, 60,199,154,170,156,109,131,  1, 16, 60, 99,210,194,138,
-132, 40, 14,200,157,123, 92,  8,  1,203,250, 56,245,241,191,254,  7,255,197,173,171,151,239,222,187,247,228,211,207,253,194,175,
-157,239,134,110, 92,175,213, 86,204,233,233,151, 62, 27,157,173,  8,102,138,162,117, 53, 77, 82, 11, 17,109, 93,185,245, 15,254,
-243,191,243,223,252,247,255,227,233,234,244,255,253,227, 63,253,236, 39, 95, 42,130,159,251,220,103, 36,223,251,199,255,244,159,
-246, 59,151,255,167,255,225,191, 91,110,109,173, 87,167,135,239,221,223,190,244,196,219,111,191,254,163,127,251, 29,102,190,112,
-254, 34,198,157,107, 79, 63,191,177,185,137, 96,  7,251,123,  7,251,143,239,222,121,239,237,247,222,185,247,112, 87, 84, 94,125,
-229,147,127,243,103, 94,221,216,220, 90, 79,197,212, 44,161,168, 34, 64,136,140,128, 82,235,106, 53,213,118,238, 89,  8,196, 68,
- 69, 20,  8, 57,132,144,170, 19,  5,129,177,148, 42,110, 51,197,214,199, 85,205,205,  3,142,140, 80,  5, 19, 80, 16, 52,160, 92,
- 74,149,138,216, 57, 11,105, 72,105,204, 18, 56,  0,130,152, 36,138,236,145, 52,194, 44,229,252,246,206,205,235,215, 49, 68, 35,
-242,121,149,137,  0,  8,144, 17, 45,164,190, 31,134,227,189,189, 39,175,221,184,127,255,193, 79,188,244,241, 63,249,246,247,106,
- 21, 99, 90,175, 87,139,126, 48,  3, 19,252,204, 39, 62,241,198, 59,111,  3, 40, 65,244, 45,110, 36, 90, 19, 45,187,164, 42,235,
-177, 50,  3, 83,224,192,101, 42, 28, 89,115,181, 62,244,125,183, 90, 77, 14,200,117, 82, 47,153,103,107,124,156,  0, 48, 99, 10,
- 49,  4,127, 13,183, 64,135,129,154, 34, 82,138,129,145,138,  8, 32,170, 88,129, 26,  2,197, 46,194,169, 87,120,205, 17,144,185,
-212, 91,125,152, 48, 36,192, 82,179,  9, 24, 65,160,160,104, 21, 49, 48, 57,102,151, 16, 34, 81, 49,245,174, 15, 19,169, 82,217,
- 67, 32, 64, 98, 42, 34,179, 82,239,100,142,143,186, 99, 77, 13,  2,  4,223, 55, 68,102,230, 42,165,170,106, 85,  1, 68,173,  4,
-172,162,162, 21, 12,  8, 65, 90,234, 16,173,168, 21, 53, 50, 96, 38, 14, 63,  6, 88,242, 36,  3,144, 59, 60, 17,193,196,  9, 31,
-170,138,128,165,138,235,117,165,228, 90,164,148, 60,229,  9, 48, 32,182,214, 89,108,162,138,123,215, 12, 69, 20, 98, 35,135, 96,
-115,196,129,153,137, 90,160,102, 90, 51,210,179,148, 13,145, 10, 84, 80, 81,117,  0,149, 57,181,  6,140,252, 31,157,213, 90, 48,
-166,198,171, 51,132,192, 44, 50, 19,148,  1, 65,161,138,132, 24, 92,208, 71, 34,  7,110,183,242, 57,103, 99,182,208,  2, 55,254,
- 56, 16,162,162, 42,152, 19,244, 76,171,112,138,238,181, 63,235,144,240,151, 56, 49, 19,133,162,170,106,165,136, 74,145, 86,188,
-225,230, 90,109,233, 47,104,  8, 73,231, 46, 82,211, 32, 56,144,231,129, 49,197, 40,106,  1, 39, 36,132,170,  0, 84, 76,173,202,
- 56,214, 72,  4,136, 83, 41,155, 41,254,250, 87, 62,151, 49,221,125,240,120,255,160, 76, 66,102,150,186, 20, 57,116, 33,118, 41,
- 12, 67,223,245,221, 34,166,229,114, 99, 88, 14,142,200, 31,150,155,129, 83,215,247, 41,198,174,219,100, 14, 64, 40, 34, 42, 90,
-107, 45,181, 20,201,171,156, 81,  4, 64,  8, 20, 13,  9,148,164, 32,149,198, 45,168,138, 72,100,  6,  4, 34,218,162,163,190,180,
-213, 51,129,254,172,107,188, 77, 27,230,109,213, 32,179, 17,  1, 12,140,220,118,105, 18, 60,209,214,100, 76, 36,243, 48,147, 57,
- 89,179,133, 85,189,182,  4,129,253,252,118,138, 72, 43, 74,161,134,158, 60, 75,132,159, 21,188, 54,195,101,107,150,247, 34, 10,
-  3, 32, 19,223,156,180,222,173,185,175,182,109, 22,253, 91,  1, 30,216,111, 96, 32,155,214,171,103, 94,126,245,191,125,225,149,
-191,126,237,  7,247,119,247, 95,254,244, 79,110, 44,135,170, 50,142,147,183, 18, 87, 44, 58,213,  2,100,166,200, 33,116, 61, 96,
-226,224,206,127, 57, 62, 58,124,230,149, 47,253,214, 47,127,247, 31,253,238,159,255,254, 31,253,241, 31,126,245, 15,179,216,171,
-159,127,245, 23,191,252,234,149, 39, 46,221,123,116,244,143,255,217,255,249, 91,191,254,139, 23,111, 60,253,232,254,251,223,253,
-203, 63,189,255,225,189, 39, 46, 95,234,250,115,221,246,149, 75, 79, 92,235,250,174,150,114,240,248,193,189,123,239,223,190,253,
-222,238,227,199,123,135, 39,215, 46, 95,248,229,159,251,210,179, 31,187, 89,170,230,162, 78,196, 68,179, 82,106, 10,148,115, 77,
- 41, 36,194,172,245,172,101, 48, 48, 25, 88, 41,237,238,201,173, 65, 17,180,150, 24, 67,  3,255,155, 34, 82, 23, 66, 36, 86,212,
- 62,244,129, 99,169, 83,104, 95, 16, 99,  4,171,194,205,160,107,102, 54,149, 82, 69,137, 33,133,120,108,107,  5, 19,149, 62,  6,
- 38, 86,213,203, 23,207,159, 63,183, 35, 83, 33,  2,198, 48,229,105,115,103,203, 84, 65, 77, 16,  8,121,216,216,180, 90,203, 84,
-164,212,229,230,198,243,183,110,190,115,251,195,197, 98, 89, 76, 79, 86,171, 24, 34, 18,239,108,109,253,244,171,159,255,198, 55,
-255, 98,123, 43, 54,245,192, 32, 32, 64,  8,129, 40,151, 34,106,  8,213,170,155, 45, 96, 18,149,245,180,209,119, 57,231, 50,  9,
-249,133,147,192, 61, 26,230,136, 20,176,113, 44, 33,250, 24, 73,128, 21, 20, 20,154,255, 29,205, 59,136,173, 93, 37,153,  0,141,
-209, 57,122,168,  8, 10, 16,230,154, 75, 34,246,206, 25, 19, 80,118, 86, 95, 40, 50,169,  0, 70, 34, 79, 85,181,251, 99,123, 84,
-221,196,227,140, 86,105, 59, 68, 48,192,192,172,136, 80,108,102,216,168,  8,169,153,170, 32,177,182,154,224,198,171,100,162, 92,
- 85,179,  0, 66, 32, 46, 82,189,140,147, 57, 80, 64, 18, 82, 21,100, 16,  5, 37, 85,246, 29, 43, 16, 49,205,236, 67,111, 74,246,
-111,107,169, 10, 34,149, 24,209,178, 42, 97,  8,204, 14, 58,103,162, 92,203,152,199, 92,171,168, 17,123,  2,201, 47,206,216,240,
-147,165, 26,154, 40, 16,104, 83,  7,207,112,164, 45,173,138, 17, 24, 84,193, 85, 43,  5,211,202,177,243, 83,180, 81, 74,253, 92,
-197, 89, 70, 69, 52,102,127,206, 98,100, 64, 44,165,118, 41, 65,107, 28,157,155,127,  8,  0,173,170, 52, 10, 35, 34,128,149, 70,
-196, 68, 64,114, 88,  5, 51, 17, 18, 83, 69, 68, 82, 84, 95,181, 16, 11, 84, 81,  0,226,  6,253,113,190,  2, 34,136,186,127,158,
-185, 25,233, 69,106, 27,100,165, 86, 17,108,165,135,164,222,129,171,166, 86,129,146, 17,241,172,107,185,132, 65, 45,253,  6, 48,
- 43,165,208,168,194, 36, 85,171, 40, 24,184, 48, 82,115,205, 50,254,212,167,159,187,122,235,217,245, 52,174,199,114,122,188,126,
-184,247,248,195,135,251,123,135,167,123,251,  7,187,143,243,186,136,153,197,212,117, 41,244, 93,183,217,247,195, 98, 88,246,125,
-223,165, 97,177, 92,244, 93, 76,221,114,177,164,190,235,187,129, 41,246,125,223,117, 11,224, 77, 19, 99,131,177,142,106, 88, 74,
-169,146,167, 34, 90, 39, 68,144, 58, 89, 89, 71, 54, 68, 75,232,208,117,243, 59, 93,179, 45,169,129, 10,  4,114, 52,142, 65,115,
- 34, 25,176,104,109,101,115,158,178, 82, 80, 85, 36,  2,162,128,128, 69,132,137,153,169,170,128,130,170,178,211,149, 13,124, 89,
- 67, 62, 96, 40,152,168, 57,132,221, 90,119, 54,158,189,  5, 26,150, 20, 26,239,114,174, 69,129,179,194, 66,151, 25,208,218,143,
- 25, 23, 14, 14,178, 35,112,158,131,186,  6, 68,193,177,213,136,132, 70,156,210,241,241,254, 15,190,251,189,141,157,115,159,251,
-201, 87, 13,235, 84,203,204,198,153,111,158, 94,206, 24,  6, 32,103,181,144,212,104,160,104,102, 90, 86, 99,249,165, 95,253,141,
-239,252,240,141,187,143, 86, 28, 35,146,125,251, 91,223,250,254,191,249,158,129,113,160,127,251,253, 31,156,219,217,250,248,173,
- 15,238,190,247,218,176,216,186,126,243, 41,142, 59, 91, 23,175,158,191,120,145,  0,215,167, 71, 15,238,222,126,231,157,183,111,
-127,248,225,222,254, 33, 16,126,254,149, 79,252,252,151,127,114,115,115,123, 61,121,105, 17,181,148, 31, 65,158,166, 24,226,225,
-201, 90, 85,226, 48,152, 41,187, 85,  0,204,251, 67,166, 60,133, 46, 34,162, 84, 11, 33, 40, 32, 83, 64,226,200, 65,181,130, 98,
- 96,114, 87,104,136, 36,210,212,217,234, 14, 86,244,190, 48, 43, 85,212,140,  1, 35, 51, 50, 30, 29,158, 94, 46, 59,232,188, 67,
-116, 53, 27, 66, 32, 51,187,184,115, 46,198, 80,242,180, 30, 79,246,246,119,223,191,123,119,235,194, 19, 59,151,119,238,221,185,
-131,200, 64,132, 16,226,198,210,224,244,227, 47, 63,255,253,239,255,224,202,249,115,239,222,249,176,214, 26, 82, 55, 78, 99,138,
-  9,204,166,105,122,230, 99, 79,223,127,240,225,238,238, 94, 86, 97, 33,226,192, 28,170, 76, 10,132,196, 82,115, 31, 98, 11,214,
-  2, 35,192, 88,166,190,227,154,101,202, 25,200,133, 83,252,104,199,167,170, 38, 89,129, 25,125, 34, 97,102,255, 25,238, 65,100,
- 66, 84, 50,240, 64,157, 87,240,144, 17, 73, 85, 69,136,115, 13,152, 63,128, 14,109,  2, 85, 10, 96, 98, 30,162,159,125, 71,222,
- 75, 57,183, 53,207,221,237,162,115,108, 17,155,  3, 65,205,136,152, 17,115,123, 29,107, 35,234,177,247,142, 49,128, 16, 50,219,
- 28,212,  2, 64,194, 68, 93,145,181,181, 22, 40,152, 59,229,209,249, 22, 64,126, 86,138,123,164,  4, 32,130,113, 83,164,244,163,
-248, 31,162,106,157,239,187,138,192,206, 77, 65, 38, 70,100,166,106,170,138,235,105, 34,112,142,136,  1, 67,  8, 81,212,121,136,
- 13,166, 70,212,250,212,200, 26, 49,202,212,245, 89, 52, 20,132,208,228, 44,112,203, 49,169,130,128,249, 16,222, 12,203,237, 80,
-215,143,216, 53,  6,140,200,196, 34, 66,136,129, 57,134, 16, 57, 76, 86,218,155,190,217, 94,  3, 25, 76, 83, 81, 80,238,153, 12,
-144, 40, 24,152, 33, 35,  4,100,116,148,184,153,127,193,209,213, 52, 80, 52,227,118,247,159, 75,239,230,238,103,159,242,108,126,
-167, 58,245,147,  9,165,106, 76,177,193,149,206,196,131,234,114,131,153, 40,177, 54, 44,168,191,223,212,  0, 41,163,133,179, 44,
- 60,249,219, 17,230, 93,189, 54,184, 21,232,208,119,160, 80,170, 76, 89,170, 90, 63, 12,203,141,141,235, 79, 94,121,197, 84,173,
- 78,171,233,248,116, 58, 60, 57,121,180,119,252,225,195,199,199,199, 39,187,135,235,119,246, 30, 49, 16,135, 24, 99, 92,116,221,
-194,219,202,151,139,148,226,144, 82,223,117,203,205,229, 98, 24,210,176, 72,161,139,169, 15, 93,159, 98,232,187,  4,184,129,128,
- 34, 86,107, 45, 82,242, 84,171,140, 83,169, 71,199,  7, 90, 39, 64,136,100, 41, 98,112,  8, 49, 35,  4,  0, 52, 45,  2,166, 72,
-212, 80,  4, 88,207, 42,  0,219,180,220,  4, 31,  3,128,  0,136,204, 76, 68,126,115,159,  9,115,220, 70, 35,156,231, 29,153, 93,
- 59,218,218,151,124,213,238,113,190, 51,111,109,251, 63,209,252,138,  4, 35, 10,205, 86, 43, 98,118,  6, 28,155,127,  7,168, 72,
-212, 26, 16, 68,103,205,198,213,212, 38,189,246,203,197,157,183,223,124,251,173,183,158,121,241, 19, 79, 62,121, 45,143, 43, 95,
-214,158, 81,233,231, 87, 10, 35, 48,119, 29, 84,209, 42,  6,162,102,  4,164,136,104, 92,166,245,112,254,210,223,255,143,126,243,
- 31,254,207,191,179, 22, 93,164,196,220,155,217, 84,242,141, 27, 79,126,229,179,207,125,255,  7, 63,250,179,127,253,173, 95,249,
-247,254,198,206,133,235,214,111, 95,190,116, 61,245, 73, 74,126,252,104,247,253, 59,111,191,249,246,219,247,118,119,143, 78, 86,
- 79, 95,187,250,115, 95,249,252,167, 95,122,174,212,114,186, 58, 37, 10,115,166,205,119,100,178, 94,143,200,188, 92, 14, 71, 39,
- 71,181,202,233, 58, 15, 93,231,238,211, 20,152,  9, 77,133,160, 99,226,214, 96,228,141,110, 78, 89,  3, 82, 53, 36,244,122,  7,
- 12,  4, 94,107,197,  8, 98,232, 41,149,192,222, 63,153,115, 65,194, 46, 69, 70,220, 24,122, 96,170,181,133,142, 20, 32, 48,130,
- 97, 49, 91,110, 44,106,173,167,235,227, 71, 15, 31,188,245,238,237,199,135,  7,  8,244,196,141,155, 15, 62,188, 75, 76, 42, 80,
-115,  9, 28,180, 11, 96,112,225,220,249, 71,187,123, 23,183, 54, 31, 31,175,153, 43, 48,143,101,138, 28,  0, 56, 97,248,244,203,
-159,250,218,159,255,185,100,169, 38, 68,152,107, 33,196,113, 26,183, 55, 55,145, 81,234,156, 53,  2, 52,208, 24,120,154, 74,107,
- 66, 96,140,214, 40,218,  8,173,141, 26, 12,171,213,226,216,237, 90,141,216,137, 67,220, 28,  6,  8,100,181,109, 35, 20, 16, 11,
-152,214, 26, 66,192, 89,125, 64, 98, 83, 81, 51, 84, 65, 32, 81,233,  3, 23, 53, 38, 48,163, 42,  2, 86, 20,185,170,204,104, 87,
-223, 58, 16, 50,  5, 98, 53, 13, 33,204,132, 16,106,  4,120, 66, 41,102,232,133,179,254,155,225,102,227, 84, 96,106, 21,172,126,
-234,161,145,128,198,192,165,  0, 40,136,148, 38,103,122,115,182, 59, 14,169, 49, 19, 68, 53, 56,106,194,209, 54,102,222,227,201,
-164, 76, 92,109, 38,250, 50,204,210,100,107,229, 16, 53, 98,246,202,181,128,220,113, 90, 75, 70,  3, 66,176,106,238,170, 79, 93,
-170,181,186,202, 31,136, 82,164, 81,102,212, 19,179, 25,  4,162,224,172,121, 98, 36,  6, 19,103, 57,240, 76,140, 34,  0, 80, 84,
-242,165, 50, 34, 24,  3,180,194, 59,166,152, 82,169,153,145,186, 46, 96,235, 33,108,118,108,114,167,188,170, 51,143,  3, 49, 26,
- 98, 64, 82,183, 92,205,104,251,249, 64,245, 39, 95, 91, 89, 13,147,191, 97,173, 32, 50,130,  6,240, 96,143,182, 68,156, 19,  6,
- 65,179,216,130, 76,138,136, 10, 51,199, 24,171,106, 85, 37, 52, 84,117,127, 18, 82, 19, 49, 28,179, 37,109,249, 55,  7, 42, 20,
-204, 26, 86,104, 61, 77,139,190, 35,255,249,160,129,195, 36,226, 60,122, 68, 70,175,112,143,132,  2,102, 86, 74,157,114, 65,201,
- 70, 68,200,155, 91, 27, 59, 59,155, 79,223,184,246,121,198, 42,186,154,244,240,248,120, 92,173, 30, 62, 58,216, 61, 56,124,184,
-123,120,120,124,112,247,116, 92,151,194, 28,250,174, 95, 14,105,115,185,185, 92, 14,203, 97,232, 82, 26,186,126, 88, 44, 83, 23,
-134,197,208,117,203,174, 31, 82,215, 19,112, 23, 40,198,222, 44, 33, 80,222,220,200,185,104,149, 42, 53,151,188, 42,197,106,182,
- 73,188, 27,  9, 76, 99,  0,174, 26,216,156,253, 82, 77,212,239,106,106, 82, 13,  9,204,212,241,224,161,225,109,204, 92,196,161,
- 48,135, 19,218,150,135,156,216,212, 40,187, 13, 97,102,115,183,121, 75, 91,180, 80,107, 35,103,122, 95, 65,107,197, 85, 85,106,
-  0,119,100, 50,177,138,192,134,128, 76, 86,107,  3,190,123, 45, 57,147, 67,225,103,224, 59, 48, 49,199,244,198, 15,255,234,225,
-131,135,175,254,212,207,116,137, 75,206,134,  4,218,172,198, 51,163,222,121,109, 94, 83,  9, 16,  9, 74,213, 42,166,128,236, 55,
- 53,  5,179, 92,234,203,159,249,201,255,242,239, 62,252,135,255,235,255,177,151,243,206,114, 25,136, 33,132,251, 15, 31, 28, 30,
- 94,255,249,159,121,245, 15,254,236, 59,255,207, 55,190,251,219,127,239,179, 55,159,186, 89,242,180, 62, 57,122,112,247,246, 91,
-111,188,245,246,157,219,143, 14,247,  9,249,151,190,252,133,159,253,210, 79,132,190, 91,229,  2, 10,196, 13,209,  0, 72, 14,154,
- 55,228,213,122,146, 42,121,202, 76, 52,230, 60,149,186,189,177, 65,132, 32, 16, 34, 35, 50,135,200,132, 69,106,140,158, 20,176,
-  0,160,162,185, 22,239, 30, 34,140,162,121, 44,117,171, 27, 86,148, 25, 81,213,204,180,245,225, 26, 30, 28,175, 78,115,174,213,
-140,180,170, 33,240,162, 15, 42, 98,104, 96, 45, 36, 76,140, 41,  5, 50,189,114,241,  2,160,173, 78, 78,239,222,223,253,224,225,
-195, 90,100,125,186,218,220,222,222,220,218, 58, 58,216, 39, 38, 66, 82,163,148,250,147,253,131, 11,231,207,  1,234,133, 75,231,
-190,246,157,191,202, 37, 39, 76,171,213,233, 98,177, 17, 13,  5,117,107, 99,235,250,213,171,111,220,126, 39,105, 96,228,162,182,
- 96,142,172,155,195, 32, 85,214,182,134, 92,  2, 71, 23,185,167,169,174,171,228,154,137,  8,148,137, 25,  9,173,162,129, 21, 81,
- 50,237, 82, 44,103, 45,155, 33,  0,179,167, 90,154,195,198,140,  0,  2,250, 35,230,101,155, 85, 13,163,202, 76, 59,106,253,212,
-  4,216, 78, 46, 70,111,148,103, 38, 66, 96,130, 82,220, 52, 66,190, 51,114, 54,125, 96,170,185, 84,151,  4,  0,138, 86,107,239,
- 79, 84, 21, 85, 96, 34,109, 88, 21,112,202,143,155,187,131,119,199, 49, 17,153, 20,147,128,  0, 86,165,189, 57, 12, 21,125, 49,
-168,196, 13,154,128,109,131,170, 10,  4,132,104,170,226, 59,238,179,158,  3, 48,  3,106,141, 58,  0,200, 52,  3,245, 12,188,238,
- 10,207,244, 42, 32, 96, 68,  4,168, 62, 14,152, 53, 24,167, 17,136,154, 25, 19,154,161,145, 67,113,153,200, 28,181,143,140, 64,
-134, 14,161, 67,107,225, 82,  3,172, 32,145,189, 95,154,170,169,206,226,181, 91, 43,  9,185, 54,243,143, 74,173,104, 94, 82,224,
-197, 18,138,  0,  8,  1,160,120, 12,157, 34, 17,  6,  3, 77, 49, 96, 35, 27,160,255, 10,  6,216,156, 22,136,134,216, 90, 62, 21,
-152,201,204,136,141, 42,130,130, 48,  0,114,155,250,112,238, 97,199,134, 74,241,211,219,187,166,249,204, 60,237,  6, 28,192,170,
- 34,136,192,192, 16,  8,218,237,133,  0,  1,188,174,143, 60,159,133,214, 66,255, 85,100, 44, 37,165,228,119, 93,  3, 80, 45,166,
- 74,148, 20,129,108,182, 50, 33,129, 26, 81, 48, 80,228,132, 72, 98,130,166, 42,168,106, 80, 12, 12, 24,233,220,206, 14,157,219,
-190,113,253, 18,  1, 17, 71, 83, 59, 58, 62,126,255,254,195,253,253,227,187,187,143,223,253,224,193,254,254,227, 10, 24, 57,165,
- 24, 99,138,139,161, 31, 82,215,165,184, 92, 44, 22,253,176, 88, 14,169,239, 23,221,144,186, 94, 74,  9,137, 56,164,148,250,190,
- 11, 68,189,225,  0,136, 62, 19,228,169,230, 60,213, 82,  4, 85, 40,173,203, 88,243, 24, 44,  7,208, 64,144, 98,240,155,165, 33,
-149,170, 72,234,212, 85,212,234,163,114,245,236,164,206,205,226,205,107,131,118, 54,119,183,157,183,232, 71, 96, 27,175,121, 66,
-242, 22, 56,199,251,157, 45,122,253,110,136,206,128,245,250, 52, 36,255,182, 89, 21,  0,116,220,121,195,204, 56,151,187, 29,219,
- 22, 99, 87,167,252,163,255,239, 91, 99,145, 87,191,244,101,144, 92,114, 37,246, 10, 94,  7,164, 10, 48,183, 11, 41, 34, 18,113,
-  8, 96,104,181,182,168,173,  3,173,213,187,132,166, 50, 78,218,117,175,124,241,103,255,171,146,255,151,127,244,187,170, 86, 16,
- 82,215,125,226,169,107, 55,174, 93, 44,180,245, 83, 95,252,242,239,255,241, 87,223,124,239,157,167,110, 94,127,252,240,238,135,
-119,222,251,209,235,175,127,248,240,193,106,189,190,250,196,165,223,248,165,175,124,250, 19, 47,172,214, 57,151,  2,134,134,228,
- 34, 44, 48,207,105,114,116, 86,236, 48, 12,143, 15, 14, 61,107, 84,107,109,226, 77,  0, 19, 99, 34, 51,139,129, 79, 78, 87,  6,
-200, 28, 74,169,216,166,249, 14,  0,  0, 32,  0, 73, 68, 65, 84,  0, 48, 78,147,136, 18,177,223,241,167,169, 78,181, 44,210,230,
-209,201,236, 65,110, 62,101,  0,213,117,201,  0,166,100, 94, 86,141, 40,  7,167, 83, 21, 56,157,214,170,194,  5,121, 24,  8,105,
- 53,213,141,197,242,201,107, 87, 84,  1,205, 98,  8,170, 16,152,137,  3, 32, 94,190,254,228,234,248, 88,193,136,130, 72,145, 90,
- 56, 17,102,187,114,229,218,135, 31,124,120,237,252,246,237,251,123, 93,234,  8,105,202, 35,165,193,  4,250, 56, 60,251,177,103,
-222,124,239,109,191,246, 91, 41,194,174,240, 88, 85, 25, 82, 55,230, 73,209,186, 20, 77,109, 28,143,195,153,255,206,107,177,154,
-185,202, 26,246, 24,169, 39, 96, 14,140, 88,221, 84,219,142, 60,156, 67, 72,104, 77, 43, 55,143, 73, 80,112,182,109,243,201,105,
- 59, 51,204,136,177,181, 88,  0,128,  4, 10, 85,177,212,234,187,110, 59, 11,182,146, 17, 16, 32,156, 78, 83,173,149, 40,148, 42,
-162,160, 85,213,212,115, 73,  6, 90,179,  2, 96,241,230,179, 51, 72,151,106, 53, 75,  8,  0, 32,197, 28,245,104,  4,145,156, 56,
-  8,129,200,  2,174, 38,149,230,  3,113, 79,112, 75,214,170, 88, 11, 95, 55, 49,209,192, 76, 92,122, 80,160,128,  8,214,165,132,
-222, 44,104,138,166, 78, 71,160, 64, 10, 38,165, 26, 66,138,254,110,145,150, 65,197,136, 48,193,124,192, 25, 88,  0,102,100, 53,
-160, 16,163, 89,169,238,255,116,132, 84,187, 63,185, 66,234, 83, 87,171, 53, 69, 48, 85,241,244, 92, 19,236, 17, 76, 57,250,202,
- 25, 99, 74,136, 24,136, 67,160, 82, 73,  5, 20,194,153, 48,163,230, 44,115, 32,  2,164, 64,129, 61, 69,217,228, 47,194,224,134,
- 74,153,243,239,238,109,132,134,229, 34,140, 38,213, 85, 51,178,118,136,  0, 96, 68, 42, 46,113, 49,  0,  2, 35,198, 20,171, 56,
-218, 11,220,217,195, 78,152,117,  6,150,123,230,137,204, 76, 84,197,188,189, 22, 27,201,171, 26, 48,113, 32,132,136, 48,130,225,
-184, 94,  7, 64, 41,  5,  0,106,117, 82, 10,  1,128,214, 90, 91,219,164,249,220,216,108, 38,  0, 96, 66,232,207,114,101, 10, 85,
-231, 21, 40,130,138,130,175,121,167,108, 90,135,174,123,249,217,167,136,136,  3,155,192,233,106,117,255,225,222,251, 15,118,239,
- 62,124,180,127,116,180, 58, 62,126, 92, 30,139, 40,133,200, 68, 49,134, 46,117, 67,223,111,110, 44,150,221,178,235,220,176,223,
-245,156, 32, 82, 23, 83, 76,125,138,129, 99,136, 93, 23,227, 34, 50,149,170, 99, 30, 49, 46,214, 57,173, 78,215, 42, 50,141, 35,
- 83,141,108, 93, 64,  4,101, 20,196,  8,170,193, 68, 76, 75,153, 50,167, 14, 66, 12, 68,160,234,  9, 44, 66,171,165, 58, 54,217,
-119,252,168,115,105,136,175,216,231, 71,198,159, 29,155,137, 60,115, 23,  8, 50,162,168,163, 15,  0,189,165,207,188,227, 27,206,
-194,132, 14, 62,155,105,242,134,104, 76, 33,245,253,189, 15,110,191,245,214, 91, 79, 92,125,242, 83,207,220,146, 90,196,129, 14,
-170, 68,173,248,219, 95,203,205, 84,103,134,254,212,250,  0,230, 64, 31,  4,145,106, 90,165, 86, 51,236, 54, 54,215,171,211, 85,
-169, 63,253,115,191,246,151,255,230,181,239,191,249,225,185,243,203, 47,125,230,197, 39,175,223,192,180,179,125,233,218,147, 79,
-222,184,245,236,115,223,254,214, 55,191,243,205,111, 60,122,116,239,157,247,239,222,223,221, 77, 49,252,205,159,254,194, 87,190,
-248,202,206,206,198,241,233,137,  9, 57, 55, 10,193,152,216, 89, 75, 51,107, 15,204, 32,231,130,102,  8, 18,  2, 29,159,172, 17,
- 33,  5,114,173, 53,134,212, 26, 65,  9,203, 52, 30,156,172,159,189,114, 65,204,200,231,127,  0,118,118, 23, 82, 85, 72, 28,136,
- 24, 72,207,116,198,  0,  8,  8,147, 72,171,  9,118, 78, 91,155, 78,  3, 34,104,181, 44, 85,170, 25,209, 82, 58,  2, 36,198,157,
-115, 59,  0,104,104,165,214,245, 56, 10,104,169, 19, 24,108,110,109,159,191,120,241,209,131,251, 30, 37, 83,  0, 14,105, 26, 87,
-177, 22,209,122,253,210,229, 49,215,199, 71,167,203,197,162,230, 98, 93, 87,  4,166, 90, 46,156,191,240,226,115, 47,253,245, 27,
- 63, 52, 84,100, 38,  3,231, 65, 86, 21, 14,129,152, 83, 96, 21,157,242, 20, 83,164,166,146, 35, 18, 86, 49, 62, 51, 91, 48,197,
- 64,  8,192, 68,103, 65,182,249,184,110,231, 49,205, 20,106, 36,240, 24, 53,120,220,135,  8,204,136, 49, 96,155, 70,125,211, 91,
-192,203,118,168,157,100, 76, 14, 67,  7, 36, 21,209,246,242,100, 85, 37,164, 46,  6, 53,161,179,248, 44,136, 15, 46, 49, 34, 88,
- 28,167,170,214,120,185,222, 17,232, 99, 10,131, 49, 48, 18,120, 86,209,237,227,103,125, 33,106,  6,140, 86, 61, 58,  2,106,202,
-  4, 69, 45, 17, 89,169, 13,186, 99, 58,  0,136, 32, 35,213, 25,240,109,160,166, 22, 18,171, 97,159, 72,170, 77, 69,212, 32,250,
- 90, 81,193,200, 98,136, 37,103, 49,175,254,  1,114,235,154,  9,130,183,  0, 97,196, 48, 89,241, 87,130, 33, 84,173,  0, 16,136,
-196,148,137,138,202, 89,  3,179,155,233,  2, 17, 16,144,153,137,113,194, 58, 59, 74,103, 74,  9, 32,145, 26,136, 89,240,205, 37,
- 81, 66,119,121, 85, 21,181, 90,205, 89,194,128,236,126,156,217, 92, 17, 40, 84, 45, 58, 85, 71,209,104,129,172, 82,212, 84,  5,
-252,  4, 80,107,186, 79,187,227,152,162, 81, 96,  0, 20, 85,213, 25,170,131,138, 94, 72,171, 96,218,160,184, 72,100, 82, 35,181,
- 46, 51, 19,136,145, 75, 21, 36, 12,136,168, 86,177, 38,140,110,236, 83, 80,  4, 34, 34,  0, 82,200,136, 17,220,138,225, 95, 52,
-194,177,150, 15,118, 31, 46,151,155,  1, 64,212, 11,183, 81,  9,130, 97, 36,110,142, 44,152, 95, 68, 72,190,253, 50,  3,179, 36,
-206,224,246,163, 76,196,237,153,173,203, 14, 99,214, 90,215,162,  0, 85,197,105,111,215,110, 92,186,113,227,178, 84, 83,173,185,
-216,193,201,241,122, 53, 30,156,172,238, 62,120,252,232,224,120,255,240,228,224,240,224,246,251, 50,137,116, 33,244, 67,183, 53,
- 12,155, 27,203,197,224,170, 78, 23, 99,  8, 49,  6,102, 14,188,232,135,126,177, 97,128, 76,212, 49,165,141,  1, 16, 77,151,185,
-202,152,215,171, 82, 84,205,196,  8, 52,231, 26,  0,204, 36,151,105, 69, 20, 49,154,  0, 96, 96,207,163,148, 60,149, 34, 49,117,
- 76,237, 64,  7,248,104, 63, 51,191,141,231,182,207,150, 92,197, 25, 85, 67, 42, 34,254, 84,139, 81, 74, 64, 51,116, 12,207,184,
-144,  6,222, 60, 98,237,219,105, 10, 24,160, 27,134, 31,254,187,111, 63,184,183,251,153, 47,124,113,217, 15,165, 76, 96,103,163,
-135, 11,212,216,182, 88,  8, 94, 54,227, 99,156,169,168,  6, 78,157, 81, 33, 51, 45,160, 90, 85,133, 25, 79,215,211, 56, 78,160,
- 19,199,225, 79,255,244,143,150,139,254,223,127,245,147,215,111, 92,235,250,157,173,203, 31, 59,127,233, 98,223,167,163,195,195,
-131,195,147, 90,243,215,190,241, 53,230,184,187,127,116,227,210,185,191,243, 27,191,120,243,230,149,170,245,100,157, 17,137, 24,
-173,101, 14,128, 29,118,229,127,247, 34, 68,172,146, 93,135, 58, 30,215, 27,105, 80, 85,230,104, 64,162, 58, 78,217,192, 98, 72,
-  1,153,129,  3,  7,154, 53,  6, 10,164, 34,165,100, 38, 10, 76, 10,186,158,214,196,140,136,162,232,143, 16,114,195, 52,151,156,
-219,173,  8,201,180,168,168, 49, 37, 39, 22,130, 34, 32, 17,136,212,113, 66, 83,184,121,253,210,102, 63,148, 82,215, 39,171,227,
-211,147,245,152,189,  7,  0,145, 21,244,226,181,235,  7,  7,251, 37,103,100,102,235,197, 86,253,162,159, 86,211,141,235, 87,111,
-223,185,247,233, 23,159,255,131, 63,255,150, 72,103,160, 37,231, 16,186,117, 30,197,236, 83, 47,189,248,248,241,131, 41, 79,136,
- 88,173, 34,176,136,169,104,129,106,102,145,217, 84,178, 40,163, 54,127,171, 95,  2, 29,201,224,166,  5,194,196, 92,196, 40,134,
- 64, 44, 94,165,209, 50,214,200,140,115,109, 19,  8,248, 38,137, 56,132, 48, 44, 78,167,201, 27,238,213,123,190,124,186,167,217,
- 97,  0,160, 34,174,126, 55, 41, 86,144, 17,144,130, 80, 83,126,128, 72, 84, 83, 74, 42, 90,165, 18, 98, 17, 53, 53,138, 92,114,
- 54, 11,137, 48,144, 15,239,254,  3,  2, 59,252, 21, 77, 85,181,162,176,167,248,221,138, 43, 96,181, 86,215,137,107,153, 31, 83,
-119,188,128,219, 54,212,117, 30, 60,235, 64, 37,157,131,135,136,  2, 64,168, 34,196, 84, 53,231, 76,137,  3, 98,141,142,166,116,
- 29,218, 93, 83,173,198,  4, 77,149,137,  2,  4, 31,110, 24,168,168, 98,192,128,  9, 77, 92, 82,239, 98, 40, 86, 40,192,152, 91,
-226,156,230,214,117,239,121,106,183,104,131, 92, 37,134, 96,106,162,106,136, 17,161,158,117,166,249,215, 85,102, 68, 55,104, 41,
-234,127,156,  6,221, 57,155,230,204, 51,213,106,204,136, 74,204,158, 69, 34,100,192, 90, 74, 69,211,192, 84,154,212,210, 92,173,
-170,130,236,169,224,  6,129, 48, 66,153,239,239, 98,134, 96,138, 58,167,123, 81, 77, 29,142, 26, 35, 35,133, 73,215,108,160,206,
- 18,199, 96,  6,134,243,163,211,178, 83,140,128,193,160, 82, 67,219, 51,  5, 96,156,171,217, 34, 83,160, 90,167,245,233,176,181,
-173,166,165, 22,241,156, 57,  0, 71,118, 51, 57, 82, 80,255,  4,125, 87,238,165, 87,218, 66,182,237, 38,137,243, 26, 66,149, 40,
-168, 22, 54, 80,  3,246,175,176,137,154, 77, 83,117,170,164,243, 99,206,109, 46,207,109,111, 94, 53,125,241,249,155,166, 86,198,
- 73, 21, 14, 78, 78,246, 14,143,247, 14, 79,223,252, 96,247,246,  7,119,199, 92,204, 96,209,117,219, 27,139,237,157,237,197, 98,
-177,181,177, 72,169,219, 72,201, 66, 40, 89, 40,208,208, 45,150,253, 34,118,161, 11,137,200,182,151, 11,164, 64,115, 10,118,255,
-232, 48, 32,  5,142,125,183, 96,138, 97,102, 63, 53, 16, 77,149, 10,103, 76,188,143,  4,148,121, 91,127, 38,208,123, 76,194, 20,
-124, 17,102, 13, 18,133,102, 34,213,252,254,214, 74,100, 29,107,221,136,121, 56, 87,115,206,140, 28, 12, 93,  0,165,239,127,235,
- 95, 31,174,203, 79,253,252, 47,177, 73, 41,121,246,217, 52, 20,178, 59, 56,189, 17,121,190, 36,182, 75, 48, 24,123, 66,219, 68,
-181,106,169,163,138,212, 82,133,113,125,180,183,220,188,120,120,178,126,227,175,190,113,231,131,  7, 47,189,240, 50,119, 27,113,
-227,252,141,167,158, 30,250,206,196, 14,246,246,238,188,251,250, 59,111,189,117,111,119,119,189,158,142,198,131, 47,253,196, 43,
-127,251, 63,248,249,216,165,105,204,205,201,227,234,101,131,249, 52, 48,148,  7,186,144, 24,208, 20,132, 17,  3,194,233, 42,111,
-246, 11, 51, 99, 48,102,174, 82,181, 74, 68,170, 82,198,113, 92, 46,187,144,194,208,119, 86,205, 89,176,216,  5,207,124, 84, 81,
-164, 48,101,113, 67,120, 34, 12,204, 83,173,104,158,195,196,108,198,206, 92, 67,195,121,137,  7,145, 40,134,200,161,212, 98, 64,
-  6, 80,205,106, 45,207, 60,117,107,216, 88,174, 78, 78,205, 96,156, 10, 18,153, 97,157, 38,151, 88,251,229,230,249,203,151,238,
-221,185, 77, 72, 70,172,156,200,106,236,  4,  9, 17, 37,117,225,198,213, 75, 31, 60, 56,232,  2,155,141, 27,155,157,168,183, 63,
-224, 11,207,127,252,181,215, 95,139, 68, 98, 38, 42,161,163, 72,104,170,181,212,156, 98,159, 82, 31,235,152,197,212, 85,133, 48,
- 78,197, 16,196, 72,161, 32, 88,140,193,123,231,130,161,215,179, 27,217,220, 64, 11,166, 31,205,243,222, 22,108,110, 13, 33,234,
- 83, 44, 34,  0, 16,217,187, 79,  3, 80, 97, 96, 53, 69, 52,247, 47, 65, 53,  0, 24, 58, 94,175, 29,100, 67,106,237,195, 52,243,
- 18, 31,205,165, 50,146, 66,179, 89, 16, 97,205, 98, 10,181, 42, 16,214,102,  0, 53, 80,130,  0,  0,100,200, 77,179, 38,136, 28,
- 38,169,102, 80,205, 49,123, 64, 96,196,148, 85,234,140,225, 64, 98, 85, 84,  5, 66,168, 30, 16, 65, 37,246,118, 63, 80,113,245,
-160, 57, 60, 72,  9,137,220,202,222,199,  0,132, 81,  2, 40,120,236,  3,129,136,218, 77,137, 34, 69,  8, 43, 24, 21, 42,  0,145,
- 53, 21, 28,  1,205,196, 29, 89,156,  8, 17,201, 24,217, 25,104,174,171, 27, 34, 51, 88, 67,187, 18,186, 94,228,146, 95,169, 10,
-104,129, 88, 21, 16,244,172,202,193, 15,202,192,132, 68, 28, 88, 12,139,212,160, 54, 12,221,234,100,244,142,145,220,212,175,255,
-159,170, 55,107,150, 44, 59,178,243,150,187,239,125, 34,226,198,205,155,121,115,170,156, 10, 53,163, 38, 84,  1, 40, 76,196,212,
-104, 16, 96, 91, 55, 69,209, 68,170,173,141, 47, 52, 61,203,244, 38, 62,232, 63, 72,250, 29, 52,227,147, 30,245, 38,202,196, 70,
- 19, 93, 93, 13,160,107,206,170,156,231,225,102,230, 29, 35,226,156,189,221, 93, 15,190, 79,100, 17,102, 48, 20,204,178,110,198,
-141, 56,113,142,239,229,107,125,203, 17, 51,175, 48,156, 19,251,202, 33,153, 69, 18, 87, 77,204,139,208, 97,213,213,226,183, 98,
- 18, 78,137,221, 57, 30, 73,102, 70,236, 98,158,178, 12, 85,153,201, 84, 99, 14,165,156,136, 89,221, 65,156, 19, 45,208, 59,165,
-156,179,129,136, 93, 85, 89, 82, 34, 30,162,177, 72,214, 50,102,115,243,197,122, 94, 61,208,161,138, 85,163, 30,152,147,  0,243,
-205, 77,181,214,176, 66,148,220, 85,184, 57, 30, 36, 73, 25, 26, 90,  7,129, 92,244, 54, 76, 58, 35,196, 81,150,216, 19, 68, 85,
-153, 57,199,254,140,148, 51,145,  5,180,131,189,  1,163, 98, 24,214,224, 57,  3, 22,161, 52,115,168,147,164,196, 56,125,226,248,
-185,147,219, 66,252,207, 63,128,179,220,125,178,119,231,222,131,219, 15,118,110,220,223,185,113,247,174, 87,103,145,141,141,233,
-246,241,227,105, 50,233,152, 59,145,106,158, 82, 18,166,141,217,198, 36,231,141,217,100,115, 62,223,152,205, 38,147, 89, 55,155,
-110,228,105, 34,114,146,220, 77, 83,179, 36,180, 41, 27,  4,116,121,234,196,156, 82, 96,180,163,127, 18, 68, 48,246,181, 65, 22,
- 62, 14,245, 16,226, 81,239,244,117, 13,147, 90,205, 41,183, 14,171, 49, 19,101, 35,  3,169, 29,  5,136,  8,220,205,102,139,221,
-221, 79, 62,253,211,214,201,179, 63,251,193,187,168, 67,181,214,125, 17,137, 37, 52,198, 41, 64,  9, 13,159,170,227,142,117, 60,
- 35,215,106, 90,181, 68, 68, 80, 74, 45,253,176,218,220, 58, 33,179,141,175, 62,251,227,149,171, 87,230,243,205,119,222,126, 43,
- 79,183,231,167, 47,158, 63,127,206,171,238, 31, 60,123,250,104,231,206,205,107,183,238,222,186,251,104,231,201,238,222, 75, 23,
-206,253, 15,239,189,190, 49,223,128,164, 97, 24, 28, 78, 36, 24, 67,159,194, 29,188,140,231,  9, 30, 31, 48,213,193,101,176,162,
- 74, 36, 14, 48, 83,206,  9,210, 46, 51, 38, 97,105,120, 22, 38,137, 30,175,104, 63, 51,247,148, 83,151, 82,100,207,160,230,102,
-137, 64,132,148, 58,110,128,201, 96,116,234, 80, 43,195,105,140,247,  0,166,234, 41, 39, 33,105,203,166, 17,223,  5,247, 11,103,
-207,104,117, 85, 61, 92, 45,158, 29, 30, 12, 90,170,150, 85,127,  4, 98,  3,216,234,169,211, 47, 60,123,252,164, 12, 71,102, 76,
- 44, 44, 72,221,108,113,176,119,254,220, 11,143, 30, 63,251,206, 27,175, 93,191,253,183,132,105, 34,152, 86, 22, 81,211,156, 38,
-167,183, 79, 30, 63,126,226,209,179, 93,  2, 18,  7,163, 46,248, 21,168, 85,145,189,184,119, 57, 39, 97,172,196,220,205,140, 37,
- 53, 35, 91,196,134,132, 59,242,216,192, 52,  7,237,168,206, 68,233,110, 40,245,156,132,195,251, 96, 90,149,186,220,149,178,128,
-251, 68, 18,179,120,172,107, 91, 21, 20,172, 42,  9,143,140, 54,129, 27, 75,  2,216, 81, 97,128,  4, 57,183,237,  0, 86, 90,226,
-146,140, 28, 94, 40, 57, 81,187,193,238,165,193, 82,141, 92,140,108,132,117,113, 34,142,206,133,144, 17,132,161,230, 17,225,119,
-115,  9,219,139, 69, 60,133, 93,107,243,116, 83,236, 42,139, 71, 88,219,249,185, 51,205,220,201,  0,170,102,211,148,224, 40, 67,
-141, 26,135,248, 20, 19, 71, 95,139,155,170,144,120,107, 94, 72,212,218,214, 98,132,172, 49,182, 55,219, 59,143,  5,231,238,109,
- 83,168, 81,231, 48,206, 82,141, 61, 76, 97,177, 45,117, 53,205,179,202,102,214, 24,159,107,168, 15, 11, 57, 59,220, 25,232,186,
-108, 43,173,168, 34, 73, 93,213, 60,210, 91, 62, 26, 27, 21,222,177, 24,185, 52,230, 64, 40,187, 34,196,194,210, 91,105, 30, 22,
- 52,246, 22, 83, 50,118,  2,165,196,170, 14,102,215,138,176,116,131,  0,228,204,203,  2, 87, 37, 17, 34,202,194,193, 33,111,160,
-148,241, 57,148,137, 33, 32,165, 32,100,197,138,133,155,  6,177,126, 88, 89,155, 92, 71,195,118,226,148,132,167,147, 73,211,142,
-198,  7, 26, 19,153, 66,136,225, 76, 41,181,208, 68,107,111,130,179,146, 91, 56, 68,188, 49, 93,157, 24,  6,141,126,191, 70,133,
-129,  1, 21, 96,139,177,108,180, 26,130, 88,132, 81,188,101,140,214,116,134,118, 14,245, 10,148,170,181, 84, 16, 78,206,167,231,
-190,243,198, 15,223,125,221,221, 87,125,217,121,118,240,224,201,211,199,123,  7,207,118, 15, 14, 14, 15,158, 14,195,208,247,  6,
- 22, 18,136, 39,226,217,100,163,203,210, 77,186,141,217,116,115, 54,219,220,152, 59, 56,141,187,211,192,131, 71, 83, 20,218,127,
- 37,246,245,110,173, 55, 30,110,193,188, 49,183,218,144, 40,129,129,104,252,188, 40,183, 39,107,118, 29,145,  4, 34,230,104, 27,
-160,112, 97,173, 91, 63,220, 13,156,  4,112,184,118, 93,247,248,222,157, 47, 62,251,244,213,119,222,191,112,246,116, 93, 29, 58,
-152, 36, 16,106,205,189,227,223, 64,182,160,189, 74,106, 85, 83,110, 30,152,251, 90, 93,213,180, 58,119,229,104,255,240,240,232,
-248,246,201,203,159,127,252,217,167,159,178,227,149, 87, 94,218,154,111, 15,178,121,242,204,185,141,205,121,191, 90, 62,125,242,
-248,209,189, 59, 15, 31,220,191,125,255,222,245,219,119, 87,253,240, 47,126,254,131, 95,255,242,135, 91, 39,142,221,186,126,227,
-227, 63,126,241,193, 15,222, 42,131, 53, 90, 76,251,148,156, 99,141,220,106,137,124,108, 46,144, 58,172,170,122, 28, 46,166, 41,
- 37,112, 32,108, 73, 68, 58, 73, 34,139, 97,  8,115, 65, 18, 78, 93,167,112,135, 11,183, 14,160,234, 74, 78,139, 50,144, 68,115,
- 17, 70,238, 51,192,236,238,164,134,234, 30,186, 31, 27, 65, 18,103,227,160,120,154,249,248, 14, 17, 57, 44,119,249,226, 11,103,
-172,106,191, 42,123,  7,135,139,197,202,106, 61, 56, 92,172,106, 69, 64, 38, 84, 39, 27, 27,167, 95, 56,127,235,250,101, 38,102,
-107, 79,136,110, 54, 75, 41,159, 84,123,178,179,247,234,133, 23,110,222,223, 33, 80,191, 90,205, 55, 55,225,182, 26,150, 27,147,
-217,171, 47,191,124,243,238,189,161, 95, 17,145,169,133, 63,156,152,212,145, 57,205, 39,211, 85, 63, 48,113,180,142,146,136,185,
-115,123,250,143, 29,190, 20,150, 43, 86,173, 97,177, 72,180, 62, 31, 54,201,206,213,173,221,245,161,145, 16,  2, 28,232,181, 78,
-168, 83, 83, 14,159,182,151,184,  2,189,154,147,153,219,114,217, 51, 39,181, 26, 55, 59,  7, 44, 88, 75, 70, 22,199,228,112,133,
-135,175, 64, 13, 76,164, 16, 98,141,111,104,172,229,  3,190, 13, 30,141, 90,193, 45,176, 38,130, 51, 97,157, 26,116, 55, 11, 47,
- 83,108,194, 25,236,129, 18,106,245, 61,207,149,122, 33,110,127, 47, 53, 92, 31,113,164,  9, 61,  4,237, 38,145,183,188, 97, 59,
-208, 75, 78,210, 23,175, 90, 27,164,130,200, 35, 37,  5,103,225,112, 33, 55, 76,187, 97,240,106, 86,205, 61,137,176,  0,166,  6,
-142, 97, 62, 35,253,183,147, 89,124, 79,133,106, 17, 35,167,102,134,135,  6,229,139,204,  2, 38,107,166,150,132,205, 34, 28,143,
-234, 70,204, 26,223, 79,197, 36, 75, 39,137, 28,108, 24,180,138,208,180,235, 68,132,170,182,137,154,216,169, 17, 68,155,233,156,
-131, 91,  2, 38,120,172,224,146,  4,151, 47,178,200,165, 26, 51,192,100, 80,161, 36,146,  3,213,162,238,165, 84, 17,182, 90,135,
- 90, 39,153,196,186,168,129,131,147,  1,169, 81,245,137,133, 42,216,154,  1,132,114, 78,234, 70,165, 48, 75,102,153, 77, 82,150,
-137,161,180,105,159,220, 65, 67,181,236,193, 45,246,117, 29,187,155,  5,172,125,172, 58,183,176, 70,121,187, 98,169,185,121,188,
-117,107, 17,160,202, 36, 99,219,118,108,179,  1, 55, 37, 98,176,130, 57,162,159,209, 24, 23,184, 45, 85,196, 70, 75,178,168, 97,
- 48, 95, 28, 28,181, 74, 85,248,201,173, 99, 39,143,111,182, 56,215,160,139,126, 24, 86,195,193,170, 28, 44,150,123, 71,139,103,
-207, 14,158,245,253,163, 39,187, 67,237,157,132,  8,155,179,233,108, 58, 75, 80, 71, 44, 36, 90, 81,130,185,131, 56,121, 36,  9,
-215,225,203,231, 12,248,248,215, 51,198,204,159,251, 55,  7,113, 49, 50,226, 64, 57,121,220,219, 91,  1, 76, 99, 40,124,131, 10,
- 39, 65,165,148, 46, 79, 31,222,189,115,249,203,207,223,255,241,207,182,143,111, 14,203,165,187,147, 52,168, 60,173,253,149, 49,
-253, 71, 51,141, 42,115,  6, 25, 89,112, 55, 28,174, 62, 84, 51,167,110,186, 90,173,142, 14,158,156, 62,119,238,240, 96,247,159,
-254,254,111, 47, 95,191,122,102,235,212, 91,239,188, 86,117,206,243,147,103,231,155,148,120,239,217,211,197,222,222,206,206,253,
-155,183,238, 92,191,117,235,206,227,135,167,142, 29,255,247,255,230,183,223,127,255,221,101,223, 31, 29, 29,157,187,120,254,225,
-195, 79,191,188,114,231,237,111,191,210,175, 86, 68,225, 87,115,184,122,251,118,199,239, 69, 99, 70,197,205, 92,213,172, 22, 11,
-120,136,128,136,186,196,230,106,234, 41, 65, 93, 87,125, 15,226,105,215,  5, 47, 16,166, 17,110,234, 82,231,234,149,106, 25, 52,
-165, 20,143,116,115,205, 57,179,172,160, 32,167,232,175,171,106, 99,193,166,177,128,157,212, 84,128, 73,202,195,176,138,216,122,
-206,221,198,100,114,226,228,246, 96, 86,108, 88,244,253,106,181,116,247,195,163,197, 48,244, 16,118,171, 76,100,240,147,103,207,
-238, 60,122,176, 56,220,165, 36, 34, 89,109,200,110,253,225, 33,106, 29,250,254,187,239,124,251,112,185,122,252,244,144,133,167,
-117, 34, 93, 71, 64,213,186,125,252,196,235, 47,191,252,249,151, 95,128,197, 70,108, 88,220,141,138, 41,220,212,244,112, 89, 72,
-181,217, 95,198, 35,  8,183,103,116,104, 39, 68,194,174,202, 96, 87,131,140,214,234,241, 72,182,174,203, 14,221, 70,  1,114,103,
-102,117, 31, 34,224,230, 22, 93, 35, 34,100,  5,  0,216, 34,196,167,146,169, 95, 90, 70, 72,131, 62, 38,126,224,160,226,102, 78,
-234, 72, 85,205,181,170,138,136, 65,157, 73,139, 69, 19,155,193,205, 33,241,100,136,  9, 16,225,239, 70,137,192, 14,168,227,  4,
- 70, 41,203,112,213, 43,197, 60, 26,105,108, 25,123,148, 67,211, 11,253,146,147, 72,220, 77,130,139,204,241, 92, 36, 99, 73,234,
-214,187,103, 17, 50,  3,145,186, 39, 34,102,104,  4,130, 56,177, 88,116,243,176, 19, 17,117,146,122, 45,205, 97,144,147,215, 26,
-241, 31, 48,151, 90,153, 60, 17, 57,161, 87, 21,146, 44, 66, 65,225,  2,216,226,221,143, 22,209,216,104,144, 19, 33,  5, 83,172,
-117, 61,113,188,  5,164,148,114, 98,138,178,139,  8,160,169, 27, 44, 70, 14,143,  2,103, 18,102, 17,  2, 23,211, 97, 40,155, 27,
-179,148, 68,213, 98, 81,101, 96,137,158,224, 56,114,162, 37, 39, 55,186, 92,212,122,162,106, 72,205,169,174,227, 25,148,225,128,
-198,128,196, 65, 78,176,102,226, 52,133,103,150, 65, 28,165,134,103,193,171,115,107, 29, 85,162,  4, 39,119, 99, 39,103, 39,181,
-212, 90, 87,184, 20, 35, 32,132, 33, 80,231,228,230,158,132,188,182,195,157, 48, 80,189,245,137,182, 38, 67,135, 86, 72,138,150,
-212, 22,211, 51,119,138,169,  6, 48, 99, 38, 85,  3, 57,106,108,216, 41,156,114,241, 24,107,193, 82, 18,181, 26,184,166, 56,240,
- 90,147,232, 98, 90, 11,126, 15,204, 27,220,197,  0,142, 98, 26,  2,131, 53,140, 65,145, 80,118,234, 38,211,233,198,198,166,234,
-133, 49, 97, 90,107,173,125, 89,148,242,120,239,232,254,195,157,  7,187,123, 79,246, 14, 18, 90, 44,185,225,250,198, 65,163, 70,
-  8,194,219,208,234,227,217,165,117, 51, 68,235, 59, 70,232,204, 88, 26,224, 30,141,151,129,255, 91, 23, 66,137, 68,241, 31,214,
-124, 45,180, 19,139,  8,231, 60,185,241,213,103, 55,111,222,249,224, 39, 63,155,111, 76, 86,203, 37, 26,194,220,104,100,218,211,
- 56,151,182,225,175, 77, 25,161,132, 59, 76,221,173,214, 58,217, 56, 70,101,216,127,246,116,107,251, 36, 76,111, 93,249,242,211,
-207, 62, 86,245,239,191,253,206,201, 83, 47, 44, 52,231,227, 39,230,147,233, 80,250,163, 39,187, 15, 31,222,125,252,232,209,253,
- 71,143,174,223,186,179,191, 60,250,209,119,222,252,183,127,249,155, 83,167, 79, 44,142, 86, 22,189,222,206, 63,248,225,247, 62,
-250,240,143,215,110,164, 87, 95, 58,191, 90, 13,204, 45, 93, 23,247,153,150,176,140,254, 64, 78, 44,210,215,162,170,221,108, 66,
- 12,117,101,161, 32,216,170,133, 61, 38,101, 22,144,  9, 97,112, 15,186, 24,152,156, 56,119,157, 12,131, 90,212, 68,147, 36, 17,
- 65, 32,141, 96,166,129,196, 38, 88,235,210,108,121, 40,  7, 75, 74, 90, 45,229,142,133,195,136, 40, 20, 91, 14,156,222,222,222,
-152,205,181,244,165, 95, 45,142,142,142, 86, 75,115,148, 90,135,213,  2, 90, 35,179,  0,213,212,229,139, 47,190,116,229,242, 17,
- 97,112, 51,225,132,228, 52, 63,102,176,151, 95,123,105,239,217,238,107, 47, 93,120,182,127, 25,240,161,234, 76,162,202,206, 88,
-186, 55, 94,125,237,241,206,163,123,143,118,178, 68,123,154,207,114,118,226,162,101, 53,212,131,163, 85, 22, 73, 89,  4, 88,149,
-194, 96,107,250,136,183,222, 33,196,232, 54,214, 62,198,138, 74,130,138, 55,206,188,110, 14, 22, 38, 53, 23, 70, 34, 82,213, 64,
-197, 48,139,185, 69, 81, 55, 19,171, 18,204,133, 72,217, 21,173,143, 62,137, 84,173, 99,225,111,220,109, 21, 70,226, 94,221, 93,
-173, 84,101, 80, 78,169,170,198, 25, 76, 53,110, 95, 13,119, 74, 99,248, 62, 32, 10, 68, 49,192,106,172,187, 67, 36, 39,225, 82,
-135,120, 32,169, 58,177, 50, 37,114,144,197, 18,120, 13,210,118,119, 87, 55,  6,  4, 82,195,122, 16,213, 46,224, 82,251, 36, 82,
-213, 19, 73,107,188,102,192,189,148, 10,145,240, 40, 39, 22, 77,  6,  2, 75, 52, 50,133, 48,101, 76,168,253,  0,184, 68,226, 21,
-136,244,150,129, 86,101,197, 96, 13, 16, 70,  2,147,184,  7,210, 43, 42,127,157,  2,180,201, 60,110, 53, 97,113,191,166,177,204,
-219,201, 16, 79, 58,234, 68,224,232, 75,169, 35, 79, 57, 54,139,110,206, 78,125,173,194,100,102,102, 54,168,234,106, 53,155, 76,
- 82, 72,203, 32,107,232,155,134,248,111,199, 10,245, 82,181, 20,131, 57,101,160, 18,152,146, 48, 19,151,161,119, 55, 99, 35, 48,
- 19, 27, 97, 53, 12,113, 18, 72,146, 72,164, 10,160,224,196,196, 81, 83,134, 74,206,141,236, 19, 68,204,182,225, 53, 38,  6, 69,
-122,182, 77,218,194, 36, 66,156,152, 27, 26,165,225, 89,162, 90,135, 24,170, 52,242,233,192,108, 30,245, 91, 12, 82,144,  4, 88,
-185,193, 52, 98, 23, 89,157,226, 66,148,228,225, 17, 18,114,243, 48,132, 52,  9,203, 45, 17,177,112, 29, 44,250,198,204,205,205,
-198,128, 35,185,179,250, 96,218,152, 21, 12,114, 36, 18, 37,136,185, 69, 17,  6,129, 59,150, 98,106,238, 90,148, 48, 54,205,  0,
- 12,246,156, 55,114,247,234,124,243,141, 75,231,132,253,201,179,189, 20,157,168, 99,124,188,173, 73,131,205,177,230, 61,133, 35,
-160,177,105,209, 56, 97,161,121,183,251,219,250,224, 29,118,199, 17,119, 57,186,107,108,221,187,205,107, 28, 20, 33, 73, 34,179,
-127,250,240,239,212,233, 39,191,250,117,162, 90,106,109,211, 58,161,157, 95,125,124, 28,122, 52,139,175, 73,232,110, 94, 89,178,
-153,219, 80, 28, 62,221, 60,126,184,183,211, 15,122,234,133,115, 55,190,250,236,235,203, 95, 62,219,221,191,112,254,244,171, 47,
-191, 90,124,186,192,100,126,252,184, 36, 62, 58,216,219,125,182,243,240,254,221, 43,215,175,222,188,123,127,239,240,232,228,246,
-177,191,254,243, 95,255,217,143,191, 71,204, 71,203,101, 91, 36,139,152, 89,  5,253,224,  7,223,253,232,163, 63,205, 38,211,115,
- 47,156,234,135,158, 71, 31,  8, 92, 67,252,141, 10, 65,195, 64, 62, 29, 22,139, 82,106,158,162,203, 73, 72, 84,157, 68, 70, 28,
-131, 11,177,170,169, 34,177,164,212,113,138, 28,129,  0,230,205,247,  6,  2, 51,249,217,227,199,159,196, 31,133, 17,132, 65,117,
-100, 10, 70, 96,143, 65, 14,102, 84, 56,134, 50,100,233,158,115,178,195,143, 88,235,185,179,103,166,147,201, 98,113, 84,170, 22,
-179,246, 68, 53, 12,171,190,133,136,220,195, 25,121,236,244,169, 99,143,182, 15,158, 62,138, 49,137, 89,104,130,220,119, 50,233,
- 86,165,136,251,249, 83, 39,239, 62,221,155,104,  5, 77,213,148,132,203, 80, 54, 38, 27,239,189,243,246,163,157,191,235, 75, 73,
- 36,238, 38,146,138,233,193,225,106,169,213, 96, 12, 38,184,132,232, 24,164,136,198, 87, 48, 70, 50,176,155, 11,163,196,109, 62,
-  5,237,207,153, 90,247,  1,  8, 66,162,120, 94,229, 27,174, 24,237,  7,176,140, 17, 33, 50, 51,167,176,119, 53,147, 73,124, 38,
- 14, 53, 51, 85,181, 64, 52,162,237,106,170,185,174,145,135, 68,106,110,230,213,145,216, 97, 13,172,235,102, 14, 13,198,141,  5,
-140,123,188,238,205, 43,121,192,111,224,166, 69, 77,171,145, 51, 71,225, 28,122,  2,135,203, 79,185,121,134, 89,216,107,192,145,
- 45,145,100,176,142,191, 39,145,169, 55, 48, 75,184, 66,181,233, 21,193, 16, 15,186, 55,141,211,100,107,121,106,137, 39,118,213,
-232,122, 99, 45,131,228, 76, 36, 93,206,181,148,161, 12, 57,  9,185, 39, 66,216,248,172,145,255, 80,204,121, 76,166,131,160,176,
-230,126, 80, 85,215, 20,100, 46, 15,115, 51,198, 81,198,  5, 82, 98,231, 64, 66,181,192, 77,152,216,159,211,221,130,199, 89,172,
-116, 50,237,203,146,103, 83, 38, 74, 68,  6, 90,244,133,225, 76,168, 14,141,133,  0, 36, 46,197, 52,225,229, 96,230, 70,237,118,
-166,238, 98,238, 67, 45,173, 38,142,152,137, 50,101, 99,147,200,166, 18,153,122,146, 54, 82, 85, 31,220,205,201, 56,156,184,141,
-139,236, 10,152, 71,141,153,143, 87, 19,155, 25,133,150, 85,  7, 90, 91, 73, 44,192,213, 81,108, 14,102, 78, 45,196, 10,107,174,
- 71, 18, 18,173,145,110, 78, 68, 84,213, 27,  0,145,156,199,126,218,246, 78,173,185,  7,102,161,103, 71, 31,123, 72,243,230,234,
- 10, 14, 31,170, 61,223, 52,196, 73,218,161, 68,  9, 92, 27, 12,210, 52,128, 19, 68, 70,138, 96,246, 16,160,176,176,134,163, 90,
- 29, 25,240, 50,206, 48,106,166, 17, 22, 17, 81,153,164,134,248, 12,118,188,175, 69,230, 17, 73,228,205,107,110,  8, 34,118,112,
- 43,219,124,219, 10, 99,125,157, 45,105, 46,118,144,196, 32,234, 17, 57, 27,227,225,163,158,204,128,117, 93,167, 58,252,225, 15,
-191,159,109,110,127,255,253,239,247,253,162,214, 16, 31, 99, 87, 18, 81,169, 56,202, 39,106,239,201,154,122, 68,112,168,169,105,
- 53,195,108, 99,243,233,195,219,  7, 71,139,205,141, 73, 95,151,159,124,248, 95, 46, 95,254,154, 36,189,251,206,183,207,156,190,
-176,223,115, 55,217, 60, 62,157, 86, 29,118,159, 62,125,120,251,198,245,235,183,174,220,189,249,120,231, 89,238,242, 47,126,244,
-221,191,252,213,143,182, 79,110,247,189,161, 88, 11,129,132,222, 66,174, 94,193,249,237,183, 95,255,248,147,171,179,141,141,173,
-121, 55, 74, 35,209,158,194,163, 77,138,  0,225,196,165, 84, 53,148,213, 80,  6, 83, 87, 87, 55,  7,167,132,161,118, 34,105, 84,
- 31,132,169,237,  1,153,136, 90,101,139,170,171, 85,103,203,156,143,109, 30,219,121,250, 12,142, 90,171, 65,213, 21,  1, 59, 29,
- 27,233,226, 28, 49,230,207, 40,113,138,111, 62,183,142,119,118,167,111, 93, 56,207, 44,110,182,234,251,163, 69,239,196,253,106,
- 24,220, 86,203,195,248,  1,238, 10, 22, 84, 37,194,249,139, 47, 46, 15,246, 85,123,212, 10,144,112,202,211,217,226,232,232,149,
- 87, 95,185,113,229,234, 59, 91, 91,119,126,247,225, 80,250,213,144,187,148,171,170,  8,145,235,241,173,147,175,189,252,210,245,
-219,119, 74, 29,230,147,105,117, 95, 14,195, 80, 85,198, 61,  9, 49, 85,120,102,170,234,132,132, 38,134,135,  2,209,114,228, 13,
-240, 64,220, 56,232, 60, 62,214, 73,  8,222,171,166,196, 24, 87,154, 22,193, 66, 55,109, 23,100, 12,230, 34,108,230,206,204,  2,
-  6,131, 69,106, 52, 94, 82,171,131,140, 43, 84,213,186,204,110, 94, 75, 53,130,122, 13, 21, 40,160,121,181, 68,205,173,155,185,
- 69,110,155,192,  0, 73, 34,211,200, 94,  0, 68,210,202,199, 84, 24,197,136,148,156, 76, 98,  8,150,181,235, 37,104,223, 22,192,
-222,145,  7,194, 68,225,  6,141,144,103,141,142,107,120, 78, 50,146,249,140,192,230,198,180,214, 67,161, 14, 97,104,141,253, 59,
-136, 41,139,196,205, 75, 36, 17,220,132,204, 61,115,156, 42, 60, 44,144,  1, 76, 83,212, 16,188, 77, 53,208,208,  2,169, 84, 91,
-218, 16,194,240, 32,197,213,234,  4, 19,130,186, 27,140, 73, 64, 36,137, 59, 38,176,193,172,148, 26,102,167,152,  7,171,147,251,
- 56,248, 67, 51, 52,242,226,156, 82, 24,158, 37,177,144,184, 85, 85,139, 35, 44, 12, 68,198,109,123, 97, 81,222, 29,226, 92, 20,
- 90,196, 17,202, 34, 27, 54,202,116, 74, 38, 49,164,171,  3, 16,145, 86,119,193, 60,122,162,218, 79,140,188, 37,152,217, 80,199,
-252, 85, 72,246, 76,166,174,100, 72,204, 12, 33, 98, 78, 49, 76,146,187, 83, 18, 42,198,194,173,255, 14,240,118,142,105,137, 75,
- 78,100,181, 53,105, 50, 89, 76, 72,174,174,180, 22, 62, 34,140, 97, 49,143,140,124,150,177, 58,187,121,131, 25,238,141, 85,228,
-186,110, 97, 85,115, 85, 99, 73,102,149, 25, 26,198, 95,132, 76,193, 22,165,243,110, 65,250,245, 54, 80, 58,152,204,226,  5, 73,
-252,157, 17,132,132,187,162, 21,249, 38,127,238,119,180,150, 58,107,104,232,214,235,215, 84,102, 27, 33,146, 77,137, 39, 31, 27,
- 26, 49, 62,195,137,216,201,128,248,188,226,201,164,227,105,217,215,244,  2,118,234,166,179,253,167,143,255,233,143,255,120,254,
- 91,175,191,242,202, 75,171,126,209,176, 98,112, 55, 29,251,100, 70, 90,153,141,176,255,181, 32,102,102,165,212,170,211,205,173,
-163,189, 39,117, 40,211, 99,219,168,245,225,189,219, 87,190,254,122,119,247,224,226,197,243, 47,191,244,178,210,124,169,211,205,
-205, 41, 51, 47,143,246,158, 62,125,112,235,218,141,203,215,191,190,123,255,241,170,232,247,191,243,230,111,127,241,163, 23,207,
-159, 53,194,114,217,  7, 21, 11,141, 99, 31,183, 63,115,114,213, 97,126,252,248, 91,111,190,248,233,103,159,253,240,131,247, 51,
-139,194,104, 92,157,132,185, 37,144, 61, 14, 12, 67,  5,211,160, 37, 39, 97, 80,113, 99,  2,136,139,105,244,102,177, 41, 17, 39,
- 73, 41, 65,146,136, 68,115,131, 84,143,181, 30,149,162,179, 99,115,134,169, 27,  9,139,123,146,  4,162,  9,139,155,246,165,228,
-201, 52,164,141, 52,198, 99, 36, 73,215,229,170,181,154, 18, 92,162,217,130,232,220,185, 51, 65,134, 61, 58, 90, 30, 46,143,114,
- 78,  7,187,  7, 76, 88, 46,163, 21,172, 62,175,150, 96,108,110, 29,223, 62,121,246,241,206,125,138,180,159,123,206,194, 68, 58,
- 12,147,217,236,196,214,137, 55, 94,190,244,229,213,187, 93,234,166,147,169, 85,115, 82,131, 39,202,111,190,254,234,253, 71,143,
-118, 15,246, 99,201, 11, 18, 98, 34,130, 40,  1,161,131,216, 56,224,180, 41,166, 93,236,238, 45,148,219,100,152, 22,136, 94,231,
-153,219,246,101,141,192,104,176, 77, 12,117,152,118, 73, 40,244,153,112,243,170,153,243, 40,216,195, 33,113,125, 54, 48,158,134,
-235, 82, 66, 91,168, 77,126, 38,152,154,119, 34, 86,  6,211,154, 82, 46, 90,171,195,220,149,204,149,140, 91,246,211, 84,153,136,
-147,112, 78,172,  1,132, 33, 38,238,136, 43,179, 26,132, 57, 11, 86,225,165, 36, 38,167, 90,213,160,132,232,118,136,209,143, 71,
-115, 71, 67,174,130, 71,119,121,124,  5, 83,142, 21, 91,169, 86,107, 73,221,  4, 68, 41,172,129, 49,225, 50,151, 90,162, 25, 53,
-  8, 78, 18, 53, 45, 73, 58,164, 82,213, 17,157, 63, 60,201, 19, 35,243, 98, 70,205,235,102, 64, 23,216, 86, 97,144,193, 73,205,
-132,192,  2,150, 68, 76,196,173,158, 45,108, 12,238,177,  9,142,151,202, 81,165, 91,181,192,188,122, 37,112, 78,212,151,202, 48,
- 24,  3,158, 89,136, 56,167, 20, 29, 29, 32,207,194,196, 73, 77,153,196,220, 13,206,145, 79,181,  6, 33,104,212,108,120,  2, 27,
- 67, 88,160,181, 17,205, 56,190, 17,163,106, 71,224,148,152,217, 66,144,200,162,  0,  0, 32,  0, 73, 68, 65, 84,220, 66,219,213,
- 90,219, 46,179,221, 10, 69,214,102, 11,196,237,  3,236,144,240,249, 17,160,198, 93, 98,206, 76, 52,208,128,145, 29, 97,225, 12,
- 52,203, 19, 68,213, 45,  0, 85,175,165,130,200,181, 58,165, 81, 23,126, 46, 20, 51,145,122,195,165, 53,237,162, 53, 34,182,142,
-145,248,156, 99, 92,143, 49,199, 92, 91, 80,200,212, 13,141,108, 48,218,106,162,113,222,227,193, 26,141,120,136,186,143,224, 31,
-143, 12,223,248,213, 26, 14,126,244,168, 51,135,113,121,189, 68, 13, 93, 74,136, 65,156,154,198, 98, 70,156,218,192,238, 80,117,
-138,186,133,216,114,217,200,123, 88, 15, 21,227,242,  8, 13,188,214, 14,198, 81,113, 54,174, 72,194,218,104, 97, 41, 24, 53, 85,
-155,204,102, 79, 30,220,255,167, 79, 62,126,239,251, 63, 57,181,125,124, 24, 22,214,248,  2,172,181,140,139, 84,105,223,236,113,
-119,  9,111, 96,123, 51,213,170, 68,233,216,169, 19,207,158,236, 16,229, 19,103,207,220,185,246,213,221,107,215,190,186,122, 53,
-117,147, 31,125,239,189,110, 99,123,229,211,233,100,115,150,187, 94,251,253,103, 59,143, 30,220,254,242,242,151,215,110,222,190,
-255,116,111,123,235,248,255,244,223,255,226,187,239,190, 73,137, 87,165,114,108,  8,220,137, 18,154,111, 34,124, 28, 18,106, 97,
- 25,202,246,233, 51,111,152,254,195, 71,159,254,252,167,223, 35,101,138,146,  2, 50,142,141, 84,235, 97, 96,131,  2, 88,245,131,
-  8,107,144,234, 68, 82, 10,159,  8,139,112, 55,153, 76,114,166,204,172,110, 85,225,168, 69,187,220,185, 19, 49,171,250,238,193,
-209,246,137, 83, 28,204, 25, 96, 50,155,166,184,114,217, 86,165,152,155,120,163, 23, 54, 15, 36, 19,152, 50,133,248, 30,  3, 12,
-155,249,201,227, 91,231, 79,158, 81, 83,119, 63, 56, 58, 90,244,131, 27, 14, 86, 75, 48,245,203, 37, 12, 68,185,173,173,153, 96,
-160,140,243, 47,189,180,191,187,211,219, 42,228,  0,115,158,206,231, 71,251,251,201,116,103,103,231,131,247,222,187,115,251,225,
-106,181,146,148,167,211,169,170,133,235,115,235,216,246,155,175,191,254,240,233,211,190, 84, 16, 79, 18, 18, 72, 64,149,108, 13,
-123, 53,179, 44, 92,204,215,163, 65,104,126,125, 89, 33,117,220, 12,118,235,  8,100,152,140, 65, 32,139,105,124,228, 79, 55,204,
-161,195,129,106, 37,214,140,230, 38, 20,181,121,163,209,114,204,223,235, 24,166, 51, 64,200,195, 60,105,166,110, 97,140,  4,171,
- 57, 27, 59,226,156,107, 17,160,244,120,205, 78, 77,164, 32, 73, 66,176, 44, 98, 85, 53, 12,141, 66, 76,158,133,147, 37, 97,150,
- 68, 66,137,105, 96,  6,  9,231, 73,210,162,195,208, 14,183,173, 49,173,173,184,252, 57, 56,201,209,106,199, 29, 85, 33, 24,  8,
- 28,173,234, 52, 62,223,168, 33,107,188,154, 54, 26,157,163, 26,152,168, 75,185,116, 98,213, 77,145, 37, 81, 99, 99, 54,107, 41,
- 57,155,215,181, 61, 29,132,201,164, 19,192, 60,  6, 91,143, 67,147,185, 10,231,204,124,160, 22,132,203, 54,123, 58,152,201,212,
- 57,232, 56,  6, 78,  4, 99,181, 18, 56,192,208,141,218,126, 66, 97,166, 48, 73, 99,139,116,  6,131,184,212,  2, 80,228, 75, 61,
-120, 12, 54,178,245,195,237,107,174,230, 48,103, 97,  2, 21,160,107,119,232, 86,110,197,225,195,144,156,136,  1,138,247,223,160,
- 93,234,180,138,214, 26,160, 31, 78, 13,112,155,226,135,127,131,229,201,205,201,200, 41,137,140,221,214,204, 68, 81,  5, 67, 92,
-106,209, 90,146,204,145,152,220, 44,248, 42, 18,142,117,105,  4,195,102,116,  1, 73,220,141, 67,169,226,181,193, 70,213,192, 96,
-136,121,187, 89,133,168, 72, 78,193,169,104, 95,207,102, 66, 71, 14,164, 68,251, 99,  6,114,  8,143,157,209,112,212,209,120,221,
-250, 44,225,102, 22,221, 77,173,170,138,217, 93, 33, 13,224,193,230, 22,240,160,209,146, 18,  2, 44,165,216, 26, 56,137,143,172,
-118,119,231,180, 86,185, 67, 80,178,245, 43,107,243,126,251,195,207, 99,172, 45, 55,248, 60,173,180,126,  0, 16,141,180,106,  6,
-165,212,221,191,121,251,243, 47,191,252,224,167,191,220,158, 79, 87,253, 82, 13, 94,122, 18,166, 44, 45, 24,213,224,121,161,142,
-197, 73,169,173,118,221, 76,205, 69,210, 98,209,175,250,199,171,195,195,249,214,214,199,191,255,255,174,126,125,229,233,254,193,
-203,223,122,241,253,119,222, 90,233,188, 71, 55,155, 79, 97,182,191,255,100,247,233,206,221, 59,215,191,188,114,245,198,157,251,
-230,254,163,239,189,249, 55,127,241,235,237,211,219,139,101,239, 69,163, 50, 13, 32, 55,  5, 85, 68,203, 15,113,140, 56,110, 97,
- 48, 32, 45,229,133,115,231,  9,242,249, 23,215,223,123,255,173, 90,170,187, 58, 68, 85,193, 76, 77,187,243,190,239,235, 80, 15,
- 23, 75, 22,202,194,102, 10, 34, 45,133,157,  5,156, 82, 78,194, 57, 39,113, 74, 44, 66,148, 51,167, 20,223, 89, 19,230,161, 14,
-238, 56, 54,159,166, 46, 39,102,119, 63, 88, 28,205,143, 29, 15,243, 70,173,189, 89,116, 40,145,  8, 20,106,214,212,141,170,214,
- 77,186, 56, 73,  5,239,246,133,211,219, 39,182,183,  8, 82,139, 29, 45, 86, 67,169,  6, 95,173,122,166,116,120,116,216,142, 68,
-107,111, 44, 96,213, 38, 27,211,147,167,206, 63,120,112,139,132,181, 12, 32, 97,241,233,198,198,230,230,252,233,238,190, 91,125,
-243,181, 75,159, 95,187, 51, 44, 23, 93, 11, 52,164,206, 25,134,151, 46,190,248,218,139,119,175,221,185, 39,240, 96, 77, 27,161,
-130,162,208,122,146,243,192, 84,181,105, 11, 10,196,206,153, 65, 86,169,184,130,220,205, 25, 12,  4,144,160, 65,106,131,110,161,
-230,235, 78,  9,139, 51, 45, 19, 83, 56,148,189,201, 27,140,214, 75,217,206,151, 86,125, 36,164, 58,188,169,147,128, 33, 73,231,
-228,174,131, 11,  7,121, 81,107,105,102,201,214, 29,105,197,149, 41, 44,191,209,138,225,102,232, 70,171, 98,141,158, 12,  2,105,
-184, 29, 52,119,157,153,182,226,235,  8,171, 54,128, 73,164,247,155,229,171,157,135,163, 37, 47,228,213,184,223,131,195,169, 96,
-109, 82,176,168,180,139,120, 32,165, 96,201, 11,108,164, 63, 34, 46, 88,148,136, 73, 17,  6, 55,120, 13, 22, 86, 60,240, 70,108,
- 27,106,173,213,109,189,114,175,  6,167,176, 45, 68,245, 29, 79, 37,171, 99,213, 87,243,234, 13,199,108,109,125,102, 46,210,170,
-163,  8, 12,171,112,239, 18, 15,149,187,110, 18, 63,222,219,121, 30,236,236,160,170, 72,112,114,174,240, 68,158, 57,171,219,193,
-209,162,150,154,208, 66,  6,222,150, 68,113,132, 52,134, 35,  5, 77, 22, 41,222, 32, 98,152,129, 91,181,185,183,112,172,106, 45,
-213,163,136,213, 57, 65,213, 71,201,167,181, 94, 49,129,153,131,208,  0,131,248, 55,115, 90,237, 31, 26,233, 63, 58,128, 34,174,
- 96,174, 90, 35,141,233, 24, 61,237,102,196, 45,109,187,142,242, 16,147,169, 66,162,242,176,185,163,199,167,  7,135,226,210,182,
- 90,237, 62, 70,102,197,193,241,150,186, 19,181,155,248,168,104,147,123, 85,192, 73,164,193,114,227,173,113,113, 51,150, 56,236,
-198, 53,194,113,222, 30,221,104,141,240,195,  4, 35,118, 53, 33, 82,131, 71,178,155,226,193, 12,134,166,245,106,191, 21,172,240,
-216,104,187,190, 69,143,229, 43, 88,255, 60, 64,173,186, 26,113,147,227,215,  4,206,160,116,198,101,238,205,204, 24, 36, 60, 19,
-226,148,228,202,231,159, 62,122,178,251,253,159,252,108,107,115,186, 90, 46,135, 97, 81,135,149,105, 24, 65,114,202,147,198, 49,
-227, 96, 10, 27, 49,220,162,197,196,188, 42, 37, 89, 45,150,169,155, 88, 61, 98,153,192,235,199, 31,254,221,181,155,183,182,182,
-182,126,241,147, 31,110,109,159,219, 43, 44,105,186, 49,155, 14,203,163,253,221,167,143, 30,221,185,122,253,198,181,155,183, 30,
- 63,125,118,225,252, 11,127,245,203, 31,127,240,222,183, 13,124,112,180, 28,143, 39,207,211,179, 49,194,181, 80, 97,156,245, 70,
-143,187,129, 74,209,179,231,206,238,238, 30,126,242,249, 87,223,125,231,205,161,244,238, 26,254,141,144, 94, 88,120,185,236, 35,
-232,156,152,115, 98, 22,105,168, 16,241, 10, 77,137, 67,196, 42, 94,153,153, 37,149,210,154,127, 28,166, 90, 22, 61, 12,206, 44,
-147,220, 77,186, 48,140, 81, 72, 61,213,188, 20,207, 41,  9, 51, 84,173,201,136,198, 68, 93,234, 34,112,191, 38, 55, 17,209,203,
- 23, 47, 77, 38, 83,117, 43,170,135,139,  5, 59, 45,151,171, 82,134, 46,243,222,193,  2,238,100,  8,144,142, 55, 22, 39, 89,213,
- 23, 94,250,214,193,222,147,197,226, 48, 26, 51, 64,153, 58,148, 50,204,230,211,251,183,238, 93, 56,123,246,201,238,225,253,103,
-  7, 93,237, 39, 41, 87,213, 78,140, 56,119,221,228,221, 55,223,190,251,112,103, 40,  3, 17,169,150, 73,202,188,126,234,  7,242,
- 59,132,181,150,237,  9, 93, 18,131, 14, 98, 41,103,161, 49,120, 17,192,145,214,217,218, 96,  6, 35,209,104, 36,153,167, 40,250,
- 52,107, 62, 56, 49, 73, 19, 43, 53, 34, 57,110,110,110,209,105, 23, 31,159, 16, 25,195,157,106, 68,178,  9,139,126,213,113,106,
-131, 45, 19, 41,  9,  9,192, 14, 13,240,111, 88, 33,201,220,216,  0, 38,115, 23, 98, 98, 17,162, 21, 72,136, 65,224, 88,  4,184,
-169,173,189,110, 10,119,162, 58,170, 77,109, 14,231, 24, 11,131,198,211, 92,124,205, 45, 10,178, 17, 83, 46,237,148, 26,193,212,
-160, 83,152, 23,159, 76, 51,193,132, 81,109,172, 77,107,253, 20,173, 27,137,195,121, 64,220, 44, 49,  4,107, 78, 62,140,220,106,
- 90,255, 15, 63,135,139, 48, 19, 33, 17, 51,215, 82,131, 15, 43,142, 34,113, 63, 98,118, 67,  0,199, 28, 34,172,213, 23,171,126,
- 99, 54, 85, 43, 13,203,109,174,104,133,160, 41,177, 17,170,214,233,116,163,243,240,250,197, 67,146,146,200,224,  0, 81,176,  4,
-215,150,146,216,208,250, 24,197, 34, 14, 73,153,114, 74,165, 84, 68, 28, 56,114,  2,100, 34, 41,231, 92,181,143, 63,220,206, 65,
- 26, 38,100,132,141,100, 29,104, 34, 48,216, 77, 61, 10,  4, 34,186,236,134,  4,238,189,152,107, 40,176, 33,111,231,148,221,170,
-185,197, 34,186, 26,224, 22,193,197,198,129,107, 43,200,  8,236,144,187,169, 41,115, 30,207, 57, 20,246,145,144, 32,157, 91,235,
- 81, 56,188, 93,163, 26,146, 91, 11, 74,228, 11,162, 50, 34, 30, 18, 18,182,137, 38, 12, 55,120,  0, 52,232,161,109, 62, 38,152,
-197, 37, 76, 22,206,124,119,119, 47, 26,136,158, 49, 44,234,227,162, 59,102,121, 38,131,166,166,173, 48,193, 67,194,140,184,100,
- 64, 32,215,149,127,104, 45,126,218, 96,115,117,117, 84,107, 73,147,205, 73,151,172,237,254, 90, 81, 96,123,188, 84,227, 44, 17,
- 42, 37,152,136, 76,114,254,232,247,255, 85, 57,253,240,199, 63, 77,137,250,213, 82, 75, 89, 29,238,214,254,104, 50, 63,157, 82,
-110, 56, 84, 97,178,  6,164,116, 50, 15, 86, 88, 45,206,105, 99,123,123,239,201, 14, 49, 29,219,222,126,112,251,201,222,157,219,
- 95,124,249,213,238,209,226,251,239,191,117,246,204,185,222,183,142,106,238,102, 19, 34, 28, 60,219,121,244,240,238,237,219, 55,
-174, 92,191,113,235,254, 99,131,255,197,159,253,248, 87, 63,253,224,216,230,230,170,154, 89,105, 27, 90, 56, 91,188,196,245,110,
- 38,106,  4, 99,250,179,134, 30,  4, 17,188, 86, 51,247, 55,222,122,245,250,215, 87, 63,253,252,202, 91,111,190, 82,139, 82,203,
-226, 69,111, 45, 86,203, 94, 85,139, 85,102,238,251,194,110,157,100,230, 68, 40,225,231, 93, 13,197,204,173,168, 51,139,184,154,
-178,187,144, 48,177,  1,253,208,  3, 94, 77, 17,244,106,134, 72,134,193,137,234,160,197, 26, 18, 43,174,206, 68,164, 68,146,164,
-170, 54, 49,211, 43, 81,  6, 83,150,244,250, 75,223,146,156,172, 47,165,214, 85,223, 19,211,209, 98,101,166,228, 60,212, 50, 30,
-254,  4, 80, 18,  7, 73,192,188, 82,158,156,189,116,233,214,213,175,163,251, 71, 77,217, 89, 82, 18,213,243, 23, 47,238,239,237,
-190,116,241,133, 39,187, 71, 71,171, 21,111,228,196, 86,172,102,201,  2,108,111, 29,127,251,213, 87, 62,250,236,179, 60,153,  4,
-183,202, 28,112, 43,160, 82,135, 40,165, 26,  5,186,104,228, 33, 83,128, 88, 25, 18,136,200,231,119,189,134,155, 54,119,138,136,
- 20,125,179, 73, 98,108,245, 36,146,152,229, 33,166, 40,102, 78,238, 74, 14,101, 23,129,172,134, 69, 18, 30,168, 70,192, 51,176,
-167,253,208,147,250, 98, 40,202,150,115, 74, 34,238,108, 81,123, 30, 37,212,196, 97, 11,246,198,187, 32,  2,229,196,173, 10,219,
-131,210, 31,  7, 12, 54,167, 90,139, 86,157,118,121,112,  8,177,  0, 66,148,153,205, 13,228,169,125,255,149, 27, 57,134, 64, 72,
- 28, 25, 74,183, 86, 32, 27, 90, 17,180,221,202,220,201, 80, 73, 51, 17,188,172,250,217,100, 18,171,137,214,205,234,238,  9,228,
- 72,204, 66,110,160, 44,121,237, 54,166, 22,182,143,172, 20, 26, 12,111, 12,165, 54,210,187,187,187,  7,103,185, 22,205,209, 34,
-194,208,218, 12,207, 77,109, 77,217,155, 81, 89, 99, 19, 91,203,160, 93,166,148,180,  6,226,110, 84, 90,160,131,171, 24, 35,161,
-235,210,225,178,159,136,  1,110,102,194, 50,159,229, 85, 79, 49,127,132,217,131,  5,132, 70,  0, 86,117,135, 53,131,160, 52,201,
-159,154,109,180, 69,124,213,144, 19,131,201,204,210,136,154, 74, 68,195,248,  2, 98,173,161,238,236,110,177,202,178, 49,150,226,
-205, 48, 82,205,122,213, 90,163,230,148,213, 91,133,232,100,146,217,106, 84,186, 27, 89, 45,218,121,172,116,226,  1,197, 24, 97,
- 60,174,202,146, 97, 26, 27,104,138,123,121,244,144,  4,189,162,113, 20,220,163,125,214,156, 64, 34,205,224,222,148,106, 33,120,
-128,109,219, 51, 54,174,  3,146,248,244,217,188,154, 21,133,  4,214, 32,136,239, 48, 43, 14,  9,  5,163, 29, 49, 48,130,247,163,
-225,  2, 60,154,246, 29,206,241,227, 32,105, 77, 23,104,224, 59,247,200, 45, 52, 33,159, 28, 36,173,203, 38,150,159, 76, 80, 53,
-181, 40,225,182,166,118,145,136, 88,248, 91,218, 36, 64, 62,166,154,152,115,102,250,221,127,254,207,105,115,235,199, 63,250, 97,
- 63,244,106,240, 90,250,229,174,150,  5,113, 38,233,184,155, 16,181,238, 34,183, 18,155, 88, 16,187,171,105,173,213, 38, 91,243,
-  7, 55,175, 87,245, 51, 47,190,248,249, 31,126,119,247,250,213,235,183, 31,156, 56,185,253,151,191,250,137,167,249,254, 48,207,
-243,233, 68,216,116,216,121,116,239,225,131,123,183,110,223,190,122,243,214,227,221,253,243,231, 78,253,187,255,238, 55,223,126,
-237,229,101, 95,130,193, 50,246, 60, 59,175, 67,133,177,151,118,139,194, 67,109, 78, 88, 48,179,143,128,111,  2, 65,109,232,235,
-107,111,190,241,233, 39, 95,236, 29, 28, 30,155,111,184, 42,  9,197,156, 65,230,139,229, 33,  8, 86, 77,161,131,112,169,206, 73,
-132,188,244, 90,173, 50, 39, 70,  9,166,152, 48,  1, 92,171,170,131, 51,187,161,148,224,146, 74,151, 82,213, 74,238,106,  8, 33,
-136, 97,213, 42,220,171,217, 80,180,235, 24,112, 53, 35, 65, 78,  9, 85,179,164,222, 43, 57, 72,140,129,227,199, 54, 95,186,116,
- 41,246, 42,139,195,189,197, 48,192,108,239, 96,143, 88,220,177, 88, 14,160, 14,  9, 30, 21,231, 77,243,115, 16,213,178,218, 60,
-113, 98, 99, 99,243,240,112, 31, 34,108,238,156, 24, 32,170,155, 91, 91,  7, 71,135, 57,167, 87, 46,156,254,234,238, 35, 45,131,
-204,166,181,104, 73, 53, 73, 55,155,230,183,223,124,235,254,206,227,219, 15, 30, 78, 38, 19,162,224,176, 81, 98, 44,139,  2, 16,
- 24,211, 88,141,198, 14,  3, 51, 79,115, 14, 33,190, 37,233,121,156, 79,133,199, 73,140,157,108,252,192,226, 34,140, 72, 73, 43,
- 22, 13,144, 57, 11, 85,175,177,111, 54,195, 36,139,171,  6, 73, 70,205, 90, 69,  6,195,129,126, 40, 76, 36,196,102,234,202,156,
-137,128,149, 89,  8,  7,213,220,217, 85,225,130, 28,233,  6,  0,204, 10,119, 83,118, 38, 66, 39,180,126,236,131,224,196,148, 93,
-114,202, 78, 43,210,177,176,184,133,189,  2, 20, 44,177, 74,117,128, 60,139,120,196,114, 49, 42, 31,  6,136,175,173,117,214,112,
- 22,214,124,201, 12,146,212,154,218, 90, 76, 10,  2,  7, 83,202, 89, 74,182,170, 53,  8, 61,196,  1,236, 72, 36, 43,175, 41,165,
-120, 57,163,211,141, 27,254,149,130,167,175,204,236,110,170,  4,212, 46, 77, 76,205,184, 61,185,194, 12, 97,  1,161,196,212,193,
- 90,205, 65,211,233,180, 19, 49,162,  3, 56, 89,195,236, 41,131, 77, 34, 84,148, 36, 19, 19,187,229,212,181,145,143, 41,113, 71,
- 52, 18, 77,198, 85, 74,108,144,100,236,172, 34,135, 16,213,102,117,109, 56, 52,  1, 87,183,184,146,  4, 20,181,115, 21, 54, 97,
-210, 26,190,239,246,155, 71,  6,216,131,208, 75, 48, 55, 19, 88,  5,  3,130, 88,113,154, 87,175,181,144,  7,141,192,165,109, 85,
- 76,131,132,204,201,161,153,120,160,208, 79, 34, 94,213, 30,118,204,112,109, 19,197,152,206, 51,208,  8,126,117,119, 24,145,216,
-120,122,112,179,118, 98, 26,195,245, 28,125,185,163,  3, 48,100,121, 35,111, 95, 10,143,139,124,132,105,147, 80, 99, 59,199,  4,
-246,156,140,235,163,250,164,186,238,201, 35,143,141, 82, 16,247,154,154,110, 66,137,208, 54, 34,214,172,118,205,222,216,188,250,
- 99,118,201,218,  3, 93, 91, 92,213, 25,121,182, 33,146, 40,108, 33, 28,107,174,102, 28, 30, 53,154,150, 97,153, 76,102,  7,123,
- 79, 63,249,248, 79, 91,167,206,188,255,221,239, 68,138, 50,190,  0, 41,117,150,231, 32, 73, 41,177, 16,140,215,141,128, 17, 65,
-132, 69,171, 56, 87,235,119,175,125,113,236,204,139,180,255,248,147,191,251,127,190,186,114,109, 40,254,189,247,222,125,229,149,
- 87, 15,250, 52,104,183,177, 53, 39,211,195,189,221, 39, 79, 30,220,190,113,227,250,173,219,215,239,221,239, 38,221,111,127,241,
-163,191,250,205, 79,167,221,100,177, 28, 76, 45,178, 24,205, 73,222, 40,121,141,109,136,209,215, 17,192,221,200,201,197,182,181,
- 61,254, 48,194,217,151,195,235,175,189,242,233, 23,215,222,124,243,181,173,249,180, 84,143,117,134,153, 61,219, 59, 82, 53,141,
-103, 36,204,160, 48,130, 72, 74, 50,203,201,201,150,171, 62, 98,249, 69, 67,163,165, 80,159,106,173, 14,144, 55,119,163, 48, 49,
-168, 14,195,203,175,191,114,225,204,153,123, 59, 59,218, 98,186,129,238,137,149,176, 20,173,165, 42,146, 44,251,158, 64,196, 18,
-205,228,219,199,143,159, 58,115,178,104, 41,253,242,193,206,238,178, 31, 86, 90,150,171, 94,152,201,125,177, 92,197,  3,219, 65,
-227,169, 50, 70,120,133, 91,202,147, 83,231, 46, 44,175, 31,154, 58,113,  2,123,242,204,146,150,139,195,173,227,199,151, 71, 71,
- 47,190,120,254,198,131,199,253,208,119,147, 41, 11,151,126,152,204, 51,119, 50,247,249,111,126,246,203,203,215,174,223,186,123,
-107,119,119,151, 36,150,114,221, 44,229,197,208,123,148, 74,199, 95,211, 84, 15, 98, 74,185,147, 78,228,112, 24, 74, 95,226,202,
- 76,227, 42,222,224, 48,197,154,102, 48,170,166,223,204,187,133,  5,158,154,  4,202, 68,150, 72,106, 84,244, 41,165, 20,223,133,
-209,  2,230, 94,181, 76,242,100,179, 75,197,140,199,210,236, 72, 88, 87,247,106,198,128, 49, 90,113,  1,164, 41,133, 54,214, 38,
- 74, 50,  7,105,141,175, 94,116, 98, 11,137,195,138, 85,215, 34,129,109,129,151,208,238,130,178,215,168,197,238,142,170,106, 17,
-141,115,111, 62, 10,  6,201,232,253, 24,253,105,  0, 58, 22, 39, 82, 81, 17,118, 71,151,186, 90,251, 90,123, 26,205,115,165, 70,
- 99, 99, 56,230,162, 14,137, 72, 28, 74,  0, 43,185,185,151,120, 44,192, 51, 49, 55,  3,223,186,176,193,163,190,131,163,160,129,
-153,106, 13, 58, 95, 72,202,230,148, 88, 44,114,118, 57, 13, 85, 55,231, 51, 34, 89, 14, 67,128, 72,218,137,170, 45,253,124,232,
-109,146, 65,206,  4,154,118,147, 60,233, 82,107,199,139, 94,119,111,227, 56, 26,150,  0,136, 42,249, 17, 24,  9,111, 60, 20, 33,
- 40, 68, 27,180,177,209, 31,216, 37, 37, 17, 73, 42, 44, 33,100,181,214,239,200, 84,232, 56, 83,214,170, 89, 18, 59, 69,248,200,
-184,185,111, 99,  9, 18,  5, 45, 22, 12, 62, 13, 66, 17, 49,  5,195,193, 89, 72,146,104,105,235, 63, 15, 33,195,218, 65, 30,  0,
- 76, 35,235, 75,113, 90,  4,199,221,131,149, 35,251, 31,103,127, 38,210,184,137,140,187,222,209,235,201, 90, 43, 37, 18, 38,239,
-152,106,227, 42, 51,177, 91,117, 34, 80,  5, 55,163,123,187, 64, 42,153, 89,128, 88,213,220,201,131, 13,215,152,  0,193,117,136,
-195,178, 89, 80,148,155, 43, 69,  0, 66,138,180,151,143,214, 64,111, 57,187,241,222,215, 14,108, 99,196, 43,150,176,146,218, 46,
-140, 27,194, 35, 36, 32, 31,  1,147,163, 24, 79, 27,179,141, 39,247,238,125,246,229,229,111,191,253,206,217,179,167,135,126, 53,
-170, 11, 78, 68,156,114,158,204,115,215,  9, 39, 83, 37,150,200,184, 18,147, 15, 78, 66,147,249,177,131,189, 71,171,197,242,196,
-233,179,229,104,177,120,246,224, 79,127,252,232,246,157,135,223,122,241,252, 91,111,188, 42,211,227, 59,135,169,219,152,111, 77,
-167,125,191,120,182,243,232,254,189,155,215,111,222,190,114,227,214,211,253,189,183, 95,127,245,223,252,197,175, 94,188,112,182,
-168, 31, 44,250, 53, 67,100,141,245,161,245,  8, 22,246, 70,230, 81, 80,139, 93, 10, 99,204,212,143, 92,228,209,  9, 65,212, 73,
-247,238,155,175,252,211,103, 95,190,245,206, 91, 39, 54, 55, 74,213, 64,204,173, 86,171,212,137, 65, 39, 20,220,108,140,112, 30,
-103,138,140,167,167,196,129,157,227, 17, 24,157,178,168, 85, 83,203,156,231,211, 41,183, 86,113,212, 82,127,253,231,127,118,230,
-244,246,239,126,255, 97, 24,253, 34,226, 19, 55,  2,201,212,155,155,150, 96,143,120, 52,234,186,178,211,185,179,103, 54,102,179,
-229,114,181, 90, 44,135, 90, 96,182, 90,246,238,  6,146, 68, 28,109,102,  1, 14, 71,228,209, 24, 48,109, 43, 57,213,237, 83,103,
-158, 61,122,180,183,255, 52, 73,142,167,108, 74,105,232,251,110, 34,211,141,141, 83, 39,182, 79, 31,191,242,224,201,209,114,185,
-216, 58,118, 76, 75, 29,106,217,152,228,227,199,142,157, 60,113,234,197,243, 23, 62,249,106,251,255,253,219,223,117, 93,183, 24,
-138, 57,152,185, 75, 57,  9,215,166,135,182,115, 34, 24,179,212,109,205,167,110,144, 36, 79,134, 50, 42,100,108,110, 50,134,233,
- 27, 76,182,173, 39,209,246, 77, 30, 38,156,118,181,212, 90,218,221, 80,141,  8,194,168,197,200, 21,148,217,161, 20,128,220,248,
-196,217,221,187,110,138, 90,133,152, 40,185, 13,212,126,115,169, 86, 18, 40, 17, 12, 20,230,  6, 38, 14, 67, 99,202,  2, 98,152,
- 49,161, 18, 11, 71,104,186, 89,146, 97, 34,164, 41,103, 93, 44, 64,172, 32, 83, 99,225,177, 30,164,181, 82,140,214, 20, 39, 38,
-213,231,221,215, 13, 84, 71, 32,162,170,202, 96,112,235,199, 20,238,178, 72,117,165, 26, 94, 69,119,184, 56,201,184,211,231,128,
- 58,172, 47, 83, 13,223,157,138, 53, 39,190,195, 34, 70, 45, 76, 10,206,192,  0,111, 94, 67, 22, 34, 22, 78,102, 42, 32,109,143,
- 14,143, 40, 99, 84,191,154,234, 48,148,156,164,214, 50,203, 27, 67, 41,165,104,219, 79,248, 90, 49,179, 86,245,  0,148, 82,213,
-245,238,131,199, 27, 27,147,179,219,103, 54, 54,242,190, 47, 35, 79,  0,176, 43,208,138,251,  0,144, 85,195,250,177,  6, 40,144,
-157,220, 24,104,121, 98, 31, 13,203,102, 49,249, 17, 11, 51,  9,185, 40,  9,115,204,163,177, 23,109, 11,196,182,118,253,  6,245,
-135,129,170,149, 19, 39,226,  1, 74, 36,238, 30,186, 32, 28,174, 70,110,148, 58, 82,135, 49, 67, 19,133,173, 76,220,130, 45,216,
-254, 47,130,  6, 78, 35,178,194, 50, 80,227, 61,115, 70,203,251,106,144, 36,107, 27,254,219, 32,213, 54,162,230,104, 99,136,187,
- 89,165,  6, 71, 30,227, 62,173,132,197, 90, 60, 34,179,171,123, 20, 74, 89,  8, 12,161, 19, 81, 64,238,192,  8,201,207,160,100,
-206, 20, 85,186, 13,240, 17, 22,228,212,104,110,230,193,251,129,141,166,173,  6, 32,138,167, 88, 20,164, 16, 51,219,248, 44,139,
-161,213, 71,173,163, 89, 85,227,250, 85,  5,167,217,108,118,253,242, 23, 87,111,220,249,209,207,127,182, 57,155, 12,101,  8, 17,
- 40,148,169,248,158, 74,238,184,155,186, 41,249, 56,188,152,186, 58, 72,186,249,214,131, 59, 87, 68,142,109,159,185,244,224,246,
- 87, 15,238,220,252,252,139,175,213,240,139,159,254,240,212,201,211,251,125, 46,190,177,177, 61, 97,199,179,167,143, 31, 63,184,
-115,245,234,213, 91,247,238,221,123,248,152, 19,253,205,191,252,205,207,126,248,221,174,203,203,190,180,214, 17, 38, 78,128,  6,
- 58,175, 73,145, 78, 99,169,132,175, 67,182,190, 38,218,227, 57,123, 39, 22,205,213,145, 98, 33, 87,180, 76,231,155,239,189,245,
-234, 87, 87,175,191,255,222,251,132,234,100, 14,175, 26,  5, 94,108, 98,109,  0, 24,225, 61, 78,212,229, 76,236, 93, 74,211,110,
-178, 90, 44, 37,145,161, 53, 69, 86,117,115,218,152,229, 90,243,116,210,169, 25,129, 38,147,201,127,250,143,255,233,252,185,243,
- 41, 73,173, 53, 62, 16,142,  1,137,200,213,132,152, 89,170,214,174, 75, 65,125, 17, 98, 23,188,124,233,188,136,184,211,209,114,
-113,184,234,139,214,229,114, 89,213, 82,102,192, 87,203, 30,166, 68,236, 24,113,125, 46,142, 66, 44,113, 21,114,162,179, 23, 47,
-237, 31,236, 82, 98,175, 85,114,118,162,201,108,174, 67, 15,243,253,221,253,247,191,243,214,225,223,127,220,187,174,250, 62,167,
-180, 88,174,220,189, 38,238,171,246,195,106,168, 21, 12, 17, 33, 20,115,119, 66, 78, 41,137, 12,218, 55, 92, 29,140,152, 79,204,
-166, 39,230,115, 35,235,  7,221,236, 38, 79,118,  3,206, 37,205, 33, 22, 18,188, 90,148,127,  9, 75,164, 57,155,189,202,161, 80,
- 56,101, 91,187,208,188,147,100, 40,203,161, 82, 74,234,102, 77,139, 78,  2, 99,184,128,138,177, 36, 73,204,165, 86,115, 75,156,
-108, 12,220,145, 25, 70,171,114, 35,205,196,176,199,  4,134, 83,220,232, 77, 40,133,224, 67,142, 20,157, 67, 74, 36, 36,137,135,
-226, 86,149, 26, 10,201,212,171,133,231, 62,142,105, 80,  5,197,252, 78, 45,200, 99,177,224,215, 81, 42, 28, 93,103,252,141,174,
-233,208,229,219, 75,227, 22, 44, 39, 15, 75, 63,188,152,101, 67,234,146, 90,137, 48, 21, 50,154, 31, 36,234,227,190,129, 10, 81,
-115, 14,104, 49, 81,232, 86,173,123,149,168, 86, 15, 56, 96,171, 86,166, 88, 38,250,  8,244, 84, 87,103, 34,133,229,156, 82,169,
-230,241, 60,224,208, 45,205, 61, 81,102,  1, 39,130,196,135, 56, 28, 29, 30,222, 92, 44, 95,186,120, 33,  9,197, 94,215,220,130,
-134, 28, 55,237,148,147,194,188, 54, 21,119, 84,101, 72,200, 28, 28, 61,230,107,131,151,153,194, 61, 17, 42,147,169,167, 76,174,
-196,196,112, 34, 78,237,222,137,152, 88, 35, 54,  7, 89,183,175, 18, 91,220,198,132,  5, 82, 85,169,148,  6, 20,115, 37,  6, 40,
-  1, 86,189,186,133,113, 50,199, 30, 81,221, 34,114,229,181, 70,195,161,251, 58,206,212,214,212,113, 91, 71, 52, 69, 50,187,246,
- 99,  1,153,135,251,206,131,144,174,218,124, 43,102,214,162, 91,  4, 33, 55,136,145,121, 37, 74,102,234, 22,224,231, 10, 25, 87,
-178,230, 90,141,153,192,228,205,245,214,218,125, 67, 51, 81,215,240,241, 48,181,244, 95,112,186,216,141,  9,201,205, 91, 67,201,
-248,130, 71, 63, 63, 71,250,118,221, 31, 20,179, 79,180,214,183, 29,113, 28,  6,252, 27,223,139,216, 34, 72,202, 57, 93,254,252,
- 79,143,159, 30,252,242, 87,127,150,115, 46,117, 24,147,177, 54, 54,183,130,121,210, 42,152, 36,173,161,146, 90,202,116,126,236,
-217,163,123,  7,123,251, 89, 38, 96,186,246,217, 71, 95,124,241,197,195,157,103, 47, 94, 56,247,254, 59,111, 87,222,216,215,110,
-178, 57,207,147,188, 90, 30, 61,121,120,255,214,141,107, 95,223,188,118,243,238,131,195,197,234,181,151, 47,254,235,223,252,226,
-141, 87, 47, 45,123, 93,245,117,236, 31,137,188,221, 55,234,118, 64,136, 86, 22,140, 77,178,113,129,141, 29, 36, 81, 72,219,146,
-188,212, 38, 37,142,197, 16, 28,156,134,126,152,111,157,121,229, 91,248,195,199, 31,127,255,187,239,147,169,171,213,190, 14,195,
-  0,166, 44,172,166,131,234,180,235,152,217, 13,147, 46, 37,102, 85,151,156, 33, 36,194, 58, 96, 40, 43, 68,111, 19,200, 77,103,
-211,201,238,254,161,164,148,195,222,199, 84,213, 58,225,174,235, 86,171, 62,214,  1, 18, 93, 90, 64, 85, 87,171, 66, 84,  1, 33,
-113,105,247,170, 68,242,173,139, 23,205,147,121, 41,181,148,126,168,234,139,229, 16,101,113, 12,233,195,135,209,142,215, 49,  5,
-214,214,248,  6,  2,193, 74, 61,118,242,196,246,246,153,189,221, 29, 73, 83,  0,176, 33,167,206, 85,207,156, 57,251,248,209,195,
-249,124,227,229, 75,231,110,220,123,178,234,151,137, 55,220,252, 96, 49,172, 68,150,203,229,193,225, 94, 95,170,154,175,106,137,
-184, 30, 25,247, 90,200,145,136,156,216,173,178,240,201,249,198,137, 99,155, 44, 98,165,100, 73, 44,220,154, 30, 61, 60, 30,235,
-114, 82,  5, 37,152,169, 87,107,157, 97, 24, 31,206,112,106, 61,  6,137,201, 13,213,234, 52,167,163,161,104,173,  0,114, 36, 72,
- 83,195,164, 56,156,196, 19,135, 63, 69,200, 44,119,201,204,213, 40, 39,238,171,  6,111, 93, 93,199,147, 44,153, 85, 55, 73,173,
- 21,181,165, 43,  3,137, 30,211,140, 59,204, 53, 81,210, 90,171,154,176, 68,161, 71, 49,139,239,174,153, 19, 17,200, 32, 57,140,
-236,147,196,171,161,170,106, 99, 48,  1,108, 49,230,141,244, 79, 11,126,223,  8, 31,  6, 37,145, 94, 53,192,226,113,231, 66,252,
-104, 51,171,106, 73, 88, 80,205,181, 90,215, 73,112,209,  2,204,107, 70,228, 69,205, 40, 49, 57,149, 96,170,132, 73,154,129,162,
-144, 20,183,221,200, 10,  7,245,194, 45, 96, 11, 32,162, 68, 84, 99,124,118, 75, 41, 89,117,  8,169, 43,140,136,137,196, 81,130,
-147,156,136, 17,186,  9, 28,100, 78,238, 93, 74, 85,245,202,141, 91,103,207,156,164, 86,129,235,  2,142,197, 26,224, 76, 52, 34,
- 65,215, 76,241,150,173, 52,119, 29,171, 13,227,170, 20, 22,145,164, 78, 65,212,240,224, 22, 83,131,172,154, 42, 55,211,109,160,
-180,198,101,114, 43,211, 50,134,132,112, 46, 34,205, 47,231,193, 47,104,232, 45, 87,116,156,140, 97,145,141, 80,  7, 88, 82, 26,
-213,172,228,228,230, 37,182,  7, 26, 85, 30, 68,110,177,134,197, 90, 61, 37,106,220,230, 80, 89,208, 16,205,218,136,114,234,237,
- 78,109, 78, 28,227,185, 57,220, 40,145,  7, 67,156,205, 92,149, 36,185, 26,133,160,159,192,230, 14,109,109,156,194,164, 10, 15,
- 88,106,227, 59, 70,185,136, 51,130,231,225,196, 28,172, 75,110, 82,167, 60,239,170,142, 87, 20,248, 56, 29,247,208,177, 71,166,
-177, 60, 18,107, 80,116, 56,236,198, 62, 91,119,228,220, 49,217,159, 62,252,112,185,194, 63,251,241,143,137,188, 31,122,  0,219,
- 23, 95,222, 58,119, 49, 96,222,225,169,146, 46,158,245,220,205,230,231,223,249,129, 14, 37, 79, 55,134,126,177,251,236,217,100,
-235,196,100,146,142,246,158,126,253,233, 63,254,238,247,191, 63, 90,149, 95,252,179, 31,188,255,254,247, 86,249,148,207, 78,109,
-110,109,165,204,207, 30, 63,184,121,249,179, 63,254,233,163, 15,255,248,199,207,175, 92, 79, 57,253,235,223,254,252,127,249,247,
-255,227,171,223,186,120,180,212, 17, 53, 62,122,  6,173,217, 97,124, 84,156,243,108,246,198, 47,254, 21,128,110, 62,127,237,231,
-127,181, 86, 62,180,157, 80,168,217,214,252,121,248, 56, 44,167,235,145,190,150,229,214,137, 19, 23,206,110, 93,254,250, 43, 22,
-118, 47,149, 52,120,153, 16,150,214, 12,202,  6, 83,237,137, 41,117,147,170,  6,162, 90,180,241,113,163,133, 12, 84,181, 38,145,
- 46,231,161, 86, 85,203, 93, 14,139,236, 80,149,184,161,119, 61, 22, 58,210,214,141, 57, 75, 39, 41, 12,113, 69, 53,154,208,137,
-112,226,216,252,252,217, 23, 74,233, 87,171,126,255, 96,121,112,120, 84, 77, 87,253, 17, 35,106, 50,160,117, 80, 83,138, 63,189,
-214,123,131,129,212,146,252, 14,179, 23, 46, 93,224, 60,225,  8,  6,114,199,146, 37,231,201,108,118,238,210,165,103, 59, 79,207,
-156, 58,113,233,204, 49,119,237,107,113,129,213, 97,185, 56, 26, 74,201,105,114,234,196,201,115,167, 79,195, 21,163,225,209,221,
-117,244, 39, 25, 40,177, 76,114, 86, 83, 98,174, 70,204,148, 68, 56,110,210, 17,207, 24, 15,215, 76,210,112,240, 12,213,231,237,
-190,109, 54,106,255,164,128,171,186,186,  2, 52, 17, 33, 10, 91,  3, 25,172, 69,100,199,181,103,180, 14,115, 56,211,137, 41,201,
- 56, 30, 70, 34,209,205, 76,198, 10,210,  0,245, 70,155, 51,195, 25,164,113,160,160,150, 79,143, 31, 45,209,231,237, 80,242, 98,
-208, 96, 25, 91,113, 88, 99,180, 68,121, 71,220, 20, 36, 63,135, 55,173,229,  3,  4,157,103, 68,179, 59, 66,223,228,248, 15,197,
-133,201, 34, 18,124, 44,  1,155, 91,175, 74,193,158,108, 93, 74, 28,163,107, 83, 29,205,162,206, 42,224,195,144,232,160,104, 46,
- 38, 97,105, 74,  1,143,102,253,128,187, 58,  0, 86,152,  1, 27,147,174,203, 29, 90, 14, 88, 56,120,190,176, 90,170,227,191, 41,
- 90,226,204, 67, 85, 51,151,  0,198, 37,158, 76, 38,147,201,116,115,190,113,124,107, 30,119,176,176, 44,132, 55, 50,150, 95, 76,
- 17,222, 90, 11,166, 35,  8, 58,134,211, 38,193, 81, 10,190,138,136,169,186,251, 80,170,213, 10,131,154, 85,171, 41, 26,100,153,
-157, 36,178,174,209,194, 99, 17,210,140,253,  4,197, 38,165,121,117,227, 90,144,113,109, 99,218,142,107,213, 85, 32, 68,208,106,
-189,150,  0,146,193,204,107, 29,185,192,173,222,  7,  6,168,187, 85,139,  1,222, 42, 53, 86,116,148, 78, 89,187,219,152,181, 52,
-112,128, 87,152, 41,177,131,180,170, 85, 87, 85,115,133,170,197, 58, 59,220,164,102,134,192, 18,137,235,152,252, 10, 72, 78,177,
-182,113, 10,254,119,216, 40,199,179,230,248, 40,180, 88,151, 70,223,173,194, 82,132,137,162, 37, 55, 96, 25,241, 80, 20,153,156,
-123,251, 59,177, 47,173,253,106,247,222,205,126,121, 68,163, 50, 31,135,226, 88,250,183, 35,140, 86, 48,165,212,245,139,131,127,
-252,199,127,216, 62,253,226,123,239,189, 61, 12,171,248, 55,230, 39, 95,112,211,253,  7,119,200, 26,217,200, 17,101, 71,168,174,
-245,232,240,238,167,255, 48, 61,118,108,119,119, 71, 73, 78,157, 57,251,248,254,237,221,135,247,191,250,234,203, 27,183,239,125,
-251,141, 55,222,127,247,237,130,217,138, 55,103,243,201,116,190,241,198,119,223,215, 90, 29,120,112,231,246, 71,255,231,255,126,
-255,217,211,239,188,245,250,191,250,245, 63, 59,127,102,187,175, 94, 75,  1,132,156,192, 78, 26,103, 92, 91,211,135, 90,237,210,
-250,139,229, 24,150,135, 87,255,235,255, 61, 78,178, 96,226,182,197, 27,181, 55, 40,136, 61,  4, 79,242,231,219, 61,119,175,170,
-151, 46,188,124,248,197,103,151, 47,127,253,222, 91,175, 88, 33,  7, 55,234, 83, 91,125,128, 12, 44, 41,137,116,147,137, 48,123,
-228,194,163,185,157, 37, 34,210, 79,247, 15,103,147,105, 24,187,147,200, 80,106, 75,135, 19, 51,203, 98,168,193, 70,  4,  1, 22,
- 97, 30,114, 39, 53, 99,162,121, 55, 17, 73,195,208,199,126,100,251,196,137,227,199,183,134,161,212,190, 63, 60, 56, 60, 90, 45,
-234, 48,148, 26,139, 44, 35, 78, 85,181,150,  2, 74, 64,  9,162,210, 55,225,185,225,192, 54,179,217,124,243,212,169, 51, 79,119,
- 30,115,238, 80,171,147,138,176, 41, 15,171,225,216,252, 88,158,228, 90,202,163,167,  7,123,203, 62, 65, 82, 74, 67, 29,102, 27,
-115,152, 77,114,254,246,171,175, 61,253,199,221, 40, 51, 19, 33,212,246, 21,230,240,110, 81, 12,186, 84,107,101, 33,102,  2, 99,
- 42,178, 82, 75, 44,213, 61,154,172,219, 33, 52, 64,142, 99, 91,233, 55,163,217,194, 76,160,138, 32,212,234, 52,231, 90,107, 16,
- 40,219,  8,174, 62,150,178, 96, 77,184, 78,204, 52,198, 67, 76,219, 91,202, 17, 48, 34,213,  8, 14, 54,105, 67,  0,147,148,136,
- 25, 68, 58,218, 60, 56,220, 32,228,125,173,135,203, 37, 17,117,147,142, 24,181,212,230,103, 32,144,179, 52, 13, 52, 56, 57,149,
- 64, 44,196, 36, 36, 66, 32, 69,227,124,193, 98,191, 26,  2,124, 11,202, 53, 72, 44, 81, 11, 80,176,176,183, 98,233,112,242,193,
-188,214,210,165,228,174,102, 22, 78,102, 53,165,148, 90,133, 20, 49,162, 99, 58,110,249, 68,193,170, 27,145,223, 26,213,179,102,
-148, 51,245,203, 18, 39,  9,206,194,165, 40, 64, 64, 81, 83, 93,177, 16,220,213,212,128, 36, 36,156,137,200, 92, 73, 46, 89, 25,
-  0,  0, 32,  0, 73, 68, 65, 84,  9, 28, 55, 61,106, 59, 81, 74, 76,185,203,129, 31,142, 66, 43, 38, 62,182,185, 97, 62,222,113,
-189,245, 20,178, 96,154,115, 74,172, 67,187,235, 18, 17, 24,108, 17,193,245,200, 15,248,168,174,132,106,212,150,149,  4,117,171,
-170,165, 86,152,173,101,247,208,187,198, 10,186,160,181, 69,201,  7,226,215,149, 78,192,100,138,136,158, 56,147,164, 88,175,196,
- 27, 38,100,  6,184,128, 11, 65,181,130,224,174,113,112, 11,125,  5,205,109,105,176,218, 52, 12, 34, 18, 66,141,218,119,179,106,
-235, 40,149,187,181, 11, 45,118, 36,104, 43,246,166, 20,141,212,175, 86,244,225, 81,179, 28,233,163, 24,251, 53,248,164, 14,247,
-  4,212,118,155,  6,199,134,154, 81, 42,115, 84,223,142,114, 34, 81, 43, 77, 80,149, 44, 65, 43, 79,145,133, 24, 87, 91,163, 92,
-220,128,  8,126,247,243, 63,192,113,252,220,197, 19, 23, 95,122,240,213,199,104,188,219, 32, 88, 24,190,121, 94,102,234,166,179,
-251,183,111, 94,189,118,253,141,183, 63,184,116,238,212,193,226,136,219, 61,209, 15, 31,223, 11,160, 86,235, 77,109, 58,141, 25,
-156, 56, 77,187,252,244,201,206,242,104,209,175, 14,231,199,207, 94,249,228,195,235,215,174,223,186,123,127,107,107,235, 95,252,
-246,215,219, 39,207, 23,108, 72,238,178, 80, 93, 45,119,151,135,238,254,127,252,111,255,225,202,237, 91,127,245,111,255,230,127,
-254, 95,255,195,127,249,191,254,227,143, 63,120,151,153, 34,134, 71, 36,204,145,108, 72,224, 58,130,  2,  3,208, 95,141, 37, 32,
- 92,107,  8,109,192, 96,209,166,152,166,222,196,191, 51, 38,159,104,180,250, 70, 33,  7, 71,  5,108,160,112,250, 82,190,253,238,
-187, 87, 47,127,249,247,127,248, 88,205, 61,234,163,122,217,200,236, 14, 73,  4, 34, 53,159,  8,107, 41,238,200, 41,117,147,201,
- 98, 56,138,163,155,  8,147, 80,173, 58,217,202, 65, 43, 77, 57,149,213,138, 17, 85, 94,  6,160, 31,  6, 35, 34, 39, 27,243,  7,
-238, 86,181,150,170, 85,221,108,152, 77,  8, 73, 88,184, 86,123,241,194, 11,179,217,198,254,222,222,106, 88, 45,135,178,234,117,
- 24,138,213, 18,112,230, 38,222,219,232, 24,138,187,209,216,232, 51,126, 58,177,202,163,211,231,206,238,238, 60,172,253, 82,164,
- 35,  8,145,164, 52, 75,124,116,230,210,133,199, 15,238,207,143,205, 47,157, 57,185,188,251,104,213, 47, 39,211, 46,229, 44, 44,
- 44,169,168,158, 56,113,252,194,133,139,215,110, 92, 39,233,140,184,109, 25, 92,225, 96,215, 76, 81, 20,156, 13,150,136, 18,145,
- 59,205,186,174,168,217,216, 57, 24, 21,166,102,113, 14,243,128,101,184,181,175, 50,185, 11,145, 39,214, 58,110,254,225, 14,174,
- 94, 34, 46, 38,196, 41, 81, 41,145,217,110,155, 58, 34,151,204,147,148,107, 45,137, 57,108,  6, 22,199,103, 33, 17,233, 52, 45,
- 67,197,104, 68, 38,112, 98, 34, 79,  4, 53,229, 72,129,171, 81, 74, 99,232,197,164, 69,139, 27,252, 44,181,145,158, 73,185,205,
- 76,113,110, 52, 39, 73,164, 14,114,133, 33,148,207, 86, 44, 20,180, 75, 48, 65, 18,149, 26,248, 18,133,187, 36,129, 59,179, 48,
-155,215, 18,222,121, 98, 49,114,102,202, 76, 10,168, 34, 34,114,137, 33,194,137,189, 68,229, 72,131,215, 66,129, 12, 74, 14, 73,
- 18, 17, 82,  9, 43,  1,155, 83, 99,162,129,134,168,234,214,234, 69,155,179,168,148, 58,203,156,115, 23, 95,167,106,154,187,137,
-181,133,103,195,150,211,120,246, 75, 73,140, 48,148, 74, 84, 77,157,152,114,202,179,105,183,209, 77, 15, 86,125, 48, 48, 90, 11,
- 94,155,103,189,148,152,166,215, 86, 59, 90, 27, 32, 44,208,141, 77, 28,  1, 11,229, 28,239,180, 19, 48, 12,149, 73, 76,149,153,
-134, 82,145,121, 50, 50,  7,195, 89, 22, 80, 67, 34,215,231, 21, 29, 28,105,216,204, 84,141,220,218,139, 79,204,194,148,  9, 70,
-112, 14, 47,146,145,129,236,249, 11,138, 35, 63,115,163,136, 70, 27, 50,185,134,163,218,107,  4,144, 42,  2,202,214,240, 10,149,
- 72,108,100,139, 17,147,170,186,129,153,132,216, 41, 57, 59, 35, 46, 39,109, 68,213, 88, 56, 71, 86, 41,  9,204, 52,138,253, 76,
-219,138, 48,210, 57,214,154,174, 73, 72, 32,198,132,245, 73,202, 91, 13, 37,137,169, 67, 72,200,145,218, 67,114, 68, 62,133,111,
-228, 57,222,222,156,152, 23,251,123,243,147,103,  9, 41, 50, 20, 39, 46,190, 60, 61,118, 28,238,139,103, 59,207,238,223,114, 85,
- 98,153, 76,167,180,185,253,238,159,191,253,206, 47,117,249,244,241,177,115, 23,143, 62,249,135, 16,124,182, 47,188, 52,219, 58,
-  9,162,229,254,211,189,123, 55, 80,149,167,211,115,111,126,239,225,181,203,167, 94,124,101, 88, 46, 30, 94,187,252,230,207,127,
-123,227,143, 31,174,150,  7, 15,110,126,117,230,219,223,253,193, 95,253, 59, 38, 60,123,112,231,193,173,135,  3,208,165,206,181,
- 30, 62,219,219,121,116,247, 96,181,248,193,175,255,249, 71,159,126,178,232,235,131, 27, 87, 94,252,235,191,254,233,  7,111, 87,
-247,211,175,127,127,235,236, 37, 16,246, 31,222,185,255,229, 31,220,120,186, 57,123,237,255,175,234, 76,158,236,186,146,243,254,
-101,230, 57,247,189, 26, 80,133,  2, 10, 35,  1,162,  9, 14,104, 14,234, 73, 77,170,217,146, 90, 99,104,136,112,135, 23,178,108,
- 45,188,241,159,224,173,255,  8,239,189, 81,132, 55,118,132, 35, 28,150, 29, 33,135, 34,100,205, 45, 91,146,155,100,143,106, 18,
- 36, 65,  0,133,185,128, 66,141,239,189,123,207,201, 76, 47,242,220,  7,121, 73,  6,  3, 32, 10,239,221,123, 78,230,247,253,126,
-223,250,245,135, 31,127,184,253,202,155,195,236,248,238, 71,127,147,186,116,233,237,111,173,158,222,174,253,124,255,254, 23,241,
- 19,237,214, 79, 93,251,230,175,221,252,235,255, 65, 68, 47,127,227, 87,242,202,169,118,111, 22,222,187,115,243,217,157, 79, 34,
- 33, 63,146, 61,218, 17,180,133,133, 64,238, 86,134,197, 27, 55,110,252,232,195,239, 63,222, 59,154, 76, 59, 34,206, 57, 87,171,
-179, 82, 54, 90,104, 89, 19,200,128,197,208, 39, 73, 66, 82,212, 88,120,168,106,176,147,249,130,137, 69,146,185,170,182, 93, 88,
- 22, 81,243,220,117, 81,154,112,130,144, 48,187,100,169,145,141,133, 17, 81,206,121,182, 88, 52,  0, 33, 67, 77, 47,159,191, 72,
- 76, 64, 61, 60, 58,218,125,182, 55, 88,237,135, 94,  3, 54, 11, 39,120,233,251,161, 44, 36,117, 99,146,201,185, 25, 82,148, 60,
-236, 99,113,255,179,201,202,234,217,243, 23, 31, 63,188,  7,130,107,  9,168, 95,238,214,230,243,227,110,210,237, 62,126,122,249,
-210,185,131,249,226,238,163,103,168,188, 62, 89, 53,184,176,  0,164,181, 94,191,114,229,201,238,110, 95,139,120,  0, 87,193, 97,
-211, 35,241, 64,222, 39,158, 45,106, 22, 94,244,101,115, 99, 45, 75, 94,153,218,124,177,  8, 27,156,155, 87,168, 54, 10, 58,150,
-116,167,168,164,134,245, 52, 60,187,161, 99,117,135,214,216,210, 27,145, 40, 84,171, 19,185,105,188,195, 90, 16, 52,115, 38, 56,
-177, 12,181,100,114,102,113,210, 26,115,127, 99,206,205,145,216,116, 30, 68, 80,114, 39,117, 54, 47,198, 98,106, 93, 74,177,239,
-100, 16, 20,147,201,132,153,213,140, 33, 78,200, 41, 11, 17, 67,204,213,162, 32, 21,191, 24, 51,107, 85,211,208, 24,250,210, 97,
- 73, 49, 61,113, 50, 82, 50,175, 70, 96,129, 23, 16,167, 78, 40, 30, 23,222,151, 69,169, 53,  0, 84, 48, 35, 22, 97,230,212,213,
- 82,152,201,204,205, 93, 72,148,144, 29, 66,164,176, 65, 73, 56,194, 53, 77,230,173,134,212, 22,162, 36, 36, 18,197,164,106, 57,
- 33,229, 92,106, 85,160,106, 25,211,150,164,166, 41,  5, 99,  2,213, 28,142,162,150, 71,142, 49, 64, 44, 20,188,169,230,138,101,
-234,178, 52,249,140,227,212,234,218,100,154, 17,168,181,178, 20,109,182,109,157,249, 11, 15,  0,141,153,114, 16,229, 36, 67, 95,
- 83,150,130,210, 96,130,106,117,168,  3, 23,114,154,247,189,169,229, 73, 50,210, 36,226,240,106,150,  9,145,159,  0,187, 27,195,
- 52, 81,151, 64, 99,212,220, 45,208, 39,209, 65, 36,102, 97,104,  8, 53,187,152,141,168,171,228, 14, 90, 85,131, 43,236, 54, 22,
- 20,  8, 47, 30,243,209,137, 49, 37,127,177, 93, 29, 69,129,212, 74, 77,193,214, 80, 72,203,192,153,133,244,216,181, 16, 51, 28,
- 22,229,  7, 55, 29,211,235,237,149,217, 40, 65,  4,102,168, 15,234,196,130, 56,208,  9, 92,157, 65,102, 96,137,102, 68, 48,103,
- 65,240, 48,228,180,151,166,197,254,138,221,192,102,230,158,104,233,230,104,253,144,216,208, 99, 57,101,118,208,234,198,102,153,
-207,226,118,117,230,234,117, 51,123,240,179, 15, 25,178,125,253,198,198,249,203, 39,187,143,221,201, 86, 79,105,173,135, 59,159,
- 15,195, 98,235,202,171,205,185, 13, 63,115,229, 53, 22,126,248,179,239,187,209,246,245, 27, 27,231,175, 60,191,255,133, 23,  5,
-209,250,153,179, 15, 62,254,225,201,225,222,249,151, 95,  3,176,251,240,139, 59,159,127,250,149, 95,255,174,176,124,250, 55,127,
- 44,147,141,107, 95,255,214, 69, 94,217,123,248,112, 62,155, 31, 62,223,125,116,255,238,205,207, 62, 59,174,229, 95,  1,156, 38,
-127,240,155,191,242,221, 63,248,151,195,236,104,222, 15, 87,191,242,109,146,116,243,123,255,147,160, 47,189,243,254,133, 87,223,
-121,244,217, 15,226, 48, 62,221, 56,123,235,239,254, 44,182,222,151,222,250,  5, 43,229,211,239,253, 73,202,114,249,237,247,218,
-151,204, 70,150, 39,252,206,  7,127, 25,223,187,213,179,231, 47,189,249,222,241,211, 71,227,151, 48,222,232, 28, 78, 57,143,196,
- 35,193, 40,126, 92, 92,170, 95,187,122,197, 76, 73,  4, 76,171, 57,247,131,101,146, 70, 91,165, 70,164,154,245, 67, 55,233,170,
- 87, 33,234, 18,149,129,220,188, 22,151, 44,194,146, 88,192, 84,172, 56,121, 53, 35,131,144, 28,157, 44,212, 52, 75,226, 70,100,
-166, 36, 34, 44, 89,166,  8,191,177, 91, 92, 85, 50, 39, 21,123,249,210,101,119, 41,131, 29, 31,205, 15,103, 39, 66, 88,244,  5,
-230, 35,113,129,204, 81,230,243,110,115, 69, 81,157,  2, 68,101, 52,142,157,192, 78,224,214,249, 50, 59,127,229,202,241,225,254,
-201,236,132, 89,152, 29,194, 83, 94, 25,234,112,250,236,217,253,253,253,211,219,103,206,236,237,157, 44,250, 39,251, 71, 73,100,
- 34,157,186,129,  5,196,171,107,211,107, 87, 94,250,252,238,157,170,234, 22,214,236, 56,144, 41, 17, 27,224, 76, 57,201, 80,171,
-185, 14,106, 14,155,138, 12, 41,107, 63,  4,247, 21, 12, 81,142,135, 75,202, 17, 26, 48, 51,152, 58,117,204, 28, 91, 71,130,107,
-117,176,112, 85, 93,153,118,117,168, 32,102,113,152,113,180,  3,173,173, 77, 44, 37,115, 45,129,206,  3,113, 13,232,188, 59, 92,
- 64,  6,133, 33,194,172,  1,217,115,117,176, 12,181,178,112,151,186, 44, 60,144, 78,166,211,161,148,  8,168,113, 78, 29, 16,186,
-212,190, 46,198, 53, 13,129,148, 18,161,132, 31,137,221,140, 13, 75,127, 49,150,146,194,152, 23, 69, 50, 61,158,110,194, 53,114,
-223, 70, 14, 19, 98, 48,169, 91,151,146,219,184, 79,107,124, 68, 33,119,225,152,167,162,204, 75, 78, 34,206,225, 87, 50,115,225,
- 37, 91,168,197,249,164,249,166, 27,165, 48,  6,102,237,175,190,125,202,169,169, 62,218,163, 73, 15, 78,250,205,211,147, 46,103,
-131, 77, 40, 11, 36, 40, 97,157,164,193,141,108,100,231,130,220,217,137, 68,152,128, 94, 32, 44, 78, 32,150, 90, 10,218,124, 57,
- 44, 29, 77, 94, 10,130, 90,109,221,203,168,139, 68, 54, 16,198,121,249, 70,119,144, 91,160,155,181,102, 79,196,  4, 19,114, 74,
-196,  3,185, 16, 75,203,134,138,123, 31, 23,208, 37,253, 55, 28, 29,109,106,206,173,113,108,198,173,208,234,205,  3,146, 82,178,
- 98, 99, 43,205,150,168,154,113,  9, 39, 35,224,222,219, 13,146,108, 73,107,137,188,137,143,146, 57, 54, 55,134,140, 43, 21, 39,
- 27,249, 60, 78, 41, 17, 56, 49, 85, 55, 35,  7,  9, 91, 44,250,140, 69, 76,221,180, 89,  3,200, 56,177,  0,228,197,226,255,167,
- 29,182,199,144,123, 91,222, 54,  0, 59, 53,142, 38, 11,153,  9,155,186,179,147,185,105,248,104,252,133,218, 56,148,162,218, 32,
-193,228, 32,186,252,214,215, 95,122,251,235,107,103,206,237,221,187, 77,196, 76, 60,221, 56,125,240,112,  7, 14,213,225,240,201,
-189,181, 51,231,158,238, 62,250,241,143, 63,186,112,245,149,105,153,205,142,246,203,162, 63,124,124, 63,242,241, 48, 91,219, 58,
-187,119,247,150, 22,211,170,251, 15,238, 78, 55,183,  2,116, 14,224,217,206,231,135,207,118,215, 54,183,119, 31,220,113,224,131,
-127,248,254,195,221,189, 55,222,249, 90,121,118,127, 94,186,253,133,220,191,115,103,115,251,236,241,254,254,195, 59,159,254,248,
- 71, 31,252,221,255,253,224,  7, 31,127,114, 50, 95, 48,243,127,250,163,255,254,175,255,237,191,155,156, 58,123,239,199,255, 71,
- 36,111, 94,250,210,163, 79,126,  0,171,174,254,236,206,167, 27, 23, 94,102,228, 56,135, 60,189,245,177,169,186, 85,164,180,190,
-125,241,201,173,127, 36, 87,237,135,189,187,159,182, 12, 26,191, 16,108,198,120,176, 91,219,184,244,229,119, 31,125,252, 97,127,
-114,248,130, 84, 59,210, 48,226,220,232,177,105,247,216,156, 87, 70,173,170,211,220,177,176, 80, 60, 11, 41, 24,156, 64, 60, 80,
- 98,220,111,153, 19, 32,230,148, 56, 41, 96,238,197, 44,214, 62,145,207,170,165, 16,197,141,146, 84,245,112,118,220,236,132,163,
- 71, 28,106,129, 72, 92, 90, 45, 98,  7, 41, 73, 54, 55,214, 47, 94, 62,231,174, 67, 41,251,135,135, 39,199, 51, 55,235,135,222,
-225,137,  8,228, 10,192,108, 49, 91,180,103,232, 72, 74, 26,139, 12, 99,235,139,209,120, 38, 66,103, 47, 94,130, 57, 17,152,133,
-140,221, 49,157,174,184,250,198,198,198,243,189,253,139, 23,207, 93, 58,115,122,109, 58,237,251, 65, 81, 45,102, 74,100, 48,121,
-249,210,229,205,141, 77,175, 85, 82, 64,131, 95, 44, 22,133,224, 26, 28, 67,164,148,  2,184, 10,162, 83,211,105,226, 22,224,173,
- 69,227,158, 20, 95,224,232,254,249,168, 67, 12,159, 42, 19,178,164,168,161, 85,115,141, 93,171, 85,150, 20,174, 68, 10,248, 21,
-144,152,146,163, 19, 14,213, 25, 51, 27,172, 86, 53, 67, 13,128,223, 11,222, 80,139,195,131,131,117, 27,136, 18, 59,153,247,137,
- 89,171,166,196,153,216,220,171,234,184,133, 13,  6, 30,123,181, 81,196, 65, 13,  5, 60, 30,156, 28, 68,  2,115,173,117,112,179,
-255,239, 35,135, 86, 65, 97,138,104, 14,178,  8,220, 23,253, 80, 84,  3,199,202, 66, 20,108,  3, 34, 23,164, 36, 36, 18,151, 72,
-225, 88,241,210,  8, 62,104,216,113,107,110,216, 40,187, 24, 17,115,148,175,194,177, 97,206,204,146, 36, 39, 97,145, 49, 28, 68,
-141, 21, 65, 16, 73,237,197,204,228,110,213,253,164, 95,112, 68,157,  2,137, 58, 70, 56,105, 92,202, 10, 39,133, 51, 81, 78, 57,
-119,194,224,196,156,146, 56, 19,145, 51,216, 65, 70,196,112,102, 74, 52, 46, 61,199,177,168,171,151, 18,221, 94,211, 22,120,228,
- 20,193,202,246,217,228,212, 12, 54, 73,225, 90,171, 80,106, 98, 57,225, 49, 63,206,254, 79,250,139,222,100,  9,141, 64,210,194,
-217,214,162,163,211,156, 25,148,  4, 76, 78,  4,181,229, 52, 59,250,171,213, 81,199,230,163,171,153,143,167,120, 98,226,204, 32,
- 50,173, 49,208, 20,230,148, 69, 82,  2, 19, 56, 80, 75, 20, 15, 88,130, 16,199,124,206,199,181,139,131,  9,228, 68, 78,209, 16,
-101,176,128, 40, 17, 73,117, 99, 24,196,226, 21,160,222,126,211,230,153,  4,133, 86,208, 70,202,  0,  1,110, 21,174,213, 76,205,
- 75,109,117, 86,114,164, 37,197, 61,142,219,227,101, 46,197,167,228,254, 79, 62,224, 60, 61,123,245,218,218,153,237,195,199,247,
- 37,103,  0,181,244,  4,164,212,145, 17, 49,223,125,240,232,231,190,246,117,  0,243,147, 99,175, 14,129,246,125, 92,254, 72,  4,
- 68,231, 94,123,139,150,156, 35, 80, 85,  8, 10,220,  9,137,200, 31,223,250,228,254,147,221, 27,239,253,218,230,153,211,111,191,
-121,  3,192,238,243,133, 76,214,114,199,139,195,163,148,211,103, 55,127,242,217,173, 47,190,184,183,179,251,108,127,123,107,243,
-159,253,218, 47,186,251,167,127,241, 71,165,214,240,  2, 77,214, 54,136,232,245,111,255,206, 50,173,222,160,129,238,112,175, 67,
- 31,203,144, 73, 94,  1, 80, 23,179,248,111,202, 98,214,230,209,227,  2, 58, 94,243,156,243, 75,239,124,107,239,206, 39, 39,207,
- 30,241,216,238, 86, 53,144, 37,138,213,230,200,192, 67, 52,173, 91,159,162, 47, 11,117,154, 76,186,201,180,227, 36, 90,171,135,
-  8,170,177,140,204,220, 76,181,203,169,148,162, 86,  1, 38,112, 53,171,117,112, 55, 17,113,231, 68, 92,251,154,114,118, 51,144,
-151, 90,231,125, 77,241, 33,  7,133,192,110, 17,245, 30,130,145, 27,116,154,115, 41,133,128,190,212, 47, 93,185,116,118,107,187,
-106,237,251,147,195,217,201,224,170,106,195, 80,  9, 28,135, 16,  1,140,105,168, 53,218, 12, 35, 93,174, 85,147,209,254, 52, 99,
- 33, 82,221, 29,155,219,219,167,158,238, 30,237, 63,231,148,  2, 10,158, 58,211,154, 87, 38, 19, 29,106,183, 50, 93,223, 56,188,
- 90,206,220,188,255,104, 24,116,210,137,153,119,146,  6,171,224,233,181,203, 47,237,237,237,185,123,199, 60,184,122, 72, 48,137,
-  4, 24,138, 50, 81,151,100, 81,123,118, 36,102,  0,211, 46,207,250, 92,181,186, 75, 63, 12, 75,173, 51,168, 83,107, 95, 95, 18,
- 14,243, 73,230,228,110,210,117, 54,215,  1, 69, 32,174,112, 40, 67,200, 17, 99,147,120, 49,114,128,  3,201, 73, 50,218, 67,217,
- 83, 78,165,212,106, 21,205, 14, 78,129, 16,169, 77, 69,225, 20, 52, 75,230, 90,171,154, 78,114, 22, 22,  7, 74,141, 49,133, 59,
-160,110,211, 73,215, 15,131,176, 20, 84,180,129, 82,  0,246, 96, 24, 99, 91,161,100, 24,107,210, 54, 22, 79, 98, 94, 97, 14, 51,
- 18, 97, 33,174,108, 45,109,215, 58,119,200,157,152,107,169,224,248, 86, 18,194,164,154,136, 42,145,  3,106, 22,184,158,150, 17,
-106,169,204,182, 68, 26,161,  0,225,237,203, 21,128, 15,129,108,200, 12,145,156, 18, 23,109, 25, 35, 25, 25,179,225, 58,111, 24,
-108, 55,134,228,196, 90,  2,114,201,177,  8,241,  6, 38,111,200,125,114, 90,233,186, 69, 25,130,186,150,145,226, 77,144,146, 68,
-118,136, 96, 76,172,230, 36,  2, 72,219,108, 70, 92,128, 27,199,133,163,118,167,142, 22,168,141,179, 46,177, 72,163,181,164,248,
- 71,154, 72, 42,186, 64, 83,211,166,246, 10, 24, 97, 43, 54, 34, 36,150,219,116,119,173,110,205,109, 17,161,169,234,135, 39,179,
-227,197,124, 53,183,201,223, 48,148,220,  9,179,104, 53,109, 78,129, 54,131, 33,  3, 51,143, 77,165,  0,106, 58, 49,  3,185,153,
-224,  3,202, 76,236, 16,  1, 85, 12,  4,114, 50,114,210, 90, 57,181, 67,162,153, 69,144,156,132,152,217,  6, 68,194,220,133, 73,
-131, 51,238, 81, 17,104,155,249,144,115, 54, 83,233,242,110,217,202,164,161,142,161,198, 30,112,114, 35, 18, 33,246,  6,215,183,
-212,238, 47,238,204, 65, 34,139,208,126,109,156, 15, 34,171,253,254,253,157, 11,111,188,117,252,244,145, 85,  5, 32,121,194,204,
- 58,148, 91,159,223,124,235,220,197,119,127,254, 23,212,122,  0,144,228,117,161,197, 38,107,235,  0,218, 60,203,253,206, 71,255,
-187, 12, 11, 56,109,110, 95, 44,253, 81,233,135,141,203, 87,  0,236,222,191,253, 96,231,206,103, 95,220,222,216, 58,  7,162,183,
- 95,123,253,184, 39,  0,107, 91, 23,188, 14,243,217,145,215,197,209,225,193,223,127,248,209,163,167, 79, 79, 78,250,215, 94,185,
-250,251,191,253,157, 11,151, 47,  3,168,218, 34,165,  0,106, 25,224,126,243,123,127,172,165,182,156,  0,165, 23,  9,180,248,158,
-160,148,161,  7,144, 39,147, 97,177, 96, 80,234,166,109,163, 97, 99,234,223, 65,196, 47,189,243,222,236,249,238,254,189, 91,161,
-119,108,188,206,182,210,139,  4,191, 69,171,209,212, 68,  8,222,114,108,101, 81,220,209,177,148,190,248,  6,136, 69,  0, 17, 82,
-245,162, 53, 80, 32,206,241,208,112,  1, 15, 69,173, 86, 51, 79, 41,157, 59,189,149,136,221,  2,  6,106,178,188, 86,153,214,210,
-  3,150, 40,  1, 12,102,226, 68, 52,196, 95, 42, 19, 76,221,204,170,105,246,  4,171,215,175, 92, 91, 89,157,206,231,253,209,209,
-241,241,241, 12,230,243, 97, 40,165,178,192,205, 72,146,  3,166,182, 24,  6,145,132, 17,222, 63,226, 76, 51,226, 70, 16, 45,  6,
- 82,206,228, 10,130,159,187,248,210,241,193,222, 40,224, 32,225,156, 58,237, 86,214,207,109,108, 60,188,187,179,125,102,211, 21,
-167,159,175,238,159,156, 16, 81, 74,132,156,115, 78, 90,202,133,237,179, 47, 93,188,120,231,209, 67,201, 29,233,130, 19, 80, 16,
-222, 62, 34, 54,119,181, 74,192,202,218, 52, 29,114, 45,234,132,245,201,116,239,224, 80, 58,142,136,251,164,235, 98,244, 44,173,
- 11,222,108, 65,226,172,104,155,224,201, 36, 67,169,198, 55,207, 68,164, 99, 65, 29,220, 44, 40,226,  2,138, 95,  1,153,168, 48,
-147,  6,142,184, 29,157,115,142,167,139, 19,143,181,120,139,195,155,103,183, 64,200,134, 26,144,133, 84,105, 49, 44,144,115,203,
- 10,155, 69,238,175,241, 24, 91,149,129,156,205,161, 68, 18,139, 57, 30,207,240,214, 30,248,206,224, 26, 79, 33, 39, 38,151, 64,
-  2, 19,139,112,169, 53,  9,135, 75,183,155,164, 36,105, 96, 99, 30, 60,161, 21, 23,221,171,150, 85, 73, 24, 89, 98, 24,143,168,
-113, 76,163, 81,204, 19,139,  5, 10, 36, 51,211,160, 85,  3,108,239,225, 45,103, 35,171,  6,141, 13,173,136, 17, 89, 41, 32,178,
-198, 76,112,152, 83,131,137,114,215,101, 98, 34,166,162, 53, 94, 93, 17,115, 84,243,145,107, 27, 63, 37,  6, 81,238,196, 65,165,
-184,194, 89, 90, 21,223,153,  4,174,174,195,208, 87, 97, 48,197,214,186, 13,157, 90, 96,151, 52,  4,167, 74,110, 32,246,196,194,
-160, 44, 41, 94, 15, 72, 96, 35,102,  6, 39,182, 33, 66,237, 49,187,206, 76,148, 98,249,171,  8, 84, 79,  4,  9, 35,232,231,100,
-193,153, 12, 12,164,214, 97, 88, 12,253,124,163, 91,101,146, 30, 62,237, 50, 49,169,247,222,210, 55,117,244, 46, 17, 64,106, 53,
-132,104,204, 75,118,104,124, 34,117, 68,121,198,101, 95, 99,244,207,146,221,138,185, 17, 59,129, 85, 67,116,211,100,163,109,108,
-165, 74, 41, 53,157,173,131,136,212,148,153,221,188, 33,240,165,121,  4,227,120, 96, 53,222, 34,237,160, 16,204,  5, 31, 61,102,
-  4, 97,103,173,149, 70, 27, 31,143, 15,126,127,193,245,105, 20, 63, 26,245, 82, 86,203,162,159, 29,175,159,189, 96,166,253,241,
-193,233, 75, 87,119, 31, 61,248,232,163,127,120,243,221, 95,228,210,215, 97,110,165, 46,142,246, 79, 95,186, 26,139,221,141, 11,
- 87, 66, 42, 93,171, 30,238, 62, 56,127,253, 70, 74,147,245,237,243,253, 48,211,180,182,185,189,125,116,240,220,129, 31,126,244,
-225,143,127,246,201,217,179,219,239,191,251, 77,  0,123, 11,112,119,250, 96,111,239,218,235,215,247,159, 61,190,127,251,214,229,
-215,191,252,151,255,235, 79,239, 60,124, 48,201,242,187,191,250,238,191,249, 23,191,189,177,113,106, 40,218,206,232, 45,237, 67,
- 90, 22,  7,143,118, 46,190,254,181,212,117,196,158,167, 43,107, 91,219,203, 31,119,  8, 96, 88,196,181, 30, 63,125,180,253,234,
-219, 68,196, 93, 58,123,237,141,104,208,140,215,104, 39,166,139, 95,254,186,171, 62,249,244,  7, 17,187, 88,158,  9, 34, 65, 63,
-226,152, 91,108,156,154, 44,186,245,  9,107, 85, 73,126, 56, 63,158,116,121, 66, 32,161,201,100, 34,228,197,117,168,218,  9,215,
- 65,217,201, 92, 99,  4,198, 17,155,114, 75, 41, 49,131, 19, 17, 92,132,205,106,169,218, 34, 76,194,106, 77,172, 21,252,251, 40,
-146,120,176,162,140, 22, 67, 95, 77,227, 64, 55,201,221,155,175, 94,  7,177,171,206,142, 23,139, 50, 24,124, 62, 91, 88, 27, 16,
-202,133,243,219,193, 84, 95,244,  3,200, 97,214,118, 58, 44, 36,105,  4,175,142, 40, 30,130,103, 10, 78,233,169, 51,167, 55,206,
-156, 43, 67, 15, 87, 34,135,115,226,220,117, 43, 86,212,170,150,161,156, 62,189,250,234,165,115,234, 58, 91, 44,200, 77,107,117,
-162, 73,206, 41,175,188,241,202,245,213,149,213,150, 97, 50, 48, 32,137, 43, 60, 39,201,147,172, 14, 32,245,125,141,189, 92, 25,
- 10, 51, 72, 48,159, 47,218, 67, 83,152,163, 73,199, 33,123, 14,148,181,240,216,251, 87, 83, 99, 48,113, 34,166,  4,168, 41,148,
- 52, 50,109,238, 78,146,220, 44,222, 90,108, 20,183,231,198,253,243,198,139,106, 97,168,120,191,178, 59,  4, 66, 16, 32, 18,118,
- 41,115, 18,137, 99,128, 90,220, 26,137, 73, 82,202, 78, 16,150,145, 61, 16, 40,100,103, 33, 82, 66, 76,182, 93,226, 65,232, 35,
- 95, 98,168, 53, 34, 34, 60, 22,196, 35, 88,  1,135,217, 16,211,232,182,121,115,196,201, 20,174,209,186, 33,146, 86,185, 67, 76,
-114,199,112, 97,100,247,154, 16,187,197,203,189,185, 13, 90,192,200,172, 84,173, 49,123,143,164, 82, 18,201, 62,134, 90, 70,105,
-160,155, 58, 32,110, 18, 71,234, 20, 15,134, 72, 67,186,  6,206, 49,142,176,194,228,109,  4, 31, 31,153,217,201, 28,106, 57, 37,
- 38,170,238,170, 26,241, 44,173,234,225,105,113,103, 64, 72,  0,  4,162,163,101,184, 26, 93,141, 84, 45,206,164,210, 86, 98, 80,
-184, 58, 17, 83, 98,129, 59, 11, 17,168,154, 82, 24, 13, 41, 33, 68,190, 41,182,151, 68, 16, 18, 34, 73,203, 25,122, 91, 58,153,
-153,  5, 52,222, 77,117,252, 78,240,218,202,250,114,213,200, 44, 16,105,157,225,246,164,110,211, 58, 48,  0, 14, 97,114,236,  4,
-  2, 80,229, 94, 27,207,135, 25, 96,183,208, 47, 42,136,204,106, 28,175,193,130, 22,196, 36,  0,166,241,111,155,110,144,224,100,
-206, 65,183, 38,119,183, 90,171,169,141, 63, 25,112,102,118,137,209, 59, 75,171,116, 45, 81, 69, 17,224,112,180,  1,168,123,137,
-143,178, 26, 96,158,124,105,247,110, 35, 94,110, 41, 85,140, 13,105, 18,184,159,236, 61,221,186,124,181, 63, 58,218,249,228,199,
-107,219,151,223,252,246,175,191,253, 75,212, 31,238, 63,219,249,220,212,136,229,249,221,207,183,174,190,250,242,215,223,175,125,
-191,255,112,167, 91, 63,101,170,238,122,239,103, 63,184,124,227,171,215,223,251,101,150,164,101,120,186,243,197, 23, 63,252,251,
-167,135,199,215,191,246,254,108, 62,188,255,238, 55, 78,159, 90,159, 87,  3,176,178,113,174,155,116,159,255,240, 71,231,175, 93,
-253,165,239,254,243, 90,203, 95,255,249,159,255,199, 63,252,195,175,188,241,165,223,120,255,155, 23,206,157,233,135, 82,172,202,
-116,153, 99, 12,160,184, 19,232,254, 79,255,254,226,141,111,188,250,254,111,179, 72,237, 23,123, 59,159,158, 60,123,216, 38,182,
-113, 33,162, 10,200,195,159,125,255,242, 91,223,124,227, 87,190, 91,251,217,222,206,231,211,141,173,198,116, 24,113,218,167, 46,
- 92,113,179, 87,127,233,187,241,199,223,187,123,243,249,221,155,203, 50,113,244,139,162,147, 22,229,247,  8,177,  4,146,233,100,
-190,200, 41,151,  1, 41,119, 16, 33,224,204,230, 86,215, 65, 21,196,220, 54,180,109,152,171,166,213, 56,170, 41,180, 50,233,102,
- 39,135,174, 43, 21, 78, 32, 53, 23,115,176,168, 41, 49,177, 16, 12,212,113,240,179,101,220,212,115, 48,235, 61,202,138, 92,180,
- 76, 39,147,203,151, 47,186,121,169,229,164,159, 47,250,222,204,231,139, 69, 12, 84, 25,126,176,127,192, 76,110, 24,  6,141, 15,
-220, 72,161,104,  1,181,216, 22,  5,183,136,148,189,143,232, 57,193,236,194, 75, 87, 78,142, 15,181, 22,162,196, 73,136,121, 50,
-157,214,186, 56,119,249,210,179,221,167,147, 73,222,216, 44,175, 95,190,120,243,238,227,126, 88,172,173,159, 34, 80, 39,137, 72,
- 79,157,222,124,237,218,203,183,110,223,141,224, 17, 66,113, 76, 73, 29,193, 96,139,190, 99,252, 88, 34,157,184, 54,153,150, 50,
-171,142, 97,168,  2,234,171,166,228, 68,  2, 11,204,122, 92,152, 68,136, 84,  0, 70,240,171, 34, 96, 80,220,146, 41,117, 73,135,
- 32,163,183,229,  4,161,153,124,204,220,130, 19,239,144,148,100, 32,  8,215, 90,115, 74,110,181, 85,249,154,236, 38,181,248,104,
- 12,149, 99,232,105,190, 58,233, 74, 81,117,133,138, 72, 42,181,154,153, 86, 13, 18,  1,153, 36, 22, 35, 31,223, 35, 45,114, 11,
- 98, 51,235, 68, 82, 27,117, 71,189,205, 99, 31,199, 52, 66,250,  0,105,199,177,224, 62, 33,108, 67,196, 52,250,234,  9, 68, 41,
- 37,117,184,154,112,200,206, 42,136,  2, 66, 91,212, 90, 57,158, 95,184, 65,199,139, 66,112,216,199,  1,131,153,176,180,211,138,
-141, 54,244, 86, 49,133, 75,195, 25,117, 41,141,191, 34,185, 69,  9,147,189, 61,135,109, 73,104,138, 73,164,116,185,246,125,152,
- 14,172, 33,234,  3, 20,132, 49, 79,205, 68, 96,225, 23,231,167, 38,130,107, 68,132,134, 56,105,227,166,120, 73, 26, 70, 76, 49,
- 49,  9, 81,151,146,170, 18, 25, 16,164, 70,143,211, 82,116,123,  9,137, 66, 87, 31,207,189,182,  9,227,208, 37, 22, 84,  0,194,
- 76,204, 33, 91,105, 75,139,160,117,186, 85,167, 48,173,199,224,220,  3,192,197, 60, 42,172,221, 28,166, 62,174,175, 91,126,166,
-189, 32, 89,220,219,133, 36, 86,179, 60,126,195,136,201,213, 34,120,  4,114,115, 99, 97, 19,113, 32,212,136,161,118,  0,165,112,
- 53,  5, 26,158, 60,164, 54, 77,132,222,248,148,176, 80,223, 26, 49, 92,163, 60,209, 46,227, 97,172, 80,103,118,119, 79,173,137,
-211,184,219, 99,236,207,189, 14,253,189,159,124,127,196,133, 81,127,112,176, 55, 12,159,253,244,163, 59,183,111,189,243,205,239,
-228,197,124, 24,230,230, 81,228,133,187,149,126,241,240,227, 31,170, 86,184,173,156, 62,163,125, 95,106, 61,125,118,251,193,206,
-103,183,126,244,193,217,237,211, 71,123,  7,125,153,237, 61,126,252,143, 31,127,114, 50,171,248, 15,255,254,189,111,188, 89,157,
-247,251,156,147,124,244, 87,223, 19,242,167,143,238,221,251,226,211,219,255,245,254,189, 71,143,159, 28, 28,108,174,173,254,193,
-119,127,227,171,111,190,106,138,121, 25,224, 32,150, 50, 63,252,201,159,252,231,102,150,106, 18,100,114,215,135, 31,127,255,209,
-205, 15,199,118,151,131,104, 56,126,254,147, 63,251, 47,  2, 33, 50,115,  6, 72,251,114,247,163,191, 29,229, 60,216,223,249,156,
-128,225,248,232,230, 95,253, 81,128,252, 62,249,139,255,  6,  2,115,114, 55,152, 82, 88, 32, 90,188,110,188, 29,191,  0,121,182,
-174, 81,116,109,250,126, 96, 78,211,149,116,170, 42, 85, 85,179,195,147,227,203,211, 51,193, 15,138, 43, 86,213, 42,108,139, 69,
-169,181,210,164,235,251,162,196,235, 43,147,231,  7,213, 65,181, 70,  0, 32,209,120,127, 38,103,146,228,  4,129, 65, 36,116,  0,
- 35, 59,200, 18,226, 68,236,211, 46, 31,157,204, 94,190,112,113,235,244, 86,169, 54, 59, 58,217,127,190,223,247, 37,178,101, 52,
-186,232,135, 90, 87, 87,166, 46,172, 86,151,132,161, 38,161,110,252, 33,113, 15,174,  0,135,183, 56, 62, 16,234, 88, 89, 93, 59,
-179,125,254,209,189, 59,121,146, 97, 68,156,172,106,206,147, 90,135,173,115, 91,183, 62,185,181,214,229,107,151,206, 63, 63,153,
- 63, 63, 58,153, 84,235, 18, 83,146,  9, 39,131,191,254,202, 43,251,207, 15,119, 30, 60, 72, 57, 49,216, 25, 73,152,133,135,161,
-182, 61,113, 85,  8,133,102,152,133,215, 86,167,197,181,239,135, 65,121,168,133,136,125, 84,101,  4,206,148,  5,194, 12, 98,152,
-  6, 19,187,168, 59, 69,126, 48, 38,239,112,144,144,120, 99, 21, 54, 22, 58, 51,197, 89,146, 40, 94,104, 81,108, 33,115,165,160,
-142,152,  6,241,207, 91,219, 68, 64,168,104,176, 72, 54,113, 87,  6,171,151,140,140,145,102,105,106,  6, 87,173, 76, 46,137, 60,
-202,180,164,129,125,229,176,144,197,153, 58,204, 44,  3,121, 99, 27,143, 17, 46, 71,102, 25,172,142, 72, 50,128,194,170,161,220,
- 56,166, 81, 71, 50,192,152,  5,134,156,185,103,247,232, 49, 49,147, 67, 93,217,157, 71,130, 91, 28, 64,150,243,133, 64,201,197,
- 33,175,129,100,131, 66, 79,237, 32, 52,174,218,131, 19,140, 68, 92,200, 96,206, 32,173, 37, 75,138, 20, 35,  9,199,100, 88, 70,
- 50, 24, 51,192,232,144, 72,196,107, 37,131, 51,132,152, 25,165, 22,170,141,142,101, 60, 70,  2,153,114, 74,110, 24, 34, 14, 28,
-  1, 75,129,215,200,143,195,105,132, 32,  6, 72,134,217, 85,251, 90, 88,132,205, 19, 19,152, 77, 85, 56, 85, 12, 68, 20,245,197,
-102,100,116,175, 26, 36,151,198, 34, 30, 19,112, 78,209,244,118, 11,204, 67,252,189, 16,145, 80,106,169,209,241,108, 93,130, 33,
-175, 30, 49, 82,107,206,177, 38,  9, 51,107, 20, 29, 39,114, 48,  3,213,156, 65, 28,104, 48,150, 32,196,185, 27, 80,199,118,141,
- 71,165,195,105,132,158,  8,195, 93,132,212, 28, 78, 70,177, 28,111,246,152,240,109,140, 18, 50,114,119, 23, 19,106,221,127,201,
- 89,107, 13,133,160,186,152, 43,183,135,161,112,100,122, 89, 35, 92,155,162,130,218, 18,159, 34, 36,113,180,105, 89,145,230, 13,
- 21, 57, 56, 56,248,236, 31,254,118,178,117,238, 87,127,231,247,178,247,243,254,164,197, 45,178, 16, 92,135, 66,221, 36, 73,210,
-147, 99,202,221,217,171,175, 29,237,237,110,158,191,180,255,108,119,101,243,194,233,173, 51,143,119,110, 61,127,242,232,225,131,
-251,159,221,190,119,230,204,217,239,188,255,250,116, 50,157,171, 88, 62, 61, 93, 93,101,161,195,103,143,158, 62,121,112,239,222,
-189,187,247, 31,223,125,252,104,177, 40, 63,255,230,245,223,252,206, 47,156,221,218, 90, 28,247,222,206,154,  2, 88,160,142,208,
- 20, 23,225,163, 98, 71,  6,212,181, 18,103,247,138, 86, 63,102,110,212,132,224,220,136,107,117, 66,124,156,199,201,165,183,108,
- 90, 67,101,  7,206, 63, 10,  0,210, 46,240,141,237, 23, 71, 48,103,137,123, 55,198, 95,220,227,240,127,112,120,204, 73,146,105,
- 74,105, 24,  6, 55,215, 82,224,158, 88, 82,115,248,197, 73, 44, 13,117, 14, 38,175,186,127, 56, 35,243,148, 36,115,102, 98,120,
- 77,194, 91,155,167,142,143,103,214,156, 69,198,209,180,178,246,187,165,166, 42,  4, 88,  0, 75,145,240, 51,152,234,229,203, 23,
- 87, 86, 86, 13, 86,181, 28,158,204, 13, 40, 67,169,110, 81, 98, 25, 67,  0,142, 90,251, 82,252,133, 75,156,150,233,156,118,138,
-179,118,228,140,152,138,143,193,177, 51,103,183,159,239, 62,209, 58, 64, 38, 57,101,115,168,100,114, 76,186,233,230,214,230, 52,
-167,167, 79,159,191,122,233,252, 79,251,  7,125, 63,155,166, 83,  0,166, 43,211,162, 53,165,252,229, 55,222,120,182,255,172, 31,
- 10,187, 73, 27,173, 17, 51,101,206, 65,197,142,179,237,250,164, 59, 56, 89, 36,145, 51, 27, 27,  7,135,199, 60,232,104, 30,183,
-209, 59, 17,  0, 36,214, 80, 15,  3,  9, 94,204,132,161,106, 32,114, 50,226, 36, 76,113, 88, 34,132,190,131, 36, 22,156,113,148,
-174,198, 34, 78, 12,211,208,217,  4,164,181, 77, 27,150,214,178, 70,136, 33, 50,168,169,116, 68,201, 93,173,175, 37,166, 88,169,
- 75,165,239, 23,195, 16, 10,100, 87,175, 14, 46, 90, 59, 13, 96, 31,141,177, 36, 22,104, 29,  5,196,106,129,123,137,103, 36, 76,
-201,101, 50, 73, 66, 60,104,227, 14,  6,110,207,212, 74,210,118,  2,108, 58, 31,  3,132, 29, 39,139,121,150,245,204, 89,109,201,
-161,164,  6,140,165,118, 60,133,153, 91, 20,244,219,143,174,253, 25,153,200,156,140, 40,145,144,164, 44, 96,141, 91, 74, 43,166,
- 34,120, 62,198, 68, 41,117, 97,174, 10, 26, 98,230,128, 49, 40, 51, 13,145,183,246,134,253, 77, 83, 78,146, 74,173, 96, 23,201,
-170, 10, 71,102, 57,172,  1, 67,179, 48,  2,198, 71,177, 47, 26, 78, 15, 52,213,219,178,139,132,198,117,111, 51, 39,  0, 16,145,
- 36,169,203,169,168, 66,220,137,166, 41,153, 54, 44,  0,128,148, 40,107,106,140,123,119,175, 65,139,107,208,194,241,255, 81, 68,
-168, 90,208,226,136,152, 29, 72, 57,149,170,213, 12,170, 64,141,207,201, 32, 60,159,205, 35, 10, 80,204, 18,231,150,217, 82, 39,
-130,113,139, 75, 80,188, 66,194,221, 22,170,119,230,112, 49, 47,145, 24, 34,174,234,106, 42, 17,221,105,187,126,107,169, 74,144,
-228,228,181,214,170, 13,211,219,128,100,205, 28,191, 20,242,  5, 60, 76,  3,101, 70, 74, 53, 80,239,205,221, 42,206,106, 42,204,
- 62, 86,246,169,165,130,145, 26, 98, 45,238, 38,203,219,145, 53,205,101,151,167,243,197,252,167, 63,248,160, 31,252,250, 91, 95,
-189,120,110,187,214,210, 43,218,202, 37,248, 12,222,238, 71, 23,222,120, 71,114,231,102,179,231,187,183,127,250,209,116,101,117,
-232, 23,171, 43,107, 95,252,228, 43,248,243,154,  0,  0,  8,156, 73, 68, 65, 84,195, 71,143, 30,126,126,235,206,188,214,175,190,
-125,227,242,249,237,234,124,100, 43, 41,175,117, 93,118,235,247,246,158, 62,188,127,231,222,189, 71,183,118,118,238,237, 62,189,
-112,118,235,247,127,247, 59, 95,190,254,178, 57,205,102, 71, 96,176, 79, 70,170,148, 47,151,108,228, 62, 54,115, 26,157,147, 44,
-156, 39, 13,187,227, 80,166, 73, 43,237,186,155, 13,  8,225, 88,179,132,155,105,184,191,157, 44, 57,233,152,160, 82, 11, 94, 68,
-219, 68, 52, 74,112,220, 42,151,131,194,224, 50,196, 87, 49,250,109,243,249,176, 58, 93,113,232,238,243, 67,214,128, 16,176, 48,
-159, 44,230,107,235,171,153,211,188, 95, 12,181,  6, 76, 99,194,220,247,243,121, 25,114, 74, 73,186, 73, 55, 97, 66, 53, 53,245,
-149,233,202,124,182, 48, 51,211, 90, 77, 39, 35, 47,  9,238,137,216,200, 61,234,195, 14, 85, 45, 42, 29, 11, 17,117,147,201,181,
-171, 87,136, 65,213,251,190, 63,156,157,152,217,188,159, 91,160,  6,199,101,133,177,131,169,246,125, 59,228, 97,201, 98, 90,110,
- 43,146,179,  3,234, 49, 53,136,109, 28,  1,238,221,250,250,230,214,153,199, 15,239,117,156,107,109,176,214,201,116,117, 49, 63,
-217, 62,127,238,217,147, 39,167,183, 54,119,251,221,139, 91, 27,119,118,159,205,250,197, 70,183, 66, 66, 19,238, 22,165, 92,185,
-116,229,198,171,111,252,232, 31,127,234, 34,  0,245,165,108, 76, 38,166,150,196, 93, 48, 12,101,222,151,193,117,139,166, 73,104,
-190,232, 39,171, 43, 27,235,171,245,240,100, 88, 12, 97, 12,119,247,190, 12,113, 10, 13, 34,183, 99,156,116,142, 56,120,143,221,
-107, 41,121,210,113, 76, 26, 97,238, 45,176,204, 49,100,112,113, 40,212,147, 67, 99,130, 65,148, 57,113,252,156, 57,  6, 58, 75,
- 96, 55,194,188, 56, 91,244, 96, 89,235,152, 76,  8,112, 87, 51,114,243, 82, 43,136, 84,181, 86,173, 33,231, 38,117, 64,173,146,
-  1,169,201,231,196, 56, 42,114,177,  0,  0,180,233,225,188,101, 92,114, 74, 85,151,162,122, 52,225,  9, 32, 76,137, 18, 24, 49,
-116,137,246,103, 52,245, 85,235,  8,140,142,216, 30, 73,130,169,215,106, 17,206,116,  2, 39,193, 64,158, 64, 64,158,228,113,  8,
-221,214,127, 65,110,169,213,205,200,152,196, 25,170, 17,  0, 34,137,236, 24, 98, 12, 83, 53, 30,107, 17,174, 55, 13,224,170,107,
-244, 42,221,145,136, 37,177,187,197,201,134,217, 20,110,234, 43,147, 28,238,202, 86, 89,111, 79,154,104,168, 81, 69,107, 99,142,
-121,161,118,115, 49, 51,112,128,229, 65,236,166, 90,147,  8, 51,218, 97, 20,234,193,106, 79,210, 15,230,241, 66,106, 41,244,192,
-229,147,139,193, 57, 46, 49,241,163, 96, 78, 34, 67,173,204,108, 49,134, 12,  6, 60,188, 22, 99, 43, 49, 69,119, 51, 55, 47,102,
- 76,210,142,244,112,243, 81,126,180,  4, 85,142, 51,153,165,152,172, 25, 90,219,213,175,137,145, 53,140, 89,204,110,227,226,187,
- 82,100,106, 99, 90, 91,180,152,  6,114,180,169, 83,213, 77,173,198, 60, 61,196,200,241, 98, 86,  0,213, 56, 17,131, 92,141,164,
- 41,  5, 56,158, 77,202, 32,130,151,246, 27, 73,188, 45,144, 90, 74,159,154,230,111,185,195, 78, 57, 17,248,246,167, 63,187,179,
-179,115,249,229, 87,190,113,227, 70,173,253,124, 49,151,148,184,155, 80, 69,117,135,215, 88, 86,104,173, 39, 79,238, 31, 63,219,
-157,174, 76, 14, 14, 15, 57,229, 73,110,130,191,231,143,119, 62,254,228,230,206,131, 39,151, 46,156,251,246,235,215,114,226, 89,
- 97,205,167,243,100, 53,179,159,156, 28, 28,238, 61,185,115,247,238,237,187,247,110,221,127, 52,235, 23,239,127,229,203,191,243,
-171,239,173,175,175,149,197,  0,102,131, 91,165,148, 45,130,187,129,229,106,163,133, 23,214, 98, 29,189, 36, 68,174,  4,  5,139,
-123,  2,200, 92,185,193,166,157, 96, 49, 91,140,178,  0, 17,113,146, 17,208,163, 24,201,181, 16,110,232, 16, 10,243,120,  3,238,
-216, 40, 86, 48,179,145,136,194, 60, 30,241,224,126,178,152,119,147, 73,223, 47,200,209,137,232,164, 75, 89, 42,212,205,230,179,
- 69, 62,179,237,238,205,201, 64,204,174,  7,243, 69,104,198,132,169, 47,139,117, 94, 67, 43,203, 72,206,146,153,247, 79, 74,169,
- 53,  5,251,134,  9,238,149, 91, 85, 46,181,241, 51, 17,144, 37,131,124,117, 58,185,114,225,162, 86,168,149,253,131,253,217, 98,
- 97,102,181,212, 49, 71,180, 12,137,  1,224,197, 48, 31, 85, 73,241, 21,214,229, 27,190,121,115,149,169,115, 36,248,162,173, 96,
-227,173,120,238,165, 43,207,159, 62,113,114,102,192,157, 57,165,233,116,226,245,248, 96,191, 46, 22,167,206,157, 91, 61,181,182,
-237,120,122,120,188,176, 90,181,244, 53,173, 79, 38, 43,220,169,251,141,215, 94,223,185,127,127,247,249, 62,179,176,136, 72,118,
- 31, 74, 25, 68,114,202, 44, 32, 53,127, 54,155, 79,146,172, 77, 39,139,170, 29,115, 74,236, 68,149, 52,187, 56,172,147, 28,141,
- 70,142, 26,104,212, 63,226,113,108,177, 38,  8, 56,159, 21, 53, 34, 98, 39, 35,114, 98,131, 10,195,137, 52, 16,154, 36,181, 86,
- 16, 18,167, 34,201,  2,141, 47,156,146,212,226, 74, 22, 29,206, 16,  7,179,155,185, 50,185, 89, 45,166,102,117,101,186, 82,230,
-138, 68,139,190, 23,150, 69, 25,138, 22, 39,147, 80,100,190, 96,113, 53,195, 96,116,148,212, 61, 59, 37, 22, 78,201, 23,101,132,
-133,180, 13,160, 85,213, 90, 70,110,108,216, 72, 12,196, 57,119, 73,132,  8,169, 75, 14,157,247, 14, 18,  6,173,173,174, 74, 40,
- 12,163,113,100, 10, 36, 15,255, 52, 25,185, 26, 68,192,161,181,139,164, 38, 49,179,147, 54,146, 92,144,223,168, 89, 97, 25, 28,
-228, 91, 22, 88, 35,133,147, 90, 75,  4,130,226,165, 64, 28,128, 45,111, 71,202,  6, 34,111,124,139,192,198,153, 69,238,223,153,
- 72, 58, 54,109, 22,241, 54,173,110,243, 28,206,146,152,201, 84,107, 59,  5,195,213, 41,108,222, 12,179,101,154, 52, 80,204, 34,
-  1, 24, 16,113,173, 14,241,177,  4, 33, 68, 33, 64,135, 32,176,199,196,146, 88, 76,107,175,117,249,194, 28,189, 67,226,134, 76,
- 73, 49,180,  4, 10, 67, 40,129, 76,173,186, 43, 83,106,197,150,120,135,150,202,156,156, 20,206,109,245, 30, 55,103,231, 24,175,
-141,248,223,136,228, 51,189,192, 36,197,219, 57,218, 72,109, 19, 59,154, 54, 20, 68,170,206, 44,102,113,250, 10, 49,129, 49, 68,
-181, 90,228, 92,204,226, 52,217,130,203,106, 66,176, 70,129, 52, 18,  6,132,199,  7,160,153,241, 72,  5,211, 26,146,239,  6,158,
- 79,141,198, 28,140,177, 88, 42,229, 21, 66,189,127,111,231,254,206,206,116,245,212, 55,191,245,203,235,235, 43,139,249,113, 80,
-154,172,154,152, 27, 12,163, 57, 79,235, 80,251, 69,154,174, 77,214,214,143,143, 14, 37, 79, 78,109,157, 57,122,246,120,152, 29,
-124,241,249,167,159,223,222, 73,210,189,251,149, 27,219, 91,155,213,232,168,116, 60,221,156,164,206,189, 60,221,125,188,251,248,
-225,157,251,247,111,221,189,255,232,217,254,217,211, 27,191,247, 91,191,252,213,183,174, 27,104, 24, 10, 73,203, 38, 38, 33,184,
-142,113, 19, 90,174, 77, 98, 51, 76,206,227,138,216, 65,  9, 17,186,119,129,155,147,196,140,161, 33,224, 99,202, 99, 70, 75,251,
- 76, 60,200,195, 91,235, 75, 70, 77,155,224,  7, 19, 19, 32,119,109, 15,244,246,  3,141,233,237,139,106, 50,204,157,188,239,139,
-164,236,139,217,100,146, 89, 61,250,166,  9,196, 34,139,249,108,177,152, 29, 29,167, 50, 20,139,160,165,164,121, 95,219,153,209,
- 12,134, 44, 73,137,163,  5, 24,229,133,162,197,153, 73,154,221, 32,102, 13,193, 17, 36,106,148,174,101,240,121,115, 99, 99,115,
-115, 83, 50, 47,142,202,243,131,253,170, 86,172, 46,202, 64,198,  4, 93, 90,116,195, 10, 95,251,  1,169,245,236, 98, 14, 97, 80,
-166, 68,144,101, 90,218,213, 97,113,244, 89,126, 67,104,186,190,113,233,234,181,123, 59,183,147,100, 14,176,179,214,174, 91,157,
- 78,231, 87,190,244,165,157, 59,119, 55, 79,175, 39,248,171, 47, 93,248,201,237,251, 10, 63,181,182,234,206, 89,200,107,221,220,
- 56,253,213,119,126,238, 79,255,230,175,212,172,203,185, 88, 13,225, 14,224, 66, 60,201,210,173,118,139,162,100,186,182, 58,173,
-199,115,115, 90,201,147, 35,204,225,148, 83,170,170, 57, 11, 17,143, 39,161, 86, 19,143,153, 67, 69, 52,183, 74, 11, 73, 66,153,
- 26, 56,222,213,152,205,  3,221,  8, 50, 80,230, 96,  6,135, 10,144,216,189,160,186,117, 66, 16,242,242,162,125, 14,  7,204,192,
- 78, 93,158, 40,188, 31,234, 88,107, 68, 34,234,189, 82,244,107,  0,226, 84,225, 18,197, 83,143,112, 72,236,  9,149,219, 53,208,
- 33, 44,146, 56,150,136, 22, 91,157,176, 20, 81,169, 53,190,152,141, 91,202,204, 36, 17, 30,141,109,190,155, 17, 88, 43, 66, 31,
- 52,153, 76,180, 86,196, 66,216, 93, 88, 84,149, 69, 96, 36, 36,  5, 46, 30, 66,201, 23,241, 87,  4,196,  0,  2,243, 10, 11, 90,
-161,  7,200,254,159, 36,199,199,250, 72,232,215,131,167, 70, 34,210, 15, 67, 29,124,210, 37,  2, 59,143,101,250,165,222,  0,122,
-116, 50,  3,241, 16, 35, 56, 94,129,130,147,180,217, 56,  8, 76, 99,147,142, 34, 13, 19,201,194, 37,194,138, 67, 99, 62,246,239,
-227,204, 25, 27, 12, 18,  8, 17,187, 83, 11,145,  0,230, 85,  3, 44,236, 89,196,220,234, 80, 16,120,140,120,195, 48,147,209, 56,
-202,140, 99,186,186, 67, 85,227,189,200,227,  8,160,148,194,164, 90,157,137, 18,203, 96,166,214,140,126,188, 84, 65,  4,  7,137,
-150,208,126,199, 11, 96,157,144,187, 70, 26, 42, 44, 35, 22,190, 60, 39,110,243,  0,110,111, 43,113, 87, 55,231, 68, 68, 84, 77,
-205,156,184,  9,  4,221,169, 90,148,252,218,181,165, 97, 27,204,  1, 87, 55, 14,229,112, 59,227,194,221,139, 25,179,120, 88, 31,
-218,205, 34,164, 97, 48, 67,102,114,248,255,  3,163,186,128,162, 44,159, 39,191,  0,  0,  0,  0, 73, 69, 78, 68,174, 66, 96,130,
-};
+137, 80,
+ 78, 71, 13, 10, 26, 10,  0,  0,  0, 13, 73, 72, 68, 82,  0,  0,  1,245,  0,  0,  1, 26,  8,  6,  0,  0,  0,  8, 90,206, 70,  0,
+  0, 10, 79,105, 67, 67, 80, 80,104,111,116,111,115,104,111,112, 32, 73, 67, 67, 32,112,114,111,102,105,108,101,  0,  0,120,218,
+157, 83,103, 84, 83,233, 22, 61,247,222,244, 66, 75,136,128,148, 75,111, 82, 21,  8, 32, 82, 66,139,128, 20,145, 38, 42, 33,  9,
+ 16, 74,136, 33,161,217, 21, 81,193, 17, 69, 69,  4, 27,200,160,136,  3,142,142,128,140, 21, 81, 44, 12,138, 10,216,  7,228, 33,
+162,142,131,163,136,138,202,251,225,123,163,107,214,188,247,230,205,254,181,215, 62,231,172,243,157,179,207,  7,192,  8, 12,150,
+ 72, 51, 81, 53,128, 12,169, 66, 30, 17,224,131,199,196,198,225,228, 46, 64,129, 10, 36,112,  0, 16,  8,179,100, 33,115,253, 35,
+  1,  0,248,126, 60, 60, 43, 34,192,  7,190,  0,  1,120,211, 11,  8,  0,192, 77,155,192, 48, 28,135,255, 15,234, 66,153, 92,  1,
+128,132,  1,192,116,145, 56, 75,  8,128, 20,  0, 64,122,142, 66,166,  0, 64, 70,  1,128,157,152, 38, 83,  0,160,  4,  0, 96,203,
+ 99, 98,227,  0, 80, 45,  0, 96, 39,127,230,211,  0,128,157,248,153,123,  1,  0, 91,148, 33, 21,  1,160,145,  0, 32, 19,101,136,
+ 68,  0,104, 59,  0,172,207, 86,138, 69,  0, 88, 48,  0, 20,102, 75,196, 57,  0,216, 45,  0, 48, 73, 87,102, 72,  0,176,183,  0,
+192,206, 16, 11,178,  0,  8, 12,  0, 48, 81,136,133, 41,  0,  4,123,  0, 96,200, 35, 35,120,  0,132,153,  0, 20, 70,242, 87, 60,
+241, 43,174, 16,231, 42,  0,  0,120,153,178, 60,185, 36, 57, 69,129, 91,  8, 45,113,  7, 87, 87, 46, 30, 40,206, 73, 23, 43, 20,
+ 54, 97,  2, 97,154, 64, 46,194,121,153, 25, 50,129, 52, 15,224,243,204,  0,  0,160,145, 21, 17,224,131,243,253,120,206, 14,174,
+206,206, 54,142,182, 14, 95, 45,234,191,  6,255, 34, 98, 98,227,254,229,207,171,112, 64,  0,  0,225,116,126,209,254, 44, 47,179,
+ 26,128, 59,  6,128,109,254,162, 37,238,  4,104, 94, 11,160,117,247,139,102,178, 15, 64,181,  0,160,233,218, 87,243,112,248,126,
+ 60, 60, 69,161,144,185,217,217,229,228,228,216, 74,196, 66, 91, 97,202, 87,125,254,103,194, 95,192, 87,253,108,249,126, 60,252,
+247,245,224,190,226, 36,129, 50, 93,129, 71,  4,248,224,194,204,244, 76,165, 28,207,146,  9,132, 98,220,230,143, 71,252,183, 11,
+255,252, 29,211, 34,196, 73, 98,185, 88, 42, 20,227, 81, 18,113,142, 68,154,140,243, 50,165, 34,137, 66,146, 41,197, 37,210,255,
+100,226,223, 44,251,  3, 62,223, 53,  0,176,106, 62,  1,123,145, 45,168, 93, 99,  3,246, 75, 39, 16, 88,116,192,226,247,  0,  0,
+242,187,111,193,212, 40,  8,  3,128,104,131,225,207,119,255,239, 63,253, 71,160, 37,  0,128,102, 73,146,113,  0,  0, 94, 68, 36,
+ 46, 84,202,179, 63,199,  8,  0,  0, 68,160,129, 42,176, 65, 27,244,193, 24, 44,192,  6, 28,193,  5,220,193, 11,252, 96, 54,132,
+ 66, 36,196,194, 66, 16, 66, 10,100,128, 28,114, 96, 41,172,130, 66, 40,134,205,176, 29, 42, 96, 47,212, 64, 29, 52,192, 81,104,
+134,147,112, 14, 46,194, 85,184, 14, 61,112, 15,250, 97,  8,158,193, 40,188,129,  9,  4, 65,200,  8, 19, 97, 33,218,136,  1, 98,
+138, 88, 35,142,  8, 23,153,133,248, 33,193, 72,  4, 18,139, 36, 32,201,136, 20, 81, 34, 75,145, 53, 72, 49, 82,138, 84, 32, 85,
+ 72, 29,242, 61,114,  2, 57,135, 92, 70,186,145, 59,200,  0, 50,130,252,134,188, 71, 49,148,129,178, 81, 61,212, 12,181, 67,185,
+168, 55, 26,132, 70,162, 11,208,100,116, 49,154,143, 22,160,155,208,114,180, 26, 61,140, 54,161,231,208,171,104, 15,218,143, 62,
+ 67,199, 48,192,232, 24,  7, 51,196,108, 48, 46,198,195, 66,177, 56, 44,  9,147, 99,203,177, 34,172, 12,171,198, 26,176, 86,172,
+  3,187,137,245, 99,207,177,119,  4, 18,129, 69,192,  9, 54,  4,119, 66, 32, 97, 30, 65, 72, 88, 76, 88, 78,216, 72,168, 32, 28,
+ 36, 52, 17,218,  9, 55,  9,  3,132, 81,194, 39, 34,147,168, 75,180, 38,186, 17,249,196, 24, 98, 50, 49,135, 88, 72, 44, 35,214,
+ 18,143, 19, 47, 16,123,136, 67,196, 55, 36, 18,137, 67, 50, 39,185,144,  2, 73,177,164, 84,210, 18,210, 70,210,110, 82, 35,233,
+ 44,169,155, 52, 72, 26, 35,147,201,218,100,107,178,  7, 57,148, 44, 32, 43,200,133,228,157,228,195,228, 51,228, 27,228, 33,242,
+ 91, 10,157, 98, 64,113,164,248, 83,226, 40, 82,202,106, 74, 25,229, 16,229, 52,229,  6,101,152, 50, 65, 85,163,154, 82,221,168,
+161, 84, 17, 53,143, 90, 66,173,161,182, 82,175, 81,135,168, 19, 52,117,154, 57,205,131, 22, 73, 75,165,173,162,149,211, 26,104,
+ 23,104,247,105,175,232,116,186, 17,221,149, 30, 78,151,208, 87,210,203,233, 71,232,151,232,  3,244,119, 12, 13,134, 21,131,199,
+136,103, 40, 25,155, 24,  7, 24,103, 25,119, 24,175,152, 76,166, 25,211,139, 25,199, 84, 48, 55, 49,235,152,231,153, 15,153,111,
+ 85, 88, 42,182, 42,124, 21,145,202, 10,149, 74,149, 38,149, 27, 42, 47, 84,169,170,166,170,222,170, 11, 85,243, 85,203, 84,143,
+169, 94, 83,125,174, 70, 85, 51, 83,227,169,  9,212,150,171, 85,170,157, 80,235, 83, 27, 83,103,169, 59,168,135,170,103,168,111,
+ 84, 63,164,126, 89,253,137,  6, 89,195, 76,195, 79, 67,164, 81,160,177, 95,227,188,198, 32, 11, 99, 25,179,120, 44, 33,107, 13,
+171,134,117,129, 53,196, 38,177,205,217,124,118, 42,187,152,253, 29,187,139, 61,170,169,161, 57, 67, 51, 74, 51, 87,179, 82,243,
+148,102, 63,  7,227,152,113,248,156,116, 78,  9,231, 40,167,151,243,126,138,222, 20,239, 41,226, 41, 27,166, 52, 76,185, 49,101,
+ 92,107,170,150,151,150, 88,171, 72,171, 81,171, 71,235,189, 54,174,237,167,157,166,189, 69,187, 89,251,129, 14, 65,199, 74, 39,
+ 92, 39, 71,103,143,206,  5,157,231, 83,217, 83,221,167, 10,167, 22, 77, 61, 58,245,174, 46,170,107,165, 27,161,187, 68,119,191,
+110,167,238,152,158,190, 94,128,158, 76,111,167,222,121,189,231,250, 28,125, 47,253, 84,253,109,250,167,245, 71, 12, 88,  6,179,
+ 12, 36,  6,219, 12,206, 24, 60,197, 53,113,111, 60, 29, 47,199,219,241, 81, 67, 93,195, 64, 67,165, 97,149, 97,151,225,132,145,
+185,209, 60,163,213, 70,141, 70, 15,140,105,198, 92,227, 36,227,109,198,109,198,163, 38,  6, 38, 33, 38, 75, 77,234, 77,238,154,
+ 82, 77,185,166, 41,166, 59, 76, 59, 76,199,205,204,205,162,205,214,153, 53,155, 61, 49,215, 50,231,155,231,155,215,155,223,183,
+ 96, 90,120, 90, 44,182,168,182,184,101, 73,178,228, 90,166, 89,238,182,188,110,133, 90, 57, 89,165, 88, 85, 90, 93,179, 70,173,
+157,173, 37,214,187,173,187,167, 17,167,185, 78,147, 78,171,158,214,103,195,176,241,182,201,182,169,183, 25,176,229,216,  6,219,
+174,182,109,182,125, 97,103, 98, 23,103,183,197,174,195,238,147,189,147,125,186,125,141,253, 61,  7, 13,135,217, 14,171, 29, 90,
+ 29,126,115,180,114, 20, 58, 86, 58,222,154,206,156,238, 63,125,197,244,150,233, 47,103, 88,207, 16,207,216, 51,227,182, 19,203,
+ 41,196,105,157, 83,155,211, 71,103, 23,103,185,115,131,243,136,139,137, 75,130,203, 46,151, 62, 46,155, 27,198,221,200,189,228,
+ 74,116,245,113, 93,225,122,210,245,157,155,179,155,194,237,168,219,175,238, 54,238,105,238,135,220,159,204, 52,159, 41,158, 89,
+ 51,115,208,195,200, 67,224, 81,229,209, 63, 11,159,149, 48,107,223,172,126, 79, 67, 79,129,103,181,231, 35, 47, 99, 47,145, 87,
+173,215,176,183,165,119,170,247, 97,239, 23, 62,246, 62,114,159,227, 62,227, 60, 55,222, 50,222, 89, 95,204, 55,192,183,200,183,
+203, 79,195,111,158, 95,133,223, 67,127, 35,255,100,255,122,255,209,  0,167,128, 37,  1,103,  3,137,129, 65,129, 91,  2,251,248,
+122,124, 33,191,142, 63, 58,219,101,246,178,217,237, 65,140,160,185, 65, 21, 65,143,130,173,130,229,193,173, 33,104,200,236,144,
+173, 33,247,231,152,206,145,206,105, 14,133, 80,126,232,214,208,  7, 97,230, 97,139,195,126, 12, 39,133,135,133, 87,134, 63,142,
+112,136, 88, 26,209, 49,151, 53,119,209,220, 67,115,223, 68,250, 68,150, 68,222,155,103, 49, 79, 57,175, 45, 74, 53, 42, 62,170,
+ 46,106, 60,218, 55,186, 52,186, 63,198, 46,102, 89,204,213, 88,157, 88, 73,108, 75, 28, 57, 46, 42,174, 54,110,108,190,223,252,
+237,243,135,226,157,226, 11,227,123, 23,152, 47,200, 93,112,121,161,206,194,244,133,167, 22,169, 46, 18, 44, 58,150, 64, 76,136,
+ 78, 56,148,240, 65, 16, 42,168, 22,140, 37,242, 19,119, 37,142, 10,121,194, 29,194,103, 34, 47,209, 54,209,136,216, 67, 92, 42,
+ 30, 78,242, 72, 42, 77,122,146,236,145,188, 53,121, 36,197, 51,165, 44,229,185,132, 39,169,144,188, 76, 13, 76,221,155, 58,158,
+ 22,154,118, 32,109, 50, 61, 58,189, 49,131,146,145,144,113, 66,170, 33, 77,147,182,103,234,103,230,102,118,203,172,101,133,178,
+254,197,110,139,183, 47, 30,149,  7,201,107,179,144,172,  5, 89, 45, 10,182, 66,166,232, 84, 90, 40,215, 42,  7,178,103,101, 87,
+102,191,205,137,202, 57,150,171,158, 43,205,237,204,179,202,219,144, 55,156,239,159,255,237, 18,194, 18,225,146,182,165,134, 75,
+ 87, 45, 29, 88,230,189,172,106, 57,178, 60,113,121,219, 10,227, 21,  5, 43,134, 86,  6,172, 60,184,138,182, 42,109,213, 79,171,
+237, 87,151,174,126,189, 38,122, 77,107,129, 94,193,202,130,193,181,  1,107,235, 11, 85, 10,229,133,125,235,220,215,237, 93, 79,
+ 88, 47, 89,223,181, 97,250,134,157, 27, 62, 21,137,138,174, 20,219, 23,151, 21,127,216, 40,220,120,229, 27,135,111,202,191,153,
+220,148,180,169,171,196,185,100,207,102,210,102,233,230,222, 45,158, 91, 14,150,170,151,230,151, 14,110, 13,217,218,180, 13,223,
+ 86,180,237,245,246, 69,219, 47,151,205, 40,219,187,131,182, 67,185,163,191, 60,184,188,101,167,201,206,205, 59, 63, 84,164, 84,
+244, 84,250, 84, 54,238,210,221,181, 97,215,248,110,209,238, 27,123,188,246, 52,236,213,219, 91,188,247,253, 62,201,190,219, 85,
+  1, 85, 77,213,102,213,101,251, 73,251,179,247, 63,174,137,170,233,248,150,251,109, 93,173, 78,109,113,237,199,  3,210,  3,253,
+  7, 35, 14,182,215,185,212,213, 29,210, 61, 84, 82,143,214, 43,235, 71, 14,199, 31,190,254,157,239,119, 45, 13, 54, 13, 85,141,
+156,198,226, 35,112, 68,121,228,233,247,  9,223,247, 30, 13, 58,218,118,140,123,172,225,  7,211, 31,118, 29,103, 29, 47,106, 66,
+154,242,154, 70,155, 83,154,251, 91, 98, 91,186, 79,204, 62,209,214,234,222,122,252, 71,219, 31, 15,156, 52, 60, 89,121, 74,243,
+ 84,201,105,218,233,130,211,147,103,242,207,140,157,149,157,125,126, 46,249,220, 96,219,162,182,123,231, 99,206,223,106, 15,111,
+239,186, 16,116,225,210, 69,255,139,231, 59,188, 59,206, 92,242,184,116,242,178,219,229, 19, 87,184, 87,154,175, 58, 95,109,234,
+116,234, 60,254,147,211, 79,199,187,156,187,154,174,185, 92,107,185,238,122,189,181,123,102,247,233, 27,158, 55,206,221,244,189,
+121,241, 22,255,214,213,158, 57, 61,221,189,243,122,111,247,197,247,245,223, 22,221,126,114, 39,253,206,203,187,217,119, 39,238,
+173,188, 79,188, 95,244, 64,237, 65,217, 67,221,135,213, 63, 91,254,220,216,239,220,127,106,192,119,160,243,209,220, 71,247,  6,
+133,131,207,254,145,245,143, 15, 67,  5,143,153,143,203,134, 13,134,235,158, 56, 62, 57, 57,226, 63,114,253,233,252,167, 67,207,
+100,207, 38,158, 23,254,162,254,203,174, 23, 22, 47,126,248,213,235,215,206,209,152,209,161,151,242,151,147,191,109,124,165,253,
+234,192,235, 25,175,219,198,194,198, 30,190,201,120, 51, 49, 94,244, 86,251,237,193,119,220,119, 29,239,163,223, 15, 79,228,124,
+ 32,127, 40,255,104,249,177,245, 83,208,167,251,147, 25,147,147,255,  4,  3,152,243,252, 99, 51, 45,219,  0,  0,  0,  6, 98, 75,
+ 71, 68,  0,255,  0,255,  0,255,160,189,167,147,  0,  0,  0,  9,112, 72, 89,115,  0,  0, 11, 19,  0,  0, 11, 19,  1,  0,154,156,
+ 24,  0,  0,  0,  7,116, 73, 77, 69,  7,219,  8, 10, 15, 54, 11,254,114,226, 41,  0,  0, 32,  0, 73, 68, 65, 84,120,218,236,189,
+121,212,101,103, 89, 39,250,123,167, 61,156,225, 27,106, 72, 85, 66, 37, 49,149,129,132,132, 41, 21,  6,  1, 21, 72, 33,160,226,
+132,137, 99, 59,155,216,186,188,182,182,146, 92,180, 23,246,242, 98, 19,187,111,115,219,123,181, 37, 42, 44,245,218, 10, 81,161,
+165,175,136, 41, 71,104, 90, 66, 42,  4,130, 16,  8,169, 36, 36, 33, 73,205,223,116,134,189,223,225,254,241, 60,239,217,251,156,
+250,230,250,190,202,224,254,173,117,214, 55,156,115,246,222,239,244,204,  3,208,160, 65,131,  6, 13, 26, 52,104,208,160, 65,131,
+  6, 13, 26, 52,104,208,160, 65,131,  6, 13, 26, 52,104,208,160, 65,131,  6, 13, 26, 52,104,208,160, 65,131,  6, 13, 26, 52,104,
+208,160, 65,131,  6, 13, 26, 52,104,208,160, 65,131,  6, 13, 26,156, 19,168,115,124, 63,193,175, 12,192,126, 33,176, 27, 64, 15,
+ 64,201,255,111,208,160, 65,131,  6, 13, 26, 60, 11, 32,  0, 72, 33,112,217,187,127,234,250, 63,121,248,247,127,226,232,163,127,
+116,211,137,223,249, 55,111,250,239,137, 18,  7,106,159,105,208,160, 65,131,  6, 13, 26, 60,195, 53,117,  1, 32,121,199, 15,191,
+242,157,183,126,215, 53, 63, 56, 83, 12,218, 83,211,173,252,218, 87, 92,250,252,111, 63,112,201,193,187, 62,255,208,147, 79,156,
+ 26,126,  9, 64,104,152,123,131,  6, 13, 26, 52,104,240,204,102,234, 18, 64,235,205,215,180,223,250,154,221,226,154,226,232, 81,
+216,147, 39,224,251, 22, 23, 92,113,225,236, 13,215, 95,243,150,163,167,230,212,189, 15, 28,255, 12,128,126,195,216, 27, 52,104,
+208,160, 65,131,103,182,166,158,254,237,125, 39,158,188,234,130,244, 69, 47,186,108,247, 94,148, 30,126,225, 20,252, 98, 15,157,
+243,118,234,111,189,254,197,223, 48,147, 39,151,127,244,174, 35,159,  6,112,162, 97,236, 13, 26, 52,104,208,160,193, 51,147,169,
+  3,128,  8,192,194,159,126,234,216,189, 78, 23, 59,191,254,170,189, 87, 24,101,224,122,139,240,167, 79,  3, 89, 27,175,122,245,
+ 85, 87, 29,188,106,223,107,255,254,222, 47, 63,124,122,169, 60,210, 44, 81,131,  6, 13, 26, 52,104,176,126,237,249, 92,223, 47,
+  3, 48, 13, 96,223, 91,175,155,254,161,223,254, 87,215,253,248,174, 86,146, 21, 75, 67, 64, 25,136,125, 23,195,236,219,135,167,
+158, 56, 49,255,243,191,241,145,255,240,223, 14,125,233,183,  0, 44,240,247,195, 51,121, 50, 67,  8,  7,  0,204,242,159, 71,132,
+ 16,207,105,161,228, 95,218,120, 27, 52,104,208,160, 97,234,203, 67,  2,152,  2,176,231,146, 89,245,173,255,227,103, 95,246,243,
+ 87, 93, 48,179,183,236,149,  0, 60,176,247, 34, 36, 23, 93, 12, 27, 60,222,249,190,255,249,  7,191,242,187,127,247,203,  0, 30,
+229,231, 61,107,198, 30, 66,216, 15, 96,255, 58, 63,126, 74,  8,113,120,157,215,189, 19,192, 65,254,243, 86, 33,196,109,207,113,
+166,254,156, 24, 47, 11, 39,  7, 89, 64, 57, 80,123,235, 48,128, 35,  0,238, 16, 66,156,218,130,251, 76, 94, 31, 91,189,  7, 27,
+ 52,104,240, 47, 27,250, 44,152,178,  7,208, 61,127,202,188,240,162, 89,179,211,  5, 41,198, 36,  5,  1, 72, 41,132,143,255, 17,
+244, 37,168,209,187, 26, 64,171, 95,248,254,191,253,240, 67,127,245,127,190,245,234,111,191,114,239,212,140, 45,  3,112,234, 56,
+202,118, 27,106,199,121,120,199,205,223,240,131, 47,223,127,193,243,127,240, 93,119,252,226,241,249,226,227, 91,196,216,111,  0,
+240,174, 13, 16, 99,  0,184,  3,192, 33, 33,196,237,205,182,121,206, 88, 25,110,224,215, 74,  2, 94, 20, 88,222, 19, 66,184,157,
+  5,151,179, 97,238,  7,  0,220,185,137,239, 29,  2,240,134,102,213, 26, 52,104,176, 29, 76, 93,  0, 16,221, 84, 30,248,175, 63,
+248,146, 95,251,150, 23, 93,248,218, 86, 75, 39, 65, 40, 64,  8, 64, 10, 64,242,239, 90,209,223, 74,142,222, 19, 74,211,255,132,
+  0,132,  4,164, 68,  0,130, 11,194,123,173, 33, 71,255, 23,240,174, 68,232, 11,188,249,141, 87,190,226,240,243,127,242,207,126,
+242,215,255,252, 29, 31,249,228, 99,239,  3, 48,196,185, 55,197,223,  0,224,134, 16,194, 13,  0,110,220, 10,205,173,193,211,138,
+187, 55,248,249,155,  0, 28, 12, 33,220,216,104,205, 13, 26, 52,120,174,105,234,187,127,239, 71,175,125,247, 13,175,218,255,117,
+182,231,  0, 47, 32, 36, 23,139, 11, 18,  8,130,148,121,207,172, 55,176,134,238,  1,120, 15, 40,  5, 33, 88,117, 15,  0,132, 16,
+ 82, 10,133, 16, 70, 90, 61,177,236,128,  0,  1,219, 43,113,209, 69,187,118,255,233,127,252,161,255,231,127,255,173, 67,151,255,
+198,159,124,242, 63,  0, 56,182, 69, 90,123,212,132,176,134,182, 86,255,251,206, 16,194, 27, 26,198,254,156,193, 97,144, 37,230,
+176, 16,226, 16,107,242,179,188,214, 55,213,246,192,126,  0, 31,  8, 33, 92,183, 69,107,127, 59,200,188,191, 22,154,125,214,160,
+ 65,131,237,211,212, 83, 35,246,191,254,202,243, 94,134,165, 18,174, 63,  0,188, 39, 38, 29, 45,235,177, 24,108,252, 27,  1, 80,
+ 18, 98,215, 30,210,210,125,  0,164,  7, 60, 91,241,133,228, 75,  7, 64,  6,192, 59,210,246,157, 27,197,231,219,161, 69,203, 24,
+249, 95,126,241, 91,126,238,101,151, 95,248,194, 31,127,215,159,191,109, 88,250,123,183,130,177, 11, 33, 86, 53,109,178,118,254,
+ 46, 84,102,218,  3, 76,236,111,107,182,208,179, 26,183,  3,184,125, 57,205,155,153,246, 29,  0,238,  8, 33,188,135,215, 59, 50,
+246,173, 90,251, 59,162, 16,209,160, 65,131,  6, 91,  1,185,137,239,168, 97, 25, 78,252,197,125,143,126, 18,114,128, 52, 41,145,
+182,128, 36, 15,252,242,213,239, 89,128,145, 67,192, 21, 64,214, 33,147,187, 39,166, 29,198,216,112,  9,248,  2,240,  3, 32, 12,
+249,239,  1, 16, 74, 98,240, 33,  0,193,195,186,  0, 63,116,248,129,183, 94,123,240,158,247,253,235, 15,189,240,226,217,239,  4,
+177,125,185,157,147, 36,132,184,  3,228,211,172,107, 76, 55, 52,219,231, 89,141, 55,  8, 33,110, 94,143, 41, 93,  8,113,243,132,
+ 70,125, 75, 51,125, 13, 26, 52,120,174,104,234,  0,112,226, 71,127,247,190,119,252,213,167, 31,249,206, 43, 46,158,186, 88,  0,
+210,135,224,153,  4,194,  5, 10, 45,235, 15,173,188,246,194, 93, 47,184,241,235, 95,188,223,232, 84,122,239,217,223, 14, 98,236,
+195, 37,  8, 45, 32,246, 93,  3,185,227, 10,160,181,  7,194,116,  1, 87, 32, 12,143, 35,244,190,138,112,226,139,128,235,  3, 50,
+  7,224,224,131,130, 95, 42,240,130,171, 47,188,232,163,191,253, 99,191,247,166,159,126,175,250,236,145,147,127,134, 42,120,111,
+187, 24,251,145, 16,194, 29, 53,141,237,192, 86, 92,119,153,136,232,195, 91, 20,105, 93,143,240,223, 84,186,217, 86, 92,227, 92,
+140,119,226, 57,215,117,189, 77,104,200,183,163, 10,174,156, 13, 33, 28,104,124,235, 13, 26, 52,120, 46, 48,117,  7, 96,  9,192,
+ 23, 62,112,120,254,221, 56, 60,159, 99,249, 34, 54, 59,127,232,245, 23,253,216,155,175,187,230,252, 68, 26,233,124, 32,211,123,
+127,  8, 12,151,  0, 55, 15,249,252,215, 64, 94,245,189,144,231, 93,113, 38,209,141,191, 44, 29,131,123,242,159,224, 31,255, 71,
+  8,145,146,214, 46,  4,108,191,192,249,123,119, 77,127,248, 63,255,240,111,190,234, 71,127,235,228,227, 39,  7,127,139,173,243,
+177,175,132, 45,201,195,102,198,118, 19,107,251,  7,150,121,255,  8, 42,211,240,169, 21,174,241,174,218,119,239, 16, 66,220, 94,
+187,238, 77,152,136,232,230,107,222,182,158,232,253, 16,194, 77,172,141,238,223,232,115,109,199,120, 87, 25,235, 45,124,221,217,
+218,199,183, 43, 82,124,146,129,207, 54,228,163, 65,131,  6,207,  5,166,238,  1, 12,  0, 88, 80, 81, 24,133,154,  7,157,153,234,
+ 11,222,247, 83,175,248,149, 31,126,237, 21,175,245,  5, 96,157,  7,202, 33, 66,127, 17,176,  3, 64,  7,152, 55,253, 18,228,254,
+235,215,190, 91,123, 55,212,165,111,129,152,121,  1,252,231,223, 11, 72, 71, 74,185,  0,108,191,192, 69,151,158,191,235,189,111,
+255,238, 95,127,227, 47,252,254,119,  2,248,202, 54, 51,245, 58, 33,223,148,118, 25, 66, 56,  8,224,  3,107, 48,133,253,172, 21,
+222,180, 74,180,117,204,173,  6,128, 67,156,162,245,158, 85, 44,  8,251, 65,169, 89,  7,216,156,188, 18,243,125, 15, 86,118, 45,
+196,231,186, 33,132,240,134,115, 56,222,229,198,122,103,195, 88, 27, 52,104,208,224,236,153,122,100,220, 37,191,234,138,181,186,
+250,121,217, 91,254,224, 39, 94,115,219,181, 87,238,185,220,246, 61,188, 43, 73, 51, 47, 45, 32, 28, 68,  2,232,111,121, 23,228,
+190,151,143, 46,214, 47, 44,238,122,248, 40,254,242,115, 79,226,244, 66, 31, 70,  9, 92,249,188, 25,124,243, 11, 46,192, 37,123,
+102,  0,  0,114,231,165, 16, 47,250,105,184,207,254,  6, 96, 52,201, 22, 82,194, 47, 13,240,141,215, 95,245,210, 31,252,166, 23,
+254,216, 31,252,229,125,239,196, 54,165,187, 49,195,187, 97, 66, 35,220,232, 53,110, 96,  6, 55,169,  1, 30,170,  9,  9,117,109,
+118, 63,170, 72,251,195,107,  8, 27, 31,168,105,214,119,212, 52,203,  3, 19,207,125, 83,  8,225,200, 10,133, 98,222,181, 12, 67,
+175, 95, 43, 62,219,129,101,198,113,174,198, 59, 59,193,208, 79,213,158,111,255, 54,158,149,131,107,104,238,103,179,175,182,220,
+253,210,160, 65,131,127,153, 16, 91,116,141,  0, 96,250,135, 94,187,231,231,254,243,119,127,237,219,118,116,178,188, 40,  2,  5,
+200, 21,  3,102,247,  0,202, 57,168,111,248, 73,168, 23,253,171,209,151,191,244,228,105,188,253, 79,239,197,103,143, 47,160,155,
+ 24, 36, 70, 82,  0,124, 89, 34,241, 22,223,250,138, 75,240, 51,175,191, 26,137, 38, 11,191,255,234,189,240,247,191, 15,232,236,
+ 70,236,210,170,147,  4, 15,124,241,241, 39,175,248,158,223,120, 19,128,207,129, 92,  4,171, 17,210, 91, 80, 43, 62, 35,132, 16,
+235, 32,188,147, 26,236, 27, 38,253,178,171, 85, 88, 99,191,239,221, 53,102,116,  4,192,205,203,249,118,151,209,110, 15, 11, 33,
+174, 91,229, 94,117,  6,124,243, 36, 83,224,123,127,160,198, 60, 78,  1,184,180,254, 57, 54,185,191,103,130,105,221, 56,233, 71,
+ 95, 69,243,222,182,241,174, 48,214, 35,124,207, 59, 38,215,106, 59,152, 98,  8,225, 65,140,251,237,175,219,164,149,230,206,  9,
+107,207,114,214,134, 35,188,150,183, 55,165,119, 27, 52,104,112, 46, 52,245, 73,134,126,201,175,126,207, 21,191,122,235,155,174,
+249,126,233, 53,138, 97, 73, 12,221,218,202, 56, 31, 60,176,251, 82,168,231,127,251,232,203, 79,206, 45,225,  7,126,231, 19,120,
+112, 96, 49,211,202,209,215, 10,137, 81,200,149,128,201, 18,  8,103,241,254,255,117,  4, 74, 74,252,155,131,215,144,198,190,247,
+ 69,240,143,236,  1,220, 18,160, 51, 64,  0,190, 40,112,201,165,187,247,190,229, 53,151,188,241,195, 31,127,232, 11,168, 50,228,
+215, 75,108,111, 89, 67, 67,155,100, 40, 55,111, 34,208,234, 61, 19,218,229,138,185,206, 66,136, 67,108,222,142, 26,233,129, 16,
+194, 77,107,248,195, 15,  9, 33,110, 92,225,122, 71, 66,  8,183,214, 24, 74,204,193,174, 51,196, 91, 38,152,202,178,121,248,181,
+103,187,251,105, 28,239,145,149,174,183, 77, 12,125, 50,190, 96,171,170, 10,174,228, 62,216,207,235,113, 75,  8,225, 57, 95,110,
+184, 65,131,  6,207, 12,166, 46,  0,136, 61, 93,117,253, 31,223,244,178,255,244,186,151, 92,240, 98, 59,  0,172, 40,  1, 63,164,
+126,108,137, 24,125, 50,148,125,168, 43, 94,  3,164,221,209,  5,254,253,127,255, 28, 62,245,196,105,160,219,197,201, 69, 11, 72,
+  7, 41,128,174, 18,184,184,173,113, 65,174,177,107,186,131, 15,254,175,  7,241,218,203,207,195, 75, 46, 62, 15,144, 18,242,194,
+215,194,127,254,247,129, 93, 23,  1,193,195, 11,  1,157,165,184,241,245, 47, 59,248,225,143, 63,244, 94,  0, 39,177, 49, 19,252,
+122, 75,198,222,142, 77,228, 22,215,106,139,215,181,218, 85,153,143, 16,226, 48,151, 38,189,165, 38, 92,172,198, 76,110, 94,227,
+122,135, 66,  8,135, 49,110,234,142,207, 55, 89, 42,245,182,213,158,175,246,108, 55, 61, 77,227,189,237, 92,153,168,121, 44,245,
+253,113,120,139, 74,  5,199,186,242,117, 51,126,189,  6,253,104,111,134, 16,246,175, 20,  7,209,160, 65,131,  6,117,108, 38,191,
+ 59,  6,197,117,222,122, 96,250,231,239,249,119,175,253,211,215, 93,189,247,197, 69,207,193,195, 17, 67,151,160, 10,114, 74,  0,
+ 90, 80,  5, 57, 45, 33,119, 95, 51,186,200,209,185, 30,254,224,211, 95,  1,178, 22,165,185, 41,  9, 40,  5, 15,137,185,129,195,
+103,143,246,112,247,209, 30,138, 32, 96,149,194,223,124,241,104,245,  0,221,139, 40,232, 14,150,159, 38,  0,214,227,202, 11,103,
+ 46,  5,112, 62,182,175, 81,205, 13,172, 69,110, 52, 64,171,206,224, 78,109,128, 41, 28,154,184,247,138, 12, 98,157,102,218,195,
+ 43, 60,211,193,  9,  6,187,158,231,187,227,105, 26,239,145,115, 85,127,159, 93,  8,147,230,242,179, 97,174,167,  0,220, 10,114,
+125, 92, 39,132,184, 81,  8,113, 91,237,117,163, 16, 98,  7,127,166, 46,180,220,196,130, 87,131,  6, 13, 26,108,169,166, 30,205,
+237, 23,188,237,219,246,253,202, 59,191,249,133, 63,161,188, 70, 81, 56, 64,121, 50,177,  7, 64,120,129,160,  4, 32, 37, 87,139,
+243,128,206, 32,218, 23,140, 46,244,212, 66, 31,189, 65,  9,180,179, 74, 78,136,186,181,164,250,177,199, 23, 75,220, 85, 88, 92,
+ 61,165,177, 48,176,213, 67,100,211,  0, 20, 48,236, 65,228, 93,  4,  4,192,149,184, 96,111,231,188, 52,145,123,135,133,255,194,
+  6,199,117,235, 42,239,237,103, 38,181,159, 53,168, 81,244,247,  6,180,197,131, 43, 48, 86,172, 67,187, 30,211, 26, 87,  8, 32,
+ 91,175,229,224,200, 42, 99,220,208,181, 38,159,237, 28,142,247,156,228,134,179,224, 54, 25, 59,112,235,217,228,166,243,119,215,
+ 83,236,230,182, 16,194, 33,140,187, 56,222,181,134, 32,213,160, 65,131,  6, 27, 98,234,  2,  0,166, 51,249,170,247,253,200, 85,
+191,254, 29,215, 94,244,106, 59,  4,202,196,145,102,238,  2, 80,  4,232, 84,160,239,188, 55, 16, 18, 90,142, 50,216,  5,  0,132,
+ 42,126,109, 54, 79, 32,141,129, 15,160, 90,241, 33,140,234,189, 35,  0,240,212,  8,102,161, 95,226,222, 65, 31,111, 49,245, 84,
+120, 15,132,  2,176, 67, 64, 76, 65,  8,170, 82,215,105,235,214,158,169,108,246, 43,199,123, 27,178, 64,172,199,103,201,126,213,
+ 91, 80,181,231,188, 19,192,122,131,165,234,209,205,251, 57,240,107, 51,152, 93, 69,  3, 60, 27,108,138,  9,243,103, 15,156,227,
+241,110, 59, 83,103,134,126,231,196, 56,110, 62,151, 29,250,216, 29,113, 43, 42,211,255,254, 16,194, 13,147,129,129, 13, 26, 52,
+104,176, 81,166, 30, 77,217,230,107, 47,206,190,239,143,126,236,218,219, 46,217, 51,125, 94, 49, 12, 64,166,136,161,151, 30,178,
+  8,208, 45,137,119,255,221,  3,159,185,100, 42,155,249,246,  3, 23, 94, 92,  4, 80,163, 23,161,128,114, 17, 97,225, 97,136,157,
+151,  2,  0,158,183,163,139,111,187,108, 15, 62,120,255, 49, 64,107,192, 10,170,251, 30, 27,192,128, 25,187, 16, 24,204, 45,225,
+202, 61, 83, 21,209,237,157,  2,  6,243, 64, 49,205, 31,246,  8, 85,104,156,196, 54,152,223, 89,123, 66,141,200,174, 39,120,109,
+ 57,230,180,145, 94,238, 79,  7, 78,109,193,103,159, 77,227, 93, 15, 67,191,245,105,106,185, 91,175, 98,135,103,211, 60, 54,104,
+208,224,153,201,212,163,185,253,188,159, 62,184,231, 23,223,249, 77, 87,255,111,211,121,154, 20, 30, 64,155, 53,231,194,195,120,
+160, 76,129, 95,250,255, 62,247,225, 95,251,243,175,124,240,195, 63,253,194,183,129, 10,191,145, 95, 93,  0,208, 18,225,196,103,
+129,175,185,158,153, 36,240,246,111,189, 10, 31,188,255,  9, 96, 80,  2, 73, 82,241, 98,199,119, 13, 30, 88, 90,194, 27,175,216,
+135,111,126,225,190,138,240,206,127, 25, 33, 12, 33, 92, 57,210,236,133,  8, 88, 92, 28,246,143,206, 15, 22,182, 81,123,186,141,
+171,155, 69,220,128,141, 71, 66, 31,193,230, 43,211, 61, 27,243,151,159,109,227,157,100,232,183, 63, 93,209,231, 66,136, 83, 19,
+193,141,  7,209, 52, 17,106,208,160,193, 38,153,186,  0, 32,148,196, 21,191,243, 67, 87,252,151, 31,121,229,165,111,116, 37, 80,
+104,  1,164, 10,240, 30,161,239,145,106,224,216,160, 24,252,204,127,187,231,119,223,255,201, 83,127,  4,192, 63,188, 48,124, 10,
+ 34, 92, 25,  2, 32, 34, 83,207,187,240,143,124,  2,234,202, 31,  0,218,187,  1,  0,215,125,205,110,124,232,230, 87,227,  7,222,
+123, 23, 22,231,  7, 64,150,145, 63, 61,  4,160, 44,129,126, 15,111,186,124, 47,126,255,167, 94,141, 52,154,223, 93,  1,255,192,
+159, 65,164, 25, 32,200,143, 31,188,  3,164,196, 99, 79,204, 31, 27, 20,254, 24,182, 47, 80, 14, 32,159,243,193, 26,145,221,176,
+246,245, 47, 44, 69,233, 89, 51, 94,238,198, 54,201,208,159,238,168,243,166, 16, 77,131,  6, 13,214, 13,185,  6, 83, 63,239,189,
+ 63,242,252,223,252,145, 87, 93,250,198,162,  4, 92, 91,  3,185,161, 44,240, 37,143, 52,147,184,239,241,185,167, 94,247,174,143,
+191,227,253,159, 60,245, 95,  1, 60, 12,224,241, 47, 29, 91,248, 34,164,  0, 28,247, 87, 81,  2,208,100,130,183,247,253,246,216,
+ 77,190,237,197,251,240,207,255,238, 13,248,213,183, 92,131, 23,205,166,200, 66,137, 41,233,240, 29,151,237,194,251,255,245,215,
+225, 67,191,248, 58,156, 55,157,143, 62,239,191,252,231,  8,167, 30,  6, 76, 78,109,219, 17,  0,235,  0, 41,240,197, 71, 79, 63,
+  2,234,179,238,159, 97,243,188, 82,212,249,179,253,249, 14, 62, 75,199,187, 18, 67,191,233, 25,198,208, 27, 52,104,208, 96,203,
+ 52,117, 92,181, 39,121,237, 91,175,126,222,245,182,239,129,174,  6, 18,  9, 20, 30,114, 96,161, 59, 18, 31,189,247,201,251,191,
+247, 61,159,254,143,167,122,254, 99,  0, 78,128, 26,189,100,127,245,169, 19,119,157,126, 83,241,163,221,118,162,189,103, 59,188,
+  0,208,106, 35,124,229, 31,225,103,254,  8,242,202,239, 31,221,231,162, 93, 93,252,242,183,188,  0,183,188,249, 74,156, 94, 28,
+ 66,107,137,217,118,122,198,243,248,199, 63,  1,247,207,127,  8,228,109,146, 58,164, 66,240, 30,194, 57,184,193,  0, 31,252,135,
+123,254, 39,168, 30,253,118, 50,245,205,248, 53,199, 76,168,219, 85,245,236, 44,112,164,246,124,235,234, 62,199,249,219,207,214,
+241, 62,155, 24,250,102,131, 24, 27, 52,104,208,104,234,227, 12,255,  5,251,242,203,219,169,129,247,160,232,246, 94,  9, 93, 88,
+ 32,  5,110,187,243, 11,135,222,244,238,195,255,246, 84,207,255, 13,128,167,  0,204,  1, 40,  0,148, 15, 28, 47,238,250,232,253,
+ 79,220,171, 52, 16, 56, 21, 77, 72, 50,197,139,246, 52,252, 63,255, 33,220,189,255, 23, 80,140,187,191,141,146,216, 61,157,159,
+201,208, 93,  1,255,192, 29,240,119,189, 19, 34,205, 32,148, 34,127,189, 73,129,178,132,146,192, 23,191,120,244,201, 15,126,252,
+145, 67,160,218,239,219,194,212, 39, 90,124,110,132,200, 78,166,137,221,244, 12,219,  7,245,231,155,229,114,166,155,213,210,159,
+ 13,227,125, 86, 48,116, 46,221, 59, 41,124, 53,104,208,160,193,166,152,186,250,196,  3,139, 95, 58, 81,148, 54,105, 75, 36,165,
+ 71,162,128,129, 10,225,103,239,184,231,143,111,253,127,143,252, 10,128,207,  0, 56,206, 26,122, 12,111, 43,  1, 60,245,159, 62,
+252,224, 29,253,210, 67,149, 22, 40, 61,105,235,177, 40, 77,187,139,240,208, 71, 97,255,238,103,224, 31,251, 24,208, 95, 65,137,
+ 27, 46, 32, 60,117, 47,236,199,126,  1,254,190,219,129, 44,  7,148, 38, 95,186,  0, 32, 52,196,176,  4, 84,192,187,222,255,241,
+ 15,  2,248, 50,223,127,203,153,122, 45,111,185,142,117,165, 23,113, 26, 82,157, 32,223,178,134,166,123,174,113,  7,198,125,183,
+183,172, 99, 46,110,121, 22,143,119, 37,134,126, 24,171,215, 44, 88, 83,232, 11, 33,220, 82,123, 29,156,152,179,141,238,183,122,
+ 80,230, 41, 52,121,234, 13, 26, 52, 88,  3,171,154,223,159,152,119,159,250,241, 63, 60,124,219,207,190,238,242, 27,102,219,102,
+250,254, 19,139,143,253,214, 95, 63,244,225,127,124, 96,241, 47,  0, 60,  1,224, 52,107,231,117, 38,234,  0,244,239,126,108,240,
+145,255,251,239, 31, 60,248,182, 55, 95,249,  6,183, 80, 80,241,153, 84, 85, 33,108,173,105,192,206,195,125,234,215,224,147, 14,
+176,227, 10,200,153,203,  0,149,  1,161,132,159,127,  4, 56,126, 63, 48, 56,  5,152,  4,104,239,168, 81, 60,  0, 94,  1,133,128,
+106, 43,124,228,175, 31,252,252, 31,254,213,151,254, 24,100,122, 47,183, 65, 59, 63,136, 51,251,139,159,194,198, 34,223,111,198,
+120,237,245, 59,185,205,232,161,117,220,255,  6,102,150,219, 18,112,198, 81,214,183,213,152,200,193, 16,194,123,150,211, 88,107,
+ 41, 95,179,207,214,241,174,194,208,223,112,150,110,130,253, 19,140,248,214,154,213,226,  0,215, 58,184,125,173, 92,243, 90, 27,
+221,250, 28,223,214,116,111,107,208,160,193,217, 48,245, 18,192,201, 15,221, 51,247,222, 15,221,115,247,157,  0,186, 32,191,249,
+147, 32, 83,251, 34,127,102,178,172, 88,236,183,254,228,173,127,244,192,187, 15,156, 63,125,201,245, 47, 61,255,178, 98,110,  0,
+ 49,157,  1,169, 24, 85,140,131, 49, 16,198, 80, 81,154,147,247,193, 29,251,244,232,114, 66, 42,106,216,210,238, 78, 80, 60,  0,
+133, 71,240, 41, 76, 98,112,228,129, 99,167,126,224,215,255,226,215, 89, 75,239, 99,141, 14,109, 43, 16,209,205,180,106,189,121,
+ 35, 68,150,171,165,221,140,170, 19, 90,100,116,135,152,240, 31,158, 96, 14, 81,152, 56, 80, 99, 16,219,137,219, 49,222,  6,245,
+ 38,214, 52,111,175, 61,219, 65,102,132,179,172,137,159,194, 10, 62,248,103,242,120,121, 92,203,185,  4, 62,176,129,173,112,199,
+ 38,114,215, 15,178,192,116,132,231, 96,185,218,239,147,173,114,  1, 42,  3,220,164,178, 53,104,208,224,172,152,186, 99,198,109,
+153,137, 75,254,223,144, 95, 14, 43, 55, 77,177,  0, 22,  3,112,223, 13,191,117,207,255,241, 55,111,123,197, 59, 95,122,249,174,
+231,149,167,  7,192, 84, 10,145,129,106,189, 71,173, 93, 40, 32,201, 87,207, 67, 11,  0,188,  7,134, 30,126,110,128,228,130,243,
+240,248, 19,115,139, 55,252,242,159,221,118,114,161,252, 88, 77,200,216,110, 28,102,134,190,225,160, 37, 33,196,237,181,  2, 54,
+179,117, 66,255,116,111,  4,214,214,111,100,237,122,255, 10,154,103,221, 74,113, 35,214,104,132,243, 76, 30,239, 50,216,168,123,
+224,208, 89,220,107, 63,214, 31,103,112,251, 57, 16,232, 26, 52,104,240, 28,129, 92,131,141, 90,144,191,252, 20,168,243,217,105,
+  0, 61,254,127, 88,227,187, 67,  0,115,167,122,254,239,191,254,215,254,233,237, 31,189,231,137,251, 77,162,161,230,134,240,167,
+ 45, 48,112,181,171,  8,142,144,159,120,197,154,240, 14, 64,225, 16,230, 28,112,178,143,100,199, 14,124,238,193,249, 39,223,240,
+115,127,242,142,123, 30,153,255,115,126,182, 30,182, 47,234,253, 16, 19,215, 27,185, 17,199,217,212,255,190, 29, 84, 94,246,118,
+172, 47,  7,249, 14,144, 41,123,219, 43,154,113, 83,152,235,214,184,215, 33, 80,219,211,195,207,246,241,158, 99, 68,127,253,122,
+247,206, 29, 32,119,192,205,141,217,189, 65,131,  6,235,166,227,219,124,125,  5,160,197, 90,218,213,191,240, 29, 23,253,248,219,
+223,120,213,183,206, 78, 39,218, 15, 61,156,150, 64,174, 33, 98,141,120, 89,123,156, 16,  0,  7,  4, 27,128,190,131, 44, 45,148,
+145,232, 59,224, 55, 63,246,228,223,189,253,247,238,126, 79,233,195,167, 80,165,210,217,103,227,  2,176, 41,120, 82, 75, 60,  2,
+234,110,118,232,105,124,174,104, 14,175,247, 68, 63,180,206,110,112,207,186,241, 62, 77,235,190, 31,103,198, 38, 28,  6,153,219,
+ 27, 70,222,160, 65,131,103, 28, 83,143,140, 61,  3, 48, 13, 96,239, 11,246,164,175,255,217,183,236,255,246,239, 58,112,209,203,
+119,116,181, 65,144,220, 19, 93,114, 49, 25,126,176,  0,200,224, 71,202,250,226,192,251,143,124,230,241,251,126,251,208, 67, 31,
+254,219, 47, 44,252, 37,128,199,216,114,208,127,182, 50,244,  6, 13, 26, 52,104,208,224,217,198,212,227,125, 18,  0,109,  0, 83,
+  0,246,238,153, 82, 47,121,211,181,179, 47,127,235,139, 47,122,217,213,207,155, 58,191,157,170,118,166, 69, 34,149,146,222, 33,
+ 12,157, 45,122,133,239, 61,124,116,225,216,  7, 62,251,232, 61,135,238, 62,117,215,  3,199,139,195,  0, 30,  7, 48, 15,242,161,
+111, 91, 78,122,131,  6, 13, 26, 52,104,208, 48,245,213,239, 37,  1,164, 32,147,124, 11, 20, 81,191,  3,192,158, 78, 42,118,182,
+ 19, 57,149,105,153, 20,206,219,197, 34, 44, 44, 12,252,  9,  0, 71, 65, 38,246,121,144,223,124,  9,107,  7,234, 53,104,208,160,
+ 65,131,  6, 13, 83, 63,135,204,221,176,246, 30, 95, 26,163,238,235,  0,107,224, 37,191, 10,102,228,182, 97,230, 13, 26, 52,104,
+208,160,193, 51,135,169, 79,222, 63, 50,249,248,179,206,212, 67,237,103,195,200, 27, 52,104,208,160, 65,131,103, 48, 83, 95,237,
+121, 26, 38,222,160, 65,131,  6, 13, 26, 52,104,208,160, 65,131,  6, 13, 26, 52,104,208,160, 65,131,  6, 13, 26, 52,104,208,160,
+ 65,131,  6, 13, 26, 52,104,208,160, 65,131,  6, 13, 26, 52,104,208,160, 65,131,  6, 13, 26, 52,104,208,160, 65,131,  6, 13, 26,
+ 52,104,208,160, 65,131,  6, 13, 26, 52,104,208,160, 65,131,  6,219,  4,129, 61,175,217,250, 34, 47, 90,  3, 66,  2,240, 64,105,
+ 55,247,253, 68, 87,127, 59, 13, 40, 11, 56, 15, 40,  9,244,  6,244,153, 86, 14, 72,  9,168,  4,176,  5,127,216,  3,189, 18, 40,
+  7,213,181, 52, 95,107,185,238,241,189,193,248,125,  1,186, 71,150,210, 24,116,  2, 20,  3,160, 40,169, 64,173, 50, 84,212,214,
+  6, 64, 11, 42, 96, 11,126,207, 76, 92,111, 43,231, 51,201,232,153, 92, 65,227, 21, 18,232, 47,  0,222, 80,155, 90, 33,168,170,
+254,206, 29, 84,131,207,228,128, 49, 72, 18,  9, 59,244,240,197,144,230,212, 91,160, 44,129, 84,  1, 75,  3,154,171, 76,  3,131,
+130,202,253,216,  1, 77,148,  0,215,241,243, 52,  7,174,160,255,235,  4,232,247,233,111,239,105,254, 61,207,173,231, 53,175,255,
+190,217, 61,240, 92,129,201,128, 96,129,153,157, 64,111,137,246,108,175, 15,180,218,192,226, 28,208,153,  6,138, 30,205,107,111,
+  9,176,150, 94, 43,237,131, 73,212, 63,107, 52,144,231, 64,210,162, 53,141,173,140,125,  0, 22,230,105,221,215,187, 63,205, 50,
+247,146,146,206, 96, 44, 17,117,182,235,218,158,198,107,191,241,117,176,222,227,227,247,223,143,235,175,123, 57,254,230, 31, 62,
+  6, 60,246,200,250,232,  2, 31, 61,132,101,230, 44,158, 25,  7, 58, 27, 40,  1,169,249, 12,243,103,138,193,242,115,189,218, 60,
+107, 13,  8, 77,103,221,215,104, 74, 81,123,  6,163,199,207,  5,106,159,117,126,229,245,173,237,153,214,129,203,209, 59,252,  0,
+221, 71, 27, 96,215, 14, 32,215, 64,223,  2,143, 62, 85,209,183,205,210, 85,111,  0,215,167,253, 56,183, 64,255,155,234,210,222,
+ 20,154,126,159, 59, 69,159, 47, 65,115, 39,  4,125,103,106, 22,152, 63, 69, 99,204,114, 96,137,247,181, 45,137, 86,187, 65,228,
+ 46,213, 62,153,234,  2,195, 33,128,100,252,125, 41,129, 97,  1,100, 93, 32, 12,137,174,197,249,137, 52,200,110, 19,253,168,207,
+ 71,233,137,214,217,115, 68,171, 76,  2, 76, 79,  3, 89, 66,180,183,215,  7,122,139,244,127,  9,162,245, 58,  3,242,  4,  8,142,
+190, 51,112, 21, 95,141,223,243, 30, 24, 12,  1,163,128,114,  8,244,  6, 80,232, 92,244, 43, 91,250,176,173, 12, 72, 83, 32,111,
+209,164, 41,193,197, 94, 55,208, 76, 77, 74, 98,172,163,191,249,187, 82,208,228,123, 87, 93, 79, 41,250,124,176,180, 11, 74, 15,
+ 12,123,213,119,149,  4,181,119,229,131,165, 38,238, 85,127, 54,239,233,149, 26, 98,222, 74,  3,174,  4,116, 74, 19,  8,  0, 90,
+ 86,125,225, 44, 19,139, 86, 27, 48, 18,232, 15, 55, 54,206,245,194, 51, 69,208,160, 69, 85,154,132,152,164, 69,  4, 36, 53,192,
+236, 20,176,107,  6,112,  2, 83,179, 83, 48,105,138, 78,150,224,130,238, 14,120,239, 48, 53,213, 69,174, 13,160, 36, 74,  1,122,
+ 86, 33,105,141,250,  5,207, 93,159,152, 75,176,192, 48,208,198, 42, 74,154, 56,157,144, 64, 16, 60, 80,  6, 90,131,200, 52,  4,
+ 63,151,102,  6, 34, 64,189,115,  3,175,153, 16,213,154, 42,201,  4,207,111,236,240,249,103, 97, 51,190, 52,  1,138, 33, 48,187,
+ 19,152,159,  7,218,109, 34,198,105, 14, 44,205, 19, 67,159,155,163,255,207, 47,  2,153, 33,162,178,220, 88,151, 99, 52,241,172,
+196,249, 84,  9, 49,245, 60,161,207,  7,150,215,149,166,125,235,  2, 19,214,117,158, 65, 81, 59, 35,  0, 93, 79, 73,250,185,209,
+ 51, 61,137,172,139, 29, 47,121, 62,190,233,107, 95,133,139,247, 93,128,151, 92,122, 25,222,255,145, 59,129,175, 60,180,194, 30,
+224,113, 56,193,231, 52, 16,109,241,158,247,151, 27,239,215,232, 89,184, 84,138,207,189,  4, 96,121,174, 34,  3, 14,203,143, 65,
+202,229,207, 96,100,  2, 44,171,142,209, 20,207,215, 29,209, 28, 81,123, 14, 81,171,149, 25,136,158,173, 50,117, 87,188,225,149,
+216, 55,179, 19, 95,125,224, 33,192, 11,192, 50,179, 49,  9,112,252, 36, 80, 22, 27,159,251, 52,161,123, 59, 79,175, 78,155,246,
+ 66,105,233,119, 47,233,186, 73,198,140, 98, 30, 80, 45, 26,160,183, 68, 19, 58,109, 98,220,253, 62, 48, 51, 75,243, 59, 24,  0,
+ 42,163, 57, 24, 20, 52,199,176,128,110,211,251,129,  5,127,107,137,150,  8, 79,239, 39, 45,154, 19,239, 42,250, 93,148,145,176,
+210,251,170, 70,147,207,246, 28, 74,162,125,240,174,198, 27, 52,205,111,164,175,194,159, 27, 58,211,202,136,191, 24,  3,148,142,
+133, 23, 71,124,211,243, 79,193,130,148,117,244, 25,235,129, 86, 90,209,135, 68,211,124, 13,150,104,141, 22,151,  0,153,  1, 58,
+217, 98,166,110, 52, 73,110, 83, 93, 98, 52, 89,139, 78,163, 47, 55, 38,213,155,154,150,113,198,225, 18,172,  9,242, 97,142, 31,
+ 19,146, 25, 78,  1, 56, 55,126, 64, 19,102,196,166, 38,221, 43,150,206,108,121,230, 61, 66,124,  6, 69,247, 25, 70,173,212, 19,
+ 97, 84,124,128,165,  4, 82,131,233,171, 46,198,174,189,187,177,112,114,142, 62,123, 54,139,109, 50,218, 96,126, 98,190,152, 38,
+193, 75, 34,208,146,159, 79, 25, 32,213, 64, 59,199,174,169, 41,116, 59, 57,164, 48, 72,117,130,221,121,  7,222, 58, 76,229, 57,
+  4, 72,152,203,146, 20, 62,  4, 20,142, 55,135,  0,109,144,193,128, 54, 84, 96,105, 80,  5,210, 10, 18, 69, 19, 82, 88, 34,144,
+195, 33, 63, 27,207, 63,226, 51,241,188, 26, 65,115, 36,248, 64, 11, 65,147,157,112,207, 30,  9, 18,178,228, 58,153, 66,212,140,
+ 20,191,140, 28, 95,223, 85,133,  0,205, 19, 23,173,  6,231,136,145,107, 69,251, 55,  8,160,219,  2,134,125, 98,220, 11,139, 36,
+  0,246, 23,128, 86,151, 24,123,183, 11,204, 47,208,153, 89, 92, 32,162, 90, 22, 43, 11,186, 82, 84, 47,  8, 98,108, 82,240, 61,
+ 19, 58,119, 73, 77,  8, 82,154,  9,153,160,121,119,229,218,243,183, 18, 99,139,140,125, 76,216, 92, 31,212, 75,175,193,171, 95,
+246, 82,156,127,233, 37,208,207,219,137,185,  2,248,142, 87,190, 12, 51, 59,102, 49,232, 15, 48, 59,211,197, 37,187,207,195,103,
+ 62,243,185, 51,247,126,212,108, 60,  0, 25, 42, 33, 67,177, 42, 39, 88,178,156,124, 30, 33,232,156, 71, 11,159,103,109, 76, 50,
+ 51, 89, 85, 75,183,227,170,120,156, 15, 85, 19,234, 77,100,232,188,215,189,171,180,244,184,255,227,125,227, 89, 17,188, 47, 86,
+153,187, 19, 65,224,171, 95,250, 74, 37, 80, 35, 16,253,156,155,  7,250,131,205,  9,196, 66,208,120,179, 22, 32, 12,208, 63, 13,
+136,132,158,211,  6, 32, 55, 76,163, 53,224, 11, 58,115, 66,145,130,212,105,  3,193,  0,253, 69, 64,166, 52,238, 97, 65, 22,132,
+194,  3,153, 34, 70,159,104,182,208,  1,240,  3,162, 25, 70, 19,225,113,172, 93,  2, 52,126,103,129,162, 24,127, 95, 37,204,244,
+ 37,189, 63, 44, 42,165,101,179, 86, 33,147,  1,157, 14, 41,153,138,133, 26, 95, 83, 18, 35,255, 48,252,203,122,206,198,217,162,
+228,189,165, 21,208, 50, 52,247,115,139,180, 62,145,127,132,  0, 36,105,197,144,132, 36, 75,155, 43,217,154,225,  1, 59,  4,172,
+  2,130,170,  4,131, 16,160,183,216,158, 65,147, 24, 15,134,  7, 61,116,232,210,100,174,151,225, 13, 61,153,146,213,  4, 97, 49,
+ 41, 49,190,222, 18, 96, 23, 43, 83,165, 94,197,100, 25,255, 63, 50,179,240, 97,140,230,150,149,190,211, 31,  2,166,164, 49, 56,
+ 95,227, 11, 44,185, 74, 77,  7, 63,  8,132, 16,112,108,105,  0,244,203,179,159, 63, 45,232,103,185,220, 56,226,125,217, 12,158,
+101,180, 49,243, 12, 59,186, 57,118,228, 45, 12,221, 16,137,202, 32,132,130, 11, 64,102, 52,156,  4,114,149, 96,105,232, 97,132,
+198,206,118, 27, 30, 14,189,185,  5, 58, 88, 96,169, 48, 97,105,189,112,244, 28, 33, 84,204, 48, 75,129,165, 97, 69,192, 38,101,
+174,232, 34,  1,152,241,250, 74,147, 49, 44, 17,103,220,183, 39,240, 26,219,117, 16, 36,157,215, 23, 13,  8,  9,216,231,177,242,
+119,172, 29,215,108,109,237,255,219,141,200,  7,140, 38,162,215, 27, 18,227, 94, 90,168,126,182,235,140,188, 79,103,100,105,  1,
+104,231,116,112, 53,239, 45,187,140,182, 88,103,182, 33, 18, 64, 79, 68,184, 45,201,173, 18,173, 37,245,253, 47,  5,237,219, 44,
+ 95,223, 57,156,156,195,213,204,254,107,201,  7, 47,185, 18, 95,187,111, 47,174,250,154,125,208,198, 64, 10,133,223, 93,248, 71,
+180, 90,109,244,123,125,120, 15, 44, 44, 14,177,184,184,  0,180,103,128,211, 79,158,121,145,200,152, 81,147,209,156,175,230,123,
+ 37, 39,162,243, 36, 16,148,182,178,210,149,126,229,207,215,199, 85,223, 75, 35,147,176,174,148,131, 58, 61,113,252,249, 96,  1,
+175,171,117, 26,185,168,252,184,213, 99, 53, 28,121,164,114, 97,214,233,206, 70,247,175,214,192,142, 61,192,220,177,138, 65, 58,
+144,146,165, 88,200,142, 90,184,101,197,  8, 69,181,238,129,191, 19, 21, 31, 33,129, 84,  0,133,  1,100, 73,230, 96,128,172,122,
+138,207,169,244, 36, 72,150, 53, 58, 16,215,173,176,149, 18, 81,176,229,161,254,126,152,120, 63, 77,170,239,109,202,  5,204,252,
+103,166,195, 22,137, 41,114, 55,198,131,101,249, 30,113, 47,157,141, 66,182, 25,198, 94, 12,137,142, 11,144,176,191,180, 64,252,
+ 45,142,185,100, 26, 17, 93,174,174, 32,  1,107,169, 79,251,201,150, 68,  3,134,  5,241, 93,222,151, 91,167,169,107, 77,230,129,
+118,206, 27, 56, 84, 62,184,192,155, 82,201,117, 74, 92,158,181, 80, 81, 17, 74,161,201,  7,209,105,209,239,118, 88, 73, 85,107,
+ 73,174,241, 96, 73, 65, 23, 11,108,118, 91,237,144,120, 71,207,106, 45,253, 46, 88, 43,138, 38, 35,207,215, 45, 74, 12,143,158,
+130, 59,118,146,124,116,103,101,233,144, 44,233,218,149,205,155,237, 46,155,  1, 19,250,188, 80,232,116, 50,236,105,229,  8, 65,
+ 32,211,  6, 65,  8, 40,  8,116,187,109, 20, 69,137, 92, 75, 88,235, 96,164, 70,225, 75, 88, 31,224,124,192,208, 89,146,136,123,
+  5,141,175, 28, 18,179,141, 82,171,103,198,238,  1, 12, 29, 32,108,181,150,214,146,164,169, 36, 19, 75, 95,249, 15,203,104,170,
+ 21,100, 85,128,228,107, 50, 69, 43,216, 60,191,218,218,141, 76,157,178,230,152,148, 36, 56, 24,189,242, 62,138,102,210, 51,172,
+ 28,231,128,161,167,124, 64, 61,107,145,214,  3,121, 70, 26, 87,194,254,208, 84,  1, 69, 77,115,239,228,180,111,146,148,215,193,
+144,182, 82,186, 51,173, 87, 62, 48,115,246,164,237, 40, 65,231, 43, 18, 92, 35, 73,106,183,174,102, 45, 96,247, 72,159,199, 63,
+236,173, 95,235,153, 20, 34, 54,193,208,209,202,112,222,197,123,112,253,181, 47,133, 84, 18, 40, 61,172,183,184,176,211,193,253,
+143, 63,134,233,172, 13,231, 28,250, 75, 61,220,253,224,151,113,242,209,199,136, 67, 78,238,139,145,182, 43,170,222,142,163, 88,
+ 14, 63,238,243,142, 46,  9,107,137, 70,200,168,197,176,150,166,  4,  9, 79,235,177, 86, 76,154,127,101, 77,217, 40,121, 93, 74,
+ 95,249, 61, 71,123,149,233,159,175, 53,152,148,172,109,173, 71,211,246,172,249, 59, 55,238,110, 92,139,  6,207,204, 18,109,112,
+ 14,216,247, 60, 96,182,  5, 28, 63, 77,174, 29, 37,137, 49,200, 26,141,147,129,253,177,108,  5, 17,146,155, 91, 74, 87,209,197,
+  0,  0, 32,  0, 73, 68, 65, 84, 91, 64,164, 76,135, 44,157, 99, 33, 88,160,103, 97, 74,176, 98,148,105, 32,176, 63,221, 59,154,
+223, 44, 39, 70, 21, 93, 36,142, 77,198,113,191,134, 64, 52,192,242,121,174,191,239,253, 72, 97, 66, 89,174,233,174, 88,214, 85,
+  3, 73, 99, 73,216, 21, 21, 45, 36,139,189,113, 75,144, 96,186, 20,194,185,119,241,149, 76, 67,  3,211,222,162, 36,  6, 45, 37,
+173,137,  2,209,144, 52,231,253,164,200,162, 42, 68,245,188, 49,158, 42,225, 88, 51,200, 45,212,212,173, 37, 77, 53, 41,136,185,
+199,255, 73,150,  6, 53,  7,119,181,176,190, 96,157,178, 32,115,162,103,102, 23,253,231,  0,153,155,149,220,216,243, 45, 43,133,
+105,140,205,192,106,196,202, 90, 18, 38, 34,145,140,140,119,181,192,166,141,162, 55, 24,215, 16,150,115, 75, 56, 75,139,108, 12,
+187,  9, 36,178,212,160,231, 45, 90, 82, 35,176, 58,210,110,231, 80,  2,104,165,  6, 67,235,160,181,198,192,150,104,235, 12,115,
+ 69, 31, 74,177, 25, 63,106,124,182,168, 44, 23,253,146,214, 48,176,198, 62, 12,204,208,253,153,166,225,146, 41,171,172,153, 42,
+ 13, 31,170,210,159, 25,195, 80,128,  2, 13, 97,104, 44,171,238,129, 72, 68,121,190,181,  1,116,151,168,121,137,229,131,133, 38,
+ 25, 58, 91, 20,105, 78,129,181,205,  3,103, 33,212,250,154,181, 31,  0, 18, 67,218, 76,198, 65, 44,194,144,116,173, 13,249,194,
+ 90,  6,152,103,159,122, 57,164, 57,239,245,105,223,235,  9, 70, 53, 50, 33, 79,104,161,163,128, 70, 11, 68,119,121,167, 13, 12,
+248,187,169,168,108,196,253,254,198,181,158,209, 51,212,230,114,131,152,210, 64, 49, 24,192,  7,192,200,  4,195, 65, 31, 90, 73,
+ 28,190,235,203, 16, 65,160,103, 45,180, 82,120,224,190, 71, 72,123,145,171,156,109,137, 51, 25,108, 60,219, 90,147,127,119,  4,
+ 14,132,115,254, 76,237,125, 61,150,155,229,222,183,182, 90,  7, 35,171,253, 20,233, 81,253, 94,206, 87,110, 65, 37,207,124,142,
+173,222,127,251,158,135, 23, 92,121, 41,250,118,128,135, 62,241, 89,224,241,199, 89,144, 40,128,192,227,205,178,106, 14,163, 11,
+ 82,241, 89,106,101,180, 63, 18,205,214,194,  1,187, 18, 88,115, 22,236, 62,163,224, 30,214,204, 19,118,201,241,225, 46, 11, 64,
+118, 56,182, 74,  0,105, 27, 56,122,188,178, 52, 90,  0,130,125,240,138, 15,203,136, 31, 88,114,  9,196, 56, 40, 36,213, 26, 70,
+235,213,228, 17, 54,186,218, 20,161,224,247,116,165, 28, 14, 88, 27, 78, 21,157, 69,233, 55, 47,160,110,194,240, 10, 68,107, 15,
+206,124,118,128,207,100, 89,173,143,201,128,225,128, 20,132, 97, 65,214, 12, 45,136, 38,179,177, 18,185, 33, 75,114, 12,236, 75,
+ 59, 52,239,173,108, 27,  2,229, 70,129, 41,178,242, 61,  7, 79, 27,194,241,131, 75, 54,189,174, 71,244,138, 82,148,247, 85, 48,
+138,102,230, 55,100,191,143, 97, 13, 92, 49, 99, 89,175,251, 84,235, 51,163,225,253, 26, 95,150,158, 36,167,250,207,237, 56,167,
+ 43, 73,140, 89,194, 17,145, 45, 54,141, 11,200,156,152,119,106, 20,  0,129,194, 23,232,152, 12, 50,  0,105,150, 34, 75,114,136,
+  0, 72, 41, 49,180, 14, 18,  2, 65,  6, 72,225,177, 48,191, 68,146,112,105,129,254, 82,229,187, 73, 21,109, 44, 40, 58,216, 90,
+179, 84, 30, 38,226, 21,216,159, 43, 88,155,143, 18,111,124,  9,144,214,168,120, 95, 68,134, 94,128,136,247,106,218,146,143, 26,
+  0,  7, 57,  6, 73, 17,182,237, 22, 73,223, 74,  2,189, 30, 61, 91,183, 11,236,222,197,153, 10,110,124, 13,235,107,236,183,241,
+  0, 75, 89, 89,150,  0, 10,232, 18, 28,116, 89, 14,137,145,  7,102,232,195, 33,141, 97, 56,  4, 90, 45,142, 56,102,243, 90,150,
+ 80, 20,108,180, 56, 24, 38,160,137,170,  2,212,140,162,117, 80, 81, 19,172,197,130,104,205, 62,182,232, 35, 68, 21, 92, 51,236,
+175, 79, 67, 93,201,173,128, 13,134, 38,180, 50, 96,215, 30, 20, 74, 96, 71, 42, 49,219,157, 70,175,223,199,112, 56,196, 35, 39,
+158,192, 87,189,  2,144,225,248, 98,129,199, 22, 22, 17,220,  2,176, 56,207, 22,  9,185,178,182, 94,223, 99,117, 31,169,209, 36,
+240,107, 65, 86, 38,189,134,185,123,179,154,153, 16,149,229,174,100,171,100, 12, 68,  4,107,159, 49,  6,194,251,241,159,194,173,
+ 62,135,209,  7,190,209,224, 80,182, 40,236,190,232,124, 60,126,122, 14,229,227,199,198,227,139,226, 53, 11,214,  4, 93,180, 90,
+ 70,171,130,169,  4,112, 41,232, 25,139,130,246,111, 12,246,147,130,104,133,103,  6, 26,216,109,167,  2,251,231, 29,199, 33,149,
+ 64,154,209, 61, 74, 14,128, 83,134,232,129,209,116,246,133, 96,166,165,232, 59,153,193, 40,235, 70,  9,122, 30, 25,  5, 83, 67,
+180, 57, 97,  6, 30,199,164, 65,  1,117, 41,251,255,163, 79,124,204, 69,  5, 14,238, 27,112,180,184, 59,119, 26,185,172,187,  2,
+153,183,248,101, 92,133,214,210,217,215,154, 63,227,121,252,188,215,250,253,138,255, 69,225,220, 59,162, 21,146,227,159,134, 44,
+ 12,155,214, 22,251,212,173, 37,127,183, 97, 34, 54, 23, 72, 75, 25, 29,  6, 11, 12,  2, 75,253,122,121,173, 73,235, 74, 18,206,
+ 19,250,136, 97,166,141,  2,152, 31,208,134,105,165,181,168,245, 80,105, 17,253,130, 36,154,224,151,247, 75,174, 37, 89,173,246,
+121,187,194,207,115,  5, 15, 34, 30,253, 62,208,109,211,191, 74, 15,159,  1,131,210, 67, 25,137,212,104, 12,220,  0,185,153,169,
+132,217, 76,163,191,216, 67, 22,  3, 47,250, 22,214,  7,154,183,  1,175, 89,180, 20,104, 13,244, 44, 75,125,156, 98,177, 82,234,
+ 79,157, 48, 46,231, 67,140, 38, 80, 37,233,160, 75, 77,218,100,212,250,215, 66, 97, 89,171,103,159,125, 61, 69, 40,254, 34, 52,
+208,237,208,181, 91, 25,153,176,173, 29,215,210, 55,169, 97,110, 92,163,173, 91,144, 60, 73, 48,145,161, 23,236,124,237, 15,129,
+ 60, 37,201, 59, 79, 41, 29,168,157,147,175,207,104,122, 63, 30,246,186,102, 94,122,118,207,248,113,173,189,230,213,128,  4,125,
+127,116,222, 98, 90,105, 56, 55,155,181,126,118,101,130,233,107, 46,195,193, 43,246, 99,110,176,132,196,164,120,228,241, 71, 49,
+ 40, 29, 74,239, 48,191, 20,240,245,151, 92,134,157, 83,211, 72,211, 20,206, 14,241,240,241,199,240,201,197, 62,249, 22, 87,242,
+111,174,166, 89, 41, 89,  9,142, 81,120, 92, 78,131,158, 36,170, 27,213,190, 70,230,247,154,149,106,228,  6,169, 89,139,226,255,
+198,126,174,131,200,104,156,233,203, 95, 15,230, 23,240,249, 79, 28, 30, 79,233, 93,110,204,206, 87,154,178,226,179, 37, 11,182,
+126,121,178, 18,  9, 73, 90, 99,244,141,215,253,225,206,  3, 34, 39,191,186, 47, 57,162,190, 95, 99,218,158,211,109, 65,138, 92,
+ 89,140, 91,179,226, 62,137,231,101, 56,160,207, 37, 28,135, 98,107,251, 85, 72,122, 62, 88,142, 51,146, 53,134,206, 86, 25, 27,
+170,207,198,185, 23, 53,247,137,139,238, 87, 22,114,207,  5,162,101, 65,215,246,173,214,213,218,142, 89,193,106,207, 28,  5,115,
+233,  1, 47,145,188,232, 82, 92,123,241,101,248,167, 79,126, 10, 56,122,146,206,115,156,191,222,128,180,244, 98, 80,155,211,114,
+ 27, 82,218, 60, 75,127,253,  1,105, 42, 34,  0,150,165, 88, 23,216, 68, 51, 65,100, 12,107, 36,210,  0, 45,246,129,228, 44,133,
+228,156,171,151,179, 79, 40, 99,115,132,214,100,222, 20,138,222, 51, 28,138,106, 20,249, 41,140, 33,237, 78,196,136,225,154,228,
+191, 90,  0,208,102,165,184,115,145,118,165, 36, 77, 91,150,179, 79,209, 67,182, 51,132, 32,209, 74, 21,180,148, 80, 80,200, 84,
+ 10,201,129, 34, 89,146, 99, 80,150, 48,198, 64, 72,  1, 91,150, 72,147, 20, 71,142, 31, 39,237,188,215, 35, 51,187,117,227,254,
+195,232,119, 93, 77,178,141,140,187, 30,225, 43,196,184,176,229,125,165,157,196,148,184, 98,184,126,191,226, 72,152,  9, 64,193,
+154,144,240, 64,191,199,254, 39,254, 92, 98,104,147,187,  1, 89,130, 38, 92,241,180,221,182,112,125, 76, 50,158, 30, 19,  5,155,
+122,154, 95, 80, 85, 10,149, 49, 52,110,149, 82, 60,136, 76,232,103, 43, 35, 77, 93,165, 36,236, 56, 87, 17,128, 24,157, 27,153,
+118,212,202,  3, 11,119,  8,227, 65,113,129,231,167,180,100, 73,114,172, 37, 57, 54, 65,151,229,246,237,205, 52, 33,107,140, 96,
+141,238,210,139,241,154,253,251,208,233,182, 48,219,157, 69,112, 30, 15, 28, 63,137, 79,125,238, 49,156, 14, 22,179,173, 14,118,
+118,102,113,222,238,243,176,115,231, 44, 90,211, 83,104, 67,195,230, 10,199,164,165,  0,194,141, 70, 34,  7, 94,107,167,136,120,
+ 75,201,209,242, 28,139, 16,194,230, 77,175, 87, 93,138, 87,188,250,149,120,252,203, 95, 97,203, 17,223, 43,212,180,116,137, 42,
+214, 33,132,181,125,245, 43,  9,238, 82, 87,214,192,141, 98, 88,172,108,145,138,231, 91,202,202, 37, 19,  2,113, 58,231,201, 26,
+ 20,221,114,222,113,160, 91, 12,126, 85,100,253,136,103,200,179,175, 95, 71, 75,105, 66,239, 69, 11,192, 40,138,155,173, 68, 25,
+167,202, 37,170,218,139, 49,230,202,123, 32,105,115, 44,  9, 31, 86,193,177, 10, 66, 87,227,137,181,  1, 50, 14,248, 27, 22,108,
+253,144,149, 37, 46, 94, 87,240,218, 72, 89,179, 90,249,181,231,127, 43,249,160,175,107,235, 76,136,150,219,115,245,117, 25,101,
+ 35, 13,  1,239,144, 95,188, 23, 74,120,156,252,194,131, 85,182, 82, 60,235, 49, 35, 75, 73, 10, 34,239,245,  0, 41,183, 73,127,
+169, 75, 34,214,  2,105, 12,146, 67,165,161,197,232, 68,112,128, 79, 98,104, 80, 90,147,175, 49, 58,125,234,135,177,157,210,  6,
+ 44,107,  3, 75,217,228, 34,  2,144, 43,192,114,238,159, 99,194,103,153, 72,150, 49, 10,118,139, 35, 28,235, 38,148,237,198,176,
+224, 40,244, 69,  0, 29,192,  8,120, 59,132, 85,  2, 11, 67,  1,151,  2,169, 73, 49,176,  5,218,121, 27,153, 49,176,174,207,177,
+ 85, 30, 90,  8,132, 52,193,241,185,121,168, 68,193,249, 64,115, 50, 55, 87,153,122, 67, 77,197,181, 27, 12,168,170, 23, 38,169,
+ 23,141,152,244,101,215, 53,144,181,180,145, 40, 92,148,236, 35, 29, 44,156,185,215,230, 23,232, 85, 87,167,108, 93, 61,183,103,
+191,198,209, 55, 42,216, 71, 89, 22,227,207, 30,247,150,224, 98, 51, 66,  2, 97,192, 41,101,236, 75,207, 83, 50,147,165,172,169,
+171,148, 35, 94,185,232, 71, 50, 17,185, 63,233,163,143,130,157,243,227,154,123, 56, 71, 62,194,245,104,232,140, 61,179, 93,236,
+236,182,  1, 72, 12,122,125,  8,157,226,138, 93, 59,240,249, 47, 62,137,249,185, 30,220,244, 78,204, 78,119,209,233,228, 40, 16,
+208, 73, 18,228, 23, 93,136, 52,203,161, 80,226,190,167, 78,110, 60, 26,217, 70,127,112, 89, 17,241,122,116,181,192,250,162,207,
+151, 67,223,226,177,147,199,198, 93, 58, 30,103,186,240,228, 50, 86,129,245,222, 55, 42,241,147, 62,228,205,248,114,237,106, 26,
+ 36, 42,223,178,146,149,191, 28,168, 50, 42,100,140,137,225,224,221,200,220,125, 44,188,227, 41, 47,186,228,232,249,122, 16,109,
+116,189,196,115, 27,153,176,170, 69,195, 39,181, 40,239, 52, 97, 87,138,102,193,150,231, 75,129, 76,240,162, 46,160,179,230, 31,
+179,153,172, 37, 97, 64,162,218, 47, 49,248,110, 50,142,226, 92,159,  9, 76, 88, 92,244,132,159,125, 57, 30, 98,146, 42,198,192,
+104, 44,222,125, 63, 30,168,143,181,174,  4, 71,  1,101, 88, 80,102,209,182,248,212, 87,130,115,149, 47, 38,  6,183, 36,138,136,
+ 91,154,176, 54,158,210,207, 78, 70, 82, 93,146, 80, 68,112,167, 77,154,122,150,144, 86,158,166, 28,136, 39, 41,114,216,129, 52,
+243, 68,115,254,163, 35,255, 76,  2,146,250, 18,195, 26, 61,136,241, 27, 93, 85, 71, 91,205,180,183, 94,205,219,251, 42, 29,218,
+215, 14,213,182,237, 33,174,118, 17,163, 84, 11,139,144,103,108,153, 87, 72,165, 66, 98, 12,116,106, 80, 12, 75, 20,195,  1, 68,
+224,200, 79,  9, 44, 46, 45, 65, 74,  9,143,128,254,226,  2, 11, 64,156,131, 30, 56, 90, 84,200,113,115,250,122, 24,250,114,154,
+201, 74, 69, 84,162,105,172,158,123,189,165,146,115,221,  1,124, 22,215,141,218,120,244,151,135, 64,204, 57,203,106,126, 83,206,
+179,245,158,133, 34, 22, 34,149, 34,138,166,162,166,193,133,104,178,148,211, 37, 13,229,  3,231, 45,250, 59, 73,201,135, 89,183,
+126,104, 78,  1, 84,130, 52,160, 80,211,204,117,204, 44,169,105,134,246,105,170,220, 23,235, 74,  4, 54,183, 66, 98,169, 44, 48,
+ 61,211,197, 84,154,194,100, 41,138,126, 15,255,124,236, 73,156, 56, 49, 15,184, 18, 75, 18,184,124,199, 94,152, 36, 67,107,170,
+133,150,209, 16, 70,192, 11,131, 86,218,133,106, 39,120,234,248,137,141, 51,246, 80, 99,230,113, 79,202,122,142,120, 88,249,172,
+215, 35,231, 39,247,227,233, 57, 44,124,229,171,172,157,170,106, 91, 69,159,180,168, 49,143,229, 74,108,136,117,156, 13, 95,123,
+150,141,158,135,250, 24, 48, 49,134,169,221, 85, 65,174,120,109,231,200, 87, 29,159, 57, 97,230, 46,153,134,198, 26, 32,138,  9,
+155, 81,100,  1,203,100, 37, 80,186, 88, 72,166, 22,189, 30,239,233, 10,218,251,157, 46,237,113, 25,200,130,162,216,106,226, 60,
+199,219,200, 90, 96, 28, 75, 69, 90, 18, 51, 15,181,245, 84,236,231, 87,158,252,243, 96, 33,210, 22, 85,150,192,164, 53, 36,106,
+235,126,157,180,105,171, 53,117, 41, 43,139, 75,100,220, 30,203,199,138,140,206, 18, 91,187, 12, 71,236,151, 37,205, 65, 89,146,
+ 59, 68, 49,115,137,149,  9,227,184,173, 37, 30,155,118,206, 17, 83,143,155, 78,178,223, 67, 73, 98,206,221,156, 24,238, 84,135,
+ 24,181, 49, 80, 51, 83,  8, 82, 35,105,231,208,105,138, 60, 53,208,218,160,155,182,144,167, 41,188,210,104, 39, 57, 84,150,192,
+123,  9,145, 39,  8, 38,173, 22, 50,230, 54,  6, 80,192,151,102, 63, 81,158,112,  0,142, 34, 98,109,125,149, 86,101,237,120,144,
+156,201,200,156,148,242,225, 88,206, 12,168,107,135, 16,190,242,219, 70, 62,178, 93,140, 61, 10, 17, 14, 52, 22,235,128,225,  0,
+161,221,  6,124,128,215, 64,110, 52, 92,225,144,153,  4, 74, 25, 88, 81,194, 59,135, 65,105,225,157, 71,225, 28,158, 56,117,154,
+221, 36,108, 10, 86,160,181,136,135,204,121,170, 78,182,158,192,146, 72, 40, 70,102,164, 85, 76,135,145, 97,197,234,100,145,216,
+ 10,241,204,170, 26,167, 57, 63, 55,237, 96, 20,188, 34, 36,  9,140,165, 37, 33,211,113,174,104, 12,228,209, 76,120, 50,195, 65,
+115,108, 41, 50,138,136,143,228, 50,191, 50,173,254, 14, 37,125,182,232, 85,135, 63, 30,110,128,138,126,  4, 22,226, 66, 32,226,
+ 56,202,215,230,128, 48,241, 52,165,228,140, 24,150,160,241, 75, 84,197, 67,164,196, 87, 37,112,225,142, 14,230, 22,231,113,124,
+241, 20, 62,251,232, 81,224,216, 34, 48, 40, 81,218, 18,143,244,150,176,167,221,198,212, 84, 23,202, 72,244, 22, 29,164,  1,118,
+ 77,207, 32, 19, 45, 12, 18,133,147, 39, 87, 96,236,145,  1,215,199, 60,242, 77,178,107, 34,254,172,  7,214, 45, 87,177, 47, 22,
+154,138,230,231,181, 82,111, 99,208, 88,168,107,237,126,252,250,171, 69,240,175,154, 74,235, 55,185, 87,107, 26, 97,140,101,137,
+140,254,188, 61,180,215,  6, 75,227,  2, 64, 20,198,227, 94, 83,181,160,227,193,144,246,117, 97, 57,232,149, 43,174, 41,158, 83,
+235, 72, 16,136,174,174, 24,180,  8, 84,  1,109, 49,157, 44, 97,166,109,251,204,240, 57, 61, 51,225,243,161,146, 90,234, 28, 11,
+ 16, 37,187,173,130,160,152,170,146,105,170, 54,236, 94, 77, 86,175, 56,183,234, 26,216,237,175, 69, 85,103,226,245,245, 89,203,
+244, 31,  3,253,226,126,205,146, 42,200, 50,102, 41,197,191, 77,139,232, 73, 43,163,201,145,150,178,126,207,154,169,155,140,152,
+179, 72, 43,226,183,156, 36, 47, 88, 59,207, 18, 96,166, 77,149,182, 50,174,246,147, 25,116,186, 29,228,173, 14,114, 99,176, 51,
+107, 97, 42, 75,208,209,  6,157, 36,195, 76,146, 34,209,  6,221, 36,135, 16,192,174,164,141, 60, 49,112,240,152, 78,114,104,101,
+ 16,180,132,206, 18, 56,161, 72,147,213,236,207,148,236,103,151,236,227, 28,153,255, 85,149, 11,238,107, 26,157,166,234,108, 84,
+ 25,140, 75,163, 46,119,192, 71, 49, 47,190,182,112,181,107,216,237, 76, 95, 81, 76,200, 11, 10, 18,113, 14,232,247,225,124, 64,
+222,201, 81,  6,139,174, 78, 33, 37,112,122,176,132, 84,165,152, 31,246,161,  4,105,232,167,250, 75,176,206,195, 45, 46,144,134,
+ 88,122, 46,183, 91,115,119,104,205,230,102, 93,229,247,110, 84, 81, 94, 73,171,243,126, 60, 37, 49,154,228,156,123,230, 48,116,
+128,181,236,146,230, 58,106,206, 46, 70,168, 70, 77,198,208, 70,208, 44, 61,199,207, 12,122,148,122, 40,234, 46,132,  1,205,113,
+209,103,237, 62,212,222,175,229, 68,143, 42, 42,178, 85, 35,136, 42, 71, 56, 75,168,138, 84, 98,232, 25,158,183,  7,152, 91,170,
+245, 62,136,230,240,132,204,158,144,103,250,254,183, 67,208,204,116,205,204, 44,  1, 55, 64,120,226, 36,190,252,197, 35,120,232,
+ 75,143,224,241,135,143,  1, 39,231,200, 26, 81,246,129,211,115, 40,150, 22,240,144,243,152,209, 41,132, 76, 32,181, 66,158, 25,
+ 12,134,  5,138,210, 98, 74,165,184,127,176, 72,197, 54,234,193, 86, 53, 98, 45,164,164,151,247, 16, 35, 66, 30,234,106,116, 37,
+ 68, 46,199, 52, 71, 74,128,172,162,191, 29, 87,251, 90,105, 63,142,238, 17, 42, 97, 52,230,164, 79,  6,142, 46,251,253, 45,204,
+154,169, 51, 12, 37, 43,237, 91,212,202,212,206,159,174, 24,122,125, 14,116, 45, 98,220,203,170,250, 94, 96,229,199, 57, 14,238,
+146, 20, 35,101,244,184,245, 35,230,154,199,223,163,198, 62,138,223,224, 10,135, 78,208, 30, 44,152, 94,106, 95, 41, 63,138,149,
+147, 80,144,165,214, 59, 18, 20,180,167,136,122,237,171,  2, 63,224,115,161, 76,229,215,183, 88, 61,134, 96,108, 29,248,156,217,
+115, 32,252,142,197,111, 69, 43,181, 92,159, 53,205,232, 42, 54, 32, 86, 51,141,213,248,164, 98, 43, 96,168,  2,228, 98, 28, 69,
+214,  1,236, 86,  4,202,237,216,  9, 76,119, 41,221, 40, 36, 36,225,141, 24, 36,251, 64,  4,  7,190,181,217,148,222,105,115,  4,
+123, 11, 59,166,167,208, 54, 45,116, 76,130, 78,146, 99, 38, 75,161, 32,161,165,161, 84, 45,157,162,163, 83,104,109,  0,  8,236,
+109,205,162, 95, 14,161,164,196,116,210,130,112, 64, 46, 53,118,152, 22, 44, 60,114,147,194,  9,  1,167, 98,105, 82, 84,126,161,
+ 36,154,149,  5, 73,122,193,115,128, 29,170,  3, 28, 43,129, 73,206,135,177, 97,101, 63,124, 93, 35,151, 53,230,190,221,146, 96,
+ 12,166,138,229,  6, 93, 73, 11,172, 12,250, 58, 65,158, 26,204, 23,  3,180,148,129, 86, 26,189,114,  0,  5,137, 94, 89,160,231,
+ 10, 44, 21, 67,244, 23, 22,105,124, 67, 75, 25, 10, 69, 96,169, 56,169,  2,208, 16,106,105, 44,203,104, 55, 70, 19, 97,208,106,
+109, 77,123,100,218, 20,227,129, 43, 81,235,113,254,220,  4,176,172,  7, 89,194, 37, 43, 89,160, 41, 89, 27, 47,125,165, 45,107,
+ 54,123,167,  6,163,200,220,140, 45, 64,142,211,134,162,115, 83,166,156, 26,  8,210, 76,226, 26,198, 26,225, 10,227, 65,108,130,
+ 53,126, 17, 53,164,218, 30, 11, 92,200,135,215,235,  5,215, 93,133, 99, 71, 30, 27, 39,108, 74,146,245, 37,112,160,216,185, 48,
+203,199,234,129, 34, 84, 65, 84, 49,101, 42,112,122, 31, 64,251, 52,174,243,176,128, 91, 42,241, 72,217,199, 46,157,161,213,202,
+160,180,198, 82,111,  8, 95,  6,244,122, 61, 40, 25,112,162,  4,196, 96,  8,161,  0, 17,  2,164,146, 16, 33,140,106,208,  8,128,
+152,122,252, 41, 37,  4,107,233,228,117, 11, 92, 90,194, 46, 47, 32,123, 89, 85,153, 68,168, 52,214,114, 29,  1,103,129,131,126,
+203,  9,139,214,106,154,226, 86, 50, 21, 89,115,149,229, 25,144,228, 36,168,  7,199,251,112, 21, 55,162, 99, 87, 66, 81,210,254,
+ 81,156, 50, 26,216,106, 81, 63,247,169,161, 57,137,150,167,  1, 23,255,138,166,124,239,171,207,215, 83,173,  6,158,175, 63,172,
+138,214, 40, 78,145, 21,204, 27,130, 37,174,237, 74,178, 76,105, 95,179,160,138, 42, 64, 46,240,254, 23, 92,156,204, 59,122,238,
+213,148,129, 49,235, 33,206, 61,125,241,126, 92, 91, 95, 47,125,143,138, 69,228, 97, 81,216,178,101,149,206, 22,106,244, 42,  6,
+133, 58,191,  5, 76,189,213, 33,205, 91,176,201,182,224,218,224, 58,214,234,230, 42,115,218,144,223,124,231, 12,144,166, 72, 59,
+ 45,156,223,238,192,  8,137,110,146, 34, 55, 41,140,148,104,233, 12,146, 37,200,110,210,230, 30, 38, 26,137,212, 80,  8, 24,122,
+135,220,228, 16,193,195,  7,143,204,164,240,206,194,134,128,142, 74, 49,116,  5,164, 18,104,155, 20, 94,122, 40,149,  0,218, 32,
+128, 55, 99, 96,139,193,192, 81, 64, 94, 97,163,184, 72,230,139,210,113, 78,101, 96, 45,189, 88, 99,211, 76,254,244,235,207,147,
+223,138, 13, 86, 39, 30, 37,231, 63, 39, 25, 16,  2,250,174, 68,233,135,  8,222, 99,161, 28, 32,192, 97, 97, 80, 96, 97, 56, 36,
+ 63,186,141,  1,140, 49,135, 54,208,239, 41, 91, 86, 60,  7,124,197,138,122,117,233,243,140,226, 63,107,152,127, 71,121,186, 98,
+156,153,215,115,143,183, 58, 66,125,179,126,116, 37, 40,146, 52,145, 92,222, 54,106,238,204,128, 99, 99,161,161,163,130, 50,129,
+173, 28, 14,180,151,  2,184,172,227,160,202,227,183,150, 53,255, 58,225,231,235, 21, 19,190,255,232,195,143,213,184,130, 39, 95,
+162,136,101,132,121,203, 42,224,216,163, 79,156,217,224, 67,178,214, 21,  3,136,206, 69,151,188,229, 42,160,197,255,201,  9, 70,
+ 24,159,209,147,  0,228,150, 22,241, 21,111,209,129, 66,162, 83,244,150,122,  8,176, 56, 49,127, 18, 11,189,  1, 78, 91,143,144,
+119, 32,134, 22,162, 28, 64, 72, 49,122, 73, 41,136,105,243,245,  4,107,239,145,161,143,121,  9,150,211,210,163, 63, 57,174,111,
+244,191, 23,182, 86, 55,127, 45,183,211, 42, 12,215,218,202, 29,229,183,161, 97, 72,156,211, 68, 83,161,151, 86, 74,123, 68,112,
+115,160,181, 50, 30,132, 32, 51,174,240, 84,239,161,197, 85,228,138,126,213, 56,100,224, 88,177, 97, 11,100,108,210, 18,215,208,
+232,138,201,196, 98, 64,162, 86,237, 80,123,162,255, 49,122,219,250,170, 96, 82,180, 10, 38,130,178,164, 60,151,243, 45, 81, 53,
+  3, 27,197,165,112,238,186,103,179,189,183, 85,214,206,102,172,135,171,197, 80,172,228,234, 25,197, 46, 76, 92, 51, 77,206,204,
+178,218,140, 91, 37,242, 77, 37,198,104,170,186,230, 50,132,175, 30,165,251, 68,183, 72, 93, 80, 21,213,222, 61,123,166,238,184,
+ 48,134, 11,192,226,  0, 40,123, 76,192,121,161,179,188, 98,230,211, 93, 36, 89,134,243,167,103,177, 43,109, 33, 55,  9,180, 86,
+200, 84,130, 76, 39,200,149,193, 16, 14, 45,147,195, 57,  7, 37, 37, 82,147,142, 36,146,118,154, 51,251,  8,208, 82,195,  8,129,
+194,123,164, 73, 11,  1, 30, 66,  0,221,172,  5,  3,  9, 31, 60,140,144, 16, 74, 82,133, 72,163, 16, 98,  1,  4,  1,210,118,162,
+143, 29,156,214,225, 37,117,123, 26, 22, 85,112,223,118,164,  1,181, 58,188,112,114,107,180,168, 72, 44,  4, 53, 74, 40,  3,241,
+155, 97,240, 40,217,135,238,124,192,124, 49, 68,111,200, 18,118,212,246, 69,189, 46, 53,167,229, 32, 22,248,240, 92, 40,168, 86,
+132,166,206,156, 39,137,195, 90,218,186,247, 85,249,210,200,216,227,117, 66,216,222,226, 48,235,133, 98,181, 32, 30, 28,149,208,
+254, 94,236, 85,154, 89,146,  0, 94, 81,230,133,141, 37,141,107, 62,111, 88, 98,228,154,171, 98,  5,174,  2, 56, 28,156, 73,105,
+ 98, 77,246,186,144, 87,111,  0,130, 48,206, 36,141, 38, 51,102, 76,211, 42,202, 51,153, 69, 36,158,177,248,207,118,105, 39,102,
+ 29, 68,113,181,244,209,200,140,188,128,155, 63,141,135, 79, 44, 32,203,128,133,197, 37,244,251, 67, 44,245,135,152, 31, 20,104,
+167,  9,140, 78,208, 23, 30,194,164, 16,101,  9, 17, 28,100,212,210,163,214, 30, 25, 59,207,199,228,207,101, 53, 34,163,137,118,
+197,174,111,229, 68,  7,184,201,  0,186,141, 88,147,234, 41,153,103, 35,100,118, 90, 20,131,180,146,175, 95,114, 90, 87,154,178,
+ 73,157,211,135,203,114,109,250,194,130, 21,188,  7,242, 54, 51,116, 71,110,167, 97,193,193, 87, 28,180, 21, 75,125,219, 48, 94,
+122, 57,106,233,178,150, 66, 44,216,  5, 36,185,225, 72, 52,179, 59, 69, 76, 94,161, 54,207,150,127,175,237,219, 24,241, 46, 80,
+  5,154,122, 27,205, 50,164,148, 72,177,185,122,237, 41, 23,202, 81, 92,222, 54,210,192,216,140,201, 57,242, 83,151,182,150,165,
+101, 43,154, 45,  5,119, 62,228,207,154,140,221,161,220, 88,101, 61,129,191,186,102,233,140,116, 83,131, 43,234, 49, 93,212, 28,
+ 55, 48, 44, 16,142,159,102, 75,160, 27, 55,201,199, 40,248, 88, 94,118, 88,108,  5, 83, 47,128,165, 30,181,126, 43, 57, 16, 66,
+ 37, 64, 59,161,158,222,173, 20,216, 57,133,206,244, 52,178, 44, 69, 87,167,232, 38, 41, 50,147, 67, 74,137, 41,221,130,148, 52,
+ 48, 41, 53, 49,226,224,145, 39, 45,100, 90,163,180, 14,173, 52,135,117,142,138, 68, 41, 67,210, 57,  4,148, 74, 32,  1, 20,174,
+ 64,162, 12, 32,  4,202,162, 68,146, 24,216, 96, 73, 40, 80, 10, 66,  8,100, 38, 65, 97, 29,164, 54,100, 49, 83,181,154,191, 73,
+108, 52,226, 41,101,195,219,237,145,170, 35, 33, 84,172,113,197,110,101,103,227, 75,142, 27, 81, 43,178,138, 72,238,146,  6,135,
+208, 31,160,148,192,176,223,135,133, 64,185,216,227,195,200,121,233,129,115,190, 77,204,139,101,109, 57,250,200, 60,119,118, 82,
+182,170, 91, 61, 74, 95,242,227,126,187, 16,198, 53,176,213, 52,  3,132, 51,125,234,246,105,102,232, 38,163,136, 94, 45,184, 63,
+ 49,143, 51, 88,170,171, 16, 15,174, 16,156,  2,228,136,208,116,218, 68, 76,  3,155, 40, 53,215, 71,  8,174,106, 17, 42, 66,213,
+ 93,108, 50,176,107, 20,224, 52, 65,253,163,  0, 84, 23,152,  2,215,118, 79, 81,105,148, 43,105, 99,117,179,104,100, 14, 59,118,
+  0,123,119,  3,211, 51, 85,247,193,179,217,199,134,107,243,199,186,243, 35,226,164,199,219, 39, 43,185,114,222,118,140,174,246,
+ 14,232,207,225,241, 99,115,120,180, 40,112,122,176,132,133,225,  0, 18,  2,109,163,209, 74, 52, 90,173, 54, 10,163,225, 77, 10,
+ 57,112, 16,190,224,216, 91,214,214,173, 29,211,206,151,251,253,140,192,116, 41, 42, 55, 83,204, 57,  7, 87, 72,180,181,253, 14,
+ 69,116, 66,201,229,251, 50, 76,106,125,235,  9,138, 90, 15,186, 45, 96,122,138,253,213, 43,180,206,141, 66,156, 20,180, 63, 28,
+168,  6,194, 96,131,173,160,133, 39,173, 60, 12,170,184,130,148,179,135, 44,170,156,116,205,241, 37,134,115,180, 36, 11,191,  8,
+ 85, 30,186, 98,115,146, 16, 28,220,201, 46,190,148, 45,127, 49, 63,125,180, 48,  9,251,245, 61,247,122,183, 36, 96,143,178, 76,
+ 38,155,247,132,205,  9,172,154,221,170,130, 99,  5,134,182, 50,113,  7,206,163, 51,178,138, 43,136, 12, 86,230, 84, 71,133,106,
+ 29,211,239,150,235,210, 11,206,188, 50,168,170, 74,174, 69,211,235, 53, 45, 98,159,  0,165,201,194, 18,115,239, 53,  7,160,198,
+114,176,147,110,208,146,255,231,220,216, 61,183, 38,250,221,215,122,156,171, 90,161,152,110, 14,116,186,152,218,177,  3, 70,105,
+ 76,155, 12, 59, 59,211,200, 37,249,122, 91, 38, 67,240, 30, 82, 10, 24,109, 70,231, 43, 51,  9,  9, 67,138, 11,170,  8,133,118,
+222, 98, 95,187,130,150,128,226,180, 44, 13,133,196, 80,158, 99, 34, 52,188, 36, 13, 83, 11,  5,107, 29,180, 20,200,149,129,  4,
+ 73,133,198, 72,  4, 37,224,164,170, 77,172,224,224,140,104,246,148,219,103,178,148,177, 30, 52,155,154,214,219,223,122,197, 13,
+202,196, 94, 11,210, 30, 29,232,144, 57, 54,221,244, 11, 64,120,  4, 71,145,145,228, 30,113, 24,165,189,136, 88, 20, 72,212, 90,
+165,214,162, 93, 61, 63,223, 96, 56,190, 25,133, 24, 47, 56,179, 92,170,208, 74,155,185, 94,229, 43,  6,132,156, 99, 95,215, 25,
+196, 93,233, 81,221,113,161, 21,132, 52, 16,165,135, 16,  6, 66, 88,  8, 17, 42,205, 65,  9, 98,232, 50, 80,217, 94,173, 72,178,
+215,146,  8, 87, 89,176,182,207, 62,118, 45, 40,247, 52, 70,171,166, 73,197,112, 71,190,182,101, 74, 20,199,212,162,184,198, 38,
+250, 99,125,213, 99,123,189,140, 57, 49,192,142, 89,114, 37,120, 22,224,138,226, 76, 33, 99,221,237,112,101,229,142,240,168, 10,
+229,  8, 62, 63, 74,241,121,170, 69,242,174,184, 39,106,171, 81,244,129,185, 62,134,172, 57,181,181,129, 48, 10,237,180,141, 86,
+150, 33, 75, 53,160, 20,138, 36,133, 76, 50,200,  2,180, 62,206, 87,126,117, 44,159, 85,182,236,218, 71,235,199,104,206, 67,173,
+136, 13,199, 61,196, 20, 54, 53,177, 54,117,193, 26,162, 10,206,141,218,221, 86,100, 36,180,187, 85,160,177,  7, 91, 66, 87,177,
+ 10,148, 69,197,208,215, 43, 40,143,  4, 16,126,230,204,208,152, 90,121,197,240,118,119,137,201,117, 50,170, 23,162, 12,151,107,
+  6,249,240, 71, 93, 48, 61, 23,  4,227,250,238, 54,140, 12,161,180, 15,202,106,205,135,190, 10,180, 19,172,169, 59, 77,110, 43,
+173,216,239,206,116, 41,250,218, 71,230,123, 57, 30, 28,186,110,211, 54, 87,183,140,238,129, 81,116,185,170,210,234, 52,199, 14,
+  8, 85, 21,176,241, 69, 85,242,222,130, 54,136,137,174,  1, 22,200,125,205, 93,182,214,186,203, 90, 42,239,168,149,176,226, 46,
+139,241, 25, 56,118, 39,146,  7,201,252, 85,214, 82,222,150,161,157, 91,220, 79, 61,161,138,112,121, 70, 18,222,206, 25,236,216,
+185, 11, 90, 40,236, 48, 57,102, 91, 93,120, 27,144, 37, 25,180, 84, 40,202, 18, 74, 10, 24,165,169, 71,188, 81,232, 36, 41, 32,
+ 21, 18,165,160,133,132, 54, 25, 20,183,235, 84, 82, 66,  9,  1, 37,104,118,  5,  2,130,144,144, 66, 82, 32, 88,209, 71, 38, 21,
+213, 61,113, 37, 18,109,160,160,224,225,225,  3,208, 73, 18,142, 90,150, 48, 90,192, 10,201,  5,149, 56,215,210,163, 74, 41,112,
+219,164,169,199, 75,186,179,180,  6, 68,194,106,106,229, 66, 19, 85,229, 54,123,238,192,230, 75,146, 34, 11, 46,208, 19,106,218,
+114,172,108, 18,205,202, 81, 50, 44,216,124,220,227,224,150,122,  3,158, 88, 33, 78,170,113, 19,252,122,243,164,147,132,210,196,
+178,156,152,194,176,120, 90,131,227,  4,  0,145,101,220, 62, 90, 67,176, 95, 85, 56, 91, 49,244,216,157, 79,164, 53,225, 53,  0,
+221, 89,218,239,117,179,163, 97, 77,160,224, 28, 94,112, 68,112,198,205,120, 50,110,242,  2, 63,174,169, 71,194, 48,201, 88, 71,
+ 57,242, 76,  0,140, 24, 39,226,235,205,241, 23,172, 93,104, 78, 39, 90, 90,170, 58,134,153,132, 52, 66, 99,214, 39,208, 74,234,
+ 14, 56, 98,232,145,216,185, 80,  9,197,  1, 68,136,189,172,250, 88, 47,135, 50, 84, 25, 41,129,180, 47,161, 28, 80,120,148, 62,
+ 96, 40, 20,118,117, 58, 48, 38, 67,170, 20, 90, 38,197, 84,158,163,147,166,  8,137, 65,217,105, 65,232, 12,162, 95, 64,216, 98,
+ 77,134,190,252,220, 56,154,223,192,154,102,204,251,143,217, 32, 82,140, 51,244,122, 15,  4,205,117, 10,192,213, 45, 17,131,204,
+216, 10,182, 81,147,253, 36,  2,107,149,206, 81,161,162,213, 26,242,212,  3,104,215,123, 63,195,245, 63,218,204,152,103,219,244,
+179,149,144,  5, 74,  2,152,206,137,225,181, 51,170,179, 96,120, 78,178,132,198,110, 12, 87,242,228,159, 35, 33,137,173,125, 35,
+225, 71, 80,170, 90, 44,171,235,202,154, 98, 21, 42, 77, 57,  6,247,169,104,134, 55, 20, 29, 31, 99, 89,234,110,169,141,210,203,
+152,177,162,229,120,147, 29,231,120,227,136, 42, 11, 64,129,  4,223, 68,211, 92,248, 90,187,232,224, 73,171,246,178, 42,123,173,
+ 88,185, 90,143,160, 29,233,104, 61,214, 34,209,148,217, 98,106, 12, 61,222, 43,128,133,140,168, 20,214,232,248,196,254,218,186,
+138,114,134, 35,220,211,100, 20,233,158,182, 58, 48,208,216,145,183, 96,180, 65, 97, 75,180,116,134,224, 28,188, 22,232,102,173,
+ 17,141,128,118, 72,148,129, 84, 10,109, 45,225,  3, 16,156,131, 82, 18,158,219,119, 90, 87,  2, 65,193,123,  7,  3,  1, 45,104,
+113,134,101,129,160, 21,218,105, 11,165,181, 16, 10, 48, 72, 96,157,131,144,  2,218, 75,100,121,130, 65, 97,145,105,137, 12,  9,
+150, 44,160, 82,133,190, 18, 40,130,175,124,232,177, 59, 78,146, 97,212, 33,104,171,177, 21,215,140,103,101,212,207,185,214,153,
+104,136,170,102,122,220, 64,185,226, 40, 83,214,232,  5, 72, 32,136,145,184,138,183,131, 31,208,255, 23,123, 84,219,185, 92,134,
+ 56, 88, 84,  4,107,100,126, 95,175,101,193,144,  5, 71, 41,  0, 45,234,  0, 55, 92,220, 82, 38, 29,  0,224,242, 43,113,224,178,
+ 93,184,252,130,125,216,189,235, 60,180,119,207, 32, 72,133,188,149, 64, 35, 64,166,  9,140,214,200,164, 68, 57, 28, 98,105, 88,
+ 98,105,105,128,165,197, 62,  6, 11,139, 56,245,212, 81, 60,240,212, 19,248,220,157,159, 64,216,181, 27,232, 45, 64,216, 62,241,
+159, 36, 39,193, 53,212,246,126, 12,172, 10,220, 21,170,237,169,174,190,178, 44, 96,113,191, 99, 87,144,  9,114,136,113,211,251,
+114,149,166,226,128, 98,228,123,180,110,248,154, 98, 47,215,217,173,176, 44,128,197, 57,206,135, 15,244, 28,245,106,120,102,162,
+187,217,154,231, 29, 85,101,199, 72, 91, 99, 55, 69,167,153,225,115,241, 29,167, 89, 11, 91,142,209,112,127,  6, 59,113, 62,180,
+133, 40, 10, 20, 58,193, 92,111, 10,121,218, 70, 42, 91, 80, 90, 32,216,  2,153, 84,216, 51,179,  3, 30, 30, 51,137,196,233,222,
+  9,244,237, 28,190,112,231,221, 85, 85,221,138,252,175,188, 79,226,126,134,173,  2,231, 70,194, 11,198, 43,210,141,206, 26, 11,
+ 66, 18, 92,223,130,199, 27,175, 56,  4,119,210, 66,173,210,218, 38, 49, 24,208,107, 43,161, 57,234, 92,129,220,163, 57, 19,139,
+ 52,229, 88, 16,238,236,167, 64,153, 27,113,189,235,139,223, 54,220,191,128,203,115,219, 90,159,134,  0, 96,177,168,252,196, 75,
+220,192, 37,214,116,176, 19,238, 39,139,170,154,165,176, 53, 13,152,203, 27, 27, 91,149,130,  5,187,196,236, 38,186, 13,234,218,
+222,140,  5,  6, 98,230, 67, 61,  3,162,240, 85, 79,119,205,189,225,203, 33,231,134,199,231,  2,209,199,184,255, 67,109,191,104,
+189, 62, 58, 63,249,118,201, 65,130,182, 22, 16, 43,226,245,121, 31, 42, 93,197, 47,196,150,228, 19,117,254,  5,246,188, 38,108,
+217, 38,105, 27, 74,137,104,117,144,236,154,198,121,217, 52,242, 52,129,145,  6, 10, 64,170, 18,104, 67, 62, 23,173, 12, 82,149,
+ 32,225, 46,107,153, 78, 32,133,131,230, 20, 51, 37,  2,172,245,112,142, 76,233,193, 59,104,  0,169,176,112, 90, 99, 56,164, 86,
+161, 54,  0,131,194,162,103, 75,148, 46,192,122,135,158, 29,  2, 66, 34, 56,  7, 27, 44,140, 50, 40, 93,229,119, 28,148, 14,198,
+  8,204,245,151,  0, 33,112,188, 63,128, 91, 90, 36,255,202,176,199, 11, 91, 80, 16, 82,105,207, 77,244,240,134,205,238,168, 76,
+ 94,145,144, 10, 49,206,204,  5,170,195,160,147,170,185,142,228,180,189,232,211, 44,107, 41,120,131, 33, 29,190,222, 18,109,210,
+222, 96,107,159,123,106,150,  2,127, 98,106,202,137,211,192,112,105,211,130, 78, 93, 43, 75, 95,242, 34,124,215, 43, 95,138, 11,
+ 47,223,143,217,217, 22, 10, 33, 96,  2,176, 35, 85, 88,130,132, 81, 18,137, 54,232, 21,  5, 10,206,156,  8,182, 24,149,128,245,
+222, 67,115, 52,110,139,  9,252,176,180,176, 46,224,171, 71, 79,227,200,103, 63,143, 15,220,125, 31,240,224, 17,  4,149,  2, 51,
+ 93,210, 34,132,172,122, 31,107,110,180, 48, 55, 79,135,222,121, 46, 11, 59,172, 24,133,224, 88,138,158,173,180,121,189, 12, 17,
+168, 87,223, 27, 99,228, 24, 47, 81,186,158,152,132, 52, 33, 45, 75,103,212,238,181,158,166,153,178, 86,  6, 80,179,160,114,157,
+185,180,117,157,192,212,  5,142,132,153, 89,204, 26,224, 50,205, 97,125,109, 47, 71,110, 86,173, 33,166,119, 66,236,189,  4,151,
+159,191, 11, 59,179,105, 76,183, 58,164, 40, 74,141,139,206,111, 99,207,238, 41, 76, 79,105,124,245,196,  0, 15,125,233,126,124,
+242,225, 47,224,201,143,127,102,148,  6, 29,106, 63,235,175,149,152, 61,213,176,151, 85,190,117, 61,  7, 28, 53, 38,175,184,  7,
+ 69,212,146,108,237,106,209,116, 26,153, 82,120,  6,196,140,212,215, 77, 74,218, 11,221,140, 54, 81, 82,211,176,235, 13,144, 44,
+184,194,153,156,  8,131,208,112,174,168,180,200,250,216, 35, 45,113,142, 44, 66,139,220,205,173,223, 39,173, 93,150,228, 51, 15,
+195, 51, 53,218,122,249,211,186,144,  6,216,113,  0,  0, 32,  0, 73, 68, 65, 84,  0,139,122,202,161,223, 56, 61,142,252, 41,182,
+151, 45, 49, 94, 43, 32, 90, 59, 39, 91,228,198,204,160,224,171,226,105,158,153,172,225,235,153, 90,163,169,222,160,170,123,176,
+217,120, 21,147,212,138, 75,213, 27,217,248,106,190, 99,138,118, 61,245,170, 54, 39, 91,163,169, 43,174,180,165,217,236, 62,213,
+193,108,154,195,104,133, 76,167, 72, 36,  7,171,169, 28,131,178,143,110,214,130,132, 68,146, 72,164, 58, 65,154, 26, 40, 37,224,
+172, 68,150,164,  8,193, 98, 88, 90,104, 37,161,133,  7,134, 67,  8, 37,144,  7, 18,137,212,192,162,  3,137, 69,  0, 93, 91,194,
+106,129,167,132,128,242,  1, 46,145,  8, 33, 33,215,152,  4,132, 80,  8,214, 66,139,170,213,170,225, 26,197,211,121, 27,189,178,
+143,118,106,176,132, 14,156, 92, 36,237,209,198,116, 38,253,204, 99,232,192,120,125,240, 51, 76,117,156,  6, 82,128,  2,170,130,
+ 39, 45, 44,101,223,160,228,239,229, 92, 72,162, 12,120,213, 85,251,241,137, 47, 28,225,198, 98,138,  3, 64, 98, 57,221, 45,126,
+238,193,  2,153, 53, 91, 41,  9, 16, 97,194,247, 23, 53,198,104,238, 28, 88,172, 84,200, 58, 18,255, 55,127,207, 91,240,194, 87,
+ 30,192,174,221, 51,152,205,115,216,178, 68,175, 40,209, 27, 20, 16, 74,194, 14, 45, 78, 23, 20,229,154, 40,  9,167,  4,148, 20,
+ 80, 16,112, 69,  9, 64,160, 95, 18,  3, 30,246, 11,244, 11,139,233,233, 22, 90,173,  4, 45,157,160,173, 37, 94,122,197, 62,188,
+241,234,139,240,198,111,250, 58, 60,122,114, 30,159,250,135,187,240, 63, 62,254,105, 98,226,129,245, 62,205, 53,178,157,  3,220,
+176, 98,110,145, 81,106, 77, 81,240,182,172, 74,108,214, 25,250,100, 46,171,101,237,177,206,192, 39,127,174, 23,121, 14,236,217,
+ 81, 77,220,241, 99,213,189,157,  7,230,251,216, 80,173,241,210,210,158, 26,249,194,107,227, 81, 53, 33, 81,216,241,158, 15, 27,
+221, 47, 39,158,  2,116, 23,253,221,187,176,100, 75,100,101,129, 52,105, 99,255,197,187,113,209,222, 54, 46,185,160,131, 68, 43,
+ 92,176,219,162,149,103, 80, 42,197,135, 30, 89,  4, 30,125,112,164,173,111,168,228,187,171, 89, 20,198,122, 88,212,153, 68, 70,
+204, 78,233,138,254, 97,192,140, 92,144,245, 73,213,253,109,207,  0, 26, 18, 45, 65, 74, 19,173,158,153,162,137,153,206,128,190,
+165,244, 94, 33, 33,181,132,105, 27,  4,142,179,233,232,  4, 82,  8,248, 16,144, 43,141,190,243,112,240, 48, 34, 67,233, 61, 20,
+103, 32,149,214,193,194,195,141, 10, 45,113,  0,167,209,196,236, 68, 78,130,228,128, 11, 58, 45,183, 31,202,149,172, 26,158,232,
+217,102,173,156,245,126,230,163, 66, 87,204, 20, 85,189,236,237,132,155, 52, 90, 51, 29,187, 75, 29,215,189,119,224,186, 32, 53,
+225, 79,112,151, 72, 55,209, 52,108,163,207, 27,226,254,139, 41,214,190,178,  8, 25,  0, 46, 33,255,254,232,128,177,130, 80,163,
+ 29,103,239, 83,215, 20,184,130,118, 14,180, 53, 48,179,  3,157, 60, 71, 91,165,232, 36, 25,100, 80, 80,  2, 48, 58,133,115, 67,
+180,211, 28, 74,  8, 36, 70, 33, 75, 82,164,121,134,196,208,198,161,121,160, 96,  8, 45, 61,130, 43,161,157,131, 48,  2, 29, 87,
+ 32,241, 14,137,247,112,174,  4, 66,137,204,121,  4,239,224,189, 69, 22,128,129,176, 84,117, 19, 64,225, 73, 62, 79,117,  2,129,
+  0, 47,128, 84, 25,248, 16,160, 37,157, 56,163, 12,156, 35,159, 94,128, 64, 33, 20,249, 57,202,146,203,126,114,202,194,114,209,
+174,107,  5,157,108,119,240,215,168,186, 19,251,123, 37,119, 64, 26,  6,242,201,104, 54,  3, 26,174,170,231, 56, 31, 52,213, 64,
+170, 32,131,128,145, 26, 78,  6, 60,122,124, 14,111,126,245,245, 40,243, 33,230, 78,204,211, 70,178,150, 11, 88,184,179,219, 27,
+245, 84,160, 24,171, 80, 14,168,226, 90,191, 87,  5,224, 69,134,222,158,166, 42,131,105,139, 59,151,197,210,147, 45,110,208, 67,
+ 27, 55,189,250,133,248,190,239,126, 11,190,235,166,239,193,203, 15,188, 16,211,221, 54,180, 36,166,122,186, 95, 96,169,176,208,
+165,133,245, 30,169,243,120,252,196, 60,156, 23, 80, 70, 33, 88,135, 76, 27, 88,239, 49,149, 24,204,245, 10,164, 30, 72,148, 68,
+123,166,  3, 47,  4,164, 13,200,179,  4,157,118,142, 32,  4, 84, 16,176,165,133,128, 64,146, 37,184,238,192, 53,248,186,175, 63,
+128,125,187,166,241,240,201,163,232,159,236,209, 33, 95,232,147,191, 90,114, 81,141,216,235, 32,176,169,172,223,227, 52, 42, 81,
+ 69,219,151, 92,  3,115,185,148,190,216,183,187, 78,104,162, 86,161, 57,144,103, 61,105,151,173, 14,249, 77,181,  4,230, 22,104,
+222,181, 28, 55, 53,111,116,191,198,212,200, 24,244, 23,235, 90,199,234,106, 58, 84, 65,180,214,158, 89, 78,120, 13,235,203, 40,
+232,109,233, 36, 22,145,163, 61,211, 69, 75,165,216,217,157,193,215, 92,216,198,229, 23,239,128,145, 10,157, 86,138, 78,150, 64,
+ 36,  6,189,178,131,153,233, 93,120,176, 95, 34, 56,143,160, 13,194,249,251, 16, 46,216,  3,236,217, 75,193,144,171,  5,167,174,
+227,249,144,232, 42,  0,176,157, 98,223, 11, 46,193,252,177, 57, 14,174,170,  9, 92,214, 82, 96,152,125,  6, 48,244,200,116,102,
+218,180, 15, 90,  9, 55,200, 18, 72,186,109,164,105,130, 60, 33,  5,108,214,100,152, 54, 57,118,230,109, 36, 74, 97, 58,237,160,
+107,114,104, 41, 49,155,117,208,209, 25,218,105,134, 92, 25, 76,165, 45,180,141,198,180, 54, 72,181, 70, 43, 77, 97,125, 64, 80,
+ 26,193,212, 44, 77,136,133, 99,120, 47,216,114,237,249, 95,238,181,153,177,123,112, 69,182,216,203,157,179,125,130,175,250, 40,
+148,190, 58, 15,178, 86, 35, 34,  6, 28, 39,186,242,181,143,130,251,184, 10,166,224,130, 80, 37,151,181, 45,106, 41,103, 27, 85,
+ 10, 71,221,218, 98,156, 65,140, 97,137,149, 20, 45,231,252,151,213,  9,  9, 28,203,178,101,209,239,138,125,233, 83, 25, 96,218,
+ 72,167,167,176, 35,201,161,133,129, 81, 64,110, 50,164, 73,138,224, 45,140, 78,144,232, 12, 64,137, 86,218, 66,154,103,208, 34,
+ 64,170,  0, 33,  2,197,107,129, 34,181, 69,  8, 16, 92, 79,184, 35, 45,108,  0,210,224, 96,157, 67, 34,  5,242,210,162,112,  5,
+116,172,168,  6,139,196,121,244, 80, 98, 80, 82, 62,163,210,  9,156, 45, 96,116,194, 38,252,  0,165, 53,164, 15, 48, 74,161,240,
+  1, 90,  8, 24, 24, 20,176, 16, 82,160, 28,198, 98, 25,174,146,186,214, 27,120,162,107,121,140,114,139,234,153, 27,206,247, 84,
+ 19, 68, 55, 54,100,168,219,159,173,162, 96,148,152,199,108,248, 25,114, 14, 12,145, 18, 48, 10,137,210, 20,179,  0, 64, 10,129,
+ 32,129, 47,127,245, 97,204,205, 47, 49,243,103,109,127,104, 89, 82, 93,157,177,167, 47,191, 22,238,212,169,202,124, 86,214, 44,
+  9,245,249,136,105, 67,101, 57,158,138, 17,209,153,229,142,125,117, 19,148,164, 74,132,211, 93, 96,122, 10, 47,122,249, 53,184,
+241,187,223,138,239,249,174,215,227, 37, 87,237,199,190,110, 27,139, 46,160, 37,  4,130, 15, 24,148, 22, 67,235, 96,135, 22,139,
+  3,139, 97,127,136,194,  5,180, 90, 57,102,167, 91,112,150, 52, 14, 93,150, 72, 76,  2, 39,128,254,176,128,148, 10,221,196, 64,
+  6,129,118,158,227,210, 29,211,104, 75,133,  2,  2, 83,153, 65, 30,  4,230,188,195,233,162,192,210, 82, 15, 39,  7,125,188,237,
+199,126,  9,223,247,147,223,139, 87, 92,123, 13,186,193,227,254,207,124,153, 36,250,165,211,212,108,168, 44,137,121, 42, 93, 69,
+175, 71,255,123, 76,157, 26,153,233, 86,107,111, 43,170,  6, 27, 35,135,112, 45, 53, 80,202,181,247,154,229,146,154,243, 92,118,
+213,139,101, 58,140,201,241,168,218,205,150, 51,117,174,202, 33,118, 27, 79, 59, 58,131,169,107, 13, 49,127, 12,243, 34, 71,123,
+170,133,169, 36,199,243,206,159,198, 84, 59,193,244, 84,134, 32, 20,180, 81,200,140,134,208, 10, 58,107, 97,110,161,192,241,249,
+  5,132, 52,197,215, 29,184, 12,215,126,205,126, 92,188,179, 11,209,206,112,226,244,252,217,165,243,  1, 68, 88,133, 64,114,241,
+  5,216, 59, 53,139,227,115,115, 19,174, 42,206,189,198, 51,160,167,129,226,134, 89,221,156,220, 44,237,156,203,118, 27,164,105,
+138,221, 89, 11,185,210,152, 77,186,152,201, 58,104, 39, 45,236,200,167, 97,164, 70, 55,233, 80, 77, 16,165,145, 40,131, 84, 39,
+ 80, 82, 32,145, 18, 25,167,121,182, 76,130, 34,  0,185, 73,209, 50, 25,114, 45,209, 54, 26, 66,105, 40,163, 81,218,192,101,132,
+201, 50, 72, 76,239, 28,149,132,150, 53,215,137,  8,128,206, 41,138,222, 58, 78, 19,100, 41, 57,186,205,192,129,169,165,173,206,
+156,228,134, 74,138,207, 17,184, 76,119, 44, 30, 21,107,119,184,130, 92, 25,145, 17, 59,191,241, 51, 20,121,200,168,153, 78,160,
+116, 63, 97,185,200, 21,107,241,177, 65, 89, 96,103,126,  8, 20,  0,232,237, 89, 50,117,173, 73, 59,108,229,164, 89, 77,181, 49,
+157,102,152, 78,219,208, 74, 66, 10, 32, 81, 26,214, 89,116,210, 46,188,119, 80, 10,152,106, 77, 35, 73, 21, 50, 99, 32,132,135,
+ 18, 20,196, 21, 64,233,109, 74, 10, 88, 91, 82,219,116,  9,104,231,144,115,161,142,196,123, 40,231, 49, 12,142,252,159,222, 66,
+120, 65,193,119,222,195,133,152,173, 16,224,189, 67, 16, 26,130,163,180,165, 16, 80, 66, 64, 10,  9, 15,138, 34,148, 66,192, 33,
+160,165, 19,244,157, 69, 16, 18, 46,148, 44, 40,176,100, 22, 56,204,119,173,195, 89,247,  7,249, 45,170,103,222,105, 19, 83, 83,
+226,204,136,252,232, 48,140,154,156,229,102,  8, 14, 85,148,116, 44,138,144,155,209,  6,117, 66,192, 40,201, 21, 60,  5, 66, 16,
+ 72,210,148,  2,128, 53, 71,238,198, 90,195, 67,187, 70, 81, 24, 13,119,234,  4, 17, 57,203,117,246,235, 13, 71,226, 28,198,130,
+ 51, 43,205, 73, 43, 35,109, 60, 75, 43, 38,100,200, 84,184,235,162, 61,232, 25,131,239,127,195,155,241,154,131, 47,199,133, 23,
+238,134,181,  1,137, 45,113,186, 95,224,177, 19,115,120,234,212, 34, 78,205,247,113,106,110, 17,110, 88,114,141,131,128,211,167,
+230, 81, 14, 75,244, 22,250, 88, 90,234,195, 46,245,176, 48,116, 40, 29, 96, 18,131,197,133,  1,188,243,112, 11, 75,152, 31, 20,
+152, 31, 20, 40,157, 69,191, 44,112,122, 48,196,209,165, 30, 22,  6, 67, 28,239,245,240,212,194, 18, 22,251, 67, 12,  6,  5,190,
+242,200, 28,238,253,220,231,240,215, 31,254, 27,124,195, 55,126,  3, 46,191,106, 63, 46,127,254, 37,184,255,232, 49, 12,231,230,
+184,108, 40,103, 33, 36,154,155,190,248, 42,168,170,180,220,184, 98, 29,146,252,168, 28,233,  4, 99,175,207,243, 90, 81,235,158,
+250,  3,252,255,212,189, 89,175,165,217,121,223,247, 91,227, 59,236,225, 76, 85,213, 85,213, 35,217, 77,138,162, 72,145, 14,101,
+201, 84, 36, 69, 52, 36, 68,146, 45, 89,138,146, 72,182,128, 36,178,157,139, 36,128,131,  0,185,200,167,200,125,130, 92,229, 19,
+228,194,128,  1, 33,130,156,196,144,  5, 77, 16, 35,155,180, 40,138, 17,201,158,187,171,206,176,167,247, 93, 99, 46,214,122,207,
+222, 85,221, 93,221, 93, 85,164,232, 13,116,215,116,234,212, 57,239, 94,107, 61,235,249, 63,255, 97,202,105,190,134,237, 30, 30,
+163, 77,159, 79, 30, 48,238, 31,231,245,216,133, 76, 35,234, 41,120, 93,212,165, 44, 63,250, 53,231, 88,142,231, 75, 12, 45, 55,
+ 78, 58,132, 80,244,157,198, 85,  2,251,224, 64, 41,193,229,229,142,111, 94, 93,112,231,153, 57, 47,156,158,210,216,150, 59,207,
+220,226,246,233, 13,210, 92,241,214, 59,231,143, 95,216,175,187,198, 76,124,231,138,243,222,146,191,243,106,189,252, 79,142,122,
+ 85,159, 45,197,223, 92,166,129,166, 16,126, 59,  3,167,179,170, 78,106,192, 42,230,139, 25,115,221,114,214,244,180,182,101,217,
+ 46,232,181,165, 55, 29,125,211,131,144,244,166,197, 40, 77,202,137,222,116, 52,198, 98,148, 70, 73,137, 20, 26, 37, 21,173,105,
+ 32,103,150,237,156, 86, 53, 12,209,177,108, 58,230,182,165,211, 22,131,132, 70, 50,230,234,217, 64,220,135,191,124,175, 47, 59,
+ 83,164, 43,236,173,158,135,109,229, 17,168,253, 62, 74,113, 79,130, 27,199,242,224,114,133,197,242, 52, 94, 43, 99,224,194, 59,
+ 16,123,153,166,115,251, 44,121,204,  1,115,126,178, 26,142, 31,127,109, 73,117,144,199, 46, 15,172,113, 15,228,149, 19, 74, 48,
+133,233,152,138,134,196,248,132, 69, 93, 85,194, 69,223,194,124,129,109,123, 90, 85,230,227,173,214,244,182,131,148,232,154,150,
+144, 35,139,182, 69, 43,141,181,170,214,161, 88,116,227,120,148,200,  8,161, 16, 49, 66,244, 88,107,209, 49, 96,115, 68, 74,133,
+ 26, 29, 34,102, 68, 76,200,148,138, 65, 13, 18,153, 33,  9, 65,139,192,147,174, 27,152, 84,187, 25,173, 12,141,212,  8, 33,105,
+149,193, 87,196, 64,  0, 62, 39,172, 50,196, 28,112, 62,178,176, 13,187,232,113, 76, 27,113,178, 58,172,249,213, 31,118,187, 20,
+  7,214,167, 79, 75, 22,215,117,  5,  9,201,234,189,  5,118,234,226,174,173, 42,171, 87,253,181,100,164,218, 51,118, 53,  4, 64,
+234,122,115, 21,104,163,138, 60, 29, 48, 82,161,181,194,133, 88,173, 79,171,  6, 52,139,162, 25,125,212,248, 65,203, 34,245,154,
+ 24,165, 74,236,  3, 47, 14,195, 31,166,185,147,200,239,223, 85,154,106,188, 32,  4, 88,203,231,191,240, 89,126,250, 71, 94,230,
+159,252,151,191,202,223,255,202,151,249,212, 39, 95,225,159,255,235,127,201, 43,207,127,146,182, 51, 92,109,183,188,123,185,229,
+237,203, 45,126,181,101,179, 25,136, 49,193,206,115,113,239,138,203,149,195,111,  3,195,106,195,226,248,  6,166,233, 89,159,175,
+ 24, 99, 34,141, 25,219,247, 40,165,121,245,219,111,240,206, 91,247,216, 93, 94,241,238,189,251,140,227,136,219,  6,222,124,231,
+156, 55,222,190,199,110, 53,178,189, 88,115,117,181,101,187,218,178,186, 92,225,199,196,255,246,191,252,239,165,198,238, 60,159,
+249,194,223,162,233, 37,203,227, 57,127,235,179,159,194, 37,207,107, 95,251,102,121,175,142, 22,181,216,214,131, 76, 30,132,140,
+184,240,160,245,228,135, 65,114,248,114, 72,136,  3,228,227,129,121,220,199, 41,166, 15,217,182, 10,234,184,169, 22,243, 28, 15,
+ 72,122,223,207, 78, 51, 61,216,169,107,189,151,169,165,136,216, 57,118, 77,203,172, 49,164,220,112,181,139, 88, 45, 81, 82,113,
+111,200, 24, 37,240, 62,112,185,  9,124,245,219,175,242,236,145,226,206,242,152,110,185,224,232,120, 65,211, 24,206,102,115,222,
+ 22, 35, 87,111,220,127,252,142,113,114, 81,243,142,124,255, 98,127, 89, 74, 21,165,176,  7,177,185,153,167,255, 12,167,209,150,
+209,251, 16,151,201,  3,220,244,245,223,111, 11,121,121, 94,213, 26,139, 14,180,164,209, 45,167, 77,203, 51,253, 49,203,238,136,
+153,233, 56,153, 29, 99,164,162,181, 51,148,208,244,186, 69,203, 50, 91,159, 53,165,179, 23, 73,160,148, 70,203, 98,  0,102,165,
+162,211, 13, 90,107,122,221,163,180,230,180, 61, 42,205,147,212,  8,  4,189,177,232, 36,  9, 42, 49,162,246, 55,181,244,125, 40,
+236,147, 99,160, 81,  7, 17,174,213, 95, 34,196,125, 76,174, 86,133,247, 33,216,123,209, 91,189,151,185,169,170,163,215,106,159,
+214,168,170, 35,169,169, 35,176, 92, 27, 41, 23,246,223,223,227,162,181, 82, 84,137,117,172, 30, 36,213,128,102,242,190,135,194,
+ 79, 48,146,235, 67,252,  0,245,123,178,162,110,171, 15,173,109, 97,121, 68, 99, 13,167, 93,135, 17, 10, 37, 37, 70,106,180,210,
+228,156,105,180,194, 84,200,202, 72,137,212, 10, 69,164,209, 18,  5,152,  4, 70, 73,148,200,104,  4, 50, 70, 98,206, 68, 63, 34,
+ 83,198,198, 84,237, 33, 51, 58, 37,154, 92,228,175,  1,129, 65,224, 99, 64, 11,137, 65,178,145,  2, 41, 37, 93, 83, 24,170,141,
+178, 52, 90, 97,109, 71,171, 45, 41,  7,180, 54, 24, 33,217, 69, 95,141,110,202,215,185,  9,158, 44,  4, 49, 30,  6,166, 76, 15,
+244, 67,130, 90,230, 51,232,151, 37,172,198,213,226,250,164, 16,188,172,139, 39,248,247,122,124, 79, 93,220,212,145, 95,187, 98,
+ 29, 26, 22,136,122,131, 84,133,  1,111,  5,141,181,132,152, 17, 72,  4,  2, 41, 96,  8,161,106,217,107, 23, 57, 49,180,169,112,
+241,  7,117,235,114,210, 63,203,125,242, 82, 22,251, 27,249,225,247, 33, 14,139,124,124, 47, 73, 70, 73,154, 79, 62,207,111,253,
+252,127,200,207,124,229, 75,124,246, 71, 63, 69, 99, 53, 43, 23,136,110,228, 19,207,188,192,239,255,225,159,240,226,179,183,217,
+109,  3,235,171, 45,171,171, 43,214, 23, 87,172,214,107,194,198,147,145,108, 86,107,118,155, 45, 18,133,146, 13,198,118, 28,205,
+ 23, 72,105,202,179,  8, 96,173, 37, 68,137,214, 13, 82, 25, 98, 16,196, 24,105,250,  5,218,182,220,127,251,109,182,155, 53,227,
+118,195,119,222,120,157,113,179, 97,187, 90,115,113,255, 62,227,176,227,107, 95,255, 43,126,245, 63,249, 13,254,221, 87,255,140,
+ 63,254,163, 63,226, 19, 47, 61,207,118,181,197,246, 45,159,249,236,167,232,143,150,124,243,254,  5,108, 15, 66, 39,166, 27,248,
+  4,249,153,154, 57, 16,252, 71, 43, 34,135,249,  2,211,129,117, 72,240,122, 28, 75,227, 67,251,217,  9, 98,156,230,144, 31,228,
+ 61,240,180,114, 11, 30,  9,191,107,132,150, 15,232,206,203,254,119,184, 97, 71,238,103, 56, 23,185, 90,101,118, 14,130, 20,215,
+145,  5,231, 91,207,235,175, 95,112,255,254, 59, 12,126,199,243,103,183,184,243,236, 45, 82, 74,184,224,112,110, 96,166, 52,127,
+121,255, 10,174, 86, 79,167,120, 60,188, 39,174,121, 20, 60,221,226,213,183,229,243, 47,142,203,251,117,116, 90,201,111, 51,184,
+253, 12,156,157, 21,147,161,163,101, 41,226,203,234,  7,223, 22, 34,220,141,217,130, 59,139, 37,203,118,201,162, 91,208,105,203,
+178, 93,160,132,196, 40, 67,111,122,180,212,100, 18, 74,234, 18,164,149,  5, 70,153,122,102, 75,140,178, 40,161, 48,186,197,167,
+192,162,153,209,180, 29,173,105,139, 97,101,202,104,109,104,109, 91,  1, 37, 65,175, 44, 86,103,182, 89,145,235, 94,191, 30,195,
+125,175, 94,125, 91, 57, 59, 21, 29,155, 28,  3, 83, 44,197,219,202,189,183,194,228, 27, 34,168,126,  3,149,221,174,204, 62,114,
+ 54, 23,120, 27, 87, 25,253,147, 68, 47,198,125,231, 31,211, 62,145,116,202,139,143,177,134,155,241,209,160,248, 73, 34, 60,241,
+ 54, 68,174,193,104,114,111, 46,150,170,181,177, 60,216, 32, 79, 60, 83, 55,186, 22,137,182, 46, 26,203,173,126,137,200, 18,173,
+ 21, 51,211,225, 98,196,106,141, 68,162,133, 64,107,115,173,249, 47,158,  5,138,150,128, 17,  5,114,215,201,163,132, 66, 40,208,
+209, 49,134, 84,102,241,131, 67,121,  7,174, 16,154, 92,240,216, 84, 66, 28, 76, 40,100,185,136, 64, 86,110, 88,  6,180,182, 72,
+173, 17, 82,163,165,164,237,218,194,184,111, 13, 50,107, 20,  2, 33, 50, 90,154,242,177, 64,204,137,153,177, 92,142, 59, 98,168,
+115,151, 88,175,112,206,191,127,192,253,225,107,113, 82, 28,151, 76,117, 45, 10,225,201,225, 55, 31,202,194,252, 32,147,150,247,
+ 36, 70,213, 27,176,152,136, 41,213, 53,174, 47, 68, 51, 89,  9, 98,  5,177, 17,244,214,178,157,146,127, 66,222, 91,155, 78, 69,
+ 60,171,154,158,244,136,220, 98, 43, 15,228, 75,105, 47,231, 57, 36,119, 29, 90,133,190,207, 33,247,236, 79,253, 56,191,244,243,
+ 63,205,127,252,149, 47,115,124,251, 20,173, 52, 62, 70,222,190,191,226,106,189, 67,187,192,110, 28,121,241,238, 29, 82,148,228,
+  0, 42,105,136, 18,163,151, 24,213,113,122,251, 46,253,108,142, 53, 11,158,123,225, 37,186,249, 17, 93,219,161,181,197,197,145,
+101,219,210,216,150,147, 27,199,220,185,121,140,182,134,229,124,206,217,141, 19, 78,206, 78,232,102, 75,186,121,203, 75, 47,220,
+ 70, 53,115,220,214,177,217,238,208,210,178,243, 37, 14,116,189,219, 17,131,231,199,190,248, 89,180,142, 60,255,169, 23,249,194,
+ 23, 62, 13, 73,112,121,113,206,230, 98,133,178, 45,207,125,242,  5,238,206,123,254,237,159,254,121,217, 39, 20,130, 98,185, 81,
+ 15,229,178, 55, 62,225,108, 49, 31,204,203,159,212,189, 76, 86,167,143,107,187,  3,177,119,236,154,210, 22,167,206, 48,231,239,
+ 77,  7, 95,187, 79, 33,229,251,178,251,133,146,101, 31,134,145,171,203,115, 94,195, 51,134,129,232, 10,169,209,197,200,232, 18,
+175,189,181, 98,189, 26, 73,110,197,189,237, 37,103,179, 25, 70, 25,150,199, 51, 46,206, 47,217, 12,107, 98, 12,252,197, 95,124,
+183, 72, 55,159, 58,216,144, 14,230,156,226,201,231,247,211,179, 49, 61, 44, 79,232,111,158,225,219, 22,110, 28,151, 98,189,152,
+195,141, 83, 88, 44,225,228,102, 65,247, 78, 78,145,203, 37,207,158,157,241,204, 98, 65,167, 37, 55,250, 57, 71,109, 79,163, 44,
+ 55,103,199, 72,  4,139,110,  9, 66, 32,208,116, 77, 15, 57,163,181, 68, 25,131,210, 10,211, 40, 76,211,144, 66, 68,106, 73,219,
+ 53,  4, 31,177, 74,145, 50,116,218,148,130,222,119, 36, 95, 81, 10,153, 17, 41,227,130, 43, 57, 30,169,228,114, 52,186,101, 23,
+ 29,163,172,233,144,168,247,111, 84,158, 22,244, 62, 21,236,107,219, 87, 81,214,181,119,101,198,191, 29,202,243,155,144,179,209,
+149, 34, 46, 83, 57,191, 91,187,175,194,177,186,225,217,202, 25, 50,125, 81,127,184, 80,205,129,194,254, 74, 58, 65,226, 19,146,
+ 38, 68,205,136,248, 24,151,225,233, 60, 23,  7, 17,183, 83,108,173, 47, 40,247,  3, 72,221,193, 26,123,252,162,174,116,121, 48,
+ 71, 61,204,143, 88,206,103,197,214, 85, 40,230,141, 37,198, 72,111,139, 65,135, 86, 10, 37,  4, 90,107,140, 84, 24, 35,145, 57,
+210,202,132,170, 51,111, 43, 51, 17,129, 16,  9,225, 67,209,219,239,182,164,209, 49,250,  1,181,115,164, 24, 81, 62,176,168,218,
+ 69, 19, 83, 33,211,145,145, 66,225,144,  8, 20,201, 88,178,148,196,156, 48,141, 69,169,210,169,182,125,139,214, 10, 35, 13, 34,
+231, 50, 75,182,150,144,139,148, 66,107,195, 24, 28, 33, 69,118,185,186,126,185,106,197, 41,100,121,152,143,154, 47,247,243,125,
+134,245,118, 91,160, 82, 45,159,112,198,200, 71, 95,  4,147, 79,242,244,163,168,173,243,236,164,228, 33,207,123,178,216,123,180,
+199,148, 24,199,128,146,150, 60,214, 46,111,234,214,199,218, 13, 90,  9, 27, 87, 36, 28,143, 42, 46, 42,215,220,100, 81, 46,  1,
+211,191,115,109,111,124, 16,105,121,120,200,125,238, 11,252, 23,191,241,203,252,204, 87,126,130,126,185,192,121,143,243, 17,231,
+ 60, 23,247,175,184,186,119,137,219,  5,118,187,128,209,134, 97,231,217, 92,174,105,237, 12,107, 91, 78,206, 78,185,253,204, 41,
+207, 62,123,131,227,101, 79,223,181,156,157, 30,209,180,150, 89,215,114,227,198, 49,243,229, 12,221, 54, 44,143, 22,204,250,150,
+166, 85,244,125,195,115,103,115, 60, 18,163, 52,125,219,112,251,198,146,101, 59,195,199,204,243,183,142,121,225,133,187,220,123,
+103, 68, 36,193,201,226,148,179, 27,119,184,188,186,207, 59,235, 13,110,116, 44,151, 75, 86,171, 11,134,209, 49,155,205, 32, 11,
+ 86,235, 13,113, 28,145, 82,241,210,167, 63, 65,219, 89,190,249,245,111,212,141,239,247, 35,147,137, 72,248, 36,235,226,208,223,
+253, 73,215,215,100,243, 58,133,154,240,144,111,252,196,149,184,134, 36,229,211, 33,130,190, 31,234,244,126,100,185,131,143, 17,
+ 57, 67,242,228,119,207,185, 60,191,226,117, 55,242,206,249, 37,140,150,139, 11,199,229,249, 21,227,120,133, 22,153,222, 24,214,
+195,192,189,203,203, 18,111,224, 71, 82, 30,249, 63,254,252,235,228, 55,239,125,112,172,242, 19, 23,246, 10,197, 63,141, 78,180,
+111,203,136,235,229,231, 65,105,210,201, 49,185, 81,208,245,229,178, 62,155, 21,255,  7, 91, 83, 49,151,199, 60,183, 56,225,133,
+197, 49,187, 80, 72,201,119,251, 37,119, 23,167,144, 21, 39,179, 19,  0,206,102,167,136, 44,233,219, 25,182,111,216, 14, 27, 22,
+199, 75, 80, 10,171, 45,109,107,201, 66, 33, 99,198,244,197,111, 68,  8,129,170,190, 33,182,209,116,179, 57, 57,229,154,178, 43,
+ 73, 41,149,166, 33, 69,180,212,  4, 18, 70, 27, 98,136,236,188,167,215,150, 44,  5,187, 84, 27,166, 41,161,240,105,159,143,241,
+161,162,151, 38, 43,237, 84, 10,121,172,161, 77,219, 97, 79, 94,157,230,229,136,253,185, 29, 15, 18, 42,167,188,120, 33,246,190,
+ 12,178,169,112,125, 85, 24,201,131, 70, 38,214, 17,166,146,123,247,184,143,179,183,205,228,172, 55,133,143,229,  3,203,101,181,
+ 15,221,114, 15, 34,116,143, 87,212,117, 77,151,233, 42,137,171, 43,190,215,183,154, 25,141, 86,164, 84, 34, 79,203,108, 69, 34,
+165,196, 42,131, 18,178,160,186,201, 51, 83,  2,171, 36, 86, 22, 35,215, 32,  5, 45, 16, 93, 33, 42,177, 25,112,110,100,187,219,
+ 18, 71,143,242,129,185,139,100, 33,  8, 46,211,139,253,244, 77, 10, 67, 20, 18, 33, 53,209, 90,132,182, 72,221,208,216,134, 36,
+ 20,166,181, 24, 85, 50,150,149,210,  8,  5, 50,171,218, 13, 58,164,208,248, 88,194, 32,124, 12,228, 12, 67,240,196,213,102, 47,
+ 33, 10, 97,127,107,123,212,124, 57,228,210, 89,239, 66,145,244, 76, 11, 74,126,143, 10,251, 52, 91, 59,156,189, 78,133, 61,213,
+188,120, 97, 75,172,226,102, 87, 96,248, 41, 87,184, 46,178,236,253,126, 33,  6, 95, 55, 89,173,214, 62, 21,199,183, 71, 29,224,
+211,124, 49,186,210,221, 77,112,243, 52,251, 61,244,255,158, 66, 24, 62,245, 57,126,253, 87,190,194, 47,255,226,207,240,220, 43,
+119, 73, 33, 97, 26, 69, 74,  2,183, 26,217, 94,109,217, 94,108,  8, 33,145,178, 68,209,208,181,115,102,253,146,103,158,185, 69,
+107, 27,148, 52,244,139,142, 69,219,209,181,134, 70, 25,206,142,103,220, 60,233,121,241,108,198,173,147,158,190, 85,204, 91,201,
+173,163,150,121,219, 48,159,181,196, 44,232,117, 25, 17,205,172, 34,132,132, 16, 18,171, 20,243, 89, 67,107, 13,202,104,110, 46,
+ 58, 62,249,210, 29,206,135, 68, 51, 91,240, 35, 63,244, 50,219,171,128, 74,158,191,190,119,159,133, 49,204,218,142,221,176, 67,
+ 37,201,108, 62, 71,105, 93,247, 90, 66, 54,150, 23, 63,245, 18,  9,193,119,190,241, 87,213, 86, 50, 87,253,122, 53, 56,250, 65,
+121, 29,242, 51,200,251, 98,212,204, 75, 39,104,186,253, 40, 74, 60, 20, 68,241, 52,214,245, 67,190, 11, 31,106,245, 58,113, 52,
+142,230,132,113,203, 16, 70, 98, 26,  9,126,133,206,146,171,225, 62, 34,134,  2,185,103,135, 79,  9,231,  6,190,254,250,119,249,
+ 55,111,191,201,230, 91,247,224,242,252,233,146,210,228, 83, 30, 75, 52,182,140,182,142,142,225,249,103,160,237,120,246,238, 93,
+152,117,  4,221, 34,102, 11,178, 52,165,144, 43,  1,205, 81, 57, 15,155,  5,167,182, 65,234,150,147,217, 17,183,250, 30,135,161,
+ 21,154,174,105,176,202, 50,107, 58,180,212,232,166, 67, 55, 10, 25,  5,203,147, 35,226,224,104,154,166, 20,110, 18, 70, 20,  8,
+ 62, 19, 80, 20,254,147,212,178,  4,107, 41, 10,177,217,104, 16,145,228, 35,155,113, 75, 14,129, 32, 18, 42, 75, 92,116,197,206,
+ 59,102,124,114,168,154,131, 30,181,192,249,186,158,198,167,200,134,159,210,207, 38, 98,170,213,251,117,173,196, 94,213,100,212,
+ 30,113,158,136,188,215,166, 57,105,207,121, 17,178,156,159,147,183,123,206,  5,158,143, 53, 54, 86, 86,200,126, 24,203, 30,137,
+190,120,225,  7, 95, 57, 70,149, 91,165,244,199,191,  4, 79, 35,182,148,246, 36,217,107, 53, 76,222,171, 96, 30,122,118,143, 87,
+212,167,194, 97,139, 55,240,252,236,132, 83, 59, 35,103,129, 84,146, 70,119, 24, 89,188,217,  5,146, 70,149, 25,186, 36,161,100,
+198,  2, 70,100, 90,163,201, 34,161, 82, 66,229,140, 27,  7,164,143,228,209,179, 27,  7,196, 48, 96,119,  1,231, 10,244,174,146,
+ 64,103,232,180, 66, 43,131, 82,154,166,159,163,219, 30,154, 30,219,206, 80, 77,139,210,  6,217, 54,  8,107, 16,170, 28,222,212,
+ 57,187,136,197, 59, 62,196,  2,  9,133,156,137, 41, 33, 37, 92, 13,107,148,210,132, 16, 56, 31,  6,178,168, 93,167,243, 92,167,
+  2, 61,106, 62, 22, 83,185,249,143,110, 95,208, 15, 33,104, 25,247, 48,230,211,218,252,211,141, 78,214, 64,137,201,207,123, 90,
+176,153, 98,107,170, 39,248,169,118, 91,177,194, 66, 62,148, 13,144,235,101, 68,169, 26,180, 80, 25,150,155,243, 42,135, 10,143,
+247,181, 77, 48,243,  4, 35, 29,189,200, 47,252,202, 79,243, 15,126,249,103,121,233, 51,159,192, 54,138,237,214,177, 27, 60,227,
+214, 51,108, 71,220, 48, 18,156,199, 59,143, 18,150,229,226,132,179,179, 19,102,125, 75,223,155, 26,234,163,176,157,162,177,138,
+ 89,103, 88, 54,134,219, 39, 45, 39,139,158,190,105,144,170, 32, 38,157,149, 44, 91,141,150,  2, 37, 10,145, 42, 35,171,202,162,
+ 32,  8, 82,194,141,133,165,111, 20,189,213,228,148,139,188, 13, 73,215,104,158,187,125, 66,210,154,148, 51,139,229, 49,199,167,
+183,136,235,129,111,191,243, 22, 86, 75,164, 84,188,179, 94,209, 40,193, 48, 14,228, 24,177,218,144,147, 68,104,205, 75,159,124,
+129,115, 63,240,206,119, 94, 43, 93,194,118, 34,211, 72, 30,116,188,248,  1, 40,236,135, 23, 67, 83,209,184,190,169,  7,159, 46,
+107, 68,240,224,200,231, 73,215,242,  7,196,179,126, 96,178,218,100,137,125,243,  6,159,249,212, 43,124,254,149, 31, 98,217, 88,
+132,202, 92,172, 46, 25,253,150,139,221,134,215, 46,239,145,200, 24,101, 24, 82,224,171,175,191,205,155, 95,255, 14,187,111,125,
+  7,214,171,167, 88,208,167,129, 41, 79,199,163, 98,130,218,103,115,184,123, 11,158,191, 13, 55,110,243,195, 55,158,229,164,233,
+ 72,  8, 62, 57, 63, 98,200,176, 52, 13, 27,219, 86,  6,182,  0, 59,227,110, 55, 99,214, 20,227, 36,163, 53, 74,104, 22, 77,139,
+233,122, 22,182,135, 20,176,218, 34,164,161,237,117, 33,189,117,109, 49,  8,155,119, 53,147, 71,163,107,231, 77, 74, 72, 36, 89,
+ 56,132,148,165, 54,250, 34,215,146,178, 36, 18,134, 24,137, 68,164,128,221,232, 17, 66, 34, 73,228, 36, 24,115,153,  1,207,187,
+ 25, 91, 55,208, 54, 13, 90, 40,118, 58, 19, 69, 77,134, 20, 21,  9, 18,117,205, 61, 14,194,209,216,154, 36, 57,117,205,181,169,
+240,149,196, 54, 89, 11, 78,222, 15,177,234,208,243,  4,207,219,189, 29,110,136,181,121,173, 99, 40, 37,106,167, 47,170,172,172,
+  6,206,104, 85,246, 68,223, 22,102,189,209,133,100, 42,171,213,110, 62,200, 13,120,156,189,114,120,129,158,198,151,249,176, 99,
+127,239,231,124, 60, 71,185,201, 54,112,110, 97, 54,199,231,140,173,118,121, 11, 91,102,233,160, 80,178,204,174, 11,153, 60,160,
+149, 32,197, 68,223,154,226,176, 56, 56,176,170,100,159,123,200, 33,226,134,  1,225, 60,202,143,196,171, 13, 73,104,244, 54, 16,
+ 20, 12, 10, 90,161,217, 24,133, 54, 22,213,119, 68,221,210, 88,131, 64, 18,117,233,250, 11,244, 92,159,171, 12, 56, 38,213,151,
+ 32,235,162,  3,179,157, 98,220, 66,171, 52, 49,  6,182,206,211,155,134,149,171,198, 20,147,233, 73,160,204,100, 92,101, 41,199,
+244,225,102, 18, 70, 86,143,225,201, 91,187,158,221,170,125,240, 25, 62,169,125,228,161, 22,252,240,247, 66,216,235,197,  1,220,
+ 37,232,227, 98, 60,147,124,149,172,181,123,  7,167,139, 77,249,179,144,247, 30,206, 91,247, 24,201, 24,239,243, 58,112,229,250,
+185,255,252, 87,248,210, 79,253, 24,167,167,115, 98, 74, 92, 93,142,172,175,174, 72, 41,145, 35, 24,221, 18,182,  1,163, 91,  8,
+ 13,253,201, 13, 78, 79,230, 88,107,232, 27,203,124,102,  9, 33,147, 17,228, 36, 80,141,100,102, 44, 11,107, 80,100,156,139,  8,
+ 60, 66, 42, 92,128,139, 77, 34,101,207,172, 73,116, 86,178, 13,133, 21, 93,136,183,138,227,121, 33, 77, 22,133, 77, 66, 43,113,
+157,227, 81, 87, 11,222, 39,122,107,248,210, 75, 55,216,141,129,123,219,200, 38, 30,211,205,231, 12,191,251, 59,136,148,137, 34,
+ 50,134,192,197,234,138, 69,191,100,244,145,198, 59,210,213, 21,110,216, 50, 63, 57,226, 23,126,254, 43, 92, 13,142, 87,255,228,
+223, 61,232,155,126,237,199,249,  3,242,234,219,253,177, 48,173,143,113,138,118,116,149, 91,193,131,133, 75,235, 39, 91,199, 47,
+127,178,116, 84, 95,255,198,251, 79,119,106,164,106,174, 26,222,137,127,214, 62,115,131,163,217, 18, 45, 21, 39,203, 99,186,174,
+ 33,249,196, 27,151,111,113,181,115,220,219,236,120,103,187, 99, 27, 61,241,254, 21,249,114, 11,227,138,252, 52, 45, 91, 63, 40,
+ 47,254,113, 29,197,160,  6,170,204,225,185,103,224,248,  4, 22, 55,144, 41, 51,235,231,184,221,154,231, 23, 55,184, 55,172,249,
+100,211, 48,  2, 23,227,200,168,138,177, 80,223, 52,244, 70,163,133,198, 54,246, 90,154, 37,181,166,207,145,224, 29,182,233, 49,
+ 66, 33,165, 68, 38,137,238, 44, 70, 78,254,  4,245,172, 84, 16,115,192,200, 76, 96, 36,185,128, 18,153,156, 51, 46,  4,148, 46,
+197,114, 28,124,149, 84, 41, 98, 40,157,173,173,166, 72, 67,  8,100,114,137,191,214,154, 24, 35,103,179, 35,  6, 63, 98,103, 22,
+ 45, 19,219,214,242,154, 53,165,136,174,135,114,238, 68, 87,214,216, 48,124,188,181, 53,186,125,231, 45,168, 49,218,181,171,138,
+ 53,143, 93,213,220,249,105, 29,155,154,111,161, 36, 12,235,178,254,213,129, 45,179, 79,251,153,121,116,160,230, 69, 17,116,237,
+ 70, 23, 10,154, 69,216, 59,202, 77,254,239,147, 10, 73,233, 58,210, 10, 31,127,191, 60,198,250,209,143,189,136,219,166, 20,170,
+182,199,100,129,243,129,163,118,142,139, 17, 33,202, 77, 38,166,128, 50,134,144, 19,173,210,132,156,232, 40, 48, 88,223,116,104,
+ 50,209,121,164,146,248,237, 64,151, 33,248,192, 48, 12,100, 23,138,174, 63,120,140,173,174,117,141, 33, 54,179, 66, 24, 94, 30,
+ 99,154, 22,225, 61,169, 53, 40, 36,194,103, 98,215,209,166, 64,142,137, 36,  5, 86, 52,100, 34, 49, 70, 50,  9, 33, 53,201,101,
+132, 40,209,167, 46,122,  2, 17,169,  5,  4, 69, 78,  1,143,195, 40,205,104,106, 96,193,218,239, 31,112, 76, 31,242,  6, 76,179,
+210,112, 45, 93,188,246, 48,158,126, 93,174,244,213,204,224,  9, 11,166,169,129,  3,138,  7,201, 69,215,240,169, 45,115, 35, 29,
+247,213,170,213,133, 32,212,232, 10, 37,197,226,209, 28, 14, 32, 97,107, 97, 92,237, 55,200, 19, 28,222,127,231,151,127,142, 47,
+255,228,151,185,243,252, 41, 66, 10,134,157,103,125,181, 99,115,181, 65, 90, 89, 70,143,187, 17, 47, 18, 18,205, 51, 55,158, 69,
+105, 75, 99, 53, 90,  9,140,209,204,122, 91, 46,216, 25,130,243,180, 70,176,104,203, 72, 39,230,196, 16, 51,110, 40, 12,126, 37,
+  5,163,203,220,219,  4, 66,138, 88, 85, 51,134,180,198,167,196,213,170,100,  3, 68, 41,  8, 49,211,233,  4, 99, 66, 38,104,218,
+226,182, 55, 84,114,103,204, 25, 25, 50,198, 20, 68,160,239, 90, 98, 18, 60,183,236, 80,252, 60,175,126,251,187, 12,155, 21, 62,
+254, 53, 62, 58,180,182,164, 48,226,130, 39,196, 64,  8, 22, 55,  6,110,189,112,155,223,252,213, 95,226,127,221, 69,174,190,250,
+141, 18, 82,225, 63, 42, 29,246,251,244,106,108, 53, 85,169, 95,151,169,135,223,122,245, 96,184,201,212,209,103,158,138,167,249,
+115,119, 79, 57,233,230,252,249, 67, 69,189,228,123,132,253,207,107, 65,159, 32,205,219,139, 25,183,207,110,113,111,125,206, 11,
+183,110, 35,141, 33, 69,143,209,207,208,154,134,119,183,107, 86,247,207,201,110,132,243,119,159,110,142,193,163, 10,250,  7,125,
+172,109, 11, 55,229,131,158, 89, 99,203,236,252,198, 41, 60,247, 44,116,115,152, 29,131, 53,204,133,102,235, 29, 11,211, 50,132,
+128,160,152,141,188,189, 94,177,176,109,137,170,165, 40, 57,  0,146,146, 92,121,207, 51, 77, 71,163,138,103,135,167, 40,128,112,
+ 35,130,140,214,138,182,107,139,202, 32,101,180,149,132,209, 87,115, 67,135, 38,144,180, 71,187,128, 19,174,120,128,120,143, 68,
+ 16,125,198, 79,173,111,146,196, 93,177, 97,142, 42,161,133,100, 23, 71, 90, 93, 28, 33,165, 44, 73,153, 90, 40,148, 46,210, 10,
+ 33, 51,164,142, 16,  2, 47,158,157,114, 62,236,216,180,150,232, 28, 92, 14,123,203,241,237,199,136,166,158, 26,153,107,187,214,
+169,177, 58,144,109, 74,189,183,168,181,128, 59,184, 97,247,237, 62,  5,239,176,176,167, 74,134,155, 92, 31,175,155, 40, 11,210,
+ 85,219, 86,246,204,119,113,112, 78, 78,249, 28, 57,237, 77,196,198,239,237,216, 77, 63, 86, 33,105,219,186,233, 45, 56,199,209,
+ 98, 73,175, 53,224, 17,162,197, 84,200, 64, 73,141,243,158,214,180,196,232, 81,253,131,246, 16,  0,  0, 32,  0, 73, 68, 65, 84,
+100,108, 83,158,174,115, 35, 70, 74, 84,202,152,  4, 94, 25,216,172,  8, 33, 96, 98, 68,133,132, 19, 13, 93, 83, 35, 82,173,102,
+222, 22,189,228,242,228,  4, 21, 50, 62, 38,236,124, 86,130,128, 98, 66,180, 22, 81,137,108, 66,107, 76,166, 44, 38,138,214, 47,
+186, 18, 50, 32,200,120,231, 16, 82,144,210, 30, 82,119, 57, 20,163,154, 12,173, 86,140, 94,237, 45, 14,145, 31,173, 83,159, 10,
+187, 72,251, 91,227,245,162,227,193,159,123,249,228, 93,206,132,239, 75,185,191,113, 30,190,173, 74,150,247, 43,172, 96, 88,192,
+162,169,193,  3,166,116,230,187,117,245,231, 30,203,223,247,169,166,136,141, 15,  6,133, 60,198,215,217,255,248,151,248,205,175,
+252, 36,175,124,246, 69,180, 16, 12,206,227,198,192,250,114,139,119, 14,100, 41,232,243,126,129, 93,156,210,116, 45,120,137, 66,
+211, 46, 12, 90, 72, 78,102, 22, 99, 20, 18, 65, 99, 52, 33, 43,206,179,192, 71,207,189,181,195, 84,147,157, 88, 67, 37,118,222,
+ 19, 66, 68, 68, 65,200,137, 97, 72, 12,163,103,116,145,229, 92, 23,232,190,149,184,109, 96,187, 13,132,172,104,231,134, 35,147,
+203,218, 89, 11,180,146,244,141, 37,228, 98, 78,180,146, 30,163, 36,125,163, 88,180,  2,107, 53,214,104, 62,247,210, 13,142,102,
+ 13,247,239, 95,113,118,235, 22,171,139, 43, 94,191,255, 29, 70, 31, 72, 49, 34,149,192,168,128,237,122, 46,238,157,243,236, 75,
+119,249,167,255,217, 47,241, 63,255,241,215, 14,230, 50, 63, 64,175, 36, 31, 66,146,216, 75, 27,167,174, 93, 60,253,127,246,213,
+223,251,  3, 94, 61, 44,126,  7,200, 83, 70,151,194,174,245,117, 65, 23, 49,145,149,228, 91,111,190,195,173,217,155,220, 62,189,
+137, 80,146, 24, 61, 57,192, 24,  2, 55,150, 71, 44,187,150,203, 55,222, 46, 33, 34,181,160,231,167,253,197,219, 26,142,180, 27,
+247,197,226, 48, 20,228,250,251,234, 42,130,215, 66,120, 40,149,208,216,  2,253,206, 58, 56, 89,194,209,188,116,119,214, 22, 18,
+150,131,165, 21, 32, 21, 66, 55,100,183,229,184,155,227,134, 45,207,119, 45,247,124,224,221,114,147, 39,137,140, 53,134,133,181,
+116, 82,179, 11,142, 99,219, 97,155,  6, 17, 18,222,121,164, 84, 28,213,156,116,165, 37, 90,203, 98,171,225,  3, 86, 11,162,247,
+228, 16,144, 58, 34,  6, 79, 34,163,165,160,217, 57,  6,145, 49, 25, 84,140,  5, 89, 22,130, 81,149,102,167,164,149, 54, 64, 98,
+209,204,  8, 57,162, 77,195,224,  6, 90,101, 65, 39,134, 16, 88,116,115,188,223,146, 77, 67, 59,151, 92,185, 45,189,130, 43,173,
+ 88, 55,154, 75, 20,116,177,248,196,115,  5,222,194,246, 67,146, 28,141, 45,163,207, 41, 43, 33, 38, 16,110, 47,  3,155, 80,211,
+ 36, 30,156,233,216,218, 88,185,170, 77, 23,178,188, 23,227,186, 28,163,186,173,118,178,117,180,106,218,189, 95,188, 60,104,208,
+166,189,108, 38,127, 18,185,255,185,146,123,118,253,211, 64,182, 62,228,245,241,103,234,186, 90, 94,246, 51,232, 91,154,147, 37,
+189,210, 88,109,144, 66, 32, 69, 38,229, 76, 66, 84,189,122, 33,  7,168, 12,157, 76,184, 16,233,148,196, 20, 80,  8, 13, 40,165,
+ 80,126, 68,198,132,218,185, 50,178, 72, 96,148, 38, 26,141,233,122,218,182, 67,219,134,182,159, 97,140, 65, 90,131,182,134, 76,
+174,188,  7, 77, 32,147, 83, 38, 73, 93, 33, 39, 73,200,165, 99, 79, 66,236, 51,147,153,204,190, 34, 57, 70,198,228,240, 62, 16,
+115,172,235, 33,177,141, 99,241, 94,113,174,144,155,166,212,182,195, 44,229, 15,155, 77, 78, 86,131,217, 23,164, 97,210,  1,123,
+246,176, 80,240,143,121, 29,211,  7, 26, 99,  5, 97, 44, 24,191, 63, 96, 67, 47,102, 69,191,106,155,114,156,185, 80, 14, 55, 31,
+202,247, 18,135,242,119,198,106,103, 56, 86, 61,101, 13,122, 33,133,247, 18,241, 62,162, 70,249,215,127,251,183,248, 79,127,237,
+239,114,231,185,155,184, 49,224,124, 32,250, 92,127,140,215,211,  7,133,225,120,126,196,114, 54,227,246,209,146,153,109,144,173,
+194, 72,197,162, 49,204, 90, 85,227,196, 19,228,204,106,235, 24,221,  8, 34,147,125, 34, 10,193,213,182,132,183,196,152, 89,175,
+  2,171,171, 29,231,235, 45,187,221,136, 15, 30, 31, 18, 82, 72,238,189,189,226,222,102,  7, 17,108,149,151,197,224,  8, 89,113,
+113,233, 25,131, 99,244, 17, 55, 70, 92,242, 16, 51, 65,  8,  4,146,205,224,184,220, 56, 70,159,153, 55,146,209,121,180,146, 44,
+250,134,219, 55, 23, 28,157,206,249,196, 11,183, 16,237,  2,171, 90,124,101,192,175,118, 91, 72,145, 70, 23,111,128,103,159,191,
+193, 23,126,234,111,243,175,127,231,255,225,  7, 38,236,227,129,179, 73, 87,230,239,100,184, 84, 11,162, 76,188, 71,103,246, 81,
+ 15, 38,253,  1,247,151,135,127,127, 42,232,170,234,135,167,249,103,101, 49,139,201,135,161, 22, 77,177,139, 92,244,130,190,230,
+141,183,166, 97,181,185, 66, 10, 88,239,182,252,233, 95,125, 23,222,126,245, 26,181,122,234,  5, 93,214,180,182,182,219, 95,124,
+212,193, 65,158,115,189, 40, 85,207,110,161, 32, 12,251,125,212, 90, 80, 29, 28, 31,149,196,191,163,121,209,149,119,109, 41, 38,
+ 85,  1,137,110,176,148, 68,202,165, 44,137,131, 34,122,174,124,160,201,145,123,110,199,102,220,128,223, 33,117,135,147,154, 59,
+ 93,135,149,130,101, 99, 48,213, 67, 66,213,128, 43,163,138,217,212,188,183,215,130, 20, 50, 37, 60, 43, 71,114, 12,  5,132,168,
+118,221,132,136, 30, 35, 65, 75,172,143,200,154,149, 33, 43,129, 75,138,124,205,229, 82, 70, 99,164, 68, 91, 67,219, 24, 18,169,
+152,125,  9, 16, 66, 48,239, 91,156, 27,232,172, 45,102, 66,100,230,182, 37,166, 80, 56,181, 89,149, 99,218, 10, 98, 18,251,140,
+243,198, 22,136,254,144,179,112,152, 45, 17,124,173, 77,121,111,216,162,197, 94, 58,145, 39,130,167,170,103,220,193,251, 56,212,
+226, 63,233,190, 85,174,246,220,186,202,200, 84, 33,185, 54,181, 97,138,197,116,168,196, 40,155,242,107,217, 84, 50,221, 52,163,
+143,229,189,119, 99,181,205, 86,149, 53,175, 31,207, 79,226,123, 90,212,219,190,232,109,251,  6,164, 70,181, 13,141,177,204,141,
+ 65,203,150,156, 34,141,105,176, 82, 19,146, 71,150,119,147,148,  2,141,132,133,166,116, 49, 66, 98,115, 70, 33,203, 51,244,  9,
+147, 37, 42,122,162, 75, 88,109,112,198, 34,155, 14,211,207,104,141, 69, 89, 75, 59,235,137, 62,162,171,183,176,  8,177, 20,108,
+169,145,100, 66, 77,132,147,  2, 54,209,163,108, 49, 70,201, 57, 18, 67, 66,  8, 65,140,169, 64, 72, 57,227, 98, 32, 36, 79, 68,
+144,147,199,167,226, 74, 23, 83, 34,196,136,159,152,141, 83,210,148,143,133,240,246,145,141,187,210,158, 85,169, 38, 39,162,218,
+169,167,248,152, 33,  5, 15,221,244, 98,253,122,140,173, 70,  7,213, 47,190, 95,212,244,188, 74,216,112,187,253, 92, 52,135,122,
+  1,136, 48, 78, 58,244,176, 95,116,250, 33, 22,253, 20,245,247, 33, 68,160,230, 63,248, 18,255,245, 63,254,135,124,241,203,159,
+195, 24,205,110, 44, 33,  7, 41,102,178,200,164,148,137, 33,145,131,164,177, 29, 55, 79,110,240,220,233, 41,203,197,140,227, 69,
+139, 80,146,155,139,142,219,199, 29,157, 45,220,  8, 33, 96, 51, 68, 86,131, 99,227, 28,187,157,199,187,192,198,123,214,235, 29,
+219,245,200,229,197,150,132, 33,197,196,118, 51,224,119,142,113, 23,217,173, 71,132, 78,197,215,223, 39,148, 22,  8, 13,227,110,
+ 96,116,158,205,122,139, 31, 28, 62, 10,182,155,145, 97, 28,  9, 33, 51, 14,129,245,214,177, 25, 60, 46, 41,114, 78,  4,239, 25,
+ 35,228,156,104,173, 40,121, 29, 25,122,173, 88,180,154,101,111, 89,246, 51,238, 62,123, 11, 59, 59,226,232,228,140,123,111,191,
+ 77, 12,145,166,177, 37, 60,207, 71, 94,120,225, 25, 62,255,147, 63,198,239,255,206,239,253,128,117,234, 53,255,122,146, 25,197,
+176, 15,220, 73, 60,126,184,134,212,123,183, 51, 93,198,104,197,146, 51,188, 23, 62,133,189, 52, 72,215,131, 86,213,208, 27, 33,
+ 30, 44,236,126,196,125,231, 77, 94,253,206, 95,241,141,237, 21, 89, 57,122,107,113,206,241,199,175,127,135,237, 55,191,  5,126,
+252,224, 98,254,137,151,249,244, 79,124,145,123,127,245,215,143,184,121,124,200,243,154, 46, 67,227,184,151, 80, 93,187,140,229,
+  3,195,160, 90,  8,164, 44,207,162,105,192,206, 74,103,222,218, 18,176,210, 54, 85, 45,162,202,254, 77, 19, 81, 42, 17,108,203,
+ 11, 77,135,200,145,224,  7,124,138,164, 48,144,220,142,239,110, 86,228,113,139, 80,154,185,  2, 77, 65,152,132,182,180, 53, 23,
+192, 72, 69,140,137,166, 51, 52,  2,102,115, 83,199,203,213,252,171,250, 83,229,148,209, 58, 33, 82,113,238, 36,102, 68, 12,228,
+ 24, 80, 49, 34,114,177,162,176,  2,180, 80, 64, 68,  8,137,110, 44, 70, 91, 76,107,208,141, 65, 27, 77, 22,208, 54, 77, 33, 76,
+ 75,129, 49,138, 24, 35, 93, 91, 96,247,242, 22, 75,188, 31, 49, 82,145,115,105,150, 78,187,142,251,195,128,106, 44, 81,203, 26,
+ 21, 61,141, 53,171, 23,186,182,149,116, 60, 49,217, 15, 50,237,179,219,155,183,196, 74, 98,156,194, 46,114,189,156, 38,202,179,
+ 14,126,239,177, 46,155, 82,208,175,199, 52,182,172,215,144, 10,154,137, 40,223,188, 16,123,189, 58,147,180,211,151,117,234,170,
+211,155,169,121,244,166, 58,212, 81,211, 47,197,247, 62, 11,224,227, 21,245,190,173, 48,146, 41, 55,167, 89,143,178,134,179,174,
+ 47,129, 43, 74,208,155,142,148, 19,137, 92,154, 84, 33,144,100,218, 28,208, 57,128,200,180, 82, 33, 82, 36, 42, 69,147, 74, 97,
+143,128, 30, 74, 81,237, 81,120,173, 80,243, 57,182,105,208,198, 18,148, 98,214,119,228, 24,209,173, 37,197, 90,144,116,177,129,
+117,209,147,140, 33,121,143, 19,137, 49,  6,100,134, 40, 37,161,250,121,103, 37,137, 62, 84, 87,191,120, 93,184,  5,144,235,131,
+207, 41,226, 98, 66,145,145, 66,176,217,212, 52,171,237, 88,180,222, 34,215, 91,216,227,220,236, 15,108,103,227, 19,144,228, 14,
+217,237,135, 63,159,244,138,105,138, 91,181,101,145, 42, 85, 10,248,110, 40,139, 55, 84,134,168,171,172,244, 84, 11,119, 99,247,
+ 16,209,116,112, 79,183,225, 84,103, 85,227,  7,155, 69,156,254,228, 79,240, 63,252,246,175,242,210, 75,119, 42,241,180,204,187,
+189,247,140, 33,226,118,129, 97,240,108, 46,183, 24,221,115,243,198, 45,158, 61, 61,225,232,168,165, 51,166,146, 67, 51,179, 70,
+ 33,165,192,197,200, 16, 51, 99,130,245,198,115,126, 57,176,221,121,134,209,179, 90, 13, 92, 93,110,217,172,  6,182,187,  1, 63,
+122, 98, 78,108,199, 80,188,222, 47,  7,156, 27,  8,209, 17,125,201,  5,200, 62,161,148, 34, 69,201,102,181, 69, 74, 65, 74, 25,
+183, 29, 24, 54, 35,155,203, 17,183,113,184,113, 96,231, 29, 41,  4,182,155,145,113, 44, 23,  9,171,  4,189,145,236,198,136,208,
+146,152,114,229, 33, 85,243, 36, 37,105,172, 98,222, 27, 94,188,121, 68, 63,155, 33,237,156, 20,  5, 73,  4,  4,138,144, 18,219,
+209,113,231,217, 51, 62,247, 19, 63,206, 31,252,159,255,247, 15, 86, 97,143,213,  1,239,253,  2,119, 30,231,101,236, 62,170, 52,
+ 85,130,230, 24,203, 33, 60,107,246,100, 35,173,247,178, 34,216, 39,103, 77, 45,182,172,126,245,213,212, 67, 92, 27,238,212,175,
+115,181,227, 45,231,249,230,219,111,241,205,183,222,100,251,221, 55,201,227,250,209,223,195,122,197,223,254, 59,255, 17,183, 62,
+253,  9,190,251,141,111, 60, 30,107, 93, 86,  5,201,244,181,235,135,252,248,167,203,178,214,165,136,207, 23,176, 60, 65, 30, 31,
+145,151,179,131, 44,123, 85,138,130, 82,251,142, 51,133,210, 68,  9, 65,204,137, 24, 60, 97, 92,211,165, 76,218, 94,208,  4,199,
+184,189,226,221,237, 10,198,  1,225,  7,192,243, 66, 51, 99,214, 47, 57,178, 13, 90, 74, 66,202,215, 33, 44,157, 22,116,115,195,
+220, 42,218, 70,162,165,160,111, 37,186,122,150, 79,118,  4,201, 23,110, 74,218, 13,197,139,127,  8,197,162, 59, 23,200, 93,  9,
+137,105, 12,198,180,216,182,197, 54, 22,213, 53, 40, 99,139, 47,137,181, 40,169,200,185,204,238,181, 42,132,232,198, 54,196,224,
+209, 82,212, 16,180,132,175,239, 81, 18,197,253,115, 32,176,108, 91,132, 20,  8,163,112, 86, 22,228,176,235, 10,218, 41,227,158,
+137, 46,170, 13,172, 72,117, 92,193, 94, 97, 20, 40,  5, 53,199,189, 93,175,212,165,232, 83, 73,193,147,235,219, 48, 22, 79, 14,
+ 95, 47,  9,186,202,214, 68,222,  7,124,  9, 91, 85, 32, 84, 51, 25, 81,244,233,169,218,  2, 79,151, 58,173,170, 11,103,189,236,
+153, 74, 88,252, 62,116,233, 31,175,168,107, 93, 61,190, 21,204,106,234,143,214,204,103, 51, 52,146,185,181, 37,214, 84,148,141,
+ 55,201, 34,148,128,144,  3, 46,  7, 22,178, 60,160, 46,139,210, 77,231,140,164,108, 36,149,138,180,204, 38, 81,162,110,109,135,
+237, 59,178,178,100, 37,209,198, 48,166, 64, 86,229, 96,148, 36,164, 54,136, 24,217,230,136, 82, 18,231,194,117,198,201,232, 61,
+ 89, 22,214,189,203,  9,157, 82,129,226, 67, 34,197,  2, 31,249, 80,224, 31,159, 28, 32,  8, 49, 17,115,192, 42, 69, 22,153,115,
+ 63, 98, 90,131, 27,171, 94,209,213,212, 41,255,  4,126,209, 79, 18, 35,120,248, 94, 72,249,224,165,224,176,184, 79,  9, 91, 50,
+ 23,107, 67, 31, 96,187,131,113,183, 47,212,147, 43,216,195, 29,255,  3,159, 99,234,212, 39, 56,182,182,108,215, 16,252,190,187,
+249,217, 95,255, 69,126,235, 31,253,125,142,230, 61, 87,155, 29,219,245,192,110,112,108,119,158, 24, 51,195,102,100,183, 25,136,
+ 46,161,153,243,204,157,103,248,220, 39,110,114,231,164,165,181,  6,231, 19,177,118, 96, 62,129, 71,178,118,137, 55,223, 90,113,
+117,185,101, 61,  4,134,144,216, 14,158,205,122,199,230,202,177, 91, 15,248,224, 24,183,  3,193,  7,198,113, 32,120, 71,116,129,
+ 24,  3, 57,149,241, 71,172, 58,252,148, 34,195,110,199,118,189, 99,216,141,172,207, 47, 16, 66,225,156, 35,249,177, 34, 53,144,
+115,196,143, 14,165, 53,195,232, 10, 23, 67, 70,164, 80,180,179, 98,173,235,198, 72,211,106,  6, 95, 80, 39,170, 92,174,240,199,
+  4,141, 49, 40,173,137,178,229,153,219, 55,217,110,  3,110,216,161,219,134, 97,189, 97, 12,137,231, 94,184,201,115,159,248, 36,
+127,246,251,127,244, 24,216,245,191,  7,175,105, 86,220,170, 50,119,182,109,145,136,118,179,122, 24, 86,242,230,  4, 89,155,169,
+176,137,125, 65,159, 58,225, 44,246,168,209,251, 25,238, 72,138,229,235,197,101,249,111, 28, 74, 33,248,160,103,167, 75, 44,232,
+ 55,183,107, 94,190,243, 44,127,253,245,175,239, 33,245, 71,237,205,198,150,175,185, 53,123,100, 97,114, 15,211, 15,141, 39, 38,
+253,179, 86,165, 11,188,121,198,252,120,206,252,120,206,216, 88,178,177,213,209, 44,214, 17,218, 65, 54,192,100, 87,154, 98, 41,
+ 60,227,134,237,184, 97,117,117,159,221,246,156,215,238, 95,225, 55, 87,188,182,170,  5,189, 85, 28,205, 58,110,182, 61,199,205,
+156,214,182, 40, 37, 64, 89,186,156,176, 82,211,181,146,229,204,208,181,197,  0,108,222, 42,186, 86, 33, 98,194, 54,170, 18,147,
+ 51,209,  7, 68, 78,196,245, 72,206,137,184,222,146, 71, 71,118, 30, 65, 46,231,182,110,139,153,152,209,116,205,140, 44, 21,221,
+172, 67,100,133,181,  6, 41,101, 97,190, 91, 83,198,108, 85, 94,155, 98,192, 24, 75,162,132,112, 73, 81,124, 78, 93,  8,180,198,
+ 18,115, 44,  6, 98, 82, 18, 98, 36,  9, 73, 18,130,104,234, 57,118,212,150, 11,144,243,165,176,235, 41,173,208, 20,107,110,171,
+ 32,200,178,230,144, 85, 55,174,246, 50, 76,125,224,149,129,170,217, 21, 19,201,174, 22,236,209,213,  5, 85, 47,101, 82,148,130,
+158,134, 18,  7,157, 43,220,126, 77,134, 22,251, 28,  7,228,  1,121,234,192,202,217,249,  3, 31,136, 39,100,193, 77,126,  8, 19,
+195, 62, 61,110, 81,159,236, 64,219,190, 44,236,190, 41, 48,154, 82,220,232,122, 50, 25,171,219, 58,151,206, 40, 33,201, 57, 33,
+ 40,208,187,200, 25,159,224,140,200, 32, 51, 45, 18, 35,  4, 89, 42, 68,150,200,148, 17,  8, 68,206, 36,211,208,204,122,178,181,
+ 37,232, 72, 27,178,132, 70, 75, 92,138,164,156, 80,218, 20,233, 92,142, 32, 20,131,247,132, 84, 50,197,163, 47,182,177, 33, 38,
+140, 16,101,159,  8,144, 46, 34,140,  4,153,241, 46,144,114, 34, 11, 73,240,158, 24,  2, 62,  7,132,144,164, 84, 82,186,102,178,
+ 33,228,196, 54, 87,150,231, 24,107, 30,111,252,155, 61,103, 31,238,162,141,222, 23,228,233,207, 38,184,127,136,101,118, 30,195,
+ 30,154, 63,204,182,126,212,231,152, 22, 96, 83,229, 46,170,250, 38, 95, 31,124,165,216,255,226,111,254, 26,191,240,107, 63, 71,
+223, 88,222, 61, 95,177, 94,237, 24,135,192,118, 23,240, 99, 49,  0, 73, 49, 99,245, 12, 35, 91,142,143, 79,121,246,230,  9, 77,
+ 53,126,241, 46, 17, 66, 98, 12,153,213, 48, 18, 92, 34,184,200,253,203,129,119,207,215,220, 59, 95,179,190,220, 49, 12, 35,171,
+243, 29,187,237,192,110,189,102,231,  6, 98,240,184,193,177,219,108,  9,163, 71, 32, 24,135, 13,227,110, 64, 25,197,176,217,162,
+141, 41, 69,158, 76,  8,158, 97, 59,224,221, 64, 76,  9,231,119, 56, 55, 34, 20,228,236,  9, 99, 64,217,150, 97,187, 37,231, 76,
+ 38,147, 92,194,246,134,172, 45, 41, 22,109,104,132,162,121,175,227, 37,137, 68,107, 81,221,118, 51,179, 89,195,113,223,176,114,
+208, 88,195,141,211, 37,235,130,221,227,189,195, 15, 35,194, 24, 94,124,249, 46,119,238, 62,199, 87,255,240, 79, 63,160,144,255,
+123, 84,208, 31,190,127, 88, 83, 70,117,218, 20,173,175,148,229,240,173,  9,137,165,123,105, 74,  1,166, 66,213,147,167,245,225,
+ 75,240,225, 29,142,148, 31,192, 17, 72, 31,204, 90, 23,192,253,243, 82,208, 39,  8,246, 81,133, 93,235,253,197,  3, 30,204,224,
+158,138,251, 84,224, 39,178,148, 22, 37, 11,226,248,  8,121, 60,227,120,214,211,118, 45, 94, 75, 22,198, 20,103, 53, 33,247,172,
+107,113,192, 68,140,161, 60,155,213, 21, 92, 94,192, 59,239,146,175,118,140,111,190, 11,171, 53,187,243,251,229, 18,208,104,132,
+ 41, 49,167, 47, 46,207,138, 23,187,208, 72,105,145, 57,209, 91, 75,171,  4,139,185,165, 49,154,227,153,102,209,149, 46,189, 53,
+146, 89,171, 17, 33,151,112,172, 92,208, 39,191, 29, 32, 38,194,197, 21, 41,248,242,252, 67,177,127, 45, 53,180, 65,182,  6,221,
+244,101,162,208, 55,228,148,153, 29,117,228, 92,164,161, 77, 99,137, 41, 34,170,155,232,148,182, 23, 67,198, 71,143,182, 22,239,
+ 35, 81, 36,180, 82,248,148,208, 82,145, 36,140, 62,208, 24,197,152, 34, 43,239, 49, 82, 18,173,134, 93, 93,  7, 93, 91,189, 54,
+100,121,206, 34,237,253, 54, 52,101,124, 17,198,130,130,140,245,207,146, 42, 90,114,101,107,224, 77, 61, 39,167,247, 74,230,234,
+219, 94,211,218, 38,227, 26, 89,223,139, 41,187, 60,213,116, 52,217, 20,216,125, 50,234,210, 83,  8, 75, 40,159,127,116,123,111,
+248,244,148, 92,243,100,253,223,245,122,127,239, 90,253,120,240,187,172, 29,122,215, 94,207,134,111, 44,230,164, 36,153,155,134,
+144, 60,173, 52, 52,218,144, 43, 33, 45, 19,203, 27,149,  2, 22, 24,114,230,148, 18,119,106,116,131, 77, 32,132, 36, 10, 48, 33,
+ 35,173,161,233, 58,178,212,133,140, 97, 52, 57,197,210, 36, 42, 81, 50,235, 41, 40, 76, 36,145,133, 64,145, 25, 70,135,212,130,
+113, 61, 16,157,135,152,104,164, 38,133,128,212, 18,124, 68, 24, 69,172, 51,110, 41, 51, 62,100,198,232,200, 41,225, 83, 68, 85,
+253,253, 54,184, 98, 73, 26, 61,107,231, 56,110, 91, 54, 87,219,178,241,220,184,223,128,127,163,  7,168,126,176,115, 57,132,227,
+167, 66, 29, 83,  9, 37,152,110,138,135,  7,214, 33,209,238, 81,159, 35,213,219,238, 68, 70, 65,215,195,178,144,127,126,241, 31,
+254, 26, 63,251,247,126, 26,107, 13,171,237,192,213,197,142,171,119, 46,137, 41,163, 26, 77, 12, 17,239, 60,182,233,152, 47,122,
+180,208,104, 97,144,141,194,214,113,105, 78,  5, 54,223,121,207,224,  3,195, 16,185, 28,  6,238, 95,172,216,238, 70,220,206,177,
+217, 57, 86, 23, 23,236, 86, 27,114,242,  4,225,233,218,  6,211, 25,148, 82, 52,125,135,247,174, 54, 71,153,209,  5, 66,130, 76,
+ 70, 41,141,247, 99,185,249,167,200,224,118, 72, 36, 99,204,196, 16,112, 33, 32, 19,120, 95, 46,122,214, 26,164, 82, 12,219, 29,
+237,220,226, 93, 68,106,139, 54, 18,211, 88,178, 47,198, 69,227,152,104,172, 38,102,232, 26, 67,170, 70, 70, 25,129, 86,154,163,
+206, 50,107, 20,111, 94, 12,197,173,110,222,178, 25,  2,227,118,131, 27,  6,114,200, 36, 41,120,233,229,187,156,156,221,226,223,
+254,233,255,123,176,115, 63,134,220,205,216, 58,135, 85,223,191,156,234,  7, 10, 93,189,244, 77, 14, 90,211,248, 71, 83,138,248,
+196,241,152,  8, 75, 91, 87,153,198,149, 56,102,108,233,170,115,117, 33, 52,242,193,194,254, 97,  7,226,163,164,101,239, 87,160,
+223,239,  2,192,161,173,241,251,  4, 55, 77, 36,190,195, 56,225,105, 68,160,229, 62, 76, 73, 29,252,158, 48,197,143,125, 62,135,
+229,156,103,231, 61, 95, 60,157,113,199, 26,238, 52,150, 99,149,105, 51,220,167,186,130,229, 10,243,250, 88,216,244,155, 29, 92,
+ 92,193,197, 10,222, 57,135,221, 21,220,187, 40,138, 21, 95,231,198,203, 57,116,182, 56, 32,246, 51, 26,213,176,108,150, 88,163,
+209, 90,161,132,102,222, 54,156,206, 52,243, 86,115,107, 97, 56,157, 25, 58,163, 88,106, 65,171,196,117,152,156,212, 16, 92,100,
+112, 35,164,204,112, 85, 52,253,121,231,136,187,  1,157, 32,197,132,210, 22,221,119, 24,221, 96,186,242,115,178,160, 93,180,  4,
+151,200,  6,172, 46,238,137, 82, 10,132,144,228, 92,  8,212,185, 74,100, 75,100,121,172,  1,118,  5,193,141, 41,225, 40,242, 59,
+ 41,139,171,103,202,153, 31, 62, 94,242,134, 27,137, 33,150,139,162, 82,123,155, 87, 33,106, 86,123,141, 36,213,166, 32, 41,209,
+ 23,162, 27, 53, 73, 45,248, 82,108,141, 41,235,210,135,242,113,162, 42, 12,130, 43,191,214,162,204,225,117,165,197,171,106, 94,
+211,217,162, 22,162, 94, 24,162,171, 94, 38,234,192,190,117,202,218,144,149, 60, 39, 31,140,155,126, 82,208, 77,195,123,  4,107,
+ 85, 25,114,184,198, 63,122, 81,175,217,214,232,174,124,179,141,133,182, 45,100,  8, 93,216,202, 66, 10,172,178, 69, 38,  6,248,
+ 28, 81,  8,114,206,136, 92, 10,231, 82,137, 98,  9, 91,195,221,149,177,184,148,104,178, 36, 40, 73, 86,  6,169, 53, 65, 22,141,
+114,204,  5,186,153, 76, 15,144,146, 44,192,199, 88,158,169,139,236,182, 91,116,134, 97,181,194,185,  1,157, 18,109,130, 93,112,
+ 36, 81,100,115,187,156, 80,185,104, 40, 99, 42,  8, 66,164, 72, 44, 38, 19,126, 23,  2, 62,122,172,182,184, 24,112, 49, 96,132,
+228,254,110, 44,208,112,240, 48,248,239,157, 95,244,199, 38, 53, 29,192,228,135, 80,250,161, 51,216,225,143,215,142, 75,122,191,
+ 24, 14,255,254,251,125, 14, 45, 31,180,185,109,116,133, 53,  3,255,232,191,251,199,124,249,239,254, 56, 66, 10, 54,187, 66, 86,
+ 27,182,  3,126, 24,201, 72,114, 44,207,217,152,150,174,233, 88,118, 45,243,206, 98,149,162, 81,138,163,185, 65, 74,216,140,137,
+139,157, 99,181, 25, 89,173, 70, 46, 87, 27, 46,175,182,172, 47, 55,108,174, 54,184,193,179,189,218,144,114, 68, 91, 73,215,105,
+206, 78, 79,233,230, 45,177,118,118, 66, 64, 59,111, 57, 57, 91,114,116,180,164,157,245,204,231,109,153, 26, 12,  1,173, 53, 82,
+105, 98,  8, 12,110,192,104, 67, 72,133,149, 47,201,104, 83,102,143, 46, 56,146,143,  8,138, 89, 70, 99, 53, 57,129,181, 13,218,
+ 74, 36, 26,219,107,132, 79, 56, 37,233,181, 70, 72, 65,240, 48,239, 20, 86,203,234,107, 81,160,206,222, 42,146,144,172,118,129,
+227, 70,113,231,236,152,171,144,185,255,238, 91,144, 50,209, 39,146, 16,188,240,242, 93,222,220, 57,222,249,214,183,247,108,233,
+143,  4,193,235,125,231,  8,223,223,162,174,171,  4, 72,176,119,239,210, 53,230,178,111,202, 33, 89, 52,172,  7,116, 99, 81,214,
+ 80, 78,229,224, 53, 77, 37,140, 86,222,134,154,172, 56,217, 67,159,143,114,226, 58, 52, 96,202,249,209, 28,148,235, 51, 81, 62,
+136,  2,168,131, 75,132,170,249,217, 15,195,154,178,146,159,174, 61, 33,234, 97,207,164,104,169,123, 37, 86, 71, 52, 59, 43,185,
+ 24,198,150, 70,168,111,249,212,188, 71,137,204,204, 88, 82,246, 52, 82, 35, 85,226,237,161,100, 93, 20, 31, 12, 15,155, 17,214,
+ 99,201,143,184,218, 20,121,213,184,171, 69, 63,236,207,227,163, 57, 52,  6,161, 53, 89,107,110,206,102,156,205,110, 16,210,200,
+113,115,132,209, 22,169,  5, 51, 93,236,143,159, 59,110, 57,158, 91,140,148, 28,155, 34,101,235,141, 66,  2,214,  8,198,173, 39,
+164, 76, 10, 17,191,243,132,237,142, 52, 56,198, 97, 68,134, 88,209, 77,176,179, 35,162,177, 36,219, 32,109,131,182,229,204,110,
+109,233,198, 91,107,241,201,151, 44,246,144, 48, 74, 21, 46, 19,144, 66, 32,167, 72,  8,190,102, 71, 21, 62, 66,  8,  1, 41, 36,
+ 46, 38,100,149, 52,134,156, 80,202,240,218,110, 75,206,133,100, 25, 99,220, 39, 82,198,253, 24,  5, 68, 33, 26,250, 58,  7, 23,
+170, 92, 18,109, 83, 81,230,118,127,182,249,176, 39,186,201,138, 22, 73, 91,160,121, 79, 33,197, 37, 15,186, 50,218, 85,157,161,
+ 79,219, 48,109,235,252,190, 94, 68,115,101,243, 78,113,197, 70,236, 35, 90, 39, 39,184, 84, 77,104,158, 40,116,105,154,229,203,
+247, 94, 80, 31,171,168,203, 26, 61,215,232,253, 28,204, 40,140, 49, 44,218,  2,187, 47, 77,143, 39,160,165,194,  5, 71,163, 44,
+ 46,249, 50, 43,215, 18,153, 18, 67, 10, 52, 74, 32, 16,180,218, 84, 41, 69,177, 50,148,202, 64,215,147,148,169,  4, 69, 65,174,
+ 10,176,156, 19, 89,  9,156,243, 36,  4,113, 44,249,217, 97,220,161,115, 34,143,174,  4,105, 92,173,200,162,232,209,149, 44, 76,
+247, 40,192,202,140,143,153,  4,168, 92,179,215,115, 66, 10, 69,  8, 14, 41, 36, 57, 11, 16,146, 49, 12, 40, 33, 42, 11, 62,178,
+114,190,220, 18,165,132,203, 45, 79, 53,128,224, 73,110,111,239, 55,163, 63,156,135, 79, 29,199,244,107,127,208,173, 79,139,225,
+ 48,  4,230,  3, 47, 10,245,192,189, 38,210, 37,126,227,191,249,175,248,209,159,248, 17, 66,202,108, 54, 35,187,173, 99,125,185,
+197, 13,  1, 33, 53,255,226,143,255,128,119,223, 57,231,135, 63,253,105, 22,221,156,190,109, 49, 70, 49,111,123,158,191,187,228,
+185,211, 25,173,149,196, 12, 87, 99,145,164, 93, 94, 14,236,134,145,113, 40,196,183, 68, 34,134,140,180,144,146,231,228,228,152,
+ 91,183, 79, 56,154,247,244,199, 29,179,101, 83, 58,145,197,140,174,181,156, 30,207,120,249,165, 27,116,179,134,101,107, 56, 58,
+233, 11, 60,158, 18,253,172,229,232,104,198,209,217, 12, 55,122,198,113,192, 42, 77, 74,169, 92,242, 83,113,170, 75, 33, 21, 84,
+ 47,103,140,153,149,176, 10,153, 11,226, 36, 20,136,140,115,158,119,222,190,224,237, 55,222,229,106, 53,224, 83, 38,136,204,209,
+172,225,116, 97,136, 49,179,113,153,182,209, 24, 45,  9,185,232,106, 82, 12,156, 44, 13, 74,181,172,119,153,205,230, 28,211, 52,
+108,215, 91,186,174,229,243,159,255, 33,254,229, 63,255,221,131, 46,189, 50,119, 77,133,173,229, 65,183,152, 14,224,121,165,190,
+255, 69,125,234, 92,197,193,148, 32, 79,197, 91,149,116,191,147,101, 41,242, 70,213,228,190,218,137,231,202,172,159, 58, 41, 57,
+ 29,176,149,215,225,253, 30,178,140,241,195,179,230,167,162,124,  8,161,127, 80, 81, 79, 15,117,234, 83,246,245,117,114, 76,189,
+ 68, 60, 28,190, 49,217, 49, 43,246,182,207,141, 41,228, 45,219,195,141, 19, 56, 62, 46, 68, 64, 91,207, 73,219, 66, 95,212, 39,
+243,198,114,167,147, 44,148,193,103, 95,145,118,141,206,153, 83,  5,175, 93,108, 97,189, 43,251,107, 51,192,246,162, 64,239,163,
+175, 73,145, 60,232,224,135, 42,235, 98,209, 35, 90, 67,163, 45,103,221, 17,173, 50,156,204, 78, 24,220, 64,163, 20,198, 52, 44,
+187,150,103,142, 59,218,185,161,183,146,165, 41, 16,247, 92, 74,148, 20, 52,178,176,222,165, 20,236, 86, 14, 23, 60,195,213,134,
+205,214, 49,120,199,214,121,  6,169, 25,141,197,156,156,225,108,139,154,117,228,166, 37,117, 22,165, 53,170, 83,  4,169, 42, 87,
+  2, 68, 46, 36, 89,109,  4,110, 12,229,222,153, 50, 41, 70,114,202, 40,169, 74,209,206, 16,146, 32,  2,161,252, 69, 66,206,132,
+ 24,105, 85,203, 16, 35, 89,150,224, 18,  7,133,111, 21, 42,249, 55, 86,168, 61, 76,  5,180,114, 52, 76,253, 51,165,247, 73,103,
+162,194,235,218, 20,251,221,209,237, 17,150,237,118,191,246, 38,235, 87,106, 55, 62, 93,152, 51,133,148, 39, 42,193,120, 74, 43,
+204,106,210,204,213,200,214,184, 39,203, 77,232,231, 97,163,244,164,208,187,156, 28, 40,167, 53, 28,222,  3,193,127,188,153,186,
+168, 80,159, 85,213,160, 62, 35, 91,203,210, 22,155,193,148, 18,141,148,236,188,163,179, 45, 57,  7, 20,162, 24, 20,196,136, 20,
+ 25,133,192,133,132,210, 26, 89, 18,  1,208, 82,145,149, 70,154, 14, 45, 21,194, 20,232, 93, 40, 81,185, 35, 69,170, 22, 98, 34,
+231,  2,153,198,156,241,187, 21,126,181, 34, 12,142,148,  2,140, 59,178, 20, 52, 66,213,247, 81,128, 44,198, 10,  8,139, 34,151,
+ 46,159,140, 76, 25,169, 21, 49, 59,188, 80,197,  9, 79, 21,205, 37, 66, 16, 83, 36,231,204,214,  7,146,148,120, 41,201,209, 23,
+104, 44,135,167,151,  3,156,158,194,225,122,  8, 49, 30,118,233,106, 10, 54,168,238,117, 66, 92, 91,232, 62, 80,196, 15, 97,202,
+135,255, 51, 21,110, 55,250,154, 25,255,219,255,227,127,203,103,191,244, 67, 92,173, 71, 54,235,129,213,197,154,148,  5, 74, 42,
+ 84,107,144, 82,240,202,157, 23,249,230,171,175,146,183,129,231,238,222, 45,145,186, 73,208, 26,195,209,204,160, 43,187,125,187,
+243,108,182, 35,187,109, 96,179,219,177, 93, 13,108,215, 35,227,206, 21,196, 71,102,194,224,153, 45,123,218,206,210,116, 37, 41,
+ 74, 27, 69,215,106,150, 71, 29, 71,203,134,227,147,142,211,101, 87,235, 76, 70, 40, 65,219,232,107,216,207,206, 12,183,110,204,
+217,236, 28,141, 53,164, 24, 73, 89, 16,146, 39, 71,129, 79,  1,171,245,181,242, 65, 43, 69, 22,  1,173,  5,198, 42,114, 76,172,
+ 55, 87,188,251,246, 61,190,249,173,111,241,246,189,123,228,112,194, 91,239,188,197,159,126,237,235,188,253,250, 57,175,223,119,
+108,178, 36,250,132,209,  2, 45,  4,179, 70,145,144,164, 44, 88,111,182, 40, 45,240, 94,208,205,122,238,223,187,143, 54,  6,101,
+ 20,155,213,142,211,103,142,249,161, 31,253,  2,127,244,127,253, 43,246,246,177,178, 22,109,189,191,249,139,135,138,247,148,  8,
+246,253,236,210,101, 13,114,158, 12,105,186,166, 88,155,202, 50,234, 98, 57, 43,135,175,150, 48,  4,104,106,252,100,161, 32,215,
+206,190,126,142, 48,148,143,203, 31,115,246, 56, 17,133,166,  3, 46,231,247,118,237,239,167, 48,121, 95,248,253, 96, 46,254, 65,
+170,148,154, 33,129,109,144,207,222,166,187,115, 27,223, 26,154,231,239,194,209, 17,185,179,176, 92,148, 75, 75,219, 86,  8,190,
+224,218,109,163,184, 99, 13, 89,148,144,148,153,180,196,228,232,114,102,244, 35,223,121,103,  5,235, 45,172,214, 69,165, 50,214,
+174,157, 15,136, 59,158,183,112, 60,  3,173, 17, 89, 48, 95, 44, 48, 18,230,166,167, 51, 22,171, 91,250,166,101,222,180,156, 29,
+181, 52,109,153,165,207, 91, 93,117,233, 25, 35, 36,173, 46,170,141, 20, 34, 97,240,116, 22,214,219,200,102, 53,176, 14,130,181,
+208,140,237,130,173, 49,168,126, 78,104, 90,152,207,  8,214,208,245,229,188,110,122,139,208,  6,137,  2,161, 11, 74, 39, 36,126,
+140, 68, 23,145, 58, 17,171,127,134,172,218,251, 12,136, 84, 26,174,152,203, 94,156,124, 66,114,245, 24,145, 90,178,245, 14,159,
+ 35, 57, 73, 86,222,145,195,193, 37,110, 74, 41,203, 83, 84,111,229,253,200,154,138, 54,249,146,200,122,145, 84, 21,154,207, 19,
+131, 93,149, 61,213, 53,251,172,245,201,106, 54,184, 66,138,147,169,102,213,223, 42,163, 14, 83, 59,125, 65,105,114, 69, 40,144,
+189,154, 52,241,182, 94, 48,235, 91, 55,233,231,159, 70, 19, 56,201, 74,165,126,176,210, 63,180, 94, 63,222, 76, 61,197,242, 64,
+250,190,108,192,166, 72,219,140,144,180, 66, 35,117, 33, 59,204,108, 91,152,199,128, 86,250,186,227,141,117,163,105, 33,200, 34,
+ 35,181,166, 81,229,176,210, 82,161,108,131,208,117,  6, 83, 97,246,156, 33,107, 73, 16,133,185, 78,206, 36,191, 35, 58,135,173,
+ 49,151, 54,130,202, 69, 83,169,100,137,122, 53,186, 41, 35, 19, 99,105,148,197, 42, 89,200, 24, 33, 34,201, 36, 37, 25,221,128,
+150,138,157, 47,238, 95, 69,108, 86, 72, 30, 84,205,186, 32,179,137,177,248,133, 79,190,240, 62,214,195, 85, 60, 26, 22,252, 94,
+100, 78,127, 80,183, 62,253,155, 83,161,158, 76, 60,168,112, 97,245,103,102,116, 15,126, 93,239,215,165,191,223,204,189,126,175,
+255,244,127,250,103,124,250,243,159, 96,189, 30, 73, 49,226,199,186, 17,115,198, 13,142,236, 51, 82,106,218,166,229,243,159,126,
+133, 23,158,123, 14, 66,145,192, 44, 22, 45,199, 39, 61,189, 53, 37,216,200, 71, 46, 86,158,213,214,115,181, 29,217,108, 11,219,
+118,216,248, 98,235, 43, 50, 74, 26,186,182, 65, 73,141,109, 53,243, 69,135,212, 69, 54, 54,235, 44,243, 70,179,104, 45,173,214,
+ 88,163,144,162, 16,216,250,198, 96,132,160,107, 45, 93,163,177, 82, 18, 98, 98,183,246, 88, 93,180,180, 41, 70, 82,200, 37,164,
+ 66, 89,150,139, 14, 55, 56,208,138, 93,220,210, 74,193, 56,236,248,235, 55,223,224, 27,175,189,137,115,130, 69,119, 74,202,146,
+174,189,205,167,190,248, 57,140,232,145, 33, 51,140, 27,190,246,221,111,242,187,127,242, 85,126,255,207,254,156,215,190,253,  6,
+139,155, 55,121,246,230,172,192,138, 62, 17,114, 96,240,137,243, 33,112,121,190, 41,132, 66,183, 37,230,178,158,118, 59,199,237,
+ 23,111, 50, 34,248,238, 95,252,101, 41,228, 90, 87,139, 74, 14, 32,121,177, 55, 47,250,155,122, 77,136, 65,174,157,205,209,178,
+204, 43,115,101, 15, 55, 13,180,245, 18, 98,106, 71, 62,133,  8, 81,101, 94,162, 30,176, 57,215, 61,149,246,100,177,143,178,111,
+ 30, 62,224,166, 78, 61, 61,162,160, 95,255, 61,249,232,207,251,190,204,119,  3,243, 99,110,188,242,  9,126,248,246, 29,190,253,
+181,191, 68,157, 29, 97,206,110,115, 98, 12, 27,219,151,238,124, 54, 47,  5,162,105,234,104, 66, 50,102,193, 12, 74,151,156, 18,
+131, 27,145, 49,114,127,183,225,254,118,203,187,111, 92,130, 91,151, 46, 48,184, 71,191,183,198, 22,248,184,235,160,179,  8,171,
+104,141,229, 70,183,224,164, 91,128, 16, 44,154,158,152, 50,243,217,156, 89,103, 48,189,229,120,102,174, 57,138,157, 81,104, 45,
+208, 82, 48,207,165, 46,249, 16, 89,173,  3,110, 72, 92, 37, 73,150,134,119,101,135, 71, 34,186, 35,180,106, 80,182,193,152,  6,
+219,245, 88,163,176,189, 98,244,133, 79, 33,148, 98, 76, 25,159,  5, 57, 39, 92,134,232,227, 53,  7, 69,146, 10, 89,174, 18, 34,
+179, 20, 72, 41,138, 71, 72, 44,235, 33,231, 72,111, 90, 20, 10,153, 18, 46,197,194,127,  9,129,148, 51,126,234,188, 75,128, 67,
+ 69,125,234,154, 17,236,139,182,210,101, 77,181,213, 57,179,179,229,158, 28,235,154,149,170, 20,126,165, 10,107, 94,202,  2,  3,
+ 52, 85,195,158, 37,184,109,121,198,119,110,208,156, 29,163,250,134, 72, 53,230, 26,134,253, 40,114, 28, 10,223, 44, 85, 19,175,
+ 92,247,166,148,251, 11,166, 60,224,155, 60, 41,178,251,136, 46,253,227, 23,245,105,227,236,226,245, 77, 56, 91,195, 38, 68, 78,
+251, 89, 97,192, 43,137,150, 26,159,  3,173,178,236,130, 43,146, 77, 33,137,169, 20,  0, 45, 96,222, 90,178,200,104,101, 48,218,
+146, 84, 49,143,209,182, 33, 27,133, 20,  5, 34, 79, 90,144,124, 42,186,116,  9,195,232, 72, 34,209,110, 86,140,163,195,  8,129,
+161, 28,204,198, 40,230, 82,146,234,173, 75, 26, 75,175, 13, 66,168, 66, 48,205, 25,165, 37,129,196, 38,  4, 58,165,217,166, 29,
+ 99, 40,183,185,109,  8,200, 20,113,201,177, 75,197,168, 38,196, 64,204,137,171,177,134, 11,140,190,220,  0,121,136, 96,118, 88,
+200, 31,158,121,124,148,228,166,199,133,225, 15,217,235,135,240,250,196, 70, 57,212,211, 78, 48,210,225, 60,253,240,224,123,224,
+123, 50,176,163,  0,  0, 32,  0, 73, 68, 65, 84,115,164,189,222, 83, 38,248,220, 23,249,103,255,253, 63,225,211,159,121,158,221,
+ 24, 73, 49,177,219, 56,164,148,104,173,  8, 46,224,  6,143,214,154,228, 19, 90, 27,218,166,132,237,100, 47, 88, 44, 91,238,156,
+206, 57,154,183,180, 86,147, 82,102,179,173,  5,125, 28,217,237, 60,209, 21,166,188,146, 18,221, 72,154,214,150,204,230,222,114,
+122, 54,199, 52,134,174,211,116,173, 98,217, 55,180, 70, 23,251, 86,171, 80,170,216, 65, 42, 41, 74,144,146, 16, 52, 74,161,180,
+160,109,202,218, 72,128,214,138,221,232,203,104, 50,102, 98,246,164,144,241, 62,150, 28,247, 52,178,176, 13,243,126,198,253,213,
+134,251,235,129,147,238, 22,183, 78,239,114, 60, 63, 99, 27, 50,175,159,191,198,215,223,254,255,184,120,253, 93,222,125,247, 91,
+ 52,218,224,162,103,227,182,133,212,233, 19,111, 93,173,184,247,250,134,175,191, 49,114, 30,203,220,178,213,162,192,156, 72, 98,
+ 18,196, 44,216, 92, 92,177,186, 56, 39,231,116,205,156,127,229, 51, 47,243,175,254,197,239,213, 53, 38,139,215,192,195,228,185,
+148,254,102,139,186,148, 92,  7, 14, 40,138, 76,200,214, 20, 55,226, 30,134, 55,166,116,234,145,194, 70, 86,213,152,101,242,224,
+ 14,110,111,179, 58,249, 55,124, 20,168,242,208,233,112, 26, 33, 61, 60, 83,127,148,  3,226,  7, 21,246,135, 47,  2,147,243, 91,
+215,193,236,  4, 94,121,158,159,121,238,121,250,254,  6,183, 94,254, 52,179,179, 51,190,112,242, 28,255, 38,  9,100, 63, 47, 35,
+ 60,211, 66,183,  4,219,178,180, 13,163,105,120, 70, 41,206,133,228,118,142,136,228,233,  1,233, 70, 24, 29,127,248,237,243, 82,
+208,183, 97, 63, 51,127,228, 25, 44, 96, 62, 43,207, 91, 73,116,215,209, 41, 77,171, 13,141,180,204,236,  2,165, 36, 77,219, 50,
+239,123,148, 81,180,141,166,239, 53, 86, 23,189,122, 57, 11,  4,115,  9,207, 14,130,185,147,156,135,192,189,181,227,124,204,140,
+ 89,178,217, 70, 92,130, 17,129,145,  2,221, 25,154,121,135, 54,154,153, 81, 72, 83,116,226,178,178,177, 99, 76, 24,163,113, 57,
+ 19, 82, 38,250,226,200, 72,206,252,255,196,189,105,143,100, 89,122,223,247, 59,219,221, 34, 34, 35,183, 90,123,157,238,153,238,
+153,158,149,228,144,179,144,166,104,120,100,137,180, 32,201,162, 12,193,134, 97, 24,134, 13, 88,111,253,  9,244, 73,252,206, 48,
+224, 55,130,  0,  3,150, 44,195, 16,  8,129, 34,  9,209,195,197,163, 25,206,210, 51,189, 86, 87, 85, 86, 85,102, 70,196, 93,206,
+234, 23,231,220,140,172,154,154,149, 51,102,  2,133,206,174,206,234,138,136,123,239,121,158,231,255,252,151,228, 35,  9, 89, 12,
+110, 60, 41, 41,164,150,  8,161, 80, 36, 98,146,196, 20,209, 82,150, 59, 39,226,136,136, 40,217, 20, 82,154, 75,146, 84,242, 24,
+ 50, 99,189, 92,239,144,178, 27,206,140, 28,201,217,174,178,236,186, 67, 89,205, 76,229, 62,104,171,178, 35,175,138, 29,111,217,
+191, 27, 85,238, 99, 83, 28,232,138,163, 92,101,  8, 77, 69, 24,166, 76, 92,156,166,108,208,100, 10,212, 95,215,121,143,222,180,
+ 89,233,160, 18, 52,203,146, 98, 90,216,244,198,228, 95, 84,217,159,225,106,199,254, 51,162,107, 79,153, 64,205, 60,167, 37,167,
+191,245, 25,250,119,238,253,156, 69, 61,148,142,218,134, 43,198,173,234, 26, 98,140,172,234, 38,239, 37, 83, 96, 97, 58,156,183,
+153,  9, 95,170,137, 86, 57,142, 47, 23,118,141,198,160,181, 34,206,246,130,166, 34,136, 12,125,250,148,167,233,148, 98,182,116,
+ 77, 96,221,148,189,159, 99, 68, 90, 71,155, 66,209,  3, 43,144,217,  0, 36, 20,153, 81, 43, 21,149,169,152,164,192,200, 60,249,
+ 67, 98, 12, 62,243, 96,100,162,119,  3, 83, 76,196, 24,153, 98, 32,132,132,141,150, 62, 70, 76,138, 76,209, 51,134,192, 16,  2,
+202, 72,236, 80,144,138, 84,178,117, 67,202,123,173,217, 60,227,122,227,243, 60,210,206,143, 43,236,241,175, 49, 49,137,178,195,
+153, 95,135,247, 69,255,250,188,235, 23,159, 62,208,174, 31,124,115,131,162,203,205, 92,138,124,247, 27,191,206, 63,253,253,223,
+229,213, 87,110,176,157, 44,206,102, 66,141,181, 33,155,196,184,128, 27, 61,206,122,188,139,153,232, 41, 43,110,223, 62, 98,217,
+214,220, 57, 57,224, 83, 47, 31,113,247,176, 99,213, 86, 24, 35,241, 46,107,206,123,231,217,246, 19,211,224,  8,  4,170, 90,114,
+124,208,113,120,188,100,213, 54,180,139,154,170,169, 88, 46, 27,218, 54,103,149, 47,154,108, 65, 89, 75, 73, 91,101, 98,150, 20,
+100,199, 58,178, 44,199,199,116,245,207,148, 18, 74, 73, 92,202,122,220, 36,  4, 55,110, 46,104,186,134, 36, 53,253, 48,224,220,
+136,212,146,187,119, 94,198,232, 21, 62,118,172,218, 99, 22,102,137,199,210, 79,151,188,247,248, 61,254,223,143,126,192,187,247,
+ 31,209, 15, 35,247,238,221,227,131,113,203, 73, 91,113,105,123, 98,176, 24, 41,176, 62,112,208,180, 28, 47,150,132,221,200,238,
+177,231,157,119, 31,240,120, 28,240, 94,224, 37, 56, 23, 48, 90,242,240,163,135, 36,161,184,127,118,159,182,174,112,253, 68,187,
+236, 88,159, 28,243,221,111,253,160,200,111, 74,150,121,186,122,170, 51,145,231,111,226,235, 11,159,132,143,206,246, 89,213, 93,
+ 57,184,116,225, 91,164,184, 55,174,145,101,234,105,230,103,164,202,174,134, 37,116,228,106, 29,180,219,100,114,211,245,103, 67,
+ 21, 11, 86,165,139,135,118,120, 26,141,146,215,166, 21,249, 12,249,109, 46,242,215, 73,162,215, 81,172,231,173,170,  4,249,253,
+164,107, 13,133,169,242,158,188,238,224,228, 24, 78,143, 57, 61,121,129,170, 94,160,214, 71, 44,186, 53,178, 90, 50, 24,195, 74,
+ 26, 30,  8,  9,205,138,165,174,248,120,189,224,139,221,146, 94,213,124,177,169,  9,186,230,213, 74,209,187,145,102,154, 16,253,
+200, 69, 63, 18,156,229,221,179,199,185,160,255,180,150,193, 85, 38, 41,179,168, 65,231,251,249,184,109, 57, 48, 45,135,221, 10,
+173, 53,181,106,105,154,  6,105, 26,132,145, 28, 29, 54,212, 38,123, 64, 84,149,196,250, 64, 83, 41, 54, 54,176, 35,112,223, 89,
+ 30, 91, 71,232, 35,155, 33, 48,133,196,214,131,143,129,160, 52,149,150,212,117, 69, 85, 86, 83,149,206, 69, 84, 75,208, 85,222,
+ 97, 71, 37, 81, 41, 18, 18,244, 54,159,179,169,164, 60, 75, 41,179,147,238, 24,144, 74, 35, 34,  8,153,175,107, 76, 16,  9,120,
+ 60, 85,146,196, 96, 73, 34, 19,172, 31,185, 33,155, 28,134,148, 67,107, 36, 56,239,247, 92,142,124,216,228,243, 42,196, 61, 12,
+ 62, 35, 90, 41,229, 34, 77,218,123, 31,204, 16,126, 73,176,203,135, 74, 93,172, 96,155,252,123,166,202,223,155, 18, 29,237,  3,
+ 60,217,230,130,158,128,182,219, 19, 73,108,145,216,205,  8,147,174,243,253, 28,108, 81,166, 20,117,138, 44,197, 61,149,220,148,
+168,178,244, 45,253, 53,247,237,193,210, 47,187,172,144,224,231,141, 94,245, 62,239, 22,188,133,113, 36,132, 37, 65, 64,239, 28,
+139,170, 34,132,132, 19, 19, 66,234,171,152, 86, 23, 60,157,174,217, 57, 87,194, 95,242,244, 24, 72, 40, 41,137,192, 32,  2,141,
+ 82, 76, 50, 91,181,202, 36,136, 66, 34, 69,200, 77,127, 83,227,167,128, 84,134,169,105, 88, 41,137, 68, 96,129,  6,129, 39, 17,
+241,212, 42,199, 52, 70, 60,141,212,108,253, 72, 74, 25,206,247,  5, 98,151, 82, 93,173,248, 34,137,232, 92,113,226,206,222,238,
+ 54,134,210,  0, 10, 90, 45,217,217, 80,172, 93, 21, 76,133,120,209,212,121, 10,121, 38,132,226, 41,232,123, 46,164,115,218,217,
+ 47,210,204,255,250, 62,252,122, 99,161,245, 62,160,  0,160, 57,129,221,195,189,139,157, 46,176,174, 44,  7,153,245, 79,191,174,
+ 57, 20,102,178,168, 47,126,145,255,241, 31,255, 46,183,110, 29,211, 91,135, 31, 61,206, 39,198,126,194,109, 39,188,145, 89, 87,
+238, 28,166,174,233,218,142,174,109,185,113,178,230,112,209,112,220, 54, 28, 30,212, 84,198,224, 17,232,  4, 33,228,  6,175,173,
+ 53,245,168, 88, 24, 67,106, 34, 82, 24,186, 78,113,184,108, 56,232, 42,170, 42,223, 23,143,183, 83, 38,186, 10,129, 79,  9, 37,
+196, 21,225, 73, 37, 24, 93,196,151, 38, 42,164,132, 15, 57,128, 66,144,208, 10, 34, 57, 37,106, 33, 12, 34,102, 78,  7, 73,178,
+ 88,100,120,116,220, 14,128,160, 94,156,114,121, 25,248,193,135,223,195, 37, 79,171, 12, 67,152, 24,253,196,197, 48, 50, 78,150,
+139,209, 33,107,145,107,234,144, 96, 51,240,199, 37,142,164,171, 37,175, 30, 30,210,153,200,163,161,231,160,223,112, 99,169,177,
+253,134, 16,  3, 15, 63,122,159,147,211,155, 44,215, 45, 71, 39, 43,142,150, 53,175,189,241, 49,254,236, 79,191,206,217,118,160,
+ 86,231,172,143, 15,120,116,239, 33, 47,188,246, 42, 44, 86,215,238,169,  6,252,144, 15, 16,255, 55,167,190,248,242,107,111,242,
+ 71,147,135,239,191, 95,228, 69,213,158,112, 38,202,247,190,248,197,171,178, 95, 79,117, 46,186,253, 46, 79,188,233,218,  1,182,
+155,138,186, 34, 62, 69,144, 71,181, 80,207,200, 82,202,223,135,248,195, 58,243,164,159,150,246,120,255,252,103,172, 42,191,231,
+125,222,253,247,219, 60, 81,167,107,140,104,231,243,239, 25,153,247,169, 55,215,121, 71,174,117,126,214, 23,199,124,242,228, 22,
+232,  5, 13,138,164, 36, 71,109, 67,116,142,229,201,  9, 63,216,238,192, 77,156, 52, 29,199,  4, 30,122,248,213,229,154, 71,231,
+231,188,209,  5,166,237, 19,190,149, 22,156,125,244,  4, 30,220,135,116, 93, 30,251, 51,156,  9,215, 87, 14,149,161,110,115,147,
+ 84,107,197,110, 26,169, 85,139,234,114, 51, 99, 67,160,211, 13,227, 20,193, 68, 78, 90,201,118,  8, 44, 59,205,217,214, 34, 36,
+156, 91,143,177,158,225,194, 33, 82, 34,197,136,221,141,224,  5,  3,130, 86, 37,164, 49,180,  2,164, 20,200, 20,144,  8,132,203,
+164, 82, 69, 64, 36,129, 10,185,216,134,148,168, 67,246,114,  8, 33,103,174, 11,153, 16, 73, 99,234,116, 69,171,240,110,142,185,
+ 78,153,199, 18, 21, 99, 24, 73, 72, 70, 63,224, 98, 66,167,196, 24,  2, 74, 64,171,  5, 27, 79,153,112,109,201, 97,151,215,140,
+104, 10, 33, 83,139,189, 98,231,202,122, 88,194, 82, 61, 93,195, 18, 48, 21,109,250, 52, 27, 21,201,226,156, 90,238, 23, 89, 84,
+ 28,222,103,196,102,188, 78,208, 44, 50,205,249,114,212, 42,163, 83, 83,202,223, 55,203,226,102,167,247,168,130, 20, 16,171, 60,
+ 20,155,194,  9,208, 99,110, 22,254, 58,233,109,223,248,222, 95,  3,126,191,186,177, 34, 56,145, 59,117,109,168,171, 42, 59,168,
+198, 72, 91, 25, 34,146, 74,202,236,170, 21, 34,181,174,112,193,210,152,  6, 37, 36,149,210, 24,153, 77,238, 43, 93,161,234,138,
+170,174, 89, 29,174,243,218,195, 39, 98, 97, 54,134,152,163,  6,133,200,123, 32, 59,246, 28,232, 12,185, 10, 37,105,141, 38,200,
+108, 21,216,153,154,136, 32,170,132, 84, 21,  3,145,182,105,114, 20, 38, 17, 97, 20, 46,192, 24, 29,117,221,112, 49, 58,108, 74,
+136, 18,152,224,163, 39, 10,193, 24, 61, 62,  5, 42, 45, 56,159, 60,131,143, 25, 90,179,182, 72, 24, 10, 67, 86,215,249,230,  8,
+101, 92, 84,197,107, 93,170, 61, 17, 67,166,253, 77, 38,197, 47,198,126,243, 58, 35,247,106,234, 41, 30,217,215, 39, 16, 31,224,
+181,151,242,129,187,219,236,225,160, 84,  8,116,149,218, 19,152,230, 73,198, 21, 93,250, 39, 63,203,255,244,223,252,125,222,120,
+229, 22,219,201,114,254,100,199,102, 51,144, 98, 66,  8,129,115,142,177,183,217,117,202, 71,218,166,227,244,198, 33, 55,142, 15,
+184,181, 94,210, 40,157,225,240, 36, 24, 93, 98,103, 35,151,147,103,231, 60,155,237,196,102,176,236,172, 99,176,158,182, 82, 44,
+ 91, 67,215, 24, 26,147,239,157, 32,  4,181,145,116,181, 46,171, 89, 73,165, 36, 54,228,132,190,209,  7,  6, 31,136, 41, 49,249,
+128, 43,228,153, 16, 83,118,  7,140,241, 74,  7, 79,177,165,204,134, 67,130, 85,173,185,232, 39, 36,112,180,108,232,  7,199,135,
+247,222,225,223,189,243, 29,222,254,206,  7,220,127,231, 17, 31,220, 59,227,254, 59,143,120,244,131, 75,118,214,194,162,202, 16,
+163,214,220, 94,118,156,222, 58, 64,174, 27,218,198,208,214, 13,151, 59,203,165,155,232, 83,226,114,178, 36,  2,147, 79, 52,166,
+102,189, 62,101,177, 56, 98,185, 62,166, 58, 48,216,205,150,203,161,231,248,112,193,119,223,126,143,203,113,224,201, 56,176, 50,
+ 21, 70,107,218,174, 69, 25,248,224,131,179, 61,180, 28, 67,201,154,254,155,131,221,223,255,230, 95,101,  8, 82, 74,168,219, 92,
+ 89,175,152,227, 51,251,188,192,163,243,228,110,195,222,174,184,183, 25,134,119,236, 11, 90,138, 79,195,144, 66, 67, 91,158,157,
+217,172,230, 89,119,184,121, 26,191,126, 30, 81,154,  3,127,173,248, 95, 73,151,100, 49, 39,161, 48,239,175,165,104,205,251,233,
+122,149, 15,244,155,167,121,242, 58, 88,102, 79,246,118,149, 27,172,170,229,172, 90,240,198,106,  9, 70,163,144, 44,  5,168,174,
+163, 50,146,203, 32,120,189,169,121,185,170,145,149,161,209,146, 49,192,205,197, 18, 45, 35, 74,213,220,172,  4,223,189,236,225,
+252, 73,246,188,248, 73,123,252,231,125,117,217,205,147, 85, 11, 50,187, 23,118,218,100,166,123,179, 96,217,174, 80, 73, 97,234,
+ 26, 83,213,200, 90, 99,165, 36, 10,208,181, 34,144, 56, 27, 61,187,152,120,188,177, 52, 41,209,111, 39,130, 13, 92,156, 79,108,
+138,137,147, 19, 49,135,170, 72, 56,212, 25,186, 87,228,218,134,183,172, 42,197,146,132,140,129,198, 36, 42,153, 57, 77,102, 12,
+ 44,140,192, 91,207,218, 72,140,204,126,244, 46, 38, 82,113,105, 75, 82, 96, 93, 86,184,120,103,145,210, 96,157,103,  8, 14, 65,
+192, 71, 65,239,  7,124,153,166, 67, 74,140, 49,146, 82, 96,154,121, 65, 41,238, 67, 88,162,216,187, 18,218,130,166, 94, 31,172,
+164,200,133, 54,201, 61, 50, 35,196, 30, 66,215,229, 92, 60, 92,228, 34,188, 94,228,169,186, 42,  1, 71, 77,125,205, 57, 80, 21,
+179,174,148,163,185, 21,249,254, 81,229, 44,174,212,254, 60,158, 37,117,179,151, 68, 44, 36,202,170,202,175,111,190,150,166,161,
+200,180,184, 10,181,255,105,214,182,207,221,228,206,190,180, 63,235,244,232,201,147,235,110,128,101,203,229, 56,209, 30, 24, 42,
+173,242,123,149,121, 63,168,  0,173,178, 25,141, 86, 57,212, 66,154, 12,135, 68, 45, 89, 84, 13,222,  7, 24, 28, 71,235, 99, 98,
+ 76,180,117,205,214, 57, 68, 76,184,204,130, 64,106,133, 74, 16,123,203,186,233, 16,222, 33,149,166,149,217,112,163,142,142, 24,
+115, 39, 86,215,154,201, 58, 60,176,208, 21,131,155, 64,231,189,102,239, 61, 19,160,117, 69, 31, 28,117,101,114,224,142,130,138,
+132, 77, 33,195, 59, 17,140, 20,220,223, 77, 88,145, 88, 24,197,165,115,249,144,153,161,207,182,202,147,122,219,230,110,203,150,
+174,173,160, 19,121,210,136, 57,179,215,164,189, 46,242, 23, 57,173,135, 31,227,152, 53,119,126,223,252, 22,212, 39,251,191, 55,
+ 20,226, 82,163,242,158, 73,213, 48,110,246,211, 79, 57, 52,255,251,255,252,107,124,226,213,219,124,244,232,156,243, 39,  3,227,
+182,207,131,208,177,161, 63,223, 33,165,202, 82, 63, 64,169, 26,169, 53, 70, 27,214,109,131,136,  2, 76,158, 94,165,132,193,123,
+ 70,159,  3, 93,166, 41,224,188,203, 73,107, 62,178,106, 20,181,150, 24,149, 53,232,181,150,  4,159,211,247,124, 72, 87,207,164,
+245,  1,169,100,182,246, 77, 17,231,178,193,140, 81,130, 90,102,235,225,193,103, 21,195,186, 49, 28,215,154, 39,222,161,162, 34,
+164, 64,165, 20, 19,  2, 37, 35, 86, 36,162, 11,124,244,254, 19,222,122,233,  6,127,231, 87, 63,206,  7,175,221,225,243, 79,182,
+108,207, 30,115,113,255, 62,255,230,222, 67,238, 95,236, 56, 62, 88,178,179, 83, 38,118, 93,244, 88,229,168, 94, 61,226,245,211,
+ 23,  0,201,232,122,142,154, 53,143,250,115,222,125,242, 17, 99,244,220, 89, 31,113,227,224,148, 23,143, 95,193, 52, 10,161, 36,
+ 93,183,128,148,208,169,195,138,158, 39, 31,124,200, 52, 90, 72,146,117,211,241,157, 71, 15,217,244, 59,186,229,130,113, 24,120,
+235,205,143,243,199,127,244,151,133,195, 49, 75,169,228, 47, 75,163,246,156,  7, 92, 63,127,130,156,119,132,215,115,170,159, 82,
+200,148,189,162,223,150,201,153, 12, 47, 87,250, 26, 23, 32,238, 51,218,159,125, 22, 26,253,244, 68, 42,126, 12, 74,117,253,229,
+ 94,127,173,243,189,174,100,137,227,140,251,  2,110,231,169,188, 20,253,102,193,167, 94, 57,229,155,125,226,173,227, 37,255, 97,
+112,249, 16,215, 69,117, 80,215,249,185,111, 50,114,178,113,150,163,102,149,225,220,174,206,219,200, 36,249,204, 97, 71,140,137,
+206,123,238,133,196, 75, 82,178,213,146,190,223,225,245,  1, 55, 87, 59, 52,  1,150,  7,112,120, 10, 15,166, 61, 82,240,211,126,
+205, 70, 61,199,213,158,176, 15,180, 85, 77,165,178,106,  8, 33, 17,117, 13, 70,147, 42, 73, 31,  5,210, 38, 38, 13,187,173, 67,
+ 40,168, 98, 34,248, 64, 27,  2,143,135, 68,178, 30,119, 49, 50, 77, 14,225, 34,209,  7,164, 15,164, 41,178, 90,106, 84, 72, 24,
+160, 85, 18,182, 30,161, 36, 85,  8,212, 74,113,128,160,237,  3,203,166,195, 74,129,104,243, 94, 60, 44, 20,151,  2,  6,159,152,
+ 72,104,163,216,141, 57,231, 67, 38,143,170, 27,252,118,  3, 66, 50,216,204,169, 48,218,144,130,163,213, 57,207,131,104,233, 84,
+ 94,  3,100, 87, 76,168,140,193,150,128,159, 43, 25, 89, 44,126,240,243,122,212,152,162,  8, 33,239,219,103,  7,195,186,228, 96,
+ 84,134, 43, 59, 87, 91,206,194,121,181, 97,212,158, 24,185,217,237, 99,136,107,179, 71,117,148,134,118,158,208,219,114,127,149,
+123,202,135,125,202,219,108,136, 51, 27,210, 44,154,253,128,215,150,149,213,193, 34,251,159,136,226, 55,111,251, 34,  1,245,215,
+182, 74,254,167,  6,115, 20,159,248,141,127,134,110,138,199,240,207,120,131, 93,193, 27,  2,140, 97, 20,130,163, 98, 25, 27, 82,
+162,171,187, 76, 52,148, 25,182,  1,137, 81,  6,231, 45,139,170,197,152, 10,239, 29, 74,107,170,170, 66, 42,153,173, 61, 71,143,
+119,129,152, 66,134,232,189,205,126,  3,198, 92, 73,213,  4,130, 78,105, 84,165,104,171,154, 88,188,182,149,202,190,193, 90, 41,
+122, 60,190, 50, 56, 41,136, 82,224,203,244, 23,165,194,133, 84, 10,132,194,147, 24, 98, 68, 42, 65, 64, 49,  5, 71, 20, 96, 99,
+196,123, 79,  4, 46,103, 59, 65, 55,199,244,  5, 24,124, 62,128, 76, 73, 65,211,114,207,190,212,213, 85,224, 12, 34,128,207,121,
+200, 25,134,249,  5,234,220,159,149,160, 93,119,154,131,124,160,165,196,242,139,159,226,205, 79,127,146,  7,223,127,167,  4,107,
+ 20,214, 39,100,233, 76,244,229,192,200, 13,203, 87,255,209,239,241,197,175,124,150, 39, 23, 59,206, 30, 92, 48,141, 14, 33, 36,
+139,163, 37, 82,192, 56, 58,148, 84,153,132, 40, 52,141,233, 88, 45, 23,220, 56, 92,177, 48,  6, 93, 73, 42, 45,179,172,176, 20,
+228,201,122, 38,231,121,120, 57, 48, 12,150,144, 34, 93,173, 56, 57,104, 56, 89,214,116,149,166,174,179,129,139, 72, 96, 83, 68,
+149,196,189, 90, 41, 92,202, 69, 62,165,132,143,145,169,172,  2,188, 15,153,171, 17,  2, 75,149, 77, 53,106,  9, 71,181, 64, 37,
+ 65, 91,107,140, 82, 28, 47,170,204, 50,247,217,184,232,171,119,143,185,191,245,124,251,189, 75,234,165,230,159,252,202, 43,188,
+113, 99,141, 93,116,220,121,241,  5,110,117,135,252,173, 79,189,206, 73, 85,115,115,209,241,202,225,  1,111,223,127, 12,135, 13,
+ 55, 15, 14, 89, 54, 71,212,213,146,179,254, 12,235, 39,142, 22,167, 28,117, 71, 88, 59, 32,180,196,166,192,163,221, 37,253,180,
+165, 51,154, 16, 18,170,170,105, 79,142, 88,159,172,121,244,209,123,220,127,248,144,179,237, 37,141, 82,216,232, 57,219,141, 28,
+183, 53,218,212,172, 78,143, 56,239, 39, 30,199,  2,225, 45,234, 60, 57,110,182,240,242,139,121,215,187,219,254,116,132,178, 89,
+226,248, 60,255,105, 93, 12, 83, 84, 93, 10,118,169, 20, 17,126,200,217,238,106,197, 83,149,123, 59, 93, 13,231, 87,171, 32, 81,
+216,193,241,218, 58, 71,183, 69,195, 92, 98,140, 99, 40,207,197,143, 32,179, 25, 83,140, 61,194, 62,  6,152,244,252, 41,253, 89,
+  7,184,249, 25, 48,229, 92,155,  9,125,130, 12,115,170, 98,164, 21,129,213, 33,191,243,137,187,208, 45,248,212,233,  1,163, 50,
+124,108,125,204,  3, 93, 19, 40, 36, 40, 53, 59,226,105,106,165,184, 45, 13,171,186,197,106, 77, 40,159,109, 15,  8, 31,185,211,
+ 42, 30, 76,129, 35,165,121,140,228, 52, 70, 70,173, 57,145,130, 71,187,137,202, 40,190,179,221, 16,182, 27,112,187, 44, 95,155,
+157, 27,137, 63,217, 29, 80,138,252,218,219,114,173,180,166,174, 52, 71, 85,203,141,118, 77, 83,119,232,182, 35,233,138,164,103,
+ 99, 26,137,175, 52, 91, 31, 25,109, 98, 40,124,150,201,  5,122, 23,176,189,195, 59,207,110,211, 51,238,118,216, 97,196, 13,  3,
+ 79, 54, 23,248, 48,176, 10,129, 54,122, 26,111,105,132,162,149,130, 54, 37,148, 11,168, 16, 80,253,150,195, 32,104,156,227, 80,
+ 36, 78,132,164, 78,176,144,146,227,153,188, 22, 18,163,205, 38,100, 81,130, 39, 27,205, 88,114, 38, 67,116, 83,  1, 99,  2,181,
+132,173,179,212, 90,161, 99, 65, 85,147, 96, 91, 84, 34, 50, 37,166, 48,171, 38,202,125,161,138,124,208,198,124, 47,135, 82,228,
+141,218,123,186,171, 98, 35,107,202,218,104,110, 78,187, 54,159,233,203, 54, 23, 86, 93, 96,117,235, 11,217,173,144,186, 42,185,
+135,252, 83,122, 70,217, 81, 10,249,220, 44,198,107,164,198,114,  6,102,120,158,125,112,207, 12,205,147,114,  3,217, 85,  5, 61,
+ 48, 37,168,166,202,182,236,198,228, 65,108,158,226,141,250,177,104,175,166, 42,111,206,245,249, 65,252, 89,119,235,253,148,223,
+100,183, 32,180,145, 39, 67,207,170,110, 88,181, 11,118,211, 68,103, 42, 98, 20,104,165,  8,201,227,130,167, 53, 13,162,216,  8,
+106,221, 20, 94, 86, 96,219,111,113,  5, 58, 75, 50, 75, 96,  4, 30, 97, 76,238, 64, 67, 68,104, 67,136, 17, 45, 50, 44, 34,200,
+ 72,158,150, 58, 55, 19, 37,  3,120, 34, 81, 91,195, 16, 29,178,173,137,147, 39,146, 47,104, 26, 29,168, 72,136, 57, 64, 64,138,
+ 28,  3, 58,216, 17, 85, 12, 27,130, 29,242,231,111, 42,198,105,204, 55,198,124, 65,231, 32,138,142,253,174,164, 41, 83, 59,177,
+200, 27,124,177, 19, 28,179,204, 69,216,125,135,104, 13,248,205, 47,103,224,242,215,118,235,222, 23,147,  5,205,246,235,127,193,
+ 95,118,119,246, 41,113,179,127, 65,152,181,190,236,157,242, 62,253, 43,124,249,171, 95,100,234, 29,231, 23, 59,236,224,233, 86,
+ 29,235,227,  5,187,157,205, 58,236,170,152,  5,249, 72,219,180, 28,173, 87, 88,155,216, 92, 58, 90, 93,161,141,206,241,182, 33,
+ 91, 75,246, 54, 50,249,136,240, 41,155,212,233,226, 52, 72, 34,250,136,151, 34, 39, 74,185, 12,143,139,226,167,158, 27, 68,152,
+ 98,134,211,189, 15, 76, 33,160,129,187, 11,195,214,121,108, 36,235,210,133,160,174, 36,166, 16, 39,183, 73, 82,213,249,129, 90,
+ 86,186,168, 51, 20, 42,229,176,  8, 93, 43,190,252,214, 93, 14,239, 58,132,155,248,151,223,251,144, 79,158, 30,178,104, 43,222,
+126,239, 33,  7,171,142, 91,199, 45,159,251,204,139,124,233,238, 17, 95,127,255, 17, 31,127,245, 14,127,240,141,111,211, 85,138,
+255,240,240,109,110,117,135,108,118,231,180,139, 53,141,214, 28,180, 43,130,219,240,253,199,247,248,246,238, 17,156,245, 48,129,
+124,105,205,155,199,  7,188,122,114,151,203,199,231,220,188,123,139,110,125,155, 15,238,127,157,247, 31,111,121, 18,  2, 71,141,
+225,184,209,188,254,202, 43,208, 86,188,124,231,136,255,234,239,253,109,198,205, 84,164,179,  9,239, 44,214, 58,126,243,197, 19,
+222,221,142,220,187,127,198, 63,255,147, 63,229,251,127,242, 39,207,191, 31,230,201,126,158, 96,174,166, 61,251,244,228, 29,138,
+ 51, 87, 20,121, 79, 45, 96,191, 64,252, 81, 13,165,223, 67,153,243,200,152,138, 53,177, 42, 15,230,172,170,104,155, 61, 68, 63,
+142,123, 39, 48, 51, 51,233,175,161, 87,222,231,226, 43,202, 68,227,226, 30, 77,212,250,153, 41,253, 57, 19,140, 47,137,130,161,
+200,157,204,140,104, 85, 64,137,198,140, 64,183,162, 90, 47,104,215,199, 60, 30, 29,147, 94,209,170,136, 87, 45,  7,106,226,108,
+102, 67,199,  0,228,102,224,165,234,152,191, 36,241,149,177,199, 87, 29, 15,189,231, 70,157, 21, 54, 46,  6,118,219, 68,155, 18,
+ 46,  4,150, 62,112, 33, 19, 77,128,247,135,129, 59,109,199,159, 61, 60,195,234,186,228, 41, 52,192,112,109,152,210,123, 53, 65,
+224, 71, 35, 37, 77,243, 84, 35,181,214, 53,175, 44,142, 48, 90,211, 45, 14, 80,166,193, 10,137, 23,217, 37, 81,135,128,244,158,
+158, 60, 45,214,129,108,186,148, 34,135, 33, 50,  4,136,214,147,236, 68,231, 61,151,155, 39,108,135,145,139, 96, 57, 89, 44, 48,
+ 65, 98,162, 64, 43,131,242, 19, 76,145, 74,107,100, 74,172, 72, 28,168,154, 62, 76,220,162,166,  9,128,205, 17,184, 49, 36,182,
+ 41,177,  6,188,148, 96,  2,187, 36,216,246, 57,138,117,  8, 16,165,198,121,176, 73,224,163,133,152,216, 38, 79, 35,  4, 67,136,
+ 57,249, 48, 72,182,113,226, 88, 73, 30, 90,143, 79,137,202, 40,172,191, 86,216, 92,200, 77,163, 36,103,116,212,234,202, 19, 38,
+251,245, 87,153,244,166,203,120,189,185,132,195,155, 87,217, 33,121,184,241,217, 44,104, 94,139, 84,165, 33, 30, 11,241,120,156,
+242,223,129,202, 30,244, 70,239,137,199,218,236, 25,237,115, 35, 60,  7, 21,213,106,111, 49, 27, 11,169,180,196,204, 94, 33, 71,
+162, 88,  5,207, 16,126,167, 11,  2, 81, 66,106,132,  4,209,149, 84, 66,191,143,149,157,182,207, 41,234,214,230, 23,253,243, 70,
+194, 57, 11, 99,121, 80,235,138,209, 84, 32, 39, 26,165,209,166, 33,  4, 79, 83, 53, 56,239,179,109, 32,  1, 37,  4,163,179, 44,
+171,150,132,199,135,188, 43,  7,152,220,136, 49,  6, 65, 78,231, 97,  4,161, 36,202,228,110, 44,196, 68,165, 13, 82, 72,100, 74,
+ 40, 45,208, 90, 34,165, 36, 90, 15, 77,131,176,142,224, 70,236,178, 35, 13,  3,187,209, 83, 53, 21, 97,202, 19,172,212,154,224,
+ 66,118, 52,210, 26,  3,244,222, 17,230,157,135,169,193,123, 42,149,120, 56,236,  8, 66,130, 42,222,189,182,192, 47, 90,238, 77,
+191, 98,249,240, 27,157,247,135, 49,236,147,116,150,139,124,  3,232, 42,103,241,206, 36,167,174,185,150,219,251, 75, 40,236,215,
+ 39,150,249,151,125,239,233,131, 83,235, 98,252,241, 52,148,249, 15,127,227,147, 28, 28, 46, 24,122, 71, 93, 85,196, 54,210,173,
+ 26,134, 41,224,125, 32,248,144,161,247, 49, 66,212,144, 36, 77, 91,209,181,154,227,101,199,201,186,161, 49, 10,173,  4,147,143,
+ 87, 62, 17, 25,164, 72,156,116, 21, 73,102,139,212,186,146, 44,235,236,212, 85, 43,144, 73,226, 93,222,125, 87, 38,179, 94,173,
+207,170,133, 90,136,140,150, 26,133, 72,137, 86,  9,142, 27, 73, 31,  2, 62,  9,142, 69,162,145, 32,100,226, 50, 69, 84, 20, 60,
+216, 57, 22,149,166, 89, 42,166,  8, 55,187,134, 70, 43,238,157,247, 84,141,226, 83, 55,150,124,226,101, 69,171, 37,223, 61,219,
+240,199,223,127, 76,178,137,118,181,200,172,210,193,161,158,244,252,145, 11,156,172, 59,254,233,215,126,141,223,248,220, 39,248,
+171, 15, 30,241, 23,127,254,109,  8, 19,127,241,216, 49,212,142,239, 61,252, 30,173, 54, 60,222, 92,112, 62, 76,121,157,211, 25,
+208,129,248,120,195, 55, 31, 92,240,225, 75,151,124,246,228,  9, 97,218,112,252,194, 29, 62,241,218,167,249,236, 23, 86, 28, 30,
+ 53,156, 30, 85,124,236,100,193,113,171,217,218, 64,140,  9,119, 43,175,  9, 14,154,236,  3,177, 48,146,202, 72,158, 12,158, 99,
+ 27,249,170,150,252,195,127,240,219, 92,140,142, 15,207,123,254,234, 59, 31,242,  7,127,242,111,248,247,255,242, 15,114,241,126,
+ 22,189,126, 14,124,159,102, 78,198, 83,147, 50,224,126, 68, 81,  9, 49,167,254,173, 86, 87,220,162,252,255,141,249,126,130,167,
+  7,  4,235,193,216,130, 94,197, 31,173,  6,185,190,150,250,113,164,161,167, 26,215, 31,  1, 81,207, 68,209,201,150,116,184, 17,
+148,205, 16,122,  4,150, 29,  7,183,143,249,220,237, 35, 30, 76,142,182, 91,208, 72,131,174, 26,188,183,188, 46, 91,162,115, 60,
+ 22, 83,209, 53,231,117,195,247,118,143,249,220,193, 17, 31, 76, 19,157,245, 44,155,134,139,113, 96,170, 42, 86, 36,190,229, 19,
+159, 58, 88,224, 67,100,212,138,208,247,244, 68,110, 24,205,187,110,226, 65,242,185,104,175,186, 60,  8,236,158,121, 15,234,153,
+141,200,243,222,223,236,  3,128,130,186,227,184, 57,  0,109,232, 86, 39,128,200, 50, 49,165, 24,172,199,  8,  5,109,102,189,143,
+206,102,146,127, 37,137, 33,114, 75, 36,250,  0,149,245, 56,159,101,118,143,206,207,168,172,227,124,216,178, 86, 18,101, 61, 85,
+ 91, 50,215,181, 66,248,136,209,138, 70,105, 90,165,104, 66, 64, 37,201, 43,170, 65,183,  6,233, 50, 87,105, 12,142, 74, 26,150,
+ 17, 92,217,109, 75,165,176,  9, 14,170,192,189,201, 33,148,100,176, 16,181, 33, 22,215, 60, 27, 71, 26,169,241,193,211,136,188,
+130,105,141, 38, 18,217, 13,158,227, 74, 18,167,196,214, 63, 19,128,163, 75,246,192, 44,250,153,175,217,172,106,208,  6,213,182,
+  4,  1, 75,221,210,175,142,178,185,213,220,224,166,178, 90,165,104,202,103,253,183, 47, 67,161,243, 57,223,125,178,249,140,191,
+ 90,125, 62,207,182, 53, 62,237,251, 62,133,189, 74,169, 42, 78,117,117,149,121, 78,211,144, 45,106,131,205,141, 71, 27, 96, 96,
+111, 83, 60,199,246,174,171,140,112,205,107,178,177,217,115, 82,226,248,148, 25,154, 34, 30,253, 51,250,221, 47,198, 33, 77, 43,
+ 44,146,227,197, 65,102, 43,147,117,232, 62,  6,140, 52,132, 20,179,113,143,146,212, 82, 35,148, 68, 11,205,228, 28,198,232,108,
+ 56, 83,236, 10, 19, 18,235,178, 23,180, 49,249,165,  6, 33,209, 74,162,234,138, 78, 41, 92,136,212,198, 16,139,255,182, 48, 21,
+ 82, 10,122,159,205, 82,108, 49,213, 87,166,194, 21,178, 84, 10, 41,155, 36,248,108,136, 16, 98, 98, 76,146, 68,196,  9, 65, 31,
+ 34,194, 71,156,144, 92,122,139, 22,  2, 23,115,246, 58,163, 43, 45,180,156,147, 72,242,  1, 35, 74,182,239, 12,181,248,180,135,
+229, 41, 36, 57, 81,172,183,116, 85, 76, 15,202, 69,255, 57,201, 16, 63, 53, 52,255,211,252,251, 51,191,255,247,254,219,127,130,
+146, 96, 71, 79,  8,185,184,132, 72,201,176,167,216,233, 10,130,135,186,174, 89,173,150,220, 61, 93,115,178,234, 88, 45, 43,150,
+ 38,147,106,102,215, 80,151, 34, 33,164,156,167,160,  5,146, 68,163, 20,167,107,195,210,232, 28,211, 56,191,148,144, 81,155, 84,
+248, 47,214,  7,100,138,184,152,167,250,144,  2, 33,230, 73, 40,133,200, 50,  6,100,  8, 28,196, 68, 37,160, 18,146,147,148,232,
+ 98,226, 72, 10,172,200, 83,129, 69, 48,110,  7, 78, 43,195,113, 83, 97, 18,124,235,108,199,  7,151, 35,  8,112,  8, 78, 15, 58,
+ 94, 59, 93,242, 36,  8, 92, 72,220,190,181,  4, 35,233, 55, 35,110,116, 60,222, 78,216,201, 51, 38,137, 49,134, 95,255,252,107,
+188,122,186,166,221, 89,254,175,119, 63,228,163,221,150,147,174,166, 51,154, 86, 27, 86, 90,179, 37,145,106, 69,210, 18,121, 80,
+241,249,211, 99, 94,190,121,194,209,141,  5,191,255,183, 94,231, 31,125,233, 99,124,233,205,219,124,254,229, 99, 62,125,123,141,
+ 20,130,203,193, 35, 82,126,126,124,136,236,172,103, 42,132, 64, 18,152, 74,177,168, 12,125, 16,124,112, 57,161, 82,228,229,211,
+ 37, 95,184,125,196, 75,119, 14,249,237, 47,126,129,127,252,251,191,199, 43, 47,189,196, 31,254,209,159, 34,144,121,109, 37,  4,
+ 34,101, 67,165,108,  2,146, 15, 32, 97, 52, 34,169,125,241, 87, 62, 79,217,209, 62,127,143, 61, 75, 38,173,203,208,160,119,123,
+226, 82, 74, 48,244,207, 88,179, 22, 34,102,112,123,185,219,117,107,215,249,240,251,113, 30,239,215,139,254,179, 43,166, 31,154,
+100,203,142, 83, 25, 56, 88,103,104,179,237,114,228,235,170,205, 59,204, 69, 67,234,106,110, 54, 13, 73,213,188,118,184, 38, 42,
+ 56,210, 25, 53, 56,172,  5, 15,109,228, 50,133,189,115,153,200,222,  2, 70, 72, 14, 98,162, 14,142, 46,  5,206,172,101,185,125,
+140, 53, 21,223,159, 70,118, 33,114, 71, 73, 30,218,137, 35,165,232,157,167,247, 17, 29,  2,223, 24,167,124, 80,251, 30,118,187,
+167, 19, 21, 37,251, 40, 80,226, 15, 15, 90,179,202,230,228,  6,172, 22,176, 94,243,194,209, 13,126,227,246,203, 28, 44, 22, 24,
+ 45,168,181,193,232, 26, 27, 50, 41, 46, 42, 69,240,137, 33,  6,162,148, 52, 82,208, 72,193, 97,  2, 23, 34,235,152,176,131,163,
+ 38,176, 59,127,130,187,124,130,157, 70,150,  9,218,182,166,105, 90, 58, 93,161,149,196,196, 72, 83, 27,140,128,133,169,232,128,
+195,202,176,142,  9, 35,  5,173,148, 57, 72, 70, 10,234,226,190, 39,124,162, 49,138,160, 37, 23, 49,175, 52, 71,153,120,178, 29,
+121,224,  3, 59,239,144, 36,164, 80,104, 33,104,116,  3,228,193,109,240,  1, 93,144, 58, 45, 36, 33,228,231,160, 83,154,243, 16,
+  8,162, 64,234,161,228, 90, 36,153, 27, 37, 93,200,202,198,228,207,169, 93,242,202,250,152,151,186, 21, 47,214, 75, 94, 90, 30,
+176,144,134,186,233,184,156,173,101,227,108,141, 88,216,240,148, 51, 91, 42, 82,140,168, 36,114, 13,152,189,231, 93,185, 47,180,
+222,147,159, 37, 92,165, 13,134, 18, 24, 19,194,158, 61,175, 85, 70, 11, 40,171, 31, 63,149, 34, 31, 74,211, 88,254,124, 87, 21,
+223,  6,246, 49,217,161,188,174, 57, 77,179,170,246,178, 82,165,158,178, 83,254,249,217,239,207, 22,135,144,242, 94,185,210,236,
+ 20,116,170,202,122,113, 93,229,240,148, 20,169, 10,116,110,148, 42,102,  5,142, 90,213, 72,149, 39,247,170, 64, 15, 33,  7, 40,
+227,124,204, 97, 72, 73,225,139,105, 71,221,154, 43,179,131, 99,173, 24, 10,  6, 85,155, 42,147,169, 82,190,105,119, 62, 32,203,
+ 14, 61,197,204,160,244, 73, 16, 69, 42,103,135,196,249,128,149,121, 42,180, 41,225, 98, 96,112, 30, 75, 98,112, 19,125,132, 41,
+ 58, 70,239, 50, 51, 49,206,123, 22,181,183,192,140,215,189,126,227,158,253,152,174, 77, 70, 90,150,255,158,246,123,179,217,210,
+112, 14,148,144,242,167,119,210,250, 37,126,125,236,111,255, 14, 95,254,245, 79, 51, 12,150,126,219, 19,124,196, 59, 79,211, 53,
+ 76,253,196, 52, 58,166,222, 18, 92, 64,146,189,  5,106, 99, 16, 66,178, 90,213,172,155,153, 37, 43, 24,124, 36,146,153,234,110,
+138,217, 35, 71,230, 98,127,227,192,208, 26,141, 42,134, 44,145,108, 24,163, 77,182, 87,157, 51, 26,116, 10,248, 24,209, 50, 63,
+ 15,243, 80, 24, 99, 36,185,192,165,143,120,149, 27,142,205,232, 80, 17, 22, 49, 81,249,192,165,  4, 87, 25,140, 81,168,199, 59,
+212,119, 30,243,238,195, 11, 76,163,185,209,182,180, 49,114,239,114,199,251,103, 61, 23, 86,178,168, 20,199,173,225,184, 51,220,
+ 92,104,188,183, 28,117, 29,186,210,108,206,  7,198, 41,112,255,114,228,209,229,192, 43, 39, 75,188,245,124,250,227,183,248,237,
+207,189, 14, 23,  3,255,254,175, 62,100,125,208,177, 52, 11, 84,165,105,170,138, 86,  9, 94, 57, 92,242,214,221, 27,252,167, 95,
+120,139,255,242,119,191,196, 87,191,240, 26,159,249,248, 29,234, 90, 35,132,160, 15,217,239,122,235,  2, 79,118, 30,239, 35,141,
+ 81, 28, 52,153, 65, 13,249, 51,234,173, 99,176,142, 16,242,120,172,132,100, 55, 57, 30,238,118,156,237, 34, 85,130,173,141, 56,
+239,185,123,208,242, 91,159,127,157,255,225,191,254,  7, 44,239,190,193,191,251,183,255,182, 16,126,179,212, 79, 22, 85,134,136,
+ 69, 87, 94,210,165,196,204, 36,159,252, 15,155, 39, 92,215,125,167, 82,128,  6,151,155,214,113,147,121, 35,118,122,126,113, 14,
+ 97, 95,208,231,137,230,138,157,156,246,190, 14, 63,201,231,253,199,253,204,156,123,208,212,124,246,213, 91,180,135, 29, 47,156,
+ 46,233,186, 10, 86,203,172, 90,146,133,113,108, 12,193, 84, 44, 76,197,171,235,  5, 38,  2,133,215, 96, 68, 86,218,220,159, 70,
+ 46,230,134,196,185,  2,197,143,172,220, 72, 28,123,130,221,226,135,115,154,221, 57,198, 91,222,187,120,200, 71,214,113, 87, 26,
+190, 49,140, 28, 33,121,111,178,  4,239,121, 24, 61,223, 26,122,108,178,121, 42,155,250,204,156, 62,223,101,244,110,126,255,243,
+ 25, 18,158,137, 70,174,202,100,183, 62,134,163, 31,132,194,155,  0,  0, 32,  0, 73, 68, 65, 84, 53, 28,159, 34,143,110,240,169,
+197,  9, 55,186,138,155,221,146, 70, 85, 57,176, 76,230, 97,242,194,122,188,245, 68,153, 93, 50,149,128,133,128, 99,157, 67,173,
+ 84,200, 94, 19,135, 93,102,162, 55, 49, 51,217, 23,193, 99,140,102,165, 27,142, 23, 11,144,146,101, 33,193, 42, 41,104, 85,141,
+ 72, 80, 87,146, 42, 65,101, 20, 11,165,145, 90,228, 60,  5, 41, 48,117, 62,247,189, 82,140,165, 65,119, 74,176, 77,137,203,222,
+ 51,197, 68,111, 45, 65,228,186,161,  5, 68, 12, 40,137,170,107, 66, 18, 40,213, 48,197, 64, 37,  5,131,115, 72,165,168,149,193,
+ 11, 65, 91,213,212, 85,203, 40, 37,169,169,178,203,105, 93,103, 53,146, 49,176, 62,202,223,183, 75,100,187,226,173,122,193,186,
+ 94,209,180, 29,219,144, 56,238, 58, 90, 33, 16, 73,112, 25, 10,242, 58,175, 52, 68, 78,118, 76, 49, 92,  5, 11, 45,116,150,194,
+202, 20, 73, 59,187, 63,136,230,251, 57,165,125,140, 43,169,144,250,124,174, 15, 59, 91, 92, 61,103,155,103, 81, 86, 87,133,141,
+111,228,222, 91,106,230,109, 85, 38, 31,128, 46,236,229,199, 74,229,123,165,106,242,179,217, 84, 25,161,240, 49, 63,123, 34,223,
+ 51,191,152,162, 62,143, 88, 38, 91,243, 37, 32,181, 21, 62,164, 76,134,210, 85, 94,139,  5, 80, 74,224, 99, 68,146,168,171,  6,
+ 31,236, 85,252,222,228,125,254, 12,133,192,249,156,195, 27, 72,216, 16,104,170, 66, 34,136, 10,211,106, 22,  8,208, 26,149, 18,
+ 90,230,110, 41,  1, 21,130, 65,100, 73,205, 38,229, 41, 51, 10,153,181,232, 49,224, 93,204,156, 50, 37,  8, 62, 23,251, 33,120,
+ 92,202,204,236, 24, 35, 99,132, 62,120,250, 24, 72,200,204,240, 14,190,  4,  8,148, 64, 27, 93,244,145,136,124, 97,230,216,200,
+196, 62,141, 71,138,167,243, 37,174, 23,247, 90,229,238,114,198,219,102, 59, 80, 37, 11, 73,162,252,172, 86,191, 56,  9,220, 79,
+241,245,123,127,231,107,220,122,241,  6,155,203,158,224, 34,218, 24,172,245, 52,139, 54, 91,194,198,136,148, 26,163,107, 86,171,
+ 21, 74, 74,218,186, 97,189,236,184,115,210,178, 48, 38,135,163,196,196, 16, 34, 46,101,103,169,152, 50,193,173, 81,130,195,133,
+230,164, 53, 40,169,136, 66, 32,149, 40,  9,158,217,182,210, 40, 65,109,  4, 38, 69,142,141, 32,200,132,  8,137, 74, 68, 84, 12,
+ 57,207, 33, 70,106,239,241,201,179,180,129, 42, 37, 86, 62,178,178,129,122, 10, 36, 45,216, 26,201,129, 79,172,133,196,104,193,
+163,221, 64,255,193,  5,239,221, 59,103,221, 26, 94, 92,118,124,108,189,160,157, 50, 81,208, 40,137,140,  5,  1,104, 20,214, 58,
+ 46,118, 19, 39,109,205, 43, 71, 29,111,127,120,201,232,  2,219,205, 72,229, 28,255,201,167,238,242,189,139,158,155, 55,151,252,
+222,151,223,228,226,252,146,127,253,103,239,240,192, 79, 60,217,246,120,225,120,235,206, 11,124,254,179,111,242,213, 47,125,146,
+ 47,127,238, 85, 78,215, 29, 66,230, 93,231,110,242, 92,236, 60,247, 46, 44,151, 59,203,131,139,137,243,222, 18, 98,160,149,176,
+ 16,  2,227, 97, 59,121, 54,193,211, 79, 62,251,229, 91,207,163,221,196,102,240,172, 42, 73,140,145,135,155,129,179,222, 49, 89,
+135,179, 14,225, 60, 10,201,209,170,227, 51,175,223,229,229, 47,124,133,255,251,255,248,215, 57,175,161, 28, 44,210, 95,147,137,
+ 69,143,  8,165,224, 56,255,163,221,144,174,242,  2,124, 46,252, 70,102,  8, 81,201, 61,153,237, 39, 17,110,175,249, 84, 92, 65,
+168,241,167, 40,234, 63,145,246,155,189,215,213,114,193,209, 65, 75,187,234,184,112,  9,173,107,182, 33, 97,141,202,197,113, 54,
+172,215,138,187, 77,197, 82, 27, 42,165, 56, 82,134,148, 34, 75, 89,241,176, 31, 80, 82,241,161,183,249,144,181,  3,244,151,240,
+248,156,203,243, 39, 12,110,100,229,123,118,195, 37, 38, 78,124,227,236, 35, 30,110,206, 73,211,192,125, 63,177, 19,130,247,188,
+231,108,220,113, 47, 10, 30, 57,139,157,118,197, 83, 98,200,126,226,219,146,190,214,247,123,  9,148, 81,121,106, 83, 69, 69, 80,
+155, 44,169,171, 91,184,125,  2,135, 43, 56, 92, 67,183, 34,  9,201,177, 50,124,108,181,200, 86,195, 82, 81, 25,147,215,137,214,
+211,187, 28,103,172,188,167, 22,146, 78, 42,150,149, 34,166, 68, 39, 18, 49,101,237,183, 77,145,198,123, 52,130,131,  4,147,115,
+172,148,230,176, 91, 16,165,164,107, 27, 84,101,168, 84, 38, 58,107,153,155,111, 33,  4,203,202,228,140,117,173,104,164, 70,182,
+ 21,210, 40, 82, 37,241, 90, 19, 73,104, 33,184,  0, 54, 36,198, 20,185,191,205,  6, 95, 83,185,222, 14,149, 45, 99,  5,  4,109,
+202,252,148, 77,196,162,128,139, 24, 72, 66, 99,147, 66, 74, 69,212, 53,171,170,195, 55, 29, 72,141, 93, 28,146,154, 85, 38,149,
+181, 11, 88,173,203,212,190,  0,221,241,114,187,228,160,238,216,121,139, 87,154,133,214, 12, 49,224,131,167, 82,146,179,164,114,
+ 79, 37,184, 82,103,164, 82,156, 59, 37,145,222, 49,140,142,  3,  2,227,197,112,141, 63,146,246,  5,125,230, 89,205, 77,239, 60,
+237, 79, 37,  5,212,239, 19,  8,111,221, 57, 96,183, 29,185, 50,194, 87, 50, 15,139,241, 90,252,175,187,214,252, 94, 95, 51, 24,
+189,207, 91,160,112, 96, 22, 93,177,204,205,218,251, 95, 92, 81,191,218,131,101, 61,168, 77,138,182,109,104,141, 97,  8,174,176,
+210,179, 49,136, 80, 57,116, 37, 38,143,245, 46,203, 39, 84,254,164,146,144,196,148, 99,247,108, 76,164, 36, 72, 82, 17, 98,202,
+ 19,161, 84,116, 70,210,  8,129, 12,  1, 76,246,240,110,133, 32, 37,129, 18,137,209, 69,108,138, 36, 31,176,193,102,233, 84,200,
+ 12, 76, 31,  2,155,209, 34,101, 78,104, 27,125,222, 51,217, 16, 17,161,192, 61,209, 35, 82,214,173,167,232,114,184,203,149,193,
+198,124, 65,253,222,  9,104,198,153, 99,186,182,159,190,214,149,137,107,197,125,142,168, 20,229,130,151,192,135,156,223, 91, 96,
+200,182, 45, 17,128, 41, 67, 53,146, 31,195,120, 44,196, 12,253,243, 64,248, 58,235,111, 77,115,229,189,253,181,255,226, 63, 67,
+104,201,246, 98,160,238, 26,148, 86,  8, 33,177,195,132,115, 33,239,193,155,134,227,163, 53, 70, 85,156, 28,175, 57, 62,104,185,
+113,220,114,212, 84,104,157,229, 44, 83,204,122,241,236,230, 38, 48,228,130,189,106, 53,141,201,112,116, 16, 18, 49,127,160, 69,
+  2, 74, 74,212,  2, 14,  4, 24, 18, 50,  9, 68,  8,136,224,145, 49,178,142,145,161, 36, 61,109,198,128, 72,145, 49,  6,156,207,
+ 28,137,218,122,  6, 34,113, 81,243,242, 54,240,250, 31, 93,112,120,182, 99,167, 34, 27,231,  9, 49,114,107,107, 57,254,104,200,
+ 65, 24,117, 69, 28, 29,195,251, 79,232, 14, 52, 71,171,134,203,126,100,107,  3, 90,  8, 30,109, 50, 83,255,243,183, 14,185, 85,
+ 73,254,224,155,223, 39,  4,203,189,203, 29, 34, 73,150, 46,241,237,203,158,117, 91,241,198,199, 95,230,226,209,  5,183,151, 43,
+222,122,233, 22,191,249, 43,159,230, 63,254,205, 55,249,181, 55, 95,224,230,170,131, 36,152,166, 64, 63, 69,156, 13,140,147, 99,
+180,129, 20,178, 83,225, 16, 60,126,242, 56,235, 24,156, 37,216,128,247,158, 71,195,196,229,104, 11, 63, 33,225, 98,164,119,142,
+ 77,111, 73,  2,148,150, 37,250,118, 71,163,225, 80, 42,154,224,233,148,194, 40,133,208,154,151,111,173,248,242,239,124,149,237,
+110,199, 15,190,247,  1,194,231, 92,172,235,155,244, 31,245,253,243, 21, 23,215, 38,240,103, 85, 24, 63, 81, 57,119, 45,128,229,
+ 42,112, 35,253,252, 50,207,217,202,117,177,128,131, 37, 31,191,177, 36,162, 89, 87,154,182,170,232, 42, 73,139, 68,213,134,157,
+115,133,160,151,145, 49,175, 21,183,140,226, 86, 85, 51,248,145, 86,106, 82, 10, 36, 60,223,239, 71,150,227,150,203,190,135,205,
+  6, 30,239,224,209,  6, 46, 31,227, 54, 61,103,147,229,113,140,124,184, 27,153, 66, 36, 93,108,243, 52,223,181,123,244,161, 50,
+153,103,144,138,202, 68,170,252,188,121, 91,224,221, 25,237,112,208, 28, 66,187,132,163,195,188, 46,168,107, 88,175,243,254,125,
+181,200,103, 64,215,128, 94,102,  7, 77,211,240,235, 77,131, 17,137,174,170,  8, 49, 15, 66,186,100,109, 92,140, 19, 38,129, 73,
+ 17, 35,  4, 77,165, 88,215, 21,150, 68,240,145, 74,148,224,197,157,167,213,  2,124,192, 72,168,124,160,173, 27,124,140, 44, 22,
+ 11, 26,163, 80,218, 96,140,201,  4, 89, 45,105,140, 42,214,177, 53, 85,211, 32,181,193, 52, 21,178,169, 16,198,100,  8, 92,101,
+165,209, 89, 12,184,144,232,173,231,113,  8,236, 92,150, 59, 63,112, 14,139, 32,  9,149,179, 61,100,102,187,123, 33,139,195,181,
+160, 23,134, 90, 72, 62,112,158,195,170, 35,153,154, 74, 43,164, 89, 80,235,134,180, 56, 96, 68, 33,164, 38, 84, 93,254,108,139,
+179, 31, 72,100,221,240,153,170, 34, 36, 56,104,187, 43, 41,172, 18,130,133,105, 48, 82,224,189, 99, 19, 11,193,115,174,238,222,
+194,228,112,211, 68,232, 51,129,111, 58,223,228, 85,211, 60,160,165,107,  3,109,145, 86,103,114,231,108, 21,158,246,202, 13, 55,
+101,116,119,242,248, 85,151,249, 72,115,162, 91, 44,240,123,242,123,191, 16,165,158, 94, 73,205, 69,221, 22,146,156, 42,197,104,
+134,252,117,169,  3,222,255,130,139,250, 92,204, 38, 11, 50, 49,104,141,151,  2, 31, 66, 86, 10, 72, 67, 72,158,209,251, 60,173,
+120, 95, 82,180,114, 34, 90, 18,185,152,251,152,161,216, 84,138,101,144, 32, 16,196, 20,105,180,161, 13, 25, 82,234,148,194, 59,
+143, 16,130,152,242,  4,226,125, 44,196, 55,207, 48,141,140, 49,225, 93, 62, 52, 61, 48,186,  9, 37,  2,214,193, 16,  3, 82,  8,
+108,  0, 79,160, 18,121,114,151,222,210, 17,209,  8,130,119,212,  9,172,205,136, 66,110, 39, 75,103,230, 66,129,212,195,190,235,
+154, 97, 51,113, 45, 88,226,122, 65,159,255, 93,138,124,193,107,185, 15, 25, 80,133,229,232,109,134,142,116,185,168,243,206,164,
+ 49,207, 88, 10,234,171,154,158,  9, 53,146,159,201,111,182, 91,192,114,149, 15,143,148,192, 77,124,237,247,255, 46,253,206,102,
+ 21, 64,109,176, 83, 64, 72, 73,240,158,232,114,188,224,173, 27,167, 28, 45, 23, 32, 36,181,210, 28,175, 26,142, 22,217,163, 64,
+ 75,145, 45,100, 67, 42, 62, 15,146, 74,100, 55,191,202,100,243, 24, 83, 75,100, 97,156,202,236,239,154,247,197, 36, 38,151, 57,
+ 21,146,132, 73,137,206,  7,142,125, 98, 25, 18,139,201,115, 18,  4, 75, 23,168, 99, 96, 51, 57, 84,130,203,193,131, 11, 12, 17,
+132, 79, 28,104,197, 99,  5,175,254,233, 71,164,119, 62, 32, 61,186,100,249,161,101, 57, 70,170, 23, 14,168,180,194,125,240, 17,
+219,179,115,158, 92,230, 29,109,244,145,135, 15,119,232,206,224,132,224,114,152, 72, 82,113, 99,221,177,181,158, 15,183, 61,175,
+ 31, 29,240,205,123, 27, 30, 93, 92,162,128,239,124,248,128, 11,167,121,247,254,  5,231, 54,145,132,224,213, 87,238,240,210, 43,
+183,249,213,207,190,202,167, 63,118,147,174,170,152, 92, 96, 24,  3,206,229,149,210,224, 60, 23,125,158,206,157,205, 28,129, 80,
+154, 67, 81,228,142,227,232,184,247,100,203,131,221,200,163,126, 98,179,243, 76, 33,100,251,219,152,145, 54,153, 34,206,  5,162,
+144,140,219,137,237,110, 96,165, 53,119, 14, 22,172,201,104,198, 52,121, 62, 60,159,184,152, 38, 94,191,181,230,247,127,251,215,
+249,222,253,  7,188,253,237,119,178,154,228, 57,178,119,241,203,132,130,174,187,161,205,171,167,249,217,248,121,215, 79, 77,149,
+167,178,131,108, 10,115,171,174,185,177,170,168,181,206,121,246, 69, 95, 29, 16, 60,158, 66, 41,232,249,254, 27,164,224, 99,149,
+100,231, 29, 85, 76, 12, 33, 16,237,136, 14,  1,227,  7,190,123,185,195, 61,185,132,179,115,216, 60,129, 48,229, 52, 53,173,114,
+243, 61, 31,172,162,192,160,155,190,132, 93, 85,249,161, 44,169, 84, 82,107,126,115,177, 98,155, 18, 95,170, 42,156,243,  8,165,
+153,250, 77,110,102, 78, 78,120,241,246, 33, 39,183,142,145, 93,205, 96,170, 60,129,181, 85,254,187,148, 44,251,213, 61, 84,155,
+164, 66, 41, 56,169, 52, 85,242, 57, 51,193, 77,140, 62,177,115,  3,219,209,103,211, 72,145, 72, 81,176,104,154,220,115,104,129,
+141, 89, 11, 48, 12,129,147,165,102,112,145,165,214,  8, 59,161,154,  6, 63, 77, 44,154, 54,123,177, 87, 53, 93,173, 73, 82, 81,
+ 27,133, 80, 58,171, 91,218,  6,105, 12, 81, 74,218,166, 98,170, 12,162,210,168, 90, 19,106,149,157, 69,203, 78,124, 32, 48,  2,
+143,167,137,  9,199,217,148,159, 23, 43, 53,136, 64, 37, 43,134,152,245,239,173,  4, 41, 13,145, 72,171, 20, 59,159, 56, 53,154,
+  3,221,208, 72, 69, 83,119, 12, 50,175,  2,164, 54, 28, 40,197, 67, 83,151,122,124,109,178,141,129,207,180, 29, 86, 73, 86, 34,
+195,236,139,148,104,234, 58,187,144,138,132, 50,  6, 67,228,195,105, 44,133,215,102, 37,152,117, 89,129,209,143, 48,218, 76, 12,
+ 29,124, 57,223,217, 75,129,139, 12,143, 68,254,239,178, 52,153,221,236, 47, 47,178,122, 99, 28, 96, 24,192, 91,194, 69,159, 51,
+ 68, 76,189,223,151,207,158, 10,243,148,159, 10,140, 47,197,222,  6,151, 18,202, 53, 79,234, 85, 65,114,103, 71, 80,  5,  8,245,
+ 75, 40,234,209, 23,230, 97,222, 27,219,161, 39,182, 13, 90,104,158,216,129, 86,231, 28, 93,102,242, 67,202, 89,233, 46,230,253,
+121,150,209,150, 32,  0, 41,  9,178, 28,248, 34,187, 18, 69, 34, 11, 99,184, 41,  5,143, 98,164, 65, 34, 82,202,150,130,228,152,
+214,157,181, 88,239,177,206,177,179, 19,194,123,122,239,136, 33, 19,191, 54,118, 32, 18, 11,105, 61, 91, 20,202, 20, 17, 30, 66,
+176, 28,214,130,228,  5,135,194,209,137, 72,229, 61,235,152,144,118,202,121, 46,209,102, 70,163, 47,228,136, 57, 96, 32, 81,164,
+ 10, 51,177, 70,238, 33,120,173,247, 63, 35, 69,134,243,107,147,117,149,226, 26,  4, 32,114, 72, 66,254,115,133, 16, 65,164,132,
+126,231, 31,187,154,216,229,190,160, 95,  5,194,252, 12,135,162,187,182,191,219,110, 88,254,230, 87,248,173, 95,253, 20,211, 84,
+ 26,165, 72, 78,175,139,  9,103,  3,222, 71,186,110,201,205,227, 53,151,151,  3, 50,  9, 42,165, 88,116, 21,149,222, 79, 95,214,
+103,216,125, 62,183,179,199,135,162,109,178,212, 76, 23,159,  1,163,115,122, 91, 61,183, 40,  9,132, 72, 84, 36, 84,140, 28, 68,
+208, 46,230,136, 99, 23,168,166, 68,114,158,122, 12,172,166,200, 98,242, 76,187,  9, 61, 56,  6,231, 25,  1, 55, 57,110, 28,117,
+124,253,157, 71,188,251,253,239,243,231,246,130,182,223,241, 82, 92,113, 28, 87, 28, 76,129,111,159, 63,225,255,217,158,243,225,
+176,225,242,114,195,  7, 83,228,206,122,201,147,222, 17,158,244,200, 16,185,148,176,176,158, 79, 28,173, 56,168, 53,105,242,124,
+253,124, 71,136,154,203,139, 77,118, 40, 12, 30,107, 61, 47,156,158,114,118,185,161, 94, 53,124,252,238,154, 59,167, 43,214,109,
+110,192,108,136, 88, 27,113, 33,146, 68,194, 58,207,118, 59,114,177,181,196, 34,217,105,107,197,232, 34,219, 97, 98, 24, 61, 46,
+ 70, 38, 27,184,236, 71,250,193, 50,140, 14, 27, 60, 42,102, 88, 82,136, 50,  5,250,148, 85, 28, 49,209,239, 38,166,237,200,170,
+173,185,209, 85,244,143,243,251,120,114,185,227, 79,223,190,207,163,135, 27, 38, 41,120,243,238, 17, 95,248,194,103,121,231,236,
+  9, 63,248,222,219,136, 57,123, 69,254,255, 80,216,159, 53,140, 17,207,176,238,127,214,194, 62, 79,232,166,206, 26,126,165,161,
+ 53,220,237,106,148,146, 68,  4, 83,140,217,207,  2, 65,239,  3,103,214,239,137, 76,101,189,117,146, 18,107,145,112,193,179,136,
+ 14, 25, 61,182,223, 16,237,196, 55, 63,186,128,199,143,114,198,249, 52,238,181,200,170,104,203,231,221,231, 48,230,130,222,111,
+178,147, 85, 91,231,102,220, 84,252,206,193, 33,159,172, 58, 34,130,183,180, 66, 39,193,139,109,205,203,  6,206,124,100,168,  5,
+111, 28, 29,240,202,241, 33, 90,183, 84,218,240,164,202,137,101, 68,177,255,156,230,231, 95, 23,167, 61, 45, 24, 99,228,118, 76,
+172, 68,222,211, 39, 34,163, 29, 56,219, 78, 57,  2,181,236,133,181,202,136,155, 49, 21, 19,226, 42, 64,175,109,  4,155, 62,176,
+ 48, 18, 93,138,100,180,142,186,174,  8, 74, 32,170, 10, 37,  4, 65,107,164,201, 49,194,149, 81,200, 69,131,172, 12, 65, 27, 82,
+ 91,227,180,194, 40,137,109, 12, 67,202,205,250,133, 20,108,124,100, 72,145, 71, 62, 49, 88,143, 87,176, 29, 97, 23,  3,151, 66,
+ 18, 98, 78, 95,211, 66, 80,149,200,237, 24, 19,181, 42,225, 45, 49, 51,172,106, 99,168, 83,162,170, 13,222,122, 78,234,138, 42,
+194, 11,181,225,  8,193,155, 50,113, 39, 56, 78,149,100, 45,  5,189,119, 56, 93, 17,195,196, 18, 65, 37, 52,173, 16,140, 34, 81,
+ 33,139,181,109, 34, 12,  3,223,158,118,244,187,203, 76, 94,180, 54,255, 26,134, 34,207,140,123,185, 89,165,242,112, 61,  7,192,
+204, 82,184,201,231, 41,124,217,148, 28,  4,149, 73, 13, 90,149,123, 62,229, 51, 61,204,107,166,144,173,100, 43,246,238,135, 49,
+230,154, 50,115, 77,124,220, 35,186, 54, 94, 65,247,121,184, 83,249,204, 15,215,184, 40, 74, 92,237,222,127,  9,147,122,121,129,
+174, 64,241,210, 16,140, 98, 23, 45, 70,228,160, 22, 67,246,130, 31,131, 67,201, 66,164, 74, 30, 33,114,196, 94,109, 12,158, 28,
+143, 55, 69,135, 20,  2,147,189,152, 56,109, 43,106, 41,217,133,136,241, 33,195,243, 49,129,119,164, 16,233,125,118, 43,147, 68,
+ 30,122,203,100,  7,156,207,233, 95,147,183,  4, 63,162,133, 96,176, 22,165, 42, 52, 46, 71,112,134,188,244,111,107,133,242,129,
+  3,149,243,126,187,224, 57,210,138, 83,  2, 47, 74,201, 82,  6,238,187,140, 44,228,  2, 91,118, 33,178, 92,120,161, 74, 22,178,
+216, 67, 52,130, 43,136,249,106, 82,159,245,238,243,142,189, 18,101, 98, 79,217, 34, 51,228,169,248,138, 84, 49,195, 49,110,182,
+ 69,140,251,162,222,204,122,201, 31,  1, 95, 54,101, 39,167,170,103,124,195, 99,238, 78,167,  1,136,188,240,201, 55,249,213,207,
+189,145,185,  5,228,233,220,187,148,239,237,201, 19, 92,228, 96,217, 33,181, 70, 75, 69,215, 85,156, 28,118, 28, 53,154, 69, 49,
+ 86,240, 62, 50,134,136,247,137, 24, 18,181, 18, 28,180,134, 69,163,203,208,146, 89,234,137, 68, 42,  5, 74, 20, 34,180, 22,130,
+138,196, 65, 72, 84, 33, 82,249, 68,116, 30, 19,161,241,137,106,138,132,148, 48, 54, 80,  5,193,194, 69,236,229,128,159, 44,155,
+113, 66,251, 64, 60, 90, 48,164,200,159,252,225,215,249,232,222, 35,126, 48,246,124,119,154, 88,250,115, 78, 82, 98,225, 26, 22,
+182,231, 27,118,203,219,195,150,209, 59, 90, 37,114,248,207,232, 57,117,137, 35, 99,184,115,216,162,106,201,106,200, 17,195,109,
+109,208,222, 99,181,192,138,  6, 59, 12, 60,217,230,164,192,143,127,226, 46,175,188,122,194,205,227,  5,139,218,228,  9, 37, 68,
+ 38, 23,176, 62,146, 66, 64, 41, 65,112, 41, 31,178, 49,225, 93,206, 60, 88,180,154,182, 49, 89, 46, 84,154, 64,161,  4, 82,  8,
+164,204,100, 78,161, 37, 74,  8,142, 14, 91,140,204, 76,246,101, 83,177,236, 12, 74, 72, 46,118,142,237,110, 32, 88,199,199,142,
+ 86, 52, 66, 50,158,239,104,140,224,219,247, 47,121,251,254,  3,108,121, 61, 30,137,233, 42,190,242,197,207,240,254,163, 39,188,
+243,246, 59, 63, 84,208,127,121, 83,250, 51,127,145, 42,178, 80,193,207, 94,216,103,189,122,183,202,240,116, 85, 28,224,148,230,
+102, 91,209, 41, 73, 37,  4,145,148,  3,157, 82,226,193,232,185,152, 27,234,170,200,222, 82, 66,198, 68,149, 28,167, 74, 96,199,
+137, 46, 38,  6,231,249,223,191,123, 31,206, 31,237,245,199,179,182,127, 38, 23,150,184,103,198, 18,248, 49,108,243,255, 51,148,
+ 52,186,245, 33,111,173, 79,136,194,240,226,162, 70,167, 72,146,134,166,110, 89,152,196,102,130,117, 85,113, 88, 41,222, 88, 45,
+ 57,110, 23, 28,106,205, 73,211,112,223,  6,122,202,144, 48, 67,176, 51,  3, 58,132,220, 68, 12, 61,182,239,217,248,158,247, 54,
+143, 89,226,120, 50, 90, 54, 46,177, 75,  2, 23,178,140,152, 36,145, 73, 16,164,162, 50, 26, 33, 53, 70, 81,162,172,  5,210, 64,
+ 35,178, 83,227, 36, 36,161,172,109,186,186, 70,154, 26,154, 26,165, 20, 65, 74,124, 93, 97,171, 12,195, 39,165,241,203, 38,219,
+ 17, 24,197,164, 21, 35,145, 73,  8, 54, 33, 50,  6,207, 37,137, 15,139,187,231, 35, 18,219,  9,  6, 59,241, 40,  9,100,176,140,
+ 54,114, 88,235, 98, 50, 37,209, 66,208,201,172, 78, 74, 49,225,129, 70, 40, 86, 82,228,248, 12,  1,134, 44,109,238,164,160, 53,
+130, 90,  4,166,  0,  7, 58, 80,197,200,218, 79,220, 82,134,147,232, 89,  0, 55,147,224, 72,100, 23,184,149, 84, 52,  9, 68,242,
+ 28, 86, 42,167,114,110,206,121, 24, 38,164,247,164,217,131,221, 23,178,104, 40, 59,241,121,205,170,138,110,221, 21, 20,198, 22,
+146,105,125, 45, 33,110,142, 37,158, 83,212,196,108, 97,107,138,148, 45,101, 36, 32,165,140,188,136,194,199,210,133,217, 78,225,
+ 86, 12,197,219,100, 30,228,102, 78,151,143, 25,225, 85,  5,  5, 16,242,169,200,237, 95, 78, 81,191,218,177,205,145,136,249, 67,
+177, 90, 48, 17,152,130, 71, 81, 58,187, 16, 73,228,195, 58,196,108, 19,104, 67, 64, 25,195,224, 44, 70, 27, 36,138, 49,120, 42,
+ 45, 88,104,133,145,154, 24,  2, 90, 40, 38, 63,230, 32,151, 16,232,157,167, 34, 34, 99,226,131,221, 57, 83,244,164, 40,232,221,
+142,157,243, 36, 17,168, 35,140,193, 19, 66, 36,122,139, 18,130, 42,  6, 42, 34, 73, 68, 26, 31,104,133,164,177, 19,173,144,172,
+132,100,233, 39, 14,148,196, 36,184,237, 35, 15, 35,108, 66,122, 58, 87,189, 47,145,172, 46,114, 69,163,116, 37,206, 79,138,167,
+ 13,253,231, 29,251, 12, 21, 93,143,  5,156, 97, 60,165,242,133, 27,167,156,210, 21,203,254,125,150,188,204,100,166,166,  2,189,
+200, 55,198,243,100,137,186,184,103, 41,145,161,160,107,210,135,103,191,190,242,213,175,240,137, 79,190,140,115, 30,103,195, 21,
+146, 49,237, 38,236,232,105,154,138,151,111,157,102, 50,142,209,172,219,134, 27,135, 45,203,198,228,200, 85, 33, 25,125,192,167,
+ 68,163,  5,198, 72,106, 45,105,180,202, 69,173,120,236,199,226,207, 30, 82, 38,212,205,156,  4,145, 18,186,152,101,132, 24,145,
+206,103, 93,108,140,212, 67, 36,141,158, 48, 89,170,222, 35, 54, 22, 51, 68,218,221,132, 25,  6, 46,157,229,116,217,146,110, 29,
+240,231,127,241, 54, 15,254,234, 67, 54,187,145,  7, 33,178,182,129,255,115, 24,249, 87,219,135,124,142,137,151,150, 47,241,107,
+171, 83,110,121, 71,140,158,101, 63, 34, 71,207,105, 76, 44,235,154, 87, 63,113,135,218,200,236, 53, 52,  6,134, 40, 16,173,161,
+ 94,183,156, 46, 27,110, 31, 53,188,250,210, 77,236,164, 88, 28, 29,240,242,171,167,188,112, 99,197,113,151, 49,135,221,232,152,
+108, 96, 51, 76,108,139,115, 30, 62,102,  4,195, 23, 87, 44, 41, 88, 46, 42,150, 93,195,106, 81,179,236, 42,150,181,193,212, 58,
+255,188, 72, 24,163,168,107, 67,221, 24, 14, 15, 90, 94, 56, 94,160,181,198,249,196, 65,171, 81, 82, 18,  4,156,157,109,153,134,
+137,197,178,229,215, 94,185,137, 74,129,113,176,140,214,241,205,  7,231,108,199,158,139,237, 37,253,206, 34,162, 33,136,192,139,
+183, 14,249,244, 91,111,241,191,253, 47,255, 34, 67,185, 60,237, 33,195, 53,250,200, 47,244, 76,144,215,238,249,171,221,100,250,
+233, 25,238,186, 16,226, 22, 93, 38, 70, 45,234,188, 62,146, 34,203, 35,  4,156, 84,146, 70,107,180,202, 25,  2,147,119, 60,153,
+ 60,239, 88,155,243,176, 67,200,242, 84, 37,192, 59, 46,173,229,174,145,220,219,245, 40,231,248,112,179,229, 59,143, 47,185, 56,
+219,228, 61,167, 20,185,160, 63,203, 25,240, 62, 79,116, 67,159,201,110,206,239,223, 99,183,132,163, 19, 42,165,121,171,109,144,
+ 85, 69, 72,134,182, 85, 76, 46,241,104,242,116, 74,208, 39,184, 89, 25,142,234, 26, 41,178,198,220,199,192,221,166,226,219,219,
+205,222,247, 34,148,215,221, 15, 25,254,223,141,249,239,222,245,236,166, 29,231,214,241, 97,138, 60,118, 22,155,  4, 74, 42,148,
+144, 24,165, 72, 49,161,148, 65, 10,205,132,160, 85, 50,  7,181,104,197, 20, 35,203, 90,226, 35,180,181,102,244,129,182, 50, 36,
+153,243, 43,188,148,  8,173, 24,148,194,214,  6,140,194,105,201, 84, 12,166,166, 36,178,126,187,220,179, 81, 42, 70,145,232, 37,
+156, 91,201, 35,151,232, 93, 96,227, 19,187,157,101, 20,137, 29,  2,239, 45, 42,122,106,153,153,226, 41, 38,100,242, 36,165, 72,
+ 33, 34,136, 36,231,137, 49, 81, 37, 79, 10,137,174,201,180,254,101,107, 48,209,161, 91,141,  8,  1,165, 36, 43, 63, 50,197,136,
+  9, 14, 41, 43, 12, 35, 11, 17,208, 41, 33,  9, 24,169, 57, 81,137, 24, 45,210, 91,214,149,198,184,137,237,238, 17,219, 97,226,
+141,174,226, 52,194,199, 14, 22, 52, 82,179, 90,180,152,186,161,151,197,  9,116,206, 68,143,177, 16,158, 51,  7, 33, 59,195,145,
+207,254,144,138,107, 99,249,185,121,186,118,110, 47,225,148,101,152,107,187,  2,223,135, 18,215,170,247,205,102,136,185, 89,104,
+179,185, 87,110,234,102, 20,188,172,122,221,236,198, 88, 76,118,230,181,112,226,151, 88,212,103,239, 92,101, 50,100,165, 51, 29,
+ 63, 33,136, 90,177, 11, 57, 33,104,231, 45,187,224,168, 11,148, 97, 99,200, 19, 11, 96,180, 33,164, 64, 18,217,110, 84,  8, 67,
+ 27,  1, 17,104,165,100,240, 83,142,147, 37, 96, 39, 75, 45, 37,113,154,120,108, 71,124,140, 60, 25,119,132, 24,  8, 62, 18,131,
+163, 70, 50,133, 60, 41,117, 66,144,130, 43, 68, 45, 80,193, 97, 66,164,142,158, 54,122,140,144,116,222, 35,162,163, 81,138, 38,
+ 70, 66,138, 52, 74,241, 58,  9, 47,  2,247, 41,172, 69,235,179, 67,148,203,157,255,213,105, 40, 10,185,221, 22, 24,231, 58,185,
+  2,114,199, 55,107,117,103, 24,134, 82,208, 99,129,244,187,106,239, 53, 28, 75, 19,225,228,149,124,  1, 89, 18,133, 92,137,250,
+123,222, 65, 42,234,124, 19,142, 33,147, 65,126,196,215, 87,190,246,219,220,190,115, 74, 72,137,105,242, 72,173,114,156,234,228,
+ 73, 17, 94,188,123, 11,211,214,184, 40, 80, 82,114,235,112,193, 65,103,168,180, 70, 25, 93, 44, 99,243,155,175,  5,104,153,173,
+ 98,141,201, 42,  6, 31, 50,194, 33,201, 33, 43,179, 58, 34,250, 76,120,147, 33,171, 34,164, 15, 40,159,144, 62, 34, 99, 36,217,
+ 64,216, 58, 98, 63,145, 98, 36, 61,238, 81,151, 35,141, 75,212, 83,192,244, 61, 43,165, 56,190,125,204,187,222,243,207,255,213,
+ 31, 82, 77,129,197, 24, 24,183,150,205, 54,176, 14,137,175,  4,205,215,197,200,203,227, 64,167, 43,110, 45, 78,120,109,117,204,
+189,221, 57,239,143, 27,150, 49, 49, 34, 88, 13, 96,146,100,177,108, 57,124,229, 20, 35,178,150,250, 34,134, 76,222,116, 17,173,
+ 18, 47,220, 61,228,213, 87,110,241,226,141, 37,181, 82,217, 29,213,121,206, 46, 39, 98,140, 89,122, 86, 24,150, 62,100, 59,219,
+ 24,178,245,237,162, 49, 28, 29, 52, 44, 23, 13,139,174, 66,203,108,247, 89,107, 81,162, 40,115, 81,151,  5,213,104, 42,195, 65,
+219,228,117,145,115,220,174, 43, 86, 81,162,109,228,133, 69,195,127,244,218,109, 62,251,194, 17,211,100,209, 34,113, 57,120,254,
+226,131, 71,124,251,163,119,217,108,123,222,184,241,  2,127,247,243,111,178, 17,112,118,177, 99,181,106, 57, 58,232,248,239,254,
+254,239,241, 63,255,175,255,226, 74,158,155,126,217,211,250, 92,244,230,102,119,110,116,159,149,193, 61,175,168,107,160,106, 88,
+ 31,174,160,109, 81,181, 65,181, 53, 65, 23,143,136,178, 82, 58,139,154, 70, 75, 54, 46, 63, 95, 46,122, 38,155,232, 73, 76, 59,
+187,223, 80,217,144, 97, 83, 27,248,224,114,224,254,227,129,239,159,143,188,255,228,130,139,203, 93,150,246,201, 50,141,205, 46,
+117,206,255,176,253,238, 15,153,232, 40,136,134, 91,183,143,249,237,155,119, 72,186, 35,134,244,255,209,246, 38,191,150,101,215,
+153,223,111, 55,167,185,237,235,227, 69,151, 17,217, 49,147, 20, 51, 37,153,106, 76,169, 40, 74,150, 68, 89,178, 74, 50, 92,  5,
+215,192,240,200,255,131, 97,120,230,145,231,  5, 15, 12,123, 96, 24,112, 21,108,192, 48,224,129, 97,187, 44,168, 76, 74,114, 73,
+ 44, 50, 73,145,148, 72, 38,153,109,244,205,235,110,123,206,238, 61,216,251,190,251, 50,197,164, 26,144,  1,  4,162,121,209,188,
+119,239, 57,103,237,181,214,247,253, 62, 82,  8, 72,213, 34,165,196, 83,226,160,221,154,221, 90,101,123,175, 20,164,224,169,132,
+160, 15,150,153,117,172,186, 46,231,107,172,186,220,157,207,250,172,154, 95,173,243,239, 13,170, 92, 92, 26,133,  9,158,105,219,
+ 34,145,196,148, 24,212, 77, 22,170, 74,157,199,216, 34, 51, 33,188,208,120, 41, 89,198, 60, 13, 90,117,129,118,160,152,245, 30,
+169, 20, 42, 70, 68, 91, 17,139, 69, 25,  9,125,147, 85,233,243, 40,  9, 40,146,172, 48, 73,226,132, 32,216,200, 10, 73, 74, 18,
+ 39, 83, 78,236, 52,121,245,228,188,103, 21, 96,217, 59,140,144,184,  4,206,121,180, 51,116,206, 82,135, 44, 34,139, 41,230,157,
+125,112, 84, 34, 98,173,  5, 34,202, 90,100, 18, 52,210, 81, 37,145, 47, 27,160,138,137, 73, 12,  4,161,168,141,193,120, 75, 74,
+ 48, 20,  2,153, 28,163, 16,152,232,154, 58, 24,110, 84, 13, 35,183,162, 37, 49,244, 22, 29, 44,202,117,216,110,129, 13,142,137,
+132,147,229,138,241,160,166,213, 21,173, 18, 12,181,100, 90, 73,246,154, 58,175,111,154,188, 86,184,188, 78, 55, 40,223,205,179,
+ 59,149,134,108, 35,100,219,120,215,131,223,194,103, 92,204,117,162,109,242,117, 39, 85,174,143,170, 52,134,178,172, 88, 55, 26,
+ 10,227,183,129, 93, 27,140,183, 15,219,213,238,230,112, 92, 93, 33,214,241,211, 46,234,148,253,130,208, 37,231, 86,129,177,229,
+ 96, 35,232,140,  5,157, 71,242,107,219,163,149,198,197,128,172, 52, 34,  9,250,224,137,228, 46,183,213,117, 22,210,  5,207, 88,
+ 39,150, 41,114, 32, 21,214,152,236, 97, 12,145,181, 51,152,232,209,222,176,182,150, 14,232, 76,199, 88,  8,  6, 74,177,180, 61,
+149,212, 52, 66, 32,124,200, 63,166,132,243, 61,  3,149,119, 54, 10,168,131, 99, 15,137, 75,  9, 29, 28, 93,140,244, 62, 49, 70,
+ 82, 87, 13, 85,  8,236,  9,197,169, 12,204,131,202,111, 84, 42,124, 97,159,182, 34,135, 84,146,220,144,121, 68,158,194,214, 68,
+186,185, 24,196,166,187,143, 91,121,189, 16, 91,164,103,218,228, 66,171,242,198, 54,133,153, 93,222,104,177,201,118,239, 63,185,
+187,241, 54,139, 62,194,143,143,246,251,226, 31,254, 46, 85,163,233, 58, 71,138,217, 49,176,188, 88, 17, 34,236, 29,238,241,185,
+215,111,163,165,198,133,132, 78,146,195,253,  1, 90, 72,132,144, 37,218, 54,223,116,141, 18, 12, 90,141, 86,130,186, 42, 59,249,
+144,217,236,214,167,188,103,246,185, 91,143,  5, 42, 35, 67, 64,165,128,176, 30,225,178, 93, 74,184,128, 48,158,212, 57,150,243,
+ 21,189, 11,120,145, 48,179, 37,118,181, 66,122,136,222, 33,131,103, 52,153, 50,120,233,128,239,124,245,187,124,248,205,135,172,
+ 83,160, 78,  2, 29, 35, 79, 86,158,207, 10,197, 43, 85,197,211,149,227,105, 88,163,100, 71,131, 96,111,116,192,117, 52,149,183,
+124, 79,  4,214,109,195,  9,  9,191, 50,236, 92,159, 34,142,198,132,186, 34,145, 80, 38,176, 91, 41,186,121,199,105,128,107,  7,
+ 99,148,206, 94,221,139,206,242,236,124,205,247, 63, 60,163,235, 28,107, 27,112, 54, 79, 37, 82,204,135,154, 16, 50,  1,177,173,
+ 43,166,147,134, 65,157, 15, 68, 66,200,252,241,152, 10,219, 62,146, 95, 21,145, 71,249, 46, 96, 35,216,152,184,247,112, 65,191,
+ 10, 60,120, 48,227,254,189,103,252,249, 95,189,205,  7,207,206,152, 45, 44, 55,119, 26,246,235,154,163,131,  9, 73, 43,126,238,
+238, 17,186,217, 97,247,240, 58,255,209, 47,188,134,214,130,183,159, 93, 32,149,230,217,210,240,221,119, 31,243,243, 47, 93,231,
+248,211, 63,195,159,124,249, 43, 31, 37,204,253, 52, 58,245,143,143,225, 55,202,119,119, 69,107, 18,127,140, 10, 94,106,104,  7,
+ 28,238,143, 24, 13, 90, 68, 91,163,180,194,164,180, 77,136,139,128,204,135,197, 59, 26,166,178,172,209,128,123,157, 35,108,160,
+ 33,155,233,128,119, 89,125,190, 92,100, 63,113,232,242, 56, 93, 52,185, 59, 55, 54,119, 79,222, 95,153,132,233, 43, 10,228, 43,
+157,210,230,254,211, 10, 14,246,184, 51, 29,115,115,239,  0,106,201,163,222,146,170,154,161, 86, 60,178,158, 38, 88,230, 41, 50,
+ 86, 21, 82,  6,234,148,115, 38, 92, 12,136, 96,185, 88,175,248,206,147,115,152,149,207,107, 54,135,110,145,  5, 87, 33, 22,180,
+115, 17,231, 14,244,101,241,181, 34,139,  2,155,170,201,152,101,145,175, 36,165, 42, 66,180, 36, 33, 73, 41,219, 72,173,  7, 71,
+202, 49,213, 94,160, 10, 69,173, 71, 35, 43,129, 81,146, 80, 73, 86,165,128,172,125, 78,157, 11, 85, 69, 36, 97,149,190,  4,  9,
+  7, 33,233,125,190,175, 29, 69, 35, 66,162, 79,130,245,218, 20,109, 84,192, 90,131,242,142,149, 51,168,232, 16,214,100, 26,104,
+138,164,224,209, 41,209,245, 29, 58,  6,170,224,105,132,163,  9, 61, 83, 36, 45, 48,137,121,157, 53, 44,147,189,161,203,147,176,
+ 16, 28,117, 48, 84,206,101,231, 71, 74,244,174,231, 90,138, 56,187,228, 64,106,  6,206,144, 92, 79,116,  6,172, 69,  4,159, 19,
+196,131, 97,119, 48,160, 15,  1, 65, 98,191, 30,208,  5,135,148, 50,195,110,180, 98,160, 21, 39,182,192, 98,184,194, 87, 80,229,
+181, 23,101, 18,170, 84,185,126, 82,158,190,202, 82,120, 59,155, 15, 96,155,105,236,166, 16, 55,162, 68,181,214,219, 76,  3, 91,
+ 82,232, 90,189, 21,202,109,186,243, 77, 96,204,102,220,158,210, 37, 15,109,147, 64,248,211, 45,234,155,229,253,120,148,111,214,
+ 84,226,239, 66,184, 44,108,193,249, 60,122, 39,209,199,252, 66,166,148,195, 86, 98,138, 40, 52, 81, 36,130, 40,191,142, 17,157,
+ 18, 85,  8, 44, 82,162,242, 22, 99,122, 68, 74,248,224,136,165,155,122,102,215,244,222, 50,148, 42,239, 52, 67,100,162, 53,222,
+247,200, 24, 25, 10, 65, 75, 62, 36, 72,  4, 49,120,170, 24,153, 58, 75,171, 27,156,181,232, 24,169,144,232,178,230, 78, 82, 17,
+189,163,115,129, 97, 74,236, 42,197, 66,  9,230,126,227, 83, 44,249,209,193, 21, 53,123,121,179, 93,151, 11,111,111, 74,151,144,
+242, 27,211, 86, 57,150,213,199, 45,102,179,173,202,232,165, 46, 73, 61,165,160, 19, 63,234,133,244, 41,243,228,125,252,123,198,
+113,234, 79, 20,211,253,218,239,253, 22, 90, 75,124,136, 40, 41,177, 54, 98,123, 75,211,182,220,186,117,192,181,241,136,103,179,
+ 14, 25, 97,111, 90,177, 55,200, 33, 60, 82,100, 76,175,146,185,131,175,148, 64, 41,145,193, 41, 34,175, 85, 98,140,  5, 50,147,
+139,151, 40, 86,142,252,251,249, 59, 33, 16,173, 39,244, 22,187,182,152,165,193,251, 64, 90, 91, 22,243, 62,167,231, 89,143,233,
+ 12, 23, 93, 15, 50, 50,235, 23,116,193, 51,216, 25, 83,239, 14,185,241,175,254,146,207,215, 53, 39,115,195,227, 51,195, 13, 39,
+120,147,138,159, 19,138, 87, 15, 70,204,206,123,206, 26,112,195,134,239,164, 53,207, 87,103, 28, 70,201,167,135,183,249, 25, 53,
+228,184, 64,112,118,218,  1,182,179,220,179,150,249,189, 25, 79,223,123,206,243,103,115, 46, 90,201,153, 84,188,122, 56,102,168,
+ 20,203,165,225,100,217,241,100,222,241,248,249, 34,251,133,  3,152,206,227, 66, 44, 70,137,172, 27, 24, 13, 42,118,199,  3,118,
+ 39, 45,131,186, 66, 43, 81,120, 70,145,206,  6, 58,235,233, 92, 22,240, 72,160, 77,208,219,128,183,129,197, 69,207,163,179, 37,
+ 23,179,  5, 15,159, 60,226,237,251,239,115,210,173,161,170,169,135, 19,244,206,136,119,151,150, 71,  1, 78,156,229,157,147, 37,
+ 43,227, 56,239, 60,198,122, 30, 44, 87, 60, 92, 27,144,130,231,103, 43,238,253,224,125,254,234,237,239,112,178,148,168,225,144,
+ 55,126,254, 13,190,246,231, 95,253,177,182, 54,241,147, 44,234,155,130, 30,210,214,  1, 10, 63,158, 42, 87,143,184,125,125,  2,
+170,197, 87, 21,163,182,165, 45,221,146,  9, 27,145,104,  4, 19,105, 98,228, 88,230,195, 98, 68, 18,149, 96,105, 29,235,116,165,
+131, 10, 33,119, 81,253, 42,227,159, 69, 25,159, 59,151,255,157, 13,251, 59,132,143,118,227, 90,110, 39,  3,162,236, 69, 21, 91,
+ 29, 77,165, 96, 56,230,100,103,135, 32, 43,188, 28, 82, 75,149,137,153, 85,205, 52, 37,116, 59,166,151, 31,150,  0,  0, 32,  0,
+ 73, 68, 65, 84, 68, 57,203,154,196,131,213,140,212, 45, 25, 36,203,136,132, 89,175,120,251,249, 41,103, 79,207,225,244, 28,204,
+ 34,143,248,157,223, 38,143,137, 43,150,192,166, 42,124, 11, 73, 40, 73,103, 85, 81,229, 87,178,202, 56,255, 16,208,170,130, 36,
+112, 49,101, 16,151, 20, 68, 45, 25,106,133,208,  2, 47, 65, 10, 73,146,130, 46,  9,180, 86,244, 46,  3, 90,214, 17, 86,101, 28,
+111, 99, 34,181, 13,222,231,189,242,178, 60, 51,214, 34, 15, 31,215, 49,178, 10, 89, 95,227,124, 94, 69,197,126,133, 11,249,192,
+110, 92, 79,109, 13,206, 91,132,144,196,100, 81, 66,162,162,197,251,136,116, 61, 42,  6, 68,232,104,131,167,  1, 92, 48, 76, 19,
+ 88,179,100, 39,102, 58, 95,244, 22,101,215, 40,179, 38,121,135, 54, 29,149,115,  8,111, 17, 49, 48,241,158,224, 61,123, 82,242,
+217,221,107,156, 46,207,105,189,167, 74,130,140,197,202,225,153, 83,221, 32, 82,100, 44, 53,109,193,187,106, 41,177, 49, 80, 41,
+137, 11,  1, 37, 36, 59,117,195,233, 98, 85,130,137, 68, 46,210, 87, 69,151, 27,107,241,230,186, 81,133, 74,103,202,179,190,183,
+ 37,169,176,172, 28,219,122, 27, 10, 22, 92,238,196, 99,216, 10,165, 55,226, 99, 81,158,247,170, 68,105, 27,183, 61, 40,108,198,
+239,136,172,143, 82,250,167, 88,212,181,222, 98,237, 98,202,106,208,210,117, 95, 22,187, 75,225,129, 33,149,194,110, 17,180,149,
+102,237, 93, 73,118,203,129,  3, 74,128,  8, 14, 79, 22,182, 12,100, 66, 57,139, 41,222,192,133, 91,103, 36,108, 76, 92,248, 14,
+235,  3,193, 27,214, 49,112,144,114,172,106,  8,129, 29,161, 72, 49,160,145,168, 80,216,190, 18,140,143,232,  8, 59, 90, 82,187,
+144, 69,166, 41,191,245, 41,  4,156,204,187,238, 20, 34,227,186, 98, 46, 19, 58,229, 16,146, 71,193,103, 62,188,247,219, 44,242,
+ 20, 75,113,247,219,241,  9,105, 11,228, 15, 62,139, 37,172,221, 90, 24, 68, 33,  8,109, 34, 93, 55,227,149, 84, 70,237,227, 97,
+126, 29,155, 58,255, 25,235,254,142,120,223,171,133, 60,254,200,194,254,230,239,255, 30,191,240,139,159,166,183,158, 80,110, 72,
+211, 89,108,239,184,118,243,144,227,221, 49,141, 84, 44, 59,203,238,168,229, 96,212, 50,104,117, 86,189,139, 92,  8,107, 41,242,
+186, 73, 10,116,233, 16,124,200,  5, 93,144, 49,167,174,160, 78, 19, 89,  9, 46, 55, 95, 91,200, 59,162,208, 91,170,181,195,134,
+ 64,176,185,192, 69,231, 73,189, 39, 25, 71,215, 25,122,219,115, 26, 29,115, 25,121,183, 91, 97,154,138,195, 79,223, 34, 62,152,
+209,252,229, 35, 94, 29, 31,240,235,205,136,253,139, 53,225,169,231,200, 75,150, 83,201,122, 92,241,158,247, 40, 37,185, 23, 61,
+231,227,134,119,149,224, 66,193,177, 82,140, 85,195,129, 28,178, 47, 43,118,  6,  3,166, 66,193,243, 21,247, 79,231, 92,191,189,
+195,139,183,246, 56,184,177,203,145,208, 92,107,107,148, 75,216, 62,219, 35,133, 43, 89,238, 87,248, 17, 66, 10,234, 58,187,  3,
+118,198,  3,246, 38, 67,246, 39, 13,131, 90,151,107, 59,255, 29, 23,  2, 49,  6, 66, 74,212, 82,146,124, 98,170, 18, 47,213, 53,
+ 79,103, 29, 31, 60, 56, 99, 54,155,227,188,229,112,111,196,231, 62,117,147,155,215,142,153, 14,119,217, 29, 78, 72, 69, 93,127,
+231, 96,194,106,109,120,126,182,162,209,154, 51, 27, 88,199,196,193,225,152,221,189, 17,200, 12,117,154,159,204, 57,174, 27,246,
+ 38, 83,122,159,241,161,175,191,242,  2,191,248,239,252, 60, 95,249,202,159,125,100,191,254, 19, 47,232, 87, 21,240,155,164,171,
+205, 84,235,111,163,202,141,  6,152,193,132,209,116,196,167,247,  6, 28, 14,106,118,107,205,245, 90, 49, 80,138,147,165,201, 15,
+ 78,103, 49, 46,146,148,230,104,216, 48, 80,130, 86,100,208,202,194,231, 96,161,188,251,235,243, 67,212,102,209, 25,190, 56, 82,
+148,222, 78,202, 54,209,176, 31,103,214,111, 86,  7,170, 20,116, 41,178, 85,174,153,192,141, 99,216, 25,195,100,159,231, 85,205,
+141,102, 68, 39,  4,123, 77,205,185,113, 56, 96, 71,193,137,181,248, 24,121,107,121,206,217,226,148, 39,103,231, 60,158,157,242,
+214,163, 51,158, 62,124,  2,179,243,188, 46,251, 27,124,138,205,  1,191,220,198, 77,181, 77,  2, 67,208,167,128,144,130, 73, 53,
+192,166, 68,163, 20,178, 76, 71, 68,138,136, 24,243, 72, 94, 66,244,130,145,202, 16, 40, 33, 37,169,146,132, 36,137, 74, 98,124,
+202, 63,146,105,102, 46, 38, 58, 31, 17, 42, 23,241, 40,243, 10, 37,175,128, 99, 30,173,147, 19,212,164,247,172,124,160,235, 60,
+209, 25,146,136,132,110, 13,206,144,130,205, 25,234, 66, 18,162, 45,169,184, 14, 21, 19,214, 27,218, 70, 66,176, 12,136,  4,223,
+ 83,153, 30,229,  3,209, 59,154, 20,113, 33,128, 55,200,224,136,166,  3,103, 17, 46, 79,236,156,235, 24, 34, 32, 56,132, 16, 57,
+ 47, 66,192,172, 95,229,116,199,226, 67, 15, 36,148, 80, 40, 18,158, 88, 66, 54,  5, 42,101,105, 70,231, 12, 29,177,120,230, 19,
+ 54,  6,150,214, 51,105,106, 22,222, 95, 97,244,139,220, 41,111, 28, 36,155,113,249,102,148,190, 17,198,165,194,160,135,237,245,
+181,217,207,111,148,242, 87,121,241,226, 74, 81,247, 37, 20,198, 20,198,130,210,249,218,221, 96,  2, 67, 73, 51, 68,129,119, 63,
+101,161, 92, 91,129, 87, 48, 29,230,125,238,168,217,226, 80,155,234,114, 92,128, 80,121,212,229,242,233,105,181,238,145, 85,131,
+113,  6,161, 42, 70,186,194,186, 30, 17, 35, 50, 37,134, 41, 18, 17,212, 41,208, 71,199,202, 59,148, 80, 24,111, 89, 59,139,137,
+145,148, 18,141,212, 76,131,197, 91,199, 80,107,134,192, 50,  6, 14, 85,141, 53,153, 24, 85,107,149,167,  5, 62,160,101, 22,105,
+212,193, 51, 78, 20, 14, 61,151, 66,  5, 67,202, 76, 99, 18,  6,232, 82,204,227,254, 74,210,155,136,237,203,205, 31, 93, 17, 76,
+168,252,117,171,143,189, 54,118, 51,122, 44, 63, 23,229, 77,  9, 69, 81,155,228,246,230,221, 60,232, 54,252, 71, 41,183,209,126,
+ 54, 67,117,127, 44,113,174, 41, 40,193,205,195, 74, 21,145, 71, 16, 31, 41,236,191,250,235, 95,224,248,250,  1, 62, 38,250,117,
+ 30,191, 59,147,245, 12,187, 59, 35,110,237, 78, 74,195,162,105,180,162,106, 84,222, 53, 35,112, 49,146, 82,188,124,206,233,130,
+131,141, 41, 96, 93,192,197,108,187,202, 76,130, 13,140, 41, 79, 43, 68,140, 40,145,168, 82, 94, 45, 57,231,145,198,209,185,236,
+231,118,214, 97,230, 61,177,239,113,171, 53,157,181,204,214,134,185,237, 89, 24,195,105,176,236,191,120,155,157,207,222,226, 43,
+127,254, 13,222,250,139,251, 12,142, 21, 47,220,124,145, 23,118, 26,252,196,240,245, 39,  6, 33, 34,143, 71,112,126, 56,196, 95,
+159, 50, 18,  2,150,  6, 81,107,226,193, 49, 15, 14,199,156,141, 43,  6, 71, 35, 26,169,209,109,141, 58, 24, 50,108, 27, 14,238,
+236,178,127,123,143,118,210,210,122, 24,161,168,155, 10, 85, 41, 70,114,139,207,140, 49, 96, 67,164, 25, 86, 76,198, 13,215,246,
+134,220,220, 27,113,109,119,196,193,116,192,100, 88, 51,110,106,180, 86,249,181,  8,145,152,242,136, 94, 10,201,180,209,236,141,
+242,104,252,134,150,200,121,199,255,246,111,190, 75,112,145,122, 48, 96, 50, 30,241,194,241,148, 59,187, 35, 82, 76,188,253,195,
+ 71, 44,206, 47, 16, 62,112,234, 37,119, 38, 53,235,103, 75, 98, 31,217,213, 21, 55,246,134, 44, 58,207, 98,101,105, 27, 77,191,
+178,200,  8,211,225,128,225,112,192,218, 71,108,200,195,162, 81, 91,241,218,171, 55,240,178,229,251,127,253,221,143, 20,242,191,
+ 79, 65,255,219,254,236,175,254,193,239,242,202,103, 62,203,  7,111,191,253,  9,171,162, 79, 56,164, 14, 91,216,221, 37, 76,134,
+252,236,222,152, 73, 83, 19,132,100,164,  4, 74, 73,146,  8, 60,176, 41,143,203,215, 38,251,213,119,106,142,170, 28,  8,178,142,
+145, 93,173,  8,  4,158, 47,138,255,184,187,  2, 19, 65,111,221, 35,162, 46,162,164, 79, 56,100, 92,213,  4,184, 50,  5, 31, 76,
+144,119,239,114,243,238, 45,210,225, 17,118,178, 83,114,229,107,180,210,153,  1,159, 34,199,117,131, 35,160, 17,168, 20,121,104,
+123, 78,251, 25,166,239, 88, 60, 62,229,236,222,  3,220,114,  1,203,213,143,159,190,109,178,224, 55,154,157,186,216,251, 66,118,
+  4,  5, 41, 88,121,203, 78,221,162,132, 68,136, 92, 72, 66, 12,104, 85, 19, 69, 98,131,126, 10, 82, 49, 44,135,114,155, 68,110,
+ 10,149, 32, 59,234, 36, 65,102,124,240,218,102, 17,108, 42,207, 64, 81,236,136,202,  7,188,144,136, 50,117, 77,198,230,224,167,
+222,129,239, 73,222, 18, 76,143,138,158, 24,115, 98,156, 19,130,228,123,156,207,137,107,222, 88, 76, 74,232,148,  8,201, 51, 66,
+226,125,207, 40, 74,186, 16,169, 69, 34,152, 14,153, 32,218,142, 58,120,162,115,140,200,235,170, 97, 10,196,  4, 67, 85,177,246,
+134, 86,230,152, 85, 73, 22,232,170,242,236, 81,100,194,168, 32,139,182,129,156,248,137,192,166,188,231,246,228,  6, 83,  8,  8,
+ 41, 98, 98,194,246,150, 73,211,240,104,181,162,169, 42,236,198,238, 38, 85, 41,172,113,155, 60, 88, 95, 81,158,214,114, 11,166,
+145,106,155,247,177, 57, 52, 74,145,109,145,155,149,173, 40,249, 32, 27,101, 59,229,227,189,223,254, 61, 81,166,224,179, 85,110,
+ 28,155,186,248,229, 29,136,159,150,250,125, 88,252,122,169,202, 59,131,166,201,113,129, 27,127,173, 42,167, 27,228,149, 19,122,
+218, 34, 38,171, 10,107, 28, 70, 10, 86,214, 16,188, 97, 90, 88,215,  3,  9, 42,  9, 38,194,179,136,129, 90, 72,214,193, 99,202,
+232,109,217,175,243, 69,137, 64,250,142,118, 35,138, 43, 23,243, 68,192,204,244,140,235, 22, 17, 29,201,123,150,222,103,  7,124,
+204, 35,185, 29,157,185,191, 31,190,242, 58,215, 46, 78, 73, 73,226,137,140,145, 88,160, 67, 32, 69,194,186,196, 66,101, 72, 78,
+ 40,202, 79,187, 25,167,  7,159,187,244,166,222,146,134, 40, 86,  6, 10,216,223, 23, 81,157, 43,132, 58,183, 81,  2,151, 55,126,
+227,245, 18, 69,100, 81,169,237, 30,101,179,123,140, 41,119,  8, 27, 59,197,213,  7, 65, 83,127,212, 94,  1,219, 36,162,205,184,
+176,124,224,183,254,201, 63,206, 56,221,144,112, 54, 95, 64,147,209,  0,129, 98,111,119,140,150, 10, 37, 21,141, 86, 72, 33, 75,
+ 87,158,227, 83,157,203,162,176, 90, 73,154, 90,150,162, 14, 62, 70, 58,159,149,236,133,220,139,137,145, 40,178, 47, 85,196,144,
+ 35,143,197,150,123,109, 66,192, 46, 76, 22,  9,245,142,213,202,176,156, 45, 56,159,175,152,245, 29, 51,103,145, 41, 18,157,101,
+109,122, 92, 76,236,190,112,140, 62,222,225,255,253,163,175,113,241,112,201,247,186,142,212,172,  9, 56, 62,115,227, 22,111, 54,
+137, 39,120,254,236,241, 26, 63, 55,156,159,175,169,  5, 48,110, 25,197,196, 99,179,160, 11,129,190,213,204,118, 71,156, 54,146,
+147,169, 34,222, 30,179,216,169,176,149,162, 54,121,100, 41,  7, 53,205,184,166,110, 52, 35, 89, 49,172, 53,173,146,180, 62, 50,
+ 33, 49,110,107,166,147,150,107,135, 99,246, 39,  3,246,166,  3, 70,131, 26, 93,108,128, 90,201,178,126,141, 36,159,213,255, 82,
+  8, 26,173,153, 12, 42,246,234,138,147,101,199, 35,165,248,242,215, 63, 32,133, 28,172,209,212, 53,195,129,226,217,188,103,185,
+116, 12,147,228,116,102,153,205,206,120,180,154, 49, 11,137,111,254,240,251,124,240,236, 62, 39, 23, 39,188,251,240, 62,143, 31,
+157, 48,191, 88, 48, 95,204, 57,123,122,206,163,135, 79, 57,125,126,206,197,197,140,231, 39, 39, 44,214, 29, 85,173,  8,174,167,
+235, 12, 54,  9,  6,187,215,137,202,242,224,189,123,151,  0, 69,254,158, 69,253, 71,125,223,124,187,191,180,124,240,222,  7,208,
+175,255,238,  5, 93,235,220,  1, 31,102,129,220,205,166,166,173, 50,238,116, 32, 37, 90, 87,120,231,240,222, 49, 95,153,188,230,
+ 27,100,178,216, 65,147,115, 35,234,148,232,125, 96,225,115,126,184, 57, 95,110, 35,135,109,233,188,170, 97,238,218, 69, 41,146,
+155, 46,253,147,196,126, 82,228,191, 55,220,129, 23,142,121,243,198, 49,135,211, 67,218,193,136, 51,213,146, 68,158,208,205,234,
+150,167, 40,166, 34,113, 18, 35, 67,239, 56,247, 14, 17, 19,111, 89,151, 31,204,125, 15, 23, 11,152,205,126,124, 66,221,230,245,
+240, 30,212, 32,127,174, 65,102, 71, 64, 44,234,105, 37,  8,206,211, 14, 90, 66,112,104,169,177,193, 51,168,106, 20,153,236, 25,
+188, 65, 11,149,215,103,185, 68, 19,108,160, 86, 50,219,172,109, 66, 40,137,136,  9, 93, 30,105, 61, 80, 33, 72,133,  0, 42, 76,
+204,114,158,144, 15, 83, 90,103, 13, 11,189, 39, 57,159,  5,202,102,141,240, 14, 65,200,196, 59, 34,214,  5, 98,200, 17,170, 85,
+ 57,124,120, 41,192,245, 68,233,169, 19,120,231, 24,162, 89, 70,207,184, 30, 16,189, 67,235,  1,157,235, 25, 75,133,113,150,125,
+ 41,209,128, 70,160,133, 68,138,204, 37,168,164, 32, 68, 79, 85, 38,  9,163, 36,240, 66,228,175,131, 72, 31, 44, 72,141, 38, 17,
+ 81,185,112,147,138, 51, 89, 32, 98, 66,165,136,147,153,247,174,  8,244, 33,177,234, 13, 35, 93,115, 70,164, 74,121,122,145, 68,
+177,153, 41,181, 85,160, 20, 23, 28,141,206, 98, 55, 41,182, 19, 42, 33, 62,122, 77,109,158,219,151, 93,186,222,142,211, 55,142,
+ 37, 23,114,189,  8,108,187,247, 80,108,112,107, 91,106, 72,209, 86,249,248, 83, 42,234, 74,231, 34, 30,200,114,125, 84, 62,177,
+232,156,129,158,199, 21, 41,183,  8, 66,111, 21,130,177,132,164,152, 34,221, 79, 20,123, 67,222, 95, 91,107,105, 73,104,153, 71,
+ 64,144, 72, 41,228, 44,246,222,226,163,203, 14,  2,  2,131,  2,132,217, 67, 48,174,114,150,179, 46, 23, 56, 68,124, 25,239,235,
+ 20,105, 35,204,108,192,133,200, 72,128, 45,121,221,183, 79,159,179, 44,144,148, 81,132, 69,121, 23, 12,130, 25,137,133, 16, 44,
+125,190, 32,214, 65,112,238,242, 41,249, 50,150, 53, 94, 21,192,197,210, 89,171,141, 68, 49, 67,248, 83, 17,187, 37,114, 52,235,
+102, 36, 35,139,176, 78, 94, 17,207,249, 66,170, 43, 88, 81,124, 25,185,200, 43,116,174,116,133,207,189,177, 91,136, 43, 66, 62,
+228,246,128,193,214,162,243,251,255,233, 31, 98,186, 28, 44,225, 92, 32,186,192,238,206, 36,159,193,146,164,109,107, 14,134, 45,
+195, 90, 83,215,217,141, 16,203, 80,161,210, 32,146,160,105,178,133, 45,199, 80, 71, 92, 12, 24, 31,  8, 41, 71,168, 38,145,178,
+133, 80,230,216,220,232,179, 18, 28,  4,222,121, 92,  8,  8, 31, 57, 95,245, 44,214, 22,103, 29,171,222,240,164,235,120,188, 94,
+115, 97,123,214,  9, 92, 37, 56,235, 58,150,214, 16, 43,197,203, 47,189,192,201, 98,205,215,254,215,111, 32,  6,146,186, 18, 52,
+119,246,249,186,142, 28, 72,184, 62,217,227,243,215,111,242, 89,147,247,204,223,127,106,  8, 35, 80,141, 98, 60, 25,179,127,112,
+204, 75,135,199,188,116,227,144,113,165,  9, 90,114,237,230, 14,211,189, 17,207, 47, 86, 72,227, 72,215,166, 84, 71, 99, 70,147,
+134,145, 84, 84, 97, 43,142, 22, 62,162, 67,162,173, 85,254,248,184,165, 29,214, 12,219,154,166, 86,217,238, 87, 28,142, 46,101,
+191,120, 12,161,192,167,  4, 77,165,169,106,133, 20,138,243,147,158,  7,167, 11,118,247,  7,156,156,175, 49,103, 11,170,170,230,
+151,111,236,241,198,241,148,135, 23, 29, 51, 99,120,116,190,224,  7,247, 63,224,157,179,167, 44,187, 30,223,205,232,215, 38, 15,
+ 98, 18,132,228,115,183, 20, 12,203,213,138,179,229,140,179,197, 57, 23,171, 57,103,139,115, 78,215, 51,158,207,207,184, 88, 94,
+240,222,179, 71, 60, 57,125,198,129, 24,146, 82,228,197,151, 94,230,223,252,201,159,254, 72,251,122,250, 49,133, 94,252, 29,138,
+ 61,139, 89, 46,156,159, 52,221,251, 81,140,133,241,  4,142,247, 47, 73, 93,183,171, 42, 91,122,145,116, 36,250,190,207,217,  0,
+120, 30,117,219, 16,142, 78, 40, 38,141,100,110,  3, 41, 69,154,148,144,214,243,238,179,115, 46, 51, 77, 47,177,155, 50,143,224,
+155,122,171, 92, 86,242, 71, 79,193, 54,201, 92, 41,193,104, 10,135,187,220,190,118,147,233,104, 23,163, 52,162, 26, 48,208, 21,
+ 23,190,116,114,222, 17,180, 98,153,224,209,122,141,171, 26,190,231, 45, 31,244,235,124,162,247,174,196,124,174,243, 14,253,111,
+211,199, 84, 58,123,158,147,  7, 74, 38,134, 93,231,102,106,227,190,145, 18, 19,242, 65, 77,132,192,176, 25,210,185, 30,169, 21,
+ 34, 69, 26, 85,147, 66, 94, 51, 58, 23,114,132,181, 84,185,185,241,145, 86,103,129, 43, 34,195,193,214, 33, 18,123, 75, 16,153,
+246,104,215, 46, 11, 92,125, 32,134,132, 36, 18, 58,131, 95,175,243,218,109,221, 33, 66, 79,112,150, 16, 60,193, 58,  2,129,228,
+ 18,142,172,175, 81, 50, 93, 90, 12,125,112, 89,180,236, 28, 49, 69, 26, 50,113,174, 10, 17,157, 32,  9,141,136, 14,180,162,139,
+130,166, 16,  2, 13,130, 70,105,230,209, 83, 41,133, 41, 13, 76, 16,138,  4, 52,222,177,146,154, 58, 88, 92,180, 40,153, 93, 58,
+ 97,147,213, 65,194,136, 76, 43, 13,100,124,109, 37,242, 33, 65,165,242,185,166, 72, 77,100,105, 29, 61, 25,128,165,180,102, 34,
+ 37,149,210,140,128,186,174,104,148,206,221,127, 42, 66, 56, 87,158,223,186, 52, 85,233, 10, 54,124,147, 13,162,244, 86, 32,183,
+177, 76,166,184,213,157,108,224, 67,186,  8,235, 54, 72,114, 85, 72,114,118, 85,252,244,153,191,207,170,251,  9, 23,245,170,134,
+122,152, 11, 77,211,108, 59,197,182,222,  6,202,167, 43,116,164, 13, 98, 79,177, 21,127,197, 77, 23, 26, 47,141,248, 89,168, 16,
+ 57,146,  9, 85, 41,116,244,  4, 23, 80, 49,226, 98,230,100, 43, 41, 89,118, 75,100, 74,180, 41,177,178,134,155,186,206,187,250,
+224,217,211, 53, 34,194,210, 57,166,170,166,143,150,228,  2, 77, 65, 67,  6,231,240,198, 16,146,160, 46,225, 35, 73,194,158,212,
+204,125,126, 19,155,  4, 39,197,114, 23,145, 88, 41,104,149,224,153, 79, 44,125,196,169,172, 88, 78,137,220,145, 75,181, 85,178,
+167,210, 29, 43,182,156,235,203,184, 74, 93, 10, 58,249,231, 37, 41,232,114, 85,177,185, 24,160, 88,221, 82, 81, 12, 23,177, 81,
+239, 33,169,226,111, 47,175,175, 42,212,169, 75,235, 91,  9,153, 73, 42, 95,116,155,220,223, 16,248,204,239,255,  7,124,254,115,
+159,230,226,124,133,174, 43,136, 25, 12,147,130, 96,119, 60,100, 52,108,217, 27,182, 28,140, 26,154, 70,149,125,176,192,167,132,
+136,100,116, 36, 89, 36,183,233,212,125,204, 16, 26, 98,188, 92,253,  9, 41,168, 68, 14,222,169, 68,217,239,  9,208, 62, 18, 67,
+164,235,115, 32,137, 89, 90,170, 69, 71, 88, 25,132,181, 44, 58, 75,111, 45, 74,228,220,251,211,174,103,213,119, 57,132,103,210,
+242,194,155, 47,242, 23, 95,121, 11,255,175, 79,216,105,160,185,214,210, 87,160,158,206,249,225,122,205,119,194,146,163, 73,195,
+241,235,159,226, 55, 62,253, 38, 95,184, 46, 56, 28, 40,102,149,228,177,  8,132,228, 56,237,215,116, 54, 32,146,162, 70,176,190,
+232, 89,156, 46,152, 55, 53,211, 59,135,140,174, 77,208,149, 66, 70,  8,179, 30,177,242,132, 62, 91,212,130, 11, 36, 34,177,146,
+184, 70,163, 27,141,174,213, 37, 77, 48, 21,149,127,138,  9,235,  2,179,222,177,234,242,148, 66, 73,137, 82,146,189,241,128,247,
+159,102,202,156,112,  6, 85,107,174,239,141,104, 22,145,167,203,158,135,103, 51,254,242,222, 51,158,159, 93, 96,157,167,110, 91,
+ 22,231,115, 30,159, 95,100,228,104, 74,204,215, 61, 54,122,198, 74,179,182,129, 85,112, 24,239, 49, 49, 11,150, 58,239, 89,245,
+249, 64,112, 54, 95,241,131,231, 11,124,223, 19, 19,204, 23, 61,251, 42, 59, 19,170,113,203,151,126,251, 55,248,211, 47,255,233,
+223, 40,232,252, 67, 88,241, 31, 47,238, 87, 57,241, 63,142, 25,223, 78,224,230, 33,236,142,178,216,118, 80, 65,128,164,  5, 85,
+204, 29,166,113,129,150,200,147,181,229, 91,103,102, 11,136, 41,207,150,147, 36,120,169,202, 99,230,117,103,121,235,225,156,228,
+ 74,254,244, 38, 17,173, 42, 99,209, 16,202, 90,176, 60,131, 62, 30,125,250,241,157,250,100, 47,  7,172, 92,191,201,231,118,247,
+121, 97, 58,229,246,100, 66, 91,124,226,247,205,106,203,151,112, 22,103,123, 80,138,133, 47,241,157, 17, 88,157,230, 46,219,153,
+252,255,157, 45, 63,  6,136,250,  4,171,176, 32, 79, 66,243,252, 59, 23,121,155, 69,154, 84,242, 18, 84, 21,148,192,200, 72,240,
+185,161,  9,209,163,117,133,148,185,203,148, 34,147,228, 66,240, 52,149, 98,237, 92, 97, 33, 68,214, 38,175,107, 86,189, 37, 57,
+143,174, 43, 98,116, 68,227,179,107,207,122,100,136,  8,219, 35, 41,  2, 97,107,137, 46,107,137,172,237, 72, 27, 93,141, 16, 89,
+ 52,231,109,137,255,149,184,148,133,118,189,207, 59,118,235, 60, 54,250,146,171, 18, 49,174,167, 18,146, 62,  4, 26,145,136, 50,
+ 35, 93, 91,169,168,165,162,139,158, 29,169, 88,199, 44,108, 91, 69,135,143,  1,169,179,224,109,229, 45,161,106, 72,209, 97,144,
+ 68, 33,104, 82, 98, 22, 61, 41, 69, 66,140,116,209,229, 41, 79, 10,120, 66, 57,124,230,103,148, 66, 98,163, 69, 36,129,141,  1,
+169,  4, 38, 36, 90, 37, 25, 11, 65, 43, 21, 83, 37, 25, 40,137, 21,137,105,147, 51, 60, 76, 42,224,154,250, 74, 33,142, 92,201,
+  1,185,146,183, 46, 75,179,235,220,150, 62,154,200,236,252, 65,137, 87,173, 84, 17, 94,151,110, 93,108, 60,242, 64, 23,242,129,
+ 78,144,163, 92,131, 67,255, 68,133,113,170,201,167,197,205, 56,160, 85,249, 11,219, 20,163,171, 39,242, 90,111,189,217,165,225,
+ 68,139,162,236, 43, 76,115, 27,144, 56,134, 90,178, 19,  5,115, 11,199, 98,197,168,110, 51, 76,205, 25,164,108,216, 19,154,167,
+221,146,157,170,162,179,134,144,224, 72,215,216, 16,153,  8, 24,171,154,174,236, 89, 14,116,205,210, 91,118,208,204,177,172, 67,
+ 68,133,136, 38, 43, 42,165,246, 44, 13,184, 74,163, 98,226,185,235,144,149,102, 29, 50,225,105, 71, 42,102,228, 83,145, 36,135,
+ 20, 88, 34,123,173,102,209, 59,162, 86, 89,229, 62,110, 96,105,182,147,139, 80, 96, 49,169,124,157,254,202, 14, 79,149, 31,211,
+ 21, 79,162, 17, 48,186,178,155,217, 16,235, 98,177, 58,216,176,213,189, 13, 11, 41,206,232,252,111,153,152, 39, 35,148, 92,236,
+170,164,106, 73,189,125, 52, 71,113,249,190,189,121,231, 38, 49, 65, 59,108, 16, 90, 98, 93, 32,153,128,115,185, 91, 81,149,204,
+160,147,178,247,174,149, 40, 78,164, 44, 56, 49, 62,162,138,201, 89,108,222,234, 50,136,137, 69,176,185,137,154, 23,136,156, 52,
+152,  4, 82,230, 49,161,244, 33,171, 86, 59,131,155, 25, 84,111, 11,203,191,104, 79, 66,192,  6, 71,159, 18,125,111,176,206, 32,
+108, 32,166,192, 94,219,242,176,115,252,233,187, 15,185,253, 70,197,200, 66, 67, 66,156,172, 56, 57, 26,113,231,229,215, 89,156,
+ 61,225,191,139, 29, 47,135, 57,191,110, 87, 28, 31,222,230, 75,117,203, 23,206,159,243,131,229,115,238,173, 35, 95, 94, 95,112,
+ 18,  3, 79, 42,201,207,238, 28, 51,158, 52,168,107, 19,246, 14,247,152, 30,140,144, 74, 98, 66,194, 45, 58,170,149,195,150,117,
+  4, 54,167,186,  5, 45,112,149, 36, 21, 26,156, 14,  9,225, 35,158, 72, 40,112,165,232,193,185,196,122, 29, 80, 36, 68,157,201,
+ 93, 49, 74,222,190,191, 32,185, 72,171, 96, 58,108,121,218,121,236, 78,205, 63,123,105,194,119,204,138,127,241,116,129,143, 62,
+ 31,168, 26,197,155,159,191,203,247,191,255, 61,238, 61, 95,114,115, 84,241,107,135, 55, 96, 26,249,198,124,206,176,110,217,175,
+  7,220,222,191,198,141,233,148,115,111,121,124,126,142,241,134, 85,183,228, 83, 71, 13,  7,163, 29, 46, 86, 75,158,246, 11,246,
+116, 67, 45, 34,157,  2, 21,  2,194, 68,190,248, 43,175,241, 95,255, 45, 29,122,250, 17,123,247,159,152,  5,174,109,217,185,123,
+141, 52, 26, 35,134,  3,122,173,241, 41, 17,130,227,161, 75,220,174, 61,206, 67,231, 28, 30, 79,146,101,229,197, 71, 57, 16, 17,
+248,234,188, 76,  2, 93,159,159, 47,178,192,155,218,  9,248, 46,239,215,171,186, 60, 92, 55,172,  8,121,217,204,255, 77, 21,190,
+206, 35,247,107, 59, 48,157, 66, 91,115,176, 59,101, 58, 24, 34,133,228,184,170,232,206,230,249,243, 89,207, 11,167,163,221, 10,
+135,165,132,174,227,118, 93,113,214,238,178,182, 43,234,182,194, 74,  9,135, 83,120,210,125,242, 42,162,169,175,156,144,178, 32,
+ 12,116,  1,159,100,245, 51,115, 67, 14, 68,175, 97,217, 97,125,228, 98,144,223,161,131,225,148, 69,183,196,200,142,189,241,  1,
+189, 89,210, 52, 67,132, 23,172, 18,168,186, 97, 57,207,182, 71,173, 43,250,232, 81, 73,210, 69,143,181, 61,131, 74, 99,157,165,
+ 81, 67,186,213, 18,165, 21,237,176,194,175, 59,162,179, 72,145,240,214, 33,149, 36,164,128,  3,188,181,101,  5,144,175,152,222,
+ 25,180,200, 90,136,149,235,240,222,145, 80,116,209,160, 82,142, 16,237,172, 97,208,140,  9,101, 84,190, 38,209,  6, 11, 85,139,
+148,208, 91,195,245,193,148,179,110,206,158,144,172, 98, 96, 32, 20, 94,128,179, 61, 75,165,217,169, 26, 30,117,107,118,155, 66,
+243, 75, 48,147,  2,233, 61, 81,105,188,136,248, 62,215,  0, 71,194,199, 72, 93,215,152,148,178,255, 30,193,146,148,209,204, 74,
+ 81,167,200, 16,113,169, 37,104,154,124,184, 59,239, 35, 71,117, 13, 82,226,101, 96,169,134,  4,105,179,253,176, 41,  5,217, 95,
+205, 89,151, 91,139,166,247, 31, 93,169, 92,118,249, 62, 83, 70, 55,251,246,141,152,122,115,237,106,153, 39,189,227, 97,190,134,
+157,253,136, 44,250, 39,243,173, 46,133, 56,216,140, 36,213,117, 25,161,139,143, 65, 25,202,233,164,119,249, 11,118,229,215, 38,
+ 92, 25, 71,196,178,128,245, 68,217,162,116, 69,178,145, 29,237,104,172,162,247, 29,187,186, 34,106, 65,111, 87, 64, 98, 42, 20,
+143, 86,107, 14,116, 22,125,116,166,131, 42, 39, 13,137,166, 98, 32,171,242,224,137, 52, 90,208,123, 71, 29, 35, 78, 64,231,125,
+ 14,134,145, 18,150,134,117,163,209,192, 89,128,161,208,168, 16,168, 10,157,163,147, 10,161, 21,  9,193, 72, 87,132,  4,159,169,
+106, 46, 66,224,212,184,172, 20, 29, 54,249,164, 54,172,179, 26,119,163,162,189,138,105,213, 34, 23,225, 88, 66,  0,130,206,150,
+154, 77, 97,151, 41,167, 59,169,226,139,244, 97,235, 93, 44,118,176, 75, 76,108, 36,191,222,182,252,219, 67,189, 45,248,151,  1,
+ 26,155,255, 75,111, 11,122, 57, 83, 93,187,125,227,242,115,202, 18, 18, 81, 38, 83,249, 66,148, 81, 18,124, 22, 31,110,180, 67,
+ 66,228, 63,171,149,184, 76,221,173,149,200, 16, 37,178,117,205,167, 88,  2,177,242,  9, 53,164,148,247,237, 72,162,207, 73,122,
+193,  6,154,148,149,238,110,237,208,197,121, 96,  0,227, 29,198, 88,214,125,199,172,235,145, 36,132,179,  4,235,145, 36,130,150,
+ 12,199,  3,190,255,193,  3,150, 95,153,243,149, 99,201,254,169,229,215,247, 26, 94,126, 97,200,226,241,130,123, 23,223,224, 66,
+193,162,210,236, 69,248,111,215,107,126,121,239,144,234,180,227,101, 85,243,185,163,215,249,247,142,111,242, 79,102,167,124,227,
+102, 67,251,230, 13,142,238,238,229,123,208, 37,116,165, 17, 62,208,135, 60,102, 84,  2,210, 40,147,181, 36,  2,233, 50, 75, 32,
+200,124,125, 87,100,155, 86, 21, 34,149,143,216,232,115, 98, 96,217,217,133, 62,226,109,158, 56, 33, 37, 33,230,108,131,211,251,
+107,162,244, 60,239, 61,222, 59, 30,159,207,184,251,133, 23,137, 55,119,184,247,214,135, 92,172,151,  8,  1,163,166,229,104,111,
+143,221, 81,195,209,222, 17,191,249,233,138,100,214,236, 79, 15, 56,237, 46, 88,167,196,163,231,103, 44,141,231,165,211,231,188,
+118,237,144,233,222, 33,203,126,193,186, 55,220,222, 61,224,213,163,235,188,124, 48,226,193,197,138, 47,255,240,175, 88, 44,102,
+188,176,183,199,139,251,135,220, 58, 56,228,240,250,148,187,135, 19,254,229,255,244,207,249, 79,254,179,255, 28,212,  0, 49, 26,
+195,225,136,116,112,200, 63,190,113,196, 31,175, 86,172,159, 61, 39,157,156, 34,158, 94,128, 89,126,180, 99,223, 57, 34, 29,236,
+192,221, 87,152,142, 15,153, 47,158,230,103,195,226, 28,206,230,136,211, 11,146, 89,253,232,226,165, 53,140, 39,164,209,152,235,
+147, 17,170, 25,162,129,185,115,124, 24, 18, 67, 25, 89, 88,203,164,146, 84,193,241,212,194,131,133,217, 10,143, 98, 42,211,171,
+152,243,202, 77,202,247,150, 47, 72,207,203,123,178, 20,207,166,222,118,237, 27, 56,147,214, 63,218, 68,162, 91, 24,239,194,241,
+ 97,193,211, 14, 25, 55, 99,  8,142,224, 61, 86, 64,139,100, 32,122, 88, 92,228,117,195,168,133, 33, 48, 57,  6,215,241, 11, 56,
+154,233,132,199,243, 57, 71, 85,102, 21, 84,214,242,221, 90, 93,106,  1, 62,241, 91, 40, 48,169,148,242, 93,162, 54, 63, 47, 33,
+ 80,107,155,153,226,203,242,111, 52, 26,172,193, 84,146,147,144, 88, 37,207,141,122,138,175,107,116,183,160,210, 53,201,174, 24,
+ 84, 99,122,215,209, 70,143, 80, 21,189, 51,180,117,  3, 66, 50, 95,175, 51, 11, 62,130, 49, 29,109,221, 98,102, 39,212,170, 66,
+167,200,234,124, 65, 91, 85, 16, 61, 94,120,208,224,173,199,135,136, 23, 57, 26,123,105, 13,149,140,244, 33,101,107,170,144,120,
+ 99,208,  2,214, 49,139,102,149,172,177,193, 18,173,103,183, 25,211,187, 53,168,134, 54,145,117, 57,101,135, 46,128, 97, 51,228,
+172, 95, 49, 84, 21, 42, 37, 66,232,216,169,  6,244,174, 39,169,154, 67, 41,121,226,179,102,228,  3,179,102, 87, 41,198,213,144,
+222,245, 72,221, 16,146,197, 27, 79,163, 21,  3, 33, 24,164, 68,175, 53,203,228,233, 99,  6, 64, 61,245, 57,155,161,119, 33,247,
+156, 74, 80,213,154,129, 74,232,242, 30,117, 40,174,143, 91,158,216, 28, 46,165,133,160,209,146,245,160,212,191, 88,220, 80,161,
+216,208, 54,220, 17, 95, 66, 88, 16, 91,167,211,149,237,108, 22, 81, 39,104,138, 48,206, 22, 58,233,230, 97,107, 74, 30,251, 16,
+ 88,235,143,220, 71,250, 39,214,165,235, 42, 95,240,114,131,195, 43,224,251, 13,150, 81, 95, 17,108, 41,149,139,212,166,160,199,
+114,  2,217,132,204,199, 50,158, 42,187,136, 42, 70,218, 20, 24,  7, 65,165, 36,131, 24,136, 62, 65,144, 25, 50, 32,  4, 34,244,
+ 84, 41, 34,131,160, 22, 42,243,199,147, 97, 52,152, 32,172,101,210, 14,153,247,107,122, 60, 45,249,180,219,165,200,210,  5,180,
+150,224, 36, 38, 56,168, 36,195, 16, 89, 58,193, 72, 75, 98,202,221,110,160,198, 43, 50,208,161,124,205,193, 39,218,170,198,132,
+132,142,240,218,209, 30,223,158,173, 89,251,  8, 85, 81,165,143, 70,208, 25, 96,  8, 39,167,249,141, 33,150,132,182, 43, 29,187,
+240,101, 98,225,183,158, 93, 87, 70,246,233,138, 48,103,211,161, 75,181,101,206,203,  2,248, 31,214,249, 71,239,182,135,136,232,
+ 63, 86,220, 47,211, 92,138,186,210,211, 12, 27, 86,171, 14,129, 32,132,136,148, 18, 93, 85,236,239,141, 57,156,180,  8, 20,139,
+165,101,111,218,208,200, 68, 72,130,222,101,194, 94, 45, 36, 82,201,156,208, 86,171,  2,224, 74,248,152,  5,144, 98,227,212, 75,
+  9,173,  4,141,148,185,179, 21,121,196,143,150, 44, 66,192, 11,129, 41,125, 94, 21,242,158, 90,250,192,220,121, 22,222,229,235,
+ 64,128, 23,162,164,210, 38, 26, 33, 57, 24, 79,248, 63,191,254, 13,190,141,135,168,120, 42, 96,231, 73,207,219, 11,135,172,  4,
+183,251,196,235,119,134,132, 23,135, 60,141,134, 83, 60,127,254,244, 41,175,190,112, 23,185,127,141,231,131, 49,191,220, 56,210,
+221, 99, 62,247, 75,183, 25, 76, 26,164,202,236,233,229,220, 18, 66,192, 46, 45, 62, 69, 42, 93,132, 69, 77,118, 17, 68,178,207,
+ 55,166,148,  1, 81,229, 44, 38, 67,162,242,137,202,231,151,184,243,  1, 73,202,160, 64,  9, 52, 32, 43,129,247,145,206, 68,158,
+252,245, 41, 73,192,169,243,172,141, 35,120,199, 98,214,115,255,225, 25,221,221,  3,228,189, 39,  8,225,144,149, 98,160,106,142,
+ 71, 53,196,196,181,227,  3, 30, 61,126,192,151,127,240,152,127,181,250,  0,166, 21,105,238,192, 68, 82, 31, 56,101,201,215,213,
+ 51,196, 72, 80,239, 84, 12,106,193,236, 91,239,103,152, 73,163,152,214, 10,173,  5,183,246,106,174, 13, 70,  8,235,216, 25,213,
+ 52,195, 10,223,123,126,254,149, 91,136,207,126,  6, 66,  5,147,154, 52,154,240,251,215, 95,228,165,155,251,252,202,179,115,254,
+120,176,139, 60, 56,130,151, 61,156, 60, 37, 61,155,195,222,  8, 14,143,224,213,207,209,220,125,145,255,242,103,142,233,164,226,
+191, 57, 89,177, 62, 93,192,179, 25,156, 63,207, 66,185,147,247, 51, 94,117,118, 10, 31,220,223, 10,196, 84, 11,215, 15, 17,109,
+205,180, 25,114, 52,174,121,190,182,188, 60,104,152, 42, 65,237,123,  4,154,181,113,156, 57,120,104,220,182, 40,199, 84,208,170,
+ 62,251,207, 29,127,147,162,216,212,249,255,218,216, 65,175, 10,211, 54, 31,251,248, 97,163,169,115, 76,241,222, 46,236,142,203,
+122,113,  8, 82,114, 84,122, 20,210,154,189,170,162,119, 61,181, 93,100,117,253,201,  9,248,105,102,212,175, 78,184, 59,222, 71,
+ 72,201,249,252,156,170,105,153,154,142,211,  4, 66, 68,126,161,213,188, 53, 30,100,219,106,138,159,220,173, 39,147,119,233,212,
+ 32, 29,196, 10, 82, 93,148,252, 85,214,238,200, 30,150,  5,104, 82, 87,176,232,  8,181,163, 75,  3,238,185, 51,110,178,203,194,
+ 44, 57, 30,237,230, 46,218,  5,  6,109,131, 15,158,196,146,182, 26,229,144, 19, 20,109,221,210,151,204,119, 85, 85,244,235, 37,
+ 33,121,146,242,248, 24, 24, 15,  6, 56,211,101,177,172, 86, 88,111, 73, 49,147,229, 36,176,234, 87,232,130, 76,207, 26, 40,240,
+193,210,199,136, 45,224,175,144, 34, 43,211,179, 87, 55, 80, 43, 46,130,161,173,134,156, 23, 68,110,171,  5, 93,136, 92, 75, 61,
+ 67,165, 57,214, 48,168, 26,162, 51,172, 83,228,238, 96,135,123,221,140, 93,221,208,  0,139,224,178, 94, 39,  4,214, 66,225,132,
+100,238,214, 52, 74, 65,114,204,141,  5, 33,104,125, 98, 34, 68,225,115,  4, 36,138,152,  2, 39, 33, 49,172, 20,115,227,209,165,
+ 41,233, 93,224,168, 85, 12,148,102, 21, 34, 73, 43,134, 72, 28,112, 60,168,232,188,192,  9,197, 17,145,199,194, 97,199,  5,243,
+109, 77,110, 96,253, 21,  6,131,190, 98,125,107,175, 76,178,117,181,117,100,196,144,175,177, 88, 30,126,151,126,119,  7,163, 42,
+ 23,253, 72, 78, 40,116, 91, 56,210, 79,102,167, 94,215,249,147,145,  5,111, 23, 74,145,222,200,253, 55,  5,168,100,173, 99,220,
+ 71, 99, 68, 55,157,251,229,136,126,115,106,206,  6,192,253, 86,115, 80, 73,  6, 82,179,171, 96,164, 52, 62,198, 60,194, 41,151,
+119,159,114,186,215,133, 15, 12,180,102,183, 82,132, 16,  9,206,208, 42, 77, 42, 59,197,113, 85,115, 98,214, 52, 73,177, 32, 17,
+ 83,226,220, 71,162,138, 12, 19,184,152,112,192, 48, 38, 42, 20, 49, 70, 98, 76, 24, 18,170,  4, 14, 36, 37, 49, 82,177,142,  9,
+ 47,193, 75,208, 40,214,222, 49,173, 43,102, 73,176,211,182, 24, 41,168,218,150,144, 34,114, 48,202, 67, 11,145,133, 51,200, 66,
+ 18, 74,155, 99,153, 36,135,  9,151,179,150,204, 69, 42,219,221, 74,184,203,134,229,185,121,120, 73,145,145,131, 66,228,  3,148,
+139, 91, 27, 68, 42,188,104,121,165,160, 95,198, 18,114,169,156,127,233, 75,191,205,111,254,234, 27, 88,159, 48,198, 17, 93,194,
+152,140,214, 77, 81, 48, 29, 15, 81, 82, 34, 81,140, 91,141,143, 57, 64,199,135,236,237, 20,  5,214,162,181,100, 84,201,178, 42,
+ 74,244, 62,251,211, 33,149, 21,126, 22,183, 84, 50,211,  4, 19,153,190,167,138,237,205, 27,207,197,210,176,234, 45,157,179,156,
+116, 29,235, 62, 35,132,141,181,216, 34, 44, 75, 49, 11, 26,155, 16,184,241,210, 29,186,221, 17,255,226,255,250, 43,208,240, 51,
+ 63,191, 79,115,179,225,161,177,124,127,230, 89,107,248,208, 37,218,169, 98, 48, 81,180,131, 38,187, 37,  4,200, 97,197,  7,222,
+242, 78,116,252, 69, 35,153,221, 28,179, 35,  4,235,185,207,228, 80, 23, 48,198,225, 59,139,232, 29, 77,163,169, 43,133,174, 43,
+164, 86,164,178, 31,139,  2,108, 74,185,  3,137,153,161,160,108, 96, 16,160,  9, 57, 93, 14, 27,144, 49, 80,  9, 73, 43,  4, 35,
+169,104,170,124, 48,248,224,201,140,175,127,235, 67, 22, 11,143,136,137,241,168,193,244,134,139,211, 83,158,127,248,152,250,238,
+ 33,107, 47,169,147, 38, 73,141,241,134,139,222, 49,190,190, 71, 88,246, 16, 61,223,254,230,  3, 88,120, 68, 35,248,204,157, 29,
+222,120,241,128,134,187, 93,191,  0,  0, 32,  0, 73, 68, 65, 84,209,181,  1, 95,248,185, 59,252,230, 47,191,201,235, 71, 67,134,
+201, 51,214,130,179,148,168, 43, 73,248, 97,143, 59,247,152, 29,201,201,204,241,108,181,224,162,159, 49,115,142,123,114,194, 55,
+ 58,199,183, 87,142,112,227, 85, 30,174,122, 24, 76, 65,183,188, 60, 30,209, 74,193,247, 47,230,156,186,132,208, 45,236, 28,194,
+120,138, 56,190,142,248,165,223,134, 47,124,  1,174, 95,227,159,222,217,231,119,247,107, 34,130,175,158,172, 89, 93,172,115,129,
+ 57, 62,128,155, 55, 33,141,225,229,207,242,123,199,183, 16,119,238,114, 54,191, 40,137,107, 35, 24,104,118, 39, 19,142,106,205,
+194, 69,142, 42,197, 60,194,142,244, 12,  8,236,198,196,158,150, 28,214,130, 51, 23,232, 72,217,218,149, 34,204,215, 96, 75, 84,
+102,252, 17,251,233, 31,103,  1,253,248,199,154, 26,244,  0,142,246,225,230, 81,238,164,  7, 99,168,219,203, 17,248, 69,112, 28,
+235,138,107, 42,130,235,168,157,225,251, 39,143,120,244,195, 71, 48, 63,207,247,243,176,134,166,229, 77,145,152, 11, 73, 31, 35,
+199,209,115, 46, 20,187,193, 48, 77,145, 69,136,156, 44,139,255,248,147, 44,109,151, 24,209,  2,189,145, 37,135, 23, 85,244, 51,
+114, 75, 41, 35, 71, 18,231, 17, 48,224,  3, 73, 38,  2,145,117,200,217,235, 43,219,163,164,166,247,166,208, 53, 45, 90, 10,172,
+235, 50, 56,  9, 79,103,123, 20,  2, 19, 12, 34,230, 88, 87, 31, 13,117,221,178, 54, 75, 82,140, 24,223,229,251, 58, 37,124,176,
+ 56,239,113,201,209, 23,226,219,202, 57, 86,166,195, 16,233, 92,207,154,136, 66,210, 71,207,202, 90, 22, 41, 33,163, 96,229,243,
+ 24,125, 80, 55,116, 54, 79,122,171, 70,115, 97, 35,149,212,172,146,192,104,205, 68,130, 18, 57,175,189, 18,130,101,140, 28,170,
+138, 62,197,156,110,167, 52, 30, 65, 39, 53, 22,232,149, 68,232, 26, 39, 20,125, 10, 56,173, 56, 11,145,186,174,120, 28,139,210,
+ 93,105,206, 80, 56,169, 17,186,162,139,137, 74,107,100,211, 48, 80, 26, 41, 21, 38,229,120,112,173, 21, 90, 85,212, 85, 69, 82,
+ 16,189,166,170,242,223, 75, 33,242, 60, 93,  9,241,146, 34, 95,  3,133,160,122, 41,204,220,172, 99, 55,190,245,206, 22,213,113,
+ 17, 51,167,114, 77, 75, 89, 18,255,202,239,233,162,181, 18, 50,231,131,164,242,140,239,186,159, 80, 81,223, 40,218,235,225,182,
+216,140,155, 60, 66,175,171, 92,172,140, 47,157,119, 17,107, 85,165,176, 95, 21, 11,144, 50,174,177,239,243, 39,105,182, 97, 48,
+243, 32,120,161,150,140,100,  6, 56, 16, 35,141, 84,244, 49, 20,225, 85,182,152, 61,237, 61, 85,157,199,239,  3, 89, 35,131,207,
+158,202,152,199, 55, 67, 37, 88, 57,207,173,175, 62,224,244,246, 20, 68,226,129, 11,104, 33,136, 73, 82, 75, 24,132, 92,164,100,
+217,177,  8, 41,177, 41, 49,212,249,112,146,164,196, 39, 65,  7, 24,157,139,157,148, 26, 27, 35, 97, 48,160, 82,217,242,229,128,
+ 65,173, 17, 49, 50, 26, 12, 88,123,143,108,106, 82, 83,109, 71,131,170,236,182, 85,241, 65, 92, 82, 40,227, 54, 70, 53,168, 60,
+177,144,234,146, 35,158,105, 68,122, 27, 52,176, 41,212,155,172, 93, 91,156,  4, 50, 94,  9,136,217,180,255, 27, 47,125,238,102,
+ 94,121,227, 13,222,124,243, 21,186,222, 98,251,128,119,129,126,109, 25,142, 91,130, 73,212, 77,205,164,174,185,190, 55,160,174,
+244,101, 67,180,185, 88, 99, 74,200,  4,149, 18, 52, 58, 99,119, 67, 76, 24,159, 21,199,130, 12,116, 80, 50, 83,230,148,206,244,
+ 57, 17, 83, 22,168,148,233,140,142,145,100, 60, 43,235,112, 46,176,114,158,182,136, 67,102,166, 99,101, 13, 85,240,212, 33,145,
+ 20,168, 65,205,141,215, 94,226,249,147,231,124,253,171, 15, 80, 93,226,217, 69,199,252, 81,135,185,  8,224, 18,171,161,132, 93,
+201, 91,239,244,252,127,125,199,100,209,241, 90,130,131, 70,243, 43, 14, 62, 53,222,225, 83,215, 14,217,215,146,  7,167,115,190,
+118,178, 96,120, 52, 36,106, 56,233, 13,231, 93, 30,169, 78,  7,117, 70,186,214, 21, 82,203,140,218, 20,224, 73, 57, 38,213,101,
+145,159,179,249, 33, 90,155,136,238, 29,218,120,164,241, 25,125, 27,161, 65,210,232,138,193,160,162,109, 20,111,157, 44,121,248,
+151, 15,243,219,227,160,173, 43,  6,195,138,174,179, 68,227,152, 45, 46,120,244,188, 35, 13,224,173,119,223, 99,237, 12,149,206,
+235,152,195,187, 71,188,112, 48,228, 83,135, 59,220,251,171, 31,240,248, 91,115,196,163,200,231,126,238,128,189,241,132,167,231,
+ 75, 94,216,221,229,230,193,117,  6,205,136,215,175,221,224,223,127,225, 21, 94,220,155,242, 95,253,206, 23,185,117,171,165,211,
+ 75, 94,191, 62,101,181,178,156, 34,153,254,236,231,208, 59,215,185,254,153, 91,248,113, 11,173,198,116,134, 31,222,123,  8,103,
+207,192,116,172,237,130,238,244, 25,223,126,250,  4,218,125,120,241, 53,196,203, 47,193,249,138,223,189,251, 10,191,189, 51, 64,
+ 41,201,195,247, 30,241,215,127,252,255,176,227,134,252,239,127,242, 53,222,255, 55,127,  4, 15,239,193,  7,223,133, 39, 15,225,
+241, 83, 24, 78,248,252,157, 99,110, 29, 31,240, 84,142, 56, 25,142,242, 56, 81, 10, 24,143, 56, 84,154, 86,105,116,130, 69,140,
+204,186, 53,187, 10,110, 10,193, 68, 72, 38, 90, 49,214, 26,131,231,241, 34, 67,103,152,247,121,199,216,123, 62,121, 41,254,119,
+209,  7,105,216,221,133,221,157, 92,204, 15,246,114,119, 62,154, 22, 43,220,230,123,190,175, 30, 44,206,137,235,  5,179,229,140,
+239, 63,123,194,119,190,249,126,222,167, 27,123,249,245,220, 29, 12, 49,192,216,173,184,214,182,188,103, 58, 38, 49,235, 71, 30,
+ 59,199,190,148,188, 62,150,116, 82,179, 58, 93,125,178, 96, 78,136,210,202,216,252, 99,148,121,194,167,171,252, 60, 73,174,164,
+124,153, 92, 68, 76,200, 98,229, 77,100, 44,130, 96, 45, 29,129, 36, 96,105, 59,148,136,184, 20,177,222,210, 59,203,194,245,164,
+ 20, 48,206, 97,189,197, 38, 71, 76,240,193,249, 35,140,239,233, 76,199,217,242,130, 16,  3,115, 51,167,213, 89, 68, 55, 91,207,
+145, 66, 49,239, 23,216, 82,208,151,102,141, 11,129,117,244,172,157,199,166,140,141, 62,247,142,189,186,225,190,143, 84, 90,243,
+190,144, 28,212, 53, 78, 10,164,172,216, 27, 15, 89, 38,201,220,123,218,170,166, 71,208, 75, 77, 35, 36,170,174,217,209, 53, 21,
+ 16,148, 68,145, 88,136, 68,171, 43,140, 82,172, 98,164, 43,137,115, 65,  8,134,237,128,170,  4, 81,  5, 85,179,138,138,132,226,
+ 89, 72, 28,140, 70, 60,240, 18,161,234,236,203,175, 42,246, 70,  3,246,135, 35,166,163,150, 86, 87,  8,169,233,147, 98, 41,  5,
+136,138, 97,219, 18, 85, 77, 18,146, 65,213, 96,138,  5, 41, 74,193, 34, 74,106, 37, 89,167,132,212, 13, 73,203, 44,156,214,242,
+138, 56, 83,228,203, 51,165,178,103, 87,185, 94,250, 43,161, 64, 27, 16,205,230,251,165,112,165, 60,215, 71,131,124, 16, 24, 15,
+243, 97,116, 58,253,  9,193,103,218, 77,151, 46,183,157,186, 13,249,228, 32,203,130,191, 45,187,  3,185, 41, 74,229,  4, 19,202,
+206,221,150, 46, 61, 27,  9,183, 88,198,162,146,191,181,215,112,189, 82,236,169,138, 70, 10,132, 84, 68, 18,163, 74, 97, 98,202,
+136,209,  4, 81,  9, 92, 72,200,148,176,214,100, 75, 81,132,206, 90, 70, 74,211,165,196,218, 58,254,249,241,148, 95,208,154, 83,
+107,217,169,242,233,110, 82,105, 22, 73,208,200,204, 20, 94, 23,161, 22, 54,135,199, 40,221,208,199, 98, 37,168,170,156,199,142,
+196,107, 77,165, 52, 15,173,167,213, 53, 74,231,155,108,169, 51,112, 66, 21, 47,207, 88, 43,218,182, 65, 43,133,241,101,191,151,
+194, 21,107, 91,121,253, 54,184,216,164, 41,225,184,133,243,190, 73,228, 17, 91,202, 80, 74,249, 66,216,172, 60, 76,  1,102,184,
+ 50,206, 55, 87, 64,  5,206,110,109,118, 73, 92, 62, 48,126,237, 55,126,141, 91, 47, 94,231,244,100,133, 53,174, 12,  0, 36,135,
+187, 59, 84, 72,170,170, 66, 42,193,241, 94,139, 86, 42,199,224, 74,177,  9,222,  3,  1,109,165,168,107,133,146, 89, 33,103, 67,
+ 86,150,250, 13,127, 64,230,112, 23,165,179,157, 77, 36, 72, 62, 18,173,203, 29,108,130, 36,242, 65,224, 98,237,104, 98,194,164,
+192,220, 24, 22,235,158, 89,103, 50,198, 23, 88,120,143,175,  5,131,189, 29,118,111, 30,241,189, 63,253, 38, 60, 49, 92,219,211,
+ 60, 63,241,176,220,172, 54,128,219, 45,175,189,113,141,120,183,230,248,238,132,111,181,146,217, 78,195,123,181,230, 94,114, 44,
+136,236,118, 61,215,214,142, 55,215,158, 21,137, 46,  6,206,231, 29,170,213, 84,149, 66, 41,197,100, 80,163,155, 10, 93,105,146,
+146, 89,140,227,  3,193,  7,156,245,244,107,139, 95,187, 60,233,176, 17,209,123,228,202, 94, 22,117,233, 98,222,183,105, 69,213,
+214, 84,163,  6, 89, 73,190,119,190,226,247,133,226, 78,210,188,123,209, 33, 85, 62, 52,121, 27,152, 45, 45,122,103,151,207,238,
+ 13,  8,195,150,119,238, 61, 99,103,178,195,171, 47,189,198,139,215,110, 48,104, 36, 39,193,243,205,127,253, 45,222,126,126,193,
+108, 79,193, 99,207,123, 99,203,237,151,174,115,182,187,207,129, 89,242,103,127,241,109,158,199, 14,221,140,152, 12, 71,188,127,
+246,156,217,233,156,221,221,  3,238,254,193,239, 48,112,  2, 87, 89,174,255,234, 63,226,181, 95,124,157, 95,249,244,173,156,108,
+ 54,106,  8,179, 57, 95, 60,108,248, 63,254,232,203,112,255,  1, 60, 63,103, 33, 60,143,134,  7,252,199, 95,252, 18,255,225, 23,
+127,142,191,220,157, 98,  3,136,199,207,248,244,160,101, 80,105,212,108,198,219, 31,190,  3,207,239,243,245,175,124,133,103,223,
+254,183,240,193,135,112,239,125,184,127, 31,222,125,  7, 30,124,  8,181,231,129,209,160, 42,254,218,  3,178,134,106,  0, 50,128,
+ 51,204,164, 96, 12,116,193, 97,189,199,132,192,126,138, 52,193, 51,208,154,186, 76,138,130, 49,188,179, 48,136,101,135,176,203,
+156, 29, 16,255,129,  5,189,157,192,116,  7,142,142,224,112, 15,118,167, 57, 17,174,170,243,189,169,212,118,146,232,201, 35,254,
+245,138,116,118,206,179, 39,167, 60,252,225,  3, 78,159, 62,207,113,198,155, 78,123, 52,229,238,141,125,166,193,177, 55, 28,240,
+204, 89,172,115,104, 33, 24,  9,120,102,122,106, 33, 24, 70,199,189,222,179,114, 14, 35,225,165, 95,124,147,139,247,239,127, 66,
+ 72, 83,  4,217,148,117, 93, 68,196, 10,145, 28,162, 82,136,122,128,232,  3,162,213,  8, 41,179,218, 60,  8,132, 22,136, 68, 62,
+100,134,128,  8,  1,239,  3, 54, 58, 58, 18, 43,223, 97,188, 35, 68,143, 18,146, 69,183,196,147, 29, 42,243,245,146,181,239, 49,
+222,240,116,181, 98,110, 12, 51,219,241,112,117,206, 78,221,242,108,118, 74, 76,  1, 37,  4, 15,206, 79, 25, 85, 13, 11,211,179,
+ 48, 29, 11,235,152,185,158,153, 49,184, 36,120,152, 34, 70, 86,236, 53, 19,118,171,  1,175,238, 29,209,161, 57, 26, 14,249,161,
+210,200,186,197, 70,152, 69, 65,211,180,120,161, 89,  8,205,209,112,196,181,166,230,238,206,  4, 89, 85,172, 82, 98,183,105, 72,
+229,223, 51, 49,160,149, 98, 17,  3, 81,215,204,137, 56,169, 56, 24,142, 25,214, 53,149,168,104,155, 33,171, 24, 89,196,196,185,
+174, 24, 75,201,  7,214, 51,210,154,147, 20,177,186,230,184,170, 57,108,235,204, 50,145, 85, 78,252,211,154,251, 33,224, 84,197,
+169,170,168, 18,  8,149,  1, 72,125,146, 76,235,  1,231, 36, 90, 33,137, 90, 51,208, 21,161,110,242,189,228,  2, 76, 38,249, 61,
+171, 84,169,119,  5, 76,227,227, 86, 72,157,210,150,105,210,151,131,217,198,158,188, 73,120,187,244,176,151,213, 74,219, 20, 65,
+ 83,147,107,234,112,248, 19, 40,234,149,206,212, 56, 89,216,180,155,136,186, 90,230,177,252, 64,103,146,220,160, 64, 79,122, 83,
+186, 75,185,245, 91,127,100,180, 84,124,236,155,110,176,213,  4,155,184,211, 84, 52, 82,102,177,130,148, 52, 72,156,204, 78,176,
+ 70, 72, 66, 74,172, 66, 98,230,  3, 35,  1, 71,131, 33, 51,231, 88, 24,203, 81, 51,224,162,239,105,165,100,208,182,124, 38,101,
+ 11,146,214, 21, 54,  5,166,186, 97,149, 18, 90, 43,214, 33, 17, 93, 96,168,  4,201,120,124, 85, 80,130,189,161,105,106,170,166,
+ 37,166,128, 67, 32,154,  6, 23, 28, 23, 49,113,125,178,203,179,181,161,214, 21, 85, 57, 13,207, 75, 64,140, 75,129, 90,215, 56,
+235, 72,  8,140, 42,106,  8, 31,182,150, 62, 45,182,157,123,173,182,142,  0,138,143,189, 45,147,144,226,223,207,227,151,114,112,
+ 74,177,  0,108,202,  9, 14, 87,224,  4, 27, 95,100, 25,213,139, 34, 79, 23,197,211, 24,  2,191,243,207,254,128,241,116,200,217,
+243, 25,198,250, 34, 66,203,118,172,182,105, 24,181, 21,215, 38, 67,246,134, 21, 82, 40, 72,121,114,145, 16,217,171, 94,176,139,
+147,129,190,196, 97,251,148,215, 26, 41,165,252, 22, 42, 65,173, 36, 18,121,137,171, 36, 68,116, 17, 68,198, 16, 49,  9, 86,214,
+179,232, 44,117,  8,244, 93, 46,232,115,103,241,206,161, 73, 44,100,226, 73,231,105,106,201,241,222, 62,231,167,103,252,203,255,
+241, 93,150, 83,120, 98, 34,141,137, 12, 10, 96,139, 62,194, 58, 48,184,213,240,250,193, 46,135, 77, 11, 66,112, 56,157, 48, 29,
+143,184,243,234,235,196,227,107, 60,105, 27,222,183,134,209,254, 14,225,238, 62,119,111,239,113,112, 52,101, 48,108, 80, 82,178,
+ 51,106,208, 77,141,174, 20, 66,231,208, 26,159, 34,174,115,196,149, 37,174, 12,126,222,145,150,  6,107, 60, 51,239, 48,107,143,
+180, 17, 21,  2,202,165, 12,179, 16,217,242, 71,163,145,173,102, 69,228,222,202,113,227,133,  9,213,237,  9,103,227,134,106, 82,
+227, 67,226,230,235, 59,124,246,223,125,129, 63,252,252, 29, 94,121,237, 24,127,180,135,221,191,193,209, 11,183,248,210,231,110,
+241, 75, 47,237,243, 76,104, 46,230, 11,222,249,193, 61,186,241,132,223,250,167,191,129,255,212, 46,253,222, 46,255,253, 43, 47,
+240,250,193,148,231,159,122,137,119, 30,126,192, 95,255,223,143,184,111,159,177,236, 79, 89,137,200,159,127,233, 55,105, 63,117,
+ 11, 53,172,241,175,221,193,188,241,  6,135, 55,247,249,229, 91, 83, 94,155, 84,164,139, 37,255,203,255,240, 63, 51,121,248,136,
+201,206, 17,235,135,239,240,224,  7, 79,224,198, 62,124,246,243,252,225,175,254, 10,255,197, 63,186,195,167, 38, 21,223,123,239,
+140, 15,254,237, 55,225,222,183,248,225,122, 78, 67,205,215, 58,135,  9,  1, 49,154, 66, 43,243, 14,127,181,248,168,122,222, 89,
+196,253,251,136,217, 41, 23,201, 49,244,129,107, 90, 82,251, 14, 84,141, 75, 57,186,249, 52, 70,186, 16,208, 49,210,117,  6,133,
+103, 95,101, 65,146,117, 54,243,199,173,227,195,139, 53,110,113,145,149,236, 49,254,195,176,182, 59, 59,176, 59,229,238, 43,183,
+217,191,126,157, 52, 26, 97, 54,177,152,226,138,208, 53,138, 18,  4,211,193,249,  2,158,156,192,249,  9,204,231,217,131,255,241,
+ 17,190,247,204,116,195,206,160,166,149, 10,  3, 88,103,216,197,243, 36, 36,174, 87,154, 41,145,115,107, 57,104, 53,149,245,156,
+173, 58,226,176,198,232, 17, 92,156,255,205,102, 93, 74, 68,242,  8,106,132,220, 88, 85,213,150,113, 81,235,252,241,148,138,147,
+ 74, 34, 76,143,208, 10, 17, 74, 81, 71, 32,156, 71, 24, 79,212,255, 63,105,111,246,107,105,118,158,247,253,214,248, 13,123, 56,
+243,169, 83, 85, 93, 93, 93,172,174,158, 56,153, 45,137, 10, 41, 51,178, 33,193,130, 36, 35,145, 97,192,210,133, 12, 36,200,159,
+146,155,228, 46,119,  9,144, 32, 72,174,236,  4, 50, 34, 40,242,144, 72,182,168, 33, 20,105, 81,162, 68,145,236,185,217,213, 93,
+243,169, 51,236,233,155,214,148,139,245,157, 58, 69,138,162,100,251,  0,141, 70, 55,186,107,239,179,135,245,190,235,125,159,231,
+249,  9,252,186,167, 75,145,158,192,178,239, 88,199,129,197,208,240,120,185,100, 29,  7, 78,251, 53,139,211,  5, 67, 18,244,109,
+ 79,127,182, 33,124,252,132,199,143, 31,211,214,  5,235, 97,224,254, 98,201,188, 40,120,176, 94, 48,196,200,241,224,120,216, 14,
+156,119,129,141,146,172,148, 38,152, 10,165, 43,190, 48,219,195,214, 51,122,169,216,155,206,241,170,192,235,130,199, 33, 81, 84,
+ 53, 66,107, 30,247, 29,167,194,176, 37,224,106, 89,241,210,116, 66,101,242, 69,170, 46, 74, 58,151,215,114, 46, 69, 74, 41, 51,
+162, 59,193,134,200,160, 13,115, 99,159, 89,248,148, 49,164,148, 24,132,160, 11, 18,133,224, 81, 74, 76,164, 98,153, 18,103,202,
+160, 99,224,192,150,204,170, 10, 63,154,219,210,200,182, 40,147,226,254,152, 26,249, 24,201, 92,192,169,208, 76, 77, 73,212,138,
+ 90, 91,162, 52,204,109,201, 32, 52, 93, 20, 76,116,137, 85,  2, 35, 21,190, 40, 17, 66,147,252,144,207,237, 62, 60,103, 87, 22,
+151,235, 81, 57, 94,116,195,184,254,185, 72,103, 29, 87,121, 25, 42,147,158,241,211,233,250, 49, 42, 88,193,164,248, 17, 66,185,
+ 11,203, 68,248, 49, 66,141,231, 23,253, 33, 94,230,209,198,209,195,105,213,248,224, 64, 61, 25,159,116, 28,119,228,234,178, 51,
+ 49,227, 46,193,143, 41,107, 23,202,213, 66,231,241,124,140,208, 12,212,219,  5, 49,  4,202,162,192,142, 35,185,141,136,153,181,
+173, 52, 33,  4,124,138,148, 35, 23,253,220,123,226, 38,113,213, 26,122,163,184,223, 52, 92, 43, 13, 78, 66,215, 52,217,163,143,
+ 68,141,120,155, 53,  1,161, 20, 93,204,106, 72, 10, 69,179,118, 56,171,168,186,142,  6,216,169,106,150, 67,207, 68,102,155,158,
+181, 10, 57,120,142,173,196, 72, 75,231, 58,174,204,107,150,173,103,  9,180, 74, 82,203,188,195,201,147,  9,143, 49,138, 74,192,
+ 12,203, 61, 95,228,219,132, 43, 51,129,169, 24, 45, 11,197,197,222,123, 28,193, 91,147,247, 99,155, 54, 91,  4,149,189,108,128,
+226, 56,126,187,236,  0,198, 46,126,180, 21,170,254,185,200,247,113,255,166,100,110,  0,100,238,  0,165, 54,212,165,193,150,  5,
+206, 53, 12, 33,210,119, 13,222, 11,246,111, 79,241, 33, 17,197, 40, 16,148,163,109, 45,137,156,229, 78, 78,111,138, 49, 71,196,
+ 94,172,137,196, 24,177,120, 17, 56, 18,158, 77, 13,199,226, 54,138,221, 32,162,165,192, 27,149,227, 98, 35,249,182,236,125,238,
+234,157,207,116, 52, 45,104,122,207,208,123,102,209, 83,171, 18,167,224,183,126,239,109,184, 62, 82,186,250, 72,159, 18,189,146,
+212, 34,177,159,224,245,168, 88,252,155,167, 60,184,125, 78,115, 84,115, 62,209,220,222,154,115,104,167,108, 25,139,173, 42,142,
+174,237,211, 41,193,244,234, 22,187, 19,203,238,188,162,117,158,224, 19, 58,197,188,222, 82, 57,137, 42,250,172,234,239, 58,143,
+223,244,132,243,  6,183,106,  9,231, 93, 14,242, 16,153,210,244, 84,104, 90,155,113,141,170,200,116, 41,161,198, 23,164,243,180,
+ 70, 50, 36,201, 79,207, 74,254,197,147, 13,167,107,207,237,195, 57,183,141,224,177,145, 92,157, 27, 10,169, 57,237, 60, 79,124,
+226,113, 18,232, 74, 17, 62, 94,242,218, 43, 87,216,149,154,  7,149,226, 65,167,249,142, 87, 60, 57, 59,165,251,246,135,184,193,
+243,107,175,189,194,230, 51, 91, 20,127,244, 93,222,191,255,152, 95,249,213, 95,230,119,204,255, 67,247,203,255,152,111, 61, 56,
+ 97,251, 11,159,226,  5, 35, 48,117,102,220,171, 62,112, 48, 51,124,244,212,241,251,159,172, 49,181,160,148,112,171,168,232,154,
+158,170,180,188,250,226,171,124,237,168,131,207,253,  4, 92,187,193,111,173,122,190,240,237,  7,124,252,209, 61,190,250,141, 63,
+ 64,188,245, 33,105,113,  6,243, 45,190,254,218,  9,236, 94,131,249, 30,136,  9,226,232, 54, 76,102,164,191,  0,158,220,191, 44,
+182,133, 37,109, 29,192,222,156,157,232, 56,220,156,113, 93, 12, 28, 39,193,188,208,252,222, 96,115,115, 58, 56,218,206,115,191,
+235,192, 37, 78, 54, 17, 49,145,188, 94, 22, 20, 50,127,250,223, 93,173,105, 78, 79,114, 24,199, 15,121,226,255, 86, 22,187,194,
+230,209,250,209, 21,174, 95, 59, 98, 94, 84,188, 52,219, 70, 73,195,  7,205,146,191,236,154, 49, 23,194,141, 65, 89,125, 46,232,
+ 79, 22,176,218, 60, 83,254,255,181, 63, 41, 66,223,241,193,202, 48,  0,243,233, 20, 33, 18,203,  0,187, 42,210, 12, 29, 70, 23,
+148, 69,129,118, 29,239,133,  0,147,146,229,119, 63,204,254,245,209,238, 36, 46,206, 93,123,121,108,139, 64, 22,202,217, 81, 51,
+163,244, 88, 27,100, 22, 46, 63,107, 44, 58, 64, 34,214, 93,118,202,248, 46,143,110,209, 48, 47,225,120,  1,147,154,212,247,184,
+145, 50,150,146,200,254,105,171, 25, 78, 61, 41,102, 49,150, 96,153, 85,247,139,243,188,167,247,158,230,207,207,104,182,247, 96,
+ 94,179,120,188,130,249,  4,140,203, 83,179,114,108, 54,172,  1, 85,242, 70, 57,227,139,135,  7,232, 50, 43,253,159, 58,201,147,
+ 20, 81,198, 64,211, 82, 87, 51, 30,187, 22,133, 34, 20, 19,  8,  3, 94,104,142, 38,134,165,207, 72, 85, 77, 36,197,108,185,117,
+ 73, 97,147, 35,197, 64, 45, 37, 70, 74, 66,244, 20, 72,132,200,185,246,  3,  9, 31,  3, 86, 42,246,100,129, 65,240, 81,227,216,
+ 37, 67,112,172,148,196,224,169,139,  2,157,160,247, 30,173, 84, 94,112, 40, 77,240, 30,161,  5, 97, 32, 51,214,129,119, 82,100,
+ 27, 48, 90,179,173, 20, 66, 42,100,130, 38,122,118,202,  2,161, 13, 11, 55, 80,150, 59, 48,244, 76,221, 64,168, 21, 46, 57,220,
+217, 41,241, 98,172,126,177,197,121,150,221,226,243,100, 85, 91, 88,119, 80,155,108,143, 30,  5,186,153,246, 57,134,142,197,144,
+111,235,253,144,255,157, 16, 63,116, 83, 47,198,253,204,133,  2, 42,134, 31,159,237, 30,227, 24,214,160,242,200, 76,219,203,226,
+ 93,154,252, 38, 22,118,140, 36, 29,201,100, 70, 94,198,221,121,127, 73, 29,187, 16,210,149,227, 23,172, 52,249,  3, 17,  3,141,
+ 84, 28,213,134,235,117,222,111, 12,249,227,137, 85, 26, 41,  4, 67,140,204,140,101, 17,  2,143,250,129,137, 50,184,193, 83, 90,
+133,  1,134,224,113, 62,142, 35, 19, 16,163, 13,162, 77,144,164,200, 65, 41, 49, 82, 22,  5,231,206,161, 98, 96, 45,198,238, 47,
+ 74,210, 40,244, 48, 73, 32,173, 33,218, 12, 80, 88, 43,141, 87,154,101, 31, 16,202,176,244,145, 82,105, 22,163,173,192,  9, 80,
+ 34, 97,133, 38,198,200,148,200,126, 97,232, 99,228, 70, 33, 89,123,184, 54, 55, 44,252,184, 87, 49, 69,126,205,211,  5,  8, 96,
+228, 61,219,  2, 98,159, 85,193, 50, 93,134,244,168,209,187,142, 24, 51,244,229,101,166,188,240, 16,117, 94,105,164, 52,222,210,
+ 71,167,129, 22,207,156,  8,255,248,159,254, 23, 12,222,179, 90,118,128, 96,107,107,130,182,  5, 90,105, 68,202,227,187,137, 45,
+217,223,158, 80, 24,  3, 40,204, 40,120, 19, 36,196,184, 47, 55, 58,135, 88, 36,192,143, 52, 54, 57, 42,222,165,202,169,124, 82,
+228, 36, 57,141, 64,250,128, 28,124, 30, 63,197,113,229, 50, 56, 54,103, 13,195,186,161, 89,119,104, 63, 32, 99, 34,117, 14,239,
+ 50,208,165,176,134,195,195,109, 78,151, 11,190,246,135, 79, 71,229,232,152,214,151, 98,230,103, 55,129, 69, 72,124, 52, 36, 62,
+155, 36,111,244,146, 79,249,196,108,227,136,235, 13,199, 97,197,251,199, 79, 40,148,197,163,168,102,  5,  7, 91, 37,193, 74, 86,
+157,227,100,209,177,233, 28, 69,  8,204, 71, 11, 97, 24, 60,125, 63,176, 90, 15, 52,171,142,245,241,154,254,100,195,234,201,138,
+205,249,154,184, 25, 80,157, 71,251, 72,223,123,150, 74, 83, 86,134,114, 98, 81,181, 33, 21,138, 88, 72,156, 20, 44,181,226, 79,
+ 31,119, 60, 58, 93,227,155,129,147,143, 22, 28,157,183, 44,134,196,199,117,193, 50, 65,209, 58,110,198,192, 31, 55,158,150,200,
+102, 24,248,179,251,107, 14,118,106,206,159,182,124,175, 13,116,198,112,243,133, 43,188,118,235, 26,119, 23,  3,183,203,  9,127,
+119,119,194, 55, 79, 26,126,251,172,229,219, 31, 63, 96,239,214, 45,236,207,254, 44,211,237,146,159,120,229,144,151, 42,205,237,
+185,161, 52, 18,221,  5,132, 15,252,230,127,255, 63,243,254,255,254,239, 40,223,124,131, 23,125,196,  8,201,222,203,183, 25, 40,
+ 57, 57, 94,114, 79,150,184,107, 55, 88, 40,141,120,112, 23,222,251, 14,127,242,173,111,242,239,191,241, 53,120,235, 61,232,187,
+ 92,112,250, 13,220,191, 15, 67,139,152,150,136,233, 54,162, 40, 97,235,  8,113,116,132, 40,  4, 98,136,136, 43,215, 16, 47,221,
+130,163, 35,196,214, 54,251,229,156,219,211, 25, 34, 70, 14, 38,  5,195,232,120, 57,189,136, 80,245, 62, 31, 90,237,  0,  9, 30,
+111,  6, 94,180,128,115,188,127,186,224, 27,143, 22, 99,196,178,255, 43,226,178,191,241,198,110, 44, 76,199,189,249,124,202, 11,
+ 59,  7,124,250,240,136,169, 45, 16, 70, 50, 23,134,123,174,103,240, 29,172,155,204, 49,127,122,158, 85,237,205, 58,143,217,255,
+ 54, 28,140, 32, 73, 74,115,115,103,134,240,158, 46,146,209,171,  2, 74,109,  9,222,115,104, 60,223,216, 12,132, 16, 97,213,102,
+ 43, 92,159,109,174,194, 94, 68, 55, 22, 16, 37,162, 48,  8,165,161, 40, 17,133, 69, 76, 42,132, 80,200,210,230,219,120,204,107,
+ 68,145, 98,182,130, 42,131,  8, 14,169, 12,194,245,185,225, 30,134,252, 29,238,  6,196,102,200, 24,212, 38, 34, 86, 77,190,201,
+175, 55,136,193,195,166, 69,156,158,229,191, 55, 61, 98, 61,254,222,189,  3, 53,142,251,117,157,181, 82,166,132,157,233, 24, 40,
+118, 33, 16,172,242,164,177,172,184, 53,219,230, 43,123,115, 76, 97,217, 41, 70,124,110, 18, 60,118,129,101, 28, 56, 13,137,117,
+200,122,171,228,134,103,231,219,171, 90, 81, 68,129, 45, 50, 53, 51,166,200,150, 86, 68,159, 11,160,140,158, 73,138, 20, 74,178,
+114, 61,101, 18, 88,149,107,203, 38,  6, 80, 22, 73,194, 74,131, 78, 33,143,223,125, 36, 42, 69, 76, 89, 56, 56,144,216, 33,178,
+ 91, 25,132, 72,104,161, 81, 66,228,210,229, 19, 90, 37, 62,232, 29, 33,196, 44, 10,148, 10, 33, 36, 47,149, 37,  9,112, 49, 18,
+165,196,142,154, 42,167, 12,171, 20,113, 72,138, 20,145,  9,250,232,169,149,193,248,  1, 69, 98, 75, 68,194,168,119,146, 74,230,
+193,181, 20,185, 14,111,150,227,216,113, 76,165, 51,230, 50,247,196,152, 92,  7,244,232,131, 23,227,133,109, 24,158, 43,234, 90,
+143, 51,252,231,162, 37,148,248,155, 35, 11,165,204, 99,224,194, 94,142,127, 43,123,201, 12,103,140,109, 92,143,193, 15, 73,102,
+ 53,230,197,152,232, 34,194, 34,230,113, 27,117, 49, 62, 65,149, 71,105,227,174,254,213,210, 48,173, 42,144, 18, 35, 50, 47,216,
+201,156, 57,174,148,166, 13,142, 90,105,254,112,209,210,118,142,235,181,230, 60,120,116,128, 74, 74,218,222,129,200,145,156,143,
+219,129, 82,231, 78,103,209, 57,148,209,217,182, 16, 19,149, 82, 56,  4,201,  5,246, 73,156,105, 73,236,122,124,140,172, 72, 20,
+ 36,144, 26, 95, 85, 56,239, 40,116, 65,135,162, 75,153,108,118, 38,192,167,144,149,222, 33,  3, 51,134, 20, 40,165, 98,187, 16,
+180,189,163, 82,145,160,  4,123, 82,240,184,201, 98,191,225,162, 75, 75, 33,107, 20,194, 40,124,209, 58, 31, 86, 23,175,101, 84,
+185, 99,144,207, 29, 89, 23,169,115,105, 76,123,  9,227,205, 93,143,111,188, 26, 95,227,174,203, 77,216, 56, 97, 81, 63,249,101,
+126,233, 75,159, 97,213,246, 44,158, 46, 73,200,188,186, 81,153,133,190,183, 51,165,180,  5,243, 89,193,188, 42,145,163,210, 84,
+ 34, 32,141,164, 35,149, 85,168, 86,103,113,136, 72, 41,  7,173,140,141, 68, 26,189,155, 82,200, 49,152, 38,131, 10, 98,200,196,
+187, 97,240,153,130,231,  2,237,224, 56, 61,223,176,105, 58,220,224,113, 62,143, 87,205,248,103,201,  4,251,123, 83,138,157, 45,
+254,240,123, 31, 51, 91,123,206, 69,204, 13, 99, 28, 87, 16,110, 20,107,142,222,240,247,  8,124,107,136,148,  7,138, 67,171,248,
+194, 65,197,203,147, 25,135,  9, 68,116, 68, 31,112, 62,225, 18,172,218,129,229,170,101,209,244,136,224,217, 45, 12,211, 50,231,
+ 27,120,151,247,231, 67,215,211, 54, 61, 67,219,179, 92, 54, 60, 89, 55, 44,186, 30, 98,196, 36,129, 34,145, 72,180, 49,145,148,
+194,100,  3, 63,201, 72, 82,169,112,243,130,149, 86,188, 88,192, 23,107,195,225,142,229,212, 42,238, 46,  7, 78, 14, 39,204, 39,
+150,193,  7,134,179,142,173, 39, 75,222, 30,  9, 78,201,193,103,125,224,231,118, 43, 30,118, 29, 77, 10,236,213,  5,213,149, 57,
+219,251,115,234,170,230,211, 51,195,235,237,192,187,239,221,229,119, 99,201,245,175,124,133,151,175,237,179,175,  4,  7, 90,112,
+ 85,195, 47, 76,  5,247,158,174,184,251,135,111,243,245,255,237,255,228,247,255,135,127,203,209, 52, 81, 87,146, 15,255,199,175,
+ 82,117, 31, 49,125,245, 53,206,128,191, 76, 80, 29,204,120,241,149, 67,142,136,124,251,155,127,  8,127,241, 29,120,114, 31,119,
+255, 62,226,116,253,  3, 80,160,252,201,144,136,197, 89,222,111,207, 10,196,214, 17,170, 40,249, 71, 55, 95,224,239,221,121,157,
+171,135,215,120,239,251,119, 17, 33,241,147, 71, 59, 28, 23, 91, 28,104,205,142, 18, 24, 99,209, 41,175,116,154,224, 56, 30, 28,
+196,  1, 81, 76, 16, 59,219,121,106,178, 92, 34,218,200,251,167, 75,222,122,248,148,251,103, 27, 68,212,136, 43,123,136,214,255,
+ 64,244,241,143, 23,194,217, 44,130,187,114,  0, 71,251,176,181, 13, 69,137,179, 83,238,204,166, 40,173, 48, 82,161,  8,232,190,
+225,254,201, 73, 46,226,143,206, 96,125, 14, 87,175,194,147,167, 63,158,140, 88,215,207,133,130, 36,152, 84, 60,238, 61,135,211,
+154, 46, 69, 62, 51,181, 60,241, 16,195,192, 65, 33,121,212,229,203,195,208,182,163,104, 42, 55,240, 66,171,204,105, 40,107, 68,
+ 85, 32,172,201,227,244,249, 12,153,  4,162,178,200, 20, 17, 69, 46, 92, 66,  8,132,136, 72, 45,145,214, 34, 92, 14, 45, 82, 49,
+ 34,147,207,134,164,  4, 50, 70,228,186, 65,246,153,167, 32,124, 64,182, 77, 46,238,155, 14,209,118,185,240, 55,185,105, 19, 62,
+ 32,100,  1, 87,174,114,227,104,135,163,107,123, 28,237,205, 41,107,195, 82, 87,136,178, 64,236, 76, 17, 91,219,168,249,156,106,
+107,155, 80, 22,164,162,120,246,154,191, 86, 88, 14, 38, 53, 82, 42,134,144,198,115, 56,129, 75,156,134,200,189,161,203,151, 62,
+ 55, 18,244,136,144,  2,109,130, 59,181, 65,199,156, 24, 90,  8, 40, 83,196,117, 13,237,208, 97, 99, 64,165,196,208,247,204,132,
+160,  0,108,244, 84, 66, 50,144, 24,162,103,199, 88,124, 12, 56, 33,184,219, 39,206,156,199,227, 51,161, 14,232,  7,199,  3,239,
+216, 79,145, 93,107, 41,165, 70,166,152, 97, 48,  4,158,180,  3,167,206,225, 66, 32, 41,137, 82,154, 47, 84, 21, 37, 89,255, 85,
+168,156,216, 87, 22, 19, 42,169, 24,156, 67,217, 60,105,216,160,152, 25,141,140, 48,179, 53, 41,180, 28,136, 64,109, 21,251,165,
+101,207, 74,162, 80,244, 62,145,252,152, 65,146,252,152,210, 55,214, 70,173, 70,173, 90,186,140, 10, 30, 70,132,112, 14,236,135,
+162,120,174,168, 95, 40,238,210,115,217, 80, 63,142,109,252,188,  5, 68,141,183,113,165, 47, 11,186, 85,227, 19, 10,121,167, 22,
+195,229,168,190, 40,176, 55,174, 19, 86,203, 17, 88,114,193, 88, 38, 63,190, 26, 21,219, 77,151,159, 71, 81,112,125,103, 70,141,
+ 96, 90,228, 49, 85, 31,  7, 10, 12, 46, 69,172, 22, 88, 20,143,188,195,137,192,227, 33, 98,100,226, 69, 85,176,118,158, 46,  4,
+172, 16,  8,149,133, 86, 59,133, 97, 25,  2,141, 11,204,166, 85,142,241, 84,138, 66, 10, 54, 41,209,135, 64, 73,162,213,  2,235,
+  3,105,200,183, 92,149,  2, 58, 10,158, 36, 79, 82,  2,165, 13, 31,244, 30, 33, 21, 15,135,158, 94, 41,206,164,204,190, 71,160,
+ 25,195, 86,124, 76, 28,105,141, 78, 17, 37, 34, 69, 76,148,192, 58, 69,174, 25,197, 11,219, 53,247,125, 34,117, 67, 46,196, 23,
+ 54,136,139,244, 33,153, 35, 31,145, 41, 23,118,105,242,107, 27,199, 27,119, 26,111,235, 23, 35,246, 36,126, 16,109, 43,121,  6,
+202,201, 34,186,252, 33,124,253,211,175,241,147, 95,184,195,211, 39, 27,154, 77,135, 82,138,174,113,184,198,209,181,158,201,180,
+230,214,254, 22,187,149,165, 48, 38, 55, 42, 58,119,174, 81, 36,122, 23,241, 49, 97, 20,148, 54,243,212, 99, 74, 12, 99,164,156,
+ 18,185, 24,199,139, 29,224, 40,242,115, 62,211,152, 92, 12, 52,206,103,158,186,143,244, 93,207,226,188,165, 25, 28, 68,207,224,
+ 60, 93, 55,228,141,142,200,  1, 14,251,187,219,172,207, 23,220,251,131, 39,168, 82,112,220,197, 60,141,136,  2,218,231,242,236,
+159,159,187,238, 42,238, 29, 89,222, 42,  4,195, 78,201, 83,  1,167, 34, 51,220, 85,240, 20,194,160,133,162, 64, 96, 84,166, 85,
+ 29,108, 85,236,110,215, 20,165,205, 72,202, 68,166,170,141,152,198,204,216,137,156,183, 89,205,155,  4,168,148, 70, 68,120,110,
+ 98,156,148, 56,161,  8, 42,191, 15,186,208, 24, 37, 41,140, 96, 57,102,227,123,145,216, 19,137, 15,143, 55,188,110,  3,219, 49,
+208,  5,136, 66,176, 16, 18,171,  4,125, 76, 92, 73,240,138, 17,184,110,224,107, 70, 49, 49,134, 55, 15, 74, 14, 38, 26, 81, 20,
+ 76,247,167,124,254,250, 14,179,171, 51,222,155,238,243,237,233, 54,147,189,  9,159,214,137,185, 27, 48,109, 71,179,110,120,122,
+182, 70, 60, 94,112,179, 86,184,205,154,117,179,102,209,  4, 78,222, 31, 16,175, 78,248,169,191,115, 19,117,125,143, 43, 47, 31,
+ 32,164,224,222,247,143,249,232,253,  7,156, 63,124, 72,124,248, 33,203,  7,199,136,126,200, 99,217,  8,130,248, 67,240, 22, 63,
+202, 54, 92, 46, 10,201,129,173,249,197, 59, 55,216,169, 11,254,217,160,240,135, 87, 16,187,219, 60,146,  5,164, 64, 37, 13, 83,
+109,184, 58, 41, 41, 68,164, 16,  1,209, 59, 62,218,172, 16,218, 34,182,246, 96,114,128,216,158,163,106, 11, 50, 33,154, 11,128,
+209,152,203,208,244,192,128,248, 17,103,150,184,208,254, 76, 39, 57,218,245,224, 16, 14,247,178, 77,109,103, 43,219,211,138, 18,
+180,166, 87,150, 79,  9,137,148,121,122, 38, 82,226,244,252,152,251, 79, 78,224,238,147, 28,158,227, 60,156,158,253,248,130,190,
+189,199,252,179, 47,209, 47, 54,121,202,160, 68,214,121,204, 38, 68,149, 49,167, 31,246,  3,  3,217,122, 26, 19,156,247, 61,125,
+ 31, 16,198, 16,156,  3, 23, 16, 86,231,255,183,158, 34,234, 18, 68, 68,212,249,134,107, 10,139,157, 90,180, 15,204, 39, 37, 59,
+ 66, 80, 72,197, 16,  3, 90, 10,132,144,200,110,200, 43,175, 24, 81,147,  2, 57,228,226,167,  0,213, 69, 84,148, 40, 76,182,173,
+186,132,114,  9,233, 61, 50,133, 92,244,131, 64, 42,141, 40, 45, 98,178,141,216,218, 98,111, 86,240, 51,219, 21,183,108,193,157,
+121, 77, 97, 44,161, 44, 56,223,223,167,158,239,176, 85, 87,236, 84, 53, 62,121,164, 52,227,170, 77,160,132,230,166,209,236, 21,
+ 38,163,175,147, 64,132, 72,146,146,227,182,227, 27,235, 53, 41, 14,224,218,172, 77,232, 86, 99,124,238, 64, 43, 18, 47,  6,207,
+158, 86, 36,223, 81,199,132,107,214, 44,134,142,171, 41,103, 59,216,152, 87,176,132, 76,127, 44,  0,235,  7,180,202,142,149, 97,
+ 20, 94,159,196,200,159,175,215, 52, 82,147,146,224, 65,223, 81,168,130,227, 24,242, 20,163,239,216,150, 17,225, 29, 49, 56,226,
+208,211,224,249,214,217,146,110,252,188, 79,149, 66,  1,187, 66, 81, 26,149,203,154,212,  8, 33, 33,120,130,174,208, 35,108,204,
+105,139,141,142,101, 20, 76,132, 64,132,129,153, 45,136,110,160, 84,144,198,122, 87, 40, 40,149,196,106, 73,144,138, 96,116, 22,
+204, 73,159,235,231,152,240,137, 24,217, 42, 93, 51,  6,190,141,122, 54,149,243, 74,126,112,252, 30, 46,114,216,185, 76,189,249,
+ 91, 89, 64,200, 35, 22, 57,222,192, 47, 30, 68,140,129, 41,221,152,166,211,249, 60, 82, 10,145,176, 89,229,142,204,135, 75,114,
+155, 27, 50, 39,118,221,193,122,117,169,  6,175, 75,182,167,  5, 59, 69,145,  5,108, 72, 10, 85,176,137, 61, 70, 10,140, 52, 36,
+ 18,231,222,177, 14,142, 70,  8, 92, 23,209,210, 51, 55,146,117,140, 44,187,241,131,170, 37, 49,101,244,101,101, 77, 30,205, 11,
+193, 68,105,150, 49, 32,200, 59,228, 42,101,171, 28, 33, 80,196, 64,138,153,237,221, 39,193, 32,243,248,229, 97,132, 61, 45,249,
+190, 11,120, 83,114, 50,244,184,232,113, 73,162,136,180, 49,162,147,224, 64,129,213, 17,145,  2,115,  1, 83,107, 96, 24,152, 75,
+  5,  8,206, 18,124,170,182,116, 74,209, 92, 88,253,144, 63, 56, 59,212,242,146,102,119, 33, 46,212, 35,201,229,194,218, 38,198,
+155,186,146,185,240, 95,  8,242,146, 24,173, 46,126,132,188,100,242, 67,177,176,  0,  0, 32,  0, 73, 68, 65, 84,171,216,237, 87,
+ 95,229,149, 87, 94,100,189,238,243,205,184,207,169,105,222,  7,124,151,168, 39, 37,175,223,216,101, 90, 91,172,214,  4,145, 15,
+138,156,155, 76, 30,177, 75, 40, 68,246, 62,167,209,206,230, 99, 32,196,244,236,105, 10,153, 15, 49, 59,178,141,  7, 23, 17, 33,
+ 16,198,176,149,228,  2, 67,231, 56,105,  6, 78,154,158, 85,223,115,188,110,216,120,135, 31, 60, 25,101,223,227,165,100,182,187,
+205,253,183,238,145,214,142, 91, 42,115,  1,174, 32, 88,196, 68,120,158, 29,112,193, 55,190, 83,192,142,201,130, 45,163,184,215,
+ 37, 62,238,  2,107, 19, 88,  9, 40,167, 19,236,124, 11, 61,159,176,189, 93, 51,159,150,204,107,195,254,180,100, 54, 41,209, 70,
+227,147,192,187, 72,219, 13,217,187, 30, 99, 14,149,  9,145,206, 69,186,206, 17,124,198, 90,202,152, 50, 40,104,116,  8, 12,128,
+ 83, 25, 91,151,164, 96,183,233,169, 63, 58, 33,189,245,  9,233,235,239, 48,251,179,143,216,187,191,224,197,162, 96,103,171,226,
+228,147, 53,205,163,  5,161,113,116, 10, 82,145,227,104, 95,148,138, 69, 76,252,249,137,167,209,130,182,115,148, 90, 96,218,200,
+253,214,243,193,202,241,241,144,248,176,135, 79,148, 33, 86,150, 97,  8,220,238, 59,118,154,158, 97,177,225,227,227,117,182,218,
+101,172, 32, 46, 86,172,194,130,122,191,224, 75,191,252, 38,191,254,243,111,242,223,124,254, 53,182,174,110,225,172,102,249,222,
+ 35, 62,249,224, 33,215, 53,124,110, 82,241,133,249, 54, 47,204, 20,223, 93,  5,104, 55,136,232, 17, 38,219, 19, 47,139,122, 68,
+212,183,145,111,126, 30,113,243, 14,226,250,203,136,217, 14, 87,183, 38,204, 69,226, 74, 23,120,176, 92,243,139,  7, 87,184,187,
+ 94, 66, 72,108,136,188,161, 53, 59, 50, 97, 83,160,242, 30, 25, 91,222, 58, 59, 71,110,214,136,178, 66,216,  2,129, 34, 13, 27,
+ 68,223, 32,106, 11,123, 51,132,169,248,213,215,142,184,179, 59,225,237,167, 13, 12,221, 95, 29,185, 23, 83,120,225, 42,236, 29,
+192,213,189,188,239,221,154,230,208,142,162, 26,225, 40,105,252, 30,121, 30, 56,199, 81,136,152, 52,112,126,246,152,175,126,114,
+ 31, 30, 62,201,222,247,191,233,146,243, 12,153,236,232,165,133,179,179,124,174,198,139,232,102, 69, 83, 88, 86,206,211, 39,104,
+218, 64,167, 18, 27, 31,233,135,192,  6,143, 31, 28,116,  1,107,243,249,144,180, 65, 16, 80, 42,239,165,139, 82, 19, 29, 28, 78,
+205,232, 26, 82,185,200,133,200,220, 42,218,148,115, 33,235, 81,232,162,146, 66,181, 29, 42, 73,180, 11,104,105,208,  4,246,109,
+193, 63, 60,156,241,230, 94,205, 11,181,229,227, 38,162,  2,168,120, 97,213, 53, 72, 99, 17,214, 32,117,133,212,185,153,248,233,
+173,130, 29, 83, 80,105,205, 34, 38,116,105,169,103,115, 30, 71,129,214, 37,133,204,194,229, 76, 18, 21,244,126,  0,105, 72,113,
+ 96, 11,184, 94, 20,  8, 55, 80, 11, 73,232, 91, 78,219,134,223, 61, 57,165, 27,214, 57,133,175, 89,193,226, 41,180,163,173,111,
+232, 32,244,152,232,217, 52, 27,186,161,165,239,214, 12, 67,199, 86,191, 70,186,128, 13,137,105,200, 23,132, 42,  9,118,132,196,
+ 39, 48, 33,210,251,142,132,228, 81,240,172,147,224,173,229, 26,107,167, 36,223,147,144,212,202,176,246, 29,219, 74,179,118,142,
+208,110,104, 86, 13,222, 53,  4,153,120,178, 94,114,127,221,177, 28, 28,173,115, 36, 18,221,208, 51, 16,216, 54,  6, 43, 50,251,
+194,146,176, 66,146,180, 33,  6,207, 41,146,227, 48, 48, 17, 32,117,137, 26, 28,115, 35,144,193, 67,215, 83, 88, 75,240, 45,117,
+  2,111, 20,201, 71, 42,149, 47,212,165, 21,153,211, 82,216,231, 44,201,  2,250,238,178,102,106,149,195,134, 24, 51, 11, 98, 78,
+116,253,171,234,247, 24, 47, 63,132,127, 93,  1,151,250,  7, 49,159, 66, 92, 42,241, 34,151, 66,185, 11,216,251,133, 71,218,218,
+203, 28, 91,247, 67,143,225, 70, 41,127, 24,159,112,235,114,178, 82, 85, 66, 93, 82,138,200, 81, 97,152,154, 18,129,100, 21, 28,
+ 83, 93, 18,162,160, 79, 16, 68,192, 10, 88,184,200, 39,141,231, 90, 37, 25, 66,224, 44, 68,204, 16, 88,201,172,202,143, 46,199,
+196,182, 73,228, 24,117,165,242,196, 54,146, 83,191,144, 20, 66,210,199, 72, 17,  3, 67, 18,116, 74, 33,164,196,143,201,125,149,
+135,115, 45,153,134,200, 67, 15, 75,165, 88, 71, 55, 22, 85,129, 75,129, 77,136, 52,209, 35,146,103,146, 18, 83,  9, 53,185, 24,
+ 22,193,161,165,194,199,200,164,180,108, 27,205,169,200,138,218,149, 45,242, 37, 83,141, 10,179,231,221,  1, 41,230,155,188,139,
+121, 23,200,  5,185, 45, 94,194, 99,226, 69,214,251,120,180,153, 81,189,102,244,200,219,189,  8, 67,128,159,249,202,207,176,123,
+101,155, 16, 35, 67, 31,104, 22, 13,235,245,  6,107, 11, 78, 78, 87,104, 59,225,229, 27,187,148, 54, 51,212,165, 84,132,152,242,
+ 91, 68, 64,164,236,213, 45, 74,133, 30,195, 88,252,152,177, 28, 71,155,218,  5,232, 69, 32,198, 36,169,152,  5,112,206,209, 53,
+ 61,193,121,196, 16, 88,121,207,113,235, 88, 53, 29,184,192, 89,219,225,130, 99, 19,  3, 27, 96, 45,160,222,154,178, 17,137, 63,
+125,235, 17,111,117,249, 80,148, 74,242,229,160,248,251,104,254,126, 97,120, 67, 73,222, 43,  4,189, 25,111, 70,175,207, 96, 90,
+141, 47,166,  6,145,  8, 14,180, 85,212,133, 97,111, 58, 99, 50,155,161,203,146, 80,228,195, 72, 11,193,150,177, 84,133, 65, 42,
+ 69,240,137,166,117,156, 44,214,156,158,183,108,250, 17, 11,219, 57,214,155,129,245,166, 99,221,117,185,  1,145, 18, 45, 37,133,
+145, 24, 96, 82,106,182,119, 10,230, 51, 75,112,142, 39,247, 31,176,127,218, 33,124,226,129,244, 57,203,190,239,153,111, 58,246,
+118,118,  8, 50,241, 72,129,216,169,209, 86,209, 38,193,118,130,166, 79,220, 95,  5,214, 49, 81, 78, 44,122,183,230,212, 11, 30,
+184,196,162,143, 60,237, 60,199,  3,120, 33,179,251, 66, 64,104,  3,251,131,203, 97, 56, 72,206,238, 29, 83, 27, 69,187,104, 49,
+ 51,139,220,169,217,189,118,157, 95,248, 71, 95,230,205,159,124,153,159,191,177,203,180,214,252,243, 63,249,128,111,125,245,235,
+ 60,125,255, 67,110,148,130, 89,105,153,134,132,145,  5,201, 88,222,242, 61,190,139, 99, 97, 79,185,176, 43,133,188,253, 58, 63,
+247,139,191,194,111,255,183,255, 21,159,253,244, 27,252,235,165, 69, 62,249,  4,249,206,159, 35,131,197, 37,195,106,211, 96,165,
+228,108, 24,104, 99,142, 66,150,209,113,147,200, 92, 38, 84, 28, 48, 41,178,105,214, 60,238,123,220,147,115,196,189,251, 89,251,
+169, 20, 82, 36,132,212,224, 59,196,131, 83,254,201,157, 67,126,253,181, 79,243,217,253,  3, 22, 69,226,131,133,131,144, 16,113,
+140,225,156, 78,224,230, 17, 95,186,253, 41,234,157, 93,202,233, 22, 43, 61,238,126,149,186, 12,250, 96,188,241,251,142,161, 93,
+211, 54, 27, 30,156,159,240,205,239,223,135,227,211,156,124,199,143,192, 27,255,184,  9,102,211,252, 96, 90,157, 27, 71,168,205,
+112, 57, 65, 27,157, 56,105,240, 52,222, 99, 70,139,174,208,130, 42, 64,111, 36,133,128,163,210, 96,129,118,228,153,239, 20,154,
+198, 69,182, 74,203,174, 49,180, 68,166,214,112,210,122,230,133,204,118,232,144, 87, 99,186,203,152, 85,147,  6,140,210,152,102,
+192, 24,205, 87, 74,203, 94, 97, 50, 61, 86, 74,182,181,228,113,155, 80,165, 70,111,213,168,178, 70,238,214,200, 73,141,156,150,
+200, 74,241,159,239, 20,220, 41, 45, 59, 90, 19, 17, 72,171, 25,132,100, 72,112,234,179, 21, 24,153,168,164,193,225,240,193,101,
+ 86,215,144,119,240,141, 31,  8,125,203, 21, 41, 56, 91, 28,211, 14, 61,191,127,239, 46,199, 79,143,225,244,  4,214,107, 56, 63,
+207,  1, 66, 93, 63, 38,255, 13,208,108,120,218,246,124, 60,180,124, 48, 12, 52,155,  6, 57,116,236,196,136,  9,129,  9,137, 77,
+ 12, 28,232,146, 74,  8,186,148,152, 11, 73,163, 36, 38,230,128,160,211, 24,248, 78,151, 88,107,131, 14,  3, 66, 23,  8,  1,165,
+144,  8, 98,230,235, 36,193, 16, 60,171,117,203, 39,203,150,187,103, 13, 79, 66,196,247,  3,221,224,216,145,146,174,237,153, 24,
+197,224,  3,167,125,207,129, 18, 28, 22, 26,163,178,128, 88,105,201,105,128, 37, 34, 35,192,165,196,198,136, 22, 48, 12, 29, 69,
+ 24, 72, 82, 48,193, 81,134,192,106,240, 76,146,200,131, 28,173,242, 25, 21, 18,149, 18,  4,161,112, 74, 93, 78, 95,149,185,140,
+145, 45,108, 62,211, 47,146,233,194,  0, 46,252, 71,196,196,234, 25, 76,203,252, 66,119,237,229,135, 54, 93, 40,247,210,229,248,
+253, 98,132, 44,212,179, 66,146, 71,201,207, 41,223, 47,190, 76,207,212,219,163, 80,172, 30, 57,228, 85,206, 54,182,194, 34,133,
+100, 57, 12,148,214,162,144,172,253,128,212, 22,237,  7, 90, 20, 18,135,150,146, 24, 34, 15, 59,152, 72, 65,233, 29,143, 82,182,
+190, 45,  7,  7,117, 73,227, 28,214, 40,146,135, 70, 36, 42,165,233, 72,104,149,139,211,202,123,106,107,136, 74,162,  9,248,212,
+114, 98, 20,120,143, 73, 30, 33, 52,190,233,  9, 19, 65, 45, 28,101,  7,141, 46,178, 86,  0, 96,104,137, 49, 91,250, 22,195,192,
+182, 22, 92,179, 53,141,247, 28, 26, 67,231,  4, 62,  4, 14, 39, 83, 22, 67,135, 19,130, 93,  4,167, 69,205, 52,118, 44,170, 34,
+199,199,202,220,209,225, 47,112,146,163,107, 64,143,183,  1,127, 33, 56,140, 57,176, 70,170, 60,138, 30,252,  8,204,  9,227,127,
+ 99,243, 62, 93,155,172,220, 21,121,106,226,135,252,129,152, 78, 11,214,139, 14,165, 21,214,232,124,214,140,161, 54, 77,231,217,
+155,149,  8, 41,242,197,223, 11,162, 72,200,152,211,247,130,143,120, 35,178, 48, 19,137,210, 18, 39,178, 15, 61,164,188,  2,  8,
+ 49, 61,235,220, 37,  9, 27, 35,161,243,136, 16,177, 72, 54,193, 51, 12,129,101,211,211,199, 49, 39, 93,102,  6,242,128,160,141,
+ 61, 19, 41,217,191,126,200,123, 31,220, 67,  7,216, 70,240,189,141,  3, 31,249, 30,145,162, 77,252, 92,165,184, 89,106,126,197,
+ 41,126,242,214,140,119,222,218,112, 60, 43, 81, 47,189,192,227,110,195,102,112,156,116, 29, 31, 30,247,108,149,138,106,156,100,
+  4, 34,221,208, 35, 86,146, 97,  8,132,222,179, 95,151, 76, 71,123, 99,219,  6, 78, 78, 27, 62,186,119,198,122,211, 94,222, 76,
+165, 96,232,  7, 26,215, 49,116, 29, 94, 41,114, 34,124, 22,216,108,205, 75, 14, 94,220, 98,182, 55,101,182, 59,225,189,239, 63,
+230,131,166,167, 85,112,211,193, 67, 25, 25, 74,193,206,102,224, 86,227, 41,191,115,151, 87,215, 13,175,237,212,204, 94, 63,226,
+254,213,146, 73,227,216, 44,  7, 30, 13,240,141,100,120, 49, 42,190, 60, 53,252,191, 14,222, 63,239,169, 35, 20, 70, 50, 31, 60,
+122, 82,128, 80, 24,173,184, 35, 21, 55,182, 21,133, 51,136, 85,195,241, 91,239,114,235,198, 62, 47,224,120,242,201, 99,218, 43,
+ 19,234,218,160, 10, 69, 81, 22, 28,159, 44,249,151,119,159,242,207,127,251,247,120,244,241,146, 23,182, 13,  7,135, 91, 24, 93,
+ 82, 20, 37,178, 27, 56,239,214,156,198, 68,220,218,193,220, 82,  4, 25, 72, 79, 31, 33, 94,126, 19,110,190,  4,251, 47,114,116,
+117,151,205,147, 51,126,227,255,250, 29,244,239,126, 23,241,197,151, 16, 71,215,217, 81,  2,183, 92, 96,164,226,165,162,100, 49,
+116, 28,  3, 41,120,196,208, 34,101,139,223, 24,106, 91, 32,130, 99, 66,100,123,189,164, 89,158, 19,143, 79,136,253,154,116,251,
+ 83,196,157,  3, 82, 89,145,108, 73,178,134,223,120,239,  1, 87,240, 28,204,118,248, 94,235,179,183,252,188,132,176, 70, 40, 75,
+ 58,218,129,189,125, 38,102,194,223,217,219,101,145,114, 72,213,191,109,150,121,189,103, 71,226,149,243,153,118,181, 88, 66,227,
+184,191,217,100,199, 73,234,199,181,225,104, 31, 13,241,111,127, 86,254, 40, 46,250, 98,  1,187,123,151,156,134,209,  6,156,198,
+113,238, 48,  4, 10,157,149,236,107, 55,112, 93, 27,  6,173, 56,137,137,155, 19,141, 31,  4, 49,207, 16,185, 82, 21,108,  6,199,
+138,236, 78,153,  0,117,101,232, 99, 98, 72, 41, 63,101, 31,145, 87,246,144, 82, 83, 76, 44,184,129,212,244,220, 26,  6,110,232,
+204, 55, 80,  2, 54, 46,112,173,176,212,187,150,184, 55,131,189, 25, 87,170,154,164,  5,167, 67, 75,227, 29,175, 18,249,172, 81,
+212, 90,114, 84,148, 60,117, 29, 79,162,199,  3, 31,116,  3,167,162,196,168, 60,133, 91,135, 13, 73, 38,214,109,  3,222, 33, 54,
+ 27,146, 80,172, 55, 45,223,148,145,111,202,209, 86,146,  2, 44,250, 49,179, 99,156,244, 14, 25,226, 50,238,184,242,244, 81, 11,
+ 88,174,159,157,177,119,165,102,119,219,210,  6,193,190,206,  4, 54,141,160,137,142, 82, 26,166, 82,112, 46, 20,197, 24,202,213,
+111, 22, 24,171,217, 69,179,113,  3, 24,131, 14,142, 32,  4, 94,106, 22, 17, 90,198,137,243,176, 33, 40,152, 71, 73, 39,  5,219,
+ 17, 58, 33,217,158,151, 28,247,145,131,121,205,227,214, 97, 11,197, 64,164,239, 55, 44, 84, 32,161,169,116, 73,215, 12,156, 10,
+197,137,157,161,147,103, 75, 90,124,236, 65, 41,170, 36,232, 98,100, 87,  6,156, 27, 48, 74,178, 85, 26, 78,  6,199,150,132,165,
+119, 20,104, 38,  6, 22, 36,154, 16,144,182, 32,166,  0,194,254,224,103,105,185, 25,131,141,234, 60, 17,170, 74,112,254,185,162,
+174,245, 37, 41,230,199,141,221,167,117,142, 33, 44,170, 92, 32, 46,126,  6, 46,139, 77,188,192,201,245, 99,228,233, 88,236,237,
+115, 93,174,243,151,227,126,212, 37,108,  4,153,173, 90,106, 84,193, 63,103,159,219,132,200,196,234,204, 47,209, 50,231,175,248,
+ 33, 91,179,188,167, 65,176,171, 21, 69, 33, 89, 15, 25,  8,163,141,160,245,254, 89,202,253,178,115,168,202, 82,185,136, 55, 30,
+  6,205,153,114,108,219,140, 51,108, 83,196, 40,197, 34, 95, 71,153,105, 65,131,198,182,  3,219,192, 70,107,214,193, 51, 67,243,
+168,237,  8, 93, 71, 61,155,114, 26, 37,108,250,203, 72, 86,  9, 52, 27,176,138,224, 35,239,159,173,248,220, 86,126,209, 39,232,
+ 49, 38, 87, 50, 49, 22,173, 10, 78,104,217, 45, 19, 77, 47, 51,115,  5, 46, 51,224,155,110,220,157, 95, 28, 42,242,146,250, 22,
+228,232, 58, 24, 27, 34, 41,243,239,234,135,252, 62, 68,159, 91,118,171,243,123,164,220,104,253,241,104,107, 41,173,225,228,108,
+131, 27, 11,188,214,  6,151,  2,162, 44, 40, 37, 20,101,206,  6,200,251,242, 11,105, 68, 78, 82,235, 98,192, 17,145, 61, 88,173,
+144, 57, 69,  6,169, 50,139,152,144,111,238,217, 46, 47, 81, 49,195, 94,116,  2,163, 36, 90,107,188,  8,184, 16,232, 55, 30,223,
+ 56,232, 29,125,240, 24, 33, 88,165,196, 10, 40,172,225,104, 58,101,111,127,139, 63,250,147,239,241,221, 38,239,208, 16, 49,255,
+174, 83, 77,223, 58,254,213,185,203,193,241,107,207, 59,231,  3, 47,110,107,138, 39, 13,146,123,220,216,153,242,194,214, 46,250,
+250, 14,223,219,121,204,100,182,197,164,174, 41,102, 83, 14,143,118, 88,117, 67,222, 16,109,122,154, 36,232,132,192,  9, 24,122,
+207,217,162,225,238,253, 19, 30, 62, 56,103,240, 29, 41,100,108,167,136, 17, 31, 99,166,167,249,132, 64,179,232,  5, 82, 25,148,
+130,253,189,138,122,119, 74, 49, 45,113, 41,113,214, 42,110, 79,247,248,254,233, 83, 30,184,150, 77,219, 32,140,164, 25,122,174,
+  4, 69,179, 56,102,111, 19, 88,196,134,217, 39, 11, 78, 95,152, 96,103,154, 35, 83,112, 16,225,198, 85,197,181,101, 79,215,  5,
+126,213, 74,254,167, 85,207, 73,227, 25,  6,216, 41, 36,147, 66,113, 22,224, 80, 11, 62, 59, 51, 28,213,138, 19,  1,111, 63, 78,
+124,229,240, 21, 22,201,113, 32, 18,159,217, 46,249,227, 69,203,195,239,220, 99,231,232, 42,211,123,103, 92,145,130,111,126,247,
+ 33,119, 80,108,109, 91,116, 93,176, 85, 79, 49, 66,211,173,150,220,125,252,144, 83, 93,177,116, 41,239, 67,203,154,161, 56,128,
+ 47,127, 38, 39, 89,181, 27,196,215,254,128,223,248,238,130,127,241,134, 66, 93,217,197,124,233, 14,162,156,176, 91,207, 57, 16,
+154,137, 86,163,169, 38,208, 13,158,207, 19,217,154,239, 66,154, 51,167, 37,173,206,169,162,195,132,  0,203,115, 94, 63, 95,241,
+180,237,137,  6,194, 98, 65,252,222,251,196,219,142,120,253,  6, 73,193, 23, 95,186,195, 27,183,111,241,199, 31,188, 75,255,240,
+ 29,238, 29,247,136,170,134, 74,147,216,206,201,150,211, 41,111, 76,106,110,109,111, 97,133,228, 74, 97, 40, 69,143, 90,231,176,
+ 70,218,113,127,123,190,202,141,239,249, 58, 23,115,158, 43,200, 74,130, 48, 57,103,253, 63,164,168,255,117, 63,171,213,104,253,
+213, 35,255, 66, 17, 92,204,199,156, 17,244, 46,177, 45,  3,229, 78,205,227,245,192,190,149,220,172, 18, 15,186, 64, 39, 20, 83,
+ 18,133, 53, 28,167,196, 43,133,193, 42,184,110, 53,171, 33,240,168, 25,152,151,130,166,143, 72, 31, 81,218,160,171,146, 91,243,
+ 41, 66,107,164, 31,136,147,158, 47,  9,207,203, 74,161,  6,199,241,178,227,233,186,231, 35,239,153, 86, 21,177, 40,198, 44,144,
+128, 68,163,180, 34, 16,121, 81, 68, 38, 90, 82,250,196,169, 95,178,173, 13,157,115, 28,  7,184,231, 65,153,136,111,219,108, 68,
+233, 90,210,122,141,104,123, 82,215, 67,231, 16,195, 64,146,238, 50,228,231,  7, 64, 95, 41,171, 92,203,145,148,103, 60,108, 70,
+ 32,141,119,224, 70, 43,244, 72, 59,139,210,241,180, 53,220,175, 19,  6,184,154,224, 64, 41,206,165, 34,166, 68, 47,179,125,248,
+ 52, 37, 26,160,172,166,232,216, 17, 92,139, 80, 37,131, 15,120,157, 39,199,103, 67,135, 21,154,117, 28,178, 86,201,214,176, 13,
+203, 85, 67,225,123, 54,  2,156,213, 48, 68, 68,101, 57, 67,240, 74, 93,240, 46,153,123,209,171,130,223, 91,116,212, 90,243,134,
+ 13,188, 39, 36,235, 16,  9, 33,176, 85,206,240,205,130,189, 98,134,175, 39, 16,  3, 59,  4,154,205, 19,166, 90, 67, 12,172, 99,
+100, 79, 43,156,207,154, 45,159, 28, 43, 31,241, 14, 10, 41,243,250, 66,233,209,185, 60, 54, 62,113, 12,173,113,125, 46,238, 90,
+ 67,219, 65,122,254,166,110,245,165,100,254,199, 21,245,161,  1,202, 92, 52,158,221,180, 61, 88, 55,250,163,199,  4, 57, 63, 90,
+180,188,191, 28,  5, 95,220,200, 47, 10,248,133,218,254,226,159,155,238,242,198,127,193, 13, 30,233, 99,239,169,130, 23,165,160,
+151,146,  2,216,196,152,119, 55, 82, 18, 99,196,249,129, 18,197, 82,122,212,136, 46, 91, 43,197, 68,  6, 76,161,105,157,231,110,
+ 19,120, 97,  2,170,247,172,140,162, 38,146, 76, 66,171,114,132,132, 64, 37, 36, 29,176,140,145,235, 90, 35,131,167,198, 32,133,
+231,201,232, 10,159, 40,205, 58,  4, 10,161,120, 52, 64,116, 29,181,116,153,204, 19,251, 49,190,207, 65, 10, 40, 97,121,226,122,
+190, 48,175, 88,123,199, 84, 40, 38, 90,161,180,201,163, 94, 44, 50,  5, 10, 37,168,124,226,250, 86,201,112, 62,176,190,120,103,
+124,155,247,127,171, 46,127,232,149, 29,189,178, 49, 63, 25, 63,118, 84,202, 94,142,  6,227,184,147,143,163, 40,206,199, 75,149,
+114, 24,217,237,162,196, 22, 10,171,243, 72,189,158, 78,114, 40,221, 38,147,209,246,171,154,157,189, 41,125, 15,165,209,  8,145,
+105,108, 81,100, 43, 91,206, 97,143,196, 33,208,235, 72, 29, 21, 33,138,203,129,140,144, 99, 10, 98, 22,229,136,148,208, 82,100,
+123,188,204, 35, 41, 25, 19,209,103,222,186, 86,130,  3,165, 57, 47, 10, 68,  8, 44, 82,162,142,145,101,190, 18, 83,212,  5,235,
+243, 13,220, 95,147, 60, 76,181,102,221, 15,208,132,252, 90, 92, 55,240, 73, 15, 27, 15,  6,190,190, 47,248, 58,  1,156,227,102,
+  1,  7,139, 21,221,217,154, 73,253,152,178, 46,217,155,111,243,229,207,221,225,240,133, 93,202,218,242,232,124,195,233,186,101,
+181,233, 41,180,165,174, 74,162,148,116,131,227,120,213,240,240,116,201,134, 72, 16,146, 36, 21,169,119,248,161, 35, 70,151,127,
+ 55, 52,146,148,119,237, 86,211,167, 72,155, 18,109,140, 20, 18,190,249,246, 99,206,122,248,164,154,210,238, 22, 84,174,103,221,
+221,167, 90, 31,227,156,227, 95,135,129,217,162,225,197,162,228, 17, 37,187, 15,158, 50,105,246, 17,100,112,140, 83,138,161,208,
+ 28, 79, 44,198,  5, 78,149,224,205,157,130,223,250,218,125, 30,108,224, 63,187,190,155,149,181, 17,124,  8,124,126, 90,179, 61,
+181,156,165,200,245, 98,135,201,178,230,201,122,224,157,227,115, 68, 20,156,189,243, 17, 15,222,251,152, 15,138,119,121,225,215,
+126, 25,172,161, 45, 75, 44,150, 29,237,248,240,163,  5,205,249,134,237,253, 41, 91,123, 91,252,254, 87,255,130,116,117,159,120,
+243,  8,130,161, 22,240,202,151,222,228,245,254,152,223,252, 95,190,133,253,114,201,144,  2,123, 63,127,  3, 89, 87,236,206,175,
+176, 78,  9,163, 52, 71,202,176,103,115, 26,100, 66,226,186, 53, 47,138,158,117, 12, 28, 30, 93,163,156, 84,184,190,231,236,195,
+111,179,186,127,151,243,216,211,222, 95,114,173, 46, 41,129, 79,111,237,240,173,197, 25,161, 91, 17, 82,128,243, 39,188,121,245,
+  5,190,116,176,203, 92, 72,124,140,252,230,251,223,231,230, 36,112,183, 79,121,154,110, 20,105,108, 34,136, 48, 87, 10,171,  5,
+ 58,  6,122,215,241,165,208,240, 71,235,101,158,132, 61, 61,207, 86,181,229, 34, 79, 32, 11,251, 35,188,230,233,111, 62, 27,255,
+182, 63,110,200,244,182, 49,145,115, 90,104, 58,  9,125, 31,185, 82, 41,156,149,156,181,158, 93, 23,153,106,201,218,  7, 54, 30,
+180,213, 57, 71,170, 46,185,182,189,207, 78, 49,229,102,109,185,163,  4,106,241, 24, 21, 28,127,201, 10,173, 36,115,223,161,181,
+198,214, 53, 73, 90,166, 69,238,127,103,117,205,212, 27,110,196,158,228, 28, 19, 99,168,103, 64, 31,120,219,195,220, 40,130, 86,
+108,155,130,137,177, 12, 36, 58, 41,217, 55,134, 67, 45,209, 93, 62,215,116, 72,116,222, 51, 12,145,223,121,218,227, 68, 68, 15,
+103,132,229, 26,180, 37,185,129,120,129,  4,149,144,250,241,117, 13, 54,251,250, 47, 34, 80, 69, 49,174, 25,199,139, 78,231, 71,
+ 29, 86,186,  4,128, 93,136, 36, 92,255, 44,170, 91,  4,184,219,182,212,133, 96, 54,230,158,  8,163,145, 49, 48,232,130, 20, 61,
+ 43, 33,233,181,161,141,145,132,164, 81,  5,123,186, 99,225,122, 30,217,154, 57,145, 77,202, 77,213,169,239,199,245,229,152,226,
+ 41, 13, 76, 74,250, 30,146,177,104,  4, 11,163, 81,  9,130, 82,108,138,154,159, 80,146,149,144, 44,132,160, 78,176,107, 20,143,
+ 66,228,101,173,121,170, 12,119,125,203,186, 83,204,170,154, 71,171, 99,136, 29, 71, 55, 95,103,245,238,159, 81, 81, 16,125, 71,
+ 10,137, 90,102, 65, 93,242,207, 16,152,204,180,228,110,227, 71,200,149,186, 36,184, 21,163,142,162,200,164,200,103,  7,110, 63,
+ 66,139,132,122,174,168, 59,127,201,123,253,113, 63, 77,155, 51,133,229, 15,141,151, 28, 16,187, 60,154,127,158, 15, 59,118, 35,
+ 57,  5,135,203,177, 19, 33,171,149, 13,121,199, 36,199, 55,243, 25,169, 73,141,108,227, 13, 84, 19, 84, 72,156,  7,199,118,204,
+233, 78, 90, 89, 54, 41, 82,138, 12,  5,152,218,146,251,155, 37,203, 24,185, 82, 27,190,127, 49, 82,211,112,220,122, 98, 18, 92,
+ 41, 21, 79, 26,232,230,137, 93, 18,139,148,173, 74, 87,101,230,232,106, 33,241,  8, 28,145,131, 42,119,115, 33, 64, 69, 46,244,
+ 86,107,122,151,241,138, 61,137,211, 16,152, 23,138,  7, 35,183,153, 97,  4,181,172, 54,207,252,248,161,105, 57, 50,138,183,151,
+ 45, 95,152,215,212, 85,129, 79,129,153,153,208,184,236, 19,245, 82, 83, 70,207,141,201,156,  7,205,134, 45, 35, 40,  5, 60, 93,
+181, 80, 87, 89,160, 83,106,  8,213, 72,124, 35,135,212,244, 99,177,246,  9, 38,228, 27,184, 30, 21,240, 23,171,142,139,177,129,
+ 31,121,211,186,200,157,177, 41,153,212,147,156,250,230, 19,182,146,112,158, 24,134,129,162, 40, 57,188,178,203,223,253,204,117,
+164,210, 36,145, 69, 26, 46,145,233,106, 82,144,124, 78,140, 43, 10, 73,  8, 41,111,  0, 18, 72, 41,179,121, 33, 64, 34,142,230,
+134,244, 44, 80, 71,  2,106,220, 27,102,198,120,100, 54,218,139,125,132, 38,100, 40, 79, 14,227, 20,204, 68, 66,  8,137, 45, 43,
+142,143,207,121,251,126,199,204, 10,166,133, 98,157, 70, 49,225, 69, 97,247, 23,  1,  1, 33,123,244,111,215,224, 36, 15,151,129,
+ 79, 98,226,221, 90,113,133,192, 21, 25,217, 44,207,168,239, 62,230,211,211,130, 23, 74,205,164, 42,176, 74, 50, 49,134,162,180,
+204,234,  2,107, 52,206,141, 80, 26, 21,243,168,174,168, 32, 37,130, 50,248, 21,200, 62,161, 99,200, 62,124,  4, 49,  6, 98,231,
+240,235,158,197,201,154,132,224,241,249,138,234,253,123,156, 76, 42,238, 79,246, 57,156,148,220,153, 77,249,120, 50,229,252,227,
+125,228,174,163, 57,237, 88, 29,  9,222,245,  3,159, 58,152,243,  7, 83,205, 71,255,235,255,199,250,147, 99,170,249, 22,113, 62,
+ 33, 20, 37, 87,175,239,112,227,206, 14,157,128,247, 31, 44,120,177, 42,217,185, 49,231,188,247, 76, 66, 66,185,200, 63, 56,172,
+153, 36,208, 62,113, 69,229,176,141,118,106,249,211,147,150, 38, 70, 86,171,134,214,105,218,135, 13,215,127,234, 38, 79, 11,195,
+ 45,109,120,233,229, 27,220, 83,146,189,190,225,218,235, 45,103,143, 30, 48, 63, 60, 66, 77, 12,182,123, 68,122,119,159, 52,109,
+184,117,235, 58,169, 56,224,181,197, 61, 42,161,248,149,127,122,155,213,100,155,101, 40,152,238, 28,208,  3,171,224,121, 41,  4,
+ 42,  5, 91, 74, 51,179, 80,203,132, 78,142, 85,232,104,135,134, 36, 11,166,214, 82,149,  5,231, 85,201,176,253, 18, 31,156, 46,
+249,252,201, 35, 90, 35,248,189,199,199,252,194,213, 61,190, 33,160, 76, 18,191, 60,193,223,127, 64,216,221,167,174, 37,197,225,
+ 54,161,152,210,233,146, 55, 14, 15,153,107,216,234, 29,223,110,251, 81,185,238, 73, 66,243,238,224,249,169,118,193,141, 80,211,
+250, 14,227, 29,177, 95,231, 93,249,201, 34,171,172,155,238,  7,241,166, 74,254,208, 63,251,191, 18,110,243, 31,157, 43,127,241,
+103, 14,249, 49,151,163, 76,233, 74, 93,242,120,227, 40, 10,197, 84,128, 76,137, 32,  4, 87, 38,  5,171,113, 63, 43,172,162,212,
+150,235,179,125,246,118,182,185,105, 44,183, 66,131,177, 37,221,234,132,253, 98,139,143, 54, 11, 14,148,193,147, 24, 16, 76,234,
+130, 66, 25,170, 66,161,164,229, 72, 43,174,166,130, 32, 27,172,138,244,  1,110,109, 77, 16,177,227, 65, 93,208, 88,240,218,144,
+140,161,141,129,181, 79, 60,236, 58,110,148,  2, 75,228, 64, 43, 54,110,192, 13,158,213,162, 69, 63, 62,135, 20,114, 60, 47, 25,
+ 42, 21,184, 12,203, 73,189, 71,104, 77,234,  7,114, 12, 12,249,251, 90, 75,  8,125,222, 19, 95,212,  5, 61,234,178,180,186, 76,
+208,188,200,216,186, 40, 96,195,  0, 91, 19, 24,  2, 31,172, 29, 98,170,249,194,164,226, 97,204,251,241, 34,102,230,135, 19, 10,
+ 27,  2,131,202,158,140, 45, 47, 88, 75,197, 92, 72,222,117,145, 37,137,164,244,136,184,214,121,109,172,199,  6, 67,251, 92,224,
+171,154, 32,192, 35,176, 82, 33,148,100,219,148,120,224, 84, 91, 78,253,192, 34, 68,246,203,  9,149,144,120, 35, 57,117, 45,199,
+ 99,156,107, 72,142,123,235, 83,110,137,196, 98,121,130,191,251, 22,110,179,  4, 60,173, 79, 92,213,153,  8, 89,  5,129,151,130,
+ 33, 66,239,  2,167, 62,159, 59,249, 66,246,156, 88, 58,166,220,252, 92, 76,132,205,115,214,242,190,135,117,243, 67,150, 54,239,
+255,102, 17,200,  5, 12,228, 34, 10,209,140,240,  3, 51,142,135,109,145,255,122,214, 28,164,188,203, 29,134,203,255,103, 24,227,
+238, 10,  9,171, 53,204,103, 25,217, 88,141,  0,152, 16,115,  8,141, 28,129,241, 50,145, 82, 96,170, 44, 51, 45, 41,148, 70, 11,
+  8, 98,132,133,164, 64,235,  2, 66, 73,206, 66,224,254,102,160, 31, 65, 49,155, 33, 50, 83,146, 62, 69, 54, 81, 16,164,160,113,
+145,121,105, 80, 18,106, 99,105,147, 96,183,208,248, 81,249, 46,149,102,229, 61, 67,  8, 57, 13, 45,194, 32,115,177,121, 48, 12,
+  4,153,253,216, 69, 82, 60,246,185,211,234, 47, 20,215, 23,182, 61, 55, 22,121, 33, 24,156,103,219,100, 91,220,142,177, 84,198,
+114,238, 58,172, 50, 36, 33,136, 33, 96,146,100, 16, 96,165,192, 73,129,219,180, 92,153, 84,156, 54, 45, 68,216,154, 22,244,221,
+144,181, 10,105, 92, 81,232,231,  4,117, 62,140, 30,244,139,214, 54, 94,134,212, 92,208,239, 82,204,227, 44,109,161,237,248,236,
+155,159, 97,190, 55,231,244,248, 28, 31, 96, 50,157,178, 60, 89, 81, 79, 38, 92,217,219,226,221, 79,214,188,112,101, 62,142,202,
+101,166,177,141,193, 85,125,200, 25,  1, 89,148, 47, 40,108, 78, 40,147, 34,143,233,253,168,198,245, 33,226, 67,194,187,108,105,
+ 84,241, 66,249, 30,192,  7, 66,235,232,154,129,174, 15,196,193,227, 82,100, 21, 28,201,199,108,135,139,145,171,251,187, 28, 28,
+238,242,206,219,239,243,222, 73,195,178,117,172,134, 17, 81,219,135,188, 12, 59, 30,133,138, 25,223,  4,103, 14, 38, 18,185, 93,
+225,251, 56,106, 57, 37,243, 90, 83, 25,203,164,158, 34,181, 37, 84, 22,105, 53,189, 15, 28,159,183,244,157,163, 42, 53,211, 73,
+137,210, 18,239, 60,109,215,211,245,217, 98, 39,180, 34, 70, 75,194, 18,140, 70, 10,205,118, 81,115,125,190,205,225,100,206,196,
+148, 76,149, 97,191, 40, 41,146, 68,205, 45,178, 46,105,107,139,208,  2,206,150, 76, 39, 19,110, 29,212, 52,202,208,238, 77, 16,
+170, 96, 82, 22, 84,243, 18, 61,155,178,127, 56,229,202,225,148, 99, 49,229,251,201,210,204,106,228,225, 46,147,171,115,156, 86,
+ 60, 10,112,114,222, 99,181,165,124,113,155,117, 59,112,122,210, 48,108, 28,243, 29,131,248,232,148,151,246,167,136,  0, 86,231,
+ 56, 76,149, 18, 47, 84,130,155, 83,195,  7,143, 60, 11, 57,103,101,225, 74, 33,216,185,122,200, 78,105,104,  3,248,178, 32, 77,
+166, 32, 38,108, 85, 37,219,135, 59, 60,126,186,226,159,124,230,243,252,131,255,242,167, 57,122,227, 14,213,233, 19,134,167, 31,
+243,130, 45,137,102,194,244,240,  6,147,131, 79,177,127,227, 58,182,174,152, 78, 39,204, 37, 28,106,195, 22,138,173, 34,113,160,
+ 52,179, 24,208,190,103,238,  6, 78, 22, 43,246, 82, 71, 85,212,180,211, 41,117,239,249,104,240,220, 48,  5,119, 69,226,134,138,
+188,148,  4,223, 76,138, 95,170, 45,239,161,144, 66, 35,241,  8, 23,120,176, 25,216,173,  5,247,134,129,148, 36,183,235,138, 93,
+ 91,177,109, 44,239, 56, 79, 24, 57,214,194,121, 98,236,249,254,114,205, 46, 61,186,239, 89,117, 11,254,229,135,143,224,254,113,
+ 30,133,187, 31,218,125,203, 81,159, 18, 70,190,130, 28,187, 84,255,159,  0,136,121, 54, 69,139,151,205,118, 28,207,138, 36,168,
+172, 34,133,132, 23,130,237,164,120,109,111,194, 79,237,109,241,234,124,202,212, 72,  2,130, 86,  9,182,180,225,198,116,198,220,
+150,236,213, 19, 94, 41, 11, 74,109,216,149,146,169,202,126,117, 45, 45,219,214, 98,149, 98, 87, 89,166,166,224,160,168,216,211,
+ 21,187, 41,114,104, 44,  7,186,100, 91, 21, 76, 80, 76, 76,205,188,156, 48,177,154,235, 86,179, 63,157,113,168, 37,187,  2,182,
+ 84, 68,118, 29,133,115, 44,215,107,142,130, 71,227,217,180, 61,199,231, 13,127,113,186,100,117,214,142, 22,219,  1, 17,179,240,
+239, 50, 66,220, 95,254,174,207,191, 30,241,121, 29, 86,200, 89, 26,207, 24, 23, 98,244,105,143,103, 91,161, 47, 99,195, 73, 96,
+ 44,194,103, 55, 65, 72,112, 10,196,145,124,104,165,198, 11,129, 23, 57, 41,206,169,172, 53,216,140, 60, 17,139, 96, 41, 19,  8,
+205,146,144,111,231,114,116,  4,153,139, 32,151,145,241, 33,115,214, 71,146,144,148, 36,152,146,137, 50,217,222,172, 52,115,169,
+121, 34, 52,218, 90, 10, 91,162,144, 60,  9,158,162,172,184, 35,  5,247,146,128, 48, 48,183, 37, 65, 89,170,208, 99,250,  6,101,
+ 13,209,123,172, 72, 56,145,181, 71, 49,  4,150, 33, 19,244,136,137, 39,109,164, 75, 99,232,140, 80,227, 45,125, 20,204, 41,123,
+185,106, 45,205, 88, 43, 85,182,185,141,103,244,127,218, 79, 61,201,  5,164, 75,204,127,226, 14,203,119,238,229, 20, 36,115,161,
+146, 31, 59, 43,173, 71, 47,233,216, 93,116, 49,171, 29,235, 45,216,173,145,186, 32, 94,164,165,117, 62, 23,253,114,228,141,203,
+ 44,246, 58,243,  1, 71, 34,137,200,169, 15,108,  9, 65, 82,154,193, 59, 64,176,240,158, 62, 68,102, 82,178,136,  9, 41,229,248,
+ 98,141,117, 78, 93,140,254,  5,223,111, 19, 91, 86,176,155,  2, 83, 11, 79,  7,199,212, 90, 54, 41, 49,  9,238,242,134, 43,  5,
+ 40, 79, 10,154,211,152,152, 26,147,131,108,148,160,197,211, 15,130,190, 16,185,177,121,102, 51, 35,219,199,116, 22,  5,246, 33,
+239,168,139,152,232,  4, 48,116,212, 69,205,248,209,205, 89, 11, 70, 83,199, 72,  7,236,  1, 15,132,160, 78, 61,159,155,105, 60,
+154, 10, 79,179, 59,201,187,100,  3,119,151, 21,125,232, 47, 87, 32,210, 65,127,177, 79,231, 50,138,183,176,227,141,126,180, 46,
+132,113, 74, 82, 88, 54,171, 14, 63,238,232,125,219,211,156,181,172,155,134, 33,120,166,243,  9,235,179,200,241,249,  6, 43,  4,
+ 82, 10,172,214,232,145,196,102, 20,156,167,  8, 93,196, 26, 49, 58, 81, 69,158, 96,165,252,181, 14, 41, 63,156,140,217, 38,231,
+ 70, 12,171,243,158,228, 60,214,  5,116,  4, 55,  4,206,  7, 71, 59, 12, 52,222,161, 60,164,152,144, 66, 48, 51,134, 43,202,178,
+131,228,221, 71, 11, 58, 61,126,177, 87, 62, 63,  0,140,184, 89,178,109,109, 29, 97, 42, 97,237,225,173, 13,113, 94,160, 42,147,
+117,  1, 41, 49, 51,  5, 91, 85, 69, 93, 20,244,193,113,114,182,121,150,213,227, 55,  3,194, 69,156, 82, 76,230,142,  9, 16,189,
+199, 24, 73, 89, 25,166,157,165, 25, 34,102, 42,232,  6,139, 76,150, 98, 54,231,149,121,193,107,179,138, 74,  8, 66,231,104, 87,
+ 93, 78,206,219,177,120, 13,117,173,153, 76,118,152, 78, 45,190,141, 52,205,128,144,112,125,215,240, 66, 50, 28, 92, 41,120,184,
+242,156,135,192,233,178,163,233, 60,199, 77,192, 27,197,193,139,  7,108, 29, 84, 76,182, 11,234,144, 16,189,167, 43,  4,147,173,
+ 57,202, 57,190,119,188,230,233,131, 37,171,147,150,183,255,213,191,227,149,255,238,191,230,255,248,247,111, 33,222, 62,231,103,
+127,233, 85, 84, 44, 16, 86, 19, 67,194, 68,216,171, 53,191,254,197,107,124,245, 91, 15, 56,108,175, 80, 46,159, 98, 30, 46,240,
+181,229,112,174, 49, 30,150,201, 80, 94, 55, 12,141,101,253,228, 41,191,246,153, 79,241,185,219,135,252,179,255,251, 27,188,247,
+206,219,156,223,250, 60,101, 45, 57,223,222,102, 90,109, 35,119,182,153,204, 10,202,105,129, 34,209,172, 91,180,154, 50, 44, 55,
+ 40, 25,217, 18,134,210, 13, 24, 63, 32,137, 12,174,227, 85,237,249,131,183, 63,228,211,119, 63,160,252,212,171, 44,119, 95,226,
+203, 74, 48,173, 44, 95,188,249, 50,230,250,117, 86,237, 57,243, 79,238,242,213,179,142,191,183, 83,241,241,149, 25, 31, 60,109,
+145, 74,225,106,203,191, 57,107,152,118,138,175,236, 40,174, 85, 91, 68,173, 80,205,154, 45, 37, 57,142,153, 51,145, 98, 78, 72,
+ 91,106,197,111,156,159, 49, 77,176, 56, 89,193,217, 57,162,235, 72,234, 71,156,105,126,212,164, 92, 68,178,186, 17,190, 97,117,
+190,160,180,253, 95,109,  4,254, 67,111,234, 23, 66,186,  8,187,159,189,195,233, 71, 79,152,138,192, 68,107,174,238, 90, 94,153,
+205, 56,170,103, 36,169, 56,242,  1,193, 57, 83, 34,131, 79,108, 27,201,204, 42, 84,138, 36, 37,217, 83, 10, 29,  2,186, 40,  8,
+ 17,246,148, 39,186,129,151,132,200, 35,114,215, 51,137,130,210,123,102,182,196,  4, 79,169, 20, 69, 89, 99, 38,134, 48, 68,154,
+245,130,217,100,135,232, 61,125,223,208,108,214,180, 93,203, 98,211,242,198,224,121,176,110,120,228, 60,167, 90,243,205,174, 99,
+224,255,103,237, 77, 98, 36, 77,243,243,190,223,187,126, 91, 44,153,145, 75, 85, 86, 85,215,210, 93,221, 51, 61,156,157, 67, 14,
+ 57, 36, 37, 82,150,185,192, 48, 33, 27,180,  1, 95,228,131, 47,  6,124, 48,  4, 24,240, 73,128,225,139,  1,195,128,125,240,193,
+  7,249, 98,  2,186,200,  2, 40,203, 20, 32,153,139,  8, 82,148, 72,145, 34,197,153, 86,207,116,207,244, 82,221, 85,213,149,149,
+107,100,196,183,189,155, 15,239,151, 85, 77,114,108,211, 26,246,169,208,221,200,202,140,140,248,254,219,243,252,158,200,199, 62,
+ 48,196,145,170,148, 19,188,230, 83,181, 23, 72, 83,190,247,167,145, 17,  9, 16,222, 79,209,203, 58, 11,124, 39,253,128,144,110,
+  0,  0, 32,  0, 73, 68, 65, 84,198, 12,169,203, 53, 35, 76, 27, 99, 83, 78, 19, 85,200, 53, 67, 76,153, 24,184,108,243, 27,  2,
+148,146, 48,122,190, 73,207,144,  4, 95, 89,104,230, 82, 51, 18,104,148,161, 11,129, 30, 48, 74,115, 21, 34,131, 86, 28,  6,  8,
+ 41,178, 22,138,129,172,157, 17, 74, 17, 98,204,104,221,232,166,237,114,145, 79,198,170,129,137,204,183,150,138,215,141, 97, 68,
+177, 86,154,195,  8, 87, 90,114,144,  4, 79,148,224,142,153,115, 25, 70,222, 46,231,220,102,195, 99, 96, 29, 34, 42,118,220,212,
+ 37,224,121,214,109,184,103, 11,210,152,104, 19,132, 16, 72, 65, 48, 34,145, 24,158,143, 25, 16,148,195,185, 66,174, 35, 74,102,
+235, 85, 93,101,149,187, 45, 50,187,228,250,197, 45,203, 23, 37,235,  7, 11,116,169,203, 23,201, 49,111,254,212, 15, 99,181,226,
+226,248, 98,162,209, 77, 44,243,248,169,172,206, 76,230,200, 19,108, 59,100,161,211,124,  6, 77,141, 44,116, 86, 92,247, 35, 92,
+173,243,215,190, 78,114, 19, 47,211,192,230, 70, 49,196, 12,239,111,167, 80,148,150, 72,231, 35,  1, 88, 15,158, 83,239,115,122,
+155,204,211,101, 10, 57, 95, 55,143,149, 83, 41,157,160, 30, 82,234,140,  1,148,153, 73,110,148, 96, 27, 34,123, 74, 50,151,154,
+109,244,236, 72,137,146,240,201,198,211,163,208, 18,206,131, 32, 34,169,180, 98,136,226,101,247, 45, 39, 50, 73,152,168,120, 46,
+163, 20,215,253,200,253,166,102,183, 40,232, 17, 84, 66,162,148,164,139,137,218, 24, 98,140, 12,193, 83,105,203,214,141,212,133,
+162,241,142,135,210, 32,146,224, 10,201,171, 74,177,171, 37, 94,  8, 62, 95, 20,124, 36,  5, 97, 24,115, 55,231,166,224, 23, 89,
+230,155, 57, 62,223,133,220,148,171,172,124,166, 84,185,248,194,250,246,214,219,223,230,151,126,233,231,216,180, 46,131, 85,124,
+ 98,216, 14, 92,182,  3,149, 45,121,248,218, 13,118,155,130,222,  7,  8, 57,101,205, 76, 64, 35, 73,162, 31, 60, 91, 23,104, 93,
+194, 74,137, 53,249, 53, 12, 36, 98, 72,140, 33, 48,186, 56, 61, 88, 50, 39,158, 20,233,221, 52,149,247,158,147,118,228,162,115,
+180, 62,131,102, 46,199,108, 99, 25,198,158,232,  3,115,101, 89, 52,101, 22,211,125,243, 99, 94,187, 10,236,123,193,221, 91,  5,
+143,174,223, 27,149,124,153,206, 86,146,207, 58, 33,193,131, 18,154,252,250,213,141,226, 70, 83, 48, 43, 11, 14,235, 57,165, 54,
+ 40,107,176,214, 18,133,192,143,142, 97,219,211,110, 91,132, 53,212,149, 69, 10,232,  6,199,229,118, 96, 24, 29,163,243, 68,159,
+208, 66, 82,207, 53,133,209, 84,139,146,215, 15,231, 28, 29, 52, 44, 22, 21, 85,109,176, 69,206, 92, 55,141,102,119,111,134, 20,
+145, 79,158,108, 88, 46, 74,234,218, 80, 87,  6, 99, 21,139, 66,113,179, 80,236, 91,195,172,210,232,198,176,179, 44,217,158,245,
+180,219,158,110,219,161, 43,205,108,183,192, 26,137,114,129,184,245, 96, 37,221,186,227,234,209, 25,103,127,248, 61,254,232,111,
+255, 35,174,126,243,219,168,143, 71,222,252,143,191,204,235, 95,125,192, 31,254,218,111,240,214, 63,120,155,215,191,112,151, 54,
+ 70, 46, 98,160,182,130,170,176, 88,173,208, 11,195,229,  7, 29, 95,118,138, 97,188,162,171, 74,116,109,249,162, 27, 24,147, 32,
+218,  2,105, 45, 97,127,151, 79,198,145, 95,253, 59,255, 59,199,127,237,231, 40, 94,249, 12,183,239, 29,177, 58,184,193,108,181,
+135,106, 26,154,101,197,172,177,212, 86,103,122,160,247,232,209, 81, 14,158, 57, 30,237, 28,115,109, 56, 48,  5, 59,163,103,214,
+181,236,246, 35,111,218,130,207, 55,115,142, 46, 79,249,209,122,198, 23,234, 25,111, 44, 86,188,214, 44, 89, 21, 13, 69,217,112,
+ 65,100,102,  5,172,118,216,111,102,220, 61,216,229,196, 40,130,206,205,126,144,154, 31,155,207,168,  4,120,239,113, 49,208, 59,
+199,199,235,109, 14, 91, 57,187,130,203, 22,113,118, 65, 26, 60,195,101,159,183, 59, 50,175,156,196,  4,208,249,127, 12,171,178,
+ 19, 58,187, 48, 25, 82,163, 77,126,182,125, 90, 36,252,255,245,143,148, 47, 79,145,159, 38,226,148, 22, 10, 75,119,182,201,124,
+245, 36, 56,216,169,120, 56,111,184,211,204,153, 43,141, 85,134, 72, 98,207,150, 92,  5,207,188,208, 52, 82, 82, 40,195,162,108,
+168, 35,236, 38, 65,153, 28,209, 71,124, 20, 84,202,176, 40,106,106, 99,153,233,130,133, 20,212, 50, 79,150,141,176,148,202, 80,
+151,115, 36, 54,171,250, 83,162,158,175,168,202, 57,133, 45, 41,164,160,180,150, 89, 89,178,154,213,220, 60,216,227,230,193, 46,
+183,247,151, 28,220, 62,228,232,112,193,155,183,110,114,127, 94,242,198,254, 42,111,193,148,102, 43, 18,201, 65,210, 50, 39,103,
+126,159,130,254,231,252,252,113, 90,183,199,148,  7,174,235,201, 61,168,140,201, 86,102,154,162,205,203,215,109,130,200,160, 12,
+226,186, 41, 51,121, 53, 30,147,160, 52,138, 66, 41,198, 24,137, 19,235,100,155, 34, 66,107,198, 16, 49, 69,197,133,243, 28,218,
+  2,132,164, 81,138,185,178,108,100,230,151,100,198,135,153,232,158,229, 11,160, 87,146,138,207, 21, 13, 91,169,179,218, 62,  9,
+180, 86,236, 34,121, 79,192,171,218,210, 11, 65, 43, 20, 23,227,128,156,182,202,  3,144,148,101, 37, 37,167,126,228, 94, 81,225,
+124,160, 52,  5, 78,106,182, 33,226,141, 70, 26, 67,151, 96,144, 18, 79, 34, 12,110,154,250, 38, 79,122, 97,242,107,164,174,183,
+216,230,229, 16,169, 36, 86, 10,130,209, 63, 96, 81,151, 19,143, 56,193,201,199,207,184,248,222,211,  9,101, 39,255,244, 77, 74,
+234,151,197, 93,201,172, 50,245,125, 22,169, 44, 22,160,  4,105,116,176,238, 50, 37, 39,201,  9,123, 23,114,135, 44, 21,140,158,
+202, 74,132,130,185,214,180,206,103,228,235,208, 35, 83,190,131,131,228,233,118,224,108, 66,143, 18, 32,133,144,115,192,211,244,
+166, 49,246,133,170, 92, 10, 73,175,114, 13,168,117, 66, 41, 77,129,100, 87,103,  2,207,214,  7,110,106,195,165,119, 92,186,200,
+ 43,165,224, 59,237,200, 16, 37,141,200, 69,189, 83,137,116,253,206, 82,217,  7,253,162,129,241,147,234,220,121, 80,130, 82,102,
+ 20,226, 43,205, 12,161, 20, 34,  6, 42,109,112, 49, 32, 17,184, 24,241,126,164, 52,154, 98, 28, 89, 37,193, 54, 38,110, 21,154,
+ 93, 45,105, 99, 98, 68,114, 71, 75, 78, 82, 96, 12,129,171,160,178, 40,143,240, 50, 16,199, 95,175,228,253,203, 53,141, 79,121,
+ 69, 86,218, 23,144,130, 95,248,247,127,129,187,175, 30,177, 94,119,180,219, 22, 55,142,140, 19,225,109,103,177, 64, 72,197,106,
+ 86, 49,159, 23, 64,166,227, 73, 33, 24, 66,162, 31, 61, 67,240, 88, 18,221,144,  3, 92,140,150, 36,  9, 33, 10, 66,140,196,152,
+178, 47, 61, 68, 34,249,207, 17,129,144, 80,164,108,183,233,187,145,181, 11,108, 83,196, 13,142, 34,230,200,213, 49,100,238,128,
+ 78,153,141,220,  1,191,246,214, 35, 68, 23, 41, 37,136, 33,113, 62, 70,190,114,183,225, 39,238,204,248,185,210,240, 83,175,214,
+188,118, 88,210, 61,172,216,155, 75, 78,199,  8,165, 64, 42,197,172, 52,212, 70, 50,183,150,253,197, 46, 50, 66, 81, 87,216,178,
+ 64, 11, 73,236,115,116,106,136,129,166,170, 88,148,  6, 23,  2, 39,235,142,227,179, 13,237,101, 71,215, 13,120,159, 83,241, 12,
+ 18,165, 65, 25,133,109, 10,230,149,193,216,220, 56,  6, 35, 73,149, 70,107, 56,220,105,176,133,102,177, 83, 83,149,134, 40, 21,
+ 74,201, 28,202,151, 18,133,139,148, 61, 36, 33, 24,172, 64, 43,201,106,127,198,114, 89,226,189, 39,  8,193,191,250,149,223,229,
+189,111, 62,226,198, 98,135,245, 39,151,124,247, 15,255,132,239,254,238,159,240,123,255,203, 31,243,248,183, 62,200,233,119, 40,
+ 36,  1, 22,145, 31,254,233, 31,226,222,143,127,158, 94, 25,126,235,215,255, 25,  7,183,143,184,212,138,221, 90, 83,219,108, 13,
+221,169, 44, 39,251, 13,247, 14,231,204,223, 63, 99, 45, 34,135,165,102, 39, 68, 46,158, 93,177, 45, 11,234, 89, 65,219,123,214,
+169,192,124,229,171,148, 70,177,218,171,152,151,  6,163, 20,218,228,207,122,109,196,139, 39,182,117,158,114, 24,144,219,145,153,
+246, 28, 10,201, 13, 93,240,197,162,226,168, 42,121, 80, 46,184,191,115,131,  7,119, 30,242,224,246,125,142,118,110,113,115,182,
+207,222,114,159,157,131, 61,234,162,166,218,205, 81,153, 85, 80,244, 30,134,228,152, 23,  5, 55,155, 37,141, 49,236, 23,146,247,
+  7, 15, 72, 66,138, 52,140, 28, 25,195,156,196,243, 97,195, 63, 60, 59, 39, 73,248,194,162,164, 22,158,139,147,233,110,238, 70,
+ 16,  2, 33,114, 40, 19, 58,175, 43,179,216, 52,252,121, 32,135, 41,243,218,211, 76,159,111, 61,177, 33,162,255,139, 23,245, 79,
+107,139, 94,168,233,203,188, 54, 45,154, 12,194, 41,243,234,118,183, 48,220,168, 13, 71,166,100, 89, 20,204, 76,137,  4,106,165,
+  8,164,156, 82,153, 50,169,177,138, 17,225,  6,172,243, 84,222, 81, 41,203, 24, 35, 85, 81, 33,133,164, 48, 10, 37, 36, 18, 65,
+ 74,130, 74,107,164,  0,107, 42,170,229, 14, 66, 90,116,105,145,218, 98,154,  6,101, 76,230,195,199,136, 20, 57,153, 82, 41, 77,
+ 89, 55,104,101, 41,139,146,217,124,151,133,169,185,189, 60, 96,175,106,216,173, 27,238,204,230,216,194,240,112,103, 65,242,129,
+ 79,  4,164,249, 33,209,119,153,143, 30, 35,233,251, 20,116,241,233,194,206,167,132,188,215,156, 20,117,189,158,143, 47, 99, 70,
+175, 29, 60, 90,252,169,190, 64, 76, 95,188,117, 17,167, 37, 46, 38, 26,153,208, 90, 35,164,230,156,140,204,141, 49, 23, 79, 23,
+ 35,117, 89,210, 37,197, 40, 36, 27, 20,133,212,204,164, 96, 43,212,196,  9, 17,211, 10,126, 66,112,203,130, 59,182,224,105,130,
+ 91, 90, 83,107,197, 59, 18,238,170,130,103,  4,142,164,224,189, 16, 88, 41, 77,157, 18,167,198,114, 11,120,230, 51,151, 69, 24,
+201,101,146,252, 84, 85,225,130,231,245, 89,195,190,150, 84, 86,243,165,217,140,189,186,225, 94, 97,121, 88,215,156,166,200, 37,
+146,116,157,228, 70,200, 53, 48, 94,231,128,144,201,173,215,129, 95,218, 66,146, 36,242,249,246,  7, 43,234, 33,228, 78, 75, 76,
+119,246, 52, 37,241,148, 38,119,184, 97,202, 85, 15, 33, 23,255,235,187,210, 56, 78,111,244,204,114,167, 29,178,186,187, 31,243,
+135, 69, 77, 10, 63,171, 94, 78,235,165, 69, 68, 88,104, 77, 39, 97, 97, 45,235,209, 49, 51,154,110, 74, 20,218,  6,143,210,138,
+139,126,186,133,167,188, 14, 15, 62, 76,112, 28,253, 18,126, 35, 68, 22,124, 69,  8, 99,164,148,217,163,222,135, 64, 35,  5,109,
+140, 40,160, 19, 76,111,116,193, 71,193,115,168, 36, 39, 67, 96,144,  2, 23,179, 55, 49, 75,193, 95,  6,138, 76,161,228, 83,145,
+141, 47,188,168,103,189,231, 51,203, 25,125,138, 84, 74,224,147,160, 16, 80, 75,141,115,142, 82,105,180,204,162,182,165, 82, 24,
+ 50,145, 46, 41,145,255, 10, 37,153,135,196, 25,130, 61,173,168,148,230, 56, 74,156,152,254,174,126,200,239,114,165,114,160,139,
+148, 89,128,120,189,194,113,126,210, 61,100,229,100, 88,204,248,202, 23, 31, 50,244,158,174,115,  4,231,240, 19,250, 85,164,196,
+195,215,142,152,213,  5, 59,179, 34,115,117,  2, 72, 45,  9, 33,178, 25, 29,151, 87,158,110, 12,164,152,111, 65,102,250, 62, 37,
+146, 20, 18,129,196,232, 34, 99,200,104, 74,145, 34, 86, 64,149, 50, 38, 22, 31,216,142,158,245, 24, 24, 59,135,115,142,  2,120,
+238, 60,235, 20, 72,222,209,199,192,108, 49,231, 81,187,229,215,255,201,  7, 60,146,129,247,206, 28, 31, 92, 57,134, 51,207,199,
+207, 29, 31, 94,246, 28, 24,184,245,165, 59,252,200,195,215, 41,142, 14,184,163,  3, 63, 84, 43,126, 98, 94,177, 42, 18,181, 16,
+164,  4,203,210,114,179,217,161,158,205, 40, 22, 53, 86,233,204,100,146,249,119, 22,  2, 44,230, 53,135,179, 18, 66,224,252,116,
+195,241,211, 51,182,235, 43,252, 48,226,188, 35, 57,143, 74,137,224, 61,206,193, 48, 38, 98,161,137, 74,210, 43, 65, 42, 13,205,
+178, 64,156,111, 40,254,245, 19,222,189, 88,227, 17, 72,151, 72,218, 80,104,157,  5,133, 36,132,139,200, 36,136,133,202, 41,130,
+217,  9,136,213,138,157,155,115,102,251, 53, 95,254,201,207,241,141, 47,191,198,215,239, 46,217,185,183,199, 87,190,244,  6,255,
+252, 95,109,217, 14, 11,228,113, 64,208, 79, 69, 29, 22,111,214,232,162,228,225,205,  5, 95,255,252, 17, 15,126,244,179, 60,223,
+175,216, 43, 53,149, 75, 84, 74,162,173, 70, 22,146,  7,187, 37,197, 97, 69, 58,168, 89,188,187,229,234,124,160,235, 70,254,232,
+120,160,154, 43,124,136,140,235, 17, 51,  4,118, 18,148,203, 18,229, 19,138, 68, 97, 36,113, 59,146,188, 71, 38,137,116,  1,209,
+142,212,253, 72,108,183,104, 34,183,133,230,205,178,225, 70, 89,112,179,110, 88,205,102,212,203,  5,229,206, 28, 93, 26,172,178,
+ 24,  4,182, 44, 49,179, 10,213,212,232,202,162,171,  2, 85, 20, 88,107, 88,120,205,111, 15,129,207, 53, 13,101,213, 80,107,139,
+ 72,145, 66,120,158, 62,187, 36,125,112,204,  7,255,215,247,216,185,111, 24,199,150,199, 23, 23,188,211,122,126,246, 96,151, 47,
+238, 30,242,234,206,146, 15, 82,160,221,110, 50,222,118,162, 41, 10, 49,185, 69,234, 10,154,102,138, 48,253,148, 86,136, 41,  2,
+238,122, 82, 20,249, 62,154,113,157, 67,254, 44,253, 69,  7,159,235, 33, 71, 22, 57,113,171,106, 96, 94,231,  7,180,214, 44,172,
+ 98,169, 36,123, 11,131,  1, 30, 86, 53,145,108,169, 45,165, 32,166, 56,125,174, 96,244,217,109,161,200,216,106, 43,  4,115,105,
+176, 73, 98,173, 38,133,152, 83, 19,125,100,219,181,108,251, 43, 68,116,  8,  4, 82, 40,164,136, 24, 85, 32, 85, 66,  8,131, 42,
+ 12, 56,151, 49,206, 82,230,144, 24,231, 16, 90,163,109,129, 68, 99,108,133,178, 21,214, 52,216,170, 65,106,141, 45, 42,138,162,
+ 38, 42,195, 65, 61,103, 67, 98, 89, 21,124,243,108, 64,223,219,197,159,158,229,154,108, 20,233, 26, 64, 38,167,  9, 94,235,191,
+ 24,126,220,232, 28,212, 99,228,196, 43,153,238,235, 98,138,245,142,113, 18,253,102, 56, 24, 70,210, 38,184, 97, 45,181, 53, 12,
+ 82,146, 84, 14,185, 84,202, 18,100,110, 70,163, 84,196, 32,152, 87,150,109, 18, 84, 74, 19,164,160, 81,  6, 33,  5,133,146,116,
+241, 90,155, 52, 21,118,165,153, 11,197,171, 69,197, 73,204,191,155,165,178,108, 17,116, 40, 66,146,220,144,138, 36,178, 88,120,
+ 30, 35, 31,  2,165, 41,  9,228, 96, 46,165, 21, 59, 82,114,171, 50,220,211, 37, 91,  4, 51,105,216, 74,197, 74,149, 12, 74, 83,
+ 40,205,205,178,102, 16,130,211, 48,109, 42, 70,247, 82,139,161,204, 20,179, 42, 94,164,222,161, 45, 74, 25,146, 82,  4, 85,254,
+ 37,228,169, 95,175, 76,174,253,155, 77, 61, 21,177,235, 28,239, 79,197,203,169,201,203,221,141, 89, 24, 81,152,233,126, 49, 21,
+160, 41, 44,  5,145,253,206, 47, 86, 11, 50,175,151,157, 53,204,180,230,187,155, 45,243, 66,179, 52,134, 53,153, 94,212,198, 64,
+  7,116, 78,112, 17,  2, 98, 12,153,169,155, 34, 47,118, 52, 98,250, 30,194,212,125, 43,  5, 62, 32, 75,205,166, 31,153,149,138,
+218, 26,146,247, 44, 11,203,214,123,218,224,  9,192, 54, 38,138,152, 56, 13,137,237, 48, 78, 65, 41,215, 30,252, 63,251, 65,158,
+ 86, 38, 76, 63,127,120,201,163,126, 60, 70,110, 53, 22, 71, 98, 71, 74,118, 76,193,102,220, 98,180,129, 48, 16,164,193,  6, 79,
+ 99,114, 51, 82, 41, 73, 36,161,149, 68, 75,197, 73, 74,236, 33,121, 26,  3, 43,109,176,181,228,233,224,167,201,156, 60,141, 79,
+ 62,234, 23, 98, 69,145,166,135,213, 84,153,125,142,171,187,120,118,204, 87,127,236,135,113, 99, 94,135,199,  4, 33, 36, 54, 93,
+143,235,  3,139,221, 37,187,243, 38, 39,  1, 78,248,211,124, 51,207,  2,184,182,243,116,131,207, 73,142, 49,162, 84,142, 61, 84,
+211, 41, 98,188,158,210, 67,164,154,  4, 40,253,132,142, 44, 82, 78,243, 75,131,231,162, 27,113,221, 64,233, 61,142,200,198, 59,
+182,126,200, 27, 38, 91,112,120,231, 38,207,187,150, 63,126,247,241,116,190, 73, 83,124,108,130, 70, 48,158,120,254,205, 89,207,
+ 31,111,174,  8,203, 72, 89, 85,188,243,241, 83,202,229,140,163, 89,195,254,238, 62,  7,209,115, 11,248, 92,221,176, 55, 91, 98,
+171, 26, 91, 26,202,194, 98, 11,149,213,185,  8,162, 15,220,152, 87, 28, 46, 75, 84, 72,156,157,181,156, 95,158,211,119, 67, 78,
+132,242, 25, 23,156, 98, 32,198,252,190, 12, 41,226,198,196,  0,244, 72, 22,115,203,124,102,184, 58,121,206, 91, 31,124,196,163,
+ 16, 56,187,234,185,120,118,198,187,223, 62, 97,126, 50,240,222,224,217, 45, 53, 58,129, 83,137,160, 97,227,  3, 94,100, 11, 91,
+  2,124, 18,140, 82, 49,147,146,135,115,195,106, 89,179,191,204,119,208,159,255,107,175,243, 31,253,228,  3,126,242,139,183, 88,
+251,199, 60,126,255,  2,137,227,175,252,215, 63,199,143,191,114,192, 50,228,237, 87,153,224,187, 23, 29,231,143, 79, 57, 18,154,
+198, 72, 76,109, 16, 38, 71, 69, 26,165,184,122,187, 69,188,239, 49, 79,  7,206, 79, 47,232,195,  5,118, 54, 67, 95,110,177,155,
+150,230,170,231, 48, 36,106,163,120,181,150,124,205, 74, 62,155, 34,175,199,192, 43, 41,242,211,179,146,215,140,224,118, 33,185,
+242,  3,201,195,129,210,220, 87,134, 90,231,237,200,162,154, 97,234, 18, 89, 24, 68, 93, 34,173, 65, 40,137, 72, 18, 33,115,244,
+174,104, 42,196,162,  0,171,145, 90, 33,149, 68, 43,197,225,178,225,212,  5,222,108,106,246,139,138, 91,166,228, 63,251,247,126,
+140,159, 53, 21,127,239,234,156,120, 88,243,157,147,142, 63,252,232,146,119,158,174, 73,223, 59,231, 27,111,222,229, 70, 85,211,
+166,200, 31,  5,199,152, 52,244, 30, 49,246,249,  4,165, 64, 20,  5,114, 81,243,250,174,197, 91,155,197,174, 62,188, 12, 18,145,
+ 50,175,129,175,201,142,110,204,214, 55,247,255, 67, 48,167,116,142, 41,109,106,216,153,229,130, 94,217,188, 58, 45, 21, 43,171,
+ 40,132,228,103, 87, 21,135,  2, 94, 45, 11,130,148,200, 24, 41,164,198,165,152,131, 26, 73,196,224,185,232,182,180, 33,144, 82,
+ 30, 52,124, 10,104, 18, 82,105, 84,136,156, 15,  3,  2,193,218,245,140, 33,112, 25, 70, 92,138, 68,239,208, 74, 99,141, 37,165,
+136,110, 26, 68,200, 14, 22, 97, 44, 20, 10,161, 20,201, 59,132,202,  9,139, 66,  8,164, 84,153, 68,109, 43, 32, 33,172, 70, 74,
+ 69, 82,154,164, 20, 90, 25,182,  8, 74, 83,208,138,200,157, 18,196,122,203,113, 31,241,101, 69,242,144, 76, 65,180, 53, 41,138,
+108,115,150,  6,172, 68, 76, 91,222, 63, 79,233,211, 47,239,200,105, 42,224, 70,189,200,137,167,152, 10,237, 20, 20, 99,203,146,
+160, 21, 86,106,154,210, 18,165, 66, 75, 67,105, 52, 87, 99,162, 49,134, 36,179,184, 13,  4,115,109,137,133, 69, 36,155,183, 33,
+ 74, 81, 73, 75, 75,160, 81,146,203,148,240,198,144,194,116,198,156,148, 79,181, 50, 84, 41,112, 46,  4,149, 54, 52, 34,242, 84,
+ 40,246,101, 22,167,  5, 96, 76,  2, 39, 37, 59, 82,242, 28,  8, 41, 32,148, 69, 16,105, 80,220, 22,154, 55,230, 11, 62,244, 35,
+ 75, 85,176,197,177,178, 11, 62,113, 61,171,114,198, 58, 65, 79, 98, 71, 75,122,105, 88, 71,159, 27,153,110,152, 26,163,105,237,
+ 46,  5, 66, 23, 40,109, 40,180,196,203, 44,162,147, 50,253, 37,  8,229,174,189,155,117, 57, 69,135,166, 79,201,237,139, 23,222,
+194,151,164, 32,145,249,239,238,218,214, 96,115, 81, 15,254,165,216, 44, 77,121,226,253,244,239,146,135, 82,179,144,130,211,126,
+224,235,111,126,142,243, 71,143,248, 36, 37,106, 43, 57,117,217, 50,225,250,200,243,216,177, 91, 20,156,140, 46, 79,174, 74,229,
+ 78, 79,126,106,101, 99,213,203,239,187, 80, 68, 23, 40, 76, 14,162,217,211,129,193, 90,206,219,204, 11, 54, 90,178, 29, 61,117,
+130, 51, 36, 55,172,224,217,116,147,207, 96, 23,253, 41,110,190,250, 62,183,180,235,117,146,134,232,  9,253,192, 31,159,110,248,
+252,193, 18,105, 52, 79,182,107,246,170, 26,215,247,152,162, 98, 24,174, 16,186,196,122, 15,182,164,247, 89,201, 95,105,141,247,
+ 57,208,224,116,116,220, 16,154, 45,  9,147,200, 97, 20, 35, 80, 68, 24, 38,223,250,181, 53,240,251, 61,127, 12,153,206,  4, 88,
+ 43,  1,205,213, 69, 32, 78, 83,202,188, 44,233, 59, 79,112,129, 16, 67,  6,172,132, 72,165, 37,227,224, 81, 50,177, 29, 60,155,
+193,177,222, 58,116, 27,217, 93, 20,212, 70,226, 67,194,170,156, 84, 38,175, 51,129, 72,116, 41,  7,168, 68,160, 21,130,128,160,
+209, 57, 77,105,150, 96, 45,  4, 43,165, 24,130,100, 85, 20,108,250, 54,247,129, 68,202,202,226,214, 87,217,214,135,  7, 27,225,
+142,205, 10,119, 18, 44, 53, 92,193,229,123, 29,191,117,252,  1,247,127,102,203,  7, 62,112,218,119, 28, 23,138, 55, 23, 59, 12,
+ 85,195,221,221,  5,183,186, 17, 37, 20,167, 68, 68,128, 69,109, 49, 70,177,141,145,203,148,137,178,115, 33,144, 33,209,141, 30,
+ 70,135,244,  9, 27, 34, 82, 41,164, 16, 83,202, 85, 66,248, 97,202,156,246,244,222,177,137,  3,108,103, 92,218,132,208, 13,255,
+242, 60, 17, 67,164, 54,  6, 33,225,160, 40,217, 21, 35, 95, 60,118,252,195, 63,254, 61,126, 39, 58,110,127,253,135,152,223,152,
+ 99,154,130,164, 53,203,202,210, 21,  5, 99, 74, 68,173,  9, 62,243,248, 69, 20,164,144, 25, 28,131,212,148, 18,202,251, 13,175,
+222,126,149,255,230,103,255,115,206,223, 57,230,119,199,192,177, 10,108,149, 68,196,136,  1,194, 24, 56,253,149,223,231, 79,254,
+231,223,231,183, 80,252,213,255,224, 62,191,248, 95,252, 13,230,159, 57,152,214,152,130,219, 63,126,  3,126,244, 16, 98,228,205,
+206,227,207,122,190,245,127,188,197,193,189, 67,218,222, 79, 28,  1,137,117, 26, 61, 72, 74, 41, 40,102, 51, 68, 61, 67, 76,228,
+200,250,170, 67, 94,108,185, 85,150, 60, 25, 19,115, 37,169,181,162, 68, 48,223,153,163,119,102,136,114,194, 23,199,  4,163,200,
+ 19, 72, 57,137, 52,108, 49,173, 58, 65, 76, 42,100, 17, 37,210, 40, 30,116,154,187,171,125, 60,  9, 71,194,141,240,247,255,241,
+ 31,240,175,135, 62,  7,144, 72,133, 44, 21,194, 42, 36, 37,241, 48,241,203,223,250, 46,255,195,143,126,134,181, 54,108, 66,132,
+189,  5,194, 42,210, 39, 37,162,189, 36,181, 27,192, 19,235,130,103,193,114, 41,  4,204, 42,  4,146,212, 78, 32,154, 97,132,226,
+122, 16,136,223,159, 16,247,255,182,118,215, 21,203,195, 57, 93,146,220,222,169,137, 72, 78, 17,108, 66, 70, 98, 43,153, 27,183,
+175, 47, 53,  7,149, 97,134,193,  5,120,220,118,148,117, 69, 55,108,153,219, 18, 43,  2,155,161,231,180,109,249,216, 15,156,219,
+134,187,141,100,140, 30,145, 52, 79, 66,207,118, 27, 16, 66,178, 50, 37,207,198, 30, 69, 68,  4,143,  8,  3, 39,192,205,114,134,
+211,185,161,211,245, 44,247,245,171, 26,233,  2, 30,137,138,145,224, 71,164, 85, 48, 90, 82,202, 91,  9,193, 20,196,148, 34,178,
+172, 72, 49, 98,154,138, 24,242, 48, 23,181, 99, 87, 72, 68, 81,177, 34,178,213,138,163,242,140, 47,204, 12,143, 29,156, 13, 35,
+ 66,106, 46,124, 96,140,224,194,  4,240,217, 76,  1, 60,166, 32, 13, 49,115, 78, 94, 12,138, 38, 59,163, 82,132,178,196, 54,  5,
+152,130,170,202,110, 33,172,166,  2,182,218, 80,106,141,139,158,  3,157, 73, 17, 86, 91, 74,107,115, 70,133, 82,172,180, 70,107,
+  3,  8, 10, 41,144, 82, 19,133,162, 34,114, 28, 18, 21,137, 82,229,230, 98, 95, 23, 92, 12, 14, 77, 68,135, 64, 48, 10,229, 50,
+113,242,129,214, 60,119, 35,162, 44,152, 69,176,  9,190, 23, 35,175,105,120, 39, 38,142,164,164,  6,158,197,200,109,224, 17,208,
+ 76,224, 27,162, 71, 34,248, 90, 93,114,219,104,206,188,227, 78, 81,115,236, 28, 11,179,195, 24, 71,110,207, 86, 92, 12, 27,118,
+140, 69,104, 67, 43,224, 78,225,185,223,236,115,188,217, 82,204, 12,111, 61,223, 18,165, 70, 12, 46, 71,217, 18, 40,129, 82, 40,
+ 14,136,160, 18,131,212,127,  9,147,250,167,163, 12,109,153, 63,  0,122,234,180,124,152,248,180, 83, 60,166,184, 78, 12,155, 80,
+176,106,154, 28,211,100,123, 99,154, 52,167,238, 48,139,240,166,197,147, 15,168,210, 50, 83,138,211,205, 26,173, 52, 94, 73,188,
+ 80, 92, 37, 40,147,162,149,176,246,145,171, 97,164, 16, 34,231, 18, 95,159,203,164,192, 22,138, 48, 38, 48, 10, 37,196, 11,135,
+  4, 70, 17,134,145,206, 37,118,172,164, 78, 57,181,205,167, 72,244,121,157,213, 35,152,201,200, 73,159, 88,143, 97,106, 24,228,
+203,117,126,186, 78, 81,147, 47, 15, 72, 82, 76,234, 73, 61, 53,  0,185, 38,141,201, 51, 55,146, 89,105,114, 67, 33,166,147,247,
+208, 83, 26, 75,240,142, 78,  8,230, 72,198, 24,209, 54,195,254, 21,146, 32, 52, 90, 66, 23, 35,143, 99, 64, 10,205, 19, 38, 11,
+ 70, 63,117,117,147,157,231,229, 42,241,207,110, 87, 66,214, 22,148,134, 31,255, 43, 63, 65,140,208, 94,181,116,109, 75,187,237,
+ 40,138,130,161, 31, 80,210,178,183,191,195,173,221,134,224, 35,150,140, 56,236, 92,164, 29,  3, 97,140, 92,181,142,209,  7, 54,
+206, 83,151, 58,135,183,136, 44,164,243, 41,209,133,124, 23, 43,132, 96, 12,137, 33,229, 48, 28,231, 35, 54, 69,108,231, 24,122,
+ 71, 57, 56, 86, 81, 32, 37, 84, 64,116,129, 24, 50,242,240,193,141, 67,222,251,224, 17,239,157, 92,241,122, 23,121,254, 73,128,
+117,128,165,130,199, 14,250,200, 44,129, 38,113,184, 48,216, 16,168, 14, 42,214,231,125,158,104, 54,103,180,209,241,165, 47,125,
+137, 27,111,188,194,182, 48, 92,110, 91,170,  4,203,101,195,124, 86, 80, 89,195,210, 40,118,203,130,189,121,137,150,146,161,115,
+116,151, 45,169,235, 41, 68,182,134, 25,157,225, 14,122, 90, 20,232,148,208, 50, 82,132,132, 30, 28,202, 57, 70,239,105,235,154,
+205,108, 70, 82, 21,171, 24,216,155, 27, 78,188, 64, 12, 61,103,238,138,127,122,118,142, 25,215,188,251,157, 15,233,223,126, 76,
+251, 27,223,228,157,247, 79,248,253,223,121,143,187, 23,145,117,109,184, 24, 29, 73, 75,180,149,248, 49,135,197, 92, 33,216,  2,
+ 49,102,151,136,239, 28, 91,153,120, 63, 37,250, 82, 19, 77,129,145, 26,143, 96,140,129,113, 12,188,242,230, 29,254,229,123,239,
+ 99, 30,141, 60,250,246, 57,255,244,127,251, 67,126,225,111,254,  8, 98,178,194,166, 33,226,175,  6, 82, 76, 25,  7, 92, 26,110,
+125,227, 30,205,221, 29,246, 63,187, 98,247,181, 93,230, 71, 11,138, 69,133, 80, 18, 93,106,180, 80, 40,163, 81,133, 38, 78, 13,
+243,198,121,198,152,185,  2,135, 83, 20,239,222,124, 78,185, 63, 71, 86, 57,194, 22,159, 72, 99, 36,174, 59,146,115,164,174, 39,
+ 57,135,176, 42,127,212, 11, 77,242,137, 56,  6, 92, 63, 18,188,199, 71,159,243,173, 75,131,170, 11,236,254,146,195,197, 46, 55,
+ 69,197,126,165,113, 54,242,180, 31,137,195, 72,252,206, 25,137,192,189,253,146,191,253,181, 47,243, 57,101,249,213,147, 99,174,
+124,204, 83, 94, 85,228, 38,216, 84,224,122, 68,187,165,247,242,101, 64,134, 49,  8, 49,129, 61, 72, 19,123,252, 58,222,242, 83,
+ 39, 68,173,255,252,132,121,157,139, 81, 90,104,230,168,229,140,207,237,204,120,184,187, 96,111,209, 80, 88,205, 65, 83,240, 60,
+ 66,144,137, 74, 27,172, 12,252,120, 83, 49,183, 42, 67, 84,124,158,194,207,183,  3, 49, 68,  6, 55, 82,144,159, 63,111, 11,120,
+171,218,227,222,124,201,221,253,219, 24,109,179, 64,109, 24, 56,139, 35, 67,244,180,192,198, 15, 92,185,142, 77,116,108, 82,  2,
+107, 89, 43, 65,221, 52,216,162, 64,218,124, 42, 10, 49, 76,196,115,  8,163, 35, 77, 27,197,224,186,252,222, 16,146, 20, 28, 66,
+ 24,146,202,226, 87, 89,214, 89,189,164, 44,113,130,225, 68,107,  9, 68,162, 46,217,  4, 71,176, 22, 93, 85, 72, 43,121, 80, 87,
+152,218,240, 96, 94,113,119, 86,112,123, 81, 49,  8,201,225, 94,205,185,158,234,133,212,249,249,101,235,151, 89,225,218,192,124,
+206,237,221,138,195,186,164,153, 21,172, 26,195,194, 90,118, 11,197,110,101,217,151, 26, 37, 51, 91, 98,161, 11,230, 69, 73, 97,
+ 20, 51, 91, 17, 68,100, 49, 21, 72,133,100,174,114,240,151,151,154, 65,  8, 46, 93,100,174,115,  2,227,220,102,232, 76,235, 70,
+106,149,127,239, 27,239,169,100,118,242, 52, 36, 28,146,221, 20, 25, 66,126,110,245, 66,240,154,214,188, 59,140,220,183,  5,199,
+ 33,178,163, 36,149, 82,156, 35,185, 15,124,148,  2,114, 10,  2,251,233,106, 70, 29, 97, 97, 21,115, 99,240, 66, 80,153, 76,180,
+171, 76, 65, 31, 60, 11, 83,209,138, 68,166,241,123,140,214,184, 40,153,171, 68,151, 12, 43,  3,167, 67,200,246,241, 24,121,189,
+106,216, 81,146, 90, 10,110, 74,201,162, 40,177, 66,253,128, 69, 93, 79,235,165,235, 44,118, 57, 81,129,196,148,223,157,166, 34,
+173, 39,240,252, 11, 68,172,123,121,167, 26,211, 68, 26,242, 83,138, 88,238,170,178,170,217,230, 73, 83,128, 42,203, 44,136, 52,
+  5, 59, 90, 65, 89,224,164,101,140,137, 70, 91,158,120, 71, 23, 34,193, 22,132,190,207,228,159, 77,159,191, 23, 99,144,133,196,
+162, 40,172,197, 39, 71,140,137,125, 83,208,199,136, 85,138,224, 60,193,  7,118,180, 96, 16,208,133,128,137,130,109,242,148,211,
+ 26,204, 36, 56, 29, 60,173,144,249,254,239,252, 20, 65,153,160,170,242,207, 48, 78,105, 76, 97,122, 16, 88, 59,145,244,166,230,
+ 71,100,111,230,170,177, 36,159,216, 45, 10, 90, 55, 96,101, 86,226,187,233,181, 49, 86, 51,142,142,178, 52,136,  0, 73, 78,164,
+163,152, 94,172, 78,157,146,252,193, 38,135,  3,188, 72,107,187, 22, 38, 94, 43, 39,191,223,237,170, 46,167,219,191,224, 75, 95,
+255, 42,101, 83,208,111,123,218,245, 38, 99,  5,180, 65, 70,193,197,249,134,162,156, 51, 95,212,204, 27,141, 84,130,118, 72,244,
+ 62,208,247,  1, 23,161,247,142,182,119, 88,171,184,123,208, 32,200,247,248,156,214, 22,179,149, 45, 68, 90, 31,232, 67, 64,  8,
+145,197,250, 46,160,131,167,234, 51,107,125, 24, 28,125,  8, 60,139,142, 62, 70, 26, 41, 25, 82, 98, 37, 21,175,220, 62,228,195,
+199, 79,184,250,246, 57,247,172,228,246,107, 37,162, 86,188,118, 88,112,187, 11,252, 59,243,130,207,110,115, 51,240,229,160,216,
+ 93, 74, 52,176,187, 44, 16,  8,246,  2, 92, 68,199, 16,224,141, 55,239,243,218,103,110,113,220, 58,174,250,  1, 91, 21, 20,133,
+166, 41, 52,133, 82,236, 46, 43,234,202, 98,164,160,219, 14,108,215, 45,105, 24, 49, 66, 80, 26,141,145, 18,155, 18, 50,100,171,
+158,140,  9, 69,206,153, 55, 17, 52, 17,213, 57,180,119,136, 33, 97, 48,244,197,140,131,253, 93, 98, 57, 39,154,138, 43, 13,101,
+123,201,237, 30,158,186,142,195,214,113,233,  6, 94,237, 19,207, 66,135,252,246,187, 92,125,247,  9,255,228, 55,254, 57, 79, 30,
+117, 60,122,188,229,195, 62,208, 91,141,208,146, 46,130, 12,158,174,117,124,180, 30,248,206,105,199, 58, 37,164,150,124,102,101,
+241, 66,147,140,230,208,  9,182, 50, 49, 68,197,236, 51,175,242,229,159,126,157,195,  7, 37,238,189, 51,254,207,255,233, 55,249,
+233,191,241, 21,164, 80,184,179,129,177,115,  4, 41, 80, 66,162, 76, 78,181,147, 11,139, 40, 52,178,204,235,240, 24,179,203,196,
+141,121,122, 39,228,  7,125, 18,137, 97, 12, 92, 56,135, 46, 13, 61,176, 50, 57,  4,104, 86, 91,244,117,218,152, 75,132,103, 91,
+134,247,143,241, 31,126,194,248,201, 49,227,232, 16, 49, 32,166,160,161,216,142,248,193,227,186,158,182,235,184,188,220,224,198,
+  1, 93, 40,164,209,  8,173,161,208,116,222,211, 38,193, 85, 10,196,148, 40, 45,168,186,228,188,214, 68, 45, 56,247,240,209,211,
+ 71,252,183,111,125,151,231,103, 93, 46, 30,243, 69, 86, 52, 47, 26,196,238, 46,236,237,193,124,137,120,126,  9,174,205,197, 68,
+ 76,226,223,186,156,232,141,226,229, 42,254,211, 27,184, 79,255,249,186,200,235, 38,175,150, 15, 14, 88,204,107,126,226,104,151,
+251,243, 57, 55,155,134, 90, 27,118,148,228,196,  7, 90,  1,253, 20,203,176, 39, 36,187,  5,220, 84,185,  9, 47,133,224,184, 31,
+248, 23,207,214, 84, 74,240, 30,145,161,168,248, 94,189,226,247,203, 21,174, 90,240, 87,239,222,227,160,168, 88, 53,187,196,144,
+232, 72, 28,183,  3,155,152,136, 41,224, 98, 96, 27,  3,231,126,196,  9,193, 58, 38,188, 18,216,186,196, 24,203, 40, 35, 42,  9,
+134, 20,137, 50, 15, 55,227, 56, 18,194, 72, 26,122, 82,136,200, 20, 73,110, 64, 40,155, 61,255, 73, 65, 85,101,207,182,148, 36,
+163,242, 57, 74, 11,164, 81,180, 33,209,  7,199, 32, 37, 99, 76,180,201,179, 99, 42,148, 49,220,169, 42,180,206,246,180, 85, 61,
+ 99, 85, 88,  6, 45,169,235,130, 81,104,196,188, 33,212, 85,174, 37,139,  6, 22, 85, 22, 15,214,  5,119, 87, 51,144,154,210, 42,
+ 42, 99,137, 72,246, 75, 75,161, 13, 23, 94,176, 83, 91,108,212, 84, 69,241,162,168,121, 18,141,170,112, 49,167, 74, 90,153,165,
+ 95, 73,106,208,  2,147,160, 46, 10,182,227,136,143,  9,143, 32,  6,135, 16,138, 75, 63,144, 98, 96,144,137,198,185,156,149, 78,
+100, 39,  5,108,206,240,100, 38, 18, 46, 36, 54, 66,112,168, 13,143,253,192,131,178,225,210, 59, 82,138, 44,129,143,  8,184,224,
+ 16, 62,113, 71, 27, 14,165,226,176,214,168,144,144,198,190,  8,146,140,147, 91,170, 52,150,203, 16, 88, 25,195,218,141, 84,182,
+100,240, 30, 41, 18,103,163, 67, 39,176, 82,115, 44,  2,171,178,226,117,163,  9,202, 98,148,226, 64,  9,148,212, 52,133,100, 33,
+220, 15,170,126,159,146,217,132,205,147,185,158,176,175,218,188, 12, 88, 86, 58,123, 62,153,140,253,253,116,131,239, 93,158,212,
+245, 52,237, 42, 61, 77,187,215,201,110,217,248,159,  1, 16,144,148, 66,148,138,186,176,180,218,160,149,194, 40,205,229,116,243,
+174,180,229,185,243,132,190,195,206, 23,140,235,171, 73,192,150,183,  0, 73, 43, 42, 33, 72, 41,210, 40,137, 16, 18, 99, 36,189,
+ 15,153,123,110, 52, 12, 35,235, 40,184, 91,105, 46, 93,160, 86,138,153, 84,156,199,196, 92, 75,206, 98,224,196,101,228, 96, 34,
+195, 83,242, 14,138, 44,240,211,122, 42,188,241, 83,170,127,159,109, 35, 34,253, 41,110,244,105, 23,121, 56,171, 24, 68, 94,255,
+244,221,128, 22,  9,161, 50,227,184,237,123, 10, 99, 81,225,165,176, 47,251,230, 51,135,121,144,138,167,222,113, 25, 36, 65,155,
+220, 16,197,137, 12,120,205,  7, 78,225,251,223,255,164,156,110, 86,112,247,238,125,118,247,119, 25,122, 71,244, 14, 31, 34,221,
+ 48, 98,180, 33,196, 72,221,204,152, 47, 22, 28,173, 26,148,140,249, 53,117,105,186,149,  7,146,136,  8, 37,  9, 99,192, 88,197,
+178, 54,140, 33,101,180,233,148, 19, 45,128,113,186,  1, 54,147,222,192,133,144, 93, 61, 41, 18,134,192,170, 15,120, 23,152,161,
+216, 79,145, 48,  6,130,132, 74, 43, 86,203, 57,223,124,250,148,183, 30, 95,240,137,243,188,211,122, 78, 54,158,167,223,107,121,
+114,191,224,116,166,249, 23, 91, 79,120,189,224, 96, 71, 50,215,154,102,167,228,167,230, 11, 22, 46, 81,140,129, 98, 49,167,243,
+ 45, 85,185,195, 27, 15,111, 48, 70,193,232, 19,125,202,177,177,213,100,127,156,205,107,234,202,162,148,196,199, 68,215,122, 92,
+223,147, 98,156,208,182,145, 20, 34, 41,166,172,128, 23,153,160,167,132,202,182, 62,173, 40,181, 98,111,165,121, 77, 69, 22, 51,
+203,237,189,134,207,220,222, 97, 86, 89, 62,142,134,214,214,236,220,184,133,187,119, 31,127,239, 53, 14,191,242, 25,110,126,254,
+ 13,206, 84,197, 59,103,199, 60, 59, 89,243,215,247,102,252,163,139, 13,225,233, 39, 12, 79, 62, 66,187,200, 86, 20,156, 78, 97,
+ 29,214, 69, 62,217,122,222,189, 26,120, 54, 58, 58, 37,249,252, 94,193,225, 60, 55, 37,167, 81,113, 94, 72,238,161, 56, 51,138,
+155,135, 51,110,223, 95,113,227,243,247, 89,252,252, 23,216,251,236,138, 95,254,239,255,  1,221,255,248, 29, 94,251,165, 55, 17,
+133, 66,207, 44, 74,171, 44, 65,185,214,184,196, 12, 49, 74,189,167, 61,105,249,224,116,195,105, 55, 16, 58,199,213,186, 99,187,
+238,216, 58, 79, 31, 35,163,204,186,  2,124,224, 42, 37,230, 70, 97,138,108,191,137,125, 96,120,116,193,240,225,115,210, 59,223,
+130,211,143,  8,237, 37,177,191, 66, 10,133,  8, 16,186, 14,223, 13,244,219,142,171, 77,203,135,151,151,124,216,109,144,193, 33,
+133,204,205, 65, 97,137, 34, 49,106,197, 38,  6,206, 60,244,147,194,186, 20,145,  7,171, 25, 71,243,130,  7, 51, 67,159, 50,151,
+240,164, 11,121,157,254,252, 12,179,103,219,153,  0,  0, 32,  0, 73, 68, 65, 84, 49, 43, 97,103,143,159, 63, 92,241,239,222,188,
+193,157,198,242,237, 56, 64, 81,231,207, 75, 31,167,103,153,206,195,198,162,225,206,209, 62,159, 59,152,243,113,159,207, 49, 88,
+253, 50, 90, 90,216, 60,180, 44,151,176, 83,103,235,221,238,140,175,222,220, 97,223, 88,142,170,134,156,105, 24,168,116,129, 13,
+129,142,196,137,207, 91,139, 43,159, 83,233,110,218,140,191, 62, 27,  6,254,238,227, 45, 79,202, 25, 79,246, 15, 57,221,185,201,
+191,169,119,121, 82,204, 17,186,228,111,222,187,205,151,202,154, 31,154,205, 57,136,  9,233, 19,  9,129,151, 35,155, 33,208, 19,
+  8, 34, 39, 87,110, 93,224, 60, 70,174,132,160, 37,159,152,102,133,161, 52,134,181,243,200, 24,241,131,231,249,230,138, 20,  2,
+109,219, 18,131,199,140, 35,113, 26, 46,210,181,232, 87,233,108,113, 20, 57,200,200,123,159,173,107,218, 48, 58,207,152, 18, 27,
+ 53, 97, 70, 68, 94,217,123, 41,217,181,118, 18,170,105,118,170, 25, 93,138, 20,166, 96,223, 22,244, 18,150,179, 37, 74,165,220,
+ 88, 47,102,217,150,166, 52,187,243,134, 59, 85,201,210, 40,202,166,162,214,  6,109, 21,179,162,100, 20,  9, 37, 53,135, 77,157,
+239,225,182,194, 40, 48,214, 96,117, 73,161, 12, 99,154, 68,189, 34,163,176,209, 37, 86, 73,186, 16,209,218,112, 53,120, 74, 35,
+ 16, 73,146, 66,142,220,214, 36,174, 82,164, 77,145,185,243, 24,161,153,145, 61,255,187, 41, 32,146, 71,  7, 79, 18, 96,137,244,
+ 67,203, 24, 34, 71,218,242,214,176,229, 72, 25,106, 41,120,199,121, 98,138,144,  2, 70, 75,110,203,204, 71,185, 95, 22,116, 74,
+ 82,  2, 35,137,153,210,180, 74,178,212, 37,155,228, 89,105, 77, 39,  4, 43,107, 57, 31, 29, 51, 93,240,164,237, 49, 66,210,225,
+  9, 74,241,229, 89,197,158, 12, 68, 81, 80,106,201, 61, 35,153, 27,131,146,145, 50,  9, 46,199,248,  3, 22,117, 37, 95,168, 15,
+ 51,133,199,194,188,252, 83,118,131, 23, 89,175,144,167, 71, 33,242,250, 87,132,188,110,105,202,252,223,221,148, 34, 22,166,105,
+189, 42, 51,196,134, 41, 98, 78, 68, 82,105,136, 90, 35,140,101, 84,154,115,231,152, 23, 21,206, 88,158, 13, 91,234,178,202,201,
+ 97,125,151, 39,231,179,171, 92,120,165,162, 40, 53, 67,136, 20, 34,145,132,192, 74,232, 92, 96, 33, 37,165,146,116,237,  0, 82,
+ 18, 58,199,211, 49,242,234,220,208, 69,207,241,152,184, 89, 91,158,185, 17,159, 12,107,  4,209,249,252,179,251,144, 27,150, 48,
+137,253,226,132,245, 75,188, 92,205, 15, 33,223, 46, 99,122,169,250, 28,243, 42,207,169,196,145, 53, 92,141, 35,149, 54,108,  6,
+151, 85,241,215,255,111,  8,140,211,170,135, 16,113, 82,230,104, 83,145, 85,153, 35,137, 62, 36,182, 99,151,155, 38, 61, 61,104,
+220,164, 69,232,253, 68,156, 11,127,  6,126, 33,166,252,250,200,219,223,252, 22, 63,245, 11, 63,195,246,226,138, 52, 53, 40,222,
+123, 78, 54, 27, 98,128,189,249,146,229,114,198,206,220, 82,200,124, 90, 24, 93,162, 29,  3,227, 24, 25,  7,207,186, 27,  8, 46,
+210,133,192,162,182, 72, 18,133,146,217,191, 42,193,165, 68,140, 89, 13,111, 98,100, 41, 35,229,148,191, 62,159,236,110,201, 69,
+116, 10, 44, 98,162, 65, 48, 79,129,149, 84, 25,146, 49,171,120,247,248,140,254,108,205,158, 18,172,162, 96,150,  2,103, 49,191,
+201,174, 62,232, 72, 67,100,125,225,121,123, 27, 57,173, 18,106,105, 56,186,125,132,159,215,168, 24,185,217,148,220, 48, 21,242,
+236,130, 81, 23, 52, 82,177,152, 87,116, 33, 16, 66, 36,141, 14, 21,161,170, 11,202, 74,163,181,202, 33, 54, 33, 50,116, 14,239,
+ 60, 49,  4,162,115,140, 46,160, 98, 14, 91, 40,144,152, 36,104,180,166, 50,154, 89, 89, 80,151,134, 29, 35,184,111, 10,246, 18,
+180, 38,195, 33,206, 29, 92,249,132, 85,145,164,225,162,247, 20,109, 96,121, 99,206,193, 43, 11,110,190,121,196, 63,246, 43,254,
+214,195,187, 20,119,143,120,253,141,251, 44,191,250,  5, 62, 60, 89, 83,110,207,217,188,255, 33,227,157,187,204,166,165,205,249,
+232,121,127, 51, 34,198,136,142,145, 89, 89,176,168, 12, 27,  4,239, 14,145, 11, 31, 89,203,196,122,240, 28, 84,138,203, 33,114,
+188, 25, 25,125,228, 11, 63,241, 26,223,248,197, 31,230,141,255,228,115, 96, 18,197, 65,133,174, 52,114, 74,193, 74, 27, 71, 58,
+235,  9,103, 61,227, 89,203,230,233,150,167,167, 27,190,117,185,230,100,112, 60, 31, 71,130,130, 86, 11,156, 72,244, 10,130, 18,
+184,148, 19,249,132, 82, 52,149,101, 32,178, 25, 61, 93,244,172,183, 45,177,219, 32,151, 13, 65,130,223,221, 37,218,  2, 49,145,
+214,198,237,150,243,110,203,201,176,229, 73,244,188,221,173, 57,  9, 35, 49, 70, 26,107,241,147,186,216, 25, 69, 23,225, 34, 37,
+206, 93,224, 50,228,109,153,214,185,209,223, 49,154,185, 54,220,108, 26,238, 26,197,235,171,154,219,251, 75,158,  8,197, 92, 65,
+247,228,148, 95,124,245, 85,238,214, 21,231,179,125,254,228,234, 60, 47, 23, 11,  3,149,134,170, 70,204,106,168, 10,238,172, 22,
+252,200,209,  1,183,119,246,112,181,228,249, 58,193,238, 14,234,230, 33,105,190,128, 41,209,140,163, 61, 40, 43, 22,139, 57,251,
+214,176, 44, 13,  7,186, 32, 76,155,132, 66, 26, 68,138,  8,165,240,209,241,193,232,179,240,110,  8, 28,247,145,141, 72,180, 90,
+241, 39,209,114,182,127,139,  7, 55,110,178,191,123,131,122,182, 75, 40, 26, 70,169, 16, 69,195,207,148,150,219,101, 65,147,  4,
+157,243, 44,181,102,219,181,156, 12, 61,207,186,237,148,254,156,  8, 49, 48,184,145,205,232,120, 22, 28,163,213,244, 66, 82, 89,
+131, 11,142,194,106, 78,182, 27, 58, 63,114,225, 19,103,253, 21,231,109,230,209,111, 93,135, 26,187,140,144,158, 54,111, 72,147,
+167, 93,161,136,211,102, 54,105, 67, 76,137, 81, 66,235, 61, 66, 26,206,156, 35, 73,193,152, 34,181, 41,178,204,204,150, 84, 82,
+211, 73,129, 45, 42,146, 27,  9, 85,205,202, 88,182, 62, 81, 23, 37,187, 69, 69,  8,145,253,170,102, 86, 84,188, 54,179,148,218,
+178,103, 45,179, 20,152,149, 13,115, 83, 51,151,130,170,168,168, 76,137,181,150,202, 20, 24,171,209,194,100,122,162,146, 89, 56,
+175, 20, 74,192, 76, 11,172,212,140,201, 51,164,196, 66, 74,250,148,155,213,130,200,136,199,  8, 73,105, 52,253, 56, 32, 99,164,
+115, 35, 11, 33,168, 98,196, 71,199, 46,145,245, 56, 80,  2,115,  1, 46,  4,116, 74,244,192,211,209,113, 66,228, 32, 69,158,  6,
+143,136,  9, 29, 28, 62,  9, 84, 12,200, 16, 89,145,248,242,172,230,147,118,100,215, 26,164,146,204, 76,201, 57,129, 27,186, 98,
+ 67,100, 71, 91,122, 36,134,136,155,116, 59, 33,229,199,244,198,  7,182, 34,159, 23, 31,106, 73,101, 44,251, 70,112,168,178,  5,
+ 86,147,120,197, 20, 92,  6, 79,173,126, 16, 75,155,214,211, 52, 46,167,123, 72,  9,123, 77, 46,192, 70,102,133,187,152, 10,250,
+181,229, 75, 78,124,242,232,178,207, 96, 53,135, 38, 43, 24, 25,167,152, 81,107,243,218,125,188, 70,154, 78,225,240,246, 26,219,
+167, 25, 34, 12, 50,162,138,134,173,119, 12,  8,132,208,140,227,196,240, 53, 22,174,218,169,128, 14, 80,104,102, 86, 35, 82,162,
+ 81,138,243,214,101,229,168, 75, 44,106,201,133,203,118,188,212,141, 16, 61,169, 48,156,141,  9,165, 37,143, 93,226,204, 37,156,
+212,156,250, 64, 76, 42,111, 24,194, 52,205,244,253, 75, 23,166,156,238,112, 87,221,196, 18, 30,243,125, 45, 77,247,245, 16, 95,
+198,210,138,196,149, 75, 57, 71,103,202,118,175,124,164, 13,121,123, 81, 39,193,243,232,209, 66,231, 84, 43,145,104,125,190,177,
+182, 41,113, 21, 35,165, 86, 12, 62,228,149, 23,233,101, 68,235,181, 29, 68, 76, 14,132, 79, 11,124,226, 53, 14,113,218,146,  4,
+193, 55,254,250, 79,226, 67, 36,248,108, 79, 83, 19, 36,168, 41, 74,148, 18,136, 24, 81,218,162,181, 34,  9, 69, 41, 21, 70,100,
+ 64, 66, 27, 61, 93,239,217,217, 45,168, 43, 69,231,  2, 82,230, 12,245,152, 82,238,231,162, 32,133,132,139,  1,231, 67,254,123,
+166,181,150,138, 80,138,108,237,155, 43, 69,233,227,139,181,148,179,  6,107, 36,118,217,224, 70,135, 62, 61,103, 30, 35, 23,196,
+220, 40,204, 20,213, 66,211, 25,160,150, 72, 45,176, 43,141,147,  2,243,180,227, 96, 79,225,110, 28, 49, 47, 13, 95,190,121,151,
+ 84,214,168, 24, 24, 90,135, 24,  2,139, 85, 67, 16, 10, 81, 26,  6, 31,208, 62, 78, 10,127,137, 86, 18, 17,114,247, 62,250, 72,
+235,242,125, 51,184,140,185,181,  8,102, 66,113, 88,228,169, 99, 71, 27,246,170,146,121, 99,153, 55,  6,157, 34,214,106,170,166,
+ 98,167,201,202, 97, 73,100,159,158,131,246,146,221,227, 19,194,197, 57,188,255, 62, 23,107,199,108, 53, 39,117,158,149,146, 60,
+158,149,140, 71, 13,199,  7,187,220,216,155,241,240, 11, 15,249,238,222, 17,171, 31,249, 28,162,212,184,  4,110,240, 92,180,142,
+ 95,249, 95,255, 62,223,254,239,126,157,253,111,188,193,113,204,211, 81,135,100, 59,169,104, 43, 33,184, 81,105,164, 20, 92,133,
+204, 14, 88, 85,130,177, 29, 56,233, 35,175,172, 74,132, 22,164,148,232,149,228,163,199,107, 62,250,131,199,204,149,160,125,186,
+225,248,233, 37, 39,235,150,239,156, 95,241,157,171, 45,199, 93,196, 37, 69,235, 35,114,166,152, 85, 10,109,228, 68,137,142, 88,
+ 41, 24,149,160, 49, 58, 91,141,165,164, 23,137, 77,136,156,  8,232, 45,108,202,130,171,131, 61, 78, 87, 11,134,217,156,203,186,
+228, 98, 28,121,228,122,190, 53,246,124,100, 13, 31,147,184, 20, 21,149,130,243,162, 36, 26, 67,165, 20,131, 72,140, 66,240, 36,
+  4,206, 66,228,147, 24,241, 62,177, 14, 14,164,193,136,124,103,221,177, 37,183,181,197,150, 37, 66, 42, 90, 34,179, 89,193,110,
+ 83,112,146,  4, 15, 54,199,252,135,175, 63,228,187, 23,167,252,222, 56, 66,114,136,113, 34, 48, 54, 37, 95,219,217,225,181,121,
+195, 81,179, 32,200,146,203, 36,248,163,164,  9,171,134,175,223,186,195,231,143, 14, 89,206,231, 60, 45, 74, 88,236,228, 38,190,
+176,204,165,162,182,154,185,148, 44, 16, 20, 41,161, 68,222, 24,100,146, 64,226,216,143,124,188,245,136,194,194,106, 23,102, 21,
+207,237,146, 39,178,225,104,117,196,103,119, 15, 89, 53, 11,172,169,176, 69, 69, 93,228, 59,244, 95, 41,243,109,122,150, 96,112,
+ 35, 75,169,112, 67, 79,232,122,158,182,231, 28,187, 22,136,180, 67,207,118,236,249,240,124,203, 39,253, 64,231, 60,107, 63,208,
+ 69, 71, 63,142,212, 34,241,193,243, 99, 46,219, 43,158, 94,156,240,237,231,199, 60,186, 90, 51, 36,199, 89,191,229,241,213, 37,
+142, 68,215, 93, 97, 98,192,232,146, 36, 18, 41, 10,146,206,185,222, 81, 43,162, 18,244,193,211,143,158,160, 53,155, 24,104,133,
+167,243, 30, 33, 21, 26,137, 81, 38,235,105,116,193, 76, 23,104, 37,193,150,  8, 18, 73,106, 86,117,195, 16,179, 21,214, 90,131,
+149,138,157,194,224,131,228,179,117, 69,210, 10, 93, 52, 44,108,153,217,235,198,114, 80,204, 24,165, 36, 10,153,111,224, 82, 33,
+141,196,232,  2, 68,194, 24,133,115, 30, 37, 21, 82, 10, 80,145, 74,104,100,130, 49,230,137,187, 36,210,197,144,197,164, 34, 17,
+189,195, 72, 56, 29, 71, 68,138,196, 20,  8,126,164, 74,  1,231, 71,118,132,192, 50, 18, 93, 96,166, 61,114, 76,140,222,179, 91,
+ 90, 54, 93,135, 35,177, 39, 18, 42,230, 51,163,242, 45,218,  7,180, 16,236,  8,137, 75,158,251,214,228,239, 89, 40,214,  4,110,
+233,146, 45,  1,153, 36,157,  0, 43, 50, 28, 42,248,136, 54,134,222,  7,222, 27, 61,129,136, 16,146, 87, 74,147,183,129, 49,127,
+ 93,157, 18,165,144, 28, 20, 37, 41, 38,124, 12,184, 24,255, 45,213,239, 47, 60,231,211,138,249, 26,184, 31,167,137, 92, 76,106,
+115,169, 94,218,189,226,132,126,189, 46, 44,133,252, 84,148, 94,156,176,140, 83,254,186,155,252,136,106, 42, 76, 46, 76, 80,155,
+172,  6, 38,116,236,175,238, 80,232,154,199, 93, 59,121,179, 37,168, 42,103,188, 67,190,237, 63,217,228,244,154,202,226,122,199,
+253,165,229,116,112,204,  4,  8, 31,120,101, 97, 88,247, 14,237, 18, 51, 11,103,151,227,139,168,211,161, 44,120, 60, 42, 80,146,
+214,251,169, 72, 93,223,210, 84, 86,237,183,221, 20, 65,219,101, 37,255, 48, 64,169,114, 52,173,239,115,168, 72,159,149,251,249,
+136, 18, 94, 42,239,123, 15, 54,241,193,165,228, 11, 59,138,231,219,158,193,104,252,182,229,158,157,115, 76,164, 64, 48, 70,135,
+ 79,224,199, 72,178, 26, 23, 18, 70,101,143,106,240,158,253, 82, 81, 68,201, 91,151, 25,115,187,238,251, 28,143,187,105,243, 93,
+ 16, 50,233,101,216,252,249, 45,139,203, 86,194,245,243, 53,213,178, 65,105,201,217,211,211,140, 75,  4, 62, 58,123,142,210,134,
+102,194,183,174,  7,199,174,206, 54, 17,143, 98,  8, 16,146,160, 82,138,113,  8, 44,102,150,109, 55, 82, 89,197,162, 22, 47, 50,
+217, 67,  8,116, 41,223, 97, 23, 82, 80, 41,201,149, 11,217,169,104, 21, 38,  9,140, 24,169, 10,  3, 11, 65,232,  6,234,168,209,
+ 34, 81, 11,133,217,157,115,239,106,197, 27,186, 38,205, 45,191,109,182,152,194,176,135,226,131,224, 89,223, 46,233, 93,224, 94,
+128,181,130, 78,  9, 86, 11,203, 65,  8, 84,  9,202,197,138,249,182, 99,121,176,143,106, 22, 60, 13, 61,197,241, 25, 39, 66, 32,
+ 23, 53,213,222,156, 27,119,246, 24,182, 61,227,224,184, 90,183,164,193,160,129, 66,107, 94, 89, 45, 72, 81,242, 52, 10,124,234,
+176, 12,212, 81,176, 82, 37, 15, 22, 11,230,117,153, 47, 81,133, 70,206, 11,212,126,141,112,145,174, 29, 57,181,160,241,148, 46,
+ 71, 34,142,155, 45,233,108,195,205, 51,199,113,215,209, 17,185,241,232, 17, 23, 31, 63, 97,185,127,192, 23,159, 28,243,171,139,
+ 57,143,126,248,179,236,237,  6,102,  8,206, 90,199,205, 82,179,237, 60, 90, 11,158,117,158, 15, 79,182,252,246,223,250,187,164,
+113, 11, 88,126,237,191,252, 59,240,230, 14,219,255,234, 63,229, 55, 69,228,222,221,125,190,182, 99,185, 41,  4,171,  2, 46,199,
+196, 70,  9, 22, 90, 82,218,188,133,120,190,241,252,206, 71,151,124,182,201,123,211,143, 46,182,124,240,124,192,104,201,179,231,
+103, 52,  9,168,  4,207, 93,228,121,136,180,  1,122,145, 16,120,218,157, 25,183, 10,112,  2, 10, 23, 80, 90,230, 16, 13, 23,112,
+ 70,241,209, 85,207, 92,  9,172,150,212, 70,179,117,129,103,131, 99,225, 19,214,  7, 80,146,153, 53, 60,171, 13,189, 89,208, 46,
+ 42,186, 39,167, 60, 31, 19, 85, 33,104, 77, 67, 21,  3, 79,229,140,253, 90,242,110,155,120,146, 34, 53, 18,127,177, 97, 99, 13,
+109,136,120,224, 60,105,162,174, 89, 39, 71,140,  5, 59, 74,176,180, 69,118,144,196,128,183,  5,190,149, 68,231, 48, 49,112,171,
+105,248,229,167,103,244,127,244,  7,252,189,243,  1,209, 84, 48, 95,146, 70, 16, 58,191,247,247,173,198,104,141, 23,146,111,246,
+ 61,231, 33,230, 48,214,249, 46, 95,187,123, 23, 33,  5, 71,253,192,219,103, 23,180, 67, 55,  9,131, 35, 46,140,180, 99,228, 44,
+ 70,118,108,102, 93,204,133, 98, 19, 34, 81, 36,174,124,207, 99, 12,172, 10,246,139,154, 93, 99, 48,170, 98, 71,  9,140, 84, 52,
+186,194,106, 67, 81, 53,212, 19, 28, 81, 38,207,129, 20,124,219, 69,238,110,175,184, 37, 11, 36,146,110, 28, 72,131,227,188,221,
+240,241,122, 77, 27,  7, 78,183,  1, 82,224,124,240,140,231,107,100,140,200,182, 39,236, 47, 56,  5, 46, 27,203, 91, 49, 98,156,
+199,120, 48,253,136,105, 59,204,106,201,219, 82, 83, 55,  5,133, 72, 60, 42, 37,159,193,162, 22,145, 33,  4,172,182, 44,118,110,
+ 32,  6, 72,186, 96, 28, 28,222, 57,194,164,111,186,220,174,113, 42,159,222,144,154,146, 72, 80,  2, 41, 18, 30,195, 18,137,176,
+  6, 53, 58,208,138,133, 15, 60,243,  3,  6,193, 66, 36,156, 51,204, 82, 98,  8,121,176,104, 22, 26,169, 20, 77,240, 36, 99, 48,
+ 34,159, 29, 27, 83, 77, 48,155,200,210,148,108,125,255, 66,  7,132, 75,104,105,240,113,164, 44, 52,206, 37,164, 76,  8, 15, 27,
+  6, 42,  1, 58,  9, 28,137, 62, 58,144,150, 16, 28, 18,168,148,225,188, 27, 88,166,196,113,112,164,113, 64, 43,129,  9,129, 82,
+ 71, 66, 76, 52, 62,208,165,196, 14,  5,107, 61,178,227,  4,155,171, 11, 10,109,177, 41,111,121,181, 72, 84,228, 36, 55, 77, 22,
+ 74,175,240,236,136, 18, 81, 86, 28, 36,184,240,158,215,237,156,247, 92,207, 74,151,108, 36,236, 11,193, 59, 67, 98, 17, 61, 66,
+ 73,234,  4,143,198,192,158,182, 60,  1,132,239, 57,176,138, 62, 56,140,148, 92,245, 91,230, 82, 18, 99, 96,219,245,  8, 41,120,
+ 67,106, 30,199,241,223, 98, 82,215,250,165,239,156,  9,239, 87, 78,247,114, 59, 17,151,122,151, 39, 65,239, 94, 78,168, 76,114,
+ 97, 55,249, 64, 69,122,233,255,108, 39, 11, 86,156,214,198,101,145, 85,170, 90,229,253,195, 68,174,194,170, 60,133,207,114,128,
+198,195,155, 15,120,124,117, 78,136,  1,188, 67, 74, 75, 66, 65,187,201, 19,115, 55,192, 48, 32,165, 98, 81, 21,216,148, 81,168,
+181, 21,236,105, 56,235, 71,102, 74,130, 27,233,187,172,220, 37,133,236, 37,213, 58,223,207, 84,190, 99,167, 52,169,247,205, 36,
+ 22,136,211,244,173, 85, 62, 19, 88, 13,114,130,204,139, 73, 92, 99,204,116,110,152,176,185,195,116,175,187,158,214,123,143, 19,
+137,199,157, 71,151,138,183, 62, 89, 83, 87,138, 15, 47, 90,180,209,104, 41,  8, 42, 11, 82, 70, 37,208, 66,224, 66, 38,185, 21,
+ 82,225,137,204, 80, 12,209,211, 88, 69, 67, 98, 75,206, 59,199,231,108,230,204,225, 23,147,160, 47,190,180,223,201,233,116, 18,
+  4, 71,175, 28,113,112,235,144,118,155, 69, 50,193, 71,182,125,139, 17,154,131,213, 33,123,  7, 75,102, 77, 65,112,137,194,106,
+ 84,132,166,212,200, 49,112, 57,  6,124, 74,180, 67,192,185, 72, 83,107,148, 20,104, 57,173,223, 17,120,242,135, 53,166,148,131,
+247,144, 68,  1,137,188,174,213, 58, 79,235,248,152,161, 62,133,194,214,  6, 45, 53,101,169,249,191, 89,123,179, 88,203,210,243,
+ 60,239,249,167, 53,238,233, 76,117,106,174,174,174,234,110,246, 64,145, 77,138,148, 40, 91,178,132,152,  6, 18,197, 73, 46, 20,
+  7, 65,  4,196,185, 73,128, 32,185,  8,  2,248, 46,176,238,156, 27, 35,200,125,144, 92,  4,112,132, 12,130,108, 40,138,172, 33,
+214, 16, 73,164, 73, 90, 36,155,221,173,110,178,187,171,107, 62,243,217,227, 26,254, 41, 23,255, 58, 85, 69,137, 18, 20,197,167,
+177,113, 80,  5,116,157,179,246, 94,123,127,255,247,125,239,251,188,178, 54,204,109, 36, 28, 28,227,181, 96,145, 75,124,109,216,
+100, 18, 95, 72, 30, 73,207,246, 40,103,119,167,100, 57,206, 24, 95,158,178,181, 61,229,114, 85,115,185,183,188, 81,111, 51, 13,
+145, 93, 93, 48,186,177, 13,166, 96,220,246,100,173, 99, 45,  5,179,237,154,171,151,183, 40, 75,147,  0, 99, 77, 75, 92,246,200,
+206, 83, 74, 69,169, 36, 69,132,222,167,209,158, 16,138, 76, 24,246, 71, 35, 46,239, 77,153,108,215,148,163,156, 98, 82,144,207,
+ 10,178,210, 80, 76, 43,138,113, 73, 17, 34,198, 58,100,239, 56, 95,172,217, 57,106, 48, 46,242,193,193, 33,242,124, 69,238,  5,
+166, 52, 92, 11,240,242,227,  5,223,113,199,184,137, 96,218, 45,184,255,219,127,128,207,182, 89, 29,172,216, 44, 26,214,235,150,
+223,254, 95,126,149,143,254,209,239,113,239,215,191,145, 52, 13, 72,  2, 38,233, 60,142, 27, 62,250,103,127, 72,248,167, 95,167,
+236, 63,229,214,157,171,124,121,183,100, 87,107,254,120,229, 56,232,  2,158,200,165, 82,209,161, 56,149,138,199, 66,114,127, 99,
+121,180,238, 89, 53, 30,109, 36, 94, 66, 44, 32,138, 72, 75,160, 35,224,100,128,152,196,139,215,239,236,145, 95,153,114,164,115,
+ 62, 61,119,252,225,183, 62,230,206,254,132,222, 71,158, 90, 79,171, 69, 74,226,206,  4,247,159,204,105, 93, 74, 88,180,189,101,
+221, 89, 66,111, 25, 75, 65,166,  4,185,144,244,121,154,250,185,178, 32,232, 12,171, 51, 84,157, 97,235,146,179,141,101,113,190,
+100,213,119,228, 85,198,131,243,158, 77, 20,172, 93,135, 15,145,163, 69,135,146,146,181,210, 56,149,225,163,100,119, 54,166,145,
+130,105, 94,208, 33, 57,246, 17, 43,  5, 79,150, 45, 71,189,101,172, 20, 71, 82,241,222, 89,139,232,186,228,145,207, 52,140,170,
+  4, 95, 57, 93,115,165,144,236, 85,  5,  7,155,134,119, 87,107,172,237, 17, 82,241, 70, 53,226,181,233,  4, 41, 37, 66, 73, 86,
+173,229, 64, 12,217,  7, 62, 21, 84, 21,159,239,202,107, 37,105,133,224,  8,136, 66, 50, 42, 74,246,234,154,207, 86, 19,238, 78,
+119,208, 67,224,138, 70, 82, 12,194,178, 92,105,156, 15,  8, 33,200,134,157,117,227, 61, 15, 87, 11, 94,145,  1,215,245,220,  8,
+145,213, 98,206,124,115,198,251, 71, 79,248, 96,126,206,199, 39, 27,206,155,142,229,233, 28,123,118, 68,180, 29, 97,179, 33,246,
+ 45, 97,177, 76,143,249,138,112,190,196, 47,214,248,243, 57,174,239,241,222,225, 86,107,220,217, 25,253,241,  9,253, 98,197,241,
+162,225, 97, 72, 57, 26, 45,129,237,188,164, 35,164,172,141,224, 17, 70,211,122, 79, 23, 28,115,239,105,133,224,164,107, 88,217,
+ 30, 97, 20,189, 28, 38,124,153, 65,101, 25,121,102,104,165,160, 42, 43,180,148,172,165,167, 50, 25, 27,239,208, 89,137, 84, 34,
+ 33, 94,181,166,202,  4,179,172,196,135,128,202,138,164, 90,143,142,186, 26, 35, 98,192,  6,207,118, 85, 99,173, 69, 68, 65,150,
+231,244, 46, 29, 44, 83,109, 25, 36, 70, 18, 92,231, 80,120,140,136,180,193,211, 58, 75, 22, 61,189, 16,104,103, 19, 63,159,136,
+ 12,142,198, 53, 52,182, 39,118,107,108, 84,212,222,146, 73, 71, 17,  2, 51,151, 92, 90,151,132, 96,227, 44,179,  0, 10, 79,244,
+129,245,186, 37, 23,129,232,146, 56,249, 10,130, 55,180,227, 21,165,248,146,209, 92,215,134, 27, 69, 70, 21, 34, 91, 38,231,178,
+150,156,217,150,151,202, 17,139,104,217, 86,134,143,219,158,155,133,226, 60, 70, 74,  4,143, 86, 61,133, 84,124, 18, 28, 69,140,
+ 92, 54,  6, 31,  4,187, 90, 38,212,109, 12,105, 13, 32, 82,131,183, 29,  3, 62,  6,148,253,235, 20,117, 53,136,182,226, 11, 68,
+223,160,158, 71, 94,118,131, 23,189, 27,186,235,206,191,128,140, 29,138, 77, 28,188, 52,222,167,248,193,139,241,240,  5,125, 77,
+229, 41,147, 92, 13,130,187,186, 30, 22, 12, 42,  1,  7, 68,242, 63,126,218,181,216,126,232,204,163, 32,186,254, 57,201,237,240,
+ 60, 33,103,125,131, 44, 10,148,137,216,206,177,167, 21, 49,120,250, 33,138,180, 68, 17,131,163,233,124, 26,223, 55,131, 29, 76,
+233,225, 80, 49, 88,195,244, 16, 29,171,196,112, 24, 25,104,121, 82, 36, 80,142,237,210, 65, 38,134,164, 13,  8,126,128,234, 12,
+120, 63, 63,  8, 78, 46,216,235, 74,190, 16,254, 18, 88, 46, 82, 80,203,201,241,138,185,143, 60, 92,118,204,170, 12,231,122,148,
+ 84,  8, 33, 89,117,150, 74,167,209,247,210, 59, 42, 33, 89, 13,182, 47, 25,160, 11,145,157, 44, 41, 81,173,190, 56, 68,168,244,
+179,109, 24,216,240,242, 57,138, 49,166,157,244,124, 60,225,237,215,239,178,217,180,  4,231,240, 49,146,  9,195, 89,179,100, 90,
+ 86,124,241,205, 91, 52,157,199,185,152,246,223, 50, 37,177, 17,  2,110,128,205,152, 76,226, 58, 71,219,121, 84, 62,184, 23,124,
+196,  1,173, 13, 52,222, 33,  7, 38,188, 38, 82, 75, 65,227,  3, 75, 31,169,135,221,144, 18,176, 81, 96, 50,133,206, 52, 54,147,
+  8,173,200, 50, 77, 63, 46,121,122,255,152,147,186, 32,142,199,156,103,138,121, 38,209,185,161, 45, 12,182, 46,240,101, 78, 99,
+ 20,125,136,156,183, 45,139,224,120,208, 52, 44,124,203,229,122, 11,218,134, 88, 87,228,187, 35,124,227,185,228, 35, 93,174,232,
+ 37,228,117, 78, 89,230,104,163,144, 33, 64,107, 81,214,161,122,143,110, 92, 58,128,173, 45,110, 72,120,141,218,144, 85, 57, 59,
+147,146,108,156,161, 42,157,118,178, 90, 18, 43,133, 50, 18,165,210,107,165,  4, 72,165,168, 66, 36, 39, 18, 58,203,172,177,172,
+207,206,185,172, 11, 20,145, 85,111,137,202,113, 52,171,120,237, 23,254, 22,111,254,212, 91,188,252,133, 55, 57,222,116, 60,249,
+230,215, 56,248,232, 67,222,251, 23,223,166,253,253, 57, 33, 13,228,210,154, 34, 33, 65,136, 67, 60,208,197,247,213,247,142,121,
+247,159,124,139,  3,113, 66,244,138,239,127,248,132,211, 63,253,148,187,183, 47, 35, 28,172,165,160,137,176,238,147, 45, 78, 75,
+104, 91,203,253,195,  5, 34, 70,158,156,110,168,  8,116, 77,199,166,117, 68, 37,240, 34,114,181,214,252,189, 47,222,224,149,137,
+225,105, 27,248, 80,107, 30,223,185,204,111,170,130,223, 89,  5,190,254,233,146, 91, 59, 53, 50,120,172,130,211,165,103,165, 37,
+ 78, 68,214,173,195,123,143, 36, 98,100,122,109,173, 20,116, 33,160,165,224,112,227, 88,123, 88, 72,201, 34, 51, 44,182,198, 28,
+  8,201, 83, 12, 70, 26,158,108, 90,106, 33,217,116, 45, 58,203,217, 52,  3,225, 47,  4, 50, 34,219,165,228,218,172, 38,100, 25,
+178, 40,113, 90, 97,165,102,174,224, 97, 19,  8, 66,177, 17,145,163,182,229,149,170,224,104,112,146,252,196, 36,231,118,145,115,
+ 67,102, 60, 52, 57,162,206,185,191,106,152,202,  2,111, 45, 55, 98,203,184,239,184,148,103,160, 52, 55,243, 28, 73,164,105, 59,
+222,221,108, 88,134,128,176, 61,149, 20,104, 15, 27, 41,184,162, 20,103, 66, 17, 85,198,125, 23,168,114,195, 38, 40,138,220, 48,
+ 42, 38,232,188, 66, 75, 69,192,208,250, 64,102, 12,  2,129,247, 22,109, 36, 74, 39, 87,197,166,105,112,214,113,238, 26,150,221,
+154,247,238,191,199, 72, 10, 30,158, 61,229,227,147,199,124,114,124,204,119, 78,206,248,224, 96, 65,152,207,137,237,130,184,216,
+164, 60,243,  1,249, 28, 95,  0,177,198, 16,240, 65, 18, 36,120, 41,  9,  3,174,195,  7,247,156, 46,237, 61,174,235,105,219,200,
+ 19,219, 17,  8,104,145, 88, 25,203,190,193,232,156,181,235,  9, 82,208, 11,193,113,179,162, 23,145,179,222,177,192,211,116,233,
+231,134,204, 36,239,184, 41,232,181,162,136, 18,165, 37, 94, 72,140,144,180, 50,129, 90,156,181,136,152,116, 79,224,201,117,142,
+ 17,  9,239,108,132, 78,201,153, 89, 65,173, 19, 61, 51, 55, 26,163,100, 90,193, 41,205,102,211,162,181, 26,  0,158,105, 84, 77,
+244,180,109, 79,244,145,133,237, 81, 62,209, 54,181,119, 56, 33,145,125,135, 14,  1, 17,  3,181,  8,244, 93,159,250, 79,191,193,
+218, 64,230, 27,172,181,108, 11,216,142,  9,249, 61,139,130, 16,  2,187, 82,224,189,103, 18,160, 20,129, 76,120, 88, 54,188, 94,
+ 74,222, 86,146,187, 69,198,142, 52, 92, 49,154,155, 89,197,101,147,244, 60, 19,101,200, 66, 18,240,109,103, 57,103,222, 50,145,
+154,  3,219,242,242,168,230,163,174,227, 90,158,241,104,217, 16,148,228,  3,107, 25,133,192, 90, 10, 94, 45, 52, 70,  5, 86, 33,
+176,133,160,150,146, 86,192, 76, 72,174,102,  5, 77, 76,248,142, 59,229,232,175, 81,212,165,252, 33,114,239,179,204, 91,173,135,
+157,114, 42,248,183, 62,255, 50,243,163,249, 15, 51,224,187, 48, 20,195,129,231, 46,101,242,118,196,161,  8,184, 97,223, 91, 22,
+ 73, 49, 94, 94,140,224,229, 32,198, 19,168, 60, 79,172,117,161,136,182, 75, 16,123,103, 81, 66, 18, 69, 76,123,236,174, 75,249,
+200,171, 21,224,137, 22, 46,103,146,177,150,180, 81, 16,188,227,192,121,118,178,140, 96, 83,190,239,225,106,243, 60,205, 76,136,
+ 84,  0,171,122,208,  5,196,231, 96,156, 48,116,192, 65, 12, 34, 57,255, 92, 52,199,160,182, 15, 46,173, 36, 20, 41, 11, 93, 12,
+215,135,228,153, 41,253,162, 99,183,  3, 90,246, 34, 59, 55,244,176, 89, 66,231,120,108, 35, 91,101,134, 18,130, 34, 10, 70, 42,
+237,169, 69,239,201,133,192,185,200, 88, 43,150,195, 13,166,149, 36,120, 40,117,196, 68,193,218, 15,188,247, 56,188, 94, 34,197,
+159,166, 53, 73,120, 22,  5,185,190,255,128, 87, 63,247, 38,121,150,209,173, 26,178, 44,231,115,159,125,147,  7, 15, 30, 18, 93,
+224,230,173, 27, 44, 22, 29,101,149,  2, 97,178, 76,147,105,201, 38,122,162, 75, 66, 26, 41, 35,174, 75, 59, 91, 31, 82,216, 75,
+ 80,113, 24,141,201, 20,150, 35, 21,106, 80, 72,119, 33, 97,111, 51, 41,216, 49,  9,113, 42,226, 16,101,172, 36, 85,166, 89,155,
+ 36, 12, 68, 75,186, 81,206,159,220, 63,230,211,205,130, 42,  6,214,125, 67, 71,160,141,129, 40, 37,107, 17, 89, 74,146,120, 69,
+ 10,142,133,103,225, 98,194, 84,146, 34, 46,139,178,194,  4, 65,233, 33, 76, 75, 70, 42,199, 40, 73, 27,  3,217,186,199,108, 85,
+137,100, 38, 37,  2,208,157,199,204, 91,212,188, 37,156,174,209,157,101, 76,100, 44, 52,133,214,120,173,113, 70, 34, 50,133, 53,
+ 10,151,168, 52,196,182, 71,103, 10, 97, 20, 81, 74,132, 82, 72, 69, 42,244,101, 70, 81,231, 20, 69,193,254,107, 55,152, 92,219,
+ 98,182,232,217,139,146,251, 49, 18,191,252, 58,175,189,121, 21, 45, 20,162, 42,153, 92,153,146,141,183, 17, 93,228,225,241, 33,
+155,143,151,  4, 28,  1,193,115,170,182,127,246, 16, 67,137,  7,137, 64,242,232, 27, 15,249,250, 63,253, 54,159,252,230,119,121,
+252,123,223,227, 91,239,191,207,207,126,245,109, 92,227,152,175, 59,214, 79,151,228, 71, 11,126,229,127,250,101, 14,191,245, 14,
+155,119,223, 39,223,157,177, 62, 95, 50, 63,111,  6,203,141,192,  9,193,153,202,169,162,229,245,189, 49, 95, 59, 89,243, 63, 31,
+ 54,124, 48,132, 13,233, 76,163,198, 57,241,214, 54,247, 39, 37,183,125, 96,177,232,104,242,140,243, 85,199, 92,102,136,214, 99,
+178, 68,137,195, 59, 74,163,105,136,  8,  4,199, 93,143, 53,112,224, 20,231,117,205,122, 84,242, 56, 51,220, 31,229, 28,103,  5,
+227, 73,206,104, 58,225, 32,192,178,237,176,243,115, 86, 46, 80, 25, 69,239, 58, 10,229,168,132,166, 54,134, 66, 27,162,150,220,
+219,  4, 30, 58,135,146, 57,167, 38,103,187,172,216,213,169, 27, 26,153, 12,175,  4,119,243,146,253,178, 64,106,205, 86,145, 51,
+ 18,201, 42,187, 95,143,201,180,230,149,113,205, 36, 47,217, 31,215,148,218, 80,200, 12, 27,225,254,106,193, 19,107, 89,132,200,
+202,123,118,242, 18, 75, 96,173, 32, 70,137,149, 10,175, 52,103, 82,115, 42, 53,175,151,  5,159,203, 51,238,148, 53, 51, 97,112,
+ 82, 34,148,193,105, 69,  8,145,198,167,166,192,123, 75,  8, 61,193,167, 81,190,239, 58, 86,221,146,229,234,156,147,239,191,203,
+103,174, 94,226,143, 62,125,204, 59,143,142,120,239,116,201,123,  7,199, 28,159,157, 67,183, 33, 10, 71,108, 59, 34, 63,204, 91,
+127, 33, 82,235,217,232, 58,132,231,143, 11,183,250,197, 93,116, 81,220,189,239, 89,197,192,131,181, 35, 55,130,214, 91,206,109,
+ 75,144,130,149,183, 68, 36,143, 54,115,172, 16, 60,106,214,172,162, 39,  6,112, 66, 16, 68, 98, 58, 40,147, 17, 68, 64, 75,133,
+200, 52,113, 72,124, 68,107, 86, 33, 32,135, 96, 43,149,105,108,235, 24,103, 57,153, 76,204,248,220,100, 56,111, 41,139,156,145,
+ 49,195, 86, 54, 75,107,172, 16,200,180, 65,105,141, 50,154, 24, 61,182, 79,133, 89,196, 64,183,238, 16, 17,214,253,  6, 25, 61,
+ 39,157, 69,135,148,230,185, 27,147,144,176, 22,  2, 17, 29,222, 90, 84,112,132, 24, 41,125, 96, 26, 60,165, 20, 76,130,167,  6,
+ 74,169,152,136, 84,231,106, 18,226,122, 23, 40, 17,204,136,220,201, 50,238,102,154,109,101,216, 42, 71,236,154,154,151, 70, 83,
+246,138, 41, 38,194,180, 26,145, 73,137,150,130,113,145, 81, 41, 67,239,  3, 69, 76,147,213,153,202, 56,114, 61, 91,218,176,116,
+142,243, 62,242,129,237, 56,141,240, 52,  6,198, 49, 48, 27,228,104,183,170,130, 16,  5, 19,149,177,165, 12, 59,166,162,  9,158,
+207, 84, 51,118,140, 70,248,191,142,250,253,153,208,234,197,162, 62,180, 47,106,176,176, 33,152, 63, 57, 75,133,171,117, 47,140,
+156,197, 11,123,119,  1,190, 75,194, 20, 25,147,120,142,  0,186, 74, 49,114, 91,227, 84,248,  7,131, 62, 49,133,195,199,182,135,
+178,130, 96,169,162, 99, 52,100,165, 79, 99,160,233, 91, 38, 70,209,217, 62,  9,216, 66, 72, 59,245,144,212,141, 74, 42, 66,232,
+ 17, 81, 50, 35,208,216,164, 82, 60,237, 44,222,250,148,225,173, 92, 74,251, 42,203,103, 96,154,164, 68, 31,186,110, 35,146,138,
+127,224,185, 99,195,115,  2, 94, 28, 10,189, 24,162,240,218,102, 32,202, 57,112,195,168,222, 69, 40,205, 51,150,123, 18,171,197,
+231,246, 56, 63, 48,166,189,133,188,100, 82, 42,148, 79, 52,182, 82, 41,162,183, 88, 33, 49, 33,177,212, 55,206,179,157,105,172,
+ 76, 41, 94, 94, 10,102, 81, 80, 69,207,147,139, 72, 82, 23,210, 59,187,247,131,203, 64,254, 57,112, 70,190, 61,227,230,237,155,
+116, 93, 67,211,108, 56, 62, 60,167,183, 45,222, 11, 66,200,113,125, 96, 52, 41,201, 11, 77, 46, 37, 82,165, 53,132, 37, 34, 66,
+ 26,  5,249, 16,159,197,185, 71, 98, 18,217,  9,153, 68,249, 17, 42,117,161,221,139, 76, 85,154,168,184,232,137, 81,146,105,153,
+242,198,133, 72, 97, 20, 46, 89,115,188, 73, 40,211, 62, 83, 28, 29,173,152, 68,205,164,168,104,148,164, 42, 38,136,170,100, 60,
+154,146,107, 77,102, 12, 70,128, 42, 50, 10,169,240, 90, 64,150, 83,153,156, 75, 89,129,247,158,124, 92, 33, 71,  5,178, 80, 84,
+251, 35, 74,169, 48, 33, 82,180,142, 48,201, 16, 90,161, 98,130,238, 25,231,201, 26,139, 89, 89,100,215, 36,245,171,212,140,132,
+ 98, 90, 24,178, 92,177,214,146, 53, 73, 28, 22, 50,133, 68,144,109, 28,213,253,115,196, 36,195,103, 26,151, 15,200,211,224, 49,
+157,199, 28,204, 81, 43, 11,215,167,232, 89, 77,121,125,135,124,107,204,150,211, 92,113,145,122,209,144, 61, 90,146,159,244,248,
+ 15, 14, 56,179, 61,227, 75, 19,222,250,220, 43,236,255,141,215,248, 65,213,225,254,244,152, 56,252, 39,  0,161,114, 68,108,249,
+  7,255,233, 23,248,227,119, 22,  8,223, 13, 61,187, 76,145,184, 72,  4, 26, 30,117,252,237,255,224, 75,108,154,150,205,241,138,
+ 98, 57, 71,111,230,124,229,141,187,220,249,177, 59,212,183,111,210, 89,135, 11,130,102,216,223,197, 62,105, 47,100,111,249,181,
+ 63,250, 38,149,174,248, 71,135,158,249,178,195, 91,139,111, 45,221,186,167, 93,117,  8,155, 50,193,139, 42,231,111,142,  4, 71,
+ 94,112,214,123,150,235, 22,163, 36,163, 82,226,101,196, 74,197, 82,128,244,145,141,117,156,119,142, 69, 11,199, 85,198, 81,102,
+120,164, 36, 79,144, 92, 53,138,191, 49,202,184,189, 83, 51,173,115,150, 94,240,  3, 97, 56, 90,174, 97, 53,231,160,153,115, 41,
+215, 20, 17,148,201,208, 70, 17, 98, 96, 29, 35,153,144,156,249,200,227,229,156,187,121,150,150, 20,166,224,238,168, 96, 17, 18,
+244,100,171, 44,217,173, 10, 74, 83,208, 42, 77,235, 83,225,216, 42, 74,118,137,212, 89,134,150, 26,149,143, 82, 98,154,209, 28,
+117, 14,173, 51, 22, 49, 34, 72, 22, 84, 27,  3, 27,161,137,  3, 14,121,172, 52, 39, 66,210,168,130, 45, 37,121, 43,147,108,153,
+130, 66, 24,118, 76, 70, 46,147,122,255,160,237, 88,218, 14,223,247,156,247, 13, 27,219,114,214, 52,116,109,203,106,181,228,225,
+201, 99,142, 78,142,120,116,240, 20, 58,199,225, 39,143,225,201, 99,226,242,156,216,109, 82, 19, 19,  2, 81,133,225,192, 30, 94,
+ 40,222,127,182,152,243,194,116,231,135,163, 84, 46, 30, 23, 41,168,238,226, 97, 19,186,249,163,243,142,127,117, 62, 71,  2,173,
+183, 28,186, 13, 79,109,203,169,183, 44,188,229,180,111,232,189,163,245,150, 60, 43,113,  3,231,189,146,233, 64, 56, 49,134, 77,
+215,165,224, 24,  2, 77,140, 72,  4, 46,  6,164, 46,112,174, 35,203,179,100, 15,149,146, 66, 43,172,143,148, 69,158,  4,134, 17,
+170, 44, 27,166,141,138, 92, 25,162,212,  4, 36,173, 13,  8, 23,105,250,134,205,166,165,239, 45, 49,244,201,135,142, 39,122,143,
+119,150,169,209,136, 16, 88,251,142, 82, 72, 68,240,248,190, 69,138, 64,231, 58,180, 15, 72,231,200,134, 98, 45, 66,100, 91,164,
+ 73,107, 37,161,148,146,145,148,204, 98,138,161,222,146,134,155,245,132,153,206,153, 20, 21, 91,227, 41, 35,149,177, 55,217, 99,
+ 55, 31, 49, 85, 25, 87,183, 46,145,133,136, 70, 50, 45, 42,108, 76,113,211, 82, 72, 78,241,136,  8, 31,119, 27,154, 24, 89, 17,
+ 88, 71,193,119, 54, 27,130,208, 60,244, 61, 45,130,147, 16, 24, 33,120,171,206,217, 56,203, 75,101, 73, 64,177,109, 10,142,250,
+134, 55, 71,187,116,161,227,122,189,195,189,118,245,215, 84,191,251, 33, 17,236, 17, 13,114,221,  0,  0, 32,  0, 73, 68, 65, 84,
+226, 54,113, 46, 41,219,141,121, 62,166,190, 40, 38,249, 16, 69,122,225,235,116,225,  5,181,248, 32,132,243,118,160,  3,248, 68,
+122, 26, 15,100, 33, 53,208,231, 46,166,  3, 97, 56, 12, 72, 65, 78, 10, 57,176, 93,203,158,214, 28,246,237, 16, 81, 60,116,166,
+171, 53,204, 87,208, 89, 38,117,218,255,120,160,145,130,104, 61, 74, 73,186, 62, 36,142,114,136,116,157, 69,170,152,210,221,130,
+ 29,124,170,102,136,105,189, 32,198,169,139, 25, 86, 42,136, 66, 12,227,250,161, 19,238,251,116,141,189, 75,187,236, 48, 76, 38,
+ 98, 76,235,  9,157, 63,139,  9,140,109,178,192,141,148,162,247, 33,  9,251,172,135,104,193,201,180, 20, 90, 45, 56, 93, 90, 84,
+ 93, 32, 69,226,141, 71,  9, 19, 20, 14,143,139,158, 32, 34, 42,200, 36,110, 19,130, 60,192,177,237,113, 90,113, 89,195, 97,231,
+159,171,244,197,160,107,136,195, 26,228,  5,104,253,163, 15, 63,226,179, 63,249,227,  9,  9,233,  3,173,239,137, 65,144,235,140,
+157,221, 61,242, 34,167, 42, 50,198,101, 78,110, 20, 34,130, 80,  2, 61,252,123, 33, 68,178, 66,167,216, 85, 23,136,131,100,162,
+115, 46, 69,125,170,212, 63,154,139,179,161,136,233,252, 18, 35, 35, 45, 40,  5,100, 74, 83,168,228,245,246,131,240, 74, 12,216,
+ 80,149, 25, 22, 89, 70,191,182,212, 58, 97, 92,215,221,  6, 27, 60,189,107, 19,220,196,123,148,201,185,122,229, 38,211,122,198,
+100, 54,227,242,246, 30,179,170,198,  8, 67,173, 13, 35, 33,153,236, 78, 40,140, 70,219,136, 44, 13,126,  0,207,100, 82,224, 51,
+153,130,185, 66, 68,217,128,233, 60,210, 38, 84,107, 52, 10,101, 82, 54,187,201, 85,202, 73, 55, 10, 35,192, 32, 41,140, 66,231,
+ 26,187,233,153, 29,116,240,104,  5,109,143, 47, 21, 20, 26,169,147,175, 93, 54,  1,185,238, 16,147,114, 72,235,  3,129,194, 92,
+ 25,147,141, 12,246,116, 69, 55,239,105, 30,156,112, 37, 56, 94,201, 13,227, 66, 51,207, 53, 87,246, 39,188,245,153, 59,132,105,
+ 75,245,214,132,203,111,223, 68,124,110,159, 47,254,199, 63,199, 23,126,226, 10,127,255,239,254, 44, 89,222,240,237,111,126,130,
+ 28, 60,  6,233,221,147,182,239,146,192,233,201,199,236,190,246, 42, 58,244,200,222,167,  4, 47, 37,209, 90,178, 38, 38,176,144,
+119,116, 65,112,190, 88, 34,176,248,213,138,222, 90,156,204,249,181,143, 62,193,127,242,125,194, 39, 31, 19, 30, 63, 34, 60,252,
+148,112,178, 32, 60, 58,160,107,  2, 99,239,249, 79,174, 22,124,241,202,148,173,105,206,135, 75, 71,179,108,112, 66,160,165, 71,
+ 32, 56,247,145, 50,194,201,166, 73, 34,178, 16, 88, 91,193,169, 80,180, 90,178,118,129,214,121,254,118,173,249,185,253,146,215,
+102, 25, 61,138,211, 32,120,191,113, 56,173, 57,148, 38,  9,180,150,167, 24,215,147, 69, 64,102, 88, 37, 89,245,176,238,122,116,
+111,169,136, 56,219, 49, 82,129,109, 19, 41,178, 12,239, 36,186,200,145,217,  8, 35, 13,101, 85,209,184,200, 89, 20,120,147, 49,
+ 14,142,203,163,154, 82, 41,164, 54,152, 40, 81, 90, 35,133, 64, 72,195, 19,239,145,210,240, 88,  4,148,144,116, 41, 35, 47, 29,
+200,149,166,208,249,128, 39,141,188, 82,100,188, 42, 35,123, 72,138, 44,167,150,130, 17,146, 67,219,241,131,166,229,164,223,112,
+220,119,124,212, 44,121,186, 89,114,116, 62,231,241,147, 39, 60,190,255,132,179,123, 15, 89, 31, 29,192,106,  9,  7, 39,131,246,
+ 40, 29,158,163, 74,107, 71, 84, 24,232,152,241, 47, 12, 74,249,255, 82,224,253, 11,223,159,141,227, 93,143,235, 58,238,109, 60,
+223, 94,174,105, 68,228,219,203, 13, 39,  6, 30,186,200,121,148,144,231,228, 91,151,232, 84,202, 81,232,133,194,  5,143, 82,138,
+121,223,225,148,196, 59,199,121,219, 64,132, 54, 56,132,179,200,152, 68,164,209, 90, 54, 62, 48, 46,203,244, 60,155, 68,111,204,
+148, 76,177,164,190,199,199, 72,136,  2, 33, 37, 82, 36,253,135,183,145,179,118,205,178,235, 89,  7,203,218,182, 52, 33,176,218,
+172,232,250,158,211,102,131, 11,158,243,182,195,117, 29, 83, 13,190,239,145,206,146,135,128,237, 58, 42,161, 32,132, 20,144,131,
+ 64, 17,153, 74, 65,231, 29,219, 66,160,165, 96, 36, 36, 59, 58, 99, 58,154,178, 95,212, 76,243, 17, 85, 81,145,231, 35,234, 98,
+ 76,105, 74,242,188,102,183,170,153,228, 57,179,186, 70, 56,199,100, 60,166, 48, 57, 10, 65, 41, 82,116,120, 16,137,115,242,196,
+245,212,198,176,112,145, 54,  6,126,176,110, 25, 73,201,119,108, 71,140,105,149, 32,130,227,117, 99,232,156,227,237,209,132, 15,
+218,150, 61,169,177,193,242,198,100,155, 15, 55, 43, 62, 51,222,229,187,103,  7,252,248,222,149,255, 31,150,182,240,124,124,251,
+108, 44,159, 13,194,176, 11,116, 42, 67, 76,222,133, 26, 62, 14,133, 94,136, 84,236,132,120, 62, 32,106,237, 96, 63, 75,169, 73,
+148, 58,221,176, 82,253, 48, 74,118, 24,141,251,206, 83,233,228,121, 63,233, 82, 33,151,128,240, 73,248, 64,103, 97,221,128,111,
+233, 84,218,223, 33, 20,219,  3, 12, 69,249,200, 88, 72, 22, 33,125,208,117,109, 32, 10,255,124,140,222,117,105,  5,112,  1,212,
+201,139,212,133, 63,139, 50, 29,138, 54,131, 98,191,115,207,119,234,132,193,242, 22,158,157,164,211,255, 51,168,250, 93, 76,138,
+120, 37,233,219, 33,231,188,237,159,219,226,164,127,190,247,206, 37,139, 54,114,212, 56,164, 12,212,  8, 54,222,145,107,133, 33,
+162, 93,160, 23,129, 12,137,141,224,162,195, 40, 69,219, 57,162, 16, 52, 65,208, 55,125,250,157,220,102,152, 46,252,217,193,220,
+ 96, 24,216,155,113,249,242, 21,144,130,233,100, 11,219,116,140,235, 17,123,151,118,168, 70, 57, 91,147,  2,136, 24,165,159, 49,
+131,252,160,103, 80, 67,208, 11,  2,156, 15, 68, 23,177,189, 35,120,200,242,148,128, 55,214, 34,  9,229, 34,100, 82,166,167,139,
+148,140,214,133,200,169,117,  4, 17, 49, 33,210,251, 64, 39, 65,169,100,157, 49, 74, 97,234,156,229,167,135, 28, 46,150,172, 68,
+164, 87,154, 94, 27,114,157,113,119,251, 18,183,182,246,169, 39,219, 76,102, 51,174, 94,221,229,141,187,215,249,201,183,110,145,
+ 77,167,212, 91, 83,246, 71, 53,178,117,100,147,146, 50,203,160,115,104,163, 17,179,196,149, 86, 90, 17, 10,153, 44,121, 17,164,
+243,136, 65, 71,208, 35,240, 90,130, 78,153,241,218, 40,140,145, 20, 82, 81, 74, 40,163, 72,  0, 27, 31,121,231,196,113,184, 95,
+210,198, 21,253,147, 19,186, 71,167,248,117,139, 40, 51, 68,110,144, 34, 32,164, 70,230, 26, 25, 34,162, 75,239,  5, 17, 98,250,
+187, 42, 71,204,114,244,245, 49,249,172, 68, 25, 69,172, 37, 49,151, 72,  9,  7,167, 43, 58, 89, 82,141,102,136,106,196,143,239,
+141,249,207,189,227, 11, 46,242,155, 31,220,231, 35, 17,120,237, 43,183,217,125,185, 96,116,189,100, 45,  3,156,244, 40,224,171,
+255,240,231,249,151,255,195, 59,124,231, 87,190,206,171,127,231,243, 20,206,162, 67, 64,134, 64,101, 45,  7, 77,143,127,250, 41,
+ 31,254,234,183,216,236,103,216,245,146,157,245,  9,187,243, 83,182,207, 14, 16,177,227,126, 16, 92,157,108,115,125, 52,166, 48,
+ 25,186,219,240,213,246,140, 59,221,130,141, 50, 60, 93, 52,188, 62,202,185, 57, 46,248, 90, 11,191, 83,228,168, 33, 71,104, 99,
+ 10,140, 49,196, 40,240,235, 53,210, 57, 92,107, 57,183, 61, 93,159,172,138,197, 98,141, 88,110,232,187,192,219,181,230,213,105,
+ 65,110, 52, 39,125,228, 55, 14, 27,150,  4, 76,157,145, 85, 37, 93,208,220, 59, 58,228,252,228,  0,225, 26,136, 17, 43, 20, 62,
+  6,214,109, 79,227,122, 70, 64,180, 61,133,134,138,180,139,205,140, 36,203,106,234,178,164, 55,134,141,147,136,178,164,172, 70,
+  4, 23,152,106,205, 56,215, 84, 58,199, 40,147, 24, 11,121, 18,226,158,186, 64, 39, 53,231,209,115,210,247, 20,164,  3,209,102,
+200,189,184,156,101,156, 73,201, 76, 41,150, 81, 48,149,145,215,178, 20,222,179, 21, 61, 75,215,179, 10,142,  7,182,227,215, 79,
+207, 56,177, 27,150,139, 57,113,177, 72,141,200,201, 25,177,109, 97,125,142,144, 33,133, 96,245,  3,179, 67,166,136,105,140, 68,
+244,225,133, 83,114,130,217, 64,248, 43,125,124,255,168, 34, 31,254,146,226,238,242, 12,167, 75,156, 16, 56,105,120, 98,114,206,
+ 46, 93,226, 81, 94,115, 54,222,101,119,186,203,108,119, 31, 47, 36, 50,175, 88,106, 73,231, 45,182,239,105,186, 22, 99, 12,193,
+ 57,154,152,178, 36,186,118,131,183, 22,221,119,  8,151,162,108, 51,239,144, 17, 86, 93, 71,149, 25,182,124,164,  9, 30, 33, 37,
+ 89,219, 13, 33, 43,142, 82,128,243, 14, 47, 37,116,  9, 39, 61,119, 61,139,232,120,218,119,184, 64, 58, 68,132, 72, 46,  2,219,
+ 72, 70,  2,218,174,199,250, 84,107,174,229,134,130,136,114,158,145, 78,246, 75,233,147, 48, 80, 18,153, 42,141,140,130,189,114,
+  4, 17,246,171, 41,187,229,132,253,233, 30,120,207,184,218, 66,153,156,158,200,118, 61,195, 71,136,202,144,143,106,118, 77,193,
+168, 30, 97, 16, 20,121, 73, 32,173, 76,147, 36, 77,162, 17,116,125, 79, 67,164, 18,146,135,182, 67, 16,121,220,116, 76,144,252,
+174,179, 67, 51,155,106,233, 76, 74,238,249,192,127,180,179,205,135,253,134,175, 20, 21,167, 10,246,178,130,247,230,167,252,244,
+246, 62,239,109,150,252,196,222, 85,126,235,224,225,191, 38,246,251, 51, 16,141, 25,184,237, 67,215, 13, 67,142,164,122,110,233,
+202,205,115, 97,220,139,  7,128,126,192,154, 74,157,210,140, 80,169,216,  5, 63, 76,  1,178, 36,170, 67,160,180, 98, 44,147,  7,
+247,172,237,168, 68, 26,  3, 27,159,130, 71,112,126, 16,135, 13, 30,242, 24,241, 81,242, 90,145,161, 73,  5,232, 40, 68,116,112,
+236,104,201, 88, 72,142, 93,155,198, 87, 23, 42,241, 48,164, 50,169, 60,173,  8,172, 27,210,214,  6, 73,129, 15,233,141,166, 72,
+ 42,255,174, 31,236,119,109,242,224,251, 54, 21,244, 23,167, 27, 58, 79,227, 35,165,211,225, 70,203,231,192, 26, 49,  8,  1, 47,
+212,243,118,216,215, 91,  7, 93, 67,140,146,243, 85,199,198,192, 52,164,147,164, 28,222,137, 54,198, 52, 60,144, 49,217,110,172,
+ 67,239,237,241,157,165,227, 53,229, 56,246, 49,121,240,237,176, 99,151, 60,103,209,191,240,245,224,253, 31,240, 99, 95,126, 27,
+162,160, 91, 55, 52, 93, 75, 12,112,114,188, 32, 56,205,229,253, 41, 50,138,164,110,207, 82,184,  9, 49,237,246,189,136, 88,231,
+ 81, 33,210,181, 46,105,  1, 69,234,180,145,145,202,104,106,157,186, 25, 31, 35, 27,235,159,229,255,246, 62,157,180, 54,222, 51,
+239, 35,185, 74,123,248, 16, 97,233, 28, 77,136,120,163,104,148, 98,215,148,232,233,140,107,245,  4, 47, 12, 74,101,140, 77,201,
+ 91,147, 45,234, 24, 57, 62, 61,161, 95, 47,144, 62,224, 54,150,178,183, 76, 16, 92,158, 86, 76, 47, 79,241,163,156,172,177,140,
+148, 34,100,169,135, 21,153, 70,150, 25,162, 48,132, 33,198, 81, 93,160,252,125, 28,130, 43, 36, 82, 43,116, 72,  7, 12,161, 69,
+ 50, 63,132,136, 70,144, 41,137,138, 17,233, 61, 15,207, 44,246,220,226, 99, 78,254,210, 22, 71, 33,195, 44, 55,184,239, 31,208,
+172, 91,226,162, 69, 54, 29,172, 59,226,162, 33, 62,221,224, 30, 29, 33, 90, 75, 92, 54, 72,169,209,181, 70, 79, 42, 86,179,130,
+197, 86,193,114, 82,225, 70, 37, 22,193,193,201,138,213,233, 41, 70,  6, 68, 94,242, 31,206, 74,174,232,140, 42, 42, 38,120,238,
+105, 69, 94, 20,140,119, 46, 49,189,122,137, 27,175,220,226,246, 87,238,144,125,249, 37,254,179, 66,243,210,207,222,225,105,181,
+224,157,255,254,143,248,147,223,120,151,207,127,229, 22,255,227, 63,249, 29,142,190,249,  1,211,109,197,150, 44,120,245,213,125,
+174,120,203, 79, 42,193, 87,203, 49,111, 86, 51,102,249,136,135, 70,179, 46, 39,124,245,165, 43,188,117,117,143,219, 87,118,184,
+148,143,248,169,157,171,188, 49,221,230,229,224,248,189,222,242,255, 60, 60, 69,202,130,127,220, 75, 78, 51,197,189,113,201,189,
+237, 17, 31,205,106,244,164, 98, 60, 42,208, 42,163, 95,108, 56, 63, 95,128,136, 40, 29,185,225, 54,124, 81,  9,222,232, 87, 92,
+ 19,158,243, 78,176, 18,146,167, 22,254,217,131, 13, 31,158,174,233,137,200,113,201,206,172,228,242,168,166, 18, 37, 11, 20, 31,
+157,159,115,182,217,160, 67, 67,215,183, 40,231, 19,238,183,235,217,207, 37,165, 72,110, 11, 39,101,138, 90, 21,145,133, 11,228,
+ 82,160,133,164,115, 22,215,  7,140,132,105, 93, 83, 73, 67,149, 41,114,149, 72,123, 81,192,153, 13,116, 49,221,215, 22, 40,149,
+ 98, 41, 36, 75, 36, 47,231, 25,175, 21, 53, 39, 81, 98,  5, 92,215,138, 93, 37, 57,113,129,195, 16,249,183, 71, 99, 58,151,238,
+199, 39,  1,190,190, 90,178, 21, 45,135,135, 39,233,253,127,190, 30,216, 26, 46,  9,111, 59,143,232,134,184,228,139, 28,114,169,
+147, 94, 98,208,246,136, 48,172, 38, 73, 90,158, 11,144,231, 95,244,248, 75, 11,187,214,196, 34, 35,150, 37, 33, 31, 19,242,138,
+ 80,143,  8,245,132,176, 53,195, 95,217,199,223,186,140,187,178,143,187,126, 11, 55,221,198,141,118,233,138, 17, 55,242,146,237,
+ 73,133,208,  6,235,  3,167,203,  6,103, 91, 68,244, 24,231,232,135, 88,236,190,217,224,125,106,128,100,183, 38,244, 45, 83, 34,
+218,182, 20, 49,160,  9, 72,215,147,133, 68,165, 28, 41, 77,215,247,168,220, 16,218,110, 88, 69,166,130,231, 87, 29, 70, 40,230,
+237,134,181,237, 57,179, 13,202,  7,100,244, 20, 65,240,165, 50,227,181,170,224, 70, 89, 48, 53,130, 50, 66,215, 56,148,128,137,
+ 18, 76,149, 98, 44, 53,106,200,166, 24,101, 25,219,121, 77,129,160,154,108, 39, 52,116, 86,176, 83,207, 64, 42,182,234,105,154,
+234,148, 19,108,244,228,229,132, 50,171, 88, 71,203,104, 60,101, 84, 86, 76,165,162, 30,143, 17,222,145,149,229, 51,108,118,136,
+129, 60,203,211,164,161,239,176,222,179,118,150, 35,223,209,  6,199,161,235,153,119,158,223,107, 27,162,179,105, 10,  3,140,165,
+100, 25,225, 31,236, 76,248,229,179, 37,191,184,181,197,159,180, 13, 87,165,226,126,219,240, 51,219,251,252,225,114,206,151,234,
+ 41,255,114,121,202,191,121,227,206,191,166,148,182, 11, 16,188,139, 41,199, 91,188,128,145, 45,179,231,  9,108, 65, 13,187,105,
+249,188,219,247,110,240,153,155,231,184,216,222,131,242, 84, 49,176,233,  3, 85, 85,160,131, 39,148, 37,141,119,196,102,195, 56,
+207, 57,219,180,228, 82,176,177,142, 92, 11,172,181,100, 34, 69,126,166,159,153, 65, 88,131,148,236, 23,146, 54, 66,239, 29,185,
+130,235, 74,243,212,  5,178, 40,208, 56,240, 58, 21,226, 63,155, 62,183, 57, 79,227,248,233,236,249,117,108,  6,150,123,166,211,
+206,126,211, 63,247,226, 67,218,203,255,168, 44, 21,111, 65,141,135,160, 23,255, 67,214, 54,138,148, 18,151,186,127,  9, 34,  7,
+ 29,210,239,  0, 16, 59, 32,227,248,112,133,218,139, 92,178,130,221,188,160, 42, 13, 83,224,208,123, 64, 82,  2,141, 81,168,195,
+ 67,126, 66, 73, 22, 62,114,213,120, 30,106,153, 18,220, 46,172,117,127,193,215, 39,247,238,115,247,206, 93,188,116, 24,163, 80,
+ 66,113, 54,159, 51,221,154,114,112,176,230,234,229,  9, 40,137,136,130,177, 17, 44,  8,184, 76, 17,219, 52,134,180, 49, 32,181,
+ 72,  1, 36, 34, 29,220,188, 77,138,239,165, 76,250, 66, 41, 32, 87, 41,172, 38,196, 52, 94, 35,132,164,234,143,158,115, 11, 15,
+186,158,206, 57,114,160, 48,146,210, 24,150, 34,242,250, 94,205,149, 60, 35,168,136, 50,154,229,201,146,147,179, 99, 26, 21,217,
+ 22,  5, 63, 51,221,166, 46, 75,182, 46,141,209,163, 28,217, 69,108,105,136, 70,210, 58,199,165,221,  9,106,119, 76, 53,239, 89,
+ 57,203,121,  8,228, 49, 32,137,104,163, 80,133, 30,244, 21, 32,181, 67, 12,150, 74, 37,  4,194,250,180, 22, 25,226, 99,133, 15,
+105,250,137, 74,163,238,232,  9,153,230,223,248,220,140,227, 71,107,138,203, 91,204,246, 74,158, 78, 86, 60, 62,172,177,149, 37,
+211,145,  8, 92,162,227,180,105,185,254,210, 62,157,236,249,214, 31,124,135,187, 69, 75, 49,170,200,166, 19,140, 74,153,235, 31,
+182, 13,  7, 25,124,235,227,251,100, 85,141, 81,146,163,245,138, 27, 59,151,144,  1,166,221, 49, 71,118,143,203, 82,161,  0, 17,
+  2,215,102, 99,108,132,166,245, 44, 59, 75,159, 37,182,194,127,153,149, 76, 17,252,164,146,228, 63,253, 83,252,224,115, 43,234,
+227, 67, 54, 31,126,143, 95,124, 99,151,229,106, 13,167,115, 94,223,209,236,230, 37, 86, 73,176,145,220, 36, 91,209,182,140,188,
+ 33, 34, 97, 58,230,234,222,140, 81,153, 19,  4,236,  8, 69, 17,210, 65,108,164,  4, 63,119,220,240,251,173,227,151, 63,124,140,
+ 95,156,227,110,222,132,151,247, 97, 84, 32,164,224, 88, 75,222,172, 43,222,190, 50,130, 43, 99, 62,125,103,206,131, 39,247,153,
+246,107, 94, 25,101,236,196, 64, 94, 84,220,113, 29, 31,206,159,242,127,124,175,225, 35,149,232,100, 58,147,196,160,216,180, 26,
+145,101,108,215, 57, 87, 94,185,206,102,123,130, 59,188,196,236,248, 35,246,215, 11,114,215,242, 56, 43,248,104, 25,153, 24,197,
+ 90, 20, 68,165,200,138, 60,241,190,157, 37, 68,201, 44, 51,116,222,178,233, 28, 83,173,200,202,140,  3,219,225,188, 64, 27,201,
+ 90,192, 72, 41, 64, 49, 95,109,208,178, 96, 37, 90, 78,176,236,100,  5, 51, 41, 89, 57,207, 29,109,240,209,113,179,204, 57,160,
+229, 82,208,140,149,230,172,111,121,173,204,112, 68,126,165,177, 60,104, 58,246, 11,197,217,186,101,108, 20,244, 61,213,100,196,
+230,124,158,166,120,157, 27,178, 28,210,174, 42, 14,152,103, 49,196,184, 70, 13,194,  5,162,145, 63, 84,164,  5, 36, 46,190,115,
+127,174,120,191, 88,192,127, 84, 65, 39,207,146,190,167,168, 17, 87,174,240,229,235,151, 41,178, 49, 31,135,192,227,205, 26, 17,
+ 93,226,238,  3,152, 10, 17, 83,116,109,180,142,168,  3,149,146,136, 34,167,111, 28, 90, 70,150,237,146,245,106, 78,219,183, 76,
+ 67, 67, 57,217,162,105,150, 88,219,130,144,  8,  2,210,123,116,240,212, 82, 80,111,230, 20, 58,103, 25, 28,151, 90,199, 90,103,
+180,202,160, 17, 44,108, 79, 37, 20,174,235, 25, 27,205,122,189,192, 75,  1, 93, 64, 11,201,252,252,156, 85,136,172,250,134,162,
+119, 72,239, 16,120,246,137,220, 44, 74, 10, 37, 81, 49,176,  4,156,118, 52,163,140,104, 35, 99, 97, 24,229,154, 45, 93,226,189,
+103, 42, 20, 54,146,220, 42,179, 75,  4,239,240,163, 29,172,235,144,229,104, 64,177, 26,148, 78, 77,204,246,100,139,229,102, 73,
+ 94, 84,132,168,201,164,129, 76, 49,174,199,216,182,101, 50,174, 17, 46,164,120, 89, 36, 89, 38,177, 93,159,  8,155,218, 48, 95,
+156,178,244, 61,171,174,225,  9,145,123,155,150,247,205,208, 60,102, 25,248,228,192, 90,153,146,255,250,210, 22,255,237,193, 41,
+255,221,141,171,252,227,167,135,252,253,237, 41,247,108,207,141,114,196,255,122,112,192,191,119,233, 18,255,124,121,206,191,123,
+233, 26,191,127,248, 20,197,206,221, 95, 34, 31,216,225, 38, 27,196, 96,234, 57,149, 44,252, 21,198, 57, 90,167, 16,147, 11, 75,
+ 26, 47,140,213, 61,207,169,112, 23,208,149, 11,113,221,179, 64,  4,159, 58, 94,235, 83, 39, 92, 21,100,163,154, 24, 35,151, 71,
+ 37, 85,  8,200, 92,147,245, 14, 19,192, 32,152,219, 62,177,197, 67, 36, 58,139,119,201,228,227, 90,151, 14, 23, 82, 38, 21, 57,
+201, 74,214, 10,197, 37,173, 89, 74,168,133,102,233, 29, 19,173,105,188,163,139,146, 77,  8,233,116,244,103, 89,233,145,244,  4,
+247,107,200,202, 84,152,241,233,119,189,232,212,173, 79,187,180, 24,  6,205,192,160, 48, 15, 46, 61,135,179,173,244,221, 13,  7,
+ 13, 72, 99,125,212, 48, 13, 48,195,140,203, 13,227,254,152,126,143,224, 94, 88,111, 12,138,124, 21, 89, 55, 29,135, 86,241, 82,
+161,120,106, 29, 82,169,148, 74, 23, 19,205,205, 13,  7,129,167,173,227,212,246, 44, 93,196,218,144,198,250,222, 15,215,240,163,
+191,238,189,247, 33,175,252,216,103, 40,234,146,172,168,184,125,247, 37, 66, 23,147,208, 79, 73,102,211,154, 66, 43,  2,130, 60,
+ 87, 73,188, 31,160, 15,150,174, 77, 98, 63,231,211,148, 48,248,128,141,129, 73,101,104,123,143,144,  2, 45, 34, 82,165,209,123,
+231, 35,185, 86,212, 90,210,184,144,124,236, 33,210,249,192, 73,219, 19, 34, 84,185, 73,147,  1,163,120,184,105,185, 34, 97,247,
+251,167,156, 29,156,210,172, 55,188, 90, 21,252,120, 61,229,198,254, 22,179,237,  9,123,121,201, 40, 42,140,117,112,214, 34,231,
+ 27,138,121, 71,239, 35,125,231,169,124,164,152, 84,132, 92,113, 26, 29,143, 36,204, 53, 24, 45, 17, 90,162,202,156, 40, 85, 90,
+209,132,180,139,198, 70,  2, 73, 39,128,124, 30, 81,160,132, 64, 41,133, 48, 73,193, 27,149, 74,196,191,253, 49,163,203, 99,230,
+ 81, 97, 90,199,189,243,  6,191,182, 72, 37, 41,242,140,160, 12,148, 21,217,229, 93,102,151,198,232,155, 59,236,237,238,241,222,
+135,223,231,192, 40,158, 68,248,211,249,156,127,241,209, 39,252,223,191,252, 33,223,253,173,143,121,242,221,115,238,127,235, 41,
+ 63,248,230,  1,143,191, 51,231,189,175, 61,225,221,211, 35,238, 77, 36,127, 18, 35, 47,111,111, 17,235,146,249,143,221,162, 51,
+134,217,155,183, 17,215,118,161,168, 57, 63,239,153, 20,138,151,115,195,142,  0, 35,  4, 65, 74, 44,176,223, 54,188, 28,160, 78,
+ 87,136, 48,146,219,163, 41, 69,158, 92, 23,214,167, 52,177, 72,160, 19,145, 21,  2,103, 50,182,171,130, 40, 18, 71,193,104,197,
+ 40,207, 48,133,230, 20,201,147, 40,249,194,213, 25,183, 38, 99,122, 10, 38,235,  6,113,186,100,125,180, 68,228,134,185,139,108,
+103,138, 91,165,225,202,164, 96,186, 91,161,119,118, 24,159, 58,110,133,134, 92,105,100,140, 16,  5, 83,  1, 69,220,240,253,195,
+167,248,205, 28, 86,235, 20, 61,217,123,106, 36,219, 66, 82,107,193,164,202,248,210,229,  9, 63, 87, 78,121,115,179, 65,207, 15,
+120,180, 90,240,125, 31, 49,194, 18,237,  6, 17,  3,189,117,196, 24,113, 94, 80,122,203,117, 26,110,216,158,171,194, 83,216, 13,
+125, 51,103, 79,151, 84, 50,114,110, 29,211,188,  2, 34,167,235,142,162,200,152,247,150,117,  8,188, 57,158,240,199, 77,207, 79,
+140,106, 76,150,113, 24,  2,159, 41, 11, 58, 27,184,149,101, 84, 69, 77,229,122,174, 22, 21,235,232,169,179,156, 83,103,217,209,
+154,153,146,132,216,177,105, 61, 75,235,120,228, 67,154, 84,246, 22, 86, 77,106, 30,130,123,158, 14, 23,211, 71,133,208,105,133,
+ 39,244,112, 95, 94,136, 36,  7,221,132,  4,100,  8, 63,252,231,103,154,138, 23, 10,191, 76, 66, 89, 97, 52,236, 94, 38, 78,167,
+112,247, 54,188,242, 38,255,254,235, 95,228,165, 91, 55, 25,143,119, 57,245,112, 96,138,164,198, 71, 19,116, 70,140,142, 32,100,
+ 42,122, 74, 16,186,150,118,179,132,213, 57,151,148,199, 45, 78, 56, 61, 63,224,119, 30, 61,162,136, 61,149,150,204,155, 21, 82,
+ 43, 54,109, 75, 41,192,119, 27,100,215,176, 75,100,199,187,148,150, 40, 21,187,182, 39, 71,176, 45,  5,165,179,232,190, 65,199,
+200,194,183,172,251,134, 85,187,193,246,142,195,243, 51, 54, 77,199,217,249,  9,125,211,176,238,214,136,174,167,196, 81,186,158,
+ 50,  4,222, 30, 21, 84, 74, 81, 75,137, 33, 50, 70,144,  9,207, 30,138, 59,153,228,229, 66,179, 47,  4,183,117,198,231,138, 17,
+149,183,188, 85, 76,168,198, 59, 92, 67, 83,142,182, 80, 49, 80, 84, 51,164,209,104,147, 51, 46, 70, 72,149,161,243,156,206, 91,
+242,170,  6,165,168,181, 65,228,134, 74, 25, 60, 80,215, 37,222, 38,237, 72,146,140, 37,139, 31, 64,223,245,  4,215,163,162,224,
+160,155, 51, 15, 61,143,154,  5, 31,250, 72,211, 54,  4, 33,137, 46, 37, 38, 34,224, 23, 70, 25, 95,223, 88,254,171,253, 75,252,
+195,199,143,249,111,174, 92,229, 55,207,230,188, 90,230,252,243,179, 57,255,206,238, 46,191,219,172,248, 74, 61,225,187,109,195,
+207,236,239,163, 24,223,249, 37,134,228,234,103, 40, 87, 31, 82,241,177,253, 95,173,176,135, 11,  5,248,144,141,174,228,179,177,
+119, 42,218,242,121,161, 18,164,221,180,148,207,147,217,132, 76,105,109, 98,144, 71,215, 37, 91,101,129,145,146,206,167,206, 38,
+119,  1,105, 36, 65,  8,106,239,232,108, 79, 31, 34,113, 16,233, 41,231,  9, 46, 32,227,160,  7,158, 47,210,  1,165, 11,168, 42,
+137,164,158,120,203,174,212, 52, 70,176,140,130, 22,207, 18, 48, 58,121,149,125, 55,168,216, 95,188,222, 11,218,221,197,186, 32,
+ 12,192,157, 16,134, 34, 62,  4,212, 68,159, 58, 96, 51,232,  0,156, 75,133,120, 50,133, 73,145,242,162,155, 52,129, 64,103,  3,
+144, 39, 41,250, 25,186,236, 52, 22,143,195,212,162, 75,  7,132,100,190, 76,207, 87,140,207,179,157, 61,220, 91,119,188, 58,206,
+121,208, 58,218,144,246,236,243, 62, 32,124,100,222, 59,244,176,159, 62,105,147, 24, 48,177,224, 47,226,129,254,226,215,244,149,
+183, 94, 99,182,183, 77, 57, 74,251, 69,173, 76,242, 23, 11,157,212,168,  6,252,144,128,100,148,120, 54,146,111,173,195,217, 56,
+128, 51, 34, 46, 68,188, 79,162,188,186,214,140,139, 11,223,182, 24, 50, 34,  4, 82,  8,250, 24,217, 88,139,141,145,214,185,103,
+ 33, 18,142,136, 25,124,169, 79,206, 27, 78, 91, 75, 89, 23,108, 13,177,186,181, 82,148,101, 78,221,123,132, 23,200,117, 79,214,
+121,124,215,226,251, 64,167, 33, 40, 73, 62, 42,168,148,196, 52, 14, 19,  4,186,179, 20,227,138, 32, 21, 15,  6, 64,210, 44, 55,
+216, 16, 17,117,145,196,107, 34,  9,245,144, 98,200,102, 18, 16, 99, 18,238,137,132,193,149,198, 36,196,170,148,200,152, 70,184,
+253,172,128,227,142,145, 48,132, 43, 35,212, 89, 75,253,141, 71,212, 55, 50,194,106, 73,189,238,  9, 27,216,222, 42,216,158, 21,
+148, 85,142,237, 29,110,171,224,165,215,111, 48, 63, 92,179,152,207, 57, 56, 60,226,254, 59,103,184, 24,113,235,126,176, 26, 41,
+  2,142, 56, 60, 56,237,176, 77,203,222,103,239,210,188,121,155,241,237,109,102, 90,240, 55,103, 35, 94,149,138,167,125, 75, 62,
+169,216,185, 49, 99,186, 63, 33,107, 60,223,118,142,243,174,167,115,158,105, 81,240,165,124,130,107, 23, 24, 37,  8, 58,226, 46,
+ 95, 35,247, 45, 74,192,218,182, 60, 42, 10,158,110,206,233, 92,199,166, 89, 51,239, 90,142,188,227,220, 11, 58, 36,167,173,165,
+223,244, 84, 85,198,121,107, 57,207, 52,215,246, 42,182,170,140,105,109, 88, 96, 56, 12,146, 71,239,127,  3,115,126, 68,190, 17,
+184,147,134,251, 66,113,117,148,115,187,204,120,121, 39, 71,100,138, 75, 59, 53, 91, 78,145,183, 93,250, 40,146,  2, 47,224, 84,
+106,102, 89,205,229,190,165,223, 28, 51,251,228, 29, 86,135,247, 40,124,129,237, 28, 58,128, 80,146,215, 13,236,201,136, 89, 55,
+ 28, 62,125,200,159,156, 46,248,160,235, 41,130, 77,136, 99,107,105, 90,203,198, 10,246, 84,207,181,216,243,102,132,219, 72,118,
+109,  2, 47, 85, 82, 37,102,119,  8, 72, 21, 57, 93,174,153, 55, 61,107,111, 17, 94,178, 83, 87,188, 61, 29, 35,165,226,199,202,
+146, 81,149, 49, 69, 32,155, 13,143,150, 75,214,222, 49,210,154, 49,142,135,206,210, 44, 78, 41,148, 97,175, 40,184, 92,213, 68,
+ 33,120,119,189,230,188,233, 56,179, 61, 31,110,154,180,186,115, 46,233,138,194, 48,241,107,125,170,222,147,113,250,174, 50,132,
+ 73, 66, 64, 97,116, 18, 87, 14, 17,199, 23,133, 91, 13, 69, 93, 93, 24,145, 46,254, 14, 80, 90, 35,140, 70, 78,119, 16,251,123,
+136, 59,183,224,245, 55,225,218, 13,184,250, 18,236,221,228,238,238,117, 62,191,191,197,116, 84, 80, 22,134,211,206,242,201,226,
+ 20,188, 37, 70, 71,236,122,194,102, 77, 88,159, 17,150, 11,226,227,199,132,213, 25,241,195,143, 56,222, 44,248,238, 71, 31,113,
+255,244,128,239,190,127, 15,119, 58,231,112,221,112,180, 88,147, 27,120,112,124, 76, 17,122, 14,142, 78,152,224,216, 18,145,157,
+102, 67, 38, 21,133,128,202,246, 76,165, 70, 18, 40, 92, 64,185,158, 16, 28, 85,179,102,215, 89,122,103, 25,183, 13,133,235,152,
+250,150,151,155, 21,175,  7,207,155, 50,240,122,215,242,213, 76, 51,113, 45, 55,137,236,234, 68,104,219, 86,154, 26,216,213,  5,
+149,115,236,133,200,109,173,184,161,  4,175,168,130,151, 76,206,181,124, 76, 25,  5, 87,202, 45, 84, 86,176, 43, 11,172,150,236,
+ 25,  3, 85,157,146, 25,235, 26, 83, 22, 88,  4, 58, 87, 24,173,145,131,102,204, 72,129,212, 89,170, 33, 33, 82, 21,  9,243, 26,
+ 69,250,188,216,180, 61, 82, 43,122,107,217, 52, 45, 17, 79,192,209,249,150,165,237, 88,118,107, 14,188,231,  7,203, 22,111, 45,
+ 65,184, 36,202, 13, 22,132, 66, 70,248,185,209,152,223, 89,110,248, 47,118,183,249,223, 79,231,252,244,180,228,107,231, 27,254,
+222,222, 46,191,124, 50,231,239,110,111,241,141,126,195, 79,143,198,252, 95,243, 51, 20,147,151,127,  9, 61, 40,217,  7, 16, 26,
+153, 74,163,104,147,253,165,138,202, 63, 87,216,229,160,198, 20, 50,117,118, 46,166,150, 77,136,231,106,241,190, 29,238,198,193,
+ 43,205,176, 87, 87, 67,216,184, 76, 79,230,222, 40, 25,234,199, 82,160,140,164,  9,145, 82, 73,198, 42,112,210, 36,144,128,247,
+ 17, 33, 35,177, 11,207,206, 35,193, 37,186,220,179, 29,126,232,152,152,140, 69, 27,217, 26,167,200,187,131,181, 99,100, 20,157,
+144,228,153, 34, 72,129, 68,146, 27, 69,215,118, 63,250,122, 47,196,125, 74,167,195,142,144,207,135, 88,201, 83,  4,114, 56,180,
+244,118, 64,222, 14,172,119,100,  2,225,244,205,160,210,203,  6, 40,204,144, 51,159,107, 38, 10, 58,149, 14, 63, 25, 17, 47, 84,
+218,129,203,240,156,  0,199,112,224,146, 98,144,175, 40,158,  6,199, 37, 35,217, 81,146, 67,235,217,143,176, 12, 48, 65, 96,173,
+103, 17,161,233,  2, 34,  4, 98,102,210,193,227,226,223,252, 11,190,158, 84, 21,159,189,243, 18, 16, 89,175, 54,116,155,  6,231,
+ 60,101, 93,179,119,105,130, 12,130, 44, 55,212, 70,167,  4,164, 16,201,134, 32, 16, 31, 99,234,134, 92, 68, 32,153,212,  6,103,
+ 61,253,224,248,203,179,164, 24,143, 34, 21, 65, 49,176,124,146, 35, 39,117,233,193, 71, 58,235,233,250,192,249,198,114,180,234,
+152,175,187, 52,234, 30,229,124,239,225, 49, 79,219,142, 85,140,108,156,227,241,102,195,185,  0, 21, 60,217,118, 69,147, 27,178,
+189,154,234,198, 14,242,165,109,182, 62,115,153,226,198, 14, 98,167,166,120,105,139, 77,149,161,131,164, 28, 21, 60, 94,183,148,
+ 70,112,100, 29,171, 16, 17,101, 78, 81,164,113,100, 16, 67,204,164,  2,171,161,147, 18,127,  1,202, 41,116,202,  8,207,146,134,
+ 68,  9,129, 46, 53,147, 50,103, 60,183,244,203, 13, 92,174,104,103, 21,197,237,109,202, 73,137,253,100,201,225,161, 32,  8, 69,
+115,214, 48,177, 29,217, 52,167,239, 28, 75, 23, 40,182, 42,110,189,113,157,197,227, 57,255,234,183,222,199,125,216,224,214, 61,
+110, 40,229, 23,126,226,100,100, 75,247,159, 56,111,152,127,237, 62,229,205,138,171,119,175,242,153,222, 51,126,247,  4,117,222,
+178,127,222, 49, 89,109,184,150,193,205,121,203,229, 16,248,172, 48,188, 90,140,184, 51,154,242,242,213, 61,202,233,132,221, 98,
+151,157, 87, 95,226,234,181,107, 92, 63, 92,146,119,150, 32, 10, 94,255,249, 47, 51, 89, 69,190,181,110,249,188,202,200,219,150,
+223, 62, 59,229,228,248,152,135, 15, 62,225,254, 71,223,231,193,135,127,202,175,127,227,187, 92,159,237,144, 21, 25, 81, 39,192,
+ 74, 84,138,168, 52, 42, 74,158,116,129,167,197,152,240,107,255, 27,246,221,111, 34,154, 99,100, 95, 33,246,118,248,183,174, 20,
+ 92,159, 22,236, 26,144, 54,208,244,144, 91,139,142, 17,235, 28,157, 86, 72, 36, 91, 50,114,107, 50,226,243,245,132,219, 85,205,
+151,138,140, 75,199,159,194,226,  9,247,142, 78, 57,235, 34, 51,235,224,120,206,251,143,239,241,235,159, 60,228,119,143,214,248,
+ 62,176,136,130,220, 91, 38, 50,162, 20, 92,201, 97, 11,197, 77, 34,159, 81, 25,123, 66, 82,233,156, 66,104, 38,166,  2, 33,  9,
+121,198,178,143,172, 17, 92,157,141,184, 52, 25,179,157,101,236,150,  5, 74, 40,174,103, 25,123,185,193,  7,207,121,179,228,201,
+124, 78, 29, 61, 27,223,211,245, 61,206,121,206,219, 53,125, 12,196, 24,152, 72, 65, 93,105, 74, 60,149,239,  8,182,227,157,174,
+ 29,236,178,253,224,178, 25,194,171,242, 28,246,182,224,202, 46, 76, 70, 48,173, 17, 85,  9, 89,134, 48,  5, 66,167,213,131, 80,
+ 73,247,241,172,144, 59,135, 26, 18,177,245, 80,208,117, 85,160,198, 91,200,235, 87,145,175,220, 69,220,190,131,184,126, 23, 49,
+189,130, 24,109, 67, 61, 67,100,  5, 72,137, 81,138, 27, 82, 83,106, 65,179, 90,243,240,232,132,  7,167, 79,137, 39,135,196,131,
+ 35,226,209,  9, 60, 57, 32, 30,158, 19,159, 30, 19,207, 78,137,199, 39,196,213,  2, 78, 78,136,231,115,154,163,179,212,104,185,
+ 14,214, 61,221,124,197,227,249,134,211,206,114,127,177, 97,164,  2,211, 16, 40,154,142, 81,174, 49, 49, 48,138,  1, 33,135, 84,
+200,  0, 27,215, 99,164,161,114, 29,193, 59, 74,101, 24,117, 13,133, 84,212, 62,240,182, 50,188,102,114,110,168,156, 61, 41,184,
+ 82,148,236, 11,195, 29,165,185, 45, 52,175,161,216, 87,154,207,232,130,155, 89,205,110,136,220,150, 57,147, 16,184,161,115,182,
+132, 34, 71, 50,173,102, 24,  4,117, 62,  3, 34,121, 94, 33, 76,198,184,168, 64,107, 76, 89, 16,164,162, 71, 32,181, 68,152,180,
+ 34,246,  8,138,204, 96,148, 65,  9,153,112,194, 68,230,182,167,245,158, 24,211, 52,108,221,117,104,173, 89,174, 86,244,193,179,
+106,215,232,224, 88,180,107, 62,217,204, 33, 90, 54,209,243,209,217, 25,143,172, 39,244,158, 16,210,106, 37, 70, 73, 84,154, 27,
+198,144,101,154,183,138,140,239,181, 45, 63, 89,231,252,105,215,241,246,164,230,183,206,151,252,194,206, 22,255,231,209, 25, 63,
+191,189,197,175,157, 44,248,197, 27,151,135,162, 78,120,238,109,144,131,141, 44, 27, 10,186, 16,  9, 90,242, 87, 17, 85,  6,159,
+246,204,113, 40, 28, 23,124,120,  6, 49, 71,176, 63, 44,144,123, 81,129,221,167,195,132,168,198,212,211,138,141,115,236,141, 42,
+188, 79,128,130,105,150,130, 68,142,150,107,114, 96,221, 56, 92,151,196, 86,105,172, 45,137, 93,155,130, 96,252,  0, 89, 89,183,
+ 32,  3, 93,  7,251,147,156, 32,  5,199, 93,228,165, 73, 70, 47, 83,146, 88,144,130,177, 16,108,124,100,221,165, 40,209, 31, 25,
+ 87,122, 49,141,232,125,154, 60,200,144,174, 71, 12, 45,126,116,233,201,179,131,143,223,133,231, 93,126,240, 73,137,127,209,113,
+203,129, 31,175, 21,228,154,237, 12, 22, 46,178,149,  9,234, 76,178,236,  6,225, 92, 74, 32, 72,  1, 57,241,197,  3,196,176,202,
+ 80, 17,239, 60,109,  4, 17, 36, 70, 68, 14, 99, 68,133,192,177,183,228, 90,114,218,245,180, 33, 32,163, 32, 51, 17,223,251,212,
+173,255,168,107,188, 96,  4, 61,120,204, 91, 95,248, 28,163,233, 24,188, 71,162,121,114,248,104,208, 58,100,108,207,106,182, 70,
+121, 26, 30, 12,231, 18,165,  5,189,141,207, 94,234,222,  5,214,182, 99,213, 88,164,  6,219,  6,156,135, 34,229,148, 38,170,152,
+ 72,236,240,214,122, 70, 42, 57,169,227,112,141,109,111, 17,192,122,227,112,  3,113,204,122,207,238, 86,197,162,241,204,231, 75,
+ 30,247, 61,243, 81, 73,190, 55,193,111, 23, 92,185,182,141, 40, 13,187, 47, 95,162,188,190, 13, 59, 37,155,182,231,147,147, 57,
+199, 71,115, 30,156, 47,121,178, 89,115, 30,  2,203,  0,123,179, 10,165,224, 97,223,113,214,122, 62, 58,183,156,116,112,115,167,
+ 76,113,178, 98, 48, 52,  8,153,222,220, 82,208,137, 20,  3, 28, 11,147,166, 44,133, 70,101,  6,145, 25,188,148,100, 59,  5, 38,
+ 87,104,231, 40, 15, 86,152,101,159, 14,  0,153, 34,191, 54,161, 13,208,156,247,216,190,225,254,123, 31,114,115,225,169,175,111,
+ 35,  8,220, 91,121, 86, 86,113,235,141, 91,180,249,152,  7,239,253,224, 89,151,158, 30,138,  4,122, 77, 15,  8,  8, 52,130, 53,
+199, 95,251,148,211,218,241,234, 43, 55, 48,227,196, 65,  8,181, 98,147, 43,186,220,160, 34,140, 60, 84, 66,160,103, 53, 98,127,
+ 66, 48, 25,178,208,112,109, 10, 70,164,108,237,195,  5, 90,101, 68,149,163,119,119,248,212, 20, 60,169, 39,252,157,207,191,204,
+246, 75, 47,243, 73, 52,220, 47,115,186,173, 45,150,213, 22,171,106,196,141, 75, 99,222, 63,123,202,175,127,247, 29,126,245,227,
+202,128, 32,160,  0,  0, 32,  0, 73, 68, 65, 84,  7,124,245,165, 59, 84, 69,198,163,222,243,237,133,227,221,206,211,245, 14,166,
+ 21,188,243, 77,196,227, 71,  8,191,225,120,114,139,217,108,196,213, 12,214,125,224,253,121,207,102,213, 50, 81,130,176,106, 88,
+180,107,122,157,225, 98,164,170, 43,114,173,153, 25,195,165,178,102, 87, 41, 94, 26,111, 33,122, 75,190, 62,166, 57,123,196,239,
+ 61,120,196, 31, 60,121,200,111,124,250,136,251, 77, 64,138, 36,128,148, 67, 66,217, 76,  5,110, 41,201, 37,  4, 87,116,198,171,
+ 89,197, 94, 62,162, 30,111,145,229,  5, 85, 94, 33,141,102, 82,214,156,  5,207, 90, 75, 38, 69,141,204, 52, 99, 83,160, 77, 10,
+ 28,217,205,147,207,124,229, 60, 62,  4, 86, 49,249,237,181,210, 16,225, 90,150, 83,232,140, 76,  8, 58,151,160, 39, 99, 41,216,
+ 82,234,255,229,236,205, 98, 52, 77,207,243,188,235, 93,190,237, 95,107,239,174,238,233,233,238, 89,201,225,112, 68,138,164, 40,
+ 75, 98,168,213,202,130,196, 65,156, 88,200,102, 69,112, 16, 64,  8, 16,228, 44,  1,124, 66,192,201,137,207, 28, 32,  1,146,200,
+128,  3, 40,113,  2, 91, 32, 98, 71,118, 44, 75,150, 21,209,220, 68,114, 72,206, 62,189, 76,239,181, 87,253,219,183,190, 91, 14,
+222,175,186,123,134,155,236,  2,126, 84,117,119,161,250,223,234,123,222,231,121,238,251,186,217, 81, 10,213,180, 12,132,229,237,
+186,141,109,141, 76, 98, 78,195,112, 13,198, 83,216, 88,139, 81,174,147,205,232,  4, 26, 78,249, 11,107, 57, 47,108,140, 25, 76,
+ 51,142,165, 64,166, 89,188,169,  4, 53, 29,163, 54,182, 25,188,252, 60,159,120,249,101, 94,125,245,167,152, 95,189, 76,184,254,
+ 34,234,202, 85,244,245,231, 81, 59, 87, 80,147, 29,228,120,  3,161, 52, 34, 73, 16, 82, 61,177,231, 54, 53,101, 83,243,156,175,
+169,231,199, 28, 31,239,241, 79,223,122, 19,110,125,  0,123,199, 80,206, 96, 81, 18,108, 67,112, 29,161,173,163, 96,237,169,  6,
+ 40, 60, 93,  7, 92,191,146,116, 29,194,116, 96, 90,124, 80, 44,  2,188, 58,204,184,156,167,100,125,150, 70,166, 83, 50,169,112,
+222,146,244,209,210,214,199,119,122,174, 51,164,109,201,210,140,145, 74,184,144,102, 76,133,100, 59,201, 24, 34,152,232,148,137,
+212,228, 74, 49,206,198,228, 18,182,134, 27,108,138,148, 66, 37, 12, 68,194, 16, 65,138,100,154,230, 72, 23, 24,164,  5, 69, 82,
+144,168,148, 44,159,162,116,130,146,241, 57,209,249, 16,153, 42, 66,154,129,140,155,215,144, 36, 24,169,  8, 64,235,124, 44,226,
+198, 68,144, 40,  2,235, 61,199,229, 10,227,  5,149, 49,164, 50,238,207,165, 15,212,101, 69,227, 45,117,221, 34,130,231,184, 62,
+101, 97, 13,173,173,217,107, 74, 58,215, 49,146,146,155,203,146,198, 58,188,148,132,198, 16,180,130,208,114,162, 19,158,215,  9,
+  7,174,229, 83,217,136,111, 85, 13,175,165, 25,239, 52, 13,159,155, 12,249,191,143,206,248, 43, 23,182,248,221,131, 99,254,234,
+238, 54,191,123,103, 15,197,228,218,151, 30,239,181,207,241,175,169,234, 45, 20, 42,182, 87,169,254,137, 35,219, 15, 41, 54,206,
+119,235,198,199, 23, 86,208,123,175,195, 19,127,251, 99, 59, 91,255,103,  5, 66,231, 80, 20,108,108,174,177, 83,196, 12,221, 52,
+ 31,176, 62, 24, 49, 25,229, 56,161,  9,  4, 58,227,233,172,137,204,119,223,171,200,203,182,247, 95,244,227,240,178,142,130,181,
+206,130,212,148,  4,106,175,185, 58,148,212,  8,106,  4,195,158, 77,126,210,  5, 20,208, 56, 27,173,112,222,253, 24,240, 78,191,
+ 74,120,140,120,237,119, 94,162,159, 60, 72, 17,213,239,189,248,235,241, 27,252,233,142,191, 63,241, 33, 99, 10, 93, 93, 59,158,
+ 29, 74, 22,109, 96,213,122, 66,214,  7,192,208,131,105, 68, 63, 50, 87,231, 85, 38, 60, 41,242, 33,208,121,143,149,208,244,193,
+ 25,181,131,137,214,204,218, 14,153, 42,180, 11, 92, 72, 36, 75,239,113, 56, 48,242,  7,215, 12, 31,149, 73,108,174,241,210,199,
+ 95, 68, 41, 77, 49, 40, 80, 34, 33,205,115,108,227,144, 73,202,250, 90,193, 36, 79,250,194, 30, 98, 10, 27,158,166,117, 88,225,
+105, 26, 67,211, 57,108, 99, 35, 87, 31,143,237, 28,203, 30,100,146, 75,193, 86, 30,139,143,146,145, 41, 46,132, 96, 51,141,  8,
+200, 32,  4, 77,107,209, 90,145, 17, 69, 88,153, 80,172, 15, 50,172, 11,236,205, 74, 18,165,  9,233,144, 98,107,202,231,174, 95,
+228,217, 11,235,220,153, 87,188, 89,214,140, 70,209,235, 51,239, 12, 75, 99, 48, 62, 80, 19, 56,177,129, 54, 85,124, 80,182,220,
+ 42, 43, 92, 34,216, 26, 23, 84,222, 83,249,192,229,245,  1,163, 60,146,175,188,232, 81,172, 33, 62, 93,149,241,156,185,192, 92,
+ 72,150, 82,210,106, 77,208, 10,159,164,184, 68, 81, 37,146, 71,139, 26,115,255,132, 97,145, 66,221, 33,239, 45, 73, 79, 13, 90,
+ 56, 76,170, 73,183, 11,144,158,211,155,  7,172,150, 71,220,124,116,151,231,221,136,201,230,  4,175, 60,195,105, 78,174, 20,207,
+188,112,145,171,159,125, 14,207, 17, 15,222,217,195,145,227, 46,104,124,161,120,249,175,253, 69,126,227, 55,126,142,223,250,207,
+126,137, 63,186,188,206,103,127,237,243, 60,248,211,155,156,125,235,251,252,225,226,148,  7,211,109,190,126,188,  0,223,241,135,
+183, 30,241,198,195, 99,190,242,214, 13,222,153,207, 56,116, 49, 64, 35,117, 34, 34, 59,235,142,174,170,152, 61, 56,230,225,141,
+ 91,220, 63,188,203,172, 90, 48,115, 29,135,141,164, 29, 13,241,121,194,160,241, 36,235,  5,183, 27,207, 89,219, 69,142,148, 10,
+180,217,132, 79,125,236,  5, 54,167, 59,188,111,  2,255,117,  6,227,195, 35,190, 38, 70,220, 91,  5, 94,239, 28,167,214, 16,234,
+ 25,225,224, 30,226,213,207,194,231,126,137,191,246,197,207,243,189,189, 25,223, 45,225, 52,207,113,149,229,230, 73,203,124,213,
+178,142, 97, 77, 39,176, 40,185,107, 91,  6,217,128, 86,194, 40, 77,153,166, 26, 41, 96,152, 15,113, 82,145,228,  3,200,199, 12,
+164, 96, 61,180, 28,183, 21,207,109, 79,120,105,119,157,207, 62,187,195,206,214, 58,175, 76,  7,204,140,101, 77,  9,174,167, 25,
+ 47, 36, 57,207, 38,  5, 23,139, 33,195,225,  4,157,230,120, 47, 16, 66,160,243, 28,129,128,222,150, 54, 24,164, 92, 28, 79, 25,
+228,154,113,150, 50, 74, 53,  3, 45,153, 68, 21, 40, 37,240,168,118, 40,165, 49, 42, 33, 79,115,  6, 89,138, 78, 52,235,195,132,
+  4,197,133, 60,229,229, 52,101, 67, 10, 84,103,168,131,197,250, 64,237,  3, 39, 58,139,157,121, 49,238, 25, 29, 27,144, 15, 96,
+184, 14,131, 53, 80,  5,159, 31,141,121, 46, 79,153,166,  5,163, 44,225,134, 84,145,121,144, 36,168, 65,138,202, 51,210,205,117,
+254,141, 11, 23,248,249,231, 94,230,194,133, 93,174, 76, 47,115, 43,159,146, 76,182,208, 58, 67, 43,133, 84, 10,233, 37, 82,  4,
+ 68, 83, 34,140,129,217, 30,156, 60, 64, 28,220,133,131,  7,188,243,254,123,188,113,235, 22,239,222,190, 11,135,143, 96,177,136,
+141,137,233, 89, 36, 61, 49,244,252, 26, 25,254, 28,189,158,240, 62,174,173,178,140,124,115,194,120,156, 83, 46, 99,147,179, 61,
+ 28, 18,100, 92,153,106,161, 48,222, 19,165,110,113,216, 11,  1,167, 18, 50, 33, 41, 84,194, 24,197, 84,105, 82,149,144, 11, 73,
+ 34, 69,204,136, 72, 11,180,135, 60, 31,160,101,130, 78, 50,178,116,138, 82,146,172,216, 70, 39, 89,  4, 67,233,140, 68,231,232,
+ 36, 69, 39,  3,116, 62,  0,227, 80,121, 14, 89,134,212,154,144, 36, 40, 33,240, 34,174,126, 91,  4,171,224, 34,237,219, 71,158,
+ 99, 23, 34,153,239,164, 92,209,  4,208, 40, 78,218, 37, 45,209,198,108,186,142, 16,160,108, 42,172,181,212,166,229,164,158,145,
+ 72,205,202, 86, 28,155, 18, 37, 28,169,212,156,153,134,111,159,214,184,198,197,130,158,165, 96, 12, 97, 48,192,181, 49, 18,252,
+ 51,131, 17,127,127, 85,241,159,110,173,243, 59,167,167,252, 59,147, 53,190,124,114,198,191,191,190,198,223, 59,216,231,183,175,
+ 94,225,111,223,127,200,111, 63,127, 13,193,245, 95, 13,116, 13,232,252,113,199, 27,187,192, 52, 22,119,149,246, 34, 48, 34, 33,
+237,233, 24,207, 31, 39,156,179,150, 39,218,250, 62,  4, 70,165,113, 44,253,244,  1, 32,190, 83,162,162,114,178,  1, 91,107,252,
+236,218, 56,146,178,242,130,245,241,  6,153, 20, 81, 10,154, 72,230,203, 51,142, 23, 53,111,220,189, 19,  1,250,174, 15,135,233,
+120,146,140, 38,125,196,196,218,250,137, 74, 61,201,216,152,228, 52,109,111, 21,200,  5,117, 31, 46,103,122,129, 86,181,172,227,
+232,190,106,126,252,227, 27,228,209,190,199,135,207, 37,143,191, 62,247,129,123, 27,159,  7,251,145,174, 56, 27,197, 16, 28,157,
+146, 41,137, 77, 19, 92, 99,144,153,194, 11, 17,119,223,222,163, 18, 21,179,225, 77, 27,253, 51,210, 63,  9,199, 57,159, 80, 60,
+ 29,178, 35, 50,178, 73, 70, 46, 20, 99,160, 72,  4, 11, 19,208,192, 18,207, 98,213, 33,117,136,194, 55,249,147, 31,231,127,245,
+ 55,254, 58, 91,187,235,172,230, 21,213,210, 96,203, 22, 65,194,213,107,187, 92,187,184,206,206, 70, 30,173,248, 46,208, 57, 71,
+217, 57,102,179,134,206, 89, 14, 14,151, 52, 62, 16,188,167,173, 76, 68, 67,138,128,206, 36,215,118,198,108,140,115, 46,141, 19,
+106,235,  9, 61, 89,202,  7, 72,130,167,181, 14, 27, 60,243,170,195,  4,200,165, 96,185,108,162, 74,117, 99,128,107, 13,124,103,
+143,159,255,133,143,115, 79,122, 30,182,142,129, 55,152,163,  5, 15,171,150,195,174, 35, 47, 82, 62,249,252, 22,137,140, 32,140,
+101,101,185,119,188,194, 54,  6, 43,161,154, 55,164,153, 34, 75, 83,190,240, 83,207, 32,147, 24, 42, 50,202, 82,210, 52, 33, 32,
+ 72,100,244,133,203,214,226,107,195, 73,217,177,183, 50,172,156,199, 17,131, 94, 38, 90,177,145,197,  0, 27, 41,  4,239,175,106,
+230,239,157,145,221,127,196,171,121,202, 39, 46,172, 83, 92, 25,146,140, 51,194,131, 37, 85,145, 97,159, 29, 51,219,159,179,247,
+250, 45,234,197,156, 66, 74, 62,243,234, 39,209,215, 54, 73, 47, 76, 57,182,142, 71,166,227,254, 89, 75, 82,151,236, 90,195,239,
+126,253,  3, 94,122,113,135,195, 58,230,149,255,235, 87, 39, 12,115, 77,  3,252, 63, 55,207,120,176,106,  9, 85, 69,168, 43,218,
+179, 35,194,235,239,240,220,231, 94, 98,224, 44, 95,251, 95,190, 79, 69,135, 66, 60,161,196, 95, 29,242,243,159,221, 33,155,142,
+ 96,186,206,188,172,217,120,230, 25,190,246,213,175,114,252,250,119,162,237,121, 48,226,139,175,188,198,197,151, 63,206,120,109,
+139,170,156,113,227,224, 17,167,203, 51,106,229,185,127, 88, 51,188,184,205,231, 95,249, 36,172,111, 51, 48, 53,191,109,106,178,
+214,241,245,197,156,255,166,216, 37, 76,135,228,120,  6, 18,190,119,120,138, 56, 61,224,123,127,245, 87,216,185,182,193,223,250,
+211, 59,252, 79,239, 30,146,140,134,108,100,  9, 63, 55, 25, 32, 23, 21,175, 77, 37, 63,163, 19,210, 89,201,236,224,144,253, 44,
+165, 73, 19,158, 25,228,  4,231, 16, 66, 98,165,160,171, 26,230,120,222,173, 91, 14,202, 21,123,173,225,164,109, 89, 27, 12,249,
+194,230, 26, 71,213,130,177, 82, 72,107, 57, 62, 59,162,109, 74,174, 16,248,124, 62, 38, 79,114, 10,157, 50,154,110,129, 76,177,
+193, 83,219,134, 90, 72,218, 52,225, 56,  4,190,221, 85,140,135,  3,108,154,179, 51, 46,240, 62, 48, 12,113,197, 52,206, 18,142,
+202,150,183,155,134,195,210,176, 32,112,214,182,164,210,179, 22, 36,185,  2,235, 61,163,  4,158,243,158,103, 85,202, 56, 85,204,
+234,138,239,174, 74,246,186,138, 47,175, 42, 58,231,  8, 73, 66, 72,114,130, 46,122, 32,151, 36,168,148,207,227,121,105, 90,240,
+188,150,156, 86, 37,243,106,201,172, 58,101,191,238,248,238,170, 66,121,251,120,212,254,249,201, 58,159, 26,141,120,254,210,117,
+198,131,  2,147,104,222, 61, 61,227,110,217,114,218, 25, 22, 77,205,161,115,184,230, 12,187, 60,195,204, 43,236,209, 25,246,240,
+ 33,118,178,137,179,101,236,137, 58, 27,107,182,181, 31, 86,200,255, 57,125,239, 63,170,207,  3, 16,151, 47,178,117,237, 18,215,
+243,156, 11,243,  5,207,121, 79,158,167,172,165, 25,235, 58, 97,172, 19, 84,112,196,129,159,196, 57,131, 82, 17, 39,158, 73,205,
+ 80,104,118,101,194, 68, 39,100, 34, 68,236,180,233, 72,148,  6,227,208,249,  0,165,242,  8,109,209, 26,130, 66,166, 89,252,218,
+152,199, 90, 29,172, 69,140,167,224,226, 66, 75,168, 72, 33, 68, 39, 88, 66,236,192,149,192, 33, 56,  1, 78,148,231,216, 65,173,
+ 35, 29,175,108, 12,  3, 33,104,172, 35,193, 19,172,163,234, 90, 12, 14,108, 84,229,111, 10,193,220, 52, 76,116, 70,103, 91, 62,
+ 88,158,176,165,115, 90,223, 48,146,158,214, 91,  2,129,131,106,201,239, 31,158,113,235,160,198,121,135,207, 51, 66,112,132,233,
+152,224, 28,122, 99,141,207, 78,214,112, 66,241, 31, 93,121,142,255,126,111,143,191,190,187,203,223, 61, 57,226, 63,220,220,230,
+ 43,139,  5,127,121,235, 34,255,231,193, 62,255,197,149,203,252,239, 15, 30,245,101, 87,141, 98, 65, 20, 61, 14, 53,205, 97, 52,
+130, 76,245,216,215, 65, 31, 88,210, 23, 21,107,127,252, 43,124,254,239,143,191,173,151,108, 42, 27,139,179,232,231,182,231,  5,
+253,156,239, 62,204,120, 81,199,116,168,221,193, 24,161,115,214,  7, 99, 74,211,161,146,140, 86,104,182, 39, 41,139,230, 17,151,
+119,119,120,120,231, 94,124, 51,153, 94,124,103,  1,209,244,224, 23,243,228,190,  8, 29,207,  4,  1,230,214, 19,180, 36,145,146,
+ 85,229, 24,165, 26,219, 89, 42, 47,158,  0,115,126,210,129,  5, 98, 55, 46, 68, 60, 21,132,167,222,185, 45, 17,135,123,190, 82,
+ 80,242,169,231,225,220,218,214, 64, 40, 64,200, 72, 92,243,113,204, 51, 32,198,204,154, 92, 65,  3,173,177, 40,149,226,154,158,
+200,236,207, 45,105, 93,188, 31, 90,127,100,138, 96, 80, 78,147,104,193,161,243,172,  7,201, 64,192,178,127,  9,178, 92,210,214,
+238,201,110,254,252,240,245, 35, 62,222,248,254,247,249,165,139, 95, 96,178, 54,192,217,146,249,209, 49,222,194,157,219,  2,235,
+  2,163, 98,135, 52, 81, 72,  9, 34,  8,242, 62,196, 36, 24, 71, 62,201,209, 61, 53, 47,209,178,247,211,199,149,201,225, 89,141,
+181, 17,212,179, 51,201, 88,116, 14,173,100,188, 96, 43,193, 64,107,132, 15, 36, 18, 58,235,232, 44,140, 70, 25,  4,207,122,150,
+224,179,156,147,181,146,255,235,107,239,242,173,  7, 55, 49,  4,142,218,154,129,214,108, 14, 71,228, 50, 67,231, 41,139,163, 37,
+195,201, 24, 33, 37,131, 81,130, 22,146, 70, 72, 78, 15, 78,104, 22,139,232, 58, 84, 18,153, 42,190,240,201, 43,209, 77,145,  9,
+164,148, 88, 31,122, 65, 28, 88, 37,105, 83, 73, 85, 75,200, 21,174,141,235,  5,235,  5,173,115, 44,141,162, 72, 97,146, 43,252,
+250,  6,249,238, 26, 73,119,133, 27,123, 43,110,188,113,200,231, 15, 13,215,118,167, 20,187,129,201,237, 57, 62,129,209, 48, 99,
+247,167, 95,196, 55, 29, 77,  8,148,193, 50,108, 91,244,131, 19,100,158, 98, 69, 28, 63, 94,200, 53,137,151,252,230, 23, 95,228,
+209,202, 32, 71,146, 89,166, 88,174,103, 12,148, 98,101, 45,131, 75, 19, 46, 47, 90,174,135,130, 45,189,141,224, 10, 27,191,246,
+ 51,188, 51, 43,105,170,138,255,224,111,190,200,124, 85,178, 44, 27,156,235, 96, 80,112,244, 15,255,  5,237,149, 43, 28,252,179,
+215, 17, 87, 78, 16,163,130,157,151,174,115,248,250,119,158,160, 66,171, 21,255,228, 91, 95,197,125,235,171,216,203, 87,113,179,
+ 85,164,130,209,224,187, 94,211,245,240,  1, 55,206,142,248,212,171, 63,207,229,221, 11,180,235,107, 12,165,224, 89,224,139,123,
+111,115,147,231,201, 70, 35,180, 13,184,151,174, 33,222,168,249,239,254,217,187,252,229, 87,118,249, 59,239, 30, 96,219, 14,225,
+ 44, 51,165,249,167, 39, 51, 46,102, 57,133, 83,124,236, 74,206, 51,151,214,185,168, 53,223,126,247, 77,182, 54,118,152,121,207,
+133,209,128, 82,198, 14, 89, 21, 25,157,181,116,198,210,228, 19,156,168, 89, 75, 11,174,140, 52,167, 50,112, 97, 48, 65,  3,243,
+176, 98,115,125,155,180, 42,184,140,194,119, 53,169,119,100,162,183,216,246, 57,243,193, 25, 72, 83, 66,103, 56,  9, 29,161,103,
+115,111, 56,143,233, 44,178, 79, 62, 20, 46,176,240, 29, 77,127,206,214,120, 78, 59, 71,112,150,210, 56,146, 52,163,114, 14, 17,
+ 20, 99, 60,155,195, 33,211, 44,163,109, 13,149,202, 64,181,188, 97, 60,198,247, 90,156,115, 55, 80,240,100, 56,214, 70,  3,118,
+ 16,124, 58,207,216, 21,146,113,162, 72,139, 33,165,183, 20, 98,131,183,155, 99,132,214, 72,162, 96, 75,107,205,165,241,144,204,
+121, 46,122, 24,121, 16, 85,205,101,235,185,215, 46, 16, 93,195,237,211,135, 84,135, 39,188,183,172,120,111,255,  4,149,128,169,
+154,168,140, 95,156,112,174,210,249, 97,172,120,241, 19,138,118,248,136,  7, 62,252,168,127,111,  3,179,178,230,142,243,200,182,
+ 67, 89,195,101, 41,209,137,166,  9,130,179,166, 35, 65,160,149, 34,113,158, 84, 71,226,104,176, 30,165,  3, 66,122,132,140, 36,
+ 75,231,  3,  9,146, 36, 29, 18,108,131, 74,  7,  8,153, 18, 66,136,235,  5,145, 34,164, 67, 40,  5,198, 68,127,191,236, 31, 89,
+154, 64, 83,130,206,145, 82,225, 93, 11, 40,130,181,136,158,143, 17,  2, 49, 92, 71, 43, 86,157,167,  9,129, 89,103,232, 84,204,
+101, 95,153, 24, 36,212,118, 45,198, 70,226, 94,133,165,232,101,139,247,156, 97,164, 82,238, 87, 51,102,245,146, 84, 42, 62,168,
+207,208, 66,112, 22, 28,101, 91,210, 25,203,235,103, 11,110, 63, 92,224,187,152, 65, 18, 86, 51,194,100,147,176,170,160,200,176,
+167, 51,190, 97, 60, 63,187, 53,229,111, 62,186,203,127,187,115,137,191,189,255,136,223,218,186,192,223, 61, 57,226, 55, 55, 47,
+240,229,195, 71,252,187, 91,155,252,157,253, 99,126,227,210, 46,138,209,115, 95,194,119,177,155,117, 54, 94,232,  7,195,152, 23,
+ 46, 68, 44,234,231,187,117,215,211,211,126, 82, 81,255,145, 65, 48,105, 52, 42,247,140,111, 66,140, 23,140, 49,160,154,193,176,
+ 96, 99,178,206, 88,  4, 58, 33,120,118,247, 42,137, 82, 20,197,  0,145, 38,140,  6, 25,203,198, 80,117, 13,206,195, 73,240,125,
+ 18, 27, 79,132,126,193,245, 33, 49,231,161, 37, 46,142,204, 73, 40,  3,164,131, 20,239,  2, 77, 27,177,166, 85, 99, 49,153,142,
+ 99,122,111,250,209,116,127,197,210, 58,250,199,165,140,143,253, 60,  4, 69,246, 48,115, 84,175, 72,127, 42,181,174,231,199,208,
+ 17,239,131, 15, 63,  8,122, 73,116, 20,102,232, 12,167, 85,159, 95, 46,216, 45,  4, 71,173,103, 43,133, 60, 17, 17,119,159,193,
+ 56, 81, 84,166,143,179,125,122,167,254,209,131, 84,162, 49, 45, 84,193,177,155,104,150, 62,208,122, 71,234, 37,171,208,197, 34,
+ 37, 60,104, 98,148,172,251,241, 35,248, 59,111,191,207,167,126,238,103, 25,142, 10,118, 54,214, 73,178, 12,103, 96,243,194, 26,
+ 73,162,201, 18,141, 18,146, 60,141, 99, 48,  2, 88, 23,250, 61,116,212,104,139, 62,197,206,135,120,225,132,128, 23,176,168, 13,
+165, 13, 84, 33,208,250,152,230, 38,129,129,150, 88, 23,176,190,119, 10,218,248,124,183, 54,224,157, 64,229, 41,149,130, 47,127,
+229,117,190,118,231, 38,167,109,203,237,179, 37,169,144,108,143, 70,116,206,144, 74,  5,  2,150,101, 73, 87,213, 52,166, 99, 57,
+ 43,169,140,101, 53, 95, 32, 16,188,246,234,115,124,246,181,231,216,125,102,  7,165, 36,182,115, 76,134, 25, 82,168, 40,133,176,
+177,163,213, 90,245,246, 59, 79, 75,136,108,111,  2, 66,120, 52,129, 68,123,164,128, 65, 42, 25,166,130,253,147,150,121, 11, 42,
+ 83, 36, 91,  3,212,229,  9,179, 44, 99, 88, 40,242, 97,138,203,  4,170,181,100, 37,100, 13,164, 85, 75,162,  3,162, 72,104,206,
+ 42, 86,119, 78, 57,123,247, 30,195,195, 37,195,221, 33, 94,  9, 38,169, 98,154,105,214,165,228, 84,  9, 78,133,100,238,161,242,
+129,131,206, 81,181, 14, 21,  4, 63,181, 57,100, 60,204,184, 58, 29, 48, 65, 49,237, 28,239, 46, 44,143, 42,207,137, 87,212, 94,
+ 81, 76,167,232,193,152,201,231, 95, 99,109, 52,225,149,159,126,137,245,221, 93,142,110,220,230,180, 58,163,104, 20,  7,181,197,
+250,238,  9,255, 27,112,203, 57,214,212,184,182,194,183, 29,206, 70,107,142,111, 43,252,254, 62, 15,125,205, 67,161,121, 36, 20,
+186,110,248,189,217, 25,223,156, 47,216,117, 21, 74, 15,200, 58,195, 39, 22, 11,218, 79,127,140,175,220,221,231,247,254,223, 63,
+160,222,187, 11,123,119, 16,123,247,225,225,  7,136,211,135,212,203, 83,110, 39, 99,126,126,107,196,118,154,144,  2,215, 77, 66,
+ 53, 59,225,127,120,247,117, 94, 28,111,210,165,113,109,227, 66, 96,225, 28,251, 58, 97,101,  3,206, 71,254,193,206,184, 32, 15,
+ 32,180, 96,101, 44,153, 82,132,224, 81,214, 50,234,106,138,224, 80,  2,132,105, 81, 34, 65, 40,137,237, 58,140,119, 24,235, 88,
+152,150,219,109,205, 94, 91, 99, 85, 66,161, 37,222,244,217, 11,198,145,166,138,202,  6,150,117,139, 50,  6,233, 91, 70,190, 33,
+119, 29,151,165, 99,214,118, 40,161,120,175, 92, 33, 72,120,102, 52, 96, 71, 39,180,120,142,218,134, 63,154,205,120,189,105,159,
+100, 60, 52,117,212,228,232,132,103,242,  2,225, 45,175,201,192,179, 90,144, 73,  9,198,177, 46, 37, 39,198,240,103,139,146, 67,
+235, 80, 42,160,210, 20,157, 15,217,205, 11,174,101,154, 23,210,  9, 69,185, 96,179, 53, 76,150, 43,166, 77,197,165,174, 99,125,
+126,196,206,170, 34,239, 58, 46, 34, 40,138,140, 71,171, 50, 94,123,123, 11,220, 15,116,213, 79,251,223,127,194, 77,126,  4,110,
+243,248,179,214,136, 62,162, 22, 41, 17,222, 16, 74, 67,125, 86,179,119, 54, 99, 71, 64,235, 28, 71,193,209, 52,142, 36,141,185,
+243,206,217,152,220, 71,143,208,150, 18, 47, 37, 99,  1, 67,149, 34,108, 67,174, 83, 68,240,136, 16, 80, 74,161,180,198,155, 14,
+165,211,248,255, 42, 13, 66, 69, 56,143, 78, 30,175, 73, 67, 79, 50, 21,  8,130, 51,  8,165,  9, 62, 32,164,196, 57,135,119, 29,
+ 72,133,107, 27, 42,215,178,232, 90,142, 92, 71,165, 21, 43,211, 97,156,101, 86, 87,212,214, 48,175, 75, 90, 99, 56, 94,157,114,
+ 86, 47,113, 93, 76, 13,205,164,162,243,158,198, 25, 58, 91, 71, 62,153,141,211,202,224, 28,243,186, 98, 86,118, 60,168, 27,190,
+117,127,134,171, 75,124,215,197,233,136,245,  4,215,198,201,185, 51, 80,164,  8, 27,120, 40,  2,191,144, 42,254,215,179, 57,255,
+229,133,203,252,131,249, 41,127,105,178,206, 31,207,102,124,122, 48,224,125,239,249,226,120,200,239, 60,122,216,239,212,207,119,
+232, 66,199, 87, 40, 43,162, 10, 83,233, 39,123,225, 44,235, 81,174,254, 39,238, 99,127,116, 81,239, 49,168, 42, 34, 95,133, 76,
+158, 40,202,243,130, 43, 91, 35,156,235,152, 12, 70, 60, 63,216, 96,168, 82, 54, 46,108,176,190, 49, 97, 56,202,169, 92, 32,209,
+  2,141,102, 81, 87,180,206,210,150,203, 88,212,211,254,196,123, 14,157,193, 61,177,111,133,168, 48, 71, 38,209,246, 41,  4,100,
+ 58,138, 78,179, 62,116, 70,136, 72,116,115, 54,118,194,217,  8, 46,108,194,120,210,155, 68,237, 19,113,153, 16,113,167, 46,228,
+ 19, 12, 46,125,222,186,232,223,222, 46, 64,222, 71,173,202,143,232, 17,156,  3,153,227, 68,212, 45,100, 82,162,164,199, 42,193,
+118,166, 24,249,192, 44,  4,174,104,  1, 38,112,220, 24,130,147, 79,118,233,231,187,245,115, 84,237,121, 56, 75, 15, 87,223, 72,
+ 51, 14, 86,134, 81, 34, 24,  1,123,101,199, 52, 81,120,239,104, 90,  8,231, 62,254,243,215,246,199,124,172,239,110,113,245,185,
+171, 28, 30,159,209,118, 22,235,162, 53,195,  7, 98,161,245,129, 60,213, 81,200,229,  3,109,239,130,  8, 38,250,194,131,  7,153,
+136, 40,228,203, 20, 78,  8,188,141,135, 68, 21,  4,173,245,116,198,163, 19, 25,227,101,125,164,205,121, 41,113, 82,112,218,121,
+ 26, 36, 22,129, 81, 26,169,  5, 70,  4,246, 30,156, 98,219,142,141,124,192, 70,158,145,234, 24,178, 32,133, 68,  8,197,201,106,
+201,170,109,232, 92, 71,211, 52, 52,109,131,176,130,203, 59, 59, 92,187,180,197,178, 54,220,188,125,192,173, 27,247,121,120,255,
+128,147,147,134,139,187, 19,166,131,140,166,179,  4, 60,169,142,118,186, 32,192, 17,217,251,238, 28, 84, 67, 32,147,144, 73, 65,
+145, 18,243,236, 19,201,234,246, 25,234,168, 36,109,  3,173, 13, 24,231,168, 51,197, 65, 90,176,187, 54,192,  6,129,210,144,109,
+174,193, 89, 64,172, 26,228, 78, 70,216, 26,226,157,195, 46, 27,138,105,193, 96,154,197, 29,108,174, 24, 37, 41,131, 32, 72, 31,
+174,152, 47,150,124,235,205,  7,248, 89,205,222,237, 19,150,143, 78, 80,171,146,176,114,236, 92, 24, 81,100,154,149, 11,116, 85,
+199,119,206,106,238,204, 42,188,146, 12,  6, 57, 27,163,148, 53,  9, 83, 13,133, 51,252,133,181,130, 23, 54,166, 20,105, 66,121,
+237, 89, 84, 39, 88,203,  4,207,174, 13,217,185,176,195,238, 51,151,152, 92,216,198, 14,167,204,100, 17,119,138,182,251, 16, 74,
+244, 49, 63,252,240,144,166, 44,121,235,108,201, 31,180, 53,223, 52,146, 67, 33, 25, 89,199,206, 56, 97, 83,  6,198,153,226,149,
+179, 51,174,143,135,108,109, 92,100,111, 56,197,222,125, 31, 30, 62,130,114,  9,143, 30, 33,142, 14,145,237,  9,121,217,241,146,
+ 30,145, 90,143, 50,142,113, 93,241, 41,  5, 55,170, 37, 95,105, 21, 23,  7,  9,251,198,114,199,  7,206, 42, 71,139,100, 17, 34,
+187,123,144, 72, 70, 90, 35,137,191,255,169, 16,148,182,163, 51,134,196,180, 12,130, 39, 13, 17,141,235,157,197, 56,135,117,142,
+218,118,236, 45, 79, 40,125,199, 94, 87,115,234, 13,123,171,154,205, 52, 69, 56, 71, 98, 12, 74,107,172,113,236,173,150,204,155,
+146,196, 25,214, 77,139,176,158,173, 96, 88,115,134, 13, 33,120, 80, 46,168,108, 75, 73, 74,174,225, 97, 83, 49, 43, 87,188, 63,
+ 59,225,171,243, 83,154,122, 21,187,197,166,238, 29, 65, 30,145,103, 12,165, 68,  4,199,101, 60,133,130,129,183, 36, 33,240,230,
+106,193, 55, 22, 53,111,119, 45,210,117, 72,157,162, 84,194,122,154,176,155,142, 25,203,132,237, 84,115, 17,201,150, 82,172, 15,
+ 10, 10,149,162, 59, 19, 41,154,190,141, 54,208, 76, 50, 29,143,112,227,  1, 71, 70, 34,122, 97,240,143, 42,236, 63,224,131,255,
+ 17, 30,120,249,209, 98,175, 53,164,186, 39,223, 41,240, 50, 14, 37,234, 54, 34,184,157,225, 65,211,114,203, 72, 86,  4,190,223,
+  6, 58, 97, 88,217, 88,124,141,115,184,224, 64,169, 88, 12,165, 64,  6, 72,137,144,171, 92, 72,164, 80,104,  2, 34,196,107,153,
+210, 89,244,134, 88, 19, 15, 18, 62,230,117,  8,235,162, 41, 85, 74,130,105,192,199,159, 39,164, 36,116,109, 63,232,140,164, 58,
+111, 44,222, 26,218,224, 40, 77,199,158,181,236, 57, 75,109, 45,149,139,120, 91, 33, 98,166,124,213,149,156,214, 51, 78, 76,195,
+254,114, 70,235, 13,141,119,145,246,169, 37,137,243,204,109, 36,148, 58, 60, 74, 40,108,215,178,242, 14, 17, 60,137,240,220,173,
+ 58, 90,215, 18, 76, 31,196,163,  1,157, 18,154, 14,145,100, 80, 25,196,184, 64,212, 13,183,117,202,127,188,177,206,255,120,176,
+207,191, 54,200,248,227,101,201,181, 60,101,134, 39,183, 29,255,240,228,132, 79, 76,167, 40, 38,207,127,233,113,135,238,109,244,
+154, 43, 31,187,201,243,142, 80,244,  5,160,237,250, 83,229,191, 98, 81,215,242, 73,241, 13,  1, 17, 92,124, 20,215, 47,241,241,
+ 75, 27,124,226,153, 23,184, 52,221,226,165,173, 93,158, 25,111, 34,114,205,181,237,117, 86,222,210,153,192,104, 50, 32, 40,205,
+131,131, 67,214,199, 99,110,159, 29, 96, 86,125,234, 88,103,226,207, 14, 42, 30, 58,240,209,190,117,238,137, 23,196, 19,155, 82,
+253,247,137,184,140, 10, 34,118,242, 90, 70, 53,250,170,141,127, 63, 30,193,120,  8, 69,191, 46, 88,244, 39,235,243, 81, 55, 50,
+254,172,115,225, 95,146, 63,225,212, 43,221,191,145, 93,188, 63, 79, 67,100, 30, 63, 31, 30, 66,252,217, 90,  4, 70, 69, 84, 87,
+174,245,  9, 97,151,181, 70,121,207,134,138,  2,158,121,235, 34, 97,142,240,100,  5,114, 14,146,120,124,104,178,208, 70,162,220,
+ 84, 11,150, 33,230,239,166,137, 96,213,  6,188, 10, 76,148,160, 13,125, 34,158, 23, 63, 20, 23,251,244,199,205,239,191,195, 23,
+255,173, 95, 97, 99, 50,100, 89, 54, 49,181,169,179,116,141,137,193, 10, 66,145, 38,  9,131, 76, 71,202,174, 13,125, 94, 76, 64,
+247,  2, 63,173, 98, 82,152, 84, 18,215,249,216,125,  3,193,249, 56,198, 31,166, 12,138,148,198,249,199,254,112, 47,  4,101,231,
+104,250,116,218,243, 19,123,227, 29, 89,170,  8, 33,161, 59,171, 65,138, 24, 24,163, 53, 73, 63,142, 12,193, 33,148,100,160, 52,
+ 74,105,  6,217,128,141,181, 45, 70,147, 49,235,147,156,189,253, 51, 30, 62, 58,  0, 41, 41,242,156,166,233,176,193, 82,163,216,
+221, 26,225,131, 71, 17, 80, 74,162,117, 68,224, 57,231,232,140,165, 53, 54,134,163,244,145,188, 82,  4,180, 20,104, 17, 51,230,
+147, 66,177, 56,108, 24,165,146,237, 92,113, 57, 75,240, 14, 94,155, 36,108, 21,154,  3, 27,240, 62,142,234,241, 30, 70,154,230,
+210,  4, 51,200,  9, 89,130, 30, 21,136,237,  9, 97,154, 35,134,  9,153,243, 80,183,  4,235, 88,168,192,187, 66,112,253,229, 29,
+214,114,201,149,205,130,143,125,108,139,112, 92,177, 38,  2, 97, 99,196,126, 23,120,111,105,120,115,222, 50, 51,129,221,164, 99,
+224, 29,207,155, 57,203,147, 67,158, 75,115,182,117,202,115,  4, 46, 21,145,184,101,141,225,189,178, 68, 59,199,154, 15, 12,132,
+ 98, 82,228, 20,137,100, 45,207,216, 42, 82, 46, 76,  6, 12, 54, 38, 28, 39, 99, 12, 22,223,118, 63,144,  4,198,226, 12,230, 51,
+186,170, 36,156,158, 16,164,163,194,243,234,112,196, 90,146, 80, 32, 73, 19,141,106, 59,210, 97,194, 48, 36,220,169,142,225,228,
+ 36,254,238,104, 13,139,  5,161,172,185,115,188, 79,222,204,217,182,138, 20, 40,178,140,137,119,108,183, 43, 30, 46, 79,185,217,
+118, 28, 90,203,101,239,216, 54, 13,223,245,130,147,182,230,154,106,153, 91,197, 51,169, 36, 85, 26,109,  3,214, 25,172,243, 28,
+149, 11, 26,111,217, 49, 29,162,109, 81,222, 48, 91,205, 16, 33,112,216,173,120,103,254,136, 42,  4,238, 45, 78,121, 48, 63,226,
+102,181,162,170,150, 72, 17,176,171, 37,251,213,130,179,206,241, 96,118,130, 13,158, 77,211,209,181, 45,181, 51, 76,188,193,135,
+192, 26,129,196,118,100,182,161,241,112,228,106,206, 26,195,119,246,239,242,181, 71,247,249,254,236,152,114,177,128, 85,  5, 39,
+ 11, 88,172, 98,151,222, 58,200, 51,108,128, 81,154,241, 65,215,113,217, 55,184,186,102,102, 12, 15,218,154,127, 81,150, 72,211,
+ 34,130, 67, 57,131,212, 25, 87,211,140,105,158,147,250,192, 40, 75,217, 29, 20,108, 37,  3,134,131, 28,229, 37, 88,131,176,  6,
+111, 59,172,181,100,105, 74,161, 21,147,193,136,106,154,115, 38,250, 61,126, 80,209, 77,209, 95,167, 62, 90,204,197,211, 94,248,
+159,112, 67,107,132,146,113, 74,231, 69,236,137,212,147, 97,188,  8, 14,124, 64,184,216,136,148,139,  6, 23, 60,123,157,231, 65,
+219, 17,122,108,107,227,162, 69,239,156,176, 23,  3,158,  2,107, 74, 19, 76,135, 14, 14, 37, 53, 88, 23, 83,191, 67, 76,100, 59,
+ 47,238, 16, 16, 82, 19,188, 69,  4,240,214, 32, 84,130,183, 13,  8,133,235,237,213, 65, 42, 92,215,225,123, 79, 73,227, 90,170,
+174,228,160,173,184,225, 91,218, 52,227,172, 89,225,172,165, 54,134, 89,189,192,226,153,155,150,133,235,184,187, 92,177,244,130,
+121,185,140,217,101, 34,170,107,103,222, 48,214, 26, 23, 60,  2,201,170,169,168,112, 24,239, 80, 66,114, 84, 55,200, 34,225,168,
+  1,239,187,184,254,241, 50, 70, 69, 75,141,176,  6, 38,  3,196,217,  2,177, 62,229, 25,219,242,181,206,240,249, 34,231,173,206,
+178, 50, 53, 55,140,163,236, 58, 30, 24,207, 84,  4,190,182, 56, 65,177,118,237, 75, 36,170,  7,195,232,152,231,157,232,120, 83,
+250,195,227, 93, 99,162,255,208,152,127,181,  0,152,180,207, 92,215, 17, 82, 35,242, 49, 92,186,204,175,190,252,  9, 94,189,250,
+ 50,105, 54, 96,123,123,155, 75,235,155,120, 18,158,189,180, 78, 35, 36,237,170,102, 48,202,105,173, 71, 42, 73, 38,115,234,174,
+197, 55, 45,167,222,198, 39,227,220,158,161,101, 31,129,218, 39,191,185,238,201,232, 95,245, 34,183,200,246,140,111,184,243,119,
+176,212, 49,113, 45, 81,113, 12,223,118,209,214,103,  2, 44, 87, 96,234, 15,171,216,149,  0,145,244,157,115,255,174, 21, 60,225,
+183,107,221,115,220, 93, 47,158,179, 63,228,249,136,246,182,221, 97,202,172,243, 60,167, 21, 19,165, 24,  4,137, 14, 81,220,230,
+140, 99, 34, 36,163,  4, 78,218,126,243,117, 14,245,177,246,169,207, 79, 17,250, 68,191, 43, 62, 15,101,  8,176,169,160,108,  2,
+109, 48,100, 58,193,153, 62,128,230, 39,116,234,  0,107,155,235,188,242,202,139,  4, 41, 72,115,205,198,120, 72,231,  2,182,243,
+ 12, 38,  3, 46,175,143, 81, 90,160, 84,204, 74,246,189, 67,210,248,128,150, 17,214,160, 50,137, 12, 49, 94, 85,246,246, 16, 84,
+188,127,137, 76,200,242,120, 40,136, 83, 50, 65, 32,224,  2, 72, 33,226, 83, 74,160, 72, 53,227, 60, 69,202, 64, 58, 76, 57,126,
+112,138, 18, 10, 37,101, 20,188, 16,185,  5, 74,106, 70,249,144,193, 96,192,179,187,151,248,245,159,249, 56,155, 27, 99,246,143,
+ 22, 28,157,206, 24, 78, 70,140, 39, 35,202,178,162,115, 29, 27, 59,219,236, 92,218,196, 56, 79,145, 39,140,138,148, 36,145, 24,
+ 27, 21,175,214,122, 66,159, 36,230, 93, 92, 25,  9, 31,176, 54,178, 18,206,175, 87, 74,  9,150,165,165,107,  2,249, 32,137, 57,
+209, 90,146, 56,203,254,157, 83,228,170,229,221, 59,103,156,236,159,177,153, 41, 90, 25,184, 51,144,188,227, 36,199, 78,114, 88,
+ 59,110,189,115,143, 71,247,246, 56,156,149,148,214, 82,183,150,170, 53, 36,211,  1, 11,  1,223,190,241,136,236,246, 13, 62,247,
+252, 37,254,198, 87,222,230,209, 59,183,105,131,103, 88,149, 36,121,198,123,179,134,  3,165, 56, 10,129,195, 32,248,181,171,  5,
+191,126,109,155,183, 31, 60,228,155, 15,110,242, 79,238,222, 35,168,  0, 94,112, 57,139,194,179,251,  7,199,220, 95, 44, 24, 59,
+199,192, 88,148,233,200,  2,140,181,230, 74, 62,224,103,183,175,176,150,167,180,137,198,111, 13, 56, 45,214,177,178, 32,212,154,
+ 96, 10,144,105, 47,191,139,204,242, 48, 59, 37,156, 30, 18,116,198,107,215, 95,100,153, 77,216, 17,142, 76, 69,173,132, 74, 20,
+171,214, 82,174,206,184, 89,183,132,229, 28,202,138,160,227,117, 39,216,128, 43, 27,190,183,127, 68, 48, 51, 46,167,  5, 35, 60,
+197,104,140, 91,157, 50, 59,222,227,247, 15,143,120,239,116,193,221,206,242,229,131,  7, 60, 76, 50, 78, 44,220, 53,134, 55,218,
+142, 63, 41, 27,254,164,178,188, 42, 12,202, 59,230,229,138,247,203,134,133, 89,226,219,154,172,107,152,205, 23, 20, 74,242,246,
+242,140,119,206, 78, 56,237, 12,247,151,103,188,123, 52,227,189,211, 19,110,221,220,227,224,116,197,189,147, 67,  6,218, 18, 92,
+199, 89,181,192,154, 21, 89, 91,225, 77, 67,144,144,  4,135,145, 10,237, 29,185,247,132,174, 70, 59,  3,166,194,116, 13,111,150,
+103,204,170, 25, 77, 85,225,202, 10,206,106, 68, 91,193,193,105,116,233,204, 74, 68,103,160,169, 48,153,100,133, 96, 89,151,188,
+ 93, 54,188, 55, 91,240, 94,181,226,187,203, 21,194,180,  8,103, 17,109,131,116,  6, 41,  3, 23,138,  2,229,  2, 90, 72, 10, 31,
+120, 46, 75, 89, 83, 58,226,175,149, 66,167, 41,190,109,168, 93,139, 21, 14,225, 29,211, 98, 68,162, 37,195, 44,229, 76,  8,150,
+ 66, 64,145, 65, 58, 64, 36,  3, 68, 26,217,242,194,187, 15,129,109,158,190,233, 31,  2,184,121,220,173, 39,125, 81,239,127,199,
+ 63,180, 44, 12,  1, 17,250, 70, 40,213,143,243, 49,132,239,192,122,188,131,163,101,199, 28, 71,129,196, 27, 75,135,196, 58,199,
+ 80, 41,202,174,166,243,150,156,136, 69,238,156, 65, 17,245,  8, 65,  4,148, 84,216,166,126,172,213,242,166,137,235, 63,215, 70,
+  1,154,179, 56,215, 98, 93,  3, 82,198,  3,159,169,113,128, 17,158,186,171, 57,107, 87, 84,206,114, 11,199,126, 87,113, 96,106,
+206, 90, 75,101,106,142,154,101,100,181,183, 37,165,183,156,214, 53,149,117,172,130,195,121,137, 12,129,153, 53, 52,182,139, 61,
+241,249, 52,136, 64, 16,158,178,139,142,158,101,137,101, 66,182,  0,  0, 32,  0, 73, 68, 65, 84,221, 50,144,138, 34,  4, 76,170,
+153, 45,226,227, 15,244, 73,154, 26, 68, 62, 64,204,150,136,173, 41,226,224,132,114,109,194,199, 21,188,141, 70,116, 21,211, 44,
+163,180, 29, 59, 50,229,253,114,198, 80, 69,131,171, 98,227,249, 47,209,217, 39, 59,117,161, 99,  1,234,122,111,186,137, 72, 70,
+234, 85, 28, 19,201,126,  7,126, 14,148,249,151,234,214,243, 88, 72,133,131, 98,130,152,174,243,201,171,151,120,118,243, 25,132,
+ 78, 80, 42,225,226,214, 26,193,121,116,  8,204,235,142, 34, 19,104,173,168,106, 75, 72,  5,243, 85, 75, 85,119,120, 99, 25,164,
+146, 91,179,167,226,  8,207,  5,120,178,127,171,157,135,151,156,219,191,242, 65,111, 13,147,125, 26, 90,159, 43,158,244,143, 57,
+ 75,122, 92, 99,136,187,250,197, 18,202, 50,222, 62, 10,107,145, 50,190,179,147, 36, 30,126,206,139, 56,125,145, 63,143,167, 85,
+105,156, 24,164,242,  7, 11,187,148,224, 53, 11,103, 89, 79, 18, 54,165, 32, 11, 17, 62,227,  9,236,  8,193,153, 11,140,  3, 56,
+ 33,217,212,146, 35,215,119,253,231,157,250,227,207,189, 69,174, 47,244,174, 47,252, 57, 34,238,151, 91, 67,154, 43,180, 82, 49,
+158,150,222,  3,255,231,  0, 16,188,251,221,183,248,236,175,254,  2,219,235, 19,164,146,204, 87, 45,211,233,144,147,147, 25,243,
+211, 37,181,  9, 72, 21, 59,210,104,  3, 11, 49,158, 84, 42,138, 92,147,100, 18,225,162, 11,221,138,152,188,150,104,141, 22, 10,
+111, 61, 74,198, 16,149,170, 54,120,231,113,206,211,117, 30,173, 37, 74, 62,185, 13,243,140, 76,235,152,  1, 36, 20,109, 29, 40,
+ 23,101,223, 97,  4,178, 36,165, 72,  7,140, 39, 19, 38,211,117,158,123,254, 25, 62,247,242, 46,139,147,146,111,188,127,135,116,
+144, 81,140,  6,180,109,199, 98, 85, 49,152, 12,185,120,113,155,225,184,192,247,187,251,213, 50, 94,168,  7, 89, 18,197,123, 62,
+ 18,242,140,141,  5,221,121,143,235, 85,253,198, 58,156, 11, 72, 41, 73,180, 34, 77, 52,227, 65, 74,146, 42,208,113, 60, 88, 87,
+ 29,109,211,113,116,255,144, 91, 55,239,176, 56, 61,225,224,225,125,110,223,219,231,237,219, 15,248,214, 91, 31,112,156,175,177,
+ 51, 46,152, 37,154,183, 66,194,151,191,250, 45,190,254, 63,255,  9, 95,189,241, 46,255,232, 15, 94,231, 31,253,227,111, 35, 86,
+199,188,124,249, 58, 39,251,167,252,155,175,190, 76, 33, 52,191,255,213,111,112,229,234,101, 62,251,185, 23,248,245,237, 33,127,
+ 38,128, 11, 67,202,165,229,229, 73,134, 82,154, 95, 30,166, 56, 31,248,238,253,  3,188, 53,124,236,234, 85,220,100,131, 67,  2,
+218, 25,238, 86, 45,167,171,146,235,197,152, 32,  4,  3, 33, 49, 38,134,136,164, 82,242,233,141, 93, 46,236,236,176, 57, 28,115,
+211, 90,110,184, 12, 49,154, 64,161, 48, 58,193,111, 20, 20, 91,235,236, 92,219,129,209, 58, 45, 26, 86, 22,164, 37,  4,201,228,
+217,103,185, 62, 78, 25, 11, 73,103, 59, 18,173,217, 47, 87, 44,155,150,133,149,124,176,154, 69,104,211,108, 21,131, 44,130, 36,
+120,219, 31,236,  4,111,207, 86, 92, 80, 13, 27, 74,211, 85, 37,143, 22,135,252,189,123, 71,188,249, 96, 70,117, 60,231,232,224,
+ 16,237,107, 46, 54,103, 44,110,220,160,109,103,160,  4, 66, 39,  8,219,242,237,229,140,163,166,230,165, 34,227, 15,110,189,135,
+246,129,213,252,152,211,249,130,155, 85,203, 91,243,  5,239,150, 21, 95,155,151,188,126,182,228,221,121,205,131,217,146,217,106,
+137,107,107,156,109,169,170,146,155,243,154,253,182, 37,152,138, 60,213,236, 74,201, 84,128,113,150,160, 20,170,107, 81,214,112,
+236, 45, 27,166,161, 67, 64,215, 50,111,151,212,139,138, 85, 85, 33,124,  0,231, 16, 94,192,188,129,118,  5, 93,141,176, 29, 84,
+ 37,156,158, 33, 14,143,240,103, 11,192,227,203,138,122,181,164, 92, 44, 16,139,  5, 98,181,132,186, 66, 46, 22,136,174, 69,  9,
+195,202,117,172,107,141,144,  9, 74,192, 69, 45,217, 17,158,161, 76,145, 90, 18,234,146, 96, 29, 70,128,212,138, 81,154, 33,128,
+ 66,105, 10,165,113,161,195,100,138,153,241,136, 44,129, 97,  6,163, 17, 66,166, 72,149, 34,113, 72,231, 62,  4,181,209, 79, 21,
+118,253,195, 10,187,142, 35,115,126, 72,136,140,112, 46,214, 20, 41, 99,167, 46,162, 72, 48,142,203, 29,162,234,192,  5,170, 85,
+203,253,202,176,232, 12, 34,  4,130, 12,204,155, 38,114,230,  3,116,109, 75,227, 12,185, 15,184,224,232,188, 65,122,168,187, 42,
+166, 45, 58,135,235,106,156,233, 98, 65,247,142,174, 94, 17,132,199, 88,139, 13,142,206, 89, 90,111,113,222,177,104, 86,148,109,
+195,153, 45,217, 55, 45,111,119, 75,110, 54, 43,110,149, 53,119,203,154,210,118,220,238, 58,150,173,161,242,142, 86, 73,102,171,
+ 18, 43,161,179, 22,101, 35,236,108,209,212,148,222,227,181,228, 65, 85,115, 49, 75, 56,181,134,182,173,177, 33,224,149, 64,219,
+232,199, 55,214, 49, 85, 10, 33, 96,179, 72,217,171, 76, 20, 81,123,143, 48, 22,108, 28,193,203,249, 10,177, 54, 69, 30,204, 56,
+ 77, 20, 98, 49,199, 14,134,172,230,115,188,210,156, 52,115,100,154, 49, 11,158,114,121,134, 98,116,237, 75,232,243, 78,189, 79,
+ 87,235,179,101,177, 29,212, 77,236,222,109, 63,218, 78, 84,180,141,105,126, 44,192,228,  7, 62,178, 52,238,184, 19, 21, 79,132,
+227, 33,131,233, 26,175, 93,190,198,100,109, 28, 35, 59, 61, 12,  6, 57,178, 23, 64,248,186, 69, 43,201, 96,152, 97,156,229,204,
+121,170,101, 75, 23, 12, 78,192,114,181,228,160, 93, 96,170,174,183,204,201, 39,209,169,231,176, 27,211, 19,230,210, 34, 22,239,
+252,188,  8,247, 59, 23,165,123,206,125,218, 43, 80,251,125,181, 51, 31,142,150,253, 97,235,  4, 21,161,251, 72,221, 23,243, 36,
+ 58,  6, 92,128, 81,209,231,201,247,197,190,238,126,112,212,237, 92, 31, 75,171,217, 78, 20,195, 30,206,210,187,238, 48,  6,118,
+ 18,193,125,239, 24,186, 64, 30, 60, 71, 82,224,186,167,118,233,231,157,250,211, 74,246,126,109, 18,124,192,132, 56,238, 86,104,
+108,176,113,244, 29,252, 19,220,237,159, 51,170,113,184, 54,225,226,181, 93,138, 36,199, 56,195,254,253, 35,188, 51, 12,  6, 35,
+ 28, 48,155, 55,120,  4,147,113,134, 16,130,245, 34, 65,  8, 65,158,107,148, 82,100,153, 36,207, 20,193,157,  3,102,  4, 89, 46,
+ 73, 19, 69,150, 69, 14,130, 53,158,209, 80, 19,130, 64, 72, 17, 71,102, 65, 60, 30,225,159,199,218,  7,235,217,159,149,125, 34,
+159, 96, 48, 25, 50,154, 76, 24, 77,198,140, 38, 99,146, 60, 69,167,  5,173,177,236,205, 86,204, 77, 96, 48, 28,130, 20, 72, 47,
+ 73,146,132,233,250,152, 52, 77,104, 27,195,236,116,193,219,239,191,203,255,246, 71, 95,231, 79,254,244, 13, 82, 20,235, 59,107,
+140,139,244,241,232,207, 67,175,118,117, 44,202,142,186, 49,148,165,161,169, 45,214,248, 72,197,235,237, 55, 39,173,231, 99,157,
+225,170,246,188, 25, 60,243,170,102,181,170, 89,149, 21,117,187, 36, 81,  9,243,213, 25, 15, 14,247,216,223,127,196,173,218,241,
+ 96,  1,126,123,196, 34, 75,176,207, 60, 75,158,150, 28,190,254,128,240, 65, 75, 56,171,184,251,157, 61, 62,243,133, 87,184,242,
+252, 46, 97,125,192,157,121, 69,125,122, 76, 97,106,222,185,117,159,  7,143, 30,242,245, 59, 15, 57,122,255, 30,215,240,252,123,
+ 47, 61, 67, 45,224, 31,191,243,128, 71,139, 57,111,207,106,158,219,216,228, 23, 63,243,113, 54, 94,125,158,181,235,187,220,244,
+130,123,247,238,240,193,131, 91,124,112,114, 76,131,103, 39, 31,240, 64,167, 44,218, 21, 50,209,188, 52, 93, 39, 77,115,106,107,
+248, 78,215,241,102, 82,176,157,101, 92,209,130,157,196,144,143, 51,198,211,  9,195,124,192,246,198,144,193, 48,101,161, 83,124,
+231,193, 25,102, 23,183, 25,232, 49, 74,122, 74,165,104,234,154,253,174, 99,229, 53,221,149,171, 28, 79, 47,210,118,115,120,120,
+ 16,131, 69, 92, 31, 22,226, 61,190,159,144,188,109, 91,218,106,201,205,182,228,255, 40, 87,124,103,105,113,243,  6,247,193, 28,
+127, 56,199,220, 93, 49, 95,149, 96,170,216,217,248, 14, 49, 63, 70, 78,214,216, 30,111,241, 59, 95,248,  4,191,252,169,151, 48,
+173,231, 96,126,204,219,251, 51, 62,184,247,128,123,103, 43,238,122,193,163,166,165,105, 44,214, 54,177,115,107, 27,108, 23,133,
+130,206,251, 88, 32,188,165, 92,173,216,107,  2,147, 84, 50,192,209,248,142, 11, 66, 82,123,143, 22,  2,235, 12, 83,211,178, 82,
+  9,109, 53,231, 65, 85,179, 10,129,174, 92,113, 58,171, 98, 55,142,138, 81,163,161,111,  8, 62,186,211, 54, 22,177, 92,192,124,
+ 14,179,121,108, 44, 22, 53, 98, 54, 67,156,157, 32,142, 79, 16,199,199,200,197,  2,121,186,128,197,130,185,109,153,153, 10,133,
+ 98,135,192,181, 52, 35,181, 22,209,182,248,206, 97,  8, 56,111, 73,149, 34, 17,138, 34, 73, 73,133, 66,121, 79,234,  3,206, 59,
+ 38,227,156,113,145,240,252,120,192, 11,107,  3,214,166,  5,227, 34, 97,222,  4,148,245,113, 59,233,253,227, 66,158,126,164,200,
+235,167, 58,122, 33, 68, 44,210,166,239,212,205, 83,227,119, 23, 67, 78, 68,136,157,186,112,253,  4,247, 60,184, 38,  8, 68, 87,
+ 65, 42, 17,109, 77,217,  6,246,219,134,147,186,101,148,234,200,205,234, 26,154,  0,141, 49,204,113,164, 33,208, 56, 67, 27,  2,
+166,107,113, 34,208,118, 53, 22, 79,101, 27,156,107,113,214, 96,189,197,184, 14,227, 13,101, 87, 81,217, 22,231, 58,246,218,138,
+131,122,198,  7,109,201,237,106,197,183,109,205,222,114,201, 55, 79, 87, 44, 92,199, 65, 89,115, 38,224,208,121, 78,172, 67,107,
+ 69, 89,150,168, 52,199,  6,139,113,158, 78,  9,150,141,195, 56,207,178, 50, 28, 25,199,153,241,140,173,101, 32, 28, 86, 40, 90,
+103, 81, 46,166,146, 90,239, 25,234,120, 65,203,164, 96, 36, 21, 75,239, 89, 90, 19, 15, 62, 68,160,152,148, 14,129, 66,182, 75,
+212,100,140,154, 45, 81, 89,138,182, 14, 53,202,145,117,137, 74, 52,170,142, 60,125,169, 51, 20,235,207,127,  9,219,119,234,231,
+230,131,208,  7,172,208,231,131, 43, 25,139,177,234,247,235, 42, 60,137, 88, 85,242,  9,159,252, 71, 89,192,164,  4,153,197, 93,
+118, 58,132, 98,128, 72, 83,  6,195, 28,145,164, 76, 82, 77,146,102, 40, 25,240,  1,114,173,145, 74,144,  9,176,166,163, 89, 53,
+204,106, 71,219, 25,206, 22, 37, 42,213,180,171,  6,176, 28,148,115,234,170,137,221,177, 13,177,112,203,190,115, 69, 64, 48,125,
+242,141,140,209,167, 73,127,191,125,136, 35,167,208, 31, 52,252,249,232,186, 39,196,157,123,224,127,220, 58,129,126, 77,145, 21,
+189, 50, 61,196,195,129,214, 79,146,215, 68,191, 14, 16,231,251,240,143,118,252,113, 70, 53,214, 30, 47, 21,218,129,246,113,188,
+123,190,122, 95, 35, 78, 70, 74,239, 25, 10,207,105,119,142,138,181,125,132,107, 95,118, 30, 47,181,206, 95,147, 94, 84,231,125,
+244,104,170, 62,207, 62,244,135, 55,255,231, 63,148,221,248,254, 13, 94,249,204,107,168, 76, 51, 46, 10,234,182,195, 89,199,114,
+ 49,103, 99,115, 74,158,198, 85,205, 48, 75, 98,200,139, 32, 10,224,132, 32, 81,  2, 27,  4,206,  6,130,140,170,101,173, 98, 24,
+ 74,146, 38,164, 89,138, 76, 52, 74,  9,130,  9,113, 56,212,196,200, 93, 99, 60,198,216,120,190, 10,158,217,178,163,174, 61,213,
+178, 67, 41,201,104, 24,139,119,146, 37,188,120,125,155,151, 46,111, 16, 84,138, 15,129, 68, 73,164,144,172,170, 21,243,147,  5,
+ 82, 10,100, 34, 56,124,116,192,247,110,188,195, 31,127,247,109,254,236,246, 45,190,242,246, 45,110,126,103, 15, 62,168,225,118,
+205,141,113,205,199, 47, 93, 98, 99,125, 68,170,162,187, 91,247,178,146,198, 56, 58,227,112, 30,154,198,210, 54,142,198,246,201,
+193, 90,146, 41, 77, 55, 84,124,122,163, 96,120,161,224,238, 32, 97,184, 53, 98,124,101,131,236,165, 75, 36,207, 93, 33,108,173,
+145,138,  1,251,167,167,188,251,206,  1,109, 17,120, 20, 18,214,150,150,236,194,148,  3, 37, 25, 60,127,157,171,215,183,121,246,
+ 51, 59,124,230, 87, 94,226,211,191,246,113, 78,148,229,238,193,  1,239,223,126,200,183, 30, 60, 68, 33,248,173,201, 38, 27, 94,
+240,207, 27,203,157,170, 65,234,140,201,197, 75,216,205, 41,199, 90,211, 77, 11,154,139, 91, 36,151, 47,113, 89,167, 20, 71, 21,
+223, 60,171,121,243,254, 41,239,221,186, 71,215, 89,178,245, 77,222, 42, 87,236, 47, 79,169,234,138,249,114,142,150,130, 85,158,
+ 83,213, 75,164,181,220, 48, 29,223,181,  6,165,  7,228,222,179, 46, 61,  3,215,210,106,201, 95, 26, 13,249, 43,211,117, 94, 82,
+ 18,167, 21, 42,151, 44,172,224,250,100,200, 56, 87, 84,197,132,  3, 18,142, 90,207,253,106, 73,105, 45,109, 91, 51, 89,219, 34,
+ 75,  4,114,178,201,194,204,  8, 71,199,208, 57,130,238,233,118, 66,224,165,161, 89, 54,188, 57, 95,242,237, 69,201,161, 83, 56,
+ 65, 20, 82,174, 41,252,105,212,231,167, 43,207, 79,229,154,191,184, 94,240,252, 98,197,205,186,  4, 28, 87,159,189,198,199, 71,
+  3,214, 18,205,223,122,235, 30,183,131,136,187,202,163, 57,193,119,120, 20, 94,107,156, 15,209,137,210, 69, 30,130,243,254, 49,
+201,207,  3,193, 69, 17, 21, 78,112,156,164, 92, 25, 42,118,131,199, 58,203, 24, 65,107, 58,134,  4,156,115,100,166, 97, 30, 60,
+167,222, 51, 63,155,115,186,168,232,218, 22,119,178,138,214,170, 44,229,213, 11,  5,255,246,165,117, 62, 62, 29,243,198,241,234,
+113,108,234,227,142,214,244,130,221,182,133,182,142, 28,143,208,  7,184,244,187,101, 89,199,  8, 95,121, 82, 34, 59, 67,233, 26,
+ 82, 37, 24,219,142,245,166, 66, 57,143,243,150,186, 45,  9, 50, 32,157, 39,149,  2, 45, 64, 11,141, 12, 30, 41, 37,133,146,108,
+ 38, 41,159, 24, 12, 25, 39,  9,211,108,192,122, 62, 96,146, 40,126,122,115,194,199,198,  3,214,181,224,200, 58,146,  0,169,247,
+164,125, 97, 79,250,219,211, 29,187,240, 81,148, 38,180, 64, 24,158,100,190, 59, 31,129, 55,206, 61,  1,210, 40,137,176,145, 61,
+ 32, 68, 28,249,147,104,132,141, 13,143, 16, 81, 84,214,117,158, 71,171, 14,105, 59,202,206, 50,  8,130,149,  8, 88,235, 56,117,
+142,  3,  1, 71,182,163,146,146,135, 85,201,137,112,172,154, 21, 51,239,104,218,150,189,174,193,155,134, 67,215, 98,141,161, 82,
+138,101,219,114,191, 46,185, 85, 46,248, 32, 56,190,113,186,226,131,206,112, 99, 94,243,192, 58, 26,231, 89,213,150, 86,  6,170,
+101,133, 79, 83, 26,239, 73,  8, 56, 41,169, 77, 71, 25,  4, 74, 40,142, 86, 13,235, 89,194,126,109, 40,155,134,182, 53,108,103,
+146, 19,103,216,148, 26, 97, 45,155, 74,209, 66,212,191, 16, 83, 30,231,206, 16,  2,212,214,113,185, 72,120,127,209, 64,211, 69,
+205, 53, 30,233,  4, 82,216,184,202, 59, 93,160,130, 64,167, 26,109, 12, 74, 43,116,  8,104, 23, 35,175,149,148,200, 85,133, 98,
+218,239,212,221, 57,253, 77,197, 66,224,252,147,  0, 17,210, 94,237,221,227, 93,117, 74,246,252, 69,214,175, 94, 64, 95,216,164,
+ 29, 15, 97,107, 19,  6, 99,184,120, 33,126,189,181,  9,147, 53, 24,140, 98,145, 77,147,136, 60,204, 18,228, 56, 35, 77, 18,100,
+112,140,117, 26,177,125,185,102, 58, 28, 49, 29, 23, 76,166, 41,174,181, 56,111, 32,120,188,132,106,181,192,244,172,220,163,211,
+ 25, 85, 83,114, 80,205,152,213, 21,198,  7, 66,119,190, 15,239, 85,225, 69, 10, 77,251,132,134,148,232, 88,212,181,142, 43,134,
+244,169,241,187,238, 59,247, 68,199,125,134,210,177,168, 43,249,227,167, 17,185,142, 43,  5,124, 20,212,233, 60, 22,246, 44,233,
+ 45,117, 34,138,239,206, 73, 76,173,123, 34,182,251,  8, 51,255,149,188,160,  8,176,239, 59, 46, 41,141,  2,150,253, 47,241, 88,
+  8, 18, 33, 72,165,164,240,240, 64, 75,130,  0, 90,251,228, 96, 96, 31,171, 84,122,111,190,232, 21, 27, 34, 78, 16,148,  2, 93,
+244,147,  8, 27, 31,223,191, 76,172,110, 34,217,183, 29, 47,189, 16,225, 22, 87,118, 54, 57, 91, 84,156, 29, 31,225,131,138,135,
+177, 60, 99, 88,100,212,181, 33,200, 88,212,109, 32, 90,209,164,192,123, 17,247,228,113,225, 69,162, 20,214,250, 30, 69, 31,199,
+219,182,207,137, 15,222,211, 57,135,107, 28,131, 97, 26,247,218, 65, 16, 28,228, 89,194,104,152, 51, 26, 23, 92,216, 25,179,181,
+ 49,224, 51, 47,237,240, 51,215, 54, 89, 53,134,251, 71, 75, 30, 62, 60,160,106, 58,190,249,230,247,185,127,116,196,239,127,239,
+ 29,254,236,143,223,226,235,223,187,193, 27,119, 30,112,255,222,156,178,181,180,231,118,205, 81, 30,133,136,135,  6,127,167, 38,
+127, 38,229,202,181, 93, 38,195,  2, 25,226,240,197, 19,207,141, 65,200,232,149,117,145,124,165,164, 68,101,154, 97,161, 25, 23,
+ 41, 27,121,194,239,189,183,207,215,111, 28, 49,187,121,196,217,173, 67, 56, 94,177, 60, 89,224,131, 35,153, 20,236, 92,219, 98,
+114,253, 42,255,249, 47,190,134,218,220,101, 49,157,160,101,224,167, 82,197,219, 69, 65, 54, 72,185,250,242, 46,249, 51, 23,144,
+ 23,183,185, 57,235,248,211, 15, 30,240,255,157,214,124, 93,140,120,127,178,203,175,188,250, 34, 47, 92,222,228, 52, 31,242, 72,
+228,108, 77,167, 60,251,201, 23,153,236,110,112, 40, 20,157,245, 12, 11,205, 32,207,120,118,152,241,153, 66,176, 88,214,124,251,
+100,193,221,166, 98,103,103,141,245,103, 47, 51,188,180,205, 88,143,120,189,236,184,175,167,188,176,181,205, 21, 41, 89, 10,193,
+119, 66,224,123,214,177, 39, 21, 73, 26,149,220,169, 20,180,213, 18, 99,106, 26, 23,248,205,233, 58,207, 12, 71, 92, 72, 50,238,
+217,142,  3,231, 24, 42,152, 52,150,141,249,138,105, 98,145,131,117,110,216,138,169, 74,233,108,135,242,142,253,147,  3,134,211,
+ 77,130,113, 44,101,130, 93,206,  8, 85,  5, 62, 16,186, 38,142,225,173,193,227,241, 66,226,250, 11,179,147, 26,145, 74,134,163,
+132, 38, 11,140, 22,129, 79,108,228,252,226,245,117, 62,183, 57,102,146, 37,172,117, 14,177, 90,241,126,115,198, 63, 95, 88, 78,
+207, 22,124, 99,190,136, 86,167,181,141,  8,183,240, 16,186, 50, 90,243, 44,120,215, 60, 41,228, 66,196, 46,253, 41,149, 63,196,
+ 97,165,235, 90,198,227,156,165,113,236,138,128,116,134,169,177, 52,174, 37,224,153,183, 45,117,107,168,173,101,182,108,168,170,
+ 22,233, 44,141,233, 16,198, 32,138,156,255,228,202, 22,191,188,115,129, 65,170,248, 86,219,208,204,234, 15, 77,205,196, 71, 35,
+ 85, 85, 44,228,231,  2, 52, 33,163,128, 86, 90,139,176, 29,162, 44, 17,199, 75, 14,143, 79, 57,105,102,236,132,142,177,237,232,
+154, 18,159, 38, 24,107,  8,109, 69, 22, 60,174, 51, 72,161, 48,222, 32,132,100,173, 24,179,158, 23, 12,178,130,141,124, 76,167,
+ 20,195,100,192,246,112,157, 11,105,193,115,195, 33,151,  7, 57,207, 72,205, 21,165, 41,148,228,106,158,179,150,165,124,122, 52,
+101,223, 91, 18, 33, 80, 61,131, 94,156,119,235,177,245,142,161, 72, 46, 10,173, 63,164,144,151, 18,153,196, 68, 68,233,125,252,
+218,121, 68,255,119,162,235, 34,202,214,185, 24,113,237, 61, 39, 93,199, 94,231,249, 32, 56,110,159, 54, 60,244,134,165, 20,124,
+208,118,220,110, 27,110,215, 45,247,188,225, 86,215,241,102,101,120,171,108,184,163,  2,183,156,225, 77,211,114,100, 44,111,152,
+142,  7,117,201, 91,182,227, 86, 91,243,118,109,120,163, 49,156, 25,203,204,122,218, 16,237,171,198, 56, 80,130,214, 70,203,173,
+ 49,  6,135,103,222,121,230, 62,142,241, 59,235,121,104, 12,153, 20,204,154,150,206, 90, 66, 99, 17,198,177,108, 60,151,  7,138,
+220, 88,174,103, 41, 82,  4,182,149,194,123,207, 26,208,244,152, 97,107, 61,169,128,101,221,225,125, 96,225, 44,194,199, 60, 18,
+  9, 40, 99, 81,157, 69, 21,154, 68, 41,116,213,162, 85,194, 21, 87,211,233,148,169,177,248,186,137,223,163, 20,250,  7,  9,113,
+221, 15, 94,208,117, 15, 71,144, 50,178,141, 95,185,196,245,205,109,154,206, 51,206, 83,234, 45,199,162,118, 28,214, 11,214,147,
+130, 36, 45, 40,155,134,253,178,138,251,219,164, 23,220,233, 39,251,248, 60, 21, 76,178, 20,130,195,132,142, 73,146,162,148,100,
+152, 11, 76,103,  8,170,163,177,142, 84,129,112,134,164, 72, 73,  4,180, 18,238, 29, 44, 34, 67,128, 64,189,234,240,222,199, 67,
+195,121,116,105, 63,198, 66,167, 79, 30,131,  1,114, 31,139, 91, 34,227,247, 75, 29,139,126,154,210,211, 81,158, 20,251, 85, 10,
+117,253,100,223,254,195, 62,170,  6, 54,198,125,225,238,159, 39,213,167,174,229,253,253,176,253, 33, 33,113, 31,166,237, 61,245,
+244, 18, 60, 95,175, 75, 62,145, 23, 92,215, 25,203, 16, 24, 11,193,179, 66, 62,246,  9, 19, 60,117, 15,140,185,228, 44, 15,206,
+ 87, 26,231,135,132,199, 63,183, 31,197,235,  2, 54, 55,226,255,189, 42,123,112, 77,143,158,173,254, 37,133,142,137,132, 32,185,
+251,149,239,114,243,133,231, 41, 62,247, 26,243,213,138,143,189,244, 12,207, 93,191,196, 91,111,222,226,240,209, 35,218,178, 35,
+207, 52,137,210,168, 10,  6,195,  4,103,  3,149, 51,100, 65, 70,217,130,146,228,121, 18,109,107, 62,110, 78, 91, 23,213,169,198,
+ 65,145, 73,140,240, 36,137, 70,117,158,144, 71,181,184,214,138,113,145, 80,202,  8,170,137, 23, 60, 65,219, 57,210, 68,243, 15,
+254,240,255,103,236,189,122, 44, 75,179,244,188,231,115,219, 30, 27, 54,125,102,121,215,213,102,218, 84,147,163,129,208, 50, 35,
+ 18,148,  4,112, 40,  8,188,162,  0,253,  2,233, 94, 16,248, 19,116, 33, 72,  0, 37,  8,208,141, 64,  2, 26,104, 64,129, 24, 81,
+131,230,104, 60,167, 77, 85, 23,171,170,203,102,101, 86,250, 12,115, 34,142,219,246, 51,186,248,118,102, 86,119, 87,207,116,  0,
+129,116,129,140,115, 78,236,179,215,183,214,122,223,231,253,128, 71, 39, 71, 76, 71, 83, 30,159,156,115,111,185,224,189,187, 71,
+168, 76,114,177,204,217,153,149, 44,214, 61,156, 14,207,125, 54,252,124,142, 91, 72, 21,201,190,198,238,229,248,191,163,224,110,
+199, 31,255,249,207,121,225,249,231,152,190, 85,176, 63,202, 49, 34,178, 21,148,210,104,229, 98,104, 71, 22, 16, 74,160,  4,104,
+163, 72,149, 68, 75,129,244,158,221,182,163,237,122, 78, 23, 39, 32, 21, 75,219, 99,235, 53,235,143, 54, 24,149,178,116,130, 43,
+223,125,145,231, 94,185,200,215, 38, 91,110,221, 60,229,202,209,154,107,103,154,174, 18,156, 94,154,242,200, 42,230,235,142,223,
+ 53,158,159,228,  9,122,182,195,235,105,201,205,180,224,197, 36,229, 63,157,106,236,170,226,167,199,143,113,101,193,229,209, 14,
+197, 60, 99,238, 45, 63,217, 70, 26,222,200,193,244,108, 77, 85,102,212, 57,180, 23, 74, 46, 79, 83,246,130,103,190, 51,230,162,
+150,124,250,193, 29,146,229,130,195,124,204,120,118,129,236,194,  8, 89, 55,184,237, 26,181,233,232,131, 39,164,130, 84, 41,232,
+ 29,143,117, 73,147,195,105,211, 48, 49,129, 44, 73, 16, 46, 16, 68,100, 46,116,  4,230,  8,246,139,132,139, 89,134,116, 61,119,
+ 78, 62,101,103,239, 50,231,222,227,148, 33,145,158,170,171,121,247,147,247,105,199, 59, 96, 12,242,229, 87,241,117, 13,139,199,
+120, 93,198,108,108, 41, 16, 85,141, 48,131,227,164,238,193,158, 99,117, 74,155,101,  8,  7,114,170,153,207, 19, 46,229, 41,115,
+147,160,  9,220,214,154,151,172,227,181,  7,199,188,189, 94,242, 39,155,171, 96, 70,  8,147, 32,144,112,227,121,152, 78,  9,119,
+238, 17, 54, 21,161, 89, 71,189,116, 15,193,200,167, 14,209, 95,  1,170,180, 29, 98,186,195,  6,152, 72,197, 18,129,219, 52,156,
+ 26, 25, 59, 87, 21,145,212, 77,213,227,250,142, 41,113,250,120,199,250,168,212,238, 44,178,106,121, 49, 73, 73,133, 66,234,132,
+209,104,194,249,100, 77, 88,213, 67,  2,223,175,129,189, 12,112,172,224, 60, 65,201,167,118, 66,  7, 56,107,177, 52,116,231, 13,
+ 31,173,207,248, 95,238, 60,230,251, 38,227,198,108,204,120, 62, 34,155,142,120, 46, 27, 83,181, 53,185, 74,232,251,150, 30, 79,
+146,231,160, 12,217,240, 61, 77, 90, 48,245, 30,235, 29,227,180, 32, 45, 39,216,205,217, 48,114, 15,136,113,193, 15, 66, 32, 67,
+ 80,  8,197,186,107,120,171,157,114,212, 52,188,183, 92,242,110,221,162,250, 14,101, 45,194,254, 82,222,251,151, 14, 72, 79,  1,
+156,157,125,154,  1, 47,158,208, 63, 59,139,120,146, 11, 31, 60, 33,209,241,121,246,131, 32,174,247,172,155, 26, 13, 84,149,228,
+241,195, 21,186,200,208, 50,  6, 45, 41, 41,144,168,152,  1,159, 70, 71,147, 16, 17, 61, 13,110,216,178,134,  1,  1,237,241, 77,
+143,183, 30, 55,220,175, 92, 18, 35, 91,179,210,208,  5, 71,130,100, 21, 98, 79, 22,128,160,  4,222,246,172,147,  4,223, 58,  8,
+ 29, 75, 25, 87,216, 50,145,144,106,194,166, 67,164,138,157,214,242, 66,106,208,125,203,142,202, 16,222, 71,200,216,112,235, 47,
+132, 36,211,112,180,106, 16,193,115, 57, 87,220,173, 19, 68, 84,101, 32,123,144, 74,163,140, 68,123,152,102,130,203, 74,243,237,
+ 82,209, 88,199,117,111,105, 83,201, 81,102,184,185,174,185,189,110, 81,140,174,253,211,191, 85,181,174,  6, 96, 74,  8,112,237,
+128,231,246,102,180, 54,176, 91,150,228,166, 36, 51, 25,123,229,132, 76,104,114, 19, 57,189,163,212,144,200, 64, 97,  4,171,110,
+216,121, 11, 65, 98,146,184, 71, 21,130, 34, 49,104,  9, 55,118,118, 48,105, 74,162,  2, 93,215, 83,164,146, 92, 43,166,165,198,
+216, 64,179,109, 25, 25, 65,187,172, 88,111,207, 73,180,102, 81,109,185,119,118,134,237, 61,146,200,227,133, 39,161, 32, 67,241,
+106,219, 33, 18,181,137,197, 45, 77, 24, 84, 80,207, 70,237,121, 22,191,134,161, 83,183,253,112,120, 81, 80, 87,241, 74,251,155,
+198,240,194, 67, 57,138,190,171, 50,139, 69, 60, 77,  6,117,123, 22,197,135,102, 80,199,123, 23,213,158, 95, 86,156, 63, 25,251,
+ 59,207,117,173,240, 66,178, 12,129,145, 15, 84,  2, 82, 33,162, 94, 81, 64, 41,  4,159,217,150, 92, 73, 54, 82, 70, 92, 42,  3,
+100,199,250, 95,180,184,205,119,153, 92, 60,164, 28,141,169,165,142, 83, 11, 61,232,225,131,143, 73,115, 90, 71,135,192, 47, 24,
+ 82,252,175, 30,234,228, 83, 63, 10, 31,254,236, 67, 94,255,230,155, 36, 89,202, 98, 91, 49, 46, 50,186, 16, 80,105, 66,181, 90,
+ 35,179,148,253,157, 49,227, 60, 65, 34,152, 36,  2,173, 37,163, 68, 81, 91,143,148,112, 48, 54,113,191, 45,  5, 10, 65,110, 52,
+ 58,213,200,129, 62, 55, 78,163, 32, 46,114,155, 21,125,231,168,182,150,117,211,177,222,118,212, 85,199,182,234,168,250,158,122,
+211,211, 11,207,189, 59,199,252,139,191,126,155,101,181,166, 76, 13, 82, 64, 19, 98,218,215, 40, 51, 84, 46,208,235, 64, 48,192,
+202, 69, 49,100, 42,163,  8,244,118, 27, 51,143, 39, 17, 88, 65, 42,224,221,138, 59,101,197,139, 87,174,112, 97,103,196, 36, 79,
+227,132, 32, 49,164, 70,162,  7, 26, 34, 34,196,188,119,249,196,109,232,217, 54, 29,171,166, 37, 49, 16,188,164,107,123,200, 83,
+244,197, 93, 46,124,239, 53,190,113,117,151,127,244,141, 27,220,187, 48,231,115, 41,233,203,148,139, 23,167,124,195,247,124,235,
+213, 67,174, 78,225, 38, 41,123, 99,205,181, 89,193,238,106,197, 79,110, 63, 70, 20, 35, 94,191,177,195, 27, 99, 77, 18,122, 14,
+131,229,110,232,184,103, 52,243,249,152,221,197,134,211,211, 37,201, 39,119,169,174, 92, 68,118,142, 63,255,171,183,249,248,143,
+127,136, 93,181,220,125,120,196,173,  7,247,249,224,103,239,115,243,237,119,184,113,225, 58,203,109,207,103,143,239,243,211,155,
+ 55, 41,109,199,165,249, 30, 19,163,113,137,198,104, 67, 90,102,116, 94,160,205, 96,121, 37,144,116, 53,127,184,173, 57,205, 39,
+ 60,144, 57,191,111,  5, 63, 72, 20,183,109,203,187,109,203, 81, 93, 49,174, 59,246,132, 98, 90, 24,102,227,  9,135,105, 70, 38,
+ 37, 69, 89,210,  7,197, 44, 79, 57, 24, 21,232,190,227,130, 16,248, 36,103,163, 50,152,149,132,211, 37,228,134, 16, 20,  1,133,
+ 23,150, 32, 19,188, 84,241,179,111,162,  0,108, 91, 19,132, 96,156, 37,236,149,154,203,133,225,165, 81,206,149,157, 25,175,205,
+114, 38, 46,176,168, 90, 94, 15,144,159,159,243,197,250, 28, 49,153,198,131,130, 50,  8,149,192,222, 30,228, 41,225,172,138,185,
+225, 10,188,139,200,226, 32, 69,108, 24,190,252,118,207,198, 48, 74, 56, 13,138, 60,151,180,109,143, 87,154,186,106,113, 74,209,
+247, 14,217,117,132,174,167,116,129,189,214, 33,109, 64, 90,199,194,134,104, 25,235, 45,251, 99,133, 73, 19,254,109,183,229,199,
+173,139,158,228, 22,  4, 81,161, 46,126,185, 75,127, 34,149, 25,108,159, 66,240,180, 91,127, 10,144,241, 50,110,251,250,158,202,
+121,110,182, 13,239,156,158,242,163,227, 51,206,214, 21,174,217,210,119, 61,133, 18,145,251, 32,  5, 86,104,172,209, 88,165,145,
+ 69, 70,151,165,104,147,146,100, 25, 34,196, 52,179, 92, 70, 63, 56,222, 51, 53,138, 84,  4,174,148, 35,198,202,112, 99,103,159,
+203,163,  9,151,203,140,189, 36,101,207,104,238, 12,  9,213,191,124,223,252, 21,223,187,247, 40,239,145, 90,199,209,177,181,113,
+179,107,237, 32,184,211,207,244,  7,246, 73,138,167,  4, 27,179, 38,188,235,241,189,197,225,113,193, 98,117, 66, 31,160,239, 28,
+189,209,116, 70,210, 41, 73, 43, 36, 45,208, 10, 65, 27,  2,173, 20,180, 66,208, 13,177,207,164,134, 38,209, 72,161,216,155,141,
+120,177, 76,121,109, 90,114,163, 24,113,161, 72,121, 62, 49, 92,202, 52,107,  2, 85,158,209, 11, 65, 72,211,232,212, 73,212, 83,
+203,119, 16,146, 96,163,125, 13,  9,175, 39,130,111,102,134,239, 22,  5, 19,  2,135, 70, 49,150,177,246,109,189,139,  1,166, 33,
+208,244, 49, 18, 90,133,192,219,155,154,182, 11,  8,173, 80, 34, 68, 87,145,144,131,240, 56,225,239,150, 25,111, 77, 71,188, 84,
+ 22, 92, 25,143,120,121, 50,198, 40,197,203,105,198,141,209,136, 61,205,111, 80,212, 97,216,207, 70, 66,154, 60,152,112, 48, 42,
+216, 47, 39,140,211, 49, 62,  8,198,249,  8,163, 83,138, 36, 35, 53, 38, 78,122,197,147,221,143,167,204, 83,150, 85,  3, 74,162,
+130, 68, 42, 65,161, 12, 33,120,118,202, 41,147, 84, 50,155,151, 72, 41, 40,210,140,124,148, 50, 77, 21, 35,163,112,189, 67,186,
+150,126, 93,209, 53, 91,164, 20,124,177,120,200,  7,247,143,105,123, 79,158, 40, 90, 47,152, 10,141, 16,129,174,139, 30,200,129,
+134,  2,205,102,200,132,  7,178, 44,238,209,211,129,150, 39,134,142, 29, 49, 16,226,  6,168,140, 28,188,238,189,143,  7,131,191,
+201,246,165,242,216,253,143,179,120,241,165,102, 40,174,122,200, 86,215,131, 95,125, 80,122,118,245,175,134,227,248,200,  5,120,
+ 48,116,232,151,141, 97, 19,  2,115, 21, 59,245, 38,196, 92,241,147, 65,184, 83,  9, 72,125, 96, 43,158,224, 94, 19,184,254, 18,
+ 47,191,249, 38,167, 42,135,147, 71,112,184,199,165,217,156,217,168,164, 15,208, 46,206,226,129,198,185,103,143,231, 43,  7, 16,
+191, 92,216,  7, 85,253,151, 62,126,252,103, 63,226,187, 63,248, 62,147,162, 96, 83,215, 40,  4,245,166, 97,178,183,131, 86,130,
+182,245,  4,  9,227, 60, 29,242,135, 21,137, 86, 76, 75,195,180, 72, 16, 42,210,232, 38,153, 33, 47, 12,121,166, 40,141,102,148,
+ 27,132, 20,180,189,101, 83,117,108, 58,203,102,221,178,218,182,  8,  5,171,243, 58, 90,221,240, 52,181, 37, 77, 12, 89,153,160,
+130,228,202,181, 61,250,147,115,238,172,215, 40,  4,153, 74, 81,210,179,238, 28,151, 71, 19,118,210, 52,102,237,120,112, 89,128,
+179, 97,194,177,147,194,238, 48,201,209,146,189,195, 49,227, 89,193,246,106, 66,213,195,190, 73,120,225,218,  5,102, 99, 67, 38,
+ 20,153, 20,  3, 82, 51, 12,111,228,104,163, 43,148, 33, 81, 10, 23, 60, 54,120,210,204,176, 62,107,216,214,142,157,111,223,224,
+218,215,175,177,127,105, 14, 58,190, 39,166, 77,197,159,254,228, 22,159,255,213,207,249,248, 47,223,225,248,222,154,247, 22, 21,
+ 63,215,130,203,227,140, 68, 38,164,101, 74, 97, 36, 63, 50, 41,226,234, 62, 85,106, 56,111,123,194, 78,193, 52, 75,152, 20, 25,
+ 63,157,143,153, 94,222, 99,190, 59, 69, 63,127,129,249,124,204, 97,154,226, 38, 99, 38,133,225,218,115, 87,249, 87,255,253,191,
+224,163,243,  5,159, 62,122,200, 71, 15,143, 17,244,124,243,213,215,249,237,239,191,206, 15,255,232, 79,248,131, 63,250,107,142,
+178,148,111, 93,188,200, 56, 53,145, 98, 38, 66, 28, 15,  6, 65, 39,  5, 93,239, 48,196,244, 67,213,215, 60,239, 27, 86,199,143,
+ 88, 59,139, 67,241,105, 91,243,133,150,116,206, 82,216,158, 73,223,179, 63, 74,217, 25, 79,152, 76,118, 33,201, 41,243,  9,169,
+201,152,236,237,144,142,199,120,149,112,189,200,185,161,224, 34,158, 68,104, 30,202,  4, 70, 41, 88, 75,240,142, 96, 99,148,101,
+ 72,  4,193,197,227, 58, 58,118,212, 96, 17, 30,236, 36,103,150, 39, 28, 22,134,215,198,  5,123,123, 23,201, 76, 70, 17,122,222,
+127,112, 70,102, 52,123,  2, 62, 87,146,190, 48, 72,169, 17, 89,142, 50, 41,255,236,183,222, 64, 36, 25, 31,105,  8,199, 43,130,
+239,  9, 82, 16,188,136, 30, 20,239,127, 33,214, 65,168,  4, 89,230,200,222, 51, 54,146,171, 69, 22,199,241,105, 74,225, 29, 59,
+ 62,112, 24,  2,  7, 65,114, 73, 66,230,224,170,150,132,222, 49, 21,158,199, 54,102,181,191,183,220,242,163,170,229,125,  7, 34,
+213,177,128, 21, 58,138,202,172,125, 86,216, 77, 20,147,137, 16,190, 52,118, 39,142,179,135, 80, 25,225,191,  4,120, 29,238, 43,
+193,199,199,238,  1,239, 29,143,183, 91,126,118,190, 38,177,142, 69,240, 44,130,227, 24,143, 51,134, 86,198,174,182,241, 30,153,
+ 36, 60, 82,154,218,195, 56, 77, 24,235, 40,236, 19,125, 75, 46, 21,173,107,185,144,100,228, 38,101,119,114,136, 81, 25,249,120,
+151, 66,231, 28,148, 25,187, 90,115, 37,207,240, 90,241,104, 48,109,135, 39, 22,105, 41, 17,169,137, 99,119,173, 80, 90, 33,141,
+ 65,105, 25,247,241, 66, 60, 45,246, 79, 70,242,226,233,  4,114,104, 58,188, 37,104, 25,101, 65, 82, 18,178,  2,143,198,151, 37,
+ 46, 79,112, 69,129,157,230,244,169,166,147,146, 62, 77,232,148,164, 11,146, 54, 81,116, 73, 74,151, 37,244, 66,208, 43,197,104,
+148,225,132, 97,103, 92, 48,202, 50, 94,152,140,248,157,189,107, 92,204,166,236,155,130,171,197, 52,122,219,149, 98,148, 72, 54,
+ 94, 96,211,140,198,187,120,157, 56, 23, 11,185,134, 50, 68, 66,120,231, 61,169,119,124,179, 72,121, 77, 43,130, 12, 40, 36,107,
+235, 40,140, 70, 15, 89, 23,181, 15,116,222, 13, 98, 76,207,113,219, 35,145,156,216, 88,240, 37, 10, 41, 37, 90, 40,166,163,156,
+255, 48, 79,249,222,222,152, 27,163, 17,211, 34,225,181,157,125,188,209,236, 23, 99,146,180, 32, 75, 50,114,165,127,195,162,254,
+164,  0,121, 79,152, 22, 60,183,183, 23, 71, 73,104, 82,173,209, 74, 99,135, 19,164,150, 42, 50,243,  7,  4,236,186,174,216,218,
+142,109, 31,103, 23,233,144,187, 29,132, 32,145,  2, 47,  3,123,163, 17,121,150,147,164,  9,229, 40, 65,248,192, 72, 75,186,243,
+  6,183,173,161,105, 57, 95, 46,200, 36, 52, 77,195,166, 90,113,127,211, 48, 75, 19, 42,239, 81,  1,186, 68,211,122, 71,110,210,
+ 56, 49,239,186,161,168, 15, 88, 91,105,134,116,180, 33,192,123, 92, 60, 91, 11, 60, 41,240,114,128,210, 40, 13, 93, 59, 92, 68,
+253, 51,165,250, 87,137,  0,133,135,180,128,100, 16,225,101,201, 64,205, 35, 38,190, 37,195,247,237,186, 56,154,183,225,233,126,
+232, 87,242,218,137, 72, 88, 27, 28,115,109, 56,119,158,141, 16, 20, 64, 13,172,  0, 25,  2, 33,  4,214, 18,148,144,244,  2,216,
+ 63,228,191,254,251, 63,224,239,255,206, 55,248,222,107,111,240,231,103, 27, 66,219,242,226,229,171, 92,158, 95,160,245, 13,139,
+135, 71, 67, 92,236,128,173,125,178,143,215, 67, 13,215, 95,174,229,254, 23, 59,117, 63, 28,236,190,244,241,246,241, 25,223,120,
+233,  5,202,113,198,122, 93,211,213, 45,213,102,205,106,177,  6, 33,169,155,158,170,119, 88, 11,163,210,196,236,100,163, 49,198,
+ 32,181,198, 72,133,  8,106,176,133,121, 26,231, 88,183,150, 77,107,169,234,158,186,141,  2,146,174,181,209, 74,102, 61, 42,149,
+184, 62, 16,108, 76, 24, 83, 82, 81,164,  9,227, 34, 97,148, 27, 94,122,245,  6,219,163, 13,125,223,113,107,121,142,237, 29,199,
+203, 45, 15,183, 21, 82, 10, 30, 85, 13,253,186, 97,200,187,  4, 35, 72, 15,114,174, 29, 78,152, 21,138, 67,142,  0,  0, 32,  0,
+ 73, 68, 65, 84, 31,150,236, 79, 11,140,132,157, 60,231,165,157, 67,190,123,237, 37, 70,249,132, 44,215, 92,156, 23,  4,225, 81,
+ 33, 80,119,150,213,182,167,243, 30, 45, 96,150, 27, 46, 79, 51,118,139,132, 84,203, 33, 69, 44,161, 40, 19,150, 77,199,213,231,
+ 15, 57, 62,223,242,240,223,221,225,214,159,191,207, 31,254,240,207,249,231,255,247, 95,241, 71,255,211, 79,121,255,147, 47,248,
+232,100, 65,187, 61,162, 93, 45,248,235, 31,255,140, 31,253,228, 61,118, 95,121,147, 99,165, 88,164,154,147, 91, 71,124,240,255,
+252, 25,205,186,230,209,221, 71,144,100,236, 94,156,177,127, 80,240,199,143,106, 92, 22, 35, 84,123,239, 49,206,161,246,103,232,
+193, 50,179, 62,171,249, 81,117,151,160, 20,173,209,124,251,210,132,215,111,188,194,119,222,250, 58,231,219, 13,255,195, 95,188,
+141,223,223, 33,228, 57, 50, 40, 46, 22, 41,120, 71,237,  2,  5,130,  7,231,167,156,110, 27, 84,232,105,186, 22, 25, 28,216,150,
+ 18,205,101,  9,163,234,140,251,206,242,184,119,220, 10,146, 92,198,110,233, 85, 35,249,123,  7,151, 25,151, 51, 72,115,102,211,
+ 25,203,196,224,141,198,148, 35,188,210,140,178, 20,227, 35,192, 72, 43,208, 72,166, 74,115,150, 20,136,114,132,175, 55,241,144,
+140, 32,108,155, 56,114, 14,  1,130,138, 17,201, 62,110,192, 93,112,228,211, 17,137, 18, 92, 20,129,185,  4,223,119,124,246,197,
+ 99,254,223,247, 79,152, 20, 10, 45,  5,255,237,215,223,224, 13,  2, 47,159, 31,113,124,112,133,255,238,197, 75,124,239,219, 47,
+241, 82, 81,242,197,217,154, 59, 71,199,248,229, 54,202, 78,132,199,247,207,220, 33, 79,174,254, 39, 52, 55,105, 61,109,237, 57,
+176,142, 73,170, 56, 72, 19, 46,  5,197,190,148,209,175, 46,  5,161,243, 92, 78, 13,157,130, 44, 77, 17,157,229,139, 44, 39,232,
+ 12, 89, 85,216,222, 34,108,204, 24, 16,105,130, 20, 32, 50,131,108,101,180,146, 89,144, 34,196,174,245, 73,183, 62, 20,115, 49,
+ 88, 85,159,250,188,127,137,215, 30,158, 82,255, 52, 46,254,111, 56,  9,159, 52,150,159,214, 53,183,132,228, 76, 72,154, 68, 18,
+164,160,149,154, 38, 73,249,184,169, 57,114,158, 50, 77,201, 16,104,231, 49,193,227,250,150,190,175,208,  4,198, 58,229, 96,122,
+137,164,152,147, 77, 14,209,217,132, 68, 23,104, 85, 48, 74, 83,114, 25,176,137, 36, 45, 18,250,178,164, 10, 10,100,202,116,154,
+209,146, 96,138, 34, 90,152,103, 83, 52,154,201,206,  4, 47, 18,246,230, 99, 58,157,163, 70,211,136,253, 72,199,  8, 51,  4,129,
+ 25,160,200, 65,103,132, 44, 33,148, 35,194,116, 70,152,141,  9, 23, 15,152,204, 39,136, 34, 71,229, 41,110, 84,210,102, 57, 86,
+107,250,124, 68, 95,148,116, 73, 66,159, 23,244, 73, 14, 38,101, 60,158, 49,205,243,120,200, 28,141, 24,229, 83,110,236,204,121,
+181,220, 99, 87,103, 28,100,  5, 19,101,200, 84,130,  0,234, 16,187,231,181, 12,220,105,162,246, 34, 12,247, 98, 37,  5,116,150,
+ 61,169,227, 33,223,122,174, 26,216,241,158,107,153, 38, 21,160,137,133, 93,  6,168,137, 49,212, 50,  8, 30,247,150,142,168, 41,
+ 90,224,185,211,247,180, 94, 34,117, 64, 50,116,233,198,240, 15,166, 25,223,223, 25,147, 37,154, 75,101,198, 52,207,  9,  2, 70,
+163, 29,116, 86, 98,178, 49, 82, 39,236, 77,102,191, 97, 81, 31,144,127,136,  4,150, 21,199,169,225,185,221, 61,188, 15,164, 73,
+142, 36,112,190,222,146,153,  4, 31, 60, 18,168,187,134,109,215,224, 67, 96,209,212, 32, 60,174,247,244, 77, 71, 63,228,210, 86,
+  3,102,212,  9,197,245,221, 41, 69,153,162,131,163,175, 26, 66,223, 96,143, 55,172,207,207, 89, 86, 43, 74, 36,167,182,  5,219,
+ 80, 87, 53,181, 13,212, 66,224,172, 69, 26,131, 71,160,  6, 81, 90,245, 36,146,117,181, 29, 80,170, 79,246,250, 14, 76, 10,179,
+114,200,251, 13,177,224, 38,146,194, 24,250, 16, 67, 85,250,224,227,223, 75,224,100,245, 12, 55,251,203,133,216,251, 33,212, 37,
+141,144,246,100,240,185,167,195,225,225,201, 76,150, 65, 60,183,173,227,191,  7,251,213, 48, 26, 33, 56,  7, 14,181, 98,229, 29,
+ 86,  4, 10,169, 88, 56, 79, 39,  5, 91,215,145, 41, 67, 67,192,136,136,120,172, 58,  5, 23,198,252,147,127,240, 59,140,178,130,
+113,105, 56, 59,237, 41,199, 37,191,251,189,239,243,234, 75,135,140,165,226,157, 15, 62,136, 35,120,223, 15, 62,209, 65, 45,111,
+109,124,156,246, 75,190, 20, 63, 16,246,212, 19,225,160,248, 21,199,169,187,255,152,227, 80,243,252,181,171,140,198, 25,213,182,
+102,189, 58,199, 89,203,226,232,152,114, 50, 99,113,180,164,235,  3,143,207, 43,156, 84,209,154, 38,163,154,188,183,241,162,109,
+122, 71,213, 89,186,222, 71,208,140,136,129, 42,125, 23,255, 44, 85, 28,223, 11, 41, 81, 66, 70, 76,112, 18,133,132,206,121,172,
+  8,120, 27, 56, 59,175, 25, 21,154,114, 52,230,230,157,187,124,124,255, 12, 43, 61, 87,230, 19,206,207,106, 42,233,217, 43, 12,
+ 86, 43,156, 13,144,107,152,100, 76,203,148,121,106,216, 73,115, 70,105, 78,153,102,104, 17, 29, 24,227,209,140, 36, 41, 88,157,
+ 55,236, 29,230, 20,169,166,178,142,214,  5,214,141,197, 57, 75, 38,  4,243,194, 48,203, 52,153, 86,116,214,209,244, 30,169, 37,
+222,  7,150,171,138,147,187,231, 60,120,255, 38, 15, 63,253,148,197,250, 12,156,229,235,175,191,194,254,171, 25,159,157, 44,162,
+135, 54, 83, 60,191, 59,  6,224,222,201,150, 63,253,232, 35,178,215,191,142, 74, 21,221,182,225,237,255,237, 15,120,240,224, 14,
+ 15,190,184,199,163,163,199,236, 95,185,140, 29,101,248, 47,238,242,127,252,203, 31,178, 56,110,233,122,168,148, 98,161,  5,251,
+ 72,234,222, 33, 47, 77,248,247,127,240, 61,254,189,255,248,183,121,235,173,111,240,131,139, 87,185,171, 39, 28,125,248,115,254,
+244,131,207, 57,214,138,214,  7,130, 82,212, 68,160,206,197, 44, 33, 39,176, 94,173, 88,172, 23,116,237, 26,108,135, 20, 80,109,
+150,140,178, 17,179,201, 46, 23,139, 25, 55, 38,123, 60,167, 28,157, 80,156,214, 53,243,209,132, 81, 94,240, 79,118,247,121,225,
+240,  2,153, 73,176,105,129, 79, 18, 86, 89, 70, 87,148, 88, 99, 40,115, 51, 76,112, 12, 99, 35, 41,133, 36, 81,158, 44, 81, 36,
+102, 12,197,136,229,100, 10,213, 34, 30,146,141,132,109,  3, 73, 70,112,245,112,232,126,  6,198, 58,239, 90,238,  8,131, 21,146,
+227,147, 37, 71, 39, 43,254,232,139,  5,127,178,108,216,109, 45, 59, 66,208, 28,157, 48,109,107, 46,  4,201,155,205,130,242,120,
+193,230,243, 71,252,228,189,119,121,240,248, 46,155,198,178,233, 33,116,158,176,117,132, 85,207, 19,127,169,208,209,154, 37,123,
+141, 68, 32,203,146,209,225, 14,106, 54, 98,111, 58, 34,241,129,203,  4,114, 23,200,165, 34, 13,158, 84, 27,122,239,  9, 82,146,
+ 88, 79,146, 38,140,172,231,174,245,200,209,  8, 89, 53,113, 52,223,244,168, 68, 33,147,  4, 25, 52, 50, 85,200, 36, 71,160,227,
+ 40, 90, 12,120, 16,231,159, 65, 93,134,110, 93,252,210, 61,233, 87,139,186,140,137,103, 90,225,180,196,  5,112,194,115,190,108,
+248,162, 15, 28, 97,217,104,184,217, 87, 28,185,142, 19,109,232,156,165,212,134,194, 58,186,182,163,111, 43,182, 93,141,243,113,
+ 20,126,169,152, 80,230,115,178,201, 46, 58,203, 80, 38, 31,250, 18,133, 80, 26,215,111,163,115, 33, 85,204,138,148,157,210, 48,
+205, 52,179, 34,101,119,158,179,208,134, 23,230, 37,123,153,226,187,251, 51, 94,204, 50,190,115, 56,231, 98, 89,240,214,165, 61,
+ 94,223, 41,121, 99,127,135, 11,147,168,103, 57,151,  9, 54,207, 98,198,249,116, 68, 24,151, 48, 41, 32, 47,  9,179, 17,255,249,
+225, 62, 95, 27, 79,248,209,239,255, 27, 92,170,249,135, 47,191,202,231,206, 82, 37, 25, 78, 42,172, 49,184,124,140, 72,114,118,
+ 76,202, 44, 43,153,167, 25,227,180,160,212,  9,121,154,147,231,134,125,157,113, 61, 45,153, 61,109, 84, 29,141,119,148, 58, 69,
+ 73,201, 73, 87, 83,  7, 71, 23,224,220,197, 41, 93,112, 81, 37,176, 47,  5, 91,231,226,161,211,122,174,164,146,151,181,100,162,
+ 53, 77,231, 80, 18,180, 16,180,222, 51, 23,113, 81,124,106,123,142,156,167,  7,206,122,135,211,134,  5,129,166,143,150, 64, 53,
+ 76, 51,190, 63, 75,121, 37, 79,184,150,231,100, 90, 49, 75, 51,210,164, 32,207, 71,244, 82, 67, 26, 83, 67, 71,249,136,206,100,
+191, 97, 81, 79, 74,200, 39, 48, 25, 67, 94,224,140,102,213,117,148, 73,194,209,118, 27,177,126, 74,209,217, 14, 27, 58, 92,112,
+  4, 33, 88,247, 91,206,170,138, 85,223,209,109,122, 88, 14,163,231,222, 15, 10, 87, 79,221,118, 60,222, 86,164,210, 97,108,199,
+227, 71,143, 25,245, 91,206,110,222,226,248,225, 61,170,237,134,164,107,233, 19, 77,127,126, 66,221,247,116, 85,135, 48,138,179,
+222,211, 43,205,198,  7,186,  1,212,223,  9, 73,174,117,  4,104, 56,192,110, 33,203, 99,202, 28, 33,142,170,181,138,167,190, 52,
+254,176,140, 16, 52, 46, 48, 49,154, 78,  4,114, 33, 99,252,251,166,141, 29, 93, 87, 71, 77,192,175, 43,236,195, 69, 77,145, 70,
+ 98, 93,211, 61,227,220, 19, 24,178,  4, 97, 84,192,114, 29, 59,245,175,234,252,  7,117,206,227, 16,168,165,100, 44, 20,139, 39,
+240,194, 16,152,232,132, 51,107, 73,129,199,192,152,192,170, 11,160, 53,175,223,184,194,206,180,228,147, 91, 11,126,252,225,135,
+124,253,133, 55,249,238,215, 46, 51,202, 51, 28, 29,127,246,215, 31,196,239,221, 91,144,238, 89,138,222,151, 11,186,181,177,160,
+155, 47, 57, 29,158, 78, 50,  6,203,158, 29, 14, 76,244, 44, 62,189,203, 66, 90, 94,126,233,121,102,187, 99, 64, 99,109, 79,221,
+108,184,119,255, 30, 88,135,109, 61,203,229,150,243, 85,195,233,121,195,218,122,172,141,190, 89,231,163,195,194,135,128,145,177,
+  8, 10,169,201,180,196,203,216,157, 40, 35, 16, 66, 34,165, 36,205, 53,133,137,130,196,182,237,233,157,195, 59,135,240,129, 64,
+ 32, 47, 82,138, 60,165,171, 60,125,191, 98, 99, 61,  7, 69,201,238, 36, 99, 55,207,152,100,  5,175,236, 31,242,218,213, 43,188,
+121,237, 26,175, 93,188,204, 97, 57, 66,  4, 79,166, 19, 38,217,148,131,209, 62,179,241, 30, 69, 54,102,182, 51, 39, 73, 36,105,
+154,113,176, 59, 97,111,162, 88,111, 45, 39,171,150,186,235,169, 91, 75,221, 91,172,139,  0,139,101,221,115, 92,117,  3,  9,174,
+103,185,109,208, 82,112,113, 86,240,209,199,183,233,250,142, 16,  4, 35,109,184,183, 60, 33, 79, 51, 14, 14, 71, 60,114, 29,155,
+ 91, 43, 62,187,189,224,161,119,120, 35,232,110,159,209,126,251,155, 92, 26,101,236, 28,140, 56,249,236, 19,148,239, 57,216, 27,
+ 65, 87,113,231,193, 49,207,141,103,188, 46, 60,147, 44,229, 95,253,243, 31,242,243,191,124,155,183, 63,250, 16,125, 86, 99,179,
+ 25,166,245,140,171,134, 31,254,233, 59,236, 23,134,145,150, 20,179, 17,238,227, 79,241, 67,222, 64,109,  3,199,206,226, 69, 64,
+170, 56,169, 58,175, 26, 90, 91,113,220,108, 57,107, 43,130,119,232, 32,144,193, 33,138, 49,105,146,241,234,124,143,121, 81, 34,
+ 19, 67, 62,158,115, 56, 46,185, 50,157,242, 87, 31,188,199,215, 14, 46, 51, 25,229, 92, 48, 57,107,161,168, 68, 32, 76,198, 52,
+243, 49,173, 16, 84, 38, 35,205, 13, 65, 41, 14,159, 16, 32, 59, 75,131, 64,107,195, 74, 40,242,217,156,231,167,187,124, 97, 74,
+168,150,132, 60,137,211,182,103,180,249,248, 62,214,106,  0,154, 88,108, 23,184,237, 61, 39,157,227,167, 85,199, 23,210,115, 41,
+ 79,184,150,104,174,171,136,236,157, 27,141, 14,150,169,131,169,183,204, 17,220,208, 57, 47,107,133, 10,150,119,122, 31,133, 84,
+101, 70,152,150,188,240,252, 14,103, 58,143,108,141, 81,142, 24,101,177, 32,239,207,201,247,118,184,182,127,153,217,236,128,249,
+116,159, 92,107, 70,193,146,185,192, 54, 56,140,146, 36, 73, 74, 34,  6,199,128,128,233,222,140,217,188,228, 40,205, 81, 23,247,
+163,202,185,239, 81,235, 10, 57, 88, 48,149, 78, 80,169, 70,149, 41, 50,201, 72, 38, 99,176, 49, 66, 86,120,135,124, 50,138, 15,
+  1,225, 37,226, 75,147,181,240, 43,133, 93,226,181,138, 68,104,173,113, 42, 90,245,172,244,184,174,230,188,246,124,190,173,169,
+145,156, 40, 88,245, 14,163, 18,232, 43,166, 72, 82,235, 88, 85, 11,100,176, 84,206,145,  4,199,133,108, 74, 49,222,197, 36, 57,
+114,176, 31,203,201, 24,130, 36,244, 29, 65,  6, 26,122, 58,165,176, 18,210, 36,193, 72, 73,145, 37, 36, 70,147,103,134,151,139,
+140,239,141, 74, 94,204, 83,158,159, 76, 25, 39, 57,175, 76,103, 76, 76,193,149,162,228, 32,205,153, 37,  9, 23, 70, 57, 23,114,
+ 77,154,105,202, 82, 51,202,114,108,150,209, 25, 67, 57, 46,248,135,243, 25,223,158, 28,242,252,104,135, 71,191,243, 22,255,205,
+243, 47,243, 63,102, 19,190, 31,122,110, 11, 73,167, 13, 33,201, 73,116,202, 78,146, 48,214,154, 50, 81,200, 32, 73,132, 32, 49,
+  5, 82, 72,118, 76,202,142, 50,236, 73,197, 60, 43,105,251, 14,109, 18, 76,136,218,171, 46, 56,106,239,121,228, 90,142,154,158,
+ 42, 68, 59, 93,240,158,113,  8,180, 34,218, 16, 19,  1, 29,130, 66,  6, 14,  6,235,116, 98, 20, 59, 34,174, 24, 82, 25, 27,151,
+202,  7, 62,235, 45, 39,222,179,176,150, 45,130,181,119,116, 38,234,127,100, 26,119,252,215,199,138,151,115,205,243,121,138, 20,
+130, 81,154,160,164, 38, 49, 41, 38, 77,192, 36,104, 19,139,122, 35, 98,224,213,223, 94,212,181,142,214,180,217,124, 16, 97,  9,
+ 16,138,106,213,112,127,185,166,182,209,  7,152, 36,154,117, 91,177,109,107,182,237,154,117,191,102,177,173, 56,174, 42,186,227,
+ 13,156,157,199, 98, 94, 85, 81,141, 93,213,136,237, 54,170, 89,235,134,187, 15, 79,120,239,227,219,124,120,255, 17,243,163, 99,
+214,143,207,201, 60,200,161,227, 95, 29, 47,208,206, 81,183, 61,  8,168,  2, 60,106, 44, 91, 17,208,  8, 66,162,249, 79,190,241,
+ 61,238,159, 60,196,250,128,147,192,182,130,218, 66, 91, 71, 65,156, 28, 40,115, 58,  5, 99, 40,202,148,174,235,201,211, 20, 45,
+161,114,118,160,155,129,237,226,206,132,109, 29, 11,221,223, 52,134, 71,193,116, 52,236,238,135, 81,126,154, 12,150, 64, 61, 20,
+ 66, 11, 65, 32,148, 66, 84, 27, 68,111, 17, 95, 65, 92,122, 34,116,235,172, 98,173,  2, 90, 68, 14,242,121,  8,232, 16, 34,164,
+ 14, 34, 54, 83, 39,116,218,209,183, 29,231,139, 19,126,244,233, 61,254,221,237,207,185,125,255, 24,161, 36,207,221,184,206,106,
+185,225,230,199, 15,120,239,131, 79,160,170, 65,182,241,249,200, 47, 89,225,244, 19, 33,202, 64,201, 99,176,121,241, 37, 74,223,
+147, 36, 58, 63,168, 86, 92,124,218, 39,159,220, 65,151, 25,207,189,248, 28, 89,145, 34,101, 66, 94,142, 25,143,198, 24,173, 57,
+ 95,157,147,153,148,221,249,  4, 43,  3,182,237, 89,174, 42, 64,144,164, 26, 57,236,168,227,168, 73,160,181,192, 40, 73,145,106,
+ 18, 19,137,116,153, 49, 24, 19,109,113, 10,129, 35,142, 44,181,150, 24, 36,163,113, 74,150, 27,250,214,211,244,129,157,249,156,
+ 36, 24,246, 77,201, 40,201,216, 29,237,112,101,231, 50,251,179,  3, 82, 41,201,211,130,188, 40,200,211, 17,163, 98, 66,130, 97,
+ 50,218,225,240,224, 34, 87,175, 95,226,107,111,220,224,107, 47, 95,225,205, 23, 15,249,250, 75, 23,153,239, 77, 16,202, 48,201,
+ 60, 77,107, 99,247, 69,244,172, 55, 85, 79,135,199,  9, 65,229, 28,221, 32,124,169,186,136,225, 61,152, 22,188,114,121,206,195,
+227, 45,119, 31, 61,102,103,186, 67, 49, 26,209,185,142,207,142,143,104,123,203, 56, 55,164,179,148,116, 47, 35,201, 36,223,184,
+178,207,115,215,230,220,122,251,109,158,251,238,183, 40,115, 77, 62,158,115,247,157,247,200,140, 36,207, 82,150,103, 43,116, 83,
+225,102,187, 92,254,254,107,140,115,205,135,239,223,102,188,109, 41, 55,231,188,240,234,235, 28, 26,193, 97,154,240,205,221, 61,
+206, 22, 13,237,195,115,206,190,120, 72, 21, 28,202,  5,250,222, 18, 46, 93,229, 19, 39,  8,213,150,107, 73,202, 89,189, 65,119,
+ 53,139,106,195,162,238, 57,204, 52,243,124,196, 56, 47,240,166,160,204, 10,174,150, 35,174,152,148, 34,207, 88,151, 41, 91,239,
+ 41,138, 18, 35, 53, 95,191,246, 28, 82,193,121,  8,164,147,  9, 15,157,195,141, 74,150,169,230,204,104,164,150, 56,161,232,144,
+236, 22,  6,225, 97, 44,  5, 53, 49,102,119,225, 61,169, 76,121,253, 96,204,127,121,117,204,126, 49,229,199,157, 64,108, 22,113,
+181,149,165,241,194,211, 89,196, 52, 59, 16,122,  0, 48,185, 14,183,109, 57,  9,158,115,225,153, 11,201,141, 76,113, 45, 53, 28,
+ 26, 69,153,106,180, 81,140,147,  4, 58,203,193,100,196,100,186, 79,158, 23,228, 74,147, 25,205, 50,133, 59,121,130, 43, 82, 94,
+187, 52, 38,207, 12,201,200,176,108,  3,210,129,148,  9, 98, 90,240,143, 47,206,248,230,206, 46, 59,211,125, 70,229,136,185, 78,
+ 64,101,236,248,232,165,158,100, 25,173,139, 97, 71, 94, 66,162, 20,179, 23, 94, 35,187,244, 18,187, 47,190,201,213,107, 55,184,
+180,179,207,165,253, 67,100,230,216, 10,129, 92,108, 80,117,143,202, 13, 42, 77, 81,227,130, 23, 15,246,249,123, 55, 46,243,234,
+193,152,135, 94, 96,183,219,193,227, 29,  6,133,248, 87, 11, 93,159, 29,125,124,100, 60, 40,249,180,160, 63,241,222, 59, 15,206,
+117,184,117,199,106,189,230,180,182, 28, 47,215,156,250,154,188,173,144,109,  5, 93,133,113, 29,171,170,198,225, 24, 11,201,229,
+209, 46, 70, 36, 36, 73,142, 42, 75, 40,226, 90,209, 91, 75,111, 59, 58,223, 83,  7,203, 90,120,250, 97,122, 58,206, 18,114,163,
+104,133,228,235,101,201, 85,165,249,198,120,202, 72, 38, 76,147,132,189,108, 66, 80,154,195,108, 76,105, 10, 70,218,112, 49, 31,
+ 35,131,103, 47, 43, 41, 18,205,200, 24,178, 84, 51, 79,227,  8,250,141,188,224,149,209, 14, 55,202, 57, 66, 74,190, 99,226,234,
+243, 37,223,225, 85,164,105, 30,251,152,126, 55,  1, 74,157, 70,235,157,212, 24,161,208, 42,  1, 17,200,211, 20, 27,122, 46,153,
+ 52,254, 28,131,167, 24,210, 73, 91,231, 72,141,102,221,183, 44,250,150, 19, 34,  6,246, 92,128,117, 14,233,  3,162,181,140,156,
+163, 31, 68,205,137,  8,172, 16,236,  9,207,133, 68,115,160, 20,189,119, 44,109, 28,213,111, 61, 28,133,192,167,189,163,  3, 90,
+  1, 94, 10, 86, 74,178,237, 37,157,209,  8,165,216, 77, 52,215,114,195,235,121, 74,130,192, 11,193, 78,154,129,214,148, 89, 74,
+167, 12,163,108, 66, 67,192, 10, 65,171, 20, 45,242,111, 43,234, 26,242, 18,230,243, 65,232, 37, 98, 39,234,135, 96, 22,231,105,
+125,207,178,179,100, 26,186,224,144, 74,177,172, 42,142,235,154,199,143,150,184,199,  3,198,117,187,133,122, 27, 59,102,219,197,
+ 95,251, 54, 50,144,235, 77, 76,105,170, 54,132,186,102,234, 36, 47, 29,236,176,236, 59,164,209,116,  3, 19,183,147, 18,229, 60,
+107, 33,216, 75, 18,238,160, 56,173,106,132,144, 96, 61,159, 31, 61,196,  5, 31,187,246,174,141, 20, 55,250, 72,192, 99,232, 66,
+251,161,163, 30,231,244,141,101, 84,150,108,218, 22, 51,248, 64,219,206, 34,108,244, 75,211,181,195,213,223,199,199,236,134,240,
+151, 95, 46,236,154,232,209, 87,102,240,245, 63, 17,176, 13,100, 62, 37,163, 16,166,107,227,191,119, 62, 42,235,127, 73, 21,250,
+180,168,135,  0,210, 83,106, 77, 39, 33, 23, 34, 54, 51, 65, 48,214,154, 62,120, 52,130, 99,239,216, 19,134, 76, 56, 30, 45, 55,
+ 60,120,184,102,217, 68, 15,250,241,221,251,124,186, 88,114,235,254, 57, 63,124,231,231,112,239,193,240,216,186, 65,252, 38,191,
+  4,191,249, 50,227,241, 75, 93,250,147,130,254, 36,208,135,129, 91,224, 35, 24,230, 73,  0,243,237,143, 62, 37, 45,115, 94,126,
+237, 69,164, 22, 84, 85,220,177, 23,163, 17,222,247, 52, 93, 77, 62,158, 34,125,236,198, 43,219,209,214, 61, 89, 97,168, 90,135,
+181,129,118,128,  5,101, 70, 12,137,107,146,204, 68,174,123,162,163,167, 61, 75, 35, 36,168, 72, 12,137,145, 20,153, 97, 50, 74,
+217,153,229,236,143,114,116,102, 72, 83,205,238,180,100, 50,157,144,148, 99,164, 77, 41,179, 73, 60,104,204, 38,104,149, 82,148,
+ 37,229,100,130,239, 28,163, 73,201,165, 43,151,120,225,185,171,188,244,194, 33,175, 94,155,113,125,191,228,112,148,178,172, 60,
+ 39,149, 37, 83,129,159,124,252, 41, 31,125,122,139, 11,135,115,186, 16,109, 74,  1,232,156,197, 89,199,170,238, 56, 91,214, 44,
+ 87, 53,155,117,195,114, 81,177,218, 52,224,  3, 51,173, 57, 93,183,172,214, 13,203,245, 25,206, 58,164,210,104, 17,184,119,182,
+161,183,158,113,110,112,206,243,112,213,209,245, 45,207, 31, 92,224,130,134,254,249,151, 40,210,132,189, 11,115,254,206,223,125,
+139,127,253, 71,127,129,198,146,164,138, 59,103, 43,108, 82, 50,187, 48,231,229,215,111,144,  9,207,189,229,130, 43,187,  5,147,
+170,230,181, 23,110,160,100,244,212,103, 70,113, 84,181,244,125,141,245,129,102,179,193,246, 45,119, 31, 63,224,139,119, 63, 34,
+236,205,249,189,107, 47,242,163,197,  9,250,236, 20,223, 91,174,204,199,204,243, 49,187,229,  4,159, 21,140,138,146, 81,146,112,
+209,  7, 14,147,132, 10,207, 23, 65, 18,140,166,114,  1,202,156, 44, 79,163,151,118, 50, 97, 45,  5, 39,227,156, 83,239, 57,107,
+ 29,105,158,208, 33,216,108, 58, 92, 31,181, 19,107,101,184,231,  2, 43,157,176,242,154, 66, 27,124,219,241,143, 47,141,184,190,
+ 63,166,212,112,115,107,216, 14,221,210, 75,218,177, 40, 75, 84, 97,  8,153,161, 40,115,108, 63,192,150,140,140,141, 67,223, 16,
+218,134,149,183,  8, 23,152, 75, 73, 39, 60, 34, 79, 40,166, 41,218, 24, 18,173, 24, 21, 69,212,120, 36, 57,141,117, 44,148,100,
+101, 18,198, 38,176, 78, 52, 70, 74,178, 84,115, 94, 91, 54,181,  5, 37,249, 71, 23, 10,254,233,197, 57,191, 59,223,225,107,229,
+156,153,210,156,166, 57,157, 16, 92,  8,129, 52,120,114,111, 89,119, 29,101,145,177,117,142,253,162,160, 30,205,209,  7,215,217,
+185,124,133,253,113,206, 94, 86, 32,146,168, 50,223,223,217,231,242,100,204,168,148, 44, 87, 21,186,181,232, 50,198,170,254,222,
+245, 23,248,173,253, 75, 76,138, 57,171,212,113,212,  6,100,211, 33, 91, 79,220,172, 63, 41,236, 79, 70,111,191,104,193,123, 86,
+216, 45,222,232,167,183, 51,175, 98,172,177, 87, 34,170,253,113,132,243, 53,225,248,132,118,181,229,222,189,  5,247,206,150,152,
+174, 70, 88,139,235, 58,148,247,140,145, 28,152,132, 60, 31,163,179, 18, 97, 36, 66, 39,248,182, 39,216, 46,194,110,250, 45, 15,
+251, 13, 27,192, 72, 65, 47, 20,185,140,174,158, 23,178, 28, 21, 60, 95,203, 70, 84,222,179,151,143,208, 58,197,152,132, 84,103,
+ 72, 19, 15,241,133,206,232,125,199, 44, 25, 97, 67, 20,252,153, 36,165, 39,144,106, 69, 34,  4, 87,139,  9,215,210, 18,  7,  8,
+101,112,193,161,148, 96,150,166, 44,173,101, 65,207,137,139,148,186,204, 40,100,240,104,169,209, 33,234, 94, 52,  2,149,168, 56,
+169, 19, 10,239, 45,123, 58, 37,115, 49,181, 45,174, 81,  4,125,223,113,220,213, 60,234, 59,142,125,207,178,110,169,188,163,222,
+ 84,120,231, 72,136,233,141,115, 37, 41,  8, 44,  3, 36, 14,238,123,193,124,144,250, 87, 66, 48, 29,178, 46,238,  5,207,207, 26,
+203,137,136,119,227,141,128, 70,  8, 86,  8,182, 14,102, 25, 36,  8,156,150,124,215, 40,114, 21, 72,165, 34,151, 10, 37, 97,100,
+ 12, 94,106, 50,157, 18,148,198, 73,195, 86, 42, 92, 16,212,206,253,109, 69,221, 67, 49,137,197, 41, 75,145,105, 74,158,153,184,
+115,126,194,126,223,214,224, 61,139,147, 21,167,189,231,164,173, 88,220, 63,166, 62, 90,195,253,251, 49,106,175,105,127, 45,113,
+ 78,124,197,  8,122,108, 20, 78, 25,198,121,202,102,216, 73, 97, 20,161,237,177, 70, 83, 40,205,143,219, 22, 41, 29,141, 84, 52,
+125, 28,127, 58, 31,227, 63,159,250,192, 87,213,160, 54, 31, 32, 51,142, 24,161,234, 93, 76, 72,155, 79,232,186, 14,169,  4, 14,
+137, 36,224,196,192, 77,223,110, 99,145, 14,196, 68,165, 39,187,102,220,175, 22,117, 33,162, 32, 47, 49, 81,  5,255, 36,110,240,
+ 75,  4,168,104,155, 27,168,119, 74, 12,135, 26,251,171,150,143,167,248,215,104,191, 16, 66,209,136, 64, 75,160, 28,138,236,142,
+138,202, 78,124,160, 35, 48, 21,  9,210, 58, 54,161, 39,172,182,209,166,101, 27, 86,189,229,168, 90,194,249, 42, 30,168,156, 69,
+ 72,251,139,223,199,126,169,176,243,165, 46,253, 73, 97, 87, 67, 65,127, 26, 43,203, 51, 55,192, 19,201,128,132,207,222,255,152,
+253, 75, 23,185,252,220, 37,130,144,241,166, 93,109, 98,206,177,119,156, 30, 69,246,248,225,165,125,210,196, 32,165, 98,127,146,
+179,173, 45,219,206, 98, 18, 29,173, 98,131,242, 88,105, 25,119,234,131, 30, 40, 51, 10, 41,100, 28, 83,132, 24, 96, 49, 42, 82,
+178, 52, 33,211,138,162,212,164,  3,163,160, 72, 37, 89, 98, 40,138,  4,167,  3,206, 90,140, 82,228,217,152,209,180, 36,201, 12,
+ 74,105,188,179,204,103, 35, 46, 94,153,114,105,167,224,202, 44, 35, 79, 52,141,245,124,113,222,242,120,189,225,232,248, 17,111,
+191,251, 14,159,223,249,152,119,111,221,230,133, 27,215,153,143, 51,188,139, 81,172, 77,211, 83, 55, 29, 77,213,179, 89, 54, 52,
+155,134,237,186,162,173,163,117,241,112, 82,208,184,192, 23,199,231,204,247,247, 64, 26,206, 54, 75,214,237,134, 68, 27,146, 52,
+208, 59,143, 11,  1,105, 36,153,150,172, 58,203,221,229, 25,214, 89,142, 63,187,197,139,223,120,157, 43, 70, 49,145,138,249,213,
+ 43,172, 62,191,137,147, 49, 69,110,181, 56,229,185,195,203,204,118, 70, 92,127,245,  6,133, 72,120,251,147,155, 76, 83,193,119,
+ 94,123, 61,142, 97,133,224,104,211,114,210,247,156,110, 54,252,235,144,113,195, 85, 60, 88,157,241,227,179, 83,154, 71,167,240,
+224,  1,223,159,103,124,162, 10, 30, 39,154,229,135, 15,120,245,234, 30, 89, 94,146,103,  5,118,160, 96,181, 82,145,  9, 65,112,
+158, 62,201,184,217,244,164,211,130,109, 27,185,  1, 73,162,152,206, 74,156, 13, 44,156,228,124,219,114,182,110,232,170,138,243,
+243, 45,235, 85, 67,150, 72,232, 58, 10,  9,171,198, 67,154,210, 39, 26, 53,206, 89, 39,134,165,147,172,130,229, 18,240,251,103,
+150, 59,125, 20,118,190,216,175,113,218,112, 65,  9,190, 57,155, 96,140,231,226,184,164, 44, 37,139,173,  7, 23, 16,125,253,165,
+123,137,227,204,118,124,216, 86,188, 93,247,172,164, 67,105, 67,105, 34,223, 94,  5, 71,240, 61,155,174,230,147,174,226,166,132,
+165,237, 81, 54,130,100,214,189,163,233,123,238,156,117, 32,  5,151, 71,134,223, 27,165,252,214,108,198, 56,203, 81,206,210,120,
+203,231,213,134,190,222,162,155,138,108, 16,147,101, 66,198, 12,  4,163,217, 72, 77,153,164,152,233,  1,  7,187, 51,198, 69,206,
+220, 40, 10, 41,240,214, 49, 73, 82,102,243,125,158,219,191,198,155,151, 46,243,202,254, 28,187, 62,231, 82,154,243,189,157,125,
+ 46,236,204,240,198,112,167, 17, 60, 76,  4, 74, 39,200, 52, 65, 56, 27,239,109,222, 35,126, 81, 20,243, 11, 35,248,167,157,123,
+128,160, 36, 94, 69,175,187,215, 50, 22,125, 69,140,254,236,135,228,189,182,  3,  2, 77,215,113,123,221,177,170,107,142,234,138,
+ 16,  4,133, 22, 28, 74,193, 40, 27, 35,149,142, 94,116,231,  8, 93, 71,223, 84, 84,245,146,181,171, 88,248,158,115, 28, 54,  8,
+ 74,165,216,120,199,133, 36,103,233, 29,175,166, 37, 78,192, 78,154,227, 66,160, 76, 75,156,148, 36, 67,167, 29,144, 32, 60, 18,
+ 69,235, 45,141,239, 81, 82,196,164, 70,165,240, 56,180, 48, 28,100, 25, 59,186,196, 17,133,144,133,214, 52, 46,242, 12,206,187,
+134, 47,250,154, 51, 27, 83, 21,147,224, 49, 62,166, 45,106, 17, 48,  2,204,144,224,102,131,167, 11,158,214,121, 18,219, 49,147,
+138,  4, 73,211, 54, 88,107,121,216,108,185,217,172, 57, 13,150,133,235, 88,247,142,123,103, 43,124,219,195,166,162,109, 59,138,
+ 32,201,148,103, 97,195, 83,109,208, 38,  4, 30,181,158,187,210, 83,247,158,255,175,237,249,172,182, 44, 67,224,175,154,104,239,
+189,221,131, 87,129,147, 14, 86, 34, 82, 64,141, 86,100, 18,180,  8,212, 34,112, 73, 73, 10, 33, 41,132, 64, 43,129, 64,146,104,
+131, 73, 50,122,101, 56, 69, 80, 17,232,130,199,255, 70,234,119,229, 33,207,193, 36,140,203,156, 30, 71,110, 98,238,186,171,251,
+ 88,176, 23,143,225,232,  4, 78,142,  8, 15,143, 34,175,184,218,254,198,108,147, 95, 46,236,167,206,243,242,100,140,205, 20, 90,
+ 64, 19,  4, 88,135, 50,154,166,107, 56, 87,138, 76,  9, 30,183,158, 83, 47,162,  2, 52,132, 33, 28, 96, 80,118,111, 99,188, 94,
+204, 74,183,207,226, 98,245,144, 25, 63, 60,  7,180, 38,248, 64,112, 46, 30,  8,194,128,114, 53, 67,215,237,109,204,154,175,171,
+248, 90, 72,241,235, 19,215,166,243,152, 57,175, 99, 44,171,176,195,215,139, 33,226,181,233,227, 24,223,251,248,152, 93,247,213,
+232,245, 39,  2, 60,192, 89, 69,103,  5, 19,  3, 99, 33, 81, 74, 81, 57,135,247,158, 14, 24, 11,112,196, 19,232,105,227,152,164,
+208, 58, 23,247,248,121, 49,188,163, 29,244, 53,162,111,159,165,185, 61,117, 53,248, 97,189, 96,159,141,229,191,124, 59,  8,225,
+ 41,244, 98,240,202, 12,135, 27,255,139,157, 62,240,222,143,127,198,181, 23, 95,226,226,181,125,148,138,227,240,190,173,  9,193,
+ 19,164,167,235, 90,206, 78, 79, 89,158,173, 57, 61, 57,229,248,180,102,211, 52, 44,207, 42,130,145,212,173, 99, 85,117,228,169,
+137, 36, 37, 25,187,118, 33, 32, 49,146,220, 72, 50, 99, 40, 51,131, 82,138, 44,215,228,137, 65,232,103,137,123,189, 13,120,160,
+106,226,227,156,142, 50, 46, 95,156, 82, 76, 50,246,246, 51,202,169, 97,190, 83,176,183, 87, 50,219, 31,243,198,245,125, 14,167,
+ 25, 69,170, 56, 95, 53,188,247,197, 17,127,241,238,199,124,246,217,103, 60,184,247, 57,239,126,248,  1,239,220,185,203,  7, 71,
+103,220, 91,214,204,172,231,245, 87,111,144,104,133,146,130,214, 58,234,186,139, 74,233,100, 80,231, 35, 48,153,224,187, 59, 99,
+174,239, 78, 88, 54, 29,247,207,150, 28,238,205,152,204, 10,148,202, 73,188,225,209,250,148, 68, 42,186,224,176, 33, 48,207, 51,
+202, 84,115, 56, 29,147,106,137, 87,130,169,239,121,225,198, 75,104, 41,105,140,164,219,159,179,253,226,140,176, 61,167,200, 34,
+147,253,179,207,110,114,249,197, 23, 80,121,202,141,235,135, 76, 68,198,163,197,130, 63,249,252, 30,223,184,122, 13, 39,224, 94,
+219,241,227,247,255,138,127,249,254, 71,156,187, 45,159,156, 63,230,246,241,130,243, 91,199,132,205,146,208,215,252,248,206, 61,
+170,197,121,212,126, 92, 61,224,179,207,239,241,181, 43, 87,232, 16,104,147, 32,165, 70, 73, 67, 45, 37,231,193,115,146, 40,130,
+ 49,180, 77, 71,235,  4,181,243,148,133,142, 14,141,174,103,187, 56,161, 91,109,120,184, 94,163,172,165,173, 43, 18, 44, 73, 83,
+ 83, 12,139,148,121,145,144, 24,  9,121, 78, 39, 36,231,121,202,120,148,241, 96, 27,248,201, 73,205,209, 98,203, 73,103,121,113,
+123,206,166,111,185,150, 25,178, 44, 99,229,122,174,103,  5,149,235,249,121, 19,248,214,229, 41, 15,151, 77,212,183, 40,255, 21,
+250, 23,199,163,186,225,167,235,154, 73,237,168,154,158,181, 11,220,238, 90,254,109, 93,243,158,235,120,108, 27,250,182,165, 58,
+ 89,178, 17, 48, 71, 82,213, 45,137,132,177,145,228, 26,126,123,146,179, 39, 32,241,176,174,215,252,116,121,198, 95,110,215,248,
+110,131,169, 43,164,237, 72, 17,204,180,194,202,152,123,208,218,158,198,164,204, 38,187,204,178,130, 50, 79, 81,157,195,244,142,
+177, 73, 24, 39, 49,222,118,119, 50, 66, 39, 57,187,187,251,188,178,127,141,203, 50, 33, 23,208, 55, 29,119,234,138,  7,189,227,
+ 76, 72,212, 56, 71,230, 10,145,151,136, 52, 71,  8, 29, 27,135,158, 47, 37,221,127,133,120,206,251,104, 15,244,224,181,124,  6,
+219, 81,224,219,246, 89,135,159, 38,241,158, 85, 78,162,226,123,119,206,114,235,216,236,206, 41, 85,180, 90,153,106, 73, 46, 20,
+216, 30,231,  2,206,246,212,245,146,141,173,120,208,174,121,224,123,194,112, 24,239,173,101,100, 82, 30,246, 45, 87,179,156,218,
+121,118,147, 12, 33,  4,101, 54,198,227, 24, 23, 99, 54,189,197, 38,  6,223,119, 36, 73,130,247,129, 62,  6,145,178,234, 59,156,
+ 20,108,156,165, 37,250,243,149, 80,132,  0, 83,157, 80, 26,141,247,144,105,195,178,169,185, 93,175,184,213,212,172,172,165,119,
+ 22, 33,160,243, 29,184, 30,231,122,164, 23,212,125, 77,215,182,113,109,208,117,212,237, 10,217, 55, 44,251,142,166,171, 57,233,
+ 27,150, 93,197,173,102,197, 99,103,121,212,110, 57,247,150,202,  5, 78,215, 91,194,106, 75,240,241, 48,153, 36,134, 32,  4,153,
+ 20, 20, 74,176,112, 30,235, 97, 27, 96,225,  5,183,122,207,194, 11, 30,118, 61,183, 58, 71,135,228,220,  7,122, 33,216,122, 73,
+ 31,  2,  4, 65, 72, 37,170,243,148,  6,218, 32, 81, 42,176, 35,227,253,246,192,104,206, 58,143,146,195, 24, 31,193, 93,  4,149,
+214,108,173,195, 42,205,169,237,126,131,162, 46,135,113,241,124,142, 49, 18, 53,156, 66,170,174, 31, 84,225, 50,166,183, 53,221,
+ 47,118,124, 38, 25,198,209, 67,241,252, 13, 18,221,158, 22,119,163,185, 27, 20,151,138,  4,239,162,154, 93, 40,205,178,169,241,
+ 58,  3,231,248,211,109, 75,162, 52,219,174,123, 54,178,126, 18, 74, 51, 96, 72, 89,159, 15,227,227,225, 77, 46,205,112,189, 91,
+240, 38, 78, 32, 82,  3,189, 67,  9,143, 25,242,208,131,148, 76,132,164,109, 26,216, 14, 65, 44, 97, 16,136,245,  3,  0,225, 87,
+242,209,135, 56,131, 44,133, 34, 69,108,187, 24, 30,131,143,175,159, 34,230, 78, 53, 45, 34,196,132, 34,209,118,113, 63,246, 85,
+175,131,247,113,220,175, 61, 16,149,171,137,144,180,222,145, 72,193,  8,141, 23,209,226,118,223, 91, 82, 33,120,209, 72,250,224,
+ 89, 63, 61,180, 71,127,232,244, 96,143, 23,222,120, 13,117,225,  2,219,109, 15,161,128, 55,223,226,183,127,231, 63,227,158,115,
+136,211,123,  3,246, 54,137,107,132,108, 54,144,244,220,211, 20,165, 39, 12,249,120, 24,248,245,232,220,119,254,242,199,188,241,
+157,111,177,115, 56,197, 24,141, 48, 17,  4,227,173,199,139, 16,223, 68,244,180,182, 37,132,192, 98,177,160, 40, 74, 50,147,210,
+182, 22,147, 74,242, 68, 83,166,  6, 59, 88,251,139, 68, 33,130, 36, 77, 34, 38,209,  7,143,210,  2, 51,172, 16,210, 65, 89, 47,
+164, 32,213,160,165, 36, 85,138,249, 40,225,218,126,201,238,184, 32,203, 19,202,145, 65, 75,197,254, 52, 99, 50, 74,160,235, 89,
+215, 27, 30,174, 54,252,252,243, 35,126,244,206,187,124,252,241,251,252,240,131,119,249,232,209,125,126,254,248, 49, 31,221, 62,
+230,252,108, 75, 95, 59, 72, 21,143,215, 75, 94,191,126,131, 75,187, 99, 18, 45,233,  7, 63,233,141,189, 17,111, 28, 76, 48,101,
+138,212,146,231, 74,195,235,243, 49, 58,  4, 62,126,184,224,180,110,184,118, 48,101, 90,102, 60, 56, 62,231,202,254, 30,105, 82,
+ 98,148,224,218,197, 43,236,230, 35,178, 52, 33, 77, 36,243, 52, 99,150,151, 92,221,221,103, 50, 26,241,232,206,125,194,206,  5,
+238,120,135,208,146, 27,223,122,137,229,199,247, 16,182,166, 76, 19,188,119,124,254,241, 45,246, 47, 94, 98,220,116,220,184,178,
+199,121, 29,200,131,229,224,149,235,180,121,224,255,250,131,255,147,211,236,144,147,106,133,255,236,  1, 77,223, 81,183, 45,225,
+100, 67,168,150,208,219,168,228,237, 35, 62,149,182,131, 43, 23,185,174, 52, 90, 27,180, 82,244,  2,130,183, 56,  9, 78,104,214,
+ 29,100,153,161,239,123, 84,179,  5, 27,120,116,182, 65,216,142,237,249, 18, 87,173,113,237, 22,221,181,156,184,158, 77,  8, 20,
+125,203, 78,128,185,235, 25, 19,152,107,195,104,148,162,149, 98, 17,162, 80,236,226,200,112, 48, 47,208, 38, 69,105,201,158,131,
+102,189,228,249,105,206,231,235, 45, 85, 83, 51, 78, 19, 54, 78, 18,148,224,181, 81,202,191, 93,118,  4, 45,226,248,157,  4,136,
+150, 72,190,228, 51,143,133,205,242,254,166,229,253,206,178,178, 45, 15,131,231, 78,221,179,168, 58,110,159,158,243,201,249,154,
+ 99, 47, 73, 15,167, 28,142,115,122,231, 56,119,150, 92, 10, 50,161, 48,157,101,209, 54,252,236,228,140, 63,124,112,202, 63,123,
+188,226, 81,235,223,218,122,142,  0,  0, 32,  0, 73, 68, 65, 84, 40,250,154,210, 58,250,224, 56, 52,112,142, 98, 36, 35,244,164,
+ 82,154,115,192,168, 17,187,147,  9,174,233,145,137,162,237, 44,157,237,153,142, 50,242, 84,147, 35,152,101,  9,210, 72,228, 40,
+103, 60,223,197,  8,131,237,122,100,215,161,113,164, 66,178, 22, 10,161, 21, 34, 53,200, 81, 10,227,  2,161, 82,152,140, 96, 60,
+ 66,204,102, 48, 29, 62, 85,  2, 98,136, 58, 30, 92, 65,193, 71,239, 63,206,199,146,233,  6, 63,126,154, 12, 22,194, 36,162,116,
+ 83,141,184,122, 41, 94, 15, 55,174,210,212, 91,252,120,143,170, 93, 34,203,  9,105,187,161, 35, 32, 92,207,233,246,148,135,253,
+154,155,205, 57,183,250,134, 58,  4,114,165, 56,235,123, 10,163,169, 67, 96, 71,106,110, 91,203, 11,105, 70,231, 45,123,  3, 86,
+ 91, 11,201,253,182, 65,100, 25,155,182, 67,165, 41,174,235,105, 67, 36,190, 45, 92, 75,175, 36, 39, 93,131, 11,130, 30, 75,227,
+ 44,214,119, 20, 90, 51, 18,138, 92,106,130,117,212,182,227,110,189,230,131,237,130,135,117,197,195,166, 34,177, 29,139,205,  6,
+219,119,136,182, 66,186,150,163,213,130,174, 94,115, 94,109,184,249,248,152,227,205, 25,155,243, 21,141,175,121, 92,109,184,181,
+ 93,241,160,221,242, 97,181,226,182,183, 28,185,150,165,117,108,123, 79,223,121,172,137, 19,226, 32,227,244,163, 19,224, 19,133,
+245,112,226, 35,222,213,138,161,190,200,232, 12, 32, 12, 26,181,109, 19, 67,139, 92,120,182, 10, 85, 17, 40,132,133, 30,  1, 22,
+198, 38,208,183, 16,  8,236,132,168, 35, 19,193,211, 58,203, 61,239,168, 93,207,210,104, 78,125,160, 22,112,218,247, 52,184,223,
+160,168, 59, 23,109, 77,121, 17,115,109,125,244, 20, 71, 16,118, 23,137,105,155,234, 23,153,230,105, 18, 85,230, 98,160,237, 60,
+ 21,173,254,134, 81,173,206, 17, 18,201, 35,239,201, 18, 77,145,106,238,172, 27,110, 20, 57,143,154,154,207,164, 71,120,197,137,
+227, 89,  7,110,135,168, 83,231,159,112, 19,227,239,187, 38,118,221,246, 73, 94,252, 80,241,236, 96, 61,211, 42,142,124,134,238,
+  2, 37, 25, 11,201,170,237, 73,122, 27,215,198, 77, 19,199,248, 16,159,167,245, 95,253, 58, 57, 96, 92,198, 40, 65, 99,158, 61,
+134, 68, 33,150,213,179,  9, 65,219,198,215,198, 61, 27,193,127,101, 97,103,232,216, 77, 44, 84, 78,122,118,134, 28,225,  6,203,
+  4, 73, 47, 34,125,110, 46, 37, 39,206, 81, 15, 63,124,242, 98,112, 43,104,190,121,245, 57, 94,190,112,157,111,191,246, 53, 66,
+  6, 15,215,129,255,234,119,255, 35,254,139,255,224,  5,222,250,230,215,121, 72,224,248,163,219,209, 37,144, 20, 17,154, 19, 52,
+ 40, 59,164,222,133,103,241,181,246,215, 20,244, 98, 20, 41,117,192, 95,255,155,191,224,205,183,190,199,222,254,152, 36, 75,201,
+199, 17, 29, 60,158,206, 41,166, 35,242,162,164, 44,198,164, 69,134, 78, 52,245,118,201, 98,177,224,236,108,129, 16,154,245,214,
+ 97,117, 20,157, 44,219, 62,  2, 54,132,136,161,  6, 66, 80,217,104,119, 19, 16,177,172, 79, 70,139,  2, 50, 25,119,241,137,138,
+113,168,121, 98,  8, 90, 83, 26, 67,145,166,236, 76,114,114,105,216, 52,150, 85, 93,211,214,150,109,219,113,126,178,230,241,163,
+ 71,124,248,240, 17,119,238,158, 83,173, 27, 90, 27, 96,107, 33, 85, 20,251, 25, 47,237, 77,152, 22,  6,187,172,217, 59,220, 35,
+ 85,154,210, 36, 92,158,229,188,185, 63,229,202,238,136,157, 44,193,139,192,170,141,252,231, 63,187,121,159,159,222,250, 28,215,
+ 89, 46, 30,238,177,169, 90, 30,159, 46, 33, 75,217,187,176,135, 16,  9,194,121, 52, 10,135,136,202,230,196, 48,206, 11,102,211,
+ 29,116, 94, 98,130,103,251,197,103,220,201,118, 41, 52, 72,173,217,236,236,113,252,232,  4,217, 86,100, 74,147, 39,154,234,241,
+130, 23,111, 92,198,143, 75, 70,215, 15,185, 56,155,243,220,133,  9,255,243,255,250,191,243,216,106,110, 62,188,135,127,239,179,
+216, 97,244,  3, 40, 41,209, 48,140, 94,201,146,120,205,118, 33,178,240, 23, 43, 62, 29,101,252,252,236,148,185,140,176,155,182,
+  9, 72, 36,219,222,227,189,163, 58, 95, 83,120,135,105, 26, 54,213,130,166,233,121,176, 92,243,117,111,249,142,250,255,185,123,
+179, 88, 79,211,252,190,235,243,108,239,246,223,207, 82,167,214,174,234,165,122,186,123,118,207, 52,198,177,227, 69, 38,118, 98,
+ 71,193,114, 34, 43, 66, 17,  4,  9, 41,  8, 36,110,184,135, 11, 64,202, 69, 16,  8, 16,  8,  4,145,130,130,132,  4,138,  9,177,
+ 49,182,135,140,199,158,173,103,198, 61, 61,189,119, 85, 87, 87, 87,215,114,234,236,255,253,221,158,133,139,231, 61,117,170,151,
+217,130,114, 97,254,210, 95, 71,213,234,243,255,191,231,125,158,247,249,109,223,197,176,221,172,249, 95, 95,125,135,105,162,152,
+183, 53,173, 15,156,107, 23,236,  8,120,  6,216,202,114,130,137,243,113,169, 20,189,194,240, 92, 63,163,144, 48,201, 20,152,132,
+ 69,229, 24, 38, 57,199,171,154, 13, 45, 24, 38, 18,231, 26,188,  8,224, 21, 90, 75, 46,171,192, 93, 27, 58,133,200, 64,168, 98,
+135, 41, 88,255,177,118,116,144,158,202,183,220,169, 43,110,156, 44,120,255, 96,197,157,195, 25, 15,103, 51, 78, 86, 11, 14,147,
+148,187,189, 28,231,  5,223,159,215, 44,124,212, 42,210, 26, 94, 94, 52,124,103, 85,243,207,239, 30,243,206, 73, 13, 58, 26,207,
+ 12,  7, 25, 57,130, 84, 43,246,130,194, 39,  9,  7,193, 51,147,154, 67,169,144, 82, 83,122,199, 80, 37,  4, 99,152,151, 53,199,
+182,197,118, 92,231, 84, 70,153,217, 44,209,228,157,219,159,151,130,180,200,217,233, 13,120, 34, 31,115, 25, 67, 17,  2,  9,146,
+125,239, 58, 49,154, 72, 17, 37,213, 29, 86,168,207,197,115, 19,126,229,210, 57,126,245,137,203, 60,113,174,207, 29,169,105,181,
+  1, 17, 25,  7,  4, 79,176, 54, 86,153,222, 71,113,152,212,196,162,103,178,  1, 27, 35,206,237,108,178,218,222,138,103,231, 96,
+192, 24,139,239,111,208,184, 10,219,223,224,126, 61,227,158, 73,121,111,190,207, 93,225,184, 85,206,120,208,214,188,189, 94, 16,
+108,205, 72, 41,246,109,205,213, 52,227,196, 58, 82, 33,216,199,243,108, 90,240, 70, 83,115, 53,201, 57,112, 22, 33,  4,239,218,
+150,190, 73,249, 65, 85, 34,180,228,164,169,104,164,162,242, 45, 75,160, 68,112,220,148, 44,189,167,148,138,149,107,105, 90,203,
+220,182,164, 66,162,130,227,214,226,132, 58,180,220, 94,207,184,177,156,242,160,109, 56,110, 43,234,170,225,100,182,162, 89,174,
+ 88,175, 74,102,211,  5,135,211, 25,139,195, 37, 71,251,199,204,142,166, 52,135,  7,212,251, 83, 22, 71, 83,118,247,167,220,245,
+154, 70,171, 24, 36,149,102,213,182,148, 77, 32, 72, 73, 89, 91, 86,222,178,180,254,145, 57,149,232,101,120, 33,105, 90, 79,109,
+ 36,161,245, 56, 29,133,130, 30,157,155, 42,137,138,108, 74, 64, 17,129,154,103, 50,129,157, 69,169,232, 92,234,188,165,  9,158,
+ 66,195,134,130, 99,231,232, 35,152,150, 13, 43,111,249,147, 69,133,177,142,  3, 36,139,208,130,144,204,125,  4,138,214,136,159,
+144,210,230, 92,156,201,230,  5, 33,216, 24, 60,155, 58,182, 60,151,107, 88, 47, 62, 28,176, 83,211,  9,183,116,182, 61,167, 22,
+166, 63,133,255,122,  0,146, 34,103, 90, 55,184, 32, 73,240,124,253,112, 69, 98,  4,109,235,216,175,125, 87, 61,119,124,115,173,
+ 98,183, 32, 87,176,174, 35, 31,220,159,122,134,119,215,108, 84,231, 59,222,137,195,184, 22, 76,246,200, 65, 45,116, 66,179,141,
+173,  9,222,227, 84,128,217,178,163,165,117, 98, 54,237,143, 80,151, 75,101,228,242,107, 29,221,136,124,180,116, 21, 77,211,113,
+216, 29,212, 54,154,222,167, 18, 33, 76, 76, 58, 78,173,246,126,152,240, 79,231,143,254,172, 78, 89,227,200,145, 44,136,129, 77,
+  7, 40,164,228,158,181, 92,209,154, 61,101,104,179, 33,161, 95,116,  9,129,224,194,198,132,107,151,159,140,200,209,124,192, 43,
+187, 31,240,111,252,234,231,249,212,149,  9,227, 66,179,191, 47,120,253,165,239,117,237,247, 78,156,199,119,162, 61,117,123,214,
+129,249,104, 64, 47,178,120,255,174, 63, 15,131, 49,108, 92,128,227, 35,192,243,237,175,252, 41,159,251, 75, 63,203,120, 84,224,
+136,244,143,114,189, 98,117, 60,195,121, 71,219, 52, 81,224,195, 89,234,186,162, 63, 26,146,164,  9,179,147, 25,  7,  7,187,104,
+211, 35,  0, 59,147, 30,163, 92,227, 36,156,148, 13,166,211, 87, 87,  2,124,136, 92,119, 33,  5,153,142, 85,158,150, 26, 41, 85,
+244,146, 14,  2,143, 68, 40, 25, 15,203, 68, 70,189,248,202,177,110,106,172,107, 81, 26,166,139,134,245,170,230,251,183,222,224,
+157,189,121,228,154, 42, 21,147,209, 76, 49,218,200,184,216, 47,216,232,103,108,247,251,212,190,197,137, 12, 47,213, 35,145,190,
+ 69, 21,165,108,119, 79, 86,188,124,251, 33,239,221,127,200,205,  7,123,220,216,123,128,117,142, 98, 48,100,114,126,147,219,247,
+246, 89,206, 23,148,229, 42,186,212,245, 50,174, 93,187,196,249,139, 27,244,123,  3,180,202,176,173, 37,237, 15, 41,155, 53,182,
+110, 16, 90,145, 21,  5,217,221, 91,204, 70, 91,140,100,224,122, 63,227,249,103,159,102,125, 82, 17,234, 57,121, 86,144, 38, 25,
+199,211, 22,181,179,201, 94,213,240,236,229, 77,254,163,255,244,191,224,181,111,191,193,244,189,251,132,249, 52, 74, 89,166,130,
+176,170,  9, 78, 17,146,132,225,102,143,122,101, 65,248,200,248,176,113, 92,116,249,242, 54,139, 96, 97,235,  9,126, 69, 84,  4,
+149, 50,111, 26,172, 11,220, 43, 75,214,117, 77,174, 53,214,181, 80,206,168,235,154,253,197,140,145,146,252,198,120,194, 53,101,
+216, 80,134,230,226,121,158,154,108,112,239,248,136, 70,  6,174,226,185, 28,  2, 67,109, 24,248, 22,147,100,184, 16,152,154,132,
+ 11,189,132,169,139,136,248, 74,  8,122, 50,176,118, 62,170, 34,162,104, 76,142,105,  3, 43, 27,169,167,155,169,225,104,221,146,
+230, 41,  3, 41,217,119, 46,210,223,180, 36, 52, 14,178,156, 80,175, 63,196,221,126, 92, 51,221, 75,112,218,199,119,  7,100,242,
+117,133,175,  3,  7,203,150, 48, 91,196,115, 57, 81, 44,140,161,173, 28,117, 89, 35,234,238,124,201,  2, 33,207, 88,104,195,168,
+208,232,188,  0, 99,168,165,198,106,197,  2,193, 80, 18, 21,191, 58,252,236,222,122,201,126,219,112,100, 75,214, 30, 22,109, 75,
+ 79, 42,114, 21,249,236,198,131,177,142,108,144,115,113,107,200,214,120,192,168, 87, 48, 50, 25, 67,175,201,165,198, 90,203,145,
+ 16,177,163, 18, 58,157,116, 35,121,170, 63,224,111, 95,186,194, 95,185,116,149,141,172, 71, 45, 13,  7,161,229, 80,201,248,188,
+230, 69, 84,214, 44,  6, 49,208,164,  5,194,228,209, 69,115, 99, 19,206,141, 33,203,248,204,230,  6,207,231,154,139,249,144,237,
+ 36,231,124,127,204,115,  9,156,235, 15,112, 85,197, 42, 29,178, 91,214,232, 65,159, 89, 83, 82, 74,201,253,122,197, 40, 53,145,
+  2, 38,224,185,164,224,157,182,225, 66,154, 49,199,115,197,100,188,222,212, 60,159,245,121,205, 86,140, 84,194, 59, 33,112,222,
+ 24, 94,105, 74, 46, 36, 57,175,181, 13,107,  9, 55,154,146,131,110,170,182, 86,154,123,214,226,140, 33, 56,139, 82,  6,149, 36,
+236,151,107,148,183,188, 52,159,241,126,189,226,219,199, 71,124,251,232,152, 91, 85,195,237,163, 41,179,217,138,102,177, 34, 44,
+ 86,132,178, 34, 44,231,177, 72,105, 60,193,183,113, 39,172,235, 24, 87, 37,  4,105,163, 86,100, 11,195, 73, 63, 22, 94, 33, 48,
+115,  1,235, 60,  7,109, 75, 42, 37,211,224,112,182,165,105, 44, 20, 73, 28, 47,122, 98,140,  8, 34,198,  1,219,129,141,148,124,
+100, 28, 38,186, 14,103, 32,196,160,190, 88,158, 41,159, 74, 16,170, 51,175,  9,145,194,188,106, 29,139,210, 97,240,220,154,213,
+220, 44, 27,222, 94,214, 76,107,203,205,117,203,173,170,137,250,154, 34,142, 95, 87,193, 82,150,229, 79, 24,212, 79,  3,187,239,
+244,209,203,170,227,155,183, 17,185, 94, 86, 31, 49,  0,209,143, 80,223,248, 83,190,120,243,211,153,136, 56, 71,211,180, 88, 89,
+112, 56, 95,115,216, 74, 84,  2,211,101,195,244, 84,183,187,141,178,149,168,238,100,149, 34,  2,243,210, 46, 19,242, 46,210,217,
+ 48,157,154,154,143,227,  0, 97,227, 99,157,100,241,161, 72, 35,208, 44, 40,213,101,176, 93,101,186,174,187,207,233,192, 99,117,
+243,163, 19,147,214, 66,154, 68,105,195, 83,254,109,219, 62,194,151,161,  4,233, 86,159,191,247, 11,159,229, 11, 87,118,248,204,
+213, 29, 94, 93,183,112,112,244,113,214,  1,143,181,229, 93,180, 35, 60, 20,130, 73,128,105,240, 92, 82,  9, 46,  4, 86,206, 50,
+ 84, 26, 21, 60,203,126, 31,113,105, 27,159, 22, 52,242,148,150,230, 89, 53, 53,231,243,130,224, 28,251, 71,247,121,111,239, 24,
+213, 66, 49,232,243,238,238,154,255,253,155,223,164,124,247, 78, 76,118,172,237,208,254,246, 49, 79,121,251,225, 57,122,218,135,
+254,  8,174, 94,227,201,167,159,230,231,158,249, 12, 69,158,146, 37,154,217,178,130,114,  1,192,183,254,248, 79,121,254,103,191,
+204,100,220, 39, 16, 40,215,117,228,165, 59,135, 76, 20, 70, 39,164,131,156, 36,205,241,221,131, 34, 59, 94,120, 86,228,156,204,
+150,236,159, 44, 57, 92,181, 44, 86, 45,182,182,148,141, 35, 75, 21,206,197,249, 32, 34,138, 58, 32,  4,214,  5,210,196,144, 24,
+ 29,133, 48,132,140, 10,111, 50,138,110,  4, 31, 56, 94, 53, 28,206,151, 20, 41,236,238,175,184,253,193, 33,135,135, 83,254,219,
+191,255, 31,227, 46, 92,227, 92, 95, 50,109,227,104,233,234, 86,193,115,231,199, 20, 90,113,105, 50, 98,107, 48,164,245,142, 69,
+ 89,177, 94,206,217, 24,111, 16,132,228,120,177,230,131,227, 21,183,246,230,188,125,255,144,233,225, 49, 77,213, 48,155,207, 59,
+228,173, 33, 47,250,180,173,224,222,221,219,  4,239, 41,203,117, 20, 94, 42, 75,164,201,184,184, 51, 97, 60,204,121,225, 83,151,
+216,220,220, 96,190, 88,211, 44, 43,150,235, 21,149, 83,172,231,199, 40, 37, 88,220,120,141,139, 91,151,201,140,166, 21,160,159,
+216,193,222,185,207,108,185,100,144,247,153,156, 59,207,231,175,159,231,229,247,118,249, 63,191,251, 22,239, 52, 21,161,108,160,
+ 46,  9, 36, 81, 45,205,219,168,206,102, 27,152,244,249,119,159,218,226,217,243,  3, 94,185,127,  4, 78, 71,237,123,173,153,159,
+ 44,249,210,246,152, 23, 38, 59,252,  7, 63,247, 34,127,248,242, 55, 24, 20, 57,223,152, 30,243,160, 46,185, 55, 59,160,169,150,
+188, 59, 59,  1, 15,235,122,201, 27, 15,247,248, 66,166,121,177, 63, 98,152, 20,204,109,203, 74, 90,254,195,127,243,175,178,145,
+143,249,254,189,125, 46, 40,203, 57,161,216,  9,209,145,175,157, 47, 56,177,160, 18, 73,139,166,159, 39,212,225,140, 62,234, 91,
+199,210,118,192,174, 34,163,241,129, 75,105,  1, 38, 37,209,134,161, 49, 84, 74,113, 80, 86, 76,101,231, 56,153,103,132,113, 63,
+ 58,251,109,108, 16,122, 61,130, 73,  9, 38,199,215,229,163,201,243,227,239, 83,170,151,247,158,176, 90, 18,230, 75,130,111, 32,
+207, 17, 91, 99,138,126,143,214, 68,165,200, 32, 69,215,  1,108, 97,111,142,149,146,157,157,  9, 99,109, 40,117, 26,177,176, 66,
+208, 55, 41,147,108,128, 70,144, 40, 73,161, 36,211,118, 69,226, 29, 85, 93,113, 82, 87,180, 90, 49,183,150, 60, 64,129, 66, 87,
+ 13,253, 34,101,251,194,128,254,184, 71,111, 82, 32, 19, 67,162, 13,133, 52,168,186,198, 21,  9, 53, 41,115,147, 34,104, 17,203,
+  5, 56,207,207,108, 20,252,252,214, 54,227,162,143,150,134,239, 47,102,188, 84, 89, 90, 37,161, 40, 96, 56,130,241, 48,186, 88,
+ 22,177,117,207,176,135, 56, 55, 70,108, 12, 32,201,248,237,115, 19,180,  8,244, 85, 66, 47, 81,124,106,178,205, 88, 64,149,228,
+248,182,100,115, 48,162,106, 27, 54,122, 41,179,218, 49, 40, 18,230, 66, 48, 74, 50, 22, 66, 49, 82,154,167,139,130, 91,222,241,
+116,214,231,  1,158,109,147,114,211,181,124,161, 24,242,186,109,120,190, 24,114,219, 53,236,104,195, 77, 41,121,218,100,220,241,
+ 45, 27, 42,225, 43,171,134, 59,109, 64, 43,205,161, 72, 57,242, 45,100,195, 40, 17,157,230,216,166,230,192,  5, 46, 24, 67,233,
+ 90,116,213,240,157,131, 53,251,123, 83,202,227,  5,213,222, 67,194,172, 36, 44,203,184,215,215, 77,236,216, 56,  8,173,  3, 17,
+249,254, 17, 48,221,126,  8,135, 16, 26, 75, 16,146,121,101, 41,  6, 25,139,224,153,173, 43,130,209,140,148, 98, 29,  2, 25,112,
+210, 90,130,245,143,  5,244,199,156, 47,101,167,147, 46, 59, 90,176, 52,241, 12, 61, 29, 19, 11,209,197,  6, 23,207,202,166,138,
+197,166, 13, 81,115,193,118, 64,229,198, 97,181,100,181,172,104,239, 28,224,119,134,132,170,138, 14,134,117,133, 93, 91,246,102,
+ 37, 33, 85,236,207, 23,204,235,146,121, 85,253, 20, 65,189,  3,155,196, 25,115, 29, 51,145,229, 52, 86,199, 31, 13,116,237,169,
+ 63,123,167, 47, 30,236, 79, 85,165,127,168, 13, 47, 34,194, 51, 40,112,243, 21, 78, 71,167, 40,116, 71,191,242, 93, 27,163,233,
+ 28,218,132,136, 45, 68, 41, 98,219,220, 73,240, 21,164,105,188, 86, 69,156,167,159,250,144,247, 11, 88, 85,177, 45,213,118,237,
+230, 32,186, 68,197,199,224, 92,182,177,218,255,104,242,242,137,192,128, 40,  8,129, 84,143,104, 99,143,108, 20,123,138,223,249,
+220,115,124,249,179,215,185,118,229, 18,189, 65,159,137, 49,188,121,119, 63,222,207,254,  4,182,182, 97,251,114,119, 96,116, 98,
+ 57,105, 52,124,  9, 65,177,173,  4,233,233,193, 35, 37, 70, 37, 84, 69,193,232,218,147, 20,151,174, 32,242,  1, 66,122, 18, 37,
+177, 68, 81,150,160,160, 45,167, 52,229,138,187,  7,251, 28, 77,103,220,218, 61,226,251,119,142,185,189,123,132, 78,  3, 83,217,
+121,200,231,166,115,228,235, 16, 53,217,169, 61,173,120, 36,246,241, 59,127,251,111,240,155,191,249,235,252,214, 95,126,145,207,
+ 92,127,138, 34, 45,104,203,150,131,114,198,108,185,140, 93,157, 14, 33,255,210, 87,254,140, 39,174, 63,205,165,203,231,208,137,
+193,  5,129,107, 91,108,211,210, 84,209,187, 90, 73,133,210, 18, 39,  2,109, 93, 33,141,196,186,104, 35,136,128,217,241, 34, 58,
+142,245, 83,238, 60, 56, 97, 94,182,172, 43,199,176,103, 88, 55,142,117, 29,157,151,124,128, 52, 49, 56, 33, 98,192,116, 33,250,
+186,187,208,209,118,  2,193, 70, 69,191,187, 15, 23,124,251,123,111,178, 94,174, 81, 65,112,225,153,231,217, 24,110,176, 44, 79,
+ 48,  6,206, 13, 50,182,122, 57,105,146,160,  4,244,211, 12,165, 52,173,109, 73,181,138, 66, 55,227, 62,155,163,130,224,  3,109,
+221,224,156,163, 90,173,177,190,198,214, 45, 38, 55, 12,134,131,232,159, 83,215, 28, 30,239,177,174, 74,172,143,146,201, 50, 64,
+ 99, 91,214,203,  5,249,160,207,221,123,135,236,223, 59,100,213, 88,202,178,138,244, 32,231,168,133,102,160,  2,101,179, 66,  6,
+193, 63,127,243, 13,174, 94,185,198, 50, 81,120, 41, 96, 99, 27,125,120, 72, 80,146,171,159,190,198,238,225,  9,255,253,127,253,
+143,216, 31, 13,  8, 65,112,117,123,196,201,209,156, 96,163,189,103,112,154, 32, 45,  1,201, 95,237, 23,252,141,171,151,152, 76,
+206,113,151,150,189,131, 69, 92,107,219,194,186,102,119, 81,177,215,204,233,111, 95,226,205,226,  2,127,114,251,  6,203, 15,222,
+167,109,214,184,195, 35, 78,238, 60, 96,189,156,243, 96,247, 33,187,199,115, 88,172,121,113,152,112,217,244,104,129, 91,205,146,
+ 69,211,240,153,139, 23,248,218, 94,197,157, 96,120, 38, 84, 12,133,230,138,201,240, 77,205,180, 92, 49,173, 86, 52,141,101,152,
+165, 72, 35, 17, 70,162,188,160, 42, 91,142,234,200,201, 14,137,162,240,129,103,198,  3,182,123, 57, 79,142, 70,108, 21,  3, 84,
+218,167,245, 18, 31,  2,203,186,100, 59, 49,156,207,115,174, 12, 70, 12, 55, 71,108,109, 78, 56,119,110,135,213, 32,167,214,  2,
+ 95, 12,  9,182,194,183,246, 19,131,251,153,147, 88,108, 83,227, 26, 66,  0,159,104,124,104, 34,142, 72, 40,254,206,149, 17,127,
+237,137, 77,254,108, 81, 19,170, 53, 15,156, 68, 20, 61,  6, 89,  2, 58,165, 16,138,173, 52,163,113,158,139,105,193, 42, 56,150,
+109, 77,102, 18,178,224,105,218,146,204, 40, 78,234, 53, 85,  8,184,  0,125,  2, 61,169, 40, 50, 67,186,221, 39,233,231, 72,173,
+162,131,105, 16, 80,182,164,206,147, 56,135,207, 53, 83,217,167,202,250, 48, 62, 15, 82, 48,240, 13,147, 96, 81, 54,240,205,147,
+ 35,190, 58, 91,112,212,214,144,102,244,139,  1, 73,154,146, 38,  9, 77,154,128, 17,136, 44, 69,228, 25, 36, 25,191, 56, 28,242,
+ 75,219,155,140,211, 30,107, 33, 80,  4, 54,250, 27,188,190, 92,115, 97,115,147,188, 90, 49,200, 71, 28,172,231, 12,123, 99,180,
+107,240, 73, 74, 45, 65,163, 88,184,134,158,148,172, 67, 96, 22, 60, 79,154,140, 93,  1,219, 66,242,126,176, 92, 55,  5, 63,104,
+215,124,177,152,240, 70, 91,243,132, 73, 57, 20,146, 39,133,230,221,224,184,164, 12, 95,171, 45, 90,167, 44,146, 52, 42,215, 25,
+137,206,114,110, 47, 42,134,195, 49,109, 93, 82,166, 57, 89,154,145,138, 20, 35,  2,137, 12,172, 68,224,120, 81, 19,234, 10,188,
+ 32, 40, 27,215, 47,184,104,186,162, 32,184, 78, 73,179,237,  4, 58,234,211,130,165,195, 93, 88, 23,139, 25, 35,  8, 73,193,220,
+123, 86, 62,158, 79,198,195,202,121,188,245, 76,109,131,111, 61, 94,118,138,114,174,251,189, 54,196,100,207,187, 88,220,213,174,
+ 43,238,162, 48, 26, 82,119, 44,168, 83, 68, 98, 32, 74, 24,218, 88, 48,182,  1,154, 53, 66,201,200,220, 10,237, 35,239,145,254,
+207, 61,207,175,255,194,175, 49,185,180,197,221, 31,188,129,119, 14,239, 26,124, 91,115,184, 42,217, 95, 58, 30,204, 75,118,231,
+229, 79, 25,212, 93,231,  7, 94, 55, 17, 13,222,254,136, 96, 29,186,249, 51,246,147,103,208, 63, 77, 31, 94,133, 88,233,135, 78,
+ 60,166,237,  2,185, 15,103,148,171, 83, 32,151,144,241, 64,106, 59,212,182,179,157, 14,123,135, 80,119, 26,124, 19, 51, 85,219,
+145,141,243, 36,182,153,173,139,111,245, 88, 85, 90, 69,126, 42,101,219,181,236,221,143,189, 94,225,186, 44,190,181,145, 67,239,
+ 99, 71,225,252,185, 17,191,246,165, 79, 51, 30,111, 32,181,102, 60, 28,160,148,231,107, 15, 14,163,144,198,198, 38,191,252,133,
+ 95,226,153, 43,207,176,177,189,195, 60, 87, 48,153,224, 70,227, 56,235, 46,250, 28,139,140,162,200, 88,110,142,217,186,122, 29,
+189,185, 65,178,189,205,197, 11,207,176,179,245, 36,147, 98,136,210,158, 84,  9,164, 10, 24,169, 56,159,165,104,  4,139,186,229,
+225,186,164, 57, 46, 17,212, 76, 46,110,243, 59,191,254, 34,127,235,231, 63,197,214,104,204,203,111,220,141,155, 92,117, 18,177,
+ 38,116,179,158,110, 22, 36,  5,140,174,240,203,191,240, 34,189,188,160,223, 75,105,218,192,114, 94, 81, 54, 53,175,127,112,159,
+102,247,118,151,  4,157,  9,202,127,255, 27,223, 35,233,245,185,122,253, 10,195, 65, 15,235,  2, 38,141,148, 12,173, 20,202,168,
+168, 42,151, 38, 36, 89, 66,154, 36, 72,109, 88,173,102,148,229,138,197,244,144,245,170,100,186, 40, 73,179,  4,148,160,117,142,
+ 59,247,142,185,125,231,144, 50,120,234,198,243, 96,186,164, 14,158,163, 69,116, 73,187,249, 96,193,113,217,128,  8,172,234,154,
+ 89, 85,241,222,238,140,155,119, 30,242,242,159,191,129,111, 45,121, 97,184,117,231, 22,139,234,132,175,255,254,239,243,220, 11,
+ 79, 51, 74, 13,189,196,144, 38,138,126,154,161,181,194, 57,139, 15,158,225,176,207,100, 99,194,120,115,131,119,111,220, 96,126,
+176,224,137, 39, 47,178, 49,206, 17, 82,178,152,174,168,203, 10,169,162,184,133,119,129,249, 98,198,162, 90,226,188, 39, 81,154,
+166, 45, 49, 90, 99,148, 65, 25,133,208,154, 64,194,241,241, 58,  2,247,238,221,225,206,238,  7, 28, 29, 31,147, 25,197,131,221,
+219, 72, 13,133,201, 17, 82,144,184,138,111,191,250, 58,227,107, 79, 51,159,215, 28, 79,215, 12, 81,188,240,229,231,120,240,193,
+  3,254,203,127,240, 15,  9,195,148, 48, 24,240,244,248, 28,191,120,225, 28,149,104, 56,120,176, 23,207, 18,121, 10, 30,243,188,
+187,172,216,222, 26,240,170,215, 84,131, 77,238, 29, 79, 35,144,  7, 27,159,183,186,198, 46,106,190,253,224, 30,187,227,109, 66,
+  2,236,237,194,195, 67,196,193, 20,148, 68, 78,143,162,234,240,122,137, 90,172,121,114,144,226,104,120,216,214, 60, 16,130,243,
+166, 64, 60, 56,160, 76,115,110,212,150,220,193,139, 89,206,121,147, 48, 65, 82, 84, 75, 74, 23, 56,241, 22,231, 37, 18,133, 22,
+ 18, 71, 96,191,116, 76, 27,139,112,142, 92,  4,174,244, 82,174,231, 42, 42,197, 77,250,244,179, 20,157,103, 52, 33, 97,238,115,
+ 18,225,144, 50,112,165, 95, 80,164, 25, 74,103,236, 12,  7,132,160,184,212, 27,161,243,148,117, 97,104,130, 38,120, 73, 80,  1,
+223,218, 15,181,230, 63,106,125, 26, 90, 11,179, 57,254,112, 30,193,191, 43,203,223,188, 52,226,239, 60,117,133, 79, 77, 54,184,
+220, 19,124,237,193, 49, 65, 40,218,113, 76,242, 76, 98,216,214,138, 84, 37,108, 36, 25, 51,215,208,215, 41,235, 16, 53,192, 69,
+176, 40, 33, 72,157,195, 72,197, 10, 88, 52, 53,206,181, 76, 80,244, 70, 41,201,184,128,160, 16, 50, 82,  8,221,178, 69, 84, 45,
+ 38,120,250, 66,145, 74, 56,108, 61, 85, 62, 68,141, 54,217, 26,110, 51, 73, 39,124, 80, 46,120,105,127,159,239,150, 21,123,101,
+133, 73,114, 70,  4,206, 43,195, 68, 74, 90,223,178, 45, 37, 94, 26,172, 78, 65,  8,118,122,  3,254,253,171, 87,248,197,237, 29,
+206,101, 57, 15,154,134,117, 62, 68,  9,193, 23,183,182,120,176,174,216, 25,142, 56,168,106,174, 15, 71,172,155, 53, 62,201, 88,
+ 59,139,  5, 26, 44,153,146, 44, 90,203,200, 24,148,139,238,107,153,179,204,149,230,162, 54,188,211, 86,124, 62, 27,240,157,122,
+197,245, 36,229,182,141,149,249, 45, 44, 79,201,148,119,189,101,152,102,188,237, 96,101, 50, 46, 25,143,201,115,156, 15, 92,204,
+ 19,172,131,116, 48, 64, 91, 71, 26,  2,187,182,166,144,134,165, 15,188,125, 60,231, 92,207, 48, 21, 50, 26,255,216,216,109, 12,
+105, 10,182,237,176, 21,177, 94,139,129,221, 34,130,239, 84, 52,187,192,124, 26,220, 91, 75,  8,109,231,194,150, 98,157, 71,106,
+ 88,181, 45,214,123,188,148, 88,231,  8,136, 51,183,207, 68, 19, 84,199,241,149, 42,250,180,166,230,209,104, 87,136, 83,254,175,
+ 56,227,  1, 55, 54, 22,147, 77, 21,199,181,162, 99, 69,181,109,108,213,251, 14,184,218, 90,154, 59,187,188, 83,205,185,251,250,
+ 77,194,122,253,161,189,234, 91, 27, 29,235,234, 10, 87,173,127,218, 74,253,167,120,121,255, 73,236,138,127,177,207,105, 79,181,
+210,125,148, 88,149, 62, 86,224,170, 67, 20,186, 16,  3,206, 41, 24,175,125,140,142, 69,135, 90,119,246, 76,196, 89,  6,176, 50,
+ 90,234, 40,115,  6,  6, 75, 77, 92,144, 14, 48, 39,137, 45,219, 71,215,240, 73, 28,117, 62,130,248, 79, 82, 68,136,170,123,104,
+137,208, 34, 82,236,180, 36, 29, 13,184, 48,218,226,250,213, 29,154,214,209, 88,199,235,239,238,243,131, 91,183, 65,107,190,244,
+244,179, 92,217,188,202,160, 72, 24,229, 35,206, 15,183, 57, 63,222, 98,107,180,201,212,173,105,165,128, 84,225,243, 62, 95,120,
+234,103,184,124,233, 83, 12, 70,219, 76,134, 19,118,118, 46, 99,250, 57, 70,235, 40, 52,225,106,188,111, 59,224,152,102,208,203,
+169, 90,207,193,170,194,175, 23,144, 14,248,173, 95,252, 57,126,249,179,151,216,238,103, 44,170,154,175,254,249,219,221, 24,163,
+ 75,152,156,  7,225, 62, 60,236, 15,129,231,158,190, 70,154,231,184, 32, 56, 62, 94, 48,157,157,240,242,187,239,242,240,213,215,
+ 59,179,154, 56,210,160, 55,140,182,180, 73,143,155,175,190,198,205,163, 41, 79, 94,185,194,246,206,152, 52,141, 21,181, 78, 77,
+  4,136, 72,133,210,209, 96,231,248,225, 62,243,163, 99,210,126,129, 64,160,140, 34,235,229,113,148,176, 90,178,119,255, 30, 94,
+106,170,178,194,121,199,201,193,148,123,119,247,152, 30, 45,168, 90,207,189,221, 67,110,221,188,207,108, 58, 99,212, 79, 25,102,
+134,183,223,185,195,155,175,191, 79,185, 42,217,189,247, 16, 66,137, 39,208, 54, 21,155, 91, 27,100,169,230,179, 95,124,  1, 33,
+  4,214,183,164, 90,147,152,132,212, 36, 88,231,200,146,132,201,104,192,100,123,139,197,108,198,239,189,244,231,188,250,123, 95,
+225,  7, 39, 71,108,167,125, 62,253,169,171, 76,  6, 57,135, 39, 37,101, 85, 19,112, 88, 91, 81,173, 75,130,112, 88,219, 18, 66,
+160,106,107,218,198, 33,181, 36, 77, 83,146, 52, 37,207, 11,180,201,249, 31,254,243,191,207, 42, 83, 60,117,241,  9,132,128, 59,
+251,123, 20, 90,115,251,120, 22, 27, 37, 70,144, 37,  5,105,146,146,135,192,242,214, 77,222,247,  9,243,147, 19,152,157,176,213,
+235,241,250, 31,253,  1,183,111,223,137,235,176,189,197, 47, 93,188,202,100, 52,162,110,  4,239, 29, 29, 65,181,254, 16, 26, 28,
+103,249,238,221, 19, 30, 76,  6,140, 19,197,238,180, 11,234, 70, 69, 77,233,102, 21,159,175,117,137,112, 51, 56,119, 25, 33,  3,
+226,120, 14,179, 35, 68, 98,162,116,169,144,200,202,161,122, 57,247,102,107, 66,112,172,141, 98, 96, 82,174,165, 61,206,103,125,
+174,175,150, 60,151, 40,254, 68,229,252,229, 80,179,163, 37,217,186,164,239, 32,149,129, 99, 33, 57,106, 61,203,101,197,209,178,
+101,247,168, 97,225, 37, 77, 93, 99, 36, 76,180,228,185, 73,194,118,145, 48,233,165,104,169,200,178,  4,175, 12,199, 46,224, 85,
+198,170,105,217, 73,  2,  7,141,165, 17,  9,219,253,  2, 23, 20,105,170, 73,242, 30, 82,229, 36,198, 96, 83,205,218, 72, 66,211,
+ 65,115,196,153, 35, 91,248, 33,193, 29, 31,131,123,200, 11,206,111,244,120,114, 48,160,111, 18, 94,218, 63,226,229,105, 11,174,
+161,116,129,173,201,132, 45, 90,198,105,143, 43, 89,129, 11,176,242,142,  6,207, 68, 25,102,109,133, 21, 34,138,137,  0,199,245,
+ 18, 97, 29,  7,203, 21, 53,129,208, 54, 12, 91, 73, 49,200, 65, 10, 92,101,169, 22, 22, 97, 29,218,122, 84,136,179,247,148,128,
+203, 53,165, 73,201,123,  9, 23,  6,  5, 27, 89,198,181,241,152, 75, 58,229, 25,  9,  6,199,  6,146,157, 44,193,132,134,129,146,
+164, 85, 67, 38, 37,137,138, 74,124,107,161,121, 82, 75,254,202,214, 38,147,201,132,188,223, 99,225, 37, 43,161,216,234, 13,184,
+217, 74,158,204, 13,135,222, 51, 50,146,135,192,192,  7, 14,  2, 72,111,169,131,194,224, 56,113,129,158,130,135,214,114, 73, 42,
+156,244, 56,165, 24, 11,193, 45, 91,113, 61,201,121,185,173,249, 76,154,241,102, 83,115, 53,201,184,237, 45, 87,149,226, 29,107,
+177, 42, 97,215,  9,118,209,236,136,192,118,191,135,118, 81,193,209, 41,205, 74,196,209, 93,240,240,190, 83, 60,155, 36,212,194,
+179,169, 52,123,205,154,210,186, 40,190,213, 70,231, 52, 76,151,144, 17,147, 34,244, 41,144,218,253, 72,208,111,232, 66, 71,176,
+167,192, 74, 69,211, 52, 56, 43,176,194,163, 36, 88, 58, 16,156, 20, 12,211,132, 70, 10,  6,137,129,196,224,106,219,137,121,117,
+133,208,227,  1,221,118,223,127,170, 54,106, 58,155,111,219, 60,242,149,127,132, 63,235, 18,141, 71,201,198,193, 17,172, 63,252,
+252,250,199,233,138,222,227,189,255,151, 24,212,255,101, 37, 10,208,129, 15,136, 70, 42,190,243, 66,183, 93,171,188,113, 17,224,
+100,187, 96,244, 72,100,229, 84,212,197,199,223,179, 33, 46,114,211,130, 54,177, 90,135,216,162,207, 12, 10,129, 95,119,116, 57,
+239, 98,144,230, 19,140, 88, 30,151,211, 85, 41,164, 10,145,165, 93,101, 27,187,  6, 66, 68, 43,203,114, 94,147,100, 61,122,253,
+ 62,203,202,113,111,127,197,183,222,188,193, 73,217,242,212,120, 27, 39, 44, 23, 55, 47, 61, 98,200, 25, 97, 24, 15, 55, 25,101,
+ 99, 92,104, 89, 87,115, 18, 45,249,244,149, 43, 60,247,220,103,185,250,244,  5, 46, 92,220,  1, 82,164,146,228,121,156,179,183,
+245, 26,215, 68, 87, 45, 37,  2,163, 94,129,247,176, 40, 43,142,167, 43, 56, 62,128, 36,197,228,  9,231, 46, 92, 32,184,134, 63,
+250,179, 55,185,121,231, 78,119,223,186,150,145,107, 63,158,149,249,134, 87,239, 31,242,173, 27,183,249,214, 27, 55,248,230, 59,
+183,120,253,253,251, 28, 61, 60,224,111,254,230,207,242,175,255,173,223,224,185,207, 63,207,203,223,191,  1, 62,233,124,234, 13,
+ 56,199,124,255,128,111,253,193, 87,113, 50,176,181,115,129,243, 59, 99, 76,146,224,173,167,109, 90,218,117, 77, 83,215,209,110,
+ 80, 43, 66,112,172,150, 11,130,117,184,182, 97, 62,157,226,108,131, 76, 20, 77, 85,178, 90,158, 48,159,159,176, 88,156,208, 31,
+ 12,192,  4,214,235,146,123,119,222, 35, 79, 11,206, 95,218, 34,205, 13,111,188,123,151,178,110,184,246,204, 37,108,240,172,171,
+138,197,106, 78,101, 43,130,176, 44,203, 37,141,179, 52,117, 69,235,124,244,118,150, 18, 33,  4,121,146,209,239,231,108,109, 71,
+  3,163, 55,110,220,224, 15,255,155,239,176, 62,120, 43,222,143,147, 25, 63,216,219,227,206,222, 30,215,174, 61, 65,154, 25, 80,
+ 10, 87,133,152, 16, 18,  8, 33,154, 25, 37,137,193,249, 22, 79, 32, 87,134,254,104, 68,150,230,236,236,236,208, 75, 21, 63,243,
+175,188,200,231,158,122,134,157,157, 45,116,146,163,154,166, 91, 67,143, 82, 10,111,  3, 66,  9,180, 74, 56, 55, 57,199,214,198,
+132,203, 82,115,174,153,243,185,237, 45, 66,219, 66, 47,227,  7,245,154,240,240,  8, 76,194,221,188, 32,144,242,181,218,130,110,
+225,193, 49,225,180,203,214,218,174,117,216, 80,175, 42,246,122,134, 80, 90, 88, 77,227,115, 83,251,216, 37,203,123, 80, 86,136,
+178,134,190, 66, 12,207, 65,181, 64,212,209, 79, 65, 74,133,208,  6,217, 58,148,116,136,166,197,214,142,107, 90,114,181,223, 99,
+ 39,205, 25,233,148,145,206,185,188, 94,241,215,151,199,252, 39,235,138, 47, 52, 11, 70,206, 33,165, 34, 73,251, 28,201, 56,190,
+154, 53, 13,213,226,  4,218,134,178,182,228, 89, 74, 42,225,252, 36,229,217, 97, 78,145, 36,160,100,172,140, 58,190,117,107, 20,
+171,218,163, 80,204,219, 64, 46,  4,195, 52,195, 98, 64, 40,140,202, 16, 68,  1,163, 86, 42, 42, 28,115, 33,  9, 90,197,106, 73,
+234,232,223,254, 35,186,113,225, 49,110,202,237, 34,163,202,  4,119,154,134,127, 60, 93, 99,219,238,240, 93, 55, 28, 41,193,179,
+147, 17, 27, 74,163,129,149,181,108,165,  5,214,  7,214,193,161,165, 66, 11,205,210,183,100,202,144,134,192, 73,185, 68,249, 22,
+223, 86,148,193,211, 11, 18, 83, 69,189,137,122,218, 80,213, 45,198,122,180,146, 36,202, 32, 90,135,106, 29, 74,  5, 22, 90,211,
+ 47, 82,122, 74, 48,208,146,139,253,132,177, 74,  9,214,177,157,100,104,225,193,214, 76,122, 19,114, 37, 17, 89, 74,223,104,132,
+151,108,102,  3,130, 82,140,148,226,114, 63, 39,213,145,138,252, 45, 27,184,172, 19,238,  5,120, 58, 81,220,108,  3,151, 18,195,
+210,123,122, 77,131,211, 10,211,214, 28,  6,131,161, 97,209, 74,250,162,101,209, 90, 54,149,228, 36, 56, 76,128, 77, 41,121, 24,
+  2,215, 84,194,187, 33,240, 41,173,121,197,181, 60,111, 50,110, 56,203, 19, 58,229,166,247,140,211,130,251,174,225,102, 48,188,
+208,211, 36, 58, 71, 10,203,162, 12, 20,169,161,213,134,147,101, 75,146, 72,150, 65,115, 61,145,236,121,199,180, 93,147,  4,216,
+ 78, 18,246,171, 53,101,128,182,170,  8,210, 61,162,  5,  7,225,227,200,164,163,239,253, 72, 22,207,135,  0,202, 93, 85,223,205,
+183, 49, 50,  2,168,219,216, 78,151, 74,211, 79, 18,192,179,105, 52, 13,146,129, 84,  8,163,162, 56,152,235,132,198, 78, 65, 85,
+ 46,116,214,222, 34,198, 31, 73,236, 42,107,  5,165,251, 16,131, 76,252,136,198,117,248, 33, 58,255,167,239,191, 88, 65,253,113,
+ 78,184,150,145,122,147,152, 51, 21, 52, 31,226,251,212, 63, 61,116,173,144, 83,218,155,140,170,177, 52,117,156, 29,219, 54,242,
+ 90,179, 52,182, 57,172,143,193,189,113,  4, 37,232,208, 85,103,105,155,236, 16,253,159,228,175,110,116,164,149, 36,105, 68, 49,
+158, 42,238,  5, 16, 34,116,238,108,142,  7,193, 50, 16,125, 30, 30, 44,216,221,223,231,246,225, 30, 95,188,242,  2,227,193,  6,
+155,197, 38,139,106,129,109, 26,202,186, 68,139,132, 44, 43,176, 77, 77,107,107,198,185,102,104, 18, 46, 76,182,184,254,236, 85,
+ 54,198,  3,164, 12,180, 45, 84,117, 77,189,110, 88, 87, 75,108,168, 70, 44,229,  0,  0, 32,  0, 73, 68, 65, 84,211,224,124, 29,
+141,226, 84,244, 97, 89,217,154,233,170,101,117, 52,139,135,246,106,201,131,217,  9, 95,123,247,  3,222,190,117,204, 55, 95,127,
+  7,246,119,187,204,209, 70,240,134,111,207,118,202,227,187,108, 57,135,197, 18,151, 12,248,242,245, 39,249,194,181,107, 60,115,
+241, 60,207,191,112,157, 81,209, 71,169,148,175,127,247,205,174,131,210,117, 83,100,167,244,167,224,253,183,239,243,205,255,231,
+107,156,148, 21,195, 98,192,230,206,136,209,100, 64,146, 39,164,121, 78,214,239,145,247, 50,  6,163, 33,195,141, 17, 74,106,156,
+183,136, 16, 98,117, 93, 53,180,174,197,152,132, 36, 51, 12, 55, 38,164, 69, 65, 83, 47, 41,215, 75,180,145, 12, 55, 71,120,233,
+152, 46,102,180,117, 69,214,207, 56, 56,154,114,251,238, 17, 34, 52,  8, 44, 74,197,245, 52,105, 66,158, 39,244,123, 61,146, 68,
+ 97,140, 33,207, 18, 54,198, 99,  6,227,  1,105,150,241,230, 59,239,240,251,255,244,101,238,189,241, 10,164,211, 15,175,253,124,
+193,131, 27,239,241,135,239,222, 34, 43,107, 46, 93,185, 72,175, 95,160,141,129, 16, 80, 42, 33, 49, 41,173,111,144,104,134,195,
+ 49, 59,151,174,112,241,226, 69,206,109,109,112,113,103,192,114, 85,147, 26,205,249,205, 30,147, 81,159, 81,207, 80, 53, 48, 95,
+205, 40, 76,202,185,201, 22, 91,147, 29,156,141,  7,202,100,115,147,235,215,159,194, 58,203,104, 49, 37,221, 28,211, 38, 41, 15,
+130,228,253,208,226,238, 61,132,121, 69, 35, 90,238, 38, 41, 33, 73,226, 66,150, 43,152,205, 62, 30,168,108, 32, 16,221,208,132,
+  3,234, 16,  1,115, 73, 47, 82,112,124,196,169,136, 85,  5, 59,231, 35, 23,122,122,130,104, 90, 68, 93, 33,147, 20,233,107,100,
+ 43,209, 73, 74,235,107, 22,222,242,249, 34,101, 59, 45,216,208, 25,133, 50,100,214,163, 29,252,122,179, 96,190, 94, 96,189,199,
+244, 71,180, 38,101, 97, 18,202,  0,181, 20,228,109, 69,175,173,  8,120, 26,153, 96,242,148, 79,111,246, 40,164,196,104,141, 86,
+ 18,167,  4,109,  0,169,  4,135,141,231,225,172, 98,229,  3,206, 59,180,107,112,193,163,  4,104,165,168,136,174, 87,190,  3,231,
+173,189,165,150,130,  6, 31,253,219,125,244,143,136, 29,192,240, 67,169,166,167,  2, 76,161, 12,220,202, 50,222,113,129, 42,209,
+145,239, 93,198, 10, 44,132, 64, 37, 96,167,151,115, 78,105,140, 78,153,186,  6, 45,162, 22,115,233, 45, 54, 56, 10,169,152,219,
+  6,139,164,118, 22,237, 26,158, 85,154, 52,  4, 86,222, 49,146, 10,150, 77, 44,238, 26,139,145,138, 20,137,116, 93,178, 88, 53,
+120,223, 18,250,154,202,193, 48,209, 60,181,153, 98,172, 39, 33,112,161, 63, 96,189, 42,217, 30, 12,152,203,132, 32, 36, 42,201,
+ 25,103,  5,235,160, 25,231,125, 86,222,177,221,159,112,185,159,113,212,120, 68,154,243,245, 69,201, 19, 70,115, 79,105,174,104,
+201,237, 10,158, 72,  5, 15,188,167,215,212,180, 74,144, 32,152,121, 24, 11,207, 34, 56,156,171, 88,121, 79, 79,192,212, 89, 70,
+ 34,208,  4,112, 66,241,164, 50,188,227,107, 46, 33,121, 75,192,139, 73,206, 93,147,112, 81, 27,222, 15,158, 45,224,166,183,220,
+106,  2, 99,165, 17, 34,197,168, 22,169, 12, 46, 40,242, 68,115, 48, 91,115,105,212,227,214,178,225,124, 10,123,117, 60,114,135,
+ 66,179,198,211, 84, 75,250, 58,  2,217,166,173,135,218,117,113,188, 27, 39,186,174, 98,167,253,208, 56, 88,252,200,192,222, 81,
+183, 37,177,170, 86, 93,  7, 51,209, 32,  4,218, 40,180,  8,  8,161,169,  3,228, 38, 42,190, 89,239,185,152, 37,216, 16, 72,164,
+166, 57,125,202,132,239,204,204, 58,  1,142,214,198,207, 13, 81, 34, 59,130,202,221, 79,116,109, 31,235, 34,125,200,137,228, 47,
+ 98, 80, 63,173,216, 53,177,202, 62, 69, 25,  6,  1,153, 62,203,138, 66,151, 37,  9,206,130, 54, 33,234,214,159, 86, 41, 74,198,
+118,189,236,104, 76,167,115,118,219,  5,241,211,155,172, 58,142,187, 13,159, 44,190, 34, 85,220,101, 74, 67, 34, 17,182,107,142,
+216, 40,136, 33,124,183, 20,147,130,205, 68, 17,218,138,182, 89, 51,204,198, 12,178, 13,198,189, 13, 82,147,179, 63, 59,226, 79,
+223,121,133,  7,211,123,164,166,  3,240,219, 21,219,147, 30, 87,182,119,184,176,125, 30, 33,  2, 89,175,143,144,146,229,186, 97,
+255,254, 17,171,249, 17, 77,211, 80,214, 75, 42, 91, 67, 80,100, 73, 15, 17,  2,141,107, 89,149,150,195,101, 69,187,255,160, 75,
+ 74,  4,172,150,132,189,125, 14,110,223,128,249, 97,108,  1, 53,117,100, 12,156,142,196, 69,231, 25,239, 31, 31,  9,  5, 24,158,
+227, 75,159,251, 28,159,123,234, 51,108, 76, 70, 12, 71,  3,114,147, 80,149,150,147,147, 57,127,254,199,223,141,247,227, 20, 40,
+226, 60,143,124, 44, 67, 60, 56, 31,188,123,135,239,125,227, 21,190,250,251, 95,161,244, 45,118, 81,146,100, 25,218,104, 76,146,
+208,235,167,100,121, 70, 49, 72,201,250, 61,138,241, 16, 41,226,140,209,152,200,107, 46,215,107,132,247,180,109,137, 50,134,209,
+214, 38,147,173,  9, 38,139,114,146,171,229,154,182, 46, 89,204,230,252, 79, 95,251, 42,111, 63,188,195,107,239,191,207,139, 47,
+ 60,207,104, 60, 32, 43,114,242, 34,167, 63, 28, 48,220,218,160, 55, 26, 50, 26, 14,201,  7,  3, 30, 62,120,200, 31,252,224, 13,
+190,245,199,175,113,247,198, 13, 16, 77,236,100,124,146,254, 63,192,193, 49, 55, 30, 30,241,167,175,252,128,151,222,191,197, 83,
+227, 17, 27, 23,207,113,241,218, 14,147,157, 13,174, 61,125,149,171, 79, 62,193,151,191,240, 44,151, 47,109,199,138,190,245, 28,
+ 28, 46, 81, 70,112,245,226,152, 11,219, 35,138,110, 22,183,118,  2, 91,195,120,188,193,245,207, 62,199,198,249, 77,124, 11,227,
+141, 45,130, 80,124,243,187,127,198,255,245,181, 63,229,202,192, 80, 37, 61,110, 91,199,251,117,195,131,147, 99, 56, 41, 35,178,
+118,177,142, 98,210, 42, 33,168,  4, 50, 96,247,232,227,123,216,119,192,161, 68,209,223,238,211, 76,151, 49, 57,221,158, 64, 47,
+141,221,155,147, 21,162,138, 54,172,226,210, 21, 68,166, 16,203, 88,177, 11,219,198,194, 38, 81, 40, 91,161,147, 60, 66,112,234,
+146,103, 82,195,185,172, 79,142, 32, 73, 82,180, 80,104,161, 72,109,203, 94,112,212, 89,206, 74, 42,132, 80,220, 77, 52, 67, 23,
+216,193,177,227, 42,138,245,138,123,190,161,213,  3, 14,215,150, 39, 38, 57,163,212, 32,133, 32, 81, 10, 39,  4,247, 74,203,254,
+210, 50,135,200,176,168, 75, 42, 91,209, 75,  4, 58,207,  8, 40,180, 50, 88,235,168,157,163,  9,158,181,247,248, 16,240,161,229,
+178,  4,167, 12, 91,169, 97,126,122,216, 58,247, 49, 91,211,179,152,238, 99, 23,235,104, 69, 91, 36,209, 69,177, 13,  4,215, 85,
+ 96,222, 49, 79, 36,207, 22, 41,149,212, 36,161, 69,201,  8,228, 83, 34, 96,  2,148,221, 17,229,130,224,196,214, 76,189,229, 98,
+154,115, 94, 37, 12,148, 38, 13,142,224,160, 39, 37,210,123, 86,214, 82,152,  4, 35, 64,218,  0,101,139,181, 21,181,183, 52, 82,
+ 97, 10, 77,150,105, 18, 96,160, 84,244, 95,106, 28,231, 70,  3,150,141, 71, 42, 67,158,101, 88,239,104,164,166,151,167, 88,  7,
+ 73, 62,164,144,154, 36, 27,112, 97,208,227, 36,  8,206, 21,  9,135, 30, 46, 42,120,109,110,121,118,100,248,160,134,205,208,224,
+211, 20,215, 97,154,  6,  1, 30, 54, 37, 85,  8, 88,160, 23,  2, 11, 60, 61,107, 89,  3, 19, 20, 66,  4,142,133,231,146, 52,220,
+146,130,103,149, 38,223,220,224,103,175, 92, 36,152, 20,225, 60, 47, 55, 53, 54,104, 22, 68,109,  9, 25,  4,189, 84,177,108, 53,
+ 89, 18, 88,148,158,113, 79,115,111,222,240,244, 64,115,119,225,216, 52,150,131, 42, 32, 69,139,243,  1,109, 12,218, 59, 14,215,
+ 37,165,117,113,  2,107,195, 35,230, 85, 76,216, 92, 60,159,127,196,  8,245, 99,129,212,116, 69,161, 74,  8, 65,117,198, 86,177,
+104, 75,141,138,251, 16,129, 59,  5,187, 91,216,233, 71,225,172,177,209, 72, 31, 53,250,131, 20, 81,243,228, 84, 81,203,117,212,
+234,166,142,231,106, 85,198,239,249,132, 78,176,248, 73,175,245, 49,238,212, 95,204, 87,219,137,200,152,238,103,167,151, 30, 45,
+206,220,199, 43,251,212, 68,138, 26,254,140, 27,104,187, 22,100,234, 33,164,103,201, 66, 47,129,117,211, 45,126,135,254,246, 54,
+ 34,209,101,120,172,221, 46, 59, 49,154,142,163,104,146,168,  0, 87,241, 88,235,223, 67, 11, 65, 91,196,218,195,170, 33,139, 34,
+244,244,211, 30,203,218, 71,197,174, 36, 97, 54,155,115,178,154,226,214, 37,203,101,205, 75,205, 91, 20,201,123,188,112,110,139,
+ 39, 46,126,145,241, 96,128, 80,154,221,221,154,219, 55,223, 66,233, 12,223, 10,  2,142,218,181, 84,109, 69,109, 27, 18,157, 50,
+200,198,228, 38, 99,152,111,128,183,124,160,119,185,113,123, 55,106,206,  7,255,216,142,240,103,  6, 52,167,  6, 46,167,255,221,
+119, 40, 81,249, 17,125,120, 37,217,122,230, 50,207, 61,113,157,162,151,162,141,232,  4,  9, 28, 89,174, 89, 61, 88,193, 56,242,
+245,169,237, 25,135,191, 37,  2, 21, 79,191, 47, 77,163,164,112,145,241,205,127,242,149, 15, 45,217,214,207,127,153, 47, 95,186,
+200,206,165, 11,108, 94,218,161,215, 75,163,145,195,206, 24, 24, 83,151, 13,109, 99,217, 60,191,137, 78, 53,193,  6,180, 86, 24,
+163,113, 56,218, 54, 32, 26, 24,140, 11,240,  5,179,121, 11, 14,146,196,208,224,216,186,184, 77,145, 75,108,235,104, 92,180, 80,
+172,214, 53, 15,239,220,229,229, 59,247, 25,228,155,188,250,202, 59,176, 60,129, 81, 15, 84, 63, 38, 61,131,  1, 84,139, 31,190,
+ 47,143, 14,224,  8,170, 15,238,241,143,254,252, 53,184,124,  9,113,239, 62,124,246, 57,254,237, 95,252,121,242,254,152,147,217,
+144,117,217, 32,189,192,100,154,141, 73,193,197,113,143,205,126, 30,111,181, 10,100, 89,194,120, 99,128,200,158,138, 57,102,112,
+188,247,250,219,220,188,123,139,239,220, 63,198,189,113,227, 81,166,254, 63, 31,205,225,115, 21,253,237, 77,150,149,139,251,124,
+ 18, 45, 90, 89,151,240,246,109,120, 14, 24,111,198, 53,185,176,  5, 15, 30,126,188,  5, 41, 91,168, 44, 75, 27, 80,231,183,113,
+211,101, 68, 72,123, 31,147,103,  5,193, 27,196,209,  9,197,106,202,246, 96,192,223,253, 75,159,227, 63,251,230,171,132,195, 99,
+ 66,154,198, 25,117,154,226,109,131,175,107,222, 12,  3,158,184,251,128, 43, 89,143,190, 15,120, 17, 53,  4,164, 25, 82,104,195,
+197,197, 62,223,174,215,164,185,102, 46, 20,231,164,166, 48, 30,237, 13,198,123, 60, 45, 27,135,119,121,133, 30,215,253, 14,193,
+  7,166,139,146, 36, 75,  9,  9, 28, 90,199,173, 38,112, 79,  8,166, 70,179, 30, 22,132,249, 17,185, 84,152, 40,102, 64,227, 37,
+ 38, 13,132, 32, 49, 65,179,196,113, 65, 11, 46,  6,197, 40,233,113,210,180, 60,145,215, 44, 74,197,177,179,172, 67,244, 68,  8,
+118,246,232,240,252, 88, 85,100, 45,193, 46, 16,183, 90, 56,191,217,177,124,116, 44, 42,172,195,150,150,223,187,191,207,111,157,
+111,217, 28,109, 49, 17,130,147, 54,130,214,234,206,123,161,  1,234, 16, 56,180, 45,151,101,108,221,150, 50, 97, 32, 37, 35,149,
+160,133, 96,214,182,232, 16, 24,231,  5, 39, 39,199,168,209,  8,103, 59, 54,135,130, 22, 73,161,163,131,161,243,158,214, 41,234,
+ 16,216,206, 82,150, 30, 92,221, 48, 25, 20, 20, 54,227,110,213, 48, 23,  1,211, 56, 74,171, 49,198, 80,118, 93,233,220, 68,225,
+156, 76, 75,222, 95, 58,174,247, 13,239, 86,158, 79, 15, 52,239, 54,130,103,211,192,  7, 54,101, 80, 47,  8, 70,227,202, 37, 78,
+ 39, 20, 74, 49,  7, 66,221,114,220,180,108, 72,207,158,135, 75, 34,112,151,154,167,125, 70, 89,150,188,102, 44, 82,106,222, 49,
+  9,127,189, 55, 96,175,178,232, 36, 97, 79, 73, 74, 11,135,180,188,238, 20, 47, 72, 79,161, 60,  8,195, 80,181,204, 42, 77,145,
+  6,110,207, 27,158, 26, 24, 94,155,183,252,204,200,240,234,220,243,124, 22,120,173, 42,184,172, 22,212, 94,162,  4, 60, 53,200,
+185,177,104, 33, 84,157, 86,129,136,133, 73,211,169,141,214,205,143,197,101,127,232, 85, 55,145,223,111,125,180,172,182, 10, 82,
+ 79, 63, 79, 41,157,199,  8, 73, 21, 44,163,212, 80,119,137,151,109,  3,131, 84, 81, 57,135, 38,160,235,192, 80, 72,142, 17,157,
+125,136, 63,147,232,126,  4,198, 78,160,250,209, 99, 31,241,227,174,245, 47,124, 80,167,163,202, 85, 26,122,157,145,129,239, 76,
+ 83, 76,215,102,207,116,231,212,214, 41,250,168, 54,222,208,143, 46,108,221,196,  0, 45,  0,147,241,185, 47,127,150, 87, 31,238,
+194,205,135, 93,251,221, 71, 58,130,247,144, 41,240, 89,180, 27,236,247,224,104,  5,182, 59,228,155, 42,  6,255,196,196,162,182,
+249, 48, 27, 48, 72, 16,101,205,178, 90, 51,206,199, 72,157,147,138,136,164,124,112,248,128,101,185,226,198,253, 93, 88,175,226,
+130, 85,115,214,153,102, 53, 54,120, 91,  1,125,172,107,113,206, 81, 55, 45,213,122, 65,221,214, 56, 31, 40,215,109,172,208, 85,
+198,165,173,  1,193, 11, 60,138, 65, 49,192, 57,207,249,144,194,242, 43, 49,249,208, 81, 69, 12,253,120,251,149, 78,146,246, 49,
+141,247, 46,167,161,149, 17, 80,120,122,240, 95,186,198,139, 87,158,227,220,165, 49, 74, 72,166, 39, 43,154,229, 17, 23,175,108,
+210, 88,199,249, 11,219,252, 91,127,247,183,185,191,191,199, 87,126,247, 27,113,151,213, 31,161,  3, 42, 25,233, 26, 69, 63,126,
+143,214, 31, 10, 50,135,223,248, 30,255,247, 71,150,251,249, 95,255,  5,206, 15,134, 92,190,112,  1,157,166,209, 44,102,144, 19,
+214,241,175, 80, 38,193,152,216,154, 13, 68, 31,227,100,144,196,153,109,223,242,239,252,198,111,242, 63,254,238,255,  1,137,100,
+ 53,157,242, 15,254,241, 31,241,215, 62,245, 52, 47, 63,120,200,222, 91,135,224,231, 29, 87, 31, 24, 63,140,215,109,  4,156,204,
+ 64,218,104,247, 57,159, 71,225,142, 79,218, 71,159,240,208,137,123,247,  9, 90,195,107,111,243, 15, 95,123, 27,145, 38,241,225,
+172, 27, 68, 54, 64, 84, 11, 68, 22, 19,  5,  9, 92,251,249,207,147, 11, 73,166,  5,115,235,184,249,221,183,  8, 42, 33, 96,  9,
+235,234,147,219,110,243,  5,124,247,109,150, 23, 54,249,149,107,231,216, 40, 18,244, 83, 59,124, 35,  9,220,123,247, 30,172,102,
+ 48,155,119,163, 42, 96,115, 12, 71, 11,176,179, 15,127,206,218, 66,  1,159, 27,245,248,181,141, 33,127,248,193, 46,175, 77,203,
+199, 18,229,206,180,104, 81,178,126,235, 29,254,189, 95,250, 87,249,213, 43, 87,248,222,157, 15,248,202,201,148,160, 51, 66, 57,
+195,215, 41,193,181,248, 34,199,219,134,175,238, 62, 96, 35,215,252,246, 19,134, 68,106,196,112,130, 84, 26,153,123,  6,118,200,
+206,234,128,239,155,  6,163, 13,185,148, 72, 31, 72,147,148, 53,240,245,241,121,158, 20,130,155,111,127,139,244,250,151,249,218,
+219,142, 43,155, 99,206,111, 11,110, 79, 29,119,173,228,102,235,152,  9, 73, 83, 36, 32,  5,230,220,  5,204,238, 29,150,171,  5,
+ 65, 74,  6,169, 97,186,136,159,185, 12,150, 11,202,145, 72,131,146, 22,227, 51,114,235, 88,147,177, 47,  2,131, 60,103,221,  2,
+227,110,141,171,197,135,166, 79,143,227,151,  5, 16,170, 10,238, 31, 64,158, 66, 54,140,103,142, 74,161,113, 44,108,224,165,116,
+ 65, 38, 52, 39,105,198,197, 98,192,180,142,200,229,212,228,148,182,225,184,169, 24,104, 67, 38,  4,243,  0,219, 38, 97,209, 21,
+152,133, 78, 24,229, 25, 78,104,230, 74,209, 26,201,251,174, 97,220, 88, 18, 99,168,188,163, 41, 82, 90,162,100,114,161, 21,171,
+214,147,107,137, 13, 34,226, 48,128,158,138,  9, 89, 91,150,108, 37,  5,119,155,146, 60, 49,148,  1,242, 16, 71,135,109, 16, 28,
+  5,200, 43,203,103,  6, 41,223,157,213, 92,235,105,238,183,146, 23, 18,199,205, 82,178, 65,203,145, 74, 56,215,214,172, 76, 66,
+181, 94,113, 36, 36,206,149, 52,222,146,  8,203,145,109,217, 86,130,131,170,102,146, 24, 94, 46,167,108, 38,154, 89,235,201,141,
+160, 89, 46,120,115, 62,101,167, 24,208, 42,197,126,213,114, 76,224,165,202,145,104,199,107, 94,177,145,192,162,180,228, 89,142,
+162, 97,182,242, 92, 30, 38,124,176,104,248,153,190,228,141,185,229,201, 68,240,176, 85, 60,171, 27, 94,159,195,115,121,194, 92,
+165,220,106, 43, 66, 47,237, 76,196,154, 56, 58,170,218, 24,234,214,213, 99, 54,211, 63,197,107, 93,129,182,192,  8,180,131, 84,
+179, 44,163,  5,184, 74, 52, 70, 73, 78,170,134,171,147, 28,103, 29,202, 67,229,186,159,165,143,221,251,224,200, 92, 96,237, 79,
+129,112,174, 19, 71,235,108,185, 87,117, 84,240,252, 88,116, 62, 59, 23,195, 79,120,185,127,177,131,186,237,204, 90,172,232,120,
+241,167, 64,183,110,  6,184,110,206,156,196,188, 61, 19,161,249, 97,175, 58,222,145, 87,191,246,221, 24,196, 79,171,124,255, 24,
+131, 85,105,200, 61, 12,134,144, 36,176,  9,220, 95,156, 93, 79, 49,138,115, 75,162, 17,156, 56, 21,199,137,189,108, 66,101, 89,
+ 85, 48, 26,166, 36,186, 79,101, 75,102,229,130,195,213, 49, 55,238,220,135,227, 67,130,179,103,127, 15,176, 55,171,216,189,127,
+135,114, 62, 71, 38,154,227,195, 99,102,213,138,101,185,102,209, 54,204,203,134, 89,105,  9,  8,158,191, 50, 68,  7, 69,150,229,
+ 60,249,204, 14,219,163, 62, 71,179,134,219, 47,223, 60, 83,195,179,182,227,101,126,244,126, 62,  6,250,163,235, 62,160,161,144,
+103,120, 57,145,130,244, 92,184,124,  1,219, 88,218, 16,216, 59,184, 79, 18, 26, 54,199,151,209, 74, 98, 93,206,106, 85,113,113,
+107, 11, 46,244,225,224, 48,118, 56,156,238,172, 95, 57, 83, 91,114,116,155, 89,254,216,135,237,173, 63,252, 58,111,253,184, 61,
+145, 13, 98,226, 49,216,140, 24,135,209, 32,234, 18, 68, 21,147,136,230,247,  9,255,221,255,246,207, 64,106,254,224,149, 55, 35,
+182,162,  7, 52, 58,  6,240,193,168, 67,166, 42,200,  4, 60, 60,140,166, 70,117, 27,215, 28,162, 62,182,254, 49,160, 27,173,  9,
+137,142,163, 23,173, 99, 98, 87, 87, 80,100,136, 52, 33,132, 78, 40, 41,212,241,223, 74,114,251,123,111,197,251,178,174,  8,105,
+210,  5,241,179,128,254, 67,179,116, 95,145,174, 87, 60,169, 36, 89,175,143,149,112,237,252,  6,247,238, 29, 16, 86, 37,236, 29,
+193,176,224,133,193,  6, 23, 47,247,184,163, 20,239,190,249,206, 25,112,168,110,226, 22, 77, 13,255,218,198,144,207, 14, 55,153,
+143, 23,188,246,238,126, 12, 96, 33,196,102, 12,113,189,194,114,205,195,245,140,111, 60, 52,188,221, 27, 17,178, 30,161,138,230,
+ 61, 62,149,184,218,224,106,143,  5, 92,240,252,222,238,140, 47,101,247,120,214, 24, 84,145,161,210,113,167,253,225,216, 94, 44,
+113, 70, 99,116,194,148, 64, 38, 21,149,119,100, 73,198,103,183, 71,220, 45, 87,136,237,243,188,250,218,119,120,227,254,132, 47,
+ 61,241,105, 38,147, 45,230,105,202,221,  0,239,229, 25, 33, 55,204, 67,202, 36, 79, 25,140, 28, 75,127,145,254,209, 62,231,219,
+146, 89, 89,145,100, 57,203,166,226, 82,174,187,238, 86,  4, 58, 89,111, 59,134,131,229, 66, 47,101,160, 28, 39,141,165,246, 41,
+ 34, 73,192,234,179,231,229,163,  1,189,139, 16,162,245,  4,106,  4, 93,155,183,167, 64, 37, 60,159,107,246,214, 45,239,172,151,
+ 60,157, 24,254,232,240, 62,207,245, 71, 28,122,199, 86,  8,212,214,178, 36,208,247,150, 82,106,158,205, 10,142,156,101,164, 52,
+ 74,105,166,206, 17,156, 71, 38,130, 96, 18, 10,163, 88, 24,201,155,194, 80, 87, 53,163,126,206,229, 65, 78,138,164, 10,  1,221,
+ 56, 92,  8,132, 54,138,103, 89,231,232,167,  9, 77,235, 49,222,115,177,215,227,157,213,138, 65,166,153, 89,143,129,200, 51,111,
+ 27,210,212, 80, 54,146,144, 41,246,125,224,185,161,230,161, 15, 92, 48,112,215,195,166,180,148, 66,176,221,192,162, 13, 72,219,
+112,136, 32,109, 74, 30, 46,215,100, 58,174,181,108, 26,246,218,134,212,104, 30, 54, 21,  3, 20, 95, 63, 92,241,194, 48,227,235,
+243, 53,151,250, 67,254,217,221,  7, 60, 61, 26,242, 96, 89, 17, 18,197,141,202, 50, 16,130,169, 85, 24, 42,110,161, 24,209,112,
+137, 64,158, 27, 84, 82,208,184,134, 29,227,185, 97,115, 54,243,146,147, 50, 10, 88, 89, 18, 46, 23, 37,149,119, 44,116,202, 42,
+ 73,226, 94, 30,100, 81, 99, 99,255, 48, 62,255,161,254,240, 25,247, 47, 18,107,234,  5, 52,105, 92,252, 60,129, 36, 97,229, 61,
+153,247, 76,180,161,170, 45,185,136,  0,105,237, 61,179,178,165,200, 21,  7,179,166, 59, 14,196,217,216,183,237, 68,205,232,152,
+ 89,202,158, 61,139,143,206, 96, 27,223, 31,  9,238, 63,238,245, 23,115,166,254,161,150, 97,135,130, 23,221, 35, 39,100,188, 97,
+153,236,110, 26,143, 85,219, 33,  6,182, 79,  2,186,157, 26,190,200, 83,213,185, 83,222,123, 56, 67,131, 75, 25,219,215, 60, 70,
+163, 91, 46,207, 42, 54,173,163, 12,163,245,103,  7,190,235, 84,130, 20,160, 21,201,213, 43,124,241,201,231,185,184,125,149,162,
+ 55,194,136,140, 15, 78,238,115,239,232,152,102,239,222, 25,245, 66,200, 88, 37,154,132,205, 34, 65, 72, 71, 93,149, 44,214, 11,
+ 86,117, 77, 93,151,236, 46, 87,220, 63, 92, 80,238, 45,163, 40,144,146,108,111, 79, 24,154, 30,253,162,207,103, 94,184, 64,145,
+ 37,152, 68,241,237, 55,239,114,240,230, 75, 63,  5, 29,209,159,221, 96,147,116, 42, 72,221, 61, 50,138, 81,209,163,151,245,152,
+ 77, 79, 56,153, 31,113,126,107,131,205,241,  4,147,104,150,101,131, 13,129,166,105,120,229, 27, 95,239,184,154,221, 40, 66,158,
+ 81, 65,162,140,176, 63, 83,  5,108,237,255,247,253,160, 58, 42,  9, 73, 76, 74,178, 36,182, 73, 90, 11,182,142,127,203,186,142,
+120, 11,213,141, 23,144, 48, 93,194, 98, 17,245,  0,132,138, 26,226,167, 56,139, 85, 25,255,127,103,227, 79,223,173,175,215,103,
+  0,202, 79, 50,249, 49, 49,145,139,162, 19, 62, 50, 91, 30,243, 28, 66,117, 10, 83,117, 67,208,170, 19, 76,234, 16, 64, 82,158,
+ 85,229,178, 99, 82,104, 69,112, 46,238,179, 83,199, 65,211,237, 85, 37,177,  2,158,221, 28,162,250, 61,230,222,243, 86,217,112,
+178, 92,198, 68,183,106, 97,210,231,122,127, 72,145,231,204,157,229,160,108, 16,101, 21, 19,139, 52,237,186, 53,134, 89,154, 16,
+180,224,119, 79, 42,214,181,131,118,  9,210,159,209,109, 68,138,168, 26,190,125, 60,227,196,192,161, 54,172,235, 18,177, 88, 32,
+122,  3,100, 83,162,130, 66,202, 22,105,114,164,  3,233, 74, 70, 46,240,252,230, 24,147,230, 49,217,173,203,104,250,226,214,188,
+237, 45,109,154,210, 51,105,180,120, 37,112,208, 68, 97,141,255,101,252,  4,193,199,110,133,189,191,203,157,195,247,121,107,239,
+ 54,183,246,239,178,191, 94, 81,175, 42,234, 32,232,121, 79,147, 37,212, 89,130, 79, 12,106, 48,132,164,207,192, 11,180,111,241,
+ 66,176, 21, 44,153,209,244, 67,192,  8, 65,  8,  1,139,196,116,254,  6, 83,219, 50,212,134,195,170,134,117, 27, 61, 31,252, 39,
+  3,171, 68,151,233, 10,186,202, 11, 27, 37, 87,211,140,223,121,114,135,191,119,237, 58,231, 50,197, 43,213,138, 87, 79,214,120,
+169,152,226,145, 74,243, 65, 83,210, 42,197, 68, 40,174, 38, 25, 67,161,162,229,179,  0,100,188,255,167, 14,146,214,100, 88,  5,
+137,214,172,  2, 44, 19,197, 58, 49, 12, 51,195,112, 16, 21,246,122,169,230,216, 90, 18,  4,  1, 56, 92,173,217, 74, 52,  7,101,
+205, 36, 79, 41, 91,135,181, 22, 27,160, 85,154,224, 26,218, 32,177,109,139, 48,  9,179, 54, 48,236, 41,170, 74, 32,132,197,  5,
+ 65, 30,  2,107,  4, 67,235, 88,120, 71,210,182,172, 93,203,134,173, 57,176,150,121, 91,242, 94,109,209,173,229,184, 92,211,148,
+107, 22,174,197, 16, 56, 90,213,140, 19,195, 91,243, 21,147, 94,198,219,139, 53,151,132,228,173,249,156,  3, 91,243,157,195,  3,
+ 50, 35,248,206,241, 17, 79,106,193,157,  0, 33, 56,146, 32, 25, 59,139,209, 73, 52,195, 14,142, 32, 28, 19,173,121,183, 12, 92,
+144, 21,199,107,207,197,141, 30,247, 79,214, 36,210,211, 87,154,227,186,164, 72,163,127,125,169, 19, 26,225,226,115,155,117, 12,
+ 41,107,127,226,160,248,195,  7,238,157,152,140, 54,241,140, 70,225,188,143,213,186,144,132,214,210, 75, 13,107,219,208,  4,135,
+212,112, 82, 58,140, 11, 44,154, 54,186,129,  6, 65,104, 58,108, 78, 91, 66,217, 57,136,226,227,179,255, 40,174,157,130,154, 78,
+103,159,246,172, 91,252,255,251,160,238, 59, 41, 49,173, 58,222,122, 23,200,219,112,134, 42,116,237, 89,228,246,174,171,214, 62,
+  9, 81,223,  1,226,132,234,130,184,138,191,211,214, 93,203,186, 58,227, 28, 54, 54,122,174, 55,143, 41,234, 25, 29,171, 65,249,
+ 24,176, 76,158,185,155,137,172,207,139,207,127,134,103,158,188, 78,175,215, 67, 27,197,186,170,184,115,112,159,189,123,119,227,
+225,123,154, 28, 36, 26,146,132,173, 81,206,118,191,160,159,245,144, 82, 82,217,134, 85, 83,115, 82,150,236,174, 74, 88, 86, 81,
+251, 57, 72,212,164,224,252,104, 64, 47, 53, 12,139, 49,219, 59, 27,228,137,102,182,106,248,214,107,119, 89,188,255,131,159,184,
+133,243,216, 13,238, 70, 19,157,236,109,136,148,183,247,235, 21,  7,199,187, 60, 56,216,101, 93, 55, 92,217, 58, 71,222,207, 81,
+194,243,224,225, 17,255,213,239,254, 19, 94,249,202, 55,187,160,103,226,125, 82,242,236,104,124,132, 57,232, 16, 38,173,143,149,
+241,143, 19,247,249, 81,175, 34, 59, 11,138,139, 89,180,225,108,218,174,187,146, 69, 31,128,208,237,  1,239, 98,144,174, 42, 88,
+150,221,247,106,232,231,241,193,245, 62,226,  0,230,221, 92,218,119,202, 21,233,169,211,223,169,196, 36,143, 37, 42,143,  5,118,
+173,227,126, 60, 77, 42,165,  6,235, 59,139,204,186, 75,244,116,164,133,101, 25, 66,  9,196,186,138, 18,188,213, 58,  6,112, 37,
+161,170,  9,173, 37, 56, 23,  3, 58, 68,  3, 14,217,129,118, 78,177, 16,222,131,245,188,225, 53,111,103,  9,175, 84, 53, 83,231,
+ 97,181,132,121, 25,247,112, 19,120, 48,204,153, 33,120,191,177,113,252, 81, 85, 81,191,191, 41, 17,131, 17,120,203,129,144,188,
+ 44,  4,107,147,196,189,188, 92, 67, 43, 17,202,116,186, 15, 18,241,255,114,247,102, 63,150, 93,217,153,223,111, 79,103,184,231,
+ 14, 49,228, 72, 50, 73, 22,139,172, 42, 85, 21, 85, 82, 73,130,160, 22, 36, 75,141, 22, 44,248,193,  3,208, 86,  3,110,219, 13,
+ 63,250, 47, 51,252,110,192,112,195,176,209, 70,171, 37, 75,213,146,154,170, 42,138, 51, 43,147, 57, 69,198,116,167, 51,238,193,
+ 15,123,159,184, 55,147, 76, 50,201,178, 90,178,  3, 72, 68, 70,144, 25,113,239,153,214, 90,223,250,  6,101, 17, 91,203,131,237,
+  6,117,253,128, 91,215,142, 88, 61,190, 68,216, 30, 57, 88,164,208,136,160,144,214, 34, 11,133,104, 59, 62,233, 45,127,120, 56,
+167, 16, 18,  3,208,111,177,219, 11, 86,245,138, 15,186,154, 48, 61, 64,  8,205,144,101,108,134,129, 19,239,185, 16,130,143,100,
+  6,147,138,160, 13, 97,146, 19,154, 13,190,174,  9,247, 31,224,127,241, 49,254,242, 49, 65, 14,180,213, 49, 93,153,211, 41, 29,
+ 11,102,105,248,238,209,156, 27, 55,142,177, 46,199,132,150, 73,240,116,214,161,133,194,251,  1,129, 32, 87,138, 44,  4,154, 16,
+ 48, 90,243,160, 27, 88, 90,  7,117, 29,143,219,115,178, 25,196,179,150,206,206, 33,144,176,168,248, 31,223,120,131,239,221,186,
+205, 76,104, 62, 89, 95,242,206,147, 53, 89,174, 25,  2, 44,219,158, 89,158,227,128, 91, 42, 99, 46, 37,133, 54, 76,132, 68, 74,
+131, 37,112,233,  3,  7,202,208, 20, 57, 34, 56,188,212,244, 90,115,233, 61,  5, 10,147,233,216, 95,186, 64,149, 27,150,214, 83,
+132,120, 29,158,110, 27,110,205, 38, 60,222,116,204,139,140,139,186,231, 64, 11,140,212,252,221,122,205,224, 28,173,215,224,  3,
+ 65, 25,148, 86, 88, 31,184,223,195,161, 10,100, 33, 80,134, 64,  7,204,173,227, 52,128,104,182,212, 33, 48,107, 26, 62, 28,122,
+238,110,182,124,214, 13,172, 55, 43, 30,247, 61,194,245, 92,214, 45,198, 57,206,182, 61,173, 11, 60,104,122,230, 38,227,147, 77,
+ 67,107, 61, 79,250, 30, 19,160,189,216, 50,207, 52,247, 30, 60, 97,154, 27,126,113,118, 73, 46,  3, 86,101,244, 93,143, 45, 10,
+142,157,231,220,118,220,153, 77, 57, 80,154,191, 89,117,188,148,  5,150,131,228,102,230,121,111,235,248, 97, 41,113, 34, 62,223,
+107,175,152,232,192,113, 53,227,141, 50,231,129,135, 46, 35, 89,125,187,100,  6,243, 75, 14, 14, 42, 37,143, 10, 15, 62,145,220,
+164, 96,232, 61, 91,235,153,103,154,203,186,167,202, 36,221,224,  9,214,147,201,192, 89, 29, 83, 62,109,231,147,227, 93,226,189,
+140,164,107,229,147, 29,249,222,179,227,115, 30,135,105,192, 26,107,203,255,175,139, 58, 36, 55, 57,157, 38,193, 36,228, 31, 69,
+255, 67, 27, 59, 43,111,227,  3, 94,136,184,220, 54, 42, 49,214,213, 78,228,159, 38,164,200,118,212, 49, 69, 13, 17,255,110,251,
+221,109,109, 19, 75,209, 39,120,100, 60,200,185,217,113,207,228, 51, 12,135,174,135,170,226,230,173,107, 28,207,142, 41,202,146,
+ 97,240,212,219,154,119,238,126, 64,119,113, 17,139,158, 78, 19,122,145,113, 84, 25,110,204, 42, 14,167,115,166,217,  4,135,167,
+ 29, 90,182, 93,199,233,166,163, 91,117,208,244,  8,149,145, 95,159,114,115,154,113,109, 54, 99,106, 42, 94,122,229, 21,138, 73,
+206,106, 99,121,255,239, 30,242,167,239,254,  5, 60,185,255,212,195, 73,188, 48,244,148, 26, 22, 49,190,151,152, 12, 84,167,164,
+180, 89,150, 83,233,130,224, 53,171,117,199,207, 62,120,143, 79,127,242,211,  4,171, 39,169,134, 81, 79, 63, 13,251,244,189,126,
+116,176, 19,187, 44,251, 95,138, 60,153, 94,107,121, 24, 39,115,145,108,111, 93, 42,230,117,  3,243, 73, 50, 28, 18,177,160,139,
+244,121, 68, 11,132,136,141,223,166,139,231, 98,148, 73,218,100, 35,108,187, 24,220, 99,147,132, 82,132,167, 11,187,148, 73,190,
+ 39, 99, 34,133, 76,215,140, 34,  5, 12, 69, 27,201,200, 41, 40,162,253,240, 96, 83, 83, 82,199,194, 61,106, 91,115, 19,139,122,
+158, 69,219,100, 72,175, 47,201, 56,199,235, 87,200,200,202,239, 97, 56,152,197,107,219,  7,184,220,198,162, 44,163,214, 54, 52,
+ 61,219,202,196,127,155, 73, 88, 54,241,218, 94,204,162, 68,173,168,224, 98,  5,229, 20,170,114, 23,236,115,177,130,114,130,240,
+  3,120, 27, 19,168, 68, 76,108,234,231, 37, 75,107, 17,141, 69,172, 26,132, 10, 96, 20, 34, 12, 49, 98,120,112,144, 73,130,115,
+ 28, 59,193,145,239,200,109,141,104,123,134,102,205,178,235,249,105,211,211,151, 57, 42,159,224,165, 38,120,135, 84, 18,215,183,
+ 60,193,208,154,  2,170,  5,193, 76,  8, 66, 68,144,164,200,162, 25,201,242, 18,127,177, 36,232, 64,152,222, 32,  8,193, 80, 42,
+254,235,131,146,255,252,118,201,119, 15,115, 84, 85,240,241,137, 37,147, 29,202, 58, 38, 90, 19,136,249,215,222,123,186, 16,112,
+ 82,240,164,111, 89, 15,158,229,120, 29,174,187,200,246,127,166,152,239,238, 33,153, 38,246, 84,220,101,  0, 83, 82, 77, 37,133,
+208,252,117, 83,243,191,156,159,211,213, 61,235,186, 69,107, 73,161, 53, 10,137, 81,129, 45, 80, 72,197, 53,101,112,233,180, 22,
+218,160,164,162, 23,146,198, 57,230,101, 21,139,117,240,244, 82,114, 14,180,  1, 38,133,161,146,146,243,206,226,189,139, 91, 72,
+  4, 85,174,121,180,108,184, 49,201,185, 88, 55, 40, 41, 17, 82,112,222,245,200, 32,184,112, 61,125,231,241, 90,131,214, 52, 67,
+ 67,231, 28,219,190,199,135, 64,150, 41,206,235,142,128,231,253,203, 45,249,176,101,233, 99,254,251,169,183,216,102,205,224,225,
+100,117,193,103,174,167,217,108, 88,110,214, 88,224,100, 89,179, 50,146,117,107,169,  7,203,121,221,225, 16,201,179,193,227, 86,
+ 91,130, 54,180,203, 21,193,  7,218, 39, 43,130, 81,216,186, 35, 12, 29, 97,186,160,169,183,172,116,198,111,205, 42,150,155,134,
+206, 75, 94,158,228, 52, 93, 75,129,133,188,224,142,239, 57,241,138,174, 95, 97,109,207, 16, 96,145, 23,228, 66,210,218,232,210,
+247, 32,136,200,125,154,100,241,126, 24,161,239,111, 98, 89, 62, 42,173,178,184, 90,193, 13,  9,185,181, 87, 40,192,122, 24,168,
+123,139,181,  2,111,  3,195,224,217, 52, 14, 33,  2,182, 79,161, 96, 93, 31,159,159, 46, 14, 99,144,146, 78,247, 93, 87,125, 26,
+  2,174,166,244,196,102,180,254,133,204,220,254,241, 20,117, 83,196,244, 32,228,151,230,117, 63,119, 90,207,246, 32, 80,165,227,
+129,242, 67,100,172,219, 62,234,110, 69, 58, 34, 33, 77,135, 90,236, 96,244,164, 41, 39, 36,104,101,132,232,165,220,155,244,211,
+212,101,197, 14, 94,127, 54,181,205,167,137,223, 37, 41,152,243,145,176,225,  1, 97, 56,203, 37, 47, 47,230,244,221, 64,176,150,
+187, 79, 62,229,131,123,159,236,180,144, 58, 78,131,147,210,112, 56,201, 89, 76, 43,102,249, 28, 41, 37,214, 14, 44,251,142, 77,
+215,243,164,238, 99, 30,187,206,224, 96,194,157, 69,201, 97, 89, 82,230, 37,243,114,206, 91,223,123,157,235,179,146,204,  8, 62,
+120,239, 99,222,251,228, 35,184, 60,249,166,112,200,158,110, 51, 69,241, 86,115,178,178,228,160,200,200,181,161, 13,129,143, 30,
+ 62,224, 79, 63,124,143,247,254,230,239,192,109,246,150,144, 38, 22, 43, 41,227,212,238, 82, 65,175,219, 20,247,153,154, 38,163,
+190,121, 39, 93, 20,177,136, 78,167,176,217,166, 41, 57,192,164,138,231,181, 79,222,246, 82, 70,103,166,182,191,178,239,197,199,
+104,225,120,142, 18, 44,159, 21,241,245,  5, 82,  1,110,227, 62, 61,249,223,211, 52,113,119,175,216,161, 67,251, 81,139, 87,225,
+ 13,114,215,224,133, 61,214,171,115,177, 48,236,191,223,253,191,123, 31, 39,243,100, 97,138,115,145,112, 39,211,100,158,114,  5,
+174, 86, 25,125, 63,218, 95,193, 43,183, 80,229,140, 27,101,197, 54, 23,240,228, 50,233,204,211,185, 92,204, 35, 18, 20,194,206,
+132,102,181,142, 73,123,155, 26,174,207, 33,  4,196,172,136,175,121,219,166,102,110, 27,139,121, 82,153,  8,231,163,157,229,249,
+ 26,113, 48, 71,228, 38, 30,183, 77,141, 24,250, 24, 13,170,210, 74,164,183, 64,224,167, 93,207, 27,198, 80, 17, 80,125, 75,211,
+ 90, 62,169, 91,126, 58, 56, 62,177,142,235,243, 25,223, 41, 42,222, 94, 28,161,134,158,181,247, 28,116,151,124,234, 76,108,172,
+102,  7,145, 56,184,184,193,143,143,143,185,223,172,240,189, 35,212, 91,194,253,207,  8,153,137,124, 10, 39,248,147,155, 37,223,
+ 59, 46, 89,228, 26,147, 73,126,182,246,232,213, 41,165,209,116,125, 71, 78,160,151, 38,150, 99,109,120,210,109, 25,132,196, 14,
+150,190,239,232,214, 49,255, 65, 52,245, 83,197, 92, 60, 85,216, 61,  2,141,192, 94, 77,235,216,142,159,  7,195,159,122,199,159,
+ 55, 61, 53,169, 73, 20,130,237,186,129,204, 96,113,136, 32,201,149,226,186,210, 12,  4, 94,214,  5,185,206, 89,135,128, 70, 97,
+181,230,176,172,216,122,199,160, 13,235, 32,112, 82,176,246,129, 13, 49,161,113,150, 25, 42,163,232,  7,199, 48,120,172,128,102,
+176, 17, 58,111,  7, 14, 50, 21,141,180,172, 67,245, 22,213,119,  8, 33, 57,181,158, 94, 72,  6, 17, 73,215,117,223,114,233,  3,
+ 23, 46,176,217, 54, 76, 76,198,197,166, 97,161, 28, 15, 90, 75,233, 58, 30,110,107, 28, 61,219,110,203,159, 45, 47,184,168,155,
+216,144, 54, 17, 70,118,231,171,248, 60,220,180,208,247, 49,201,174, 31, 98,200, 86,211, 17, 86,171,120, 15,157, 44, 99,145, 93,
+ 94,198, 21,195,233, 50, 26,187, 12,  1,108, 67,168,230,116,237, 26,134,158,133, 12,156, 15,  3,133, 17,  4, 27,157, 11, 55,205,
+138, 90,192,147,166,230,208, 24,206, 91, 75,158,  5,166,166,192,  5, 16, 90,179,181,150,123, 99,152,202,164,136,190, 36,215, 15,
+163, 75,162, 76, 68,225,175, 83,103, 76,182,139, 20, 31,221, 73,247,239, 65,239,163,117,122,223,209, 53,142, 70,  6,154,186, 71,
+ 40, 69,223,244, 73,174,214,196,223,235, 54,169, 64, 63,199,117, 85,243,140,220, 40,125,253,130,205,200, 63,142,162,174, 83, 22,
+176,142,214,170, 95,197, 42,126, 62,213,120,239, 97,218,165,192,150,171,253,185,221,177, 92, 66, 58,112,195, 62, 20,236,158,110,
+ 14,180,121,122, 90,191,154,184, 83, 66, 92,231,118, 80,238, 62,132, 47,216,193,162, 33,193,180, 99, 23,166,  4, 46, 24,234,208,
+ 48,241, 61,203,205, 35, 46, 54, 39,108,124,199,224,119,150,130, 89,169,185, 86, 77, 56,172, 74,166,217,132, 66, 90, 78,169,235,
+  0,  0, 32,  0, 73, 68, 65, 84, 27,108,  8,108,135,150,139,237,134,179, 77,135,219,246, 48,128,152,228, 92,159, 23, 92,171, 10,
+102, 69, 69,174, 50,  6,  2,175,189,122,135,249, 52,227, 98,213,177,222,212,188,243,209,123,176,190,124,174,246,246,171,235,186,
+219,243,  3,144, 48, 95, 80,205, 74, 14,178,156,160, 20,171,186,229,201,102,203,242,228, 18, 46, 79, 83,243,147, 46, 88, 61,162,
+ 32,169,248,140,133,193, 36, 66,158,237,119,251,229, 47,156,212, 83,215, 58,194,226,232,167,239,  4,157,104,252,102, 22,245,158,
+ 70,198, 27, 80, 22,224,154,157, 54,116, 83, 67,189,141,231, 56, 58, 73,128,206, 83, 99,230,226,121, 51, 58, 54,  8, 46,194,226,
+148, 42,122,217,207,170,116, 46,109,146, 47, 57,162, 56,117,111,133, 16,194,211,133,221,166, 66,218,251,221,154,232,107, 48,117,
+ 62, 71,140, 51, 58, 54,164, 99, 65,246,196,227,233, 92,226, 61,  4,152, 47,120,235, 91,175,243,107, 71,183,184,153,151, 76,253,
+192,227,211,232,206,118,149,147,144,151,187,166,202,218,200, 11,209, 38, 73, 63,199,172,231,128,152,228,177, 72,103, 10, 46, 46,
+163,217, 19, 62,146,230,172, 67, 12,  3, 98,176,  8, 23, 82,118,193,140,127,254,250,109, 66, 54,112,250,217,229,238,149, 91,119,
+245, 30,124,215,241,231,141,197, 13,142,198,  8, 30,122,203,251, 18, 62, 81,240,104, 99,185,121, 48,225,119,111,188,196,245,188,
+224, 85,105,152,175, 47,168,221,128,217, 62,230,209,166,129,182, 39, 28, 28,240, 47, 95,191,206, 31,189,121, 27,161, 22,188,223,
+ 46, 99, 70,188, 84,132,135,247,225,248, 26, 28, 29,241,122, 85,240,237, 69, 78, 43,  4,103, 29,220,247,240,248,211,135,152,224,
+ 49,  4,214, 82,130, 16, 56,161,120,104,123, 10, 33,144, 42,103,232,  7,142, 50,104,236, 64,183,105, 16, 67,159,244,198,241,116,
+238,127, 22,105,167,254, 84,177, 31, 44, 98,219,211, 78, 13, 78,166, 66, 47,227,196, 37,130,163,217, 52, 52,198, 80, 72, 34, 63,
+ 70, 75,230, 62, 80,101,  6,235, 44, 83,105,152, 72,197,214,123,122,233, 17,186,164,182, 61, 94, 74, 30,  9,197,178, 23,172, 26,
+ 75, 94, 26,182,110, 64, 75,193, 76,105,188,243,180,221,128,246, 30, 63,120,242, 16,240,  8,164,  8,176,237,152,181, 29,165,179,
+168,224,104,115,197, 73,239,216,184, 64,235, 28, 27, 33,232,156,231,126,183,102,144, 25,149, 86,200,190,225,222,106,195,249,208,
+178,238,123, 54,182,163,235,123, 62, 91,175, 57,107, 45, 92, 46,227,245,119,177,142,241,219,193, 71,181, 81, 63,196,123,202, 54,
+241, 26,243, 67, 84,141,228, 57,156,158,199,251,111,181,138,215,196,118, 27,135,159,109,  3, 34,198, 37, 35,162,251,231, 89,223,
+ 51, 15,240, 51,231, 89,116, 29,235, 32, 88,214, 91, 30,  4,133,182,142, 39,214,161,188,231,174,179,252,197,118,203,107, 50, 96,
+101, 96, 51, 12,252,101,111,227,229,138,143,107,184, 60, 71,234,156,151,143, 15,152, 29, 77,168, 15,231,  4, 39,211,250,244,  5,
+208, 65,231, 34, 73, 88,184,221,189,  2, 41, 95,100, 72,171,222, 16, 27, 24,198,148, 75,129,235,250,248, 59,172,141,  5, 93,217,
+157,204,247,203,102,168,209,  9,117,159,168,247,194,180,162,127, 12, 69,221,251,180,175,216, 17,135,190,209,207, 64,198, 93,135,
+ 27,226,131,168, 75,218, 16,199,110, 23,225, 34,  9,126,127,  0,189,130,136, 71,237,185, 76,208,188, 16,241,117,165,155, 63, 66,
+156,163, 55,124, 58,137, 98,183, 51,143, 77,129,137,147,169,244,201,160,127,120,250,196, 76,102,148,243,  9, 85,169,200, 53, 20,
+ 38,222,232,151,214, 19, 92,180, 14,172,202,130,235,179, 41,243,162,162,204, 39, 41,173,171,231,124,187,230,164,110,217,110, 59,
+132,245, 80,104,110, 45, 10,110, 86, 21, 85, 81, 98,164, 70, 74,205,209,225,171,160, 74,250, 32,120,248,112,201,195,199, 15,249,
+232,254, 61, 88,158,127, 51,232,105, 31,133,240,196,155,114,126, 72, 85,149,232,148, 91,126,210, 52,108,158, 92,194,217,131, 20,
+180,147, 90, 80, 97,210,234, 34,117,184, 89, 34,132,141,176,187, 75,123,238, 97,120, 62,244,174,229,174,113, 29, 93,253, 70, 72,
+106, 50,141, 95,151,243,184,227,118, 46, 74,139,236,144, 32,172, 33,157,244,104,231, 24,247,224,  1, 84,145, 76,135,210,117, 83,
+153, 56, 69, 84,217,142, 91, 81,165,102,161, 72,174, 79,222,197,255,103, 36, 77,202,196,187, 24,228, 30,  9,208,196,189,155, 52,
+169,121,200, 32, 31,149,  4,207, 63,246,226,170, 81,121,186, 97,  9,251,141,141, 72,  1, 70, 46, 17,170,204, 12,249,171,111, 17,
+206, 47, 82, 53, 17, 80,206,184,249,202,109,102, 69, 69,166, 10,140,132, 79, 79,206, 97,187,142,175,105, 76, 78, 20,130, 76,  9,
+110,107, 88, 53,251,107, 43,153,204,151, 28, 28,205,160,152,197,  9,220,135, 68, 24, 84,136, 20,205, 43,246, 27, 62, 60,255,213,
+219,111,241, 47,222,252, 46,191,119,253, 38,239,172, 78, 56,191,216, 92, 53, 56, 87, 54,150,222,227,109,207,  7, 97,224,207,  6,
+193,217, 52,231,  1,158,115, 47, 24,108, 64,230,134,223,153, 46,184, 38, 13,197,224, 41,183, 23, 56,  4,210,  7, 84,127,201,163,
+229, 25,223, 95, 28,243,251,223,190,193,155,215,231,156,108,122,126,210, 65,200,  6,194,201, 25,225,244, 81,116,194,155,223, 98,
+ 57, 59,224,179, 65,240,216,193, 71,173,231,211, 85,207,185,133,220,121, 90,219, 70,110,177, 52,180,  2,132, 16, 32, 13, 50, 56,
+ 22,153, 33,247,  3,202,246,132, 48,208, 46, 55,  8,239,159,  2, 67,197, 51,224,168,124, 22,150,183, 61,172, 54,  8,159,208, 64,
+149, 26, 49, 36, 88,135,235, 58,214, 66,144,107, 67, 55, 12, 44,140,230,178,239,120, 75,231,  4, 99,120, 40, 36, 85, 97, 48, 86,
+ 80,  7,207,133, 54, 60,118,158,199, 27,203,214,123, 90,226, 37,238,149, 36,243, 30, 23, 60,218, 58, 46,235,142,185,148,184,222,
+178,181,  3,155,245,134,126,219, 48,107,  7,140, 31,208,222, 81,132,232, 65, 95, 86, 57,119,166, 25,111,148,134,219, 69, 70,222,
+247,172, 61,156,247, 13,239, 53, 91, 62,108,107, 30, 13, 29, 39,182,231,241, 96,121,220,108,121,112,121,198,210,  9,196,201,147,
+216, 36, 95, 92,198,235,146,189,208,173,164,144,136, 60, 20, 23,229,155,163,194, 98, 31,145,218,123,110,  6,239,146,135,134,132,
+ 34, 35, 92,108,  8,133,230,161,247,220, 14,158, 71,213,156,118,123,201,251, 58,167,116, 29, 91,107,217, 10,197,165,119, 56,215,
+115, 17,  2, 15,187, 30, 53,120, 78,219,154,251,193, 63,197,139, 58,194,243,118, 49,225,119,230, 19,126,237,224,136,223, 60,152,
+163,103, 57,247,114,149, 86, 98, 47,176,250, 19,196,250, 50, 42,147, 70, 95,143,113,101,107,251,184, 82, 27, 18,147,221, 15, 73,
+230,236, 18,212,158,  2,195, 94,244, 25, 60, 62,155,198,191, 75,253,197,132,220,127,180,240,251,213, 68,243,180, 85, 30, 90, 39,
+  6,115, 98, 11,127, 25, 81, 64,138, 52,125,141, 33, 42,201,222, 85,133, 29,204,106, 68,124,206,143, 63,195,164,234, 46, 19,236,
+234,146, 99, 80,158,195, 75,  7,112, 52,133,101,189,243, 65, 23, 50, 77, 30,209, 87, 56,154,180,236, 17, 28, 38,101, 44,236, 38,
+ 75,221,149,125,250,245,154,146, 27,119,110,240,202,252, 16,109,178,184,214,237, 91, 78,183, 93, 42,234,146,235,147,130,107,213,
+140,210, 24, 36,138,206, 15,172,251,154,243, 77,205,197,101, 13,189, 69, 40,197, 43,243,130,151,143, 38, 28, 84, 37, 70,104, 50,
+157, 83, 84, 83,254,211,223,255,  1, 63,126,243,  8,169, 21,127,241,211, 19,254,242,227,191,163, 89, 95, 68,189,242, 47,179,179,
+ 30,177,162,234, 16,142, 14, 40,141, 70,  9,120,188,174,105, 87, 27,184,184,136,197,121,212, 91, 74,145,136,114,121,220, 29,233,
+189, 34,110,212,142,245, 62,118,194,207, 67,113,236,142,  0,138,220, 63,119, 58,222, 48, 38,139, 55,154,117,145, 16, 87,111, 64,
+151, 17,249,  9, 42, 90,127, 14,109, 44,106, 33, 62,188, 17,169,185,168,242,216,104, 76,146,  4, 70,171,248, 59, 42, 19, 31,198,
+ 70, 38,182,121,216,153, 16,217, 68,192, 20,106, 15,194,243, 81, 58, 35, 68, 68,114,148,  1,153,237, 94,255,115, 61,197,147,235,
+222,216, 84,122,187,199,122,245, 79, 55, 54,227, 49, 29, 43,199,181,235,252,240,205,215, 57,249,224,227,248,125,231, 33,203, 56,
+ 61, 92, 80, 86, 11, 46,  3,188,223,118,116,143, 31, 68, 38,183, 17,144,149,208,110,184,118, 60,231,247,143, 42,110,101,154, 66,
+  5, 78, 46,215,241,191, 13, 77,132, 24, 69, 72,146,205, 99,254,217,241,171, 28, 79, 12, 15,158,156, 70, 67, 27, 19,163, 64, 73,
+211,171, 48, 26,208, 44, 22,134, 63,254,193,143,248,219, 39,103,220,117, 61, 15, 30,159,198,200,224,177, 65, 73,210,176, 49, 89,
+ 42,120,201,153,201,240, 72,110,  2, 63,170, 50,110, 20,130,169,148,188,220,  7,228,208, 32, 49, 52,190,229,  0,  9, 89,206,203,
+194,177, 25, 28,157,207,216,132,192,191, 62,233,120,210,119,  4, 83,194,172,140,199,110,189, 37, 72,135,206,143,248, 48, 72, 46,
+  7,248,100,176,172,183, 17,181,105,234, 26,134,192, 36, 19,116, 78, 32,114, 77, 70, 12,136,154,168, 12,165, 20, 42,192,205, 16,
+ 19,178, 30, 53, 61,170,115, 72,118,133, 93,125, 65, 65,127,182,176, 51, 88,196,182,129, 46,217,127, 75,  5,185,185, 74,236, 10,
+181, 99,179,220,178, 21,176, 10,158,185, 17,  8, 93,176,178, 61,103,182,229,124,112, 88,109,120,191,239, 80, 66,240, 68,  9,206,
+154,150,117,240,216, 44, 99, 93,183,100, 97,192,123,168,155, 14,183,109,168,140,138, 54,202,131,229,100,179,230,108, 91,211, 52,
+ 13, 19,107,163,211,156,181,  4, 15,153, 49,220,152, 78,184, 49,155,112,108, 12,151,131,199,202,128,168, 27,222,111, 55,132,161,
+ 33,244, 45,222, 89,232, 26, 66,189,134,243, 83,196, 96,225,228, 28,218, 22,177,169, 17,146,  8,179,135,164,  6,217, 47,232, 95,
+151,113, 46, 71,211, 31, 15,133,137,207, 82,239, 88, 26,131,234,182, 60, 54, 25,175, 14, 53,181,201,185, 59,180,204,148, 96,105,
+123, 78,156, 67,234,156,239,248,150, 75,239,249,168,109,  8, 30,222,146,146,133,144, 92,122,199,155, 38,227, 87, 38,134, 91, 38,
+199,168,128, 17,154, 75,223,115, 87,104,156,208, 17,189, 82, 89, 42,206,246,249,104,165, 73,211,186, 50, 96,219,196, 93, 73, 12,
+246,253, 24,242,167,  2, 89, 82, 16,216,215,217,231,107,253, 12,  4, 47,159, 46,246,254,255, 11, 69,221,185, 47, 46,232, 87, 15,
+197,  4,139,  7,249,197,112,201,213, 30, 34, 60,221,  5,238,235,112, 71, 25,149, 25, 63,167,255,238,252,110,210,145,137, 72, 39,
+ 45,211, 87,111, 49, 45, 50,154, 39,235,100,237,103,119, 48,116,231,119, 18,170,241, 53, 23,147,  4,131,202, 29, 84,237,159,121,
+152,231, 19,236,108,198,237,131, 35,148, 16, 56, 31,184,216,108, 56,171, 59,148, 86,148, 74,113, 52,201, 40, 77,134, 86, 10,239,
+ 28,219, 97,203,197,182,230,193,170, 78,177,166,176, 88, 20,188,116, 88, 50, 47, 74,140,201, 98,230, 60,130, 27,  7, 51,126,251,
+ 87,191,197, 98, 58, 99,106, 20,239,222,219,240,206, 47, 62,196,214,107, 56, 59,121, 46,188,251, 66, 59,165,249, 20,200,120,237,
+199, 63,224,215, 95,126,157, 91,179,  5, 65, 58, 90,215,209,124,250, 16,252, 38,237,206,139, 84,204,211,241,108,235, 72, 34, 28,
+139,184, 20, 17,150,203,205,206, 11,249,139, 46,246,241,220,143,146, 77,253, 12,194,226, 71,123, 95, 19,111, 68,157, 39,107,224,
+144, 98, 99,137,134, 67, 38,143, 77,217,200,  7, 48, 69,108, 20,117, 98,144, 79, 77,146,170, 40,200, 21,114,146, 35,180, 66, 26,
+ 69, 24,207, 33, 41, 48,104,176,241,223,140,112,154, 78, 48,254, 32,163, 49, 81,110,146,244,164,139, 23,135, 78,202,129,231,133,
+  1,233, 81,159,191, 87,216, 71,207,234,103, 31,120, 34, 77,235,227,199,118,205,201,199,159,238, 96,127, 66,108, 88,143,103, 60,
+201, 43, 78,135, 45,157,181,208,109, 34, 84, 58,254,204,131, 67, 94, 91,104, 50,163,  9,  1, 62, 89,246,108,181,129,213,  5, 76,
+230,208,213,241, 61,  8,193, 31,190,254, 38, 63,124,227, 85, 74,239,184,215,173,232, 78, 19, 92,218,237,145,199,140, 70,100,154,
+251, 23, 45, 31, 46, 31,241,192, 76,184, 11, 44, 55, 13, 97,179,141, 58,111, 41, 63,159,130,102,123, 66,208, 28, 21,240,134,210,
+188, 81,149,188, 49,159,210,121,203, 13, 37, 81, 46, 66,157,153,146, 76,117,134,240,150, 30,144,125,205, 79,159,156,240,111,206,
+ 59, 30,116, 77,132,221,117, 70, 16,  6, 42, 77, 48, 18, 46, 47,217,108, 46,121,141,130,207,182,  3,125,221,208,116,  3, 85,219,
+192,118,197,145,148,  8,153, 81, 77, 12, 90, 72,188,130,  3, 64,104, 69,142, 96,130,128,161, 37,195, 33,133,224,162,173, 81,131,
+101,164,  8,236,255,217, 47,242,159,219,185,251,184, 99, 23, 46,128,214,136,210,196,128, 35, 37, 16,237, 16, 55, 78,118,224,210,
+ 57, 30,116,  3,109, 24, 56, 13,142, 51,111, 49, 66,240, 81,223, 48, 17,130,143,189,227,209,170,166, 53, 37, 79, 54, 75,250, 16,
+168,125,207,196, 69, 87, 75, 97, 29,167, 67,199,114,187,165,173, 59, 62, 93,157, 51,244, 29, 67,112,172,251, 45,166,219,112, 83,
+ 40,108,146,241,137, 44,103,114, 48,141, 54, 17, 82,112,152, 25, 30,174, 87, 56,215,243,176, 27,168,235,109,188,103,150,231,132,
+203, 11, 56, 95, 34,150,107, 56,189, 68,132, 14,209, 70,164, 70,132, 30,132, 65, 40, 31,101,138, 62,161,114,163, 84,245,235, 32,
+131,222,167,240,149, 68,  0,237,134,132,140,246,116,194,131, 13, 92,106,197,118,179,129, 32, 89, 91, 71, 23, 28,232,156, 31,251,
+134, 11,149,241, 27,153, 96,134,226,183, 84,148,159, 86, 67,205, 45,161,208,120,126,101, 58, 97,145,130,210,182, 67,199, 84, 74,
+126,178,105,  8,133,142,210,183, 34,135,249, 60,145, 92,247, 82, 63,159,154,214, 83,243,210,182,113, 88, 24,119,227,157, 77,255,
+205,255,191, 52,228,202, 47,159,128,191,228,247,252,195,155,207, 24,189,199, 90,126,166, 83, 82, 50, 86, 94,147,168,255, 50, 61,
+221,195, 23,  9,241,247,222,138,251,130,130, 62,194,223,201,  4,  4,201,206, 46,118,172,112, 87, 38, 49, 22,  6,205,230,231,119,
+227,  3,121,219, 38,210, 83,218,151, 42,187, 11,132, 65,238,153,181,216,120, 97,132,  4,155,116,225,105, 67,  1,128, 97,205,198,
+ 89, 92, 80,180, 22,214,173,227,164, 30,144,  8,202, 76,113, 80,228, 20, 38, 50, 97, 91,107,  9, 56,214,109,199, 69,215, 19,172,
+ 67, 40, 13,165,138,164,184,162,136,161, 33, 16, 67, 36, 92,203,195,179, 53, 39,203,142, 42,239,120,184, 28,176,206, 38,162,158,
+251,  6,114,182,221,199,244, 55,190,195,183,230, 11, 38,170, 98, 54, 59,226,120,113, 72, 46, 13,215,219, 25, 85, 46,248,243,247,
+ 62,130,173,141, 59, 89,246,229,107, 73,106,214, 63,109,168,195, 36, 17,209,244,151,152, 42,140,231,107, 60,189,227,215, 58,157,
+171,174,  7, 61,219, 17, 42,100,202, 35, 38,201, 25,221, 22,156,137,133, 93,164,140,248, 60,201,178, 72,205, 93,110,226,142, 44,
+207,200,178,216,100, 41,160,144, 26,171, 28,181, 21,228,165,166, 27, 18,146, 52,155, 68, 63,245, 73, 30, 97,245, 38,105, 75,171,
+ 50, 90,  6, 75, 29,201, 67,121,145,222, 67, 27,157,232,122,  3, 19,226,123,126,170, 27, 79,124, 15, 29,167,221, 88,224,247, 59,
+152,189,181,144, 75,  1, 16,227,234, 98,108,112,198, 99,145,103,209,140,105,179,129,195,109,116, 54,211,  9, 45, 40,202,168,195,
+159, 86,240,248,140,119, 57,230,222, 12,100,110, 88, 41, 13,155, 75,152, 30, 64,187,141,123,116,239, 97, 93,243, 89,215,113,116,
+190,229, 51,159,179, 12, 42,110, 49,106,251,244,121,243, 50,230, 84,219,158, 63,255,236,130,197,225,171,172, 79,207, 98,255,145,
+206,249, 83, 83,250,222,159, 80, 47, 89,103,146,249, 97,193,119, 23, 37,153,144, 56,165,249,100,123,193, 91,197, 33, 70,121, 38,
+147, 25,222,246,220, 12, 14,143,196,245, 43,190,181,189,228,238,234, 18, 83,205,  8,179,107,  4,100, 52,192,201, 94, 38, 20,115,
+130,235,248, 23,179,156,191,189,247, 87,188, 89, 45, 88,150,135, 20,229,140, 39,237,150,107, 66, 64, 89,198,185, 91, 43,180, 20,
+ 76, 27, 79,143, 99,129,192, 23, 19,194, 48,144, 87, 71, 84, 66,113,190,174,209, 38, 39,198,194,124,126, 34,223,111, 84,174,222,
+ 87,250, 44,198,247,190, 93, 19,130, 36,100, 10,170,138,160, 12,225, 72, 35,122, 75,216, 52,132, 77,207,210, 57,254,109,231,249,
+241,177,229,194, 43, 62,212, 27,174, 77, 42, 62,114, 27,200,166,108,125,160,  8,209,204,103,211,110,232,124,192,234, 14,113,182,
+230,237,197,  1,178, 31,168, 76,198, 59,219, 19,174,137,156,114,176,156, 13, 27, 46, 29,220, 15, 45,101,223,112, 92,206,177, 69,
+197, 76, 11,182,155, 22, 93, 21, 56, 37,176, 93,135,148,154,135,221,192,106,216,144, 97,105,235, 21,172,215,136,101,  3,171, 21,
+ 65, 14,136,145, 83, 50,158,215,222, 35, 84, 15, 72,  2, 30,161, 36,193,181,105,205,240,245, 72,175, 97,188,231, 85,  3,107, 29,
+137,168,125,  7,  7,  7,177,192,151,  9, 82,207,243,120, 47,200, 36,237,180, 45,179,162,228,147,182, 97, 41,  4, 71,153,226,227,
+ 65,114, 68,203,185, 87,188,149,  5,250,208,209,175, 47, 97, 50,101,166, 21,107,215,115,210,245,120,145, 86, 35, 34, 68, 57,107,
+211,195, 75,215,225,108,147, 34, 82, 19,172,222, 15,177,144, 15, 22,244, 38,222,159, 87, 38, 97,123, 70,101, 90,255,242,122,120,
+173,191, 24,250, 15,207,148, 59,251,143,117, 82, 31, 39,112,165,227,222, 81,238,125,125, 53,229,176,251,108, 71, 93,174,253, 18,
+182,160,125,250,107,255,140, 92,192,237,193, 33, 87,242,163, 44,254, 78,108,100, 99,187, 36, 53,112,  9,234, 80,196,  7, 38,169,
+ 83,243,118, 23,252,146,233, 84,188,211,207, 22, 68, 63, 95, 98,224,253,231,100, 87,179,  3,202, 42,167,115, 61,237, 48,176,238,
+ 26,122,219, 51,211, 25,135,121, 78,145,101,  8, 33,105,135,142, 77,219,114,110,123,150,109, 79, 24,  2,170, 52, 28, 87, 21,  7,
+147,130,194,228,104, 37,233,251,129,203,182,225, 73,189,225,238,197, 25,205, 70,242,201, 67,199,187,159, 62,225,253,187, 31, 80,
+169,128, 83, 57,109,239,  9,205,234,235, 23,247, 55, 94,225,159,254,202,247,185, 61,191,198,205,195,235,204,103,  7, 44, 14, 14,
+ 40, 76,134,243, 61, 77,187,228,211,229, 18,206,151, 59,153,213,216, 84,133, 16,215, 20, 89, 58, 31,253, 30, 52, 47,229,231,143,
+207,243,246,248,114,239,239, 30,200, 85,156,184,155, 77, 34,160, 16,247, 89, 56, 80,147,  8,187,155, 44,157,184,116, 30, 77, 74,
+200,209, 58, 58, 66,205,242,120,141,149,  5,224,  9, 62,112, 84,229, 87, 15,236, 76, 38,171, 77, 31,  8, 66,197,189, 95,112,105,
+ 98, 78,136, 81,174, 83,140,162, 74,193, 65, 99,196,111,136,223, 23, 33,238,214,242, 34,222,149,251,124, 17,159,184,  2,  9,118,
+140,215,244,190,209,254, 30,203,118, 68, 61,174,162,113,247,110,114,159, 16, 16,159,194,136, 38, 51, 56, 92, 64, 62, 69,  9, 65,
+ 38, 21,110, 52, 81,217,180,145,244,119,185,161, 47, 10, 58,147,208,132, 50,143,238, 91,101, 21,247,128, 58,114, 33,206, 53,188,
+ 43, 53,247,187, 26,164, 67, 60,124,188, 11,164, 72,240, 59, 18,196,104,  0,213, 91,218,161,142, 43, 47,173,  9, 82, 71,118,116,
+146,227,125, 62,163, 92,114,205, 24,126,235,230,148, 91, 89,193,196,100,  8, 37,249,197,208,113, 32,161,202,231,  8, 33,112, 56,
+132, 16,244,222,177, 28, 58,154,190, 67, 52, 27,182,167,151,216,205,217, 21,124, 19, 76, 73, 40,103,252, 15,175,220,230,247, 94,
+122,137,227,233,130,127,253,228,132, 91, 65,112,186, 61,231,150,130,163,108,194, 52,211,148, 69,142, 29, 98,242, 95, 41,  4, 57,
+ 62,242, 96,241, 20, 89,134, 14,138,105, 81,177, 40, 51,110,230,146,187,203, 14, 29, 28,198, 75, 12,158,241,113,174,158,  3,199,
+ 63,245,199, 59, 16, 30, 49, 36,110, 78, 89,112,109,118,192, 31, 93, 95,240, 79, 94, 57,230,164,222,178, 94, 54,  4, 60, 15, 55,
+ 53, 23,214,115, 62, 88,238,213, 29, 91,165,248,108,121, 70,231,  6, 30,172,207,104,112,172,173,101,109, 91, 30,116, 53,107,231,
+248,219,139,115, 38,194,242,168, 94,242,139,186,229,172,222,114,183,169,209,190,227,175, 79,206,249,216,195,208,173,208,120, 78,
+240, 88,  4, 74, 72,154, 20,108,243,222,118,203,123, 23, 75, 62,232,182,224,  2,153,237,113,193, 98,211,115, 82,180, 93,124, 15,
+  1,132, 13,136,144, 38,115,107, 35, 31,193,249,104,123, 19, 66, 44,252, 95,115,205, 23,158, 69,109,187, 38, 93, 88,169,154, 41,
+ 17,  7, 41, 49, 18,107,137,114, 81,231,248,149,178,160,238, 26,222,158,228,209,138,  2,207,143,139,156,247, 26,203,143,171,156,
+141,237, 41,165,164,177, 14,221, 53,  8,107,121,210,183,252,207, 23,203,216,168, 15,  9,125, 29,  3,190,180,230, 55,111, 86,252,
+209, 43,215,248,209, 75, 71,188,121,243, 58,191, 88, 28, 50, 76,170,221,250,117, 24,146, 12,186,216,153,133,  5,183, 99,194,127,
+227,130,254, 69,204,119,190,160,182, 61,127, 90,255,135, 45,234,251,147,202, 24, 87,122,213,  2,139,120, 34,145,241,160,141,208,
+249, 24,146,178,127,209,248, 17,174,120,246,161,200,231,119,218,159,131,119,109,124,248,155,113, 63,158, 14,170, 86, 73,146, 38,
+227,  5, 52,  6,200,140,110, 98, 97,188,123,243,157, 14,123, 31, 17,240,246,249,  5,171,172,200,167, 37,210,  7,182,125, 67,215,
+247,  4,235, 57,154, 22,148, 89,129,146,130,193, 90, 90,235, 56,111, 59,214, 77,135,245,  1,101,114, 38,153, 97, 90, 26, 38, 69,
+142,137,157,  6, 77,215,178,234, 91,206,215, 61,171,186,230,195,123,247,120,247,222,  7,172,150,143,184, 61,187,201,245,234,  6,
+139,131, 99,238, 93, 60,138, 19,217,139, 94,116,142,136,138, 28, 46,120,229,218, 33,185,202,168, 38,115,132, 18, 20, 89, 78,179,
+169,145, 74,240,100,249,132,187,255,254,189,248,158, 71,214,102,  8,187,162, 62,186,188, 57,191,251,220,245, 79,147, 12,191,148,
+108,177,199, 33, 83, 73,199, 63, 50,229,139,196, 95,240,233,156,185,  4,201,211,165,203, 33,196,134,173,154, 68, 41,215,124,186,
+ 75, 94,146, 50, 18,227,132,231,104, 82, 82, 24,141, 70,178,200, 13,141,117, 84, 82, 99, 69,140,210,116,  4,130,  8,228, 69,137,
+ 27,229,143, 46,105,218,125,114,155, 35, 21,115, 41, 83, 66,148,221, 93, 67, 90, 69,251, 96,189,111,176,227,119,133,221,219, 47,
+  0,206,252, 30, 73,102,143,131, 48,202,227,132, 72, 65, 66,201, 85, 14, 17,191, 95,205,225,232, 26,210,100,  8,169,240, 12,132,
+182,129,139,243,216, 92,108,155,136, 44,228,102,151,239, 60,164,  9,108,232,162,171,222,232,156,104,109, 90, 79, 36,243,165,166,
+ 67,156, 62, 77,184, 20,222,131, 23,  8,147, 26,157, 54, 53,186, 87,134, 69,146,224,159,247,160,247,172, 85,198,143, 22, 37,183,
+178,140,193, 59, 86,222,113,215, 90, 30, 73,207,235, 89, 69, 97, 74, 10, 97, 48,125,131,232, 26,238,213, 43,  6,239,169,  6,207,
+  4,203,242,124,139, 61,191, 32, 20,146,144, 25,190,149, 79,249,195, 87,111,241,202,193,148,  7,155,150, 63,221, 52,124,178,189,
+196, 11,205,194, 24, 54,193,113,123, 94, 48, 56,136,246, 51,129, 74,128,146, 10,165, 37,  2,129, 18,138, 73, 89,226,132,228,184,
+156,242,250,226, 26,223,191,177, 32, 47, 52,219,204, 68,138,136,206,209,153, 68,  7, 80, 94,162,240, 95, 80,220, 53,210, 68, 18,
+176,212, 38, 18,232,108, 64, 20, 25,191,127,115,193,111,223,126,149,219,249,132,197, 68,243,215,143, 46,162, 61,240,166, 37,116,
+125, 92, 87,172,150,244,231,231,132,174,167,175, 27,194,164,164,111,107,250,203, 51,  6,219, 17, 54, 43,134,182,198,  5,203,189,
+237,154,251, 23, 23, 44,187,142,243,174,229,162,111,185,223, 54,184,109,139,191, 92,242,241,186,227,253,118,205,153,180,124,108,
+123, 42,169,249,120,187,225,253,229,146, 63, 59,189,224,189,190, 70,121,129, 12, 22,129, 99, 18, 60, 70,  9, 26,235, 35,225, 47,
+ 72, 68,202, 11, 23,222,199,226,206,110,125, 38,246,214,104, 79,113, 11, 94,224, 67, 60,143,195, 51, 38,223, 73,253,116, 83,172,
+178, 84, 84, 13,167,214,242,135,243,  2, 23,  2,183,243, 28,225, 29, 39,125,195,175, 84, 19,126,178,217,240, 86, 49, 97,139,196,
+ 13, 45,189, 27,248,183, 79,158,240,201,106,195,249,186,137, 78,139, 38,145, 24, 67, 34,246,  5,199,239, 44,166, 84,198, 80,228,
+ 19,130,210, 12, 62,240, 88,201, 56, 24,164,192,159,100,234, 30,239,225, 33, 26,204,124,110,136,252, 38,220,178,103,235,215,184,
+190,179,126,103, 95,254, 37, 14,115,255,176, 69, 93,250, 52,245, 36,131, 15,149, 58, 51,173,226,131,114,140, 59, 53, 41, 51,221,
+166,233, 56,164,206,109,255, 13, 93,217,234, 61, 51,165, 91,255,229,140,121,147,165, 40, 77, 31,  9, 84,214,239,152,235, 87,230,
+251, 54, 22, 18,233,175,148, 80, 41,104, 45,165,180,132,103,136, 17, 95,177, 91, 49, 37, 93, 86,144,233,192, 96,  7,218,174, 35,
+207, 36,243, 60,195,168,152, 54,212, 59,199,186,111,185,236, 59,186,244, 30,170,162,224,160,202,152,  8,137, 17, 18, 99,  4,222,
+ 90, 86, 67,199,227,101,205,166,237,226, 36, 60, 56,172,134, 69, 57,225,229,227, 87,233, 66,143, 14,154,207,214,231,216, 71,247,
+ 94,108,159,238, 72,187, 49,  1,237,128,184, 62,165, 84,134, 82, 79,208, 89,137,210,130,174,110, 56,191, 56,229,127,255,249,207,
+225,241, 19,110,254,225,239,178,253,244,222, 14,  5, 81,  9,  5, 25,189,142,159, 37,139,140,136,140, 20, 41, 17,206, 63,135,156,
+ 39,247,214, 49,236, 38,197, 44, 33,  2,117, 29,247,230, 67,212, 21, 71, 75,222, 42, 73,189,242,248,123, 22, 21,243,151,110, 83,
+ 84, 37,106, 90, 49, 56,155, 36,148,130, 92,107,148, 16, 84, 58,202,127,150,189,103,150,105, 58,239, 81,233,241,212, 91, 79,105,
+ 20,109, 61,196,253,153,243, 41,170,215,197,233,252, 74,155,238,211,132,110,227,181, 45,243, 88,120,135, 68,216,220,183,130,220,
+ 47,236, 90, 62,243,246,237,211,135, 96, 60,158, 87,246,197,236,153,221,164,239, 41, 21, 77,113,164,128,195, 25, 97,178, 32,216,
+150,128, 76, 49,172, 77, 92,  7,248,116, 45,219, 49,125, 45,161, 38,219,246, 10,206,164,245,177,  1,176, 46,229,170,155, 72,146,
+ 11,  1, 86,235,232,136,183,255, 80, 30,123,106,163, 16,117,138, 57, 86,154, 48, 47,248, 87,111,220,160,156, 21,220,123,178,138,
+123,211,103, 31,232,193,161,181,166,202, 12,107,  2,247,189,231,  3,235,248,179,206,242,123, 74,176,208, 37,  6,137, 30,  6,124,
+187,226,129,179,  8,235, 17,214, 81,122,193, 66, 64,237, 29,221,163, 11,  2, 45, 47,107, 56, 44, 42,150,125,207, 95,157, 46,249,
+249,122,  9, 82,210,218,150,  7,117, 67,237, 45,219,214, 82, 59, 71,145,151, 84, 10,114,  4,131, 15, 84,  1,156,119,136,114,130,
+159, 78,169,202,  9, 89, 57, 69, 34,184,105, 42,126,253,198,203,252,218,205, 91,188,253,250, 29,110,221, 56,228,177, 46, 17, 86,
+161,133, 67,  5,143,242, 30, 53, 41,162,171, 30,196,198,202,232,232,176,151,204,154,132,237, 17, 14,138,185,225,213,201,156, 78,
+ 74,238, 14, 61,239, 73, 79,216,118,176, 90,198,107,121,187,133,186, 35,244,  3, 97, 91, 19,250,158,112,255, 17, 56, 75,184,220,
+ 64,169, 97, 91,227,237,  0,221, 64,232, 90,252,166, 33, 88,143, 95,175,  8,117,135,111, 45, 97,179,193,183, 22,191,185,100,115,
+126,206,253,117,207,167,131,227,223,212,151,252,249,106,205, 79,234, 53,143,188, 77,251,253,154, 82,  4,114, 31,200,188, 37,243,
+ 48, 87,130,181, 20, 41,201, 90, 34, 19,138, 42,242,  9, 34,215,187, 70,115, 68,110,158, 41,214, 95,172,239,255,170,194,174, 99,
+209,154,148, 41, 82, 59,139,240,119, 57,137,141,124, 55, 64,105,120, 75,106,126, 59, 23,104, 83,160,156,101,229, 44, 62,120, 14,
+148, 97, 35,  5,175,105,205, 25, 48,117,150,121, 94,112,210,118,220,145, 18, 63,116,116,109,207,182,238, 96, 91,167, 97, 36, 42,
+ 64,254,224,120,194,203, 89,134, 86, 25, 94, 40,140,214, 40,229,121,191,115, 73, 13, 35, 99,211,170,178, 36, 97, 78,247,239, 40,
+171,126,161, 97,229, 75,184,200,242,139,  8,114,114,111,112, 77,181,238, 57, 48,255, 63, 92, 81,207,179,120,178,236,176,179, 33,
+ 29,109, 67,179, 44, 62,176, 61, 41,251, 60, 21,216,204, 36,194,211,222, 67,244,138,109, 56, 78,241,233, 11,251,  2,164,  5,173,
+119,133, 65,154,221, 46,211,167,194, 48,234,217,247,131, 96,252,254, 78, 35, 77,162,146, 29,170,240, 34,154,199, 76,225,242, 41,
+ 94,198,160, 12, 47, 29, 19,101,226,164, 40, 21, 62,  8,186,193,114,209, 91,182,221,  0,  8,230,  7, 83,110, 47, 14, 40,181, 65,
+  9, 16,  4,164,247,116,206,178,106,122,206, 86, 13, 97,240,  8, 31,146,116,  2,124,166, 17, 42,144,235,156,179,230,146,251, 79,
+ 30, 65,187, 34,188,136,193,139, 76,197,214, 73,232, 44,151,171, 37,159, 14, 61,199,101, 78,158,231, 12,221,192,166,105,184,127,
+241,152,135, 31,222,  5,103, 99,152,194,197,242,105,  6,232, 87,161, 52, 34,101,222,203, 47,131,173,198, 48, 29,181,135,213,165,
+  9,220,217,200, 92,109, 54,241,198, 31,145, 19, 63, 58,178,233,216, 20,222, 56, 38,207, 20, 90,104,132,  0, 43, 37,193,182,160,
+ 21,185, 84, 84, 70,145, 41, 69, 99,  3,149, 81,180,214,225,131, 39,136,128,199,145,107, 73, 63,  4,156, 27,253, 14,210,227,201,
+118,169,  1, 10,145, 57,158, 21,169, 80,219, 36, 61,235,227,235,180, 54,146,  7,191,112, 90, 29,215, 73,123,219,230, 60,139,147,
+244, 62,231,100,148,124, 62,187,190,130,216,160, 24,179,147,111, 22,121,108, 34, 84,130,  5,109, 23, 97,240, 85, 27,119,135,117,
+ 15,198,240,218,141,  9, 63,200, 53,175,101,138,187,103,171, 68,144, 75,122,117,124,124,144, 42,147,124,  5,178,200, 23,184,184,
+252, 92, 81,199, 39,111,251,193, 38, 36,109,128, 44,231,191,127,227, 22,191,119,227, 14, 70,195,255,125,214, 68,159,  0,118, 22,
+171,130,104,157,251,112,208,104, 41, 89,  3, 15,156,229,190,147, 88, 39,184, 27, 90,254,137, 41, 41, 48, 40,153, 81, 44,174,241,
+242,209,109,174,103,134,101,223,226,  8,100, 88, 94, 54, 26, 41,  5,121,215,241,160,109,  8,126,195,191,127,248,144,127,119,118,
+ 70, 24,122,130, 34,154,214,100,  6, 79,108,  2,122,239,112, 54,112,123, 82,176,181, 45, 55,140,161,243,  1,147,229, 44, 14, 22,
+ 20,179,  9,250, 96,134, 51, 26, 33, 13,147,114,130,247,129,239, 29,220,224,  7,183, 94,229,187,179, 27,252,250,209, 13, 38,115,
+205, 61, 15, 90,101,168,190, 71,117, 22, 57,153,160, 76,134,202, 75,228,224,144,194, 34,131,138,133,125,176,208,212, 60,217, 88,
+154,210,177,148,129,159,212,  3,219,224,160, 72, 43,139,117, 29,175,105,219, 39,169,151,139,150,191, 67, 71,232, 60,129,  1,214,
+ 13,161,110, 97,121, 25,125,197,183, 29,161,183,132,224, 99, 19, 48,244,248,139, 19,130,235,240,109,131,239, 26,188,115, 49, 22,
+183,174,241, 78,224,134, 26,239,  6,  6, 63,196,201,223, 65, 62, 88,140,112, 84, 82, 82, 10, 75,174,224,192, 40, 90, 33,152, 40,
+197,171, 83,205,235,  7, 83, 14, 22,  5,213,193,140,165,154,166, 20,199, 72,  6,125, 17,199,202,231, 21,120,  1,  8,167,227,176,
+ 52,201,160, 92,196,235,149, 16,249, 33, 77, 90, 35, 45,166, 16, 36,255,201, 52,  3,161, 88, 54, 43,166,249,148,206,123,110,231,
+ 37,101,128,119,235,129,137, 49, 84,174,231,157,198,115, 93,  6,180, 18,  4,  9, 55,164,228,219, 18,254,195,233, 38,230, 62,116,
+117,202,132,  8,220,154,230, 28,165,235,201, 75, 73, 23,  2,119,155,129,251,222,238,236,165,125, 34,216,230,121,188,239,138, 34,
+162,129,243,121,228,173, 16,146,174,157,167,172,194, 95, 88,158,253,133, 68,185,125,101, 12,255,128,240,123,158,197,130,169,244,
+142,249,172, 18, 44, 55,178,205,199,169, 67,232, 61,246,249,222,127, 27,255,222,165,128,149,126, 47, 42,245, 89,221,158,231,133,
+172,244,174,138,138, 79,  5,217,201,157,143,182,142, 25,232, 87,233, 56,210,238,177, 94,246,150, 64, 82, 60,141,246,191,168,100,
+ 33,159, 35,143, 14,210, 84, 30,223,227, 52, 87,104, 41, 81, 41,138,117, 99,  7,182, 67,207,208,122, 80,130,235,243, 57, 71,147,
+ 42,234,124,189, 71,138,128,  7,154, 97,224,116,219,211,215, 45, 34, 88,194,224,147, 22, 50,208,181, 29,151, 67,207,164,148,100,
+ 42,195,148,154,229,221, 79, 63,175, 48,144, 50, 22,143,253,239,187,212,185,202, 84, 24,234, 14,206, 46,184,151,231, 76,144,156,
+111, 86,156, 44,207,249,155,191,251, 32, 26, 74,120,  7,143,159,124, 13, 13,230, 30, 95, 98, 44,238, 94,124,201,201,211,169,113,
+218,219,194,121,226,106,102,244,223, 55, 69, 58,159, 33,201, 18,211,215, 62, 64, 38, 49,147, 10, 35, 21,  2, 65,125,118,114,229,
+224, 87,102, 17,130,239,211,164, 17, 66, 96, 98,  4,141, 15,248,224,232,186,  1,161, 37,110,136, 69,128, 33,217,  4, 15,125,212,
+186,143, 54,179, 46,233,187, 73, 49,173, 17, 82,136,222,211,202,126,193,148,254, 12,204, 14, 48,159,237,246,237,106,239, 88, 93,
+ 25,152, 36, 72,220, 36, 56, 82,236, 61, 66,157,138, 83,117, 31,226, 52, 83,229,200,172,136, 92,  0,153,126, 94,221,196, 66, 61,
+137,196,190,183,230,113,191, 60, 23,130,109,102, 88, 95,174,118,153,  7,235,109,202,143,111, 99,166,188, 78,146,189,109,106, 16,
+158,125, 40,143, 48,236,136,204,204, 42,126,116,235, 58, 47, 85, 11,222,223,174,248, 15,171,250,106,191, 62,178,252, 69, 90, 63,
+  8,111, 89,107,131, 45, 52,141,214,156,  9,141, 66,176, 14,240, 61, 45,184, 61,185,134,204, 10,212,157, 59,152,197,156, 60,155,
+242,224,226,  4, 31, 44,  7, 74, 51,147,130, 55,203,140,215,202,156,235,210,243,127,220, 59,229,241,227, 75,252,102, 21,237, 71,
+135,142, 16,162,197,232, 92,105, 58, 33, 41,164,230,187,121,137, 15,129,133, 20,172,250,150,105, 86, 48,  5, 68, 81, 48, 63,158,
+146, 77,178, 56,109,103, 57,189,  8, 92, 95,204,249,246,241,130,163,107, 11,110,220, 62,230, 80,230,220,206,230, 76, 75,197, 71,
+ 97, 64,161, 80, 38, 71, 57, 17, 31,117,193, 35,165, 68, 74,141, 20, 17,198,150,193, 71,131,154,190,225,209, 89,203,199,189,101,
+147,167, 18, 39, 53, 84, 69,242,187, 72,247,136, 73,205,235,120,111,217,100, 56,212, 69,171,209,224, 29,180, 53,161,111,  8,205,
+150,208,213,132,174, 37,108,214,209, 82,183,235,  9, 62, 58, 18,122, 51,137,141,234,182,195, 93,158,225,215, 91,124,231,240, 50,
+ 96,189,160,198, 98,221,192, 53,  1,194, 15, 72,  2, 19,169,240,222,242,189,210,240, 95, 30,207,249,227,107,115,126,255,240, 26,
+ 63,154, 77, 48,153,225,246,225,  4, 57,203, 57,247,163, 37,179,191, 50,185, 18, 95,241,231,115, 80,189, 75, 13,162, 54, 80,205,
+162, 71,196,232, 19, 18,136,182,175,101,206, 91, 70,179, 48,  5, 19, 37,184,165, 37, 51,157,113, 50,116, 92, 87,145, 39,240,211,
+174,231, 71, 85,  5,174,231, 49,146,183,164, 35, 87,138, 92,103,244, 67,203, 37,112,182,105,120, 83,122, 62,238,251,120, 95,116,
+ 45,116,150,207,250,192,237, 66,115,156,103,120, 60,181, 11,252,111,117,178,119, 29,146,124,109,180,181, 22, 10,180,230,237,227,
+ 25,255,217,203, 71,252,241, 75,215,121,179,202, 56, 62,158,241,137, 75,131,135, 74, 80,150,208,  9,233,245, 47,246,124, 28,239,
+117, 41, 63, 47,107,123,118, 74, 55, 89,180,191,158,204,254,158,139,186,214,159, 63,125, 89,130, 25,131,143,  7, 68,236,193,174,
+ 89,218, 89,200,189,221,122,199,206, 61, 43, 27,  3, 44,146, 65, 71, 72,108,224,111,162,189, 30,187,161, 76,197,  2, 46,147,  3,
+157, 75, 83,250, 78,147, 18, 11, 74,240,159,191, 34,189,142,210, 13,207, 87,104,145,159,165,146, 31, 17,166, 21,101,150,161,  3,
+  8, 28,165, 20, 40, 37, 17, 66, 80,187,129, 85,239,217,108,146,145,129,212,148, 69,134, 81,130, 64,192, 38, 18,203, 48, 56,206,
+234,142,198,245,248, 54,238,234,128,200,176,237, 99, 71,121,124,231, 14,191,250,210,247,185,182,184, 65,169,167,124,252,209,207,
+147, 17, 10, 59, 86,117, 72,244,165,253,  6, 73,142,133, 98, 12,198,137, 19, 88, 88, 45,185,127,178,228,254,217, 41, 39, 15, 79,
+226, 78,234,120, 17,163,104,151,203,175, 39,217, 16,123, 37, 33,124,149,109, 99,154,212, 71,231, 38, 33,119,180,171, 16,118,202,
+  5,183,137,208,187, 72, 70, 64, 87,251,111, 79,111, 29,117,219, 70,205,190, 84, 32,  2, 82, 27, 36,129,206,121, 22,153,166,245,
+ 46, 22,125,103, 49, 66, 82,183,129, 28,208,184,  0,  0, 32,  0, 73, 68, 65, 84, 29, 74, 73,218,110,192, 14, 46,158,228,113,183,
+109, 19,151, 66,166,137,125,244,130,247, 34,153, 14,117, 41,139,222, 62,205,122,127,222,199,124,198,175,254,193, 31,240,248,209,
+ 41,132,209,168, 35, 53, 46, 35, 41,211,167, 41,126, 84, 85, 36,203,214,  8,223,200,104, 97,156, 16,138,197,225, 34, 58, 33,203,
+232,187,142,119,209,202,210,185,200,242, 45, 11,242,105, 78,166, 36, 79, 20,124,120,186,142,205,208,208,197,227, 90, 76,162, 43,
+ 88,235, 96, 49, 37, 91, 28,242,223,188,114, 27, 76,224,241,147,243,157,213,237,243,166, 49,103,249, 64, 74, 50,  3,255,211,249,
+138, 49, 71, 65,216,  1,186, 52,217,203,241,118, 10, 12,237,128,152, 76, 64, 75,164,206,113, 82,161, 51,141, 99,224,123,213,140,
+108,122,136,190,113, 13, 89,228, 32, 13,225,244,132,204,  8,230,194, 50,211,138,185, 82,232,204,176,200, 12, 11, 45,168,115,201,
+106,  8,248,179, 21, 97, 85, 19,148,228,123,139, 41,  7, 69, 69,169, 20,223, 46, 42,110, 86, 26,229,  6, 30,146,241,170,214,216,
+ 48,176,177, 29,211,114,130,208,154,220,104,148,212,228, 70, 49, 59,156,112, 45,207,121,245,246,156,233,181, 25,249,180, 32,159,
+148, 20, 65, 83,  5,205,141, 34, 99,118, 60,229,177,  5,165, 99, 46,188, 42,203,152, 84, 55,184, 56,  3,100,  2,209,119,209, 94,
+ 55, 51,136,205,146,176, 94, 33,172, 39,100,  9,194,117, 46,162, 78,211,105, 92,167, 76,138, 88,212,159, 34, 89,122,130,247, 87,
+ 54,191, 97,252, 60, 90, 11,143,196,196,125, 25, 97, 86,225, 95,190, 78,200,115,124,211,225,189, 37, 88,139,239, 54,177,184,111,
+ 58,176,158,182,239, 49,161,167, 18,129, 74, 42, 58,231,152, 72,201, 15, 77,206, 43,153,225,118, 94,209, 75, 65,102, 10,114, 93,
+208,154,140, 60, 47, 40, 38, 25,143,145,  8,105,226, 42, 88,131, 72,215,200, 87, 21,245,171,207, 33, 93,243,215, 23, 28,127,251,
+ 22,119,174, 31, 80, 86, 25,235, 85, 23, 81,157,220, 32, 50, 67,233,  3,111,205, 75, 50, 37,105,132,228,193,208,242, 45,157,209,
+ 59,199, 52, 43,240,174, 39,179, 61, 70, 27, 50,  2, 23, 74,209, 15, 13, 77, 16, 28,232,156,123,219, 45,223,193, 82,235,140,  7,
+ 77,203,224,147,  4,175,107,193, 14,124,120,190,230, 47,215, 29,127,179,110,248,233,233, 58, 90, 79,143,  6, 89,146, 56, 96,250,
+116,255, 25,193,239, 30, 78, 56,204,115,150,110,160,200, 50, 10, 35,121,199, 19,159, 89, 90,199,232,102,157, 37,243, 42, 29,107,
+221,151, 33,166, 99,125,250,220,196,110,247,184, 95,251,232,175,129, 27,215,225,160,250,123, 46,234, 38,193, 40,201,200, 42,154,
+133,164,105,123, 92, 78,203,189,135,242,104,252, 50, 78, 40, 73,242,136, 74,134, 32, 54,196, 23, 63,116,105,127,145, 10,146,210,
+ 47,  6,123,127,209,129, 27,108,236,  6,197,222,208,164,216, 53, 14, 36, 86,190, 22,137, 21,191,199,134,119, 99, 76,107,130,  7,
+ 94,212,  9,111,114,200,252,248, 24,129,101,146, 75,140,242, 56,124,100,247, 58,199,186,115,212, 93,135,107,135,196,244,150,104,
+ 41, 48,193,209, 15, 29,189,115,212,214,178,234, 44,235,174,195,182,195,213,235, 18,128,200,116,252,119,147,138,215, 94,122,133,
+235,213, 13, 76, 86,112, 86, 95,114,247, 23, 31, 69,168,105, 60, 63,251, 27,118,241,108, 23, 57,198,165,250,167,  9,217,161,139,
+234,  0, 83,240, 43, 63,250, 46,223,121,229, 14, 55,174, 29,240,240,195,143,190,102, 83,181,231,219,251, 34, 50,144, 49, 28,101,
+156,236,199,159,163,203,136,  6,117,155,148, 31,224,162,243,147, 74,190,255, 58,105,228,101,154,114,198,244, 62, 29,139,157,147,
+ 16,188, 96,176,241,218,148,  2,250,161,103,  8, 34,230,195, 91,199,208, 38, 55, 40,153,174,  1, 45,210, 83, 75,199,130, 45,146,
+125,171, 76,174,117,210,199,137, 94,236,241,  8,244, 87, 68, 39, 10,201,226,206,109,206, 46,183,145,165,126, 37,135,244, 79,147,
+ 46, 71,119,195,177,161,185, 98,197,143,231, 44,178,171, 77,158, 33,179, 18,233,122,  6, 68, 84,  7,116, 67, 52, 83,202,  5, 52,
+150,203, 44,231, 51,161, 56,233, 92,132,240, 79,150, 41,174,210,239,216,188,125,  7,139,  5,255,237,183, 95, 99,158, 21,220, 44,
+ 51,254,234,222,195,167,144,135, 47, 44,238,131,101,216,214,252,188,177,145,183, 98,116,156, 40,148, 70, 12,109, 98, 76,239,184,
+ 64,  2, 79, 91, 91, 66, 53,165,204, 51,110,149,134,235, 70,211,216,192,129,214, 92, 47,166,228,243, 35,  4, 18,119,182,166,169,
+ 47, 89, 40,141,180, 45,  3,  1,171, 20, 83,165,232,165, 98,155,231,148,147, 18,189,200,241, 71,135,212, 50, 70,146,102, 58,102,
+ 40, 84, 69,206, 91,243,  9,139,188, 68, 21,  5, 10, 75, 45,  2, 97,176,116,195, 64,240,130,182, 29,232,188, 34, 47, 37,  7, 70,
+114,144, 25,142,139,140,163, 89,137, 73,134, 88, 33, 64,191, 29,152,152,140,151,138, 25, 55,204,140,107,243,130,108, 81,176,206,
+114,110, 29, 76,104,136,249,232,178, 40, 17, 14,230, 85, 73, 63, 54,255, 58,106,158, 51, 47,177,247, 79,119, 33, 83,121, 14,121,
+137, 88, 76, 17,179, 18,145, 25,196,186,223, 17,211,190,  4,222,126, 86, 97,112, 85,212,111, 93, 39, 28,205,241, 66, 17,156,199,
+ 55,245, 21,231, 50, 12,150,208,212,132,102, 11,203,134,165,135,163, 66, 17,  6,143, 15,158,204,121,126,115, 86,114, 36, 53,181,
+ 15, 28, 20, 83,164, 50,212, 74,161, 85, 70, 11,148,153, 65,105,201,105,153, 33,242, 28, 81, 86,  8,165, 17, 33, 32,148, 68,154,
+104,188, 35,210,179, 90,228, 25, 28, 94, 67, 28, 30,198, 93,121,176,136, 30, 56,152,160, 94,123,137, 95,125,233, 22, 71, 85,197,
+181,233,148, 70, 59, 14,231, 11,230,147,130, 44,203, 89, 43,197,171,153,228,251,210, 80,227,185, 99, 42, 30, 13,  3,179,204,240,
+184,221,178,200, 12, 66, 74,222, 93,111,249,118,150, 97,188, 71,  8, 77,214,111,249,133,115,188,157, 73, 54, 66,241,112,217,240,
+201, 42, 33,110,193,238,106, 66,215,195,182, 38,172,183, 81, 10,218, 15,145, 41,223,182,123,208,119, 68,157, 95,171, 12,223,153,
+149,  9, 84,150, 72, 41,233,172,227, 97,235,168,131,139,207,173, 34,169, 99, 50,179,147, 70,243, 21, 67,224, 72, 10, 31,229,129,
+227,122,249,139,212,220,186,128,195, 41,  8,241,247, 92,212, 71, 54,251,184,223, 20, 62,194, 43, 90,164,154, 62,230,  7,167, 68,
+169, 50, 89,116,138, 84,192, 77,250,247,109,138,229,244,105, 18, 26, 89,194,163,166,221,168,111, 78, 78,208,169,  0,122,145, 18,
+189,236,142,132, 39,210, 62, 83,134,221, 90, 64,239,  5,198,104,113, 21,121,249,149,228,184,253,143,163,107, 48,201, 40,101, 52,
+  7,109,236,144, 40,  4,  1, 31, 60,203,166,165,223,244,187, 59, 50,215, 84, 74,199,  7,146,115, 52,189,163,117,158, 85,211, 18,
+154,126, 23, 28, 50, 58,182,105, 73,118,120,196, 31,253,198,111,115,231,224,101,178,194,112,114,121,198,121,179,226,241,123,239,
+236, 38,226, 81, 46, 50,178,213,  3, 47,198, 70,215,121,100,240,191,114,131, 31,220,122,153, 42,203, 89,148,115,222,175,215,209,
+ 54,242,235, 20,246,175,115,220,198,130, 53,122,152,143,143,174,190,141,197,122,146,180,225, 58,237,180,188,125, 26, 21, 24,  9,
+118, 42,217,253,250, 72, 20, 11,214, 33,100,160, 15,150, 66, 43, 86,109, 79,102, 76, 12,246,176, 22,215,251, 24, 38,161, 50, 66,
+155,100,151,232,221, 42,105, 36,122,250, 17,253, 48,209,163,160,208,241, 97,161,242, 29, 34,245,101,197,221, 90,206,238, 61,129,
+119,207, 97, 49, 58,239,137,207, 91, 75,238,239,214,173,221, 37, 18, 38,201, 17, 93,  3,205,128,152, 79,176,  2,110,102,138,181,
+141, 54,161, 46, 36,249, 93,189,137,247, 99,158, 36, 57, 82, 70,116,103,211,166,169, 48,177,130,187, 20,106,227,  5, 47,189,114,
+204,180,156,242,225,106,205,167,203, 21, 44, 87, 95,205, 98, 30,108,132,220, 77,129, 40,242,184, 22, 40,242,132,102,116, 49, 20,
+ 70,238, 75,191, 44, 62, 47,184, 54,157,240,250,172,224,229, 44,231,102,102,232,252,192, 29, 85, 80,133, 12,177,109,241,151,231,
+208,111,232,130, 37,147,224,188,199,  7,193, 96, 50,106, 33,104, 76,198,153,214,132,108,194, 26,137,168,102, 76,102, 83,206,236,
+ 64, 40, 74,178,190,229, 90, 85, 33,165, 96, 27,  2,151,117,244, 75,183, 33, 71, 40,133,119, 29, 79,150, 23,116,155,158,118,109,
+ 41,243,140, 10,193,225,180,100, 90,154,120, 41, 57, 79,115, 57,208, 39,120, 59,211,154,227,233,148,111,205,143,249,222,244, 26,
+111, 47,110,113,123,122,196,203,211,  9, 55,143, 22,212,194, 33, 39,  5,181,208,152, 98,130,247,154,144, 25,130, 80, 88,223, 69,
+ 47,129,179, 39,136,218, 71,134,121, 89,198, 63,197,  4, 81, 76,224,232,  0,145,149,  8, 55,230, 99, 60, 77, 76, 11, 95, 81,224,
+131, 29,160, 19,132,186, 33,180, 29,193,  8,194, 96,241,251,255,214,185,180,199,135,199,219,  1, 81, 72,214,157,197,122,199,117,
+ 41,185,157,229, 40, 41,144, 74,210, 74,205, 35,  4,191,112, 30,167, 51,156, 27,168,138,  9,159,166,103,163, 40, 51,196,193, 12,
+ 49,155, 35,103, 51,132, 48,  8, 93, 32,130, 64, 28, 28,114,227,135,111,242,195,111,191,206,173,227, 35,166,243,  9,231, 33, 54,
+201,226,240,136,183, 95,191,205,141,197, 97, 92, 55,  6,207,171,199,175, 48,175, 38,124,251,198,171, 28, 22, 57, 88,248,171, 65,
+114,205,120,142,100, 70, 23, 44,183,164,226,103, 77,199,247,170, 41, 63, 91,109,121,105, 82,112, 83,192,133,247, 12,118, 64, 41,
+197,165,115,188, 42,163, 64,227,227,245,134, 62, 56, 30,214, 93,146,181, 61,171,170,242, 59, 87,188,174,139,205,109,215,239, 86,
+ 72, 67, 68,139,151, 65,241,195, 42, 39,215,138, 42,203,113,222, 49, 72,201,159,159,175,119,  3,196, 56,200,142,133, 57,168,136,
+114,250, 23,244,129,255,130, 77,221,231,184,196,166,  0,165,255,158,139,186, 79,187,  7, 35,159,182,181, 30, 31,200, 97, 44, 38,
+137,108, 70, 72,172,217,148,132, 21,146,214, 55, 31, 37, 72,201,163, 93,238, 89, 60, 40, 25,117,192,214,127,243,215, 40, 69,146,
+246,164,215,123,165,139, 78,144,188, 20,207,236,214,147,212,194, 39, 41,210,184, 95,121,145,226,100, 52, 76,231, 96, 52,131, 29,
+144, 50, 32, 69,136,196,101, 96,221, 15,212,235,  4,187, 19,181,190,121,110,168,180,185, 90, 65,215,118,136,208,124,151,136, 27,
+ 33,196,156,238,224, 18,151, 34,227, 59,175,191,196,175,189,241, 54,147, 89, 69,  8,158,119, 31,188,199,207,238,222,133,243, 39,
+187, 11,105, 95,126, 38,120,177,105,217,196, 48, 23,166,  5, 78,  6,190,123,253, 22,214,  7, 54,125,203,221,119,247, 80,128, 23,
+ 66, 44,138,221,190,248,235,156,175, 47, 82, 25, 76,138,104,211,234,101,132,189,117,146,149,153, 84, 68, 68,216,237,240,243,100,
+114, 52,158, 51, 23, 98,212,169,131,174, 27, 48, 90,208, 44,123,156,243,132,173, 35,116, 22,134, 16,235,168,117, 32, 20, 82,137,
+189,135,168,220,145,211,228, 56,177, 39,179,152,178,140,138,132, 66,197,115, 83,232, 47, 71,116, 92, 31, 77, 54,198, 68,188,193,
+126,254,186,218,127,239, 35, 55,100, 76,160,179,195, 85, 30,179,235,  6,244,172, 64,227, 57,144,146,137,136,219, 44,231,146, 52,
+104,179,141,231, 61,159,236,156,237,182,203,157, 60,103, 24,118, 33, 60,131,227,195,162,224, 93,239,249,192, 19,207,243,147,179,
+231,247,243, 35, 87,163, 72,108,252, 46,238, 67, 69, 89,196,251,187,200,185, 94, 78,168,187, 14, 26, 27, 11,187,181,209, 99,221,
+228,220, 58,170,120,115, 50,225,102,150, 51, 85,  6, 21,  2, 83,103, 57, 26, 60,102, 93, 35,215,167,  8, 27, 87, 35, 82, 27,178,
+ 32, 24,194, 64,131,224, 66, 73, 30, 35,233,148,166,113,130,144, 77,184, 83, 78,120,189,202,249,193,180,226,117,147, 97,114,195,
+ 89, 15,245, 16,168,  7, 65,161, 20, 86, 43, 50,173,169, 10,197,208,193,208,119,244,237,154,147,199, 15,232, 58,205,205,249,148,
+210,  9,180, 21,168, 32,217,110,  7,150,117,207,227,229, 22,213,247, 76, 38, 57, 89,166, 41, 76,198,225,108,198,245, 98,194,171,
+211, 67,238, 84,215, 56,150,134,239, 47, 14,121,105,162, 17, 69, 96, 58,201,153,148, 57, 90, 10, 90, 23,240, 77, 71,240,  3,162,
+239,162,  1, 80,215, 33, 76,116,159, 19,229, 12, 81, 46,248,141,107, 55,249,151, 63,250, 33,223,126,249, 58,239, 24, 25, 73,139,
+ 93,247, 66,210,177,144, 26,172, 16,  2, 65,105, 66,166,  8,  8, 66,215,125,241,132,111,123,196, 80,179, 94, 15,108, 58,207,105,
+235,121,181,148, 28,101,146,153,202, 49, 82,113,191,239,248,133,247, 92,  4,143, 80, 10,148,161, 38, 48, 17,130, 19, 25,101, 98,
+  2,144,147, 18, 81,100,200,249, 28, 49,169, 16, 55, 14,248,225, 27,119,248,222,173, 55,184,113,237, 58,147, 44, 35, 11,129, 91,
+135, 11,178,163, 57,183,110, 94, 99,154, 23,148, 58, 71, 74,193,180,156,178,220,118, 84,197,148, 50, 43,200,179,130,195,106,194,
+237,208,242,208,122,190,165, 36,150, 64,111,114, 50,103, 57,245,142, 55, 51, 67,239, 44,103, 66,112, 32,  4,154,192, 67,215,115,
+ 40,  4,114,136,100,193, 83, 23,184,108, 90,122,225,233,221,158, 58,231,185,250,241, 84,160,125, 31, 27, 96,219, 71,243,169,174,
+101, 86, 25,110,107,195,129, 81,172,186,158,255,245,209,146,173, 15, 49,248, 75,135,157, 18, 43,164,117,102,219,197, 26,242,203,
+186,208,233, 68,106, 14, 33,222,207,167,103,255, 17,136,114,126, 63,123, 60, 65,134,102,124,144, 39, 28,123,100, 62,251, 68, 38,
+ 24,119,137,163,190,153,176,155,222, 93,122, 88, 62, 37,233, 73,147,186,148,223,236,  0, 61,245,111,178,103, 96,117, 34,236, 46,
+237, 83, 43,141,171, 85,194,  8,195,191, 72, 65,212, 26, 38, 11, 40, 13, 65,  8,130,242,104,  5,153, 22, 40, 41,168,123,199,170,
+235,  9,125,127,245, 59,100, 97, 80, 82, 16,132,167,183,158, 85, 55,208,212,195, 46,199,119,132,164, 67, 10,250, 80,  2, 53,159,
+243,198,241, 77,174, 29,220, 34,  4,193,166,105,120,231,238, 71, 52,167,167,176,185,248,188, 25,207,215,153,150, 85,  6,  7,211,
+ 36,225, 16, 92,218,134,123, 23, 43, 62, 56, 61,133,135, 15, 95, 60,206, 48,207,224,141,215,162, 45,233,122,245,203,219, 43, 14,
+233,196,140, 97, 61, 33, 57, 17,102, 69,146,156,249, 61,237,149,227,191,251, 47,254,132,119, 62,124,111,215,216,180,177,112, 49,
+120, 92,159, 44,  7, 91, 27,121, 31, 46, 21,227,100,156,147,229,121,204, 71, 54,130, 76, 41,156, 78, 89,230, 54, 21, 89, 53,218,
+ 13,167, 61,146, 73,196, 51,157,254,159, 76,127,249, 62, 77,126,205,107,247, 89,181,193,248, 61,231,184,182,168,104,  5, 76, 76,
+140,163, 60,206, 13, 75,107,227, 78,176,107,227,245,124,235, 40, 26,240, 76,139,120, 12, 46,151, 79,253,140,248, 51,163,139,220,
+144,171,157,  2,101,185,218,189,143,162,136,205, 94,  8, 87,228, 30, 49, 41,193,170,  8, 57,146,248, 47, 89,148,120,253,201,173,
+107,252,243, 59,175,160, 75,193, 71,103, 27, 68,103,175,210,206,100, 83,115,237,248,144,239, 46, 14,120,189,152,115, 88, 76, 16,
+  1, 78,218, 53,223,234, 59,140,247,104, 85,161,164,192,100,101,162,127, 72,134,161,227,177,119, 60,112,150, 54, 43, 88,  9, 65,
+ 71, 70,149,229,188, 49,159,114,172, 50, 94, 46, 42, 50,  4, 51,101,216,120, 73, 39, 36, 65,105, 50,105,144,218,224,133, 36,  4,
+ 77,111,123,108,144,108,182, 91,234,118,205,102,125,194,186, 85,124,171,172, 88, 40,133,107, 45,125,235, 56,185,220,242,233,229,
+138, 96,  7,242, 54, 34, 61, 70, 25,178, 50, 39, 43, 10,202,105,197, 60,203,120,249,232,136, 59,135,135,188, 94, 30, 50, 65, 71,
+ 23, 99,233, 34,179,190,208,228, 89,129, 20, 26, 39,100, 84,177,116, 45, 98,187, 65, 14, 30,153, 11,228,228,128,127,245,157,215,
+248,193,237,235,220,185,126, 19, 47,167,124, 24,122,132, 19,132,126,136, 59,250, 23,213, 65,103, 89, 66,151, 92, 50,108,250,146,
+ 41,113,232,193, 91, 68,231,120,119, 59,240, 23,235,154,135,190,229,255,220,212,252,101,215,115,174,  2,165, 52,132,224, 24,146,
+162,211, 73, 21, 27,170, 16, 16, 90, 33,148, 65,228, 19,254,233,173, 91,252,218,209, 33,191,115,243, 21,230,243,235, 40,147, 99,
+116,142, 50, 69,140,100,208,154,219,243,155,220, 94,220,102,158, 31,227, 80,180,174,229,211,  7, 15, 80, 74, 82,149, 21, 85, 57,
+193,249,129,213,114,137, 36, 80,119, 61,127,218, 90,126,171,170,240,125,203,177,214, 84, 18, 26,231, 88,  3,199,222,225,181,193,
+121,207,204,246,148, 82,208, 58,199,165,181,252,187,117,203,161, 18, 60,236, 98, 99, 31,  7,198,231, 12, 25, 87,249,230,123,126,
+ 18,227, 80, 48, 88,238,157,108,248,201,233, 37,255,215,163, 53,127,181,220,178, 29,149, 38, 34,165, 20,250,116,188,125, 72,146,
+216, 33, 30, 91, 59,252,146,156, 53,249, 52, 68,230,253,127, 68, 73,155,209, 41,236, 35,153,111,  8,157, 38,120,187,131, 18, 67,
+122,248,150, 89, 44,224,154,  8, 99,106,177,131,227,123,187,219,245,137,  4,225,167,137, 22,145,164, 61,223,  4,138,151,  9,146,
+181,169, 80,219, 61, 98,220,216, 44,  8,246, 72,116,126,247,189,225,  5, 79,140,153,192,225, 44,217,  9, 10,178, 66, 82, 40, 21,
+221, 61,149, 98, 61,244, 49,123,119,220,215,148, 81,183, 62,146,209,155,193, 97,183, 93,156,156,218,  1,100, 96,126,227, 58, 85,
+ 85, 81, 78, 42,154,166,  7,161,248,157,239,255, 42, 55,103, 55, 16, 66,112,182, 60,225,238,233,103,124,116,242, 24,206,207, 99,
+ 68,226, 47,213,164,165,  5,104, 22,253,214,235,147, 11,186,135, 39,112,126, 18,139,196,139,126, 76,167,188,253,107,111,115,243,
+250, 81, 36,220,125,217,195,229, 69, 63,198,224, 31,159,252,181, 81,177,171, 86, 50,133,148, 36,156,215, 57,222,249,249,207,226,
+223,155,  4,129,181,195, 78,142,230,210, 57, 21,255, 15,117,111,250, 35, 89,118,158,249,253,206,118,151,184,177,229, 86,107,119,
+ 87, 55,155,139, 72,137,212, 72, 20,103,145, 53,163, 17,168, 17, 96, 12,198, 30,251,139, 96,192,128,255, 62,195,254,102,192, 48,
+ 96,120,145,101, 91, 50, 70,163,161, 68,114,212,100, 55,123,173, 45,179,114,137,140,237,110,103,241,135,115,110, 70, 84,117,117,
+119,117,147, 90, 38,129, 98,118, 49,179,170, 34,111,220,123,222,247,125,222,103, 73, 57,239,131, 97,142,143,  7,162,243,129,188,
+ 84, 81,169, 64, 64, 34,  8,131, 12,205, 36, 41,142, 86, 59,181,135,227,198, 75, 61,222, 75,238,203, 35, 20,159,215,169,251,189,
+142,253, 57,239,  6,137,205, 12,227, 60,167,150,  2,147, 25,106,239,169,189,135, 85, 19, 73,115, 58,135,215,111,241,159,223,123,
+141,111,207,167,188,126, 80,241,193,147,179,151, 55, 29, 54, 68,231,185,144,200,135,117, 31, 61,  2, 32, 22,116, 17, 67, 87, 34,
+  7, 69, 71, 54,126,150, 18,208,244,224,243, 31,184, 51, 27,241,135,  7, 71,220, 45, 39,  4,  2,127,190, 88, 35,156, 69,244,254,
+166,176, 47,125,206,239,220, 57,228,173,234,144,214, 91, 50,101,248,184,219, 50,221, 44, 56,148,  6, 83, 29, 32,178, 28,101, 74,
+ 68,240,209, 78,217,119, 92,246, 13,103, 66,178, 82,138,214, 11,178,172, 98, 58, 82,188,150, 23,168,228, 10,168,165, 36,151, 26,
+167, 97,235,193,  9,133, 87, 10, 45, 53, 90,105,106,  1, 94, 42,154, 54,186,168, 29,231,158,220,183,252,245,123,239, 32,123,201,
+108,213, 83, 53,158,118,189,101,211,119, 60,219,110,120,180,188, 98,185, 92, 68, 67, 28,101, 80, 66, 33,130, 64, 26, 69, 86,104,
+178,105, 78, 81, 21, 84, 85,197,109, 89,225, 59,203,162,107,176, 58, 68,208,111,100,120,179,200,120, 59, 51,188, 33, 21, 89, 80,
+ 92,213, 22,113,189, 68,108, 27,196, 72,240,181,233,156,  7,  7, 51, 46,130,224, 73,175,120, 71,149, 80,  8, 68,166, 96,211,165,
+ 52,196, 47, 48,125,113,142,144,212, 49,248,254, 51,155, 75,241,194,159,  1, 31,221,  2,107,203, 71,181,229, 73,211,112, 46,  4,
+143, 58,203, 60, 83, 49,167, 34, 68,148,112,221, 89, 90, 60, 43,169, 17, 34, 48,201, 70,252,119, 39,199,252,225,241, 45, 30, 84,
+ 51,190, 61, 63, 98,146,151,244,121,201, 38, 56,182,157,197, 57,139, 20,154, 50, 43,169,202, 41,121,150,145,203,  2,219, 11,206,
+182, 23,156, 93,175,  8,120,156,235,232,108,203,163,171, 83,158, 58,207, 47,218,142, 63, 30,197,179,123,105,123, 22, 82, 82, 32,
+ 24, 73, 65,219,174,209,102,196,  7,125,199, 93, 41, 49, 82,145,185,142, 71,157,101,217, 91, 78, 52, 92, 89,203,114,157,114, 71,
+218,176, 67,200, 62, 85, 31,110,224, 91,158, 39, 24,201,157,217, 88,219, 69,201,230,114,117,131,162,208, 37,107,217, 54, 73, 95,
+187, 62,170, 71,134, 44,138, 95,202,168, 70,126, 90, 66, 32,229,223, 97, 81,247,123,108, 93, 37,227,126,130,116,232,117,123,174,
+ 62, 34, 77,  2, 34,121,180, 43, 34,163, 87, 16,139,134, 25,166,113,187,139, 51, 20,122, 87,100,135, 98,255,121, 83,187,214,145,
+217,219,239,193,160, 74, 39,195,155,129,204, 32,119,  6, 52,214,239, 14,207,225,226,245,  9,176, 10,175, 56,229,230, 25,156, 28,
+ 66,158, 49, 62,152, 80,100,209,226,181, 42, 36,  2,201,178,177,108, 59, 75,104,218,248, 58, 74,131, 84, 34,134,215,117, 30,215,
+116,241,107,219,148,205,155, 73,238,223, 61,230,  7, 95,255, 22,223,121,253,215, 56, 25, 31,240,201,234, 18,114,195,247,223,248,
+117, 38,147, 25, 62,  4,254,242,253,159,240,179,139,211, 24,207,185,185,248,252,  9,241, 85, 63,156,139,135,249,106, 27,243,203,
+219,250,203,255,189,109,203,217,249,130,179, 15, 63,220,237,102,  7,200,118,248,245,101,110,120,157,228, 48, 74,198,  9, 89,155,
+221,125,228, 19, 39,162, 31, 82,225,162,196, 45,178,197,251,136, 16,101, 41, 12, 64, 37,219,215, 60, 41, 30,100, 22,223,240,116,
+ 64, 75,  5,165, 81,104, 17, 15,  9,233, 61, 58,151,209, 38, 26,199, 55,239, 30,113, 84,141,152,150,  5,139,171,117, 82, 88,232,
+ 72,152, 51,121, 68, 84,148,142,247,244,171,170, 37, 62,239,135, 30,174,213, 96,154,180, 95,216,189,199, 33,233,139,  2,242,140,
+145,148,156,117,201, 53, 41, 56, 88,110,160,204,248,157,  7,175,113, 50, 63,192,  5,131, 50, 57,239,182, 93,124, 79,110,226, 30,
+253,110,106, 11, 50, 94,155,225, 89, 27,140,117,124, 34,120,109,154,100,222,148,197,180, 58,147,131,119,136, 33,186,182,183,172,
+149,228, 86,161,200,  8,252, 79,231,151,156, 91,159,248, 42,137, 45,237, 61, 66,103,124,235,176,226,160,172, 88,  7,104,  9, 92,
+ 57,203,127,191,216,240, 70,179,226,100,122,128, 30, 31, 35,139, 34,174,158,172,199,167,230,202,183, 53, 31,116,158, 54,203, 49,
+ 90,241,141,106,138,240,129,220,104,132,210, 88, 23, 48, 66,210, 17,184, 10,  6, 39, 21,178, 28,225,149,194,235,156,177, 16,100,
+ 38, 39,235, 58,126, 99, 90,240, 71,119,238,114, 32, 51, 58,123,205,255,245, 31,126,196,  7,155, 71,228,219,154,159,126,244, 14,
+ 31, 62,253,128,179,235,103,116,155, 11, 22,155,  5, 15, 55, 11,100,221, 97,156, 38, 56,143,176, 30, 89,104,204, 40, 67, 25,137,
+206,115,148, 84,204,124,193,233,118,197,185,107, 57, 35, 48,207, 51,178, 76,241, 96, 58,226,126, 53,226,190,209,124, 43,207, 17,
+185,100,237,122,220,249,134,211,126, 69,219,195,147,181,227,223,183,158,165,  8,145, 22, 51,157, 68, 45,183,202,193, 54, 81,  7,
+207,231,152,189,120,183,123,223, 94,216,197,139,207, 42,236,131,  9, 23, 62,173,161,122, 66, 99,161,235,121,132,100,166, 32, 51,
+ 57,155,174,197, 57, 71,211,119,180,193,225,133,230,247, 38,  5,223, 59, 56, 97,150, 77, 56,172, 42, 84,158,161, 76,198,227,198,
+114,177,181, 44, 90,203,233,118,133,235, 91,116,102,208, 50,163,154,140,241,190, 71,208,211,217,154, 95, 60, 60,229,236,236, 25,
+ 31, 61, 61,229,131,197,  5,151,171, 53,171,229, 18,164,224,245,170,160,238,123,198, 74, 49, 15,129,109,223,114,142,224,237,108,
+196,101,191,229, 45,101, 88,249, 14,233, 28,109,  8,156, 59,199,129,243, 60,241,150, 15,150,253,142,235, 37,211,202,243,101,220,
+ 34,207,206,171,100,127, 98,255,204, 68,183,221,253, 78,219, 69,184,125,155, 36,157,182,219, 17,223,126,169, 41,253,133, 55, 42,
+229,151,252,221,154,207,228,217,142,173, 43,197,110,103,103,210,158,177,200,192, 53,113,202,178, 54, 30,132, 50,193,121,106,216,
+ 75, 36,150,175, 74,127, 70,101,187, 67, 71,238,177, 10,  5,159,157,252,117,251, 24,249,205,251,132,203,237,110,170,200,210, 82,
+ 91,234, 61, 50,130,223,251,123,194,243, 58,105,239,119, 94,245, 95,244,230,140,138,184, 71, 31,149,140,166, 57,183,198, 99, 10,
+163, 56, 26, 85,180,214, 82, 91,199,214,118,216,117, 29,247, 44, 41, 61, 44,248,128,107,211,110,211,246,137,161,  9,148,134,124,
+ 62,226, 31,189,118,143,215,239,189,133,145,146, 50,203,145,162, 67, 88,203,237,249, 45, 76,150,113,189, 93,242,108,241,140,203,
+139, 11,184,184,188, 49,254,248,149, 52,104,131, 68,234,151,185, 49,235,122,183, 95, 54,217, 78,226,168, 72, 83,246,151,137,109,
+ 76,255, 35,242,157, 68,207,249,  8, 43,223,164,240,165,215, 91,148, 17,110,119,110, 71,208,188, 33,178,164,245, 80,144,100,153,
+ 33,215,  2,231,  2,153,145, 76, 75,131,150,144, 41, 25,169, 28, 46,114, 48,148, 84,104,163, 56,153,142, 24,229, 89,218,218,  4,
+174,101,148, 32,222,232,141, 85,178,132,117,  3, 89,174,255,229,154, 44,253, 66, 28,227,205,126, 95,238,  8,133,  2, 92,150,211,
+ 21,134,149,216, 35, 68,182, 29,172, 59,232,106, 54,243, 41, 15,230,  7,244, 66,243,176,119,156, 94, 95,198,162,126,147, 54,184,
+135,124,245, 54, 50,179,197, 96, 24,149, 44,102,125,186, 71,125,159,136,148,101,210,181,167,233, 71,233, 88,216,131,135,198,243,
+ 55,215, 43,254,116,181,225,188,141,230, 83, 34,211,145,  4, 38, 13,194, 11,132,107,232, 71,  5,179, 92,227,133,230,202,117, 60,
+ 10,150,139,160,248, 81,179,229,119, 21,148,147, 99,100,102, 16, 38,139, 33,122, 33,160,144, 76, 37, 84,219, 21, 63,110,122,114,
+163, 56,214,138,121, 89,161,144,212, 93,135,134,104,182,162, 12,143, 28,  8, 83, 80,100,  5, 90,103, 84, 74, 50, 46,114, 68,239,
+184,115, 56,229,247, 78, 38, 28,228, 25,101,166,249, 96,113,205,105,219,115,118,126,205, 95,124,244, 33, 63,189,124,198,207,207,
+ 46,249,248,234,138,179,229,138,203,118,203,217,234,138,109,232,184,232, 91, 46,154,104,246, 82,216, 64, 38, 21,102, 84,196, 61,
+179,  3,183,233,232,154,150, 95,176,101, 33, 12, 22,201, 73,149, 83, 32,153, 20,  5,135,227, 18, 93, 26, 78,170,146,215, 76,206,
+215, 53,136,179, 75,254,253,147, 15,249,171,237,138,235,205, 21,  2, 11,121, 92, 77, 48,169, 96, 62, 65,204,198,160, 50, 68,219,
+ 70, 15,246,207,146,142,125, 17,199,249, 37,223, 27,246,206,189,208,118,177, 72,217, 30, 54, 61, 79,172,103,172, 37,109,239,233,
+131,163,238,123, 86,125,207, 33,142, 63, 56, 60,230,181,241,148,204,148,140,198, 37, 58,203,112, 82, 32,180,228,195, 77,207,143,
+218, 53, 87,118,203,117,191,229,114,187, 38, 19,208,118, 91,156,237,104,251,142, 39,139, 39, 92,219, 14,154, 14, 33,210,106,162,
+239, 99,242,157,209,124,212, 90,164, 12,220,149,130,165,235,201,181,225,208,182, 44,133, 98, 34, 21,215, 62,122,250,139,224,185,
+114,142, 59,222,243, 39,215, 45,  7, 26,122, 47,169,109,226,100,249,180, 86,250,172,116,185, 97, 72,183,126,247,249,239,235, 99,
+ 88, 27, 14,  2,162,193,217,206,249,191,227,162, 62, 24,104,244,253,206,175,122,112,146, 51, 58,118, 51,131, 77,222,126,183, 36,
+136, 95,211, 42, 65,248, 41,188,162,200,246, 44, 51,253,243, 82,  1, 62,163,168,251,152,228, 21,156,140,118,140,222,199,191,167,
+ 31, 86,254,233,224, 17,201,128,134, 61,  4, 96,136,105,117,169,200,191,202, 46,218, 20,145, 64, 85,149,200,137,225, 86, 85, 81,
+ 24,195, 56,203,144, 82,243,172,107, 88,118, 45,182,238, 99,195,162,146, 65, 65, 19,237, 94,177,125,212,  9,  7, 17,247,186,121,
+ 70, 62, 29,241,181,163,138,113, 14, 19, 51,195,152,156,109,215,240,244,226, 49,189,107, 88,219,154,166,107,120,178, 56,229,221,
+199,143,225,226, 26, 86,215,188,154, 43,207,223,195,135,201,226,197, 31, 92,252,130,216, 67, 79,120,181,215, 61,220, 55,194,239,
+252,152,179, 61, 61,119,232,119,169, 78,141,221,165,244, 14,193, 65, 38,221, 75, 74,147,103,134,224, 97,148,  9,148, 86,204, 74,
+ 69, 33,  5,133, 18,228, 82, 96,132, 68,163, 32,147,204,180, 74, 64,128, 96,219, 59,102,163,  2, 45, 53, 14,207,249,182,222,147,
+ 72, 14,205,159, 76,209,173,110, 87,244,190, 74, 97,191, 33,200, 13,230, 20, 47, 64,131,  3, 67,222, 19,195, 93, 70, 21,179, 92,
+115,146, 25,142,140,100,172, 36,203,166,131,166,161, 21,138,119,140,230, 61,107, 57,181,233,217,124,124,158,164,129,233,240, 24,
+ 60,235,125,202,146,158,150,252,240,100,204,239,223,154,114,160, 37, 31,158, 47,146, 45,175,142,200,196,180, 74,242,181,180,186,
+112,209,180, 67,164,160, 24,172, 71, 92, 47,111,210, 15,133,137, 49,203, 98, 92, 32,166, 99,126,231,193,  9,183, 71, 25,139,174,
+231,137,116, 44,165,226, 39,189, 64, 74,141,210,134,255,251,163,143,249, 23,147, 17,249,193, 45,164,142, 18, 42, 57,174, 40,231,
+ 39,204,103,119, 56,174,123,178,245, 21, 63,115,150,131,204, 48, 86, 10,107, 91, 14,242,  2,107,123,122,  2, 63,175, 29, 62,139,
+241,197,149,210, 76,181,230,246,184,160, 80,146,249,108,132,237, 61,211, 92,226, 67,224, 97,221,242,151, 23, 43, 30,175,175,  9,
+ 77,135, 23, 14, 47, 20, 30, 23, 21, 41,189, 99,213, 56, 86,235,150, 79,186,154, 62,212,124,236,106, 46,186,134,106,219, 50,237,
+ 37, 70,154,184, 98, 93,118,116,117, 67,107,107, 62,234,106,158,224,185, 16,146, 34,  8,166,153, 70, 74,137,202,115, 84,102,248,
+218,236,128,223, 60,152,241,253,105,206,183, 11,205,237,109,224,240,226,  2,125,254,140,139,118,133, 16, 81, 94, 41, 66,218, 93,
+171, 12,113,114,136,152,143,227,127,183,105,165,241, 18, 25,220, 23, 21,249, 87,106,  2,  6, 19,166, 85,195,169,243,180, 93, 79,
+ 16,129,117, 31,232,149, 64, 11,201,137, 54,124,109,122,200,253,249,156, 70, 40,116,174,104,  5,252,108,181,225,199,219,134,143,
+124, 75,103,107,106,215,177,236, 90, 62, 90, 94,162,108, 71,223, 53, 92,110, 22,156,119, 75,182, 77,207, 15, 15, 11,254,245,173,
+ 25,111,143, 11,190, 89,230,252,141, 16,  8,169,112, 82,178,232, 35,154,154, 57,203,182,239, 88, 56, 88,244, 45,207,108,207,200,
+246,156,123,207, 68,  4, 14,  2,252,162,105,185, 43, 61,255,174,129,237,118,203,161,128,186,237, 56,174, 12,219,198,239,101,125,
+188,112,142,251,189, 28,145, 47,115,148,234, 87,248,126,163,227, 89, 52,248, 94,188,146, 65, 77,122,222,111, 38,245,  0,216,175,
+ 80,212,245, 47, 89, 27, 76,138,191,188,129, 29,251, 29, 12,127,227, 54, 23, 82,241,214, 59,118,122,110,146, 78,120,200,149, 78,
+ 50,180,129,128,244, 98, 17,255, 60,121,150,115,209, 65,104,112,230, 18,121,148,170,237,155,202,144,246,134, 93,251, 60,153,236,
+203, 16,203, 70,  5, 84, 21, 84, 57, 24,137,201, 53, 85,158, 51, 54, 25, 66, 11,214,117,203, 85,211, 97,155, 54,178, 41,195,208,
+121,185,  8,  1,119,137,205,158,155, 36,195,202, 65, 73,116,166,152,100,134, 60,211, 52,205,150,197,114,193, 71,103, 79,176,174,
+ 67,  8,184, 88,109,248,217,147, 71,156, 63, 57,133,203, 37,244,219, 29,145,236, 31, 82, 33, 47,146, 13,170,200, 98,177,205, 20,
+200, 50,193,182, 73,219,248,101, 94,247,224,131,174,138,228, 95,160,118, 17,141,131,156,100, 40,242, 38, 21,212, 97, 15, 63, 50,
+241,251,149, 64, 43,193,212,  8, 42,149, 33,  9,204,198, 25, 66,122, 74, 21,139, 91,145,201,184, 30, 39,185,134,  9,129, 73,178,
+178, 69,219,210, 58,203,229,166,193,  5,145,146,221, 82,113,221,151,181, 25, 21,119,218,125, 98,206,251, 47,121, 74, 12, 67,250,
+ 16,  8,179, 31, 60, 47,146, 63,  4, 18, 38,  5,234, 96,134,204,115,238, 20,154, 91,198, 80, 74, 73, 22, 60,183,115,193,217,114,
+ 19, 97,248,241, 56,105,252,137,197, 60,132,104, 75,122,243,204,236,189, 70, 17,120,112,116,192, 15,142,167,204,202,  9,179, 66,
+243, 23,103, 87, 73,254,169, 96, 52,142,133,125,248,126,151,184, 24, 38,143,217,226,164,233,189,109,210,212, 21, 37, 62, 98,154,
+ 67, 85,240, 71,119,142,248, 23,119,238,113,187, 40,120, 88,111,249,179,101,207, 83,149, 35, 70,211,104,189,106, 50,164,239,248,
+ 53, 60,135, 71,183, 35,187,186,202, 81,111,156,160,102, 19,244,108, 74,222, 86, 28,109, 55,124,188,120,204, 89,176,204,148,  2,
+161,216,134,  8, 13, 95,245, 13, 31,136,140, 99,147,113,104,114,110, 27,197,173,169, 97,172, 21,147,145, 36,235, 99,227,116,186,
+234,184,240,150,159,159,173,184,176, 61,171,224,113,117,139, 95,172,241, 70,224, 90,139,115, 30,111, 50,156,119, 56, 99,160,233,
+121,124,118, 69,239, 44, 43,191,229,188, 89,112,220, 88,166,174, 32,116, 61,206,123,174,175,174,249, 15,235, 83,126,102,151,188,
+211,247,108, 69,160, 35,250,140, 87,153,162,  9,146, 81,158,241, 86, 53,231,107,211,  3,166, 38,103, 20,122,198,202, 35,145, 28,
+  1,191,209,116, 60,126,244,  9,117,223, 32, 66,159, 72,105, 50,106,193,205,  8, 49,159, 34,111, 31, 32,110,159, 32,242,  2,177,
+181, 81, 93,241,183, 49, 53,186, 14,177,217,208,110, 91, 86,  1,186,190,231,245,195,  3,102,229,132, 34,203,152,  8,137, 81,  5,
+211, 44, 99, 35,  5, 15, 59,199, 47, 22, 91,254,207,237, 50, 78,200, 46,113,165, 68, 68,  1, 47,186, 45,143,234,107, 22,237,150,
+117,211,243, 95, 77,114,254,205,241,  9, 83,173,249,222,108,134, 54,130,183, 10,205,143, 18,114,107,149,228, 72,  8, 86, 62,240,
+115, 39,200, 51,248,155, 62,240,166,129,255,181,238,248,154,150, 60,222, 52,212, 34,208,  4,207,143,106,201,131,208,114, 97,161,
+181, 29, 65, 72,182,109, 66,129, 91,183, 83, 63, 13, 31,135, 71, 95, 29,233, 52,137, 99,163, 85, 60,203, 67,170,131, 82,237,210,
+ 42,  7, 39,166, 48,196, 72,191, 66, 97,247,251,187,126,110, 24,246, 95,190,168,255,178,117, 65,136,120, 99,221, 68,170,166, 44,
+219,174,223, 65,134,131, 25,205,  0,209,107, 21, 29,187,240, 48,158,196, 31, 90,165, 20, 53, 45, 94, 14,151,124, 17, 27,125,112,
+230,146, 69,220,175,155, 12,138, 73, 98, 60,219,228,231,237,191,154,169,205,208,217,141, 39, 41,119, 59, 67,149, 57, 85,110,152,
+103, 10, 39,  5,181,237,184,236, 61,155, 62,237,208,131, 72, 38, 61, 97, 47, 32, 36, 57, 16,  9,181, 75,169,147, 18,101, 36,117,
+ 90,161, 62,221,108,121,178, 88,211,134,142,141,119,180,189,227,162,174,227,106, 97,211,  0, 77,252,153,134, 80, 16,249, 15,164,
+160, 35,163,  5,169,201,147,189, 97, 30,155,171, 76, 39, 50, 86, 10,180, 20, 98, 87,  8, 63,107, 98, 29, 86, 32, 67, 81, 23,  9,
+105,177,195, 74, 38, 69,166,234,108, 71,200, 28,248, 17,163,226, 70,179,158, 87, 37,149, 80, 24, 33,152,101,134, 34, 23,140,141,
+ 70,  4, 73, 38, 21,222,123,170, 60, 26,217,152, 92, 33,131, 32,168,168, 92,240,  1,148, 81,100, 82,210,  7,232,156,199,  6, 65,
+112, 97,183, 30, 24, 26, 77, 23,146, 46,214,196,123,173,183, 95,146, 67,176,231, 13, 45,249,244,158, 79,229,241,192, 40, 21, 84,
+ 35, 66, 89,112, 52,173,184,103, 12,218, 24, 60,  1,237, 61,222,247,156,158,111, 19, 19,215,193,209, 60,217,146,230,113,237,181,
+237, 35, 95, 98,136,118, 29,  8,168,189,165, 25, 85,188,117, 52,161,247,158, 31,181, 29, 79,174,234,221,154, 72,164,103, 75,101,
+187, 21,131,210,201,140, 39,174, 70, 68,155, 52,191,195,164,215,244,241, 62, 40, 11,254,229,193,  1, 95, 31, 31,161,148,226,147,
+190,230, 35, 15, 98, 84, 33, 85,129, 52,  5, 82,231,104, 37,184,190,124,204,119,231,119,200,231,  7,136, 89,137,190, 51, 71,142,
+ 11,164, 86,132,141, 32,172,107, 22, 31,125,192,143, 62,126,138,159,103, 92,180,107, 78,219, 26, 73,224,189,117, 77,208,134,  7,
+197,152,183, 75,197,241,184, 34, 83,146,185,150,204, 51, 77, 37,  2, 66, 41, 58, 33,184,218, 88,150, 77, 67,221,173, 89, 35,176,
+ 56,124,223,227, 67,192,245, 29,190,119,120,215,227, 16,184,186,165, 55, 10,223,122, 54,182,101, 81, 59,234,122,205,249,226,140,
+187,190,227,250,252, 25,205,114,197,159, 62,121,135, 15,234,107, 62, 14, 61,143, 76,143, 76, 50,  0,  0, 32,  0, 73, 68, 65, 84,
+155,134,218, 90, 26,  4,235,222, 82,251,104,146,243,160,154,241,102, 62,138,118,210, 58,167, 40,199,180,161,167,243, 30,107, 61,
+ 51,169,249, 78, 94,240,181,166,229,241,197, 21,205,197, 85,108, 54,181, 70, 74,133,204, 52,223, 63,126,141, 63,254,250,183,248,
+ 71,247, 95,227,221, 82,209,173, 27, 68,223,125,234, 94,251, 34, 72,254,149,190, 94,100,241, 44,213,130,108, 50,225,222,120, 28,
+  9,113, 65,176,240,158,167, 93,207, 19, 39,121,212, 58, 30,182, 13, 63, 95,111,216,180, 53, 77,183, 33,224,  9, 46,229, 37,144,
+ 16, 74,162,197,237, 55,164,226, 15,230, 21,153, 80,220, 46, 74,206,173,101,154,130,160,206,123,203,185,117,144, 41,206,146, 10,
+226, 66,106, 62,233, 44,111, 75,201,169,131, 55, 71,154,247, 26,207, 86, 41, 36,142,191,108, 60, 95, 83, 45, 63,179, 34, 26,130,
+230,121,170, 41, 68, 18,242,128,122,237,243, 93,190, 74, 65,215, 58, 13, 13, 41,113,116,144, 65,103, 50, 62,251, 62, 37, 88, 34,
+158, 71,218,204, 32,151,118,175, 86,143, 95, 24, 52,255,238,  3, 93,188,223, 73,194, 66,216, 77,234, 69,182,139,230, 28, 76,105,
+186,126,  7,139,226, 33, 43,200,191,251, 13,220,227,179, 68, 98,210,187,139,255,156,243,194, 75,226, 86,243,189,110,201,185,248,
+251,162,132,147, 91,112, 56,143,147,138, 52,137, 16, 84,199,107,220,181, 95,173,152,155, 34, 18, 87,164,128, 89,201,120, 82, 50,
+ 47,115,166, 69, 78,227, 29,181,181, 44, 26, 71,240, 30,231,  3,247, 38,115,142,171, 41, 85,145,177, 90,109, 19,180, 63, 24,155,
+168,184,227,237,125,188, 30,171, 45,110, 83,211, 93, 92,113,121, 85,179,172, 61,155,214,179,234, 45,155,174, 99,179,168,  9,139,
+ 77,116, 87,179,118,183,251, 25,200, 98, 90,126,154, 36,248,119,249,161,117, 44,224,183, 15, 98,225, 24,101, 73,  9,145,197,188,
+100,146, 85,176, 78, 69, 68,137, 88,171,246, 39,140,125, 66,221, 13,209, 81,238, 32, 26, 37, 35,  3, 94,201,231,227, 94,109, 31,
+239, 23,165, 35, 68, 63, 41, 35, 41,210,196,251, 34, 87, 80,  8,193, 72, 11, 10,169, 16, 72,164,  1, 35,  4, 82,  6, 74,173,105,
+123,135,201, 52,190,115,168, 36, 81,243, 82,160, 84, 76,224,242, 82,210,135,128,208, 18,239, 60, 78, 14,106,143,164,224,112,169,
+ 73, 29,148, 27, 54,145,249,190,140,114,128,189,  7, 89,238,187, 77,165, 48, 22,173, 82,228,105,234,250,143,102, 88,109,184, 85,
+ 86,108,108, 71,166, 50,218,174,197,245, 13,207,158, 94,237,200,130,243, 49, 76,102, 72,109, 56, 24, 31,224, 71, 18,247,228, 42,
+ 77, 79,207,203, 54, 93,231,248,169,210,252, 24,120,124,189,141, 77,196,166,143,239,211,176,179, 15, 41,123, 26, 25, 93,247,  6,
+189,110,235,161,173,119,240,174,247, 17,146,239, 44, 34,207,121,163,148,100, 66,240,193,230,154,127,119, 93,179,238,124,116,198,
+203, 43,100, 94, 48,214,  6,213, 91,214,222, 17, 78, 63,230,141,163,123,232,170, 66, 77, 11,132,212,208,  4,252,217,138,190,217,
+ 34, 89,179, 89, 44,120,239,195,143, 56,111,225,162,233,249,100,187,165,147, 25,111,143, 38,124,163,200, 56, 40, 10,102,153,225,
+ 65,153, 49, 85,146,  3,173,  8, 33, 48, 22, 30, 39, 52, 70, 40, 54,155,150, 92,105, 78,235, 45,214,117,120,  3,110,211, 19,121,
+247, 30,103, 61,126, 84, 68, 42,199,182,193,141,115,124,221, 99,183, 13, 75, 47,120,239,252,154,255,120,125,198, 95, 60,123,204,
+255,242,232, 93,254,183,203, 51,174, 22, 75,254,250,252,154, 46,  4, 92,112,244,125,139,196,177,114, 61,214, 11,110, 21,  5, 35,
+165, 56, 25, 79,145, 70,179,105,182, 92,120,199, 51,223,163, 20, 76,180,164, 84, 49,221,241,205,210,128,183,156, 61,185, 70,174,
+174,145,190, 71,230, 21,255,197,235,175,115, 56, 42, 25,141, 43,100,200,249, 96, 44,226,250,164,233, 62,117,  6,136, 47, 59,159,
+189,  4,133, 21, 89,  9, 65,114,124, 50,227,164,154,224,124,207,117,189,197,121,207, 82,104, 86, 93, 71,237, 61,109,211,145, 11,
+ 71,238, 59,166,206,146,117, 13,206, 57,122,219,198, 60,247,172,140,110,185,121,201,127, 61, 53,204,165,225, 56,207,232,  8,104,
+ 25,115, 50,158,245, 61,189,128,119,135,245,168, 84,172,165, 97,162,  5,121,150,243,137,139,170,162,159,119,158,219,  2, 30,201,
+168,205,191,165,  4,239, 53, 46,122, 59, 25, 21,125, 27,180,138,  3,147, 50,177,148, 88,251,197,210,211, 87, 65, 14,227,133,217,
+173,  6,229,128,  6,171,136, 14,187,132, 54, 27,177,243, 72, 81,233, 28,251,138, 36,218,191,191,148,182,  1,106,239, 83,164,164,
+139,123, 54,114,179,211,182,231,217, 46,208,165,143,135,131, 59, 77,134, 23, 82,239, 18,169,134,  3,231,166, 99,121,  9,228,175,
+211,244, 34, 83,145, 68,192,252,  0,198, 99,242, 60,131, 32, 41,171,130, 94,153, 40, 73,112,221,151,152,156, 82, 71,150,207, 98,
+193, 44,243,248,127, 87, 57, 89, 89,112, 56, 42, 40,140,198,135,192,178,181,180,206,211,133, 64,219, 57, 78, 70, 83,190,117,235,
+ 77,198,229,152,178, 24,241,116,121, 29,117,234,150,157, 67, 92,211, 69, 45,119,183,138,145,140, 77,157, 92,141,250,104, 84,177,
+220,192, 98,  5,139, 13,212,203,248,117,231,184, 73,244, 81, 58, 78,109,194,192,237,187, 80, 86, 80,142, 99,196,230,175, 66, 86,
+245,170, 31,163, 34,134, 52,140,203, 84,216,228,141, 47,178, 44, 13, 50,203,152,140, 39,160, 13,213,164,138,  6, 55,101,138,255,
+196,237, 30, 48,249,  5,112,131, 74,130, 89,225,192, 75,254,248,191,253,111,248,233, 95,255,100, 87,228, 85, 98,164,155,161, 57,
+136, 80,186,144,130,145,210,140,165,196,  2,213, 72, 35, 67,192, 40, 73, 46, 37,109,112, 20,128,179, 30,105, 20,193,122,186,212,
+ 76,104,  1,157, 23,216,  4,173,123, 27,112, 33,224,186, 62,113, 61,220,206,218,120,240,211,239,146, 20,198,219, 87,116,243,251,
+140,189,154,220,235,216,139,193,239, 94, 70, 43, 88,109, 96, 86,226,178, 28,111, 59, 70, 89, 22,109,228,251,158, 95, 60, 93,224,
+ 86,235,157, 29,229,108,194,241,209, 29,126, 48,154,241,102, 89,113, 71,103,124,216,111,163,167,255,139,230, 74,125,  7,171, 13,
+193,228, 73,127,158,216,239,109, 23,167, 29,155,242,159, 93,106,146,131,220, 73, 69,229,243,105, 94, 55, 76,237,182,133,205,154,
+159,173, 59, 30, 55,107,254,244,244,154,205, 98,139,204,  4, 50,207,145, 66,115,171,156,113,172, 51,126,247,238,156,223, 58,156,
+227,141,160, 91, 47, 57, 25, 31,147, 85,  5,210,  9, 88,182,184,103,107, 92,187, 65, 72, 40,180,229,231, 79,158, 33, 55,107,212,
+122,131,106, 98, 80,201,239,142, 21,247, 70,209, 36,102,174, 21, 69,145, 49,213, 26,129,224,200,  7, 42, 41, 57,145,129,179,214,
+ 33,133,100,107, 45, 65, 42,150,193, 18,250, 30, 95, 42,124,231,241, 62,224,165,192,119, 93,220, 52,  8, 25,101,207,  4, 92, 89,
+ 96, 23,107, 92,153,243,172,117, 60,106,214,156,250,140,237,234,154,179,174,198,173,174,113, 87, 43,220,178, 38, 56, 75,179,173,
+209, 66,240,168,107,120,175,109, 56, 24, 79,144,214, 83, 24,205,199,125,195,135,125,205,181,181,228,  4,250, 16, 24,105, 77,165,
+ 53,185,145, 28, 20, 57,127,185,234, 41,230, 37, 97,185, 66,110,214, 28,102,142, 91,163,  9, 79,219,150,255,125,181,162,245,125,
+ 60, 87,134,128,158,174,127,174, 89,251,114,133,125,224,163, 68,126,148, 72, 86,204, 98, 60,227,245,147,219,168, 76, 81,183,129,
+214,117,252,226,236,146,186,171, 25,101,134, 82, 43,170, 82, 96,132,103, 28, 60,198, 91,180,237,113,157, 37,  3, 70, 82,242,235,
+211, 59,124, 99,118,135,163,124,194,194,215,124, 87, 41, 14,146,143, 64,103,123,164,210,156, 89,203,  7,125,195,199, 54,173,218,
+146,107,100,155,146,213,144,154, 45,128, 52, 92, 74,193, 88,101, 72, 15, 39, 25, 28,101,146,105, 16,212, 33,208,137, 52,236,104,
+ 25, 99,138,139, 60,146, 65, 67, 26,170, 36, 95, 94, 38,173, 19,183, 68, 38,164,209,166,104,111,153,226,142,109,155,134, 72, 31,
+ 11,122,159,140,207, 20, 73,250,249,213, 77,105,254,254,138,186,247,169, 59, 74,236, 40,155, 32,187,166,221, 65,227, 42,105,121,
+187, 62,254,190, 27,152,234, 38, 14,248, 34,153,208,124,145,231,186,202,162, 43,157, 76,176,189,148, 49,174,179, 26, 51,158, 76,
+ 80, 66, 68, 98,187,144,244, 93, 36,210,209,109,119,100,190,207,205, 70, 47,160,156,192,228, 16, 38, 35,168,178, 24,242, 82, 40,
+212,164,100,154, 23,148,153,198,  0,173,243,108,172,101,211, 58,130,  7, 45, 36,111,222,186,205, 65,121, 64, 16,158, 76,148, 20,
+ 35,195,249,249, 51,168,109, 12,221, 88,175,162,165,103,179,217,101,146,223,236, 42,135,156,242, 46, 53, 69,221,243,185,229,153,
+132,241, 60,238,244, 71, 51,152, 78,201,167, 19,142,143,167,168,170,164, 93,182,159,110, 94,190,200,159,252,151,153,208,243, 60,
+198, 18, 86,201, 85,172,139,193, 21,163,162,226,193,244,136,131, 98, 68, 97, 50,238, 29,206, 41,116, 70,166,224,168,170,152, 29,
+207,184,214, 89,114, 32, 84,187,125,151,144, 59,171,219,155,128,151,189, 53,143,136, 69,239,205, 95,123,139,119,127,250,110, 44,
+ 76, 25,187,251,174, 40,192,  8, 84,145,131,243,100, 70, 83,  9,129,201, 36,163, 76, 98, 59, 79,153, 75,114,169,176,193,199,  6,
+218,  7, 58,231,110,248,152, 58,196, 52, 55,155,130,225,250,129,  6,160, 32,184, 64, 47,  6,131,138,189,247, 76, 16,165,137,131,
+223,130, 79,141,237, 87,153, 10, 60, 59, 25,219,240,222,137,236, 38, 90,  1,147, 39,121, 30,108, 36, 60,107,123, 78,157,231,252,
+122,141,187, 88, 66,187,217, 53,  4,243,  3,222,158, 79, 57,153, 28, 19,164, 32, 40,197, 51,187,166,123,250, 44,193,146,124,122,
+197, 37,116, 52,173, 25,220,227,116,242,194,247,105,213, 35, 18,169,212,165,226,225,236,115,235, 50,241, 34, 89,167,183,136,186,
+101,177,216, 32,234,109, 36,122,213, 29,178,208,136,106,202, 27,213,152,183,198, 83,190,121,123,206, 72,102,  8, 41,121,120,241,
+148,215, 68,193,116,126,136, 12,  2,225,136,102, 54,189,  5, 28, 69,158, 49,234, 26, 30, 45,151, 40, 28,186,239, 57,108, 91,126,
+111, 54,166,202, 75,230, 89,206,184, 26, 83,  6, 65,102, 84,140,155,144,146,204, 57, 60, 48,149,  1,145, 41, 58, 47,185,180,142,
+165,235,241, 93,139,215,  2,159,231,209, 87,100, 93,227,235, 26, 47, 13,222,123,188,137, 17,170,118, 91,227,133,192,106,133,173,
+ 59,156,151,216,102,131,203, 74, 44,209,130,216,105,133,183, 53,190,238,240,109, 67,179,218, 16,172,165,182, 29, 63,106, 59, 90,
+229,120,191, 89,241,212, 57, 62,105, 86, 52,109,139, 12,158,194,121,  2,129,128,100, 36, 53,179, 81,198,215,143,198, 28,205, 70,
+152,217,152, 67, 35,248,232,233, 37,255,199,135, 31,240,227,235, 11, 58,  2,116, 53,132,144,124, 21, 52,204,166, 80,141,119, 65,
+ 50, 47,201, 68,255, 92,201,137, 76,220, 23, 33,163, 11, 93, 62, 97,246,250, 61, 42,157,209,117, 22, 31,224,253,211, 75,220,217,
+ 37, 27,107,153,151, 57,153,  9,228, 65,160, 68,160,179, 13,153, 48,  4, 39, 48,  2,164,109,185, 87, 30,112,247,228,132, 91, 71,
+ 71, 84,227, 10,143,228,190,173,201,131,231,150,206,241, 34,176,177,158,143,186,134, 63,105, 58, 26,203,142,151, 53, 88, 54, 75,
+147,200, 28,233,107, 42, 99, 46,224,150, 81,108,133,100, 46, 37, 70, 57, 30, 59,143, 67,236, 56, 56, 58,249,149, 20, 89, 58,175,
+198,241,243,112,222,192,171, 69,122, 15, 89, 38, 74,239, 88,242,122, 40,232,253,206, 77,110, 56,182, 68,114, 86,181,110,119,142,
+253, 39, 87,212, 53,187, 60,117,233, 19,204,206,206,119, 93,138, 88,172,141,222,189, 89, 67,122, 91, 63,236, 72,147, 25,205, 23,
+253,240,153, 78,157,156,220, 29,248, 33,218,209,118,218,160,165,140,171, 87,136, 69,253,242,108,119,161,141,138,175,161,156,197,
+155, 63,159,196, 55,218,140, 34,  9,206,148, 49,140, 32, 31,204,111, 64, 86,154, 44,207,152,100, 25,179, 34, 71, 32,105,130,103,
+213,218,104,239,234,  2,153, 82, 76,243,146, 91,147,  3, 74, 93, 96, 84,116, 85,250,217,211,199,180, 23,151,208, 92, 67,179,141,
+230,  5,254, 43, 66, 64,  1, 56,152,243,221,111,189,193,111,127,243, 91, 60,184,119,151,163,241,156,197,122, 65,231, 61,221,182,
+  1,215, 62, 63, 37, 14,159,141,254,236, 98,175,247,138,200,103,237,130,181,222, 53, 69, 38, 93,255,188,138, 83,170, 33,101,163,
+ 11,212,184,226,193,236,144,147,195, 35, 10, 97,200,139,140,145, 46,153,143, 43, 74,149,227,129,163,209,156,105, 89,114,149, 27,
+130,209, 96,101,124,221, 58, 49,201,213,222,231,129,212, 53, 32, 60, 78,239, 10,122,178,130,141,146,172,212,157,103,134,224,  3,
+ 89,110,200,  4, 28,154,248, 62, 26,169, 41,115, 77, 38,226,  4,160,124,156,174, 91, 27,144, 74,226,  3,132, 16, 15,132, 46,  4,
+180, 16,120, 47,216, 88, 31,141,130,172,195,  1, 97,184, 63,247, 47,145, 75,123,116, 33, 98,177,147, 42, 58,175,233, 60, 37, 21,
+166,107,215,191, 42,243,255,  5, 39,185, 60,189, 39,131,138,163,172,226,212, 62, 16,113,154, 46, 69,233, 94,220,184,228,197,247,
+ 44,163, 60, 60, 38,207, 53, 66, 42,158,244, 29,143,186,  6, 22,203,157,201,204,167,254,109, 27,159,221,241, 40, 30, 88,101, 14,
+163, 81,252, 25,235,102,215, 96,246,126,231,233,176,127,191,140,138, 88,124,115, 29,179,198,141,134,174, 67, 24,137,176, 18, 97,
+123,164,237, 17, 69,198,236,232,132,111, 87,115,238, 28, 78,184, 59,174,200,181,102, 99, 37,239, 94,110, 24,117,107,238,201, 25,
+249,180,138,242, 56,173, 17, 70, 35, 45,  4,223,161, 74,205, 97,145,115,213, 58,148, 30,241,186, 86, 28, 43,205,131, 81,206,116,
+116,128,113,129, 96, 52,153,137,232,140, 86,138,208, 90, 84,  8,100,  2,150,109,207, 88,195,242,242, 26, 45, 37,215,118, 75,176,
+129, 96, 12,161, 80,241,179, 86,132,229, 18,143,199, 11,112,157,197,139, 46,154,219,180, 53, 14,137,203, 13,206,111,177, 50,224,
+235, 30,103, 52,174,183,120,173,163,241,181,237,  9, 93, 11,155, 13, 97,209,224,183, 91,222,239, 90,222,111, 90,182, 77, 77,211,
+ 55, 92,217,158,171,174, 67,116,142,210,193, 72, 65, 31, 36, 69,145, 51, 27, 85,156,100,  5,255,180, 40,249,225,120,202, 31, 77,
+ 43,190,101, 36,127,246,209, 83,248,248,147,120,166,218, 46, 58,115, 42, 73, 80, 10,202,156, 80,230,145,  3, 84, 85,241,136,252,
+162, 65,201,177,139,243,101,224,189,196,226,222,143,199, 28,142, 70,212,190, 67, 11,197,229, 98, 65,184, 62,135, 62,112,182,221,
+114,221,213, 28, 87,  5, 66, 11, 90,103,209,197,148, 50,159, 80, 22, 99,186,190,166, 26,229,220, 57,188, 75, 86, 20, 84,121, 78,
+ 91, 55,124,240,236, 35, 10,231,184,182, 29,231,193,241,179,122,205,255,120,121,205,181,101,135,116,145,194,189,134,194, 41,101,
+180,218,245,150, 99,173, 25, 57, 79,174,  4,218, 57,158,246,158,177,210, 44,  8,116, 66, 38, 84, 56,173,174, 84,250,149,153,136,
+ 28,139,200, 77, 33, 75, 60,145,160, 62, 63,101,109,224,159,  8, 19,139,118,174,118,158, 39,221,158, 91,105, 72,197,223,250,248,
+189, 67,227, 43,253,243,222, 40,255,233, 76,234,123,135,145, 74,123,243, 65, 78, 35,213,142, 44,231, 67, 34,  0, 37,150,160,243,
+113, 15,111, 63,195, 23,251,165,203, 31,153, 46, 96, 58,216, 91,191,235, 46,149, 68, 72, 77,231,  2,157,245, 49,144,196,182, 32,
+ 29,144, 69,189,109,150,222,208, 81,154,122,134,130,231,146,207,183,147,113, 58, 23,160, 42,205, 97, 81, 50, 45, 53,243,124,132,
+ 18,146,166, 79,146,151,174, 37,184,192,184, 42, 57,172, 70,220, 26, 79,177,194,209,122,207,162, 93,178,236, 58, 30,126,242,  9,
+ 92, 60,221, 33, 22,191, 20, 33, 77,195,124,198, 15,222,254, 38,147,241, 17,213,104,130,181,142,171,237,130,203,245,150,176, 92,
+165,195,218,238, 92,201,148,222,153,250,200,  4,221,203,180, 23, 29,138,244,240,119, 15, 68,198,151, 21,253,161,192, 14,251,236,
+ 32,227,245, 55, 89,130,207,  5, 20, 57,111,204,143,184, 55,191,131, 49,154,178, 28, 49, 45, 43,138, 60, 71, 11,141,115,150, 82,
+ 27,148, 82, 20, 38,122,128, 95,  6,159, 10,187,136,235,131,225, 94,218,151,117,236,123, 33,200,100, 63, 60, 52,115, 25,137,161,
+157,165,159, 19, 40, 13, 42,  8, 70,185, 34,120,152, 24, 77,174, 20, 74,199, 61,151,240, 30,151,248, 15, 89,166,232,131,139,155,
+ 28,163,113, 93,135,144,146, 39,109,135,144,129, 32,163, 89, 72,112, 68,231,174, 65, 51,111,  7,162,156, 75,235,162, 16,211,  6,
+179, 50, 62,204, 69, 17,145,167, 44, 69, 52,218, 62,113, 41,190, 66, 67,215,219, 61,217,103,106, 56, 51, 19, 11,184, 72, 94,238,
+219,228, 40,183,255,247,219,142,107, 37,249,216, 40, 62, 64,240,172,107,227,186,103,187,141,190,210,242, 37,171, 45,151,126,198,
+ 44,135,249,148,127,125,247, 22, 63,124,237, 62,111, 31,148,252,244,244,122,183,183,149, 47,172, 97,134,213, 71, 48,  8,215, 37,
+244, 36, 53,102, 82, 34, 66, 76,179, 18, 89,156,198,133,  0,155,231,252,227, 55, 30,240,181,201,132, 89,145,163,117,206,170,246,
+ 60, 91,111,121,218, 94,240,166,131,113, 49, 69,149, 25, 98,108, 34, 19, 92, 41,168, 91, 68,150, 83,150, 37,  7,193,147, 59, 71,
+231,224,181, 34,227, 78, 53,  6,219, 98, 76, 65, 81,142,144, 66,164,158,223,199,219,135,104,223, 92, 73, 73,189,217,160, 50,193,
+220, 91, 62, 58,123, 18, 45,101,181,230,143,238,221,227, 15,223,120,157,  7, 99,201, 79,214,155,184, 81,169,107,188,118,248, 98,
+130,183, 46, 26,219, 40,133,171,175,241, 50,199,203, 16,247,240,133,137, 83,191,210, 81,205, 89,119, 17, 37,169,211,206,187, 94,
+195,179,115,186,171, 43,206,206, 47,121,124,213,114,209,116, 60,220,246,116,117,131,106, 45,165, 23,204,114, 67,150,107, 58,109,
+120, 93,231, 60,168,102, 28,155,156,153, 41, 57, 86,146,219, 35,205, 70,122,158,157, 93, 18, 46, 46,161,237,163,247,187, 82,  4,
+ 29,215, 96,255,242,254, 33,255,230,237,183,248,237,251,119,185, 30,107, 46, 46, 54,159, 57, 80,132,193,111, 33, 68,200, 88, 12,
+209,201, 10,130, 13, 48, 45,233, 59,207,147,237,134,240,232, 20,182, 27,130,107,160,110,169, 55, 53,239,182, 27,182,237,  6, 65,
+ 78, 89, 76,201,203,130,239,255,103,191, 77,119,213,177,109,215,140,139, 17,147,241,136,104,118,211,240, 63,191,255, 49, 15,151,
+ 11,254,135,139, 21, 23,174,231,255,185, 90,179,242, 18,234,150, 16,246, 76,194,144,241,252, 86,106, 71, 74,149, 26,227, 45, 40,
+ 69,238, 44, 37,224,165, 96,101, 29, 39, 90,243,108, 95,243, 61,144,181,135,198, 90, 36,165,204,192,201, 26,220, 34,209,207,171,
+ 89, 94, 60,119,  7, 95, 10,210, 26, 74,232,157, 91,169, 72,191,119, 93, 66,209, 84,140,103, 30,206,168, 97,178,247, 95, 77,109,
+246,247, 56,169,239, 77,123,  3,220, 48,132,179,236,231,108, 15, 18, 29,216, 57,207,245, 95,114, 15,236, 93,108, 28,220, 30, 34,
+ 19, 18, 57,194, 69,  6,107,232,109,148,127,117,219,216, 45,149, 85,156,192,139,180, 55, 82,123,241,172,106,111,151, 84,119,113,
+242, 12,  1,114,195,164, 42,152,151,134, 42,207, 80, 66,208, 58,199,182,243,172,251, 14, 31,  2,101,161, 57, 46, 42,110, 85, 51,
+124,144, 52,109, 75,227,122,222,127,250,140,167,167,167,112,250,209,115,145,150,191,212,135,115,160,114, 30,188,113,151,131,217,
+  1, 66,106,126,126,250,144,247, 63,252,152,112,113,149,194, 59,250, 29,113,113, 56,121,179,100,113,234, 19, 19, 83,165,184,209,
+144,236,120,117, 90,139,104,181,139,111, 29,246,114,131, 93,175, 16, 59,146, 26, 41,176,167, 79,172,239, 16, 29,221,100, 49,225,
+215,110, 63, 96, 54,157,227,172,167,202, 71,113,208,212, 57, 65,192,168, 24, 97,125,195,192, 53,179,  4, 38, 82,131, 49,212, 62,
+ 68, 46,129,144,187,172,251,253,162,126, 19,231,187,231,188,164,108, 36,  9,169, 68,162,211, 38,189,214,104,115, 25,130,224, 32,
+ 55,104, 33,137, 52, 57,133, 49,209,  4,182,119,158, 66, 74,214,182,103,164, 84,220,250,180,129, 32, 20,215,193, 49, 82,134,174,
+119,180,206,227,156,223,109,  2, 68, 72, 80,187,143,197,251, 38, 13, 47,220, 20, 82,178, 50, 93,163, 33,162, 80,236,188,185,191,
+234,174,221, 37, 61,121, 85,221,  4,204, 40, 33,  8,214,198,181, 71,215, 70, 85, 68,232,118,135,134,115,209,110,116, 54, 74,168,
+ 88,106,236,154, 13, 44, 18,121,244,101, 54,204,109,  7,227,138,239,222, 58,225, 55,230,199,228, 58,195,122,207, 95, 53, 93,140,
+173,124,241,245, 15, 68, 58,169,226,243,110, 70,  8, 21, 27,177,184,  5, 19, 49,134, 83,104,132, 14,136,206, 34,189, 64, 22,134,
+127,118,235,117,222, 62, 58, 96,108, 50, 10, 29, 21,  8, 93,219,241,254,122, 67,103,151, 76, 54, 45,147,233, 28, 89, 40,196, 40,
+ 35,132,128,174,166,136,117,131,197,115, 48,157, 51, 55,134, 81,  7, 77,211,144,107,184, 61, 61, 68, 21, 35,100,211, 96,133, 38,
+ 83,154, 97,107,226,124,192, 53, 29, 78, 10,154,224,169, 28, 52,219,107,142,139,140, 79, 46, 47,169, 70, 35,254,249,157, 59,220,
+170,166, 28, 77, 14,120,239,250,156,235,197,150,224, 44, 65, 23,248,237,134,160, 52, 94, 42,124,179,197,103, 21,222,246,201,183,
+ 41,158,  9,222,148,132,174,142, 22, 25, 10, 66,211,237, 22, 73,114, 47,140,165,237,  8,219, 13,246,122,133,109, 26,158,181, 45,
+ 63,239, 45,211,206,113,175, 48,116, 82, 50, 54,154,187,197,152, 82, 42,164, 50,209,152, 74,105, 70, 82,225,133,231, 32, 83,124,
+ 40, 51,124, 93,195,197, 34, 54,158, 46, 66,207,191,127,231, 54, 35,149,161,180,230, 82,  6, 30,  9,133,144, 89,124,102,247,138,
+251,254,107,187, 81,  8, 13,235, 20,231,  0, 75,189,117,212, 93, 77,120,252, 20, 54, 87, 73,177, 33,  8,222, 18,218,  6, 46, 87,
+ 44,150, 91, 86, 70,115,255,240, 46,199, 71,183,217, 44, 90,180, 84,120,235,169,155,117,220, 32,217,152, 97,174,109,205, 95,127,
+252, 24,209,247,156,173,106,186, 62, 16,218, 62, 61,251, 50,166, 39,186, 16, 27, 86, 31, 24,133, 64,111,147,113,151,130,214, 11,
+238,139, 64, 19, 44,  2,129, 12,158, 18,193, 59,109,159, 12,162,194,243,110,150,195, 90, 88, 38,191, 11, 73, 60, 47,164,136,  8,
+177, 54,177, 81,150, 73,189,181,255,156,106,149,228,214,123,110,143, 67,178,164,222,243,144,207,179,157, 90,164,103, 55,  0,188,
+152,202,166,247,200,241,255, 32,139,250,  0,203, 74,177,183, 79,127,129,228,246,156, 30,156,231, 33, 59,225,190,154,172, 78,164,
+176, 15,225,119,178,157, 44,103,252,230,109,166,  7, 83,182, 62,193,132,235,117,124, 19,143,102, 59, 67,  0,111, 35,124,152, 98,
+ 77, 81, 42,254,121, 68,252,222,129, 41, 89, 26,230,121,134, 49,  2, 35, 21,181,179, 92,215,150,117,103,233,189,197, 40,197,113,
+ 49, 98, 82, 20, 24,169,113,210,209,116,142, 39,171, 21,205,229, 51, 56, 61,143,211,211, 87,105,142, 62, 11, 38,111,106,222, 15,
+ 61,231,215,151,252,228,147,143,121,248,240,  9, 60,252, 56, 89,187,238, 77,217, 67,243,148,169,  4,249,239, 41, 11,148,220,145,
+204,110,130,116, 84,114,250,147,207, 75, 10,135, 78,119,127, 74, 31, 60,215,117, 74,217,179, 22,188,228, 27,111,189, 77, 89,142,
+ 80, 82,146, 43,  3, 82, 81,230,  5,214, 89,140, 48,116,206,161,165, 64, 43, 67,221,182,232, 44,163,183,150, 46,120, 54,117,187,
+ 51, 37, 26, 86,  0, 54,253, 27,195,191, 61, 76,234, 50, 33,  5, 89,186,223,196,160,137,151, 55,118,177, 90, 43,166,185,142,211,
+184, 81,100, 82,161,148,196,  7, 71,231,  2, 90, 10,214,214,145, 35,  8, 50, 58, 81,  5,231,227,218,204, 67, 43, 60, 78,106, 90,
+107,227,228, 32, 18, 44,121,  3,191, 39,247,186, 64, 44,170, 67, 81, 23,106,119, 40,220, 60,197,233, 48,233,136, 81,192, 95, 37,
+168, 72,107,152,205, 34,113,174,202,121, 80, 26, 50,231,152, 27,133,241,150,186,243, 49, 97,234, 83,114, 80, 31,215, 76,213, 56,
+ 18,  3,  6, 23,188,245,122,167,  6,121, 89, 34, 97,219,113,124, 50,227,184, 28,209,120,203, 39,182,227,195,118, 11, 77,178,146,
+ 29,190, 63,207,246,158,253,  4,223,170, 16,153,239, 67, 19, 22,199, 64, 68,154,102,  4, 10, 25,122,132,202,249,238,201,  9,175,
+205,142,209, 90, 35,136,100,196, 69,211,179, 88,175,120,214,110,185,114,107,170,109,207,172, 24,163,114,131, 28, 21,209,253, 55,
+104,202, 44,167,154,157,112, 92,221,225, 86, 89,209,173, 90,132,232, 40,  6,151,192,124,132, 12, 14,231, 60, 82, 41,132,150,184,
+186, 67,230,134,237,182,102, 98,162, 87,198,170,105,144,  1,238, 26,129,240, 13,119,231,199,228, 74,241,201,118,195, 95,108,106,
+218,109,141,183, 30,143, 39,228, 26,143, 34,168,130, 80,150,248,182, 37,  8,139, 15, 22,175, 51,130,245,  4,231,  8, 89, 30, 11,
+ 94, 15, 65,198,245,224,128, 40,  7,249,124, 49, 13,251,124,154,109,199,  7, 82, 48,111, 29,227, 76,211, 40, 73, 41,  3,135,166,
+ 64, 41,141,115, 14, 47,  5, 87, 93, 77, 38,  3,199, 74,242, 70,161, 80,163,130,199,249, 40,250,144, 47, 86,132,171, 21,183, 15,
+114, 78,170,138,107,107,249,243,229,134,173,245, 80,106, 68, 89, 70,121,173,141,211,248, 23,202,219,122, 11,155, 85, 36, 88,246,
+237,142, 59,145,204,157, 82,  5,132,224,104,174, 27,142,239,223,230,100,114,136, 82,  2,239, 28, 46,120,234,166, 78,183, 94, 92,
+123,213,219, 13, 31, 94, 46,225,217, 41,108,108,156,198,151,219,232,  3,177, 90,198,198, 99,221,196,162,238, 28,253,186,137,175,
+119, 40,236,193,179, 22,112,143,136,194,104,223,243, 65,215, 19,164,192,217,100,238, 53,236,181, 85, 26,  4,212,192,249, 74, 40,
+177, 78,123,123,147,167,228,199,168,200,226, 38, 47,106, 47,  4,169, 40,210,153, 58,252,204,118, 23,237, 29, 82,198,200,144,161,
+ 32,134, 63,159, 92, 75,103,115,168,166, 41,248,108,136,246,254, 85, 77,234, 67,135, 32,245,243,126,220, 55,146, 34,255,233, 16,
+137, 87,129,132,111,166,242,192, 77, 75,252,101, 96,251,175, 74,204, 27,220,188,240,112,255, 46, 63,252,167,191,201,119,110,223,
+231,219,175,189,197,119, 94,187, 77, 89, 21, 60,126,114, 17,247,131, 89,158,114,223,101,210,235,166,  2,166,247,236, 49,141,130,
+108,248, 44,201,115,133, 81,130, 92, 43,106,235,184,220,246, 92, 55, 53,174,183,148, 70,243,214,193,109, 14,102, 99,198,229,148,
+213,102, 77,111, 61, 87, 77,195,114,177,132,197,229, 78, 19,252,101, 14,238,  1, 57, 24,160,203,193, 80,103,144, 12,102, 26,158,
+ 45, 89, 61, 62,165,125,248, 49, 44, 46,118,157,245,  0,237, 12,230,  7,131, 37,168,212, 41, 76,167, 77,  8, 71, 42,242,217,192,
+220,150,  9,170, 79, 82,187, 44, 77,236, 55, 55,104,130,191,135,226, 58,152,173,116, 41,251,219, 11, 56, 58, 68,140, 71,220,154,
+204, 25,153, 18,169,179,148,182,  5,101, 22, 11,187,117, 29,130,192,186,171,233,122,143, 82,130,171,245, 26, 43, 28,141, 16,132,
+186,143,232,205, 32,121,212,164,201, 92,197, 66, 49, 48, 74,135, 61,123, 80,187,166,108,152, 56, 35, 61, 26, 37, 34,169, 34,215,
+ 18,141, 32,207,210,129,232, 64,136, 16, 61,201, 69, 64, 11,104,125, 32, 75,142,178, 91,235,145, 66,210,244,158,218, 57,100,  8,
+ 56,145,178,201,221,222,174,219,197, 67,140,118,207,161, 80,202, 93, 65,215, 42, 30,128,114, 56,244,210,123, 34,220,103,219, 86,
+126,238,147,173, 99, 86,250,180, 98,102,226,253,106, 16, 88,231,169,  8,209, 73,174,169,119,204,119,191,247,156, 20, 37,183,103,
+138, 77,117, 20,137,160, 50,161, 55,167,151,105,122, 23,159,158,214,173,229,217,166,227,175,187,134,191,106, 90, 62, 92,111,227,
+125, 82,232,216,108, 13,205,170, 78, 12,121,147,154,153,161,  1, 20,121,116, 71,147, 30, 33,125,156,214,133,143,111, 81, 80,  8,
+223, 33,108,203,119, 94,123,157, 73, 86, 33,181,166,211,146,211,117, 67,227,  3,205,102, 75,237, 90,150,117, 79, 79,199,253,209,
+140,162, 42, 80,202, 32,148, 66,141, 74,204, 65, 69, 54, 25,147,221, 57, 32,147, 99,140,237, 57,191,184,100, 50, 18,228,213,140,
+208,213,160, 20, 65,104,130, 15,200, 48, 80, 32, 28,211,188,160,173, 91, 38, 42,163, 16,146, 18,195,216,100,200,174,102,181, 89,
+243, 81,223,240,231, 23,151,156,247,125,212, 92,111,226,228, 77, 31,  8, 74, 18,198, 25, 65, 11, 66,221, 18,104,  9, 34,202,165,
+130, 25,206,166,100,172,101,227,164,123, 83,193,213, 75, 10,250, 11, 92, 53,250,158,119,250,142,166,105,169,157,135, 76, 48,149,
+ 18,237, 29, 65, 72, 46,234, 53, 29,129,222,245, 76,188,231,174, 50,156,228,134, 55,170,156,139, 50,103, 57, 26, 17,156,227,189,
+247, 31,241,103,159, 60,230, 71,219,134,109,215, 71,147,160,148,151, 32,140,138,170, 21, 83, 70,233,154, 16,241,172, 25, 21, 47,
+ 93, 17,137,207, 67, 77,135,198,191,105,  1,203, 51,147,113,171,154, 96,148, 38,120, 79,223,181,172,155, 21,214,246,104,  2,189,
+107,177, 93,207,138,134,245,227, 69,148,235,182,109,138, 62,173,119, 25,231,109,157, 86, 22,117, 36, 26,135, 20,125, 58, 52, 64,
+ 10,180,115,172,251,158,214,193,194, 57,236, 62,170,230,247,236,198, 73,107, 58,157, 30,116,  4, 15,116,198,127,121, 56,227,  7,
+147, 17,255,100, 92,162,239,188,193,195, 31,255, 24,117,231,136,208,187,157,161,163, 24,146, 13,  7,211, 52,155,172,207,195, 78,
+ 30,170, 72, 43,225, 52,138,251,110, 71,214, 59,152,197, 26, 36, 21,108,234,184,254,252,149, 21,117,147,237, 92,111,  6,147,217,
+ 97,106, 27, 12, 96,134,169,226, 85, 14, 29,157,224, 69,157,118,133, 50,153,174, 72,241,183,195,184,126,177, 67, 81, 73, 11, 40,
+ 42, 94,251,214,219,252,250,253,  7, 76,230,183,144, 66, 49,157,206,113,109,207,187,182,141,157, 81,145,160,217, 54,165,146, 45,
+175,211,141,148, 96,123,162, 71,187, 52,130,201, 40, 39,207, 12, 19,163,146, 93,168,103,209,116,212,235,116,195,105,205,107,135,
+135,220, 62, 60, 97,156, 87, 40,161,241, 74,242,241,213, 37,139,171,107,184, 88,196,124,234,208,127,185,166, 69, 13,201, 95,233,
+ 49,146,  2,116,153,138,219, 16, 24,146, 76,109,156,125,121, 72,129, 38,162, 13,222,239,116,225, 67, 96,141,145,169,177,209,187,
+110, 84,134,248,158, 13, 29,169, 18,177,208, 15,108,115,173, 18, 33,100,128, 87,253,206, 80,136,244,125,101, 52,230, 57,152,206,
+152, 85, 35, 66,  8, 20,166,192,186, 62, 34,129, 64,103, 45,  4, 75,227, 58,140,136, 48,248,229, 98,137,201, 20,117,103,233,156,
+199, 53, 13,244,235, 93, 70,113,218,195,198,130,147,228, 40, 46,197,211,146, 26, 80,157,116,186, 62,236,166,198,224, 33, 51,232,
+ 16, 40,141,166, 11, 30,233,226,125,221, 57,143,247,158,222,  7,156,243, 52,189, 39, 55,138,186,135,206,122,180,148,172,189,197,
+171,232,  5,223,220, 32, 25, 73, 95,111, 83,230,125,235,226, 52, 33,210,107, 29,194,128, 84,122, 38, 90,123,147,131,126,179,  6,
+169,155,212,217,135,231,209,151,231, 96,194,207,120,246,148,137, 48, 58,146, 98,148,113,168,  5, 66,105, 26,231,216, 52, 61,165,
+183,108, 54,137,183,241,162,135,117,150,179, 57, 58,130,201, 45,126,167, 28,241, 70, 86,112,168,  2,167,215,171,120,112,126, 86,
+212,112, 93,195,114,157, 16,172,132,114,105, 29,247,134, 46,125,125,240,138,184,185, 39,178,148,191,240,130, 45,169, 75,133, 29,
+162,223,183, 20,136, 96,248,155,205,150, 55,142, 15,177,186,224,170,115, 92, 11,199, 98,221, 82,  1,227,190,163,146,130,183,143,
+142, 56,152,143, 24, 85,  5, 18,133,148, 26, 89,106,228,225, 40,106,217,115, 29, 21, 15,219,128, 25,  9, 46,234, 37,235,237,  5,
+227,106,134, 84,101,220,227, 10,  8, 73,235, 47, 19,163,122, 84,150,216,166,103,146,231, 76,180, 64, 11, 67, 38, 50, 86,237, 53,
+ 79,150,151,188,215,116,248,174, 35, 40,133, 47, 50, 66,215,227,155,109, 34,  4, 59, 66,219, 18,250, 53,212, 77,148, 78,245,  9,
+  1,244,137, 44,217,181,187,169, 69,238,120,189,175, 34, 53, 19,222,243,180,109,249, 69, 93,243,255, 45,123,206,235, 13, 65,123,
+182, 56,122, 31,184,106,214,148, 62, 80,132,128, 16,130,128,192,106,201,108, 92,178,146,154,235,114,  4, 71,135,241, 31,189, 94,
+ 35,206, 22, 17, 61, 25,222,171,129,253, 93, 22, 49,105,242,246, 45,126,248,107, 15,248,206,237, 35,102,199, 83, 30, 47,109, 92,
+213,  5, 62,117, 79,138,151, 13, 88,131,148,214, 57,220,197,  5, 98, 62, 35, 35,196, 45,149,243,  4,161, 82,124,131,165,105, 26,
+ 86,221,154,211,197,138, 38, 36,207,138,254,115,130, 84,156, 75,187,235,136, 40,138, 68,  9, 10, 87, 43,150,222,179,105, 45,171,
+166, 35,  8, 17,239, 61,149, 66,197,156,139, 53,173,245, 59,173,248,240,115,107,205, 55, 50,195, 91, 69,206,216,228, 24,169,249,
+ 14,158,223,124,253, 54, 39, 38,240,243,109, 31,155, 88,153,220, 35,  7, 84,211,171, 72,148,179,  3, 26, 39,119, 12,251,225,245,
+ 90,187,139, 44,206,116,226,113, 37,185,247,102,155, 26,189, 95, 69, 81, 31, 10,240,224,169, 62,176,137,  7,243,150,  1, 90, 29,
+ 82,175, 94,201,171, 86,238,138,  0, 98, 47,241,172,255,219, 47,232, 38,193,136,210,192,131,187,124,255,173, 55, 25,149, 83,178,
+ 44, 35, 56,232,123, 75, 89, 22,104,183,230,210,121,130, 15,  4,159,228, 17,219,  6, 46, 23,241,115,149,244,222,165, 70,230,138,
+ 81,174, 49, 82, 80,101, 34, 41,151, 60,151,171,  6,183,218,194,106,  3,153, 97, 84,149,188,113,124,155,131,114, 66, 32, 50,167,
+215,125,205,197,102, 77,127,185, 76, 76,247,246,203, 17, 35,  6, 46,194, 62,251, 27, 17, 59, 62, 33,119,133, 29,191, 67, 68, 94,
+ 36, 58, 37, 84,232,249, 29,146,216, 85,252,125,243, 22,159,248, 13, 50,  5,173,100,106, 39, 35, 19,236, 50,196,111,152,231, 42,
+ 21, 45,249,188,169,144, 81,241,181,143,103, 76,199,  5,203, 77,205,253,131,219,180,214,226,189, 69,  9,193,182,107,232,108, 71,
+109, 91, 70,166, 68, 75, 69,227, 90,140,209,108,234, 26, 23, 98,227,228,214,203,180, 42, 72, 26, 80, 19, 98,241,216,247,255,215,
+ 41,191,216,136, 56,189, 15,134, 62, 69,106,  0, 74, 19, 37, 62, 14,180,214, 88, 23,179,199,251,224, 81,  1, 28,158,173,117,228,
+ 82,196,126, 78,  7,218, 54,254,253, 94,193,214,245,180,  2,154, 62,196,239, 19,  2,215,135,221,218,104,216,239,119,110, 87,200,
+135, 93,186, 52,137,149,191,127,221,211,179, 49,144,  0,131,123,254,249,120,153, 70,255,101,207,158, 41, 34,169,103, 82,210, 42,
+201, 72, 72,182,120,148,117, 80,119,172, 54, 61,110,152,158, 63,181,243, 86,112,239, 22,191,115,112,139,147,178,228, 40,203, 81,
+125,199,105,187,164,191,186,126, 57,252,190, 47,115,235,218,196, 91, 72,  4,189, 44, 49,137,133, 73,133,125, 88,229,228, 96,235,
+120,144,233,  9,248, 14,209,217, 68, 94,141,123, 75,209,219, 88,208,  1,225,  4,130,192,251,218, 83,168,146,101,151,130, 58,188,
+229,160, 50,220, 27, 79,185, 91, 76,184, 51,153,114,116, 56,195,110, 91, 52, 18,217,  6,228, 36, 71, 30, 22,136,204, 32,140, 36,
+108, 28,118,219,210,103, 10, 39,  3,173,146,180,174, 71,  5,143,200,242, 68,230,142,197, 79, 25,131,197, 99, 16,100,121, 70,223,
+212,228, 38, 67,133,192,214,  7,166,166,136,236,118, 91,115,222, 89,124,  8,  4,163,  8, 70, 18,186,158,224,122,112,155, 72, 58,
+108,219, 20,140,178,199, 25, 34,133,251,236,107,246, 63,103,242,253, 44,255,118,113,  3,203,119,124, 92,111,249,127,175, 26,254,
+100,221, 48, 22, 22,211,246,204, 60,140,149,100,237, 29, 91, 41, 88,  3,155, 16,232,203,140,181,209,252,227,163,138,127,123,247,
+ 54,191,121, 50,229,247,238, 31,113,160,224,189,167,215,136,235,107, 16, 42, 42, 19,202,152, 96,121,127, 82,240, 91,243,  3, 94,
+ 59,186,205,225,116,198, 59, 69, 78, 63, 42,147,178,196,164,231, 81, 68,199, 78,147, 71,101,199, 40,231,232,254,  9,181, 44,118,
+ 12,242,180,102,186,176, 61,206, 40, 50, 37, 17,105, 53,211,  7,139,117, 13,235,245, 53,206,183, 52,173,101, 45, 37,200, 60, 34,
+135, 38,173,112, 94, 66,230, 19,  9,121,227,246, 93,126,239,123,223,229,215, 31,188,197,236,112,194,147,247, 63,129,174,229, 48,
+ 15,212,155, 58, 66, 33,117,183, 51, 75,106,109, 10, 17, 75,207,173,142,175,241,219,153,230,159, 76, 42,114,149,225, 67, 32,147,
+154,198,247, 20, 82, 34,165,225,195,166,166,150,  3,243, 93,199,231, 86,153,228,201, 48,212,158,244, 78,  9,187,131,223, 93, 26,
+ 29,153, 26,155,  0,  0, 32,  0, 73, 68, 65, 84,148,134,103,124, 88,207,217, 16,125, 71,134,144,153, 95,186,168,223,192,186,105,
+234,217,183,110,237, 82, 55, 17,210,  1,109,221,243, 22,146, 95,  4,129, 15,211,160,150,187,144,148,191,237, 41,125,144, 62,137,
+116,160,119, 14, 49,159,112, 50,154, 96,116,148, 55,  9, 41, 88,174,150, 60,188, 94,113,118,189, 66, 10, 65,232, 18,177,105, 29,
+ 73, 37, 40, 25,229, 66, 82,199, 41, 61, 87, 20, 90, 16, 66,212, 46,215,157, 99,217,180,112,185,137,172, 85,109,160, 44, 57,156,
+148, 76,117, 65,150,151, 55,147,228,214, 53, 60, 58,189,128,103,105,143, 62, 20,243, 87,189, 20, 38,221,212, 46, 93,119,159,116,
+143, 65,237, 96,112,201, 30, 26,194,110,194,222,159,212,  7,199,190,161,195, 22,201,252, 32,176,211,128, 91,151,120,  8,114,167,
+ 77, 30, 38,255,228,151, 30, 67, 59,210,191,181,159,119, 63, 76,238,222,167,195, 59,193,244, 58,199,101, 57, 71,101, 73,221,119,
+120,111,169,178,130,166,107,145, 74,179,105,214,  8, 25,144, 66,225, 66, 96,100, 74, 16,129,105, 89,113,185,190,230,234, 98, 17,
+167,194,190,141, 93,123, 72,114,181, 97, 82, 31,200,150, 50,165,233, 13,196,189, 96,210,207,145,140,142, 18,226,  2,  1, 33, 37,
+ 69, 46, 89,119,142, 44, 37,172,181,189,199,139,184,187,213, 54, 68, 20, 47,153,195,213, 30, 90,235,169, 93,192,134, 64, 41, 37,
+117, 99,119,  5,122,144,209, 89,151,174, 91,250,255, 82,238, 53, 93,114,151, 27,190,111,  8, 50,178, 77,220,167, 11,251, 60,105,
+114, 63,110,241,197,102,249,197,134, 45,151, 81,122,153, 69,148,165,  9, 32,165,228,162,238,113,189,163, 91,109,226,123,248,178,
+137, 91,101,112, 48,231,222,116,198, 97, 94,208,216, 30,131,231, 23,171,107,220,179,243, 47,110,194,123, 11,181,139,242,182, 76,
+241,221,201,132,127,117,231,152,223, 62,153, 80, 77,114, 62, 57,191,142,215,196,167,179,228,224, 54,223,251,254,183, 57,253,224,
+ 35,132,204, 35,  4, 63,236,102,149, 68,120,  3, 94, 34,219, 53,210,197,233,237,161,114,156,231, 21,149, 11, 28,224, 57,153,142,
+120, 99, 52,225,173,195, 67, 14,198, 19,242,188,192,123,203,229,163, 51,114, 43,208, 85,158, 12,142, 98, 20,175, 95, 54,216, 77,
+205,170,169,177,163,138,144,101,212,206,211, 43, 77, 16, 10,163, 13,189,179, 40, 41,177, 65, 48, 26,141,240,206,199,251,116, 60,
+194,117, 61,  2,184, 93,141,217,118,150,177,201,176,161,103,140,227, 81,219, 17, 66,192,107, 77,200,116,100,104, 55,237,141,214,
+ 63, 22,224, 93,118,252,238,243,206,112,236,197,255,126, 49, 70, 85,124,206,215,110,204,187,234, 45,118,179,229, 39,171, 45,  7,
+  4,250,166,193,118,150, 32,  4,139,  0,219,204,112, 17,  4, 87, 30, 10, 99,248,245,106,194,221,114,198,215, 38,199,220,159,156,
+144,151, 25,118, 94,240,112,221,195,250, 42, 14, 41, 78,192, 40, 99, 84,102,124,111, 58, 67, 41, 77,231,  3,191,232, 45,219,214,
+ 66,101,162, 74,104, 58,130,131, 57,156, 28, 69,251,225, 91, 71,252,219,111,191,193,247,143, 79,248,221,215,239,225,230,  5,143,
+201, 99, 67,115,124, 12,101,206,166,200,168,148, 38,  8,193, 73, 89, 97,189,195,120,207,114,179,102,221, 89,148, 20,148,185, 70,
+151, 57, 77, 94,194,252,144,252,181, 55,112,119, 95,131, 78, 65,150, 12,140, 32,114,  0,180,225,187,223,254, 58,199,  7, 39, 16,
+ 60,214,100,124,114,246,148, 25,150,197,114, 27, 39,225,122,147,160,251, 62,170, 60,250,193, 71, 33,236, 46,106,240,188,153, 25,
+190, 89,142,147,167,137,130,224,240,222,161,164,102,211, 55,180,194,242,164, 75, 89,225,153,137,208,250, 96,231,236, 99, 17, 23,
+200, 72,161,113, 50,161, 79,105,189, 98,221,243,178,212,126, 72,192,235,190, 82,109,124,121, 81,151,  9,114,240, 41,142,210,217,
+ 88, 64,250,189,  3,157,193,206, 85,236, 32,132, 87, 49, 46, 25,224,145, 23,141, 84,254, 54, 63,  6,  9, 85, 16, 17, 10, 65,176,
+200, 12, 85,150,113, 52, 46, 16,194,227, 29,156, 95,175,248,139,119,222,  5,209, 71,178, 19, 62,193,166, 77,116,197,154, 23, 73,
+222, 16, 51,166, 67,136,249,188,189,119, 52,189,163,111,250,216, 93,173,151,177,216,141, 71,140, 39, 35,170, 66, 35,241, 72,109,
+232,250,150,198,121, 30,158,157,179,125,122, 26,247, 67, 55, 59,152, 47, 67, 54, 84,177,248, 26,177,131,151,  3, 59,223,224, 97,
+160,147, 67,214,252, 75, 60,212,247,247,238, 67, 83,224,210, 62, 87, 14, 76,204, 68, 38,115,118, 23, 30,162, 19,188,173, 19,243,
+220, 13,161, 58, 58,194,197,168,  4,127, 37,191, 99, 37,118,118,166,129,104,252,211,247,244, 65,208,107,133, 32, 36, 55, 88,135,
+ 11,142,197,118,129, 68, 82,234, 17, 74,104, 50,173,144,194,160,165, 98,219, 52, 76,139, 17, 15,183, 75, 56, 59, 75, 39,153, 77,
+123,252,253,  2,153,224, 46,103,119, 28,  2, 51,200, 26, 37, 84,229,243,  9,100, 68,166,115,  7, 49, 80,195,122,156, 11, 88,  5,
+  5,113, 98, 19, 30,172,  8,224,  3,181,247,  4, 33,232, 83,163, 42,  9,172,187, 97, 23, 42,246,228,107, 73, 70,166, 84, 60, 68,
+ 92,159,252,207,137,178, 60,215,236,244,222,174,143,215,175,235,119,201,102,251,176,251,231,125,188,  8,161,143,170, 72,230, 73,
+ 54,187, 78, 42, 90, 27,125,216,221,166,129,235,197,103, 63,123,194,195,108,140,171,170, 36,253,213,188,187,186,228,252,242, 50,
+ 54,172,175, 18, 10, 50,228, 59,204, 39,252,193,157, 99,114,169,152,149, 83,156,235,121,167,238, 83, 80, 82,186,103,182,215,156,
+126,242, 48, 53,160, 18, 49,196,200, 14,211,122,232, 17, 65, 34,115,137,  8, 22,105,  5,178,105,  9, 42,144,  9,193,189, 81,198,
+131,106,202, 91,243, 25,147, 34,163,154, 69, 51, 21,223, 67,215, 56,214,151,231,140, 84,142, 57, 24,199,251,196, 65,216, 90, 66,
+211,227, 69,160,147,158,173, 20,184, 98,132, 77,220,146,218, 91,132,140, 33, 63, 69, 53,194,217, 30,161, 20, 89,150,209,214, 45,
+ 50,  8,100,102,240, 65, 80,100,154, 77,239, 57,206,198,116, 90, 98,125,195,179, 46, 74,187, 66, 12,  5,136,164, 68, 27,207,148,
+151, 21, 99,249, 25,159,191,204,175, 23,167,248,  0,  4, 31, 97,255,159, 45,150,124,220, 89,124,211,210,246, 14, 39,  2, 87,222,
+114, 42, 37,207,132,100, 94, 26,222,210, 25,119, 70, 51,148,202,208,198, 96, 76, 73,171, 13,125, 33,185, 80, 89, 92, 25, 92,175,
+ 97,121,197,166,243,188, 94,106,148, 84,156,246, 29, 63, 90, 44, 19,139, 59,233, 75, 85, 90,221,142, 51, 80,138,217,100,204,247,
+102,135,220,169,102,140,203,138,172,200,120, 71, 73,220,120, 12,183, 79,152,222,127,147, 81, 81,130,146, 84,192,131,201,140,147,
+ 81,206,196,104, 46,250,134,218, 57,148,214,228, 66,162,165, 96,148,103,252,240,183,254, 41,255,234,159,255, 62,255,236, 55,190,
+199,209,252, 62,106, 62,166,155, 29,211,118, 93,146,230, 26,206,188,226, 27,135, 83, 68, 86,209,109, 87,124,252,240,  9,237,242,
+154,233,184,164, 93,247,233,249,232,161,109,201,180,194,109,183,209,178,185,237, 83,141,139,199,217,177,210,188, 53,202, 24,201,
+140,222,181,145, 65, 79,160,237,123,150,222,242,151,203,134,237,224, 60,103, 20,163, 42,167,207, 75,200,116, 76,203, 19,137, 43,
+129,223,157, 73,128,  8, 33,254,250, 21,214,193,151,159, 20, 34, 81,248,135,201, 92,232,221,132,190,109, 34, 57, 34,193,100,251,
+142, 61, 55,196,160,127,136, 31, 42, 77,216, 50,197,172, 62, 89,178, 58,217,176,221,108,153,140, 15, 33, 52, 56,219, 36, 82,194,
+ 62,155, 60, 29,252,147,113, 60, 36,203,148, 50,119,179, 71,108, 99, 45,238, 45,172,183, 41, 35,126,  7,127, 74, 13,193,  7, 86,
+ 93,207,246,234, 20,135,100, 81,119,172, 47,215,176, 90,127,177, 27,222,103,153,233,244,169,233,232,147,214,193,200,228, 91,239,
+227,207,200,144, 78,150,194,105, 20,187,223,219,189,162,190,109,118, 83,184, 75,123,244,125, 97,113,219,196,212, 51, 33, 99,193,
+217,191, 23, 94, 28,216, 84, 42,252, 55,221, 73,  6,165,136, 83,103,122, 73, 56,189,155, 84,251,150,101,219,146,101, 26,183,245,
+132,205,154,233,120, 12,214,115,114, 56,  5,160,204, 75, 50, 99,112,125,143, 50,121,220,165,251,134,215,230, 21, 15,191,254, 38,
+188,255, 65, 12, 48, 81,123,124,  4,217,199,127, 71,217,231,175,111,219,237,146,200, 26, 27, 73, 92,222,199, 48, 17, 37, 33,  3,
+ 45,  4, 77,231,208, 72, 86,193, 83, 32, 88, 16,  8,206,115, 32,  5, 54,  4, 46,251,158,137,138,141,192, 38, 65,209,197, 16, 64,
+228,247,166,213,129,108,227, 93,130,223, 19, 15,194,166,130, 23, 92, 34,246,245,207,255,153, 23,255,251,171,248, 19,232,228,136,
+149, 26, 22,186, 62,194,224,214,237,174,255,103, 54,  8, 22,206,174, 57,157, 95,112,234, 61, 44, 47,226, 52,  3, 80,  8,120, 85,
+197,229,102,  5,171, 45,109,215,115, 50, 61,100,221,183, 60,209, 49,171, 30,167, 65,118, 59, 18,163,200,227,251, 54,232,117,189,
+137,208,252, 80,156,148,197,123,131,207,193,119, 29,254,236, 17,206,247, 60, 10, 61, 63,152, 85,228,128, 81,  2,157,105,100, 46,
+200,171, 10,151,107,176, 61,107,215,177, 92,109, 80,143,174,201,239, 76, 99, 19,234, 60,106, 86, 48, 42,  2,186,201, 41,187,146,
+243,229, 53, 11,105,233, 61, 28,143, 39,204,110, 29,162,148, 36, 88,104,183, 45, 25,  1,219, 89,132,136,136,157, 17,130,186,109,
+168,138,156,215,230,135,252,199,235, 83,166,121,201, 55,111,189,206,149,123,194,199,109,131, 32,139, 69,247,238, 93,184,188,138,
+171,182,182,123, 57,116,254, 57,  5,250,121,146,156,190,121, 78, 69, 90,231,  8,187, 99,165,135,255,159,186,247,108,178,236, 58,
+239,253,126, 43,237,112, 98,199,153,  1,102,  6,145,  0, 73, 48,136,162,168, 72,221,171,171,107,189,176,222, 58,125,  5,127, 13,
+126, 26, 87,185, 92, 46,135,178,101, 91,117,203,215,165,146,117, 45,139,162,196, 32,  6,136,  4, 48,  4,  6,192,204,116, 58,113,
+135,149,252, 98,173,221,231, 76, 34,  2, 85,186, 86, 87,117,117, 79, 79,247,  9,123,175,181,158,244, 15,207,248,155,  8,124,176,
+217,240,254,102, 67,216,108,152,108, 74,142, 70, 35,220,116,204, 47, 85,193,151,116,137,174, 11,106,161,232,  8,180, 33, 49, 20,
+218,224,168,139, 17,119, 15, 61,247,164, 72,190,237,139, 53,108,123,254,135,239,253,132,232, 44,232,241,117,155,154, 73,149, 20,
+ 44, 67, 62,127,214, 61, 76, 71, 40,210, 56, 78, 41,131, 20,  2, 41, 52,183,170, 49,247,104,161,158,208,121,203, 97, 61, 66,199,
+200,237,233,152,219,179, 17,181, 81,172, 27,205,173,110,198, 74,104,240,150,224, 18, 30,228,197,217, 17,175,188,124,151,111,188,
+ 54,199,148,154,155,199, 37, 55,223, 62,164,111, 54,252,183,189,163,251,240, 62,194,247,196,237,138, 11,111, 57,242, 61,147,170,
+ 98, 50,159,178,110, 91,150, 87, 93,214,108,224,122,150,221,111,219,221, 57, 65,155,102,235, 19,  7,182,226,  3,161, 57, 31,111,
+ 24,141, 21, 71,166,102,101, 27,162, 15, 56,224,157,102,203, 89,  8, 40,169,168, 43, 69, 37,210, 40, 86, 86,145, 77, 35,210, 88,
+176, 80,233,188,183,221,206,203,163,123, 90,123, 63,254, 42, 64,244, 62,117,248, 83, 87,234,  3,  8,167,200, 21,143,207, 51,219,
+224,115,133,222,166, 67,113,219,238,108, 81,201,135,214, 64, 33,250,231,212, 18,127,242,141, 63, 15, 60, 36,101, 58,228,116,238,
+155, 18,224,104,204,239,188,126,155,155, 39,199, 76,231, 37,149,209,156, 28, 30,240,225,229, 57,171,237, 22,101, 20, 81, 12,109,
+232, 68,237,160, 46,118, 82,152, 42,139,  4,172,123,216,108,224,106,155,248,200,109,127,141, 58, 86, 35,195,200, 40, 68,148,108,
+189, 99, 99,  3,103, 77, 67,127,149,231,237,155,203,207,119, 96,171,189, 46, 10,131, 82, 87,110,221, 26,147,237, 70,243,  2, 40,
+ 51, 21,101, 24,228,201, 61,158,113, 36,123,210,199,  4,  2, 52, 38,  5,222,174,221,177, 20,164,220,241,106, 10,185,107,185,135,
+144,103,167,123,115,173, 48,120,162, 15,200,238,140, 54,247, 49,207,239, 67, 66,123,186,252,243,110, 11, 33,176,237, 44,203,190,
+103,213,247,148, 74,115, 52,155, 81, 21, 21, 39,179, 99,140, 81, 72,161,209,101,129, 16,146,217,120,130,115, 61, 35, 93, 80,170,
+200,  5,106,103,149,232,251,244,248, 62,163,137,221, 51, 58, 65, 74,238,168, 42,  3,208,188, 48,100, 88,123,154,102, 40,137, 37,
+ 94, 23,212, 32, 17, 49, 38, 45, 23, 18,117,205,121,207,101,219, 81, 85, 26,215,123,182, 54, 80,228, 45,115, 13,148, 27, 40,108,
+  3, 86,193,251, 92,197, 59,210, 48, 88,236,130, 88,239, 30,167,118, 62,171,195,245, 60,205,251, 39, 55,122, 53, 74,126,230,227,
+ 50, 37,120,101,  6,  8,250, 60, 11, 63,187,252,100,  7, 40,111,179,177,142, 72, 93, 42,107,147,167,192,114,243,233, 19, 81,159,
+ 16, 74,221,164,230,131,222,241,253,182,227,103,155, 54,237,167,102, 11, 62,139,110,168, 36, 49,122,173, 43, 32, 67, 66,194, 83,
+164,239,243,216, 68,208, 35,131, 70,184,  6,169, 42,148, 23,168,222, 18,101,224,181,217, 41,199,166, 96, 50, 27, 99,180, 68,150,
+ 26, 85,106, 34,130,162, 46, 89, 44,150,232,141, 69,  7,129, 84,105,223,248,182, 71, 40,129,170, 53, 69, 81, 50, 50, 37,149, 48,
+  8,161,185,117,231,  6,245,193, 24,115, 56, 70, 24,141, 18, 26,239, 34,182,115,200,210, 16,188,199,197, 64, 81, 26, 90, 31,104,
+251,150,117,132,214,148, 52,192,168, 52,188,183,110,  8, 50, 18, 11,147,206,139,201, 24, 84,129,240,  1,185,234, 17,217, 65, 55,
+239, 32,212,245,167, 70, 37,136,223,222,103, 72,191,227, 65,150,  5,210,  8,164, 18, 72,145,212, 48,165,247, 79,183,225,247, 43,
+246,253, 79, 47,232,172,227,114,221,176, 88,246,196,182,227, 81,140,252,198,116,204,161, 54, 76,234,  9,  0,239,180, 27, 46, 92,
+199,199,125,207, 54,  6,122, 17,113, 66,195,225, 12, 38, 35,226,100,  2,179, 89,218, 71,171, 38,105, 30, 92, 44,211, 26, 57, 63,
+ 75,126, 20, 34,209, 21, 27,160,150,142,185,210,180,206,114,101, 59,254,106,181, 77,123,161,168,185, 51,154, 50,146,138, 50,  6,
+ 94,158,140,152, 40, 73, 89, 40,188,130, 94, 40, 62,180, 14, 87,150,212,166,194, 17, 25,153,146, 55,191,240, 50,  7,211, 17,109,
+ 31, 48, 72,182, 54, 34,162, 68, 19,249,229,250, 42, 61,119, 81,114,235,228, 16,163, 10,122,  4,239, 93, 93,225,151,103,153, 97,
+ 16,210,243,219,236, 36, 24,158,156,207, 39,227, 33,164,166,233,123,126,218,123, 94,174, 36, 70, 68,122, 31,232,188,231,157,126,
+195, 79, 54, 61, 27,239,145,217,151, 69,163, 16,165,160,245, 36,165, 65,145,217, 35, 82,165,241,168, 16,121,236, 41,114, 49,229,
+159, 15, 42, 44,139, 84, 84, 85, 38,237,199,161, 91,250, 43, 42,251,199,131,186,148, 48, 58,132, 98,154,128, 14,163, 81, 86,184,
+146,201,122,174,168, 18, 34,215, 84,169,202, 40,244,110, 46, 54,104,214,126, 30, 78,237, 63, 69, 48, 31, 14, 55,249, 12,125, 94,
+ 85,236, 29,230,164,139,116,115,204,183, 94,189,205,168, 30,209,181,129,186, 42, 80, 50,112, 88, 76,248,104,181, 96,219,111, 81,
+ 50,166, 24, 88, 40,162, 86,200,202, 32,164, 76,168, 73, 31, 97,217, 38, 95,246,197, 26,150,217,159,125, 86,167,235, 54,174, 48,
+ 38,205,147,173,247,248,  0, 27,239,211,225,237, 61,172,206, 63,123, 53,166,115, 23, 37,184, 93, 94, 39,217,179,161, 53,105, 30,
+ 99, 76,230, 71,154, 28,108,217,161, 57,  7,224,154,209,121, 54,170,211, 74, 68, 67,200,153,234,224,152, 23, 99,170,160, 66, 76,
+139, 63,100, 10,214,  0,138, 51, 58,183,189, 51, 35, 32,100,107, 77, 93,236,230,251, 42,238,130,103,148, 89,191, 63,183,166, 93,
+ 82,251,162,235, 97,181,133,208,179,145,154,227,233,148,195,106,204,108, 58,197,123, 79, 89, 22, 40, 41, 24, 79, 38, 56,107,  9,
+193, 98,187,158,178, 40,  8, 42,178,106,186,244,  6, 93, 72, 45,238,190,123,254,104,199,251,188, 49, 34, 96,114, 82,147,121,236,
+ 25,131, 16,131, 39,202,152,198,219, 49,210,245, 14, 39, 99, 50,112,241, 17, 27, 28,141, 15, 76,180, 98,219, 88, 10,163,114, 52,
+207,231, 68,  8, 59,228,255,208,245,232,236, 30, 74, 63, 38,  0,159,103, 39, 60, 33,194, 39,239,157,231,  5,245,199, 70, 42, 21,
+220, 60, 74,201,247,168,230,141, 73,193,177, 54,212, 81,112,164, 21, 55,100,224, 98,185,250,228,181, 39,196,142,  2, 26, 99,154,
+237,111, 59, 88, 52,159, 92,233,239,239,205,174,227,170,141, 60, 10,145,141,202,215,223,147,170, 32,187,190,166,179, 37,212,176,
+ 73, 65,222,107,132,235,147,  0, 77,238,128,136, 40, 17, 42, 38,122,155,  8,200,114,130,244, 61, 50, 68,214,209,115,103, 82,113,
+ 84,205, 24, 41,141, 86, 18,169, 20, 33,  6,212,164,196, 90, 79, 64, 96, 53,244, 23, 43,100,231,  8,173, 69,212,  6, 57, 41,137,
+214, 35,141,166,156,212,140,203, 17,243,217,148,234,116,134,158, 84,168,113,133,170, 12,193,  6, 90,235, 16,133,196,134, 64, 80,
+146, 32, 37,141,247,  4, 33,184, 10, 30,163, 20,235,174,163, 51,  6,173, 43,222, 58, 57,230,230,184,230,168, 54,220, 28, 25,254,
+139,219,183,248,175, 95,191,203, 91,167, 35,254,106,213, 34, 93, 64,  6,119, 29,204,245,240,213,104,180, 82,104, 37, 51,222, 80,
+160,188, 71,121, 80, 74,163, 42,185, 75,  4,  4, 40, 41,144, 49, 33,224,229, 94,235,254,233,106, 93,167, 22,122, 78,110, 35,145,
+216,103,157,254,117,199,182,138,  8,111, 57,179, 13, 87, 81,240,113,223,114,207,182,108,172,229,178,105,137, 66, 98, 51, 59, 70,
+214, 21, 98, 52, 34,102,103, 63, 70, 21, 84, 21,163,233,  4,187,216,100, 91,209,144, 40, 89,139, 45,244, 61,247, 31, 92,242,221,
+143, 30,112,213, 47,249,139, 95, 62,130, 15, 62,204,235,106,205,202, 54, 84,125,143,176, 13, 69,136,204,140,194,134,192,186,109,
+249,225,229,154,141,212,248, 24,145,198, 32, 84,193, 89,215,113,103,114,200,205,185,193, 89,199, 98,213,177,117,160,181,132, 62,
+242, 96,253,136,237,102, 11, 77,195,225,193, 17, 33, 70,186,190,227,131, 95,188, 11,155,101, 46, 90, 51,  8, 85,239,241,204,159,
+220, 87, 33,183,203,183, 14,175,  4,127,223,118,252,223,151, 43,222,110, 59,254,118,189,225,199,139,150, 77, 76,116,213, 66,194,
+ 76,107,186, 24,136, 66, 38,207,166, 97,236, 27, 19,173,247,200, 20,180, 18, 94, 61,152,112, 37, 76, 22,235, 82, 59,  9,229,167,
+138,184, 12, 52,237,243,226, 16,207,176,133,125,110,251, 93,235,164, 62, 53, 59, 76,243,218,168,178,218, 85,  1,151,151, 80,  5,
+104, 87, 80, 78,210, 28,216,100,126,162,201,237,216, 65,217,203,185,127,222, 10,125, 95,201,108, 16, 81, 25,254,237,220,222, 91,
+204, 78, 56, 58,253,205,203,211, 81,166, 77, 70,170, 66, 98, 10, 77,111, 35,101,110, 87, 42,  4,165,  0,105,210,251,178, 22, 98,
+ 70,236,247,214,165, 96,212,183,169,165,178,204,193,112, 86,229, 89, 82,170, 88, 61, 17,105, 10, 68, 76,  7,100, 41,  3,157,144,
+159, 13, 16,247, 36,128,201,183, 32,170, 76, 83, 11, 59,174, 56,164,255, 43,178,232,193, 53, 90, 61, 47,  6,159, 91,244,251, 90,
+223,229, 36,161,229,251, 12, 98, 11,213,110,132, 50,140, 86,182,171,180, 97,125,174,194,237,240,213,237, 84,232,174,171,203,225,
+189,245,233,185,  6,235,207,184, 55,103,133,221,  8, 71,230,182,179,203, 86,179,155,158, 48, 25, 97,  2,196, 24,233,156,163, 42,
+ 43,132,148,232, 34, 85, 71,169, 59, 22,249,222,131,247,248,218,233,109,198,198, 80,158,206,233,174,214, 57, 97,202,175,223,254,
+ 10, 43,211,216,166,128, 14, 73,176,162,202,107,196,231,235, 84, 25,176, 73, 60,100,  8,202,222,122,218, 24,169, 60,120, 25, 48,
+ 14,214, 46, 80,105, 65,231, 82,160,170, 76,106, 26,116, 42,111, 82,163,119,216,145, 65,203,125, 16,224, 24,  2,163, 54,169,253,
+238,229, 39,143,175,246,247,214,222, 82,127,172,139, 51,159, 51,159,212,152,217,136, 27, 82, 49, 51,  5, 91, 23, 49, 37,168,224,
+241,189,228,213,227, 99,222,221,222,255,228,231, 90,183, 48,233, 82,162,164,115,199,174, 72,157,201, 79,189, 55, 71, 85, 74, 96,
+203, 92,150, 78,138,212,241, 58,157,165, 91,112,113,158, 76,101, 84,149, 70, 40,195, 45, 42, 52,194,107, 34, 14,130, 33, 42,155,
+243, 66, 75, 12, 37,193,247,248,178,198,105,133,125,180,228,127,253,209, 15, 24, 71,193,188,252, 58, 82, 41, 60,130,114, 84, 16,
+123,143,152,214,  8, 31, 88,158,175,112,210,114,255,195,123,140,100,228,120,118,202,232,116,142, 26,151, 72,153,199,  2, 35, 65,
+ 57, 31, 35, 39, 73, 57,113, 16, 67,  9, 66, 18,163,192, 75, 73, 52,208,228,110,148,170, 20,155,117,147,192,103,120,212,168,100,
+ 46, 13, 55,162,163,139,145, 98, 58,227,197,245,134, 66, 27,254,112, 62,162, 38, 80, 86, 83,126,183,151,124,247, 23, 31, 49, 61,
+158,208, 54, 13,210,  6,102, 64,211, 89,164,117, 72,231, 17,131,135,183,183,215,103, 91, 52,250, 41,206,122, 28,130,180,123,188,
+ 34,223, 63,102,  2, 26,177,223,226,181,225,122,  1,197, 46,161,191,127,252,119, 11,126, 60,159,115,251,246, 41,107,161,185, 49,
+155,242,113,150, 22,142, 49,178,237, 60,197,184,192,201,196,124,153,148, 21,109, 76,235,254,173,219, 55,121, 57,118,244, 93, 79,
+123, 52,226,  7, 77,195,253,143,174,146,184,141,112,176,190,202,186, 74,129,183,239,127,176, 91, 35, 75,141,248,210,239,242,202,
+228,144, 27, 85,  5, 97,195,213,102,201, 61, 21,144, 82, 17,130,231,170,233, 81,170, 96, 90,214,  9, 15,101, 45,181,144,108, 62,
+190,207,189,197, 21,181, 52, 92,184,192,228,245, 87,137,165,230,206, 75,183,248,250,242, 85,254,207,243,  5,156,159,241,227,255,
+231,175,119,103, 90,183,217,139, 25,123,  4,132, 95,245,209,245, 96,  2, 92, 56, 88,151, 48,174,185, 88,101,141,249,124, 78,170,
+ 73,141,138,129,149, 11,140, 74,205,186,203, 12,161,222,131,134, 63,157, 86,220,136,145, 57,  0, 19,188, 13,124,124, 56,227,127,
+218, 58,220,162, 77,137,198,106,  5,182,223,141, 81,202, 34,157, 83,195,248,146,140,103,178,242,217,251,255,169,160, 62,170,161,
+ 58, 74, 30,211,202, 64,219, 38,190, 92,211,193,252, 16,232,147,137, 70,183,222,205,212, 11,189,155,185,199,161,141,246,252,172,
+125,244,123,191,201,246, 47,255,230,159,190, 82,223, 63, 68,158,  2, 20,237, 81, 70,100, 62,200, 85,207,189,143, 23,124,243,238,
+150, 48, 58,194,148,  6,169,161, 82, 37,127,241,179,159,112,241,241,  5, 24,216, 22,145, 73,126,188,170, 84, 88, 11, 91,151, 57,
+199,235, 38, 85,231,203, 54,  7, 69,153, 40, 68, 70, 64,165,174, 27, 33,135,229,  4, 41, 21,198, 84,124,184,186,160, 27,120,202,
+101,190,198,159,229,163,235, 83, 59, 38,132, 29,143,220,134,157,242, 16,213, 14,160,228,119,221,249,148,190,231,223,209, 58, 97,
+  3,122,191,211,229,222,191,143,251, 12,135,144,175,239, 48,243,244,121,152,106,115,  0,241,215, 15,158,231,237,114,151, 64,120,
+210,154,105,114,102, 41,121,188,109, 59, 24,124, 40,185, 75, 70, 10, 13, 10, 44, 29,202,104,182,237,134, 24,234,235, 68, 11,  2,
+ 90, 73, 74,173,248,202,233, 75,156,175,175,168,202,146,170, 50,116, 70, 38,228,109, 40,210,252,248, 87,  1,180, 29, 36,162,249,
+ 54,137, 60, 12,243,238,125,205,250,152,223,155,221,105, 11,  7, 45,104,101,100, 82, 21, 20,170, 96, 28, 60,155, 69,131, 34, 49,
+ 65,186,144, 94, 66, 73, 96,217,248, 29, 62, 33,207,223,177,185,171, 97, 51,142,161,  8, 89, 53, 46,139, 79, 12,207,253,105,242,
+ 98,247,236,237, 60,159,106,166, 85,133, 50, 21,  7,165,129, 24,152, 25, 77, 99,123,250,206,115, 96, 52,141,240,105, 15,111, 63,
+197,250,243,238,154,198,132, 54, 41,153,103,245,233,246,165,219, 75,178,182, 93,186, 56,190, 72,227,142, 16,161,236,161,154,130,
+111, 82,133, 46,202,204,166,113, 59,140,134, 15, 48,  4,116, 61, 38,244, 27,194,168,194,175, 86,120, 52, 78, 68,172,208,172, 31,
+ 93,241,243,135,239,115,123,118,  3, 93, 24,154,222, 49, 37, 75, 21,228, 60,164, 45,  4,155, 94,115,142, 35,108,183,196,139,143,
+185,249,209,132, 55, 94,124,153,233,139, 39, 40,173,209,227, 26, 66, 68, 42,149, 26, 43, 14, 92,227,104,215, 45, 91,235,176, 26,
+202, 66, 16, 85, 66,199,111,108,160,169, 10,150, 33,208,136, 72, 20,130,  3,231, 56,247, 18,175, 21,119,170,130,143,199, 83,140,
+243,216, 58,141,227,206,163,230, 91, 95, 62,228,171, 95,145,184,109,131,116, 61, 70,194,213,242,146,166,219, 98,131,231,195,135,
+ 87, 64,199,197,253, 13,162,185,132, 62, 57,183, 69,155, 58,165,241, 58,168,167,196, 39,118,253, 83,193, 60, 15,161,174,191, 62,
+ 89,185,139,189,200,112, 61,105, 90, 44,184,191, 88, 16,181,230, 74,215, 48,170,146,217, 75, 85, 18,181,162,111, 96, 52, 29,131,
+ 82,108,130,165, 22, 37, 55,149,228, 75, 70, 50,215, 71,120,181,165, 24, 31,160, 23,103,220,111,129, 81,155, 40, 99,155, 54,  3,
+ 65,247,248,235,166,128,187, 95,229, 63,253,218,183,153,207,231,244,155,  5,203,205, 61,188, 92,114,149,215,230,214,245, 72,111,
+ 49, 42,233,183,107, 83,177, 14,150, 27, 66,112,203,119,204,154,128,213,134,211,114, 68, 37, 60, 23, 34,221,243,131,201,140, 98,
+ 60,162,211, 25,219,241,228,188,250,186,232,251,148, 31,214,237,144,241, 77,147,240, 42,166, 74,103,189, 41,241,139, 13,219, 74,
+ 49,171,107,154,222,161,180, 98,107, 19, 45,238,182,128,113,140,252, 70, 89,177,142,158,169,208,168,169,225,101,  4,219, 81,207,
+ 15, 15,231,124,112, 49, 78, 74,114, 15, 30, 36, 87, 78,178,169,206, 16, 83,226, 94,241,179,143,139,122,  6,142, 34,181,223,181,
+134,233,113, 82,178,137,234, 90, 78, 83,169, 50, 89,244,  9,  1,109,200, 64, 22,153,103,234, 67,213, 88,164,202,103,208,  7,127,
+ 94,251,240,206,171,124,251, 43, 95,229,189, 77,  3, 87,151,255,116, 65,125, 64, 85, 15,179,244, 33,184,239, 43,166, 41,185,163,
+115,  9,153,130,203,166,229, 29,122, 94,157, 78,136, 81,210,181, 29,111,255,226, 29,126,252,224, 10,187,186,202, 66,254, 10, 31,
+ 34,227,194, 16,137, 88,  1,190,115,176,202, 38, 23, 93,214, 27,150, 89, 29,107, 82, 66, 57, 74,149,  8,145,233,120,198,124, 50,
+ 69,106,147,148,196,165,100,217,181,  9, 29,127,181,253,124,238,107,215,109,238, 28,177,245,158, 71,184,207,130, 47,  3, 86, 77,
+100, 69,181,125,183,175, 50,189,182, 84,121,229,175,214,165,164, 46,228,170,178, 24,  2,118, 76,156, 80,223,100, 26,154, 76,179,
+247,202,236,105, 20,228,150,187, 44, 51, 71, 62,209,213,112, 54,137,233, 12,226, 43, 79,182,139,  6,101,169,129,250, 54,206,244,
+150,201,152,121, 85, 34,163,192,135,128, 68, 34,181, 34,134, 64,239, 59,218, 77,139,139,142, 77,179,198,147, 90,218,222, 90, 86,
+157, 77,247,216,246,201,221,238, 19, 89, 24, 46, 37, 98,131, 36,164,139,169, 21, 63, 84,237, 66,237, 54,241, 32,149,155, 53, 34,
+ 14,170, 26, 41,  2, 94, 40,182, 77, 79, 97, 36,133,140,  4, 23,  9, 33, 34,181, 76,222, 53,144, 42,187, 65, 18, 86,134,157,170,
+222,160,255,224,247,228, 98,241, 79,211, 14, 63,203,199,193,156,131,201,132,233,225,148, 88, 26,166,166,162, 84,  6, 71,146,190,
+221,246, 22,105, 91, 54,219,150,197,249,226,233, 32, 28,158, 16, 74, 24,149,112,122,196, 27, 71, 83,190,121, 56,226, 55,142,198,
+ 28,141, 21,239, 63, 92,127,242,218,173,138,148, 20, 93, 91, 35,103, 63,133, 81,157,128,141,245,140, 59, 35, 67, 24,149,244,103,
+139,204,208,200, 30,240, 54,181,151, 68,200, 95,163, 76,237,120,225, 17, 65, 35,156, 71, 84, 10,164, 65,132,152,184,  9,126,203,
+253, 71,107,142,102,154, 89, 57, 71,  8, 77, 23, 97,211, 59, 54,109,207,202, 59,182,214,241,225,114, 69,231, 45, 23,221,134,243,
+126,197,  7,221,134,179,229, 57,114,213, 50, 63, 60,130, 16, 80,198, 16, 92, 36,246, 14,187,234,105,206,214,124,116,181,102, 25,
+ 60,157,136, 56,163,176, 34,242,208, 71,186, 74,211,  6,216, 32,208,133, 65,121,143, 49, 10, 35, 36,174, 44,145,198,160,165,  0,
+ 99, 88,233,130, 43,235,185, 50,  5, 97, 84, 35,141,161,200, 62,241,149,169, 40,117,193, 68, 26,222, 28,207,248,198,201, 93,190,
+124,248,  2,111,222,122,129, 77,  1,237, 38, 98,138,164,136,102, 32,201, 39,  3,134,128,182, 14, 29,194,117,251, 62,181,230,143,
+145, 52,215, 36, 24,129,124,110,102, 24,159, 53,207, 13,  1, 92, 79,108,182,  9,255,208,108,210,218,213, 26,155,233,204, 35, 83,
+ 49, 82,145,215, 71,154,  3, 31, 24,107,133,209,154,166,111, 56,174, 70, 92,132,192, 69, 36,157,139, 85,153,214,131, 23,136, 66,
+ 38,206,251,248,132, 63,248,189,127,203, 87,191,252, 26,135, 71, 53,101,169,105,214, 45, 62,108, 40,138, 18, 79,214,112,176, 22,
+225,114, 97, 28,  4, 50, 68, 42, 97, 57,213,201,120,201,147,204,149,238, 59, 65, 35, 53,171,117,203,249,213,130,127, 60,255,152,
+248,224,193,174,120,121,222,200,234,179,152,166,120,159, 37,178, 51, 53,181, 27, 24, 47,137,151,222,117, 22, 39, 36, 86, 12,179,
+ 56,207, 23, 75,201,151,181,196, 10,193, 76, 40, 90,173, 56,208, 53,125, 81, 82, 85, 99,222, 67, 51,153,207, 88, 72,  9, 71,  7,
+ 80,141,211, 94,240, 54, 83,222,114,102, 90,100,145,156,103,188, 31,241, 84, 80,175, 10, 56,190,157,104, 62, 38, 75, 21,  6,153,
+230, 45, 49,  5,183,228,103, 46, 97,187,200,115, 72,151, 90,243, 93,  6,207, 13, 92,220,231,125, 44, 46,121,239, 71, 63,250,167,
+ 13,232,195,205,209,250,241,153,250, 48,155,188,238, 61,101, 85, 53,113,141,100,130,206,226, 47, 87,220,211,150,191,254,135, 95,
+240,183,127,253, 99,126,254,227,159, 96, 31,158,239,184,244, 64, 49,210, 20, 82, 18,144,200,  8,125,219,167, 42,207,219,  4,136,
+155,212, 41,200, 21, 89,216, 63, 59, 30,129,228,100,122, 68, 81, 84,  8,  4,101, 89, 96,116,193,217,253,251,112,177, 72,  1,240,
+243, 28,222,194,103,119, 49,177, 83,105, 27, 90,240,106, 79,143,125,  0,194,133,152,240, 15,131,216, 79,200, 82,132,195,124,215,
+186,157, 25,129,218, 75, 16,100,166,163,233,220, 46, 14,121,150, 62,  0,232,134, 64,231,243,235, 16, 62,243,230,227, 78, 72,195,
+125,194,251,147,185, 26, 22, 25,239,160, 18,  0,209,150,138,227,122,130,136, 26, 79,199,166,109, 82,238, 98, 35, 77,219,178,217,
+172,177,193, 33,240, 92,110, 55,188,191, 88,167, 74,176,239, 18, 72, 39,186, 79, 47,134,228,178,125,218, 40,163,197, 69, 62,230,
+  6,231,167, 33, 25,  9,225,218,246, 87,213,146, 90,106,154,174,  3,231,115, 87, 57,105,110,143,181,100,166,  4, 90, 70,100, 16,
+180,249,255, 99,231,114,245,151,199, 84, 33,215, 80, 42,175, 79,216, 73, 38,127,222,160, 62,158, 96,199, 37, 98, 54,162, 86, 21,
+ 86,  8,140, 20,120,169,216,  4, 16,209,211,187,192,207,207,182,233, 16,178,185,179, 85,229,222, 94,153,173, 34,  7, 21,201,227,
+ 99,222, 60, 61,226,219, 55, 78,121,101,126,204,216,148,220,170,107,102, 53,188,251,209,197, 39, 84, 54,164,174,132,202, 35,169,
+ 40, 83,167,108, 54, 70, 30, 28,240, 95,221, 56,230, 55, 15, 79,248,114,173,248, 94,211, 36, 34,189, 82, 89,193, 81,164,  2, 66,
+  6, 68,187, 77, 24, 13,101, 32,170,164,112,150, 41,154, 34, 88,132,243,105, 47,201,154,216, 53,252,227,213,138,218,120, 26,  7,
+ 54,106, 58, 34,143,250,158,171,174,229,106,211,224,  4, 60, 90, 47, 88,249,158, 38, 10,164,136,  4,169, 57,239,183, 44,206, 23,
+212, 86, 34, 99,164,191, 76,250,237,205,217,138,247, 63,126,200, 59,155,  5, 75, 28,189, 49, 44, 66,100, 29,  5,157,128, 94,  9,
+162,146,184, 66, 83, 35, 40,181,102,235, 29,141,143,156, 26,205, 66, 42, 52, 80, 43,201,149, 11, 89, 96, 69, 35,141,162, 54,138,
+224,  3,227,162, 32, 56,199, 68,192,239, 31,156,242,214,209, 13,222, 60, 58,230,246,244,128,147,209,156, 87, 79, 95,228,214,205,
+ 35,198, 55, 15,185,156, 76, 49, 40,116, 52,152,222,163, 99, 72,254, 34, 90,161,133, 64, 27,205, 75,191,255, 91,252,214,191,250,
+ 54,239,255,240,251,123,192,185,180,215,196,175,110,245, 60,255,140,181,110, 39,197,218, 88,124,219,211, 41,193, 68, 41, 14,162,
+229, 11,227, 57, 70, 74,182, 93,195, 68,107,214,193,113,223, 59,206,107, 67,172,139,164, 89, 48,159,194,180, 66,212, 19,168,102,
+188,245,141,223,226,213,147, 91,220,185,123,152,140,209, 10,205,118,177, 96,219, 45,209,122, 76,101, 42,180, 20,216,222,226,131,
+165, 42,167, 84,101,133, 86,130,117,111,185,108, 87, 64,160, 87, 37,231,162,228,222, 38,242,254,217,  5, 15,175, 46, 88,244, 29,
+ 31,174,175,114,155,198,254,106, 26,230,103,217,110, 58,251, 99, 12,194, 82,248,157,163,102, 22,152, 18, 34,123, 92,100,253,144,
+127,165, 34,175,104, 77,140,130, 40, 37, 94,107,130, 50,196,162, 32, 42,131,169,107,110,205, 14,121,235,240,152, 87, 38, 35,190,
+122, 56, 69,142, 20,139,160,240,155, 62,117, 60,  7,224,111,255,124,234,201,112,175,119,189,106,153,196,111,  0, 66,103,243,  6,
+ 79, 98, 13, 97,177,222,189,129, 34,207,  9,201,213,156, 41,118,200,221,255,216, 31,215, 51,245,103,180,224,187,103,252,110, 12,
+172,191,255,206,227,200,104,178, 60,108,159, 17,253, 66,210,135,128, 18,146,198,237,169,129, 13,207, 17,114,160, 51, 25,193,108,
+179,222,112,173, 88,116, 45,186, 54,140,138, 10, 98,224,193,197, 85,162,189,225, 62, 63,101,201,229, 85, 88,200, 93,111, 45,228,
+ 27, 24,179,165,223,208,146, 31, 42,244,161,242,206,146,181,248, 61,109,233,125,253,230, 32,119,191, 59, 84,225,158, 29, 94,162,
+207,143,207, 48, 47,222,123,158,235, 36, 74, 62,221,106,255, 85,239,229,218,180, 40,166,  4, 98,185,101, 89,151,124,108,206,184,
+ 53,191, 65,187,134, 66, 43, 30,245, 45,211,106, 66,227,182,172,109, 75,239, 90,206,183,107, 70, 90,103, 11,183,161, 99, 96,159,
+125, 94,253,230, 87,249,131, 55,190,194,229,250,146,159,252,217,159,239, 81,169,100,122,238,206, 67,185,135, 11, 40,196,174,163,
+240,228,230, 89, 54,220, 15, 29, 69,244,212, 82, 97,  2,212, 49,210, 92,231, 93,158,145, 16,140,138,200,184, 80,124,180,241,232,
+218,208, 53, 57,217, 17,185, 67,224,179, 32, 77, 17,118,116, 63,177, 55,139,127,214,136,233, 73,  4,212,254,124, 48,  4, 38, 99,
+131, 17,146,  7,222, 18, 28, 76,235,154, 70, 72, 86,  4,106,105, 80,101, 65,121,235,128,110, 93, 37,112,226,102,149,124, 14,164,
+ 78,235,160,205,143,183,222,130,214,188, 54,159,112, 48,158,227,128,201,104, 12, 69,203,201,244, 34,181,205, 99,183,163, 48,198,
+240,196,117,119,160, 38,  9,135, 51,170,210, 11,108,151, 32,111,242, 71,163, 41, 47, 31,222,192, 16, 48,245,152,255,252,141, 13,
+255,253,213, 50,177, 71,132, 72,201,114,151,169,137,179, 99,104, 22, 73,153, 76,  8, 98,244,196, 32,  8, 69,133,167, 69,248,  2,
+161,122,112, 13, 81, 58,194,106,193,255,248,195, 31,243,199, 95,182,156,110,206, 56, 60,184, 73,208,154, 77,112,  8, 17,136,206,
+177,240,142,166,247, 28, 25,195, 88,150,200, 24,233,  8,220,243, 27,126,242,238,247,184,251,209,156,187,245,  1, 49,  4,150, 93,
+195,125,215,112,105, 20,177,186, 69, 17, 60, 99, 20, 86, 66, 85,  8,172,139,168,210,224,189, 37,170,  4,232,155,234,130, 96, 91,
+238,175,215, 28, 72,201, 74,105, 46,235,146, 19, 33,216,216, 64,239, 60,194, 24, 92,140,152, 16, 57, 40, 12,213,100,196, 29, 51,
+231,166,214,148,194, 80,  0,117, 41, 49, 82, 48, 81,130,155,197,203,252, 54,183,249,195, 91, 75,214,205, 10,239, 35,139,230,146,
+224,123,218,118,203,119,239,159,241,198,180,  4, 34,127,247,203, 11, 52, 63,161,218, 76,177,199, 22,233, 92,166,188, 61,223,140,
+ 37, 60,177,172,196, 19, 95,175, 63,182,109,250,220, 20,240,240,130,  7, 55,142,240,243, 17,191,109, 74,108, 76,182,197, 91, 31,
+104, 66, 96,163,  5,161, 39, 37,100,163,  2,209,247,144,145,245, 71,102,202,203,167,183,208,133,164,109, 91,148, 80,172, 87,107,
+ 58,219, 98,132,161,210, 26, 99, 74, 84, 47,217,148, 27,156,243,116,182,167, 46, 43,140, 48, 72, 25,120,180,241,172,195,150, 35,
+113,147, 27,167,167,220,169, 74, 46,214, 91,254,254,254, 61,126,182,188, 72,227,227, 27,135,105, 45, 62, 20,136,216, 37,252,192,
+147, 45,248,231,181,226,181,126,186,213,237,246,168,220,195, 57,167,117,  2, 76, 11, 11,141,134,106,192, 12,165, 98,238,102, 93,
+ 80,133, 12,141, 39,209,249,188, 16,148, 66, 33, 67, 90,189, 18,  0,  0, 32,  0, 73, 68, 65, 84, 76,133, 82,  5,  5,146,178,170,
+ 56, 86,  5, 86,151,252,142, 80,188, 57,170,249, 15,135, 35, 30, 60,218,164, 89,123,187,218,141,  8,247,164,154,227,115,103,234,
+151,103,132, 91, 47, 82, 24, 67,143, 73,104, 93, 35,  9,189, 75,122,191,171, 85,170, 78,135, 57,106,116,185,117, 25, 62,191,201,
+202, 63, 53, 88,238,211,102,161, 58,255, 78,208, 79,247,158,134,116,103, 82, 82,206, 43, 42, 85, 64,244,196,172, 42,182,123,140,
+204,113, 28,  2,251, 32,206, 63,184,132, 69, 88,111,215, 84,198,176,217, 88,148,134, 69,179,205,129,242,215,189, 96, 46, 43,142,
+ 13,  1, 54, 87, 70,131, 81,192,254,195, 15,115,221, 97, 49, 63,121,173,202, 98, 15, 13, 63,152,222,228,191,177,125, 62,144,217,
+ 89,177,178,159, 48,236, 61,135,149, 59,128,218, 39,  9,165, 60,121,239, 68,230,148,123,145, 64,128, 77,199,163,237, 22,207,199,
+ 76,203, 25,203, 54, 80, 21, 53,109,215,115,222,174,  9,177,231,188,217,114,119, 58,231, 39,239,190,151,109, 11,179, 71,184,205,
+  9,166,206, 55,122,160,245, 45,155, 20,208,207, 30, 60,254,220,165,220,157,106,206,166,214,112,204,116,  1,235,118,110,106, 82,
+160,240,148, 74,227,109,100,162,253,181, 56,247,180,132, 62, 68, 70, 67,135, 72, 64,141,192, 17, 49, 72, 14,203,200, 85,227, 41,
+ 10, 65,223,199,107,145,149,235,192,222,231, 36,194, 15,236,  4,118,216,137,200,227,192, 69,246,112, 18,143, 25,170,164,100,243,
+162,117, 92, 85, 61,166,168,120,179, 26,177,245,129,121,161,184, 93, 22, 80,107,126,122,214,225,166,227, 20, 56,199, 53, 52,147,
+212,105, 82,185,251,118,152,125,158,111, 30,  2,240,161, 11,156,122,199,188, 30,177,142,  9, 85,254,115, 49,130,187, 55,179, 64,
+ 71,158,151,219, 38,113,112,135, 57,189,206, 20,216, 81,150,  9,181, 29,152, 41,244,158, 18, 69,235, 61,186, 44,185,180, 61,247,
+228, 56, 29,192,219,188,222,218, 85,214, 84,128,232, 54,  8, 89, 37,198,  9,128,169,  9,177,133,190, 69,148, 18,175, 29,201,203,
+203, 19,131, 33, 72,139,235, 44,127,254,131,159, 80, 77,198,124,245,246,  1,  7,163, 41,211,201, 49, 94, 73,180,237,152, 22,134,
+ 64, 75,140, 21, 94,168,164, 18, 38, 53,141,235, 89,232,130,127,247,241, 47,105,253, 59,220, 85,138,169, 72,  9,238,120, 60, 71,
+ 53, 51,162,168, 17, 46, 80, 58,207,184, 44,105,125,164, 12,142, 66, 10,164,139,212, 74, 96,163,134,178, 64,245, 13,139,222,114,
+ 82,  4,218,135, 87, 60, 82, 42,205,134, 77,133,236,122,122,165, 57,174, 12,115,231, 57, 42, 74,102,133,100, 60,170,208, 94, 16,
+ 60,232, 40, 24,213,  6, 23,  3, 39, 58,210,183,150, 23,102, 71,248,241,148,109,223,162, 14,142,216,174, 86,152, 99,205,159,190,
+ 96,  9,182,131, 16,249,227,155, 11,198,122,204, 95,254, 73,228,  7,139, 43,238,125,188, 66,108,214,233,108,216,174,247,230,241,
+ 79,207,101,  3,207,159,213, 62,133,239,161,135, 51,203,217,162,228, 63,224,120,125, 62,101, 90, 86, 52,  4, 62, 34,226,115,130,
+ 47,149, 36, 56,203,100, 50, 99,235, 35,  7,186,228,141,201, 41,135, 71,167,104, 96,185,106,104,150,139,196, 32,235,122, 92,238,
+222,105, 81, 32, 10,197,184,168,177, 46,205,227, 93,  8, 24, 85, 50, 42, 39,156,140,239, 48, 26,157, 82,141,231, 28,206, 11,188,
+240, 28, 90,  5,116,185,109, 77,106,251, 31, 29,164,222,253,213, 26,161,214,169,  3,173,158,  0,166,150, 69,  6,196, 13,  2, 90,
+123,  1,127,112, 68, 30, 18,237, 46, 51,120,186, 39,227, 79, 46,150,108,159,215,114, 65,215, 58,238,107, 79, 21,224,  5, 41,177,
+ 58,160,133,196, 75,197, 10, 65, 39, 13,133, 41,241, 66, 82, 32, 40, 39, 19,188,210,160, 75,250,224,185,121,224,121, 16, 11, 68,
+223,130, 60, 76,230, 98,  0, 23, 23,169,  8,242, 22, 97,219,103,204,212,173,131,209,  4, 68,106,213, 17, 21,170, 40, 18,191,174,
+207,173,151,245, 58,101,245, 42, 62,157,195,133,248,207, 75, 99,251,181,231,240,123,222,225,215,  1, 43,238, 60,164,111, 30,242,
+214,171, 55,185,115,112,192, 23, 79, 79, 56, 28,141,185,236, 27,182,157, 77,128,143,109,159,  5, 11,212,227,  8, 20,124,214, 36,
+214,215,109,254,109,116,108, 93,199,102,211, 18,109,  6,140,100, 32,196,231, 31, 57,228,  3,221,100,196,110,200, 96,110, 53,112,
+ 30,213,238,103,  3, 53,237,121, 20,  8,145,233,105,206, 63,238,154,229,195, 78,100,199,231,121,167,217,227, 92,135, 12,126,203,
+163,154,235,118,250, 32,123,250,228,122, 24,168,135,207, 90, 39,  3, 22,194,199, 68,225,216,108,177,214,177,180,158,179,237,150,
+243,109,195,131,245,146,181,107,121,240,209, 25,139,179, 75,250,224, 57,251,229,199,169, 37,232, 92,162,202,181,155,235,  0,124,
+109,247, 58,  0,250,154, 13,103,103,107,184,119,111,119, 45,116, 86,212, 27,212,239,204, 96,137, 40, 82,203, 46, 88, 16,146,209,
+ 48,197,136, 73, 30, 82, 33,169,164, 36, 34,152, 86,130,109,155, 80,240,133, 16, 76,132,160, 18,146, 82, 72, 60,176, 33, 85, 99,
+ 83, 69,146,161, 53,130,198,250, 93, 22, 25,124,222, 83,236, 84,255,180,120,220,229,110, 96, 16, 12,159,  3,102,226, 73,183, 52,
+ 37,161,168,137,227, 26,111, 12, 95, 51,154,219,147,146, 73, 97,152, 20, 37,117,140, 92,161, 40,203,154,149, 22, 68,163, 96, 92,
+241,173,249,156,201,168,230,168,212, 76,235,154,182, 52,248, 34,105,183, 63, 16,  2,107,198,212,178,100,105,  3, 15,125,228, 47,
+122,155, 70, 21,211, 58,181, 84,235, 42, 29,158, 78, 36, 60,133,218, 51,126, 10, 38,143, 97,178,147, 95,173,249,176,174, 56, 84,
+ 21,107,161,121,216, 88,254,175,197, 34, 21, 13,171, 77,154, 25,146, 57,189, 33, 37,146, 66,237,113,136, 67, 50,129, 17, 82,165,
+100, 80,120,162,211,217,249, 44, 16,188, 38,120,135, 15,  2,219,247,124,240,104,193, 47, 30, 46,248,201,251, 31,227,101,203,173,
+170, 96,109, 91, 42,  1, 54,122,148, 84, 68,  4, 93,102,106, 60,180, 45, 63,109, 59,250, 40,121, 20,  5, 11, 41,240, 81, 34, 70,
+ 35,182, 14, 54, 50, 73, 63,203, 82,179,234,193,107, 65,139,196,118, 62, 77, 25,250,192,185, 75,244,182, 90,105,214,174,165,107,
+ 90,138,174,165,245,142,105,215, 34,156,101, 29, 60, 68,207, 77, 34, 50,  6, 70,193,115,208,  5,198,198, 96,140, 65,  8,137, 48,
+201, 22,212, 55, 29,218,  5, 74,173, 40,163,199, 40,201, 44, 66,129,224, 96, 52,166,234,123,102, 74,115,247,228, 46,135,229,132,
+187,  7, 55,153,160,121,101, 60, 99, 90, 21,220, 60, 40, 57, 62,158,115,223,133,228,103, 97,178,194,227, 51,206,132,103,241,220,
+159,213, 36, 18,251,  0,178,174,227,131,203, 53, 75, 21,249,229,178,225,103,109,203,125,235,120,100, 61,181, 73,254,244, 65, 42,
+ 74, 97,232,189,163, 42, 10, 14,202,212,  1,170,234,130,224, 60,190,183, 28, 11,149,196,124,164, 78,115,242,124, 22,117,237,150,
+214,181, 52, 93,139,144,129, 82, 75,148,212,124,233,139, 95,225,173, 47,222,226,133, 91, 83,156, 11,184,182,101,187, 89,241,211,
+243,143, 88,186,212,114, 23,190,231, 15,142,143,249,234,201,156,175,221, 60,226,167, 93,158,135,111, 87,215,227,190, 84, 88,100,
+155,102, 23,174, 19,202,199,180, 33,158, 44,134,194,243,207,102, 49,140,214,250,164, 40,121,207, 59, 94, 19,138,211, 66, 97,133,
+162,146,145,165, 52,108, 77,197,123,202, 96,131,167, 82,  5,163,202,224,156, 69, 41,201,170,107,153,148,117, 82,254, 35,208, 76,
+103, 80, 23,188,122,122,147,171, 73,205, 23,111,223, 69, 31,205,217, 72, 13,162, 64, 68,123,125, 63, 51, 79, 93, 39,222,172, 46,
+144,179, 41,135,147,138,173,239, 40,141,225,133,195,  9,203, 77,147, 14, 79,223,165,202, 98,  0, 81,197, 12, 78,250,255, 67,235,
+253,179,130,235, 30, 75, 71,247,200, 33, 90,162,110, 28,242,133,211, 27, 28,141,166,  8,169, 41,141,161,150,134,251,143, 22,176,
+220, 38, 47, 95,155, 91,167,  3, 69,141, 62, 27,151,144,218,153,209,239,108, 77, 93,  6,165, 53,109,250,217, 16,124,126,237,113,
+131,218,155,205,202,157,189,168, 12,187,121, 59,159,208, 10, 31,244,248,133,222, 33, 83,  7,217,215,161,125,175,242,123,244, 46,
+  3,231,220,238, 58, 10,118, 62,196,  3, 40,234, 73,127,119,153,219,250,195,235, 24,126,102,178,203, 92,161,211, 92, 74, 85,153,
+ 62, 37, 19, 86,227, 60, 39,145, 23, 87,208,116,116, 31,159,165, 86,236,106,  3,171,203,140,109,112, 41,  0,119, 93, 58,244,227,
+ 32,115,251, 68,192,235,250,116,223,246,175,133, 12,  9, 23, 50,188, 23,155,109, 78,251, 28, 60,124,234, 66, 89, 37,137, 54, 50,
+ 83, 17,163, 12, 70,169,132,237, 83,201,  9,111,170, 19,  8,178,212, 18,239,  2, 90, 68,180, 80,196,224, 57, 18,130, 86, 66, 25,
+ 21,133,132, 71,157,163,148, 18, 59,236, 33,177,135,141,136, 89,194,214,103, 45,247,225, 62, 12,238,130, 33,238,  2,250,112,178,
+ 74,145,240, 12,195,232, 99, 50,130,113,205,183,234,146,131,210, 80,233, 34,255,151, 32, 10,201,105, 85,112, 97,  3,189,209, 40,
+ 93,242, 95,158, 28,163, 11,195, 87,167, 51, 94,153,159,242,226,168,230,214,104,204,  5,130, 38,235,226,159,201,146,159,  8, 73,
+135,226,163, 24,248,102,125,192,116, 52,162, 46,167, 44, 76,153, 42,241,186, 78, 96,199,241,  8, 14,143,146,  2,227,124, 14, 47,
+156,192,205, 99, 56,152,229, 89,125,  2, 12,189,173, 75,254,161,115,188, 61,236,163,205, 50,119, 70,178,102,252,208,114, 50, 69,
+178,162,214, 10, 38, 19, 68,111,179, 70, 70,204,  1, 29,136,150,232, 83,130, 27,133, 32, 72, 75,240, 17, 79,139,119, 61,190, 89,
+225, 55, 13,143,174,122,230, 99,141, 11,142,149,247,105,164, 80,214,184, 24,233, 99,196, 70,199,207,187, 45,247,109,196,134, 72,
+ 48,154, 82, 87, 84, 85,137,143, 10, 39,116,214,132,143,108,162, 72,213,121,161,105,123,143,147,  2,219, 71,  2, 30, 25,  2, 50,
+  6,150,192, 44,  8,108,179, 37, 10,137,246, 29,173,237,120,232,122,198,170,224,170,107,208,  8, 78,138,146,109,211,112, 56, 30,
+ 99,172,199,117,150,222,246,108,150, 13,205,106,139, 80, 18, 25, 60, 90,165,253,166,173, 69, 70, 40,164, 64,216,158,170, 44,153,
+140, 38,200, 16, 41,116,137, 86,  9,  7, 84, 10,197,152,200,188,168,168, 75,195,237,113,197,237,155, 71,232,131, 25,231, 49,161,
+182, 99, 84,136, 66, 94, 87,161,226, 57, 85,186,248,196, 66,195,179,184, 92,113,177,217,178,186,108,217,110,123,204,124, 76,107,
+251,196,185, 23,176,117,142, 73, 61, 38,184,  4,110,156,152,  9,133,146,188, 60, 46,184, 83, 24,122, 23,121,233,240,128,224, 60,
+ 23,222, 99,148,192,123,143, 11, 61,235,229, 58,123, 68,  8,170,170,100, 92, 76,185,123,247,  5, 78,143,198,180,157,231,195, 15,
+ 47,120,255,253,123,188,255,224, 30,255,112,249,113, 94, 75,129,175,207, 15,249,198,108,202,171,227, 99, 94,153,158,240,218,164,
+230,123,203, 62,117,142,252, 54,123, 64, 20, 41,150,177,199,126, 25,198,146,195,121,166, 63,155,197,184,  8, 33,159, 71,  1,235,
+  3, 45, 34, 41,123, 35,248, 32, 70, 26,163, 88,203,130, 51, 93, 49, 47,106, 74,  4,194,  7,148,210,120, 31,168,180, 97,217,183,
+ 32,193, 41,205,157,162,224,119,142,143, 57,156,204,249, 55, 71, 55,184,115,114,131,215,166, 51, 78,111,221,228,157,135, 15, 96,
+ 60, 69,116,201,  5, 81,113,252,133,239, 48,174,160, 24,163,238,220,224,180,154,242,141,187, 47,115, 88, 87,220, 28,143,  9, 34,
+208,201, 64, 95, 23, 41,131,185, 56,223,129,121,  2,255,178, 42,244,231,  5,245,129,214,165, 36, 20,134,151, 94,187,197, 23, 78,
+ 94, 68,171,132,188,157,212, 83,100,132, 43,183,101,251,224, 44,169,198, 57,118,252,112, 57,248,118,103,145, 27,225,179,169, 73,
+ 22,218,240, 54, 85,146, 49,236,132,250,127,173, 96,206, 14,196, 37,247, 42,235,152, 27,104, 49,235, 22,199,248,233, 28,240,100,
+142, 20,131, 82, 30,113,231,164, 55, 84,249,170, 72,149,186,235, 51, 80,196,239,124,210,  7,245,180,103,129,188,134,128,222,239,
+129,215,170, 34,211,229,246, 90, 96,186,206, 45,248,172,143, 44,115, 23,164,219,164,107,230,187,  4,136,178,118,  7, 26,177,109,
+  6,251,181,105,  3, 41,185, 75, 52,158,236, 68,  8,241,244,181, 24, 50,114,138,236,247,154, 77,138,  6,160, 92,182,127, 36, 68,
+ 70, 70,210, 91,152,142, 36,129,192,204, 72,148, 74,192,163, 40,  4, 42, 70,148,143,140,149,202,183, 39, 82, 74,201, 50,  4, 70,
+  8,150,206,225,124,224,164,212, 44, 93,192,134, 44, 19,123, 45,216,148, 49, 28,110, 24,223,200,148,104,239,  3,207, 76,110,209,
+203,189,170,125,160,222,201,108,170,164, 10, 78,166,  5,191, 49, 29, 37,203, 16,  9, 82,168, 36,217, 47, 53, 49, 70,206,163,228,
+202, 59,254, 85, 61, 97, 90,143, 57, 40, 19, 40, 73,232,164,175,239,164,100, 29,  4,107, 83,226,101,210,208,126,179, 26,241, 82,
+ 89,243, 70, 57,226,112, 82,112,219, 24,238, 78,102,220,119,158, 70,155, 20,124, 77,145,130,187, 34,  7,246, 57,212,211,164,164,
+ 86,142, 18,168,180, 30, 37, 64, 92, 81,165,170,222,231, 49,134,206,236,131,211, 35, 56,152,195,237, 91,240,210,203, 48, 31, 39,
+  5,179, 81,137, 32,173, 53,209,219,244,183,109,159,174, 65, 93, 19,157, 79,183, 74, 65, 36, 16,100, 32,108,219,107, 58,151, 15,
+ 61,206, 74,222,221, 56,222,238, 44, 63, 95,116,160, 60,115,  9, 94, 68,214,221,134, 95,118, 45,127,189,233,112, 62,226,180,162,
+ 48,  5, 85,161, 83, 34,107, 84,178,142,168, 52,222, 90,130,  8, 20,186, 96,221,121,138, 66,225,251, 64,235,  2,227, 90, 33, 67,
+228,188,235, 41,219, 22,215,111, 89,119, 29,135, 66, 18,251, 13,155,108,151,252,151,151, 11,180, 52, 88,223,177,218,180,148,165,
+161, 82,154,198, 59,206,182, 91,214,235, 37,163,224, 88, 54, 43, 46, 23, 75,198, 69,  1,206, 82,  6,144, 74,161, 70,163,100, 56,
+ 37, 64, 27,131, 12,  1, 51, 30, 35, 11, 67,236, 44, 82, 72,124,215, 19,162, 67, 16,168, 99,228, 70, 85, 51,175, 43,230, 82,242,
+165, 27,135,204, 71, 37,167, 39, 51, 62,242, 50,221, 39, 15, 20, 50, 25,233,236,  7,114, 83, 93, 43,159,137, 33, 41, 55, 89, 46,
+251, 73,108,144,207, 50,196,182,199,159,111, 32,251, 35, 56, 27,136, 82, 19,157, 99,166, 21,117, 81, 35,108,195,235,199,  7,220,
+172, 13,194,104,238,206, 70, 68, 41, 16,163, 49, 87,162,166, 52, 83, 80,138,182,185,226,170, 89,114,177,217, 18,133,199,132,228,
+150,119,114,227,132,211,195,154, 66, 71,222,189,247, 49,255,221,223,253, 61,247,126,244, 54, 60,122,148,206,177,202,240,159,221,
+188,201,216,140, 57, 24, 79,169, 71,147,164,237, 63, 86,188,127,209,164,115,121, 48,123, 26, 58,183, 66,166, 49,156,214,187,121,
+249,224,255,190,223,225,251, 85,182,199, 60, 97,174, 19,225,172,135,191,223,182,172,140,230,255,232, 61, 27, 17,248,113,151,220,
+222, 14,138,  2, 45, 37,198, 40, 20,146,222,247, 52,206, 18,131,165, 17,145, 62,104,222, 56, 56,228,203,  7, 71,188, 57, 59,225,
+100, 50,225, 11,211, 25,186,158,224,123,199,139,119, 95,194, 23,176,157,207,241,219, 30,197,173,175,127,167,120,253, 53,126,251,
+173,183,184,125,116,135, 47,156,188, 64,223, 59, 94, 56,189, 65, 64, 81, 98,120,245,228,148,113,169,120, 24,186, 68, 73,217, 54,
+255,241,228, 96,127, 29, 16,221,116,156, 14,154,224, 30,159,167, 40,  9,163, 89, 82,207, 67,177, 80,130,163, 81,205,141,195, 91,
+ 40,101,232,251,150, 85,211,176,108, 59,150, 87,219,212,150, 85, 50, 85,121, 74,102, 26,160, 73, 65,170,168,118,104, 93,153,179,
+187,144,171, 48,235, 19, 55, 58,248,207,247,250,149,206,  7,162,201,128, 46,191, 11,164, 82,114,109, 24, 48,160, 56, 62,109,  7,
+101,  8,132,215, 78, 65, 50,  7, 16,151,186,  1, 34, 39, 38, 67, 75, 91,102,231, 62, 33,115, 64,205, 63,123, 86,  2,161,116,174,
+162,195,238,112, 24,218,243, 67,139,182,172, 82, 21,237, 99,146, 53,141,  3,207,222,237, 56,243,  3, 72,103,176,253, 29,222,219,
+190,225,201,190,205,235,245, 33, 19,158, 47, 97, 44,179,175,177,200,221,148,114,143, 22, 41,228,206,233, 45, 66,105, 20, 69,  5,
+ 93, 23, 81, 82, 33,133,160,146,208, 33,216,246,  9,253,174, 68,162, 25, 85, 34,153,236,180, 49, 80, 10,201,202,  5,106,145,230,
+139, 23,214, 17,163,160,243,123,140,132,152,105,145,131, 85,163,202, 38, 61, 46,236,128,144,131,221,192,181,244,236, 94,151,201,
+101, 33,160,152, 16,231, 91, 83,241,133, 81, 65, 97, 12, 18,129, 86, 26, 45, 21, 13,129, 82,105, 30,118, 29,  7, 90,243,202,100,
+130, 64, 49, 46, 42,150, 33, 82, 86, 37,202, 20, 56,153,146,138,119, 35, 68, 93, 66, 89,242,133,162,226,165, 81,197,100, 50, 98,
+102, 10,122, 37, 17, 40, 42, 93,242,158,203,199,152, 41,178,225,209, 24, 85, 77, 41,170,  9,245,193, 45, 94, 46,199, 92, 84, 99,
+ 40,199,  9, 40, 37,242,186, 48,227, 36,105,171, 10,168,102,233,251,131, 23,224,240,  5, 24, 31, 65, 49,129,249,141, 68,241, 57,
+190,  1,163, 26, 49,171,225,248, 48, 89,179,222, 60,129,131,  3,152, 77, 18,204,231,197, 91,137, 20,114,122, 66,220,110,137,243,
+ 83,130, 13,196, 62,  5,247,224, 37, 65,234,252,189,103,217, 71,182,177,195,227,104,125,224,123,203,134,181,237,241,  2,188, 20,
+ 72,105, 48, 90, 51, 46, 74,180,144,140, 43,133,  8,129,210,104,202, 66,177,218,108, 40,100, 74,152,124, 38,216, 92,173, 59,  2,
+142,166,105,241, 93,195, 68,  8,164,181,172,187, 13, 74,105,238, 89,203,125,107,217, 70,197,205,131,116, 48,247,117,205,187,235,
+158, 63, 59, 95,208, 24,193,195,102,203,155,243, 49, 87,237,  6,169, 37, 63, 95,109,184, 88, 47,144,222,163,187,  6, 89, 24,108,
+187, 69, 42,133, 44, 74,162,115,148,213, 24,161, 13,161,233,145, 38, 17,219,250,174,161,247, 61, 93,223, 80, 41,131, 65, 50,142,
+130,163,106, 68, 41, 37,243,170,102,164, 21,175, 31, 79,169,199,  5,151, 85,141,215, 21,200, 42, 85,239, 93,198, 56,248, 44,165,
+170,117,186, 71, 36,208,173,144,123,238,156,  3,216,246,  9, 74, 28,219, 22,150, 75,196,163, 21,  8,193,111,191,242, 26,175, 31,
+159, 82, 11,152,106,193,173,217,140,211, 73,205,205,233,136, 94, 73, 84,169,233,181, 66,141,107, 86, 62,237,233,174,239, 88, 55,
+107, 54,109, 75,244,158,217,104,194,168, 26,113,124,116,202,104,100,184, 92, 55,108, 87, 27,254,230,  7, 63, 66, 60,120, 23, 54,
+107, 68,212,112, 60,231, 95, 31,157,114,115, 58,197, 34,105, 16, 84,245,136,251,206,243,174,137,  9,201,239,251,199, 99,129,179,
+ 59,134,207,126,251,125,120,255, 70,239, 24, 71,159, 96, 57, 46,246,207, 64,161,192, 40, 30,181, 14,154,158, 51,  7, 75, 23,104,
+117, 96,170, 75,166, 82, 98,144,201,249, 45,128,247, 73, 74,183, 21,130,186, 48,188, 94, 79,208, 74, 81,141,199, 76,234,138,178,
+ 48, 76,198, 21, 91, 97,240,245,  4,239, 37,119,230,  7,232, 89,141,226,139,255,250, 59, 95,188,251, 34, 47, 31,189,128, 41,106,
+166,147,138,211, 27,183,210, 65,160, 74, 78,143,143,  9,189,101, 82, 22,188,113,114, 19, 89, 22,156, 15, 85, 89,215,253,203,  9,
+234,197, 46,227, 39,232,164, 99, 61,124,212, 73,171, 29,163,210,108,112,219, 80, 77, 43,110, 31,223, 68, 75,205,178,109, 88,181,
+ 45, 23,155, 13, 27, 23, 19, 79, 93,202,116,240, 22,249, 48,214, 58, 37,  5,131, 83, 79,204,183,212,250,236,207,219,165, 25, 75,
+223,124,190,215,111,116, 10,118,131,115,208,224,165,190,111,217, 39,  7,112, 88,120,218,138,243,147, 40, 43,  3,189, 75,136,132,
+172, 31,146, 29,231,118,146,167,125,150,160, 29,156,246,244, 30,207,251, 89, 45,254, 65,138,118,160, 77,117,109,202,238,  7,219,
+ 94,159,223,147,235, 82,181,172,179,231, 59, 89, 31, 89,100,209,155,144,129,153, 90,237,172,128,159, 21,160,165,120, 60,160, 15,
+137,195, 53, 46, 32, 60,141, 40, 31,232,127,168, 52,203,142,153,194, 55,140,100, 50,136, 74,201,200,177, 74,122,219,189, 23,140,
+181,196, 75,208,  8,188,134, 34, 36, 97,156, 81,136,108,  0, 35, 69, 22, 49, 12,212, 82,112,238, 28,189,143, 40, 37, 65,  4,156,
+144,248,193,181,238,122,110,158,120,173, 41,232,229,228, 74,239,129, 31,  7,223,250,161, 13, 47,242, 97, 51,140, 49, 68,154,168,
+ 81, 26,142,198,134,137, 22,  4,161, 81, 49,160,149,160,140,146, 69,240,124, 28, 34,183,116, 65,109, 20,149, 80, 56,146,252,104,
+140, 73,116,197,122,152,143, 70,108,187,158, 11, 83,242, 39,245,136, 27, 85,193,164,210,172,123,201,214, 58,166,245,152,117,231,
+169, 10,205, 54,194, 66,170,228,163,173, 52,255,230,224,152,215,170,146,111, 30, 28,240,166, 81,188, 80, 87,124,105, 52,199,171,
+130,243,  8, 20, 35, 48,163, 68,133, 53, 89,196, 67,104,168,231,188,121,122,147,163,106,204,241,244,152,249,193, 49,186,154,178,
+173,166, 41,176, 76, 15,161, 62, 64, 40,  5, 55,110,165, 81,195,104, 12,167,119,136,211, 10, 78,239,192,241, 65, 18,105,185,243,
+ 42,193, 89,226,184, 78,129, 60, 42, 66,232,137, 69, 73,208,154, 16, 36,182,119, 60, 90,116,188,211, 90,126,126,177, 98, 11,  4,
+231,  9, 74, 16,140, 33,104,195, 72, 43, 42,169, 56, 25,149, 28,  9,137, 38, 48, 17, 18,235, 60,181, 86,184,222,179, 70,208, 90,
+203,213,118,131, 13,145,179,117,131,116, 45,139,190,229,253,205, 21,219,118,205,165, 11, 60,176,150,183,215, 27,154,168,249,210,
+141, 99,238, 93,109,153,215, 21,203, 69,139,168, 38,220,170, 43, 30,246, 17, 99,106,230, 37, 28, 77, 39, 60,104,123,126,210, 57,
+ 54,120, 86,214,178, 45, 12, 86, 21, 68,173, 89,109, 27,150,  2, 58,103,209, 74, 35, 59,143,154,142,  8,157,163,109, 55,  4, 17,
+ 89,119, 43,130, 76,107, 78,132,128, 82,138,224, 29,138, 72,161, 12, 81, 73, 70, 82,115, 50, 26,241, 27,243,  9,119,199, 21,191,
+125, 50,230,  7, 61, 41,217,234, 35,  4, 71,172, 70,185,179,146, 71, 88,213, 52, 37,250,133,222, 25, 67, 61,167, 45,143, 77,221,
+  2,198, 51,254,248,183,190, 65, 93, 40,230,227, 17,139,245,150, 55,142,142, 41,140,102,153,  3,171, 55,154, 86, 10, 30, 88,205,
+ 58, 10, 54,125,160,117, 93,202,113,125,143, 23,142,113, 89,115, 58,191,193,203,175,190,200,201, 97, 77, 45, 37,239,190,251,  1,
+223,255,127,255, 38, 89, 94, 15, 32, 95, 23, 24, 29,140,121,161, 24, 19,202, 17, 93,132,183,155, 13, 63,107, 60,231,146,164,175,
+210,248,199, 99,129,220, 59,251,134,226, 97,168,202, 93, 62,131,162,218,157, 97,241, 87,119,171,133, 78,166, 66,148,114,135,153,
+ 81, 58,119,153, 34, 91, 45, 57,235,183, 28,102,  7, 58, 31, 44,141,107,233,189,103, 19,123, 30,181,158,111, 30, 30,225,163,224,
+104, 50,167, 11,  1, 93, 26, 58,161, 18,188,100, 92,211,134,136, 42, 39, 24, 89,114, 88, 77, 81,188,249,251,223,249,189,215,191,
+204,209,209,  9,179,217,132,233,108, 66,111, 29,227,113,205,100, 58,162,107,122, 14,142,142, 24, 79, 38,152, 40,185, 49,157, 50,
+ 25, 21,124,100, 52,209,171,164,237,203,191,128, 22,124, 33, 19, 66, 93, 10,184, 90, 39,137,215,161,202,157,206,211,194,204, 51,
+ 63,124,228,226,189,251, 92,200,200,197,122,137, 66,114,182, 89,208, 57,199,230,193,249,206,241,202,103, 91,197, 34, 43,110, 21,
+106, 39,116, 51,208,192, 66, 62,120, 67,191, 19, 98,249, 92, 84,189, 12,112, 25, 68, 13,134, 92,112,255,241,100,230,134,235, 79,
+ 65, 67,213,185,253, 60,120,113, 15, 45, 92, 37,211,124, 91,102, 14,186,205, 74,103,215,214,187,195, 28, 93,236,253, 94,120, 54,
+ 48,110,  8,172,131,150,252, 16,144,  7,249, 88,149,147, 15,153, 65, 42,195, 11, 27,213,233,223,213, 36,139,227,100, 85, 55,181,
+247,250,158,156,113, 13,216,128,253,160, 62, 84,218, 62,211,173, 76,158,227, 15,191, 51,184,221,105,177,167, 83,111,216,167, 68,
+140, 84, 74,114, 52,130, 88,106, 54,109,224,184, 20,180, 34, 82, 72,197,170,207,147, 22, 37, 48, 49, 82, 75,133,138,176,138,201,
+ 86, 17, 34,193,129, 22, 73,203,122, 25, 61,  5,130,101,235,119,246,198, 98,111,138, 41,213, 94, 96, 79, 38, 51,215, 72,222,107,
+250, 98,254,155,225,186,135,176,115, 99,243, 30,164,230,  3, 47,249,210,216, 48, 50,  5,165, 84,120, 17, 81, 18,190,223, 88,254,
+177,177,212, 33,112,168, 53, 70, 21,  8, 20, 74,  9, 36, 18,165, 20,198,104,222, 89,182,220, 11,112, 74,224,229,170,224,120, 92,
+225, 81, 20,218,112,102, 29, 42, 66, 85, 22,172, 28,104, 93,242,190, 77, 35,159, 47,215, 99, 94, 80,154, 23,103, 51,164,210, 24,
+ 35,153,214, 53, 72,197,121,103,121, 80,142,211,107, 53, 38, 85,226,101,  1, 66,113, 52,155,242, 71,163,154,175, 29,141,249,210,
+141, 41,119, 70, 37, 47, 21, 48, 42, 43,222,  9,192,120,150, 70, 46,186,128,178, 66, 84, 19,168,103, 48, 57,  1, 41,121,235,198,
+ 75,172, 17,152,241, 33, 95,120,225, 37, 30, 58,  7, 71, 71,196, 66, 18, 15,230, 68,165,136, 62, 18, 75,157,116,185,133, 36, 10,
+ 79,104, 91,226,122, 73,116,145, 96,123, 66,136,  4,109,  8, 74,224, 68,100,164, 53,115, 41,185,173, 21, 19, 83,114,144,249,241,
+ 83,169,  8,222,226,130, 37, 90, 79,211,247, 68, 68,234,230,245, 45, 15, 58,199,229,118,197, 89,211,208, 70,193,134,142,191,189,
+ 90, 98,189,167, 87,146,208, 91, 94,158, 79, 88, 49,101,227, 29, 71,117, 65,148,138,141,247, 84,101,193,119,207, 22,252,163,215,
+188,189, 13,244, 40,222,241,130, 86,106,182,227,130,179,224,184, 52,  5,110, 90,113,229, 97, 89, 22,116, 93, 11,227,146,208,246,
+116,161,167,151,146, 15, 86,231,132,232,104,162,163, 68, 16,242,248, 69,106,131, 15,  1, 23, 61, 49,  4, 70,198,240,178, 54,188,
+ 88,140,120,101, 58, 99, 41,  5,183,106,195,219, 54,173,179,104,202,108,190,228,136, 62, 32,234, 41,136, 36, 45,139,172,242, 30,
+206, 22,198,207,233,224,138, 32,249,218,183,191,206,235,183, 95, 65,  2,117, 53,226,195,135,247, 64,150, 72, 33, 57, 29,215, 44,
+156, 99,237, 60, 31,108, 61,223,181,145,247,122,203, 86, 68,150,214,129, 48,232,140,111,154,234,146, 27,199,167,220,120,225,152,
+182,179,172,215, 29,255,203, 95,253,123, 46,222,126,251,241,100,194,247,188, 43, 12,  7, 19, 69, 39, 74, 46,189,231,111, 87, 29,
+255, 24,243,121, 98,178, 80,215,229,122,167,136, 58, 36,243,214,238,102,233,195,207,135,194, 33, 10, 30, 67,174,126,146, 95, 67,
+ 85,236,180,  2,148, 74,  8,118,145, 71,136,203, 53,157,150,172,156,165, 16,150,232, 45, 11,219,240,209,182,101,105, 29, 47,141,
+ 12,135,101, 69, 89,142,152,215, 37,173, 20, 68,161,233, 99,224, 96, 84, 16, 98,164,151,130,135,157, 35, 20, 53, 50, 42,212, 27,
+191,251,167,223,121,237,133, 23,185, 88, 52,156, 28, 30, 98,125, 96, 54,175, 48,133, 70,169,196,179, 11, 62, 50,158, 84, 24, 85,
+ 18,188,160,144,134,155,227,154,135,210,167,142,107,111, 63,149, 58,218,103,245,  6,254, 92,195,102,253,156, 57, 71,204, 60,242,
+190,217,153,207,107,157,170,161,186, 78,224, 54,193,206,255,122,189,102,117,209,210,207, 71, 60, 88, 44,176,209,243,232,193,121,
+146,118,149, 49, 29,178, 82,236,132, 96,194,192, 63,222, 67,147,135,144,126, 63,180, 73,  3,217,121,144,159, 19,  3,144, 91,186,
+215,126,221,136, 12,198, 11, 79, 35, 50, 63, 77,142, 37,247,105,103,123,224, 16,173,210,130,179, 62,221,211,129,234, 49,  8,149,
+ 96, 51,152, 45,111,224,231, 25,167, 12,254,229, 58,207,220,219, 46,253,219,229,205, 20,179,233,204, 53,154, 95,239,161,231, 67,
+ 58,188,135, 77, 51, 24,  7,145,239,161, 28,228,136,229,227,111,118,216,116, 79,221,251,184,179, 18,134,116,191, 10,181, 11,252,
+ 65,103, 25, 46,177, 19,229,201,215,199, 86,134, 50, 70, 28,130, 82, 70, 14, 20,120,165,153, 32,121,100,  5, 66, 36,211, 23, 31,
+  4,165,  2, 31, 99,202, 93,128, 62, 70, 52,130,101, 72, 45,114,161,  5,155, 16, 88,109,193, 23,114,135, 91, 24,238,229,254,235,
+189,238, 20, 12, 82,192,236, 76, 39,246,157,157,134,185,158,247, 57,137,137,169,163, 82,149,  8, 19,121, 96,123,124,176,124,216,
+ 58,174,154,134,239,247, 14,108, 71, 47, 52, 47, 21, 10,225, 61, 83, 93, 82, 41,  5,  8, 98,  8,116,206,241,160,143,252,204, 89,
+ 94, 50,134, 49, 18, 29,160, 67, 98, 16, 28,205, 42,130, 23,233,182, 73,193,251,155, 45,103, 25,  7,240, 71,243, 49,163,178, 98,
+ 99, 29,133,210, 20, 85, 69,219, 71,124,244,152,122,132,136,145,139,152,109,144, 99,128,170,  6,173,248,173, 73,197, 43,227,130,
+162, 50, 92, 89,201,172,214,180, 81, 48, 53,146,195,162,224,189, 62,166,185,188,150, 96,234, 44, 89, 91,242,237,201,132, 63,190,
+117,130,139,146,111, 30, 30,112,211, 20, 40,109,184,115,112,202, 47,157, 39,206, 78,211, 65, 90,150,112, 56,205,  9, 88,145, 80,
+224, 85, 10,114,209, 67,108,151,217, 57, 14,226,166, 35, 78,107,208, 26,129,224,229, 82,112, 36, 36,135, 33, 82,196,192, 17,130,
+121,132,146,136,244,150, 14,203,184,144,244, 77, 79,239, 59,162,132,202,109,209, 74,225,109,199, 13,233, 41,188,199,246,150,211,
+ 74, 80,198,142,159,246,146,219, 35,205,182,179,140,234, 57,103,125, 79,223,119,188, 48,159,243,209,118,203,172, 26,113,217,181,
+204,171,138,217,116, 78, 81, 22, 56, 96, 77,193,249,232,  0,135,228, 92, 22, 52,101,201,251, 27, 75, 51,169,185,208,138,243,174,
+229, 35,165,248,165,119,124, 40,  2, 15,164, 38,120, 79,167, 52,147,232,177, 82,208, 59,135, 21,130,222, 59,130, 86,156, 72,131,
+145,134, 90,105,130,212,156,154,130, 94,107, 46, 10,195,133,  0,186, 44, 79, 43, 69,234,156,217,237, 53, 13, 86,168,228,194,118,
+141,173,121, 18, 85,175,117,114,166, 83,240,240,157,247,121,237,141, 87,  9,  4, 54,171, 75,254,183, 31,255,128,159, 63, 58,231,
+141,249, 33,247, 55, 91,108,148,252, 98,225,248, 65,227,248, 97,103, 89, 72,201,153,179,156, 11, 40,202,146,136, 66, 72, 73,173,
+ 75,142,166,  7, 28, 29, 79,136, 17,238,191,255,136, 63,255,179,127,151,198,194,123,144, 26, 97, 29,244, 29, 63,235, 28,127,223,
+181,252, 48, 68, 46, 84,145, 94, 63, 49,159,105, 89,149,115,219,165,138,122,168,204,149,126, 92,245,242,218, 44, 76,164,243, 63,
+202, 79,198, 44, 93,203, 78,231, 98, 76,155,212,221, 22, 58, 43,210,229,162,230,252,156,245,170,229, 61, 31,233,218,134,101, 12,
+244,222,113,175,107,208,  1, 94,170, 39, 28, 84, 37,231, 65,114,179, 42, 89, 57,203, 65, 85, 98,165,100,209,121, 62, 92, 59,182,
+ 65,210,224,153,212, 21,106,250,149, 63,252,206,171,183,110, 51,155, 28,226, 36,  8, 41,168, 42, 67,232,  2,101,165, 81,198, 96,
+ 10,133,144,  2, 23,  2,  2, 73,215, 37,203,152,182,107,184,218,118,233,208,  9,225, 41, 27,185, 79, 67,147,248,164,  4,224,179,
+205,156,229, 14,120,244, 36,136, 97, 64, 35,218, 39, 36,101,101, 14,228,202,236, 42,208,135,139,204, 53, 92,209, 93, 92,208,109,
+ 58,182,151,203,212, 62,143,195,156, 37,183, 99,188,203,146,168, 67,192, 30, 60,171, 99,202,110, 93,159, 52,226, 67,158,195,200,
+207,158,167, 60,230,150,117,125, 85, 28, 59,227,150,207,249,152,207, 74, 30,226, 19,226, 45,251,247,115, 95,165,239,121,152,138,
+161,130, 46,139, 93,149,236,135,106,221,239,181,245,115,  5,122, 61, 23,207,242,196,131, 48, 11, 34,  3,194,114,160,234,114,107,
+ 94,237,241,232,131,125,188, 98,223, 15,110, 49, 38, 33, 32,111,119, 96, 61,185, 39,203,170,196,222,224,107,112,148,203, 27, 47,
+219,205, 74,157, 64, 79,117, 37,169,181,160,183,112, 80, 37,  9,220, 46,130,172, 20,109,198, 66,110, 92,164,148, 17,147,177,131,
+125,  4, 65,164, 19,130, 16, 60, 65, 10,156,247,148, 82,177,201,220,247,232,194,174,175, 30,247,241,198, 97,247,189,205, 64, 76,
+177, 87,165, 15,244,203, 33,240,239,191,255,144,213,234, 26,203, 89,227,121,212, 56,222, 91,182,124,180,105,249,160,181,201,109,
+209, 91, 58,235,232,188,231,141,217,140,177, 80,105,154,130,196, 72,205,195,118,203,119, 55, 75, 26,111, 89,219,158,223,156, 79,
+ 24,149,138,211,113,141,174, 18,144,208,247, 62,187,106,  6,254,194, 38,241,159,223,171, 13,167,166,192,199,192,188, 52, 44,179,
+229,175, 85, 10,147,131,203, 61,235, 89,198, 12, 92, 52,  6,188,231,246,184,230, 37,163, 24,155, 18,139,160, 50,146,141,247,232,
+ 50,  1, 42, 23,109,199, 90, 73,182, 62,166,100, 64,  3, 66,241,214,124,194,215, 15,198,120,161,121,121, 90,112, 22, 13, 55, 75,
+ 77,101, 12, 31,184,136,158, 76, 88,186,152,198, 98,179,227, 84,213, 31, 28,103, 21, 72, 65,236, 33, 78,103,208,183,196,110,147,
+153, 60, 45, 49,122,196,170,  5, 35,120,177, 48,124, 81,  4, 14,149,198,216, 45, 19,  4,211,232, 41, 98,224, 32, 68, 76,112,156,
+120,199,204, 57,110,  8,203, 76,  9,198, 49,224, 67,154,153, 76,243, 89,227,148,230,134, 22,156,245, 61,151,155,142,190,235,248,
+ 97,223,243,155,199, 39, 84,117, 65,107, 97, 86,215, 92, 54,150, 82, 74,130,150, 28, 85, 99, 30,110,183, 92,  5,135, 21,146,195,
+241,132, 88,150, 76,141,226,223,175, 59,190,120, 56,225,127, 63, 91,242,230,233,156,247,130, 98,189,109,185,168, 70,156, 69,201,
+185, 46,120, 20, 20,151,133,100, 93,141,208,125,203,131,162, 36,218,158, 54, 68,214,118,139,149,146, 18,152, 20, 21,181,128, 32,
+  4,165, 76,202,142,149,208,132, 66,243, 75, 41,105, 11, 13, 66, 19,251,204, 32,177, 54, 87,235,201,131, 66, 20,131, 24,138,127,
+ 26,187, 50, 25,167, 17, 73, 89, 33,108,228, 31,222,121,135,127,216,158,243,163,159,191,131,248,249,251,216,251,247,249,222,197,
+ 21,127,119,254, 17,151, 54,240,151,219,134,135, 49,119,212,188,205,243,104,201,178,235,185,138, 32,116,137,142,130,153,174,232,
+172,103,185, 92,241,224,236, 17, 63,251,233,219,169,197,255,100, 12,242,185,189, 46, 69, 18,135,201, 73,191,112,109,146,153,136,
+ 49,237,151, 24,147, 90,219,117, 16,183,233, 12, 27,176, 66,195,156,221,217, 92,120,248,103, 83,119, 31,195, 19, 13,184,156, 44,
+171, 45, 50,219,198,147,228,144, 99, 62,159,180, 73, 95,183, 13, 87,214,115,222,245,156,181, 13, 29,145,143,154, 14,240,220, 54,
+ 37, 19,173,169,202, 18, 81, 20,136,  0,203, 16,105,  4,124,188,245, 44, 66,143, 20,146,206,123,212, 75,223,250, 79,190,115, 52,
+153,208, 52, 61, 74, 74,230,227, 17,158,200,168, 42,240, 46, 34,181, 32, 34,112,155,158,174,181, 68, 21,113, 25,104, 38,133,162,
+215,138,205, 53, 15,181, 74, 72, 81,165,161, 40, 16,166, 72,154,195, 85,226,133, 11, 41, 16, 82, 34, 66,248,212, 85,186,248, 44,
+213,236,147, 82,  9,207,188,224,250,233,120, 22, 67, 70, 65,106,184,218, 36,173,243,  1,124, 84,150,169,106,172, 50, 16,174,205,
+ 64,183,206,165, 27,147, 37,187, 49,185,194,235,250, 84,149, 58,155,  4, 69,162,206,179,195, 92, 29,154, 44, 41,251, 28,158,232,
+ 83,173,113,246,102,221,196, 92,221,102, 31,224,207,203, 36,148,251, 10, 38,207, 32, 90,254, 58,211,148,225,154,151, 38,155,115,
+200, 93,165, 94, 21, 41,211,143,121,129,203,172, 75,175,247, 56,162, 74,166,217,221,112, 47,101,222, 72, 46,238,180,211, 33,121,
+ 14,136,231,184,  2, 94,163,240,243,107, 41,138, 44,212,147,193,133,200, 93, 66,  1,169,107, 80, 12, 20, 49,149,174,171,146, 72,
+ 37,121,169, 86,244,  2,162, 84,220, 80,130, 72,164, 12, 18,167, 53,151, 93,138,  3, 70,  8, 60,145,222,197, 36, 83,160,  4, 91,
+ 23,104,165, 64,100, 52,123, 31,  2,107, 34,150, 72, 23, 50,200,125,  0, 80, 14,116, 64,246,131,116, 76,239, 25,247,184, 57,207,
+117,101, 31,119,137,222,179, 80,184,146,116,240,108, 92, 18,134,233, 50, 42,121,209,166,206,154,  8, 44,188, 99, 42,  3,239, 44,
+214,172, 99, 75, 27, 28, 15,182, 43,254,231,243, 75, 26,  2,116, 91,188, 86,124,169, 44,209, 74, 48, 19,169,122, 17,125,210,218,
+ 47, 74,193,127,115,113,  9, 49,112,199, 68,156,212,220, 45, 53,165,142, 44,188, 96, 36, 35, 74, 72,148,214,  4,231, 48, 85, 65,
+225, 61,239,185,184,147,202,173, 12,127, 50, 41, 57, 40, 19, 55, 57, 40, 65,244,129, 32, 21,203,198, 81,149,154,131, 74,243,161,
+ 13, 44,132, 72,107,  1,205,237, 66,243,173,121,197,214, 71,180,150, 60,116,112,107,172, 89, 59, 24,213,134,210, 40,222,147, 37,
+219, 16, 19,208,238,255, 99,238,189, 99, 61, 95,243,251,174,215, 83,190,237,215, 78,155, 51,103,214, 69, 66,164,  0,  0, 32,  0,
+ 73, 68, 65, 84,230, 78,185,125,247,102, 91,108, 92, 18, 82, 12,137, 73,140, 67, 81,148, 40,144,200, 18, 36,161,  8,146, 16, 16,
+  2, 36,  4,  1,139, 16,100,197, 40, 10, 37, 18,130, 72, 38,160, 68, 72, 17,  9,144,  4, 41,  9,113,130,133,141,157,141,189,235,
+189,190,187,183,151,185,211, 79,251,245,111,121, 26,127, 60,207,247,252,126, 51, 59,115,119,238,238,218,230, 39, 29,253,102, 78,
+253,150,231,251,124,218,187,184, 16,109,165,203, 42, 94,199,193,110, 52,152, 17, 33, 34,236,173, 39, 24,147, 88, 28, 81,247, 64,
+212,142,217,168,228,  5,233,153, 52, 53, 19,173, 25, 56, 71, 30, 28,165,119, 20,193,115,205,123,246,124,224,102,112,236,  8,197,
+208,  7,156,119, 12,115, 69,200, 20,165,132, 34,203, 25,  2, 94,107, 42,165,  9,153,164,173, 27,156,177,188, 62, 63,227,115,131,
+146,169,  5,153, 23, 12,203,140,133,135,157,224,153,  5,143,237, 28,183,219,154,145,173, 97, 52, 97, 55, 87,124,109,209,240,219,
+ 14, 38,252,141,227,  5,255,244,141,125,126,177,  9,236,  6,135, 27,143,120,104, 28,203, 97,197, 42,215, 44,101,206, 45, 23,199,
+132,167,229, 24,233, 13,247,178, 10,231, 59, 78,100,212,104,111,133, 98,207,123, 50,149, 69, 81, 20, 17,253, 10,102, 66, 82, 75,
+133,206,179, 24, 60,170, 42, 74, 28,251, 16,247, 52,145,  0,102, 93, 11,170,138,160,179,124,152, 48, 29,253,152,171, 76,108,136,
+152,  8, 10,225,160, 94, 19,110, 63, 72, 82,217, 49, 14, 48, 59,135,243, 21,167,119,239, 67,102,226, 24,204, 16, 11, 45, 37, 97,
+181,138,123,133,206,168,145, 28, 27, 19, 45,107,235,  6,230,167,184,249, 49,191,117,  8,203,231, 46, 49, 27, 14,241, 87, 14, 17,
+105,116, 40, 18,151, 94, 44,154,  4,184, 53,113, 92, 42, 99,114, 44,188, 71,200,164, 44,105, 72,248, 30, 30, 45, 14,122, 32,113,
+143,229,233, 37,178,249,132,121,122, 15, 92,237,237,177,101,210,107,200, 84,234,108,203,248,245,190, 99,216,166,228,194,116,136,
+186, 23,113,138,251,230, 29, 31,120,117,144, 49,145,154,135,139,  5,123, 85,116,199,155, 33,184, 51,183, 60,112, 29,109, 16,100,
+206, 69,187,143,211,231, 62,255,227,151,202,138,195,131, 67,  6,229,  8,135,199,  7,137,150,  1, 93, 42,  2,208,206, 91,172,247,
+120,225,113,235, 14,141,226,206,201,  9,185,206, 41, 21,156, 88,139,171,202,120,162,163, 17, 20,  5, 66,231,209,202, 85,102,136,
+106,132,144, 57,232, 18,145, 43,196,213, 27,136,253,125,100, 94, 33, 28, 48, 25, 35,140,185,  8,246, 79, 21, 58,120,156,227,220,
+183,128,159,166, 96,246,164,205, 78,203,167,183,  6,234, 58, 62,208,125,160, 80, 58, 82,112,132,220,136,238,228,121, 20,159, 41,
+210,220, 60, 43,162,127,186, 46, 54,180, 30,151,204, 66,170, 49, 76,118,226, 53, 25,237, 69, 32,145, 73,173,170, 62,170, 60, 62,
+ 99,207,116, 18,213, 16,155,143,109,192,198,246,174,253,237,210,  9, 47,226,121,143,152,223,250,189,246,187,128,143,232,187, 38,
+219, 51,170,162, 55,129,  9, 27,  4,125,159,193, 56, 31,175, 77, 31,216,117, 58,255,158,178, 21, 18, 77,207,233,212, 22, 79, 51,
+177,240, 12,162, 71, 89, 30, 17,245, 89,226,122,155,176, 65,146, 95, 20,197, 50, 38, 22, 58,221, 59, 29, 91,102,  1,193,168,144,
+ 92,150,154, 67,  4,121,174,153,120,201, 82, 75, 86,193,209,  5,104,130,136,185,137,128,206, 75,108,  8,172,141,199,164,189,175,
+245,  1,129, 96, 37,  2, 93, 23,112, 34,224,  2,184,222, 25,206, 37, 26, 98, 15,150,115,102,115, 28,201,170,242, 66, 57, 80,111,
+105, 62,245,244, 54, 17, 30,101, 46,108, 39, 54, 38, 13,226,235, 38,182,150, 23,203,248,251,151, 77,244, 69,151,112,107,182,230,
+ 94,103,248, 96, 93,243,230,116,202,187, 93,236, 80,209, 52, 96, 27, 94,203, 51,180, 23,140,139, 12, 39,192,123, 75,103, 58,132,
+107,249,169, 91,183,224,107,191,196,247, 95,191,194,155, 45,252, 96,174, 40,108, 71, 71,193, 78, 14, 50, 72, 22,173, 37,195,227,
+139, 40, 39,253,150,177,156,118,169,114,146, 57, 88,199,107,195, 18,109,  3,186,210, 40, 31, 88,121, 65, 41, 64,105,137,  8,158,
+185,151,236,123,203,187, 93,236,128, 77,114,201,203, 90, 48,206, 51,  4, 30, 39, 21,131, 66,210,248,136,155, 80,206, 83,150, 57,
+ 39,141,225, 60,203,  8, 65,243,252,225, 46,115, 36,175,142,198, 92, 59, 60,228, 65,107,216,201, 10,218,178,138,215,120,111,130,
+ 24, 14,162,163,152,105, 17, 34,130, 91,229,210, 96, 51,193, 11,133,102,108, 61,185,183,236,134, 24, 12, 14,188,167, 12,142, 75,
+193, 83,233,130,  1,  2, 33, 36,101, 94,177, 14, 22, 33, 20, 70,231, 72,  1, 51,175, 25, 20, 57,173,177,172, 58, 71,174, 37,187,
+202,115,189,148, 88, 27,104, 92,203,126, 57,226,111,124,252,  1,191,233,232,128, 51, 35, 25,105,193,199,171,  5, 55,139,156,135,
+235, 37,165,202, 88, 26,195, 48, 47,176,133,230,181, 76,241, 15,141,224, 55,168,192,  3, 27, 88,218, 64,145, 43,188,214,232,206,
+226, 70, 21,109,107, 57,169,  6,140,188,141, 12,  4,233,185, 63,152,144,117, 29,247,117,134, 51, 29, 58,120, 14,178, 44,  2, 66,
+181, 98,233, 61, 43,169, 56,115, 14,165, 52,  7,163, 49,214, 24,206,117, 18,181,170,235,216,241, 25, 14,226, 51, 94,175, 17,197,
+  8,225, 26, 24,143, 35, 66, 62, 47,147,186,102,  2,118, 10,  9,181, 65,180,230,201,243, 65,215,197,103,124,186,138,254, 32, 85,
+ 74,238,215, 75,132, 18, 49,192, 59,135, 72,180,213,147,182,230, 11,162,225, 48, 56, 70,174,227,123,247, 15,120,173, 42, 56,204,
+161, 46, 11,236, 78, 73,123,235,254,102, 12, 40,  2, 98, 54,139, 69,149, 14, 49,200,  6,127,145, 28, 11, 64,104,129,104,252,198,
+180,170,237, 30, 21,159,113, 46, 97, 64,196,183, 40, 28,251,238, 90,162, 67,170, 84,196, 20,169,253,222,123,167,248, 84, 56,218,
+ 16,227, 73, 82,181, 20, 89, 14,243,121,188,110,214, 65,215,225,181, 69,  4, 79,  7,188, 61,157,114,110,225, 87,206, 86,124,195,
+ 71, 83, 93,141,167, 53,142, 44,120, 84,120,229,251,126,252,104, 88, 48,202,115, 26,211, 65, 80,228,121, 70,103, 44,166,115, 44,
+151, 53,133,214, 72,  2,243,243,  5,157,111,105,234,142,209,100,200,124, 49,231,116,185,194,  9,137, 32, 80,141, 71,152, 76, 71,
+138, 82, 53,224,249, 43, 99,174, 28,237,113,138, 70,148, 57,159,251,236,117, 78,171,  9,191,245,229,171,124,241,250, 62, 55,110,
+220,224,133, 23,143,216, 57, 26, 80, 29,237, 51,187,123, 26,105, 18,233, 66, 61, 18,216,  7, 35,184,113,149,193,171,215,241,151,
+ 47, 17,130,100,255,243, 55,168,171, 10, 22,233,  2, 93,208,144,194,147, 85,128,158,198, 81,223,166,  6,109,223,164, 30, 20,145,
+229,241,226,183,201,212, 64,138,184,104, 85,  6,195,138,157,231,174,240,210,245,155, 28, 30, 94,102,255,240, 50,167, 90,198,108,
+108, 56,102,116, 48, 65,151, 25,197,168,160,235,173, 60, 85,111,174,146, 90,190,125,197,158,109, 43,221,109,117, 30, 68,223,122,
+214, 91, 85,221, 54,114,251,219, 13,236,114, 43,194,219,239, 78, 64,239,121,232, 61,149,172,105, 55,124,250, 71,164, 78,179,152,
+173, 42,155,252,217,187,216, 21,233,205,102, 92,194,105, 52, 46,  5,175, 52,127,178, 93, 82,126,115,155,204,249,147,132, 33,100,
+228,171,146,244,129, 34, 32, 70, 36,  3, 28,145,114, 26, 21,  3,102,136, 78, 75,253, 61,184, 52,200,216, 19, 32,165,196, 75,129,
+242,  2,145,197, 54,186,117,129, 54, 72, 10, 41,233, 66,192, 38, 49, 25,151, 38,  5, 42,128,113,  2,227, 33, 47, 36,211,149, 99,
+156,  5, 58, 43,104,  3, 27,231, 54,182,170,117,159, 54,188, 94, 58, 86, 36,  4,188,176, 41,153,217,106,195,251, 20,216,123, 41,
+217,167,113,102, 31,255,156, 75, 88,  9,124, 84,137,236,186, 40,247, 58,175, 99,224, 63,153, 70,113,164,147, 41,180,  6, 95,106,
+  6,101, 78, 33, 20, 70,120,166,181,225,254, 98,193,195,213,138, 91, 93,  3,187,  7,220,245,128,169, 57,238, 26,180,204,184, 82,
+ 66,112, 14, 47,  2,123,133,198, 18,216,213,129,251,235,134,159,175,155,205,102,234, 13,131, 34, 99,224, 28, 59, 58, 10,148,  8,
+ 39, 40,114,197,178,131,221, 42,218, 87, 22,120,190,186,114, 76,187, 88,225,151, 18, 62, 87,198,103, 97,175,202,168, 77, 32,211,
+138, 69,109, 25,  8, 88,104,141, 86,130,155,133,102, 55,211, 76,148,224,185,209,128,171, 18,  6,227,146,145,128, 23,181,230,174,
+147,180,137,154, 41,202, 17,248, 22,177,183,131,144, 25, 12, 74,196,106,133,176,134,121, 11,147, 81,198, 16,176,198, 32,157,229,
+ 57,160,178, 29, 99,161,145,  2, 50, 93,144,101, 37,186, 31,237,229,  5,133,138, 73,104,208,146,113,166,105, 17, 60,236, 28,151,
+170, 44, 90, 11,120, 27,231,190,206,112,125,178,207,207,127,244, 54,159,219, 29,178,108, 21, 95, 62,189,203,251,243, 41, 39, 54,
+240,222,114,202, 81,174, 49, 42,103, 60, 26, 97,144,  8,227,120,223,  9, 94,112, 29,239, 53,150, 60,207,105,  8,228, 85,193,170,
+109,249,184,241, 12, 27,131,215,130, 27, 93,203,221,172, 96,108, 45,239,101, 35,110,168,192, 89,174,160,109, 89, 42, 77, 27, 76,
+ 82,225,243, 44,157,163,201, 10,166,192, 90,130, 80, 25, 50,196,209,128,  2, 78, 36,136, 50,131, 32, 17, 62, 89,  6, 27, 27,139,
+ 27,  9,162,168, 18,189, 55, 61, 99,174,139,235,218,153, 68, 91, 53, 79,239,190, 58, 23, 43,254,118, 13,183,238, 66,115, 22,139,
+ 35, 43, 16, 66,129,206,162,193, 15, 22,161, 20, 63, 58,169,216, 41, 42, 94, 27, 12,  9, 69,201, 85,145, 81,238, 93,101,112,237,
+ 69, 14,242,  9,239,200, 22,206,102, 17,176, 26, 98,  1, 37,188, 68, 12,203, 24, 42,164,142,232,244,144, 70, 65, 26,200, 20,194,
+  6, 68,219,196,125,225,162, 99, 40, 55,202,163,125,108,121,218, 51,151, 12,189,200,147, 16, 88,111,112,209,218,184, 55,214,109,
+108,185, 23,  9, 25,239,100,194,114, 37, 64,114,109, 17,227, 81, 82, 30,141,157,197,  7,199,115,222,235, 12,191,180, 88,240, 86,
+103,248,149,217, 57, 31,187,150,105, 91,227,148, 70, 91, 67,158,231,212,205, 10,133, 63,250,241, 59,193,115,117,103,140,119,158,
+ 92,122,150,211, 25,214,  7,206, 78,103,228,185,196,  5,207,124,186, 64,229,177, 53,217, 57,195,116, 57,103,109, 91,156,240,248,
+ 16,168, 84,204, 96,126,203,149, 29, 86, 78, 50, 40, 74,214, 94,242,112,225, 24, 12, 11,254,169, 87,174,240,206,220,243,153,195,
+ 35,190,231,230, 53,170,114,196,205,171,151,121,225,218, 21,118,138,  9, 26,201,135,173,138,173,156,208,123,125,235,104,209, 87,
+ 14, 96,239,128,207,188,122,133, 23,246,247, 56, 26,143,249,204,243, 87,152,228, 37,121,165,153,154,  0,139,122, 35,230,209,143,
+156,241,207, 30,212,121, 74,181,115,225,  5,222, 70,212,162,105,226,  2, 80, 58,  6,139,221, 61, 62,115,120,133,113, 57,224,234,
+254, 97, 18, 16,  8, 76,155,154,124, 56,100, 82,229, 28, 14,247,208, 82,131, 46,105, 93, 20,102,136, 51,248, 52,247,245, 91,157,
+129,167,233, 57,245,173, 32,177, 69,221,122, 90,235,245, 89,231,234,189, 36,162,181, 27, 78,253,119,250,202,242, 24, 44,157,219,
+104,202,247,221,134,190, 58,247,  9,123,208,251,102,251, 44,206,222,116, 17,245,200, 67,114,109, 19, 41,  9,146,230,209, 57,149,
+243,113,206, 37, 68,162,202,125, 11,197, 60,159,152,  8, 33,  9,190,248,176,209,175, 87,125, 64, 76, 74,128,  9, 60,151, 75,201,
+149, 44,224,149, 66,132, 64, 41, 21, 34,147,200,214,162, 69,228,188,214, 46,144, 73,193,210,165,241, 19, 73,168, 71,  6, 58, 98,
+176,215, 66, 50,235, 28,251,165, 96,218,121,132, 80, 81,255,189,  7,202,185, 45,201,101,159,230,235, 93,136,227,  0,195, 38,160,
+123,187,  1,220, 94, 88, 10,247, 35,249,176, 17, 61,250, 52, 52, 70,159,240, 14, 93,172,202,105,214,177, 74,154, 47, 98, 37,214,
+ 56,234, 97,201,238,112, 68, 45, 84, 84,250,106, 91,222, 94,157,241,141,211,227,184, 57,133, 54,254,188, 84,180, 93,203,171, 90,
+113,169, 42,208,222,146,123,139,177, 29,235,166, 37,152,142, 91,203,154, 59,205, 42, 38,102, 54,118, 90, 76,240,236, 11, 23, 59,
+118,157,163,212,154, 81,  6,227, 76, 80,119,  1,137,231,108,109,248,242, 42, 49, 71,130,165, 20,129, 87, 39, 57, 89,  8,212, 54,
+ 80,230,146,186,181, 28,142,114, 30, 58,201,158,136, 90,  2, 15, 87,134,135, 94, 48,169, 10,126,102,217,241,249,157, 10,227, 61,
+107,231,185,167,114,  6,  2,166,198,199,128,164, 52, 98,180, 27, 55,226,241,  8,225, 90,184,113,  3,121,124,134,220,155,112,251,
+225,130,135, 18,118,139, 28,101, 44, 89,107,184,162, 20,121,240, 20, 58, 39,136,140, 78,120,178,162,164,149,154,165,212,204,242,
+140,214, 89,100,145,211, 41,197,188,131,188,208, 52,105,162,210,  9,133,203, 53, 70, 73,206,231, 39,  8, 89,240,225,236,156,111,
+ 44, 78,104,186,150,198, 59,186,213, 57,214, 59,238,170,140, 35, 33,216,203,115,198,147, 33, 93,145, 83, 56,203,219,171, 53,  7,
+163,146,247,215, 29,  7,185, 98, 97, 44,120,193,243,149,226,171,181,227,121,215,113,191, 40,184, 92,175, 57, 41, 42, 94, 20, 53,
+191, 18, 10, 46,249,142, 51,159, 71, 91, 88,165, 57,183, 13,194, 89,230, 42, 34,227,167,  8, 92, 86, 97, 69,236, 72,246, 30,111,
+153,210,156,133,  4, 94, 93,214,  8,159,244,210, 69, 74, 56,139, 10, 17,210,243, 95,183, 17,152,236, 92,178, 12, 53,207, 54, 86,
+117, 17,185,206,233, 41,156, 45,225,228, 46, 66,198,145, 17,193, 35,112,252,216,254, 46, 71, 90,113, 73,105, 66,150, 81, 27, 19,
+105,155,  7,151,232,148,164,243,146,243,197, 49,243,227,211,248,247,186, 14,145,233,232,236, 23, 98,146, 32,178, 12,145,101,124,
+166, 42,249,129,225,132,239,219, 25,113,121, 84,241, 97,211,193, 98,141,104,235, 88,100, 94, 20, 80,225, 81, 23,204, 79, 74,164,
+123, 86,144,202, 19,107,200,167,234,191, 77, 32, 96,210,190,159,168, 74, 33,141,133,219, 68, 33, 54, 53,162, 72, 99, 72, 27,147,
+ 34,187,110,226,179,185, 88,196,235,106, 26,192,178, 12, 48,117, 14,154, 21,139,229, 20,197,240,198,143,163, 53,171,188,229,189,
+211, 19,186,110,205,170, 94,178, 88,206, 25,100, 37,139,229,156,118,213,144,149, 25,117,179,166,110,107, 58,211,210,212,134,  7,
+235, 57,157,141,252,220,178,200,184, 57, 26,112,175,243, 72, 33,184, 57,172,184, 84,150, 84,227, 49, 47, 14,  7,220,237, 52,207,
+141,246,249,220,165, 93, 46, 29,238, 33,244,128, 60, 31,176,172,225,218,209, 37,  6,229, 46,191,225,218, 30,183,145,100, 71, 67,
+218, 51,  3, 42, 82, 88, 68, 57, 97,242,202, 33, 47, 31,236,115, 48,218, 97,111, 48,228,112,119,143,241,104,204,225, 96,192, 45,
+187,198, 28, 47, 99,150,247,248, 60,245,105, 23,252,241,215,211,132, 90,250,141,175, 87, 47, 19,105,243,151, 10, 10,205,100,103,
+143,107, 59,251,232, 92, 68,109,230, 60, 71,105,205,195,102,201, 40,215, 28, 14,118, 81, 85, 73,145, 21,100,153, 98,106,218,168,
+144,214, 75,154, 90,191, 21,212,213, 39, 13,193, 55,224,177,237,238,130,248, 54, 85,253, 60,223, 12,178,250,110,  4,244, 30, 87,
+208,219,121,170, 36, 98,225, 92,  2,191, 36,227, 27,111, 35, 55, 93,248,232,179, 45,  4, 84,217,102, 68,162, 19,133,174,179,155,
+108,183, 75, 52, 26, 29,185,216, 40, 25,103, 79,223, 74,194,177,111,122,  8,183,145, 93,237, 43,245, 30, 97,174, 19, 61, 80,101,
+ 23,151,246,160, 82, 49,121,150,154, 66,  4, 26,235,201,115,133,176, 30,163, 99,219,253,196,120,134,153,162,243, 62, 61,144, 34,
+101,248,241, 60,140,243,136, 16, 88, 58,129, 34,208,132,  4, 16,236,250,121, 91,182, 25, 37,244,163,  6, 69,194, 16,244,237,119,
+185, 65,228,  7,191,  9,236,166, 79,254,122,189,130,111, 35,193,235,193,133,230,  9,206,129,133,132,157, 93,142, 39, 19,238,250,
+192,  7, 93,203,237,174, 97,213, 52, 48,155,194,249, 60,178, 58,164,143, 96,164,182,230,195,206, 82,154,150,113, 48,204,218,142,
+179, 85,205,213, 76,242,191, 61, 56,227,157,243,135, 73,167, 33,206,235,  9, 14,218, 53, 15, 77, 96,228, 26, 14, 16,100,193,225,
+ 13, 52,173,103,191,128,197,178,227,221,181,231,225,114,158,128, 70,154,182, 53, 12,218,142,231,138, 28,147,148,251,118,114,201,
+131,149,225,249,161,166, 70,114,123, 29, 55,249, 99,149, 49, 53,142,239, 29,228, 76, 91,143, 44,163,166,196,170,181, 84,185,230,
+ 76,228, 72,173,227,101, 46,  7, 48, 60, 64,116, 43,216,191, 18,167, 95,135, 59,136, 92, 35, 77,203,202,192,187,167, 11, 74,233,
+ 25,229, 25,151,124, 64,133, 16,193, 75, 66, 18,202, 17, 11,192,  8,201,188,200, 57, 15,129,121,145, 99, 58,143, 85,130,221, 34,
+167,238,  2,115,235,201,116, 52,241,176,222,211,  5,133, 10,  2, 45, 44,185,107, 25,218,134, 35, 12,106,181,166, 11, 30,235, 44,
+222,180,124,102, 56,162, 44,135,156,173,107, 58, 27,104,138,140, 97, 89, 96,  3,136, 76, 99,165,228, 82,161,201,141,225,235,181,
+229, 75,149,226,174, 13, 28,212, 75, 78,138,  1, 59, 77,205,219,162,228, 53,209,114,203,105,174, 20,146,115,151, 49, 51,134, 74,
+  6,238, 16, 48, 93,199, 90, 69, 96,180, 19, 30,167,114,156,240,180,222,209, 56, 79, 14,100, 69,193, 92,  9, 66,145,131,174, 16,
+203,  6, 81,175, 99, 65,214,196,103, 84,244,242,225,109,253,116,134,204,179, 96,166,154, 85,148,133,158, 30, 35, 76,  7,133,100,
+183, 26,113, 40,  5, 55, 39, 21,166,109,240,214, 80,230, 25,109,  8, 24,103,184,187, 94,115,239,252,132,175,188,255, 17,194, 73,
+ 68,231, 99,101,222, 69,193, 28,177,182,136,221,  1,162,200,249,220, 96,192,111, 59,188,204, 75,163, 33,135,229,136, 93, 41,169,
+131,227, 65,211,196,174,172,138, 93,232, 56,  7, 79,178,197,189,246,198, 39,137,123,109,  7,253, 44, 75, 21,120, 29, 11, 23,111,
+ 19,215,189,215,154,207, 54,117,156, 78,154, 28, 69,  1,164,113,116,103,146,158,135,139, 90, 31,237, 58,106,165, 44, 22,176, 90,
+131, 89,227,108,203,108,189, 98,229, 12,138,234,218,143, 51, 95,176,250,232,  1,237,170,227, 36,147,124,124,114, 31, 47, 61,211,
+245, 25, 67,157,241,112,113, 70,103, 60,245,122, 77,231, 28, 15,166, 51,130,  2,211,116, 56, 23,233,  6, 90, 74,172,212,104,165,
+185,185,179,131,214,146,115, 39,121,249, 96,143,198,105, 46,143,247,249,236,243, 71,140,247,118, 17, 33, 99, 60, 26, 32,100,198,
+254,222,144,114,144, 51, 28, 87, 56, 49,228,114, 85, 49, 81, 57, 31, 45,150,201, 28, 69,161, 94,185,202, 43,187, 19, 46,141,247,
+120,238,202, 33,121, 86,161,164, 38,211,154, 60, 83, 28, 86, 35,222,237, 44, 44,231,207,102,105,250,164,192,254,137, 65,161,111,
+161,244,193, 84,199, 10,202, 43, 76, 89,178, 55,170, 24,230, 21, 32, 25,228, 21,139,122,206,173,143,239, 83,211,113,249,224,136,
+ 16, 60, 66, 42,230,203, 53,171, 46,192,226, 52,182, 91,218,100, 55,218, 31,179,122, 26,230,191,167, 81, 36,179,145,199,  3,185,
+148,191,190,114,189,125, 80,205,212,134, 59, 31,182,132, 81, 66,106,201, 27,226,249,246,109,113,225, 99,149,222,227, 35,212, 99,
+247,196,121,144, 46, 58,192,133, 46,174,250, 50, 79,201,208, 86, 39, 96,187, 99,241,120,128,239,231,251, 23,109,235,176, 81,108,
+147, 91,216,130,222,  4, 38,  5,228, 74, 75,198,121,148,124, 85,193,179,212,138, 29, 68,148,  8, 16,129,153,  9,204,131, 99,148,
+ 43,230,157,143, 46, 98, 58,141, 51,186, 68,147,233, 81,238, 66,160,144,216,158,182,102, 98, 62,131, 74,157,136, 11,237,247,109,
+128, 92,234,188,169, 45,133,187, 94,237,175,175, 20,122,122, 99, 38, 54, 73,222,119,178, 14,244,150,110, 65, 63,158,217,219,131,
+201, 36,105, 12,196,141,134,102, 13, 39,103,240,224,  1, 76,167,112,182,138,115,251,  0,116, 29, 31, 55,107,190,182, 92,242,141,
+197,130,119,231,231,252,163,217,138,245,244, 20,104,227,172,190, 91,166, 68,162, 77,109,217,142,165,183,140,125,195,201,186,101,
+136, 67, 89, 67,179, 92,240,206,210,241, 75,211,227,120,124,245, 10, 86, 51,232, 58,202, 44,167,109, 59,158, 47, 74, 74,239,184,
+189, 50, 92, 25, 40,140,241, 88, 23,131,237,137,  9,236,201,168,168, 39,149,228,221,206,177,155, 41, 68,107,184, 84, 40,154, 92,
+ 19, 28, 12,164,160,214, 69, 66, 59,  7,198,  7,215, 48,206, 82, 12,118,240,121,133,152,159, 34, 71, 35,228,116,129,  8,158, 59,
+ 65,177, 50, 45,101,221,113, 35,203,241, 90, 99,164,192,102, 26,151, 21, 60,208,138,133,146,156, 16,112, 66,178, 20,  1, 13, 44,
+141, 67,100,130, 70,150,212, 66,176,176, 22, 87,140,  8,182,137,213, 62,142, 44,147, 92,151,146,231,188,231,149, 92,243,170,146,
+ 92,111,106, 14,149,229,103,151, 43,174,231,  3,230,109, 67, 94,150,220,152,148,152, 65, 73,176,142, 61,165,168, 67,164,151,221,
+211,154, 87, 69,224,163,181,225,200,183, 76,199, 35, 70,139,  5,205, 96,192,117,183,228, 45,167,184, 26, 60, 43,161, 25,200, 22,
+ 67,198, 87, 90,184,164, 28,247,179, 44,178, 59,164,196,  7,129, 64,226,132,160,243, 14,165, 20,101,158,161,  5, 28,230, 67,230,
+ 74, 97,125,  2, 23,170, 28, 17,146, 40, 87, 16, 81,213, 77,248,167,232,114,232,111,201,187, 21, 59, 59,112,249,185,168, 33, 34,
+ 36,204, 27,132,143,129, 53,175, 74,110, 12, 71, 92,173,114,246, 29,  4, 17,232,218, 14,103, 12,239, 47,167, 60, 88, 28,243,149,
+135,247, 88, 26, 71,176, 14, 33,  4,194, 69,148,190, 12,  1,161,  2, 66,103,136,178,228,247,222,120,142, 27,195,  9, 74,105,218,
+  0, 59,249,128,145,146,124,117,118,134,104, 76,242,140,176,177, 99,156,165,194,226, 91,  5,244,237,174, 98,239,125,231, 83, 37,
+222,123,115,  8,159,104,189,114, 83,181,203,180,135,  6,153,152, 59,  2,130,137, 99, 14, 82,181,223, 39,225,161, 15,240,117,236,
+104,180,150,112,255, 62,254,228,180, 55,116, 73,175,186, 38,220,123,  8,147,  1,243,229,154,211,217,154, 15, 86,103,172,156,227,
+206,249, 25,171,182,230,225,114,206,188,233, 56,159,173, 65,  8,202, 74,199, 44, 53, 56,174, 12,135,  8,114, 66, 48,116, 40,174,
+142,247, 25, 21, 57, 71,123,251, 84,101,197,238,238,144,253, 97,137,211,154, 97,158, 83,230,138,241, 78, 69,166, 11, 70, 85,198,
+100, 92,208, 90, 73,240,146,231,143, 46,241,238,201, 41, 88,205,228,242,132, 47, 61,119,149,203,123, 59, 88,231,168,134, 21, 77,
+107,144, 34, 74,152,238, 78,134, 24,223,240,240,227, 89,204, 98, 62, 77,251,241, 73,122,229,223, 52, 31,241, 27, 78, 33, 50,141,
+ 72, 20,120, 67, 40,135,236, 15,135, 40,161,201,179,136, 40, 61,155,207, 56,153,206,161, 94,145, 15,198,  4, 41,153,175,214,152,
+160,168,103, 11, 56, 59,137, 27,183, 79,148,184,237,106,249,137,213,122,216,208,237,250,121,164,148,143,190,255,122,  6,245, 94,
+184, 71,176, 89,244,143,207,214,165,120, 20,113,126, 33, 10,148,197,  5,170,179,141,245, 40, 36,250, 96, 58,175, 96,146,139,220,
+150, 88,139, 20, 27,141,251,109,113,156, 39,169,198,245,178,182,189, 26, 91,143,105,232, 33,  5,253, 72,227, 66,120, 38,178, 52,
+ 70, 42,144, 73,133,204, 51, 38, 94, 98, 18,143,123, 25,  2, 66,  9,156, 15,212, 70,210,  6,183,169,178,123,157,249,237,164, 81,
+203,136,172,182,108,216, 18,189,118,127,  8, 91,247, 53,  5,117, 41,158, 78, 78,232, 63,231,229,166,130, 87,  9,112,167, 30, 51,
+177,249,180, 93, 22,173, 34,171, 32, 75,  6, 31,206,193,243, 55, 97, 56,138,  1,189,231,238, 26,  3,247, 78,226, 12,222,218,141,
+ 89, 78, 99, 98,208, 54, 62,182,  9,235, 38,138, 83,157,157, 71, 37,178, 69, 29, 13,145, 76,  7,231,179,152,168,174,151,224, 58,
+ 76,187,230,227,206,114,167, 91,242,230,123,223,224,117,114,190,114,122,194,157,197,113,236,146, 53, 11,104, 82, 50, 32, 28,211,
+249,130,223, 49, 41, 88,172, 27, 10,165,216,145, 14,237,  3,183,151, 29,135, 10,126,110,218,240,182,245, 20,109,203,213, 65,193,
+ 73,231,216,215, 18,233,  2,119, 28, 76,  6,  5,101, 16, 28, 40,207,181, 65,133,149,138,203,185,230,197, 65, 65,238,  2, 47,238,
+237,114, 86,119, 88,161, 17,163, 61,196,236,  1, 98, 60, 64, 24,143, 88,175, 56, 57, 95,240,102,169,121,174, 51, 52,194,227,138,
+146,  7,  4,238, 10,193, 42,207,153,  6,201, 76, 10, 86,169, 45, 29,165,129,193,203,130,198, 24,222,247,158, 60,175,112,  1,202,
+172,164, 69,227,  8, 84,197,144,129,247, 76,138,  2, 35, 53,138, 64,169,  5,178,238,216,209,112,210,156,115,165,136, 30,228, 39,
+179,  6, 68,142,113,158, 97,149,161,172, 99, 26, 20,215,218,154,147,160,216,105,151,156,148,  3,118,166,231, 44,202,146,172, 89,
+243,150, 44,121, 77, 54, 44,100, 70, 97,150,204,173,166,202, 61,149,133, 55,169,144,139, 51, 62, 18, 57,121,183,160,201, 74, 22,
+237, 10, 47, 64, 32,162,254,188,247, 76,242,  1,147, 92,145,133,128, 31,141, 88,233,132,137, 89, 27,132,176, 96,171,136, 98, 23,
+ 32,116, 21, 91,233,143,206,253, 54,115,230, 39,  5,247, 44,231, 71,255,153, 31,225,135,127,243,111,226,149,107,215,120, 99,177,
+224,210,171, 47,242,155,190,240,253,212,206,114, 54, 63,231, 67, 37,120,185,136, 94,  5,213,122,205,121,215,210, 90,195,237,213,
+ 25, 63,125, 62,103,209, 26, 76,221,197,110,139,  3,145, 41,100,208, 72, 47, 16, 33,142,212, 68, 85,240,242,206,144,107,163, 93,
+ 74,157,225,164,192, 19,184,179, 94,242, 13, 27,229, 92,133,105, 54,147,208,158,174,247,172,207, 87, 15,210,131,  8,178,201,178,
+ 24,132,139, 98, 19, 79, 66,194, 21,245, 64,226,222,148, 75,217,132,210, 79,238,132,242, 49, 42,113, 15, 64,118,169, 51, 58,159,
+197,103,105,181,120, 44,168,247,175,243, 69,164, 28, 52, 53,204, 87,180, 77, 71,119,231, 14,139,182, 99,181, 88,179,246, 14, 39,
+ 97,109, 29,133,200,200, 52, 92,159,236,166,226, 66,130, 40, 56, 28, 77, 40,117,  9, 66, 49, 40, 75,124, 16,148, 69,197,120, 82,
+144, 11,141, 46, 36,185,206,169,202, 12,165, 37,133,206,185,127,182,102, 60,169,168,215,150,229,170,229,189,245,156, 16, 96,103,
+111,196,141,201,  4,169, 20,229, 96, 68,  8,129,162,200,144, 82,162,242,140,224, 61,205,106,201,135,167,171,104, 15,251, 29, 85,
+ 43,143,173,179,190, 74,223,174,214,251, 74,201, 72,152, 47, 56, 81,158,165,105, 88, 52,115, 30,204,207,249,120,185, 34, 28, 47,
+ 97,113,204,162, 49, 44,100,193,170,113,172, 87,107, 56, 63,131,102,186,  1, 69, 61,158,241,169, 45,181,162,222,226, 20,243,232,
+ 92,125,251,166,246,  0,191, 95,207, 42,221,152, 77,224,238, 93,215, 92,162,167,245, 98, 51, 61, 21, 77,138,180,112, 19,218,189,
+ 23,120,208,249,134,222,209,163,194, 93,  2,143,249,190,165,159,109,180,223, 73,137, 85, 16, 27,254,188, 20,223,172, 77,208, 43,
+252, 93,180,220,229,150, 96,156,222,100,202, 23, 24,133, 88,173, 58,231,233,188, 96, 55,147, 72,173, 88,135, 16,213,183,164,226,
+204,153, 40, 90, 34, 21, 11,239,112,253,239, 17,114, 11,145,158, 64,124,189,251,157,148,155,234, 61, 79,  0,153, 92,197,207,245,
+  0, 69,169, 54,128, 79, 31,122,140, 76, 58, 23,177,105,226,244, 20, 55,122, 42, 32, 49, 64,110,111, 60, 23, 27,100,  9,187,123,
+ 49,  0,127,210, 61,204,213, 70,132,135,116,188,229, 40, 50, 55, 38,147,228,183,238,162,134,117, 91,199, 17,210, 98,145,174, 41,
+241,221, 38,167,188,102,  5,243, 21, 44,215,176, 92, 65, 51,131,179, 57,204,207, 96, 49,219,108, 64, 15,103, 49,121,163, 23,206,
+ 49,145, 51, 78, 32,204, 78, 99, 85,190,154,193, 98, 26,141,125, 22,231, 96,107, 70,193,208, 53, 75,190, 54,159,242,165,157, 93,
+190,122,255, 30,129,140, 15,206,166, 28, 73,248,219,181,225,246,249,  9, 47,155, 26,231,224,174,  9, 92,223, 29,226,114,141,237,
+ 12,  7,147,  1,243, 69, 77,174, 53,161,200,208,198,209,  0,135,133,226,182, 11, 92, 31,104, 22,139, 53,217, 96,194,103,117,224,
+238,114,138, 24,237, 34,234,101, 76, 70,198,195,152,191,158, 28,243,122,166, 41,155,142, 51,  5,247,133,165,214, 25, 15,189,101,
+ 46,162, 43,222, 89,235,145, 90,178,104, 37, 83,103, 80, 46,240,139,  1,106,173,  9, 50, 71,  7,143, 47,134, 72, 12,131,225,  1,
+187,190,161, 26,237, 97, 28,228, 90, 35, 84,134,149, 25, 82, 11,180,119,156,215, 29,109,187,166,198,209,214, 13, 39,117,205,123,
+139, 37, 95,110,226,109,184,238, 13,111,  4,201, 75,120,206,148,230,200, 52,156,150, 67,246,  2, 44, 60,188, 20,214,188,229, 75,
+246,154,  5, 75, 61,100, 20, 26, 26,167, 25,102, 48,182, 43,222,206,118,185,181,156,241,  1,154,118,126, 70,109,  5,132,142, 73,
+ 94, 80,200,140, 66,106, 10, 25,169,121, 95, 24, 12, 57, 84,129, 87, 43,197,221,214,210,117,150,235,255,216, 23,152,220,184,196,
+252,206,233, 70, 91,253,137,  1,189,151, 72, 76, 27,110,177,173, 99, 81,241, 79,254,142, 31, 34, 43, 74,170,178, 34,180, 43,126,
+248,251,254,113, 94,124,233, 42,135,229,136,215,255,222,207,224,131,229, 43, 65,242,188,109,248,216,118, 52,182,227,141,249,  9,
+175, 47,151,220,239, 58,108,103, 32,  4,180,130,203,153,230,181,113,198, 97, 46,120,185, 42, 24,102,146,105,215, 34,  3,188,116,
+249, 18,151,171, 49, 78, 73, 36,112,102, 45, 31, 47,214,124,216,212,113, 93,158, 77,163,227,154,181,136,158,142,108, 62,197,126,
+ 43, 28, 23,202, 81, 38, 68,153,242,182,141,231,107,125, 26, 69,102,177, 64,241, 73, 35, 30, 19, 71,146,157,217,236,151,150,141,
+ 59,102,207,127,239,247,181,199, 18,249, 39,  7,245,254,101, 82, 22, 62, 95,196,247,182,141, 45,179,218,226,  0, 93, 13,241, 82,
+242,252,164, 98,214,193, 32, 83,152,160,168, 84,198,164, 44, 25, 14,114,  6,101, 73,103, 61,227,113, 69, 89, 72, 84,166, 25,143,
+ 50,180,206,201,181, 38,203, 20,135,163,156,218,120,118, 70, 57,247, 78,107,242, 66,161,133,226, 82, 89,114, 26, 60,151,171,156,
+203,147, 33,151, 15,247,201,116, 70, 83,215,100,213,128,206,117,232, 32,152,173,102,156,175,150,124,124,190,136,179,  6,241,132,
+ 13,254,211,112,184,183,214,218,133, 19,221,133,  2,155,221,180,107, 73,153,150,177,180,214, 48,111, 29,171, 69, 77,104, 13, 76,
+143, 47,220,197,194,218, 19, 22,211, 72, 21, 58,189,183,  9, 84, 79,  3, 89,248,173, 54, 75, 31,176,122,160,198, 54, 77,172,159,
+195,252,255,161, 74,239, 81,220,125, 64,223, 78, 58, 92,156,133, 94,160,188,149,220,146,133,  5,172, 74,224,186,132,109,232, 18,
+152,205, 54,209, 94, 53, 81,149, 98,208, 45,184, 48,177,239,171,239,222,198,180, 79,110, 50,189,201,146, 51,189,153,157,171, 68,
+147,203,179,216, 17,241, 91,  1, 83, 19,171,209,212, 17, 41,148, 64,151,154, 90,194,185,243,140, 81,120,  4,199,174,163,146,138,
+ 22,207, 50,120,100,208, 92,108, 91,109, 66,242,247,107,165,200,211,188, 60,209,230,122,139, 90,147,196,120,250,174,131, 74,146,
+195,189,160, 69,235, 55,222,  1,189,127,122,216, 10,234, 23, 70, 48,  9, 96,163,253, 70, 88,231,113,  0,143,183,159, 28,208,203,
+100, 64,228, 21,148,137,163,223, 39, 39,210,193,229,195, 40,209,154,229, 73,201,175,142, 85,217,106, 25,209,243,189,138, 88,127,
+ 49,251,249,188,183,113, 67,183,221,230,255,219,235,218,216,248,181, 85, 29, 19,134,222,209,176,141,237,120,206,231, 17,129,127,
+239, 54,156, 78,225,248, 12, 30,158,130, 11,116,161,133,  7,103, 96,107,222,152, 79,121,216,118,188, 59,187,207, 29,  7,111,204,
+206, 88,205,207,192, 26, 78,101,244, 65,120,161,138,231,119, 74, 96,183,200,200,188, 99, 80,106,186,206,179, 43,  3,115, 29,169,
+ 92, 15,219,142, 10, 79, 94,100, 12,132,  2,103,200,117,198,157,144, 70, 72,222,192,238, 40,  6,171,206, 18, 60, 52,237,154, 55,
+230, 53,167,198, 50, 83,130,169,107,176,153, 70, 42,197,251,117,203, 88, 11,124,200, 88,219,142,129,202,248, 27,157, 97, 21, 34,
+234,126,222,181, 44,138, 49, 57,  1, 89,236, 48,212,154, 73, 54, 36, 83,138,188,218, 33,132,128,149, 25, 66,  6,140,214,184,188,
+ 96, 25, 44, 43, 93,114,111,109,121,216,174,120,184, 94,210,  9,137,111, 87,228,182,163, 54,150,207, 75,193,173,224,185, 92,175,
+ 56,174,198,236,173,166,204,144, 12,240,220, 86,  5, 47,179,230,196,107, 38,210, 80, 59,197, 80, 26, 22,157,195,232, 33, 52, 83,
+234,225, 46,221,106,198, 44, 43,112,237,154, 73,166, 24,120, 71,165, 50, 70, 89, 73, 41,  4, 47,  9, 65,165, 53,101,240,140,133,
+224,102, 33,248,229,198, 49,127,227, 29, 22, 31,221,142,227,201, 44,123,172,224,240,124,179,134,181,140, 40,240,155, 55,227,154,
+114, 14, 20,236,223, 56,228, 96,103,143,249,124,202,123, 15, 31,240,249,207,190,200,120, 88, 32,164,231, 23,126,246,231, 17,179,
+115, 40,  5,191, 60,155,241, 43,171, 53, 95, 93, 76,249,160,235,152, 37, 54,135,176, 32,130,163,  0,174, 15, 37,215,130,224,122,
+158,113, 45, 83,188, 88,229,124,190, 44,153,250,142,175, 52,158,225, 64,227, 69,198,185,247,124, 56, 91,240, 15,154, 46,106,149,
+244,207,208,114,  5,227, 33,131,223,248, 26,166, 53, 81, 95,254,153,  1,169,125, 98, 46,210,236,220, 38,234,106,114,105,202,212,
+134,174,171, 82, 66,159,103,233,185, 72, 96, 94,177,213,197,235, 85, 63,125, 82,170, 11,201,171, 99, 43,209,248,228,160,254, 36,
+ 48,153,115, 17,241,106,193,  9, 73, 86, 22, 24,162,104,129, 71,115,115,156,211, 57,201,112, 56,164,208,154,172,172,168, 74,201,
+238, 32,167,200, 75,170, 44,103,152,107,138, 66,178, 55,208, 12,135,154,224,  5,231, 43,203,188,117, 52, 77,131, 16,  2,157,  9,
+102,211, 53,227, 60, 99, 55,207, 24, 15, 71,236, 76,134,  4, 41,217,153, 12,177,198,226,172,199, 99, 57, 62, 61,227,193, 98,206,
+241,157,227, 40,247, 39,210,220,226,211, 58,201,105, 54, 85,185,125,194, 92,221,250,141,168,135,210, 41,121, 72, 52,171, 58,  1,
+ 26,234, 22,234,105,156,119, 36, 51,  3,234, 25,212,115, 88, 46, 30, 13,102,159, 22,208,212, 11,236,108,  1,166,127, 77,170,244,
+ 94, 78,247, 66,130, 87, 63,186,137,123,183, 65,161,103,122, 35, 52,211,211,206, 50, 21,  1,109, 50, 75, 21,113,207, 17, 77, 82,
+177,222,166,192,214,165,202, 89,108,  2,122,150, 50,212, 11,  3,  5,187, 17,180,185,152,187,139,173, 17, 68, 66,138,247,179,244,
+254,251, 82,179, 35, 58,220,109,117, 69,250,177,128, 78,234, 51,169,109, 30,  4, 92, 41, 36,115,  3,  7, 69,129, 11, 30, 43,161,
+144, 18,237, 92,100,202, 11,193,220,137, 56, 79,239,  1,126,190,159,161,245, 65, 90,110, 85,162,108, 42,118, 82,117,155, 37,238,
+124,145,228, 96,149,218,120,169, 39, 36, 62,153,120, 52,145,203,182,100,137,101, 90, 27, 23,226, 53,225,217,129,143,187, 71, 49,
+104, 95, 58,140, 78,103,123,  7,241,239,181, 93, 74,138, 21, 92,218,131,157,253,141, 16,146,202,226,189, 57,157,198,164, 85,203,
+141,229,237,183,227,220, 88,232,152,196,229,122,115,252,214,193,170,139,188,122,211,197,251,179, 94,197,247,166,129,121, 18,231,
+152,173,224,236, 12,230,211,120, 47,143,239, 68, 33, 19, 41, 96,126, 12, 82, 34,164,231,104,114,137,194, 26,118,139, 12,103, 61,
+185,119,204,189,164,  8, 22, 33,  5,167,198,243,126, 23,165, 92, 95, 25,230,252,242,131,  5, 82, 73,158,203, 36,239, 47, 86,188,
+ 58,168,184, 55,159, 69,151,185,249, 49,100,154,224, 60,161,243,  4,161,241,245,130,179,149,225,227,214,243,110,103,121,177,144,
+220, 53, 53, 87,164,228,107,157,103, 97, 13,  3,169,248, 74,  8,204,179, 18, 92, 71, 32, 64, 89, 97, 93, 96,169, 75,118,139, 28,
+139,100, 52,222, 71, 42, 65, 53, 28,226,243, 28,161, 74, 58,149, 51,151, 48,117,138,135, 42,199, 56,193, 74, 71, 51, 22,175, 50,
+ 44,  6,231, 60,115,157,243, 57, 17,248,106,107,248,162,232, 88,150, 99, 14,204,140,243,209,  1,131,166,197, 22,154, 27,161,230,
+ 61,147,115,168,162, 46,209,176, 16, 44,150, 29,168,140,117,103, 56, 46,198,148,171, 25, 62, 43,113,235, 37,181, 86,148,235, 53,
+215,171,156,177, 46, 41,165,228, 72, 43,  6, 58, 39, 88,195,174, 82, 52, 30, 20,142, 43,185,231, 77,227, 19,180, 63, 21, 87,223,
+180, 38,182, 91,238,125,242, 91,240,252, 23, 94, 97,118,214, 69,161, 36,107,120,255,141,183,248,242,207,253,191,124,237,157,143,
+ 56,195, 51, 18,134,213, 98,202,151,223,126,157,135,175,223,  2,105, 16,211,105,252,125,117, 29,237,120,219, 22,209,118, 73, 84,
+198,146,  9,120, 99, 58,215,121,  0,  0, 32,  0, 73, 68, 65, 84,161, 16,148, 33,176,175,  4,215,117,198,110,150,115, 41, 83,228,
+165, 70,123,201,131,213,138,183,141,229,151,235, 37,175,215, 29, 31,154, 58,185, 95,134,205, 94,159,229, 20,175, 94,231,115,  7,
+215, 57,203, 61,246,238,244,153,100,209, 31,109,195,167,185,155, 76,115,244,158,206,219, 38,141, 14,181,253,125,105,175,243,253,
+222,183, 69, 95,237,157, 37,123,230, 75,150,246, 54,185,121,230, 63, 93, 80,135,232,174,132, 74,148, 34,197, 11,151, 43, 38,121,
+ 65,235, 21,207, 13, 53,247,106,139,119,150,221, 66, 81,150, 67,134,101,198,238,168, 64,233,140, 97,153,115,237,176, 98, 50, 16,
+ 12,171,168, 45, 63,204, 21,109, 23,105,113, 81,225, 85, 32,133,143,182,130, 50,202,115,102,  2,206, 27,199,254,184,160, 26,150,
+232, 60,231,228,120, 74,150,103,172,151, 51,100,240,252,204,215,223,143,224,157,126, 13,169,240,236, 85,172,222,210, 97,233, 43,
+227, 94,213,205,251,111, 78, 50,123,234,129,177,241,130,  6, 31,219,131,245, 50,206,253,218,246,201,  0, 17,249, 29,  6,215,139,
+196, 66,126, 50, 79,242,187,253,234, 41, 95,189,  7,122, 79,197,208, 91,114,188, 38,233,196, 91,183,161,115,108, 87,231, 90,197,
+ 74,149, 16,  3, 87,214,243,209,147,176,143, 49,169,130,139,226, 31, 23,  0,147, 62, 65, 80, 91,109,242,109, 32, 93,255,222,187,
+ 69,153,110,139,186,168, 30,165,126,201,236, 17,188,227, 35, 16,220,222,254, 52,209,239, 68,166,169,125,224,160,136, 60,221,135,
+ 78,177,151, 65,231,  2, 70, 72,242,  0,107, 41, 89,251,237,225,119,162, 84,  6,145, 90,240,169,122, 14, 79,160, 82,246,194, 19,
+219,163,131,190, 52,247, 46,137, 29,165, 99,179,189,118,116, 47, 68, 20, 30,109,199,247,172, 12, 23,158,157,234,248,217,207,176,
+115,227,136, 47, 94,127,129,207, 94,190,202,193,164, 98,111, 48,100,180, 55, 97, 58, 91, 70, 20,243,100,  2,  7, 99, 24, 95,226,
+168, 44,121, 41, 47,121, 41,211, 92, 17,129,187,245, 50,130,228,124,  6,  7,123,176,179, 19, 29,175, 92,247,233,214,150,115,177,
+ 82,207,139,141,197,110,111, 35, 44, 84, 92, 11, 33,196,153, 99,211, 38,245,199, 38,126,172, 23,241,123,150, 43,184,127,  7,150,
+ 45, 76,231, 49, 25, 88, 45,  1,139,  9,130,171,194,114,207,  8,246, 84,180, 73,253,192,194,190, 14,236, 89,195, 91,198,243,176,
+ 54, 92,241,158,  3,  5, 31,118,158,151,117,148,240,157, 11,120,206, 89, 30,172,106, 94,174, 42,238,173,231,208,173,192,121,194,
+124, 69,232, 12,190,200,  9, 90,226,219, 53,222, 91,124,187,230,227,198,113,164, 60, 15, 76,195,184, 80, 44, 87, 11, 58, 33,185,
+107, 28,141,179,  4, 85,164,241, 75, 14,195, 29,130, 11,188,176, 51,100,164, 75,106,211,177,183,179,131,109, 44, 94, 15,240, 66,
+ 98,149,164,182,130,135, 30,206,144,172,242,130, 38,171,232,202,  1, 70,101,248,124,  4, 58,227,133,172, 98, 32, 37, 63,176, 59,
+ 98,237, 50, 14,204, 18, 91, 76, 24,155, 25,228, 67,178,174,225, 86,200,121, 49,119,172,140,163,202,162,214,142,  2, 90, 27,184,
+151,101,200,213, 28,202, 17,147, 52, 67,191, 36, 21,167, 46,112,128, 99, 95, 72, 74, 41,185, 36,115,118,114,117, 33,136, 56, 84,
+ 25, 65,  8,206,157,225,235, 30, 56, 57,139, 34, 51,206, 60,  1,225,238, 31,107,197, 71, 53,207,217,233, 57, 44,167,143, 22, 41,
+ 58,137,127, 53, 29,239,191,115,155,175,255,242, 27, 60,252,165,143, 98,101, 43,227,158, 35, 86,171,  8,160,108, 29,162, 73,232,
+118, 27, 41,146, 82, 10, 14, 66,224, 69,173, 57, 16,130, 61,169, 25, 40, 69,145,105,114, 45, 25, 72,193,204,123,102,235, 46,250,
+184,247,163, 57, 33, 99,210, 37,162,  2,101,240, 30,123,231, 12,183,171,153,189,254, 46, 98,189,250,244,123,168,216,162,173,170,
+212,189,236,131,114,175,176, 25, 32,250, 30,167,203,180,221,230,239,247, 48, 37, 34,128, 78,108,213, 86,129, 71,170,245, 79, 23,
+212,181,222, 40,229, 20,146,163,215,118,248,248,173, 51,  6, 59, 25,135, 69,206,221, 58, 16,130,229, 82,169,104,125,206,115,135,
+ 67, 14,118, 75, 92,200,168,180, 96,127, 39,103, 50, 20,140,170, 28,239,147,228,102, 38, 49, 38, 90,  2,158, 44, 26,170, 66,225,
+124,224,225,201, 10,219,212,228, 89,172,182,134, 85,129,247,  2,149,229,120, 31,184,116, 48,230,252,116,206, 98, 49,229,175,191,
+119, 11,238, 78,227, 76,207,134,141,109, 39, 60, 91,245,208,239,203, 50,157, 95,106,219,125, 51,111,253,177,247,254, 63, 79,219,
+ 60,251,100, 65,242,221, 49,178,251,213,160,161, 61,203, 61,183,143, 38,214, 17,101,190,149, 88,100, 58,137,192,164, 64, 45,182,
+ 43,249,196, 41,239,101, 99, 67,136, 93, 14, 89, 93, 56, 41, 69,109,247, 46,205,200, 83,155,218,182,137, 54,152, 61, 26,196, 67,
+216,154,169,139, 13,  8,174,179,143,242,213,123, 84,124,182,165, 92, 87,136, 71,121, 52,130,141, 96,145,202, 55, 82,144, 40,130,
+119, 56, 41,105,131,140,167, 40, 21,181,151, 81,132,201, 64,166, 21, 75, 19,131,252, 69,192,118,225, 81,173,227,190,163,114, 97,
+ 79,107, 55, 85,122, 63,203, 15, 61,152,166,167,203,184, 71,  1,112, 50,141,  6,182,147,153,190,187,224, 83, 30,209,111,  8, 97,
+ 11, 68,248, 73, 70, 19,229,152,157, 27,215,121,245,224,136,113, 57,100,255, 96,159, 65, 62, 32, 24, 67,174, 20,235, 76,209,206,
+215,176, 63,132, 75, 87, 57, 26, 12,120,181, 26, 51,214, 26, 45, 96,224, 59,180,111, 57, 61, 94, 69,156,195,100, 24,223,203, 28,
+166,179, 79, 81,165,167, 57,106, 33, 35, 29, 32,139, 84,198,223, 48, 86,252,192,164,228,249, 82,241,193, 89, 27, 91,242,193, 63,
+106, 17,220,175,125,147,230,147,109, 19,255,109,218,184,233,175, 18, 24, 15,207, 92,121, 90,169,120,123, 54,165, 53,130,251, 77,
+ 77,133,226,118, 16,212,171,154,214, 88,198,121,198,241,186, 99,100, 28,141,214, 28,  8, 48,171, 37,199,197,128, 87,114,201,219,
+243, 37,235,122, 14,198, 16,112, 23,114,253, 97,246, 16,175,  6,120,229,241,109,139, 55,150,102,177,224,195,179,134,219,243,154,
+ 15, 79,167,220,111, 26,110,227, 35,157, 81, 15, 98, 48, 27, 31, 16,218,  8, 42, 29, 20, 21, 69,210,188, 23,163,138,243,117, 67,
+ 59, 24,144,103,154, 51, 47, 17, 82,115, 39,  8,110, 89,139,202, 43,150,121, 69,208, 89,244,186,207, 39,144,143, 40,  6,251, 92,
+ 43,  6, 92,157,236,130,200, 57,154, 20, 52, 89, 73,190,154,113, 76, 69, 22,106,138, 98,196,161, 52,220, 94,214,236, 23, 37,141,
+177, 49, 87,178,129,219,  2,154,166,166, 40, 42, 14,  4, 12,149,230,185, 42, 67, 90,203, 43,227, 10, 37, 20,218,117, 28,170,140,
+ 61,149,145, 37, 48,104,147,196,151,156, 16,204,  3,124,109,185,140,207,129,173, 83,146,109,191,197,102,214,143,174,186, 39,235,
+132,132,100,137,108, 82,146, 95,102,136,139,194, 34,126,143, 72,227, 29,129, 71,212, 77,164,204, 39,243,149,163, 74,114, 83, 72,
+118,165, 38,151,130,137, 86,236,229,154, 12, 77,174, 36,135, 74,177, 11,204,188,167,113,118, 51,102, 18,177,  3, 23,178, 52, 66,
+107, 91, 86, 31,222,137, 20, 50,239,163,104,205,167,217,127,251,209,147, 76, 64, 25, 45,226,154,101,171,144, 20, 73,116, 75,176,
+225,253,135,237,107,145,246,191, 97, 21,181, 91,122,205,120, 69,220,255, 62,117,165,190, 45,253, 41, 60,228, 37,171, 44, 32, 86,
+ 29,211,181,229,222,210, 83, 35,184,170, 29,153,148,156, 47,151,188,124,117,159,162, 26,225,140,225,104,191,228,104,183, 96, 82,
+169,200,231, 86, 34,250,119,  8,129,214,240,211, 95, 91,113,176,  3,171,218,208,218, 14,151,102,122,214, 88, 92, 16, 12,134,  5,
+206,  5, 70,163,156,229,162, 35,207, 21, 77,211,114,182, 88,241,238, 91,239,197, 86, 96,109, 55, 96,178, 94,151,248,211,  4, 76,
+191, 37,198,242, 29,  7,195,199, 80,119,223,205,224,254,204, 85,208,119,161, 59,208,  7,112,185,141,109,145, 27,113,159,222,246,
+243, 66, 19, 89, 71,208, 86,166,226, 70,237,237,  6,  5,223,219, 25,170, 34,  1, 67, 68,156, 83, 74,145,130,119,  6,126, 29,  3,
+ 91, 89,110,  2,217,186,217, 82,164,235, 85,212,194,163,129,110, 59,160,235,100,222,162,229,198,  1,174,175,142,123, 81, 27,177,
+229, 97, 78,226,150,247,246,165,200,152,249, 42, 69,161, 36, 51, 20,153, 16,248, 16,144, 42, 32,180,224,172,182,228, 90,209,110,
+ 75, 70, 26,255, 40,194,191,139,173, 59,218,232,149, 64,161, 31,173, 80,251,  4,167, 15,242,253,231,100, 15,186,179,155,  7,251,
+113,166, 99, 95,173, 15,163,146, 87,228,245,187, 77,119,234,147, 42,245, 27, 55,248,226,205, 27,148, 89,201,225,222, 37,138, 60,
+199,217, 14,107, 28,185,202,104,108,195,204,117,176,179,195,247, 29, 94,225,181,209, 37, 14,170,  1,141,181, 81,205,178,105,104,
+187, 21, 15, 86,117,172,146,178,  4, 20,156, 47,227,115,248,105,170,244, 11,202,161,134, 50,231,218,176,224, 55,142, 11, 38, 42,
+162,209, 39,165,228,195,217, 42,169, 42,202, 71, 85,  4,165,140,201, 88,153,197,107,161,100,220, 52,219, 52,207,151,  1, 86, 13,
+ 93,211,209,154,154,208,213, 44,156,195,205,143, 57,246,154,145, 51,236,  6,207, 73,219,113,108, 58, 20,130,155,227,156,176, 94,
+131,214, 40,169,216,239, 26,238,173,107, 30,212, 43,172,169, 35,192,207,180,209,202,181,235,  8, 34, 39,172, 87,132,122, 77, 24,
+148,120, 99, 99,176,119, 93,252,220, 98, 78,168, 87,132,233, 50,186,194,217,  6,116, 65,176, 22,198,187, 72,161,121,101, 52, 32,
+ 32, 56, 21,160,180,226, 65,158,211,  8,201, 87,140,163,203, 52,175, 11,141, 13,176, 76, 28,106,164,138,207, 80, 62,140,231,156,
+ 15,184,190,187,199, 36,203, 24,142, 70, 20,  8,206,157,102,156, 11,140, 46, 56,104,150,172,130, 66,248,154,115,163,121,126,167,
+228,108, 89, 51, 25, 42, 22,235,192, 45, 33,120, 94, 40, 12,240,188, 18,236,141, 10,156, 23,220, 24,148, 28, 85, 21,227,108,192,
+218, 59,174,102,  5,210,116,236,231, 57, 57,  2, 57, 40,169,  9,120,173, 88, 35,185,237, 29,111,218,  4,152, 60, 91,125, 50,150,
+227,153, 71,190, 62,142, 52, 73,160, 48, 25, 69,150, 68,191, 71,167, 61, 78,116, 14, 97, 58,132, 18,  8,239,144, 62, 32, 21,100,
+ 82,112,128,228,178, 20,236,228, 25,149,148,220,172, 74,174, 22, 21, 87,138,156,163, 34,231,234,160, 98, 87, 75, 62, 92,119,180,
+ 18,130,210,132,196, 42, 10, 33,  2,154,195,178,133,179,179, 24,204, 71,195,232, 80, 39, 36,194,218, 79,103, 60,230,183,112, 39,
+125,210,211,155, 48,245,202,155,193, 63, 74,195,237,  5,208,122,204, 82, 94,114, 97, 92,214, 39, 67, 91, 73,252,179,  7,245,158,
+ 58,165, 36,232, 97,148,  7, 60,158,163,158,159, 16,206,107,174, 95,175, 40, 50,203,135,115,195, 81, 41,184, 58,201,  9,162,  4,
+111, 57,220, 31, 34, 69, 96,119, 32,216, 25, 22, 56,231,104,141, 67, 11, 88,119,  6,239,  4, 95,255,224,140,247, 63,186,195, 32,
+207, 88, 45,150,204, 23, 75,214,171,154, 60,151, 12, 70, 21,121,158,  1, 10,103, 28, 69,  1, 77,227,112,193,241,254,253,251,204,
+117,160,187,117,188,213,170,120,140, 42,246,105, 91,220,223,141,224,123,  1,172,243,159,152,160,254,170,  6,116,245, 93, 41,213,
+ 19,200, 73,110,141, 41,236,163, 25,202,246, 38,155,171,216, 38, 29, 12,145, 95,252, 44, 97,182,136,237, 81,231,160, 24,197,170,
+ 44, 36,250, 91, 16, 81,205, 43,171, 54,116, 47, 37, 55, 52,144,117,162,147, 92, 56, 36, 37,224,160, 44, 54,237,233, 46,  5,204,
+109,103, 62,149,199, 68, 66,170, 13, 69, 48, 16, 91,181,170,167,  8,166, 81,128, 78,130, 57,201,122,148, 66,167,141, 34, 38,135,
+  6,193,160,204, 88, 27,143,150, 34, 62,143, 38,144, 73,201,188, 55,108,184,248,251,126, 19,204, 93,136,215, 34,108, 81,250,182,
+ 91,240, 61,184,204,111, 85,250, 33, 41,205,117,110,  3,154,235, 85,  4,251,148,189, 99, 83,193,103,105,  3,232, 91,123,186,183,
+139, 20,159, 72,115, 44, 94,122,137, 16, 44,215, 15, 14,201,243,156,206,116, 40,145,108, 72,  9,180,193,113,188,106,248,210,213,
+ 67,138,106, 55,122, 60,228,138, 65, 86, 96, 58,131, 20,142,135,179, 19,206, 62,190, 19,219,200, 75,147, 16,241,221,166,253,222,
+107,100, 63,237, 25,236,191,222,  3, 63,117,129, 28, 14,248,157,151, 42,118,178, 28, 47,  4, 74, 64,215, 26,222, 57,111,146, 35,
+152,217,172,181,190, 75,148,231,112,120, 53,174,177,174,222,140,204, 50,157, 68, 59,146,141,240,116, 30,175,213,131,187,169,117,
+187,100,161, 52, 67, 60,210,117, 72,  2,133,  3,107, 45,227,193,144,206,116,248,229,154,157, 66,243,229,243, 57,206,180,  9, 39,
+ 99,  8,166,139,125,107, 27,  8, 82, 16,218,134, 32,  3,161,105,183, 93,182, 47,138,172, 96, 34, 88, 49,220,187, 15,195, 49,140,
+ 71,113, 45,234,104, 39,122,170, 51,188, 16, 92, 30,230,220, 91,117, 92,175, 50, 62,108, 45,151,180,230,190,243, 88, 36, 43,169,
+  8, 34,128, 46, 19, 56, 42,138,232, 48, 28,115,105, 48,228,102, 38,121,241,112,135,182,181,168, 73,197,209, 32,231, 97, 23, 56,
+ 20,158, 85,174,105,219, 21,222, 73, 14, 10, 56,158,173,216, 27, 23,172, 59,207,185, 23,236,  2, 75, 33,201, 93,199,225,184, 96,
+ 71, 74,198, 74, 48,148, 25, 58,203,217,205,115, 14,  7, 35,240,  2,169,115, 86, 93, 67,200,114,234, 32, 88, 40, 65,155,101,220,
+117,158,247,140,224,142,243,177, 91,178, 92,197, 81,152,247,143,219,108,125, 27,237,201,222,157, 49,205,155,125, 44,222,132,220,
+224,124, 68,138,129,194,216,244,110,144, 34, 35, 35,160, 51,201,101, 45,217,209,138, 35,157, 49,210,154,129, 46,169,116, 70,153,
+229,236,102,  5,198, 91,172, 53, 76, 21,212,  4,100, 94,224, 93,228,185,203,174, 35,172, 26,112,  9,  1, 63, 44, 35, 45, 78,134,
+139,142,238,183,101, 27,254, 73, 64,233,139,175,251,205, 62, 96,211,124, 93, 37, 61, 13,107,226,216, 55,124, 26,244,251, 19,129,
+ 90,  9,  1,110, 36,131,207, 95,197,124, 56, 67, 93, 31, 96,131,103,250,238, 12,177,110,185,127,122,202,  7,203, 53, 59,250,156,
+157,170, 64,229, 35,118, 70,146,163, 73, 69,221, 52,148,133,138,  0,145,206,197,153,185, 14,236, 13,  5, 85,149,209,186,142,233,
+188,229,193,241,  3,140,119,104, 41,145, 89,198,100, 84,224,141, 97,185, 92, 81, 86, 37,211,243, 25, 93,211, 81,105,197, 27,247,
+ 31, 16, 86,  6,154,121, 82,183,106,191, 51, 77,244, 79,251,163, 23, 93,140,132,180,238,179,172, 39,217,168,249,111, 29, 67,191,
+227,164,194,109,241,161,229,227,227, 19,249,232,199,183,188, 78,  9, 76,160, 83, 48,247,114,155,103,245,205,235,195,165, 69,169,
+ 50,194,206, 78, 68, 48,135,164, 38,167, 66,156,193, 22, 18, 66, 30,249,154,189, 87,124, 81, 36, 10, 88,153, 90, 81,126,179,128,
+123,164,123, 79,147, 99,139,214,214,250, 71,145,213, 69, 30,129, 39,190, 23,131, 73, 21,253,182,211,153, 21,155, 74,223,187,168,
+242, 36,185, 48,141,136,179, 52, 46,208,243,198, 57, 42, 41, 89,121,  8, 33, 32,  2, 44, 43, 25,171,101,221, 11,238,216, 77, 64,
+207,213,134,146,231, 82, 50,164,244,133,132,236,197,245, 19,233, 30, 52, 41, 49,201, 68, 60, 72,151, 42,110,145,142,143, 45,111,
+117,181, 21,220,243, 30,116, 19,175,247, 69,182,255, 45,198, 51,238,124, 73,117,245,136,138,232,243,160, 16, 12,134, 21,109,189,
+198,250,142,186, 93, 50,204,  4,223,115,253, 38, 85, 85,177,146,138,194, 11, 36,  6, 92,199,241,114,198,215, 78, 78,225,193, 52,
+ 57,229,249,216,  6,116, 38,137,  3,145,186, 50,219,224,202,199,147,222,173, 17,138,146, 32,115,190,120, 56, 96, 47, 47, 24,107,
+ 69, 16, 18,227, 29,223, 88,183, 28, 79,163, 90,221,133,176, 80,191,110,123,187,231,213, 44,  2, 40,133,219,162,  7,110,  9,232,
+180,233,231,219, 85, 52,179, 89, 45, 99,208, 41, 37,179,102,206,209,112,151, 83,211, 82,  8,193,165, 76,179,182, 29,187,206, 49,
+ 42, 43,254,254,195,227,152,168,180,179,200,181,183,109,  4,188, 42, 69,176, 38,  6,242,229,121,108,215, 58,247,104, 48,127,236,
+ 61, 38,170,115,194,217, 12,142, 14,211, 26, 43,200,117, 84,161, 84, 68, 13,251,179,214,114,181,140,250,235, 45, 30,107,124, 20,
+ 43,234,129, 83,147, 73, 92,115,121,  9, 50,227,112, 92,112,115, 50, 64,103,146, 44,203,233,148,164, 13, 48,145,138,187, 86, 48,
+ 86,154,219, 54,160,156, 99,218,121,148,119, 44,189,164,105, 45,149, 16,220,115,134,207,142, 52,  7,131, 10,225, 61, 59, 66,112,
+165, 28,178, 18,130,177, 86,200, 16, 24, 13,  7,212,  1,186,214, 50, 42, 43,150, 72,214, 69,206, 84, 42,102,206,242,160, 17,204,
+165,230,212,182, 56,103,  8,138,136,185,248,118,192,147, 79,220,134,108,194,219,116,143, 24,170,136,190,  5,191, 61, 81,115, 46,
+ 78,161, 36,232, 92, 49,146,138, 29, 41,184,146,107, 46,149,  5, 35, 85,196,173, 42,120,164,208,180,222,160,180,102, 41,  3,211,
+186,102,156,101,212,214, 99,157, 97,164,  4,245, 98, 25, 19,186,243,121,212,134,207, 51,132, 22,  9,101,111, 35,229,237, 49,136,
+206,167,126,189,112,141,253, 47,124,134,250,214,189,111,102, 65, 61, 30,232,219, 46, 57,133,118, 79, 28, 19, 63,209,222,236,171,
+127,239,167,248,143,127,226,127,224,111,254,221,159,123,242,  1,172, 27, 24,148,172,223, 58, 69, 20, 26,119,107,193,186,245,136,
+ 28,126,240,251, 95,228,203,255,240,  1,208, 32, 41,185,123,118,159, 32, 53,207, 95,126,137,119,238,157,241,202,149,  9, 47,222,
+ 60, 98,181,106,121,231,131,  7, 96, 61,247,167, 45,139,117,205,221,143, 79,152, 45,215,156,181, 75,150,214,208,153, 64, 86, 72,
+118,179, 33,167,199, 51,254,212,191,242,187,248, 63,127,238, 77,190,113,235,132,182,107, 57, 95,213,252,181,159,248,215, 81, 74,
+226,211,188, 85, 74,137,148,130,201, 43, 63, 66,103,126,149,145,225,189,184,137,216, 70,193,109,251,180,127, 27,137, 65,127,131,
+244,119,128,108, 87,143,189,111, 31,235,183,215,  3, 75,  7,148,192, 45, 79, 82, 84, 26,148, 23,235, 34,  2,158, 44,188,243, 97,
+100, 74,168, 50,118, 79,124, 52,202,192, 38,138, 90,158,116,225,109, 66,138, 23,163,200, 36, 80,101,178,  7, 77,188,105,183, 69,
+235,235,131,123,191, 14,117, 58, 46,107, 31, 61,199,124, 11, 64, 38,100,148, 28,246, 34,126,190, 87,108,235, 91,216, 89,186, 88,
+193, 61,202,149,135, 11,117,184,117,202,152, 59, 31,232,130, 68,182,  2,143, 75, 35,137,116, 45,122,197,184,158,146,  7,177, 29,
+220,177, 53,219, 79, 92,244, 32, 54, 93,132,254,107, 62, 89,173,246, 84, 55,107, 55,179,247,167,101,155,222,166,132,193,166,243,
+121,134,219,217, 44,120,240,230, 71,148,159,147,156, 46, 87,188,114,245, 26,166, 61,163, 44, 52,160, 56, 24, 76,248,204,209,101,
+202, 65,  9, 34,227,250, 96, 72,107, 28, 31, 62, 92,240,229,213, 20,191, 92,110,116,  7,214, 22,  6, 26,202,113, 60,134,198,197,
+ 64,223,175,  7,251,148,181,158,  0, 73,180, 29, 20, 57,215,247, 53,151,133, 96,234, 28,131,144,225, 68,224,107,181,225, 27,203,
+ 84,169, 60,105,253,150, 99, 56,184,  4, 15,239,108,198, 47,253,247, 93,172,207,173,117,177,110,128, 38,206,123,231,199,241,103,
+190,248,121,102,139,251, 92, 26,236,178,240, 29,111,156, 47,249,222,157, 67, 36,134,166,171,185,150, 73,110, 55, 45,194, 68,117,
+177, 48,157, 69,251,214,135,167,241, 25, 95,156,130,148,113, 62,254,216, 43, 60,233,255,235,  6,116,  3, 31,188,  9, 87,159,  3,
+165,105,149, 38,  8,133, 73,157, 37, 45,  5,239,173, 26,148,132,171,121,193,109,209,224,154, 36,113, 76, 25, 25,  0, 89,122,206,
+148,230,210,176, 36,228,177,187, 81,228,160, 76, 60,111,155, 43, 70,165,226, 23, 30, 46,216, 45,134,252,109, 19,216,149,150, 42,
+ 40,174, 54, 11,116, 57,166,  2,174, 41,141,195,177, 19, 60, 50,175,200,117,198,217,106,193,181,225,152, 78, 75,206, 91, 75,179,
+ 92, 51,153, 76, 88, 10,135,145,209,193,236,220, 90, 76,145,115,214,105, 78,164, 99,109, 58,118,243,  1, 39,229, 16,155,207, 96,
+188, 15,237,253, 95,213, 45, 56, 96, 17, 90, 19, 82, 27,252, 98, 82,101, 45,172,107,234, 14,186,231, 52,107,167,152,183,134, 98,
+  0, 54,116,104, 10,144, 26,227, 13,185,210,236,120, 79, 48,150,215,  6,  3,222,237, 26, 62,151, 59,222, 93, 59, 86,222,115, 77,
+192,157,135, 39, 81,119,190, 53,132,176,  6, 27, 16,198,198, 46,204, 19,238,185,120,202, 26,120,234,235,195, 59,156, 73,241,244,
+174, 86,175, 32,217,175,235, 79,240,187,248,166, 39,101, 56, 40,249,252,103, 95,224,231,127,241,141, 39,236,237, 54,129,228,146,
+174,119,183,  2, 87,161, 94,221,199,191,125, 15,117,243, 26,191,240,143,238, 80,221, 40,169,178,146,159,125,231,152,207,220,104,
+216, 47, 75,222,124, 39,231,232, 96,135,197,110,193,206,100,192,235,111,223, 98,186,152,177,110, 29,153,232,248,250,155,247,248,
+ 59,111,125,200,165, 74,178,183, 51, 68,134,152,253,223, 59, 55,120,235,216, 29, 15,120,238,112,135, 95,121,231, 22,239,221,123,
+ 72,161,115, 38, 85,201,143,254, 59, 63,201,255,243,238,251,240,254,  3,104, 22,252,249, 63,253, 39,121,238,232,210,175, 65, 64,
+231,  9,  1,253,113,148,123, 31,108,248,100,239,243,222, 82,115,187, 10, 17,252,218,188,190,213,177,109,223,251, 39,253,187,216,
+ 50, 84, 41,199,169, 61, 38,162,  9, 75,207,197, 44,114,232, 68,  4,119,244,232,253, 97,  9, 77, 74, 60,180,220, 80, 51, 42, 29,
+177, 17,217, 78,172, 96,237, 34,122,176,171, 60, 86, 76, 93,189,209,124,239,215,225,246,  2, 87,  9,132,114,145, 54,247, 85, 93,
+ 10,232, 93,242, 83,238, 82,224,191, 64,143,203, 77, 64, 52, 61, 42,117, 43, 65, 11, 36,212,105,128,208,225,253, 86, 85, 45,182,
+ 42,116,111, 55, 26,  6,164,249,111,149, 71,160, 79,112,143,242,216,189,221,252, 91,132, 77, 66, 80,234,216,222,253,164,246, 78,
+ 78,236, 72,101, 41, 49,184,118,  8, 31,222,223,200,222, 58,255,201,247,182,105,248,232,131, 59,140, 46,239,177, 51,205, 24, 23,
+ 37,171, 58,218,196, 30,237,236,177,119, 52,161,110,162,216,206,170,109, 88,180, 13, 46,  3,191,154, 65,151,180,167,243,173,107,
+  4,113,148, 33,154,248,247,215,137, 13,225,158,226,121,111,211,215, 83,192, 13, 66,208,  4,143,246,129,247,186,142,179, 14,222,
+169,211,207, 21,  2,230, 91, 26,  4, 33,174,181,252, 11,175,208,221, 59,251, 22,137,235, 99,  9, 95,159,144,246,246,150,239,188,
+133,253,220,107,156,213, 53,132, 21, 72,197, 47,222,125,143,188, 28, 83,  9,193,108,126,  6,210, 19,154,  8,146, 19, 85,  9,171,
+134, 32, 53, 60,124,152,152, 48,221,183,  8, 60,143,189,230,167, 96, 87,145, 45, 96,  1,149,211,  1,183,229,152, 35,215,226,170,
+138,214,121, 94,173, 74,238,117, 29,206, 38,136,186, 77,244,217,178,188,120,142, 46,233,200,216,176, 66, 48, 46, 53,214,  5,116,
+225, 81,121, 78,221, 90, 78,219, 64, 53, 44,121,195, 74, 14,133,160,238, 26, 68,107,120, 32, 38,236,153,134, 74, 72,174,236, 14,
+ 41, 77,141,148, 26,135,164,234, 90,118,118,119,185, 91, 55,228, 78,113, 56, 40, 24, 82,242,208,  7, 70,187,151, 56, 63, 62,  6,
+ 37, 88,171,156, 46,192, 10,144, 33,176, 18, 18,135, 36,232, 44,170, 16,142,151,176, 78,201,221,175,202,203, 62, 26,194,116, 79,
+ 51,142,235, 63,  8, 64, 26,110,157, 46, 81,151,225,197, 82, 51,109, 59,142, 84, 73,235, 28,173,179, 84, 42,231,196,116,212,193,
+178,159,231,204,172,225, 32,215,172,154,142,151, 67,203,  7,179,154,251,103, 11,164,179,  4, 27, 63,132,141,231, 19,236,163, 88,
+182, 79,188,231,207,242,122,255,246, 19, 18,215, 18,  6,195,  4, 16, 77,186, 14,166,123,166,208,148,246, 67,201,199,191,244,215,
+144, 82,242,225,151,255, 42,  0, 95,250, 29,127,152, 15,110,221,229, 63,248, 19, 63,198,191,249, 47,255, 94, 14, 15,118,249,153,
+ 95,248, 26,255,210,191,255,103, 57, 62,155,241,195, 63,244, 61,252,143, 63,241,239,242,215,127,254, 23,249, 23,126,219, 15, 34,
+149,226, 79,254,248, 95,224,123,127,224, 53,254,192, 63,241,155,185,124,184,207,159,251,171,127,139, 63,247,151,255, 47,254,232,
+ 15,125, 63, 82, 88,180,254, 62, 94,127,243, 35, 86, 77,199, 15,126,254,  5,190,231,139, 47,243,119,190,252,151,120,248,250, 91,
+252,200,191,248,187,249,183,254,232,239,225,198,229,125,190,254,241, 61,126,236, 39,127,138, 95,126,255,109,238,254,165, 63,141,
+ 64,240,147,255,246,239,  3,224,143,253,217,191,204,207,190,253,141,216,253,156, 25,176, 53,255,252,239,254,173,252,190,223,243,
+ 67,124,207, 15,255, 17,126, 93, 95, 61,184, 65, 60,107,208,220,162,242, 92,180,152,121,118,141,225,103,237, 40, 60,237,111,107,
+251,108,129,253,105,199, 93,150,177, 10,239,221,212, 84,  1, 86,199,207, 55,117,148,142, 29,148,155,227,200, 52,180, 73, 26,182,
+136,150,138,145,247,223,198, 25, 41,117,148, 24, 85, 62,182,233,251, 42,221,177,161, 61,125, 19, 56,110, 11, 33,239,205,166, 53,
+ 29, 82,171, 90,166, 28,190, 15,232, 50,196, 68, 99,144,127,115, 75, 56, 35, 30,135, 77, 32, 65,147,170, 97,209, 87,228, 91,237,
+124,177,245,248, 54,  9, 73,232, 83, 96,237,103,245,117,226,223, 23,217,214, 24, 32,  5,116,231, 82,162,144,254,118,174,210,239,
+217, 10,148,166,217, 32,226,183,129,114, 90,196,121,113, 86,114,233,242,  1, 39, 15,103, 48,235,210, 40, 65, 38,239,132,173, 29,
+102,123, 45,133, 21,100,  7,188,118,245, 38, 90, 58,  6,163, 17,174,169, 81, 74,179,127,120,137,178,204, 81, 69, 96, 58,111,168,
+ 93, 71,231, 44,199,245, 60,110, 44,139,117,252,176,102,179, 86,157,221,128,254,164,127, 74, 15,240,177, 53,185,181,214,239, 28,
+175,120,126, 60,228, 78,211,128, 47,121,167,115,155,243, 21,114,147, 32, 92, 36,235, 53,221,219,239, 70,250,104,219, 61,161, 66,
+127,108,221, 63,254,249,190,149,219, 76,152, 31, 31,195,184,141,  5, 75,178, 36,237,128,206,172,226,  8,193, 68, 14, 52, 64, 56,
+153, 70,175,245,166,217, 84,255,197,147,157,  2, 63,113, 99, 95, 55,177, 61, 61,174,226,249,237, 94,  6,123,200,131,241, 78,212,
+214,215, 37,239, 44,234, 77, 23,168,255,123, 66, 70,  4,246,112,  0,157, 71,101,158,202,121,156, 18,204, 93, 96, 80,102,152,198,
+ 96,  8,136, 66,179,178,158,147, 96, 41,131, 98,145,105,  6,114, 68,147, 91,196,116,206,160, 24,162,186,134, 82,192,104,178,203,
+ 14,130,105,211,161,  6, 21, 31,206,230,188,178,183, 71, 99, 13,171,214,113,234, 12,207, 15,  7,156, 19, 56,216,223,231,214,236,
+156, 66,230,156,174,187,200,  0, 17, 48,  8,158, 70,107,180,206,112, 34,131,225,128, 32, 10,112,205,147,241, 61,219,157,206, 79,
+ 83,132, 93, 36,105,143,221,243, 94,175,201,123, 66, 90, 87,161,179,  4,  3, 31,157,231,252,  3, 47, 40,145,236, 23,138, 12, 80,
+ 50,103,233, 13, 74,106,238,172,107, 78,  9,104,165,144,206,162, 75, 77,214,193,229, 61,193,195, 85,234,  2, 52,117,106,121, 63,
+ 58, 90,249, 38, 12,  5,143,226, 91,191,109, 76, 65,145, 67, 89,196,  2, 72,  8,112, 42,225,109,252, 39,198,133, 71,102,234, 33,
+  4,156,115,156,156,205,248,254, 31,249,215,248, 47,254,235,255,153,243,217,130,159,248,143,254, 13,126,251,111,254, 18, 63,250,
+135,254, 61,254,204,127,245, 63,241, 99,191,255,119,241,165, 87,159,231,111,253,253,175,242,135,254,185,223,206, 23, 94,123,137,
+255,242,191,249, 43,252,137,159,250, 43, 92,175,198,252,135,127,252, 15,242,191,252,181,159,230,143,255,103,127,145,143,166,199,
+252, 39,127,228, 15,240,231,254,187,255,149, 92,214,124,254,133, 27, 76, 70, 67,254,238, 79,255, 60,191,243,183,124,145,151, 95,
+184,202, 31,249, 79,255, 91,254,239,127,248, 14,127,242, 15,255,179,252,254, 31,249, 65,126,255,159,248,179,252,169,159,252,139,
+252,150, 47,124,134,223,254,242, 77,254,234, 95,250,223,113,251, 59,116,173,225, 95,253,207,255,123,254,194,255,241, 15, 88,173,
+ 86, 88,103,120,227, 87,238,192,116,202,205, 23,174,242, 55,127,234,207,240,  7,255,216,159,230,205,119, 62,250,181,169,210,241,
+ 27,177,148, 39, 61,210,129,103,243, 40,239,129, 61,126,203,145, 43,244,173,216,239, 70,146,225, 63,217,114,246,153,125,212, 31,
+ 27,248, 95, 24, 28, 84,233,148, 85,  2,193,117,144, 87, 96,151, 49,130, 21,101,188, 22, 85,  1, 85,149,134, 93, 58,130,210,134,
+131, 24, 64, 93, 74, 14,156,219,200, 32,154,  5,200, 50,166,196,222,196,160,218,  3,227,202,252,209,141, 64,234, 77,128,233,  9,
+180,206, 37, 48,158,216,204,209,173,216,180,188,123,106,140,220, 66,196, 43, 25, 55,218,114, 16, 31,168, 94,198,214,218, 56, 79,
+105, 76, 12,166,150, 77, 80,251,255,186, 59,243,216,202,174,251,190,127,206,114,151,119,223,198,101, 54,105,180,203,178, 36,203,
+ 82,237,120, 81,188,  1,110,155,218, 13,218, 24,112, 19,184,168,255,180, 83, 32, 64,209, 38,  5,130,  2,  6,138,180, 64,227, 46,
+105,141, 26, 40,138,182,169,155,182,  6,154,216,109,224,164,177, 93, 27, 65,108,  3, 74, 17, 91,134, 20, 69,171,173, 37,150, 53,
+210,140,102,134, 67,114, 72,190,229, 46,103,233, 31,231, 92,222, 75,206,140,228, 25, 73,142,209,  7, 16, 36, 31,249,222,187,203,
+ 57,191,245,251,251,126,235,232,169, 91, 36, 61,190, 35,175,176,190,119,189, 84, 36,138,112,157,156,234,129,102, 96,191, 34, 70,
+  4,195,212, 33,232, 57, 76,118,209,239, 73, 87, 53,139,237, 69, 16, 52,106,103,228,137, 61,121,209,151,233,117,221,122, 74, 52,
+119,223,247,118, 38,195,130, 99,227,117, 82,165, 25, 20,  5,227, 65, 65, 83, 55, 12, 70,  5, 94,104, 68,170,105, 28, 56, 28, 79,
+109,109,211,  8,  9, 23, 46,  4, 10, 88,211,116,199,236,162,212,166,142,228, 49, 45, 81,149, 10,162, 76,  7,122,171,253, 62,161,
+ 86,113, 84, 17, 94,108, 96,203, 43,182,132, 15,193,138,139, 85, 20,235,130,194, 85, 95,200, 40,209,176, 88,118,204,145,237, 61,
+234,143, 26,181,243,238,142,131, 65,114, 31, 75, 82, 45,195, 49, 14,179, 72,128, 20,143,115,123, 35, 16,222, 72, 21,232,105,181,
+134,205,109,152, 14,195, 26,216, 62, 23,208,221, 89,250,170,153,250,149,177, 47, 13,204,150, 97, 31, 12, 70,  1, 27, 32,117, 28,
+  9,171,194, 57,167, 49,168,107,215,133, 82,221,244,135,169,104,140, 99,109, 92,176,174, 36, 74, 73,246,106,143,148,130,165, 23,
+156, 89,212, 44,113,204,107,139, 84, 10, 82, 77,227, 61, 78, 73,142,166, 41,141,148,220, 49,144,140, 17, 88, 47, 25, 74, 65,145,
+103, 44,107,195, 90, 81,176,181, 44,241, 90,147, 41,201, 40,205,184, 96, 26,214,117,194,  5,107,184,101, 52,225, 84, 89, 50, 72,
+161,170, 45, 53,130,165,173,216, 50, 13, 66,106,106, 83,117, 99,169, 91,219, 29, 51, 98,223, 97, 37,170,107,169, 93, 45,121, 81,
+111, 13,137,120,111, 69,143, 30, 66,120, 31,116,212, 33,140,186, 57, 88, 36,138,163, 90,145,105, 73, 74,104,159,205,156,101,219,
+ 90, 46, 56,203,  2,129, 21, 30, 33,  4,210,251, 64, 75, 46, 37, 39,134, 41, 34, 81, 44,147,  1,216,  6,233, 65, 28,  2,199, 93,
+ 65,134,235,218,123,236,237,254, 77,211, 14, 84, 42, 68,216, 99,175,  2,  2,191, 36,158,126,239,187,238,229, 27,127,252,208,254,
+239, 55, 92,119,148,191,247,137,143,114,251,253,127,155,243, 23, 46,  2,240,187, 95,125,128,143,253,205, 15, 66,185,199, 79,255,
+165,183,240,111, 63,247,191,248,230,255,125,  2,117,251, 58, 27, 91, 23,249,250,131,143,240,123,143, 61, 70,189,156,115,246,249,
+ 77,118,102, 11,236,162,228,219, 79,158,231, 19, 31, 91,225,143,254,236, 73, 62,242,115,239, 71,107,205,135,126,229, 55,216,220,
+216,227,216,218,136, 79,253,210,223,226,190,159,251,135,188,180,189,139, 51,154,175,125,235, 65, 62,249,177,159,133, 69,201,253,
+ 55, 93,207,215,190,243,  8, 79,109,158, 39,145,146,199, 47,206,200,178, 32, 50,161, 71,  5,191,243,217, 79,241,239,127,251,171,
+ 60,240,208, 19, 63,222,186,181,239,  1,176,250,229,119,119,149, 61,113,219,150,220,123,128,179,215,181,131, 96,174,  0,161, 48,
+ 63,106,  4,115,233,115,222,193,112, 26, 70,  7,163,100, 41,178,  9,229,114, 83,129, 30, 71,173,110,  7, 43,  3,152, 22,161,228,
+ 40, 36,140,178, 64,  6,147,  8,210, 36,167,102,121, 41, 97, 79, 50, 14,239,237,  0,105,186,158,125,109,186,126,122,107,200,197,
+229, 90, 32,186,  3,149, 65,112,198,109,217,221, 68,133,188, 36,143,206,216,133, 13,212,146,187, 12, 90,227,145,192,162,233,  0,
+136,137, 14,165,116, 45,  2,130,185,142,199,236,234, 46, 92, 23,135, 67,244, 24,168, 45,234,174, 50, 80,153,144, 69,215,241,127,
+147, 94,  9, 63,139,206,223,134, 44, 60,  4, 30, 61, 71,116,224, 28,218,177,191,121, 55, 54,217,196,118,134,237,129,104,132, 12,
+148,178,237,253, 94,191,137,227,171,235,104,169,217, 89,236,145,231, 57,171,249,144, 36, 79, 73,101, 26, 49, 89,134,201,116,  0,
+ 18,230,203,  5,183,140, 87,241,102,198,247,198, 67,216,220,233,174,107, 59,158,211,158, 99,139,177,168, 77, 36,102, 50, 87,118,
+126,109,150,221,148, 48,111,129,156, 45, 72, 49,146,  7, 73, 21,112, 22,182, 60,152,229,183,159,173, 47,131,169,208,241, 92,205,
+161, 62,187,190, 76,214,119,113, 22,152,245,210, 54, 88,216, 11, 96,186,202,192,169, 51,193,145, 22,121,144,  0,157, 47,  3, 59,
+228, 43,100,232, 87,149,113,170, 37,252,249, 11,225, 60,  7, 41, 52, 11,152, 28, 15,253,104,107,160,148, 93,123, 72,200,174,244,
+ 26,191,167, 89, 78,125,238, 34,230,196, 26,110, 94, 51, 28,166,224,100,160, 76, 80,158,166,129, 97,150,176, 83, 53, 88, 37,112,
+105,152,114, 88,120,207,170, 75, 56,147,228,164,110,193,221, 89,202, 66,192,145, 68, 65, 82,224,234,134, 65,154,  4, 21,100,161,
+152, 11,199, 48,205,152,153,154, 19,163,  1,103, 22, 75,142, 15,  6,108,151, 75, 26, 26,156,183, 88,149,131,153,225, 26,131,202,
+ 71,152, 34,202,151, 14,199, 65,147,163,127,111,156, 60,152,189, 43,249,163, 87, 38, 15, 93,247,  3, 25,113, 79,176,208, 43,185,
+ 63, 94,232,154,146,229, 30,124, 77,  8,172,132, 66, 44, 56,150,  5,194, 35, 43,  5,115,165,  3, 75,164,245,104, 37, 24,106,205,
+  0,197, 12, 65,158, 75,134, 72,142,100, 21, 79,178,  2,179, 57,126,209,224,125, 40,199,247,209, 46,254,208,207,175,205,100,155,
+ 32,109,188,175,191, 30,136,122, 94,237, 26, 93, 98,177,223,243,206,123,248,244,103, 63,191,255,251,135, 62,248, 46, 30,126,244,
+233,125,135, 14, 48, 29, 21,156,223, 14, 36, 19,247,191,253, 78,254,201,103,254, 43,140,114,236,243, 23,120,251, 93,111,226,155,
+223,126,146,157, 23,246,152,222,182,194,123,223,255, 86,190,253,240,247,112, 82, 51,190,110,192, 93,183,223,198,251, 86, 71, 76,
+ 71,  5,119,254,141,127,192,238,172, 98,116, 52,227,175,254,244,125,100,169,230,161,223,251,215,241,106,120,164,144,124,241, 15,
+190,137,  7,222,115,223, 29,124,250, 55,126,139,157,231,126,176, 15,184,170,226, 92,241,175,255,242,199, 49,214,241,235,255,249,
+127,  7,135, 66,253,198,250,115, 67, 40, 89,183,151,207,186,131, 78,197, 93,195, 29,237, 27,165,170,254, 49,  5, 38,230,218,  3,
+135, 68,134, 50,187,237, 59,116, 31,174,191,175,162, 99, 95, 66, 54,  8,255,187, 50, 10, 32,170,149, 33, 89,150, 81,237, 85, 76,
+ 38,  3,202,210, 99, 91, 62, 99,116,200,202,171,101, 64,176,103, 61, 16, 90,157,  4,144, 83,109, 46,189,102,109, 73,190,229, 79,
+ 86,189,123,144,137,110, 57, 24, 31,126,247,209,193,139, 24,152, 16,203,244,101,236,135, 15,243, 78,188,196,187, 96, 92,117, 68,
+ 62,150, 38,150,200,155,208,251, 78, 85, 96, 95, 59,236,204,219,223,219,185, 83, 31,157, 85,105,194,235,124,204,238,211,126,159,
+188,103,229, 92,203,104,101,186, 74,132,171, 35,213,109, 47, 72, 49,254,224,186,107,151, 97,227,122,216,205, 62,136, 51, 84, 52,
+110,184,237, 36,179,106, 73,158,104, 50,149,178, 87,206,209,  8, 50,173, 81, 67,168, 23, 53,211, 35, 19,118,247, 26, 22, 85,195,
+238,178, 66, 99, 40, 27, 56,178, 58,229, 66,185,132,151,202,144,173,239,  7,161, 38,  4, 33,210,117,125, 84,173,187,210,249,171,
+225, 53,148,233,136, 56,218,160, 49, 21, 65,  4,  3, 96,135, 80,173,241,166,123, 77,223,192,239,115,255,167,  7,251,142,  2, 72,
+167,112,235, 42, 60,251,220,101,  2,217, 58,242, 18,196,160, 46,199, 28,146,165,  0,  0, 19,212, 73, 68, 65, 84, 25,132, 15,187,
+176, 13,213, 94,168, 68, 93,220,137,228, 74, 85, 88,131,197,235,212, 43,174,234,240,249,207,191,  0,199,214,122, 99,195, 50,220,
+243, 74,198,209, 69,194, 40,103,108, 73,164, 66, 83, 11,184,213,212, 84, 58,225,135,103, 54,184,101, 60,100,161, 37, 59,101, 67,
+170, 85,192,163,106, 25,240,186, 89,144,153, 93, 36,158,129,147,148, 90,145, 13, 28, 55,214, 21,168, 49, 27,222,146,121,199,197,
+218,144, 36,154, 36,207,216,174, 42,174, 19,154,185, 55,228, 42, 65,226, 16, 73,138,179,150, 53,157,176,225, 26,106,149, 48, 73,
+ 60,167,155, 26,105, 75, 18,157,144,160, 40, 75, 19,156, 81,158,195,145,181, 96, 11, 90,109,132,182,197,213,199,175, 92, 77, 73,
+122, 52, 13,247,231, 74,118,210,183, 83, 94,174,151,183, 24,240, 37, 75,169,248,242,210,114,231,177, 33, 43,118,193,170, 77, 25,
+ 39,193,103, 36,105, 18,114, 52, 33,240,113,124,104,168, 37, 30, 69, 35,  5, 43, 90,177,146, 40, 30, 17,138, 74,215,120, 83,226,
+154,  6, 81,155,253,185,121,119,153,204,252, 53,149,225,189,129,157,157,176,119,165,123,213,126,250, 37, 78,253,150, 27, 79,176,
+ 58, 29,243,232,147,207,237, 63,119,116,125,149,189,217, 65, 18,129,143,252,245, 15,240,155,191,243, 85,110,187,253, 22, 70,195,
+  1,143,253,240,165,  8,204, 17,124,224,254,123,248,231,159,251, 18,222, 59, 70,197,152,123,174, 63,201,  3,143,125,159,119,188,
+253, 24,223,127,161,230, 45,183,223,192,167,255,251, 55,120,247,155,143,242,233, 95,254, 56,255,225,139, 95,226,241,103,182, 89,
+ 95, 25,243,149,  7,254,148, 95,248,213,207,226,189,197, 55, 30, 63, 47,241,245,156,155,111, 60,206,234,116, 20,142,203,214, 80,
+  0,197,  4,134, 67, 62,124,255, 61,124,242,231,127,134,183,253,194,175,  6,231, 80,164,193,184,191,209, 64,185,125,159, 30,127,
+232,247, 59,175,213, 89,190,161, 60,238,209,249,213,230, 42, 62, 71, 95, 33,203,223, 79,  9, 15,238, 72,161, 58,112,156, 34,128,
+211,178, 20,142,142,195,232,206, 56, 35,215,  9,206,195,112,117, 66,109, 13,121,150, 34,164, 97,111,105, 72,144, 84,152, 72, 27,
+ 90,195,142,233,156, 49, 38, 34,172, 27,240,101,119,124, 66,135, 32,175, 53,222,135, 37, 75,219,254,185,142, 30,119, 63,203,238,
+101, 64,237,107,219,146,246,230, 44, 56,146, 36,102,132,146,192,106,166,162,227,109,226,255,238,163,220,101,216,124,109,112, 32,
+ 35, 65, 19, 61,208, 99, 75,132,211,127, 93,155,229,183,239,153, 69,105, 88,161,218,  3, 63,  4,170, 59, 52, 30, 86, 19,156,222,
+ 62,102, 32,222,146, 54,232, 58,188,  7, 90,199,171, 82, 94, 58,117,154, 27,238, 89,  3, 96, 94, 46,209,137,192, 52, 13,206, 86,
+ 84, 75, 79,154,231,212,141,165, 24,103,156,218,188, 72,109, 26,110,212, 57, 85,230,185,119,120,130,167,202, 37,223, 91, 84,112,
+118, 43,192,173, 91, 71, 87,155, 88,133,208, 93,133,162,117,232, 87,  2,206,181,207,215,  6,146, 26, 92, 26,239,109,188, 55, 69,
+168,200,169,241,144, 19,169,227,244,198,  2, 22, 59,151,178,  8,238,247,221, 15, 33,225,189,129,249, 38, 60,187,121,249,236,218,
+ 52,112,113, 47,  8,215,136, 36,148,194,215,215,195,243,167,231,  1, 16,220, 24, 96,212,177,128,165,250,245,221,158,229, 30, 92,
+104, 34, 67, 96, 92,135,131,149, 48,151, 94,214, 17,160,172, 88,115,142,147,131,156,117,  9, 79,204,151, 28, 79, 37,190, 42, 57,
+ 85,150,108,160,208,123,115, 40,  6,108,249,  0,144,195,  6, 37,192, 34, 81,108, 11,139, 51,176,240,150,155, 11,205, 81, 33,168,
+ 42,201,186, 20, 44,154,146,163,105,202,249,237, 25,183, 14, 37,167,231, 53,215, 37, 41,187,182, 97, 37, 73,217, 49,134, 66,105,
+230,166, 97,168, 18, 54, 49, 52, 22,150, 77,195, 89, 39,176, 74, 50,119, 26,101,  5,165,143,129,126, 86,192,176,  6,113, 49, 34,
+245,229,190, 62,249,126,217, 61,185, 74,251,103,221,193, 53,117, 57, 28, 67, 59, 69, 36,101, 32,  1,138, 69, 54,111, 12,126, 62,
+199,169,138,167,206,195,201,105, 74,230,  3, 46,101,152, 15, 40,109,131, 80,  9,185, 86, 56,227, 81, 42, 16,242, 52,214, 82,232,
+140, 92, 25,  6,192,155,110,204, 57, 83, 86,252,176, 44,249,225,102,133, 45,231,216,101,117,192,225, 58, 94,135, 76,125, 63,129,
+138, 36, 94, 50,237,104,101, 95,225, 90, 29,168, 89,158, 56,186,134,181,142,209,112,192,120, 24,234,143, 79, 61,243, 60,239,123,
+247,125,220,113,235, 13,164,137,230,159,254,163, 79,146,101, 41,191,253,251, 15,112,255,253,111,229,225,199,159,197,  8,141,  7,
+110, 58,121,140,225, 96,192,159, 61,242,125,214,223,188,202, 75,223,123,153,119,191,237,205, 60,121,246, 69, 30,124, 98,131,119,
+221,121, 19,207,189,180,193,191,251,221, 47,242, 75,255,236, 63,241,145, 15,190,147, 27,142,223,130, 83,154,199,158,125,145, 15,
+252,212,221,252,212, 91,110,195, 27,207,234,116,192, 39,255,206, 95,161,152, 12,123,199,149,134,227,178, 26,180,230,186,181, 41,
+159,255,212, 47,242,137,127,241, 95, 56,189,177,211, 33,  4, 61, 63,158,135,137,206,219,180,142,210,116,207,253,164, 61,132,142,
+ 97,164,190,182,128,160,159,161, 39,192, 32, 50,192,165, 61,135,162, 34,241, 75, 22,103,179,143, 29,131,233, 24,146,132,233,120,
+200,209,188, 64,139,148,161,200, 72, 68,194, 80,101,140, 83, 77, 83, 65, 46,117,104,119, 15, 90, 93,239, 72, 20, 99,108,236,217,
+ 39, 81, 33,172, 12,159,  1,145, 94,244,240,174,214,221,119,213,203,104,247,143, 63, 58,116, 14, 85, 87,164,234, 50,228,246,222,
+ 46, 99, 38,218, 82, 56,150,189,209, 53,231,187,237,235, 76,231,192,196,161,173, 37,101, 71,108, 35, 99, 12,100,122,115,246,109,
+118,158,  0,149,143,  1, 67,116,136,253, 17, 23,157,244,144,242,109,102, 31,  3,158,180,181, 90, 61,194,163,198,245,130,175, 67,
+173, 22,  7,236,108,243,252,246, 89,150,139, 93,140,169, 88,238,237,210,152, 57,179,217,140,186, 90, 50, 95,204, 40, 23, 37,243,
+221,146, 81, 42, 56,174, 83,164, 80,172,143, 39,156,222,221,101,146, 36,220,125,114, 21,142, 76, 46, 13, 26,138, 60,156,119,107,
+228,132,238,233,174,155,203,103,171,125, 30,123,111,187,118,148,136, 68, 27,171, 99,110, 91, 41, 40,  6, 67,222,113,211, 42, 12,
+198,161, 36,175,117, 87, 13, 56, 76, 19,140, 57, 24,144,182, 78,191,125, 77,235,244,219, 86, 71, 99,120,203,104,141,159, 95, 63,
+198,199,111,189,149,147,199,215, 33, 31,118,193, 81, 53, 59,  8,116,187, 22,144,234, 37,191,247,  3, 80,  3,231, 78,195, 75,231,
+  2,136,206,212, 48,219,220,151,220,188,217,214,220, 87, 20, 76,235,154,220, 58,222, 63,200, 25, 84, 13,105, 83,114, 82, 39,236,
+108,189,204,185,237,243, 44, 94, 58, 69,  1,236,149, 21, 94,123, 84,166,216, 43,155,120, 45,  5,140, 50, 22, 66, 83,100,  9,201,
+164, 96, 51, 79, 25,175, 76,216,170, 12, 71,167, 35,158, 63,191,195,177,201,144,202, 25,142,142,134, 24,  9,147, 65,202, 22,142,
+245, 81,206,217,170,230,136, 82,172, 13, 52,153,214, 92,172, 23,204,141,161,196,211, 72,193, 18, 80, 58, 58,117, 37,225,232, 10,
+ 20, 43,113,223,246,170,155,182, 93,167, 28,172,192,189,154,205,221,221,185,100, 29,249,150,152, 37, 50, 42,134,178,187, 11,112,
+ 28,186, 47,219, 24,172, 41,177,187,123,156,186,176,203,119,247, 22,236, 85,134,178, 92, 98,170,134,198, 89, 26, 99,241, 17,232,
+156, 41, 69,161, 21,215,105,120,239,100,157, 15, 29,191,142,247,173, 30,229,195,199,142,240,209,147, 39,248,240, 13, 43,232,181,
+ 53,244,100,138, 42, 70, 40,173,145,135,122,237,175,169,183,174,117,176, 95, 89, 18,190, 15,178, 75, 91,141,175,228,212, 31,125,
+234, 57, 30,122,244,251,188,252,216,239,243,245, 47,124,  6,128,175,252,225,159,240,223,190,248,127,120,232, 15, 63,199,217, 39,
+254,128, 55,221,118, 35, 31,254,228, 63,166,177,142,251,223,122, 39,223,121,244,233,125,117,173,247,188,237,173, 60,252,248, 51,
+216, 44,101,227,145,151,185,254,196, 81,214,166, 35, 30,248,214,211,184,101,197,123,223,121, 23, 15, 60,248, 24,187,231, 23,188,
+124,238, 34,127,255, 95,254, 22,255,241,215,126,145,181,233,144,175,255,201, 35,252,155,207,127,153, 47,125,230, 87,152,125,247,
+243, 60,244,133,127,197,219,238,186,157,197,238,156, 71,159,122,250,224,113,217, 18,105,106,254,199,175,253, 93,190,240,173,239,
+242,229, 63,254,211,168,102,227,130, 97,252,139,210, 23,255, 73,116,230,253, 50,142,141,223, 95,203,163,221,132,182,165,142,245,
+193,233,166,209,  0,107, 19,144,239,217, 40, 32,134,135,  9,147,241,132,198, 57,102,198,179,158,165,228, 90,146,107, 73,162, 37,
+198,193,106,158, 35, 83,201, 48, 77, 81,168,224,244,234, 72,176,160,211,142,243,189,237,187,245,209,206,251, 13,180, 86,214,245,
+ 10,216,129,182, 39,217, 58,116,149,  6,128,148,137, 14,101, 95,153, 73,116,217, 67,155, 81,247, 65,106,139,186,235,253,183, 36,
+ 49,109, 79,189,253,156,195, 34,  1,206, 35,147, 32, 59,140, 80, 93, 95,221, 69, 39,238,251, 65, 71,204,202,219,210,254,254,123,
+244,116,231,171, 67, 56,129,125,189,  3,115,153,221,237, 66,255,210,201, 46, 24,242,161, 60,126,238,197,179,188,176,117,129,167,
+206,158,226,236,222, 22,167,182,206,227,104,176,214, 35,156, 99,107,107,155,249,206, 54,236,205, 89, 25,229,172,166,176,187, 88,
+210,120,137,200, 51,134, 73,  6,131, 60,176,  2,182, 89,152,141,  6,218,197,190,186, 49, 33, 16, 75,210,142, 25,240,138,176, 93,
+ 25, 89,178,124, 55,151,155,  8,210,241,128,119,140, 10,142,175,142,153, 20,  3,182,208, 28,185,110, 21,198,195,200,129, 32, 59,
+103, 77,175,207,223, 86,114,250,173, 45,113, 25,163, 41, 91,125,130,140,159, 57,186,202, 61,199,215,184,107,186,198, 95, 59,121,
+  3,156, 88,239, 70, 39,175, 53,240,191,210,244, 73, 31,193, 77, 47, 57,152,109,194,198, 38,108,157,  9,138,143,205,146,251,176,
+164,206,163,235,146,235,181,162,  4, 42, 60,198,  4, 85,202,235,211,154,147, 74,162,235,146,205,122,143,239,124,234, 55,209, 79,
+ 63,204,169, 63,250, 10, 27,139,154, 18,137, 17, 33,192, 44,180,226, 45, 67,197,233, 65, 70, 54,202,208, 90,147,104,205,182, 46,
+176,169,102, 52,157,176,181, 51, 35,205,242, 48, 48,130, 96,230, 61,185,144, 44,170,134,235,166, 35,150,120, 42, 15,203,218, 51,
+ 41, 70, 32, 36, 42, 25, 96, 61,228,105, 78,237, 91,106,228, 81,152,235, 31, 12,186,164,160, 61,215, 42, 78, 32, 44,202,171,179,
+217, 87,250,223,120,253,124, 19,197,182,122,253,238, 86, 38,193, 18, 92,133,109, 74,236, 98,201,197,141, 57, 15,238, 46,104,172,
+195, 53, 65,246,121,183,174,169,188,223,167, 96, 31,169,132, 99,233,  8,137, 96,162, 83,214,148,226,230,116,200,219,  7, 83,238,
+152, 76, 57,186, 58, 64,173, 77, 80, 71, 86,144,147, 41, 34,201,175,158, 93,238, 74, 25,122,154,244, 52, 42,232,212, 18, 95, 97,
+162, 73,112,252,253, 63,122, 94,155, 69, 22,176, 22,168,211,159,245,109,203,153,105,129,152, 45, 98, 22,209, 64, 62, 70,148,123,
+161,167, 37, 29, 66,167, 97,211,103,145, 48, 35, 11,125,140,208,239, 12,136, 96, 95, 19, 70, 56,204, 28,127,165,136,184,136,139,
+165,165, 47,173, 77, 48,106,243,249, 95,156, 83,255,113, 62,218,153,204, 55, 92,126,245,208,226, 41,162, 33, 74, 84, 96,115,107,
+ 29,133,146,  7, 23,163, 34, 24,221,149, 17,211, 65,129, 18,  9,133,150, 36, 90,177, 57,171, 89,207, 83,246, 26, 67,174, 37,  3,
+173, 56, 63, 47, 81,  2,182,182,247,162,179, 43,  3,181,167, 51, 97,196,199, 87,  7,241,  6, 90, 31, 98,155,139,253,244,182,183,
+ 14, 29,171, 94,214,203,206,145, 29,240,196,212,145,171,254,112, 70, 27,203,228,253, 30,119,159, 80,198, 31, 42,253,249, 30,218,
+122,159,253,226, 50,239,215,102,230, 94,116,217, 95,170, 34,133,172,138,200,108,209,  5, 23,165,  9,  1, 78,145,198,207,183, 29,
+ 18,218,247,112,  2, 45,136, 79,181,206,204,117,199,148,230,112,100,  5,214, 87, 96, 99, 27,206,109,134,247,200,199, 33,203, 30,
+ 14,201, 82,201, 48, 73,153, 14,114,110, 63,178,206,116, 56, 70,167,197,126,188,180, 53,219,101,148,101,  8, 47,169,109,195,139,
+139, 25,152,138,189,114,198,243,155,115,120,121, 35,204,174,215,132,106, 74,191,223,221, 22, 12, 90, 37,189, 43,181,127,218, 94,
+188,136, 45,135,181,105,  8, 24, 86, 71,188, 99, 50,230,104,154,146,  8,193,182, 41, 57, 63,175,121,102, 54,131,139,139, 64, 73,
+186,108, 66,176, 37,155, 16,116,182,220,217,253,224,175, 45,201,246,217, 65,100,143,200,232,248,  9,238,189,247, 30, 62,122,231,
+189, 12,  7, 25,137,183,252,249,185,115,124,229,217, 39,120,225,225,199,187,145,178,107,217,167, 87,218,159,175,244,183,201, 58,
+156,188, 14,142, 28,131, 60,225, 29,235, 55,114, 75, 62, 98, 94, 47, 17,163,  9,121,211,176,215, 52, 36, 58, 97, 77, 55,108,205,
+106,188,148,252,160,170,168,140,225,133,217, 38, 63,123,253,173,212,214,240,141,147,183,195,168,128, 92,161,156,228, 47, 31,201,
+ 72,128, 41,138, 29,231,185, 69, 67,179, 91,113,163,114,204,247,150,176, 40, 57, 41, 60,197, 64,161,117,202,233,178, 98, 85,107,
+246,202,138,139, 42, 97,108, 13, 47,214,150,220, 90,158,156, 25, 54,202, 57,155,198,162,112,108,224,104,170, 10, 43,193,150,243,
+208,174,152,111,  5,  5,205,141,141,208, 54,121,195,230,214, 15, 58,210,195,131, 37,226, 10,207,147,228, 76, 39, 25,239, 93, 25,
+ 33,178,140,193,104, 72,146, 38, 20, 89,130, 18,112, 68,103,220, 58,200, 89, 69,145, 72, 77,226, 45,206, 90,140,243,156,181,150,
+199, 23, 59,252,207,153,161, 90,150, 52,101,131,169, 74,236,238, 46,118,177,196,197,192,194, 95, 11,120, 78,235, 32,222,114,248,
+177,104, 58, 59,112,185,216,248,234, 84,218,  6,161, 79, 90,164,  1,244,212, 15, 96,133,128,201, 56,  8, 30,100, 41,194,217, 32,
+ 56, 80,238,  5,  3,178, 92, 34,  6, 69, 48,164,105,212,252, 43,210,  0,209, 79, 21,190,137, 36,247, 90,194,124, 23,106,139,119,
+230,202, 99, 14, 77, 29, 12,126, 93,131,171, 66, 86, 88,215, 63,217, 14,189,149,115,237,143, 22, 93,235,251,136,168,106,181, 63,
+198,245, 70,145,202,203,203,252,110, 66,175, 46,139,136,100,221, 91,  8, 58,170,157,173, 79, 32, 77,152,140,135,236, 46,107, 78,
+140,135, 56, 43,177,222,113,253,100,202,172,170,152,102, 25, 90,194, 11, 23,247, 56, 62, 44,216, 92,204, 81,105,138, 45,203, 32,
+163,153,233, 96, 20,204,188, 19,132,217,111, 90,197,113,168,125, 73, 86,215,161, 84, 90, 66,148,118,  7,181,  4, 45, 42,233, 52,
+233, 91,174,116,223,206,136,251,206,240, 15,146,224, 28, 90, 69, 53,111,131,243,108,199,167, 90,128,157,107, 98,134, 44, 59, 56,
+ 76,235,208,247, 57,217,187,221,156,102,122, 31,196, 19,  2,145, 40,247,218,248,152,193,196, 81, 10, 33,163,206,178,140,215, 32,
+ 10, 21, 57, 31, 71,158,204, 65,112, 92,219, 94,112,102, 31,100,138,138, 74,109,211, 41,220,124, 34, 74,125,102, 65,128,197,197,
+192,107, 92,128, 20,100,121,130, 22,146, 60,209,204,234,134, 92,165,108, 47,150,248,114,201,238,114,155,221,186, 97,103,185,192,
+ 59, 27,166, 16,133,194, 56,199, 51,198, 96,235,184,239,170,168,142,  6,161, 84,216,202,245, 38,145,219,189,137,162,207, 74,116,
+  2, 64,253,241,179, 60,138,240,248,152, 30,217, 48,141,112,239,202,144, 60, 73, 24, 36,  9,169, 20, 88,103,121,100, 89,135,114,
+107,227,187, 25,118, 41, 67,139,162, 24,114,252,216,152,108,144, 49, 25, 23,204,151,117,143, 67, 63, 94,119, 41, 46,229,165, 87,
+138,217,250, 17,238, 88, 91,195, 57,203,204,122,126,120,113,151,  7,119,183, 97,119,113,237,226, 36,251, 12,145,241, 92, 91,170,
+102,231, 94,121,207, 86,203, 48, 29, 50,208,188,115,178, 66,102, 27,134, 69, 74,166, 11,154,122,137,118,142, 65,146,161, 88,128,
+ 84,228,137, 96, 36,124,160,148, 21,150,243,203, 57,207, 93,120,145,231,245, 48,236, 73, 21,136,126,238, 58, 50,224, 54, 45,169,
+149, 66, 11, 72,180, 70, 90,207, 88,193,174,245, 12, 16,172, 38,138,243,165, 33,215,138,212,212,172, 14,114,158,221, 43, 17,  8,
+ 10, 44,231, 44,220, 48, 74, 57, 83, 89, 18, 91,115,209,131,171, 75,172,144, 84,206, 81, 74, 25, 64,106,182,129,122, 47,234, 31,
+208, 85,224, 84, 47,168,205,115, 24, 14, 99,165,204,189, 97,142, 29, 94,129,190,215, 25, 42,231,249,193,174,225,246, 97,  0, 32,
+214, 73,144, 85, 94,211, 25, 55, 36, 25, 39,117,193, 68, 41, 20, 30, 37, 53, 74, 40,172, 51, 20, 58,225, 34,142,133,105,216,240,
+224,132,199, 91,143, 55, 65,177,212,251,215, 96,155,219, 36,161, 21,154, 82,105,184, 78,166,126,197,247,252,209,157,122,145,199,
+186,126,143, 25,171, 53,226,165, 13,243,198, 85, 13, 43,211,160,212, 36,  4, 44,107,196,104, 28,102, 90,179, 12,204,  2,210, 34,
+ 48, 57, 13,179, 48, 34,162, 85, 88,192, 38,150, 53,119,151,  1, 24, 44,204, 62,225,195,149, 65, 19, 54,114,  2,155,215,117, 81,
+188,113,  9,111, 79,145, 75, 69,141,112,119, 13,220,200, 73,218, 25,192,246, 75,218, 55, 72, 44,198, 29,252,106,  3,173, 84,134,
+146,115, 58,238,148,197,124,172,182,140,134, 32,  4,147,245, 21,118,231,115,110, 94, 95,197,227, 25,232,148, 65,146,114,113, 49,
+103,109, 56,194,216,154,221,202,114,124,148,179, 93, 86, 12,179,  1,187, 59,123,241, 60,124,152,187, 54, 54,124,206,229,164, 68,
+219,185,242,253, 67,213, 93, 54, 46, 98,159, 91,197, 56,164,157,245,222, 47,195,139,176,230, 90, 39, 47, 85,199,183,110, 76, 48,
+  7,125,153, 84,227, 58, 96,157,111,117,225,117,156,213,238,197,254, 42, 58,226, 86,113, 45,254, 45,149,  2, 97,  5, 77,210,211,
+ 65, 87, 50, 42,210,133, 49,164, 64, 48, 97,195, 57,232, 52,140,243,101, 42,102,159,177,175,223,148,221,235, 91,250,217, 42,114,
+ 34,168,168, 18,167, 68, 24, 41,116,  4,228,113,166,194,154,217,153,195,133,205,240,247,100, 16,240, 11, 66, 34,149,100,154,165,
+  8, 41, 81, 30,230,165,101,105, 44,139,170, 34,145,150,185,245,140,210,130,109,107, 80, 94,112,186,169, 56,101, 12,179,114, 25,
+ 69, 86,  8, 76,125,109,121,164,142,247,107,237, 72,192, 84, 20, 69,200,166,155, 42, 56, 42, 23,181,  0,250,247,180,229,249,111,
+133,125,108,  0, 89,222,180, 58,224,142,213, 53,206, 47, 43,156, 16,236, 52,134,211,243, 24, 72, 72,122,220,247, 81, 63, 32,211,
+ 92,159,107,132,240,140,132, 98, 92,164,236,236, 45,123,169, 89,116,230,206,119, 14,190,105,192, 89,154, 44,229,251, 77, 77,229,
+ 36,207,205, 22,124,115,111, 23,202, 89,  0,209,205,103,215,150,165,247, 57,187, 47, 55, 39,191,223,  2,184, 12, 71,254,124, 15,
+138, 49,119,175,228,220, 62, 24,240,131, 89,197,117,131,132,188,200,152, 59, 24,102,161, 68, 60,175, 96, 42, 44,210,129,161,100,
+111, 89,114,174,169,195, 53, 58,127, 38, 36, 86,107, 55, 66,174,201,135, 25,133,150, 20, 94,160, 19,205,208,  5, 85,205, 60,211,
+ 12,133, 96, 69,194,142,177,172, 42,193, 29, 69,202, 98,144,243,204,214,140, 34, 21,204,235,134,179,198,225,157,227,133,237,  6,
+211, 24, 54, 81, 24,215,176, 52, 22, 47,192, 72, 69,105,130,176, 77, 24, 71,109, 66, 16,218, 52,145,175,192, 68,129, 39, 17,240,
+ 10, 39,142,194,209,181, 80,117,157,207,223, 16,199,206, 43, 56,246,253,255,183, 22, 33, 28,167,140, 99, 61,209, 24, 37,113, 89,
+202, 20,152, 74,184,115, 56, 33,149,138, 84,166,193,138, 75, 17,228,152,113, 92,108,106, 94, 50, 53,231,230, 53, 30, 17, 50,115,
+169,194,169, 84, 21,190,119, 78, 87, 45,248, 34,130, 28,113,128,135, 68,190,247, 87,146, 85,190, 42,167,222, 26,149,150,168, 67,
+ 39,225,103,103,  2, 73,135,245,  1,165, 58, 43, 59, 69,170, 52, 82, 58,166, 42, 46,218,144,229,137, 36,137,253,207,208, 51,244,
+139, 38,100,127,101, 21,141,150, 11, 11,242,255,167,135,212,189,122,143,132,213, 81, 88,228,230, 26,130,145, 86,116,164, 37, 65,
+241,213,143,183,159,223,206,  9,103, 89,212, 59,142, 37,229, 36, 13, 64, 14, 31,130,189, 10,207,104, 52, 36, 85, 10, 45, 53, 74,
+ 72, 36,154,181, 98, 72,109, 29,169, 76,200, 82, 21,199, 72, 36,103,103,243,208, 15,171,203, 64,202,177,220,  5, 83, 94, 89, 66,
+183, 37, 29,145, 34,244,166,181, 11,142, 93, 69,176, 98, 75, 12,228,125, 68,163,139,224,136,219, 44,218, 69,118,166,118,228, 75,
+244,230,210,114, 29,202,223,202,119, 78,189,149,106,109,203,246,222, 29,252,210, 73, 20, 51,105,131,135, 46,234,178, 94, 96,165,
+ 36,181,  2,219,174,131, 50,182,161, 92, 79, 70, 54,213,225, 90,250, 38,204,205,187, 56, 14,103, 77,112,238,194,  7, 39,174,162,
+243,107,127,110, 57, 19, 68,196, 61,180,206,171,137,125,238, 11, 51,216,190, 16,202,212, 74, 69,117, 60,  9, 69,130, 18, 18,131,
+ 64, 10,129,147,138,185,109,216, 90,214,156,218,217,226,166, 66, 49, 78, 20,149,113,148, 30,206, 88,195, 15, 76,197,178,149, 88,
+141, 28,219, 44,102, 33, 16, 49,182,203,208,215, 87,187,192,102,217,132, 64,208,154, 46, 16,235,103,203,237,189,212,145,134,209,
+ 25,152, 55,156,105, 28,199, 82,203, 36,149, 92, 40,151, 60, 52, 43,195, 76, 62,190,107, 61,168, 46, 80,155, 38,146, 81, 34, 24,
+  9, 65,130,160,178,134,157, 89,117,176, 18, 35,123, 32,196,182,157, 99, 45, 88, 65,157,  8, 94,172,150,156, 41,103,161,159,189,
+172, 96,119, 30,214,228,213,238,211,214,145,183,194, 54,237,115,135, 51,246,125,114, 35, 46, 11,252,212,  3, 69,170, 37,119, 23,
+  3,102,214,145,227,200,165, 68,  9,129,104, 12,235,153, 10, 36,135, 77,195,102, 99,120,112,231, 34, 44,103,241, 61, 93,  8, 60,
+117,134,212,  5,199,134, 33, 33,184,113,152,147,106,129,208,146, 65, 34, 25, 72,193, 64,  8,106,235,185,176,177,160,180, 13,207,
+ 45, 97,167, 41,169, 61,236, 44, 13, 59,149,167, 49,112,174, 10,231,176,144, 32,241, 36, 54,136, 62, 13,156,197,154,134, 25,  1,
+ 48,233, 77, 29, 70, 94,157, 13,142,168,172, 67,229,109,177,  8,235,120, 50,134, 19,235,100,227, 34, 76, 46, 45,203,215,117,156,
+ 87, 92,133,179, 23,128,116, 14, 89,213,108,204, 74, 46, 84,158, 90,  8, 94,150,154, 60,151,172, 24,199,245,197,132, 34, 73, 16,
+206, 82,232, 20, 39, 37,167,151,115, 78,217,154,239,206, 27, 42, 37,176,198,225,165,192,213, 53,190,113,120,107,240,175,133, 68,
+204, 69,208,168, 45, 59, 33,151, 87,121,252, 63,200,142,135, 98, 79, 39, 83, 45,  0,  0,  0,  0, 73, 69, 78, 68,174, 66, 96,130,
+  0};
+
diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c
index 28a54b20277396c13f464d12d46e0e46277794a5..169443d855fc89800f8ce056bbb77d8881470a69 100644
--- a/source/blender/editors/gpencil/gpencil_paint.c
+++ b/source/blender/editors/gpencil/gpencil_paint.c
@@ -1615,7 +1615,12 @@ static int gpencil_area_exists(bContext *C, ScrArea *satest)
 static int gpencil_draw_modal (bContext *C, wmOperator *op, wmEvent *event)
 {
 	tGPsdata *p= op->customdata;
-	int estate = OPERATOR_PASS_THROUGH; /* default exit state - not handled, so let others have a share of the pie */
+	//int estate = OPERATOR_PASS_THROUGH; /* default exit state - not handled, so let others have a share of the pie */
+	/* currently, grease pencil conflicts with such operators as undo and set object mode
+	   which makes behavior of operator totally unpredictable and crash for some cases.
+	   the only way to solve this proper is to ger rid of pointers to data which can
+	   chage stored in operator custom data (sergey) */
+	int estate = OPERATOR_RUNNING_MODAL;
 	
 	// if (event->type == NDOF_MOTION)
 	//	return OPERATOR_PASS_THROUGH;
@@ -1722,13 +1727,18 @@ static int gpencil_draw_modal (bContext *C, wmOperator *op, wmEvent *event)
 		/* standard undo/redo shouldn't be allowed to execute or else it causes crashes, so catch it here */
 		// FIXME: this is a hardcoded hotkey that can't be changed
 		// TODO: catch redo as well, but how?
-		if (event->type == ZKEY) {
+		if (event->type == ZKEY && event->val == KM_RELEASE) {
 			/* oskey = cmd key on macs as they seem to use cmd-z for undo as well? */
 			if ((event->ctrl) || (event->oskey)) {
 				/* just delete last stroke, which will look like undo to the end user */
 				//printf("caught attempted undo event... deleting last stroke \n");
 				gpencil_frame_delete_laststroke(p->gpl, p->gpf);
-				
+				/* undoing the last line can free p->gpf
+				 * note, could do this in a bit more of an elegant way then a search but it at least prevents a crash */
+				if(BLI_findindex(&p->gpl->frames, p->gpf) == -1) {
+					p->gpf= NULL;
+				}
+
 				/* event handled, so force refresh */
 				ED_region_tag_redraw(p->ar); /* just active area for now, since doing whole screen is too slow */
 				estate = OPERATOR_RUNNING_MODAL; 
diff --git a/source/blender/editors/include/ED_object.h b/source/blender/editors/include/ED_object.h
index 28d0a9520b2018302477ef3c8e6e12dedaf5a842..c646ec555064e637fd234e7a1bd19a0b7b19955c 100644
--- a/source/blender/editors/include/ED_object.h
+++ b/source/blender/editors/include/ED_object.h
@@ -108,7 +108,7 @@ int ED_object_add_generic_get_opts(struct bContext *C, struct wmOperator *op, fl
 struct Object *ED_object_add_type(struct bContext *C, int type, float *loc, float *rot, int enter_editmode, unsigned int layer);
 
 void ED_object_single_users(struct Main *bmain, struct Scene *scene, int full);
-
+void ED_object_single_user(struct Scene *scene, struct Object *ob);
 
 /* object motion paths */
 void ED_objects_clear_paths(struct bContext *C);
diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h
index 9b47e103f29b4ecad18ee40bed34f53bf63bbfc5..c7a1d860a63b0d7895ae7c91e31c861d62cc0398 100644
--- a/source/blender/editors/interface/interface_intern.h
+++ b/source/blender/editors/interface/interface_intern.h
@@ -214,7 +214,7 @@ struct uiBut {
 
 	BIFIconID icon;
 	char lock;
-	char dt;
+	char dt; /* drawtype: UI_EMBOSS, UI_EMBOSSN ... etc, copied from the block */
 	char changed; /* could be made into a single flag */
 	unsigned char unit_type; /* so buttons can support unit systems which are not RNA */
 	short modifier_key;
@@ -307,7 +307,8 @@ struct uiBlock {
 	void *drawextra_arg2;
 
 	int flag;
-	char direction, dt;
+	char direction;
+	char dt; /* drawtype: UI_EMBOSS, UI_EMBOSSN ... etc, copied to buttons */
 	short auto_open;
 	double auto_open_last;
 
diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c
index 85cc944f03b446c7efb402356d617a8a3e98f060..4810b3fdf54627083969f426f35c3adca67f8014 100644
--- a/source/blender/editors/interface/interface_layout.c
+++ b/source/blender/editors/interface/interface_layout.c
@@ -367,7 +367,7 @@ static void ui_item_array(uiLayout *layout, uiBlock *block, const char *name, in
 		unit= UI_UNIT_X*0.75;
 		butw= unit;
 		buth= unit;
-		
+
 		if(ptr->type == &RNA_Armature) {
 			bArmature *arm= (bArmature *)ptr->data;
 			layer_used= arm->layer_used;
@@ -379,7 +379,7 @@ static void ui_item_array(uiLayout *layout, uiBlock *block, const char *name, in
 			for(a=0; a<colbuts; a++) {
 				if(layer_used & (1<<(a+b*colbuts))) icon= ICON_LAYER_USED;
 				else icon= ICON_BLANK1;
-					
+
 				but= uiDefAutoButR(block, ptr, prop, a+b*colbuts, "", icon, x + butw*a, y+buth, butw, buth);
 				if(subtype == PROP_LAYER_MEMBER)
 					uiButSetFunc(but, ui_layer_but_cb, but, SET_INT_IN_POINTER(a+b*colbuts));
@@ -387,7 +387,7 @@ static void ui_item_array(uiLayout *layout, uiBlock *block, const char *name, in
 			for(a=0; a<colbuts; a++) {
 				if(layer_used & (1<<(a+len/2+b*colbuts))) icon= ICON_LAYER_USED;
 				else icon= ICON_BLANK1;
-				
+
 				but= uiDefAutoButR(block, ptr, prop, a+len/2+b*colbuts, "", icon, x + butw*a, y, butw, buth);
 				if(subtype == PROP_LAYER_MEMBER)
 					uiButSetFunc(but, ui_layer_but_cb, but, SET_INT_IN_POINTER(a+len/2+b*colbuts));
@@ -422,35 +422,46 @@ static void ui_item_array(uiLayout *layout, uiBlock *block, const char *name, in
 		uiDefButR_prop(block, BUT_NORMAL, 0, name, x, y, UI_UNIT_X*3, UI_UNIT_Y*3, ptr, prop, 0, 0, 0, -1, -1, NULL);
 	}
 	else {
-		if(ELEM(subtype, PROP_COLOR, PROP_COLOR_GAMMA) && !expand)
+		/* note, this block of code is a bit arbitrary and has just been made
+		 * to work with common cases, but may need to be re-worked */
+
+		/* special case, boolean array in a menu, this could be used in a more generic way too */
+		if(ELEM(subtype, PROP_COLOR, PROP_COLOR_GAMMA) && !expand) {
 			uiDefAutoButR(block, ptr, prop, -1, "", ICON_NONE, 0, 0, w, UI_UNIT_Y);
+		}
+		else {
+			int *boolarr= NULL;
 
-		if(!ELEM(subtype, PROP_COLOR, PROP_COLOR_GAMMA) || expand) {
-			/* layout for known array subtypes */
-			char str[3];
+			/* even if 'expand' is fale, expanding anyway */
 
-			for(a=0; a<len; a++) {
-				str[0]= RNA_property_array_item_char(prop, a);
+			/* layout for known array subtypes */
+			char str[3]= {'\0'};
 
-				if(str[0]) {
-					if (icon_only) {
-						str[0] = '\0';
-					}
-					else if(type == PROP_BOOLEAN) {
-						str[1]= '\0';
-					}
-					else {
-						str[1]= ':';
-						str[2]= '\0';
-					}
+			if(!icon_only) {
+				if(type != PROP_BOOLEAN) {
+					str[1]= ':';
 				}
+			}
+
+			/* show checkboxes for rna on a non-emboss block (menu for eg) */
+			if(type == PROP_BOOLEAN && ELEM(layout->root->block->dt, UI_EMBOSSN, UI_EMBOSSP)) {
+				boolarr= MEM_callocN(sizeof(int)*len, "ui_item_array");
+				RNA_property_boolean_get_array(ptr, prop, boolarr);
+			}
 
+			for(a=0; a<len; a++) {
+				if(!icon_only) str[0]= RNA_property_array_item_char(prop, a);
+				if(boolarr) icon= boolarr[a] ? ICON_CHECKBOX_HLT: ICON_CHECKBOX_DEHLT;
 				but= uiDefAutoButR(block, ptr, prop, a, str, icon, 0, 0, w, UI_UNIT_Y);
 				if(slider && but->type==NUM)
 					but->type= NUMSLI;
 				if(toggle && but->type==OPTION)
 					but->type= TOG;
 			}
+
+			if(boolarr) {
+				MEM_freeN(boolarr);
+			}
 		}
 	}
 
@@ -951,13 +962,14 @@ void uiItemFullR(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index
 	uiBut *but;
 	PropertyType type;
 	char namestr[UI_MAX_NAME_STR];
-	int len, w, h, slider, toggle, expand, icon_only, no_bg;
+	int len, is_array, w, h, slider, toggle, expand, icon_only, no_bg;
 
 	uiBlockSetCurLayout(block, layout);
 
 	/* retrieve info */
 	type= RNA_property_type(prop);
-	len= RNA_property_array_length(ptr, prop);
+	is_array= RNA_property_array_check(prop);
+	len= (is_array) ? RNA_property_array_length(ptr, prop) : 0;
 
 	/* set name and icon */
 	if(!name)
@@ -967,14 +979,16 @@ void uiItemFullR(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index
 	
 	if(ELEM4(type, PROP_INT, PROP_FLOAT, PROP_STRING, PROP_POINTER))
 		name= ui_item_name_add_colon(name, namestr);
-	else if(type == PROP_BOOLEAN && len && index == RNA_NO_INDEX)
+	else if(type == PROP_BOOLEAN && is_array && index == RNA_NO_INDEX)
 		name= ui_item_name_add_colon(name, namestr);
 	else if(type == PROP_ENUM && index != RNA_ENUM_VALUE)
 		name= ui_item_name_add_colon(name, namestr);
 
 	if(layout->root->type == UI_LAYOUT_MENU) {
-		if(type == PROP_BOOLEAN)
-			icon= (RNA_property_boolean_get(ptr, prop))? ICON_CHECKBOX_HLT: ICON_CHECKBOX_DEHLT;
+		if(type == PROP_BOOLEAN && ((is_array == FALSE) || (index != RNA_NO_INDEX))) {
+			if(is_array) icon= (RNA_property_boolean_get_index(ptr, prop, index)) ? ICON_CHECKBOX_HLT: ICON_CHECKBOX_DEHLT;
+			else         icon= (RNA_property_boolean_get(ptr, prop)) ? ICON_CHECKBOX_HLT: ICON_CHECKBOX_DEHLT;
+		}
 		else if(type == PROP_ENUM && index == RNA_ENUM_VALUE) {
 			int enum_value= RNA_property_enum_get(ptr, prop);
 			if(RNA_property_flag(prop) & PROP_ENUM_FLAG) {
@@ -999,7 +1013,7 @@ void uiItemFullR(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index
 		uiBlockSetEmboss(block, UI_EMBOSSN);
 	
 	/* array property */
-	if(index == RNA_NO_INDEX && len > 0)
+	if(index == RNA_NO_INDEX && is_array)
 		ui_item_array(layout, block, name, icon, ptr, prop, len, 0, 0, w, h, expand, slider, toggle, icon_only);
 	/* enum item */
 	else if(type == PROP_ENUM && index == RNA_ENUM_VALUE) {
@@ -2745,6 +2759,25 @@ void uiLayoutOperatorButs(const bContext *C, uiLayout *layout, wmOperator *op,in
 		uiItemL(layout, "* Redo Unsupported *", ICON_NONE); // XXX, could give some nicer feedback or not show redo panel at all?
 	}
 
+	/* menu */
+	if(op->type->flag & OPTYPE_PRESET) {
+		/* XXX, no simple way to get WM_MT_operator_presets.bl_label from python! Label remains the same always! */
+		PointerRNA op_ptr;
+		uiLayout *row;
+
+		row= uiLayoutRow(layout, TRUE);
+		uiItemM(row, (bContext *)C, "WM_MT_operator_presets", NULL, ICON_NONE);
+
+		WM_operator_properties_create(&op_ptr, "WM_OT_operator_preset_add");
+		RNA_string_set(&op_ptr, "operator", op->type->idname);
+		op_ptr= uiItemFullO(row, "WM_OT_operator_preset_add", "", ICON_ZOOMIN, op_ptr.data, WM_OP_INVOKE_DEFAULT, 0);
+
+		WM_operator_properties_create(&op_ptr, "WM_OT_operator_preset_add");
+		RNA_string_set(&op_ptr, "operator", op->type->idname);
+		RNA_boolean_set(&op_ptr, "remove_active", 1);
+		op_ptr= uiItemFullO(row, "WM_OT_operator_preset_add", "", ICON_ZOOMOUT, op_ptr.data, WM_OP_INVOKE_DEFAULT, 0);
+	}
+
 	if(op->type->ui) {
 		op->layout= layout;
 		op->type->ui((bContext*)C, op);
@@ -2759,25 +2792,6 @@ void uiLayoutOperatorButs(const bContext *C, uiLayout *layout, wmOperator *op,in
 
 		RNA_pointer_create(&wm->id, op->type->srna, op->properties, &ptr);
 
-		/* menu */
-		if(op->type->flag & OPTYPE_PRESET) {
-			/* XXX, no simple way to get WM_MT_operator_presets.bl_label from python! Label remains the same always! */
-			PointerRNA op_ptr;
-			uiLayout *row;
-
-			row= uiLayoutRow(layout, TRUE);
-			uiItemM(row, (bContext *)C, "WM_MT_operator_presets", NULL, ICON_NONE);
-
-			WM_operator_properties_create(&op_ptr, "WM_OT_operator_preset_add");
-			RNA_string_set(&op_ptr, "operator", op->type->idname);
-			op_ptr= uiItemFullO(row, "WM_OT_operator_preset_add", "", ICON_ZOOMIN, op_ptr.data, WM_OP_INVOKE_DEFAULT, 0);
-
-			WM_operator_properties_create(&op_ptr, "WM_OT_operator_preset_add");
-			RNA_string_set(&op_ptr, "operator", op->type->idname);
-			RNA_boolean_set(&op_ptr, "remove_active", 1);
-			op_ptr= uiItemFullO(row, "WM_OT_operator_preset_add", "", ICON_ZOOMOUT, op_ptr.data, WM_OP_INVOKE_DEFAULT, 0);
-		}
-
 		/* main draw call */
 		empty= uiDefAutoButsRNA(layout, &ptr, check_prop, label_align) == 0;
 
diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c
index f7460e77030a8f026971acb6c1d4dfc0ef7d4263..8bce27e366b0a58e427c53f781f0efdd38a403f2 100644
--- a/source/blender/editors/interface/interface_regions.c
+++ b/source/blender/editors/interface/interface_regions.c
@@ -1188,7 +1188,7 @@ static void ui_block_position(wmWindow *window, ARegion *butregion, uiBut *but,
 	uiBut *bt;
 	uiSafetyRct *saferct;
 	rctf butrct;
-	float aspect;
+	/*float aspect;*/ /*UNUSED*/
 	int xsize, ysize, xof=0, yof=0, center;
 	short dir1= 0, dir2=0;
 	
@@ -1223,7 +1223,7 @@ static void ui_block_position(wmWindow *window, ARegion *butregion, uiBut *but,
 		}
 	}
 	
-	aspect= (float)(block->maxx - block->minx + 4);
+	/*aspect= (float)(block->maxx - block->minx + 4);*/ /*UNUSED*/
 	ui_block_to_window_fl(butregion, but->block, &block->minx, &block->miny);
 	ui_block_to_window_fl(butregion, but->block, &block->maxx, &block->maxy);
 
@@ -1232,7 +1232,7 @@ static void ui_block_position(wmWindow *window, ARegion *butregion, uiBut *but,
 	
 	xsize= block->maxx - block->minx+4; // 4 for shadow
 	ysize= block->maxy - block->miny+4;
-	aspect/= (float)xsize;
+	/*aspect/= (float)xsize;*/ /*UNUSED*/
 
 	if(but) {
 		int left=0, right=0, top=0, down=0;
diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c
index 0f5bc5479a0748a0687f92b0e376e2204468261c..690d0fe4d6b56733cb11646e916ad71229fa4d1a 100644
--- a/source/blender/editors/interface/interface_templates.c
+++ b/source/blender/editors/interface/interface_templates.c
@@ -39,6 +39,7 @@
 
 #include "BLI_string.h"
 #include "BLI_utildefines.h"
+#include "BLI_ghash.h"
 
 #include "BKE_animsys.h"
 #include "BKE_colortools.h"
@@ -53,6 +54,7 @@
 #include "BKE_displist.h"
 
 #include "ED_screen.h"
+#include "ED_object.h"
 #include "ED_render.h"
 
 #include "RNA_access.h"
@@ -275,18 +277,28 @@ static void template_id_cb(bContext *C, void *arg_litem, void *arg_event)
 			break;
 		case UI_ID_ALONE:
 			if(id) {
+				const int do_scene_obj= (GS(id->name) == ID_OB) &&
+				                        (template->ptr.type == &RNA_SceneObjects);
+
 				/* make copy */
-				if(id_copy(id, &newid, 0) && newid) {
-					/* copy animation actions too */
-					BKE_copy_animdata_id_action(id);
-					/* us is 1 by convention, but RNA_property_pointer_set
-					   will also incremement it, so set it to zero */
-					newid->us= 0;
-
-					/* assign copy */
-					RNA_id_pointer_create(newid, &idptr);
-					RNA_property_pointer_set(&template->ptr, template->prop, idptr);
-					RNA_property_update(C, &template->ptr, template->prop);
+				if(do_scene_obj) {
+					Scene *scene= CTX_data_scene(C);
+					ED_object_single_user(scene, (struct Object *)id);
+					WM_event_add_notifier(C, NC_SCENE|ND_OB_ACTIVE, scene);
+				}
+				else {
+					if(id_copy(id, &newid, 0) && newid) {
+						/* copy animation actions too */
+						BKE_copy_animdata_id_action(id);
+						/* us is 1 by convention, but RNA_property_pointer_set
+						   will also incremement it, so set it to zero */
+						newid->us= 0;
+
+						/* assign copy */
+						RNA_id_pointer_create(newid, &idptr);
+						RNA_property_pointer_set(&template->ptr, template->prop, idptr);
+						RNA_property_update(C, &template->ptr, template->prop);
+					}
 				}
 			}
 			break;
@@ -404,10 +416,7 @@ static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, Str
 
 			sprintf(str, "%d", id->us);
 
-			if(id->us<10)
-				but= uiDefBut(block, BUT, 0, str, 0,0,UI_UNIT_X,UI_UNIT_Y, NULL, 0, 0, 0, 0, "Displays number of users of this data. Click to make a single-user copy.");
-			else
-				but= uiDefBut(block, BUT, 0, str, 0,0,UI_UNIT_X+10,UI_UNIT_Y, NULL, 0, 0, 0, 0, "Displays number of users of this data. Click to make a single-user copy.");
+			but= uiDefBut(block, BUT, 0, str, 0,0,UI_UNIT_X + ((id->us < 10) ? 0:10), UI_UNIT_Y, NULL, 0, 0, 0, 0, "Displays number of users of this data. Click to make a single-user copy.");
 
 			uiButSetNFunc(but, template_id_cb, MEM_dupallocN(template), SET_INT_IN_POINTER(UI_ID_ALONE));
 			if(!id_copy(id, NULL, 1 /* test only */) || (idfrom && idfrom->lib) || !editable)
@@ -2107,7 +2116,7 @@ static void list_item_row(bContext *C, uiLayout *layout, PointerRNA *ptr, Pointe
 	}
 	else if(itemptr->type == &RNA_ShapeKey) {
 		Object *ob= (Object*)activeptr->data;
-		Key *key= (Key*)itemptr->data;
+		Key *key= (Key*)itemptr->id.data;
 
 		split= uiLayoutSplit(sub, 0.75f, 0);
 
@@ -2319,10 +2328,11 @@ static void operator_call_cb(bContext *C, void *UNUSED(arg1), void *arg2)
 
 static void operator_search_cb(const bContext *C, void *UNUSED(arg), const char *str, uiSearchItems *items)
 {
-	wmOperatorType *ot = WM_operatortype_first();
-	
-	for(; ot; ot= ot->next) {
-		
+	GHashIterator *iter= WM_operatortype_iter();
+
+	for( ; !BLI_ghashIterator_isDone(iter); BLI_ghashIterator_step(iter)) {
+		wmOperatorType *ot= BLI_ghashIterator_getValue(iter);
+
 		if(BLI_strcasestr(ot->name, str)) {
 			if(WM_operator_poll((bContext*)C, ot)) {
 				char name[256];
@@ -2342,6 +2352,7 @@ static void operator_search_cb(const bContext *C, void *UNUSED(arg), const char
 			}
 		}
 	}
+	BLI_ghashIterator_free(iter);
 }
 
 void uiTemplateOperatorSearch(uiLayout *layout)
diff --git a/source/blender/editors/interface/interface_utils.c b/source/blender/editors/interface/interface_utils.c
index f660dbb9eddf250206ce6abe477642e8b0917532..a3f56192cb5ef55649a51eb2e83f31390af87f42 100644
--- a/source/blender/editors/interface/interface_utils.c
+++ b/source/blender/editors/interface/interface_utils.c
@@ -143,7 +143,7 @@ int uiDefAutoButsRNA(uiLayout *layout, PointerRNA *ptr, int (*check_prop)(Proper
 
 		if(label_align != '\0') {
 			PropertyType type = RNA_property_type(prop);
-			int is_boolean = (type == PROP_BOOLEAN && !RNA_property_array_check(ptr, prop));
+			int is_boolean = (type == PROP_BOOLEAN && !RNA_property_array_check(prop));
 
 			name= RNA_property_ui_name(prop);
 
diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c
index f3db6ad11aee9a76d1487c59d4341f1ccde69d07..e71f709f89b8127f19b340ef7722cb025b49d750 100644
--- a/source/blender/editors/interface/resources.c
+++ b/source/blender/editors/interface/resources.c
@@ -1557,7 +1557,7 @@ void init_userdef_do_versions(void)
 		U.autokey_flag &= ~AUTOKEY_FLAG_ONLYKEYINGSET;
 	}
 
-	if (bmain->versionfile < 258 || (bmain->versionfile == 258 && bmain->subversionfile < 1)) {
+	if (bmain->versionfile < 258 || (bmain->versionfile == 258 && bmain->subversionfile < 2)) {
 		bTheme *btheme;
 		for(btheme= U.themes.first; btheme; btheme= btheme->next) {
 			btheme->tnode.noodle_curving = 5;
diff --git a/source/blender/editors/mesh/editmesh.c b/source/blender/editors/mesh/editmesh.c
index ec08bfccda3fcb0335191d8024dd46edad3889d1..4377fb036326d0796db820e085d196a54e2a486d 100644
--- a/source/blender/editors/mesh/editmesh.c
+++ b/source/blender/editors/mesh/editmesh.c
@@ -1449,9 +1449,8 @@ static int mesh_separate_material(wmOperator *op, Main *bmain, Scene *scene, Bas
 		/* select the material */
 		EM_select_by_material(em, curr_mat);
 		/* and now separate */
-		if(0==mesh_separate_selected(op, bmain, scene, editbase)) {
-			BKE_mesh_end_editmesh(me, em);
-			return 0;
+		if(em->totfacesel > 0) {
+			mesh_separate_selected(op, bmain, scene, editbase);
 		}
 	}
 
diff --git a/source/blender/editors/mesh/editmesh_mods.c b/source/blender/editors/mesh/editmesh_mods.c
index 9497370a4fa2ca98cb9a969adc0baedb89e03149..eb6854d254811c8d17062bafd86d0198dbc45cef 100644
--- a/source/blender/editors/mesh/editmesh_mods.c
+++ b/source/blender/editors/mesh/editmesh_mods.c
@@ -1697,7 +1697,7 @@ void EM_mesh_copy_face_layer(EditMesh *em, wmOperator *op, short type)
 
 
 /* ctrl+c in mesh editmode */
-static void mesh_copy_menu(EditMesh *em, wmOperator *op)
+static void UNUSED_FUNCTION(mesh_copy_menu)(EditMesh *em, wmOperator *op)
 {
 	EditSelection *ese;
 	int ret;
diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c
index bfae101d38eeaa47354ebb43bd670257fbb42ad0..9ff2923f7339934c6e891ee5e2e0ede6567647b5 100644
--- a/source/blender/editors/mesh/editmesh_tools.c
+++ b/source/blender/editors/mesh/editmesh_tools.c
@@ -3895,7 +3895,7 @@ void MESH_OT_edge_rotate(wmOperatorType *ot)
 
   /* XXX old bevel not ported yet */
 
-static void bevel_menu(EditMesh *em)
+static void UNUSED_FUNCTION(bevel_menu)(EditMesh *em)
 {
 	BME_Mesh *bm;
 	BME_TransData_Head *td;
diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c
index fdb1b9dc54953eedfa44d6d5a7b6131a4d4698f6..2e44d4031c83bb06449c6ad36a9b573e6e358b34 100644
--- a/source/blender/editors/object/object_add.c
+++ b/source/blender/editors/object/object_add.c
@@ -183,7 +183,7 @@ void ED_object_add_generic_props(wmOperatorType *ot, int do_editmode)
 	}
 	
 	RNA_def_float_vector_xyz(ot->srna, "location", 3, NULL, -FLT_MAX, FLT_MAX, "Location", "Location for the newly added object", -FLT_MAX, FLT_MAX);
-	RNA_def_float_rotation(ot->srna, "rotation", 3, NULL, -FLT_MAX, FLT_MAX, "Rotation", "Rotation for the newly added object", -FLT_MAX, FLT_MAX);
+	RNA_def_float_rotation(ot->srna, "rotation", 3, NULL, -FLT_MAX, FLT_MAX, "Rotation", "Rotation for the newly added object", -M_PI * 2.0f, M_PI * 2.0f);
 	
 	prop = RNA_def_boolean_layer_member(ot->srna, "layers", 20, NULL, "Layer", "");
 	RNA_def_property_flag(prop, PROP_HIDDEN);
diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c
index 142c849eb7bc827c26eec4fc2a036a202ea393d1..f0d1164f95182ec2d88de0279a8c7f7ee97b24c4 100644
--- a/source/blender/editors/object/object_edit.c
+++ b/source/blender/editors/object/object_edit.c
@@ -723,7 +723,7 @@ static void spot_interactive(Object *ob, int mode)
 }
 #endif
 
-static void special_editmenu(Scene *scene, View3D *v3d)
+static void UNUSED_FUNCTION(special_editmenu)(Scene *scene, View3D *v3d)
 {
 // XXX	static short numcuts= 2;
 	Object *ob= OBACT;
@@ -1345,7 +1345,7 @@ static void copy_attr(Main *bmain, Scene *scene, View3D *v3d, short event)
 	DAG_ids_flush_update(bmain, 0);
 }
 
-static void copy_attr_menu(Main *bmain, Scene *scene, View3D *v3d)
+static void UNUSED_FUNCTION(copy_attr_menu)(Main *bmain, Scene *scene, View3D *v3d)
 {
 	Object *ob;
 	short event;
@@ -1618,7 +1618,7 @@ void OBJECT_OT_shade_smooth(wmOperatorType *ot)
 
 /* ********************** */
 
-static void image_aspect(Scene *scene, View3D *v3d)
+static void UNUSED_FUNCTION(image_aspect)(Scene *scene, View3D *v3d)
 {
 	/* all selected objects with an image map: scale in image aspect */
 	Base *base;
@@ -1693,7 +1693,7 @@ static int vergbaseco(const void *a1, const void *a2)
 }
 
 
-static void auto_timeoffs(Scene *scene, View3D *v3d)
+static void UNUSED_FUNCTION(auto_timeoffs)(Scene *scene, View3D *v3d)
 {
 	Base *base, **basesort, **bs;
 	float start, delta;
@@ -1734,7 +1734,7 @@ static void auto_timeoffs(Scene *scene, View3D *v3d)
 
 }
 
-static void ofs_timeoffs(Scene *scene, View3D *v3d)
+static void UNUSED_FUNCTION(ofs_timeoffs)(Scene *scene, View3D *v3d)
 {
 	float offset=0.0f;
 
@@ -1753,7 +1753,7 @@ static void ofs_timeoffs(Scene *scene, View3D *v3d)
 }
 
 
-static void rand_timeoffs(Scene *scene, View3D *v3d)
+static void UNUSED_FUNCTION(rand_timeoffs)(Scene *scene, View3D *v3d)
 {
 	Base *base;
 	float rand_ofs=0.0f;
diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c
index 0fb7cf8b640862c1dffa32288852f0714f8a2980..225e6e735637cf1574a433cc3193d12c00690c49 100644
--- a/source/blender/editors/object/object_relations.c
+++ b/source/blender/editors/object/object_relations.c
@@ -1402,6 +1402,20 @@ static void single_object_users(Scene *scene, View3D *v3d, int flag)
 	set_sca_new_poins();
 }
 
+/* not an especially efficient function, only added so the single user
+ * button can be functional.*/
+void ED_object_single_user(Scene *scene, Object *ob)
+{
+	Base *base;
+
+	for(base= FIRSTBASE; base; base= base->next) {
+		if(base->object == ob)  base->flag |=  OB_DONE;
+		else					base->flag &= ~OB_DONE;
+	}
+
+	single_object_users(scene, NULL, OB_DONE);
+}
+
 static void new_id_matar(Material **matar, int totcol)
 {
 	ID *id;
diff --git a/source/blender/editors/render/render_update.c b/source/blender/editors/render/render_update.c
index 6548bdb37a93e63f541489c6deebb1b526006ed7..8910f101b014d3f622e0fc442116bd5909257a39 100644
--- a/source/blender/editors/render/render_update.c
+++ b/source/blender/editors/render/render_update.c
@@ -60,6 +60,7 @@
 
 #include "RE_engine.h"
 
+#include "ED_node.h"
 #include "ED_render.h"
 
 #include "render_intern.h"	// own include
@@ -214,6 +215,8 @@ static void texture_changed(Main *bmain, Tex *tex)
 	Material *ma;
 	Lamp *la;
 	World *wo;
+	Scene *scene;
+	bNode *node;
 
 	/* icons */
 	BKE_icon_changed(BKE_icon_getid(&tex->id));
@@ -247,6 +250,16 @@ static void texture_changed(Main *bmain, Tex *tex)
 
 		BKE_icon_changed(BKE_icon_getid(&wo->id));
 	}
+
+	/* find compositing nodes */
+	for(scene=bmain->scene.first; scene; scene=scene->id.next) {
+		if(scene->use_nodes && scene->nodetree) {
+			for(node=scene->nodetree->nodes.first; node; node=node->next) {
+				if(node->id == &tex->id)
+					ED_node_changed_update(&scene->id, node);
+			}
+		}
+	}
 }
 
 static void lamp_changed(Main *bmain, Lamp *la)
diff --git a/source/blender/editors/space_console/console_ops.c b/source/blender/editors/space_console/console_ops.c
index 3effea296d7285ee6d343df65f281a544252e4ba..4707baa279bc55a3009d027b837a060fcaf8201d 100644
--- a/source/blender/editors/space_console/console_ops.c
+++ b/source/blender/editors/space_console/console_ops.c
@@ -675,7 +675,12 @@ static int scrollback_append_exec(bContext *C, wmOperator *op)
 	
 	console_scrollback_limit(sc);
 
-	console_textview_update_rect(sc, ar);
+	/* 'ar' can be null depending on the operator that runs
+	 * rendering with invoke default for eg causes this */
+	if(ar) {
+		console_textview_update_rect(sc, ar);
+	}
+
 	ED_area_tag_redraw(CTX_wm_area(C));
 	
 	return OPERATOR_FINISHED;
diff --git a/source/blender/editors/space_file/file_ops.c b/source/blender/editors/space_file/file_ops.c
index d4253495e976e2e000e2296c3ec6835787758efa..4dd97c63d40942eb1caf9096136dde72a583877f 100644
--- a/source/blender/editors/space_file/file_ops.c
+++ b/source/blender/editors/space_file/file_ops.c
@@ -1159,6 +1159,13 @@ int file_filename_exec(bContext *C, wmOperator *UNUSED(unused))
 	return OPERATOR_FINISHED;
 }
 
+/* TODO, directory operator is non-functional while a library is loaded
+ * until this is properly supported just disable it. */
+static int file_directory_poll(bContext *C)
+{
+	return ED_operator_file_active(C) && filelist_lib(CTX_wm_space_file(C)->files) == NULL;
+}
+
 void FILE_OT_directory(struct wmOperatorType *ot)
 {
 	/* identifiers */
@@ -1169,7 +1176,7 @@ void FILE_OT_directory(struct wmOperatorType *ot)
 	/* api callbacks */
 	ot->invoke= file_directory_invoke;
 	ot->exec= file_directory_exec;
-	ot->poll= ED_operator_file_active; /* <- important, handler is on window level */
+	ot->poll= file_directory_poll; /* <- important, handler is on window level */
 }
 
 void FILE_OT_refresh(struct wmOperatorType *ot)
diff --git a/source/blender/editors/space_file/filelist.c b/source/blender/editors/space_file/filelist.c
index 6736230e84fc28568112a1f9b864be312bb0b67c..d8be312cf398958d3c51fc8cce6e9a3af37a6201 100644
--- a/source/blender/editors/space_file/filelist.c
+++ b/source/blender/editors/space_file/filelist.c
@@ -602,28 +602,6 @@ short filelist_changed(struct FileList* filelist)
 	return filelist->changed;
 }
 
-static struct ImBuf * filelist_loadimage(struct FileList* filelist, int index)
-{
-	ImBuf *imb = NULL;
-	int fidx = 0;
-	
-	if ( (index < 0) || (index >= filelist->numfiltered) ) {
-		return NULL;
-	}
-	fidx = filelist->fidx[index];
-	imb = filelist->filelist[fidx].image;
-	if (!imb)
-	{
-		if ( (filelist->filelist[fidx].flags & IMAGEFILE) || (filelist->filelist[fidx].flags & MOVIEFILE) ) {
-			imb = IMB_thumb_read(filelist->filelist[fidx].path, THB_NORMAL);
-		} 
-		if (imb) {
-			filelist->filelist[fidx].image = imb;
-		} 
-	}
-	return imb;
-}
-
 struct ImBuf * filelist_getimage(struct FileList* filelist, int index)
 {
 	ImBuf* ibuf = NULL;
diff --git a/source/blender/editors/space_nla/nla_edit.c b/source/blender/editors/space_nla/nla_edit.c
index 77c91b28a634215718df8bed19cd293598b453d1..af99087b0b89393ba6c059b764aabc9d097dc39d 100644
--- a/source/blender/editors/space_nla/nla_edit.c
+++ b/source/blender/editors/space_nla/nla_edit.c
@@ -951,7 +951,7 @@ static int nlaedit_bake_exec (bContext *C, wmOperator *UNUSED(op))
 	return OPERATOR_FINISHED;
 }
 
-static void NLA_OT_bake (wmOperatorType *ot)
+void NLA_OT_bake (wmOperatorType *ot)
 {
 	/* identifiers */
 	ot->name= "Bake Strips";
diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c
index 848b037e1cbfd18fc676a8f565c4c12941066bed..274983fd316f50a894b9882ca138ee6d47c974ca 100644
--- a/source/blender/editors/space_node/node_edit.c
+++ b/source/blender/editors/space_node/node_edit.c
@@ -1703,7 +1703,7 @@ void NODE_OT_link_viewer(wmOperatorType *ot)
 
 
 /* return 0, nothing done */
-static int node_mouse_groupheader(SpaceNode *snode)
+static int UNUSED_FUNCTION(node_mouse_groupheader)(SpaceNode *snode)
 {
 	bNode *gnode;
 	float mx=0, my=0;
@@ -2018,7 +2018,7 @@ void snode_autoconnect(SpaceNode *snode, int allow_multiple, int replace)
 }
 
 /* can be called from menus too, but they should do own undopush and redraws */
-bNode *node_add_node(SpaceNode *snode, Scene *scene, int type, float locx, float locy)
+bNode *node_add_node(SpaceNode *snode, Main *bmain, Scene *scene, int type, float locx, float locy)
 {
 	bNode *node= NULL, *gnode;
 	
@@ -2033,7 +2033,7 @@ bNode *node_add_node(SpaceNode *snode, Scene *scene, int type, float locx, float
 			return NULL;
 		}
 		else {
-			bNodeTree *ngroup= BLI_findlink(&G.main->nodetree, type-NODE_GROUP_MENU);
+			bNodeTree *ngroup= BLI_findlink(&bmain->nodetree, type-NODE_GROUP_MENU);
 			if(ngroup)
 				node= nodeAddNodeType(snode->edittree, NODE_GROUP, ngroup, NULL);
 		}
@@ -2054,7 +2054,7 @@ bNode *node_add_node(SpaceNode *snode, Scene *scene, int type, float locx, float
 		}
 
 		node_tree_verify_groups(snode->nodetree);
-		ED_node_set_active(G.main, snode->edittree, node);
+		ED_node_set_active(bmain, snode->edittree, node);
 		
 		if(snode->nodetree->type==NTREE_COMPOSIT) {
 			if(ELEM4(node->type, CMP_NODE_R_LAYERS, CMP_NODE_COMPOSITE, CMP_NODE_DEFOCUS, CMP_NODE_OUTPUT_FILE))
@@ -3069,10 +3069,10 @@ static int node_mute_exec(bContext *C, wmOperator *UNUSED(op))
 
 	for(node= snode->edittree->nodes.first; node; node= node->next) {
 		if(node->flag & SELECT) {
-			if(node->inputs.first && node->outputs.first) {
+			/* Be able to mute in-/output nodes as well.  - DingTo
+			if(node->inputs.first && node->outputs.first) { */
 				node->flag ^= NODE_MUTED;
 				snode_tag_changed(snode, node);
-			}
 		}
 	}
 	
@@ -3283,6 +3283,7 @@ void NODE_OT_show_cyclic_dependencies(wmOperatorType *ot)
 
 static int node_add_file_exec(bContext *C, wmOperator *op)
 {
+	Main *bmain= CTX_data_main(C);
 	Scene *scene= CTX_data_scene(C);
 	SpaceNode *snode= CTX_wm_space_node(C);
 	bNode *node;
@@ -3323,7 +3324,7 @@ static int node_add_file_exec(bContext *C, wmOperator *op)
 
 	ED_preview_kill_jobs(C);
 	
-	node = node_add_node(snode, scene, ntype, snode->mx, snode->my);
+	node = node_add_node(snode, bmain, scene, ntype, snode->mx, snode->my);
 	
 	if (!node) {
 		BKE_report(op->reports, RPT_WARNING, "Could not add an image node.");
diff --git a/source/blender/editors/space_node/node_header.c b/source/blender/editors/space_node/node_header.c
index 15b1847ecf138f760f8440883d967e58dff5f0af..9f1029d58a00d0d261ea8a11d766f3015f55c208 100644
--- a/source/blender/editors/space_node/node_header.c
+++ b/source/blender/editors/space_node/node_header.c
@@ -64,6 +64,8 @@
 
 static void do_node_add(bContext *C, void *UNUSED(arg), int event)
 {
+	Main *bmain= CTX_data_main(C);
+	Scene *scene= CTX_data_scene(C);
 	SpaceNode *snode= CTX_wm_space_node(C);
 	ScrArea *sa= CTX_wm_area(C);
 	ARegion *ar;
@@ -87,7 +89,7 @@ static void do_node_add(bContext *C, void *UNUSED(arg), int event)
 		else node->flag &= ~NODE_TEST;
 	}
 	
-	node= node_add_node(snode, CTX_data_scene(C), event, snode->mx, snode->my);
+	node= node_add_node(snode, bmain, scene, event, snode->mx, snode->my);
 	
 	/* select previous selection before autoconnect */
 	for(node= snode->edittree->nodes.first; node; node= node->next) {
diff --git a/source/blender/editors/space_node/node_intern.h b/source/blender/editors/space_node/node_intern.h
index d30322d469fca9ca159830b4df945672ca4b88bf..2939676d05111670e63ec63d10f0d848aa4fb92f 100644
--- a/source/blender/editors/space_node/node_intern.h
+++ b/source/blender/editors/space_node/node_intern.h
@@ -43,6 +43,7 @@ struct wmWindowManager;
 struct bNode;
 struct bNodeSocket;
 struct bNodeLink;
+struct Main;
 
 /* temp data to pass on to modal */
 typedef struct bNodeLinkDrag
@@ -97,7 +98,7 @@ void node_tree_from_ID(ID *id, bNodeTree **ntree, bNodeTree **edittree, int *tre
 void snode_notify(bContext *C, SpaceNode *snode);
 void snode_dag_update(bContext *C, SpaceNode *snode);
 bNode *next_node(bNodeTree *ntree);
-bNode *node_add_node(SpaceNode *snode, Scene *scene, int type, float locx, float locy);
+bNode *node_add_node(SpaceNode *snode, struct Main *bmain, Scene *scene, int type, float locx, float locy);
 void snode_set_context(SpaceNode *snode, Scene *scene);
 void snode_make_group_editable(SpaceNode *snode, bNode *gnode);
 void node_deselectall(SpaceNode *snode);
diff --git a/source/blender/editors/space_node/node_select.c b/source/blender/editors/space_node/node_select.c
index 857405aff4eff1e68a84b61dded12ad329668a3c..c76f4d1ef36c164e7fd6a0afb4a46208ccb08e80 100644
--- a/source/blender/editors/space_node/node_select.c
+++ b/source/blender/editors/space_node/node_select.c
@@ -38,6 +38,7 @@
 
 #include "BKE_context.h"
 #include "BKE_global.h"
+#include "BKE_main.h"
 
 #include "BLI_rect.h"
 #include "BLI_utildefines.h"
@@ -72,7 +73,7 @@ static bNode *node_under_mouse(bNodeTree *ntree, int mx, int my)
 
 /* ****** Click Select ****** */
  
-static bNode *node_mouse_select(SpaceNode *snode, ARegion *ar, const int mval[2], short extend)
+static bNode *node_mouse_select(Main *bmain, SpaceNode *snode, ARegion *ar, const int mval[2], short extend)
 {
 	bNode *node;
 	float mx, my;
@@ -94,7 +95,7 @@ static bNode *node_mouse_select(SpaceNode *snode, ARegion *ar, const int mval[2]
 		else
 			node->flag ^= SELECT;
 			
-		ED_node_set_active(G.main, snode->edittree, node);
+		ED_node_set_active(bmain, snode->edittree, node);
 	}
 
 	return node;
@@ -102,6 +103,7 @@ static bNode *node_mouse_select(SpaceNode *snode, ARegion *ar, const int mval[2]
 
 static int node_select_exec(bContext *C, wmOperator *op)
 {
+	Main *bmain= CTX_data_main(C);
 	SpaceNode *snode= CTX_wm_space_node(C);
 	ARegion *ar= CTX_wm_region(C);
 	int mval[2];
@@ -115,7 +117,7 @@ static int node_select_exec(bContext *C, wmOperator *op)
 	extend = RNA_boolean_get(op->ptr, "extend");
 	
 	/* perform the select */
-	node= node_mouse_select(snode, ar, mval, extend);
+	node= node_mouse_select(bmain, snode, ar, mval, extend);
 	
 	/* send notifiers */
 	WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL);
diff --git a/source/blender/editors/space_outliner/CMakeLists.txt b/source/blender/editors/space_outliner/CMakeLists.txt
index 4194d463e103ec97917c6537acf81f58db0fcbb7..d969a80a6783742eb0dde17f25b54b5b50afddfc 100644
--- a/source/blender/editors/space_outliner/CMakeLists.txt
+++ b/source/blender/editors/space_outliner/CMakeLists.txt
@@ -37,8 +37,12 @@ set(INC_SYS
 )
 
 set(SRC
-	outliner.c
+	outliner_draw.c
+	outliner_edit.c
 	outliner_ops.c
+	outliner_select.c
+	outliner_tools.c
+	outliner_tree.c
 	space_outliner.c
 
 	outliner_intern.h
diff --git a/source/blender/editors/space_outliner/outliner.c b/source/blender/editors/space_outliner/outliner.c
deleted file mode 100644
index 93dc96cf9c04601353245daf307ba82fed4963a4..0000000000000000000000000000000000000000
--- a/source/blender/editors/space_outliner/outliner.c
+++ /dev/null
@@ -1,5792 +0,0 @@
-/*
- * $Id$
- *
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. 
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2004 Blender Foundation.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file blender/editors/space_outliner/outliner.c
- *  \ingroup spoutliner
- */
-
-
-#include <math.h>
-#include <string.h>
-#include <stdlib.h>
-#include <stddef.h>
-
-#include "MEM_guardedalloc.h"
-
-#include "DNA_anim_types.h"
-#include "DNA_armature_types.h"
-#include "DNA_constraint_types.h"
-#include "DNA_camera_types.h"
-#include "DNA_group_types.h"
-#include "DNA_key_types.h"
-#include "DNA_lamp_types.h"
-#include "DNA_material_types.h"
-#include "DNA_mesh_types.h"
-#include "DNA_meta_types.h"
-#include "DNA_particle_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_world_types.h"
-#include "DNA_sequence_types.h"
-#include "DNA_object_types.h"
-
-#include "BLI_blenlib.h"
-#include "BLI_utildefines.h"
-#include "BLI_math_base.h"
-
-#if defined WIN32 && !defined _LIBC
-# include "BLI_fnmatch.h" /* use fnmatch included in blenlib */
-#else
-#  ifndef _GNU_SOURCE
-#    define _GNU_SOURCE
-#  endif
-# include <fnmatch.h>
-#endif
-
-
-#include "BKE_animsys.h"
-#include "BKE_context.h"
-#include "BKE_deform.h"
-#include "BKE_depsgraph.h"
-#include "BKE_fcurve.h"
-#include "BKE_global.h"
-#include "BKE_group.h"
-#include "BKE_library.h"
-#include "BKE_main.h"
-#include "BKE_modifier.h"
-#include "BKE_report.h"
-#include "BKE_scene.h"
-#include "BKE_sequencer.h"
-
-#include "ED_armature.h"
-#include "ED_object.h"
-#include "ED_screen.h"
-#include "ED_util.h"
-
-#include "WM_api.h"
-#include "WM_types.h"
-
-#include "BIF_gl.h"
-#include "BIF_glutil.h"
-
-#include "UI_interface.h"
-#include "UI_interface_icons.h"
-#include "UI_resources.h"
-#include "UI_view2d.h"
-
-#include "RNA_access.h"
-#include "RNA_define.h"
-
-#include "ED_keyframing.h"
-
-#include "outliner_intern.h"
-
-
-#define OL_Y_OFFSET	2
-
-#define OL_TOG_RESTRICT_VIEWX	(UI_UNIT_X*3)
-#define OL_TOG_RESTRICT_SELECTX	(UI_UNIT_X*2)
-#define OL_TOG_RESTRICT_RENDERX	UI_UNIT_X
-
-#define OL_TOGW OL_TOG_RESTRICT_VIEWX
-
-#define OL_RNA_COLX			(UI_UNIT_X*15)
-#define OL_RNA_COL_SIZEX	(UI_UNIT_X*7.5)
-#define OL_RNA_COL_SPACEX	(UI_UNIT_X*2.5)
-
-#define TS_CHUNK	128
-
-#define TREESTORE(a) ((a)?soops->treestore->data+(a)->store_index:NULL)
-
-/* ************* XXX **************** */
-
-static void error(const char *UNUSED(arg), ...) {}
-
-/* ********************************** */
-
-
-/* ******************** PROTOTYPES ***************** */
-static void outliner_draw_tree_element(bContext *C, uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops, TreeElement *te, int startx, int *starty);
-static void outliner_do_object_operation(bContext *C, Scene *scene, SpaceOops *soops, ListBase *lb, 
-										 void (*operation_cb)(bContext *C, Scene *scene, TreeElement *, TreeStoreElem *, TreeStoreElem *));
-
-static int group_select_flag(Group *gr);
-
-/* ******************** PERSISTANT DATA ***************** */
-
-static void outliner_storage_cleanup(SpaceOops *soops)
-{
-	TreeStore *ts= soops->treestore;
-	
-	if(ts) {
-		TreeStoreElem *tselem;
-		int a, unused= 0;
-		
-		/* each element used once, for ID blocks with more users to have each a treestore */
-		for(a=0, tselem= ts->data; a<ts->usedelem; a++, tselem++) tselem->used= 0;
-
-		/* cleanup only after reading file or undo step, and always for
-		 * RNA datablocks view in order to save memory */
-		if(soops->storeflag & SO_TREESTORE_CLEANUP) {
-			
-			for(a=0, tselem= ts->data; a<ts->usedelem; a++, tselem++) {
-				if(tselem->id==NULL) unused++;
-			}
-
-			if(unused) {
-				if(ts->usedelem == unused) {
-					MEM_freeN(ts->data);
-					ts->data= NULL;
-					ts->usedelem= ts->totelem= 0;
-				}
-				else {
-					TreeStoreElem *tsnewar, *tsnew;
-					
-					tsnew=tsnewar= MEM_mallocN((ts->usedelem-unused)*sizeof(TreeStoreElem), "new tselem");
-					for(a=0, tselem= ts->data; a<ts->usedelem; a++, tselem++) {
-						if(tselem->id) {
-							*tsnew= *tselem;
-							tsnew++;
-						}
-					}
-					MEM_freeN(ts->data);
-					ts->data= tsnewar;
-					ts->usedelem-= unused;
-					ts->totelem= ts->usedelem;
-				}
-			}
-		}
-	}
-}
-
-static void check_persistant(SpaceOops *soops, TreeElement *te, ID *id, short type, short nr)
-{
-	TreeStore *ts;
-	TreeStoreElem *tselem;
-	int a;
-	
-	/* case 1; no TreeStore */
-	if(soops->treestore==NULL) {
-		soops->treestore= MEM_callocN(sizeof(TreeStore), "treestore");
-	}
-	ts= soops->treestore;
-	
-	/* check if 'te' is in treestore */
-	tselem= ts->data;
-	for(a=0; a<ts->usedelem; a++, tselem++) {
-		if(tselem->id==id && tselem->used==0) {
-			if((type==0 && tselem->type==0) ||(tselem->type==type && tselem->nr==nr)) {
-				te->store_index= a;
-				tselem->used= 1;
-				return;
-			}
-		}
-	}
-	
-	/* add 1 element to treestore */
-	if(ts->usedelem==ts->totelem) {
-		TreeStoreElem *tsnew;
-		
-		tsnew= MEM_mallocN((ts->totelem+TS_CHUNK)*sizeof(TreeStoreElem), "treestore data");
-		if(ts->data) {
-			memcpy(tsnew, ts->data, ts->totelem*sizeof(TreeStoreElem));
-			MEM_freeN(ts->data);
-		}
-		ts->data= tsnew;
-		ts->totelem+= TS_CHUNK;
-	}
-	
-	tselem= ts->data+ts->usedelem;
-	
-	tselem->type= type;
-	if(type) tselem->nr= nr; // we're picky! :)
-	else tselem->nr= 0;
-	tselem->id= id;
-	tselem->used = 0;
-	tselem->flag= TSE_CLOSED;
-	te->store_index= ts->usedelem;
-	
-	ts->usedelem++;
-}
-
-/* ******************** TREE MANAGEMENT ****************** */
-
-void outliner_free_tree(ListBase *lb)
-{
-	
-	while(lb->first) {
-		TreeElement *te= lb->first;
-		
-		outliner_free_tree(&te->subtree);
-		BLI_remlink(lb, te);
-
-		if(te->flag & TE_FREE_NAME) MEM_freeN((void *)te->name);
-		MEM_freeN(te);
-	}
-}
-
-static void outliner_height(SpaceOops *soops, ListBase *lb, int *h)
-{
-	TreeElement *te= lb->first;
-	while(te) {
-		TreeStoreElem *tselem= TREESTORE(te);
-		if((tselem->flag & TSE_CLOSED)==0) 
-			outliner_height(soops, &te->subtree, h);
-		(*h) += UI_UNIT_Y;
-		te= te->next;
-	}
-}
-
-#if 0  // XXX this is currently disabled until te->xend is set correctly
-static void outliner_width(SpaceOops *soops, ListBase *lb, int *w)
-{
-	TreeElement *te= lb->first;
-	while(te) {
-//		TreeStoreElem *tselem= TREESTORE(te);
-		
-		// XXX fixme... te->xend is not set yet
-		if(tselem->flag & TSE_CLOSED) {
-			if (te->xend > *w)
-				*w = te->xend;
-		}
-		outliner_width(soops, &te->subtree, w);
-		te= te->next;
-	}
-}
-#endif
-
-static void outliner_rna_width(SpaceOops *soops, ListBase *lb, int *w, int startx)
-{
-	TreeElement *te= lb->first;
-	while(te) {
-		TreeStoreElem *tselem= TREESTORE(te);
-			// XXX fixme... (currently, we're using a fixed length of 100)!
-		/*if(te->xend) {
-			if(te->xend > *w)
-				*w = te->xend;
-		}*/
-		if(startx+100 > *w)
-			*w = startx+100;
-
-		if((tselem->flag & TSE_CLOSED)==0)
-			outliner_rna_width(soops, &te->subtree, w, startx+UI_UNIT_X);
-		te= te->next;
-	}
-}
-
-static TreeElement *outliner_find_tree_element(ListBase *lb, int store_index)
-{
-	TreeElement *te= lb->first, *tes;
-	while(te) {
-		if(te->store_index==store_index) return te;
-		tes= outliner_find_tree_element(&te->subtree, store_index);
-		if(tes) return tes;
-		te= te->next;
-	}
-	return NULL;
-}
-
-
-
-static ID *outliner_search_back(SpaceOops *soops, TreeElement *te, short idcode)
-{
-	TreeStoreElem *tselem;
-	te= te->parent;
-	
-	while(te) {
-		tselem= TREESTORE(te);
-		if(tselem->type==0 && te->idcode==idcode) return tselem->id;
-		te= te->parent;
-	}
-	return NULL;
-}
-
-struct treesort {
-	TreeElement *te;
-	ID *id;
-	const char *name;
-	short idcode;
-};
-
-static int treesort_alpha(const void *v1, const void *v2)
-{
-	const struct treesort *x1= v1, *x2= v2;
-	int comp;
-	
-	/* first put objects last (hierarchy) */
-	comp= (x1->idcode==ID_OB);
-	if(x2->idcode==ID_OB) comp+=2;
-	
-	if(comp==1) return 1;
-	else if(comp==2) return -1;
-	else if(comp==3) {
-		comp= strcmp(x1->name, x2->name);
-		
-		if( comp>0 ) return 1;
-		else if( comp<0) return -1;
-		return 0;
-	}
-	return 0;
-}
-
-/* this is nice option for later? doesnt look too useful... */
-#if 0
-static int treesort_obtype_alpha(const void *v1, const void *v2)
-{
-	const struct treesort *x1= v1, *x2= v2;
-	
-	/* first put objects last (hierarchy) */
-	if(x1->idcode==ID_OB && x2->idcode!=ID_OB) return 1;
-	else if(x2->idcode==ID_OB && x1->idcode!=ID_OB) return -1;
-	else {
-		/* 2nd we check ob type */
-		if(x1->idcode==ID_OB && x2->idcode==ID_OB) {
-			if( ((Object *)x1->id)->type > ((Object *)x2->id)->type) return 1;
-			else if( ((Object *)x1->id)->type > ((Object *)x2->id)->type) return -1;
-			else return 0;
-		}
-		else {
-			int comp= strcmp(x1->name, x2->name);
-			
-			if( comp>0 ) return 1;
-			else if( comp<0) return -1;
-			return 0;
-		}
-	}
-}
-#endif
-
-/* sort happens on each subtree individual */
-static void outliner_sort(SpaceOops *soops, ListBase *lb)
-{
-	TreeElement *te;
-	TreeStoreElem *tselem;
-	int totelem=0;
-	
-	te= lb->last;
-	if(te==NULL) return;
-	tselem= TREESTORE(te);
-	
-	/* sorting rules; only object lists or deformgroups */
-	if( (tselem->type==TSE_DEFGROUP) || (tselem->type==0 && te->idcode==ID_OB)) {
-		
-		/* count first */
-		for(te= lb->first; te; te= te->next) totelem++;
-		
-		if(totelem>1) {
-			struct treesort *tear= MEM_mallocN(totelem*sizeof(struct treesort), "tree sort array");
-			struct treesort *tp=tear;
-			int skip= 0;
-			
-			for(te= lb->first; te; te= te->next, tp++) {
-				tselem= TREESTORE(te);
-				tp->te= te;
-				tp->name= te->name;
-				tp->idcode= te->idcode;
-				if(tselem->type && tselem->type!=TSE_DEFGROUP) tp->idcode= 0;	// dont sort this
-				tp->id= tselem->id;
-			}
-			/* keep beginning of list */
-			for(tp= tear, skip=0; skip<totelem; skip++, tp++)
-				if(tp->idcode) break;
-			
-			if(skip<totelem)
-				qsort(tear+skip, totelem-skip, sizeof(struct treesort), treesort_alpha);
-			
-			lb->first=lb->last= NULL;
-			tp= tear;
-			while(totelem--) {
-				BLI_addtail(lb, tp->te);
-				tp++;
-			}
-			MEM_freeN(tear);
-		}
-	}
-	
-	for(te= lb->first; te; te= te->next) {
-		outliner_sort(soops, &te->subtree);
-	}
-}
-
-/* Prototype, see functions below */
-static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *idv, 
-										 TreeElement *parent, short type, short index);
-
-#define LOG2I(x) (int)(log(x)/M_LN2)
-
-static void outliner_add_passes(SpaceOops *soops, TreeElement *tenla, ID *id, SceneRenderLayer *srl)
-{
-	TreeStoreElem *tselem = NULL;
-	TreeElement *te = NULL;
-
-	/* log stuff is to convert bitflags (powers of 2) to small integers,
-	 * in order to not overflow short tselem->nr */
-	
-	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_COMBINED));
-	te->name= "Combined";
-	te->directdata= &srl->passflag;
-	
-	/* save cpu cycles, but we add the first to invoke an open/close triangle */
-	tselem = TREESTORE(tenla);
-	if(tselem->flag & TSE_CLOSED)
-		return;
-	
-	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_Z));
-	te->name= "Z";
-	te->directdata= &srl->passflag;
-	
-	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_VECTOR));
-	te->name= "Vector";
-	te->directdata= &srl->passflag;
-	
-	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_NORMAL));
-	te->name= "Normal";
-	te->directdata= &srl->passflag;
-	
-	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_UV));
-	te->name= "UV";
-	te->directdata= &srl->passflag;
-	
-	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_MIST));
-	te->name= "Mist";
-	te->directdata= &srl->passflag;
-	
-	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_INDEXOB));
-	te->name= "Index Object";
-	te->directdata= &srl->passflag;
-	
-	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_INDEXMA));
-	te->name= "Index Material";
-	te->directdata= &srl->passflag;
-
-	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_RGBA));
-	te->name= "Color";
-	te->directdata= &srl->passflag;
-	
-	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_DIFFUSE));
-	te->name= "Diffuse";
-	te->directdata= &srl->passflag;
-	
-	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_SPEC));
-	te->name= "Specular";
-	te->directdata= &srl->passflag;
-	
-	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_SHADOW));
-	te->name= "Shadow";
-	te->directdata= &srl->passflag;
-	
-	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_AO));
-	te->name= "AO";
-	te->directdata= &srl->passflag;
-	
-	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_REFLECT));
-	te->name= "Reflection";
-	te->directdata= &srl->passflag;
-	
-	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_REFRACT));
-	te->name= "Refraction";
-	te->directdata= &srl->passflag;
-	
-	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_INDIRECT));
-	te->name= "Indirect";
-	te->directdata= &srl->passflag;
-
-	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_ENVIRONMENT));
-	te->name= "Environment";
-	te->directdata= &srl->passflag;
-
-	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_EMIT));
-	te->name= "Emit";
-	te->directdata= &srl->passflag;
-}
-
-#undef LOG2I
-
-/* special handling of hierarchical non-lib data */
-static void outliner_add_bone(SpaceOops *soops, ListBase *lb, ID *id, Bone *curBone, 
-							  TreeElement *parent, int *a)
-{
-	TreeElement *te= outliner_add_element(soops, lb, id, parent, TSE_BONE, *a);
-	
-	(*a)++;
-	te->name= curBone->name;
-	te->directdata= curBone;
-	
-	for(curBone= curBone->childbase.first; curBone; curBone=curBone->next) {
-		outliner_add_bone(soops, &te->subtree, id, curBone, te, a);
-	}
-}
-
-static void outliner_add_scene_contents(SpaceOops *soops, ListBase *lb, Scene *sce, TreeElement *te)
-{
-	SceneRenderLayer *srl;
-	TreeElement *tenla= outliner_add_element(soops, lb, sce, te, TSE_R_LAYER_BASE, 0);
-	int a;
-	
-	tenla->name= "RenderLayers";
-	for(a=0, srl= sce->r.layers.first; srl; srl= srl->next, a++) {
-		TreeElement *tenlay= outliner_add_element(soops, &tenla->subtree, sce, te, TSE_R_LAYER, a);
-		tenlay->name= srl->name;
-		tenlay->directdata= &srl->passflag;
-		
-		if(srl->light_override)
-			outliner_add_element(soops, &tenlay->subtree, srl->light_override, tenlay, TSE_LINKED_LAMP, 0);
-		if(srl->mat_override)
-			outliner_add_element(soops, &tenlay->subtree, srl->mat_override, tenlay, TSE_LINKED_MAT, 0);
-		
-		outliner_add_passes(soops, tenlay, &sce->id, srl);
-	}
-	
-	outliner_add_element(soops,  lb, sce->world, te, 0, 0);
-}
-
-static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *idv, 
-										 TreeElement *parent, short type, short index)
-{
-	TreeElement *te;
-	TreeStoreElem *tselem;
-	ID *id= idv;
-	int a = 0;
-	
-	if(ELEM3(type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) {
-		id= ((PointerRNA*)idv)->id.data;
-		if(!id) id= ((PointerRNA*)idv)->data;
-	}
-
-	if(id==NULL) return NULL;
-
-	te= MEM_callocN(sizeof(TreeElement), "tree elem");
-	/* add to the visual tree */
-	BLI_addtail(lb, te);
-	/* add to the storage */
-	check_persistant(soops, te, id, type, index);
-	tselem= TREESTORE(te);	
-	
-	te->parent= parent;
-	te->index= index;	// for data arays
-	if(ELEM3(type, TSE_SEQUENCE, TSE_SEQ_STRIP, TSE_SEQUENCE_DUP));
-	else if(ELEM3(type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM));
-	else if(type==TSE_ANIM_DATA);
-	else {
-		te->name= id->name+2; // default, can be overridden by Library or non-ID data
-		te->idcode= GS(id->name);
-	}
-	
-	if(type==0) {
-
-		/* tuck pointer back in object, to construct hierarchy */
-		if(GS(id->name)==ID_OB) id->newid= (ID *)te;
-		
-		/* expand specific data always */
-		switch(GS(id->name)) {
-		case ID_LI:
-			te->name= ((Library *)id)->name;
-			break;
-		case ID_SCE:
-			outliner_add_scene_contents(soops, &te->subtree, (Scene *)id, te);
-			break;
-		case ID_OB:
-			{
-				Object *ob= (Object *)id;
-				
-				outliner_add_element(soops, &te->subtree, ob->adt, te, TSE_ANIM_DATA, 0);
-				outliner_add_element(soops, &te->subtree, ob->poselib, te, 0, 0); // XXX FIXME.. add a special type for this
-				
-				if(ob->proxy && ob->id.lib==NULL)
-					outliner_add_element(soops, &te->subtree, ob->proxy, te, TSE_PROXY, 0);
-				
-				outliner_add_element(soops, &te->subtree, ob->data, te, 0, 0);
-				
-				if(ob->pose) {
-					bArmature *arm= ob->data;
-					bPoseChannel *pchan;
-					TreeElement *ten;
-					TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_POSE_BASE, 0);
-					
-					tenla->name= "Pose";
-					
-					if(arm->edbo==NULL && (ob->mode & OB_MODE_POSE)) {	// channels undefined in editmode, but we want the 'tenla' pose icon itself
-						int a= 0, const_index= 1000;	/* ensure unique id for bone constraints */
-						
-						for(pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next, a++) {
-							ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_POSE_CHANNEL, a);
-							ten->name= pchan->name;
-							ten->directdata= pchan;
-							pchan->prev= (bPoseChannel *)ten;
-							
-							if(pchan->constraints.first) {
-								//Object *target;
-								bConstraint *con;
-								TreeElement *ten1;
-								TreeElement *tenla1= outliner_add_element(soops, &ten->subtree, ob, ten, TSE_CONSTRAINT_BASE, 0);
-								//char *str;
-								
-								tenla1->name= "Constraints";
-								for(con= pchan->constraints.first; con; con= con->next, const_index++) {
-									ten1= outliner_add_element(soops, &tenla1->subtree, ob, tenla1, TSE_CONSTRAINT, const_index);
-#if 0 /* disabled as it needs to be reworked for recoded constraints system */
-									target= get_constraint_target(con, &str);
-									if(str && str[0]) ten1->name= str;
-									else if(target) ten1->name= target->id.name+2;
-									else ten1->name= con->name;
-#endif
-									ten1->name= con->name;
-									ten1->directdata= con;
-									/* possible add all other types links? */
-								}
-							}
-						}
-						/* make hierarchy */
-						ten= tenla->subtree.first;
-						while(ten) {
-							TreeElement *nten= ten->next, *par;
-							tselem= TREESTORE(ten);
-							if(tselem->type==TSE_POSE_CHANNEL) {
-								pchan= (bPoseChannel *)ten->directdata;
-								if(pchan->parent) {
-									BLI_remlink(&tenla->subtree, ten);
-									par= (TreeElement *)pchan->parent->prev;
-									BLI_addtail(&par->subtree, ten);
-									ten->parent= par;
-								}
-							}
-							ten= nten;
-						}
-						/* restore prev pointers */
-						pchan= ob->pose->chanbase.first;
-						if(pchan) pchan->prev= NULL;
-						for(; pchan; pchan= pchan->next) {
-							if(pchan->next) pchan->next->prev= pchan;
-						}
-					}
-					
-					/* Pose Groups */
-					if(ob->pose->agroups.first) {
-						bActionGroup *agrp;
-						TreeElement *ten;
-						TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_POSEGRP_BASE, 0);
-						int a= 0;
-						
-						tenla->name= "Bone Groups";
-						for (agrp=ob->pose->agroups.first; agrp; agrp=agrp->next, a++) {
-							ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_POSEGRP, a);
-							ten->name= agrp->name;
-							ten->directdata= agrp;
-						}
-					}
-				}
-				
-				for(a=0; a<ob->totcol; a++) 
-					outliner_add_element(soops, &te->subtree, ob->mat[a], te, 0, a);
-				
-				if(ob->constraints.first) {
-					//Object *target;
-					bConstraint *con;
-					TreeElement *ten;
-					TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_CONSTRAINT_BASE, 0);
-					int a= 0;
-					//char *str;
-					
-					tenla->name= "Constraints";
-					for(con= ob->constraints.first; con; con= con->next, a++) {
-						ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_CONSTRAINT, a);
-#if 0 /* disabled due to constraints system targets recode... code here needs review */
-						target= get_constraint_target(con, &str);
-						if(str && str[0]) ten->name= str;
-						else if(target) ten->name= target->id.name+2;
-						else ten->name= con->name;
-#endif
-						ten->name= con->name;
-						ten->directdata= con;
-						/* possible add all other types links? */
-					}
-				}
-				
-				if(ob->modifiers.first) {
-					ModifierData *md;
-					TreeElement *temod = outliner_add_element(soops, &te->subtree, ob, te, TSE_MODIFIER_BASE, 0);
-					int index;
-
-					temod->name = "Modifiers";
-					for (index=0,md=ob->modifiers.first; md; index++,md=md->next) {
-						TreeElement *te = outliner_add_element(soops, &temod->subtree, ob, temod, TSE_MODIFIER, index);
-						te->name= md->name;
-						te->directdata = md;
-
-						if (md->type==eModifierType_Lattice) {
-							outliner_add_element(soops, &te->subtree, ((LatticeModifierData*) md)->object, te, TSE_LINKED_OB, 0);
-						} else if (md->type==eModifierType_Curve) {
-							outliner_add_element(soops, &te->subtree, ((CurveModifierData*) md)->object, te, TSE_LINKED_OB, 0);
-						} else if (md->type==eModifierType_Armature) {
-							outliner_add_element(soops, &te->subtree, ((ArmatureModifierData*) md)->object, te, TSE_LINKED_OB, 0);
-						} else if (md->type==eModifierType_Hook) {
-							outliner_add_element(soops, &te->subtree, ((HookModifierData*) md)->object, te, TSE_LINKED_OB, 0);
-						} else if (md->type==eModifierType_ParticleSystem) {
-							TreeElement *ten;
-							ParticleSystem *psys= ((ParticleSystemModifierData*) md)->psys;
-							
-							ten = outliner_add_element(soops, &te->subtree, ob, te, TSE_LINKED_PSYS, 0);
-							ten->directdata = psys;
-							ten->name = psys->part->id.name+2;
-						}
-					}
-				}
-				if(ob->defbase.first) {
-					bDeformGroup *defgroup;
-					TreeElement *ten;
-					TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_DEFGROUP_BASE, 0);
-					int a= 0;
-					
-					tenla->name= "Vertex Groups";
-					for (defgroup=ob->defbase.first; defgroup; defgroup=defgroup->next, a++) {
-						ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_DEFGROUP, a);
-						ten->name= defgroup->name;
-						ten->directdata= defgroup;
-					}
-				}
-				
-				if(ob->dup_group)
-					outliner_add_element(soops, &te->subtree, ob->dup_group, te, 0, 0);	
-				
-			}
-			break;
-		case ID_ME:
-			{
-				Mesh *me= (Mesh *)id;
-				
-				//outliner_add_element(soops, &te->subtree, me->adt, te, TSE_ANIM_DATA, 0);
-				
-				outliner_add_element(soops, &te->subtree, me->key, te, 0, 0);
-				for(a=0; a<me->totcol; a++) 
-					outliner_add_element(soops, &te->subtree, me->mat[a], te, 0, a);
-				/* could do tfaces with image links, but the images are not grouped nicely.
-				   would require going over all tfaces, sort images in use. etc... */
-			}
-			break;
-		case ID_CU:
-			{
-				Curve *cu= (Curve *)id;
-				
-				outliner_add_element(soops, &te->subtree, cu->adt, te, TSE_ANIM_DATA, 0);
-				
-				for(a=0; a<cu->totcol; a++) 
-					outliner_add_element(soops, &te->subtree, cu->mat[a], te, 0, a);
-			}
-			break;
-		case ID_MB:
-			{
-				MetaBall *mb= (MetaBall *)id;
-				for(a=0; a<mb->totcol; a++) 
-					outliner_add_element(soops, &te->subtree, mb->mat[a], te, 0, a);
-			}
-			break;
-		case ID_MA:
-		{
-			Material *ma= (Material *)id;
-			
-			outliner_add_element(soops, &te->subtree, ma->adt, te, TSE_ANIM_DATA, 0);
-			
-			for(a=0; a<MAX_MTEX; a++) {
-				if(ma->mtex[a]) outliner_add_element(soops, &te->subtree, ma->mtex[a]->tex, te, 0, a);
-			}
-		}
-			break;
-		case ID_TE:
-			{
-				Tex *tex= (Tex *)id;
-				
-				outliner_add_element(soops, &te->subtree, tex->adt, te, TSE_ANIM_DATA, 0);
-				outliner_add_element(soops, &te->subtree, tex->ima, te, 0, 0);
-			}
-			break;
-		case ID_CA:
-			{
-				Camera *ca= (Camera *)id;
-				outliner_add_element(soops, &te->subtree, ca->adt, te, TSE_ANIM_DATA, 0);
-			}
-			break;
-		case ID_LA:
-			{
-				Lamp *la= (Lamp *)id;
-				
-				outliner_add_element(soops, &te->subtree, la->adt, te, TSE_ANIM_DATA, 0);
-				
-				for(a=0; a<MAX_MTEX; a++) {
-					if(la->mtex[a]) outliner_add_element(soops, &te->subtree, la->mtex[a]->tex, te, 0, a);
-				}
-			}
-			break;
-		case ID_WO:
-			{
-				World *wrld= (World *)id;
-				
-				outliner_add_element(soops, &te->subtree, wrld->adt, te, TSE_ANIM_DATA, 0);
-				
-				for(a=0; a<MAX_MTEX; a++) {
-					if(wrld->mtex[a]) outliner_add_element(soops, &te->subtree, wrld->mtex[a]->tex, te, 0, a);
-				}
-			}
-			break;
-		case ID_KE:
-			{
-				Key *key= (Key *)id;
-				
-				outliner_add_element(soops, &te->subtree, key->adt, te, TSE_ANIM_DATA, 0);
-			}
-			break;
-		case ID_AC:
-			{
-				// XXX do we want to be exposing the F-Curves here?
-				//bAction *act= (bAction *)id;
-			}
-			break;
-		case ID_AR:
-			{
-				bArmature *arm= (bArmature *)id;
-				int a= 0;
-				
-				if(arm->edbo) {
-					EditBone *ebone;
-					TreeElement *ten;
-					
-					for (ebone = arm->edbo->first; ebone; ebone=ebone->next, a++) {
-						ten= outliner_add_element(soops, &te->subtree, id, te, TSE_EBONE, a);
-						ten->directdata= ebone;
-						ten->name= ebone->name;
-						ebone->temp= ten;
-					}
-					/* make hierarchy */
-					ten= te->subtree.first;
-					while(ten) {
-						TreeElement *nten= ten->next, *par;
-						ebone= (EditBone *)ten->directdata;
-						if(ebone->parent) {
-							BLI_remlink(&te->subtree, ten);
-							par= ebone->parent->temp;
-							BLI_addtail(&par->subtree, ten);
-							ten->parent= par;
-						}
-						ten= nten;
-					}
-				}
-				else {
-					/* do not extend Armature when we have posemode */
-					tselem= TREESTORE(te->parent);
-					if( GS(tselem->id->name)==ID_OB && ((Object *)tselem->id)->mode & OB_MODE_POSE);
-					else {
-						Bone *curBone;
-						for (curBone=arm->bonebase.first; curBone; curBone=curBone->next){
-							outliner_add_bone(soops, &te->subtree, id, curBone, te, &a);
-						}
-					}
-				}
-			}
-			break;
-		}
-	}
-	else if(type==TSE_ANIM_DATA) {
-		AnimData *adt= (AnimData *)idv;
-		
-		/* this element's info */
-		te->name= "Animation";
-		
-		/* Action */
-		outliner_add_element(soops, &te->subtree, adt->action, te, 0, 0);
-		
-		/* Drivers */
-		if (adt->drivers.first) {
-			TreeElement *ted= outliner_add_element(soops, &te->subtree, adt, te, TSE_DRIVER_BASE, 0);
-			ID *lastadded= NULL;
-			FCurve *fcu;
-			
-			ted->name= "Drivers";
-		
-			for (fcu= adt->drivers.first; fcu; fcu= fcu->next) {
-				if (fcu->driver && fcu->driver->variables.first)  {
-					ChannelDriver *driver= fcu->driver;
-					DriverVar *dvar;
-					
-					for (dvar= driver->variables.first; dvar; dvar= dvar->next) {
-						/* loop over all targets used here */
-						DRIVER_TARGETS_USED_LOOPER(dvar) 
-						{
-							if (lastadded != dtar->id) {
-								// XXX this lastadded check is rather lame, and also fails quite badly...
-								outliner_add_element(soops, &ted->subtree, dtar->id, ted, TSE_LINKED_OB, 0);
-								lastadded= dtar->id;
-							}
-						}
-						DRIVER_TARGETS_LOOPER_END
-					}
-				}
-			}
-		}
-		
-		/* NLA Data */
-		if (adt->nla_tracks.first) {
-			TreeElement *tenla= outliner_add_element(soops, &te->subtree, adt, te, TSE_NLA, 0);
-			NlaTrack *nlt;
-			int a= 0;
-			
-			tenla->name= "NLA Tracks";
-			
-			for (nlt= adt->nla_tracks.first; nlt; nlt= nlt->next) {
-				TreeElement *tenlt= outliner_add_element(soops, &tenla->subtree, nlt, tenla, TSE_NLA_TRACK, a);
-				NlaStrip *strip;
-				TreeElement *ten;
-				int b= 0;
-				
-				tenlt->name= nlt->name;
-				
-				for (strip=nlt->strips.first; strip; strip=strip->next, b++) {
-					ten= outliner_add_element(soops, &tenlt->subtree, strip->act, tenlt, TSE_NLA_ACTION, b);
-					if(ten) ten->directdata= strip;
-				}
-			}
-		}
-	}
-	else if(type==TSE_SEQUENCE) {
-		Sequence *seq= (Sequence*) idv;
-		Sequence *p;
-
-		/*
-		 * The idcode is a little hack, but the outliner
-		 * only check te->idcode if te->type is equal to zero,
-		 * so this is "safe".
-		 */
-		te->idcode= seq->type;
-		te->directdata= seq;
-
-		if(seq->type<7) {
-			/*
-			 * This work like the sequence.
-			 * If the sequence have a name (not default name)
-			 * show it, in other case put the filename.
-			 */
-			if(strcmp(seq->name, "SQ"))
-				te->name= seq->name;
-			else {
-				if((seq->strip) && (seq->strip->stripdata))
-					te->name= seq->strip->stripdata->name;
-				else
-					te->name= "SQ None";
-			}
-
-			if(seq->type==SEQ_META) {
-				te->name= "Meta Strip";
-				p= seq->seqbase.first;
-				while(p) {
-					outliner_add_element(soops, &te->subtree, (void*)p, te, TSE_SEQUENCE, index);
-					p= p->next;
-				}
-			}
-			else
-				outliner_add_element(soops, &te->subtree, (void*)seq->strip, te, TSE_SEQ_STRIP, index);
-		}
-		else
-			te->name= "Effect";
-	}
-	else if(type==TSE_SEQ_STRIP) {
-		Strip *strip= (Strip *)idv;
-
-		if(strip->dir)
-			te->name= strip->dir;
-		else
-			te->name= "Strip None";
-		te->directdata= strip;
-	}
-	else if(type==TSE_SEQUENCE_DUP) {
-		Sequence *seq= (Sequence*)idv;
-
-		te->idcode= seq->type;
-		te->directdata= seq;
-		te->name= seq->strip->stripdata->name;
-	}
-	else if(ELEM3(type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) {
-		PointerRNA pptr, propptr, *ptr= (PointerRNA*)idv;
-		PropertyRNA *prop, *iterprop;
-		PropertyType proptype;
-		int a, tot;
-
-		/* we do lazy build, for speed and to avoid infinite recusion */
-
-		if(ptr->data == NULL) {
-			te->name= "(empty)";
-		}
-		else if(type == TSE_RNA_STRUCT) {
-			/* struct */
-			te->name= RNA_struct_name_get_alloc(ptr, NULL, 0);
-
-			if(te->name)
-				te->flag |= TE_FREE_NAME;
-			else
-				te->name= (char*)RNA_struct_ui_name(ptr->type);
-
-			iterprop= RNA_struct_iterator_property(ptr->type);
-			tot= RNA_property_collection_length(ptr, iterprop);
-
-			/* auto open these cases */
-			if(!parent || (RNA_property_type(parent->directdata)) == PROP_POINTER)
-				if(!tselem->used)
-					tselem->flag &= ~TSE_CLOSED;
-
-			if(!(tselem->flag & TSE_CLOSED)) {
-				for(a=0; a<tot; a++)
-					outliner_add_element(soops, &te->subtree, (void*)ptr, te, TSE_RNA_PROPERTY, a);
-			}
-			else if(tot)
-				te->flag |= TE_LAZY_CLOSED;
-
-			te->rnaptr= *ptr;
-		}
-		else if(type == TSE_RNA_PROPERTY) {
-			/* property */
-			iterprop= RNA_struct_iterator_property(ptr->type);
-			RNA_property_collection_lookup_int(ptr, iterprop, index, &propptr);
-
-			prop= propptr.data;
-			proptype= RNA_property_type(prop);
-
-			te->name= (char*)RNA_property_ui_name(prop);
-			te->directdata= prop;
-			te->rnaptr= *ptr;
-
-			if(proptype == PROP_POINTER) {
-				pptr= RNA_property_pointer_get(ptr, prop);
-
-				if(pptr.data) {
-					if(!(tselem->flag & TSE_CLOSED))
-						outliner_add_element(soops, &te->subtree, (void*)&pptr, te, TSE_RNA_STRUCT, -1);
-					else
-						te->flag |= TE_LAZY_CLOSED;
-				}
-			}
-			else if(proptype == PROP_COLLECTION) {
-				tot= RNA_property_collection_length(ptr, prop);
-
-				if(!(tselem->flag & TSE_CLOSED)) {
-					for(a=0; a<tot; a++) {
-						RNA_property_collection_lookup_int(ptr, prop, a, &pptr);
-						outliner_add_element(soops, &te->subtree, (void*)&pptr, te, TSE_RNA_STRUCT, -1);
-					}
-				}
-				else if(tot)
-					te->flag |= TE_LAZY_CLOSED;
-			}
-			else if(ELEM3(proptype, PROP_BOOLEAN, PROP_INT, PROP_FLOAT)) {
-				tot= RNA_property_array_length(ptr, prop);
-
-				if(!(tselem->flag & TSE_CLOSED)) {
-					for(a=0; a<tot; a++)
-						outliner_add_element(soops, &te->subtree, (void*)ptr, te, TSE_RNA_ARRAY_ELEM, a);
-				}
-				else if(tot)
-					te->flag |= TE_LAZY_CLOSED;
-			}
-		}
-		else if(type == TSE_RNA_ARRAY_ELEM) {
-			char c;
-
-			prop= parent->directdata;
-
-			te->directdata= prop;
-			te->rnaptr= *ptr;
-			te->index= index;
-
-			c= RNA_property_array_item_char(prop, index);
-
-			te->name= MEM_callocN(sizeof(char)*20, "OutlinerRNAArrayName");
-			if(c) sprintf((char *)te->name, "  %c", c);
-			else sprintf((char *)te->name, "  %d", index+1);
-			te->flag |= TE_FREE_NAME;
-		}
-	}
-	else if(type == TSE_KEYMAP) {
-		wmKeyMap *km= (wmKeyMap *)idv;
-		wmKeyMapItem *kmi;
-		char opname[OP_MAX_TYPENAME];
-		
-		te->directdata= idv;
-		te->name= km->idname;
-		
-		if(!(tselem->flag & TSE_CLOSED)) {
-			a= 0;
-			
-			for (kmi= km->items.first; kmi; kmi= kmi->next, a++) {
-				const char *key= WM_key_event_string(kmi->type);
-				
-				if(key[0]) {
-					wmOperatorType *ot= NULL;
-					
-					if(kmi->propvalue);
-					else ot= WM_operatortype_find(kmi->idname, 0);
-					
-					if(ot || kmi->propvalue) {
-						TreeElement *ten= outliner_add_element(soops, &te->subtree, kmi, te, TSE_KEYMAP_ITEM, a);
-						
-						ten->directdata= kmi;
-						
-						if(kmi->propvalue) {
-							ten->name= "Modal map, not yet";
-						}
-						else {
-							WM_operator_py_idname(opname, ot->idname);
-							ten->name= BLI_strdup(opname);
-							ten->flag |= TE_FREE_NAME;
-						}
-					}
-				}
-			}
-		}
-		else 
-			te->flag |= TE_LAZY_CLOSED;
-	}
-
-	return te;
-}
-
-static void outliner_make_hierarchy(SpaceOops *soops, ListBase *lb)
-{
-	TreeElement *te, *ten, *tep;
-	TreeStoreElem *tselem;
-
-	/* build hierarchy */
-	// XXX also, set extents here...
-	te= lb->first;
-	while(te) {
-		ten= te->next;
-		tselem= TREESTORE(te);
-		
-		if(tselem->type==0 && te->idcode==ID_OB) {
-			Object *ob= (Object *)tselem->id;
-			if(ob->parent && ob->parent->id.newid) {
-				BLI_remlink(lb, te);
-				tep= (TreeElement *)ob->parent->id.newid;
-				BLI_addtail(&tep->subtree, te);
-				// set correct parent pointers
-				for(te=tep->subtree.first; te; te= te->next) te->parent= tep;
-			}
-		}
-		te= ten;
-	}
-}
-
-/* Helped function to put duplicate sequence in the same tree. */
-static int need_add_seq_dup(Sequence *seq)
-{
-	Sequence *p;
-
-	if((!seq->strip) || (!seq->strip->stripdata) || (!seq->strip->stripdata->name))
-		return(1);
-
-	/*
-	 * First check backward, if we found a duplicate
-	 * sequence before this, don't need it, just return.
-	 */
-	p= seq->prev;
-	while(p) {
-		if((!p->strip) || (!p->strip->stripdata) || (!p->strip->stripdata->name)) {
-			p= p->prev;
-			continue;
-		}
-
-		if(!strcmp(p->strip->stripdata->name, seq->strip->stripdata->name))
-			return(2);
-		p= p->prev;
-	}
-
-	p= seq->next;
-	while(p) {
-		if((!p->strip) || (!p->strip->stripdata) || (!p->strip->stripdata->name)) {
-			p= p->next;
-			continue;
-		}
-
-		if(!strcmp(p->strip->stripdata->name, seq->strip->stripdata->name))
-			return(0);
-		p= p->next;
-	}
-	return(1);
-}
-
-static void add_seq_dup(SpaceOops *soops, Sequence *seq, TreeElement *te, short index)
-{
-	TreeElement *ch;
-	Sequence *p;
-
-	p= seq;
-	while(p) {
-		if((!p->strip) || (!p->strip->stripdata) || (!p->strip->stripdata->name)) {
-			p= p->next;
-			continue;
-		}
-
-		if(!strcmp(p->strip->stripdata->name, seq->strip->stripdata->name))
-			ch= outliner_add_element(soops, &te->subtree, (void*)p, te, TSE_SEQUENCE, index);
-		p= p->next;
-	}
-}
-
-static int outliner_filter_has_name(TreeElement *te, const char *name, int flags)
-{
-#if 0
-	int found= 0;
-	
-	/* determine if match */
-	if (flags & SO_FIND_CASE_SENSITIVE) {
-		if (flags & SO_FIND_COMPLETE)
-			found= strcmp(te->name, name) == 0;
-		else
-			found= strstr(te->name, name) != NULL;
-	}
-	else {
-		if (flags & SO_FIND_COMPLETE)
-			found= BLI_strcasecmp(te->name, name) == 0;
-		else
-			found= BLI_strcasestr(te->name, name) != NULL;
-	}
-#else
-	
-	int fn_flag= 0;
-	int found= 0;
-	
-	if ((flags & SO_FIND_CASE_SENSITIVE) == 0)
-		fn_flag |= FNM_CASEFOLD;
-
-	if (flags & SO_FIND_COMPLETE) {
-		found= fnmatch(name, te->name, fn_flag)==0;
-	}
-	else {
-		char fn_name[sizeof(((struct SpaceOops *)NULL)->search_string) + 2];
-		sprintf(fn_name, "*%s*", name);
-		found= fnmatch(fn_name, te->name, fn_flag)==0;
-	}
-	return found;
-#endif
-}
-
-static int outliner_filter_tree(SpaceOops *soops, ListBase *lb)
-{
-	TreeElement *te, *ten;
-	TreeStoreElem *tselem;
-	
-	/* although we don't have any search string, we return TRUE 
-	 * since the entire tree is ok then...
-	 */
-	if (soops->search_string[0]==0) 
-		return 1;
-
-	for (te= lb->first; te; te= ten) {
-		ten= te->next;
-		
-		if (0==outliner_filter_has_name(te, soops->search_string, soops->search_flags)) {
-			/* item isn't something we're looking for, but...
-			 * 	- if the subtree is expanded, check if there are any matches that can be easily found
-			 *		so that searching for "cu" in the default scene will still match the Cube
-			 *	- otherwise, we can't see within the subtree and the item doesn't match,
-			 *		so these can be safely ignored (i.e. the subtree can get freed)
-			 */
-			tselem= TREESTORE(te);
-			
-			if ((tselem->flag & TSE_CLOSED) || outliner_filter_tree(soops, &te->subtree)==0) { 
-				outliner_free_tree(&te->subtree);
-				BLI_remlink(lb, te);
-				
-				if(te->flag & TE_FREE_NAME) MEM_freeN((void *)te->name);
-				MEM_freeN(te);
-			}
-		}
-		else {
-			/* filter subtree too */
-			outliner_filter_tree(soops, &te->subtree);
-		}
-	}
-	
-	/* if there are still items in the list, that means that there were still some matches */
-	return (lb->first != NULL);
-}
-
-
-static void outliner_build_tree(Main *mainvar, Scene *scene, SpaceOops *soops)
-{
-	Base *base;
-	Object *ob;
-	TreeElement *te=NULL, *ten;
-	TreeStoreElem *tselem;
-	int show_opened= (soops->treestore==NULL); /* on first view, we open scenes */
-
-	if(soops->tree.first && (soops->storeflag & SO_TREESTORE_REDRAW))
-		return;
-
-	outliner_free_tree(&soops->tree);
-	outliner_storage_cleanup(soops);
-	
-	/* clear ob id.new flags */
-	for(ob= mainvar->object.first; ob; ob= ob->id.next) ob->id.newid= NULL;
-	
-	/* options */
-	if(soops->outlinevis == SO_LIBRARIES) {
-		Library *lib;
-		
-		for(lib= mainvar->library.first; lib; lib= lib->id.next) {
-			ten= outliner_add_element(soops, &soops->tree, lib, NULL, 0, 0);
-			lib->id.newid= (ID *)ten;
-		}
-		/* make hierarchy */
-		ten= soops->tree.first;
-		while(ten) {
-			TreeElement *nten= ten->next, *par;
-			tselem= TREESTORE(ten);
-			lib= (Library *)tselem->id;
-			if(lib->parent) {
-				BLI_remlink(&soops->tree, ten);
-				par= (TreeElement *)lib->parent->id.newid;
-				BLI_addtail(&par->subtree, ten);
-				ten->parent= par;
-			}
-			ten= nten;
-		}
-		/* restore newid pointers */
-		for(lib= mainvar->library.first; lib; lib= lib->id.next)
-			lib->id.newid= NULL;
-		
-	}
-	else if(soops->outlinevis == SO_ALL_SCENES) {
-		Scene *sce;
-		for(sce= mainvar->scene.first; sce; sce= sce->id.next) {
-			te= outliner_add_element(soops, &soops->tree, sce, NULL, 0, 0);
-			tselem= TREESTORE(te);
-			if(sce==scene && show_opened) 
-				tselem->flag &= ~TSE_CLOSED;
-			
-			for(base= sce->base.first; base; base= base->next) {
-				ten= outliner_add_element(soops, &te->subtree, base->object, te, 0, 0);
-				ten->directdata= base;
-			}
-			outliner_make_hierarchy(soops, &te->subtree);
-			/* clear id.newid, to prevent objects be inserted in wrong scenes (parent in other scene) */
-			for(base= sce->base.first; base; base= base->next) base->object->id.newid= NULL;
-		}
-	}
-	else if(soops->outlinevis == SO_CUR_SCENE) {
-		
-		outliner_add_scene_contents(soops, &soops->tree, scene, NULL);
-		
-		for(base= scene->base.first; base; base= base->next) {
-			ten= outliner_add_element(soops, &soops->tree, base->object, NULL, 0, 0);
-			ten->directdata= base;
-		}
-		outliner_make_hierarchy(soops, &soops->tree);
-	}
-	else if(soops->outlinevis == SO_VISIBLE) {
-		for(base= scene->base.first; base; base= base->next) {
-			if(base->lay & scene->lay)
-				outliner_add_element(soops, &soops->tree, base->object, NULL, 0, 0);
-		}
-		outliner_make_hierarchy(soops, &soops->tree);
-	}
-	else if(soops->outlinevis == SO_GROUPS) {
-		Group *group;
-		GroupObject *go;
-		
-		for(group= mainvar->group.first; group; group= group->id.next) {
-			if(group->gobject.first) {
-				te= outliner_add_element(soops, &soops->tree, group, NULL, 0, 0);
-				
-				for(go= group->gobject.first; go; go= go->next) {
-					ten= outliner_add_element(soops, &te->subtree, go->ob, te, 0, 0);
-					ten->directdata= NULL; /* eh, why? */
-				}
-				outliner_make_hierarchy(soops, &te->subtree);
-				/* clear id.newid, to prevent objects be inserted in wrong scenes (parent in other scene) */
-				for(go= group->gobject.first; go; go= go->next) go->ob->id.newid= NULL;
-			}
-		}
-	}
-	else if(soops->outlinevis == SO_SAME_TYPE) {
-		Object *ob= OBACT;
-		if(ob) {
-			for(base= scene->base.first; base; base= base->next) {
-				if(base->object->type==ob->type) {
-					ten= outliner_add_element(soops, &soops->tree, base->object, NULL, 0, 0);
-					ten->directdata= base;
-				}
-			}
-			outliner_make_hierarchy(soops, &soops->tree);
-		}
-	}
-	else if(soops->outlinevis == SO_SELECTED) {
-		for(base= scene->base.first; base; base= base->next) {
-			if(base->lay & scene->lay) {
-				if(base==BASACT || (base->flag & SELECT)) {
-					ten= outliner_add_element(soops, &soops->tree, base->object, NULL, 0, 0);
-					ten->directdata= base;
-				}
-			}
-		}
-		outliner_make_hierarchy(soops, &soops->tree);
-	}
-	else if(soops->outlinevis==SO_SEQUENCE) {
-		Sequence *seq;
-		Editing *ed= seq_give_editing(scene, FALSE);
-		int op;
-
-		if(ed==NULL)
-			return;
-
-		seq= ed->seqbasep->first;
-		if(!seq)
-			return;
-
-		while(seq) {
-			op= need_add_seq_dup(seq);
-			if(op==1)
-				ten= outliner_add_element(soops, &soops->tree, (void*)seq, NULL, TSE_SEQUENCE, 0);
-			else if(op==0) {
-				ten= outliner_add_element(soops, &soops->tree, (void*)seq, NULL, TSE_SEQUENCE_DUP, 0);
-				add_seq_dup(soops, seq, ten, 0);
-			}
-			seq= seq->next;
-		}
-	}
-	else if(soops->outlinevis==SO_DATABLOCKS) {
-		PointerRNA mainptr;
-
-		RNA_main_pointer_create(mainvar, &mainptr);
-
-		ten= outliner_add_element(soops, &soops->tree, (void*)&mainptr, NULL, TSE_RNA_STRUCT, -1);
-
-		if(show_opened)  {
-			tselem= TREESTORE(ten);
-			tselem->flag &= ~TSE_CLOSED;
-		}
-	}
-	else if(soops->outlinevis==SO_USERDEF) {
-		PointerRNA userdefptr;
-
-		RNA_pointer_create(NULL, &RNA_UserPreferences, &U, &userdefptr);
-
-		ten= outliner_add_element(soops, &soops->tree, (void*)&userdefptr, NULL, TSE_RNA_STRUCT, -1);
-
-		if(show_opened)  {
-			tselem= TREESTORE(ten);
-			tselem->flag &= ~TSE_CLOSED;
-		}
-	}
-	else if(soops->outlinevis==SO_KEYMAP) {
-		wmWindowManager *wm= mainvar->wm.first;
-		wmKeyMap *km;
-		
-		for(km= wm->defaultconf->keymaps.first; km; km= km->next) {
-			ten= outliner_add_element(soops, &soops->tree, (void*)km, NULL, TSE_KEYMAP, 0);
-		}
-	}
-	else {
-		ten= outliner_add_element(soops, &soops->tree, OBACT, NULL, 0, 0);
-		if(ten) ten->directdata= BASACT;
-	}
-
-	outliner_sort(soops, &soops->tree);
-	outliner_filter_tree(soops, &soops->tree);
-}
-
-/* **************** INTERACTIVE ************* */
-
-
-static int outliner_scroll_page_exec(bContext *C, wmOperator *op)
-{
-	ARegion *ar= CTX_wm_region(C);
-	int dy= ar->v2d.mask.ymax - ar->v2d.mask.ymin;
-	int up= 0;
-	
-	if(RNA_boolean_get(op->ptr, "up"))
-		up= 1;
-
-	if(up == 0) dy= -dy;
-	ar->v2d.cur.ymin+= dy;
-	ar->v2d.cur.ymax+= dy;
-	
-	ED_region_tag_redraw(ar);
-	
-	return OPERATOR_FINISHED;
-}
-
-
-void OUTLINER_OT_scroll_page(wmOperatorType *ot)
-{
-	/* identifiers */
-	ot->name= "Scroll Page";
-	ot->idname= "OUTLINER_OT_scroll_page";
-	ot->description= "Scroll page up or down";
-	
-	/* callbacks */
-	ot->exec= outliner_scroll_page_exec;
-	ot->poll= ED_operator_outliner_active;
-	
-	/* properties */
-	RNA_def_boolean(ot->srna, "up", 0, "Up", "Scroll up one page.");
-}
-
-
-static int outliner_count_levels(SpaceOops *soops, ListBase *lb, int curlevel)
-{
-	TreeElement *te;
-	int level=curlevel, lev;
-	
-	for(te= lb->first; te; te= te->next) {
-		
-		lev= outliner_count_levels(soops, &te->subtree, curlevel+1);
-		if(lev>level) level= lev;
-	}
-	return level;
-}
-
-static int outliner_has_one_flag(SpaceOops *soops, ListBase *lb, short flag, short curlevel)
-{
-	TreeElement *te;
-	TreeStoreElem *tselem;
-	int level;
-	
-	for(te= lb->first; te; te= te->next) {
-		tselem= TREESTORE(te);
-		if(tselem->flag & flag) return curlevel;
-		
-		level= outliner_has_one_flag(soops, &te->subtree, flag, curlevel+1);
-		if(level) return level;
-	}
-	return 0;
-}
-
-static void outliner_set_flag(SpaceOops *soops, ListBase *lb, short flag, short set)
-{
-	TreeElement *te;
-	TreeStoreElem *tselem;
-	
-	for(te= lb->first; te; te= te->next) {
-		tselem= TREESTORE(te);
-		if(set==0) tselem->flag &= ~flag;
-		else tselem->flag |= flag;
-		outliner_set_flag(soops, &te->subtree, flag, set);
-	}
-}
-
-/* --- */
-
-/* same check needed for both object operation and restrict column button func
- * return 0 when in edit mode (cannot restrict view or select)
- * otherwise return 1 */
-static int common_restrict_check(bContext *C, Object *ob)
-{
-	/* Don't allow hide an object in edit mode,
-	 * check the bug #22153 and #21609, #23977
-	 */
-	Object *obedit= CTX_data_edit_object(C);
-	if (obedit && obedit == ob) {
-		/* found object is hidden, reset */
-		if (ob->restrictflag & OB_RESTRICT_VIEW)
-			ob->restrictflag &= ~OB_RESTRICT_VIEW;
-		/* found object is unselectable, reset */
-		if (ob->restrictflag & OB_RESTRICT_SELECT)
-			ob->restrictflag &= ~OB_RESTRICT_SELECT;
-		return 0;
-	}
-	
-	return 1;
-}
-
-static void object_toggle_visibility_cb(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem)
-{
-	Base *base= (Base *)te->directdata;
-	Object *ob = (Object *)tselem->id;
-	
-	/* add check for edit mode */
-	if(!common_restrict_check(C, ob)) return;
-	
-	if(base || (base= object_in_scene(ob, scene))) {
-		if((base->object->restrictflag ^= OB_RESTRICT_VIEW)) {
-			ED_base_object_select(base, BA_DESELECT);
-		}
-	}
-}
-
-static int outliner_toggle_visibility_exec(bContext *C, wmOperator *UNUSED(op))
-{
-	SpaceOops *soops= CTX_wm_space_outliner(C);
-	Scene *scene= CTX_data_scene(C);
-	ARegion *ar= CTX_wm_region(C);
-	
-	outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_visibility_cb);
-	
-	WM_event_add_notifier(C, NC_SCENE|ND_OB_VISIBLE, scene);
-	ED_region_tag_redraw(ar);
-	
-	return OPERATOR_FINISHED;
-}
-
-void OUTLINER_OT_visibility_toggle(wmOperatorType *ot)
-{
-	/* identifiers */
-	ot->name= "Toggle Visibility";
-	ot->idname= "OUTLINER_OT_visibility_toggle";
-	ot->description= "Toggle the visibility of selected items";
-	
-	/* callbacks */
-	ot->exec= outliner_toggle_visibility_exec;
-	ot->poll= ED_operator_outliner_active_no_editobject;
-	
-	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
-}
-
-/* --- */
-
-static void object_toggle_selectability_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem)
-{
-	Base *base= (Base *)te->directdata;
-	
-	if(base==NULL) base= object_in_scene((Object *)tselem->id, scene);
-	if(base) {
-		base->object->restrictflag^=OB_RESTRICT_SELECT;
-	}
-}
-
-static int outliner_toggle_selectability_exec(bContext *C, wmOperator *UNUSED(op))
-{
-	SpaceOops *soops= CTX_wm_space_outliner(C);
-	Scene *scene= CTX_data_scene(C);
-	ARegion *ar= CTX_wm_region(C);
-	
-	outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_selectability_cb);
-	
-	WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene);
-	ED_region_tag_redraw(ar);
-	
-	return OPERATOR_FINISHED;
-}
-
-void OUTLINER_OT_selectability_toggle(wmOperatorType *ot)
-{
-	/* identifiers */
-	ot->name= "Toggle Selectability";
-	ot->idname= "OUTLINER_OT_selectability_toggle";
-	ot->description= "Toggle the selectability";
-	
-	/* callbacks */
-	ot->exec= outliner_toggle_selectability_exec;
-	ot->poll= ED_operator_outliner_active_no_editobject;
-	
-	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
-}
-
-static void object_toggle_renderability_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem)
-{
-	Base *base= (Base *)te->directdata;
-	
-	if(base==NULL) base= object_in_scene((Object *)tselem->id, scene);
-	if(base) {
-		base->object->restrictflag^=OB_RESTRICT_RENDER;
-	}
-}
-
-static int outliner_toggle_renderability_exec(bContext *C, wmOperator *UNUSED(op))
-{
-	SpaceOops *soops= CTX_wm_space_outliner(C);
-	Scene *scene= CTX_data_scene(C);
-	ARegion *ar= CTX_wm_region(C);
-	
-	outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_renderability_cb);
-	
-	ED_region_tag_redraw(ar);
-	
-	return OPERATOR_FINISHED;
-}
-
-void OUTLINER_OT_renderability_toggle(wmOperatorType *ot)
-{
-	/* identifiers */
-	ot->name= "Toggle Renderability";
-	ot->idname= "OUTLINER_OT_renderability_toggle";
-	ot->description= "Toggle the renderability of selected items";
-	
-	/* callbacks */
-	ot->exec= outliner_toggle_renderability_exec;
-	ot->poll= ED_operator_outliner_active;
-	
-	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
-}
-
-/* --- */
-
-static int outliner_toggle_expanded_exec(bContext *C, wmOperator *UNUSED(op))
-{
-	SpaceOops *soops= CTX_wm_space_outliner(C);
-	ARegion *ar= CTX_wm_region(C);
-	
-	if (outliner_has_one_flag(soops, &soops->tree, TSE_CLOSED, 1))
-		outliner_set_flag(soops, &soops->tree, TSE_CLOSED, 0);
-	else 
-		outliner_set_flag(soops, &soops->tree, TSE_CLOSED, 1);
-	
-	ED_region_tag_redraw(ar);
-	
-	return OPERATOR_FINISHED;
-}
-
-void OUTLINER_OT_expanded_toggle(wmOperatorType *ot)
-{
-	/* identifiers */
-	ot->name= "Expand/Collapse All";
-	ot->idname= "OUTLINER_OT_expanded_toggle";
-	ot->description= "Expand/Collapse all items";
-	
-	/* callbacks */
-	ot->exec= outliner_toggle_expanded_exec;
-	ot->poll= ED_operator_outliner_active;
-	
-	/* no undo or registry, UI option */
-}
-
-/* --- */
-
-static int outliner_toggle_selected_exec(bContext *C, wmOperator *UNUSED(op))
-{
-	SpaceOops *soops= CTX_wm_space_outliner(C);
-	ARegion *ar= CTX_wm_region(C);
-	Scene *scene= CTX_data_scene(C);
-	
-	if (outliner_has_one_flag(soops, &soops->tree, TSE_SELECTED, 1))
-		outliner_set_flag(soops, &soops->tree, TSE_SELECTED, 0);
-	else 
-		outliner_set_flag(soops, &soops->tree, TSE_SELECTED, 1);
-	
-	soops->storeflag |= SO_TREESTORE_REDRAW;
-	
-	WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene);
-	ED_region_tag_redraw(ar);
-	
-	return OPERATOR_FINISHED;
-}
-
-void OUTLINER_OT_selected_toggle(wmOperatorType *ot)
-{
-	/* identifiers */
-	ot->name= "Toggle Selected";
-	ot->idname= "OUTLINER_OT_selected_toggle";
-	ot->description= "Toggle the Outliner selection of items";
-	
-	/* callbacks */
-	ot->exec= outliner_toggle_selected_exec;
-	ot->poll= ED_operator_outliner_active;
-	
-	/* no undo or registry, UI option */
-}
-
-/* --- */
-
-/* helper function for Show/Hide one level operator */
-static void outliner_openclose_level(SpaceOops *soops, ListBase *lb, int curlevel, int level, int open)
-{
-	TreeElement *te;
-	TreeStoreElem *tselem;
-	
-	for(te= lb->first; te; te= te->next) {
-		tselem= TREESTORE(te);
-		
-		if(open) {
-			if(curlevel<=level) tselem->flag &= ~TSE_CLOSED;
-		}
-		else {
-			if(curlevel>=level) tselem->flag |= TSE_CLOSED;
-		}
-		
-		outliner_openclose_level(soops, &te->subtree, curlevel+1, level, open);
-	}
-}
-
-static int outliner_one_level_exec(bContext *C, wmOperator *op)
-{
-	SpaceOops *soops= CTX_wm_space_outliner(C);
-	ARegion *ar= CTX_wm_region(C);
-	int add= RNA_boolean_get(op->ptr, "open");
-	int level;
-	
-	level= outliner_has_one_flag(soops, &soops->tree, TSE_CLOSED, 1);
-	if(add==1) {
-		if(level) outliner_openclose_level(soops, &soops->tree, 1, level, 1);
-	}
-	else {
-		if(level==0) level= outliner_count_levels(soops, &soops->tree, 0);
-		if(level) outliner_openclose_level(soops, &soops->tree, 1, level-1, 0);
-	}
-	
-	ED_region_tag_redraw(ar);
-	
-	return OPERATOR_FINISHED;
-}
-
-void OUTLINER_OT_show_one_level(wmOperatorType *ot)
-{
-	/* identifiers */
-	ot->name= "Show/Hide One Level";
-	ot->idname= "OUTLINER_OT_show_one_level";
-	ot->description= "Expand/collapse all entries by one level";
-	
-	/* callbacks */
-	ot->exec= outliner_one_level_exec;
-	ot->poll= ED_operator_outliner_active;
-	
-	/* no undo or registry, UI option */
-	
-	/* properties */
-	RNA_def_boolean(ot->srna, "open", 1, "Open", "Expand all entries one level deep.");
-}
-
-/* This is not used anywhere at the moment */
-#if 0
-/* return 1 when levels were opened */
-static int outliner_open_back(SpaceOops *soops, TreeElement *te)
-{
-	TreeStoreElem *tselem;
-	int retval= 0;
-	
-	for (te= te->parent; te; te= te->parent) {
-		tselem= TREESTORE(te);
-		if (tselem->flag & TSE_CLOSED) { 
-			tselem->flag &= ~TSE_CLOSED;
-			retval= 1;
-		}
-	}
-	return retval;
-}
-
-static void outliner_open_reveal(SpaceOops *soops, ListBase *lb, TreeElement *teFind, int *found)
-{
-	TreeElement *te;
-	TreeStoreElem *tselem;
-	
-	for (te= lb->first; te; te= te->next) {
-		/* check if this tree-element was the one we're seeking */
-		if (te == teFind) {
-			*found= 1;
-			return;
-		}
-		
-		/* try to see if sub-tree contains it then */
-		outliner_open_reveal(soops, &te->subtree, teFind, found);
-		if (*found) {
-			tselem= TREESTORE(te);
-			if (tselem->flag & TSE_CLOSED) 
-				tselem->flag &= ~TSE_CLOSED;
-			return;
-		}
-	}
-}
-#endif
-
-// XXX just use View2D ops for this?
-static void outliner_page_up_down(Scene *UNUSED(scene), ARegion *ar, SpaceOops *soops, int up)
-{
-	int dy= ar->v2d.mask.ymax-ar->v2d.mask.ymin;
-	
-	if(up == -1) dy= -dy;
-	ar->v2d.cur.ymin+= dy;
-	ar->v2d.cur.ymax+= dy;
-	
-	soops->storeflag |= SO_TREESTORE_REDRAW;
-}
-
-/* **** do clicks on items ******* */
-
-static int tree_element_active_renderlayer(bContext *C, TreeElement *te, TreeStoreElem *tselem, int set)
-{
-	Scene *sce;
-	
-	/* paranoia check */
-	if(te->idcode!=ID_SCE)
-		return 0;
-	sce= (Scene *)tselem->id;
-	
-	if(set) {
-		sce->r.actlay= tselem->nr;
-		WM_event_add_notifier(C, NC_SCENE|ND_RENDER_OPTIONS, sce);
-	}
-	else {
-		return sce->r.actlay==tselem->nr;
-	}
-	return 0;
-}
-
-static void tree_element_set_active_object(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set)
-{
-	TreeStoreElem *tselem= TREESTORE(te);
-	Scene *sce;
-	Base *base;
-	Object *ob= NULL;
-	
-	/* if id is not object, we search back */
-	if(te->idcode==ID_OB) ob= (Object *)tselem->id;
-	else {
-		ob= (Object *)outliner_search_back(soops, te, ID_OB);
-		if(ob==OBACT) return;
-	}
-	if(ob==NULL) return;
-	
-	sce= (Scene *)outliner_search_back(soops, te, ID_SCE);
-	if(sce && scene != sce) {
-		ED_screen_set_scene(C, sce);
-	}
-	
-	/* find associated base in current scene */
-	base= object_in_scene(ob, scene);
-
-	if(base) {
-		if(set==2) {
-			/* swap select */
-			if(base->flag & SELECT)
-				ED_base_object_select(base, BA_DESELECT);
-			else 
-				ED_base_object_select(base, BA_SELECT);
-		}
-		else {
-			/* deleselect all */
-			scene_deselect_all(scene);
-			ED_base_object_select(base, BA_SELECT);
-		}
-		if(C) {
-			ED_base_object_activate(C, base); /* adds notifier */
-			WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene);
-		}
-	}
-	
-	if(ob!=scene->obedit) 
-		ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR|EM_DO_UNDO);
-}
-
-static int tree_element_active_material(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set)
-{
-	TreeElement *tes;
-	Object *ob;
-	
-	/* we search for the object parent */
-	ob= (Object *)outliner_search_back(soops, te, ID_OB);
-	// note: ob->matbits can be NULL when a local object points to a library mesh.
-	if(ob==NULL || ob!=OBACT || ob->matbits==NULL) return 0;	// just paranoia
-	
-	/* searching in ob mat array? */
-	tes= te->parent;
-	if(tes->idcode==ID_OB) {
-		if(set) {
-			ob->actcol= te->index+1;
-			ob->matbits[te->index]= 1;	// make ob material active too
-			ob->colbits |= (1<<te->index);
-		}
-		else {
-			if(ob->actcol == te->index+1) 
-				if(ob->matbits[te->index]) return 1;
-		}
-	}
-	/* or we search for obdata material */
-	else {
-		if(set) {
-			ob->actcol= te->index+1;
-			ob->matbits[te->index]= 0;	// make obdata material active too
-			ob->colbits &= ~(1<<te->index);
-		}
-		else {
-			if(ob->actcol == te->index+1)
-				if(ob->matbits[te->index]==0) return 1;
-		}
-	}
-	if(set) {
-		WM_event_add_notifier(C, NC_MATERIAL|ND_SHADING, NULL);
-	}
-	return 0;
-}
-
-static int tree_element_active_texture(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set)
-{
-	TreeElement *tep;
-	TreeStoreElem /* *tselem,*/ *tselemp;
-	Object *ob=OBACT;
-	SpaceButs *sbuts=NULL;
-	
-	if(ob==NULL) return 0; // no active object
-	
-	/*tselem= TREESTORE(te);*/ /*UNUSED*/
-	
-	/* find buttons area (note, this is undefined really still, needs recode in blender) */
-	/* XXX removed finding sbuts */
-	
-	/* where is texture linked to? */
-	tep= te->parent;
-	tselemp= TREESTORE(tep);
-	
-	if(tep->idcode==ID_WO) {
-		World *wrld= (World *)tselemp->id;
-
-		if(set) {
-			if(sbuts) {
-				// XXX sbuts->tabo= TAB_SHADING_TEX;	// hack from header_buttonswin.c
-				// XXX sbuts->texfrom= 1;
-			}
-// XXX			extern_set_butspace(F6KEY, 0);	// force shading buttons texture
-			wrld->texact= te->index;
-		}
-		else if(tselemp->id == (ID *)(scene->world)) {
-			if(wrld->texact==te->index) return 1;
-		}
-	}
-	else if(tep->idcode==ID_LA) {
-		Lamp *la= (Lamp *)tselemp->id;
-		if(set) {
-			if(sbuts) {
-				// XXX sbuts->tabo= TAB_SHADING_TEX;	// hack from header_buttonswin.c
-				// XXX sbuts->texfrom= 2;
-			}
-// XXX			extern_set_butspace(F6KEY, 0);	// force shading buttons texture
-			la->texact= te->index;
-		}
-		else {
-			if(tselemp->id == ob->data) {
-				if(la->texact==te->index) return 1;
-			}
-		}
-	}
-	else if(tep->idcode==ID_MA) {
-		Material *ma= (Material *)tselemp->id;
-		if(set) {
-			if(sbuts) {
-				//sbuts->tabo= TAB_SHADING_TEX;	// hack from header_buttonswin.c
-				// XXX sbuts->texfrom= 0;
-			}
-// XXX			extern_set_butspace(F6KEY, 0);	// force shading buttons texture
-			ma->texact= (char)te->index;
-			
-			/* also set active material */
-			ob->actcol= tep->index+1;
-		}
-		else if(tep->flag & TE_ACTIVE) {	// this is active material
-			if(ma->texact==te->index) return 1;
-		}
-	}
-	
-	if(set)
-		WM_event_add_notifier(C, NC_TEXTURE, NULL);
-
-	return 0;
-}
-
-
-static int tree_element_active_lamp(bContext *UNUSED(C), Scene *scene, SpaceOops *soops, TreeElement *te, int set)
-{
-	Object *ob;
-	
-	/* we search for the object parent */
-	ob= (Object *)outliner_search_back(soops, te, ID_OB);
-	if(ob==NULL || ob!=OBACT) return 0;	// just paranoia
-	
-	if(set) {
-// XXX		extern_set_butspace(F5KEY, 0);
-	}
-	else return 1;
-	
-	return 0;
-}
-
-static int tree_element_active_camera(bContext *UNUSED(C), Scene *scene, SpaceOops *soops, TreeElement *te, int set)
-{
-	Object *ob= (Object *)outliner_search_back(soops, te, ID_OB);
-
-	if(set)
-		return 0;
-
-	return scene->camera == ob;
-}
-
-static int tree_element_active_world(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set)
-{
-	TreeElement *tep;
-	TreeStoreElem *tselem=NULL;
-	Scene *sce=NULL;
-	
-	tep= te->parent;
-	if(tep) {
-		tselem= TREESTORE(tep);
-		sce= (Scene *)tselem->id;
-	}
-	
-	if(set) {	// make new scene active
-		if(sce && scene != sce) {
-			ED_screen_set_scene(C, sce);
-		}
-	}
-	
-	if(tep==NULL || tselem->id == (ID *)scene) {
-		if(set) {
-// XXX			extern_set_butspace(F8KEY, 0);
-		}
-		else {
-			return 1;
-		}
-	}
-	return 0;
-}
-
-static int tree_element_active_defgroup(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set)
-{
-	Object *ob;
-	
-	/* id in tselem is object */
-	ob= (Object *)tselem->id;
-	if(set) {
-		ob->actdef= te->index+1;
-		DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
-		WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, ob);
-	}
-	else {
-		if(ob==OBACT)
-			if(ob->actdef== te->index+1) return 1;
-	}
-	return 0;
-}
-
-static int tree_element_active_posegroup(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set)
-{
-	Object *ob= (Object *)tselem->id;
-	
-	if(set) {
-		if (ob->pose) {
-			ob->pose->active_group= te->index+1;
-			WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
-		}
-	}
-	else {
-		if(ob==OBACT && ob->pose) {
-			if (ob->pose->active_group== te->index+1) return 1;
-		}
-	}
-	return 0;
-}
-
-static int tree_element_active_posechannel(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set)
-{
-	Object *ob= (Object *)tselem->id;
-	bArmature *arm= ob->data;
-	bPoseChannel *pchan= te->directdata;
-	
-	if(set) {
-		if(!(pchan->bone->flag & BONE_HIDDEN_P)) {
-			
-			if(set==2) ED_pose_deselectall(ob, 2);	// 2 = clear active tag
-			else ED_pose_deselectall(ob, 0);	// 0 = deselect 
-			
-			if(set==2 && (pchan->bone->flag & BONE_SELECTED)) {
-				pchan->bone->flag &= ~BONE_SELECTED;
-			} else {
-				pchan->bone->flag |= BONE_SELECTED;
-				arm->act_bone= pchan->bone;
-			}
-			
-			WM_event_add_notifier(C, NC_OBJECT|ND_BONE_ACTIVE, ob);
-
-		}
-	}
-	else {
-		if(ob==OBACT && ob->pose) {
-			if (pchan->bone->flag & BONE_SELECTED) return 1;
-		}
-	}
-	return 0;
-}
-
-static int tree_element_active_bone(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set)
-{
-	bArmature *arm= (bArmature *)tselem->id;
-	Bone *bone= te->directdata;
-	
-	if(set) {
-		if(!(bone->flag & BONE_HIDDEN_P)) {
-			if(set==2) ED_pose_deselectall(OBACT, 2);	// 2 is clear active tag
-			else ED_pose_deselectall(OBACT, 0);
-			
-			if(set==2 && (bone->flag & BONE_SELECTED)) {
-				bone->flag &= ~BONE_SELECTED;
-			} else {
-				bone->flag |= BONE_SELECTED;
-				arm->act_bone= bone;
-			}
-			
-			WM_event_add_notifier(C, NC_OBJECT|ND_BONE_ACTIVE, OBACT);
-		}
-	}
-	else {
-		Object *ob= OBACT;
-		
-		if(ob && ob->data==arm) {
-			if (bone->flag & BONE_SELECTED) return 1;
-		}
-	}
-	return 0;
-}
-
-
-/* ebones only draw in editmode armature */
-static void tree_element_active_ebone__sel(bContext *C, Scene *scene, bArmature *arm, EditBone *ebone, short sel)
-{
-	if(sel) {
-		ebone->flag |= BONE_SELECTED|BONE_ROOTSEL|BONE_TIPSEL;
-		arm->act_edbone= ebone;
-		// flush to parent?
-		if(ebone->parent && (ebone->flag & BONE_CONNECTED)) ebone->parent->flag |= BONE_TIPSEL;
-	}
-	else {
-		ebone->flag &= ~(BONE_SELECTED|BONE_ROOTSEL|BONE_TIPSEL);
-		// flush to parent?
-		if(ebone->parent && (ebone->flag & BONE_CONNECTED)) ebone->parent->flag &= ~BONE_TIPSEL;
-	}
-
-	WM_event_add_notifier(C, NC_OBJECT|ND_BONE_ACTIVE, scene->obedit);
-}
-static int tree_element_active_ebone(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tselem), int set)
-{
-	bArmature *arm= scene->obedit->data;
-	EditBone *ebone= te->directdata;
-
-	if(set==1) {
-		if(!(ebone->flag & BONE_HIDDEN_A)) {
-			ED_armature_deselect_all(scene->obedit, 0);	// deselect
-			tree_element_active_ebone__sel(C, scene, arm, ebone, TRUE);
-			return 1;
-		}
-	}
-	else if (set==2) {
-		if(!(ebone->flag & BONE_HIDDEN_A)) {
-			if(!(ebone->flag & BONE_SELECTED)) {
-				tree_element_active_ebone__sel(C, scene, arm, ebone, TRUE);
-				return 1;
-			}
-			else {
-				/* entirely selected, so de-select */
-				tree_element_active_ebone__sel(C, scene, arm, ebone, FALSE);
-				return 0;
-			}
-		}
-	}
-	else if (ebone->flag & BONE_SELECTED) {
-		return 1;
-	}
-	return 0;
-}
-
-static int tree_element_active_modifier(bContext *C, TreeElement *UNUSED(te), TreeStoreElem *tselem, int set)
-{
-	if(set) {
-		Object *ob= (Object *)tselem->id;
-		
-		WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob);
-
-// XXX		extern_set_butspace(F9KEY, 0);
-	}
-	
-	return 0;
-}
-
-static int tree_element_active_psys(bContext *C, Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *tselem, int set)
-{
-	if(set) {
-		Object *ob= (Object *)tselem->id;
-		
-		WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_EDITED, ob);
-		
-// XXX		extern_set_butspace(F7KEY, 0);
-	}
-	
-	return 0;
-}
-
-static int tree_element_active_constraint(bContext *C, TreeElement *UNUSED(te), TreeStoreElem *tselem, int set)
-{
-	if(set) {
-		Object *ob= (Object *)tselem->id;
-		
-		WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT, ob);
-// XXX		extern_set_butspace(F7KEY, 0);
-	}
-	
-	return 0;
-}
-
-static int tree_element_active_text(bContext *UNUSED(C), Scene *UNUSED(scene), SpaceOops *UNUSED(soops), TreeElement *UNUSED(te), int UNUSED(set))
-{
-	// XXX removed
-	return 0;
-}
-
-/* generic call for ID data check or make/check active in UI */
-static int tree_element_active(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set)
-{
-
-	switch(te->idcode) {
-		case ID_MA:
-			return tree_element_active_material(C, scene, soops, te, set);
-		case ID_WO:
-			return tree_element_active_world(C, scene, soops, te, set);
-		case ID_LA:
-			return tree_element_active_lamp(C, scene, soops, te, set);
-		case ID_TE:
-			return tree_element_active_texture(C, scene, soops, te, set);
-		case ID_TXT:
-			return tree_element_active_text(C, scene, soops, te, set);
-		case ID_CA:
-			return tree_element_active_camera(C, scene, soops, te, set);
-	}
-	return 0;
-}
-
-static int tree_element_active_pose(bContext *C, Scene *scene, TreeElement *UNUSED(te), TreeStoreElem *tselem, int set)
-{
-	Object *ob= (Object *)tselem->id;
-	Base *base= object_in_scene(ob, scene);
-	
-	if(set) {
-		if(scene->obedit) 
-			ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR|EM_DO_UNDO);
-		
-		if(ob->mode & OB_MODE_POSE) 
-			ED_armature_exit_posemode(C, base);
-		else 
-			ED_armature_enter_posemode(C, base);
-	}
-	else {
-		if(ob->mode & OB_MODE_POSE) return 1;
-	}
-	return 0;
-}
-
-static int tree_element_active_sequence(TreeElement *te, TreeStoreElem *UNUSED(tselem), int set)
-{
-	Sequence *seq= (Sequence*) te->directdata;
-
-	if(set) {
-// XXX		select_single_seq(seq, 1);
-	}
-	else {
-		if(seq->flag & SELECT)
-			return(1);
-	}
-	return(0);
-}
-
-static int tree_element_active_sequence_dup(Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tselem), int set)
-{
-	Sequence *seq, *p;
-	Editing *ed= seq_give_editing(scene, FALSE);
-
-	seq= (Sequence*)te->directdata;
-	if(set==0) {
-		if(seq->flag & SELECT)
-			return(1);
-		return(0);
-	}
-
-// XXX	select_single_seq(seq, 1);
-	p= ed->seqbasep->first;
-	while(p) {
-		if((!p->strip) || (!p->strip->stripdata) || (!p->strip->stripdata->name)) {
-			p= p->next;
-			continue;
-		}
-
-//		if(!strcmp(p->strip->stripdata->name, seq->strip->stripdata->name))
-// XXX			select_single_seq(p, 0);
-		p= p->next;
-	}
-	return(0);
-}
-
-static int tree_element_active_keymap_item(bContext *UNUSED(C), TreeElement *te, TreeStoreElem *UNUSED(tselem), int set)
-{
-	wmKeyMapItem *kmi= te->directdata;
-	
-	if(set==0) {
-		if(kmi->flag & KMI_INACTIVE) return 0;
-		return 1;
-	}
-	else {
-		kmi->flag ^= KMI_INACTIVE;
-	}
-	return 0;
-}
-
-
-/* generic call for non-id data to make/check active in UI */
-/* Context can be NULL when set==0 */
-static int tree_element_type_active(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, TreeStoreElem *tselem, int set)
-{
-	switch(tselem->type) {
-		case TSE_DEFGROUP:
-			return tree_element_active_defgroup(C, scene, te, tselem, set);
-		case TSE_BONE:
-			return tree_element_active_bone(C, scene, te, tselem, set);
-		case TSE_EBONE:
-			return tree_element_active_ebone(C, scene, te, tselem, set);
-		case TSE_MODIFIER:
-			return tree_element_active_modifier(C, te, tselem, set);
-		case TSE_LINKED_OB:
-			if(set) tree_element_set_active_object(C, scene, soops, te, set);
-			else if(tselem->id==(ID *)OBACT) return 1;
-			break;
-		case TSE_LINKED_PSYS:
-			return tree_element_active_psys(C, scene, te, tselem, set);
-		case TSE_POSE_BASE:
-			return tree_element_active_pose(C, scene, te, tselem, set);
-		case TSE_POSE_CHANNEL:
-			return tree_element_active_posechannel(C, scene, te, tselem, set);
-		case TSE_CONSTRAINT:
-			return tree_element_active_constraint(C, te, tselem, set);
-		case TSE_R_LAYER:
-			return tree_element_active_renderlayer(C, te, tselem, set);
-		case TSE_POSEGRP:
-			return tree_element_active_posegroup(C, scene, te, tselem, set);
-		case TSE_SEQUENCE:
-			return tree_element_active_sequence(te, tselem, set);
-		case TSE_SEQUENCE_DUP:
-			return tree_element_active_sequence_dup(scene, te, tselem, set);
-		case TSE_KEYMAP_ITEM:
-			return tree_element_active_keymap_item(C, te, tselem, set);
-			
-	}
-	return 0;
-}
-
-static int do_outliner_item_activate(bContext *C, Scene *scene, ARegion *ar, SpaceOops *soops, TreeElement *te, int extend, const float mval[2])
-{
-	
-	if(mval[1]>te->ys && mval[1]<te->ys+UI_UNIT_Y) {
-		TreeStoreElem *tselem= TREESTORE(te);
-		int openclose= 0;
-
-		/* open close icon */
-		if((te->flag & TE_ICONROW)==0) {				// hidden icon, no open/close
-			if( mval[0]>te->xs && mval[0]<te->xs+UI_UNIT_X) 
-				openclose= 1;
-		}
-
-		if(openclose) {
-			/* all below close/open? */
-			if(extend) {
-				tselem->flag &= ~TSE_CLOSED;
-				outliner_set_flag(soops, &te->subtree, TSE_CLOSED, !outliner_has_one_flag(soops, &te->subtree, TSE_CLOSED, 1));
-			}
-			else {
-				if(tselem->flag & TSE_CLOSED) tselem->flag &= ~TSE_CLOSED;
-				else tselem->flag |= TSE_CLOSED;
-				
-			}
-
-			return 1;
-		}
-		/* name and first icon */
-		else if(mval[0]>te->xs+UI_UNIT_X && mval[0]<te->xend) {
-			
-			/* always makes active object */
-			if(tselem->type!=TSE_SEQUENCE && tselem->type!=TSE_SEQ_STRIP && tselem->type!=TSE_SEQUENCE_DUP)
-				tree_element_set_active_object(C, scene, soops, te, 1 + (extend!=0 && tselem->type==0));
-			
-			if(tselem->type==0) { // the lib blocks
-				/* editmode? */
-				if(te->idcode==ID_SCE) {
-					if(scene!=(Scene *)tselem->id) {
-						ED_screen_set_scene(C, (Scene *)tselem->id);
-					}
-				}
-				else if(te->idcode==ID_GR) {
-					Group *gr= (Group *)tselem->id;
-					GroupObject *gob;
-
-					if(extend) {
-						int sel= BA_SELECT;
-						for(gob= gr->gobject.first; gob; gob= gob->next) {
-							if(gob->ob->flag & SELECT) {
-								sel= BA_DESELECT;
-								break;
-							}
-						}
-
-						for(gob= gr->gobject.first; gob; gob= gob->next) {
-							ED_base_object_select(object_in_scene(gob->ob, scene), sel);
-						}
-					}
-					else {
-						scene_deselect_all(scene);
-
-						for(gob= gr->gobject.first; gob; gob= gob->next) {
-							if((gob->ob->flag & SELECT) == 0)
-								ED_base_object_select(object_in_scene(gob->ob, scene), BA_SELECT);
-						}
-					}
-
-					WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene);
-				}
-				else if(ELEM5(te->idcode, ID_ME, ID_CU, ID_MB, ID_LT, ID_AR)) {
-					WM_operator_name_call(C, "OBJECT_OT_editmode_toggle", WM_OP_INVOKE_REGION_WIN, NULL);
-				} else {	// rest of types
-					tree_element_active(C, scene, soops, te, 1);
-				}
-				
-			}
-			else tree_element_type_active(C, scene, soops, te, tselem, 1+(extend!=0));
-
-			return 1;
-		}
-	}
-	
-	for(te= te->subtree.first; te; te= te->next) {
-		if(do_outliner_item_activate(C, scene, ar, soops, te, extend, mval)) return 1;
-	}
-	return 0;
-}
-
-/* event can enterkey, then it opens/closes */
-static int outliner_item_activate(bContext *C, wmOperator *op, wmEvent *event)
-{
-	Scene *scene= CTX_data_scene(C);
-	ARegion *ar= CTX_wm_region(C);
-	SpaceOops *soops= CTX_wm_space_outliner(C);
-	TreeElement *te;
-	float fmval[2];
-	int extend= RNA_boolean_get(op->ptr, "extend");
-
-	UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], fmval, fmval+1);
-
-	if(!ELEM3(soops->outlinevis, SO_DATABLOCKS, SO_USERDEF, SO_KEYMAP) && !(soops->flag & SO_HIDE_RESTRICTCOLS) && fmval[0] > ar->v2d.cur.xmax - OL_TOG_RESTRICT_VIEWX)
-		return OPERATOR_CANCELLED;
-
-	for(te= soops->tree.first; te; te= te->next) {
-		if(do_outliner_item_activate(C, scene, ar, soops, te, extend, fmval)) break;
-	}
-	
-	if(te) {
-		ED_undo_push(C, "Outliner click event");
-	}
-	else {
-		short selecting= -1;
-		int row;
-		
-		/* get row number - 100 here is just a dummy value since we don't need the column */
-		UI_view2d_listview_view_to_cell(&ar->v2d, 1000, UI_UNIT_Y, 0.0f, OL_Y_OFFSET, 
-						fmval[0], fmval[1], NULL, &row);
-		
-		/* select relevant row */
-		outliner_select(soops, &soops->tree, &row, &selecting);
-		
-		soops->storeflag |= SO_TREESTORE_REDRAW;
-		
-		ED_undo_push(C, "Outliner selection event");
-	}
-	
-	ED_region_tag_redraw(ar);
-
-	return OPERATOR_FINISHED;
-}
-
-void OUTLINER_OT_item_activate(wmOperatorType *ot)
-{
-	ot->name= "Activate Item";
-	ot->idname= "OUTLINER_OT_item_activate";
-	ot->description= "Handle mouse clicks to activate/select items";
-	
-	ot->invoke= outliner_item_activate;
-	
-	ot->poll= ED_operator_outliner_active;
-	
-	RNA_def_boolean(ot->srna, "extend", 1, "Extend", "Extend selection for activation.");
-}
-
-/* *********** */
-
-static int do_outliner_item_openclose(bContext *C, SpaceOops *soops, TreeElement *te, int all, const float mval[2])
-{
-	
-	if(mval[1]>te->ys && mval[1]<te->ys+UI_UNIT_Y) {
-		TreeStoreElem *tselem= TREESTORE(te);
-
-		/* all below close/open? */
-		if(all) {
-			tselem->flag &= ~TSE_CLOSED;
-			outliner_set_flag(soops, &te->subtree, TSE_CLOSED, !outliner_has_one_flag(soops, &te->subtree, TSE_CLOSED, 1));
-		}
-		else {
-			if(tselem->flag & TSE_CLOSED) tselem->flag &= ~TSE_CLOSED;
-			else tselem->flag |= TSE_CLOSED;
-		}
-
-		return 1;
-	}
-	
-	for(te= te->subtree.first; te; te= te->next) {
-		if(do_outliner_item_openclose(C, soops, te, all, mval)) 
-			return 1;
-	}
-	return 0;
-	
-}
-
-/* event can enterkey, then it opens/closes */
-static int outliner_item_openclose(bContext *C, wmOperator *op, wmEvent *event)
-{
-	ARegion *ar= CTX_wm_region(C);
-	SpaceOops *soops= CTX_wm_space_outliner(C);
-	TreeElement *te;
-	float fmval[2];
-	int all= RNA_boolean_get(op->ptr, "all");
-	
-	UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], fmval, fmval+1);
-	
-	for(te= soops->tree.first; te; te= te->next) {
-		if(do_outliner_item_openclose(C, soops, te, all, fmval)) 
-			break;
-	}
-
-	ED_region_tag_redraw(ar);
-	
-	return OPERATOR_FINISHED;
-}
-
-void OUTLINER_OT_item_openclose(wmOperatorType *ot)
-{
-	ot->name= "Open/Close Item";
-	ot->idname= "OUTLINER_OT_item_openclose";
-	ot->description= "Toggle whether item under cursor is enabled or closed";
-	
-	ot->invoke= outliner_item_openclose;
-	
-	ot->poll= ED_operator_outliner_active;
-	
-	RNA_def_boolean(ot->srna, "all", 1, "All", "Close or open all items.");
-
-}
-
-
-/* ********************************************** */
-
-static int do_outliner_item_rename(bContext *C, ARegion *ar, SpaceOops *soops, TreeElement *te, const float mval[2])
-{
-	
-	if(mval[1]>te->ys && mval[1]<te->ys+UI_UNIT_Y) {
-		TreeStoreElem *tselem= TREESTORE(te);
-		
-		/* name and first icon */
-		if(mval[0]>te->xs+UI_UNIT_X && mval[0]<te->xend) {
-			
-			/* can't rename rna datablocks entries */
-			if(ELEM3(tselem->type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM))
-			   ;
-			else if(ELEM10(tselem->type, TSE_ANIM_DATA, TSE_NLA, TSE_DEFGROUP_BASE, TSE_CONSTRAINT_BASE, TSE_MODIFIER_BASE, TSE_SCRIPT_BASE, TSE_POSE_BASE, TSE_POSEGRP_BASE, TSE_R_LAYER_BASE, TSE_R_PASS)) 
-					error("Cannot edit builtin name");
-			else if(ELEM3(tselem->type, TSE_SEQUENCE, TSE_SEQ_STRIP, TSE_SEQUENCE_DUP))
-				error("Cannot edit sequence name");
-			else if(tselem->id->lib) {
-				// XXX						error_libdata();
-			} 
-			else if(te->idcode == ID_LI && te->parent) {
-				error("Cannot edit the path of an indirectly linked library");
-			} 
-			else {
-				tselem->flag |= TSE_TEXTBUT;
-				ED_region_tag_redraw(ar);
-			}
-		}
-		return 1;
-	}
-	
-	for(te= te->subtree.first; te; te= te->next) {
-		if(do_outliner_item_rename(C, ar, soops, te, mval)) return 1;
-	}
-	return 0;
-}
-
-static int outliner_item_rename(bContext *C, wmOperator *UNUSED(op), wmEvent *event)
-{
-	ARegion *ar= CTX_wm_region(C);
-	SpaceOops *soops= CTX_wm_space_outliner(C);
-	TreeElement *te;
-	float fmval[2];
-	
-	UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], fmval, fmval+1);
-	
-	for(te= soops->tree.first; te; te= te->next) {
-		if(do_outliner_item_rename(C, ar, soops, te, fmval)) break;
-	}
-	
-	return OPERATOR_FINISHED;
-}
-
-
-void OUTLINER_OT_item_rename(wmOperatorType *ot)
-{
-	ot->name= "Rename Item";
-	ot->idname= "OUTLINER_OT_item_rename";
-	ot->description= "Rename item under cursor";
-	
-	ot->invoke= outliner_item_rename;
-	
-	ot->poll= ED_operator_outliner_active;
-}
-
-static TreeElement *outliner_find_id(SpaceOops *soops, ListBase *lb, ID *id)
-{
-	TreeElement *te, *tes;
-	TreeStoreElem *tselem;
-	
-	for(te= lb->first; te; te= te->next) {
-		tselem= TREESTORE(te);
-		if(tselem->type==0) {
-			if(tselem->id==id) return te;
-			/* only deeper on scene or object */
-			if( te->idcode==ID_OB || te->idcode==ID_SCE || (soops->outlinevis == SO_GROUPS && te->idcode==ID_GR)) {
-				tes= outliner_find_id(soops, &te->subtree, id);
-				if(tes) return tes;
-			}
-		}
-	}
-	return NULL;
-}
-
-static int outliner_show_active_exec(bContext *C, wmOperator *UNUSED(op))
-{
-	SpaceOops *so= CTX_wm_space_outliner(C);
-	Scene *scene= CTX_data_scene(C);
-	ARegion *ar= CTX_wm_region(C);
-	View2D *v2d= &ar->v2d;
-	
-	TreeElement *te;
-	int xdelta, ytop;
-	
-	// TODO: make this get this info from context instead...
-	if (OBACT == NULL) 
-		return OPERATOR_CANCELLED;
-	
-	te= outliner_find_id(so, &so->tree, (ID *)OBACT);
-	if (te) {
-		/* make te->ys center of view */
-		ytop= (int)(te->ys + (v2d->mask.ymax - v2d->mask.ymin)/2);
-		if (ytop>0) ytop= 0;
-		
-		v2d->cur.ymax= (float)ytop;
-		v2d->cur.ymin= (float)(ytop-(v2d->mask.ymax - v2d->mask.ymin));
-		
-		/* make te->xs ==> te->xend center of view */
-		xdelta = (int)(te->xs - v2d->cur.xmin);
-		v2d->cur.xmin += xdelta;
-		v2d->cur.xmax += xdelta;
-		
-		so->storeflag |= SO_TREESTORE_REDRAW;
-	}
-	
-	ED_region_tag_redraw(ar);
-	
-	return OPERATOR_FINISHED;
-}
-
-void OUTLINER_OT_show_active(wmOperatorType *ot)
-{
-	/* identifiers */
-	ot->name= "Show Active";
-	ot->idname= "OUTLINER_OT_show_active";
-	ot->description= "Adjust the view so that the active Object is shown centered";
-	
-	/* callbacks */
-	ot->exec= outliner_show_active_exec;
-	ot->poll= ED_operator_outliner_active;
-}
-
-/* tse is not in the treestore, we use its contents to find a match */
-static TreeElement *outliner_find_tse(SpaceOops *soops, TreeStoreElem *tse)
-{
-	TreeStore *ts= soops->treestore;
-	TreeStoreElem *tselem;
-	int a;
-	
-	if(tse->id==NULL) return NULL;
-	
-	/* check if 'tse' is in treestore */
-	tselem= ts->data;
-	for(a=0; a<ts->usedelem; a++, tselem++) {
-		if((tse->type==0 && tselem->type==0) || (tselem->type==tse->type && tselem->nr==tse->nr)) {
-			if(tselem->id==tse->id) {
-				break;
-			}
-		}
-	}
-	if(tselem) 
-		return outliner_find_tree_element(&soops->tree, a);
-	
-	return NULL;
-}
-
-
-/* Called to find an item based on name.
- */
-#if 0
-
-/* recursive helper for function below */
-static void outliner_set_coordinates_element(SpaceOops *soops, TreeElement *te, int startx, int *starty)
-{
-	TreeStoreElem *tselem= TREESTORE(te);
-	
-	/* store coord and continue, we need coordinates for elements outside view too */
-	te->xs= (float)startx;
-	te->ys= (float)(*starty);
-	*starty-= UI_UNIT_Y;
-	
-	if((tselem->flag & TSE_CLOSED)==0) {
-		TreeElement *ten;
-		for(ten= te->subtree.first; ten; ten= ten->next) {
-			outliner_set_coordinates_element(soops, ten, startx+UI_UNIT_X, starty);
-		}
-	}
-	
-}
-
-/* to retrieve coordinates with redrawing the entire tree */
-static void outliner_set_coordinates(ARegion *ar, SpaceOops *soops)
-{
-	TreeElement *te;
-	int starty= (int)(ar->v2d.tot.ymax)-UI_UNIT_Y;
-	int startx= 0;
-	
-	for(te= soops->tree.first; te; te= te->next) {
-		outliner_set_coordinates_element(soops, te, startx, &starty);
-	}
-}
-
-/* find next element that has this name */
-static TreeElement *outliner_find_named(SpaceOops *soops, ListBase *lb, char *name, int flags, TreeElement *prev, int *prevFound)
-{
-	TreeElement *te, *tes;
-	
-	for (te= lb->first; te; te= te->next) {
-		int found = outliner_filter_has_name(te, name, flags);
-		
-		if(found) {
-			/* name is right, but is element the previous one? */
-			if (prev) {
-				if ((te != prev) && (*prevFound)) 
-					return te;
-				if (te == prev) {
-					*prevFound = 1;
-				}
-			}
-			else
-				return te;
-		}
-		
-		tes= outliner_find_named(soops, &te->subtree, name, flags, prev, prevFound);
-		if(tes) return tes;
-	}
-
-	/* nothing valid found */
-	return NULL;
-}
-
-static void outliner_find_panel(Scene *UNUSED(scene), ARegion *ar, SpaceOops *soops, int again, int flags) 
-{
-	TreeElement *te= NULL;
-	TreeElement *last_find;
-	TreeStoreElem *tselem;
-	int ytop, xdelta, prevFound=0;
-	char name[32];
-	
-	/* get last found tree-element based on stored search_tse */
-	last_find= outliner_find_tse(soops, &soops->search_tse);
-	
-	/* determine which type of search to do */
-	if (again && last_find) {
-		/* no popup panel - previous + user wanted to search for next after previous */		
-		BLI_strncpy(name, soops->search_string, sizeof(name));
-		flags= soops->search_flags;
-		
-		/* try to find matching element */
-		te= outliner_find_named(soops, &soops->tree, name, flags, last_find, &prevFound);
-		if (te==NULL) {
-			/* no more matches after previous, start from beginning again */
-			prevFound= 1;
-			te= outliner_find_named(soops, &soops->tree, name, flags, last_find, &prevFound);
-		}
-	}
-	else {
-		/* pop up panel - no previous, or user didn't want search after previous */
-		strcpy(name, "");
-// XXX		if (sbutton(name, 0, sizeof(name)-1, "Find: ") && name[0]) {
-//			te= outliner_find_named(soops, &soops->tree, name, flags, NULL, &prevFound);
-//		}
-//		else return; /* XXX RETURN! XXX */
-	}
-
-	/* do selection and reveal */
-	if (te) {
-		tselem= TREESTORE(te);
-		if (tselem) {
-			/* expand branches so that it will be visible, we need to get correct coordinates */
-			if( outliner_open_back(soops, te))
-				outliner_set_coordinates(ar, soops);
-			
-			/* deselect all visible, and select found element */
-			outliner_set_flag(soops, &soops->tree, TSE_SELECTED, 0);
-			tselem->flag |= TSE_SELECTED;
-			
-			/* make te->ys center of view */
-			ytop= (int)(te->ys + (ar->v2d.mask.ymax-ar->v2d.mask.ymin)/2);
-			if(ytop>0) ytop= 0;
-			ar->v2d.cur.ymax= (float)ytop;
-			ar->v2d.cur.ymin= (float)(ytop-(ar->v2d.mask.ymax-ar->v2d.mask.ymin));
-			
-			/* make te->xs ==> te->xend center of view */
-			xdelta = (int)(te->xs - ar->v2d.cur.xmin);
-			ar->v2d.cur.xmin += xdelta;
-			ar->v2d.cur.xmax += xdelta;
-			
-			/* store selection */
-			soops->search_tse= *tselem;
-			
-			BLI_strncpy(soops->search_string, name, 33);
-			soops->search_flags= flags;
-			
-			/* redraw */
-			soops->storeflag |= SO_TREESTORE_REDRAW;
-		}
-	}
-	else {
-		/* no tree-element found */
-		error("Not found: %s", name);
-	}
-}
-#endif
-
-/* helper function for tree_element_shwo_hierarchy() - recursively checks whether subtrees have any objects*/
-static int subtree_has_objects(SpaceOops *soops, ListBase *lb)
-{
-	TreeElement *te;
-	TreeStoreElem *tselem;
-	
-	for(te= lb->first; te; te= te->next) {
-		tselem= TREESTORE(te);
-		if(tselem->type==0 && te->idcode==ID_OB) return 1;
-		if( subtree_has_objects(soops, &te->subtree)) return 1;
-	}
-	return 0;
-}
-
-/* recursive helper function for Show Hierarchy operator */
-static void tree_element_show_hierarchy(Scene *scene, SpaceOops *soops, ListBase *lb)
-{
-	TreeElement *te;
-	TreeStoreElem *tselem;
-
-	/* open all object elems, close others */
-	for(te= lb->first; te; te= te->next) {
-		tselem= TREESTORE(te);
-		
-		if(tselem->type==0) {
-			if(te->idcode==ID_SCE) {
-				if(tselem->id!=(ID *)scene) tselem->flag |= TSE_CLOSED;
-					else tselem->flag &= ~TSE_CLOSED;
-			}
-			else if(te->idcode==ID_OB) {
-				if(subtree_has_objects(soops, &te->subtree)) tselem->flag &= ~TSE_CLOSED;
-				else tselem->flag |= TSE_CLOSED;
-			}
-		}
-		else tselem->flag |= TSE_CLOSED;
-		
-		if(tselem->flag & TSE_CLOSED); else tree_element_show_hierarchy(scene, soops, &te->subtree);
-	}
-}
-
-/* show entire object level hierarchy */
-static int outliner_show_hierarchy_exec(bContext *C, wmOperator *UNUSED(op))
-{
-	SpaceOops *soops= CTX_wm_space_outliner(C);
-	ARegion *ar= CTX_wm_region(C);
-	Scene *scene= CTX_data_scene(C);
-	
-	/* recursively open/close levels */
-	tree_element_show_hierarchy(scene, soops, &soops->tree);
-	
-	ED_region_tag_redraw(ar);
-	
-	return OPERATOR_FINISHED;
-}
-
-void OUTLINER_OT_show_hierarchy(wmOperatorType *ot)
-{
-	/* identifiers */
-	ot->name= "Show Hierarchy";
-	ot->idname= "OUTLINER_OT_show_hierarchy";
-	ot->description= "Open all object entries and close all others";
-	
-	/* callbacks */
-	ot->exec= outliner_show_hierarchy_exec;
-	ot->poll= ED_operator_outliner_active; //  TODO: shouldn't be allowed in RNA views...
-	
-	/* no undo or registry, UI option */
-}
-
-void outliner_select(SpaceOops *soops, ListBase *lb, int *index, short *selecting)
-{
-	TreeElement *te;
-	TreeStoreElem *tselem;
-	
-	for (te= lb->first; te && *index >= 0; te=te->next, (*index)--) {
-		tselem= TREESTORE(te);
-		
-		/* if we've encountered the right item, set its 'Outliner' selection status */
-		if (*index == 0) {
-			/* this should be the last one, so no need to do anything with index */
-			if ((te->flag & TE_ICONROW)==0) {
-				/* -1 value means toggle testing for now... */
-				if (*selecting == -1) {
-					if (tselem->flag & TSE_SELECTED) 
-						*selecting= 0;
-					else 
-						*selecting= 1;
-				}
-				
-				/* set selection */
-				if (*selecting) 
-					tselem->flag |= TSE_SELECTED;
-				else 
-					tselem->flag &= ~TSE_SELECTED;
-			}
-		}
-		else if ((tselem->flag & TSE_CLOSED)==0) {
-			/* Only try selecting sub-elements if we haven't hit the right element yet
-			 *
-			 * Hack warning:
-			 * 	Index must be reduced before supplying it to the sub-tree to try to do
-			 * 	selection, however, we need to increment it again for the next loop to 
-			 * 	function correctly
-			 */
-			(*index)--;
-			outliner_select(soops, &te->subtree, index, selecting);
-			(*index)++;
-		}
-	}
-}
-
-/* ************ SELECTION OPERATIONS ********* */
-
-static void set_operation_types(SpaceOops *soops, ListBase *lb,
-				int *scenelevel,
-				int *objectlevel,
-				int *idlevel,
-				int *datalevel)
-{
-	TreeElement *te;
-	TreeStoreElem *tselem;
-	
-	for(te= lb->first; te; te= te->next) {
-		tselem= TREESTORE(te);
-		if(tselem->flag & TSE_SELECTED) {
-			if(tselem->type) {
-				if(*datalevel==0) 
-					*datalevel= tselem->type;
-				else if(*datalevel!=tselem->type) 
-					*datalevel= -1;
-			}
-			else {
-				int idcode= GS(tselem->id->name);
-				switch(idcode) {
-					case ID_SCE:
-						*scenelevel= 1;
-						break;
-					case ID_OB:
-						*objectlevel= 1;
-						break;
-						
-					case ID_ME: case ID_CU: case ID_MB: case ID_LT:
-					case ID_LA: case ID_AR: case ID_CA:
-					case ID_MA: case ID_TE: case ID_IP: case ID_IM:
-					case ID_SO: case ID_KE: case ID_WO: case ID_AC:
-					case ID_NLA: case ID_TXT: case ID_GR:
-						if(*idlevel==0) *idlevel= idcode;
-						else if(*idlevel!=idcode) *idlevel= -1;
-							break;
-				}
-			}
-		}
-		if((tselem->flag & TSE_CLOSED)==0) {
-			set_operation_types(soops, &te->subtree,
-								scenelevel, objectlevel, idlevel, datalevel);
-		}
-	}
-}
-
-static void unlink_material_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *UNUSED(tselem))
-{
-	Material **matar=NULL;
-	int a, totcol=0;
-	
-	if( GS(tsep->id->name)==ID_OB) {
-		Object *ob= (Object *)tsep->id;
-		totcol= ob->totcol;
-		matar= ob->mat;
-	}
-	else if( GS(tsep->id->name)==ID_ME) {
-		Mesh *me= (Mesh *)tsep->id;
-		totcol= me->totcol;
-		matar= me->mat;
-	}
-	else if( GS(tsep->id->name)==ID_CU) {
-		Curve *cu= (Curve *)tsep->id;
-		totcol= cu->totcol;
-		matar= cu->mat;
-	}
-	else if( GS(tsep->id->name)==ID_MB) {
-		MetaBall *mb= (MetaBall *)tsep->id;
-		totcol= mb->totcol;
-		matar= mb->mat;
-	}
-
-	for(a=0; a<totcol; a++) {
-		if(a==te->index && matar[a]) {
-			matar[a]->id.us--;
-			matar[a]= NULL;
-		}
-	}
-}
-
-static void unlink_texture_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *UNUSED(tselem))
-{
-	MTex **mtex= NULL;
-	int a;
-	
-	if( GS(tsep->id->name)==ID_MA) {
-		Material *ma= (Material *)tsep->id;
-		mtex= ma->mtex;
-	}
-	else if( GS(tsep->id->name)==ID_LA) {
-		Lamp *la= (Lamp *)tsep->id;
-		mtex= la->mtex;
-	}
-	else if( GS(tsep->id->name)==ID_WO) {
-		World *wrld= (World *)tsep->id;
-		mtex= wrld->mtex;
-	}
-	else return;
-	
-	for(a=0; a<MAX_MTEX; a++) {
-		if(a==te->index && mtex[a]) {
-			if(mtex[a]->tex) {
-				mtex[a]->tex->id.us--;
-				mtex[a]->tex= NULL;
-			}
-		}
-	}
-}
-
-static void unlink_group_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *tsep, TreeStoreElem *tselem)
-{
-	Group *group= (Group *)tselem->id;
-	
-	if(tsep) {
-		if( GS(tsep->id->name)==ID_OB) {
-			Object *ob= (Object *)tsep->id;
-			ob->dup_group= NULL;
-		}
-	}
-	else {
-		unlink_group(group);
-	}
-}
-
-static void outliner_do_libdata_operation(bContext *C, Scene *scene, SpaceOops *soops, ListBase *lb, 
-										 void (*operation_cb)(bContext *C, Scene *scene, TreeElement *, TreeStoreElem *, TreeStoreElem *))
-{
-	TreeElement *te;
-	TreeStoreElem *tselem;
-	
-	for(te=lb->first; te; te= te->next) {
-		tselem= TREESTORE(te);
-		if(tselem->flag & TSE_SELECTED) {
-			if(tselem->type==0) {
-				TreeStoreElem *tsep= TREESTORE(te->parent);
-				operation_cb(C, scene, te, tsep, tselem);
-			}
-		}
-		if((tselem->flag & TSE_CLOSED)==0) {
-			outliner_do_libdata_operation(C, scene, soops, &te->subtree, operation_cb);
-		}
-	}
-}
-
-/* */
-
-static void object_select_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem)
-{
-	Base *base= (Base *)te->directdata;
-	
-	if(base==NULL) base= object_in_scene((Object *)tselem->id, scene);
-	if(base && ((base->object->restrictflag & OB_RESTRICT_VIEW)==0)) {
-		base->flag |= SELECT;
-		base->object->flag |= SELECT;
-	}
-}
-
-static void object_deselect_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem)
-{
-	Base *base= (Base *)te->directdata;
-	
-	if(base==NULL) base= object_in_scene((Object *)tselem->id, scene);
-	if(base) {
-		base->flag &= ~SELECT;
-		base->object->flag &= ~SELECT;
-	}
-}
-
-static void object_delete_cb(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem)
-{
-	Base *base= (Base *)te->directdata;
-	
-	if(base==NULL) 
-		base= object_in_scene((Object *)tselem->id, scene);
-	if(base) {
-		// check also library later
-		if(scene->obedit==base->object) 
-			ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR|EM_DO_UNDO);
-		
-		ED_base_object_free_and_unlink(CTX_data_main(C), scene, base);
-		te->directdata= NULL;
-		tselem->id= NULL;
-	}
-
-}
-
-static void id_local_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem)
-{
-	if(tselem->id->lib && (tselem->id->flag & LIB_EXTERN)) {
-		tselem->id->lib= NULL;
-		tselem->id->flag= LIB_LOCAL;
-		new_id(NULL, tselem->id, NULL);
-	}
-}
-
-static void group_linkobs2scene_cb(bContext *UNUSED(C), Scene *scene, TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem)
-{
-	Group *group= (Group *)tselem->id;
-	GroupObject *gob;
-	Base *base;
-	
-	for(gob=group->gobject.first; gob; gob=gob->next) {
-		base= object_in_scene(gob->ob, scene);
-		if (base) {
-			base->object->flag |= SELECT;
-			base->flag |= SELECT;
-		} else {
-			/* link to scene */
-			base= MEM_callocN( sizeof(Base), "add_base");
-			BLI_addhead(&scene->base, base);
-			base->lay= (1<<20)-1; /*v3d->lay;*/ /* would be nice to use the 3d layer but the include's not here */
-			gob->ob->flag |= SELECT;
-			base->flag = gob->ob->flag;
-			base->object= gob->ob;
-			id_lib_extern((ID *)gob->ob); /* incase these are from a linked group */
-		}
-	}
-}
-
-static void outliner_do_object_operation(bContext *C, Scene *scene_act, SpaceOops *soops, ListBase *lb, 
-										 void (*operation_cb)(bContext *C, Scene *scene, TreeElement *, TreeStoreElem *, TreeStoreElem *))
-{
-	TreeElement *te;
-	TreeStoreElem *tselem;
-	
-	for(te=lb->first; te; te= te->next) {
-		tselem= TREESTORE(te);
-		if(tselem->flag & TSE_SELECTED) {
-			if(tselem->type==0 && te->idcode==ID_OB) {
-				// when objects selected in other scenes... dunno if that should be allowed
-				Scene *scene_owner= (Scene *)outliner_search_back(soops, te, ID_SCE);
-				if(scene_owner && scene_act != scene_owner) {
-					ED_screen_set_scene(C, scene_owner);
-				}
-				/* important to use 'scene_owner' not scene_act else deleting objects can crash.
-				 * only use 'scene_act' when 'scene_owner' is NULL, which can happen when the
-				 * outliner isnt showing scenes: Visible Layer draw mode for eg. */
-				operation_cb(C, scene_owner ? scene_owner : scene_act, te, NULL, tselem);
-			}
-		}
-		if((tselem->flag & TSE_CLOSED)==0) {
-			outliner_do_object_operation(C, scene_act, soops, &te->subtree, operation_cb);
-		}
-	}
-}
-
-/* ******************************************** */
-
-static void pchan_cb(int event, TreeElement *te, TreeStoreElem *UNUSED(tselem))
-{
-	bPoseChannel *pchan= (bPoseChannel *)te->directdata;
-	
-	if(event==1)
-		pchan->bone->flag |= BONE_SELECTED;
-	else if(event==2)
-		pchan->bone->flag &= ~BONE_SELECTED;
-	else if(event==3) {
-		pchan->bone->flag |= BONE_HIDDEN_P;
-		pchan->bone->flag &= ~BONE_SELECTED;
-	}
-	else if(event==4)
-		pchan->bone->flag &= ~BONE_HIDDEN_P;
-}
-
-static void bone_cb(int event, TreeElement *te, TreeStoreElem *UNUSED(tselem))
-{
-	Bone *bone= (Bone *)te->directdata;
-	
-	if(event==1)
-		bone->flag |= BONE_SELECTED;
-	else if(event==2)
-		bone->flag &= ~BONE_SELECTED;
-	else if(event==3) {
-		bone->flag |= BONE_HIDDEN_P;
-		bone->flag &= ~BONE_SELECTED;
-	}
-	else if(event==4)
-		bone->flag &= ~BONE_HIDDEN_P;
-}
-
-static void ebone_cb(int event, TreeElement *te, TreeStoreElem *UNUSED(tselem))
-{
-	EditBone *ebone= (EditBone *)te->directdata;
-	
-	if(event==1)
-		ebone->flag |= BONE_SELECTED;
-	else if(event==2)
-		ebone->flag &= ~BONE_SELECTED;
-	else if(event==3) {
-		ebone->flag |= BONE_HIDDEN_A;
-		ebone->flag &= ~BONE_SELECTED|BONE_TIPSEL|BONE_ROOTSEL;
-	}
-	else if(event==4)
-		ebone->flag &= ~BONE_HIDDEN_A;
-}
-
-static void sequence_cb(int event, TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tselem))
-{
-//	Sequence *seq= (Sequence*) te->directdata;
-	if(event==1) {
-// XXX		select_single_seq(seq, 1);
-	}
-}
-
-static void outliner_do_data_operation(SpaceOops *soops, int type, int event, ListBase *lb, 
-										 void (*operation_cb)(int, TreeElement *, TreeStoreElem *))
-{
-	TreeElement *te;
-	TreeStoreElem *tselem;
-	
-	for(te=lb->first; te; te= te->next) {
-		tselem= TREESTORE(te);
-		if(tselem->flag & TSE_SELECTED) {
-			if(tselem->type==type) {
-				operation_cb(event, te, tselem);
-			}
-		}
-		if((tselem->flag & TSE_CLOSED)==0) {
-			outliner_do_data_operation(soops, type, event, &te->subtree, operation_cb);
-		}
-	}
-}
-
-static void outliner_del(bContext *C, Scene *scene, ARegion *UNUSED(ar), SpaceOops *soops)
-{
-	
-	if(soops->outlinevis==SO_SEQUENCE)
-		;//		del_seq();
-	else {
-		outliner_do_object_operation(C, scene, soops, &soops->tree, object_delete_cb);
-		DAG_scene_sort(CTX_data_main(C), scene);
-		ED_undo_push(C, "Delete Objects");
-		WM_event_add_notifier(C, NC_SCENE|ND_OB_ACTIVE, scene);
-	}
-}
-
-/* **************************************** */
-
-static EnumPropertyItem prop_object_op_types[] = {
-	{1, "SELECT", 0, "Select", ""},
-	{2, "DESELECT", 0, "Deselect", ""},
-	{4, "DELETE", 0, "Delete", ""},
-	{6, "TOGVIS", 0, "Toggle Visible", ""},
-	{7, "TOGSEL", 0, "Toggle Selectable", ""},
-	{8, "TOGREN", 0, "Toggle Renderable", ""},
-	{0, NULL, 0, NULL, NULL}
-};
-
-static int outliner_object_operation_exec(bContext *C, wmOperator *op)
-{
-	Main *bmain= CTX_data_main(C);
-	Scene *scene= CTX_data_scene(C);
-	SpaceOops *soops= CTX_wm_space_outliner(C);
-	int event;
-	const char *str= NULL;
-	
-	/* check for invalid states */
-	if (soops == NULL)
-		return OPERATOR_CANCELLED;
-	
-	event= RNA_enum_get(op->ptr, "type");
-
-	if(event==1) {
-		Scene *sce= scene;	// to be able to delete, scenes are set...
-		outliner_do_object_operation(C, scene, soops, &soops->tree, object_select_cb);
-		if(scene != sce) {
-			ED_screen_set_scene(C, sce);
-		}
-		
-		str= "Select Objects";
-		WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene);
-	}
-	else if(event==2) {
-		outliner_do_object_operation(C, scene, soops, &soops->tree, object_deselect_cb);
-		str= "Deselect Objects";
-		WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene);
-	}
-	else if(event==4) {
-		outliner_do_object_operation(C, scene, soops, &soops->tree, object_delete_cb);
-		DAG_scene_sort(bmain, scene);
-		str= "Delete Objects";
-		WM_event_add_notifier(C, NC_SCENE|ND_OB_ACTIVE, scene);
-	}
-	else if(event==5) {	/* disabled, see above enum (ton) */
-		outliner_do_object_operation(C, scene, soops, &soops->tree, id_local_cb);
-		str= "Localized Objects";
-	}
-	else if(event==6) {
-		outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_visibility_cb);
-		str= "Toggle Visibility";
-		WM_event_add_notifier(C, NC_SCENE|ND_OB_VISIBLE, scene);
-	}
-	else if(event==7) {
-		outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_selectability_cb);
-		str= "Toggle Selectability";
-		WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene);
-	}
-	else if(event==8) {
-		outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_renderability_cb);
-		str= "Toggle Renderability";
-		WM_event_add_notifier(C, NC_SCENE|ND_OB_RENDER, scene);
-	}
-
-	ED_undo_push(C, str);
-	
-	return OPERATOR_FINISHED;
-}
-
-
-void OUTLINER_OT_object_operation(wmOperatorType *ot)
-{
-	/* identifiers */
-	ot->name= "Outliner Object Operation";
-	ot->idname= "OUTLINER_OT_object_operation";
-	ot->description= "";
-	
-	/* callbacks */
-	ot->invoke= WM_menu_invoke;
-	ot->exec= outliner_object_operation_exec;
-	ot->poll= ED_operator_outliner_active;
-	
-	ot->flag= 0;
-
-	ot->prop= RNA_def_enum(ot->srna, "type", prop_object_op_types, 0, "Object Operation", "");
-}
-
-/* **************************************** */
-
-static EnumPropertyItem prop_group_op_types[] = {
-	{1, "UNLINK", 0, "Unlink", ""},
-	{2, "LOCAL", 0, "Make Local", ""},
-	{3, "LINK", 0, "Link Group Objects to Scene", ""},
-	{4, "TOGVIS", 0, "Toggle Visible", ""},
-	{5, "TOGSEL", 0, "Toggle Selectable", ""},
-	{6, "TOGREN", 0, "Toggle Renderable", ""},
-	{0, NULL, 0, NULL, NULL}
-};
-
-static int outliner_group_operation_exec(bContext *C, wmOperator *op)
-{
-	Scene *scene= CTX_data_scene(C);
-	SpaceOops *soops= CTX_wm_space_outliner(C);
-	int event;
-	
-	/* check for invalid states */
-	if (soops == NULL)
-		return OPERATOR_CANCELLED;
-	
-	event= RNA_enum_get(op->ptr, "type");
-	
-	if(event==1) {
-		outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_group_cb);
-		ED_undo_push(C, "Unlink group");
-	}
-	else if(event==2) {
-		outliner_do_libdata_operation(C, scene, soops, &soops->tree, id_local_cb);
-		ED_undo_push(C, "Localized Data");
-	}
-	else if(event==3) {
-		outliner_do_libdata_operation(C, scene, soops, &soops->tree, group_linkobs2scene_cb);
-		ED_undo_push(C, "Link Group Objects to Scene");
-	}
-	
-	
-	WM_event_add_notifier(C, NC_GROUP, NULL);
-	
-	return OPERATOR_FINISHED;
-}
-
-
-void OUTLINER_OT_group_operation(wmOperatorType *ot)
-{
-	/* identifiers */
-	ot->name= "Outliner Group Operation";
-	ot->idname= "OUTLINER_OT_group_operation";
-	ot->description= "";
-	
-	/* callbacks */
-	ot->invoke= WM_menu_invoke;
-	ot->exec= outliner_group_operation_exec;
-	ot->poll= ED_operator_outliner_active;
-	
-	ot->flag= 0;
-	
-	ot->prop= RNA_def_enum(ot->srna, "type", prop_group_op_types, 0, "Group Operation", "");
-}
-
-/* **************************************** */
-
-static EnumPropertyItem prop_id_op_types[] = {
-	{1, "UNLINK", 0, "Unlink", ""},
-	{2, "LOCAL", 0, "Make Local", ""},
-	{0, NULL, 0, NULL, NULL}
-};
-
-static int outliner_id_operation_exec(bContext *C, wmOperator *op)
-{
-	Scene *scene= CTX_data_scene(C);
-	SpaceOops *soops= CTX_wm_space_outliner(C);
-	int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0;
-	int event;
-	
-	/* check for invalid states */
-	if (soops == NULL)
-		return OPERATOR_CANCELLED;
-	
-	set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel);
-	
-	event= RNA_enum_get(op->ptr, "type");
-	
-	if(event==1) {
-		switch(idlevel) {
-			case ID_MA:
-				outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_material_cb);
-				ED_undo_push(C, "Unlink material");
-				break;
-			case ID_TE:
-				outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_texture_cb);
-				ED_undo_push(C, "Unlink texture");
-				break;
-			default:
-				BKE_report(op->reports, RPT_WARNING, "Not Yet");
-		}
-	}
-	else if(event==2) {
-		outliner_do_libdata_operation(C, scene, soops, &soops->tree, id_local_cb);
-		ED_undo_push(C, "Localized Data");
-	}
-	
-	/* wrong notifier still... */
-	WM_event_add_notifier(C, NC_OBJECT, NULL);
-	
-	return OPERATOR_FINISHED;
-}
-
-
-void OUTLINER_OT_id_operation(wmOperatorType *ot)
-{
-	/* identifiers */
-	ot->name= "Outliner ID data Operation";
-	ot->idname= "OUTLINER_OT_id_operation";
-	ot->description= "";
-	
-	/* callbacks */
-	ot->invoke= WM_menu_invoke;
-	ot->exec= outliner_id_operation_exec;
-	ot->poll= ED_operator_outliner_active;
-	
-	ot->flag= 0;
-	
-	ot->prop= RNA_def_enum(ot->srna, "type", prop_id_op_types, 0, "ID data Operation", "");
-}
-
-/* **************************************** */
-
-static EnumPropertyItem prop_data_op_types[] = {
-	{1, "SELECT", 0, "Select", ""},
-	{2, "DESELECT", 0, "Deselect", ""},
-	{3, "HIDE", 0, "Hide", ""},
-	{4, "UNHIDE", 0, "Unhide", ""},
-	{0, NULL, 0, NULL, NULL}
-};
-
-static int outliner_data_operation_exec(bContext *C, wmOperator *op)
-{
-	SpaceOops *soops= CTX_wm_space_outliner(C);
-	int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0;
-	int event;
-	
-	/* check for invalid states */
-	if (soops == NULL)
-		return OPERATOR_CANCELLED;
-	
-	event= RNA_enum_get(op->ptr, "type");
-	set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel);
-	
-	if(datalevel==TSE_POSE_CHANNEL) {
-		if(event>0) {
-			outliner_do_data_operation(soops, datalevel, event, &soops->tree, pchan_cb);
-			WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL);
-			ED_undo_push(C, "PoseChannel operation");
-		}
-	}
-	else if(datalevel==TSE_BONE) {
-		if(event>0) {
-			outliner_do_data_operation(soops, datalevel, event, &soops->tree, bone_cb);
-			WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL);
-			ED_undo_push(C, "Bone operation");
-		}
-	}
-	else if(datalevel==TSE_EBONE) {
-		if(event>0) {
-			outliner_do_data_operation(soops, datalevel, event, &soops->tree, ebone_cb);
-			WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL);
-			ED_undo_push(C, "EditBone operation");
-		}
-	}
-	else if(datalevel==TSE_SEQUENCE) {
-		if(event>0) {
-			outliner_do_data_operation(soops, datalevel, event, &soops->tree, sequence_cb);
-		}
-	}
-	
-	return OPERATOR_FINISHED;
-}
-
-
-void OUTLINER_OT_data_operation(wmOperatorType *ot)
-{
-	/* identifiers */
-	ot->name= "Outliner Data Operation";
-	ot->idname= "OUTLINER_OT_data_operation";
-	ot->description= "";
-	
-	/* callbacks */
-	ot->invoke= WM_menu_invoke;
-	ot->exec= outliner_data_operation_exec;
-	ot->poll= ED_operator_outliner_active;
-	
-	ot->flag= 0;
-	
-	ot->prop= RNA_def_enum(ot->srna, "type", prop_data_op_types, 0, "Data Operation", "");
-}
-
-
-/* ******************** */
-
-
-static int do_outliner_operation_event(bContext *C, Scene *scene, ARegion *ar, SpaceOops *soops, TreeElement *te, wmEvent *event, const float mval[2])
-{
-	
-	if(mval[1]>te->ys && mval[1]<te->ys+UI_UNIT_Y) {
-		int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0;
-		TreeStoreElem *tselem= TREESTORE(te);
-		
-		/* select object that's clicked on and popup context menu */
-		if (!(tselem->flag & TSE_SELECTED)) {
-			
-			if ( outliner_has_one_flag(soops, &soops->tree, TSE_SELECTED, 1) )
-				outliner_set_flag(soops, &soops->tree, TSE_SELECTED, 0);
-			
-			tselem->flag |= TSE_SELECTED;
-			/* redraw, same as outliner_select function */
-			soops->storeflag |= SO_TREESTORE_REDRAW;
-			ED_region_tag_redraw(ar);
-		}
-		
-		set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel);
-		
-		if(scenelevel) {
-			//if(objectlevel || datalevel || idlevel) error("Mixed selection");
-			//else pupmenu("Scene Operations%t|Delete");
-		}
-		else if(objectlevel) {
-			WM_operator_name_call(C, "OUTLINER_OT_object_operation", WM_OP_INVOKE_REGION_WIN, NULL);
-		}
-		else if(idlevel) {
-			if(idlevel==-1 || datalevel) error("Mixed selection");
-			else {
-				if (idlevel==ID_GR)
-					WM_operator_name_call(C, "OUTLINER_OT_group_operation", WM_OP_INVOKE_REGION_WIN, NULL);
-				else
-					WM_operator_name_call(C, "OUTLINER_OT_id_operation", WM_OP_INVOKE_REGION_WIN, NULL);
-			}
-		}
-		else if(datalevel) {
-			if(datalevel==-1) error("Mixed selection");
-			else {
-				WM_operator_name_call(C, "OUTLINER_OT_data_operation", WM_OP_INVOKE_REGION_WIN, NULL);
-			}
-		}
-		
-		return 1;
-	}
-	
-	for(te= te->subtree.first; te; te= te->next) {
-		if(do_outliner_operation_event(C, scene, ar, soops, te, event, mval)) 
-			return 1;
-	}
-	return 0;
-}
-
-
-static int outliner_operation(bContext *C, wmOperator *UNUSED(op), wmEvent *event)
-{
-	Scene *scene= CTX_data_scene(C);
-	ARegion *ar= CTX_wm_region(C);
-	SpaceOops *soops= CTX_wm_space_outliner(C);
-	TreeElement *te;
-	float fmval[2];
-	
-	UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], fmval, fmval+1);
-	
-	for(te= soops->tree.first; te; te= te->next) {
-		if(do_outliner_operation_event(C, scene, ar, soops, te, event, fmval)) break;
-	}
-	
-	return OPERATOR_FINISHED;
-}
-
-/* Menu only! Calls other operators */
-void OUTLINER_OT_operation(wmOperatorType *ot)
-{
-	ot->name= "Execute Operation";
-	ot->idname= "OUTLINER_OT_operation";
-	ot->description= "Context menu for item operations";
-	
-	ot->invoke= outliner_operation;
-	
-	ot->poll= ED_operator_outliner_active;
-}
-
-
-
-/* ***************** ANIMATO OPERATIONS ********************************** */
-/* KeyingSet and Driver Creation - Helper functions */
-
-/* specialised poll callback for these operators to work in Datablocks view only */
-static int ed_operator_outliner_datablocks_active(bContext *C)
-{
-	ScrArea *sa= CTX_wm_area(C);
-	if ((sa) && (sa->spacetype==SPACE_OUTLINER)) {
-		SpaceOops *so= CTX_wm_space_outliner(C);
-		return (so->outlinevis == SO_DATABLOCKS);
-	}
-	return 0;
-}
-
-
-/* Helper func to extract an RNA path from selected tree element 
- * NOTE: the caller must zero-out all values of the pointers that it passes here first, as
- * this function does not do that yet 
- */
-static void tree_element_to_path(SpaceOops *soops, TreeElement *te, TreeStoreElem *tselem, 
-							ID **id, char **path, int *array_index, short *flag, short *UNUSED(groupmode))
-{
-	ListBase hierarchy = {NULL, NULL};
-	LinkData *ld;
-	TreeElement *tem, *temnext, *temsub;
-	TreeStoreElem *tse, *tsenext;
-	PointerRNA *ptr, *nextptr;
-	PropertyRNA *prop;
-	char *newpath=NULL;
-	
-	/* optimise tricks:
-	 *	- Don't do anything if the selected item is a 'struct', but arrays are allowed
-	 */
-	if (tselem->type == TSE_RNA_STRUCT)
-		return;
-	
-	/* Overview of Algorithm:
-	 * 	1. Go up the chain of parents until we find the 'root', taking note of the 
-	 *	   levels encountered in reverse-order (i.e. items are added to the start of the list
-	 *      for more convenient looping later)
-	 * 	2. Walk down the chain, adding from the first ID encountered 
-	 *	   (which will become the 'ID' for the KeyingSet Path), and build a  
-	 * 		path as we step through the chain
-	 */
-	 
-	/* step 1: flatten out hierarchy of parents into a flat chain */
-	for (tem= te->parent; tem; tem= tem->parent) {
-		ld= MEM_callocN(sizeof(LinkData), "LinkData for tree_element_to_path()");
-		ld->data= tem;
-		BLI_addhead(&hierarchy, ld);
-	}
-	
-	/* step 2: step down hierarchy building the path (NOTE: addhead in previous loop was needed so that we can loop like this) */
-	for (ld= hierarchy.first; ld; ld= ld->next) {
-		/* get data */
-		tem= (TreeElement *)ld->data;
-		tse= TREESTORE(tem);
-		ptr= &tem->rnaptr;
-		prop= tem->directdata;
-		
-		/* check if we're looking for first ID, or appending to path */
-		if (*id) {
-			/* just 'append' property to path 
-			 *	- to prevent memory leaks, we must write to newpath not path, then free old path + swap them
-			 */
-			if(tse->type == TSE_RNA_PROPERTY) {
-				if(RNA_property_type(prop) == PROP_POINTER) {
-					/* for pointer we just append property name */
-					newpath= RNA_path_append(*path, ptr, prop, 0, NULL);
-				}
-				else if(RNA_property_type(prop) == PROP_COLLECTION) {
-					char buf[128], *name;
-					
-					temnext= (TreeElement*)(ld->next->data);
-					tsenext= TREESTORE(temnext);
-					
-					nextptr= &temnext->rnaptr;
-					name= RNA_struct_name_get_alloc(nextptr, buf, sizeof(buf));
-					
-					if(name) {
-						/* if possible, use name as a key in the path */
-						newpath= RNA_path_append(*path, NULL, prop, 0, name);
-						
-						if(name != buf)
-							MEM_freeN(name);
-					}
-					else {
-						/* otherwise use index */
-						int index= 0;
-						
-						for(temsub=tem->subtree.first; temsub; temsub=temsub->next, index++)
-							if(temsub == temnext)
-								break;
-						
-						newpath= RNA_path_append(*path, NULL, prop, index, NULL);
-					}
-					
-					ld= ld->next;
-				}
-			}
-			
-			if(newpath) {
-				if (*path) MEM_freeN(*path);
-				*path= newpath;
-				newpath= NULL;
-			}
-		}
-		else {
-			/* no ID, so check if entry is RNA-struct, and if that RNA-struct is an ID datablock to extract info from */
-			if (tse->type == TSE_RNA_STRUCT) {
-				/* ptr->data not ptr->id.data seems to be the one we want, since ptr->data is sometimes the owner of this ID? */
-				if(RNA_struct_is_ID(ptr->type)) {
-					*id= (ID *)ptr->data;
-					
-					/* clear path */
-					if(*path) {
-						MEM_freeN(*path);
-						path= NULL;
-					}
-				}
-			}
-		}
-	}
-
-	/* step 3: if we've got an ID, add the current item to the path */
-	if (*id) {
-		/* add the active property to the path */
-		ptr= &te->rnaptr;
-		prop= te->directdata;
-		
-		/* array checks */
-		if (tselem->type == TSE_RNA_ARRAY_ELEM) {
-			/* item is part of an array, so must set the array_index */
-			*array_index= te->index;
-		}
-		else if (RNA_property_array_length(ptr, prop)) {
-			/* entire array was selected, so keyframe all */
-			*flag |= KSP_FLAG_WHOLE_ARRAY;
-		}
-		
-		/* path */
-		newpath= RNA_path_append(*path, NULL, prop, 0, NULL);
-		if (*path) MEM_freeN(*path);
-		*path= newpath;
-	}
-
-	/* free temp data */
-	BLI_freelistN(&hierarchy);
-}
-
-/* ***************** KEYINGSET OPERATIONS *************** */
-
-/* These operators are only available in databrowser mode for now, as
- * they depend on having RNA paths and/or hierarchies available.
- */
-enum {
-	DRIVERS_EDITMODE_ADD	= 0,
-	DRIVERS_EDITMODE_REMOVE,
-} /*eDrivers_EditModes*/;
-
-/* Utilities ---------------------------------- */ 
-
-/* Recursively iterate over tree, finding and working on selected items */
-static void do_outliner_drivers_editop(SpaceOops *soops, ListBase *tree, ReportList *reports, short mode)
-{
-	TreeElement *te;
-	TreeStoreElem *tselem;
-	
-	for (te= tree->first; te; te=te->next) {
-		tselem= TREESTORE(te);
-		
-		/* if item is selected, perform operation */
-		if (tselem->flag & TSE_SELECTED) {
-			ID *id= NULL;
-			char *path= NULL;
-			int array_index= 0;
-			short flag= 0;
-			short groupmode= KSP_GROUP_KSNAME;
-			
-			/* check if RNA-property described by this selected element is an animateable prop */
-			if (ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM) && RNA_property_animateable(&te->rnaptr, te->directdata)) {
-				/* get id + path + index info from the selected element */
-				tree_element_to_path(soops, te, tselem, 
-						&id, &path, &array_index, &flag, &groupmode);
-			}
-			
-			/* only if ID and path were set, should we perform any actions */
-			if (id && path) {
-				short dflags = CREATEDRIVER_WITH_DEFAULT_DVAR;
-				int arraylen = 1;
-				
-				/* array checks */
-				if (flag & KSP_FLAG_WHOLE_ARRAY) {
-					/* entire array was selected, so add drivers for all */
-					arraylen= RNA_property_array_length(&te->rnaptr, te->directdata);
-				}
-				else
-					arraylen= array_index;
-				
-				/* we should do at least one step */
-				if (arraylen == array_index)
-					arraylen++;
-				
-				/* for each array element we should affect, add driver */
-				for (; array_index < arraylen; array_index++) {
-					/* action depends on mode */
-					switch (mode) {
-						case DRIVERS_EDITMODE_ADD:
-						{
-							/* add a new driver with the information obtained (only if valid) */
-							ANIM_add_driver(reports, id, path, array_index, dflags, DRIVER_TYPE_PYTHON);
-						}
-							break;
-						case DRIVERS_EDITMODE_REMOVE:
-						{
-							/* remove driver matching the information obtained (only if valid) */
-							ANIM_remove_driver(reports, id, path, array_index, dflags);
-						}
-							break;
-					}
-				}
-				
-				/* free path, since it had to be generated */
-				MEM_freeN(path);
-			}
-			
-			
-		}
-		
-		/* go over sub-tree */
-		if ((tselem->flag & TSE_CLOSED)==0)
-			do_outliner_drivers_editop(soops, &te->subtree, reports, mode);
-	}
-}
-
-/* Add Operator ---------------------------------- */
-
-static int outliner_drivers_addsel_exec(bContext *C, wmOperator *op)
-{
-	SpaceOops *soutliner= CTX_wm_space_outliner(C);
-	
-	/* check for invalid states */
-	if (soutliner == NULL)
-		return OPERATOR_CANCELLED;
-	
-	/* recursively go into tree, adding selected items */
-	do_outliner_drivers_editop(soutliner, &soutliner->tree, op->reports, DRIVERS_EDITMODE_ADD);
-	
-	/* send notifiers */
-	WM_event_add_notifier(C, NC_ANIMATION|ND_FCURVES_ORDER, NULL); // XXX
-	
-	return OPERATOR_FINISHED;
-}
-
-void OUTLINER_OT_drivers_add_selected(wmOperatorType *ot)
-{
-	/* api callbacks */
-	ot->idname= "OUTLINER_OT_drivers_add_selected";
-	ot->name= "Add Drivers for Selected";
-	ot->description= "Add drivers to selected items";
-	
-	/* api callbacks */
-	ot->exec= outliner_drivers_addsel_exec;
-	ot->poll= ed_operator_outliner_datablocks_active;
-	
-	/* flags */
-	ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
-}
-
-
-/* Remove Operator ---------------------------------- */
-
-static int outliner_drivers_deletesel_exec(bContext *C, wmOperator *op)
-{
-	SpaceOops *soutliner= CTX_wm_space_outliner(C);
-	
-	/* check for invalid states */
-	if (soutliner == NULL)
-		return OPERATOR_CANCELLED;
-	
-	/* recursively go into tree, adding selected items */
-	do_outliner_drivers_editop(soutliner, &soutliner->tree, op->reports, DRIVERS_EDITMODE_REMOVE);
-	
-	/* send notifiers */
-	WM_event_add_notifier(C, ND_KEYS, NULL); // XXX
-	
-	return OPERATOR_FINISHED;
-}
-
-void OUTLINER_OT_drivers_delete_selected(wmOperatorType *ot)
-{
-	/* identifiers */
-	ot->idname= "OUTLINER_OT_drivers_delete_selected";
-	ot->name= "Delete Drivers for Selected";
-	ot->description= "Delete drivers assigned to selected items";
-	
-	/* api callbacks */
-	ot->exec= outliner_drivers_deletesel_exec;
-	ot->poll= ed_operator_outliner_datablocks_active;
-	
-	/* flags */
-	ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
-}
-
-/* ***************** KEYINGSET OPERATIONS *************** */
-
-/* These operators are only available in databrowser mode for now, as
- * they depend on having RNA paths and/or hierarchies available.
- */
-enum {
-	KEYINGSET_EDITMODE_ADD	= 0,
-	KEYINGSET_EDITMODE_REMOVE,
-} /*eKeyingSet_EditModes*/;
-
-/* Utilities ---------------------------------- */ 
- 
-/* find the 'active' KeyingSet, and add if not found (if adding is allowed) */
-// TODO: should this be an API func?
-static KeyingSet *verify_active_keyingset(Scene *scene, short add)
-{
-	KeyingSet *ks= NULL;
-	
-	/* sanity check */
-	if (scene == NULL)
-		return NULL;
-	
-	/* try to find one from scene */
-	if (scene->active_keyingset > 0)
-		ks= BLI_findlink(&scene->keyingsets, scene->active_keyingset-1);
-		
-	/* add if none found */
-	// XXX the default settings have yet to evolve
-	if ((add) && (ks==NULL)) {
-		ks= BKE_keyingset_add(&scene->keyingsets, NULL, KEYINGSET_ABSOLUTE, 0);
-		scene->active_keyingset= BLI_countlist(&scene->keyingsets);
-	}
-	
-	return ks;
-}
-
-/* Recursively iterate over tree, finding and working on selected items */
-static void do_outliner_keyingset_editop(SpaceOops *soops, KeyingSet *ks, ListBase *tree, short mode)
-{
-	TreeElement *te;
-	TreeStoreElem *tselem;
-	
-	for (te= tree->first; te; te=te->next) {
-		tselem= TREESTORE(te);
-		
-		/* if item is selected, perform operation */
-		if (tselem->flag & TSE_SELECTED) {
-			ID *id= NULL;
-			char *path= NULL;
-			int array_index= 0;
-			short flag= 0;
-			short groupmode= KSP_GROUP_KSNAME;
-			
-			/* check if RNA-property described by this selected element is an animateable prop */
-			if (ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM) && RNA_property_animateable(&te->rnaptr, te->directdata)) {
-				/* get id + path + index info from the selected element */
-				tree_element_to_path(soops, te, tselem, 
-						&id, &path, &array_index, &flag, &groupmode);
-			}
-			
-			/* only if ID and path were set, should we perform any actions */
-			if (id && path) {
-				/* action depends on mode */
-				switch (mode) {
-					case KEYINGSET_EDITMODE_ADD:
-					{
-						/* add a new path with the information obtained (only if valid) */
-						// TODO: what do we do with group name? for now, we don't supply one, and just let this use the KeyingSet name
-						BKE_keyingset_add_path(ks, id, NULL, path, array_index, flag, groupmode);
-						ks->active_path= BLI_countlist(&ks->paths);
-					}
-						break;
-					case KEYINGSET_EDITMODE_REMOVE:
-					{
-						/* find the relevant path, then remove it from the KeyingSet */
-						KS_Path *ksp= BKE_keyingset_find_path(ks, id, NULL, path, array_index, groupmode);
-						
-						if (ksp) {
-							/* free path's data */
-							BKE_keyingset_free_path(ks, ksp);
-
-							ks->active_path= 0;
-						}
-					}
-						break;
-				}
-				
-				/* free path, since it had to be generated */
-				MEM_freeN(path);
-			}
-		}
-		
-		/* go over sub-tree */
-		if ((tselem->flag & TSE_CLOSED)==0)
-			do_outliner_keyingset_editop(soops, ks, &te->subtree, mode);
-	}
-}
-
-/* Add Operator ---------------------------------- */
-
-static int outliner_keyingset_additems_exec(bContext *C, wmOperator *op)
-{
-	SpaceOops *soutliner= CTX_wm_space_outliner(C);
-	Scene *scene= CTX_data_scene(C);
-	KeyingSet *ks= verify_active_keyingset(scene, 1);
-	
-	/* check for invalid states */
-	if (ks == NULL) {
-		BKE_report(op->reports, RPT_ERROR, "Operation requires an Active Keying Set");
-		return OPERATOR_CANCELLED;
-	}
-	if (soutliner == NULL)
-		return OPERATOR_CANCELLED;
-	
-	/* recursively go into tree, adding selected items */
-	do_outliner_keyingset_editop(soutliner, ks, &soutliner->tree, KEYINGSET_EDITMODE_ADD);
-	
-	/* send notifiers */
-	WM_event_add_notifier(C, NC_SCENE|ND_KEYINGSET, NULL);
-	
-	return OPERATOR_FINISHED;
-}
-
-void OUTLINER_OT_keyingset_add_selected(wmOperatorType *ot)
-{
-	/* identifiers */
-	ot->idname= "OUTLINER_OT_keyingset_add_selected";
-	ot->name= "Keying Set Add Selected";
-	ot->description= "Add selected items (blue-grey rows) to active Keying Set";
-	
-	/* api callbacks */
-	ot->exec= outliner_keyingset_additems_exec;
-	ot->poll= ed_operator_outliner_datablocks_active;
-	
-	/* flags */
-	ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
-}
-
-
-/* Remove Operator ---------------------------------- */
-
-static int outliner_keyingset_removeitems_exec(bContext *C, wmOperator *UNUSED(op))
-{
-	SpaceOops *soutliner= CTX_wm_space_outliner(C);
-	Scene *scene= CTX_data_scene(C);
-	KeyingSet *ks= verify_active_keyingset(scene, 1);
-	
-	/* check for invalid states */
-	if (soutliner == NULL)
-		return OPERATOR_CANCELLED;
-	
-	/* recursively go into tree, adding selected items */
-	do_outliner_keyingset_editop(soutliner, ks, &soutliner->tree, KEYINGSET_EDITMODE_REMOVE);
-	
-	/* send notifiers */
-	WM_event_add_notifier(C, NC_SCENE|ND_KEYINGSET, NULL);
-	
-	return OPERATOR_FINISHED;
-}
-
-void OUTLINER_OT_keyingset_remove_selected(wmOperatorType *ot)
-{
-	/* identifiers */
-	ot->idname= "OUTLINER_OT_keyingset_remove_selected";
-	ot->name= "Keying Set Remove Selected";
-	ot->description = "Remove selected items (blue-grey rows) from active Keying Set";
-	
-	/* api callbacks */
-	ot->exec= outliner_keyingset_removeitems_exec;
-	ot->poll= ed_operator_outliner_datablocks_active;
-	
-	/* flags */
-	ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
-}
-
-/* ***************** DRAW *************** */
-
-/* make function calls a bit compacter */
-struct DrawIconArg {
-	uiBlock *block;
-	ID *id;
-	int xmax, x, y;
-	float alpha;
-};
-
-static void tselem_draw_icon_uibut(struct DrawIconArg *arg, int icon)
-{
-	/* restrict collumn clip... it has been coded by simply overdrawing, doesnt work for buttons */
-	if(arg->x >= arg->xmax) 
-		UI_icon_draw(arg->x, arg->y, icon);
-	else {
-		/* XXX investigate: button placement of icons is way different than UI_icon_draw? */
-		float ufac= UI_UNIT_X/20.0f;
-		uiBut *but= uiDefIconBut(arg->block, LABEL, 0, icon, arg->x-3.0f*ufac, arg->y, UI_UNIT_X-4.0f*ufac, UI_UNIT_Y-4.0f*ufac, NULL, 0.0, 0.0, 1.0, arg->alpha, (arg->id && arg->id->lib) ? arg->id->lib->name : "");
-		
-		if(arg->id)
-			uiButSetDragID(but, arg->id);
-	}
-
-}
-
-static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeStoreElem *tselem, TreeElement *te, float alpha)
-{
-	struct DrawIconArg arg;
-	
-	/* make function calls a bit compacter */
-	arg.block= block;
-	arg.id= tselem->id;
-	arg.xmax= xmax;
-	arg.x= x;
-	arg.y= y;
-	arg.alpha= alpha;
-	
-	if(tselem->type) {
-		switch( tselem->type) {
-			case TSE_ANIM_DATA:
-				UI_icon_draw(x, y, ICON_ANIM_DATA); break; // xxx
-			case TSE_NLA:
-				UI_icon_draw(x, y, ICON_NLA); break;
-			case TSE_NLA_TRACK:
-				UI_icon_draw(x, y, ICON_NLA); break; // XXX
-			case TSE_NLA_ACTION:
-				UI_icon_draw(x, y, ICON_ACTION); break;
-			case TSE_DEFGROUP_BASE:
-				UI_icon_draw(x, y, ICON_GROUP_VERTEX); break;
-			case TSE_BONE:
-			case TSE_EBONE:
-				UI_icon_draw(x, y, ICON_BONE_DATA); break;
-			case TSE_CONSTRAINT_BASE:
-				UI_icon_draw(x, y, ICON_CONSTRAINT); break;
-			case TSE_MODIFIER_BASE:
-				UI_icon_draw(x, y, ICON_MODIFIER); break;
-			case TSE_LINKED_OB:
-				UI_icon_draw(x, y, ICON_OBJECT_DATA); break;
-			case TSE_LINKED_PSYS:
-				UI_icon_draw(x, y, ICON_PARTICLES); break;
-			case TSE_MODIFIER:
-			{
-				Object *ob= (Object *)tselem->id;
-				ModifierData *md= BLI_findlink(&ob->modifiers, tselem->nr);
-				switch(md->type) {
-					case eModifierType_Subsurf: 
-						UI_icon_draw(x, y, ICON_MOD_SUBSURF); break;
-					case eModifierType_Armature: 
-						UI_icon_draw(x, y, ICON_MOD_ARMATURE); break;
-					case eModifierType_Lattice: 
-						UI_icon_draw(x, y, ICON_MOD_LATTICE); break;
-					case eModifierType_Curve: 
-						UI_icon_draw(x, y, ICON_MOD_CURVE); break;
-					case eModifierType_Build: 
-						UI_icon_draw(x, y, ICON_MOD_BUILD); break;
-					case eModifierType_Mirror: 
-						UI_icon_draw(x, y, ICON_MOD_MIRROR); break;
-					case eModifierType_Decimate: 
-						UI_icon_draw(x, y, ICON_MOD_DECIM); break;
-					case eModifierType_Wave: 
-						UI_icon_draw(x, y, ICON_MOD_WAVE); break;
-					case eModifierType_Hook: 
-						UI_icon_draw(x, y, ICON_HOOK); break;
-					case eModifierType_Softbody: 
-						UI_icon_draw(x, y, ICON_MOD_SOFT); break;
-					case eModifierType_Boolean: 
-						UI_icon_draw(x, y, ICON_MOD_BOOLEAN); break;
-					case eModifierType_ParticleSystem: 
-						UI_icon_draw(x, y, ICON_MOD_PARTICLES); break;
-					case eModifierType_ParticleInstance:
-						UI_icon_draw(x, y, ICON_MOD_PARTICLES); break;
-					case eModifierType_EdgeSplit:
-						UI_icon_draw(x, y, ICON_MOD_EDGESPLIT); break;
-					case eModifierType_Array:
-						UI_icon_draw(x, y, ICON_MOD_ARRAY); break;
-					case eModifierType_UVProject:
-						UI_icon_draw(x, y, ICON_MOD_UVPROJECT); break;
-					case eModifierType_Displace:
-						UI_icon_draw(x, y, ICON_MOD_DISPLACE); break;
-					case eModifierType_Shrinkwrap:
-						UI_icon_draw(x, y, ICON_MOD_SHRINKWRAP); break;
-					case eModifierType_Cast:
-						UI_icon_draw(x, y, ICON_MOD_CAST); break;
-					case eModifierType_MeshDeform:
-						UI_icon_draw(x, y, ICON_MOD_MESHDEFORM); break;
-					case eModifierType_Bevel:
-						UI_icon_draw(x, y, ICON_MOD_BEVEL); break;
-					case eModifierType_Smooth:
-						UI_icon_draw(x, y, ICON_MOD_SMOOTH); break;
-					case eModifierType_SimpleDeform:
-						UI_icon_draw(x, y, ICON_MOD_SIMPLEDEFORM); break;
-					case eModifierType_Mask:
-						UI_icon_draw(x, y, ICON_MOD_MASK); break;
-					case eModifierType_Cloth:
-						UI_icon_draw(x, y, ICON_MOD_CLOTH); break;
-					case eModifierType_Explode:
-						UI_icon_draw(x, y, ICON_MOD_EXPLODE); break;
-					case eModifierType_Collision:
-						UI_icon_draw(x, y, ICON_MOD_PHYSICS); break;
-					case eModifierType_Fluidsim:
-						UI_icon_draw(x, y, ICON_MOD_FLUIDSIM); break;
-					case eModifierType_Multires:
-						UI_icon_draw(x, y, ICON_MOD_MULTIRES); break;
-					case eModifierType_Smoke:
-						UI_icon_draw(x, y, ICON_MOD_SMOKE); break;
-					case eModifierType_Solidify:
-						UI_icon_draw(x, y, ICON_MOD_SOLIDIFY); break;
-					case eModifierType_Screw:
-						UI_icon_draw(x, y, ICON_MOD_SCREW); break;
-					default:
-						UI_icon_draw(x, y, ICON_DOT); break;
-				}
-				break;
-			}
-			case TSE_SCRIPT_BASE:
-				UI_icon_draw(x, y, ICON_TEXT); break;
-			case TSE_POSE_BASE:
-				UI_icon_draw(x, y, ICON_ARMATURE_DATA); break;
-			case TSE_POSE_CHANNEL:
-				UI_icon_draw(x, y, ICON_BONE_DATA); break;
-			case TSE_PROXY:
-				UI_icon_draw(x, y, ICON_GHOST); break;
-			case TSE_R_LAYER_BASE:
-				UI_icon_draw(x, y, ICON_RENDERLAYERS); break;
-			case TSE_R_LAYER:
-				UI_icon_draw(x, y, ICON_RENDERLAYERS); break;
-			case TSE_LINKED_LAMP:
-				UI_icon_draw(x, y, ICON_LAMP_DATA); break;
-			case TSE_LINKED_MAT:
-				UI_icon_draw(x, y, ICON_MATERIAL_DATA); break;
-			case TSE_POSEGRP_BASE:
-				UI_icon_draw(x, y, ICON_VERTEXSEL); break;
-			case TSE_SEQUENCE:
-				if(te->idcode==SEQ_MOVIE)
-					UI_icon_draw(x, y, ICON_SEQUENCE);
-				else if(te->idcode==SEQ_META)
-					UI_icon_draw(x, y, ICON_DOT);
-				else if(te->idcode==SEQ_SCENE)
-					UI_icon_draw(x, y, ICON_SCENE);
-				else if(te->idcode==SEQ_SOUND)
-					UI_icon_draw(x, y, ICON_SOUND);
-				else if(te->idcode==SEQ_IMAGE)
-					UI_icon_draw(x, y, ICON_IMAGE_COL);
-				else
-					UI_icon_draw(x, y, ICON_PARTICLES);
-				break;
-			case TSE_SEQ_STRIP:
-				UI_icon_draw(x, y, ICON_LIBRARY_DATA_DIRECT);
-				break;
-			case TSE_SEQUENCE_DUP:
-				UI_icon_draw(x, y, ICON_OBJECT_DATA);
-				break;
-			case TSE_RNA_STRUCT:
-				if(RNA_struct_is_ID(te->rnaptr.type)) {
-					arg.id= (ID *)te->rnaptr.data;
-					tselem_draw_icon_uibut(&arg, RNA_struct_ui_icon(te->rnaptr.type));
-				}
-				else
-					UI_icon_draw(x, y, RNA_struct_ui_icon(te->rnaptr.type));
-				break;
-			default:
-				UI_icon_draw(x, y, ICON_DOT); break;
-		}
-	}
-	else if (GS(tselem->id->name) == ID_OB) {
-		Object *ob= (Object *)tselem->id;
-		switch (ob->type) {
-			case OB_LAMP:
-				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_LAMP); break;
-			case OB_MESH: 
-				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_MESH); break;
-			case OB_CAMERA: 
-				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_CAMERA); break;
-			case OB_CURVE: 
-				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_CURVE); break;
-			case OB_MBALL: 
-				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_META); break;
-			case OB_LATTICE: 
-				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_LATTICE); break;
-			case OB_ARMATURE: 
-				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_ARMATURE); break;
-			case OB_FONT: 
-				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_FONT); break;
-			case OB_SURF: 
-				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_SURFACE); break;
-			case OB_EMPTY: 
-				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_EMPTY); break;
-		
-		}
-	}
-	else {
-		switch( GS(tselem->id->name)) {
-			case ID_SCE:
-				tselem_draw_icon_uibut(&arg, ICON_SCENE_DATA); break;
-			case ID_ME:
-				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_MESH); break;
-			case ID_CU:
-				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_CURVE); break;
-			case ID_MB:
-				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_META); break;
-			case ID_LT:
-				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_LATTICE); break;
-			case ID_LA:
-			{
-				Lamp *la= (Lamp *)tselem->id;
-				
-				switch(la->type) {
-					case LA_LOCAL:
-						tselem_draw_icon_uibut(&arg, ICON_LAMP_POINT); break;
-					case LA_SUN:
-						tselem_draw_icon_uibut(&arg, ICON_LAMP_SUN); break;
-					case LA_SPOT:
-						tselem_draw_icon_uibut(&arg, ICON_LAMP_SPOT); break;
-					case LA_HEMI:
-						tselem_draw_icon_uibut(&arg, ICON_LAMP_HEMI); break;
-					case LA_AREA:
-						tselem_draw_icon_uibut(&arg, ICON_LAMP_AREA); break;
-					default:
-						tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_LAMP); break;
-				}
-				break;
-			}
-			case ID_MA:
-				tselem_draw_icon_uibut(&arg, ICON_MATERIAL_DATA); break;
-			case ID_TE:
-				tselem_draw_icon_uibut(&arg, ICON_TEXTURE_DATA); break;
-			case ID_IM:
-				tselem_draw_icon_uibut(&arg, ICON_IMAGE_DATA); break;
-			case ID_SO:
-				tselem_draw_icon_uibut(&arg, ICON_SPEAKER); break;
-			case ID_AR:
-				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_ARMATURE); break;
-			case ID_CA:
-				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_CAMERA); break;
-			case ID_KE:
-				tselem_draw_icon_uibut(&arg, ICON_SHAPEKEY_DATA); break;
-			case ID_WO:
-				tselem_draw_icon_uibut(&arg, ICON_WORLD_DATA); break;
-			case ID_AC:
-				tselem_draw_icon_uibut(&arg, ICON_ACTION); break;
-			case ID_NLA:
-				tselem_draw_icon_uibut(&arg, ICON_NLA); break;
-			case ID_TXT:
-				tselem_draw_icon_uibut(&arg, ICON_SCRIPT); break;
-			case ID_GR:
-				tselem_draw_icon_uibut(&arg, ICON_GROUP); break;
-			case ID_LI:
-				tselem_draw_icon_uibut(&arg, ICON_LIBRARY_DATA_DIRECT); break;
-		}
-	}
-}
-
-static void outliner_draw_iconrow(bContext *C, uiBlock *block, Scene *scene, SpaceOops *soops, ListBase *lb, int level, int xmax, int *offsx, int ys)
-{
-	TreeElement *te;
-	TreeStoreElem *tselem;
-	int active;
-
-	for(te= lb->first; te; te= te->next) {
-		
-		/* exit drawing early */
-		if((*offsx) - UI_UNIT_X > xmax)
-			break;
-
-		tselem= TREESTORE(te);
-		
-		/* object hierarchy always, further constrained on level */
-		if(level<1 || (tselem->type==0 && te->idcode==ID_OB)) {
-
-			/* active blocks get white circle */
-			if(tselem->type==0) {
-				if(te->idcode==ID_OB) active= (OBACT==(Object *)tselem->id);
-				else if(scene->obedit && scene->obedit->data==tselem->id) active= 1;	// XXX use context?
-				else active= tree_element_active(C, scene, soops, te, 0);
-			}
-			else active= tree_element_type_active(NULL, scene, soops, te, tselem, 0);
-			
-			if(active) {
-				float ufac= UI_UNIT_X/20.0f;
-
-				uiSetRoundBox(15);
-				glColor4ub(255, 255, 255, 100);
-				uiRoundBox( (float)*offsx-0.5f*ufac, (float)ys-1.0f*ufac, (float)*offsx+UI_UNIT_Y-3.0f*ufac, (float)ys+UI_UNIT_Y-3.0f*ufac, UI_UNIT_Y/2.0f-2.0f*ufac);
-				glEnable(GL_BLEND); /* roundbox disables */
-			}
-			
-			tselem_draw_icon(block, xmax, (float)*offsx, (float)ys, tselem, te, 0.5f);
-			te->xs= (float)*offsx;
-			te->ys= (float)ys;
-			te->xend= (short)*offsx+UI_UNIT_X;
-			te->flag |= TE_ICONROW;	// for click
-			
-			(*offsx) += UI_UNIT_X;
-		}
-		
-		/* this tree element always has same amount of branches, so dont draw */
-		if(tselem->type!=TSE_R_LAYER)
-			outliner_draw_iconrow(C, block, scene, soops, &te->subtree, level+1, xmax, offsx, ys);
-	}
-	
-}
-
-/* closed tree element */
-static void outliner_set_coord_tree_element(SpaceOops *soops, TreeElement *te, int startx, int *starty)
-{
-	TreeElement *ten;
-	
-	/* store coord and continue, we need coordinates for elements outside view too */
-	te->xs= (float)startx;
-	te->ys= (float)(*starty);
-	
-	for(ten= te->subtree.first; ten; ten= ten->next) {
-		outliner_set_coord_tree_element(soops, ten, startx+UI_UNIT_X, starty);
-	}	
-}
-
-
-static void outliner_draw_tree_element(bContext *C, uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops, TreeElement *te, int startx, int *starty)
-{
-	TreeElement *ten;
-	TreeStoreElem *tselem;
-	float ufac= UI_UNIT_X/20.0f;
-	int offsx= 0, active=0; // active=1 active obj, else active data
-	
-	tselem= TREESTORE(te);
-
-	if(*starty+2*UI_UNIT_Y >= ar->v2d.cur.ymin && *starty<= ar->v2d.cur.ymax) {
-		int xmax= ar->v2d.cur.xmax;
-		
-		/* icons can be ui buts, we dont want it to overlap with restrict */
-		if((soops->flag & SO_HIDE_RESTRICTCOLS)==0)
-			xmax-= OL_TOGW+UI_UNIT_X;
-		
-		glEnable(GL_BLEND);
-
-		/* colors for active/selected data */
-		if(tselem->type==0) {
-			if(te->idcode==ID_SCE) {
-				if(tselem->id == (ID *)scene) {
-					glColor4ub(255, 255, 255, 100);
-					active= 2;
-				}
-			}
-			else if(te->idcode==ID_GR) {
-				Group *gr = (Group *)tselem->id;
-
-				if(group_select_flag(gr)) {
-					char col[4];
-					UI_GetThemeColorType4ubv(TH_SELECT, SPACE_VIEW3D, col);
-					col[3]= 100;
-					glColor4ubv((GLubyte *)col);
-
-					active= 2;
-				}
-			}
-			else if(te->idcode==ID_OB) {
-				Object *ob= (Object *)tselem->id;
-				
-				if(ob==OBACT || (ob->flag & SELECT)) {
-					char col[4]= {0, 0, 0, 0};
-					
-					/* outliner active ob: always white text, circle color now similar to view3d */
-					
-					active= 2; /* means it draws a color circle */
-					if(ob==OBACT) {
-						if(ob->flag & SELECT) {
-							UI_GetThemeColorType4ubv(TH_ACTIVE, SPACE_VIEW3D, col);
-							col[3]= 100;
-						}
-						
-						active= 1; /* means it draws white text */
-					}
-					else if(ob->flag & SELECT) {
-						UI_GetThemeColorType4ubv(TH_SELECT, SPACE_VIEW3D, col);
-						col[3]= 100;
-					}
-					
-					glColor4ubv((GLubyte *)col);
-				}
-
-			}
-			else if(scene->obedit && scene->obedit->data==tselem->id) {
-				glColor4ub(255, 255, 255, 100);
-				active= 2;
-			}
-			else {
-				if(tree_element_active(C, scene, soops, te, 0)) {
-					glColor4ub(220, 220, 255, 100);
-					active= 2;
-				}
-			}
-		}
-		else {
-			if( tree_element_type_active(NULL, scene, soops, te, tselem, 0) ) active= 2;
-			glColor4ub(220, 220, 255, 100);
-		}
-		
-		/* active circle */
-		if(active) {
-			uiSetRoundBox(15);
-			uiRoundBox( (float)startx+UI_UNIT_Y-1.5f*ufac, (float)*starty+2.0f*ufac, (float)startx+2.0f*UI_UNIT_Y-4.0f*ufac, (float)*starty+UI_UNIT_Y-1.0f*ufac, UI_UNIT_Y/2.0f-2.0f*ufac);
-			glEnable(GL_BLEND);	/* roundbox disables it */
-			
-			te->flag |= TE_ACTIVE; // for lookup in display hierarchies
-		}
-		
-		/* open/close icon, only when sublevels, except for scene */
-		if(te->subtree.first || (tselem->type==0 && te->idcode==ID_SCE) || (te->flag & TE_LAZY_CLOSED)) {
-			int icon_x;
-			if(tselem->type==0 && ELEM(te->idcode, ID_OB, ID_SCE))
-				icon_x = startx;
-			else
-				icon_x = startx+5*ufac;
-
-				// icons a bit higher
-			if(tselem->flag & TSE_CLOSED) 
-				UI_icon_draw((float)icon_x, (float)*starty+2*ufac, ICON_DISCLOSURE_TRI_RIGHT);
-			else
-				UI_icon_draw((float)icon_x, (float)*starty+2*ufac, ICON_DISCLOSURE_TRI_DOWN);
-		}
-		offsx+= UI_UNIT_X;
-		
-		/* datatype icon */
-		
-		if(!(ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM))) {
-			// icons a bit higher
-			tselem_draw_icon(block, xmax, (float)startx+offsx - 0.5f*ufac, (float)*starty+2.0f*ufac, tselem, te, 1.0f);
-			
-			offsx+= UI_UNIT_X;
-		}
-		else
-			offsx+= 2*ufac;
-		
-		if(tselem->type==0 && tselem->id->lib) {
-			glPixelTransferf(GL_ALPHA_SCALE, 0.5f);
-			if(tselem->id->flag & LIB_INDIRECT)
-				UI_icon_draw((float)startx+offsx, (float)*starty+2*ufac, ICON_LIBRARY_DATA_INDIRECT);
-			else
-				UI_icon_draw((float)startx+offsx, (float)*starty+2*ufac, ICON_LIBRARY_DATA_DIRECT);
-			glPixelTransferf(GL_ALPHA_SCALE, 1.0f);
-			offsx+= UI_UNIT_X;
-		}		
-		glDisable(GL_BLEND);
-
-		/* name */
-		if(active==1) UI_ThemeColor(TH_TEXT_HI);
-		else if(ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) UI_ThemeColorBlend(TH_BACK, TH_TEXT, 0.75f);
-		else UI_ThemeColor(TH_TEXT);
-		
-		UI_DrawString(startx+offsx, *starty+5*ufac, te->name);
-		
-		offsx+= (int)(UI_UNIT_X + UI_GetStringWidth(te->name));
-		
-		/* closed item, we draw the icons, not when it's a scene, or master-server list though */
-		if(tselem->flag & TSE_CLOSED) {
-			if(te->subtree.first) {
-				if(tselem->type==0 && te->idcode==ID_SCE);
-				else if(tselem->type!=TSE_R_LAYER) { /* this tree element always has same amount of branches, so dont draw */
-					int tempx= startx+offsx;
-					
-					// divider
-					UI_ThemeColorShade(TH_BACK, -40);
-					glRecti(tempx -10, *starty+4, tempx -8, *starty+UI_UNIT_Y-4);
-
-					glEnable(GL_BLEND);
-					glPixelTransferf(GL_ALPHA_SCALE, 0.5);
-
-					outliner_draw_iconrow(C, block, scene, soops, &te->subtree, 0, xmax, &tempx, *starty+2);
-
-					glPixelTransferf(GL_ALPHA_SCALE, 1.0);
-					glDisable(GL_BLEND);
-				}
-			}
-		}
-	}	
-	/* store coord and continue, we need coordinates for elements outside view too */
-	te->xs= (float)startx;
-	te->ys= (float)*starty;
-	te->xend= startx+offsx;
-		
-	if((tselem->flag & TSE_CLOSED)==0) {
-		*starty-= UI_UNIT_Y;
-		
-		for(ten= te->subtree.first; ten; ten= ten->next)
-			outliner_draw_tree_element(C, block, scene, ar, soops, ten, startx+UI_UNIT_X, starty);
-	}	
-	else {
-		for(ten= te->subtree.first; ten; ten= ten->next)
-			outliner_set_coord_tree_element(soops, te, startx, starty);
-
-		*starty-= UI_UNIT_Y;
-	}
-}
-
-static void outliner_draw_hierarchy(SpaceOops *soops, ListBase *lb, int startx, int *starty)
-{
-	TreeElement *te;
-	TreeStoreElem *tselem;
-	int y1, y2;
-	
-	if(lb->first==NULL) return;
-	
-	y1=y2= *starty; /* for vertical lines between objects */
-	for(te=lb->first; te; te= te->next) {
-		y2= *starty;
-		tselem= TREESTORE(te);
-		
-		/* horizontal line? */
-		if(tselem->type==0 && (te->idcode==ID_OB || te->idcode==ID_SCE))
-			glRecti(startx, *starty, startx+UI_UNIT_X, *starty-1);
-			
-		*starty-= UI_UNIT_Y;
-		
-		if((tselem->flag & TSE_CLOSED)==0)
-			outliner_draw_hierarchy(soops, &te->subtree, startx+UI_UNIT_X, starty);
-	}
-	
-	/* vertical line */
-	te= lb->last;
-	if(te->parent || lb->first!=lb->last) {
-		tselem= TREESTORE(te);
-		if(tselem->type==0 && te->idcode==ID_OB) {
-			
-			glRecti(startx, y1+UI_UNIT_Y, startx+1, y2);
-		}
-	}
-}
-
-static void outliner_draw_struct_marks(ARegion *ar, SpaceOops *soops, ListBase *lb, int *starty) 
-{
-	TreeElement *te;
-	TreeStoreElem *tselem;
-	
-	for(te= lb->first; te; te= te->next) {
-		tselem= TREESTORE(te);
-		
-		/* selection status */
-		if((tselem->flag & TSE_CLOSED)==0)
-			if(tselem->type == TSE_RNA_STRUCT)
-				glRecti(0, *starty+1, (int)ar->v2d.cur.xmax+V2D_SCROLL_WIDTH, *starty+UI_UNIT_Y-1);
-
-		*starty-= UI_UNIT_Y;
-		if((tselem->flag & TSE_CLOSED)==0) {
-			outliner_draw_struct_marks(ar, soops, &te->subtree, starty);
-			if(tselem->type == TSE_RNA_STRUCT)
-				fdrawline(0, (float)*starty+UI_UNIT_Y, ar->v2d.cur.xmax+V2D_SCROLL_WIDTH, (float)*starty+UI_UNIT_Y);
-		}
-	}
-}
-
-static void outliner_draw_selection(ARegion *ar, SpaceOops *soops, ListBase *lb, int *starty) 
-{
-	TreeElement *te;
-	TreeStoreElem *tselem;
-	
-	for(te= lb->first; te; te= te->next) {
-		tselem= TREESTORE(te);
-		
-		/* selection status */
-		if(tselem->flag & TSE_SELECTED) {
-			glRecti(0, *starty+1, (int)ar->v2d.cur.xmax, *starty+UI_UNIT_Y-1);
-		}
-		*starty-= UI_UNIT_Y;
-		if((tselem->flag & TSE_CLOSED)==0) outliner_draw_selection(ar, soops, &te->subtree, starty);
-	}
-}
-
-
-static void outliner_draw_tree(bContext *C, uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops)
-{
-	TreeElement *te;
-	int starty, startx;
-	float col[4];
-		
-	glBlendFunc(GL_SRC_ALPHA,  GL_ONE_MINUS_SRC_ALPHA); // only once
-	
-	if (ELEM(soops->outlinevis, SO_DATABLOCKS, SO_USERDEF)) {
-		/* struct marks */
-		UI_ThemeColorShadeAlpha(TH_BACK, -15, -200);
-		//UI_ThemeColorShade(TH_BACK, -20);
-		starty= (int)ar->v2d.tot.ymax-UI_UNIT_Y-OL_Y_OFFSET;
-		outliner_draw_struct_marks(ar, soops, &soops->tree, &starty);
-	}
-	
-	/* always draw selection fill before hierarchy */
-	UI_GetThemeColor3fv(TH_BACK, col);
-	glColor3f(col[0]+0.06f, col[1]+0.08f, col[2]+0.10f);
-	starty= (int)ar->v2d.tot.ymax-UI_UNIT_Y-OL_Y_OFFSET;
-	outliner_draw_selection(ar, soops, &soops->tree, &starty);
-	
-	// grey hierarchy lines
-	UI_ThemeColorBlend(TH_BACK, TH_TEXT, 0.4f);
-	starty= (int)ar->v2d.tot.ymax-UI_UNIT_Y/2-OL_Y_OFFSET;
-	startx= 6;
-	outliner_draw_hierarchy(soops, &soops->tree, startx, &starty);
-	
-	// items themselves
-	starty= (int)ar->v2d.tot.ymax-UI_UNIT_Y-OL_Y_OFFSET;
-	startx= 0;
-	for(te= soops->tree.first; te; te= te->next) {
-		outliner_draw_tree_element(C, block, scene, ar, soops, te, startx, &starty);
-	}
-}
-
-
-static void outliner_back(ARegion *ar)
-{
-	int ystart;
-	
-	UI_ThemeColorShade(TH_BACK, 6);
-	ystart= (int)ar->v2d.tot.ymax;
-	ystart= UI_UNIT_Y*(ystart/(UI_UNIT_Y))-OL_Y_OFFSET;
-	
-	while(ystart+2*UI_UNIT_Y > ar->v2d.cur.ymin) {
-		glRecti(0, ystart, (int)ar->v2d.cur.xmax+V2D_SCROLL_WIDTH, ystart+UI_UNIT_Y);
-		ystart-= 2*UI_UNIT_Y;
-	}
-}
-
-static void outliner_draw_restrictcols(ARegion *ar)
-{
-	int ystart;
-	
-	/* background underneath */
-	UI_ThemeColor(TH_BACK);
-	glRecti((int)ar->v2d.cur.xmax-OL_TOGW, (int)ar->v2d.cur.ymin-V2D_SCROLL_HEIGHT-1, (int)ar->v2d.cur.xmax+V2D_SCROLL_WIDTH, (int)ar->v2d.cur.ymax);
-	
-	UI_ThemeColorShade(TH_BACK, 6);
-	ystart= (int)ar->v2d.tot.ymax;
-	ystart= UI_UNIT_Y*(ystart/(UI_UNIT_Y))-OL_Y_OFFSET;
-	
-	while(ystart+2*UI_UNIT_Y > ar->v2d.cur.ymin) {
-		glRecti((int)ar->v2d.cur.xmax-OL_TOGW, ystart, (int)ar->v2d.cur.xmax, ystart+UI_UNIT_Y);
-		ystart-= 2*UI_UNIT_Y;
-	}
-	
-	UI_ThemeColorShadeAlpha(TH_BACK, -15, -200);
-
-	/* view */
-	fdrawline(ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX,
-		ar->v2d.cur.ymax,
-		ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX,
-		ar->v2d.cur.ymin - V2D_SCROLL_HEIGHT);
-
-	/* render */
-	fdrawline(ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX,
-		ar->v2d.cur.ymax,
-		ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX,
-		ar->v2d.cur.ymin - V2D_SCROLL_HEIGHT);
-
-	/* render */
-	fdrawline(ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX,
-		ar->v2d.cur.ymax,
-		ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX,
-		ar->v2d.cur.ymin - V2D_SCROLL_HEIGHT);
-}
-
-static void restrictbutton_view_cb(bContext *C, void *poin, void *poin2)
-{
-	Scene *scene = (Scene *)poin;
-	Object *ob = (Object *)poin2;
-
-	if(!common_restrict_check(C, ob)) return;
-	
-	/* deselect objects that are invisible */
-	if (ob->restrictflag & OB_RESTRICT_VIEW) {
-		/* Ouch! There is no backwards pointer from Object to Base, 
-		 * so have to do loop to find it. */
-		ED_base_object_select(object_in_scene(ob, scene), BA_DESELECT);
-	}
-	WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene);
-
-}
-
-static void restrictbutton_sel_cb(bContext *C, void *poin, void *poin2)
-{
-	Scene *scene = (Scene *)poin;
-	Object *ob = (Object *)poin2;
-	
-	if(!common_restrict_check(C, ob)) return;
-	
-	/* if select restriction has just been turned on */
-	if (ob->restrictflag & OB_RESTRICT_SELECT) {
-		/* Ouch! There is no backwards pointer from Object to Base, 
-		 * so have to do loop to find it. */
-		ED_base_object_select(object_in_scene(ob, scene), BA_DESELECT);
-	}
-	WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene);
-
-}
-
-static void restrictbutton_rend_cb(bContext *C, void *poin, void *UNUSED(poin2))
-{
-	WM_event_add_notifier(C, NC_SCENE|ND_OB_RENDER, poin);
-}
-
-static void restrictbutton_r_lay_cb(bContext *C, void *poin, void *UNUSED(poin2))
-{
-	WM_event_add_notifier(C, NC_SCENE|ND_RENDER_OPTIONS, poin);
-}
-
-static void restrictbutton_modifier_cb(bContext *C, void *UNUSED(poin), void *poin2)
-{
-	Object *ob = (Object *)poin2;
-	
-	DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
-
-	WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
-}
-
-static void restrictbutton_bone_cb(bContext *C, void *UNUSED(poin), void *poin2)
-{
-	Bone *bone= (Bone *)poin2;
-	if(bone && (bone->flag & BONE_HIDDEN_P))
-		bone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL);
-	WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL);
-}
-
-static void restrictbutton_ebone_cb(bContext *C, void *UNUSED(poin), void *poin2)
-{
-	EditBone *ebone= (EditBone *)poin2;
-	if(ebone && (ebone->flag & BONE_HIDDEN_A))
-		ebone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL);
-
-	WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL);
-}
-
-static int group_restrict_flag(Group *gr, int flag)
-{
-	GroupObject *gob;
-
-	for(gob= gr->gobject.first; gob; gob= gob->next) {
-		if((gob->ob->restrictflag & flag) == 0)
-			return 0;
-	}
-
-	return 1;
-}
-
-static int group_select_flag(Group *gr)
-{
-	GroupObject *gob;
-
-	for(gob= gr->gobject.first; gob; gob= gob->next)
-		if((gob->ob->flag & SELECT))
-			return 1;
-
-	return 0;
-}
-
-static void restrictbutton_gr_restrict_flag(void *poin, void *poin2, int flag)
-{	
-	Scene *scene = (Scene *)poin;		
-	GroupObject *gob;
-	Group *gr = (Group *)poin2; 	
-
-	if(group_restrict_flag(gr, flag)) {
-		for(gob= gr->gobject.first; gob; gob= gob->next) {
-			gob->ob->restrictflag &= ~flag;
-
-			if(flag==OB_RESTRICT_VIEW)
-				if(gob->ob->flag & SELECT)
-					ED_base_object_select(object_in_scene(gob->ob, scene), BA_DESELECT);
-		}
-	}
-	else {
-		for(gob= gr->gobject.first; gob; gob= gob->next) {
-			/* not in editmode */
-			if(scene->obedit!=gob->ob) {
-				gob->ob->restrictflag |= flag;
-
-				if(flag==OB_RESTRICT_VIEW)
-					if((gob->ob->flag & SELECT) == 0)
-						ED_base_object_select(object_in_scene(gob->ob, scene), BA_SELECT);
-			}
-		}
-	}
-} 
-
-static void restrictbutton_gr_restrict_view(bContext *C, void *poin, void *poin2)
-{
-	restrictbutton_gr_restrict_flag(poin, poin2, OB_RESTRICT_VIEW);
-	WM_event_add_notifier(C, NC_GROUP, NULL);
-}
-static void restrictbutton_gr_restrict_select(bContext *C, void *poin, void *poin2)
-{
-	restrictbutton_gr_restrict_flag(poin, poin2, OB_RESTRICT_SELECT);
-	WM_event_add_notifier(C, NC_GROUP, NULL);
-}
-static void restrictbutton_gr_restrict_render(bContext *C, void *poin, void *poin2)
-{
-	restrictbutton_gr_restrict_flag(poin, poin2, OB_RESTRICT_RENDER);
-	WM_event_add_notifier(C, NC_GROUP, NULL);
-}
-
-
-static void namebutton_cb(bContext *C, void *tsep, char *oldname)
-{
-	SpaceOops *soops= CTX_wm_space_outliner(C);
-	Scene *scene= CTX_data_scene(C);
-	Object *obedit= CTX_data_edit_object(C);
-	TreeStore *ts= soops->treestore;
-	TreeStoreElem *tselem= tsep;
-	
-	if(ts && tselem) {
-		TreeElement *te= outliner_find_tse(soops, tselem);
-		
-		if(tselem->type==0) {
-			test_idbutton(tselem->id->name+2);	// library.c, unique name and alpha sort
-			
-			switch(GS(tselem->id->name)) {
-				case ID_MA:
-					WM_event_add_notifier(C, NC_MATERIAL, NULL); break;
-				case ID_TE:
-					WM_event_add_notifier(C, NC_TEXTURE, NULL); break;
-				case ID_IM:
-					WM_event_add_notifier(C, NC_IMAGE, NULL); break;
-				case ID_SCE:
-					WM_event_add_notifier(C, NC_SCENE, NULL); break;
-				default:
-					WM_event_add_notifier(C, NC_ID|NA_RENAME, NULL); break;
-			}					
-			/* Check the library target exists */
-			if (te->idcode == ID_LI) {
-				char expanded[FILE_MAXDIR + FILE_MAXFILE];
-				BLI_strncpy(expanded, ((Library *)tselem->id)->name, FILE_MAXDIR + FILE_MAXFILE);
-				BLI_path_abs(expanded, G.main->name);
-				if (!BLI_exists(expanded)) {
-					error("This path does not exist, correct this before saving");
-				}
-			}
-		}
-		else {
-			switch(tselem->type) {
-			case TSE_DEFGROUP:
-				defgroup_unique_name(te->directdata, (Object *)tselem->id); //	id = object
-				break;
-			case TSE_NLA_ACTION:
-				test_idbutton(tselem->id->name+2);
-				break;
-			case TSE_EBONE:
-			{
-				bArmature *arm= (bArmature *)tselem->id;
-				if(arm->edbo) {
-					EditBone *ebone= te->directdata;
-					char newname[sizeof(ebone->name)];
-					
-					/* restore bone name */
-					BLI_strncpy(newname, ebone->name, sizeof(ebone->name));
-					BLI_strncpy(ebone->name, oldname, sizeof(ebone->name));
-					ED_armature_bone_rename(obedit->data, oldname, newname);
-					WM_event_add_notifier(C, NC_OBJECT|ND_POSE, OBACT);
-				}
-			}
-				break;
-
-			case TSE_BONE:
-				{
-					Bone *bone= te->directdata;
-					Object *ob;
-					char newname[sizeof(bone->name)];
-					
-					// always make current object active
-					tree_element_set_active_object(C, scene, soops, te, 1);
-					ob= OBACT;
-					
-					/* restore bone name */
-					BLI_strncpy(newname, bone->name, sizeof(bone->name));
-					BLI_strncpy(bone->name, oldname, sizeof(bone->name));
-					ED_armature_bone_rename(ob->data, oldname, newname);
-					WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob);
-				}
-				break;
-			case TSE_POSE_CHANNEL:
-				{
-					bPoseChannel *pchan= te->directdata;
-					Object *ob;
-					char newname[sizeof(pchan->name)];
-					
-					// always make current object active
-					tree_element_set_active_object(C, scene, soops, te, 1);
-					ob= OBACT;
-					
-					/* restore bone name */
-					BLI_strncpy(newname, pchan->name, sizeof(pchan->name));
-					BLI_strncpy(pchan->name, oldname, sizeof(pchan->name));
-					ED_armature_bone_rename(ob->data, oldname, newname);
-					WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob);
-				}
-				break;
-			case TSE_POSEGRP:
-				{
-					Object *ob= (Object *)tselem->id; // id = object
-					bActionGroup *grp= te->directdata;
-					
-					BLI_uniquename(&ob->pose->agroups, grp, "Group", '.', offsetof(bActionGroup, name), sizeof(grp->name));
-					WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob);
-				}
-				break;
-			case TSE_R_LAYER:
-				break;
-			}
-		}
-		tselem->flag &= ~TSE_TEXTBUT;
-	}
-}
-
-static void outliner_draw_restrictbuts(uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops, ListBase *lb)
-{	
-	uiBut *bt;
-	TreeElement *te;
-	TreeStoreElem *tselem;
-	Object *ob = NULL;
-	Group  *gr = NULL;
-
-	for(te= lb->first; te; te= te->next) {
-		tselem= TREESTORE(te);
-		if(te->ys+2*UI_UNIT_Y >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) {	
-			/* objects have toggle-able restriction flags */
-			if(tselem->type==0 && te->idcode==ID_OB) {
-				PointerRNA ptr;
-
-				ob = (Object *)tselem->id;
-				RNA_pointer_create((ID *)ob, &RNA_Object, ob, &ptr);
-				
-				uiBlockSetEmboss(block, UI_EMBOSSN);
-				bt= uiDefIconButR(block, ICONTOG, 0, ICON_RESTRICT_VIEW_OFF,
-							  (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1,
-							  &ptr, "hide", -1, 0, 0, -1, -1, NULL);
-				uiButSetFunc(bt, restrictbutton_view_cb, scene, ob);
-				
-				bt= uiDefIconButR(block, ICONTOG, 0, ICON_RESTRICT_SELECT_OFF,
-								  (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1,
-								  &ptr, "hide_select", -1, 0, 0, -1, -1, NULL);
-				uiButSetFunc(bt, restrictbutton_sel_cb, scene, ob);
-				
-				bt= uiDefIconButR(block, ICONTOG, 0, ICON_RESTRICT_RENDER_OFF,
-								  (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1,
-								  &ptr, "hide_render", -1, 0, 0, -1, -1, NULL);
-				uiButSetFunc(bt, restrictbutton_rend_cb, scene, ob);
-				
-				uiBlockSetEmboss(block, UI_EMBOSS);
-				
-			}
-			if(tselem->type==0 && te->idcode==ID_GR){ 
-				int restrict_bool;
-				gr = (Group *)tselem->id;
-
-				uiBlockSetEmboss(block, UI_EMBOSSN);
-
-				restrict_bool= group_restrict_flag(gr, OB_RESTRICT_VIEW);
-				bt = uiDefIconBut(block, BUT, 0, restrict_bool ? ICON_RESTRICT_VIEW_ON : ICON_RESTRICT_VIEW_OFF, (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, NULL, 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View");
-				uiButSetFunc(bt, restrictbutton_gr_restrict_view, scene, gr);
-
-				restrict_bool= group_restrict_flag(gr, OB_RESTRICT_SELECT);
-				bt = uiDefIconBut(block, BUT, 0, restrict_bool ? ICON_RESTRICT_SELECT_ON : ICON_RESTRICT_SELECT_OFF, (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, NULL, 0, 0, 0, 0, "Restrict/Allow selection in the 3D View");
-				uiButSetFunc(bt, restrictbutton_gr_restrict_select, scene, gr);
-
-				restrict_bool= group_restrict_flag(gr, OB_RESTRICT_RENDER);
-				bt = uiDefIconBut(block, BUT, 0, restrict_bool ? ICON_RESTRICT_RENDER_ON : ICON_RESTRICT_RENDER_OFF, (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, NULL, 0, 0, 0, 0, "Restrict/Allow renderability");
-				uiButSetFunc(bt, restrictbutton_gr_restrict_render, scene, gr);
-
-				uiBlockSetEmboss(block, UI_EMBOSS);
-			}
-			/* scene render layers and passes have toggle-able flags too! */
-			else if(tselem->type==TSE_R_LAYER) {
-				uiBlockSetEmboss(block, UI_EMBOSSN);
-				
-				bt= uiDefIconButBitI(block, ICONTOGN, SCE_LAY_DISABLE, 0, ICON_CHECKBOX_HLT-1, 
-									 (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, te->directdata, 0, 0, 0, 0, "Render this RenderLayer");
-				uiButSetFunc(bt, restrictbutton_r_lay_cb, tselem->id, NULL);
-				
-				uiBlockSetEmboss(block, UI_EMBOSS);
-			}
-			else if(tselem->type==TSE_R_PASS) {
-				int *layflag= te->directdata;
-				int passflag= 1<<tselem->nr;
-				
-				uiBlockSetEmboss(block, UI_EMBOSSN);
-				
-				
-				bt= uiDefIconButBitI(block, ICONTOG, passflag, 0, ICON_CHECKBOX_HLT-1, 
-									 (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, layflag, 0, 0, 0, 0, "Render this Pass");
-				uiButSetFunc(bt, restrictbutton_r_lay_cb, tselem->id, NULL);
-				
-				layflag++;	/* is lay_xor */
-				if(ELEM8(passflag, SCE_PASS_SPEC, SCE_PASS_SHADOW, SCE_PASS_AO, SCE_PASS_REFLECT, SCE_PASS_REFRACT, SCE_PASS_INDIRECT, SCE_PASS_EMIT, SCE_PASS_ENVIRONMENT))
-					bt= uiDefIconButBitI(block, TOG, passflag, 0, (*layflag & passflag)?ICON_DOT:ICON_BLANK1, 
-									 (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, layflag, 0, 0, 0, 0, "Exclude this Pass from Combined");
-				uiButSetFunc(bt, restrictbutton_r_lay_cb, tselem->id, NULL);
-				
-				uiBlockSetEmboss(block, UI_EMBOSS);
-			}
-			else if(tselem->type==TSE_MODIFIER)  {
-				ModifierData *md= (ModifierData *)te->directdata;
-				ob = (Object *)tselem->id;
-				
-				uiBlockSetEmboss(block, UI_EMBOSSN);
-				bt= uiDefIconButBitI(block, ICONTOGN, eModifierMode_Realtime, 0, ICON_RESTRICT_VIEW_OFF, 
-						(int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(md->mode), 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View");
-				uiButSetFunc(bt, restrictbutton_modifier_cb, scene, ob);
-				
-				bt= uiDefIconButBitI(block, ICONTOGN, eModifierMode_Render, 0, ICON_RESTRICT_RENDER_OFF, 
-						(int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(md->mode), 0, 0, 0, 0, "Restrict/Allow renderability");
-				uiButSetFunc(bt, restrictbutton_modifier_cb, scene, ob);
-			}
-			else if(tselem->type==TSE_POSE_CHANNEL)  {
-				bPoseChannel *pchan= (bPoseChannel *)te->directdata;
-				Bone *bone = pchan->bone;
-				
-				uiBlockSetEmboss(block, UI_EMBOSSN);
-				bt= uiDefIconButBitI(block, ICONTOG, BONE_HIDDEN_P, 0, ICON_RESTRICT_VIEW_OFF, 
-						(int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(bone->flag), 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View");
-				uiButSetFunc(bt, restrictbutton_bone_cb, NULL, bone);
-				
-				bt= uiDefIconButBitI(block, ICONTOG, BONE_UNSELECTABLE, 0, ICON_RESTRICT_SELECT_OFF, 
-						(int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(bone->flag), 0, 0, 0, 0, "Restrict/Allow selection in the 3D View");
-				uiButSetFunc(bt, restrictbutton_bone_cb, NULL, NULL);
-			}
-			else if(tselem->type==TSE_EBONE)  {
-				EditBone *ebone= (EditBone *)te->directdata;
-				
-				uiBlockSetEmboss(block, UI_EMBOSSN);
-				bt= uiDefIconButBitI(block, ICONTOG, BONE_HIDDEN_A, 0, ICON_RESTRICT_VIEW_OFF, 
-						(int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(ebone->flag), 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View");
-				uiButSetFunc(bt, restrictbutton_ebone_cb, NULL, ebone);
-				
-				bt= uiDefIconButBitI(block, ICONTOG, BONE_UNSELECTABLE, 0, ICON_RESTRICT_SELECT_OFF, 
-						(int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(ebone->flag), 0, 0, 0, 0, "Restrict/Allow selection in the 3D View");
-				uiButSetFunc(bt, restrictbutton_ebone_cb, NULL, NULL);
-			}
-		}
-		
-		if((tselem->flag & TSE_CLOSED)==0) outliner_draw_restrictbuts(block, scene, ar, soops, &te->subtree);
-	}
-}
-
-static void outliner_draw_rnacols(ARegion *ar, int sizex)
-{
-	View2D *v2d= &ar->v2d;
-
-	float miny = v2d->cur.ymin-V2D_SCROLL_HEIGHT;
-	if(miny<v2d->tot.ymin) miny = v2d->tot.ymin;
-
-	UI_ThemeColorShadeAlpha(TH_BACK, -15, -200);
-
-	/* draw column separator lines */
-	fdrawline((float)sizex,
-		v2d->cur.ymax,
-		(float)sizex,
-		miny);
-
-	fdrawline((float)sizex+OL_RNA_COL_SIZEX,
-		v2d->cur.ymax,
-		(float)sizex+OL_RNA_COL_SIZEX,
-		miny);
-}
-
-static void outliner_draw_rnabuts(uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops, int sizex, ListBase *lb)
-{	
-	TreeElement *te;
-	TreeStoreElem *tselem;
-	PointerRNA *ptr;
-	PropertyRNA *prop;
-	
-	uiBlockSetEmboss(block, UI_EMBOSST);
-
-	for(te= lb->first; te; te= te->next) {
-		tselem= TREESTORE(te);
-		if(te->ys+2*UI_UNIT_Y >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) {	
-			if(tselem->type == TSE_RNA_PROPERTY) {
-				ptr= &te->rnaptr;
-				prop= te->directdata;
-				
-				if(!(RNA_property_type(prop) == PROP_POINTER && (tselem->flag & TSE_CLOSED)==0))
-					uiDefAutoButR(block, ptr, prop, -1, "", ICON_NONE, sizex, (int)te->ys, OL_RNA_COL_SIZEX, UI_UNIT_Y-1);
-			}
-			else if(tselem->type == TSE_RNA_ARRAY_ELEM) {
-				ptr= &te->rnaptr;
-				prop= te->directdata;
-				
-				uiDefAutoButR(block, ptr, prop, te->index, "", ICON_NONE, sizex, (int)te->ys, OL_RNA_COL_SIZEX, UI_UNIT_Y-1);
-			}
-		}
-		
-		if((tselem->flag & TSE_CLOSED)==0) outliner_draw_rnabuts(block, scene, ar, soops, sizex, &te->subtree);
-	}
-}
-
-static void operator_call_cb(struct bContext *UNUSED(C), void *arg_kmi, void *arg2)
-{
-	wmOperatorType *ot= arg2;
-	wmKeyMapItem *kmi= arg_kmi;
-	
-	if(ot)
-		BLI_strncpy(kmi->idname, ot->idname, OP_MAX_TYPENAME);
-}
-
-static void operator_search_cb(const struct bContext *UNUSED(C), void *UNUSED(arg_kmi), const char *str, uiSearchItems *items)
-{
-	wmOperatorType *ot = WM_operatortype_first();
-	
-	for(; ot; ot= ot->next) {
-		
-		if(BLI_strcasestr(ot->idname, str)) {
-			char name[OP_MAX_TYPENAME];
-			
-			/* display name for menu */
-			WM_operator_py_idname(name, ot->idname);
-			
-			if(0==uiSearchItemAdd(items, name, ot, 0))
-				break;
-		}
-	}
-}
-
-/* operator Search browse menu, open */
-static uiBlock *operator_search_menu(bContext *C, ARegion *ar, void *arg_kmi)
-{
-	static char search[OP_MAX_TYPENAME];
-	wmEvent event;
-	wmWindow *win= CTX_wm_window(C);
-	wmKeyMapItem *kmi= arg_kmi;
-	wmOperatorType *ot= WM_operatortype_find(kmi->idname, 0);
-	uiBlock *block;
-	uiBut *but;
-	
-	/* clear initial search string, then all items show */
-	search[0]= 0;
-	
-	block= uiBeginBlock(C, ar, "_popup", UI_EMBOSS);
-	uiBlockSetFlag(block, UI_BLOCK_LOOP|UI_BLOCK_REDRAW|UI_BLOCK_RET_1);
-	
-	/* fake button, it holds space for search items */
-	uiDefBut(block, LABEL, 0, "", 10, 15, 150, uiSearchBoxhHeight(), NULL, 0, 0, 0, 0, NULL);
-	
-	but= uiDefSearchBut(block, search, 0, ICON_VIEWZOOM, 256, 10, 0, 150, UI_UNIT_Y, 0, 0, "");
-	uiButSetSearchFunc(but, operator_search_cb, arg_kmi, operator_call_cb, ot);
-	
-	uiBoundsBlock(block, 6);
-	uiBlockSetDirection(block, UI_DOWN);	
-	uiEndBlock(C, block);
-	
-	event= *(win->eventstate);	/* XXX huh huh? make api call */
-	event.type= EVT_BUT_OPEN;
-	event.val= KM_PRESS;
-	event.customdata= but;
-	event.customdatafree= FALSE;
-	wm_event_add(win, &event);
-	
-	return block;
-}
-
-#define OL_KM_KEYBOARD		0
-#define OL_KM_MOUSE			1
-#define OL_KM_TWEAK			2
-#define OL_KM_SPECIALS		3
-
-static short keymap_menu_type(short type)
-{
-	if(ISKEYBOARD(type)) return OL_KM_KEYBOARD;
-	if(ISTWEAK(type)) return OL_KM_TWEAK;
-	if(ISMOUSE(type)) return OL_KM_MOUSE;
-//	return OL_KM_SPECIALS;
-	return 0;
-}
-
-static const char *keymap_type_menu(void)
-{
-	static const char string[]=
-	"Event Type%t"
-	"|Keyboard%x" STRINGIFY(OL_KM_KEYBOARD)
-	"|Mouse%x" STRINGIFY(OL_KM_MOUSE)
-	"|Tweak%x" STRINGIFY(OL_KM_TWEAK)
-//	"|Specials%x" STRINGIFY(OL_KM_SPECIALS)
-	;
-
-	return string;
-}
-
-static const char *keymap_mouse_menu(void)
-{
-	static const char string[]=
-	"Mouse Event%t"
-	"|Left Mouse%x" STRINGIFY(LEFTMOUSE)
-	"|Middle Mouse%x" STRINGIFY(MIDDLEMOUSE)
-	"|Right Mouse%x" STRINGIFY(RIGHTMOUSE)
-	"|Middle Mouse%x" STRINGIFY(MIDDLEMOUSE)
-	"|Right Mouse%x" STRINGIFY(RIGHTMOUSE)
-	"|Button4 Mouse%x" STRINGIFY(BUTTON4MOUSE)
-	"|Button5 Mouse%x" STRINGIFY(BUTTON5MOUSE)
-	"|Action Mouse%x" STRINGIFY(ACTIONMOUSE)
-	"|Select Mouse%x" STRINGIFY(SELECTMOUSE)
-	"|Mouse Move%x" STRINGIFY(MOUSEMOVE)
-	"|Wheel Up%x" STRINGIFY(WHEELUPMOUSE)
-	"|Wheel Down%x" STRINGIFY(WHEELDOWNMOUSE)
-	"|Wheel In%x" STRINGIFY(WHEELINMOUSE)
-	"|Wheel Out%x" STRINGIFY(WHEELOUTMOUSE)
-	"|Mouse/Trackpad Pan%x" STRINGIFY(MOUSEPAN)
-	"|Mouse/Trackpad Zoom%x" STRINGIFY(MOUSEZOOM)
-	"|Mouse/Trackpad Rotate%x" STRINGIFY(MOUSEROTATE)
-	;
-
-	return string;
-}
-
-static const char *keymap_tweak_menu(void)
-{
-	static const char string[]=
-	"Tweak Event%t"
-	"|Left Mouse%x" STRINGIFY(EVT_TWEAK_L)
-	"|Middle Mouse%x" STRINGIFY(EVT_TWEAK_M)
-	"|Right Mouse%x" STRINGIFY(EVT_TWEAK_R)
-	"|Action Mouse%x" STRINGIFY(EVT_TWEAK_A)
-	"|Select Mouse%x" STRINGIFY(EVT_TWEAK_S)
-	;
-
-	return string;
-}
-
-static const char *keymap_tweak_dir_menu(void)
-{
-	static const char string[]=
-	"Tweak Direction%t"
-	"|Any%x" STRINGIFY(KM_ANY)
-	"|North%x" STRINGIFY(EVT_GESTURE_N)
-	"|North-East%x" STRINGIFY(EVT_GESTURE_NE)
-	"|East%x" STRINGIFY(EVT_GESTURE_E)
-	"|Sout-East%x" STRINGIFY(EVT_GESTURE_SE)
-	"|South%x" STRINGIFY(EVT_GESTURE_S)
-	"|South-West%x" STRINGIFY(EVT_GESTURE_SW)
-	"|West%x" STRINGIFY(EVT_GESTURE_W)
-	"|North-West%x" STRINGIFY(EVT_GESTURE_NW)
-	;
-
-	return string;
-}
-
-
-static void keymap_type_cb(bContext *C, void *kmi_v, void *UNUSED(arg_v))
-{
-	wmKeyMapItem *kmi= kmi_v;
-	short maptype= keymap_menu_type(kmi->type);
-	
-	if(maptype!=kmi->maptype) {
-		switch(kmi->maptype) {
-			case OL_KM_KEYBOARD:
-				kmi->type= AKEY;
-				kmi->val= KM_PRESS;
-				break;
-			case OL_KM_MOUSE:
-				kmi->type= LEFTMOUSE;
-				kmi->val= KM_PRESS;
-				break;
-			case OL_KM_TWEAK:
-				kmi->type= EVT_TWEAK_L;
-				kmi->val= KM_ANY;
-				break;
-			case OL_KM_SPECIALS:
-				kmi->type= AKEY;
-				kmi->val= KM_PRESS;
-		}
-		ED_region_tag_redraw(CTX_wm_region(C));
-	}
-}
-
-static void outliner_draw_keymapbuts(uiBlock *block, ARegion *ar, SpaceOops *soops, ListBase *lb)
-{
-	TreeElement *te;
-	TreeStoreElem *tselem;
-	
-	uiBlockSetEmboss(block, UI_EMBOSST);
-	
-	for(te= lb->first; te; te= te->next) {
-		tselem= TREESTORE(te);
-		if(te->ys+2*UI_UNIT_Y >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) {
-			uiBut *but;
-			const char *str;
-			int xstart= 240;
-			int butw1= UI_UNIT_X; /* operator */
-			int butw2= 90; /* event type, menus */
-			int butw3= 43; /* modifiers */
-
-			if(tselem->type == TSE_KEYMAP_ITEM) {
-				wmKeyMapItem *kmi= te->directdata;
-				
-				/* modal map? */
-				if(kmi->propvalue);
-				else {
-					uiDefBlockBut(block, operator_search_menu, kmi, "", xstart, (int)te->ys+1, butw1, UI_UNIT_Y-1, "Assign new Operator");
-				}
-				xstart+= butw1+10;
-				
-				/* map type button */
-				kmi->maptype= keymap_menu_type(kmi->type);
-				
-				str= keymap_type_menu();
-				but= uiDefButS(block, MENU, 0, str,	xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->maptype, 0, 0, 0, 0, "Event type");
-				uiButSetFunc(but, keymap_type_cb, kmi, NULL);
-				xstart+= butw2+5;
-				
-				/* edit actual event */
-				switch(kmi->maptype) {
-					case OL_KM_KEYBOARD:
-						uiDefKeyevtButS(block, 0, "", xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->type, "Key code");
-						xstart+= butw2+5;
-						break;
-					case OL_KM_MOUSE:
-						str= keymap_mouse_menu();
-						uiDefButS(block, MENU, 0, str, xstart,(int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->type, 0, 0, 0, 0,  "Mouse button");	
-						xstart+= butw2+5;
-						break;
-					case OL_KM_TWEAK:
-						str= keymap_tweak_menu();
-						uiDefButS(block, MENU, 0, str, xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->type, 0, 0, 0, 0,  "Tweak gesture");	
-						xstart+= butw2+5;
-						str= keymap_tweak_dir_menu();
-						uiDefButS(block, MENU, 0, str, xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->val, 0, 0, 0, 0,  "Tweak gesture direction");	
-						xstart+= butw2+5;
-						break;
-				}
-				
-				/* modifiers */
-				uiDefButS(block, OPTION, 0, "Shift",	xstart, (int)te->ys+1, butw3+5, UI_UNIT_Y-1, &kmi->shift, 0, 0, 0, 0, "Modifier"); xstart+= butw3+5;
-				uiDefButS(block, OPTION, 0, "Ctrl",	xstart, (int)te->ys+1, butw3, UI_UNIT_Y-1, &kmi->ctrl, 0, 0, 0, 0, "Modifier"); xstart+= butw3;
-				uiDefButS(block, OPTION, 0, "Alt",	xstart, (int)te->ys+1, butw3, UI_UNIT_Y-1, &kmi->alt, 0, 0, 0, 0, "Modifier"); xstart+= butw3;
-				uiDefButS(block, OPTION, 0, "OS",	xstart, (int)te->ys+1, butw3, UI_UNIT_Y-1, &kmi->oskey, 0, 0, 0, 0, "Modifier"); xstart+= butw3;
-				xstart+= 5;
-				uiDefKeyevtButS(block, 0, "", xstart, (int)te->ys+1, butw3, UI_UNIT_Y-1, &kmi->keymodifier, "Key Modifier code");
-				xstart+= butw3+5;
-				
-				/* rna property */
-				if(kmi->ptr && kmi->ptr->data) {
-					uiDefBut(block, LABEL, 0, "(RNA property)",	xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->oskey, 0, 0, 0, 0, ""); xstart+= butw2;
-				}
-
-				(void)xstart;
-			}
-		}
-		
-		if((tselem->flag & TSE_CLOSED)==0) outliner_draw_keymapbuts(block, ar, soops, &te->subtree);
-	}
-}
-
-
-static void outliner_buttons(const bContext *C, uiBlock *block, ARegion *ar, SpaceOops *soops, ListBase *lb)
-{
-	uiBut *bt;
-	TreeElement *te;
-	TreeStoreElem *tselem;
-	int spx, dx, len;
-	
-	for(te= lb->first; te; te= te->next) {
-		tselem= TREESTORE(te);
-		if(te->ys+2*UI_UNIT_Y >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) {
-			
-			if(tselem->flag & TSE_TEXTBUT) {
-				
-				/* If we add support to rename Sequence.
-				 * need change this.
-				 */
-				if(tselem->type == TSE_POSE_BASE) continue; // prevent crash when trying to rename 'pose' entry of armature
-				
-				if(tselem->type==TSE_EBONE) len = sizeof(((EditBone*) 0)->name);
-				else if (tselem->type==TSE_MODIFIER) len = sizeof(((ModifierData*) 0)->name);
-				else if(tselem->id && GS(tselem->id->name)==ID_LI) len = sizeof(((Library*) 0)->name);
-				else len= MAX_ID_NAME-2;
-				
-
-				dx= (int)UI_GetStringWidth(te->name);
-				if(dx<100) dx= 100;
-				spx=te->xs+2*UI_UNIT_X-4;
-				if(spx+dx+10>ar->v2d.cur.xmax) dx = ar->v2d.cur.xmax-spx-10;
-
-				bt= uiDefBut(block, TEX, OL_NAMEBUTTON, "", spx, (int)te->ys, dx+10, UI_UNIT_Y-1, (void *)te->name, 1.0, (float)len, 0, 0, "");
-				uiButSetRenameFunc(bt, namebutton_cb, tselem);
-				
-				/* returns false if button got removed */
-				if( 0 == uiButActiveOnly(C, block, bt) )
-					tselem->flag &= ~TSE_TEXTBUT;
-			}
-		}
-		
-		if((tselem->flag & TSE_CLOSED)==0) outliner_buttons(C, block, ar, soops, &te->subtree);
-	}
-}
-
-void draw_outliner(const bContext *C)
-{
-	Main *mainvar= CTX_data_main(C);
-	Scene *scene= CTX_data_scene(C);
-	ARegion *ar= CTX_wm_region(C);
-	View2D *v2d= &ar->v2d;
-	SpaceOops *soops= CTX_wm_space_outliner(C);
-	uiBlock *block;
-	int sizey= 0, sizex= 0, sizex_rna= 0;
-	
-	outliner_build_tree(mainvar, scene, soops); // always 
-	
-	/* get extents of data */
-	outliner_height(soops, &soops->tree, &sizey);
-
-	if (ELEM3(soops->outlinevis, SO_DATABLOCKS, SO_USERDEF, SO_KEYMAP)) {
-		/* RNA has two columns:
-		 * 	- column 1 is (max_width + OL_RNA_COL_SPACEX) or
-		 *				 (OL_RNA_COL_X), whichever is wider...
-		 *	- column 2 is fixed at OL_RNA_COL_SIZEX
-		 *
-		 *  (*) XXX max width for now is a fixed factor of UI_UNIT_X*(max_indention+100)
-		 */
-		 
-		/* get actual width of column 1 */
-		outliner_rna_width(soops, &soops->tree, &sizex_rna, 0);
-		sizex_rna= MAX2(OL_RNA_COLX, sizex_rna+OL_RNA_COL_SPACEX);
-		
-		/* get width of data (for setting 'tot' rect, this is column 1 + column 2 + a bit extra) */
-		if (soops->outlinevis == SO_KEYMAP) 
-			sizex= sizex_rna + OL_RNA_COL_SIZEX*3 + 50; // XXX this is only really a quick hack to make this wide enough...
-		else
-			sizex= sizex_rna + OL_RNA_COL_SIZEX + 50;
-	}
-	else {
-		/* width must take into account restriction columns (if visible) so that entries will still be visible */
-		//outliner_width(soops, &soops->tree, &sizex);
-		outliner_rna_width(soops, &soops->tree, &sizex, 0); // XXX should use outliner_width instead when te->xend will be set correctly...
-		
-		/* constant offset for restriction columns */
-		// XXX this isn't that great yet...
-		if ((soops->flag & SO_HIDE_RESTRICTCOLS)==0)
-			sizex += OL_TOGW*3;
-	}
-	
-	/* tweak to display last line (when list bigger than window) */
-	sizey += V2D_SCROLL_HEIGHT;
-	
-	/* adds vertical offset */
-	sizey += OL_Y_OFFSET;
-
-	/* update size of tot-rect (extents of data/viewable area) */
-	UI_view2d_totRect_set(v2d, sizex, sizey);
-
-	/* force display to pixel coords */
-	v2d->flag |= (V2D_PIXELOFS_X|V2D_PIXELOFS_Y);
-	/* set matrix for 2d-view controls */
-	UI_view2d_view_ortho(v2d);
-
-	/* draw outliner stuff (background, hierachy lines and names) */
-	outliner_back(ar);
-	block= uiBeginBlock(C, ar, "outliner buttons", UI_EMBOSS);
-	outliner_draw_tree((bContext *)C, block, scene, ar, soops);
-	
-	if(ELEM(soops->outlinevis, SO_DATABLOCKS, SO_USERDEF)) {
-		/* draw rna buttons */
-		outliner_draw_rnacols(ar, sizex_rna);
-		outliner_draw_rnabuts(block, scene, ar, soops, sizex_rna, &soops->tree);
-	}
-	else if(soops->outlinevis == SO_KEYMAP) {
-		outliner_draw_keymapbuts(block, ar, soops, &soops->tree);
-	}
-	else if (!(soops->flag & SO_HIDE_RESTRICTCOLS)) {
-		/* draw restriction columns */
-		outliner_draw_restrictcols(ar);
-		outliner_draw_restrictbuts(block, scene, ar, soops, &soops->tree);
-	}
-
-	/* draw edit buttons if nessecery */
-	outliner_buttons(C, block, ar, soops, &soops->tree);	
-
-	uiEndBlock(C, block);
-	uiDrawBlock(C, block);
-	
-	/* clear flag that allows quick redraws */
-	soops->storeflag &= ~SO_TREESTORE_REDRAW;
-}
-
diff --git a/source/blender/editors/space_outliner/outliner_draw.c b/source/blender/editors/space_outliner/outliner_draw.c
new file mode 100644
index 0000000000000000000000000000000000000000..17b44022c803f6ae76c5caefab0d5dcba0329009
--- /dev/null
+++ b/source/blender/editors/space_outliner/outliner_draw.c
@@ -0,0 +1,1671 @@
+/*
+ * $Id$
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version. 
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2004 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): Joshua Leung
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/editors/space_outliner/outliner_draw.c
+ *  \ingroup spoutliner
+ */
+
+#include <string.h>
+#include <stdlib.h>
+
+#include "MEM_guardedalloc.h"
+
+#include "DNA_anim_types.h"
+#include "DNA_armature_types.h"
+#include "DNA_camera_types.h"
+#include "DNA_group_types.h"
+#include "DNA_key_types.h"
+#include "DNA_lamp_types.h"
+#include "DNA_material_types.h"
+#include "DNA_mesh_types.h"
+#include "DNA_meta_types.h"
+#include "DNA_particle_types.h"
+#include "DNA_scene_types.h"
+#include "DNA_world_types.h"
+#include "DNA_sequence_types.h"
+#include "DNA_object_types.h"
+
+#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
+
+#include "BKE_animsys.h"
+#include "BKE_context.h"
+#include "BKE_deform.h"
+#include "BKE_depsgraph.h"
+#include "BKE_fcurve.h"
+#include "BKE_global.h"
+#include "BKE_group.h"
+#include "BKE_library.h"
+#include "BKE_main.h"
+#include "BKE_modifier.h"
+#include "BKE_report.h"
+#include "BKE_scene.h"
+#include "BKE_sequencer.h"
+
+#include "BLI_ghash.h"
+
+#include "ED_armature.h"
+#include "ED_object.h"
+#include "ED_screen.h"
+#include "ED_util.h"
+
+#include "WM_api.h"
+#include "WM_types.h"
+
+#include "BIF_gl.h"
+#include "BIF_glutil.h"
+
+#include "UI_interface.h"
+#include "UI_interface_icons.h"
+#include "UI_resources.h"
+#include "UI_view2d.h"
+
+#include "RNA_access.h"
+#include "RNA_define.h"
+
+#include "outliner_intern.h"
+
+/* ****************************************************** */
+/* Tree Size Functions */
+
+static void outliner_height(SpaceOops *soops, ListBase *lb, int *h)
+{
+	TreeElement *te= lb->first;
+	while(te) {
+		TreeStoreElem *tselem= TREESTORE(te);
+		if((tselem->flag & TSE_CLOSED)==0) 
+			outliner_height(soops, &te->subtree, h);
+		(*h) += UI_UNIT_Y;
+		te= te->next;
+	}
+}
+
+#if 0  // XXX this is currently disabled until te->xend is set correctly
+static void outliner_width(SpaceOops *soops, ListBase *lb, int *w)
+{
+	TreeElement *te= lb->first;
+	while(te) {
+//		TreeStoreElem *tselem= TREESTORE(te);
+		
+		// XXX fixme... te->xend is not set yet
+		if(tselem->flag & TSE_CLOSED) {
+			if (te->xend > *w)
+				*w = te->xend;
+		}
+		outliner_width(soops, &te->subtree, w);
+		te= te->next;
+	}
+}
+#endif
+
+static void outliner_rna_width(SpaceOops *soops, ListBase *lb, int *w, int startx)
+{
+	TreeElement *te= lb->first;
+	while(te) {
+		TreeStoreElem *tselem= TREESTORE(te);
+			// XXX fixme... (currently, we're using a fixed length of 100)!
+		/*if(te->xend) {
+			if(te->xend > *w)
+				*w = te->xend;
+		}*/
+		if(startx+100 > *w)
+			*w = startx+100;
+
+		if((tselem->flag & TSE_CLOSED)==0)
+			outliner_rna_width(soops, &te->subtree, w, startx+UI_UNIT_X);
+		te= te->next;
+	}
+}
+
+/* ****************************************************** */
+
+static void restrictbutton_view_cb(bContext *C, void *poin, void *poin2)
+{
+	Scene *scene = (Scene *)poin;
+	Object *ob = (Object *)poin2;
+
+	if(!common_restrict_check(C, ob)) return;
+	
+	/* deselect objects that are invisible */
+	if (ob->restrictflag & OB_RESTRICT_VIEW) {
+		/* Ouch! There is no backwards pointer from Object to Base, 
+		 * so have to do loop to find it. */
+		ED_base_object_select(object_in_scene(ob, scene), BA_DESELECT);
+	}
+	WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene);
+
+}
+
+static void restrictbutton_sel_cb(bContext *C, void *poin, void *poin2)
+{
+	Scene *scene = (Scene *)poin;
+	Object *ob = (Object *)poin2;
+	
+	if(!common_restrict_check(C, ob)) return;
+	
+	/* if select restriction has just been turned on */
+	if (ob->restrictflag & OB_RESTRICT_SELECT) {
+		/* Ouch! There is no backwards pointer from Object to Base, 
+		 * so have to do loop to find it. */
+		ED_base_object_select(object_in_scene(ob, scene), BA_DESELECT);
+	}
+	WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene);
+
+}
+
+static void restrictbutton_rend_cb(bContext *C, void *poin, void *UNUSED(poin2))
+{
+	WM_event_add_notifier(C, NC_SCENE|ND_OB_RENDER, poin);
+}
+
+static void restrictbutton_r_lay_cb(bContext *C, void *poin, void *UNUSED(poin2))
+{
+	WM_event_add_notifier(C, NC_SCENE|ND_RENDER_OPTIONS, poin);
+}
+
+static void restrictbutton_modifier_cb(bContext *C, void *UNUSED(poin), void *poin2)
+{
+	Object *ob = (Object *)poin2;
+	
+	DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
+
+	WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
+}
+
+static void restrictbutton_bone_cb(bContext *C, void *UNUSED(poin), void *poin2)
+{
+	Bone *bone= (Bone *)poin2;
+	if(bone && (bone->flag & BONE_HIDDEN_P))
+		bone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL);
+	WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL);
+}
+
+static void restrictbutton_ebone_cb(bContext *C, void *UNUSED(poin), void *poin2)
+{
+	EditBone *ebone= (EditBone *)poin2;
+	if(ebone && (ebone->flag & BONE_HIDDEN_A))
+		ebone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL);
+
+	WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL);
+}
+
+static int group_restrict_flag(Group *gr, int flag)
+{
+	GroupObject *gob;
+
+	for(gob= gr->gobject.first; gob; gob= gob->next) {
+		if((gob->ob->restrictflag & flag) == 0)
+			return 0;
+	}
+
+	return 1;
+}
+
+static int group_select_flag(Group *gr)
+{
+	GroupObject *gob;
+
+	for(gob= gr->gobject.first; gob; gob= gob->next)
+		if((gob->ob->flag & SELECT))
+			return 1;
+
+	return 0;
+}
+
+static void restrictbutton_gr_restrict_flag(void *poin, void *poin2, int flag)
+{	
+	Scene *scene = (Scene *)poin;		
+	GroupObject *gob;
+	Group *gr = (Group *)poin2; 	
+
+	if(group_restrict_flag(gr, flag)) {
+		for(gob= gr->gobject.first; gob; gob= gob->next) {
+			gob->ob->restrictflag &= ~flag;
+			
+			if(flag==OB_RESTRICT_VIEW)
+				if(gob->ob->flag & SELECT)
+					ED_base_object_select(object_in_scene(gob->ob, scene), BA_DESELECT);
+		}
+	}
+	else {
+		for(gob= gr->gobject.first; gob; gob= gob->next) {
+			/* not in editmode */
+			if(scene->obedit!=gob->ob) {
+				gob->ob->restrictflag |= flag;
+				
+				if(flag==OB_RESTRICT_VIEW)
+					if((gob->ob->flag & SELECT) == 0)
+						ED_base_object_select(object_in_scene(gob->ob, scene), BA_SELECT);
+			}
+		}
+	}
+} 
+
+static void restrictbutton_gr_restrict_view(bContext *C, void *poin, void *poin2)
+{
+	restrictbutton_gr_restrict_flag(poin, poin2, OB_RESTRICT_VIEW);
+	WM_event_add_notifier(C, NC_GROUP, NULL);
+}
+static void restrictbutton_gr_restrict_select(bContext *C, void *poin, void *poin2)
+{
+	restrictbutton_gr_restrict_flag(poin, poin2, OB_RESTRICT_SELECT);
+	WM_event_add_notifier(C, NC_GROUP, NULL);
+}
+static void restrictbutton_gr_restrict_render(bContext *C, void *poin, void *poin2)
+{
+	restrictbutton_gr_restrict_flag(poin, poin2, OB_RESTRICT_RENDER);
+	WM_event_add_notifier(C, NC_GROUP, NULL);
+}
+
+
+static void namebutton_cb(bContext *C, void *tsep, char *oldname)
+{
+	SpaceOops *soops= CTX_wm_space_outliner(C);
+	Scene *scene= CTX_data_scene(C);
+	Object *obedit= CTX_data_edit_object(C);
+	TreeStore *ts= soops->treestore;
+	TreeStoreElem *tselem= tsep;
+	
+	if(ts && tselem) {
+		TreeElement *te= outliner_find_tse(soops, tselem);
+		
+		if(tselem->type==0) {
+			test_idbutton(tselem->id->name+2);	// library.c, unique name and alpha sort
+			
+			switch(GS(tselem->id->name)) {
+				case ID_MA:
+					WM_event_add_notifier(C, NC_MATERIAL, NULL); break;
+				case ID_TE:
+					WM_event_add_notifier(C, NC_TEXTURE, NULL); break;
+				case ID_IM:
+					WM_event_add_notifier(C, NC_IMAGE, NULL); break;
+				case ID_SCE:
+					WM_event_add_notifier(C, NC_SCENE, NULL); break;
+				default:
+					WM_event_add_notifier(C, NC_ID|NA_RENAME, NULL); break;
+			}					
+			/* Check the library target exists */
+			if (te->idcode == ID_LI) {
+				char expanded[FILE_MAXDIR + FILE_MAXFILE];
+				BLI_strncpy(expanded, ((Library *)tselem->id)->name, FILE_MAXDIR + FILE_MAXFILE);
+				BLI_path_abs(expanded, G.main->name);
+				if (!BLI_exists(expanded)) {
+					BKE_report(CTX_wm_reports(C), RPT_ERROR, "This path does not exist, correct this before saving");
+				}
+			}
+		}
+		else {
+			switch(tselem->type) {
+			case TSE_DEFGROUP:
+				defgroup_unique_name(te->directdata, (Object *)tselem->id); //	id = object
+				break;
+			case TSE_NLA_ACTION:
+				test_idbutton(tselem->id->name+2);
+				break;
+			case TSE_EBONE:
+			{
+				bArmature *arm= (bArmature *)tselem->id;
+				if(arm->edbo) {
+					EditBone *ebone= te->directdata;
+					char newname[sizeof(ebone->name)];
+					
+					/* restore bone name */
+					BLI_strncpy(newname, ebone->name, sizeof(ebone->name));
+					BLI_strncpy(ebone->name, oldname, sizeof(ebone->name));
+					ED_armature_bone_rename(obedit->data, oldname, newname);
+					WM_event_add_notifier(C, NC_OBJECT|ND_POSE, OBACT);
+				}
+			}
+				break;
+
+			case TSE_BONE:
+				{
+					Bone *bone= te->directdata;
+					Object *ob;
+					char newname[sizeof(bone->name)];
+					
+					// always make current object active
+					tree_element_active(C, scene, soops, te, 1); // was set_active_object()
+					ob= OBACT;
+					
+					/* restore bone name */
+					BLI_strncpy(newname, bone->name, sizeof(bone->name));
+					BLI_strncpy(bone->name, oldname, sizeof(bone->name));
+					ED_armature_bone_rename(ob->data, oldname, newname);
+					WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob);
+				}
+				break;
+			case TSE_POSE_CHANNEL:
+				{
+					bPoseChannel *pchan= te->directdata;
+					Object *ob;
+					char newname[sizeof(pchan->name)];
+					
+					// always make current object active
+					tree_element_active(C, scene, soops, te, 1); // was set_active_object()
+					ob= OBACT;
+					
+					/* restore bone name */
+					BLI_strncpy(newname, pchan->name, sizeof(pchan->name));
+					BLI_strncpy(pchan->name, oldname, sizeof(pchan->name));
+					ED_armature_bone_rename(ob->data, oldname, newname);
+					WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob);
+				}
+				break;
+			case TSE_POSEGRP:
+				{
+					Object *ob= (Object *)tselem->id; // id = object
+					bActionGroup *grp= te->directdata;
+					
+					BLI_uniquename(&ob->pose->agroups, grp, "Group", '.', offsetof(bActionGroup, name), sizeof(grp->name));
+					WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob);
+				}
+				break;
+			case TSE_R_LAYER:
+				break;
+			}
+		}
+		tselem->flag &= ~TSE_TEXTBUT;
+	}
+}
+
+static void outliner_draw_restrictbuts(uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops, ListBase *lb)
+{	
+	uiBut *bt;
+	TreeElement *te;
+	TreeStoreElem *tselem;
+	Object *ob = NULL;
+	Group  *gr = NULL;
+
+	for(te= lb->first; te; te= te->next) {
+		tselem= TREESTORE(te);
+		if(te->ys+2*UI_UNIT_Y >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) {	
+			/* objects have toggle-able restriction flags */
+			if(tselem->type==0 && te->idcode==ID_OB) {
+				PointerRNA ptr;
+				
+				ob = (Object *)tselem->id;
+				RNA_pointer_create((ID *)ob, &RNA_Object, ob, &ptr);
+				
+				uiBlockSetEmboss(block, UI_EMBOSSN);
+				bt= uiDefIconButR(block, ICONTOG, 0, ICON_RESTRICT_VIEW_OFF,
+							  (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1,
+							  &ptr, "hide", -1, 0, 0, -1, -1, NULL);
+				uiButSetFunc(bt, restrictbutton_view_cb, scene, ob);
+				
+				bt= uiDefIconButR(block, ICONTOG, 0, ICON_RESTRICT_SELECT_OFF,
+								  (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1,
+								  &ptr, "hide_select", -1, 0, 0, -1, -1, NULL);
+				uiButSetFunc(bt, restrictbutton_sel_cb, scene, ob);
+				
+				bt= uiDefIconButR(block, ICONTOG, 0, ICON_RESTRICT_RENDER_OFF,
+								  (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1,
+								  &ptr, "hide_render", -1, 0, 0, -1, -1, NULL);
+				uiButSetFunc(bt, restrictbutton_rend_cb, scene, ob);
+				
+				uiBlockSetEmboss(block, UI_EMBOSS);
+				
+			}
+			if(tselem->type==0 && te->idcode==ID_GR){ 
+				int restrict_bool;
+				gr = (Group *)tselem->id;
+				
+				uiBlockSetEmboss(block, UI_EMBOSSN);
+				
+				restrict_bool= group_restrict_flag(gr, OB_RESTRICT_VIEW);
+				bt = uiDefIconBut(block, BUT, 0, restrict_bool ? ICON_RESTRICT_VIEW_ON : ICON_RESTRICT_VIEW_OFF, (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, NULL, 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View");
+				uiButSetFunc(bt, restrictbutton_gr_restrict_view, scene, gr);
+
+				restrict_bool= group_restrict_flag(gr, OB_RESTRICT_SELECT);
+				bt = uiDefIconBut(block, BUT, 0, restrict_bool ? ICON_RESTRICT_SELECT_ON : ICON_RESTRICT_SELECT_OFF, (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, NULL, 0, 0, 0, 0, "Restrict/Allow selection in the 3D View");
+				uiButSetFunc(bt, restrictbutton_gr_restrict_select, scene, gr);
+	
+				restrict_bool= group_restrict_flag(gr, OB_RESTRICT_RENDER);
+				bt = uiDefIconBut(block, BUT, 0, restrict_bool ? ICON_RESTRICT_RENDER_ON : ICON_RESTRICT_RENDER_OFF, (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, NULL, 0, 0, 0, 0, "Restrict/Allow renderability");
+				uiButSetFunc(bt, restrictbutton_gr_restrict_render, scene, gr);
+
+				uiBlockSetEmboss(block, UI_EMBOSS);
+			}
+			/* scene render layers and passes have toggle-able flags too! */
+			else if(tselem->type==TSE_R_LAYER) {
+				uiBlockSetEmboss(block, UI_EMBOSSN);
+				
+				bt= uiDefIconButBitI(block, ICONTOGN, SCE_LAY_DISABLE, 0, ICON_CHECKBOX_HLT-1, 
+									 (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, te->directdata, 0, 0, 0, 0, "Render this RenderLayer");
+				uiButSetFunc(bt, restrictbutton_r_lay_cb, tselem->id, NULL);
+				
+				uiBlockSetEmboss(block, UI_EMBOSS);
+			}
+			else if(tselem->type==TSE_R_PASS) {
+				int *layflag= te->directdata;
+				int passflag= 1<<tselem->nr;
+				
+				uiBlockSetEmboss(block, UI_EMBOSSN);
+				
+				
+				bt= uiDefIconButBitI(block, ICONTOG, passflag, 0, ICON_CHECKBOX_HLT-1, 
+									 (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, layflag, 0, 0, 0, 0, "Render this Pass");
+				uiButSetFunc(bt, restrictbutton_r_lay_cb, tselem->id, NULL);
+				
+				layflag++;	/* is lay_xor */
+				if(ELEM8(passflag, SCE_PASS_SPEC, SCE_PASS_SHADOW, SCE_PASS_AO, SCE_PASS_REFLECT, SCE_PASS_REFRACT, SCE_PASS_INDIRECT, SCE_PASS_EMIT, SCE_PASS_ENVIRONMENT))
+					bt= uiDefIconButBitI(block, TOG, passflag, 0, (*layflag & passflag)?ICON_DOT:ICON_BLANK1, 
+									 (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, layflag, 0, 0, 0, 0, "Exclude this Pass from Combined");
+				uiButSetFunc(bt, restrictbutton_r_lay_cb, tselem->id, NULL);
+				
+				uiBlockSetEmboss(block, UI_EMBOSS);
+			}
+			else if(tselem->type==TSE_MODIFIER)  {
+				ModifierData *md= (ModifierData *)te->directdata;
+				ob = (Object *)tselem->id;
+				
+				uiBlockSetEmboss(block, UI_EMBOSSN);
+				bt= uiDefIconButBitI(block, ICONTOGN, eModifierMode_Realtime, 0, ICON_RESTRICT_VIEW_OFF, 
+						(int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(md->mode), 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View");
+				uiButSetFunc(bt, restrictbutton_modifier_cb, scene, ob);
+				
+				bt= uiDefIconButBitI(block, ICONTOGN, eModifierMode_Render, 0, ICON_RESTRICT_RENDER_OFF, 
+						(int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(md->mode), 0, 0, 0, 0, "Restrict/Allow renderability");
+				uiButSetFunc(bt, restrictbutton_modifier_cb, scene, ob);
+			}
+			else if(tselem->type==TSE_POSE_CHANNEL)  {
+				bPoseChannel *pchan= (bPoseChannel *)te->directdata;
+				Bone *bone = pchan->bone;
+				
+				uiBlockSetEmboss(block, UI_EMBOSSN);
+				bt= uiDefIconButBitI(block, ICONTOG, BONE_HIDDEN_P, 0, ICON_RESTRICT_VIEW_OFF, 
+						(int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(bone->flag), 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View");
+				uiButSetFunc(bt, restrictbutton_bone_cb, NULL, bone);
+				
+				bt= uiDefIconButBitI(block, ICONTOG, BONE_UNSELECTABLE, 0, ICON_RESTRICT_SELECT_OFF, 
+						(int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(bone->flag), 0, 0, 0, 0, "Restrict/Allow selection in the 3D View");
+				uiButSetFunc(bt, restrictbutton_bone_cb, NULL, NULL);
+			}
+			else if(tselem->type==TSE_EBONE)  {
+				EditBone *ebone= (EditBone *)te->directdata;
+				
+				uiBlockSetEmboss(block, UI_EMBOSSN);
+				bt= uiDefIconButBitI(block, ICONTOG, BONE_HIDDEN_A, 0, ICON_RESTRICT_VIEW_OFF, 
+						(int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(ebone->flag), 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View");
+				uiButSetFunc(bt, restrictbutton_ebone_cb, NULL, ebone);
+				
+				bt= uiDefIconButBitI(block, ICONTOG, BONE_UNSELECTABLE, 0, ICON_RESTRICT_SELECT_OFF, 
+						(int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, UI_UNIT_X-1, UI_UNIT_Y-1, &(ebone->flag), 0, 0, 0, 0, "Restrict/Allow selection in the 3D View");
+				uiButSetFunc(bt, restrictbutton_ebone_cb, NULL, NULL);
+			}
+		}
+		
+		if((tselem->flag & TSE_CLOSED)==0) outliner_draw_restrictbuts(block, scene, ar, soops, &te->subtree);
+	}
+}
+
+static void outliner_draw_rnacols(ARegion *ar, int sizex)
+{
+	View2D *v2d= &ar->v2d;
+
+	float miny = v2d->cur.ymin-V2D_SCROLL_HEIGHT;
+	if(miny<v2d->tot.ymin) miny = v2d->tot.ymin;
+
+	UI_ThemeColorShadeAlpha(TH_BACK, -15, -200);
+
+	/* draw column separator lines */
+	fdrawline((float)sizex,
+		v2d->cur.ymax,
+		(float)sizex,
+		miny);
+
+	fdrawline((float)sizex+OL_RNA_COL_SIZEX,
+		v2d->cur.ymax,
+		(float)sizex+OL_RNA_COL_SIZEX,
+		miny);
+}
+
+static void outliner_draw_rnabuts(uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops, int sizex, ListBase *lb)
+{	
+	TreeElement *te;
+	TreeStoreElem *tselem;
+	PointerRNA *ptr;
+	PropertyRNA *prop;
+	
+	uiBlockSetEmboss(block, UI_EMBOSST);
+
+	for(te= lb->first; te; te= te->next) {
+		tselem= TREESTORE(te);
+		if(te->ys+2*UI_UNIT_Y >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) {	
+			if(tselem->type == TSE_RNA_PROPERTY) {
+				ptr= &te->rnaptr;
+				prop= te->directdata;
+				
+				if(!(RNA_property_type(prop) == PROP_POINTER && (tselem->flag & TSE_CLOSED)==0))
+					uiDefAutoButR(block, ptr, prop, -1, "", ICON_NONE, sizex, (int)te->ys, OL_RNA_COL_SIZEX, UI_UNIT_Y-1);
+			}
+			else if(tselem->type == TSE_RNA_ARRAY_ELEM) {
+				ptr= &te->rnaptr;
+				prop= te->directdata;
+				
+				uiDefAutoButR(block, ptr, prop, te->index, "", ICON_NONE, sizex, (int)te->ys, OL_RNA_COL_SIZEX, UI_UNIT_Y-1);
+			}
+		}
+		
+		if((tselem->flag & TSE_CLOSED)==0) outliner_draw_rnabuts(block, scene, ar, soops, sizex, &te->subtree);
+	}
+}
+
+static void operator_call_cb(struct bContext *UNUSED(C), void *arg_kmi, void *arg2)
+{
+	wmOperatorType *ot= arg2;
+	wmKeyMapItem *kmi= arg_kmi;
+	
+	if(ot)
+		BLI_strncpy(kmi->idname, ot->idname, OP_MAX_TYPENAME);
+}
+
+static void operator_search_cb(const struct bContext *UNUSED(C), void *UNUSED(arg_kmi), const char *str, uiSearchItems *items)
+{
+	GHashIterator *iter= WM_operatortype_iter();
+
+	for( ; !BLI_ghashIterator_isDone(iter); BLI_ghashIterator_step(iter)) {
+		wmOperatorType *ot= BLI_ghashIterator_getValue(iter);
+		
+		if(BLI_strcasestr(ot->idname, str)) {
+			char name[OP_MAX_TYPENAME];
+			
+			/* display name for menu */
+			WM_operator_py_idname(name, ot->idname);
+			
+			if(0==uiSearchItemAdd(items, name, ot, 0))
+				break;
+		}
+	}
+	BLI_ghashIterator_free(iter);
+}
+
+/* operator Search browse menu, open */
+static uiBlock *operator_search_menu(bContext *C, ARegion *ar, void *arg_kmi)
+{
+	static char search[OP_MAX_TYPENAME];
+	wmEvent event;
+	wmWindow *win= CTX_wm_window(C);
+	wmKeyMapItem *kmi= arg_kmi;
+	wmOperatorType *ot= WM_operatortype_find(kmi->idname, 0);
+	uiBlock *block;
+	uiBut *but;
+	
+	/* clear initial search string, then all items show */
+	search[0]= 0;
+	
+	block= uiBeginBlock(C, ar, "_popup", UI_EMBOSS);
+	uiBlockSetFlag(block, UI_BLOCK_LOOP|UI_BLOCK_REDRAW|UI_BLOCK_RET_1);
+	
+	/* fake button, it holds space for search items */
+	uiDefBut(block, LABEL, 0, "", 10, 15, 150, uiSearchBoxhHeight(), NULL, 0, 0, 0, 0, NULL);
+	
+	but= uiDefSearchBut(block, search, 0, ICON_VIEWZOOM, 256, 10, 0, 150, UI_UNIT_Y, 0, 0, "");
+	uiButSetSearchFunc(but, operator_search_cb, arg_kmi, operator_call_cb, ot);
+	
+	uiBoundsBlock(block, 6);
+	uiBlockSetDirection(block, UI_DOWN);	
+	uiEndBlock(C, block);
+	
+	event= *(win->eventstate);	/* XXX huh huh? make api call */
+	event.type= EVT_BUT_OPEN;
+	event.val= KM_PRESS;
+	event.customdata= but;
+	event.customdatafree= FALSE;
+	wm_event_add(win, &event);
+	
+	return block;
+}
+
+#define OL_KM_KEYBOARD		0
+#define OL_KM_MOUSE			1
+#define OL_KM_TWEAK			2
+#define OL_KM_SPECIALS		3
+
+static short keymap_menu_type(short type)
+{
+	if(ISKEYBOARD(type)) return OL_KM_KEYBOARD;
+	if(ISTWEAK(type)) return OL_KM_TWEAK;
+	if(ISMOUSE(type)) return OL_KM_MOUSE;
+//	return OL_KM_SPECIALS;
+	return 0;
+}
+
+static const char *keymap_type_menu(void)
+{
+	static const char string[]=
+	"Event Type%t"
+	"|Keyboard%x" STRINGIFY(OL_KM_KEYBOARD)
+	"|Mouse%x" STRINGIFY(OL_KM_MOUSE)
+	"|Tweak%x" STRINGIFY(OL_KM_TWEAK)
+//	"|Specials%x" STRINGIFY(OL_KM_SPECIALS)
+	;
+
+	return string;
+}
+
+static const char *keymap_mouse_menu(void)
+{
+	static const char string[]=
+	"Mouse Event%t"
+	"|Left Mouse%x" STRINGIFY(LEFTMOUSE)
+	"|Middle Mouse%x" STRINGIFY(MIDDLEMOUSE)
+	"|Right Mouse%x" STRINGIFY(RIGHTMOUSE)
+	"|Middle Mouse%x" STRINGIFY(MIDDLEMOUSE)
+	"|Right Mouse%x" STRINGIFY(RIGHTMOUSE)
+	"|Button4 Mouse%x" STRINGIFY(BUTTON4MOUSE)
+	"|Button5 Mouse%x" STRINGIFY(BUTTON5MOUSE)
+	"|Action Mouse%x" STRINGIFY(ACTIONMOUSE)
+	"|Select Mouse%x" STRINGIFY(SELECTMOUSE)
+	"|Mouse Move%x" STRINGIFY(MOUSEMOVE)
+	"|Wheel Up%x" STRINGIFY(WHEELUPMOUSE)
+	"|Wheel Down%x" STRINGIFY(WHEELDOWNMOUSE)
+	"|Wheel In%x" STRINGIFY(WHEELINMOUSE)
+	"|Wheel Out%x" STRINGIFY(WHEELOUTMOUSE)
+	"|Mouse/Trackpad Pan%x" STRINGIFY(MOUSEPAN)
+	"|Mouse/Trackpad Zoom%x" STRINGIFY(MOUSEZOOM)
+	"|Mouse/Trackpad Rotate%x" STRINGIFY(MOUSEROTATE)
+	;
+
+	return string;
+}
+
+static const char *keymap_tweak_menu(void)
+{
+	static const char string[]=
+	"Tweak Event%t"
+	"|Left Mouse%x" STRINGIFY(EVT_TWEAK_L)
+	"|Middle Mouse%x" STRINGIFY(EVT_TWEAK_M)
+	"|Right Mouse%x" STRINGIFY(EVT_TWEAK_R)
+	"|Action Mouse%x" STRINGIFY(EVT_TWEAK_A)
+	"|Select Mouse%x" STRINGIFY(EVT_TWEAK_S)
+	;
+
+	return string;
+}
+
+static const char *keymap_tweak_dir_menu(void)
+{
+	static const char string[]=
+	"Tweak Direction%t"
+	"|Any%x" STRINGIFY(KM_ANY)
+	"|North%x" STRINGIFY(EVT_GESTURE_N)
+	"|North-East%x" STRINGIFY(EVT_GESTURE_NE)
+	"|East%x" STRINGIFY(EVT_GESTURE_E)
+	"|Sout-East%x" STRINGIFY(EVT_GESTURE_SE)
+	"|South%x" STRINGIFY(EVT_GESTURE_S)
+	"|South-West%x" STRINGIFY(EVT_GESTURE_SW)
+	"|West%x" STRINGIFY(EVT_GESTURE_W)
+	"|North-West%x" STRINGIFY(EVT_GESTURE_NW)
+	;
+
+	return string;
+}
+
+
+static void keymap_type_cb(bContext *C, void *kmi_v, void *UNUSED(arg_v))
+{
+	wmKeyMapItem *kmi= kmi_v;
+	short maptype= keymap_menu_type(kmi->type);
+	
+	if(maptype!=kmi->maptype) {
+		switch(kmi->maptype) {
+			case OL_KM_KEYBOARD:
+				kmi->type= AKEY;
+				kmi->val= KM_PRESS;
+				break;
+			case OL_KM_MOUSE:
+				kmi->type= LEFTMOUSE;
+				kmi->val= KM_PRESS;
+				break;
+			case OL_KM_TWEAK:
+				kmi->type= EVT_TWEAK_L;
+				kmi->val= KM_ANY;
+				break;
+			case OL_KM_SPECIALS:
+				kmi->type= AKEY;
+				kmi->val= KM_PRESS;
+		}
+		ED_region_tag_redraw(CTX_wm_region(C));
+	}
+}
+
+static void outliner_draw_keymapbuts(uiBlock *block, ARegion *ar, SpaceOops *soops, ListBase *lb)
+{
+	TreeElement *te;
+	TreeStoreElem *tselem;
+	
+	uiBlockSetEmboss(block, UI_EMBOSST);
+	
+	for(te= lb->first; te; te= te->next) {
+		tselem= TREESTORE(te);
+		if(te->ys+2*UI_UNIT_Y >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) {
+			uiBut *but;
+			const char *str;
+			int xstart= 240;
+			int butw1= UI_UNIT_X; /* operator */
+			int butw2= 90; /* event type, menus */
+			int butw3= 43; /* modifiers */
+
+			if(tselem->type == TSE_KEYMAP_ITEM) {
+				wmKeyMapItem *kmi= te->directdata;
+				
+				/* modal map? */
+				if(kmi->propvalue);
+				else {
+					uiDefBlockBut(block, operator_search_menu, kmi, "", xstart, (int)te->ys+1, butw1, UI_UNIT_Y-1, "Assign new Operator");
+				}
+				xstart+= butw1+10;
+				
+				/* map type button */
+				kmi->maptype= keymap_menu_type(kmi->type);
+				
+				str= keymap_type_menu();
+				but= uiDefButS(block, MENU, 0, str,	xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->maptype, 0, 0, 0, 0, "Event type");
+				uiButSetFunc(but, keymap_type_cb, kmi, NULL);
+				xstart+= butw2+5;
+				
+				/* edit actual event */
+				switch(kmi->maptype) {
+					case OL_KM_KEYBOARD:
+						uiDefKeyevtButS(block, 0, "", xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->type, "Key code");
+						xstart+= butw2+5;
+						break;
+					case OL_KM_MOUSE:
+						str= keymap_mouse_menu();
+						uiDefButS(block, MENU, 0, str, xstart,(int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->type, 0, 0, 0, 0,  "Mouse button");	
+						xstart+= butw2+5;
+						break;
+					case OL_KM_TWEAK:
+						str= keymap_tweak_menu();
+						uiDefButS(block, MENU, 0, str, xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->type, 0, 0, 0, 0,  "Tweak gesture");	
+						xstart+= butw2+5;
+						str= keymap_tweak_dir_menu();
+						uiDefButS(block, MENU, 0, str, xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->val, 0, 0, 0, 0,  "Tweak gesture direction");	
+						xstart+= butw2+5;
+						break;
+				}
+				
+				/* modifiers */
+				uiDefButS(block, OPTION, 0, "Shift",	xstart, (int)te->ys+1, butw3+5, UI_UNIT_Y-1, &kmi->shift, 0, 0, 0, 0, "Modifier"); xstart+= butw3+5;
+				uiDefButS(block, OPTION, 0, "Ctrl",	xstart, (int)te->ys+1, butw3, UI_UNIT_Y-1, &kmi->ctrl, 0, 0, 0, 0, "Modifier"); xstart+= butw3;
+				uiDefButS(block, OPTION, 0, "Alt",	xstart, (int)te->ys+1, butw3, UI_UNIT_Y-1, &kmi->alt, 0, 0, 0, 0, "Modifier"); xstart+= butw3;
+				uiDefButS(block, OPTION, 0, "OS",	xstart, (int)te->ys+1, butw3, UI_UNIT_Y-1, &kmi->oskey, 0, 0, 0, 0, "Modifier"); xstart+= butw3;
+				xstart+= 5;
+				uiDefKeyevtButS(block, 0, "", xstart, (int)te->ys+1, butw3, UI_UNIT_Y-1, &kmi->keymodifier, "Key Modifier code");
+				xstart+= butw3+5;
+				
+				/* rna property */
+				if(kmi->ptr && kmi->ptr->data) {
+					uiDefBut(block, LABEL, 0, "(RNA property)",	xstart, (int)te->ys+1, butw2, UI_UNIT_Y-1, &kmi->oskey, 0, 0, 0, 0, ""); xstart+= butw2;
+				}
+
+				(void)xstart;
+			}
+		}
+		
+		if((tselem->flag & TSE_CLOSED)==0) outliner_draw_keymapbuts(block, ar, soops, &te->subtree);
+	}
+}
+
+
+static void outliner_buttons(const bContext *C, uiBlock *block, ARegion *ar, SpaceOops *soops, ListBase *lb)
+{
+	uiBut *bt;
+	TreeElement *te;
+	TreeStoreElem *tselem;
+	int spx, dx, len;
+	
+	for(te= lb->first; te; te= te->next) {
+		tselem= TREESTORE(te);
+		if(te->ys+2*UI_UNIT_Y >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) {
+			
+			if(tselem->flag & TSE_TEXTBUT) {
+				
+				/* If we add support to rename Sequence.
+				 * need change this.
+				 */
+				if(tselem->type == TSE_POSE_BASE) continue; // prevent crash when trying to rename 'pose' entry of armature
+				
+				if(tselem->type==TSE_EBONE) len = sizeof(((EditBone*) 0)->name);
+				else if (tselem->type==TSE_MODIFIER) len = sizeof(((ModifierData*) 0)->name);
+				else if(tselem->id && GS(tselem->id->name)==ID_LI) len = sizeof(((Library*) 0)->name);
+				else len= MAX_ID_NAME-2;
+				
+
+				dx= (int)UI_GetStringWidth(te->name);
+				if(dx<100) dx= 100;
+				spx=te->xs+2*UI_UNIT_X-4;
+				if(spx+dx+10>ar->v2d.cur.xmax) dx = ar->v2d.cur.xmax-spx-10;
+
+				bt= uiDefBut(block, TEX, OL_NAMEBUTTON, "", spx, (int)te->ys, dx+10, UI_UNIT_Y-1, (void *)te->name, 1.0, (float)len, 0, 0, "");
+				uiButSetRenameFunc(bt, namebutton_cb, tselem);
+				
+				/* returns false if button got removed */
+				if( 0 == uiButActiveOnly(C, block, bt) )
+					tselem->flag &= ~TSE_TEXTBUT;
+			}
+		}
+		
+		if((tselem->flag & TSE_CLOSED)==0) outliner_buttons(C, block, ar, soops, &te->subtree);
+	}
+}
+
+/* ****************************************************** */
+/* Normal Drawing... */
+
+/* make function calls a bit compacter */
+struct DrawIconArg {
+	uiBlock *block;
+	ID *id;
+	int xmax, x, y;
+	float alpha;
+};
+
+static void tselem_draw_icon_uibut(struct DrawIconArg *arg, int icon)
+{
+	/* restrict collumn clip... it has been coded by simply overdrawing, doesnt work for buttons */
+	if(arg->x >= arg->xmax) 
+		UI_icon_draw(arg->x, arg->y, icon);
+	else {
+		/* XXX investigate: button placement of icons is way different than UI_icon_draw? */
+		float ufac= UI_UNIT_X/20.0f;
+		uiBut *but= uiDefIconBut(arg->block, LABEL, 0, icon, arg->x-3.0f*ufac, arg->y, UI_UNIT_X-4.0f*ufac, UI_UNIT_Y-4.0f*ufac, NULL, 0.0, 0.0, 1.0, arg->alpha, (arg->id && arg->id->lib) ? arg->id->lib->name : "");
+		
+		if(arg->id)
+			uiButSetDragID(but, arg->id);
+	}
+
+}
+
+static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeStoreElem *tselem, TreeElement *te, float alpha)
+{
+	struct DrawIconArg arg;
+	
+	/* make function calls a bit compacter */
+	arg.block= block;
+	arg.id= tselem->id;
+	arg.xmax= xmax;
+	arg.x= x;
+	arg.y= y;
+	arg.alpha= alpha;
+	
+	if(tselem->type) {
+		switch( tselem->type) {
+			case TSE_ANIM_DATA:
+				UI_icon_draw(x, y, ICON_ANIM_DATA); break; // xxx
+			case TSE_NLA:
+				UI_icon_draw(x, y, ICON_NLA); break;
+			case TSE_NLA_TRACK:
+				UI_icon_draw(x, y, ICON_NLA); break; // XXX
+			case TSE_NLA_ACTION:
+				UI_icon_draw(x, y, ICON_ACTION); break;
+			case TSE_DRIVER_BASE:
+
+#if 0		// GSOC_PEPPER
+
+				UI_icon_draw(x, y, ICON_DRIVER); break;
+
+#endif		// GSOC_PEPPER
+
+			case TSE_DEFGROUP_BASE:
+				UI_icon_draw(x, y, ICON_GROUP_VERTEX); break;
+			case TSE_BONE:
+			case TSE_EBONE:
+				UI_icon_draw(x, y, ICON_BONE_DATA); break;
+			case TSE_CONSTRAINT_BASE:
+				UI_icon_draw(x, y, ICON_CONSTRAINT); break;
+			case TSE_MODIFIER_BASE:
+				UI_icon_draw(x, y, ICON_MODIFIER); break;
+			case TSE_LINKED_OB:
+				UI_icon_draw(x, y, ICON_OBJECT_DATA); break;
+			case TSE_LINKED_PSYS:
+				UI_icon_draw(x, y, ICON_PARTICLES); break;
+			case TSE_MODIFIER:
+			{
+				Object *ob= (Object *)tselem->id;
+				ModifierData *md= BLI_findlink(&ob->modifiers, tselem->nr);
+				switch(md->type) {
+					case eModifierType_Subsurf: 
+						UI_icon_draw(x, y, ICON_MOD_SUBSURF); break;
+					case eModifierType_Armature: 
+						UI_icon_draw(x, y, ICON_MOD_ARMATURE); break;
+					case eModifierType_Lattice: 
+						UI_icon_draw(x, y, ICON_MOD_LATTICE); break;
+					case eModifierType_Curve: 
+						UI_icon_draw(x, y, ICON_MOD_CURVE); break;
+					case eModifierType_Build: 
+						UI_icon_draw(x, y, ICON_MOD_BUILD); break;
+					case eModifierType_Mirror: 
+						UI_icon_draw(x, y, ICON_MOD_MIRROR); break;
+					case eModifierType_Decimate: 
+						UI_icon_draw(x, y, ICON_MOD_DECIM); break;
+					case eModifierType_Wave: 
+						UI_icon_draw(x, y, ICON_MOD_WAVE); break;
+					case eModifierType_Hook: 
+						UI_icon_draw(x, y, ICON_HOOK); break;
+					case eModifierType_Softbody: 
+						UI_icon_draw(x, y, ICON_MOD_SOFT); break;
+					case eModifierType_Boolean: 
+						UI_icon_draw(x, y, ICON_MOD_BOOLEAN); break;
+					case eModifierType_ParticleSystem: 
+						UI_icon_draw(x, y, ICON_MOD_PARTICLES); break;
+					case eModifierType_ParticleInstance:
+						UI_icon_draw(x, y, ICON_MOD_PARTICLES); break;
+					case eModifierType_EdgeSplit:
+						UI_icon_draw(x, y, ICON_MOD_EDGESPLIT); break;
+					case eModifierType_Array:
+						UI_icon_draw(x, y, ICON_MOD_ARRAY); break;
+					case eModifierType_UVProject:
+						UI_icon_draw(x, y, ICON_MOD_UVPROJECT); break;
+					case eModifierType_Displace:
+						UI_icon_draw(x, y, ICON_MOD_DISPLACE); break;
+					case eModifierType_Shrinkwrap:
+						UI_icon_draw(x, y, ICON_MOD_SHRINKWRAP); break;
+					case eModifierType_Cast:
+						UI_icon_draw(x, y, ICON_MOD_CAST); break;
+					case eModifierType_MeshDeform:
+						UI_icon_draw(x, y, ICON_MOD_MESHDEFORM); break;
+					case eModifierType_Bevel:
+						UI_icon_draw(x, y, ICON_MOD_BEVEL); break;
+					case eModifierType_Smooth:
+						UI_icon_draw(x, y, ICON_MOD_SMOOTH); break;
+					case eModifierType_SimpleDeform:
+						UI_icon_draw(x, y, ICON_MOD_SIMPLEDEFORM); break;
+					case eModifierType_Mask:
+						UI_icon_draw(x, y, ICON_MOD_MASK); break;
+					case eModifierType_Cloth:
+						UI_icon_draw(x, y, ICON_MOD_CLOTH); break;
+					case eModifierType_Explode:
+						UI_icon_draw(x, y, ICON_MOD_EXPLODE); break;
+					case eModifierType_Collision:
+						UI_icon_draw(x, y, ICON_MOD_PHYSICS); break;
+					case eModifierType_Fluidsim:
+						UI_icon_draw(x, y, ICON_MOD_FLUIDSIM); break;
+					case eModifierType_Multires:
+						UI_icon_draw(x, y, ICON_MOD_MULTIRES); break;
+					case eModifierType_Smoke:
+						UI_icon_draw(x, y, ICON_MOD_SMOKE); break;
+					case eModifierType_Solidify:
+						UI_icon_draw(x, y, ICON_MOD_SOLIDIFY); break;
+					case eModifierType_Screw:
+						UI_icon_draw(x, y, ICON_MOD_SCREW); break;
+					default:
+						UI_icon_draw(x, y, ICON_DOT); break;
+				}
+				break;
+			}
+			case TSE_SCRIPT_BASE:
+				UI_icon_draw(x, y, ICON_TEXT); break;
+			case TSE_POSE_BASE:
+				UI_icon_draw(x, y, ICON_ARMATURE_DATA); break;
+			case TSE_POSE_CHANNEL:
+				UI_icon_draw(x, y, ICON_BONE_DATA); break;
+			case TSE_PROXY:
+				UI_icon_draw(x, y, ICON_GHOST); break;
+			case TSE_R_LAYER_BASE:
+				UI_icon_draw(x, y, ICON_RENDERLAYERS); break;
+			case TSE_R_LAYER:
+				UI_icon_draw(x, y, ICON_RENDERLAYERS); break;
+			case TSE_LINKED_LAMP:
+				UI_icon_draw(x, y, ICON_LAMP_DATA); break;
+			case TSE_LINKED_MAT:
+				UI_icon_draw(x, y, ICON_MATERIAL_DATA); break;
+			case TSE_POSEGRP_BASE:
+				UI_icon_draw(x, y, ICON_VERTEXSEL); break;
+			case TSE_SEQUENCE:
+				if(te->idcode==SEQ_MOVIE)
+					UI_icon_draw(x, y, ICON_SEQUENCE);
+				else if(te->idcode==SEQ_META)
+					UI_icon_draw(x, y, ICON_DOT);
+				else if(te->idcode==SEQ_SCENE)
+					UI_icon_draw(x, y, ICON_SCENE);
+				else if(te->idcode==SEQ_SOUND)
+					UI_icon_draw(x, y, ICON_SOUND);
+				else if(te->idcode==SEQ_IMAGE)
+					UI_icon_draw(x, y, ICON_IMAGE_COL);
+				else
+					UI_icon_draw(x, y, ICON_PARTICLES);
+				break;
+			case TSE_SEQ_STRIP:
+				UI_icon_draw(x, y, ICON_LIBRARY_DATA_DIRECT);
+				break;
+			case TSE_SEQUENCE_DUP:
+				UI_icon_draw(x, y, ICON_OBJECT_DATA);
+				break;
+			case TSE_RNA_STRUCT:
+				if(RNA_struct_is_ID(te->rnaptr.type)) {
+					arg.id= (ID *)te->rnaptr.data;
+					tselem_draw_icon_uibut(&arg, RNA_struct_ui_icon(te->rnaptr.type));
+				}
+				else
+					UI_icon_draw(x, y, RNA_struct_ui_icon(te->rnaptr.type));
+				break;
+			default:
+				UI_icon_draw(x, y, ICON_DOT); break;
+		}
+	}
+	else if (GS(tselem->id->name) == ID_OB) {
+		Object *ob= (Object *)tselem->id;
+		switch (ob->type) {
+			case OB_LAMP:
+				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_LAMP); break;
+			case OB_MESH: 
+				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_MESH); break;
+			case OB_CAMERA: 
+				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_CAMERA); break;
+			case OB_CURVE: 
+				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_CURVE); break;
+			case OB_MBALL: 
+				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_META); break;
+			case OB_LATTICE: 
+				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_LATTICE); break;
+			case OB_ARMATURE: 
+				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_ARMATURE); break;
+			case OB_FONT: 
+				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_FONT); break;
+			case OB_SURF: 
+				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_SURFACE); break;
+
+#if 0		// GSOC_PEPPER
+
+			case OB_SPEAKER:
+				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_SPEAKER); break;
+
+#endif		// GSOC_PEPPER
+
+			case OB_EMPTY: 
+				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_OB_EMPTY); break;
+		
+		}
+	}
+	else {
+		switch( GS(tselem->id->name)) {
+			case ID_SCE:
+				tselem_draw_icon_uibut(&arg, ICON_SCENE_DATA); break;
+			case ID_ME:
+				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_MESH); break;
+			case ID_CU:
+				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_CURVE); break;
+			case ID_MB:
+				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_META); break;
+			case ID_LT:
+				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_LATTICE); break;
+			case ID_LA:
+			{
+				Lamp *la= (Lamp *)tselem->id;
+				
+				switch(la->type) {
+					case LA_LOCAL:
+						tselem_draw_icon_uibut(&arg, ICON_LAMP_POINT); break;
+					case LA_SUN:
+						tselem_draw_icon_uibut(&arg, ICON_LAMP_SUN); break;
+					case LA_SPOT:
+						tselem_draw_icon_uibut(&arg, ICON_LAMP_SPOT); break;
+					case LA_HEMI:
+						tselem_draw_icon_uibut(&arg, ICON_LAMP_HEMI); break;
+					case LA_AREA:
+						tselem_draw_icon_uibut(&arg, ICON_LAMP_AREA); break;
+					default:
+						tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_LAMP); break;
+				}
+				break;
+			}
+			case ID_MA:
+				tselem_draw_icon_uibut(&arg, ICON_MATERIAL_DATA); break;
+			case ID_TE:
+				tselem_draw_icon_uibut(&arg, ICON_TEXTURE_DATA); break;
+			case ID_IM:
+				tselem_draw_icon_uibut(&arg, ICON_IMAGE_DATA); break;
+
+#if 0		// GSOC_PEPPER
+
+			case ID_SPK:
+			case ID_SO:
+				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_SPEAKER); break;
+
+#endif		// GSOC_PEPPER
+
+			case ID_AR:
+				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_ARMATURE); break;
+			case ID_CA:
+				tselem_draw_icon_uibut(&arg, ICON_OUTLINER_DATA_CAMERA); break;
+			case ID_KE:
+				tselem_draw_icon_uibut(&arg, ICON_SHAPEKEY_DATA); break;
+			case ID_WO:
+				tselem_draw_icon_uibut(&arg, ICON_WORLD_DATA); break;
+			case ID_AC:
+				tselem_draw_icon_uibut(&arg, ICON_ACTION); break;
+			case ID_NLA:
+				tselem_draw_icon_uibut(&arg, ICON_NLA); break;
+			case ID_TXT:
+				tselem_draw_icon_uibut(&arg, ICON_SCRIPT); break;
+			case ID_GR:
+				tselem_draw_icon_uibut(&arg, ICON_GROUP); break;
+			case ID_LI:
+				tselem_draw_icon_uibut(&arg, ICON_LIBRARY_DATA_DIRECT); break;
+		}
+	}
+}
+
+static void outliner_draw_iconrow(bContext *C, uiBlock *block, Scene *scene, SpaceOops *soops, ListBase *lb, int level, int xmax, int *offsx, int ys)
+{
+	TreeElement *te;
+	TreeStoreElem *tselem;
+	int active;
+
+	for(te= lb->first; te; te= te->next) {
+		
+		/* exit drawing early */
+		if((*offsx) - UI_UNIT_X > xmax)
+			break;
+
+		tselem= TREESTORE(te);
+		
+		/* object hierarchy always, further constrained on level */
+		if(level<1 || (tselem->type==0 && te->idcode==ID_OB)) {
+
+			/* active blocks get white circle */
+			if(tselem->type==0) {
+				if(te->idcode==ID_OB) active= (OBACT==(Object *)tselem->id);
+				else if(scene->obedit && scene->obedit->data==tselem->id) active= 1;	// XXX use context?
+				else active= tree_element_active(C, scene, soops, te, 0);
+			}
+			else active= tree_element_type_active(NULL, scene, soops, te, tselem, 0);
+			
+			if(active) {
+				float ufac= UI_UNIT_X/20.0f;
+
+				uiSetRoundBox(15);
+				glColor4ub(255, 255, 255, 100);
+				uiRoundBox( (float)*offsx-0.5f*ufac, (float)ys-1.0f*ufac, (float)*offsx+UI_UNIT_Y-3.0f*ufac, (float)ys+UI_UNIT_Y-3.0f*ufac, UI_UNIT_Y/2.0f-2.0f*ufac);
+				glEnable(GL_BLEND); /* roundbox disables */
+			}
+			
+			tselem_draw_icon(block, xmax, (float)*offsx, (float)ys, tselem, te, 0.5f);
+			te->xs= (float)*offsx;
+			te->ys= (float)ys;
+			te->xend= (short)*offsx+UI_UNIT_X;
+			te->flag |= TE_ICONROW;	// for click
+			
+			(*offsx) += UI_UNIT_X;
+		}
+		
+		/* this tree element always has same amount of branches, so dont draw */
+		if(tselem->type!=TSE_R_LAYER)
+			outliner_draw_iconrow(C, block, scene, soops, &te->subtree, level+1, xmax, offsx, ys);
+	}
+	
+}
+
+/* closed tree element */
+static void outliner_set_coord_tree_element(SpaceOops *soops, TreeElement *te, int startx, int *starty)
+{
+	TreeElement *ten;
+	
+	/* store coord and continue, we need coordinates for elements outside view too */
+	te->xs= (float)startx;
+	te->ys= (float)(*starty);
+	
+	for(ten= te->subtree.first; ten; ten= ten->next) {
+		outliner_set_coord_tree_element(soops, ten, startx+UI_UNIT_X, starty);
+	}	
+}
+
+
+static void outliner_draw_tree_element(bContext *C, uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops, TreeElement *te, int startx, int *starty)
+{
+	TreeElement *ten;
+	TreeStoreElem *tselem;
+	float ufac= UI_UNIT_X/20.0f;
+	int offsx= 0, active=0; // active=1 active obj, else active data
+	
+	tselem= TREESTORE(te);
+
+	if(*starty+2*UI_UNIT_Y >= ar->v2d.cur.ymin && *starty<= ar->v2d.cur.ymax) {
+		int xmax= ar->v2d.cur.xmax;
+		
+		/* icons can be ui buts, we dont want it to overlap with restrict */
+		if((soops->flag & SO_HIDE_RESTRICTCOLS)==0)
+			xmax-= OL_TOGW+UI_UNIT_X;
+		
+		glEnable(GL_BLEND);
+
+		/* colors for active/selected data */
+		if(tselem->type==0) {
+			if(te->idcode==ID_SCE) {
+				if(tselem->id == (ID *)scene) {
+					glColor4ub(255, 255, 255, 100);
+					active= 2;
+				}
+			}
+			else if(te->idcode==ID_GR) {
+				Group *gr = (Group *)tselem->id;
+				
+				if(group_select_flag(gr)) {
+					char col[4];
+					UI_GetThemeColorType4ubv(TH_SELECT, SPACE_VIEW3D, col);
+					col[3]= 100;
+					glColor4ubv((GLubyte *)col);
+					
+					active= 2;
+				}
+			}
+			else if(te->idcode==ID_OB) {
+				Object *ob= (Object *)tselem->id;
+				
+				if(ob==OBACT || (ob->flag & SELECT)) {
+					char col[4]= {0, 0, 0, 0};
+					
+					/* outliner active ob: always white text, circle color now similar to view3d */
+					
+					active= 2; /* means it draws a color circle */
+					if(ob==OBACT) {
+						if(ob->flag & SELECT) {
+							UI_GetThemeColorType4ubv(TH_ACTIVE, SPACE_VIEW3D, col);
+							col[3]= 100;
+						}
+						
+						active= 1; /* means it draws white text */
+					}
+					else if(ob->flag & SELECT) {
+						UI_GetThemeColorType4ubv(TH_SELECT, SPACE_VIEW3D, col);
+						col[3]= 100;
+					}
+					
+					glColor4ubv((GLubyte *)col);
+				}
+			
+			}
+			else if(scene->obedit && scene->obedit->data==tselem->id) {
+				glColor4ub(255, 255, 255, 100);
+				active= 2;
+			}
+			else {
+				if(tree_element_active(C, scene, soops, te, 0)) {
+					glColor4ub(220, 220, 255, 100);
+					active= 2;
+				}
+			}
+		}
+		else {
+			if( tree_element_type_active(NULL, scene, soops, te, tselem, 0) ) active= 2;
+			glColor4ub(220, 220, 255, 100);
+		}
+		
+		/* active circle */
+		if(active) {
+			uiSetRoundBox(15);
+			uiRoundBox( (float)startx+UI_UNIT_Y-1.5f*ufac, (float)*starty+2.0f*ufac, (float)startx+2.0f*UI_UNIT_Y-4.0f*ufac, (float)*starty+UI_UNIT_Y-1.0f*ufac, UI_UNIT_Y/2.0f-2.0f*ufac);
+			glEnable(GL_BLEND);	/* roundbox disables it */
+			
+			te->flag |= TE_ACTIVE; // for lookup in display hierarchies
+		}
+		
+		/* open/close icon, only when sublevels, except for scene */
+		if(te->subtree.first || (tselem->type==0 && te->idcode==ID_SCE) || (te->flag & TE_LAZY_CLOSED)) {
+			int icon_x;
+			if(tselem->type==0 && ELEM(te->idcode, ID_OB, ID_SCE))
+				icon_x = startx;
+			else
+				icon_x = startx+5*ufac;
+			
+				// icons a bit higher
+			if(tselem->flag & TSE_CLOSED) 
+				UI_icon_draw((float)icon_x, (float)*starty+2*ufac, ICON_DISCLOSURE_TRI_RIGHT);
+			else
+				UI_icon_draw((float)icon_x, (float)*starty+2*ufac, ICON_DISCLOSURE_TRI_DOWN);
+		}
+		offsx+= UI_UNIT_X;
+		
+		/* datatype icon */
+		
+		if(!(ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM))) {
+			// icons a bit higher
+			tselem_draw_icon(block, xmax, (float)startx+offsx - 0.5f*ufac, (float)*starty+2.0f*ufac, tselem, te, 1.0f);
+			
+			offsx+= UI_UNIT_X;
+		}
+		else
+			offsx+= 2*ufac;
+		
+		if(tselem->type==0 && tselem->id->lib) {
+			glPixelTransferf(GL_ALPHA_SCALE, 0.5f);
+			if(tselem->id->flag & LIB_INDIRECT)
+				UI_icon_draw((float)startx+offsx, (float)*starty+2*ufac, ICON_LIBRARY_DATA_INDIRECT);
+			else
+				UI_icon_draw((float)startx+offsx, (float)*starty+2*ufac, ICON_LIBRARY_DATA_DIRECT);
+			glPixelTransferf(GL_ALPHA_SCALE, 1.0f);
+			offsx+= UI_UNIT_X;
+		}		
+		glDisable(GL_BLEND);
+		
+		/* name */
+		if(active==1) UI_ThemeColor(TH_TEXT_HI);
+		else if(ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) UI_ThemeColorBlend(TH_BACK, TH_TEXT, 0.75f);
+		else UI_ThemeColor(TH_TEXT);
+		
+		UI_DrawString(startx+offsx, *starty+5*ufac, te->name);
+		
+		offsx+= (int)(UI_UNIT_X + UI_GetStringWidth(te->name));
+		
+		/* closed item, we draw the icons, not when it's a scene, or master-server list though */
+		if(tselem->flag & TSE_CLOSED) {
+			if(te->subtree.first) {
+				if(tselem->type==0 && te->idcode==ID_SCE);
+				else if(tselem->type!=TSE_R_LAYER) { /* this tree element always has same amount of branches, so dont draw */
+					int tempx= startx+offsx;
+					
+					// divider
+					UI_ThemeColorShade(TH_BACK, -40);
+					glRecti(tempx -10, *starty+4, tempx -8, *starty+UI_UNIT_Y-4);
+					
+					glEnable(GL_BLEND);
+					glPixelTransferf(GL_ALPHA_SCALE, 0.5);
+					
+					outliner_draw_iconrow(C, block, scene, soops, &te->subtree, 0, xmax, &tempx, *starty+2);
+					
+					glPixelTransferf(GL_ALPHA_SCALE, 1.0);
+					glDisable(GL_BLEND);
+				}
+			}
+		}
+	}	
+	/* store coord and continue, we need coordinates for elements outside view too */
+	te->xs= (float)startx;
+	te->ys= (float)*starty;
+	te->xend= startx+offsx;
+		
+	if((tselem->flag & TSE_CLOSED)==0) {
+		*starty-= UI_UNIT_Y;
+		
+		for(ten= te->subtree.first; ten; ten= ten->next)
+			outliner_draw_tree_element(C, block, scene, ar, soops, ten, startx+UI_UNIT_X, starty);
+	}	
+	else {
+		for(ten= te->subtree.first; ten; ten= ten->next)
+			outliner_set_coord_tree_element(soops, te, startx, starty);
+		
+		*starty-= UI_UNIT_Y;
+	}
+}
+
+static void outliner_draw_hierarchy(SpaceOops *soops, ListBase *lb, int startx, int *starty)
+{
+	TreeElement *te;
+	TreeStoreElem *tselem;
+	int y1, y2;
+	
+	if(lb->first==NULL) return;
+	
+	y1=y2= *starty; /* for vertical lines between objects */
+	for(te=lb->first; te; te= te->next) {
+		y2= *starty;
+		tselem= TREESTORE(te);
+		
+		/* horizontal line? */
+		if(tselem->type==0 && (te->idcode==ID_OB || te->idcode==ID_SCE))
+			glRecti(startx, *starty, startx+UI_UNIT_X, *starty-1);
+			
+		*starty-= UI_UNIT_Y;
+		
+		if((tselem->flag & TSE_CLOSED)==0)
+			outliner_draw_hierarchy(soops, &te->subtree, startx+UI_UNIT_X, starty);
+	}
+	
+	/* vertical line */
+	te= lb->last;
+	if(te->parent || lb->first!=lb->last) {
+		tselem= TREESTORE(te);
+		if(tselem->type==0 && te->idcode==ID_OB) {
+			
+			glRecti(startx, y1+UI_UNIT_Y, startx+1, y2);
+		}
+	}
+}
+
+static void outliner_draw_struct_marks(ARegion *ar, SpaceOops *soops, ListBase *lb, int *starty) 
+{
+	TreeElement *te;
+	TreeStoreElem *tselem;
+	
+	for(te= lb->first; te; te= te->next) {
+		tselem= TREESTORE(te);
+		
+		/* selection status */
+		if((tselem->flag & TSE_CLOSED)==0)
+			if(tselem->type == TSE_RNA_STRUCT)
+				glRecti(0, *starty+1, (int)ar->v2d.cur.xmax+V2D_SCROLL_WIDTH, *starty+UI_UNIT_Y-1);
+
+		*starty-= UI_UNIT_Y;
+		if((tselem->flag & TSE_CLOSED)==0) {
+			outliner_draw_struct_marks(ar, soops, &te->subtree, starty);
+			if(tselem->type == TSE_RNA_STRUCT)
+				fdrawline(0, (float)*starty+UI_UNIT_Y, ar->v2d.cur.xmax+V2D_SCROLL_WIDTH, (float)*starty+UI_UNIT_Y);
+		}
+	}
+}
+
+static void outliner_draw_selection(ARegion *ar, SpaceOops *soops, ListBase *lb, int *starty) 
+{
+	TreeElement *te;
+	TreeStoreElem *tselem;
+	
+	for(te= lb->first; te; te= te->next) {
+		tselem= TREESTORE(te);
+		
+		/* selection status */
+		if(tselem->flag & TSE_SELECTED) {
+			glRecti(0, *starty+1, (int)ar->v2d.cur.xmax, *starty+UI_UNIT_Y-1);
+		}
+		*starty-= UI_UNIT_Y;
+		if((tselem->flag & TSE_CLOSED)==0) outliner_draw_selection(ar, soops, &te->subtree, starty);
+	}
+}
+
+
+static void outliner_draw_tree(bContext *C, uiBlock *block, Scene *scene, ARegion *ar, SpaceOops *soops)
+{
+	TreeElement *te;
+	int starty, startx;
+	float col[4];
+		
+	glBlendFunc(GL_SRC_ALPHA,  GL_ONE_MINUS_SRC_ALPHA); // only once
+	
+	if (ELEM(soops->outlinevis, SO_DATABLOCKS, SO_USERDEF)) {
+		/* struct marks */
+		UI_ThemeColorShadeAlpha(TH_BACK, -15, -200);
+		//UI_ThemeColorShade(TH_BACK, -20);
+		starty= (int)ar->v2d.tot.ymax-UI_UNIT_Y-OL_Y_OFFSET;
+		outliner_draw_struct_marks(ar, soops, &soops->tree, &starty);
+	}
+	
+	/* always draw selection fill before hierarchy */
+	UI_GetThemeColor3fv(TH_BACK, col);
+	glColor3f(col[0]+0.06f, col[1]+0.08f, col[2]+0.10f);
+	starty= (int)ar->v2d.tot.ymax-UI_UNIT_Y-OL_Y_OFFSET;
+	outliner_draw_selection(ar, soops, &soops->tree, &starty);
+	
+	// grey hierarchy lines
+	UI_ThemeColorBlend(TH_BACK, TH_TEXT, 0.4f);
+	starty= (int)ar->v2d.tot.ymax-UI_UNIT_Y/2-OL_Y_OFFSET;
+	startx= 6;
+	outliner_draw_hierarchy(soops, &soops->tree, startx, &starty);
+	
+	// items themselves
+	starty= (int)ar->v2d.tot.ymax-UI_UNIT_Y-OL_Y_OFFSET;
+	startx= 0;
+	for(te= soops->tree.first; te; te= te->next) {
+		outliner_draw_tree_element(C, block, scene, ar, soops, te, startx, &starty);
+	}
+}
+
+
+static void outliner_back(ARegion *ar)
+{
+	int ystart;
+	
+	UI_ThemeColorShade(TH_BACK, 6);
+	ystart= (int)ar->v2d.tot.ymax;
+	ystart= UI_UNIT_Y*(ystart/(UI_UNIT_Y))-OL_Y_OFFSET;
+	
+	while(ystart+2*UI_UNIT_Y > ar->v2d.cur.ymin) {
+		glRecti(0, ystart, (int)ar->v2d.cur.xmax+V2D_SCROLL_WIDTH, ystart+UI_UNIT_Y);
+		ystart-= 2*UI_UNIT_Y;
+	}
+}
+
+static void outliner_draw_restrictcols(ARegion *ar)
+{
+	int ystart;
+	
+	/* background underneath */
+	UI_ThemeColor(TH_BACK);
+	glRecti((int)ar->v2d.cur.xmax-OL_TOGW, (int)ar->v2d.cur.ymin-V2D_SCROLL_HEIGHT-1, (int)ar->v2d.cur.xmax+V2D_SCROLL_WIDTH, (int)ar->v2d.cur.ymax);
+	
+	UI_ThemeColorShade(TH_BACK, 6);
+	ystart= (int)ar->v2d.tot.ymax;
+	ystart= UI_UNIT_Y*(ystart/(UI_UNIT_Y))-OL_Y_OFFSET;
+	
+	while(ystart+2*UI_UNIT_Y > ar->v2d.cur.ymin) {
+		glRecti((int)ar->v2d.cur.xmax-OL_TOGW, ystart, (int)ar->v2d.cur.xmax, ystart+UI_UNIT_Y);
+		ystart-= 2*UI_UNIT_Y;
+	}
+	
+	UI_ThemeColorShadeAlpha(TH_BACK, -15, -200);
+
+	/* view */
+	fdrawline(ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX,
+		ar->v2d.cur.ymax,
+		ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX,
+		ar->v2d.cur.ymin - V2D_SCROLL_HEIGHT);
+
+	/* render */
+	fdrawline(ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX,
+		ar->v2d.cur.ymax,
+		ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX,
+		ar->v2d.cur.ymin - V2D_SCROLL_HEIGHT);
+
+	/* render */
+	fdrawline(ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX,
+		ar->v2d.cur.ymax,
+		ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX,
+		ar->v2d.cur.ymin - V2D_SCROLL_HEIGHT);
+}
+
+/* ****************************************************** */
+/* Main Entrypoint - Draw contents of Outliner editor */
+ 
+void draw_outliner(const bContext *C)
+{
+	Main *mainvar= CTX_data_main(C);
+	Scene *scene= CTX_data_scene(C);
+	ARegion *ar= CTX_wm_region(C);
+	View2D *v2d= &ar->v2d;
+	SpaceOops *soops= CTX_wm_space_outliner(C);
+	uiBlock *block;
+	int sizey= 0, sizex= 0, sizex_rna= 0;
+	
+	outliner_build_tree(mainvar, scene, soops); // always 
+	
+	/* get extents of data */
+	outliner_height(soops, &soops->tree, &sizey);
+
+	if (ELEM3(soops->outlinevis, SO_DATABLOCKS, SO_USERDEF, SO_KEYMAP)) {
+		/* RNA has two columns:
+		 * 	- column 1 is (max_width + OL_RNA_COL_SPACEX) or
+		 *				 (OL_RNA_COL_X), whichever is wider...
+		 *	- column 2 is fixed at OL_RNA_COL_SIZEX
+		 *
+		 *  (*) XXX max width for now is a fixed factor of UI_UNIT_X*(max_indention+100)
+		 */
+		 
+		/* get actual width of column 1 */
+		outliner_rna_width(soops, &soops->tree, &sizex_rna, 0);
+		sizex_rna= MAX2(OL_RNA_COLX, sizex_rna+OL_RNA_COL_SPACEX);
+		
+		/* get width of data (for setting 'tot' rect, this is column 1 + column 2 + a bit extra) */
+		if (soops->outlinevis == SO_KEYMAP) 
+			sizex= sizex_rna + OL_RNA_COL_SIZEX*3 + 50; // XXX this is only really a quick hack to make this wide enough...
+		else
+			sizex= sizex_rna + OL_RNA_COL_SIZEX + 50;
+	}
+	else {
+		/* width must take into account restriction columns (if visible) so that entries will still be visible */
+		//outliner_width(soops, &soops->tree, &sizex);
+		outliner_rna_width(soops, &soops->tree, &sizex, 0); // XXX should use outliner_width instead when te->xend will be set correctly...
+		
+		/* constant offset for restriction columns */
+		// XXX this isn't that great yet...
+		if ((soops->flag & SO_HIDE_RESTRICTCOLS)==0)
+			sizex += OL_TOGW*3;
+	}
+	
+	/* tweak to display last line (when list bigger than window) */
+	sizey += V2D_SCROLL_HEIGHT;
+	
+	/* adds vertical offset */
+	sizey += OL_Y_OFFSET;
+
+	/* update size of tot-rect (extents of data/viewable area) */
+	UI_view2d_totRect_set(v2d, sizex, sizey);
+
+	/* force display to pixel coords */
+	v2d->flag |= (V2D_PIXELOFS_X|V2D_PIXELOFS_Y);
+	/* set matrix for 2d-view controls */
+	UI_view2d_view_ortho(v2d);
+
+	/* draw outliner stuff (background, hierachy lines and names) */
+	outliner_back(ar);
+	block= uiBeginBlock(C, ar, "outliner buttons", UI_EMBOSS);
+	outliner_draw_tree((bContext *)C, block, scene, ar, soops);
+	
+	if(ELEM(soops->outlinevis, SO_DATABLOCKS, SO_USERDEF)) {
+		/* draw rna buttons */
+		outliner_draw_rnacols(ar, sizex_rna);
+		outliner_draw_rnabuts(block, scene, ar, soops, sizex_rna, &soops->tree);
+	}
+	else if(soops->outlinevis == SO_KEYMAP) {
+		outliner_draw_keymapbuts(block, ar, soops, &soops->tree);
+	}
+	else if (!(soops->flag & SO_HIDE_RESTRICTCOLS)) {
+		/* draw restriction columns */
+		outliner_draw_restrictcols(ar);
+		outliner_draw_restrictbuts(block, scene, ar, soops, &soops->tree);
+	}
+
+	/* draw edit buttons if nessecery */
+	outliner_buttons(C, block, ar, soops, &soops->tree);	
+
+	uiEndBlock(C, block);
+	uiDrawBlock(C, block);
+	
+	/* clear flag that allows quick redraws */
+	soops->storeflag &= ~SO_TREESTORE_REDRAW;
+} 
diff --git a/source/blender/editors/space_outliner/outliner_edit.c b/source/blender/editors/space_outliner/outliner_edit.c
new file mode 100644
index 0000000000000000000000000000000000000000..15167a3ba2c1ca8a7cf823fa61d46b413cb3be75
--- /dev/null
+++ b/source/blender/editors/space_outliner/outliner_edit.c
@@ -0,0 +1,1398 @@
+/*
+ * $Id$
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version. 
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2004 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): Joshua Leung
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/editors/space_outliner/outliner_edit.c
+ *  \ingroup spoutliner
+ */
+
+#include <math.h>
+#include <string.h>
+#include <stdlib.h>
+#include <stddef.h>
+
+#include "MEM_guardedalloc.h"
+
+#include "DNA_anim_types.h"
+#include "DNA_armature_types.h"
+#include "DNA_constraint_types.h"
+#include "DNA_camera_types.h"
+#include "DNA_group_types.h"
+#include "DNA_key_types.h"
+#include "DNA_lamp_types.h"
+#include "DNA_material_types.h"
+#include "DNA_mesh_types.h"
+#include "DNA_meta_types.h"
+#include "DNA_particle_types.h"
+#include "DNA_scene_types.h"
+#include "DNA_world_types.h"
+#include "DNA_sequence_types.h"
+#include "DNA_object_types.h"
+
+#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
+#include "BLI_math_base.h"
+
+#if defined WIN32 && !defined _LIBC
+# include "BLI_fnmatch.h" /* use fnmatch included in blenlib */
+#else
+#  ifndef _GNU_SOURCE
+#    define _GNU_SOURCE
+#  endif
+# include <fnmatch.h>
+#endif
+
+
+#include "BKE_animsys.h"
+#include "BKE_context.h"
+#include "BKE_deform.h"
+#include "BKE_depsgraph.h"
+#include "BKE_fcurve.h"
+#include "BKE_global.h"
+#include "BKE_group.h"
+#include "BKE_library.h"
+#include "BKE_main.h"
+#include "BKE_modifier.h"
+#include "BKE_report.h"
+#include "BKE_scene.h"
+#include "BKE_sequencer.h"
+
+#include "ED_armature.h"
+#include "ED_object.h"
+#include "ED_screen.h"
+#include "ED_util.h"
+
+#include "WM_api.h"
+#include "WM_types.h"
+
+#include "BIF_gl.h"
+#include "BIF_glutil.h"
+
+#include "UI_interface.h"
+#include "UI_interface_icons.h"
+#include "UI_resources.h"
+#include "UI_view2d.h"
+
+#include "RNA_access.h"
+#include "RNA_define.h"
+#include "RNA_enum_types.h"
+
+#include "ED_keyframing.h"
+
+#include "outliner_intern.h"
+
+/* ************************************************************** */
+/* Unused Utilities */
+// XXX: where to place these?
+
+/* This is not used anywhere at the moment */
+#if 0
+/* return 1 when levels were opened */
+static int outliner_open_back(SpaceOops *soops, TreeElement *te)
+{
+	TreeStoreElem *tselem;
+	int retval= 0;
+	
+	for (te= te->parent; te; te= te->parent) {
+		tselem= TREESTORE(te);
+		if (tselem->flag & TSE_CLOSED) { 
+			tselem->flag &= ~TSE_CLOSED;
+			retval= 1;
+		}
+	}
+	return retval;
+}
+
+static void outliner_open_reveal(SpaceOops *soops, ListBase *lb, TreeElement *teFind, int *found)
+{
+	TreeElement *te;
+	TreeStoreElem *tselem;
+	
+	for (te= lb->first; te; te= te->next) {
+		/* check if this tree-element was the one we're seeking */
+		if (te == teFind) {
+			*found= 1;
+			return;
+		}
+		
+		/* try to see if sub-tree contains it then */
+		outliner_open_reveal(soops, &te->subtree, teFind, found);
+		if (*found) {
+			tselem= TREESTORE(te);
+			if (tselem->flag & TSE_CLOSED) 
+				tselem->flag &= ~TSE_CLOSED;
+			return;
+		}
+	}
+}
+#endif
+
+/* ************************************************************** */
+/* Click Activated */
+
+/* Toggle Open/Closed ------------------------------------------- */
+
+static int do_outliner_item_openclose(bContext *C, SpaceOops *soops, TreeElement *te, int all, const float mval[2])
+{
+	
+	if(mval[1]>te->ys && mval[1]<te->ys+UI_UNIT_Y) {
+		TreeStoreElem *tselem= TREESTORE(te);
+		
+		/* all below close/open? */
+		if(all) {
+			tselem->flag &= ~TSE_CLOSED;
+			outliner_set_flag(soops, &te->subtree, TSE_CLOSED, !outliner_has_one_flag(soops, &te->subtree, TSE_CLOSED, 1));
+		}
+		else {
+			if(tselem->flag & TSE_CLOSED) tselem->flag &= ~TSE_CLOSED;
+			else tselem->flag |= TSE_CLOSED;
+		}
+		
+		return 1;
+	}
+	
+	for(te= te->subtree.first; te; te= te->next) {
+		if(do_outliner_item_openclose(C, soops, te, all, mval)) 
+			return 1;
+	}
+	return 0;
+	
+}
+
+/* event can enterkey, then it opens/closes */
+static int outliner_item_openclose(bContext *C, wmOperator *op, wmEvent *event)
+{
+	ARegion *ar= CTX_wm_region(C);
+	SpaceOops *soops= CTX_wm_space_outliner(C);
+	TreeElement *te;
+	float fmval[2];
+	int all= RNA_boolean_get(op->ptr, "all");
+	
+	UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], fmval, fmval+1);
+	
+	for(te= soops->tree.first; te; te= te->next) {
+		if(do_outliner_item_openclose(C, soops, te, all, fmval)) 
+			break;
+	}
+
+	ED_region_tag_redraw(ar);
+	
+	return OPERATOR_FINISHED;
+}
+
+void OUTLINER_OT_item_openclose(wmOperatorType *ot)
+{
+	ot->name= "Open/Close Item";
+	ot->idname= "OUTLINER_OT_item_openclose";
+	ot->description= "Toggle whether item under cursor is enabled or closed";
+	
+	ot->invoke= outliner_item_openclose;
+	
+	ot->poll= ED_operator_outliner_active;
+	
+	RNA_def_boolean(ot->srna, "all", 1, "All", "Close or open all items.");
+}
+
+/* Rename --------------------------------------------------- */
+
+static int do_outliner_item_rename(bContext *C, ARegion *ar, SpaceOops *soops, TreeElement *te, const float mval[2])
+{	
+	ReportList *reports= CTX_wm_reports(C); // XXX
+	
+	if(mval[1]>te->ys && mval[1]<te->ys+UI_UNIT_Y) {
+		TreeStoreElem *tselem= TREESTORE(te);
+		
+		/* name and first icon */
+		if(mval[0]>te->xs+UI_UNIT_X && mval[0]<te->xend) {
+			
+			/* can't rename rna datablocks entries */
+			if(ELEM3(tselem->type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM))
+			   ;
+			else if(ELEM10(tselem->type, TSE_ANIM_DATA, TSE_NLA, TSE_DEFGROUP_BASE, TSE_CONSTRAINT_BASE, TSE_MODIFIER_BASE, TSE_SCRIPT_BASE, TSE_POSE_BASE, TSE_POSEGRP_BASE, TSE_R_LAYER_BASE, TSE_R_PASS)) 
+					BKE_report(reports, RPT_WARNING, "Cannot edit builtin name");
+			else if(ELEM3(tselem->type, TSE_SEQUENCE, TSE_SEQ_STRIP, TSE_SEQUENCE_DUP))
+				BKE_report(reports, RPT_WARNING, "Cannot edit sequence name");
+			else if(tselem->id->lib) {
+				// XXX						error_libdata();
+			} 
+			else if(te->idcode == ID_LI && te->parent) {
+				BKE_report(reports, RPT_WARNING, "Cannot edit the path of an indirectly linked library");
+			} 
+			else {
+				tselem->flag |= TSE_TEXTBUT;
+				ED_region_tag_redraw(ar);
+			}
+		}
+		return 1;
+	}
+	
+	for(te= te->subtree.first; te; te= te->next) {
+		if(do_outliner_item_rename(C, ar, soops, te, mval)) return 1;
+	}
+	return 0;
+}
+
+static int outliner_item_rename(bContext *C, wmOperator *UNUSED(op), wmEvent *event)
+{
+	ARegion *ar= CTX_wm_region(C);
+	SpaceOops *soops= CTX_wm_space_outliner(C);
+	TreeElement *te;
+	float fmval[2];
+	
+	UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], fmval, fmval+1);
+	
+	for(te= soops->tree.first; te; te= te->next) {
+		if(do_outliner_item_rename(C, ar, soops, te, fmval)) break;
+	}
+	
+	return OPERATOR_FINISHED;
+}
+
+
+void OUTLINER_OT_item_rename(wmOperatorType *ot)
+{
+	ot->name= "Rename Item";
+	ot->idname= "OUTLINER_OT_item_rename";
+	ot->description= "Rename item under cursor";
+	
+	ot->invoke= outliner_item_rename;
+	
+	ot->poll= ED_operator_outliner_active;
+}
+
+/* ************************************************************** */
+/* Setting Toggling Operators */
+
+/* =============================================== */
+/* Toggling Utilities (Exported) */
+
+/* Apply Settings ------------------------------- */
+
+static int outliner_count_levels(SpaceOops *soops, ListBase *lb, int curlevel)
+{
+	TreeElement *te;
+	int level=curlevel, lev;
+	
+	for(te= lb->first; te; te= te->next) {
+		
+		lev= outliner_count_levels(soops, &te->subtree, curlevel+1);
+		if(lev>level) level= lev;
+	}
+	return level;
+}
+
+int outliner_has_one_flag(SpaceOops *soops, ListBase *lb, short flag, short curlevel)
+{
+	TreeElement *te;
+	TreeStoreElem *tselem;
+	int level;
+	
+	for(te= lb->first; te; te= te->next) {
+		tselem= TREESTORE(te);
+		if(tselem->flag & flag) return curlevel;
+		
+		level= outliner_has_one_flag(soops, &te->subtree, flag, curlevel+1);
+		if(level) return level;
+	}
+	return 0;
+}
+
+void outliner_set_flag(SpaceOops *soops, ListBase *lb, short flag, short set)
+{
+	TreeElement *te;
+	TreeStoreElem *tselem;
+	
+	for(te= lb->first; te; te= te->next) {
+		tselem= TREESTORE(te);
+		if(set==0) tselem->flag &= ~flag;
+		else tselem->flag |= flag;
+		outliner_set_flag(soops, &te->subtree, flag, set);
+	}
+}
+
+/* Restriction Columns ------------------------------- */
+
+/* same check needed for both object operation and restrict column button func
+ * return 0 when in edit mode (cannot restrict view or select)
+ * otherwise return 1 */
+int common_restrict_check(bContext *C, Object *ob)
+{
+	/* Don't allow hide an object in edit mode,
+	 * check the bug #22153 and #21609, #23977
+	 */
+	Object *obedit= CTX_data_edit_object(C);
+	if (obedit && obedit == ob) {
+		/* found object is hidden, reset */
+		if (ob->restrictflag & OB_RESTRICT_VIEW)
+			ob->restrictflag &= ~OB_RESTRICT_VIEW;
+		/* found object is unselectable, reset */
+		if (ob->restrictflag & OB_RESTRICT_SELECT)
+			ob->restrictflag &= ~OB_RESTRICT_SELECT;
+		return 0;
+	}
+	
+	return 1;
+}
+
+/* =============================================== */
+/* Restriction toggles */
+
+/* Toggle Visibility ---------------------------------------- */
+
+void object_toggle_visibility_cb(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem)
+{
+	Base *base= (Base *)te->directdata;
+	Object *ob = (Object *)tselem->id;
+	
+	/* add check for edit mode */
+	if(!common_restrict_check(C, ob)) return;
+	
+	if(base || (base= object_in_scene(ob, scene))) {
+		if((base->object->restrictflag ^= OB_RESTRICT_VIEW)) {
+			ED_base_object_select(base, BA_DESELECT);
+		}
+	}
+}
+
+static int outliner_toggle_visibility_exec(bContext *C, wmOperator *UNUSED(op))
+{
+	SpaceOops *soops= CTX_wm_space_outliner(C);
+	Scene *scene= CTX_data_scene(C);
+	ARegion *ar= CTX_wm_region(C);
+	
+	outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_visibility_cb);
+	
+	WM_event_add_notifier(C, NC_SCENE|ND_OB_VISIBLE, scene);
+	ED_region_tag_redraw(ar);
+	
+	return OPERATOR_FINISHED;
+}
+
+void OUTLINER_OT_visibility_toggle(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Toggle Visibility";
+	ot->idname= "OUTLINER_OT_visibility_toggle";
+	ot->description= "Toggle the visibility of selected items";
+	
+	/* callbacks */
+	ot->exec= outliner_toggle_visibility_exec;
+	ot->poll= ED_operator_outliner_active_no_editobject;
+	
+	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+/* Toggle Selectability ---------------------------------------- */
+
+void object_toggle_selectability_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem)
+{
+	Base *base= (Base *)te->directdata;
+	
+	if(base==NULL) base= object_in_scene((Object *)tselem->id, scene);
+	if(base) {
+		base->object->restrictflag^=OB_RESTRICT_SELECT;
+	}
+}
+
+static int outliner_toggle_selectability_exec(bContext *C, wmOperator *UNUSED(op))
+{
+	SpaceOops *soops= CTX_wm_space_outliner(C);
+	Scene *scene= CTX_data_scene(C);
+	ARegion *ar= CTX_wm_region(C);
+	
+	outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_selectability_cb);
+	
+	WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene);
+	ED_region_tag_redraw(ar);
+	
+	return OPERATOR_FINISHED;
+}
+
+void OUTLINER_OT_selectability_toggle(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Toggle Selectability";
+	ot->idname= "OUTLINER_OT_selectability_toggle";
+	ot->description= "Toggle the selectability";
+	
+	/* callbacks */
+	ot->exec= outliner_toggle_selectability_exec;
+	ot->poll= ED_operator_outliner_active_no_editobject;
+	
+	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+/* Toggle Renderability ---------------------------------------- */
+
+void object_toggle_renderability_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem)
+{
+	Base *base= (Base *)te->directdata;
+	
+	if(base==NULL) base= object_in_scene((Object *)tselem->id, scene);
+	if(base) {
+		base->object->restrictflag^=OB_RESTRICT_RENDER;
+	}
+}
+
+static int outliner_toggle_renderability_exec(bContext *C, wmOperator *UNUSED(op))
+{
+	SpaceOops *soops= CTX_wm_space_outliner(C);
+	Scene *scene= CTX_data_scene(C);
+	ARegion *ar= CTX_wm_region(C);
+	
+	outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_renderability_cb);
+	
+	ED_region_tag_redraw(ar);
+	
+	return OPERATOR_FINISHED;
+}
+
+void OUTLINER_OT_renderability_toggle(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Toggle Renderability";
+	ot->idname= "OUTLINER_OT_renderability_toggle";
+	ot->description= "Toggle the renderability of selected items";
+	
+	/* callbacks */
+	ot->exec= outliner_toggle_renderability_exec;
+	ot->poll= ED_operator_outliner_active;
+	
+	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+/* =============================================== */
+/* Outliner setting toggles */
+
+/* Toggle Expanded (Outliner) ---------------------------------------- */
+
+static int outliner_toggle_expanded_exec(bContext *C, wmOperator *UNUSED(op))
+{
+	SpaceOops *soops= CTX_wm_space_outliner(C);
+	ARegion *ar= CTX_wm_region(C);
+	
+	if (outliner_has_one_flag(soops, &soops->tree, TSE_CLOSED, 1))
+		outliner_set_flag(soops, &soops->tree, TSE_CLOSED, 0);
+	else 
+		outliner_set_flag(soops, &soops->tree, TSE_CLOSED, 1);
+	
+	ED_region_tag_redraw(ar);
+	
+	return OPERATOR_FINISHED;
+}
+
+void OUTLINER_OT_expanded_toggle(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Expand/Collapse All";
+	ot->idname= "OUTLINER_OT_expanded_toggle";
+	ot->description= "Expand/Collapse all items";
+	
+	/* callbacks */
+	ot->exec= outliner_toggle_expanded_exec;
+	ot->poll= ED_operator_outliner_active;
+	
+	/* no undo or registry, UI option */
+}
+
+/* Toggle Selected (Outliner) ---------------------------------------- */
+
+static int outliner_toggle_selected_exec(bContext *C, wmOperator *UNUSED(op))
+{
+	SpaceOops *soops= CTX_wm_space_outliner(C);
+	ARegion *ar= CTX_wm_region(C);
+	Scene *scene= CTX_data_scene(C);
+	
+	if (outliner_has_one_flag(soops, &soops->tree, TSE_SELECTED, 1))
+		outliner_set_flag(soops, &soops->tree, TSE_SELECTED, 0);
+	else 
+		outliner_set_flag(soops, &soops->tree, TSE_SELECTED, 1);
+	
+	soops->storeflag |= SO_TREESTORE_REDRAW;
+	
+	WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene);
+	ED_region_tag_redraw(ar);
+	
+	return OPERATOR_FINISHED;
+}
+
+void OUTLINER_OT_selected_toggle(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Toggle Selected";
+	ot->idname= "OUTLINER_OT_selected_toggle";
+	ot->description= "Toggle the Outliner selection of items";
+	
+	/* callbacks */
+	ot->exec= outliner_toggle_selected_exec;
+	ot->poll= ED_operator_outliner_active;
+	
+	/* no undo or registry, UI option */
+}
+
+/* ************************************************************** */
+/* Hotkey Only Operators */
+
+/* Show Active --------------------------------------------------- */
+
+static int outliner_show_active_exec(bContext *C, wmOperator *UNUSED(op))
+{
+	SpaceOops *so= CTX_wm_space_outliner(C);
+	Scene *scene= CTX_data_scene(C);
+	ARegion *ar= CTX_wm_region(C);
+	View2D *v2d= &ar->v2d;
+	
+	TreeElement *te;
+	int xdelta, ytop;
+	
+	// TODO: make this get this info from context instead...
+	if (OBACT == NULL) 
+		return OPERATOR_CANCELLED;
+	
+	te= outliner_find_id(so, &so->tree, (ID *)OBACT);
+	if (te) {
+		/* make te->ys center of view */
+		ytop= (int)(te->ys + (v2d->mask.ymax - v2d->mask.ymin)/2);
+		if (ytop>0) ytop= 0;
+		
+		v2d->cur.ymax= (float)ytop;
+		v2d->cur.ymin= (float)(ytop-(v2d->mask.ymax - v2d->mask.ymin));
+		
+		/* make te->xs ==> te->xend center of view */
+		xdelta = (int)(te->xs - v2d->cur.xmin);
+		v2d->cur.xmin += xdelta;
+		v2d->cur.xmax += xdelta;
+		
+		so->storeflag |= SO_TREESTORE_REDRAW;
+	}
+	
+	ED_region_tag_redraw(ar);
+	
+	return OPERATOR_FINISHED;
+}
+
+void OUTLINER_OT_show_active(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Show Active";
+	ot->idname= "OUTLINER_OT_show_active";
+	ot->description= "Adjust the view so that the active Object is shown centered";
+	
+	/* callbacks */
+	ot->exec= outliner_show_active_exec;
+	ot->poll= ED_operator_outliner_active;
+}
+
+/* View Panning --------------------------------------------------- */
+
+static int outliner_scroll_page_exec(bContext *C, wmOperator *op)
+{
+	ARegion *ar= CTX_wm_region(C);
+	int dy= ar->v2d.mask.ymax - ar->v2d.mask.ymin;
+	int up= 0;
+	
+	if(RNA_boolean_get(op->ptr, "up"))
+		up= 1;
+
+	if(up == 0) dy= -dy;
+	ar->v2d.cur.ymin+= dy;
+	ar->v2d.cur.ymax+= dy;
+	
+	ED_region_tag_redraw(ar);
+	
+	return OPERATOR_FINISHED;
+}
+
+
+void OUTLINER_OT_scroll_page(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Scroll Page";
+	ot->idname= "OUTLINER_OT_scroll_page";
+	ot->description= "Scroll page up or down";
+	
+	/* callbacks */
+	ot->exec= outliner_scroll_page_exec;
+	ot->poll= ED_operator_outliner_active;
+	
+	/* properties */
+	RNA_def_boolean(ot->srna, "up", 0, "Up", "Scroll up one page.");
+}
+
+/* Search ------------------------------------------------------- */
+// TODO: probably obsolete now with filtering?
+
+#if 0
+
+/* recursive helper for function below */
+static void outliner_set_coordinates_element(SpaceOops *soops, TreeElement *te, int startx, int *starty)
+{
+	TreeStoreElem *tselem= TREESTORE(te);
+	
+	/* store coord and continue, we need coordinates for elements outside view too */
+	te->xs= (float)startx;
+	te->ys= (float)(*starty);
+	*starty-= UI_UNIT_Y;
+	
+	if((tselem->flag & TSE_CLOSED)==0) {
+		TreeElement *ten;
+		for(ten= te->subtree.first; ten; ten= ten->next) {
+			outliner_set_coordinates_element(soops, ten, startx+UI_UNIT_X, starty);
+		}
+	}
+	
+}
+
+/* to retrieve coordinates with redrawing the entire tree */
+static void outliner_set_coordinates(ARegion *ar, SpaceOops *soops)
+{
+	TreeElement *te;
+	int starty= (int)(ar->v2d.tot.ymax)-UI_UNIT_Y;
+	int startx= 0;
+	
+	for(te= soops->tree.first; te; te= te->next) {
+		outliner_set_coordinates_element(soops, te, startx, &starty);
+	}
+}
+
+/* find next element that has this name */
+static TreeElement *outliner_find_named(SpaceOops *soops, ListBase *lb, char *name, int flags, TreeElement *prev, int *prevFound)
+{
+	TreeElement *te, *tes;
+	
+	for (te= lb->first; te; te= te->next) {
+		int found = outliner_filter_has_name(te, name, flags);
+		
+		if(found) {
+			/* name is right, but is element the previous one? */
+			if (prev) {
+				if ((te != prev) && (*prevFound)) 
+					return te;
+				if (te == prev) {
+					*prevFound = 1;
+				}
+			}
+			else
+				return te;
+		}
+		
+		tes= outliner_find_named(soops, &te->subtree, name, flags, prev, prevFound);
+		if(tes) return tes;
+	}
+
+	/* nothing valid found */
+	return NULL;
+}
+
+static void outliner_find_panel(Scene *UNUSED(scene), ARegion *ar, SpaceOops *soops, int again, int flags) 
+{
+	ReportList *reports = NULL; // CTX_wm_reports(C);
+	TreeElement *te= NULL;
+	TreeElement *last_find;
+	TreeStoreElem *tselem;
+	int ytop, xdelta, prevFound=0;
+	char name[32];
+	
+	/* get last found tree-element based on stored search_tse */
+	last_find= outliner_find_tse(soops, &soops->search_tse);
+	
+	/* determine which type of search to do */
+	if (again && last_find) {
+		/* no popup panel - previous + user wanted to search for next after previous */		
+		BLI_strncpy(name, soops->search_string, sizeof(name));
+		flags= soops->search_flags;
+		
+		/* try to find matching element */
+		te= outliner_find_named(soops, &soops->tree, name, flags, last_find, &prevFound);
+		if (te==NULL) {
+			/* no more matches after previous, start from beginning again */
+			prevFound= 1;
+			te= outliner_find_named(soops, &soops->tree, name, flags, last_find, &prevFound);
+		}
+	}
+	else {
+		/* pop up panel - no previous, or user didn't want search after previous */
+		strcpy(name, "");
+// XXX		if (sbutton(name, 0, sizeof(name)-1, "Find: ") && name[0]) {
+//			te= outliner_find_named(soops, &soops->tree, name, flags, NULL, &prevFound);
+//		}
+//		else return; /* XXX RETURN! XXX */
+	}
+
+	/* do selection and reveal */
+	if (te) {
+		tselem= TREESTORE(te);
+		if (tselem) {
+			/* expand branches so that it will be visible, we need to get correct coordinates */
+			if( outliner_open_back(soops, te))
+				outliner_set_coordinates(ar, soops);
+			
+			/* deselect all visible, and select found element */
+			outliner_set_flag(soops, &soops->tree, TSE_SELECTED, 0);
+			tselem->flag |= TSE_SELECTED;
+			
+			/* make te->ys center of view */
+			ytop= (int)(te->ys + (ar->v2d.mask.ymax-ar->v2d.mask.ymin)/2);
+			if(ytop>0) ytop= 0;
+			ar->v2d.cur.ymax= (float)ytop;
+			ar->v2d.cur.ymin= (float)(ytop-(ar->v2d.mask.ymax-ar->v2d.mask.ymin));
+			
+			/* make te->xs ==> te->xend center of view */
+			xdelta = (int)(te->xs - ar->v2d.cur.xmin);
+			ar->v2d.cur.xmin += xdelta;
+			ar->v2d.cur.xmax += xdelta;
+			
+			/* store selection */
+			soops->search_tse= *tselem;
+			
+			BLI_strncpy(soops->search_string, name, 33);
+			soops->search_flags= flags;
+			
+			/* redraw */
+			soops->storeflag |= SO_TREESTORE_REDRAW;
+		}
+	}
+	else {
+		/* no tree-element found */
+		BKE_report(reports, RPT_WARNING, "Not found: %s", name);
+	}
+}
+#endif
+
+/* Show One Level ----------------------------------------------- */
+
+/* helper function for Show/Hide one level operator */
+static void outliner_openclose_level(SpaceOops *soops, ListBase *lb, int curlevel, int level, int open)
+{
+	TreeElement *te;
+	TreeStoreElem *tselem;
+	
+	for(te= lb->first; te; te= te->next) {
+		tselem= TREESTORE(te);
+		
+		if(open) {
+			if(curlevel<=level) tselem->flag &= ~TSE_CLOSED;
+		}
+		else {
+			if(curlevel>=level) tselem->flag |= TSE_CLOSED;
+		}
+		
+		outliner_openclose_level(soops, &te->subtree, curlevel+1, level, open);
+	}
+}
+
+static int outliner_one_level_exec(bContext *C, wmOperator *op)
+{
+	SpaceOops *soops= CTX_wm_space_outliner(C);
+	ARegion *ar= CTX_wm_region(C);
+	int add= RNA_boolean_get(op->ptr, "open");
+	int level;
+	
+	level= outliner_has_one_flag(soops, &soops->tree, TSE_CLOSED, 1);
+	if(add==1) {
+		if(level) outliner_openclose_level(soops, &soops->tree, 1, level, 1);
+	}
+	else {
+		if(level==0) level= outliner_count_levels(soops, &soops->tree, 0);
+		if(level) outliner_openclose_level(soops, &soops->tree, 1, level-1, 0);
+	}
+	
+	ED_region_tag_redraw(ar);
+	
+	return OPERATOR_FINISHED;
+}
+
+void OUTLINER_OT_show_one_level(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Show/Hide One Level";
+	ot->idname= "OUTLINER_OT_show_one_level";
+	ot->description= "Expand/collapse all entries by one level";
+	
+	/* callbacks */
+	ot->exec= outliner_one_level_exec;
+	ot->poll= ED_operator_outliner_active;
+	
+	/* no undo or registry, UI option */
+	
+	/* properties */
+	RNA_def_boolean(ot->srna, "open", 1, "Open", "Expand all entries one level deep.");
+}
+
+/* Show Hierarchy ----------------------------------------------- */
+
+/* helper function for tree_element_shwo_hierarchy() - recursively checks whether subtrees have any objects*/
+static int subtree_has_objects(SpaceOops *soops, ListBase *lb)
+{
+	TreeElement *te;
+	TreeStoreElem *tselem;
+	
+	for(te= lb->first; te; te= te->next) {
+		tselem= TREESTORE(te);
+		if(tselem->type==0 && te->idcode==ID_OB) return 1;
+		if( subtree_has_objects(soops, &te->subtree)) return 1;
+	}
+	return 0;
+}
+
+/* recursive helper function for Show Hierarchy operator */
+static void tree_element_show_hierarchy(Scene *scene, SpaceOops *soops, ListBase *lb)
+{
+	TreeElement *te;
+	TreeStoreElem *tselem;
+
+	/* open all object elems, close others */
+	for(te= lb->first; te; te= te->next) {
+		tselem= TREESTORE(te);
+		
+		if(tselem->type==0) {
+			if(te->idcode==ID_SCE) {
+				if(tselem->id!=(ID *)scene) tselem->flag |= TSE_CLOSED;
+					else tselem->flag &= ~TSE_CLOSED;
+			}
+			else if(te->idcode==ID_OB) {
+				if(subtree_has_objects(soops, &te->subtree)) tselem->flag &= ~TSE_CLOSED;
+				else tselem->flag |= TSE_CLOSED;
+			}
+		}
+		else tselem->flag |= TSE_CLOSED;
+		
+		if(tselem->flag & TSE_CLOSED); else tree_element_show_hierarchy(scene, soops, &te->subtree);
+	}
+}
+
+/* show entire object level hierarchy */
+static int outliner_show_hierarchy_exec(bContext *C, wmOperator *UNUSED(op))
+{
+	SpaceOops *soops= CTX_wm_space_outliner(C);
+	ARegion *ar= CTX_wm_region(C);
+	Scene *scene= CTX_data_scene(C);
+	
+	/* recursively open/close levels */
+	tree_element_show_hierarchy(scene, soops, &soops->tree);
+	
+	ED_region_tag_redraw(ar);
+	
+	return OPERATOR_FINISHED;
+}
+
+void OUTLINER_OT_show_hierarchy(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Show Hierarchy";
+	ot->idname= "OUTLINER_OT_show_hierarchy";
+	ot->description= "Open all object entries and close all others";
+	
+	/* callbacks */
+	ot->exec= outliner_show_hierarchy_exec;
+	ot->poll= ED_operator_outliner_active; //  TODO: shouldn't be allowed in RNA views...
+	
+	/* no undo or registry, UI option */
+}
+
+/* ************************************************************** */
+/* ANIMATO OPERATIONS */
+/* KeyingSet and Driver Creation - Helper functions */
+
+/* specialised poll callback for these operators to work in Datablocks view only */
+static int ed_operator_outliner_datablocks_active(bContext *C)
+{
+	ScrArea *sa= CTX_wm_area(C);
+	if ((sa) && (sa->spacetype==SPACE_OUTLINER)) {
+		SpaceOops *so= CTX_wm_space_outliner(C);
+		return (so->outlinevis == SO_DATABLOCKS);
+	}
+	return 0;
+}
+
+
+/* Helper func to extract an RNA path from selected tree element 
+ * NOTE: the caller must zero-out all values of the pointers that it passes here first, as
+ * this function does not do that yet 
+ */
+static void tree_element_to_path(SpaceOops *soops, TreeElement *te, TreeStoreElem *tselem, 
+							ID **id, char **path, int *array_index, short *flag, short *UNUSED(groupmode))
+{
+	ListBase hierarchy = {NULL, NULL};
+	LinkData *ld;
+	TreeElement *tem, *temnext, *temsub;
+	TreeStoreElem *tse, *tsenext;
+	PointerRNA *ptr, *nextptr;
+	PropertyRNA *prop;
+	char *newpath=NULL;
+	
+	/* optimise tricks:
+	 *	- Don't do anything if the selected item is a 'struct', but arrays are allowed
+	 */
+	if (tselem->type == TSE_RNA_STRUCT)
+		return;
+	
+	/* Overview of Algorithm:
+	 * 	1. Go up the chain of parents until we find the 'root', taking note of the 
+	 *	   levels encountered in reverse-order (i.e. items are added to the start of the list
+	 *      for more convenient looping later)
+	 * 	2. Walk down the chain, adding from the first ID encountered 
+	 *	   (which will become the 'ID' for the KeyingSet Path), and build a  
+	 * 		path as we step through the chain
+	 */
+	 
+	/* step 1: flatten out hierarchy of parents into a flat chain */
+	for (tem= te->parent; tem; tem= tem->parent) {
+		ld= MEM_callocN(sizeof(LinkData), "LinkData for tree_element_to_path()");
+		ld->data= tem;
+		BLI_addhead(&hierarchy, ld);
+	}
+	
+	/* step 2: step down hierarchy building the path (NOTE: addhead in previous loop was needed so that we can loop like this) */
+	for (ld= hierarchy.first; ld; ld= ld->next) {
+		/* get data */
+		tem= (TreeElement *)ld->data;
+		tse= TREESTORE(tem);
+		ptr= &tem->rnaptr;
+		prop= tem->directdata;
+		
+		/* check if we're looking for first ID, or appending to path */
+		if (*id) {
+			/* just 'append' property to path 
+			 *	- to prevent memory leaks, we must write to newpath not path, then free old path + swap them
+			 */
+			if(tse->type == TSE_RNA_PROPERTY) {
+				if(RNA_property_type(prop) == PROP_POINTER) {
+					/* for pointer we just append property name */
+					newpath= RNA_path_append(*path, ptr, prop, 0, NULL);
+				}
+				else if(RNA_property_type(prop) == PROP_COLLECTION) {
+					char buf[128], *name;
+					
+					temnext= (TreeElement*)(ld->next->data);
+					tsenext= TREESTORE(temnext);
+					
+					nextptr= &temnext->rnaptr;
+					name= RNA_struct_name_get_alloc(nextptr, buf, sizeof(buf));
+					
+					if(name) {
+						/* if possible, use name as a key in the path */
+						newpath= RNA_path_append(*path, NULL, prop, 0, name);
+						
+						if(name != buf)
+							MEM_freeN(name);
+					}
+					else {
+						/* otherwise use index */
+						int index= 0;
+						
+						for(temsub=tem->subtree.first; temsub; temsub=temsub->next, index++)
+							if(temsub == temnext)
+								break;
+						
+						newpath= RNA_path_append(*path, NULL, prop, index, NULL);
+					}
+					
+					ld= ld->next;
+				}
+			}
+			
+			if(newpath) {
+				if (*path) MEM_freeN(*path);
+				*path= newpath;
+				newpath= NULL;
+			}
+		}
+		else {
+			/* no ID, so check if entry is RNA-struct, and if that RNA-struct is an ID datablock to extract info from */
+			if (tse->type == TSE_RNA_STRUCT) {
+				/* ptr->data not ptr->id.data seems to be the one we want, since ptr->data is sometimes the owner of this ID? */
+				if(RNA_struct_is_ID(ptr->type)) {
+					*id= (ID *)ptr->data;
+					
+					/* clear path */
+					if(*path) {
+						MEM_freeN(*path);
+						path= NULL;
+					}
+				}
+			}
+		}
+	}
+
+	/* step 3: if we've got an ID, add the current item to the path */
+	if (*id) {
+		/* add the active property to the path */
+		ptr= &te->rnaptr;
+		prop= te->directdata;
+		
+		/* array checks */
+		if (tselem->type == TSE_RNA_ARRAY_ELEM) {
+			/* item is part of an array, so must set the array_index */
+			*array_index= te->index;
+		}
+		else if (RNA_property_array_length(ptr, prop)) {
+			/* entire array was selected, so keyframe all */
+			*flag |= KSP_FLAG_WHOLE_ARRAY;
+		}
+		
+		/* path */
+		newpath= RNA_path_append(*path, NULL, prop, 0, NULL);
+		if (*path) MEM_freeN(*path);
+		*path= newpath;
+	}
+
+	/* free temp data */
+	BLI_freelistN(&hierarchy);
+}
+
+/* =============================================== */
+/* Driver Operations */
+
+/* These operators are only available in databrowser mode for now, as
+ * they depend on having RNA paths and/or hierarchies available.
+ */
+enum {
+	DRIVERS_EDITMODE_ADD	= 0,
+	DRIVERS_EDITMODE_REMOVE,
+} /*eDrivers_EditModes*/;
+
+/* Utilities ---------------------------------- */ 
+
+/* Recursively iterate over tree, finding and working on selected items */
+static void do_outliner_drivers_editop(SpaceOops *soops, ListBase *tree, ReportList *reports, short mode)
+{
+	TreeElement *te;
+	TreeStoreElem *tselem;
+	
+	for (te= tree->first; te; te=te->next) {
+		tselem= TREESTORE(te);
+		
+		/* if item is selected, perform operation */
+		if (tselem->flag & TSE_SELECTED) {
+			ID *id= NULL;
+			char *path= NULL;
+			int array_index= 0;
+			short flag= 0;
+			short groupmode= KSP_GROUP_KSNAME;
+			
+			/* check if RNA-property described by this selected element is an animateable prop */
+			if (ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM) && RNA_property_animateable(&te->rnaptr, te->directdata)) {
+				/* get id + path + index info from the selected element */
+				tree_element_to_path(soops, te, tselem, 
+						&id, &path, &array_index, &flag, &groupmode);
+			}
+			
+			/* only if ID and path were set, should we perform any actions */
+			if (id && path) {
+				short dflags = CREATEDRIVER_WITH_DEFAULT_DVAR;
+				int arraylen = 1;
+				
+				/* array checks */
+				if (flag & KSP_FLAG_WHOLE_ARRAY) {
+					/* entire array was selected, so add drivers for all */
+					arraylen= RNA_property_array_length(&te->rnaptr, te->directdata);
+				}
+				else
+					arraylen= array_index;
+				
+				/* we should do at least one step */
+				if (arraylen == array_index)
+					arraylen++;
+				
+				/* for each array element we should affect, add driver */
+				for (; array_index < arraylen; array_index++) {
+					/* action depends on mode */
+					switch (mode) {
+						case DRIVERS_EDITMODE_ADD:
+						{
+							/* add a new driver with the information obtained (only if valid) */
+							ANIM_add_driver(reports, id, path, array_index, dflags, DRIVER_TYPE_PYTHON);
+						}
+							break;
+						case DRIVERS_EDITMODE_REMOVE:
+						{
+							/* remove driver matching the information obtained (only if valid) */
+							ANIM_remove_driver(reports, id, path, array_index, dflags);
+						}
+							break;
+					}
+				}
+				
+				/* free path, since it had to be generated */
+				MEM_freeN(path);
+			}
+			
+			
+		}
+		
+		/* go over sub-tree */
+		if ((tselem->flag & TSE_CLOSED)==0)
+			do_outliner_drivers_editop(soops, &te->subtree, reports, mode);
+	}
+}
+
+/* Add Operator ---------------------------------- */
+
+static int outliner_drivers_addsel_exec(bContext *C, wmOperator *op)
+{
+	SpaceOops *soutliner= CTX_wm_space_outliner(C);
+	
+	/* check for invalid states */
+	if (soutliner == NULL)
+		return OPERATOR_CANCELLED;
+	
+	/* recursively go into tree, adding selected items */
+	do_outliner_drivers_editop(soutliner, &soutliner->tree, op->reports, DRIVERS_EDITMODE_ADD);
+	
+	/* send notifiers */
+	WM_event_add_notifier(C, NC_ANIMATION|ND_FCURVES_ORDER, NULL); // XXX
+	
+	return OPERATOR_FINISHED;
+}
+
+void OUTLINER_OT_drivers_add_selected(wmOperatorType *ot)
+{
+	/* api callbacks */
+	ot->idname= "OUTLINER_OT_drivers_add_selected";
+	ot->name= "Add Drivers for Selected";
+	ot->description= "Add drivers to selected items";
+	
+	/* api callbacks */
+	ot->exec= outliner_drivers_addsel_exec;
+	ot->poll= ed_operator_outliner_datablocks_active;
+	
+	/* flags */
+	ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+
+/* Remove Operator ---------------------------------- */
+
+static int outliner_drivers_deletesel_exec(bContext *C, wmOperator *op)
+{
+	SpaceOops *soutliner= CTX_wm_space_outliner(C);
+	
+	/* check for invalid states */
+	if (soutliner == NULL)
+		return OPERATOR_CANCELLED;
+	
+	/* recursively go into tree, adding selected items */
+	do_outliner_drivers_editop(soutliner, &soutliner->tree, op->reports, DRIVERS_EDITMODE_REMOVE);
+	
+	/* send notifiers */
+	WM_event_add_notifier(C, ND_KEYS, NULL); // XXX
+	
+	return OPERATOR_FINISHED;
+}
+
+void OUTLINER_OT_drivers_delete_selected(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->idname= "OUTLINER_OT_drivers_delete_selected";
+	ot->name= "Delete Drivers for Selected";
+	ot->description= "Delete drivers assigned to selected items";
+	
+	/* api callbacks */
+	ot->exec= outliner_drivers_deletesel_exec;
+	ot->poll= ed_operator_outliner_datablocks_active;
+	
+	/* flags */
+	ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+/* =============================================== */
+/* Keying Set Operations */
+
+/* These operators are only available in databrowser mode for now, as
+ * they depend on having RNA paths and/or hierarchies available.
+ */
+enum {
+	KEYINGSET_EDITMODE_ADD	= 0,
+	KEYINGSET_EDITMODE_REMOVE,
+} /*eKeyingSet_EditModes*/;
+
+/* Utilities ---------------------------------- */ 
+ 
+/* find the 'active' KeyingSet, and add if not found (if adding is allowed) */
+// TODO: should this be an API func?
+static KeyingSet *verify_active_keyingset(Scene *scene, short add)
+{
+	KeyingSet *ks= NULL;
+	
+	/* sanity check */
+	if (scene == NULL)
+		return NULL;
+	
+	/* try to find one from scene */
+	if (scene->active_keyingset > 0)
+		ks= BLI_findlink(&scene->keyingsets, scene->active_keyingset-1);
+		
+	/* add if none found */
+	// XXX the default settings have yet to evolve
+	if ((add) && (ks==NULL)) {
+		ks= BKE_keyingset_add(&scene->keyingsets, NULL, KEYINGSET_ABSOLUTE, 0);
+		scene->active_keyingset= BLI_countlist(&scene->keyingsets);
+	}
+	
+	return ks;
+}
+
+/* Recursively iterate over tree, finding and working on selected items */
+static void do_outliner_keyingset_editop(SpaceOops *soops, KeyingSet *ks, ListBase *tree, short mode)
+{
+	TreeElement *te;
+	TreeStoreElem *tselem;
+	
+	for (te= tree->first; te; te=te->next) {
+		tselem= TREESTORE(te);
+		
+		/* if item is selected, perform operation */
+		if (tselem->flag & TSE_SELECTED) {
+			ID *id= NULL;
+			char *path= NULL;
+			int array_index= 0;
+			short flag= 0;
+			short groupmode= KSP_GROUP_KSNAME;
+			
+			/* check if RNA-property described by this selected element is an animateable prop */
+			if (ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM) && RNA_property_animateable(&te->rnaptr, te->directdata)) {
+				/* get id + path + index info from the selected element */
+				tree_element_to_path(soops, te, tselem, 
+						&id, &path, &array_index, &flag, &groupmode);
+			}
+			
+			/* only if ID and path were set, should we perform any actions */
+			if (id && path) {
+				/* action depends on mode */
+				switch (mode) {
+					case KEYINGSET_EDITMODE_ADD:
+					{
+						/* add a new path with the information obtained (only if valid) */
+						// TODO: what do we do with group name? for now, we don't supply one, and just let this use the KeyingSet name
+						BKE_keyingset_add_path(ks, id, NULL, path, array_index, flag, groupmode);
+						ks->active_path= BLI_countlist(&ks->paths);
+					}
+						break;
+					case KEYINGSET_EDITMODE_REMOVE:
+					{
+						/* find the relevant path, then remove it from the KeyingSet */
+						KS_Path *ksp= BKE_keyingset_find_path(ks, id, NULL, path, array_index, groupmode);
+						
+						if (ksp) {
+							/* free path's data */
+							BKE_keyingset_free_path(ks, ksp);
+
+							ks->active_path= 0;
+						}
+					}
+						break;
+				}
+				
+				/* free path, since it had to be generated */
+				MEM_freeN(path);
+			}
+		}
+		
+		/* go over sub-tree */
+		if ((tselem->flag & TSE_CLOSED)==0)
+			do_outliner_keyingset_editop(soops, ks, &te->subtree, mode);
+	}
+}
+
+/* Add Operator ---------------------------------- */
+
+static int outliner_keyingset_additems_exec(bContext *C, wmOperator *op)
+{
+	SpaceOops *soutliner= CTX_wm_space_outliner(C);
+	Scene *scene= CTX_data_scene(C);
+	KeyingSet *ks= verify_active_keyingset(scene, 1);
+	
+	/* check for invalid states */
+	if (ks == NULL) {
+		BKE_report(op->reports, RPT_ERROR, "Operation requires an Active Keying Set");
+		return OPERATOR_CANCELLED;
+	}
+	if (soutliner == NULL)
+		return OPERATOR_CANCELLED;
+	
+	/* recursively go into tree, adding selected items */
+	do_outliner_keyingset_editop(soutliner, ks, &soutliner->tree, KEYINGSET_EDITMODE_ADD);
+	
+	/* send notifiers */
+	WM_event_add_notifier(C, NC_SCENE|ND_KEYINGSET, NULL);
+	
+	return OPERATOR_FINISHED;
+}
+
+void OUTLINER_OT_keyingset_add_selected(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->idname= "OUTLINER_OT_keyingset_add_selected";
+	ot->name= "Keying Set Add Selected";
+	ot->description= "Add selected items (blue-grey rows) to active Keying Set";
+	
+	/* api callbacks */
+	ot->exec= outliner_keyingset_additems_exec;
+	ot->poll= ed_operator_outliner_datablocks_active;
+	
+	/* flags */
+	ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+
+/* Remove Operator ---------------------------------- */
+
+static int outliner_keyingset_removeitems_exec(bContext *C, wmOperator *UNUSED(op))
+{
+	SpaceOops *soutliner= CTX_wm_space_outliner(C);
+	Scene *scene= CTX_data_scene(C);
+	KeyingSet *ks= verify_active_keyingset(scene, 1);
+	
+	/* check for invalid states */
+	if (soutliner == NULL)
+		return OPERATOR_CANCELLED;
+	
+	/* recursively go into tree, adding selected items */
+	do_outliner_keyingset_editop(soutliner, ks, &soutliner->tree, KEYINGSET_EDITMODE_REMOVE);
+	
+	/* send notifiers */
+	WM_event_add_notifier(C, NC_SCENE|ND_KEYINGSET, NULL);
+	
+	return OPERATOR_FINISHED;
+}
+
+void OUTLINER_OT_keyingset_remove_selected(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->idname= "OUTLINER_OT_keyingset_remove_selected";
+	ot->name= "Keying Set Remove Selected";
+	ot->description = "Remove selected items (blue-grey rows) from active Keying Set";
+	
+	/* api callbacks */
+	ot->exec= outliner_keyingset_removeitems_exec;
+	ot->poll= ed_operator_outliner_datablocks_active;
+	
+	/* flags */
+	ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+}
diff --git a/source/blender/editors/space_outliner/outliner_intern.h b/source/blender/editors/space_outliner/outliner_intern.h
index cbb26d79c4b1ff81bed4b07b7d369143a06258a5..85bbbd4fffbd5be45edba90463ee8ec5b7e7e8a0 100644
--- a/source/blender/editors/space_outliner/outliner_intern.h
+++ b/source/blender/editors/space_outliner/outliner_intern.h
@@ -44,6 +44,8 @@ struct TreeStoreElem;
 struct bContext;
 struct Scene;
 struct ARegion;
+struct ID;
+struct Object;
 
 typedef struct TreeElement {
 	struct TreeElement *next, *prev, *parent;
@@ -107,27 +109,65 @@ typedef struct TreeElement {
 /* button events */
 #define OL_NAMEBUTTON		1
 
+/* get TreeStoreElem associated with a TreeElement 
+ * < a: (TreeElement) tree element to find stored element for
+ */
+#define TREESTORE(a) ((a)?soops->treestore->data+(a)->store_index:NULL)
 
-/* outliner_ops.c */
-void outliner_operatortypes(void);
-void outliner_keymap(struct wmKeyConfig *keyconf);
+/* size constants */
+#define OL_Y_OFFSET	2
 
-/* outliner_header.c */
-void outliner_header_buttons(const struct bContext *C, struct ARegion *ar);
+#define OL_TOG_RESTRICT_VIEWX	(UI_UNIT_X*3)
+#define OL_TOG_RESTRICT_SELECTX	(UI_UNIT_X*2)
+#define OL_TOG_RESTRICT_RENDERX	UI_UNIT_X
+
+#define OL_TOGW OL_TOG_RESTRICT_VIEWX
+
+#define OL_RNA_COLX			(UI_UNIT_X*15)
+#define OL_RNA_COL_SIZEX	(UI_UNIT_X*7.5)
+#define OL_RNA_COL_SPACEX	(UI_UNIT_X*2.5)
+
+
+/* outliner_tree.c ----------------------------------------------- */
+
+void outliner_free_tree(ListBase *lb);
+
+TreeElement *outliner_find_tse(struct SpaceOops *soops, TreeStoreElem *tse);
+TreeElement *outliner_find_id(struct SpaceOops *soops, ListBase *lb, struct ID *id);
+struct ID *outliner_search_back(SpaceOops *soops, TreeElement *te, short idcode);
+
+void outliner_build_tree(struct Main *mainvar, struct Scene *scene, struct SpaceOops *soops);
+
+/* outliner_draw.c ---------------------------------------------- */
 
-/* outliner.c */
-void outliner_free_tree(struct ListBase *lb);
-void outliner_select(struct SpaceOops *soops, struct ListBase *lb, int *index, short *selecting);
 void draw_outliner(const struct bContext *C);
 
+/* outliner_select.c -------------------------------------------- */
+
+void outliner_select(struct SpaceOops *soops, ListBase *lb, int *index, short *selecting);
+
+int tree_element_type_active(struct bContext *C, struct Scene *scene, struct SpaceOops *soops, TreeElement *te, TreeStoreElem *tselem, int set);
+int tree_element_active(struct bContext *C, struct Scene *scene, SpaceOops *soops, TreeElement *te, int set);
+
+/* outliner_edit.c ---------------------------------------------- */
+
+void outliner_do_object_operation(struct bContext *C, struct Scene *scene, struct SpaceOops *soops, struct ListBase *lb, 
+								  void (*operation_cb)(struct bContext *C, struct Scene *scene, struct TreeElement *, struct TreeStoreElem *, TreeStoreElem *));
+
+int common_restrict_check(struct bContext *C, struct Object *ob);
+
+int outliner_has_one_flag(struct SpaceOops *soops, ListBase *lb, short flag, short curlevel);
+void outliner_set_flag(struct SpaceOops *soops, ListBase *lb, short flag, short set);
+
+void object_toggle_visibility_cb(struct bContext *C, struct Scene *scene, TreeElement *te, struct TreeStoreElem *tsep, struct TreeStoreElem *tselem);
+void object_toggle_selectability_cb(struct bContext *C, struct Scene *scene, TreeElement *te, struct TreeStoreElem *tsep, struct TreeStoreElem *tselem);
+void object_toggle_renderability_cb(struct bContext *C, struct Scene *scene, TreeElement *te, struct TreeStoreElem *tsep, struct TreeStoreElem *tselem);
+
+/* ...................................................... */
+
 void OUTLINER_OT_item_activate(struct wmOperatorType *ot);
 void OUTLINER_OT_item_openclose(struct wmOperatorType *ot);
 void OUTLINER_OT_item_rename(struct wmOperatorType *ot);
-void OUTLINER_OT_operation(struct wmOperatorType *ot);
-void OUTLINER_OT_object_operation(struct wmOperatorType *ot);
-void OUTLINER_OT_group_operation(struct wmOperatorType *ot);
-void OUTLINER_OT_id_operation(struct wmOperatorType *ot);
-void OUTLINER_OT_data_operation(struct wmOperatorType *ot);
 
 void OUTLINER_OT_show_one_level(struct wmOperatorType *ot);
 void OUTLINER_OT_show_active(struct wmOperatorType *ot);
@@ -148,5 +188,23 @@ void OUTLINER_OT_keyingset_remove_selected(struct wmOperatorType *ot);
 void OUTLINER_OT_drivers_add_selected(struct wmOperatorType *ot);
 void OUTLINER_OT_drivers_delete_selected(struct wmOperatorType *ot);
 
-#endif /* ED_OUTLINER_INTERN_H */
+/* outliner_tools.c ---------------------------------------------- */
+
+void OUTLINER_OT_operation(struct wmOperatorType *ot);
+void OUTLINER_OT_object_operation(struct wmOperatorType *ot);
+void OUTLINER_OT_group_operation(struct wmOperatorType *ot);
+void OUTLINER_OT_id_operation(struct wmOperatorType *ot);
+void OUTLINER_OT_data_operation(struct wmOperatorType *ot);
+void OUTLINER_OT_animdata_operation(struct wmOperatorType *ot);
+void OUTLINER_OT_action_set(struct wmOperatorType *ot);
+
+/* ---------------------------------------------------------------- */
 
+/* outliner_ops.c */
+void outliner_operatortypes(void);
+void outliner_keymap(struct wmKeyConfig *keyconf);
+
+/* outliner_header.c */
+void outliner_header_buttons(const struct bContext *C, struct ARegion *ar);
+
+#endif /* ED_OUTLINER_INTERN_H */
diff --git a/source/blender/editors/space_outliner/outliner_ops.c b/source/blender/editors/space_outliner/outliner_ops.c
index 8bd3023593105bbe8743671432a0d1354e5a7ca8..f3e2c352172d504680d6a73e21af1ee3269bf0b6 100644
--- a/source/blender/editors/space_outliner/outliner_ops.c
+++ b/source/blender/editors/space_outliner/outliner_ops.c
@@ -57,6 +57,13 @@ void outliner_operatortypes(void)
 	WM_operatortype_append(OUTLINER_OT_group_operation);
 	WM_operatortype_append(OUTLINER_OT_id_operation);
 	WM_operatortype_append(OUTLINER_OT_data_operation);
+	WM_operatortype_append(OUTLINER_OT_animdata_operation);
+
+#if 0 // GSOC_PEPPER
+
+	WM_operatortype_append(OUTLINER_OT_action_set);
+
+#endif // GSOC_PEPPER
 
 	WM_operatortype_append(OUTLINER_OT_show_one_level);
 	WM_operatortype_append(OUTLINER_OT_show_active);
diff --git a/source/blender/editors/space_outliner/outliner_select.c b/source/blender/editors/space_outliner/outliner_select.c
new file mode 100644
index 0000000000000000000000000000000000000000..620a936a944d6f558b84a7e470103aae1040a0f2
--- /dev/null
+++ b/source/blender/editors/space_outliner/outliner_select.c
@@ -0,0 +1,867 @@
+/*
+ * $Id$
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version. 
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2004 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): Joshua Leung
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/editors/space_outliner/outliner_select.c
+ *  \ingroup spoutliner
+ */
+
+#include <math.h>
+#include <string.h>
+#include <stdlib.h>
+#include <stddef.h>
+
+#include "MEM_guardedalloc.h"
+
+#include "DNA_anim_types.h"
+#include "DNA_armature_types.h"
+#include "DNA_constraint_types.h"
+#include "DNA_camera_types.h"
+#include "DNA_group_types.h"
+#include "DNA_key_types.h"
+#include "DNA_lamp_types.h"
+#include "DNA_material_types.h"
+#include "DNA_mesh_types.h"
+#include "DNA_meta_types.h"
+#include "DNA_particle_types.h"
+#include "DNA_scene_types.h"
+#include "DNA_world_types.h"
+#include "DNA_sequence_types.h"
+#include "DNA_object_types.h"
+
+#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
+#include "BLI_math_base.h"
+
+#if defined WIN32 && !defined _LIBC
+# include "BLI_fnmatch.h" /* use fnmatch included in blenlib */
+#else
+#  ifndef _GNU_SOURCE
+#    define _GNU_SOURCE
+#  endif
+# include <fnmatch.h>
+#endif
+
+
+#include "BKE_animsys.h"
+#include "BKE_context.h"
+#include "BKE_deform.h"
+#include "BKE_depsgraph.h"
+#include "BKE_fcurve.h"
+#include "BKE_global.h"
+#include "BKE_group.h"
+#include "BKE_library.h"
+#include "BKE_main.h"
+#include "BKE_modifier.h"
+#include "BKE_report.h"
+#include "BKE_scene.h"
+#include "BKE_sequencer.h"
+
+#include "ED_armature.h"
+#include "ED_object.h"
+#include "ED_screen.h"
+#include "ED_util.h"
+
+#include "WM_api.h"
+#include "WM_types.h"
+
+#include "BIF_gl.h"
+#include "BIF_glutil.h"
+
+#include "UI_interface.h"
+#include "UI_interface_icons.h"
+#include "UI_resources.h"
+#include "UI_view2d.h"
+
+#include "RNA_access.h"
+#include "RNA_define.h"
+
+#include "outliner_intern.h"
+
+/* ****************************************************** */
+/* Outliner Selection (grey-blue highlight for rows) */
+
+void outliner_select(SpaceOops *soops, ListBase *lb, int *index, short *selecting)
+{
+	TreeElement *te;
+	TreeStoreElem *tselem;
+	
+	for (te= lb->first; te && *index >= 0; te=te->next, (*index)--) {
+		tselem= TREESTORE(te);
+		
+		/* if we've encountered the right item, set its 'Outliner' selection status */
+		if (*index == 0) {
+			/* this should be the last one, so no need to do anything with index */
+			if ((te->flag & TE_ICONROW)==0) {
+				/* -1 value means toggle testing for now... */
+				if (*selecting == -1) {
+					if (tselem->flag & TSE_SELECTED) 
+						*selecting= 0;
+					else 
+						*selecting= 1;
+				}
+				
+				/* set selection */
+				if (*selecting) 
+					tselem->flag |= TSE_SELECTED;
+				else 
+					tselem->flag &= ~TSE_SELECTED;
+			}
+		}
+		else if ((tselem->flag & TSE_CLOSED)==0) {
+			/* Only try selecting sub-elements if we haven't hit the right element yet
+			 *
+			 * Hack warning:
+			 * 	Index must be reduced before supplying it to the sub-tree to try to do
+			 * 	selection, however, we need to increment it again for the next loop to 
+			 * 	function correctly
+			 */
+			(*index)--;
+			outliner_select(soops, &te->subtree, index, selecting);
+			(*index)++;
+		}
+	}
+}
+
+/* ****************************************************** */
+/* Outliner Element Selection/Activation on Click */
+
+static int tree_element_active_renderlayer(bContext *C, TreeElement *te, TreeStoreElem *tselem, int set)
+{
+	Scene *sce;
+	
+	/* paranoia check */
+	if(te->idcode!=ID_SCE)
+		return 0;
+	sce= (Scene *)tselem->id;
+	
+	if(set) {
+		sce->r.actlay= tselem->nr;
+		WM_event_add_notifier(C, NC_SCENE|ND_RENDER_OPTIONS, sce);
+	}
+	else {
+		return sce->r.actlay==tselem->nr;
+	}
+	return 0;
+}
+
+static int  tree_element_set_active_object(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set)
+{
+	TreeStoreElem *tselem= TREESTORE(te);
+	Scene *sce;
+	Base *base;
+	Object *ob= NULL;
+	
+	/* if id is not object, we search back */
+	if(te->idcode==ID_OB) ob= (Object *)tselem->id;
+	else {
+		ob= (Object *)outliner_search_back(soops, te, ID_OB);
+		if(ob==OBACT) return 0;
+	}
+	if(ob==NULL) return 0;
+	
+	sce= (Scene *)outliner_search_back(soops, te, ID_SCE);
+	if(sce && scene != sce) {
+		ED_screen_set_scene(C, sce);
+	}
+	
+	/* find associated base in current scene */
+	base= object_in_scene(ob, scene);
+
+	if(base) {
+		if(set==2) {
+			/* swap select */
+			if(base->flag & SELECT)
+				ED_base_object_select(base, BA_DESELECT);
+			else 
+				ED_base_object_select(base, BA_SELECT);
+		}
+		else {
+			/* deleselect all */
+			scene_deselect_all(scene);
+			ED_base_object_select(base, BA_SELECT);
+		}
+		if(C) {
+			ED_base_object_activate(C, base); /* adds notifier */
+			WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene);
+		}
+	}
+	
+	if(ob!=scene->obedit) 
+		ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR|EM_DO_UNDO);
+		
+	return 1;
+}
+
+static int tree_element_active_material(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set)
+{
+	TreeElement *tes;
+	Object *ob;
+	
+	/* we search for the object parent */
+	ob= (Object *)outliner_search_back(soops, te, ID_OB);
+	// note: ob->matbits can be NULL when a local object points to a library mesh.
+	if(ob==NULL || ob!=OBACT || ob->matbits==NULL) return 0;	// just paranoia
+	
+	/* searching in ob mat array? */
+	tes= te->parent;
+	if(tes->idcode==ID_OB) {
+		if(set) {
+			ob->actcol= te->index+1;
+			ob->matbits[te->index]= 1;	// make ob material active too
+			ob->colbits |= (1<<te->index);
+		}
+		else {
+			if(ob->actcol == te->index+1) 
+				if(ob->matbits[te->index]) return 1;
+		}
+	}
+	/* or we search for obdata material */
+	else {
+		if(set) {
+			ob->actcol= te->index+1;
+			ob->matbits[te->index]= 0;	// make obdata material active too
+			ob->colbits &= ~(1<<te->index);
+		}
+		else {
+			if(ob->actcol == te->index+1)
+				if(ob->matbits[te->index]==0) return 1;
+		}
+	}
+	if(set) {
+		WM_event_add_notifier(C, NC_MATERIAL|ND_SHADING, NULL);
+	}
+	return 0;
+}
+
+static int tree_element_active_texture(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set)
+{
+	TreeElement *tep;
+	TreeStoreElem /* *tselem,*/ *tselemp;
+	Object *ob=OBACT;
+	SpaceButs *sbuts=NULL;
+	
+	if(ob==NULL) return 0; // no active object
+	
+	/*tselem= TREESTORE(te);*/ /*UNUSED*/
+	
+	/* find buttons area (note, this is undefined really still, needs recode in blender) */
+	/* XXX removed finding sbuts */
+	
+	/* where is texture linked to? */
+	tep= te->parent;
+	tselemp= TREESTORE(tep);
+	
+	if(tep->idcode==ID_WO) {
+		World *wrld= (World *)tselemp->id;
+
+		if(set) {
+			if(sbuts) {
+				// XXX sbuts->tabo= TAB_SHADING_TEX;	// hack from header_buttonswin.c
+				// XXX sbuts->texfrom= 1;
+			}
+// XXX			extern_set_butspace(F6KEY, 0);	// force shading buttons texture
+			wrld->texact= te->index;
+		}
+		else if(tselemp->id == (ID *)(scene->world)) {
+			if(wrld->texact==te->index) return 1;
+		}
+	}
+	else if(tep->idcode==ID_LA) {
+		Lamp *la= (Lamp *)tselemp->id;
+		if(set) {
+			if(sbuts) {
+				// XXX sbuts->tabo= TAB_SHADING_TEX;	// hack from header_buttonswin.c
+				// XXX sbuts->texfrom= 2;
+			}
+// XXX			extern_set_butspace(F6KEY, 0);	// force shading buttons texture
+			la->texact= te->index;
+		}
+		else {
+			if(tselemp->id == ob->data) {
+				if(la->texact==te->index) return 1;
+			}
+		}
+	}
+	else if(tep->idcode==ID_MA) {
+		Material *ma= (Material *)tselemp->id;
+		if(set) {
+			if(sbuts) {
+				//sbuts->tabo= TAB_SHADING_TEX;	// hack from header_buttonswin.c
+				// XXX sbuts->texfrom= 0;
+			}
+// XXX			extern_set_butspace(F6KEY, 0);	// force shading buttons texture
+			ma->texact= (char)te->index;
+			
+			/* also set active material */
+			ob->actcol= tep->index+1;
+		}
+		else if(tep->flag & TE_ACTIVE) {	// this is active material
+			if(ma->texact==te->index) return 1;
+		}
+	}
+	
+	if(set)
+		WM_event_add_notifier(C, NC_TEXTURE, NULL);
+
+	return 0;
+}
+
+
+static int tree_element_active_lamp(bContext *UNUSED(C), Scene *scene, SpaceOops *soops, TreeElement *te, int set)
+{
+	Object *ob;
+	
+	/* we search for the object parent */
+	ob= (Object *)outliner_search_back(soops, te, ID_OB);
+	if(ob==NULL || ob!=OBACT) return 0;	// just paranoia
+	
+	if(set) {
+// XXX		extern_set_butspace(F5KEY, 0);
+	}
+	else return 1;
+	
+	return 0;
+}
+
+static int tree_element_active_camera(bContext *UNUSED(C), Scene *scene, SpaceOops *soops, TreeElement *te, int set)
+{
+	Object *ob= (Object *)outliner_search_back(soops, te, ID_OB);
+
+	if(set)
+		return 0;
+
+	return scene->camera == ob;
+}
+
+static int tree_element_active_world(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set)
+{
+	TreeElement *tep;
+	TreeStoreElem *tselem=NULL;
+	Scene *sce=NULL;
+	
+	tep= te->parent;
+	if(tep) {
+		tselem= TREESTORE(tep);
+		sce= (Scene *)tselem->id;
+	}
+	
+	if(set) {	// make new scene active
+		if(sce && scene != sce) {
+			ED_screen_set_scene(C, sce);
+		}
+	}
+	
+	if(tep==NULL || tselem->id == (ID *)scene) {
+		if(set) {
+// XXX			extern_set_butspace(F8KEY, 0);
+		}
+		else {
+			return 1;
+		}
+	}
+	return 0;
+}
+
+static int tree_element_active_defgroup(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set)
+{
+	Object *ob;
+	
+	/* id in tselem is object */
+	ob= (Object *)tselem->id;
+	if(set) {
+		ob->actdef= te->index+1;
+		DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
+		WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, ob);
+	}
+	else {
+		if(ob==OBACT)
+			if(ob->actdef== te->index+1) return 1;
+	}
+	return 0;
+}
+
+static int tree_element_active_posegroup(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set)
+{
+	Object *ob= (Object *)tselem->id;
+	
+	if(set) {
+		if (ob->pose) {
+			ob->pose->active_group= te->index+1;
+			WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
+		}
+	}
+	else {
+		if(ob==OBACT && ob->pose) {
+			if (ob->pose->active_group== te->index+1) return 1;
+		}
+	}
+	return 0;
+}
+
+static int tree_element_active_posechannel(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set)
+{
+	Object *ob= (Object *)tselem->id;
+	bArmature *arm= ob->data;
+	bPoseChannel *pchan= te->directdata;
+	
+	if(set) {
+		if(!(pchan->bone->flag & BONE_HIDDEN_P)) {
+			
+			if(set==2) ED_pose_deselectall(ob, 2);	// 2 = clear active tag
+			else ED_pose_deselectall(ob, 0);	// 0 = deselect 
+			
+			if(set==2 && (pchan->bone->flag & BONE_SELECTED)) {
+				pchan->bone->flag &= ~BONE_SELECTED;
+			} else {
+				pchan->bone->flag |= BONE_SELECTED;
+				arm->act_bone= pchan->bone;
+			}
+			
+			WM_event_add_notifier(C, NC_OBJECT|ND_BONE_ACTIVE, ob);
+
+		}
+	}
+	else {
+		if(ob==OBACT && ob->pose) {
+			if (pchan->bone->flag & BONE_SELECTED) return 1;
+		}
+	}
+	return 0;
+}
+
+static int tree_element_active_bone(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set)
+{
+	bArmature *arm= (bArmature *)tselem->id;
+	Bone *bone= te->directdata;
+	
+	if(set) {
+		if(!(bone->flag & BONE_HIDDEN_P)) {
+			if(set==2) ED_pose_deselectall(OBACT, 2);	// 2 is clear active tag
+			else ED_pose_deselectall(OBACT, 0);
+			
+			if(set==2 && (bone->flag & BONE_SELECTED)) {
+				bone->flag &= ~BONE_SELECTED;
+			} else {
+				bone->flag |= BONE_SELECTED;
+				arm->act_bone= bone;
+			}
+			
+			WM_event_add_notifier(C, NC_OBJECT|ND_BONE_ACTIVE, OBACT);
+		}
+	}
+	else {
+		Object *ob= OBACT;
+		
+		if(ob && ob->data==arm) {
+			if (bone->flag & BONE_SELECTED) return 1;
+		}
+	}
+	return 0;
+}
+
+
+/* ebones only draw in editmode armature */
+static void tree_element_active_ebone__sel(bContext *C, Scene *scene, bArmature *arm, EditBone *ebone, short sel)
+{
+	if(sel) {
+		ebone->flag |= BONE_SELECTED|BONE_ROOTSEL|BONE_TIPSEL;
+		arm->act_edbone= ebone;
+		// flush to parent?
+		if(ebone->parent && (ebone->flag & BONE_CONNECTED)) ebone->parent->flag |= BONE_TIPSEL;
+	}
+	else {
+		ebone->flag &= ~(BONE_SELECTED|BONE_ROOTSEL|BONE_TIPSEL);
+		// flush to parent?
+		if(ebone->parent && (ebone->flag & BONE_CONNECTED)) ebone->parent->flag &= ~BONE_TIPSEL;
+	}
+
+	WM_event_add_notifier(C, NC_OBJECT|ND_BONE_ACTIVE, scene->obedit);
+}
+static int tree_element_active_ebone(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tselem), int set)
+{
+	bArmature *arm= scene->obedit->data;
+	EditBone *ebone= te->directdata;
+
+	if(set==1) {
+		if(!(ebone->flag & BONE_HIDDEN_A)) {
+			ED_armature_deselect_all(scene->obedit, 0);	// deselect
+			tree_element_active_ebone__sel(C, scene, arm, ebone, TRUE);
+			return 1;
+		}
+	}
+	else if (set==2) {
+		if(!(ebone->flag & BONE_HIDDEN_A)) {
+			if(!(ebone->flag & BONE_SELECTED)) {
+				tree_element_active_ebone__sel(C, scene, arm, ebone, TRUE);
+				return 1;
+			}
+			else {
+				/* entirely selected, so de-select */
+				tree_element_active_ebone__sel(C, scene, arm, ebone, FALSE);
+				return 0;
+			}
+		}
+	}
+	else if (ebone->flag & BONE_SELECTED) {
+		return 1;
+	}
+	return 0;
+}
+
+static int tree_element_active_modifier(bContext *C, TreeElement *UNUSED(te), TreeStoreElem *tselem, int set)
+{
+	if(set) {
+		Object *ob= (Object *)tselem->id;
+		
+		WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob);
+
+// XXX		extern_set_butspace(F9KEY, 0);
+	}
+	
+	return 0;
+}
+
+static int tree_element_active_psys(bContext *C, Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *tselem, int set)
+{
+	if(set) {
+		Object *ob= (Object *)tselem->id;
+		
+		WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_EDITED, ob);
+		
+// XXX		extern_set_butspace(F7KEY, 0);
+	}
+	
+	return 0;
+}
+
+static int tree_element_active_constraint(bContext *C, TreeElement *UNUSED(te), TreeStoreElem *tselem, int set)
+{
+	if(set) {
+		Object *ob= (Object *)tselem->id;
+		
+		WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT, ob);
+// XXX		extern_set_butspace(F7KEY, 0);
+	}
+	
+	return 0;
+}
+
+static int tree_element_active_text(bContext *UNUSED(C), Scene *UNUSED(scene), SpaceOops *UNUSED(soops), TreeElement *UNUSED(te), int UNUSED(set))
+{
+	// XXX removed
+	return 0;
+}
+
+static int tree_element_active_pose(bContext *C, Scene *scene, TreeElement *UNUSED(te), TreeStoreElem *tselem, int set)
+{
+	Object *ob= (Object *)tselem->id;
+	Base *base= object_in_scene(ob, scene);
+	
+	if(set) {
+		if(scene->obedit) 
+			ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR|EM_DO_UNDO);
+		
+		if(ob->mode & OB_MODE_POSE) 
+			ED_armature_exit_posemode(C, base);
+		else 
+			ED_armature_enter_posemode(C, base);
+	}
+	else {
+		if(ob->mode & OB_MODE_POSE) return 1;
+	}
+	return 0;
+}
+
+static int tree_element_active_sequence(TreeElement *te, TreeStoreElem *UNUSED(tselem), int set)
+{
+	Sequence *seq= (Sequence*) te->directdata;
+
+	if(set) {
+// XXX		select_single_seq(seq, 1);
+	}
+	else {
+		if(seq->flag & SELECT)
+			return(1);
+	}
+	return(0);
+}
+
+static int tree_element_active_sequence_dup(Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tselem), int set)
+{
+	Sequence *seq, *p;
+	Editing *ed= seq_give_editing(scene, FALSE);
+
+	seq= (Sequence*)te->directdata;
+	if(set==0) {
+		if(seq->flag & SELECT)
+			return(1);
+		return(0);
+	}
+
+// XXX	select_single_seq(seq, 1);
+	p= ed->seqbasep->first;
+	while(p) {
+		if((!p->strip) || (!p->strip->stripdata) || (!p->strip->stripdata->name)) {
+			p= p->next;
+			continue;
+		}
+
+//		if(!strcmp(p->strip->stripdata->name, seq->strip->stripdata->name))
+// XXX			select_single_seq(p, 0);
+		p= p->next;
+	}
+	return(0);
+}
+
+static int tree_element_active_keymap_item(bContext *UNUSED(C), TreeElement *te, TreeStoreElem *UNUSED(tselem), int set)
+{
+	wmKeyMapItem *kmi= te->directdata;
+	
+	if(set==0) {
+		if(kmi->flag & KMI_INACTIVE) return 0;
+		return 1;
+	}
+	else {
+		kmi->flag ^= KMI_INACTIVE;
+	}
+	return 0;
+}
+
+/* ---------------------------------------------- */
+
+/* generic call for ID data check or make/check active in UI */
+int tree_element_active(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set)
+{
+
+	switch(te->idcode) {
+		/* Note: no ID_OB: objects are handled specially to allow multiple
+		   selection. See do_outliner_item_activate. */
+		case ID_MA:
+			return tree_element_active_material(C, scene, soops, te, set);
+		case ID_WO:
+			return tree_element_active_world(C, scene, soops, te, set);
+		case ID_LA:
+			return tree_element_active_lamp(C, scene, soops, te, set);
+		case ID_TE:
+			return tree_element_active_texture(C, scene, soops, te, set);
+		case ID_TXT:
+			return tree_element_active_text(C, scene, soops, te, set);
+		case ID_CA:
+			return tree_element_active_camera(C, scene, soops, te, set);
+	}
+	return 0;
+}
+
+/* generic call for non-id data to make/check active in UI */
+/* Context can be NULL when set==0 */
+int tree_element_type_active(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, TreeStoreElem *tselem, int set)
+{
+	switch(tselem->type) {
+		case TSE_DEFGROUP:
+			return tree_element_active_defgroup(C, scene, te, tselem, set);
+		case TSE_BONE:
+			return tree_element_active_bone(C, scene, te, tselem, set);
+		case TSE_EBONE:
+			return tree_element_active_ebone(C, scene, te, tselem, set);
+		case TSE_MODIFIER:
+			return tree_element_active_modifier(C, te, tselem, set);
+		case TSE_LINKED_OB:
+			if(set) tree_element_set_active_object(C, scene, soops, te, set);
+			else if(tselem->id==(ID *)OBACT) return 1;
+			break;
+		case TSE_LINKED_PSYS:
+			return tree_element_active_psys(C, scene, te, tselem, set);
+		case TSE_POSE_BASE:
+			return tree_element_active_pose(C, scene, te, tselem, set);
+		case TSE_POSE_CHANNEL:
+			return tree_element_active_posechannel(C, scene, te, tselem, set);
+		case TSE_CONSTRAINT:
+			return tree_element_active_constraint(C, te, tselem, set);
+		case TSE_R_LAYER:
+			return tree_element_active_renderlayer(C, te, tselem, set);
+		case TSE_POSEGRP:
+			return tree_element_active_posegroup(C, scene, te, tselem, set);
+		case TSE_SEQUENCE:
+			return tree_element_active_sequence(te, tselem, set);
+		case TSE_SEQUENCE_DUP:
+			return tree_element_active_sequence_dup(scene, te, tselem, set);
+		case TSE_KEYMAP_ITEM:
+			return tree_element_active_keymap_item(C, te, tselem, set);
+			
+	}
+	return 0;
+}
+
+/* ================================================ */
+
+static int do_outliner_item_activate(bContext *C, Scene *scene, ARegion *ar, SpaceOops *soops, TreeElement *te, int extend, const float mval[2])
+{
+	
+	if(mval[1]>te->ys && mval[1]<te->ys+UI_UNIT_Y) {
+		TreeStoreElem *tselem= TREESTORE(te);
+		int openclose= 0;
+		
+		/* open close icon */
+		if((te->flag & TE_ICONROW)==0) {				// hidden icon, no open/close
+			if( mval[0]>te->xs && mval[0]<te->xs+UI_UNIT_X) 
+				openclose= 1;
+		}
+		
+		if(openclose) {
+			/* all below close/open? */
+			if(extend) {
+				tselem->flag &= ~TSE_CLOSED;
+				outliner_set_flag(soops, &te->subtree, TSE_CLOSED, !outliner_has_one_flag(soops, &te->subtree, TSE_CLOSED, 1));
+			}
+			else {
+				if(tselem->flag & TSE_CLOSED) tselem->flag &= ~TSE_CLOSED;
+				else tselem->flag |= TSE_CLOSED;
+				
+			}
+			
+			return 1;
+		}
+		/* name and first icon */
+		else if(mval[0]>te->xs+UI_UNIT_X && mval[0]<te->xend) {
+			
+			/* always makes active object */
+			if(tselem->type!=TSE_SEQUENCE && tselem->type!=TSE_SEQ_STRIP && tselem->type!=TSE_SEQUENCE_DUP)
+				tree_element_set_active_object(C, scene, soops, te, 1 + (extend!=0 && tselem->type==0));
+			
+			if(tselem->type==0) { // the lib blocks
+				/* editmode? */
+				if(te->idcode==ID_SCE) {
+					if(scene!=(Scene *)tselem->id) {
+						ED_screen_set_scene(C, (Scene *)tselem->id);
+					}
+				}
+				else if(te->idcode==ID_GR) {
+					Group *gr= (Group *)tselem->id;
+					GroupObject *gob;
+					
+					if(extend) {
+						int sel= BA_SELECT;
+						for(gob= gr->gobject.first; gob; gob= gob->next) {
+							if(gob->ob->flag & SELECT) {
+								sel= BA_DESELECT;
+								break;
+							}
+						}
+						
+						for(gob= gr->gobject.first; gob; gob= gob->next) {
+							ED_base_object_select(object_in_scene(gob->ob, scene), sel);
+						}
+					}
+					else {
+						scene_deselect_all(scene);
+						
+						for(gob= gr->gobject.first; gob; gob= gob->next) {
+							if((gob->ob->flag & SELECT) == 0)
+								ED_base_object_select(object_in_scene(gob->ob, scene), BA_SELECT);
+						}
+					}
+					
+					WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene);
+				}
+				else if(ELEM5(te->idcode, ID_ME, ID_CU, ID_MB, ID_LT, ID_AR)) {
+					WM_operator_name_call(C, "OBJECT_OT_editmode_toggle", WM_OP_INVOKE_REGION_WIN, NULL);
+				} else {	// rest of types
+					tree_element_active(C, scene, soops, te, 1);
+				}
+				
+			}
+			else tree_element_type_active(C, scene, soops, te, tselem, 1+(extend!=0));
+			
+			return 1;
+		}
+	}
+	
+	for(te= te->subtree.first; te; te= te->next) {
+		if(do_outliner_item_activate(C, scene, ar, soops, te, extend, mval)) return 1;
+	}
+	return 0;
+}
+
+/* event can enterkey, then it opens/closes */
+static int outliner_item_activate(bContext *C, wmOperator *op, wmEvent *event)
+{
+	Scene *scene= CTX_data_scene(C);
+	ARegion *ar= CTX_wm_region(C);
+	SpaceOops *soops= CTX_wm_space_outliner(C);
+	TreeElement *te;
+	float fmval[2];
+	int extend= RNA_boolean_get(op->ptr, "extend");
+
+	UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], fmval, fmval+1);
+
+	if(!ELEM3(soops->outlinevis, SO_DATABLOCKS, SO_USERDEF, SO_KEYMAP) && !(soops->flag & SO_HIDE_RESTRICTCOLS) && fmval[0] > ar->v2d.cur.xmax - OL_TOG_RESTRICT_VIEWX)
+		return OPERATOR_CANCELLED;
+
+	for(te= soops->tree.first; te; te= te->next) {
+		if(do_outliner_item_activate(C, scene, ar, soops, te, extend, fmval)) break;
+	}
+	
+	if(te) {
+		ED_undo_push(C, "Outliner click event");
+	}
+	else {
+		short selecting= -1;
+		int row;
+		
+		/* get row number - 100 here is just a dummy value since we don't need the column */
+		UI_view2d_listview_view_to_cell(&ar->v2d, 1000, UI_UNIT_Y, 0.0f, OL_Y_OFFSET, 
+						fmval[0], fmval[1], NULL, &row);
+		
+		/* select relevant row */
+		outliner_select(soops, &soops->tree, &row, &selecting);
+		
+		soops->storeflag |= SO_TREESTORE_REDRAW;
+		
+		ED_undo_push(C, "Outliner selection event");
+	}
+	
+	ED_region_tag_redraw(ar);
+
+	return OPERATOR_FINISHED;
+}
+
+void OUTLINER_OT_item_activate(wmOperatorType *ot)
+{
+	ot->name= "Activate Item";
+	ot->idname= "OUTLINER_OT_item_activate";
+	ot->description= "Handle mouse clicks to activate/select items";
+	
+	ot->invoke= outliner_item_activate;
+	
+	ot->poll= ED_operator_outliner_active;
+	
+	RNA_def_boolean(ot->srna, "extend", 1, "Extend", "Extend selection for activation.");
+}
+
+/* ****************************************************** */
diff --git a/source/blender/editors/space_outliner/outliner_tools.c b/source/blender/editors/space_outliner/outliner_tools.c
new file mode 100644
index 0000000000000000000000000000000000000000..f5e1a67010eeee0d8a5e934f2d3b8253e20df4f2
--- /dev/null
+++ b/source/blender/editors/space_outliner/outliner_tools.c
@@ -0,0 +1,1217 @@
+/*
+ * $Id$
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version. 
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2004 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): Joshua Leung
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/editors/space_outliner/outliner_tools.c
+ *  \ingroup spoutliner
+ */
+
+#include <math.h>
+#include <string.h>
+#include <stdlib.h>
+#include <stddef.h>
+
+#include "MEM_guardedalloc.h"
+
+#include "DNA_anim_types.h"
+#include "DNA_armature_types.h"
+#include "DNA_constraint_types.h"
+#include "DNA_camera_types.h"
+#include "DNA_group_types.h"
+#include "DNA_key_types.h"
+#include "DNA_lamp_types.h"
+#include "DNA_material_types.h"
+#include "DNA_mesh_types.h"
+#include "DNA_meta_types.h"
+#include "DNA_particle_types.h"
+#include "DNA_scene_types.h"
+#include "DNA_world_types.h"
+#include "DNA_sequence_types.h"
+#include "DNA_object_types.h"
+
+#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
+#include "BLI_math_base.h"
+
+#if defined WIN32 && !defined _LIBC
+# include "BLI_fnmatch.h" /* use fnmatch included in blenlib */
+#else
+#  ifndef _GNU_SOURCE
+#    define _GNU_SOURCE
+#  endif
+# include <fnmatch.h>
+#endif
+
+
+#include "BKE_animsys.h"
+#include "BKE_context.h"
+#include "BKE_deform.h"
+#include "BKE_depsgraph.h"
+#include "BKE_fcurve.h"
+#include "BKE_global.h"
+#include "BKE_group.h"
+#include "BKE_library.h"
+#include "BKE_main.h"
+#include "BKE_modifier.h"
+#include "BKE_report.h"
+#include "BKE_scene.h"
+#include "BKE_sequencer.h"
+
+#include "ED_armature.h"
+#include "ED_object.h"
+#include "ED_screen.h"
+#include "ED_util.h"
+
+#include "WM_api.h"
+#include "WM_types.h"
+
+#include "BIF_gl.h"
+#include "BIF_glutil.h"
+
+#include "UI_interface.h"
+#include "UI_interface_icons.h"
+#include "UI_resources.h"
+#include "UI_view2d.h"
+
+#include "RNA_access.h"
+#include "RNA_define.h"
+#include "RNA_enum_types.h"
+
+#include "outliner_intern.h"
+
+/* ****************************************************** */
+
+/* ************ SELECTION OPERATIONS ********* */
+
+static void set_operation_types(SpaceOops *soops, ListBase *lb,
+				int *scenelevel,
+				int *objectlevel,
+				int *idlevel,
+				int *datalevel)
+{
+	TreeElement *te;
+	TreeStoreElem *tselem;
+	
+	for(te= lb->first; te; te= te->next) {
+		tselem= TREESTORE(te);
+		if(tselem->flag & TSE_SELECTED) {
+			if(tselem->type) {
+				if(*datalevel==0) 
+					*datalevel= tselem->type;
+				else if(*datalevel!=tselem->type) 
+					*datalevel= -1;
+			}
+			else {
+				int idcode= GS(tselem->id->name);
+				switch(idcode) {
+					case ID_SCE:
+						*scenelevel= 1;
+						break;
+					case ID_OB:
+						*objectlevel= 1;
+						break;
+						
+					case ID_ME: case ID_CU: case ID_MB: case ID_LT:
+					case ID_LA: case ID_AR: case ID_CA: /* case ID_SPK: */ /* GSOC_PEPPER */
+					case ID_MA: case ID_TE: case ID_IP: case ID_IM:
+					case ID_SO: case ID_KE: case ID_WO: case ID_AC:
+					case ID_NLA: case ID_TXT: case ID_GR:
+						if(*idlevel==0) *idlevel= idcode;
+						else if(*idlevel!=idcode) *idlevel= -1;
+							break;
+				}
+			}
+		}
+		if((tselem->flag & TSE_CLOSED)==0) {
+			set_operation_types(soops, &te->subtree,
+								scenelevel, objectlevel, idlevel, datalevel);
+		}
+	}
+}
+
+#if 0 // GSOC_PEPPER
+
+static void unlink_action_cb(bContext *C, Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *tsep, TreeStoreElem *UNUSED(tselem))
+{
+	/* just set action to NULL */
+	BKE_animdata_set_action(CTX_wm_reports(C), tsep->id, NULL);
+}
+
+#endif // GSOC_PEPPER
+
+static void unlink_material_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *UNUSED(tselem))
+{
+	Material **matar=NULL;
+	int a, totcol=0;
+	
+	if( GS(tsep->id->name)==ID_OB) {
+		Object *ob= (Object *)tsep->id;
+		totcol= ob->totcol;
+		matar= ob->mat;
+	}
+	else if( GS(tsep->id->name)==ID_ME) {
+		Mesh *me= (Mesh *)tsep->id;
+		totcol= me->totcol;
+		matar= me->mat;
+	}
+	else if( GS(tsep->id->name)==ID_CU) {
+		Curve *cu= (Curve *)tsep->id;
+		totcol= cu->totcol;
+		matar= cu->mat;
+	}
+	else if( GS(tsep->id->name)==ID_MB) {
+		MetaBall *mb= (MetaBall *)tsep->id;
+		totcol= mb->totcol;
+		matar= mb->mat;
+	}
+
+	for(a=0; a<totcol; a++) {
+		if(a==te->index && matar[a]) {
+			matar[a]->id.us--;
+			matar[a]= NULL;
+		}
+	}
+}
+
+static void unlink_texture_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *UNUSED(tselem))
+{
+	MTex **mtex= NULL;
+	int a;
+	
+	if( GS(tsep->id->name)==ID_MA) {
+		Material *ma= (Material *)tsep->id;
+		mtex= ma->mtex;
+	}
+	else if( GS(tsep->id->name)==ID_LA) {
+		Lamp *la= (Lamp *)tsep->id;
+		mtex= la->mtex;
+	}
+	else if( GS(tsep->id->name)==ID_WO) {
+		World *wrld= (World *)tsep->id;
+		mtex= wrld->mtex;
+	}
+	else return;
+	
+	for(a=0; a<MAX_MTEX; a++) {
+		if(a==te->index && mtex[a]) {
+			if(mtex[a]->tex) {
+				mtex[a]->tex->id.us--;
+				mtex[a]->tex= NULL;
+			}
+		}
+	}
+}
+
+static void unlink_group_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *tsep, TreeStoreElem *tselem)
+{
+	Group *group= (Group *)tselem->id;
+	
+	if(tsep) {
+		if( GS(tsep->id->name)==ID_OB) {
+			Object *ob= (Object *)tsep->id;
+			ob->dup_group= NULL;
+		}
+	}
+	else {
+		unlink_group(group);
+	}
+}
+
+static void outliner_do_libdata_operation(bContext *C, Scene *scene, SpaceOops *soops, ListBase *lb, 
+										 void (*operation_cb)(bContext *C, Scene *scene, TreeElement *, TreeStoreElem *, TreeStoreElem *))
+{
+	TreeElement *te;
+	TreeStoreElem *tselem;
+	
+	for(te=lb->first; te; te= te->next) {
+		tselem= TREESTORE(te);
+		if(tselem->flag & TSE_SELECTED) {
+			if(tselem->type==0) {
+				TreeStoreElem *tsep= TREESTORE(te->parent);
+				operation_cb(C, scene, te, tsep, tselem);
+			}
+		}
+		if((tselem->flag & TSE_CLOSED)==0) {
+			outliner_do_libdata_operation(C, scene, soops, &te->subtree, operation_cb);
+		}
+	}
+}
+
+/* */
+
+static void object_select_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem)
+{
+	Base *base= (Base *)te->directdata;
+	
+	if(base==NULL) base= object_in_scene((Object *)tselem->id, scene);
+	if(base && ((base->object->restrictflag & OB_RESTRICT_VIEW)==0)) {
+		base->flag |= SELECT;
+		base->object->flag |= SELECT;
+	}
+}
+
+static void object_deselect_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem)
+{
+	Base *base= (Base *)te->directdata;
+	
+	if(base==NULL) base= object_in_scene((Object *)tselem->id, scene);
+	if(base) {
+		base->flag &= ~SELECT;
+		base->object->flag &= ~SELECT;
+	}
+}
+
+static void object_delete_cb(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem)
+{
+	Base *base= (Base *)te->directdata;
+	
+	if(base==NULL) 
+		base= object_in_scene((Object *)tselem->id, scene);
+	if(base) {
+		// check also library later
+		if(scene->obedit==base->object) 
+			ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR|EM_DO_UNDO);
+		
+		ED_base_object_free_and_unlink(CTX_data_main(C), scene, base);
+		te->directdata= NULL;
+		tselem->id= NULL;
+	}
+
+}
+
+static void id_local_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem)
+{
+	if (tselem->id->lib && (tselem->id->flag & LIB_EXTERN)) {
+		tselem->id->lib= NULL;
+		tselem->id->flag= LIB_LOCAL;
+		new_id(NULL, tselem->id, NULL);
+	}
+}
+
+static void id_fake_user_set_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem)
+{
+	ID *id = tselem->id;
+	
+	if ((id) && ((id->flag & LIB_FAKEUSER) == 0)) {
+		id->flag |= LIB_FAKEUSER;
+		id_us_plus(id);
+	}
+}
+
+static void id_fake_user_clear_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem)
+{
+	ID *id = tselem->id;
+	
+	if ((id) && (id->flag & LIB_FAKEUSER)) {
+		id->flag &= ~LIB_FAKEUSER;
+		id_us_min(id);
+	}
+}
+
+#if 0 // GSOC_PEPPER
+
+static void singleuser_action_cb(bContext *C, Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *tsep, TreeStoreElem *tselem)
+{
+	ID *id = tselem->id;
+	
+	if (id) {
+		IdAdtTemplate *iat = (IdAdtTemplate *)tsep->id;
+		PointerRNA ptr = {{0}};
+		PropertyRNA *prop;
+		
+		RNA_pointer_create(&iat->id, &RNA_AnimData, iat->adt, &ptr);
+		prop = RNA_struct_find_property(&ptr, "action");
+		
+		id_single_user(C, id, &ptr, prop);
+	}
+}
+
+#endif
+
+static void group_linkobs2scene_cb(bContext *UNUSED(C), Scene *scene, TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem)
+{
+	Group *group= (Group *)tselem->id;
+	GroupObject *gob;
+	Base *base;
+	
+	for(gob=group->gobject.first; gob; gob=gob->next) {
+		base= object_in_scene(gob->ob, scene);
+		if (base) {
+			base->object->flag |= SELECT;
+			base->flag |= SELECT;
+		} else {
+			/* link to scene */
+			base= MEM_callocN( sizeof(Base), "add_base");
+			BLI_addhead(&scene->base, base);
+			base->lay= (1<<20)-1; /*v3d->lay;*/ /* would be nice to use the 3d layer but the include's not here */
+			gob->ob->flag |= SELECT;
+			base->flag = gob->ob->flag;
+			base->object= gob->ob;
+			id_lib_extern((ID *)gob->ob); /* incase these are from a linked group */
+		}
+	}
+}
+
+void outliner_do_object_operation(bContext *C, Scene *scene_act, SpaceOops *soops, ListBase *lb, 
+								  void (*operation_cb)(bContext *C, Scene *scene, TreeElement *, TreeStoreElem *, TreeStoreElem *))
+{
+	TreeElement *te;
+	TreeStoreElem *tselem;
+	
+	for(te=lb->first; te; te= te->next) {
+		tselem= TREESTORE(te);
+		if(tselem->flag & TSE_SELECTED) {
+			if(tselem->type==0 && te->idcode==ID_OB) {
+				// when objects selected in other scenes... dunno if that should be allowed
+				Scene *scene_owner= (Scene *)outliner_search_back(soops, te, ID_SCE);
+				if(scene_owner && scene_act != scene_owner) {
+					ED_screen_set_scene(C, scene_owner);
+				}
+				/* important to use 'scene_owner' not scene_act else deleting objects can crash.
+				 * only use 'scene_act' when 'scene_owner' is NULL, which can happen when the
+				 * outliner isnt showing scenes: Visible Layer draw mode for eg. */
+				operation_cb(C, scene_owner ? scene_owner : scene_act, te, NULL, tselem);
+			}
+		}
+		if((tselem->flag & TSE_CLOSED)==0) {
+			outliner_do_object_operation(C, scene_act, soops, &te->subtree, operation_cb);
+		}
+	}
+}
+
+/* ******************************************** */
+
+#if 0 // GSOC_PEPPER
+
+static void unlinkact_animdata_cb(int UNUSED(event), TreeElement *UNUSED(te), TreeStoreElem *tselem)
+{
+	/* just set action to NULL */
+	BKE_animdata_set_action(NULL, tselem->id, NULL);
+}
+
+#endif // GSOC_PEPPER
+
+static void cleardrivers_animdata_cb(int UNUSED(event), TreeElement *UNUSED(te), TreeStoreElem *tselem)
+{
+	IdAdtTemplate *iat = (IdAdtTemplate *)tselem->id;
+	
+	/* just free drivers - stored as a list of F-Curves */
+	free_fcurves(&iat->adt->drivers);
+}
+
+static void refreshdrivers_animdata_cb(int UNUSED(event), TreeElement *UNUSED(te), TreeStoreElem *tselem)
+{
+	IdAdtTemplate *iat = (IdAdtTemplate *)tselem->id;
+	FCurve *fcu;
+	
+	/* loop over drivers, performing refresh (i.e. check graph_buttons.c and rna_fcurve.c for details) */
+	for (fcu = iat->adt->drivers.first; fcu; fcu= fcu->next) {
+		fcu->flag &= ~FCURVE_DISABLED;
+		
+		if (fcu->driver)
+			fcu->driver->flag &= ~DRIVER_FLAG_INVALID;
+	}
+}
+
+/* --------------------------------- */
+
+static void pchan_cb(int event, TreeElement *te, TreeStoreElem *UNUSED(tselem))
+{
+	bPoseChannel *pchan= (bPoseChannel *)te->directdata;
+	
+	if(event==1)
+		pchan->bone->flag |= BONE_SELECTED;
+	else if(event==2)
+		pchan->bone->flag &= ~BONE_SELECTED;
+	else if(event==3) {
+		pchan->bone->flag |= BONE_HIDDEN_P;
+		pchan->bone->flag &= ~BONE_SELECTED;
+	}
+	else if(event==4)
+		pchan->bone->flag &= ~BONE_HIDDEN_P;
+}
+
+static void bone_cb(int event, TreeElement *te, TreeStoreElem *UNUSED(tselem))
+{
+	Bone *bone= (Bone *)te->directdata;
+	
+	if(event==1)
+		bone->flag |= BONE_SELECTED;
+	else if(event==2)
+		bone->flag &= ~BONE_SELECTED;
+	else if(event==3) {
+		bone->flag |= BONE_HIDDEN_P;
+		bone->flag &= ~BONE_SELECTED;
+	}
+	else if(event==4)
+		bone->flag &= ~BONE_HIDDEN_P;
+}
+
+static void ebone_cb(int event, TreeElement *te, TreeStoreElem *UNUSED(tselem))
+{
+	EditBone *ebone= (EditBone *)te->directdata;
+	
+	if(event==1)
+		ebone->flag |= BONE_SELECTED;
+	else if(event==2)
+		ebone->flag &= ~BONE_SELECTED;
+	else if(event==3) {
+		ebone->flag |= BONE_HIDDEN_A;
+		ebone->flag &= ~BONE_SELECTED|BONE_TIPSEL|BONE_ROOTSEL;
+	}
+	else if(event==4)
+		ebone->flag &= ~BONE_HIDDEN_A;
+}
+
+static void sequence_cb(int event, TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tselem))
+{
+//	Sequence *seq= (Sequence*) te->directdata;
+	if(event==1) {
+// XXX		select_single_seq(seq, 1);
+	}
+}
+
+static void outliner_do_data_operation(SpaceOops *soops, int type, int event, ListBase *lb, 
+										 void (*operation_cb)(int, TreeElement *, TreeStoreElem *))
+{
+	TreeElement *te;
+	TreeStoreElem *tselem;
+	
+	for(te=lb->first; te; te= te->next) {
+		tselem= TREESTORE(te);
+		if(tselem->flag & TSE_SELECTED) {
+			if(tselem->type==type) {
+				operation_cb(event, te, tselem);
+			}
+		}
+		if((tselem->flag & TSE_CLOSED)==0) {
+			outliner_do_data_operation(soops, type, event, &te->subtree, operation_cb);
+		}
+	}
+}
+
+/* **************************************** */
+
+static EnumPropertyItem prop_object_op_types[] = {
+	{1, "SELECT", 0, "Select", ""},
+	{2, "DESELECT", 0, "Deselect", ""},
+	{4, "DELETE", 0, "Delete", ""},
+	{6, "TOGVIS", 0, "Toggle Visible", ""},
+	{7, "TOGSEL", 0, "Toggle Selectable", ""},
+	{8, "TOGREN", 0, "Toggle Renderable", ""},
+	{0, NULL, 0, NULL, NULL}
+};
+
+static int outliner_object_operation_exec(bContext *C, wmOperator *op)
+{
+	Main *bmain= CTX_data_main(C);
+	Scene *scene= CTX_data_scene(C);
+	SpaceOops *soops= CTX_wm_space_outliner(C);
+	int event;
+	const char *str= NULL;
+	
+	/* check for invalid states */
+	if (soops == NULL)
+		return OPERATOR_CANCELLED;
+	
+	event= RNA_enum_get(op->ptr, "type");
+
+	if(event==1) {
+		Scene *sce= scene;	// to be able to delete, scenes are set...
+		outliner_do_object_operation(C, scene, soops, &soops->tree, object_select_cb);
+		if(scene != sce) {
+			ED_screen_set_scene(C, sce);
+		}
+		
+		str= "Select Objects";
+		WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene);
+	}
+	else if(event==2) {
+		outliner_do_object_operation(C, scene, soops, &soops->tree, object_deselect_cb);
+		str= "Deselect Objects";
+		WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene);
+	}
+	else if(event==4) {
+		outliner_do_object_operation(C, scene, soops, &soops->tree, object_delete_cb);
+		DAG_scene_sort(bmain, scene);
+		str= "Delete Objects";
+		WM_event_add_notifier(C, NC_SCENE|ND_OB_ACTIVE, scene);
+	}
+	else if(event==5) {	/* disabled, see above enum (ton) */
+		outliner_do_object_operation(C, scene, soops, &soops->tree, id_local_cb);
+		str= "Localized Objects";
+	}
+	else if(event==6) {
+		outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_visibility_cb);
+		str= "Toggle Visibility";
+		WM_event_add_notifier(C, NC_SCENE|ND_OB_VISIBLE, scene);
+	}
+	else if(event==7) {
+		outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_selectability_cb);
+		str= "Toggle Selectability";
+		WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene);
+	}
+	else if(event==8) {
+		outliner_do_object_operation(C, scene, soops, &soops->tree, object_toggle_renderability_cb);
+		str= "Toggle Renderability";
+		WM_event_add_notifier(C, NC_SCENE|ND_OB_RENDER, scene);
+	}
+
+	ED_undo_push(C, str);
+	
+	return OPERATOR_FINISHED;
+}
+
+
+void OUTLINER_OT_object_operation(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Outliner Object Operation";
+	ot->idname= "OUTLINER_OT_object_operation";
+	ot->description= "";
+	
+	/* callbacks */
+	ot->invoke= WM_menu_invoke;
+	ot->exec= outliner_object_operation_exec;
+	ot->poll= ED_operator_outliner_active;
+	
+	ot->flag= 0;
+
+	ot->prop= RNA_def_enum(ot->srna, "type", prop_object_op_types, 0, "Object Operation", "");
+}
+
+/* **************************************** */
+
+static EnumPropertyItem prop_group_op_types[] = {
+	{1, "UNLINK", 0, "Unlink", ""},
+	{2, "LOCAL", 0, "Make Local", ""},
+	{3, "LINK", 0, "Link Group Objects to Scene", ""},
+	{4, "TOGVIS", 0, "Toggle Visible", ""},
+	{5, "TOGSEL", 0, "Toggle Selectable", ""},
+	{6, "TOGREN", 0, "Toggle Renderable", ""},
+	{0, NULL, 0, NULL, NULL}
+};
+
+static int outliner_group_operation_exec(bContext *C, wmOperator *op)
+{
+	Scene *scene= CTX_data_scene(C);
+	SpaceOops *soops= CTX_wm_space_outliner(C);
+	int event;
+	
+	/* check for invalid states */
+	if (soops == NULL)
+		return OPERATOR_CANCELLED;
+	
+	event= RNA_enum_get(op->ptr, "type");
+	
+	if(event==1) {
+		outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_group_cb);
+		ED_undo_push(C, "Unlink group");
+	}
+	else if(event==2) {
+		outliner_do_libdata_operation(C, scene, soops, &soops->tree, id_local_cb);
+		ED_undo_push(C, "Localized Data");
+	}
+	else if(event==3) {
+		outliner_do_libdata_operation(C, scene, soops, &soops->tree, group_linkobs2scene_cb);
+		ED_undo_push(C, "Link Group Objects to Scene");
+	}
+	
+	
+	WM_event_add_notifier(C, NC_GROUP, NULL);
+	
+	return OPERATOR_FINISHED;
+}
+
+
+void OUTLINER_OT_group_operation(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Outliner Group Operation";
+	ot->idname= "OUTLINER_OT_group_operation";
+	ot->description= "";
+	
+	/* callbacks */
+	ot->invoke= WM_menu_invoke;
+	ot->exec= outliner_group_operation_exec;
+	ot->poll= ED_operator_outliner_active;
+	
+	ot->flag= 0;
+	
+	ot->prop= RNA_def_enum(ot->srna, "type", prop_group_op_types, 0, "Group Operation", "");
+}
+
+/* **************************************** */
+
+typedef enum eOutlinerIdOpTypes {
+	OUTLINER_IDOP_INVALID = 0,
+	
+	OUTLINER_IDOP_UNLINK,
+	OUTLINER_IDOP_LOCAL,
+	OUTLINER_IDOP_SINGLE,
+	
+	OUTLINER_IDOP_FAKE_ADD,
+	OUTLINER_IDOP_FAKE_CLEAR
+} eOutlinerIdOpTypes;
+
+// TODO: implement support for changing the ID-block used
+static EnumPropertyItem prop_id_op_types[] = {
+	{OUTLINER_IDOP_UNLINK, "UNLINK", 0, "Unlink", ""},
+	{OUTLINER_IDOP_LOCAL, "LOCAL", 0, "Make Local", ""},
+	{OUTLINER_IDOP_SINGLE, "SINGLE", 0, "Make Single User", ""},
+	{OUTLINER_IDOP_FAKE_ADD, "ADD_FAKE", 0, "Add Fake User", "Ensure datablock gets saved even if it isn't in use (e.g. for motion and material libraries)"},
+	{OUTLINER_IDOP_FAKE_CLEAR, "CLEAR_FAKE", 0, "Clear Fake User", ""},
+	{0, NULL, 0, NULL, NULL}
+};
+
+static int outliner_id_operation_exec(bContext *C, wmOperator *op)
+{
+	Scene *scene= CTX_data_scene(C);
+	SpaceOops *soops= CTX_wm_space_outliner(C);
+	int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0;
+	eOutlinerIdOpTypes event;
+	
+	/* check for invalid states */
+	if (soops == NULL)
+		return OPERATOR_CANCELLED;
+	
+	set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel);
+	
+	event= RNA_enum_get(op->ptr, "type");
+	
+	switch (event) {
+		case OUTLINER_IDOP_UNLINK:
+		{
+			/* unlink datablock from its parent */
+			switch (idlevel) {
+
+#if 0 // GSOC_PEPPER
+
+				case ID_AC:
+					outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_action_cb);
+					
+					WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_ACTCHANGE, NULL);
+					ED_undo_push(C, "Unlink action");
+					break;
+
+#endif // GSOC_PEPPER
+
+				case ID_MA:
+					outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_material_cb);
+					
+					WM_event_add_notifier(C, NC_OBJECT|ND_OB_SHADING, NULL);
+					ED_undo_push(C, "Unlink material");
+					break;
+				case ID_TE:
+					outliner_do_libdata_operation(C, scene, soops, &soops->tree, unlink_texture_cb);
+					
+					WM_event_add_notifier(C, NC_OBJECT|ND_OB_SHADING, NULL);
+					ED_undo_push(C, "Unlink texture");
+					break;
+				default:
+					BKE_report(op->reports, RPT_WARNING, "Not Yet");
+					break;
+			}
+		}
+			break;
+			
+		case OUTLINER_IDOP_LOCAL:
+		{
+			/* make local */
+			outliner_do_libdata_operation(C, scene, soops, &soops->tree, id_local_cb);
+			ED_undo_push(C, "Localized Data");
+		}
+			break;
+			
+#if 0 // GSOC_PEPPER
+
+		case OUTLINER_IDOP_SINGLE:
+		{
+			/* make single user */
+			switch (idlevel) {
+				case ID_AC:
+					outliner_do_libdata_operation(C, scene, soops, &soops->tree, singleuser_action_cb);
+					
+					WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_ACTCHANGE, NULL);
+					ED_undo_push(C, "Single-User Action");
+					break;
+					
+				default:
+					BKE_report(op->reports, RPT_WARNING, "Not Yet");
+					break;
+			}
+		}
+			break;
+			
+#endif // GSOC_PEPPER
+
+		case OUTLINER_IDOP_FAKE_ADD:
+		{
+			/* set fake user */
+			outliner_do_libdata_operation(C, scene, soops, &soops->tree, id_fake_user_set_cb);
+			
+			WM_event_add_notifier(C, NC_ID|NA_EDITED, NULL);
+			ED_undo_push(C, "Add Fake User");
+		}
+			break;
+			
+		case OUTLINER_IDOP_FAKE_CLEAR:
+		{
+			/* clear fake user */
+			outliner_do_libdata_operation(C, scene, soops, &soops->tree, id_fake_user_clear_cb);
+			
+			WM_event_add_notifier(C, NC_ID|NA_EDITED, NULL);
+			ED_undo_push(C, "Clear Fake User");
+		}
+			break;
+			
+		default:
+			// invalid - unhandled
+			break;
+	}
+	
+	/* wrong notifier still... */
+	WM_event_add_notifier(C, NC_ID|NA_EDITED, NULL);
+	
+	// XXX: this is just so that outliner is always up to date 
+	WM_event_add_notifier(C, NC_SPACE|ND_SPACE_OUTLINER, NULL);
+	
+	return OPERATOR_FINISHED;
+}
+
+
+void OUTLINER_OT_id_operation(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Outliner ID data Operation";
+	ot->idname= "OUTLINER_OT_id_operation";
+	ot->description= "";
+	
+	/* callbacks */
+	ot->invoke= WM_menu_invoke;
+	ot->exec= outliner_id_operation_exec;
+	ot->poll= ED_operator_outliner_active;
+	
+	ot->flag= 0;
+	
+	ot->prop= RNA_def_enum(ot->srna, "type", prop_id_op_types, 0, "ID data Operation", "");
+}
+
+/* **************************************** */
+
+static void outliner_do_id_set_operation(SpaceOops *soops, int type, ListBase *lb, ID *newid,
+										 void (*operation_cb)(TreeElement *, TreeStoreElem *, TreeStoreElem *, ID *))
+{
+	TreeElement *te;
+	TreeStoreElem *tselem;
+	
+	for (te=lb->first; te; te= te->next) {
+		tselem= TREESTORE(te);
+		if (tselem->flag & TSE_SELECTED) {
+			if(tselem->type==type) {
+				TreeStoreElem *tsep = TREESTORE(te->parent);
+				operation_cb(te, tselem, tsep, newid);
+			}
+		}
+		if ((tselem->flag & TSE_CLOSED)==0) {
+			outliner_do_id_set_operation(soops, type, &te->subtree, newid, operation_cb);
+		}
+	}
+}
+
+/* ------------------------------------------ */
+
+#if 0 // GSOC_PEPPER
+
+static void actionset_id_cb(TreeElement *te, TreeStoreElem *tselem, TreeStoreElem *tsep, ID *actId)
+{
+	bAction *act = (bAction *)actId;
+	
+	if (tselem->type == TSE_ANIM_DATA) {
+		/* "animation" entries - action is child of this */
+		BKE_animdata_set_action(NULL, tselem->id, act);
+	}
+	/* TODO: if any other "expander" channels which own actions need to support this menu, 
+	 * add: tselem->type = ...
+	 */
+	else if (tsep && (tsep->type == TSE_ANIM_DATA)) {
+		/* "animation" entries case again */
+		BKE_animdata_set_action(NULL, tsep->id, act);
+	}
+	// TODO: other cases not supported yet
+}
+
+static int outliner_action_set_exec(bContext *C, wmOperator *op)
+{
+	SpaceOops *soops= CTX_wm_space_outliner(C);
+	int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0;
+	
+	bAction *act;
+	
+	/* check for invalid states */
+	if (soops == NULL)
+		return OPERATOR_CANCELLED;
+	set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel);
+	
+	/* get action to use */
+	act= BLI_findlink(&CTX_data_main(C)->action, RNA_enum_get(op->ptr, "action"));
+	
+	if (act == NULL) {
+		BKE_report(op->reports, RPT_ERROR, "No valid Action to add.");
+		return OPERATOR_CANCELLED;
+	}
+	else if (act->idroot == 0) {
+		/* hopefully in this case (i.e. library of userless actions), the user knows what they're doing... */
+		BKE_reportf(op->reports, RPT_WARNING,
+			"Action '%s' does not specify what datablocks it can be used on. Try setting the 'ID Root Type' setting from the Datablocks Editor for this Action to avoid future problems",
+			act->id.name+2);
+	}
+	
+	/* perform action if valid channel */
+	if (datalevel == TSE_ANIM_DATA)
+		outliner_do_id_set_operation(soops, datalevel, &soops->tree, (ID*)act, actionset_id_cb);
+	else if (idlevel == ID_AC)
+		outliner_do_id_set_operation(soops, idlevel, &soops->tree, (ID*)act, actionset_id_cb);
+	else
+		return OPERATOR_CANCELLED;
+		
+	/* set notifier that things have changed */
+	WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_ACTCHANGE, NULL);
+	ED_undo_push(C, "Set action");
+	
+	/* done */
+	return OPERATOR_FINISHED;
+}
+
+void OUTLINER_OT_action_set(wmOperatorType *ot)
+{
+	PropertyRNA *prop;
+
+	/* identifiers */
+	ot->name= "Outliner Set Action";
+	ot->idname= "OUTLINER_OT_action_set";
+	ot->description= "Change the active action used";
+	
+	/* api callbacks */
+	ot->invoke= WM_enum_search_invoke;
+	ot->exec= outliner_action_set_exec;
+	ot->poll= ED_operator_outliner_active;
+	
+	/* flags */
+	ot->flag= 0;
+	
+	/* props */
+		// TODO: this would be nicer as an ID-pointer...
+	prop= RNA_def_enum(ot->srna, "action", DummyRNA_NULL_items, 0, "Action", "");
+	RNA_def_enum_funcs(prop, RNA_action_itemf);
+	ot->prop= prop;
+}
+
+#endif // GSOC_PEPPER
+
+/* **************************************** */
+
+typedef enum eOutliner_AnimDataOps {
+	OUTLINER_ANIMOP_INVALID = 0,
+	
+	OUTLINER_ANIMOP_SET_ACT,
+	OUTLINER_ANIMOP_CLEAR_ACT,
+	
+	OUTLINER_ANIMOP_REFRESH_DRV,
+	OUTLINER_ANIMOP_CLEAR_DRV
+	
+	//OUTLINER_ANIMOP_COPY_DRIVERS,
+	//OUTLINER_ANIMOP_PASTE_DRIVERS
+} eOutliner_AnimDataOps;
+
+static EnumPropertyItem prop_animdata_op_types[] = {
+	{OUTLINER_ANIMOP_SET_ACT, "SET_ACT", 0, "Set Action", ""},
+	{OUTLINER_ANIMOP_CLEAR_ACT, "CLEAR_ACT", 0, "Unlink Action", ""},
+	{OUTLINER_ANIMOP_REFRESH_DRV, "REFRESH_DRIVERS", 0, "Refresh Drivers", ""},
+	//{OUTLINER_ANIMOP_COPY_DRIVERS, "COPY_DRIVERS", 0, "Copy Drivers", ""},
+	//{OUTLINER_ANIMOP_PASTE_DRIVERS, "PASTE_DRIVERS", 0, "Paste Drivers", ""},
+	{OUTLINER_ANIMOP_CLEAR_DRV, "CLEAR_DRIVERS", 0, "Clear Drivers", ""},
+	{0, NULL, 0, NULL, NULL}
+};
+
+static int outliner_animdata_operation_exec(bContext *C, wmOperator *op)
+{
+	SpaceOops *soops= CTX_wm_space_outliner(C);
+	int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0;
+	eOutliner_AnimDataOps event;
+	short updateDeps = 0;
+	
+	/* check for invalid states */
+	if (soops == NULL)
+		return OPERATOR_CANCELLED;
+	
+	event= RNA_enum_get(op->ptr, "type");
+	set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel);
+	
+	if (datalevel != TSE_ANIM_DATA)
+		return OPERATOR_CANCELLED;
+	
+	/* perform the core operation */
+	switch (event) {
+
+#if 0 // GSOC_PEPPER
+
+		case OUTLINER_ANIMOP_SET_ACT:
+			/* delegate once again... */
+			WM_operator_name_call(C, "OUTLINER_OT_action_set", WM_OP_INVOKE_REGION_WIN, NULL);
+			break;
+		
+		case OUTLINER_ANIMOP_CLEAR_ACT:
+			/* clear active action - using standard rules */
+			outliner_do_data_operation(soops, datalevel, event, &soops->tree, unlinkact_animdata_cb);
+			
+			WM_event_add_notifier(C, NC_ANIMATION|ND_NLA_ACTCHANGE, NULL);
+			ED_undo_push(C, "Unlink action");
+			break;
+			
+#endif // GSOC_PEPPER
+
+		case OUTLINER_ANIMOP_REFRESH_DRV:
+			outliner_do_data_operation(soops, datalevel, event, &soops->tree, refreshdrivers_animdata_cb);
+			
+			WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN, NULL);
+			//ED_undo_push(C, "Refresh Drivers"); /* no undo needed - shouldn't have any impact? */
+			updateDeps = 1;
+			break;
+			
+		case OUTLINER_ANIMOP_CLEAR_DRV:
+			outliner_do_data_operation(soops, datalevel, event, &soops->tree, cleardrivers_animdata_cb);
+			
+			WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN, NULL);
+			ED_undo_push(C, "Clear Drivers");
+			updateDeps = 1;
+			break;
+			
+		default: // invalid
+			break;
+	}
+	
+	/* update dependencies */
+	if (updateDeps) {
+		Main *bmain = CTX_data_main(C);
+		Scene *scene = CTX_data_scene(C);
+		
+		/* rebuild depsgraph for the new deps */
+		DAG_scene_sort(bmain, scene);
+		
+		/* force an update of depsgraph */
+		DAG_ids_flush_update(bmain, 0);
+	}
+	
+	return OPERATOR_FINISHED;
+}
+
+
+void OUTLINER_OT_animdata_operation(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Outliner Animation Data Operation";
+	ot->idname= "OUTLINER_OT_animdata_operation";
+	ot->description= "";
+	
+	/* callbacks */
+	ot->invoke= WM_menu_invoke;
+	ot->exec= outliner_animdata_operation_exec;
+	ot->poll= ED_operator_outliner_active;
+	
+	ot->flag= 0;
+	
+	ot->prop= RNA_def_enum(ot->srna, "type", prop_animdata_op_types, 0, "Animation Operation", "");
+}
+
+/* **************************************** */
+
+static EnumPropertyItem prop_data_op_types[] = {
+	{1, "SELECT", 0, "Select", ""},
+	{2, "DESELECT", 0, "Deselect", ""},
+	{3, "HIDE", 0, "Hide", ""},
+	{4, "UNHIDE", 0, "Unhide", ""},
+	{0, NULL, 0, NULL, NULL}
+};
+
+static int outliner_data_operation_exec(bContext *C, wmOperator *op)
+{
+	SpaceOops *soops= CTX_wm_space_outliner(C);
+	int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0;
+	int event;
+	
+	/* check for invalid states */
+	if (soops == NULL)
+		return OPERATOR_CANCELLED;
+	
+	event= RNA_enum_get(op->ptr, "type");
+	set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel);
+	
+	if(datalevel==TSE_POSE_CHANNEL) {
+		if(event>0) {
+			outliner_do_data_operation(soops, datalevel, event, &soops->tree, pchan_cb);
+			WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL);
+			ED_undo_push(C, "PoseChannel operation");
+		}
+	}
+	else if(datalevel==TSE_BONE) {
+		if(event>0) {
+			outliner_do_data_operation(soops, datalevel, event, &soops->tree, bone_cb);
+			WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL);
+			ED_undo_push(C, "Bone operation");
+		}
+	}
+	else if(datalevel==TSE_EBONE) {
+		if(event>0) {
+			outliner_do_data_operation(soops, datalevel, event, &soops->tree, ebone_cb);
+			WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL);
+			ED_undo_push(C, "EditBone operation");
+		}
+	}
+	else if(datalevel==TSE_SEQUENCE) {
+		if(event>0) {
+			outliner_do_data_operation(soops, datalevel, event, &soops->tree, sequence_cb);
+		}
+	}
+	
+	return OPERATOR_FINISHED;
+}
+
+
+void OUTLINER_OT_data_operation(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Outliner Data Operation";
+	ot->idname= "OUTLINER_OT_data_operation";
+	ot->description= "";
+	
+	/* callbacks */
+	ot->invoke= WM_menu_invoke;
+	ot->exec= outliner_data_operation_exec;
+	ot->poll= ED_operator_outliner_active;
+	
+	ot->flag= 0;
+	
+	ot->prop= RNA_def_enum(ot->srna, "type", prop_data_op_types, 0, "Data Operation", "");
+}
+
+
+/* ******************** */
+
+
+static int do_outliner_operation_event(bContext *C, Scene *scene, ARegion *ar, SpaceOops *soops, TreeElement *te, wmEvent *event, const float mval[2])
+{
+	ReportList *reports = CTX_wm_reports(C); // XXX...
+	
+	if(mval[1]>te->ys && mval[1]<te->ys+UI_UNIT_Y) {
+		int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0;
+		TreeStoreElem *tselem= TREESTORE(te);
+		
+		/* select object that's clicked on and popup context menu */
+		if (!(tselem->flag & TSE_SELECTED)) {
+			
+			if ( outliner_has_one_flag(soops, &soops->tree, TSE_SELECTED, 1) )
+				outliner_set_flag(soops, &soops->tree, TSE_SELECTED, 0);
+			
+			tselem->flag |= TSE_SELECTED;
+			/* redraw, same as outliner_select function */
+			soops->storeflag |= SO_TREESTORE_REDRAW;
+			ED_region_tag_redraw(ar);
+		}
+		
+		set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel);
+		
+		if(scenelevel) {
+			//if(objectlevel || datalevel || idlevel) error("Mixed selection");
+			//else pupmenu("Scene Operations%t|Delete");
+		}
+		else if(objectlevel) {
+			WM_operator_name_call(C, "OUTLINER_OT_object_operation", WM_OP_INVOKE_REGION_WIN, NULL);
+		}
+		else if(idlevel) {
+			if(idlevel==-1 || datalevel) BKE_report(reports, RPT_WARNING, "Mixed selection");
+			else {
+				if (idlevel==ID_GR)
+					WM_operator_name_call(C, "OUTLINER_OT_group_operation", WM_OP_INVOKE_REGION_WIN, NULL);
+				else
+					WM_operator_name_call(C, "OUTLINER_OT_id_operation", WM_OP_INVOKE_REGION_WIN, NULL);
+			}
+		}
+		else if(datalevel) {
+			if(datalevel==-1) BKE_report(reports, RPT_WARNING, "Mixed selection");
+			else {
+				if (datalevel == TSE_ANIM_DATA)
+					WM_operator_name_call(C, "OUTLINER_OT_animdata_operation", WM_OP_INVOKE_REGION_WIN, NULL);
+				else if (datalevel == TSE_DRIVER_BASE)
+					/* do nothing... no special ops needed yet */;
+				else
+					WM_operator_name_call(C, "OUTLINER_OT_data_operation", WM_OP_INVOKE_REGION_WIN, NULL);
+			}
+		}
+		
+		return 1;
+	}
+	
+	for(te= te->subtree.first; te; te= te->next) {
+		if(do_outliner_operation_event(C, scene, ar, soops, te, event, mval)) 
+			return 1;
+	}
+	return 0;
+}
+
+
+static int outliner_operation(bContext *C, wmOperator *UNUSED(op), wmEvent *event)
+{
+	Scene *scene= CTX_data_scene(C);
+	ARegion *ar= CTX_wm_region(C);
+	SpaceOops *soops= CTX_wm_space_outliner(C);
+	TreeElement *te;
+	float fmval[2];
+	
+	UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], fmval, fmval+1);
+	
+	for(te= soops->tree.first; te; te= te->next) {
+		if(do_outliner_operation_event(C, scene, ar, soops, te, event, fmval)) break;
+	}
+	
+	return OPERATOR_FINISHED;
+}
+
+/* Menu only! Calls other operators */
+void OUTLINER_OT_operation(wmOperatorType *ot)
+{
+	ot->name= "Execute Operation";
+	ot->idname= "OUTLINER_OT_operation";
+	ot->description= "Context menu for item operations";
+	
+	ot->invoke= outliner_operation;
+	
+	ot->poll= ED_operator_outliner_active;
+}
+
+/* ****************************************************** */
diff --git a/source/blender/editors/space_outliner/outliner_tree.c b/source/blender/editors/space_outliner/outliner_tree.c
new file mode 100644
index 0000000000000000000000000000000000000000..3560bfb9896bc0c54bbe78b46b152d04873ed3a1
--- /dev/null
+++ b/source/blender/editors/space_outliner/outliner_tree.c
@@ -0,0 +1,1585 @@
+/*
+ * $Id$
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version. 
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2004 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): Joshua Leung
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/editors/space_outliner/outliner_tree.c
+ *  \ingroup spoutliner
+ */
+ 
+#include <math.h>
+#include <string.h>
+#include <stdlib.h>
+#include <stddef.h>
+
+#include "MEM_guardedalloc.h"
+
+#include "DNA_anim_types.h"
+#include "DNA_armature_types.h"
+#include "DNA_constraint_types.h"
+#include "DNA_camera_types.h"
+#include "DNA_group_types.h"
+#include "DNA_key_types.h"
+#include "DNA_lamp_types.h"
+#include "DNA_material_types.h"
+#include "DNA_mesh_types.h"
+#include "DNA_meta_types.h"
+#include "DNA_particle_types.h"
+#include "DNA_scene_types.h"
+#include "DNA_world_types.h"
+#include "DNA_sequence_types.h"
+
+#if 0 // GSOC_PEPPER
+
+#include "DNA_speaker_types.h"
+
+#endif // GSOC_PEPPER
+
+#include "DNA_object_types.h"
+
+#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
+#include "BLI_math_base.h"
+
+#if defined WIN32 && !defined _LIBC
+# include "BLI_fnmatch.h" /* use fnmatch included in blenlib */
+#else
+#  ifndef _GNU_SOURCE
+#    define _GNU_SOURCE
+#  endif
+# include <fnmatch.h>
+#endif
+
+
+#include "BKE_animsys.h"
+#include "BKE_context.h"
+#include "BKE_deform.h"
+#include "BKE_depsgraph.h"
+#include "BKE_fcurve.h"
+#include "BKE_global.h"
+#include "BKE_group.h"
+#include "BKE_library.h"
+#include "BKE_main.h"
+#include "BKE_modifier.h"
+#include "BKE_report.h"
+#include "BKE_scene.h"
+#include "BKE_sequencer.h"
+
+#include "ED_armature.h"
+#include "ED_object.h"
+#include "ED_screen.h"
+#include "ED_util.h"
+
+#include "WM_api.h"
+#include "WM_types.h"
+
+#include "BIF_gl.h"
+#include "BIF_glutil.h"
+
+#include "UI_interface.h"
+#include "UI_interface_icons.h"
+#include "UI_resources.h"
+#include "UI_view2d.h"
+
+#include "RNA_access.h"
+#include "RNA_define.h"
+#include "RNA_enum_types.h"
+
+#include "outliner_intern.h"
+
+/* ********************************************************* */
+/* Defines */
+
+#define TS_CHUNK	128
+
+/* ********************************************************* */
+/* Persistant Data */
+
+static void outliner_storage_cleanup(SpaceOops *soops)
+{
+	TreeStore *ts= soops->treestore;
+	
+	if(ts) {
+		TreeStoreElem *tselem;
+		int a, unused= 0;
+		
+		/* each element used once, for ID blocks with more users to have each a treestore */
+		for(a=0, tselem= ts->data; a<ts->usedelem; a++, tselem++) tselem->used= 0;
+		
+		/* cleanup only after reading file or undo step, and always for
+		 * RNA datablocks view in order to save memory */
+		if(soops->storeflag & SO_TREESTORE_CLEANUP) {
+			
+			for(a=0, tselem= ts->data; a<ts->usedelem; a++, tselem++) {
+				if(tselem->id==NULL) unused++;
+			}
+			
+			if(unused) {
+				if(ts->usedelem == unused) {
+					MEM_freeN(ts->data);
+					ts->data= NULL;
+					ts->usedelem= ts->totelem= 0;
+				}
+				else {
+					TreeStoreElem *tsnewar, *tsnew;
+					
+					tsnew=tsnewar= MEM_mallocN((ts->usedelem-unused)*sizeof(TreeStoreElem), "new tselem");
+					for(a=0, tselem= ts->data; a<ts->usedelem; a++, tselem++) {
+						if(tselem->id) {
+							*tsnew= *tselem;
+							tsnew++;
+						}
+					}
+					MEM_freeN(ts->data);
+					ts->data= tsnewar;
+					ts->usedelem-= unused;
+					ts->totelem= ts->usedelem;
+				}
+			}
+		}
+	}
+}
+
+static void check_persistant(SpaceOops *soops, TreeElement *te, ID *id, short type, short nr)
+{
+	TreeStore *ts;
+	TreeStoreElem *tselem;
+	int a;
+	
+	/* case 1; no TreeStore */
+	if(soops->treestore==NULL) {
+		soops->treestore= MEM_callocN(sizeof(TreeStore), "treestore");
+	}
+	ts= soops->treestore;
+	
+	/* check if 'te' is in treestore */
+	tselem= ts->data;
+	for(a=0; a<ts->usedelem; a++, tselem++) {
+		if(tselem->id==id && tselem->used==0) {
+			if((type==0 && tselem->type==0) ||(tselem->type==type && tselem->nr==nr)) {
+				te->store_index= a;
+				tselem->used= 1;
+				return;
+			}
+		}
+	}
+	
+	/* add 1 element to treestore */
+	if(ts->usedelem==ts->totelem) {
+		TreeStoreElem *tsnew;
+		
+		tsnew= MEM_mallocN((ts->totelem+TS_CHUNK)*sizeof(TreeStoreElem), "treestore data");
+		if(ts->data) {
+			memcpy(tsnew, ts->data, ts->totelem*sizeof(TreeStoreElem));
+			MEM_freeN(ts->data);
+		}
+		ts->data= tsnew;
+		ts->totelem+= TS_CHUNK;
+	}
+	
+	tselem= ts->data+ts->usedelem;
+	
+	tselem->type= type;
+	if(type) tselem->nr= nr; // we're picky! :)
+	else tselem->nr= 0;
+	tselem->id= id;
+	tselem->used = 0;
+	tselem->flag= TSE_CLOSED;
+	te->store_index= ts->usedelem;
+	
+	ts->usedelem++;
+}
+
+/* ********************************************************* */
+/* Tree Management */
+
+void outliner_free_tree(ListBase *lb)
+{
+	while(lb->first) {
+		TreeElement *te= lb->first;
+		
+		outliner_free_tree(&te->subtree);
+		BLI_remlink(lb, te);
+		
+		if(te->flag & TE_FREE_NAME) MEM_freeN((void *)te->name);
+		MEM_freeN(te);
+	}
+}
+
+/* Find ith item from the treestore */
+TreeElement *outliner_find_tree_element(ListBase *lb, int store_index)
+{
+	TreeElement *te= lb->first, *tes;
+	while(te) {
+		if(te->store_index==store_index) return te;
+		tes= outliner_find_tree_element(&te->subtree, store_index);
+		if(tes) return tes;
+		te= te->next;
+	}
+	return NULL;
+}
+
+/* tse is not in the treestore, we use its contents to find a match */
+TreeElement *outliner_find_tse(SpaceOops *soops, TreeStoreElem *tse)
+{
+	TreeStore *ts= soops->treestore;
+	TreeStoreElem *tselem;
+	int a;
+	
+	if(tse->id==NULL) return NULL;
+	
+	/* check if 'tse' is in treestore */
+	tselem= ts->data;
+	for(a=0; a<ts->usedelem; a++, tselem++) {
+		if((tse->type==0 && tselem->type==0) || (tselem->type==tse->type && tselem->nr==tse->nr)) {
+			if(tselem->id==tse->id) {
+				break;
+			}
+		}
+	}
+	if(tselem) 
+		return outliner_find_tree_element(&soops->tree, a);
+	
+	return NULL;
+}
+
+/* Find treestore that refers to given ID */
+TreeElement *outliner_find_id(SpaceOops *soops, ListBase *lb, ID *id)
+{
+	TreeElement *te, *tes;
+	TreeStoreElem *tselem;
+	
+	for(te= lb->first; te; te= te->next) {
+		tselem= TREESTORE(te);
+		if(tselem->type==0) {
+			if(tselem->id==id) return te;
+			/* only deeper on scene or object */
+			if( te->idcode==ID_OB || te->idcode==ID_SCE || (soops->outlinevis == SO_GROUPS && te->idcode==ID_GR)) {
+				tes= outliner_find_id(soops, &te->subtree, id);
+				if(tes) return tes;
+			}
+		}
+	}
+	return NULL;
+}
+
+
+ID *outliner_search_back(SpaceOops *soops, TreeElement *te, short idcode)
+{
+	TreeStoreElem *tselem;
+	te= te->parent;
+	
+	while(te) {
+		tselem= TREESTORE(te);
+		if(tselem->type==0 && te->idcode==idcode) return tselem->id;
+		te= te->parent;
+	}
+	return NULL;
+}
+
+
+/* ********************************************************* */
+
+/* Prototype, see functions below */
+static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *idv, 
+										 TreeElement *parent, short type, short index);
+
+/* -------------------------------------------------------- */
+
+/* special handling of hierarchical non-lib data */
+static void outliner_add_bone(SpaceOops *soops, ListBase *lb, ID *id, Bone *curBone, 
+							  TreeElement *parent, int *a)
+{
+	TreeElement *te= outliner_add_element(soops, lb, id, parent, TSE_BONE, *a);
+	
+	(*a)++;
+	te->name= curBone->name;
+	te->directdata= curBone;
+	
+	for(curBone= curBone->childbase.first; curBone; curBone=curBone->next) {
+		outliner_add_bone(soops, &te->subtree, id, curBone, te, a);
+	}
+}
+
+/* -------------------------------------------------------- */
+
+#define LOG2I(x) (int)(log(x)/M_LN2)
+
+static void outliner_add_passes(SpaceOops *soops, TreeElement *tenla, ID *id, SceneRenderLayer *srl)
+{
+	TreeStoreElem *tselem = NULL;
+	TreeElement *te = NULL;
+
+	/* log stuff is to convert bitflags (powers of 2) to small integers,
+	 * in order to not overflow short tselem->nr */
+	
+	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_COMBINED));
+	te->name= "Combined";
+	te->directdata= &srl->passflag;
+	
+	/* save cpu cycles, but we add the first to invoke an open/close triangle */
+	tselem = TREESTORE(tenla);
+	if(tselem->flag & TSE_CLOSED)
+		return;
+	
+	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_Z));
+	te->name= "Z";
+	te->directdata= &srl->passflag;
+	
+	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_VECTOR));
+	te->name= "Vector";
+	te->directdata= &srl->passflag;
+	
+	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_NORMAL));
+	te->name= "Normal";
+	te->directdata= &srl->passflag;
+	
+	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_UV));
+	te->name= "UV";
+	te->directdata= &srl->passflag;
+	
+	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_MIST));
+	te->name= "Mist";
+	te->directdata= &srl->passflag;
+	
+	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_INDEXOB));
+	te->name= "Index Object";
+	te->directdata= &srl->passflag;
+	
+	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_INDEXMA));
+	te->name= "Index Material";
+	te->directdata= &srl->passflag;
+
+	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_RGBA));
+	te->name= "Color";
+	te->directdata= &srl->passflag;
+	
+	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_DIFFUSE));
+	te->name= "Diffuse";
+	te->directdata= &srl->passflag;
+	
+	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_SPEC));
+	te->name= "Specular";
+	te->directdata= &srl->passflag;
+	
+	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_SHADOW));
+	te->name= "Shadow";
+	te->directdata= &srl->passflag;
+	
+	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_AO));
+	te->name= "AO";
+	te->directdata= &srl->passflag;
+	
+	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_REFLECT));
+	te->name= "Reflection";
+	te->directdata= &srl->passflag;
+	
+	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_REFRACT));
+	te->name= "Refraction";
+	te->directdata= &srl->passflag;
+	
+	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_INDIRECT));
+	te->name= "Indirect";
+	te->directdata= &srl->passflag;
+
+	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_ENVIRONMENT));
+	te->name= "Environment";
+	te->directdata= &srl->passflag;
+
+	te= outliner_add_element(soops, &tenla->subtree, id, tenla, TSE_R_PASS, LOG2I(SCE_PASS_EMIT));
+	te->name= "Emit";
+	te->directdata= &srl->passflag;
+}
+
+#undef LOG2I
+
+static void outliner_add_scene_contents(SpaceOops *soops, ListBase *lb, Scene *sce, TreeElement *te)
+{
+	SceneRenderLayer *srl;
+	TreeElement *tenla= outliner_add_element(soops, lb, sce, te, TSE_R_LAYER_BASE, 0);
+	int a;
+	
+	tenla->name= "RenderLayers";
+	for(a=0, srl= sce->r.layers.first; srl; srl= srl->next, a++) {
+		TreeElement *tenlay= outliner_add_element(soops, &tenla->subtree, sce, te, TSE_R_LAYER, a);
+		tenlay->name= srl->name;
+		tenlay->directdata= &srl->passflag;
+		
+		if(srl->light_override)
+			outliner_add_element(soops, &tenlay->subtree, srl->light_override, tenlay, TSE_LINKED_LAMP, 0);
+		if(srl->mat_override)
+			outliner_add_element(soops, &tenlay->subtree, srl->mat_override, tenlay, TSE_LINKED_MAT, 0);
+		
+		outliner_add_passes(soops, tenlay, &sce->id, srl);
+	}
+	
+	// TODO: move this to the front?
+	if (sce->adt)
+		outliner_add_element(soops, lb, sce, te, TSE_ANIM_DATA, 0);
+	
+	outliner_add_element(soops,  lb, sce->world, te, 0, 0);
+}
+
+// can be inlined if necessary
+static void outliner_add_object_contents(SpaceOops *soops, TreeElement *te, TreeStoreElem *tselem, Object *ob)
+{
+	int a = 0;
+	
+	if (ob->adt)
+		outliner_add_element(soops, &te->subtree, ob, te, TSE_ANIM_DATA, 0);
+	
+	outliner_add_element(soops, &te->subtree, ob->poselib, te, 0, 0); // XXX FIXME.. add a special type for this
+	
+	if (ob->proxy && ob->id.lib==NULL)
+		outliner_add_element(soops, &te->subtree, ob->proxy, te, TSE_PROXY, 0);
+	
+	outliner_add_element(soops, &te->subtree, ob->data, te, 0, 0);
+	
+	if (ob->pose) {
+		bArmature *arm= ob->data;
+		bPoseChannel *pchan;
+		TreeElement *ten;
+		TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_POSE_BASE, 0);
+		
+		tenla->name= "Pose";
+		
+		/* channels undefined in editmode, but we want the 'tenla' pose icon itself */
+		if ((arm->edbo == NULL) && (ob->mode & OB_MODE_POSE)) {
+			int a= 0, const_index= 1000;	/* ensure unique id for bone constraints */
+			
+			for(pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next, a++) {
+				ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_POSE_CHANNEL, a);
+				ten->name= pchan->name;
+				ten->directdata= pchan;
+				pchan->prev= (bPoseChannel *)ten;
+				
+				if(pchan->constraints.first) {
+					//Object *target;
+					bConstraint *con;
+					TreeElement *ten1;
+					TreeElement *tenla1= outliner_add_element(soops, &ten->subtree, ob, ten, TSE_CONSTRAINT_BASE, 0);
+					//char *str;
+					
+					tenla1->name= "Constraints";
+					for(con= pchan->constraints.first; con; con= con->next, const_index++) {
+						ten1= outliner_add_element(soops, &tenla1->subtree, ob, tenla1, TSE_CONSTRAINT, const_index);
+#if 0 /* disabled as it needs to be reworked for recoded constraints system */
+						target= get_constraint_target(con, &str);
+						if(str && str[0]) ten1->name= str;
+						else if(target) ten1->name= target->id.name+2;
+						else ten1->name= con->name;
+#endif
+						ten1->name= con->name;
+						ten1->directdata= con;
+						/* possible add all other types links? */
+					}
+				}
+			}
+			/* make hierarchy */
+			ten= tenla->subtree.first;
+			while(ten) {
+				TreeElement *nten= ten->next, *par;
+				tselem= TREESTORE(ten);
+				if(tselem->type==TSE_POSE_CHANNEL) {
+					pchan= (bPoseChannel *)ten->directdata;
+					if(pchan->parent) {
+						BLI_remlink(&tenla->subtree, ten);
+						par= (TreeElement *)pchan->parent->prev;
+						BLI_addtail(&par->subtree, ten);
+						ten->parent= par;
+					}
+				}
+				ten= nten;
+			}
+			/* restore prev pointers */
+			pchan= ob->pose->chanbase.first;
+			if(pchan) pchan->prev= NULL;
+			for(; pchan; pchan= pchan->next) {
+				if(pchan->next) pchan->next->prev= pchan;
+			}
+		}
+		
+		/* Pose Groups */
+		if(ob->pose->agroups.first) {
+			bActionGroup *agrp;
+			TreeElement *ten;
+			TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_POSEGRP_BASE, 0);
+			int a= 0;
+			
+			tenla->name= "Bone Groups";
+			for (agrp=ob->pose->agroups.first; agrp; agrp=agrp->next, a++) {
+				ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_POSEGRP, a);
+				ten->name= agrp->name;
+				ten->directdata= agrp;
+			}
+		}
+	}
+	
+	for(a=0; a<ob->totcol; a++) 
+		outliner_add_element(soops, &te->subtree, ob->mat[a], te, 0, a);
+	
+	if(ob->constraints.first) {
+		//Object *target;
+		bConstraint *con;
+		TreeElement *ten;
+		TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_CONSTRAINT_BASE, 0);
+		//char *str;
+		
+		tenla->name= "Constraints";
+		for (con=ob->constraints.first, a=0; con; con= con->next, a++) {
+			ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_CONSTRAINT, a);
+#if 0 /* disabled due to constraints system targets recode... code here needs review */
+			target= get_constraint_target(con, &str);
+			if(str && str[0]) ten->name= str;
+			else if(target) ten->name= target->id.name+2;
+			else ten->name= con->name;
+#endif
+			ten->name= con->name;
+			ten->directdata= con;
+			/* possible add all other types links? */
+		}
+	}
+	
+	if (ob->modifiers.first) {
+		ModifierData *md;
+		TreeElement *temod = outliner_add_element(soops, &te->subtree, ob, te, TSE_MODIFIER_BASE, 0);
+		int index;
+		
+		temod->name = "Modifiers";
+		for (index=0,md=ob->modifiers.first; md; index++,md=md->next) {
+			TreeElement *te = outliner_add_element(soops, &temod->subtree, ob, temod, TSE_MODIFIER, index);
+			te->name= md->name;
+			te->directdata = md;
+			
+			if (md->type==eModifierType_Lattice) {
+				outliner_add_element(soops, &te->subtree, ((LatticeModifierData*) md)->object, te, TSE_LINKED_OB, 0);
+			} 
+			else if (md->type==eModifierType_Curve) {
+				outliner_add_element(soops, &te->subtree, ((CurveModifierData*) md)->object, te, TSE_LINKED_OB, 0);
+			} 
+			else if (md->type==eModifierType_Armature) {
+				outliner_add_element(soops, &te->subtree, ((ArmatureModifierData*) md)->object, te, TSE_LINKED_OB, 0);
+			} 
+			else if (md->type==eModifierType_Hook) {
+				outliner_add_element(soops, &te->subtree, ((HookModifierData*) md)->object, te, TSE_LINKED_OB, 0);
+			} 
+			else if (md->type==eModifierType_ParticleSystem) {
+				TreeElement *ten;
+				ParticleSystem *psys= ((ParticleSystemModifierData*) md)->psys;
+				
+				ten = outliner_add_element(soops, &te->subtree, ob, te, TSE_LINKED_PSYS, 0);
+				ten->directdata = psys;
+				ten->name = psys->part->id.name+2;
+			}
+		}
+	}
+	
+	/* vertex groups */
+	if (ob->defbase.first) {
+		bDeformGroup *defgroup;
+		TreeElement *ten;
+		TreeElement *tenla= outliner_add_element(soops, &te->subtree, ob, te, TSE_DEFGROUP_BASE, 0);
+		
+		tenla->name= "Vertex Groups";
+		for (defgroup=ob->defbase.first, a=0; defgroup; defgroup=defgroup->next, a++) {
+			ten= outliner_add_element(soops, &tenla->subtree, ob, tenla, TSE_DEFGROUP, a);
+			ten->name= defgroup->name;
+			ten->directdata= defgroup;
+		}
+	}
+	
+	/* duplicated group */
+	if (ob->dup_group)
+		outliner_add_element(soops, &te->subtree, ob->dup_group, te, 0, 0);	
+}
+
+// can be inlined if necessary
+static void outliner_add_id_contents(SpaceOops *soops, TreeElement *te, TreeStoreElem *tselem, ID *id)
+{
+	/* tuck pointer back in object, to construct hierarchy */
+	if (GS(id->name)==ID_OB) id->newid= (ID *)te;
+	
+	/* expand specific data always */
+	switch (GS(id->name)) {
+		case ID_LI:
+		{
+			te->name= ((Library *)id)->name;
+		}
+			break;
+		case ID_SCE:
+		{
+			outliner_add_scene_contents(soops, &te->subtree, (Scene *)id, te);
+		}
+			break;
+		case ID_OB:
+		{
+			outliner_add_object_contents(soops, te, tselem, (Object *)id);
+		}
+			break;
+		case ID_ME:
+		{
+			Mesh *me= (Mesh *)id;
+			int a;
+			
+			if (me->adt)
+				outliner_add_element(soops, &te->subtree, me, te, TSE_ANIM_DATA, 0);
+			
+			outliner_add_element(soops, &te->subtree, me->key, te, 0, 0);
+			for(a=0; a<me->totcol; a++) 
+				outliner_add_element(soops, &te->subtree, me->mat[a], te, 0, a);
+			/* could do tfaces with image links, but the images are not grouped nicely.
+			   would require going over all tfaces, sort images in use. etc... */
+		}
+			break;
+		case ID_CU:
+		{
+			Curve *cu= (Curve *)id;
+			int a;
+			
+			if (cu->adt)
+				outliner_add_element(soops, &te->subtree, cu, te, TSE_ANIM_DATA, 0);
+			
+			for(a=0; a<cu->totcol; a++) 
+				outliner_add_element(soops, &te->subtree, cu->mat[a], te, 0, a);
+		}
+			break;
+		case ID_MB:
+		{
+			MetaBall *mb= (MetaBall *)id;
+			int a;
+			
+			if (mb->adt)
+				outliner_add_element(soops, &te->subtree, mb, te, TSE_ANIM_DATA, 0);
+			
+			for(a=0; a<mb->totcol; a++) 
+				outliner_add_element(soops, &te->subtree, mb->mat[a], te, 0, a);
+		}
+			break;
+		case ID_MA:
+		{
+			Material *ma= (Material *)id;
+			int a;
+			
+			if (ma->adt)
+				outliner_add_element(soops, &te->subtree, ma, te, TSE_ANIM_DATA, 0);
+			
+			for(a=0; a<MAX_MTEX; a++) {
+				if(ma->mtex[a]) outliner_add_element(soops, &te->subtree, ma->mtex[a]->tex, te, 0, a);
+			}
+		}
+			break;
+		case ID_TE:
+		{
+			Tex *tex= (Tex *)id;
+			
+			if (tex->adt)
+				outliner_add_element(soops, &te->subtree, tex, te, TSE_ANIM_DATA, 0);
+			
+			outliner_add_element(soops, &te->subtree, tex->ima, te, 0, 0);
+		}
+			break;
+		case ID_CA:
+		{
+			Camera *ca= (Camera *)id;
+			
+			if (ca->adt)
+				outliner_add_element(soops, &te->subtree, ca, te, TSE_ANIM_DATA, 0);
+		}
+			break;
+		case ID_LA:
+		{
+			Lamp *la= (Lamp *)id;
+			int a;
+			
+			if (la->adt)
+				outliner_add_element(soops, &te->subtree, la, te, TSE_ANIM_DATA, 0);
+			
+			for(a=0; a<MAX_MTEX; a++) {
+				if(la->mtex[a]) outliner_add_element(soops, &te->subtree, la->mtex[a]->tex, te, 0, a);
+			}
+		}
+			break;
+
+#if 0 // GSOC_PEPPER
+
+		case ID_SPK:
+			{
+				Speaker *spk= (Speaker *)id;
+
+				if(spk->adt)
+					outliner_add_element(soops, &te->subtree, spk, te, TSE_ANIM_DATA, 0);
+			}
+			break;
+
+#endif // GSOC_PEPPER
+
+		case ID_WO:
+		{
+			World *wrld= (World *)id;
+			int a;
+			
+			if (wrld->adt)
+				outliner_add_element(soops, &te->subtree, wrld, te, TSE_ANIM_DATA, 0);
+			
+			for(a=0; a<MAX_MTEX; a++) {
+				if(wrld->mtex[a]) outliner_add_element(soops, &te->subtree, wrld->mtex[a]->tex, te, 0, a);
+			}
+		}
+			break;
+		case ID_KE:
+		{
+			Key *key= (Key *)id;
+			
+			if (key->adt)
+				outliner_add_element(soops, &te->subtree, key, te, TSE_ANIM_DATA, 0);
+		}
+			break;
+		case ID_AC:
+		{
+			// XXX do we want to be exposing the F-Curves here?
+			//bAction *act= (bAction *)id;
+		}
+			break;
+		case ID_AR:
+		{
+			bArmature *arm= (bArmature *)id;
+			int a= 0;
+			
+			if (arm->adt)
+				outliner_add_element(soops, &te->subtree, arm, te, TSE_ANIM_DATA, 0);
+			
+			if(arm->edbo) {
+				EditBone *ebone;
+				TreeElement *ten;
+				
+				for (ebone = arm->edbo->first; ebone; ebone=ebone->next, a++) {
+					ten= outliner_add_element(soops, &te->subtree, id, te, TSE_EBONE, a);
+					ten->directdata= ebone;
+					ten->name= ebone->name;
+					ebone->temp= ten;
+				}
+				/* make hierarchy */
+				ten= te->subtree.first;
+				while(ten) {
+					TreeElement *nten= ten->next, *par;
+					ebone= (EditBone *)ten->directdata;
+					if(ebone->parent) {
+						BLI_remlink(&te->subtree, ten);
+						par= ebone->parent->temp;
+						BLI_addtail(&par->subtree, ten);
+						ten->parent= par;
+					}
+					ten= nten;
+				}
+			}
+			else {
+				/* do not extend Armature when we have posemode */
+				tselem= TREESTORE(te->parent);
+				if( GS(tselem->id->name)==ID_OB && ((Object *)tselem->id)->mode & OB_MODE_POSE);
+				else {
+					Bone *curBone;
+					for (curBone=arm->bonebase.first; curBone; curBone=curBone->next){
+						outliner_add_bone(soops, &te->subtree, id, curBone, te, &a);
+					}
+				}
+			}
+		}
+			break;
+	}
+}
+
+// TODO: this function needs to be split up! It's getting a bit too large...
+static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *idv, 
+										 TreeElement *parent, short type, short index)
+{
+	TreeElement *te;
+	TreeStoreElem *tselem;
+	ID *id= idv;
+	int a = 0;
+	
+	if(ELEM3(type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) {
+		id= ((PointerRNA*)idv)->id.data;
+		if(!id) id= ((PointerRNA*)idv)->data;
+	}
+
+	if(id==NULL) return NULL;
+
+	te= MEM_callocN(sizeof(TreeElement), "tree elem");
+	/* add to the visual tree */
+	BLI_addtail(lb, te);
+	/* add to the storage */
+	check_persistant(soops, te, id, type, index);
+	tselem= TREESTORE(te);	
+	
+	te->parent= parent;
+	te->index= index;	// for data arays
+	if(ELEM3(type, TSE_SEQUENCE, TSE_SEQ_STRIP, TSE_SEQUENCE_DUP));
+	else if(ELEM3(type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM));
+	else if(type==TSE_ANIM_DATA);
+	else {
+		te->name= id->name+2; // default, can be overridden by Library or non-ID data
+		te->idcode= GS(id->name);
+	}
+	
+	if(type==0) {
+		/* ID datablock */
+		outliner_add_id_contents(soops, te, tselem, id);
+	}
+	else if(type==TSE_ANIM_DATA) {
+		IdAdtTemplate *iat = (IdAdtTemplate *)idv;
+		AnimData *adt= (AnimData *)iat->adt;
+		
+		/* this element's info */
+		te->name= "Animation";
+		te->directdata= adt;
+		
+		/* Action */
+		outliner_add_element(soops, &te->subtree, adt->action, te, 0, 0);
+		
+		/* Drivers */
+		if (adt->drivers.first) {
+			TreeElement *ted= outliner_add_element(soops, &te->subtree, adt, te, TSE_DRIVER_BASE, 0);
+			ID *lastadded= NULL;
+			FCurve *fcu;
+			
+			ted->name= "Drivers";
+		
+			for (fcu= adt->drivers.first; fcu; fcu= fcu->next) {
+				if (fcu->driver && fcu->driver->variables.first)  {
+					ChannelDriver *driver= fcu->driver;
+					DriverVar *dvar;
+					
+					for (dvar= driver->variables.first; dvar; dvar= dvar->next) {
+						/* loop over all targets used here */
+						DRIVER_TARGETS_USED_LOOPER(dvar) 
+						{
+							if (lastadded != dtar->id) {
+								// XXX this lastadded check is rather lame, and also fails quite badly...
+								outliner_add_element(soops, &ted->subtree, dtar->id, ted, TSE_LINKED_OB, 0);
+								lastadded= dtar->id;
+							}
+						}
+						DRIVER_TARGETS_LOOPER_END
+					}
+				}
+			}
+		}
+		
+		/* NLA Data */
+		if (adt->nla_tracks.first) {
+			TreeElement *tenla= outliner_add_element(soops, &te->subtree, adt, te, TSE_NLA, 0);
+			NlaTrack *nlt;
+			int a= 0;
+			
+			tenla->name= "NLA Tracks";
+			
+			for (nlt= adt->nla_tracks.first; nlt; nlt= nlt->next) {
+				TreeElement *tenlt= outliner_add_element(soops, &tenla->subtree, nlt, tenla, TSE_NLA_TRACK, a);
+				NlaStrip *strip;
+				TreeElement *ten;
+				int b= 0;
+				
+				tenlt->name= nlt->name;
+				
+				for (strip=nlt->strips.first; strip; strip=strip->next, b++) {
+					ten= outliner_add_element(soops, &tenlt->subtree, strip->act, tenlt, TSE_NLA_ACTION, b);
+					if(ten) ten->directdata= strip;
+				}
+			}
+		}
+	}
+	else if(type==TSE_SEQUENCE) {
+		Sequence *seq= (Sequence*) idv;
+		Sequence *p;
+
+		/*
+		 * The idcode is a little hack, but the outliner
+		 * only check te->idcode if te->type is equal to zero,
+		 * so this is "safe".
+		 */
+		te->idcode= seq->type;
+		te->directdata= seq;
+
+		if(seq->type<7) {
+			/*
+			 * This work like the sequence.
+			 * If the sequence have a name (not default name)
+			 * show it, in other case put the filename.
+			 */
+			if(strcmp(seq->name, "SQ"))
+				te->name= seq->name;
+			else {
+				if((seq->strip) && (seq->strip->stripdata))
+					te->name= seq->strip->stripdata->name;
+				else
+					te->name= "SQ None";
+			}
+
+			if(seq->type==SEQ_META) {
+				te->name= "Meta Strip";
+				p= seq->seqbase.first;
+				while(p) {
+					outliner_add_element(soops, &te->subtree, (void*)p, te, TSE_SEQUENCE, index);
+					p= p->next;
+				}
+			}
+			else
+				outliner_add_element(soops, &te->subtree, (void*)seq->strip, te, TSE_SEQ_STRIP, index);
+		}
+		else
+			te->name= "Effect";
+	}
+	else if(type==TSE_SEQ_STRIP) {
+		Strip *strip= (Strip *)idv;
+
+		if(strip->dir)
+			te->name= strip->dir;
+		else
+			te->name= "Strip None";
+		te->directdata= strip;
+	}
+	else if(type==TSE_SEQUENCE_DUP) {
+		Sequence *seq= (Sequence*)idv;
+
+		te->idcode= seq->type;
+		te->directdata= seq;
+		te->name= seq->strip->stripdata->name;
+	}
+	else if(ELEM3(type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) {
+		PointerRNA pptr, propptr, *ptr= (PointerRNA*)idv;
+		PropertyRNA *prop, *iterprop;
+		PropertyType proptype;
+		int a, tot;
+
+		/* we do lazy build, for speed and to avoid infinite recusion */
+
+		if(ptr->data == NULL) {
+			te->name= "(empty)";
+		}
+		else if(type == TSE_RNA_STRUCT) {
+			/* struct */
+			te->name= RNA_struct_name_get_alloc(ptr, NULL, 0);
+
+			if(te->name)
+				te->flag |= TE_FREE_NAME;
+			else
+				te->name= (char*)RNA_struct_ui_name(ptr->type);
+
+			iterprop= RNA_struct_iterator_property(ptr->type);
+			tot= RNA_property_collection_length(ptr, iterprop);
+
+			/* auto open these cases */
+			if(!parent || (RNA_property_type(parent->directdata)) == PROP_POINTER)
+				if(!tselem->used)
+					tselem->flag &= ~TSE_CLOSED;
+
+			if(!(tselem->flag & TSE_CLOSED)) {
+				for(a=0; a<tot; a++)
+					outliner_add_element(soops, &te->subtree, (void*)ptr, te, TSE_RNA_PROPERTY, a);
+			}
+			else if(tot)
+				te->flag |= TE_LAZY_CLOSED;
+
+			te->rnaptr= *ptr;
+		}
+		else if(type == TSE_RNA_PROPERTY) {
+			/* property */
+			iterprop= RNA_struct_iterator_property(ptr->type);
+			RNA_property_collection_lookup_int(ptr, iterprop, index, &propptr);
+
+			prop= propptr.data;
+			proptype= RNA_property_type(prop);
+
+			te->name= (char*)RNA_property_ui_name(prop);
+			te->directdata= prop;
+			te->rnaptr= *ptr;
+
+			if(proptype == PROP_POINTER) {
+				pptr= RNA_property_pointer_get(ptr, prop);
+
+				if(pptr.data) {
+					if(!(tselem->flag & TSE_CLOSED))
+						outliner_add_element(soops, &te->subtree, (void*)&pptr, te, TSE_RNA_STRUCT, -1);
+					else
+						te->flag |= TE_LAZY_CLOSED;
+				}
+			}
+			else if(proptype == PROP_COLLECTION) {
+				tot= RNA_property_collection_length(ptr, prop);
+
+				if(!(tselem->flag & TSE_CLOSED)) {
+					for(a=0; a<tot; a++) {
+						RNA_property_collection_lookup_int(ptr, prop, a, &pptr);
+						outliner_add_element(soops, &te->subtree, (void*)&pptr, te, TSE_RNA_STRUCT, a);
+					}
+				}
+				else if(tot)
+					te->flag |= TE_LAZY_CLOSED;
+			}
+			else if(ELEM3(proptype, PROP_BOOLEAN, PROP_INT, PROP_FLOAT)) {
+				tot= RNA_property_array_length(ptr, prop);
+
+				if(!(tselem->flag & TSE_CLOSED)) {
+					for(a=0; a<tot; a++)
+						outliner_add_element(soops, &te->subtree, (void*)ptr, te, TSE_RNA_ARRAY_ELEM, a);
+				}
+				else if(tot)
+					te->flag |= TE_LAZY_CLOSED;
+			}
+		}
+		else if(type == TSE_RNA_ARRAY_ELEM) {
+			char c;
+
+			prop= parent->directdata;
+
+			te->directdata= prop;
+			te->rnaptr= *ptr;
+			te->index= index;
+
+			c= RNA_property_array_item_char(prop, index);
+
+			te->name= MEM_callocN(sizeof(char)*20, "OutlinerRNAArrayName");
+			if(c) sprintf((char *)te->name, "  %c", c);
+			else sprintf((char *)te->name, "  %d", index+1);
+			te->flag |= TE_FREE_NAME;
+		}
+	}
+	else if(type == TSE_KEYMAP) {
+		wmKeyMap *km= (wmKeyMap *)idv;
+		wmKeyMapItem *kmi;
+		char opname[OP_MAX_TYPENAME];
+		
+		te->directdata= idv;
+		te->name= km->idname;
+		
+		if(!(tselem->flag & TSE_CLOSED)) {
+			a= 0;
+			
+			for (kmi= km->items.first; kmi; kmi= kmi->next, a++) {
+				const char *key= WM_key_event_string(kmi->type);
+				
+				if(key[0]) {
+					wmOperatorType *ot= NULL;
+					
+					if(kmi->propvalue);
+					else ot= WM_operatortype_find(kmi->idname, 0);
+					
+					if(ot || kmi->propvalue) {
+						TreeElement *ten= outliner_add_element(soops, &te->subtree, kmi, te, TSE_KEYMAP_ITEM, a);
+						
+						ten->directdata= kmi;
+						
+						if(kmi->propvalue) {
+							ten->name= "Modal map, not yet";
+						}
+						else {
+							WM_operator_py_idname(opname, ot->idname);
+							ten->name= BLI_strdup(opname);
+							ten->flag |= TE_FREE_NAME;
+						}
+					}
+				}
+			}
+		}
+		else 
+			te->flag |= TE_LAZY_CLOSED;
+	}
+
+	return te;
+}
+
+/* ======================================================= */
+/* Sequencer mode tree building */
+
+/* Helped function to put duplicate sequence in the same tree. */
+static int need_add_seq_dup(Sequence *seq)
+{
+	Sequence *p;
+
+	if((!seq->strip) || (!seq->strip->stripdata) || (!seq->strip->stripdata->name))
+		return(1);
+
+	/*
+	 * First check backward, if we found a duplicate
+	 * sequence before this, don't need it, just return.
+	 */
+	p= seq->prev;
+	while(p) {
+		if((!p->strip) || (!p->strip->stripdata) || (!p->strip->stripdata->name)) {
+			p= p->prev;
+			continue;
+		}
+
+		if(!strcmp(p->strip->stripdata->name, seq->strip->stripdata->name))
+			return(2);
+		p= p->prev;
+	}
+
+	p= seq->next;
+	while(p) {
+		if((!p->strip) || (!p->strip->stripdata) || (!p->strip->stripdata->name)) {
+			p= p->next;
+			continue;
+		}
+
+		if(!strcmp(p->strip->stripdata->name, seq->strip->stripdata->name))
+			return(0);
+		p= p->next;
+	}
+	return(1);
+}
+
+static void outliner_add_seq_dup(SpaceOops *soops, Sequence *seq, TreeElement *te, short index)
+{
+	TreeElement *ch;
+	Sequence *p;
+
+	p= seq;
+	while(p) {
+		if((!p->strip) || (!p->strip->stripdata) || (!p->strip->stripdata->name)) {
+			p= p->next;
+			continue;
+		}
+
+		if(!strcmp(p->strip->stripdata->name, seq->strip->stripdata->name))
+			ch= outliner_add_element(soops, &te->subtree, (void*)p, te, TSE_SEQUENCE, index);
+		p= p->next;
+	}
+}
+
+/* ======================================================= */
+/* Generic Tree Building helpers - order these are called is top to bottom */
+
+/* Hierarchy --------------------------------------------- */
+
+/* make sure elements are correctly nested */
+static void outliner_make_hierarchy(SpaceOops *soops, ListBase *lb)
+{
+	TreeElement *te, *ten, *tep;
+	TreeStoreElem *tselem;
+
+	/* build hierarchy */
+	// XXX also, set extents here...
+	te= lb->first;
+	while(te) {
+		ten= te->next;
+		tselem= TREESTORE(te);
+		
+		if(tselem->type==0 && te->idcode==ID_OB) {
+			Object *ob= (Object *)tselem->id;
+			if(ob->parent && ob->parent->id.newid) {
+				BLI_remlink(lb, te);
+				tep= (TreeElement *)ob->parent->id.newid;
+				BLI_addtail(&tep->subtree, te);
+				// set correct parent pointers
+				for(te=tep->subtree.first; te; te= te->next) te->parent= tep;
+			}
+		}
+		te= ten;
+	}
+}
+
+/* Sorting ------------------------------------------------------ */
+
+typedef struct tTreeSort {
+	TreeElement *te;
+	ID *id;
+	const char *name;
+	short idcode;
+} tTreeSort;
+
+/* alphabetical comparator */
+static int treesort_alpha(const void *v1, const void *v2)
+{
+	const tTreeSort *x1= v1, *x2= v2;
+	int comp;
+	
+	/* first put objects last (hierarchy) */
+	comp= (x1->idcode==ID_OB);
+	if(x2->idcode==ID_OB) comp+=2;
+	
+	if(comp==1) return 1;
+	else if(comp==2) return -1;
+	else if(comp==3) {
+		comp= strcmp(x1->name, x2->name);
+		
+		if( comp>0 ) return 1;
+		else if( comp<0) return -1;
+		return 0;
+	}
+	return 0;
+}
+
+/* this is nice option for later? doesnt look too useful... */
+#if 0
+static int treesort_obtype_alpha(const void *v1, const void *v2)
+{
+	const tTreeSort *x1= v1, *x2= v2;
+	
+	/* first put objects last (hierarchy) */
+	if(x1->idcode==ID_OB && x2->idcode!=ID_OB) return 1;
+	else if(x2->idcode==ID_OB && x1->idcode!=ID_OB) return -1;
+	else {
+		/* 2nd we check ob type */
+		if(x1->idcode==ID_OB && x2->idcode==ID_OB) {
+			if( ((Object *)x1->id)->type > ((Object *)x2->id)->type) return 1;
+			else if( ((Object *)x1->id)->type > ((Object *)x2->id)->type) return -1;
+			else return 0;
+		}
+		else {
+			int comp= strcmp(x1->name, x2->name);
+			
+			if( comp>0 ) return 1;
+			else if( comp<0) return -1;
+			return 0;
+		}
+	}
+}
+#endif
+
+/* sort happens on each subtree individual */
+static void outliner_sort(SpaceOops *soops, ListBase *lb)
+{
+	TreeElement *te;
+	TreeStoreElem *tselem;
+	int totelem=0;
+	
+	te= lb->last;
+	if(te==NULL) return;
+	tselem= TREESTORE(te);
+	
+	/* sorting rules; only object lists or deformgroups */
+	if( (tselem->type==TSE_DEFGROUP) || (tselem->type==0 && te->idcode==ID_OB)) {
+		
+		/* count first */
+		for(te= lb->first; te; te= te->next) totelem++;
+		
+		if(totelem>1) {
+			tTreeSort *tear= MEM_mallocN(totelem*sizeof(tTreeSort), "tree sort array");
+			tTreeSort *tp=tear;
+			int skip= 0;
+			
+			for(te= lb->first; te; te= te->next, tp++) {
+				tselem= TREESTORE(te);
+				tp->te= te;
+				tp->name= te->name;
+				tp->idcode= te->idcode;
+				if(tselem->type && tselem->type!=TSE_DEFGROUP) tp->idcode= 0;	// dont sort this
+				tp->id= tselem->id;
+			}
+			/* keep beginning of list */
+			for(tp= tear, skip=0; skip<totelem; skip++, tp++)
+				if(tp->idcode) break;
+			
+			if(skip<totelem)
+				qsort(tear+skip, totelem-skip, sizeof(tTreeSort), treesort_alpha);
+			
+			lb->first=lb->last= NULL;
+			tp= tear;
+			while(totelem--) {
+				BLI_addtail(lb, tp->te);
+				tp++;
+			}
+			MEM_freeN(tear);
+		}
+	}
+	
+	for(te= lb->first; te; te= te->next) {
+		outliner_sort(soops, &te->subtree);
+	}
+}
+
+/* Filtering ----------------------------------------------- */
+
+static int outliner_filter_has_name(TreeElement *te, const char *name, int flags)
+{
+#if 0
+	int found= 0;
+	
+	/* determine if match */
+	if (flags & SO_FIND_CASE_SENSITIVE) {
+		if (flags & SO_FIND_COMPLETE)
+			found= strcmp(te->name, name) == 0;
+		else
+			found= strstr(te->name, name) != NULL;
+	}
+	else {
+		if (flags & SO_FIND_COMPLETE)
+			found= BLI_strcasecmp(te->name, name) == 0;
+		else
+			found= BLI_strcasestr(te->name, name) != NULL;
+	}
+#else
+	
+	int fn_flag= 0;
+	int found= 0;
+	
+	if ((flags & SO_FIND_CASE_SENSITIVE) == 0)
+		fn_flag |= FNM_CASEFOLD;
+
+	if (flags & SO_FIND_COMPLETE) {
+		found= fnmatch(name, te->name, fn_flag)==0;
+	}
+	else {
+		char fn_name[sizeof(((struct SpaceOops *)NULL)->search_string) + 2];
+		sprintf(fn_name, "*%s*", name);
+		found= fnmatch(fn_name, te->name, fn_flag)==0;
+	}
+	return found;
+#endif
+}
+
+static int outliner_filter_tree(SpaceOops *soops, ListBase *lb)
+{
+	TreeElement *te, *ten;
+	TreeStoreElem *tselem;
+	
+	/* although we don't have any search string, we return TRUE 
+	 * since the entire tree is ok then...
+	 */
+	if (soops->search_string[0]==0) 
+		return 1;
+
+	for (te= lb->first; te; te= ten) {
+		ten= te->next;
+		
+		if (0==outliner_filter_has_name(te, soops->search_string, soops->search_flags)) {
+			/* item isn't something we're looking for, but...
+			 * 	- if the subtree is expanded, check if there are any matches that can be easily found
+			 *		so that searching for "cu" in the default scene will still match the Cube
+			 *	- otherwise, we can't see within the subtree and the item doesn't match,
+			 *		so these can be safely ignored (i.e. the subtree can get freed)
+			 */
+			tselem= TREESTORE(te);
+			
+			if ((tselem->flag & TSE_CLOSED) || outliner_filter_tree(soops, &te->subtree)==0) { 
+				outliner_free_tree(&te->subtree);
+				BLI_remlink(lb, te);
+				
+				if(te->flag & TE_FREE_NAME) MEM_freeN((void *)te->name);
+				MEM_freeN(te);
+			}
+		}
+		else {
+			/* filter subtree too */
+			outliner_filter_tree(soops, &te->subtree);
+		}
+	}
+	
+	/* if there are still items in the list, that means that there were still some matches */
+	return (lb->first != NULL);
+}
+
+/* ======================================================= */
+/* Main Tree Building API */
+
+/* Main entry point for building the tree data-structure that the outliner represents */
+// TODO: split each mode into its own function?
+void outliner_build_tree(Main *mainvar, Scene *scene, SpaceOops *soops)
+{
+	Base *base;
+	Object *ob;
+	TreeElement *te=NULL, *ten;
+	TreeStoreElem *tselem;
+	int show_opened= (soops->treestore==NULL); /* on first view, we open scenes */
+
+	if(soops->tree.first && (soops->storeflag & SO_TREESTORE_REDRAW))
+		return;
+
+	outliner_free_tree(&soops->tree);
+	outliner_storage_cleanup(soops);
+	
+	/* clear ob id.new flags */
+	for(ob= mainvar->object.first; ob; ob= ob->id.next) ob->id.newid= NULL;
+	
+	/* options */
+	if(soops->outlinevis == SO_LIBRARIES) {
+		Library *lib;
+		
+		for(lib= mainvar->library.first; lib; lib= lib->id.next) {
+			ten= outliner_add_element(soops, &soops->tree, lib, NULL, 0, 0);
+			lib->id.newid= (ID *)ten;
+		}
+		/* make hierarchy */
+		ten= soops->tree.first;
+		while(ten) {
+			TreeElement *nten= ten->next, *par;
+			tselem= TREESTORE(ten);
+			lib= (Library *)tselem->id;
+			if(lib->parent) {
+				BLI_remlink(&soops->tree, ten);
+				par= (TreeElement *)lib->parent->id.newid;
+				BLI_addtail(&par->subtree, ten);
+				ten->parent= par;
+			}
+			ten= nten;
+		}
+		/* restore newid pointers */
+		for(lib= mainvar->library.first; lib; lib= lib->id.next)
+			lib->id.newid= NULL;
+		
+	}
+	else if(soops->outlinevis == SO_ALL_SCENES) {
+		Scene *sce;
+		for(sce= mainvar->scene.first; sce; sce= sce->id.next) {
+			te= outliner_add_element(soops, &soops->tree, sce, NULL, 0, 0);
+			tselem= TREESTORE(te);
+			if(sce==scene && show_opened) 
+				tselem->flag &= ~TSE_CLOSED;
+			
+			for(base= sce->base.first; base; base= base->next) {
+				ten= outliner_add_element(soops, &te->subtree, base->object, te, 0, 0);
+				ten->directdata= base;
+			}
+			outliner_make_hierarchy(soops, &te->subtree);
+			/* clear id.newid, to prevent objects be inserted in wrong scenes (parent in other scene) */
+			for(base= sce->base.first; base; base= base->next) base->object->id.newid= NULL;
+		}
+	}
+	else if(soops->outlinevis == SO_CUR_SCENE) {
+		
+		outliner_add_scene_contents(soops, &soops->tree, scene, NULL);
+		
+		for(base= scene->base.first; base; base= base->next) {
+			ten= outliner_add_element(soops, &soops->tree, base->object, NULL, 0, 0);
+			ten->directdata= base;
+		}
+		outliner_make_hierarchy(soops, &soops->tree);
+	}
+	else if(soops->outlinevis == SO_VISIBLE) {
+		for(base= scene->base.first; base; base= base->next) {
+			if(base->lay & scene->lay)
+				outliner_add_element(soops, &soops->tree, base->object, NULL, 0, 0);
+		}
+		outliner_make_hierarchy(soops, &soops->tree);
+	}
+	else if(soops->outlinevis == SO_GROUPS) {
+		Group *group;
+		GroupObject *go;
+		
+		for(group= mainvar->group.first; group; group= group->id.next) {
+			if(group->gobject.first) {
+				te= outliner_add_element(soops, &soops->tree, group, NULL, 0, 0);
+				
+				for(go= group->gobject.first; go; go= go->next) {
+					ten= outliner_add_element(soops, &te->subtree, go->ob, te, 0, 0);
+					ten->directdata= NULL; /* eh, why? */
+				}
+				outliner_make_hierarchy(soops, &te->subtree);
+				/* clear id.newid, to prevent objects be inserted in wrong scenes (parent in other scene) */
+				for(go= group->gobject.first; go; go= go->next) go->ob->id.newid= NULL;
+			}
+		}
+	}
+	else if(soops->outlinevis == SO_SAME_TYPE) {
+		Object *ob= OBACT;
+		if(ob) {
+			for(base= scene->base.first; base; base= base->next) {
+				if(base->object->type==ob->type) {
+					ten= outliner_add_element(soops, &soops->tree, base->object, NULL, 0, 0);
+					ten->directdata= base;
+				}
+			}
+			outliner_make_hierarchy(soops, &soops->tree);
+		}
+	}
+	else if(soops->outlinevis == SO_SELECTED) {
+		for(base= scene->base.first; base; base= base->next) {
+			if(base->lay & scene->lay) {
+				if(base==BASACT || (base->flag & SELECT)) {
+					ten= outliner_add_element(soops, &soops->tree, base->object, NULL, 0, 0);
+					ten->directdata= base;
+				}
+			}
+		}
+		outliner_make_hierarchy(soops, &soops->tree);
+	}
+	else if(soops->outlinevis==SO_SEQUENCE) {
+		Sequence *seq;
+		Editing *ed= seq_give_editing(scene, FALSE);
+		int op;
+
+		if(ed==NULL)
+			return;
+
+		seq= ed->seqbasep->first;
+		if(!seq)
+			return;
+
+		while(seq) {
+			op= need_add_seq_dup(seq);
+			if(op==1)
+				ten= outliner_add_element(soops, &soops->tree, (void*)seq, NULL, TSE_SEQUENCE, 0);
+			else if(op==0) {
+				ten= outliner_add_element(soops, &soops->tree, (void*)seq, NULL, TSE_SEQUENCE_DUP, 0);
+				outliner_add_seq_dup(soops, seq, ten, 0);
+			}
+			seq= seq->next;
+		}
+	}
+	else if(soops->outlinevis==SO_DATABLOCKS) {
+		PointerRNA mainptr;
+
+		RNA_main_pointer_create(mainvar, &mainptr);
+
+		ten= outliner_add_element(soops, &soops->tree, (void*)&mainptr, NULL, TSE_RNA_STRUCT, -1);
+
+		if(show_opened)  {
+			tselem= TREESTORE(ten);
+			tselem->flag &= ~TSE_CLOSED;
+		}
+	}
+	else if(soops->outlinevis==SO_USERDEF) {
+		PointerRNA userdefptr;
+
+		RNA_pointer_create(NULL, &RNA_UserPreferences, &U, &userdefptr);
+
+		ten= outliner_add_element(soops, &soops->tree, (void*)&userdefptr, NULL, TSE_RNA_STRUCT, -1);
+
+		if(show_opened)  {
+			tselem= TREESTORE(ten);
+			tselem->flag &= ~TSE_CLOSED;
+		}
+	}
+	else if(soops->outlinevis==SO_KEYMAP) {
+		wmWindowManager *wm= mainvar->wm.first;
+		wmKeyMap *km;
+		
+		for(km= wm->defaultconf->keymaps.first; km; km= km->next) {
+			ten= outliner_add_element(soops, &soops->tree, (void*)km, NULL, TSE_KEYMAP, 0);
+		}
+	}
+	else {
+		ten= outliner_add_element(soops, &soops->tree, OBACT, NULL, 0, 0);
+		if(ten) ten->directdata= BASACT;
+	}
+
+	outliner_sort(soops, &soops->tree);
+	outliner_filter_tree(soops, &soops->tree);
+}
+
+
diff --git a/source/blender/editors/space_outliner/space_outliner.c b/source/blender/editors/space_outliner/space_outliner.c
index 13b186b174b0805250cd8b0b3275493ee0986329..603be557a3c6783d542448bd3f2a3ea12627f3e9 100644
--- a/source/blender/editors/space_outliner/space_outliner.c
+++ b/source/blender/editors/space_outliner/space_outliner.c
@@ -179,6 +179,13 @@ static void outliner_main_area_listener(ARegion *ar, wmNotifier *wmn)
 					break;
 			}
 			break;
+		case NC_ANIMATION:
+			switch(wmn->data) {
+				case ND_NLA_ACTCHANGE:
+					ED_region_tag_redraw(ar);
+					break;
+			}
+			break;
 	}
 	
 }
diff --git a/source/blender/editors/space_sequencer/sequencer_add.c b/source/blender/editors/space_sequencer/sequencer_add.c
index b105b2507ab8aaca0f63feec3f1bbe9dab58b189..14004e7fbba57b20d97ff524ac98807b2fd9ba3a 100644
--- a/source/blender/editors/space_sequencer/sequencer_add.c
+++ b/source/blender/editors/space_sequencer/sequencer_add.c
@@ -83,9 +83,8 @@
 /* avoid passing multiple args and be more verbose */
 #define SEQPROP_STARTFRAME	(1<<0)
 #define SEQPROP_ENDFRAME	(1<<1)
-#define SEQPROP_FILES		(1<<2)
-#define SEQPROP_NOPATHS		(1<<3)
-#define SEQPROP_NOCHAN		(1<<4)
+#define SEQPROP_NOPATHS		(1<<2)
+#define SEQPROP_NOCHAN		(1<<3)
 
 #define SELECT 1
 
@@ -102,9 +101,6 @@ static void sequencer_generic_props__internal(wmOperatorType *ot, int flag)
 	RNA_def_boolean(ot->srna, "replace_sel", 1, "Replace Selection", "replace the current selection");
 
 	RNA_def_boolean(ot->srna, "overlap", 0, "Allow Overlap", "Don't correct overlap on new sequence strips");
-
-	if(flag & SEQPROP_FILES)
-		RNA_def_collection_runtime(ot->srna, "files", &RNA_OperatorFileListElement, "Files", "");
 }
 
 static void sequencer_generic_invoke_path__internal(bContext *C, wmOperator *op, const char *identifier)
@@ -411,8 +407,8 @@ void SEQUENCER_OT_movie_strip_add(struct wmOperatorType *ot)
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
 	
-	WM_operator_properties_filesel(ot, FOLDERFILE|MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH|WM_FILESEL_RELPATH);
-	sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME|SEQPROP_FILES);
+	WM_operator_properties_filesel(ot, FOLDERFILE|MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH|WM_FILESEL_RELPATH|WM_FILESEL_FILES);
+	sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME);
 	RNA_def_boolean(ot->srna, "sound", TRUE, "Sound", "Load sound with the movie");
 }
 
@@ -466,8 +462,8 @@ void SEQUENCER_OT_sound_strip_add(struct wmOperatorType *ot)
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
 	
-	WM_operator_properties_filesel(ot, FOLDERFILE|SOUNDFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH|WM_FILESEL_RELPATH);
-	sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME|SEQPROP_FILES);
+	WM_operator_properties_filesel(ot, FOLDERFILE|SOUNDFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH|WM_FILESEL_RELPATH|WM_FILESEL_FILES);
+	sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME);
 	RNA_def_boolean(ot->srna, "cache", FALSE, "Cache", "Cache the sound in memory.");
 }
 
@@ -573,8 +569,8 @@ void SEQUENCER_OT_image_strip_add(struct wmOperatorType *ot)
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
 	
-	WM_operator_properties_filesel(ot, FOLDERFILE|IMAGEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_DIRECTORY|WM_FILESEL_RELPATH);
-	sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME|SEQPROP_ENDFRAME|SEQPROP_FILES);
+	WM_operator_properties_filesel(ot, FOLDERFILE|IMAGEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_DIRECTORY|WM_FILESEL_RELPATH|WM_FILESEL_FILES);
+	sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME|SEQPROP_ENDFRAME);
 }
 
 
diff --git a/source/blender/editors/space_sequencer/sequencer_draw.c b/source/blender/editors/space_sequencer/sequencer_draw.c
index 98687bb90e01c67bc69635f43b7065fb0161311d..dc84289a8de17f6ab7c0a473dc5b752fe34e0f9f 100644
--- a/source/blender/editors/space_sequencer/sequencer_draw.c
+++ b/source/blender/editors/space_sequencer/sequencer_draw.c
@@ -702,7 +702,7 @@ static void draw_seq_strip(Scene *scene, ARegion *ar, Sequence *seq, int outline
 
 static Sequence *special_seq_update= 0;
 
-static void set_special_seq_update(int val)
+static void UNUSED_FUNCTION(set_special_seq_update)(int val)
 {
 //	int x;
 
diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c
index 6a69d32d307fb83b11116a23eebaa7876c848de3..5429f0ee98fd3b68da5b82ed27b6e8fb981624ed 100644
--- a/source/blender/editors/space_sequencer/sequencer_edit.c
+++ b/source/blender/editors/space_sequencer/sequencer_edit.c
@@ -75,10 +75,6 @@
 /* own include */
 #include "sequencer_intern.h"
 
-static void error(const char *UNUSED(dummy)) {}
-static void waitcursor(int UNUSED(val)) {}
-static void activate_fileselect(int UNUSED(d1), const char *UNUSED(d2), const char *UNUSED(d3), void *UNUSED(d4)) {}
-static int pupmenu(const char *UNUSED(dummy)) {return 0;}
 static int okee(const char *UNUSED(dummy)) {return 0;}
 
 
@@ -139,7 +135,7 @@ void seq_rectf(Sequence *seq, rctf *rectf)
 	rectf->ymax= seq->machine+SEQ_STRIP_OFSTOP;
 }
 
-static void change_plugin_seq(Scene *scene, char *str)	/* called from fileselect */
+static void UNUSED_FUNCTION(change_plugin_seq)(Scene *scene, char *str) /* called from fileselect */
 {
 	Editing *ed= seq_give_editing(scene, FALSE);
 	struct SeqEffectHandle sh;
@@ -392,205 +388,6 @@ void recurs_sel_seq(Sequence *seqm)
 	}
 }
 
-int event_to_efftype(int event)
-{
-	if(event==2) return SEQ_CROSS;
-	if(event==3) return SEQ_GAMCROSS;
-	if(event==4) return SEQ_ADD;
-	if(event==5) return SEQ_SUB;
-	if(event==6) return SEQ_MUL;
-	if(event==7) return SEQ_ALPHAOVER;
-	if(event==8) return SEQ_ALPHAUNDER;
-	if(event==9) return SEQ_OVERDROP;
-	if(event==10) return SEQ_PLUGIN;
-	if(event==13) return SEQ_WIPE;
-	if(event==14) return SEQ_GLOW;
-	if(event==15) return SEQ_TRANSFORM;
-	if(event==16) return SEQ_COLOR;
-	if(event==17) return SEQ_SPEED;
-	if(event==18) return SEQ_ADJUSTMENT;
-	return 0;
-}
-
-#if 0
-static void reload_sound_strip(Scene *scene, char *name)
-{
-	Editing *ed;
-	Sequence *seq, *seqact;
-	SpaceFile *sfile;
-	Sequence *last_seq= seq_active_get(scene);
-
-	ed= scene->ed;
-
-	if(last_seq==0 || last_seq->type!=SEQ_SOUND) return;
-	seqact= last_seq;	/* last_seq changes in alloc_sequence */
-
-	/* search sfile */
-//	sfile= scrarea_find_space_of_type(curarea, SPACE_FILE);
-	if(sfile==0) return;
-
-	waitcursor(1);
-
-	seq = sfile_to_snd_sequence(sfile, seqact->start, seqact->machine);
-	printf("seq->type: %i\n", seq->type);
-	if(seq && seq!=seqact) {
-		/* i'm not sure about this one, seems to work without it -- sgefant */
-		seq_free_strip(seqact->strip);
-
-		seqact->strip= seq->strip;
-
-		seqact->len= seq->len;
-		calc_sequence(scene, seqact);
-
-		seq->strip= 0;
-		seq_free_sequence(scene, seq);
-		BLI_remlink(ed->seqbasep, seq);
-
-		seq= ed->seqbasep->first;
-
-	}
-
-	waitcursor(0);
-
-}
-#endif
-
-static void reload_image_strip(Scene *scene, char *UNUSED(name))
-{
-	Editing *ed= seq_give_editing(scene, FALSE);
-	Sequence *seq=NULL, *seqact;
-	SpaceFile *sfile=NULL;
-	Sequence *last_seq= seq_active_get(scene);
-
-
-
-	if(last_seq==NULL || last_seq->type!=SEQ_IMAGE) return;
-	seqact= last_seq;	/* last_seq changes in alloc_sequence */
-
-	/* search sfile */
-//	sfile= scrarea_find_space_of_type(curarea, SPACE_FILE);
-	if(sfile == NULL) return;
-
-	waitcursor(1);
-
-//	seq= sfile_to_sequence(scene, sfile, seqact->start, seqact->machine, 1); // XXX ADD BACK
-	if(seq && seq!=seqact) {
-		seq_free_strip(seqact->strip);
-
-		seqact->strip= seq->strip;
-
-		seqact->len= seq->len;
-		calc_sequence(scene, seqact);
-
-		seq->strip= NULL;
-		seq_free_sequence(scene, seq);
-		BLI_remlink(ed->seqbasep, seq);
-
-		update_changed_seq_and_deps(scene, seqact, 1, 1);
-	}
-	waitcursor(0);
-
-}
-
-
-static void change_sequence(Scene *scene)
-{
-	Editing *ed= seq_give_editing(scene, FALSE);
-	Sequence *last_seq= seq_active_get(scene);
-	Scene *sce;
-	short event;
-
-	if(last_seq == NULL) return;
-
-	if(last_seq->type & SEQ_EFFECT) {
-		event = pupmenu("Change Effect%t"
-				"|Switch A <-> B %x1"
-				"|Switch B <-> C %x10"
-				"|Plugin%x11"
-				"|Recalculate%x12"
-				"|Cross%x2"
-				"|Gamma Cross%x3"
-				"|Add%x4"
-				"|Sub%x5"
-				"|Mul%x6"
-				"|Alpha Over%x7"
-				"|Alpha Under%x8"
-				"|Alpha Over Drop%x9"
-				"|Wipe%x13"
-				"|Glow%x14"
-				"|Transform%x15"
-				"|Color Generator%x16"
-				"|Speed Control%x17"
-				"|Adjustment Layer%x18");
-		if(event > 0) {
-			if(event==1) {
-				SWAP(Sequence *,last_seq->seq1,last_seq->seq2);
-			}
-			else if(event==10) {
-				SWAP(Sequence *,last_seq->seq2,last_seq->seq3);
-			}
-			else if(event==11) {
-				activate_fileselect(
-					FILE_SPECIAL, "Select Plugin", 
-					U.plugseqdir, change_plugin_seq);
-			}
-			else if(event==12);	
-								/* recalculate: only new_stripdata */
-			else {
-				/* free previous effect and init new effect */
-				struct SeqEffectHandle sh;
-
-				if (get_sequence_effect_num_inputs(
-						last_seq->type)
-					< get_sequence_effect_num_inputs(
-						event_to_efftype(event))) {
-					error("New effect needs more "
-						  "input strips!");
-				} else {
-					sh = get_sequence_effect(last_seq);
-					sh.free(last_seq);
-					
-					last_seq->type 
-						= event_to_efftype(event);
-					
-					sh = get_sequence_effect(last_seq);
-					sh.init(last_seq);
-				}
-			}
-
-			update_changed_seq_and_deps(scene, last_seq, 0, 1);
-		}
-	}
-	else if(last_seq->type == SEQ_IMAGE) {
-		if(okee("Change images")) {
-			activate_fileselect(FILE_SPECIAL, 
-						"Select Images", 
-						ed->act_imagedir, 
-						reload_image_strip);
-		}
-	}
-	else if(last_seq->type == SEQ_MOVIE) {
-		;
-	}
-	else if(last_seq->type == SEQ_SCENE) {
-		event= pupmenu("Change Scene%t|Update Start and End");
-
-		if(event==1) {
-			sce= last_seq->scene;
-
-			last_seq->len= sce->r.efra - sce->r.sfra + 1;
-			last_seq->sfra= sce->r.sfra;
-			
-			/* bad code to change seq->len? update_changed_seq_and_deps() expects the strip->len to be OK */
-			new_tstripdata(last_seq);
-			
-			update_changed_seq_and_deps(scene, last_seq, 1, 1);
-
-		}
-	}
-
-}
-
 int seq_effect_find_selected(Scene *scene, Sequence *activeseq, int type, Sequence **selseq1, Sequence **selseq2, Sequence **selseq3, const char **error_str)
 {
 	Editing *ed = seq_give_editing(scene, FALSE);
@@ -961,7 +758,7 @@ static int insert_gap(Scene *scene, int gap, int cfra)
 	return done;
 }
 
-static void touch_seq_files(Scene *scene)
+static void UNUSED_FUNCTION(touch_seq_files)(Scene *scene)
 {
 	Sequence *seq;
 	Editing *ed= seq_give_editing(scene, FALSE);
@@ -973,7 +770,7 @@ static void touch_seq_files(Scene *scene)
 
 	if(okee("Touch and print selected movies")==0) return;
 
-	waitcursor(1);
+	WM_cursor_wait(1);
 
 	SEQP_BEGIN(ed, seq) {
 		if(seq->flag & SELECT) {
@@ -988,7 +785,7 @@ static void touch_seq_files(Scene *scene)
 	}
 	SEQ_END
 
-	waitcursor(0);
+	WM_cursor_wait(0);
 }
 
 /*
@@ -1016,7 +813,7 @@ static void set_filter_seq(Scene *scene)
 }
 */
 
-static void seq_remap_paths(Scene *scene)
+static void UNUSED_FUNCTION(seq_remap_paths)(Scene *scene)
 {
 	Sequence *seq, *last_seq = seq_active_get(scene);
 	Editing *ed= seq_give_editing(scene, FALSE);
@@ -1057,7 +854,7 @@ static void seq_remap_paths(Scene *scene)
 }
 
 
-static void no_gaps(Scene *scene)
+static void UNUSED_FUNCTION(no_gaps)(Scene *scene)
 {
 	Editing *ed= seq_give_editing(scene, FALSE);
 	int cfra, first= 0, done;
@@ -1103,6 +900,19 @@ int sequencer_edit_poll(bContext *C)
 	return (seq_give_editing(CTX_data_scene(C), FALSE) != NULL);
 }
 
+int sequencer_strip_poll(bContext *C)
+{
+	Editing *ed;
+	return (((ed= seq_give_editing(CTX_data_scene(C), FALSE)) != NULL) && (ed->act_seq != NULL));
+}
+
+int sequencer_strip_has_path_poll(bContext *C)
+{
+	Editing *ed;
+	Sequence *seq;
+	return (((ed= seq_give_editing(CTX_data_scene(C), FALSE)) != NULL) && ((seq= ed->act_seq) != NULL) && (SEQ_HAS_PATH(seq)));
+}
+
 int sequencer_view_poll(bContext *C)
 {
 	SpaceSeq *sseq= CTX_wm_space_seq(C);
@@ -1755,6 +1565,58 @@ void SEQUENCER_OT_delete(wmOperatorType *ot)
 }
 
 
+/* offset clear operator */
+static int sequencer_offset_clear_exec(bContext *C, wmOperator *UNUSED(op))
+{
+	Scene *scene= CTX_data_scene(C);
+	Editing *ed= seq_give_editing(scene, FALSE);
+	Sequence *seq;
+
+	/* for effects, try to find a replacement input */
+	for(seq=ed->seqbasep->first; seq; seq=seq->next) {
+		if((seq->type & SEQ_EFFECT)==0 && (seq->flag & SELECT)) {
+			seq->startofs= seq->endofs= seq->startstill= seq->endstill= 0;
+		}
+	}
+
+	/* updates lengths etc */
+	seq= ed->seqbasep->first;
+	while(seq) {
+		calc_sequence(scene, seq);
+		seq= seq->next;
+	}
+
+	for(seq=ed->seqbasep->first; seq; seq=seq->next) {
+		if((seq->type & SEQ_EFFECT)==0 && (seq->flag & SELECT)) {
+			if(seq_test_overlap(ed->seqbasep, seq)) {
+				shuffle_seq(ed->seqbasep, seq, scene);
+			}
+		}
+	}
+
+	WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
+
+	return OPERATOR_FINISHED;
+}
+
+
+void SEQUENCER_OT_offset_clear(wmOperatorType *ot)
+{
+
+	/* identifiers */
+	ot->name= "Clear Strip Offset";
+	ot->idname= "SEQUENCER_OT_offset_clear";
+	ot->description="Clear strip offsets from the start and end frames";
+
+	/* api callbacks */
+	ot->exec= sequencer_offset_clear_exec;
+	ot->poll= sequencer_edit_poll;
+
+	/* flags */
+	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+
 /* separate_images operator */
 static int sequencer_separate_images_exec(bContext *C, wmOperator *op)
 {
@@ -2830,3 +2692,230 @@ void SEQUENCER_OT_view_ghost_border(wmOperatorType *ot)
 	/* rna */
 	WM_operator_properties_gesture_border(ot, FALSE);
 }
+
+
+/* change ops */
+
+static EnumPropertyItem prop_change_effect_input_types[] = {
+	{0, "A_B", 0, "A -> B", ""},
+	{1, "B_C", 0, "B -> C", ""},
+	{2, "A_C", 0, "A -> C", ""},
+	{0, NULL, 0, NULL, NULL}
+};
+
+static int sequencer_change_effect_input_exec(bContext *C, wmOperator *op)
+{
+	Scene *scene= CTX_data_scene(C);
+	Editing *ed= seq_give_editing(scene, FALSE);
+	Sequence *seq= seq_active_get(scene);
+
+	Sequence **seq_1, **seq_2;
+
+	switch(RNA_enum_get(op->ptr, "swap")) {
+		case 0:
+			seq_1= &seq->seq1;
+			seq_2= &seq->seq2;
+			break;
+		case 1:
+			seq_1= &seq->seq2;
+			seq_2= &seq->seq3;
+			break;
+		default: /* 2 */
+			seq_1= &seq->seq1;
+			seq_2= &seq->seq3;
+			break;
+	}
+
+	if(*seq_1 == NULL || *seq_2 == NULL) {
+		BKE_report(op->reports, RPT_ERROR, "One of the effect inputs is unset, can't swap");
+		return OPERATOR_CANCELLED;
+	}
+	else {
+		SWAP(Sequence *, *seq_1, *seq_2);
+	}
+
+	update_changed_seq_and_deps(scene, seq, 0, 1);
+
+	/* important else we dont get the imbuf cache flushed */
+	free_imbuf_seq(scene, &ed->seqbase, FALSE, FALSE);
+
+	WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
+
+	return OPERATOR_FINISHED;
+}
+
+void SEQUENCER_OT_change_effect_input(struct wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Change Effect Input";
+	ot->idname= "SEQUENCER_OT_change_effect_input";
+	ot->description="";
+
+	/* api callbacks */
+	ot->exec= sequencer_change_effect_input_exec;
+	ot->poll= sequencer_effect_poll;
+
+	/* flags */
+	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+	ot->prop= RNA_def_enum(ot->srna, "swap", prop_change_effect_input_types, 0, "Swap", "The effect inputs to swap");
+}
+
+static int sequencer_change_effect_type_exec(bContext *C, wmOperator *op)
+{
+	Scene *scene= CTX_data_scene(C);
+	Editing *ed= seq_give_editing(scene, FALSE);
+	Sequence *seq= seq_active_get(scene);
+	const int new_type= RNA_enum_get(op->ptr, "type");
+
+	/* free previous effect and init new effect */
+	struct SeqEffectHandle sh;
+
+	if ((seq->type & SEQ_EFFECT) == 0) {
+		return OPERATOR_CANCELLED;
+	}
+
+	/* can someone explain the logic behind only allowing to increse this,
+	 * copied from 2.4x - campbell */
+	if (get_sequence_effect_num_inputs(seq->type) <
+		get_sequence_effect_num_inputs(new_type)
+	) {
+		BKE_report(op->reports, RPT_ERROR, "New effect needs more input strips");
+		return OPERATOR_CANCELLED;
+	}
+	else {
+		sh = get_sequence_effect(seq);
+		sh.free(seq);
+
+		seq->type= new_type;
+
+		sh = get_sequence_effect(seq);
+		sh.init(seq);
+	}
+
+	/* update */
+	update_changed_seq_and_deps(scene, seq, 0, 1);
+
+	/* important else we dont get the imbuf cache flushed */
+	free_imbuf_seq(scene, &ed->seqbase, FALSE, FALSE);
+
+	WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
+
+	return OPERATOR_FINISHED;
+}
+
+void SEQUENCER_OT_change_effect_type(struct wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Change Effect Type";
+	ot->idname= "SEQUENCER_OT_change_effect_type";
+	ot->description="";
+
+	/* api callbacks */
+	ot->exec= sequencer_change_effect_type_exec;
+	ot->poll= sequencer_effect_poll;
+
+	/* flags */
+	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+	ot->prop= RNA_def_enum(ot->srna, "type", sequencer_prop_effect_types, SEQ_CROSS, "Type", "Sequencer effect type");
+}
+
+static int sequencer_change_path_exec(bContext *C, wmOperator *op)
+{
+	Scene *scene= CTX_data_scene(C);
+	Editing *ed= seq_give_editing(scene, FALSE);
+	Sequence *seq= seq_active_get(scene);
+
+	if(seq->type == SEQ_IMAGE) {
+		char directory[FILE_MAX];
+		const int len= RNA_property_collection_length(op->ptr, RNA_struct_find_property(op->ptr, "files"));
+		StripElem *se;
+
+		if(len==0)
+			return OPERATOR_CANCELLED;
+
+		RNA_string_get(op->ptr, "directory", directory);
+		BLI_strncpy(seq->strip->dir, directory, sizeof(seq->strip->dir));
+
+		if(seq->strip->stripdata) {
+			MEM_freeN(seq->strip->stripdata);
+		}
+		seq->strip->stripdata= se= MEM_callocN(len*sizeof(StripElem), "stripelem");
+
+		RNA_BEGIN(op->ptr, itemptr, "files") {
+			char *filename= RNA_string_get_alloc(&itemptr, "name", NULL, 0);
+			BLI_strncpy(se->name, filename, sizeof(se->name));
+			MEM_freeN(filename);
+			se++;
+		}
+		RNA_END;
+
+		/* reset these else we wont see all the images */
+		seq->anim_startofs= seq->anim_endofs= 0;
+
+		/* correct start/end frames so we dont move
+		 * important not to set seq->len= len; allow the function to handle it */
+		reload_sequence_new_file(scene, seq, TRUE);
+
+		calc_sequence(scene, seq);
+
+		/* important else we dont get the imbuf cache flushed */
+		free_imbuf_seq(scene, &ed->seqbase, FALSE, FALSE);
+	}
+	else {
+		/* lame, set rna filepath */
+		PointerRNA seq_ptr;
+		PropertyRNA *prop;
+		char filepath[FILE_MAX];
+
+		RNA_pointer_create(&scene->id, &RNA_Sequence, seq, &seq_ptr);
+
+		RNA_string_get(op->ptr, "filepath", filepath);
+		prop= RNA_struct_find_property(&seq_ptr, "filepath");
+		RNA_property_string_set(&seq_ptr, prop, filepath);
+		RNA_property_update(C, &seq_ptr, prop);
+	}
+
+	WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
+
+	return OPERATOR_FINISHED;
+}
+
+static int sequencer_change_path_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
+{
+	Scene *scene= CTX_data_scene(C);
+	Sequence *seq= seq_active_get(scene);
+
+	RNA_string_set(op->ptr, "directory", seq->strip->dir);
+
+	/* set default display depending on seq type */
+	if(seq->type == SEQ_IMAGE) {
+		RNA_boolean_set(op->ptr, "filter_movie", 0);
+	}
+	else {
+		RNA_boolean_set(op->ptr, "filter_image", 0);
+	}
+
+	WM_event_add_fileselect(C, op);
+
+	return OPERATOR_RUNNING_MODAL;
+}
+
+void SEQUENCER_OT_change_path(struct wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Change Data/Files";
+	ot->idname= "SEQUENCER_OT_change_path";
+	ot->description="";
+
+	/* api callbacks */
+	ot->exec= sequencer_change_path_exec;
+	ot->invoke= sequencer_change_path_invoke;
+	ot->poll= sequencer_strip_has_path_poll;
+
+	/* flags */
+	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+	WM_operator_properties_filesel(ot, FOLDERFILE|IMAGEFILE|MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_DIRECTORY|WM_FILESEL_RELPATH|WM_FILESEL_FILEPATH|WM_FILESEL_FILES);
+}
diff --git a/source/blender/editors/space_sequencer/sequencer_intern.h b/source/blender/editors/space_sequencer/sequencer_intern.h
index 209b39662aaf894e95bc390e9dd903c8e94a0f02..7ab76f9b6d7e6043b2907009e52d6c1392dbfcdc 100644
--- a/source/blender/editors/space_sequencer/sequencer_intern.h
+++ b/source/blender/editors/space_sequencer/sequencer_intern.h
@@ -70,6 +70,8 @@ int seq_effect_find_selected(struct Scene *scene, struct Sequence *activeseq, in
 
 /* operator helpers */
 int sequencer_edit_poll(struct bContext *C);
+int sequencer_strip_poll(struct bContext *C);
+int sequencer_strip_has_path_poll(struct bContext *C);
 int sequencer_view_poll(struct bContext *C);
 
 /* externs */
@@ -91,6 +93,7 @@ void SEQUENCER_OT_reassign_inputs(struct wmOperatorType *ot);
 void SEQUENCER_OT_swap_inputs(struct wmOperatorType *ot);
 void SEQUENCER_OT_duplicate(struct wmOperatorType *ot);
 void SEQUENCER_OT_delete(struct wmOperatorType *ot);
+void SEQUENCER_OT_offset_clear(struct wmOperatorType *ot);
 void SEQUENCER_OT_images_separate(struct wmOperatorType *ot);
 void SEQUENCER_OT_meta_toggle(struct wmOperatorType *ot);
 void SEQUENCER_OT_meta_make(struct wmOperatorType *ot);
@@ -108,6 +111,10 @@ void SEQUENCER_OT_view_selected(struct wmOperatorType *ot);
 void SEQUENCER_OT_view_zoom_ratio(struct wmOperatorType *ot);
 void SEQUENCER_OT_view_ghost_border(struct wmOperatorType *ot);
 
+void SEQUENCER_OT_change_effect_input(struct wmOperatorType *ot);
+void SEQUENCER_OT_change_effect_type(struct wmOperatorType *ot);
+void SEQUENCER_OT_change_path(struct wmOperatorType *ot);
+
 void SEQUENCER_OT_copy(struct wmOperatorType *ot);
 void SEQUENCER_OT_paste(struct wmOperatorType *ot);
 
diff --git a/source/blender/editors/space_sequencer/sequencer_ops.c b/source/blender/editors/space_sequencer/sequencer_ops.c
index f5c26cb17d3308818fb6a63673db555ae1d22caf..df33ce73b9c3879f0792768834a78eb9c4eb534f 100644
--- a/source/blender/editors/space_sequencer/sequencer_ops.c
+++ b/source/blender/editors/space_sequencer/sequencer_ops.c
@@ -68,6 +68,7 @@ void sequencer_operatortypes(void)
 	WM_operatortype_append(SEQUENCER_OT_swap_inputs);
 	WM_operatortype_append(SEQUENCER_OT_duplicate);
 	WM_operatortype_append(SEQUENCER_OT_delete);
+	WM_operatortype_append(SEQUENCER_OT_offset_clear);
 	WM_operatortype_append(SEQUENCER_OT_images_separate);
 	WM_operatortype_append(SEQUENCER_OT_meta_toggle);
 	WM_operatortype_append(SEQUENCER_OT_meta_make);
@@ -86,6 +87,10 @@ void sequencer_operatortypes(void)
 	WM_operatortype_append(SEQUENCER_OT_view_zoom_ratio);
 	WM_operatortype_append(SEQUENCER_OT_view_ghost_border);
 
+	WM_operatortype_append(SEQUENCER_OT_change_effect_input);
+	WM_operatortype_append(SEQUENCER_OT_change_effect_type);
+	WM_operatortype_append(SEQUENCER_OT_change_path);
+
 	/* sequencer_select.c */
 	WM_operatortype_append(SEQUENCER_OT_select_all_toggle);
 	WM_operatortype_append(SEQUENCER_OT_select_inverse);
@@ -145,6 +150,8 @@ void sequencer_keymap(wmKeyConfig *keyconf)
 	WM_keymap_add_item(keymap, "SEQUENCER_OT_reassign_inputs", RKEY, KM_PRESS, 0, 0);
 	WM_keymap_add_item(keymap, "SEQUENCER_OT_reload", RKEY, KM_PRESS, KM_ALT, 0);
 
+	WM_keymap_add_item(keymap, "SEQUENCER_OT_offset_clear", OKEY, KM_PRESS, KM_ALT, 0);
+
 	WM_keymap_add_item(keymap, "SEQUENCER_OT_duplicate", DKEY, KM_PRESS, KM_SHIFT, 0);
 
 	WM_keymap_add_item(keymap, "SEQUENCER_OT_delete", XKEY, KM_PRESS, 0, 0);
@@ -240,6 +247,8 @@ void sequencer_keymap(wmKeyConfig *keyconf)
 	WM_keymap_add_item(keymap, "SEQUENCER_OT_select_border", BKEY, KM_PRESS, 0, 0);
 
 	WM_keymap_add_menu(keymap, "SEQUENCER_MT_add", AKEY, KM_PRESS, KM_SHIFT, 0);
+
+	WM_keymap_add_menu(keymap, "SEQUENCER_MT_change", CKEY, KM_PRESS, 0, 0);
 	
 	kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", OKEY, KM_PRESS, 0, 0);
 	RNA_string_set(kmi->ptr, "data_path", "scene.sequence_editor.overlay_frame");
diff --git a/source/blender/editors/space_sequencer/sequencer_select.c b/source/blender/editors/space_sequencer/sequencer_select.c
index 8d5f372f55e8b81c062d6630b8f62e03f27335c9..0ac23765167a2cc4e3df688c80ea93cfa3b57531 100644
--- a/source/blender/editors/space_sequencer/sequencer_select.c
+++ b/source/blender/editors/space_sequencer/sequencer_select.c
@@ -159,7 +159,7 @@ void select_surround_from_last(Scene *scene)
 #endif
 
 
-static void select_single_seq(Scene *scene, Sequence *seq, int deselect_all) /* BRING BACK */
+static void UNUSED_FUNCTION(select_single_seq)(Scene *scene, Sequence *seq, int deselect_all) /* BRING BACK */
 {
 	Editing *ed= seq_give_editing(scene, FALSE);
 	
diff --git a/source/blender/editors/space_text/text_python.c b/source/blender/editors/space_text/text_python.c
index 6e6f131655baab9e5f092c2d76701e1d51cd25d4..51b4b8381715fb1fe1033673ccc288f5b347d453 100644
--- a/source/blender/editors/space_text/text_python.c
+++ b/source/blender/editors/space_text/text_python.c
@@ -43,6 +43,7 @@
 #include "BKE_text.h"
 
 #include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
 
 #include "WM_types.h"
 
@@ -192,7 +193,7 @@ static void confirm_suggestion(Text *text, int skipleft)
 // XXX
 static int doc_scroll= 0;
 
-static short do_texttools(SpaceText *st, char ascii, unsigned short evnt, short val)
+static short UNUSED_FUNCTION(do_texttools)(SpaceText *st, char ascii, unsigned short evnt, short val)
 {
 	ARegion *ar= NULL; // XXX
 	int qual= 0; // XXX
@@ -375,7 +376,7 @@ static short do_texttools(SpaceText *st, char ascii, unsigned short evnt, short
 		; // XXX redraw_alltext();
 #endif
 
-static short do_textmarkers(SpaceText *st, char ascii, unsigned short evnt, short val)
+static short UNUSED_FUNCTION(do_textmarkers)(SpaceText *st, char ascii, unsigned short evnt, short val)
 {
 	Text *text;
 	TextMarker *marker, *mrk, *nxt;
diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c
index 4a8fb92d7e12ba5b655eab79b9df2576f38e9104..2fe2a95de83dd929b4c85296f77eab6c652bda09 100644
--- a/source/blender/editors/space_view3d/drawobject.c
+++ b/source/blender/editors/space_view3d/drawobject.c
@@ -5475,7 +5475,7 @@ static void drawObjectSelect(Scene *scene, View3D *v3d, ARegion *ar, Base *base)
 		}
 	}
 	else if(ob->type==OB_ARMATURE) {
-		if(!(ob->mode & OB_MODE_POSE))
+		if(!(ob->mode & OB_MODE_POSE && base == scene->basact))
 			draw_armature(scene, v3d, ar, base, OB_WIRE, FALSE, TRUE);
 	}
 
@@ -5732,7 +5732,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
 	/* if( ((int)ob->ctime) != F_(scene->r.cfra)) where_is_object(scene, ob); */
 	
 	/* draw motion paths (in view space) */
-	if (ob->mpath) {
+	if (ob->mpath && (v3d->flag2 & V3D_RENDER_OVERRIDE)==0) {
 		bAnimVizSettings *avs= &ob->avs;
 		
 		/* setup drawing environment for paths */
diff --git a/source/blender/editors/space_view3d/view3d_toolbar.c b/source/blender/editors/space_view3d/view3d_toolbar.c
index 50dd98b08a43d57aa8247c057e6dc431f1227676..3cc3bde9754f243f34b1112166dd44f501d8e2f1 100644
--- a/source/blender/editors/space_view3d/view3d_toolbar.c
+++ b/source/blender/editors/space_view3d/view3d_toolbar.c
@@ -46,6 +46,7 @@
 #include "BLI_editVert.h"
 #include "BLI_rand.h"
 #include "BLI_utildefines.h"
+#include "BLI_ghash.h"
 
 #include "BKE_context.h"
 #include "BKE_idprop.h"
@@ -140,10 +141,11 @@ static void operator_call_cb(struct bContext *C, void *arg_listbase, void *arg2)
 
 static void operator_search_cb(const struct bContext *C, void *UNUSED(arg), const char *str, uiSearchItems *items)
 {
-	wmOperatorType *ot = WM_operatortype_first();
-	
-	for(; ot; ot= ot->next) {
-		
+	GHashIterator *iter= WM_operatortype_iter();
+
+	for( ; !BLI_ghashIterator_isDone(iter); BLI_ghashIterator_step(iter)) {
+		wmOperatorType *ot= BLI_ghashIterator_getValue(iter);
+
 		if(BLI_strcasestr(ot->name, str)) {
 			if(WM_operator_poll((bContext*)C, ot)) {
 				
@@ -152,6 +154,7 @@ static void operator_search_cb(const struct bContext *C, void *UNUSED(arg), cons
 			}
 		}
 	}
+	BLI_ghashIterator_free(iter);
 }
 
 
diff --git a/source/blender/editors/transform/CMakeLists.txt b/source/blender/editors/transform/CMakeLists.txt
index 283b09f42e4fcd11dfdbab42e32ab28b9b37cde1..e44cc1f5df3faf162461901d2af91cb4a9c2e51b 100644
--- a/source/blender/editors/transform/CMakeLists.txt
+++ b/source/blender/editors/transform/CMakeLists.txt
@@ -41,7 +41,6 @@ set(SRC
 	transform_generics.c
 	transform_input.c
 	transform_manipulator.c
-	transform_ndofinput.c
 	transform_ops.c
 	transform_orientations.c
 	transform_snap.c
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c
index 39e26bc6436dfcce9fe6d3e877a1c9353ad15c34..c1c812e8c68d3f6121a647e5b59e6977d43cafb4 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -1006,11 +1006,6 @@ int transformEvent(TransInfo *t, wmEvent *event)
 			else view_editmove(event->type);
 			t->redraw= 1;
 			break;
-#if 0
-		case NDOF_MOTION:
-			// should have been caught by tranform_modal
-			return OPERATOR_PASS_THROUGH;
-#endif
 		default:
 			handled = 0;
 			break;
diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h
index d8e424887871937c75504245c7f26ed21ed37a3c..485344875d445761152616c484681b232ffea110 100644
--- a/source/blender/editors/transform/transform.h
+++ b/source/blender/editors/transform/transform.h
@@ -67,14 +67,6 @@ struct wmTimer;
 struct ARegion;
 struct ReportList;
 
-typedef struct NDofInput {
-	int		flag;
-	int		axis;
-	float	fval[7];
-	float	factor[3];
-} NDofInput;
-
-
 /*
 	The ctrl value has different meaning:
 		0			: No value has been typed
@@ -273,7 +265,6 @@ typedef struct TransInfo {
 	TransCon    con;            /* transformed constraint               */
 	TransSnap	tsnap;
 	NumInput    num;            /* numerical input                      */
-	NDofInput   ndof;           /* ndof input                           */
 	MouseInput	mouse;			/* mouse input                          */
 	char        redraw;         /* redraw flag                          */
 	float		prop_size;		/* proportional circle radius           */
@@ -340,9 +331,6 @@ typedef struct TransInfo {
 
 /* ******************** Macros & Prototypes *********************** */
 
-/* NDOFINPUT FLAGS */
-#define NDOF_INIT			1
-
 /* transinfo->state */
 #define TRANS_STARTING  0
 #define TRANS_RUNNING	1
@@ -683,20 +671,6 @@ void calculatePropRatio(TransInfo *t);
 
 void getViewVector(TransInfo *t, float coord[3], float vec[3]);
 
-/*********************** NDofInput ********************************/
-
-void initNDofInput(NDofInput *n);
-int hasNDofInput(NDofInput *n);
-void applyNDofInput(NDofInput *n, float *vec);
-int handleNDofInput(NDofInput *n, struct wmEvent *event);
-
-/* handleNDofInput return values */
-#define NDOF_REFRESH	1
-#define NDOF_NOMOVE		2
-#define NDOF_CONFIRM	3
-#define NDOF_CANCEL		4
-
-
 /*********************** Transform Orientations ******************************/
 
 void initTransformOrientation(struct bContext *C, TransInfo *t);
diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c
index c81c398e6961c3a84269944f6c67e16e89875043..306796efee9c08ea3d01ac998f26fe4d754734c8 100644
--- a/source/blender/editors/transform/transform_generics.c
+++ b/source/blender/editors/transform/transform_generics.c
@@ -1165,7 +1165,6 @@ int initTransInfo (bContext *C, TransInfo *t, wmOperator *op, wmEvent *event)
 	
 	setTransformViewMatrices(t);
 	initNumInput(&t->num);
-	initNDofInput(&t->ndof);
 	
 	return 1;
 }
diff --git a/source/blender/editors/transform/transform_ndofinput.c b/source/blender/editors/transform/transform_ndofinput.c
deleted file mode 100644
index c5946163770681e70125acfbf616a00e84517435..0000000000000000000000000000000000000000
--- a/source/blender/editors/transform/transform_ndofinput.c
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * $Id$
- *
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): Martin Poirier
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file blender/editors/transform/transform_ndofinput.c
- *  \ingroup edtransform
- */
-
- 
- #include <math.h>			/* fabs */
-#include <stdio.h>			/* for sprintf		*/
-
-#include "BLI_utildefines.h"
-
-#include "BKE_global.h"		/* for G			*/
-	/* ABS */
-
-#include "WM_types.h"
-
-#include "transform.h"
-
-#if 0
-static int updateNDofMotion(NDofInput *n); // return 0 when motion is null
-#endif
-static void resetNDofInput(NDofInput *n);
-
-void initNDofInput(NDofInput *n)
-{
-	int i;
-
-	n->flag = 0;
-	n->axis = 0;
-	
-	resetNDofInput(n);
-	
-	for(i = 0; i < 3; i++)
-	{
-		n->factor[i] = 1.0f;
-	}
-}
-
-static void resetNDofInput(NDofInput *n)
-{	
-	int i;
-	for(i = 0; i < 6; i++)
-	{
-		n->fval[i] = 0.0f;
-	}
-}
-
- 
-int handleNDofInput(NDofInput *UNUSED(n), wmEvent *UNUSED(event))
-{
-	int retval = 0;
-	// TRANSFORM_FIX_ME
-#if 0
-	switch(event)
-	{
-		case NDOFMOTION:
-			if (updateNDofMotion(n) == 0)
-			{
-				retval = NDOF_NOMOVE;
-			}
-			else
-			{
-				retval = NDOF_REFRESH;
-			}
-			break;
-		case NDOFBUTTON:
-			if (val == 1) 
-			{
-				retval = NDOF_CONFIRM;
-			}
-			else if (val == 2) 
-			{
-				retval = NDOF_CANCEL;
-				resetNDofInput(n);
-				n->flag &= ~NDOF_INIT;
-			}
-			break;
-	}
-#endif 	
-	return retval;
-}
-
-int hasNDofInput(NDofInput *n)
-{
-	return (n->flag & NDOF_INIT) == NDOF_INIT;
-}
-
-void applyNDofInput(NDofInput *n, float *vec)
-{
-	if (hasNDofInput(n))
-	{
-		int i, j;
-		
-		for (i = 0, j = 0; i < 6; i++)
-		{
-			if (n->axis & (1 << i))
-			{
-				vec[j] = n->fval[i] * n->factor[j];
-				j++;
-			}
-		}
-	}
-}
-
-// TRANSFORM_FIX_ME
-#if 0
-
-static int updateNDofMotion(NDofInput *n)
-{
-	float fval[7];
-	int i;
-	int retval = 0;
-
-	getndof(fval);
-
-	if (G.vd->ndoffilter)
-		filterNDOFvalues(fval);
-
-	for(i = 0; i < 6; i++)
-	{
-		if (!retval && fval[i] != 0.0f)
-		{
-			retval = 1;
-		}
-		
-		n->fval[i] += fval[i] / 1024.0f;
-	}
-	
-	n->flag |= NDOF_INIT;
-	
-	return retval;
-}
-#endif
-
-
-
-
diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c
index 54e0b31e201e75244b0bfa3b1a44da916095c926..231293024f035d0d2d56f143f579d360e2aa745b 100644
--- a/source/blender/editors/transform/transform_ops.c
+++ b/source/blender/editors/transform/transform_ops.c
@@ -360,17 +360,14 @@ static int transform_modal(bContext *C, wmOperator *op, wmEvent *event)
 
 	TransInfo *t = op->customdata;
 
-	#if 0
+#if 0
 	// stable 2D mouse coords map to different 3D coords while the 3D mouse is active
 	// in other words, 2D deltas are no longer good enough!
 	// disable until individual 'transformers' behave better
 
 	if (event->type == NDOF_MOTION)
-	{
-		/* puts("transform_modal: passing through NDOF_MOTION"); */
 		return OPERATOR_PASS_THROUGH;
-	}
-	#endif
+#endif
 
 	/* XXX insert keys are called here, and require context */
 	t->context= C;
diff --git a/source/blender/imbuf/intern/anim_movie.c b/source/blender/imbuf/intern/anim_movie.c
index 919b0eb0c29e736b20f044988ed91277523d7551..8b0104fcdca56994ab5f99a824e554bac6020948 100644
--- a/source/blender/imbuf/intern/anim_movie.c
+++ b/source/blender/imbuf/intern/anim_movie.c
@@ -355,7 +355,7 @@ struct anim * IMB_open_anim( const char * name, int ib_flags) {
 
 	anim = (struct anim*)MEM_callocN(sizeof(struct anim), "anim struct");
 	if (anim != NULL) {
-		strcpy(anim->name, name);  /* fixme: possible buffer overflow here? */
+		BLI_strncpy(anim->name, name, sizeof(anim->name));
 		anim->ib_flags = ib_flags;
 	}
 	return(anim);
diff --git a/source/blender/imbuf/intern/filter.c b/source/blender/imbuf/intern/filter.c
index 1644e653df4aa87826999835ee81f3974d25f4cf..3f391b91c0fd47f40b8a0414752881f1430c3afb 100644
--- a/source/blender/imbuf/intern/filter.c
+++ b/source/blender/imbuf/intern/filter.c
@@ -371,11 +371,15 @@ void IMB_filter_extend(struct ImBuf *ibuf, char *mask, int filter)
 	float weight[25];
 
 	/* build a weights buffer */
-	n= 2;
-	k= 0;
+	n= 1;
+	/*k= 0;
 	for(i = -n; i <= n; i++)
 		for(j = -n; j <= n; j++)
 			weight[k++] = sqrt((float) i * i + j * j);
+			*/
+	weight[0]=1; weight[1]=2; weight[2]=1;
+	weight[3]=2; weight[4]=0; weight[5]=2;
+	weight[6]=1; weight[7]=2; weight[8]=1;
 
 	/* run passes */
 	for(r = 0; cannot_early_out == 1 && r < filter; r++) {
@@ -393,10 +397,10 @@ void IMB_filter_extend(struct ImBuf *ibuf, char *mask, int filter)
 					float acc[4]={0,0,0,0};
 					k = 0;
 
-					if (check_pixel_assigned(srcbuf, srcmask, filter_make_index(x-1, y, width, height), depth, is_float) ||
+					/*if (check_pixel_assigned(srcbuf, srcmask, filter_make_index(x-1, y, width, height), depth, is_float) ||
 						check_pixel_assigned(srcbuf, srcmask, filter_make_index(x+1, y, width, height), depth, is_float) ||
 						check_pixel_assigned(srcbuf, srcmask, filter_make_index(x, y-1, width, height), depth, is_float) ||
-						check_pixel_assigned(srcbuf, srcmask, filter_make_index(x, y+1, width, height), depth, is_float)) {
+						check_pixel_assigned(srcbuf, srcmask, filter_make_index(x, y+1, width, height), depth, is_float))*/ {
 						for(i= -n; i<=n; i++) {
 							for(j=-n; j<=n; j++) {
 								if(i != 0 || j != 0) {
diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h
index 3787675f339da4766981bf723ced730abf5164b8..053f3b381683689041954b409a8f3bb714a8dc82 100644
--- a/source/blender/makesdna/DNA_modifier_types.h
+++ b/source/blender/makesdna/DNA_modifier_types.h
@@ -712,16 +712,16 @@ typedef struct ShapeKeyModifierData {
 typedef struct SolidifyModifierData {
 	ModifierData modifier;
 
-	char defgrp_name[32];		/* name of vertex group to use */
+	char defgrp_name[32];	/* name of vertex group to use */
 	float offset;			/* new surface offset level*/
 	float offset_fac;		/* midpoint of the offset  */
+	float offset_fac_vg;	/* factor for the minimum weight to use when vgroups are used, avoids 0.0 weights giving duplicate geometry */
 	float crease_inner;
 	float crease_outer;
 	float crease_rim;
 	int flag;
 	short mat_ofs;
 	short mat_ofs_rim;
-	int pad;
 } SolidifyModifierData;
 
 #define MOD_SOLIDIFY_RIM			(1<<0)
diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h
index 963b3de3b4db81824403a8f0dbb9f3763fe16220..c1427ca0e7915c3030a8a2d8f36594c9dbf56109 100644
--- a/source/blender/makesrna/RNA_access.h
+++ b/source/blender/makesrna/RNA_access.h
@@ -47,532 +47,534 @@ struct Scene;
 /* Types */
 
 extern BlenderRNA BLENDER_RNA;
-extern LIBEXPORT StructRNA RNA_Action;
-extern LIBEXPORT StructRNA RNA_ActionConstraint;
-extern LIBEXPORT StructRNA RNA_ActionGroup;
-extern LIBEXPORT StructRNA RNA_Actuator;
-extern LIBEXPORT StructRNA RNA_ActuatorSensor;
-extern LIBEXPORT StructRNA RNA_Addon;
-extern LIBEXPORT StructRNA RNA_AdjustmentSequence;
-extern LIBEXPORT StructRNA RNA_AlwaysSensor;
-extern LIBEXPORT StructRNA RNA_AndController;
-extern LIBEXPORT StructRNA RNA_AnimData;
-extern LIBEXPORT StructRNA RNA_AnimViz;
-extern LIBEXPORT StructRNA RNA_AnimVizMotionPaths;
-extern LIBEXPORT StructRNA RNA_AnimVizOnionSkinning;
-extern LIBEXPORT StructRNA RNA_AnyType;
-extern LIBEXPORT StructRNA RNA_Area;
-extern LIBEXPORT StructRNA RNA_AreaLamp;
-extern LIBEXPORT StructRNA RNA_Armature;
-extern LIBEXPORT StructRNA RNA_ArmatureModifier;
-extern LIBEXPORT StructRNA RNA_ArmatureSensor;
-extern LIBEXPORT StructRNA RNA_ArrayModifier;
-extern LIBEXPORT StructRNA RNA_BackgroundImage;
-extern LIBEXPORT StructRNA RNA_BevelModifier;
-extern LIBEXPORT StructRNA RNA_BezierSplinePoint;
-extern LIBEXPORT StructRNA RNA_BlendData;
-extern LIBEXPORT StructRNA RNA_BlendTexture;
-extern LIBEXPORT StructRNA RNA_BlenderRNA;
-extern LIBEXPORT StructRNA RNA_BoidRule;
-extern LIBEXPORT StructRNA RNA_BoidRuleAverageSpeed;
-extern LIBEXPORT StructRNA RNA_BoidRuleAvoid;
-extern LIBEXPORT StructRNA RNA_BoidRuleAvoidCollision;
-extern LIBEXPORT StructRNA RNA_BoidRuleFight;
-extern LIBEXPORT StructRNA RNA_BoidRuleFollowLeader;
-extern LIBEXPORT StructRNA RNA_BoidRuleGoal;
-extern LIBEXPORT StructRNA RNA_BoidSettings;
-extern LIBEXPORT StructRNA RNA_BoidState;
-extern LIBEXPORT StructRNA RNA_Bone;
-extern LIBEXPORT StructRNA RNA_BoneGroup;
-extern LIBEXPORT StructRNA RNA_BooleanModifier;
-extern LIBEXPORT StructRNA RNA_BooleanProperty;
-extern LIBEXPORT StructRNA RNA_Brush;
-extern LIBEXPORT StructRNA RNA_BrushTextureSlot;
-extern LIBEXPORT StructRNA RNA_BuildModifier;
-extern LIBEXPORT StructRNA RNA_Camera;
-extern LIBEXPORT StructRNA RNA_CastModifier;
-extern LIBEXPORT StructRNA RNA_ChildOfConstraint;
-extern LIBEXPORT StructRNA RNA_ChildParticle;
-extern LIBEXPORT StructRNA RNA_ClampToConstraint;
-extern LIBEXPORT StructRNA RNA_ClothCollisionSettings;
-extern LIBEXPORT StructRNA RNA_ClothModifier;
-extern LIBEXPORT StructRNA RNA_ClothSettings;
-extern LIBEXPORT StructRNA RNA_CloudsTexture;
-extern LIBEXPORT StructRNA RNA_CollectionProperty;
-extern LIBEXPORT StructRNA RNA_CollisionModifier;
-extern LIBEXPORT StructRNA RNA_CollisionSensor;
-extern LIBEXPORT StructRNA RNA_CollisionSettings;
-extern LIBEXPORT StructRNA RNA_ColorRamp;
-extern LIBEXPORT StructRNA RNA_ColorRampElement;
-extern LIBEXPORT StructRNA RNA_ColorSequence;
-extern LIBEXPORT StructRNA RNA_CompositorNode;
-extern LIBEXPORT StructRNA RNA_CompositorNodeAlphaOver;
-extern LIBEXPORT StructRNA RNA_CompositorNodeBilateralblur;
-extern LIBEXPORT StructRNA RNA_CompositorNodeBlur;
-extern LIBEXPORT StructRNA RNA_CompositorNodeBrightContrast;
-extern LIBEXPORT StructRNA RNA_CompositorNodeChannelMatte;
-extern LIBEXPORT StructRNA RNA_CompositorNodeChromaMatte;
-extern LIBEXPORT StructRNA RNA_CompositorNodeColorMatte;
-extern LIBEXPORT StructRNA RNA_CompositorNodeColorSpill;
-extern LIBEXPORT StructRNA RNA_CompositorNodeCombHSVA;
-extern LIBEXPORT StructRNA RNA_CompositorNodeCombRGBA;
-extern LIBEXPORT StructRNA RNA_CompositorNodeCombYCCA;
-extern LIBEXPORT StructRNA RNA_CompositorNodeCombYUVA;
-extern LIBEXPORT StructRNA RNA_CompositorNodeComposite;
-extern LIBEXPORT StructRNA RNA_CompositorNodeCrop;
-extern LIBEXPORT StructRNA RNA_CompositorNodeCurveRGB;
-extern LIBEXPORT StructRNA RNA_CompositorNodeCurveVec;
-extern LIBEXPORT StructRNA RNA_CompositorNodeDBlur;
-extern LIBEXPORT StructRNA RNA_CompositorNodeDefocus;
-extern LIBEXPORT StructRNA RNA_CompositorNodeDiffMatte;
-extern LIBEXPORT StructRNA RNA_CompositorNodeDilateErode;
-extern LIBEXPORT StructRNA RNA_CompositorNodeDisplace;
-extern LIBEXPORT StructRNA RNA_CompositorNodeDistanceMatte;
-extern LIBEXPORT StructRNA RNA_CompositorNodeFilter;
-extern LIBEXPORT StructRNA RNA_CompositorNodeFlip;
-extern LIBEXPORT StructRNA RNA_CompositorNodeGamma;
-extern LIBEXPORT StructRNA RNA_CompositorNodeGlare;
-extern LIBEXPORT StructRNA RNA_CompositorNodeHueSat;
-extern LIBEXPORT StructRNA RNA_CompositorNodeIDMask;
-extern LIBEXPORT StructRNA RNA_CompositorNodeImage;
-extern LIBEXPORT StructRNA RNA_CompositorNodeInvert;
-extern LIBEXPORT StructRNA RNA_CompositorNodeLensdist;
-extern LIBEXPORT StructRNA RNA_CompositorNodeLevels;
-extern LIBEXPORT StructRNA RNA_CompositorNodeLumaMatte;
-extern LIBEXPORT StructRNA RNA_CompositorNodeMapUV;
-extern LIBEXPORT StructRNA RNA_CompositorNodeMapValue;
-extern LIBEXPORT StructRNA RNA_CompositorNodeMath;
-extern LIBEXPORT StructRNA RNA_CompositorNodeMixRGB;
-extern LIBEXPORT StructRNA RNA_CompositorNodeNormal;
-extern LIBEXPORT StructRNA RNA_CompositorNodeNormalize;
-extern LIBEXPORT StructRNA RNA_CompositorNodeOutputFile;
-extern LIBEXPORT StructRNA RNA_CompositorNodePremulKey;
-extern LIBEXPORT StructRNA RNA_CompositorNodeRGB;
-extern LIBEXPORT StructRNA RNA_CompositorNodeRGBToBW;
-extern LIBEXPORT StructRNA RNA_CompositorNodeRLayers;
-extern LIBEXPORT StructRNA RNA_CompositorNodeRotate;
-extern LIBEXPORT StructRNA RNA_CompositorNodeScale;
-extern LIBEXPORT StructRNA RNA_CompositorNodeSepHSVA;
-extern LIBEXPORT StructRNA RNA_CompositorNodeSepRGBA;
-extern LIBEXPORT StructRNA RNA_CompositorNodeSepYCCA;
-extern LIBEXPORT StructRNA RNA_CompositorNodeSepYUVA;
-extern LIBEXPORT StructRNA RNA_CompositorNodeSetAlpha;
-extern LIBEXPORT StructRNA RNA_CompositorNodeSplitViewer;
-extern LIBEXPORT StructRNA RNA_CompositorNodeTexture;
-extern LIBEXPORT StructRNA RNA_CompositorNodeTime;
-extern LIBEXPORT StructRNA RNA_CompositorNodeTonemap;
-extern LIBEXPORT StructRNA RNA_CompositorNodeTranslate;
-extern LIBEXPORT StructRNA RNA_CompositorNodeTree;
-extern LIBEXPORT StructRNA RNA_CompositorNodeValToRGB;
-extern LIBEXPORT StructRNA RNA_CompositorNodeValue;
-extern LIBEXPORT StructRNA RNA_CompositorNodeVecBlur;
-extern LIBEXPORT StructRNA RNA_CompositorNodeViewer;
-extern LIBEXPORT StructRNA RNA_CompositorNodeZcombine;
-extern LIBEXPORT StructRNA RNA_ConsoleLine;
-extern LIBEXPORT StructRNA RNA_Constraint;
-extern LIBEXPORT StructRNA RNA_ConstraintTarget;
-extern LIBEXPORT StructRNA RNA_Context;
-extern LIBEXPORT StructRNA RNA_ControlFluidSettings;
-extern LIBEXPORT StructRNA RNA_Controller;
-extern LIBEXPORT StructRNA RNA_CopyLocationConstraint;
-extern LIBEXPORT StructRNA RNA_CopyRotationConstraint;
-extern LIBEXPORT StructRNA RNA_CopyScaleConstraint;
-extern LIBEXPORT StructRNA RNA_CopyTransformsConstraint;
-extern LIBEXPORT StructRNA RNA_Curve;
-extern LIBEXPORT StructRNA RNA_CurveMap;
-extern LIBEXPORT StructRNA RNA_CurveMapPoint;
-extern LIBEXPORT StructRNA RNA_CurveMapping;
-extern LIBEXPORT StructRNA RNA_CurveModifier;
-extern LIBEXPORT StructRNA RNA_CurvePoint;
-extern LIBEXPORT StructRNA RNA_DampedTrackConstraint;
-extern LIBEXPORT StructRNA RNA_DecimateModifier;
-extern LIBEXPORT StructRNA RNA_DelaySensor;
-extern LIBEXPORT StructRNA RNA_DisplaceModifier;
-extern LIBEXPORT StructRNA RNA_DistortedNoiseTexture;
-extern LIBEXPORT StructRNA RNA_DomainFluidSettings;
-extern LIBEXPORT StructRNA RNA_Driver;
-extern LIBEXPORT StructRNA RNA_DriverTarget;
-extern LIBEXPORT StructRNA RNA_DriverVariable;
-extern LIBEXPORT StructRNA RNA_DupliObject;
-extern LIBEXPORT StructRNA RNA_EdgeSplitModifier;
-extern LIBEXPORT StructRNA RNA_EditBone;
-extern LIBEXPORT StructRNA RNA_EffectSequence;
-extern LIBEXPORT StructRNA RNA_EffectorWeights;
-extern LIBEXPORT StructRNA RNA_EnumProperty;
-extern LIBEXPORT StructRNA RNA_EnumPropertyItem;
-extern LIBEXPORT StructRNA RNA_EnvironmentMap;
-extern LIBEXPORT StructRNA RNA_EnvironmentMapTexture;
-extern LIBEXPORT StructRNA RNA_Event;
-extern LIBEXPORT StructRNA RNA_ExplodeModifier;
-extern LIBEXPORT StructRNA RNA_ExpressionController;
-extern LIBEXPORT StructRNA RNA_FCurve;
-extern LIBEXPORT StructRNA RNA_FCurveSample;
-extern LIBEXPORT StructRNA RNA_FModifier;
-extern LIBEXPORT StructRNA RNA_FModifierCycles;
-extern LIBEXPORT StructRNA RNA_FModifierEnvelope;
-extern LIBEXPORT StructRNA RNA_FModifierEnvelopeControlPoint;
-extern LIBEXPORT StructRNA RNA_FModifierFunctionGenerator;
-extern LIBEXPORT StructRNA RNA_FModifierGenerator;
-extern LIBEXPORT StructRNA RNA_FModifierLimits;
-extern LIBEXPORT StructRNA RNA_FModifierNoise;
-extern LIBEXPORT StructRNA RNA_FModifierPython;
-extern LIBEXPORT StructRNA RNA_FModifierStepped;
-extern LIBEXPORT StructRNA RNA_FieldSettings;
-extern LIBEXPORT StructRNA RNA_FileSelectParams;
-extern LIBEXPORT StructRNA RNA_FloatProperty;
-extern LIBEXPORT StructRNA RNA_FloorConstraint;
-extern LIBEXPORT StructRNA RNA_FluidFluidSettings;
-extern LIBEXPORT StructRNA RNA_FluidSettings;
-extern LIBEXPORT StructRNA RNA_FluidSimulationModifier;
-extern LIBEXPORT StructRNA RNA_FollowPathConstraint;
-extern LIBEXPORT StructRNA RNA_Function;
-extern LIBEXPORT StructRNA RNA_GPencilFrame;
-extern LIBEXPORT StructRNA RNA_GPencilLayer;
-extern LIBEXPORT StructRNA RNA_GPencilStroke;
-extern LIBEXPORT StructRNA RNA_GPencilStrokePoint;
-extern LIBEXPORT StructRNA RNA_GameBooleanProperty;
-extern LIBEXPORT StructRNA RNA_GameFloatProperty;
-extern LIBEXPORT StructRNA RNA_GameIntProperty;
-extern LIBEXPORT StructRNA RNA_GameObjectSettings;
-extern LIBEXPORT StructRNA RNA_GameProperty;
-extern LIBEXPORT StructRNA RNA_GameSoftBodySettings;
-extern LIBEXPORT StructRNA RNA_GameStringProperty;
-extern LIBEXPORT StructRNA RNA_GameTimerProperty;
-extern LIBEXPORT StructRNA RNA_GlowSequence;
-extern LIBEXPORT StructRNA RNA_GreasePencil;
-extern LIBEXPORT StructRNA RNA_Group;
-extern LIBEXPORT StructRNA RNA_Header;
-extern LIBEXPORT StructRNA RNA_HemiLamp;
-extern LIBEXPORT StructRNA RNA_Histogram;
-extern LIBEXPORT StructRNA RNA_HookModifier;
-extern LIBEXPORT StructRNA RNA_ID;
-extern LIBEXPORT StructRNA RNA_IKParam;
-extern LIBEXPORT StructRNA RNA_Image;
-extern LIBEXPORT StructRNA RNA_ImagePaint;
-extern LIBEXPORT StructRNA RNA_ImageSequence;
-extern LIBEXPORT StructRNA RNA_ImageTexture;
-extern LIBEXPORT StructRNA RNA_ImageUser;
-extern LIBEXPORT StructRNA RNA_InflowFluidSettings;
-extern LIBEXPORT StructRNA RNA_IntProperty;
-extern LIBEXPORT StructRNA RNA_Itasc;
-extern LIBEXPORT StructRNA RNA_JoystickSensor;
-extern LIBEXPORT StructRNA RNA_Key;
-extern LIBEXPORT StructRNA RNA_KeyConfig;
-extern LIBEXPORT StructRNA RNA_KeyMap;
-extern LIBEXPORT StructRNA RNA_KeyMapItem;
-extern LIBEXPORT StructRNA RNA_KeyboardSensor;
-extern LIBEXPORT StructRNA RNA_Keyframe;
-extern LIBEXPORT StructRNA RNA_KeyingSet;
-extern LIBEXPORT StructRNA RNA_KeyingSetInfo;
-extern LIBEXPORT StructRNA RNA_KeyingSetPath;
-extern LIBEXPORT StructRNA RNA_KinematicConstraint;
-extern LIBEXPORT StructRNA RNA_Lamp;
-extern LIBEXPORT StructRNA RNA_LampSkySettings;
-extern LIBEXPORT StructRNA RNA_LampTextureSlot;
-extern LIBEXPORT StructRNA RNA_Lattice;
-extern LIBEXPORT StructRNA RNA_LatticeModifier;
-extern LIBEXPORT StructRNA RNA_LatticePoint;
-extern LIBEXPORT StructRNA RNA_Library;
-extern LIBEXPORT StructRNA RNA_LimitDistanceConstraint;
-extern LIBEXPORT StructRNA RNA_LimitLocationConstraint;
-extern LIBEXPORT StructRNA RNA_LimitRotationConstraint;
-extern LIBEXPORT StructRNA RNA_LimitScaleConstraint;
-extern LIBEXPORT StructRNA RNA_LockedTrackConstraint;
-extern LIBEXPORT StructRNA RNA_Macro;
-extern LIBEXPORT StructRNA RNA_MagicTexture;
-extern LIBEXPORT StructRNA RNA_MarbleTexture;
-extern LIBEXPORT StructRNA RNA_MaskModifier;
-extern LIBEXPORT StructRNA RNA_Material;
-extern LIBEXPORT StructRNA RNA_MaterialHalo;
-extern LIBEXPORT StructRNA RNA_MaterialPhysics;
-extern LIBEXPORT StructRNA RNA_MaterialRaytraceMirror;
-extern LIBEXPORT StructRNA RNA_MaterialRaytraceTransparency;
-extern LIBEXPORT StructRNA RNA_MaterialSlot;
-extern LIBEXPORT StructRNA RNA_MaterialStrand;
-extern LIBEXPORT StructRNA RNA_MaterialSubsurfaceScattering;
-extern LIBEXPORT StructRNA RNA_MaterialTextureSlot;
-extern LIBEXPORT StructRNA RNA_MaterialVolume;
-extern LIBEXPORT StructRNA RNA_Menu;
-extern LIBEXPORT StructRNA RNA_Mesh;
-extern LIBEXPORT StructRNA RNA_MeshColor;
-extern LIBEXPORT StructRNA RNA_MeshColorLayer;
-extern LIBEXPORT StructRNA RNA_MeshDeformModifier;
-extern LIBEXPORT StructRNA RNA_MeshEdge;
-extern LIBEXPORT StructRNA RNA_MeshFace;
-extern LIBEXPORT StructRNA RNA_MeshFloatProperty;
-extern LIBEXPORT StructRNA RNA_MeshFloatPropertyLayer;
-extern LIBEXPORT StructRNA RNA_MeshIntProperty;
-extern LIBEXPORT StructRNA RNA_MeshIntPropertyLayer;
-extern LIBEXPORT StructRNA RNA_MeshSticky;
-extern LIBEXPORT StructRNA RNA_MeshStringProperty;
-extern LIBEXPORT StructRNA RNA_MeshStringPropertyLayer;
-extern LIBEXPORT StructRNA RNA_MeshTextureFace;
-extern LIBEXPORT StructRNA RNA_MeshTextureFaceLayer;
-extern LIBEXPORT StructRNA RNA_MeshVertex;
-extern LIBEXPORT StructRNA RNA_MessageSensor;
-extern LIBEXPORT StructRNA RNA_MetaBall;
-extern LIBEXPORT StructRNA RNA_MetaElement;
-extern LIBEXPORT StructRNA RNA_MetaSequence;
-extern LIBEXPORT StructRNA RNA_MirrorModifier;
-extern LIBEXPORT StructRNA RNA_Modifier;
-extern LIBEXPORT StructRNA RNA_MotionPath;
-extern LIBEXPORT StructRNA RNA_MotionPathVert;
-extern LIBEXPORT StructRNA RNA_MouseSensor;
-extern LIBEXPORT StructRNA RNA_MovieSequence;
-extern LIBEXPORT StructRNA RNA_MulticamSequence;
-extern LIBEXPORT StructRNA RNA_MultiresModifier;
-extern LIBEXPORT StructRNA RNA_MusgraveTexture;
-extern LIBEXPORT StructRNA RNA_NandController;
-extern LIBEXPORT StructRNA RNA_NearSensor;
-extern LIBEXPORT StructRNA RNA_NlaStrip;
-extern LIBEXPORT StructRNA RNA_NlaTrack;
-extern LIBEXPORT StructRNA RNA_Node;
-extern LIBEXPORT StructRNA RNA_NodeGroup;
-extern LIBEXPORT StructRNA RNA_NodeLink;
-extern LIBEXPORT StructRNA RNA_NodeSocket;
-extern LIBEXPORT StructRNA RNA_NodeTree;
-extern LIBEXPORT StructRNA RNA_NoiseTexture;
-extern LIBEXPORT StructRNA RNA_NorController;
-extern LIBEXPORT StructRNA RNA_Object;
-extern LIBEXPORT StructRNA RNA_ObjectBase;
-extern LIBEXPORT StructRNA RNA_ObstacleFluidSettings;
-extern LIBEXPORT StructRNA RNA_Operator;
-extern LIBEXPORT StructRNA RNA_OperatorFileListElement;
-extern LIBEXPORT StructRNA RNA_OperatorMousePath;
-extern LIBEXPORT StructRNA RNA_OperatorProperties;
-extern LIBEXPORT StructRNA RNA_OperatorStrokeElement;
-extern LIBEXPORT StructRNA RNA_OperatorTypeMacro;
-extern LIBEXPORT StructRNA RNA_OrController;
-extern LIBEXPORT StructRNA RNA_OutflowFluidSettings;
-extern LIBEXPORT StructRNA RNA_PackedFile;
-extern LIBEXPORT StructRNA RNA_Paint;
-extern LIBEXPORT StructRNA RNA_Panel;
-extern LIBEXPORT StructRNA RNA_Particle;
-extern LIBEXPORT StructRNA RNA_ParticleBrush;
-extern LIBEXPORT StructRNA RNA_ParticleDupliWeight;
-extern LIBEXPORT StructRNA RNA_ParticleEdit;
-extern LIBEXPORT StructRNA RNA_ParticleFluidSettings;
-extern LIBEXPORT StructRNA RNA_ParticleHairKey;
-extern LIBEXPORT StructRNA RNA_ParticleInstanceModifier;
-extern LIBEXPORT StructRNA RNA_ParticleKey;
-extern LIBEXPORT StructRNA RNA_ParticleSettings;
-extern LIBEXPORT StructRNA RNA_ParticleSettingsTextureSlot;
-extern LIBEXPORT StructRNA RNA_ParticleSystem;
-extern LIBEXPORT StructRNA RNA_ParticleSystemModifier;
-extern LIBEXPORT StructRNA RNA_ParticleTarget;
-extern LIBEXPORT StructRNA RNA_PivotConstraint;
-extern LIBEXPORT StructRNA RNA_PluginSequence;
-extern LIBEXPORT StructRNA RNA_PluginTexture;
-extern LIBEXPORT StructRNA RNA_PointCache;
-extern LIBEXPORT StructRNA RNA_PointDensity;
-extern LIBEXPORT StructRNA RNA_PointDensityTexture;
-extern LIBEXPORT StructRNA RNA_PointLamp;
-extern LIBEXPORT StructRNA RNA_PointerProperty;
-extern LIBEXPORT StructRNA RNA_Pose;
-extern LIBEXPORT StructRNA RNA_PoseBone;
-extern LIBEXPORT StructRNA RNA_Property;
-extern LIBEXPORT StructRNA RNA_PropertyGroup;
-extern LIBEXPORT StructRNA RNA_PropertyGroupItem;
-extern LIBEXPORT StructRNA RNA_PropertySensor;
-extern LIBEXPORT StructRNA RNA_PythonConstraint;
-extern LIBEXPORT StructRNA RNA_PythonController;
-extern LIBEXPORT StructRNA RNA_RGBANodeSocket;
-extern LIBEXPORT StructRNA RNA_RadarSensor;
-extern LIBEXPORT StructRNA RNA_RandomSensor;
-extern LIBEXPORT StructRNA RNA_RaySensor;
-extern LIBEXPORT StructRNA RNA_Region;
-extern LIBEXPORT StructRNA RNA_RenderEngine;
-extern LIBEXPORT StructRNA RNA_RenderLayer;
-extern LIBEXPORT StructRNA RNA_RenderPass;
-extern LIBEXPORT StructRNA RNA_RenderResult;
-extern LIBEXPORT StructRNA RNA_RenderSettings;
-extern LIBEXPORT StructRNA RNA_RigidBodyJointConstraint;
-extern LIBEXPORT StructRNA RNA_SPHFluidSettings;
-extern LIBEXPORT StructRNA RNA_Scene;
-extern LIBEXPORT StructRNA RNA_SceneGameData;
-extern LIBEXPORT StructRNA RNA_SceneRenderLayer;
-extern LIBEXPORT StructRNA RNA_SceneSequence;
-extern LIBEXPORT StructRNA RNA_Scopes;
-extern LIBEXPORT StructRNA RNA_Screen;
-extern LIBEXPORT StructRNA RNA_ScrewModifier;
-extern LIBEXPORT StructRNA RNA_Sculpt;
-extern LIBEXPORT StructRNA RNA_Sensor;
-extern LIBEXPORT StructRNA RNA_Sequence;
-extern LIBEXPORT StructRNA RNA_SequenceColorBalance;
-extern LIBEXPORT StructRNA RNA_SequenceCrop;
-extern LIBEXPORT StructRNA RNA_SequenceEditor;
-extern LIBEXPORT StructRNA RNA_SequenceElement;
-extern LIBEXPORT StructRNA RNA_SequenceProxy;
-extern LIBEXPORT StructRNA RNA_SequenceTransform;
-extern LIBEXPORT StructRNA RNA_ShaderNode;
-extern LIBEXPORT StructRNA RNA_ShaderNodeCameraData;
-extern LIBEXPORT StructRNA RNA_ShaderNodeCombineRGB;
-extern LIBEXPORT StructRNA RNA_ShaderNodeExtendedMaterial;
-extern LIBEXPORT StructRNA RNA_ShaderNodeGeometry;
-extern LIBEXPORT StructRNA RNA_ShaderNodeHueSaturation;
-extern LIBEXPORT StructRNA RNA_ShaderNodeInvert;
-extern LIBEXPORT StructRNA RNA_ShaderNodeMapping;
-extern LIBEXPORT StructRNA RNA_ShaderNodeMaterial;
-extern LIBEXPORT StructRNA RNA_ShaderNodeMath;
-extern LIBEXPORT StructRNA RNA_ShaderNodeMixRGB;
-extern LIBEXPORT StructRNA RNA_ShaderNodeNormal;
-extern LIBEXPORT StructRNA RNA_ShaderNodeOutput;
-extern LIBEXPORT StructRNA RNA_ShaderNodeRGB;
-extern LIBEXPORT StructRNA RNA_ShaderNodeRGBCurve;
-extern LIBEXPORT StructRNA RNA_ShaderNodeRGBToBW;
-extern LIBEXPORT StructRNA RNA_ShaderNodeSeparateRGB;
-extern LIBEXPORT StructRNA RNA_ShaderNodeSqueeze;
-extern LIBEXPORT StructRNA RNA_ShaderNodeTexture;
-extern LIBEXPORT StructRNA RNA_ShaderNodeTree;
-extern LIBEXPORT StructRNA RNA_ShaderNodeValToRGB;
-extern LIBEXPORT StructRNA RNA_ShaderNodeValue;
-extern LIBEXPORT StructRNA RNA_ShaderNodeVectorCurve;
-extern LIBEXPORT StructRNA RNA_ShaderNodeVectorMath;
-extern LIBEXPORT StructRNA RNA_ShapeKey;
-extern LIBEXPORT StructRNA RNA_ShapeKeyBezierPoint;
-extern LIBEXPORT StructRNA RNA_ShapeKeyCurvePoint;
-extern LIBEXPORT StructRNA RNA_ShapeKeyPoint;
-extern LIBEXPORT StructRNA RNA_ShrinkwrapConstraint;
-extern LIBEXPORT StructRNA RNA_ShrinkwrapModifier;
-extern LIBEXPORT StructRNA RNA_SimpleDeformModifier;
-extern LIBEXPORT StructRNA RNA_SmokeCollSettings;
-extern LIBEXPORT StructRNA RNA_SmokeDomainSettings;
-extern LIBEXPORT StructRNA RNA_SmokeFlowSettings;
-extern LIBEXPORT StructRNA RNA_SmokeModifier;
-extern LIBEXPORT StructRNA RNA_SmoothModifier;
-extern LIBEXPORT StructRNA RNA_SoftBodyModifier;
-extern LIBEXPORT StructRNA RNA_SoftBodySettings;
-extern LIBEXPORT StructRNA RNA_SolidifyModifier;
-extern LIBEXPORT StructRNA RNA_Sound;
-extern LIBEXPORT StructRNA RNA_SoundSequence;
-extern LIBEXPORT StructRNA RNA_Space;
-extern LIBEXPORT StructRNA RNA_SpaceConsole;
-extern LIBEXPORT StructRNA RNA_SpaceDopeSheetEditor;
-extern LIBEXPORT StructRNA RNA_SpaceFileBrowser;
-extern LIBEXPORT StructRNA RNA_SpaceGraphEditor;
-extern LIBEXPORT StructRNA RNA_SpaceImageEditor;
-extern LIBEXPORT StructRNA RNA_SpaceInfo;
-extern LIBEXPORT StructRNA RNA_SpaceLogicEditor;
-extern LIBEXPORT StructRNA RNA_SpaceNLA;
-extern LIBEXPORT StructRNA RNA_SpaceNodeEditor;
-extern LIBEXPORT StructRNA RNA_SpaceOutliner;
-extern LIBEXPORT StructRNA RNA_SpaceProperties;
-extern LIBEXPORT StructRNA RNA_SpaceSequenceEditor;
-extern LIBEXPORT StructRNA RNA_SpaceTextEditor;
-extern LIBEXPORT StructRNA RNA_SpaceTimeline;
-extern LIBEXPORT StructRNA RNA_SpaceUVEditor;
-extern LIBEXPORT StructRNA RNA_SpaceUserPreferences;
-extern LIBEXPORT StructRNA RNA_SpaceView3D;
-extern LIBEXPORT StructRNA RNA_SpeedControlSequence;
-extern LIBEXPORT StructRNA RNA_Spline;
-extern LIBEXPORT StructRNA RNA_SplineIKConstraint;
-extern LIBEXPORT StructRNA RNA_SpotLamp;
-extern LIBEXPORT StructRNA RNA_StretchToConstraint;
-extern LIBEXPORT StructRNA RNA_StringProperty;
-extern LIBEXPORT StructRNA RNA_Struct;
-extern LIBEXPORT StructRNA RNA_StucciTexture;
-extern LIBEXPORT StructRNA RNA_SubsurfModifier;
-extern LIBEXPORT StructRNA RNA_SunLamp;
-extern LIBEXPORT StructRNA RNA_SurfaceCurve;
-extern LIBEXPORT StructRNA RNA_SurfaceModifier;
-extern LIBEXPORT StructRNA RNA_TexMapping;
-extern LIBEXPORT StructRNA RNA_Text;
-extern LIBEXPORT StructRNA RNA_TextBox;
-extern LIBEXPORT StructRNA RNA_TextCharacterFormat;
-extern LIBEXPORT StructRNA RNA_TextCurve;
-extern LIBEXPORT StructRNA RNA_TextLine;
-extern LIBEXPORT StructRNA RNA_TextMarker;
-extern LIBEXPORT StructRNA RNA_Texture;
-extern LIBEXPORT StructRNA RNA_TextureNode;
-extern LIBEXPORT StructRNA RNA_TextureNodeBricks;
-extern LIBEXPORT StructRNA RNA_TextureNodeChecker;
-extern LIBEXPORT StructRNA RNA_TextureNodeCompose;
-extern LIBEXPORT StructRNA RNA_TextureNodeCoordinates;
-extern LIBEXPORT StructRNA RNA_TextureNodeCurveRGB;
-extern LIBEXPORT StructRNA RNA_TextureNodeCurveTime;
-extern LIBEXPORT StructRNA RNA_TextureNodeDecompose;
-extern LIBEXPORT StructRNA RNA_TextureNodeDistance;
-extern LIBEXPORT StructRNA RNA_TextureNodeHueSaturation;
-extern LIBEXPORT StructRNA RNA_TextureNodeImage;
-extern LIBEXPORT StructRNA RNA_TextureNodeInvert;
-extern LIBEXPORT StructRNA RNA_TextureNodeMath;
-extern LIBEXPORT StructRNA RNA_TextureNodeMixRGB;
-extern LIBEXPORT StructRNA RNA_TextureNodeOutput;
-extern LIBEXPORT StructRNA RNA_TextureNodeRGBToBW;
-extern LIBEXPORT StructRNA RNA_TextureNodeRotate;
-extern LIBEXPORT StructRNA RNA_TextureNodeScale;
-extern LIBEXPORT StructRNA RNA_TextureNodeTexture;
-extern LIBEXPORT StructRNA RNA_TextureNodeTranslate;
-extern LIBEXPORT StructRNA RNA_TextureNodeTree;
-extern LIBEXPORT StructRNA RNA_TextureNodeValToNor;
-extern LIBEXPORT StructRNA RNA_TextureNodeValToRGB;
-extern LIBEXPORT StructRNA RNA_TextureNodeViewer;
-extern LIBEXPORT StructRNA RNA_TextureSlot;
-extern LIBEXPORT StructRNA RNA_Theme;
-extern LIBEXPORT StructRNA RNA_ThemeAudioWindow;
-extern LIBEXPORT StructRNA RNA_ThemeBoneColorSet;
-extern LIBEXPORT StructRNA RNA_ThemeConsole;
-extern LIBEXPORT StructRNA RNA_ThemeDopeSheet;
-extern LIBEXPORT StructRNA RNA_ThemeFileBrowser;
-extern LIBEXPORT StructRNA RNA_ThemeFontStyle;
-extern LIBEXPORT StructRNA RNA_ThemeGraphEditor;
-extern LIBEXPORT StructRNA RNA_ThemeImageEditor;
-extern LIBEXPORT StructRNA RNA_ThemeInfo;
-extern LIBEXPORT StructRNA RNA_ThemeLogicEditor;
-extern LIBEXPORT StructRNA RNA_ThemeNLAEditor;
-extern LIBEXPORT StructRNA RNA_ThemeNodeEditor;
-extern LIBEXPORT StructRNA RNA_ThemeOutliner;
-extern LIBEXPORT StructRNA RNA_ThemeProperties;
-extern LIBEXPORT StructRNA RNA_ThemeSequenceEditor;
-extern LIBEXPORT StructRNA RNA_ThemeStyle;
-extern LIBEXPORT StructRNA RNA_ThemeTextEditor;
-extern LIBEXPORT StructRNA RNA_ThemeTimeline;
-extern LIBEXPORT StructRNA RNA_ThemeUserInterface;
-extern LIBEXPORT StructRNA RNA_ThemeUserPreferences;
-extern LIBEXPORT StructRNA RNA_ThemeView3D;
-extern LIBEXPORT StructRNA RNA_ThemeWidgetColors;
-extern LIBEXPORT StructRNA RNA_ThemeWidgetStateColors;
-extern LIBEXPORT StructRNA RNA_TimelineMarker;
-extern LIBEXPORT StructRNA RNA_Timer;
-extern LIBEXPORT StructRNA RNA_ToolSettings;
-extern LIBEXPORT StructRNA RNA_TouchSensor;
-extern LIBEXPORT StructRNA RNA_TrackToConstraint;
-extern LIBEXPORT StructRNA RNA_TransformConstraint;
-extern LIBEXPORT StructRNA RNA_TransformSequence;
-extern LIBEXPORT StructRNA RNA_UILayout;
-extern LIBEXPORT StructRNA RNA_UIListItem;
-extern LIBEXPORT StructRNA RNA_UVProjectModifier;
-extern LIBEXPORT StructRNA RNA_UVProjector;
-extern LIBEXPORT StructRNA RNA_UnitSettings;
-extern LIBEXPORT StructRNA RNA_UnknownType;
-extern LIBEXPORT StructRNA RNA_UserPreferences;
-extern LIBEXPORT StructRNA RNA_UserPreferencesEdit;
-extern LIBEXPORT StructRNA RNA_UserPreferencesFilePaths;
-extern LIBEXPORT StructRNA RNA_UserPreferencesSystem;
-extern LIBEXPORT StructRNA RNA_UserPreferencesView;
-extern LIBEXPORT StructRNA RNA_UserSolidLight;
-extern LIBEXPORT StructRNA RNA_ValueNodeSocket;
-extern LIBEXPORT StructRNA RNA_VectorFont;
-extern LIBEXPORT StructRNA RNA_VectorNodeSocket;
-extern LIBEXPORT StructRNA RNA_VertexGroup;
-extern LIBEXPORT StructRNA RNA_VertexGroupElement;
-extern LIBEXPORT StructRNA RNA_VertexPaint;
-extern LIBEXPORT StructRNA RNA_VoronoiTexture;
-extern LIBEXPORT StructRNA RNA_VoxelData;
-extern LIBEXPORT StructRNA RNA_VoxelDataTexture;
-extern LIBEXPORT StructRNA RNA_WarpModifier;
-extern LIBEXPORT StructRNA RNA_WaveModifier;
-extern LIBEXPORT StructRNA RNA_Window;
-extern LIBEXPORT StructRNA RNA_WindowManager;
-extern LIBEXPORT StructRNA RNA_WipeSequence;
-extern LIBEXPORT StructRNA RNA_WoodTexture;
-extern LIBEXPORT StructRNA RNA_World;
-extern LIBEXPORT StructRNA RNA_WorldAmbientOcclusion;
-extern LIBEXPORT StructRNA RNA_WorldMistSettings;
-extern LIBEXPORT StructRNA RNA_WorldStarsSettings;
-extern LIBEXPORT StructRNA RNA_WorldTextureSlot;
-extern LIBEXPORT StructRNA RNA_XnorController;
-extern LIBEXPORT StructRNA RNA_XorController;
+extern StructRNA RNA_Action;
+extern StructRNA RNA_ActionConstraint;
+extern StructRNA RNA_ActionGroup;
+extern StructRNA RNA_Actuator;
+extern StructRNA RNA_ActuatorSensor;
+extern StructRNA RNA_Addon;
+extern StructRNA RNA_AdjustmentSequence;
+extern StructRNA RNA_AlwaysSensor;
+extern StructRNA RNA_AndController;
+extern StructRNA RNA_AnimData;
+extern StructRNA RNA_AnimViz;
+extern StructRNA RNA_AnimVizMotionPaths;
+extern StructRNA RNA_AnimVizOnionSkinning;
+extern StructRNA RNA_AnyType;
+extern StructRNA RNA_Area;
+extern StructRNA RNA_AreaLamp;
+extern StructRNA RNA_Armature;
+extern StructRNA RNA_ArmatureModifier;
+extern StructRNA RNA_ArmatureSensor;
+extern StructRNA RNA_ArrayModifier;
+extern StructRNA RNA_BackgroundImage;
+extern StructRNA RNA_BevelModifier;
+extern StructRNA RNA_BezierSplinePoint;
+extern StructRNA RNA_BlendData;
+extern StructRNA RNA_BlendTexture;
+extern StructRNA RNA_BlenderRNA;
+extern StructRNA RNA_BoidRule;
+extern StructRNA RNA_BoidRuleAverageSpeed;
+extern StructRNA RNA_BoidRuleAvoid;
+extern StructRNA RNA_BoidRuleAvoidCollision;
+extern StructRNA RNA_BoidRuleFight;
+extern StructRNA RNA_BoidRuleFollowLeader;
+extern StructRNA RNA_BoidRuleGoal;
+extern StructRNA RNA_BoidSettings;
+extern StructRNA RNA_BoidState;
+extern StructRNA RNA_Bone;
+extern StructRNA RNA_BoneGroup;
+extern StructRNA RNA_BooleanModifier;
+extern StructRNA RNA_BooleanProperty;
+extern StructRNA RNA_Brush;
+extern StructRNA RNA_BrushTextureSlot;
+extern StructRNA RNA_BuildModifier;
+extern StructRNA RNA_Camera;
+extern StructRNA RNA_CastModifier;
+extern StructRNA RNA_ChildOfConstraint;
+extern StructRNA RNA_ChildParticle;
+extern StructRNA RNA_ClampToConstraint;
+extern StructRNA RNA_ClothCollisionSettings;
+extern StructRNA RNA_ClothModifier;
+extern StructRNA RNA_ClothSettings;
+extern StructRNA RNA_CloudsTexture;
+extern StructRNA RNA_CollectionProperty;
+extern StructRNA RNA_CollisionModifier;
+extern StructRNA RNA_CollisionSensor;
+extern StructRNA RNA_CollisionSettings;
+extern StructRNA RNA_ColorRamp;
+extern StructRNA RNA_ColorRampElement;
+extern StructRNA RNA_ColorSequence;
+extern StructRNA RNA_CompositorNode;
+extern StructRNA RNA_CompositorNodeAlphaOver;
+extern StructRNA RNA_CompositorNodeBilateralblur;
+extern StructRNA RNA_CompositorNodeBlur;
+extern StructRNA RNA_CompositorNodeBrightContrast;
+extern StructRNA RNA_CompositorNodeChannelMatte;
+extern StructRNA RNA_CompositorNodeChromaMatte;
+extern StructRNA RNA_CompositorNodeColorMatte;
+extern StructRNA RNA_CompositorNodeColorSpill;
+extern StructRNA RNA_CompositorNodeCombHSVA;
+extern StructRNA RNA_CompositorNodeCombRGBA;
+extern StructRNA RNA_CompositorNodeCombYCCA;
+extern StructRNA RNA_CompositorNodeCombYUVA;
+extern StructRNA RNA_CompositorNodeComposite;
+extern StructRNA RNA_CompositorNodeCrop;
+extern StructRNA RNA_CompositorNodeCurveRGB;
+extern StructRNA RNA_CompositorNodeCurveVec;
+extern StructRNA RNA_CompositorNodeDBlur;
+extern StructRNA RNA_CompositorNodeDefocus;
+extern StructRNA RNA_CompositorNodeDiffMatte;
+extern StructRNA RNA_CompositorNodeDilateErode;
+extern StructRNA RNA_CompositorNodeDisplace;
+extern StructRNA RNA_CompositorNodeDistanceMatte;
+extern StructRNA RNA_CompositorNodeFilter;
+extern StructRNA RNA_CompositorNodeFlip;
+extern StructRNA RNA_CompositorNodeGamma;
+extern StructRNA RNA_CompositorNodeGlare;
+extern StructRNA RNA_CompositorNodeHueSat;
+extern StructRNA RNA_CompositorNodeIDMask;
+extern StructRNA RNA_CompositorNodeImage;
+extern StructRNA RNA_CompositorNodeInvert;
+extern StructRNA RNA_CompositorNodeLensdist;
+extern StructRNA RNA_CompositorNodeLevels;
+extern StructRNA RNA_CompositorNodeLumaMatte;
+extern StructRNA RNA_CompositorNodeMapUV;
+extern StructRNA RNA_CompositorNodeMapValue;
+extern StructRNA RNA_CompositorNodeMath;
+extern StructRNA RNA_CompositorNodeMixRGB;
+extern StructRNA RNA_CompositorNodeNormal;
+extern StructRNA RNA_CompositorNodeNormalize;
+extern StructRNA RNA_CompositorNodeOutputFile;
+extern StructRNA RNA_CompositorNodePremulKey;
+extern StructRNA RNA_CompositorNodeRGB;
+extern StructRNA RNA_CompositorNodeRGBToBW;
+extern StructRNA RNA_CompositorNodeRLayers;
+extern StructRNA RNA_CompositorNodeRotate;
+extern StructRNA RNA_CompositorNodeScale;
+extern StructRNA RNA_CompositorNodeSepHSVA;
+extern StructRNA RNA_CompositorNodeSepRGBA;
+extern StructRNA RNA_CompositorNodeSepYCCA;
+extern StructRNA RNA_CompositorNodeSepYUVA;
+extern StructRNA RNA_CompositorNodeSetAlpha;
+extern StructRNA RNA_CompositorNodeSplitViewer;
+extern StructRNA RNA_CompositorNodeTexture;
+extern StructRNA RNA_CompositorNodeTime;
+extern StructRNA RNA_CompositorNodeTonemap;
+extern StructRNA RNA_CompositorNodeTranslate;
+extern StructRNA RNA_CompositorNodeTree;
+extern StructRNA RNA_CompositorNodeValToRGB;
+extern StructRNA RNA_CompositorNodeValue;
+extern StructRNA RNA_CompositorNodeVecBlur;
+extern StructRNA RNA_CompositorNodeViewer;
+extern StructRNA RNA_CompositorNodeZcombine;
+extern StructRNA RNA_ConsoleLine;
+extern StructRNA RNA_Constraint;
+extern StructRNA RNA_ConstraintTarget;
+extern StructRNA RNA_Context;
+extern StructRNA RNA_ControlFluidSettings;
+extern StructRNA RNA_Controller;
+extern StructRNA RNA_CopyLocationConstraint;
+extern StructRNA RNA_CopyRotationConstraint;
+extern StructRNA RNA_CopyScaleConstraint;
+extern StructRNA RNA_CopyTransformsConstraint;
+extern StructRNA RNA_Curve;
+extern StructRNA RNA_CurveMap;
+extern StructRNA RNA_CurveMapPoint;
+extern StructRNA RNA_CurveMapping;
+extern StructRNA RNA_CurveModifier;
+extern StructRNA RNA_CurvePoint;
+extern StructRNA RNA_DampedTrackConstraint;
+extern StructRNA RNA_DecimateModifier;
+extern StructRNA RNA_DelaySensor;
+extern StructRNA RNA_DisplaceModifier;
+extern StructRNA RNA_DistortedNoiseTexture;
+extern StructRNA RNA_DomainFluidSettings;
+extern StructRNA RNA_Driver;
+extern StructRNA RNA_DriverTarget;
+extern StructRNA RNA_DriverVariable;
+extern StructRNA RNA_DupliObject;
+extern StructRNA RNA_EdgeSplitModifier;
+extern StructRNA RNA_EditBone;
+extern StructRNA RNA_EffectSequence;
+extern StructRNA RNA_EffectorWeights;
+extern StructRNA RNA_EnumProperty;
+extern StructRNA RNA_EnumPropertyItem;
+extern StructRNA RNA_EnvironmentMap;
+extern StructRNA RNA_EnvironmentMapTexture;
+extern StructRNA RNA_Event;
+extern StructRNA RNA_ExplodeModifier;
+extern StructRNA RNA_ExpressionController;
+extern StructRNA RNA_FCurve;
+extern StructRNA RNA_FCurveSample;
+extern StructRNA RNA_FModifier;
+extern StructRNA RNA_FModifierCycles;
+extern StructRNA RNA_FModifierEnvelope;
+extern StructRNA RNA_FModifierEnvelopeControlPoint;
+extern StructRNA RNA_FModifierFunctionGenerator;
+extern StructRNA RNA_FModifierGenerator;
+extern StructRNA RNA_FModifierLimits;
+extern StructRNA RNA_FModifierNoise;
+extern StructRNA RNA_FModifierPython;
+extern StructRNA RNA_FModifierStepped;
+extern StructRNA RNA_FieldSettings;
+extern StructRNA RNA_FileSelectParams;
+extern StructRNA RNA_FloatProperty;
+extern StructRNA RNA_FloorConstraint;
+extern StructRNA RNA_FluidFluidSettings;
+extern StructRNA RNA_FluidSettings;
+extern StructRNA RNA_FluidSimulationModifier;
+extern StructRNA RNA_FollowPathConstraint;
+extern StructRNA RNA_Function;
+extern StructRNA RNA_GPencilFrame;
+extern StructRNA RNA_GPencilLayer;
+extern StructRNA RNA_GPencilStroke;
+extern StructRNA RNA_GPencilStrokePoint;
+extern StructRNA RNA_GameBooleanProperty;
+extern StructRNA RNA_GameFloatProperty;
+extern StructRNA RNA_GameIntProperty;
+extern StructRNA RNA_GameObjectSettings;
+extern StructRNA RNA_GameProperty;
+extern StructRNA RNA_GameSoftBodySettings;
+extern StructRNA RNA_GameStringProperty;
+extern StructRNA RNA_GameTimerProperty;
+extern StructRNA RNA_GlowSequence;
+extern StructRNA RNA_GreasePencil;
+extern StructRNA RNA_Group;
+extern StructRNA RNA_Header;
+extern StructRNA RNA_HemiLamp;
+extern StructRNA RNA_Histogram;
+extern StructRNA RNA_HookModifier;
+extern StructRNA RNA_ID;
+extern StructRNA RNA_IKParam;
+extern StructRNA RNA_Image;
+extern StructRNA RNA_ImagePaint;
+extern StructRNA RNA_ImageSequence;
+extern StructRNA RNA_ImageTexture;
+extern StructRNA RNA_ImageUser;
+extern StructRNA RNA_InflowFluidSettings;
+extern StructRNA RNA_IntProperty;
+extern StructRNA RNA_Itasc;
+extern StructRNA RNA_JoystickSensor;
+extern StructRNA RNA_Key;
+extern StructRNA RNA_KeyConfig;
+extern StructRNA RNA_KeyMap;
+extern StructRNA RNA_KeyMapItem;
+extern StructRNA RNA_KeyboardSensor;
+extern StructRNA RNA_Keyframe;
+extern StructRNA RNA_KeyingSet;
+extern StructRNA RNA_KeyingSetInfo;
+extern StructRNA RNA_KeyingSetPath;
+extern StructRNA RNA_KinematicConstraint;
+extern StructRNA RNA_Lamp;
+extern StructRNA RNA_LampSkySettings;
+extern StructRNA RNA_LampTextureSlot;
+extern StructRNA RNA_Lattice;
+extern StructRNA RNA_LatticeModifier;
+extern StructRNA RNA_LatticePoint;
+extern StructRNA RNA_Library;
+extern StructRNA RNA_LimitDistanceConstraint;
+extern StructRNA RNA_LimitLocationConstraint;
+extern StructRNA RNA_LimitRotationConstraint;
+extern StructRNA RNA_LimitScaleConstraint;
+extern StructRNA RNA_LockedTrackConstraint;
+extern StructRNA RNA_Macro;
+extern StructRNA RNA_MagicTexture;
+extern StructRNA RNA_MarbleTexture;
+extern StructRNA RNA_MaskModifier;
+extern StructRNA RNA_Material;
+extern StructRNA RNA_MaterialHalo;
+extern StructRNA RNA_MaterialPhysics;
+extern StructRNA RNA_MaterialRaytraceMirror;
+extern StructRNA RNA_MaterialRaytraceTransparency;
+extern StructRNA RNA_MaterialSlot;
+extern StructRNA RNA_MaterialStrand;
+extern StructRNA RNA_MaterialSubsurfaceScattering;
+extern StructRNA RNA_MaterialTextureSlot;
+extern StructRNA RNA_MaterialVolume;
+extern StructRNA RNA_Menu;
+extern StructRNA RNA_Mesh;
+extern StructRNA RNA_MeshColor;
+extern StructRNA RNA_MeshColorLayer;
+extern StructRNA RNA_MeshDeformModifier;
+extern StructRNA RNA_MeshEdge;
+extern StructRNA RNA_MeshFace;
+extern StructRNA RNA_MeshFloatProperty;
+extern StructRNA RNA_MeshFloatPropertyLayer;
+extern StructRNA RNA_MeshIntProperty;
+extern StructRNA RNA_MeshIntPropertyLayer;
+extern StructRNA RNA_MeshSticky;
+extern StructRNA RNA_MeshStringProperty;
+extern StructRNA RNA_MeshStringPropertyLayer;
+extern StructRNA RNA_MeshTextureFace;
+extern StructRNA RNA_MeshTextureFaceLayer;
+extern StructRNA RNA_MeshVertex;
+extern StructRNA RNA_MessageSensor;
+extern StructRNA RNA_MetaBall;
+extern StructRNA RNA_MetaElement;
+extern StructRNA RNA_MetaSequence;
+extern StructRNA RNA_MirrorModifier;
+extern StructRNA RNA_Modifier;
+extern StructRNA RNA_MotionPath;
+extern StructRNA RNA_MotionPathVert;
+extern StructRNA RNA_MouseSensor;
+extern StructRNA RNA_MovieSequence;
+extern StructRNA RNA_MulticamSequence;
+extern StructRNA RNA_MultiresModifier;
+extern StructRNA RNA_MusgraveTexture;
+extern StructRNA RNA_NandController;
+extern StructRNA RNA_NearSensor;
+extern StructRNA RNA_NlaStrip;
+extern StructRNA RNA_NlaTrack;
+extern StructRNA RNA_Node;
+extern StructRNA RNA_NodeGroup;
+extern StructRNA RNA_NodeLink;
+extern StructRNA RNA_NodeSocket;
+extern StructRNA RNA_NodeTree;
+extern StructRNA RNA_NoiseTexture;
+extern StructRNA RNA_NorController;
+extern StructRNA RNA_Object;
+extern StructRNA RNA_ObjectBase;
+extern StructRNA RNA_ObstacleFluidSettings;
+extern StructRNA RNA_Operator;
+extern StructRNA RNA_OperatorFileListElement;
+extern StructRNA RNA_OperatorMousePath;
+extern StructRNA RNA_OperatorProperties;
+extern StructRNA RNA_OperatorStrokeElement;
+extern StructRNA RNA_OperatorTypeMacro;
+extern StructRNA RNA_OrController;
+extern StructRNA RNA_OutflowFluidSettings;
+extern StructRNA RNA_PackedFile;
+extern StructRNA RNA_Paint;
+extern StructRNA RNA_Panel;
+extern StructRNA RNA_Particle;
+extern StructRNA RNA_ParticleBrush;
+extern StructRNA RNA_ParticleDupliWeight;
+extern StructRNA RNA_ParticleEdit;
+extern StructRNA RNA_ParticleFluidSettings;
+extern StructRNA RNA_ParticleHairKey;
+extern StructRNA RNA_ParticleInstanceModifier;
+extern StructRNA RNA_ParticleKey;
+extern StructRNA RNA_ParticleSettings;
+extern StructRNA RNA_ParticleSettingsTextureSlot;
+extern StructRNA RNA_ParticleSystem;
+extern StructRNA RNA_ParticleSystemModifier;
+extern StructRNA RNA_ParticleTarget;
+extern StructRNA RNA_PivotConstraint;
+extern StructRNA RNA_PluginSequence;
+extern StructRNA RNA_PluginTexture;
+extern StructRNA RNA_PointCache;
+extern StructRNA RNA_PointDensity;
+extern StructRNA RNA_PointDensityTexture;
+extern StructRNA RNA_PointLamp;
+extern StructRNA RNA_PointerProperty;
+extern StructRNA RNA_Pose;
+extern StructRNA RNA_PoseBone;
+extern StructRNA RNA_Property;
+extern StructRNA RNA_PropertyGroup;
+extern StructRNA RNA_PropertyGroupItem;
+extern StructRNA RNA_PropertySensor;
+extern StructRNA RNA_PythonConstraint;
+extern StructRNA RNA_PythonController;
+extern StructRNA RNA_RGBANodeSocket;
+extern StructRNA RNA_RadarSensor;
+extern StructRNA RNA_RandomSensor;
+extern StructRNA RNA_RaySensor;
+extern StructRNA RNA_Region;
+extern StructRNA RNA_RenderEngine;
+extern StructRNA RNA_RenderLayer;
+extern StructRNA RNA_RenderPass;
+extern StructRNA RNA_RenderResult;
+extern StructRNA RNA_RenderSettings;
+extern StructRNA RNA_RigidBodyJointConstraint;
+extern StructRNA RNA_SPHFluidSettings;
+extern StructRNA RNA_Scene;
+extern StructRNA RNA_SceneGameData;
+extern StructRNA RNA_SceneRenderLayer;
+extern StructRNA RNA_SceneSequence;
+extern StructRNA RNA_SceneObjects;
+extern StructRNA RNA_Scopes;
+extern StructRNA RNA_Screen;
+extern StructRNA RNA_ScrewModifier;
+extern StructRNA RNA_Sculpt;
+extern StructRNA RNA_Sensor;
+extern StructRNA RNA_Sequence;
+extern StructRNA RNA_SequenceColorBalance;
+extern StructRNA RNA_SequenceCrop;
+extern StructRNA RNA_SequenceEditor;
+extern StructRNA RNA_SequenceElement;
+extern StructRNA RNA_SequenceProxy;
+extern StructRNA RNA_SequenceTransform;
+extern StructRNA RNA_ShaderNode;
+extern StructRNA RNA_ShaderNodeCameraData;
+extern StructRNA RNA_ShaderNodeCombineRGB;
+extern StructRNA RNA_ShaderNodeExtendedMaterial;
+extern StructRNA RNA_ShaderNodeGeometry;
+extern StructRNA RNA_ShaderNodeHueSaturation;
+extern StructRNA RNA_ShaderNodeInvert;
+extern StructRNA RNA_ShaderNodeMapping;
+extern StructRNA RNA_ShaderNodeMaterial;
+extern StructRNA RNA_ShaderNodeMath;
+extern StructRNA RNA_ShaderNodeMixRGB;
+extern StructRNA RNA_ShaderNodeNormal;
+extern StructRNA RNA_ShaderNodeOutput;
+extern StructRNA RNA_ShaderNodeRGB;
+extern StructRNA RNA_ShaderNodeRGBCurve;
+extern StructRNA RNA_ShaderNodeRGBToBW;
+extern StructRNA RNA_ShaderNodeSeparateRGB;
+extern StructRNA RNA_ShaderNodeSqueeze;
+extern StructRNA RNA_ShaderNodeTexture;
+extern StructRNA RNA_ShaderNodeTree;
+extern StructRNA RNA_ShaderNodeValToRGB;
+extern StructRNA RNA_ShaderNodeValue;
+extern StructRNA RNA_ShaderNodeVectorCurve;
+extern StructRNA RNA_ShaderNodeVectorMath;
+extern StructRNA RNA_ShapeKey;
+extern StructRNA RNA_ShapeKeyBezierPoint;
+extern StructRNA RNA_ShapeKeyCurvePoint;
+extern StructRNA RNA_ShapeKeyPoint;
+extern StructRNA RNA_ShrinkwrapConstraint;
+extern StructRNA RNA_ShrinkwrapModifier;
+extern StructRNA RNA_SimpleDeformModifier;
+extern StructRNA RNA_SmokeCollSettings;
+extern StructRNA RNA_SmokeDomainSettings;
+extern StructRNA RNA_SmokeFlowSettings;
+extern StructRNA RNA_SmokeModifier;
+extern StructRNA RNA_SmoothModifier;
+extern StructRNA RNA_SoftBodyModifier;
+extern StructRNA RNA_SoftBodySettings;
+extern StructRNA RNA_SolidifyModifier;
+extern StructRNA RNA_Sound;
+extern StructRNA RNA_SoundSequence;
+extern StructRNA RNA_Space;
+extern StructRNA RNA_SpaceConsole;
+extern StructRNA RNA_SpaceDopeSheetEditor;
+extern StructRNA RNA_SpaceFileBrowser;
+extern StructRNA RNA_SpaceGraphEditor;
+extern StructRNA RNA_SpaceImageEditor;
+extern StructRNA RNA_SpaceInfo;
+extern StructRNA RNA_SpaceLogicEditor;
+extern StructRNA RNA_SpaceNLA;
+extern StructRNA RNA_SpaceNodeEditor;
+extern StructRNA RNA_SpaceOutliner;
+extern StructRNA RNA_SpaceProperties;
+extern StructRNA RNA_SpaceSequenceEditor;
+extern StructRNA RNA_SpaceTextEditor;
+extern StructRNA RNA_SpaceTimeline;
+extern StructRNA RNA_SpaceUVEditor;
+extern StructRNA RNA_SpaceUserPreferences;
+extern StructRNA RNA_SpaceView3D;
+extern StructRNA RNA_SpeedControlSequence;
+extern StructRNA RNA_Spline;
+extern StructRNA RNA_SplineIKConstraint;
+extern StructRNA RNA_SpotLamp;
+extern StructRNA RNA_StretchToConstraint;
+extern StructRNA RNA_StringProperty;
+extern StructRNA RNA_Struct;
+extern StructRNA RNA_StucciTexture;
+extern StructRNA RNA_SubsurfModifier;
+extern StructRNA RNA_SunLamp;
+extern StructRNA RNA_SurfaceCurve;
+extern StructRNA RNA_SurfaceModifier;
+extern StructRNA RNA_TexMapping;
+extern StructRNA RNA_Text;
+extern StructRNA RNA_TextBox;
+extern StructRNA RNA_TextCharacterFormat;
+extern StructRNA RNA_TextCurve;
+extern StructRNA RNA_TextLine;
+extern StructRNA RNA_TextMarker;
+extern StructRNA RNA_Texture;
+extern StructRNA RNA_TextureNode;
+extern StructRNA RNA_TextureNodeBricks;
+extern StructRNA RNA_TextureNodeChecker;
+extern StructRNA RNA_TextureNodeCompose;
+extern StructRNA RNA_TextureNodeCoordinates;
+extern StructRNA RNA_TextureNodeCurveRGB;
+extern StructRNA RNA_TextureNodeCurveTime;
+extern StructRNA RNA_TextureNodeDecompose;
+extern StructRNA RNA_TextureNodeDistance;
+extern StructRNA RNA_TextureNodeHueSaturation;
+extern StructRNA RNA_TextureNodeImage;
+extern StructRNA RNA_TextureNodeInvert;
+extern StructRNA RNA_TextureNodeMath;
+extern StructRNA RNA_TextureNodeMixRGB;
+extern StructRNA RNA_TextureNodeOutput;
+extern StructRNA RNA_TextureNodeRGBToBW;
+extern StructRNA RNA_TextureNodeRotate;
+extern StructRNA RNA_TextureNodeScale;
+extern StructRNA RNA_TextureNodeTexture;
+extern StructRNA RNA_TextureNodeTranslate;
+extern StructRNA RNA_TextureNodeTree;
+extern StructRNA RNA_TextureNodeValToNor;
+extern StructRNA RNA_TextureNodeValToRGB;
+extern StructRNA RNA_TextureNodeViewer;
+extern StructRNA RNA_TextureSlot;
+extern StructRNA RNA_Theme;
+extern StructRNA RNA_ThemeAudioWindow;
+extern StructRNA RNA_ThemeBoneColorSet;
+extern StructRNA RNA_ThemeConsole;
+extern StructRNA RNA_ThemeDopeSheet;
+extern StructRNA RNA_ThemeFileBrowser;
+extern StructRNA RNA_ThemeFontStyle;
+extern StructRNA RNA_ThemeGraphEditor;
+extern StructRNA RNA_ThemeImageEditor;
+extern StructRNA RNA_ThemeInfo;
+extern StructRNA RNA_ThemeLogicEditor;
+extern StructRNA RNA_ThemeNLAEditor;
+extern StructRNA RNA_ThemeNodeEditor;
+extern StructRNA RNA_ThemeOutliner;
+extern StructRNA RNA_ThemeProperties;
+extern StructRNA RNA_ThemeSequenceEditor;
+extern StructRNA RNA_ThemeStyle;
+extern StructRNA RNA_ThemeTextEditor;
+extern StructRNA RNA_ThemeTimeline;
+extern StructRNA RNA_ThemeUserInterface;
+extern StructRNA RNA_ThemeUserPreferences;
+extern StructRNA RNA_ThemeView3D;
+extern StructRNA RNA_ThemeWidgetColors;
+extern StructRNA RNA_ThemeWidgetStateColors;
+extern StructRNA RNA_TimelineMarker;
+extern StructRNA RNA_Timer;
+extern StructRNA RNA_ToolSettings;
+extern StructRNA RNA_TouchSensor;
+extern StructRNA RNA_TrackToConstraint;
+extern StructRNA RNA_TransformConstraint;
+extern StructRNA RNA_TransformSequence;
+extern StructRNA RNA_UILayout;
+extern StructRNA RNA_UIListItem;
+extern StructRNA RNA_UVProjectModifier;
+extern StructRNA RNA_UVProjector;
+extern StructRNA RNA_UnitSettings;
+extern StructRNA RNA_UnknownType;
+extern StructRNA RNA_UserPreferences;
+extern StructRNA RNA_UserPreferencesEdit;
+extern StructRNA RNA_UserPreferencesFilePaths;
+extern StructRNA RNA_UserPreferencesSystem;
+extern StructRNA RNA_UserPreferencesView;
+extern StructRNA RNA_UserSolidLight;
+extern StructRNA RNA_ValueNodeSocket;
+extern StructRNA RNA_VectorFont;
+extern StructRNA RNA_VectorNodeSocket;
+extern StructRNA RNA_VertexGroup;
+extern StructRNA RNA_VertexGroupElement;
+extern StructRNA RNA_VertexPaint;
+extern StructRNA RNA_VoronoiTexture;
+extern StructRNA RNA_VoxelData;
+extern StructRNA RNA_VoxelDataTexture;
+extern StructRNA RNA_WarpModifier;
+extern StructRNA RNA_WaveModifier;
+extern StructRNA RNA_Window;
+extern StructRNA RNA_WindowManager;
+extern StructRNA RNA_WipeSequence;
+extern StructRNA RNA_WoodTexture;
+extern StructRNA RNA_World;
+extern StructRNA RNA_WorldAmbientOcclusion;
+extern StructRNA RNA_WorldMistSettings;
+extern StructRNA RNA_WorldStarsSettings;
+extern StructRNA RNA_WorldTextureSlot;
+extern StructRNA RNA_XnorController;
+extern StructRNA RNA_XorController;
+
 
 /* Pointer
  *
@@ -585,56 +587,55 @@ extern LIBEXPORT StructRNA RNA_XorController;
  * There is also a way to get a pointer with the information about all structs.
  */
 
-LIBEXPORT void RNA_main_pointer_create(struct Main *main, PointerRNA *r_ptr);
-LIBEXPORT void RNA_id_pointer_create(struct ID *id, PointerRNA *r_ptr);
-LIBEXPORT void RNA_pointer_create(struct ID *id, StructRNA *type, void *data, PointerRNA *r_ptr);
+void RNA_main_pointer_create(struct Main *main, PointerRNA *r_ptr);
+void RNA_id_pointer_create(struct ID *id, PointerRNA *r_ptr);
+void RNA_pointer_create(struct ID *id, StructRNA *type, void *data, PointerRNA *r_ptr);
 
-LIBEXPORT void RNA_blender_rna_pointer_create(PointerRNA *r_ptr);
-LIBEXPORT void RNA_pointer_recast(PointerRNA *ptr, PointerRNA *r_ptr);
+void RNA_blender_rna_pointer_create(PointerRNA *r_ptr);
+void RNA_pointer_recast(PointerRNA *ptr, PointerRNA *r_ptr);
 
-extern LIBEXPORT const PointerRNA PointerRNA_NULL;
+extern const PointerRNA PointerRNA_NULL;
 
 /* Structs */
 
-LIBEXPORT const char *RNA_struct_identifier(StructRNA *type);
-LIBEXPORT const char *RNA_struct_ui_name(StructRNA *type);
-LIBEXPORT const char *RNA_struct_ui_description(StructRNA *type);
-LIBEXPORT int RNA_struct_ui_icon(StructRNA *type);
+const char *RNA_struct_identifier(StructRNA *type);
+const char *RNA_struct_ui_name(StructRNA *type);
+const char *RNA_struct_ui_description(StructRNA *type);
+int RNA_struct_ui_icon(StructRNA *type);
 
-LIBEXPORT PropertyRNA *RNA_struct_name_property(StructRNA *type);
-LIBEXPORT PropertyRNA *RNA_struct_iterator_property(StructRNA *type);
-LIBEXPORT StructRNA *RNA_struct_base(StructRNA *type);
+PropertyRNA *RNA_struct_name_property(StructRNA *type);
+PropertyRNA *RNA_struct_iterator_property(StructRNA *type);
+StructRNA *RNA_struct_base(StructRNA *type);
 
-LIBEXPORT int RNA_struct_is_ID(StructRNA *type);
-LIBEXPORT int RNA_struct_is_a(StructRNA *type, StructRNA *srna);
+int RNA_struct_is_ID(StructRNA *type);
+int RNA_struct_is_a(StructRNA *type, StructRNA *srna);
 
-LIBEXPORT StructRegisterFunc RNA_struct_register(StructRNA *type);
-LIBEXPORT StructUnregisterFunc RNA_struct_unregister(StructRNA *type);
-LIBEXPORT void **RNA_struct_instance(PointerRNA *ptr);
+StructRegisterFunc RNA_struct_register(StructRNA *type);
+StructUnregisterFunc RNA_struct_unregister(StructRNA *type);
 void **RNA_struct_instance(PointerRNA *ptr);
 
-LIBEXPORT void *RNA_struct_py_type_get(StructRNA *srna);
-LIBEXPORT void RNA_struct_py_type_set(StructRNA *srna, void *py_type);
+void *RNA_struct_py_type_get(StructRNA *srna);
+void RNA_struct_py_type_set(StructRNA *srna, void *py_type);
 
-LIBEXPORT void *RNA_struct_blender_type_get(StructRNA *srna);
-LIBEXPORT void RNA_struct_blender_type_set(StructRNA *srna, void *blender_type);
+void *RNA_struct_blender_type_get(StructRNA *srna);
+void RNA_struct_blender_type_set(StructRNA *srna, void *blender_type);
 
-LIBEXPORT struct IDProperty *RNA_struct_idprops(PointerRNA *ptr, int create);
-LIBEXPORT int RNA_struct_idprops_check(StructRNA *srna);
-LIBEXPORT int RNA_struct_idprops_register_check(StructRNA *type);
+struct IDProperty *RNA_struct_idprops(PointerRNA *ptr, int create);
+int RNA_struct_idprops_check(StructRNA *srna);
+int RNA_struct_idprops_register_check(StructRNA *type);
 int RNA_struct_idprops_unset(PointerRNA *ptr, const char *identifier);
 
-LIBEXPORT PropertyRNA *RNA_struct_find_property(PointerRNA *ptr, const char *identifier);
-LIBEXPORT int RNA_struct_contains_property(PointerRNA *ptr, PropertyRNA *prop_test);
+PropertyRNA *RNA_struct_find_property(PointerRNA *ptr, const char *identifier);
+int RNA_struct_contains_property(PointerRNA *ptr, PropertyRNA *prop_test);
 
 /* lower level functions for access to type properties */
-LIBEXPORT const struct ListBase *RNA_struct_type_properties(StructRNA *srna);
-LIBEXPORT PropertyRNA *RNA_struct_type_find_property(StructRNA *srna, const char *identifier);
+const struct ListBase *RNA_struct_type_properties(StructRNA *srna);
+PropertyRNA *RNA_struct_type_find_property(StructRNA *srna, const char *identifier);
 
-LIBEXPORT FunctionRNA *RNA_struct_find_function(PointerRNA *ptr, const char *identifier);
-LIBEXPORT const struct ListBase *RNA_struct_type_functions(StructRNA *srna);
+FunctionRNA *RNA_struct_find_function(PointerRNA *ptr, const char *identifier);
+const struct ListBase *RNA_struct_type_functions(StructRNA *srna);
 
-LIBEXPORT char *RNA_struct_name_get_alloc(PointerRNA *ptr, char *fixedbuf, int fixedlen);
+char *RNA_struct_name_get_alloc(PointerRNA *ptr, char *fixedbuf, int fixedlen);
 
 /* Properties
  *
@@ -643,143 +644,143 @@ LIBEXPORT char *RNA_struct_name_get_alloc(PointerRNA *ptr, char *fixedbuf, int f
 
 /* Property Information */
 
-LIBEXPORT const char *RNA_property_identifier(PropertyRNA *prop);
-LIBEXPORT const char *RNA_property_description(PropertyRNA *prop);
+const char *RNA_property_identifier(PropertyRNA *prop);
+const char *RNA_property_description(PropertyRNA *prop);
 
-LIBEXPORT PropertyType RNA_property_type(PropertyRNA *prop);
-LIBEXPORT PropertySubType RNA_property_subtype(PropertyRNA *prop);
-LIBEXPORT PropertyUnit RNA_property_unit(PropertyRNA *prop);
-LIBEXPORT int RNA_property_flag(PropertyRNA *prop);
+PropertyType RNA_property_type(PropertyRNA *prop);
+PropertySubType RNA_property_subtype(PropertyRNA *prop);
+PropertyUnit RNA_property_unit(PropertyRNA *prop);
+int RNA_property_flag(PropertyRNA *prop);
 void *RNA_property_py_data_get(PropertyRNA *prop);
 
-LIBEXPORT int RNA_property_array_length(PointerRNA *ptr, PropertyRNA *prop);
-LIBEXPORT int RNA_property_array_check(PointerRNA *ptr, PropertyRNA *prop);
-LIBEXPORT int RNA_property_multi_array_length(PointerRNA *ptr, PropertyRNA *prop, int dimension);
-LIBEXPORT int RNA_property_array_dimension(PointerRNA *ptr, PropertyRNA *prop, int length[]);
-LIBEXPORT char RNA_property_array_item_char(PropertyRNA *prop, int index);
-LIBEXPORT int RNA_property_array_item_index(PropertyRNA *prop, char name);
+int RNA_property_array_length(PointerRNA *ptr, PropertyRNA *prop);
+int RNA_property_array_check(PropertyRNA *prop);
+int RNA_property_multi_array_length(PointerRNA *ptr, PropertyRNA *prop, int dimension);
+int RNA_property_array_dimension(PointerRNA *ptr, PropertyRNA *prop, int length[]);
+char RNA_property_array_item_char(PropertyRNA *prop, int index);
+int RNA_property_array_item_index(PropertyRNA *prop, char name);
 
-LIBEXPORT int RNA_property_string_maxlength(PropertyRNA *prop);
+int RNA_property_string_maxlength(PropertyRNA *prop);
 
-LIBEXPORT const char *RNA_property_ui_name(PropertyRNA *prop);
-LIBEXPORT const char *RNA_property_ui_description(PropertyRNA *prop);
-LIBEXPORT int RNA_property_ui_icon(PropertyRNA *prop);
+const char *RNA_property_ui_name(PropertyRNA *prop);
+const char *RNA_property_ui_description(PropertyRNA *prop);
+int RNA_property_ui_icon(PropertyRNA *prop);
 
 /* Dynamic Property Information */
 
-LIBEXPORT void RNA_property_int_range(PointerRNA *ptr, PropertyRNA *prop, int *hardmin, int *hardmax);
-LIBEXPORT void RNA_property_int_ui_range(PointerRNA *ptr, PropertyRNA *prop, int *softmin, int *softmax, int *step);
+void RNA_property_int_range(PointerRNA *ptr, PropertyRNA *prop, int *hardmin, int *hardmax);
+void RNA_property_int_ui_range(PointerRNA *ptr, PropertyRNA *prop, int *softmin, int *softmax, int *step);
 
-LIBEXPORT void RNA_property_float_range(PointerRNA *ptr, PropertyRNA *prop, float *hardmin, float *hardmax);
-LIBEXPORT void RNA_property_float_ui_range(PointerRNA *ptr, PropertyRNA *prop, float *softmin, float *softmax, float *step, float *precision);
+void RNA_property_float_range(PointerRNA *ptr, PropertyRNA *prop, float *hardmin, float *hardmax);
+void RNA_property_float_ui_range(PointerRNA *ptr, PropertyRNA *prop, float *softmin, float *softmax, float *step, float *precision);
 
-LIBEXPORT int RNA_property_float_clamp(PointerRNA *ptr, PropertyRNA *prop, float *value);
-LIBEXPORT int RNA_property_int_clamp(PointerRNA *ptr, PropertyRNA *prop, int *value);
+int RNA_property_float_clamp(PointerRNA *ptr, PropertyRNA *prop, float *value);
+int RNA_property_int_clamp(PointerRNA *ptr, PropertyRNA *prop, int *value);
 
-LIBEXPORT int RNA_enum_identifier(EnumPropertyItem *item, const int value, const char **identifier);
-LIBEXPORT int RNA_enum_bitflag_identifiers(EnumPropertyItem *item, const int value, const char **identifier);
-LIBEXPORT int RNA_enum_name(EnumPropertyItem *item, const int value, const char **name);
-LIBEXPORT int RNA_enum_description(EnumPropertyItem *item, const int value, const char **description);
+int RNA_enum_identifier(EnumPropertyItem *item, const int value, const char **identifier);
+int RNA_enum_bitflag_identifiers(EnumPropertyItem *item, const int value, const char **identifier);
+int RNA_enum_name(EnumPropertyItem *item, const int value, const char **name);
+int RNA_enum_description(EnumPropertyItem *item, const int value, const char **description);
 
-LIBEXPORT void RNA_property_enum_items(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, EnumPropertyItem **item, int *totitem, int *free);
-LIBEXPORT int RNA_property_enum_value(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const char *identifier, int *value);
-LIBEXPORT int RNA_property_enum_identifier(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **identifier);
-LIBEXPORT int RNA_property_enum_name(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **name);
-LIBEXPORT int RNA_property_enum_bitflag_identifiers(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **identifier);
+void RNA_property_enum_items(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, EnumPropertyItem **item, int *totitem, int *free);
+int RNA_property_enum_value(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const char *identifier, int *value);
+int RNA_property_enum_identifier(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **identifier);
+int RNA_property_enum_name(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **name);
+int RNA_property_enum_bitflag_identifiers(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **identifier);
 
-LIBEXPORT StructRNA *RNA_property_pointer_type(PointerRNA *ptr, PropertyRNA *prop);
-LIBEXPORT int RNA_property_pointer_poll(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *value);
+StructRNA *RNA_property_pointer_type(PointerRNA *ptr, PropertyRNA *prop);
+int RNA_property_pointer_poll(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *value);
 
-LIBEXPORT int RNA_property_editable(PointerRNA *ptr, PropertyRNA *prop);
-LIBEXPORT int RNA_property_editable_index(PointerRNA *ptr, PropertyRNA *prop, int index);
-LIBEXPORT int RNA_property_editable_flag(PointerRNA *ptr, PropertyRNA *prop); /* without lib check, only checks the flag */
-LIBEXPORT int RNA_property_animateable(PointerRNA *ptr, PropertyRNA *prop);
-LIBEXPORT int RNA_property_animated(PointerRNA *ptr, PropertyRNA *prop);
-LIBEXPORT int RNA_property_path_from_ID_check(PointerRNA *ptr, PropertyRNA *prop); /* slow, use with care */
+int RNA_property_editable(PointerRNA *ptr, PropertyRNA *prop);
+int RNA_property_editable_index(PointerRNA *ptr, PropertyRNA *prop, int index);
+int RNA_property_editable_flag(PointerRNA *ptr, PropertyRNA *prop); /* without lib check, only checks the flag */
+int RNA_property_animateable(PointerRNA *ptr, PropertyRNA *prop);
+int RNA_property_animated(PointerRNA *ptr, PropertyRNA *prop);
+int RNA_property_path_from_ID_check(PointerRNA *ptr, PropertyRNA *prop); /* slow, use with care */
 
-LIBEXPORT void RNA_property_update(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop);
-LIBEXPORT void RNA_property_update_main(struct Main *bmain, struct Scene *scene, PointerRNA *ptr, PropertyRNA *prop);
-LIBEXPORT int RNA_property_update_check(struct PropertyRNA *prop);
+void RNA_property_update(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop);
+void RNA_property_update_main(struct Main *bmain, struct Scene *scene, PointerRNA *ptr, PropertyRNA *prop);
+int RNA_property_update_check(struct PropertyRNA *prop);
 
 /* Property Data */
 
-LIBEXPORT int RNA_property_boolean_get(PointerRNA *ptr, PropertyRNA *prop);
-LIBEXPORT void RNA_property_boolean_set(PointerRNA *ptr, PropertyRNA *prop, int value);
-LIBEXPORT void RNA_property_boolean_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values);
-LIBEXPORT int RNA_property_boolean_get_index(PointerRNA *ptr, PropertyRNA *prop, int index);
-LIBEXPORT void RNA_property_boolean_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *values);
-LIBEXPORT void RNA_property_boolean_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int value);
-LIBEXPORT int RNA_property_boolean_get_default(PointerRNA *ptr, PropertyRNA *prop);
-LIBEXPORT void RNA_property_boolean_get_default_array(PointerRNA *ptr, PropertyRNA *prop, int *values);
-LIBEXPORT int RNA_property_boolean_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index);
-
-LIBEXPORT int RNA_property_int_get(PointerRNA *ptr, PropertyRNA *prop);
-LIBEXPORT void RNA_property_int_set(PointerRNA *ptr, PropertyRNA *prop, int value);
-LIBEXPORT void RNA_property_int_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values);
-LIBEXPORT void RNA_property_int_get_array_range(PointerRNA *ptr, PropertyRNA *prop, int values[2]);
-LIBEXPORT int RNA_property_int_get_index(PointerRNA *ptr, PropertyRNA *prop, int index);
-LIBEXPORT void RNA_property_int_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *values);
-LIBEXPORT void RNA_property_int_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int value);
-LIBEXPORT int RNA_property_int_get_default(PointerRNA *ptr, PropertyRNA *prop);
-LIBEXPORT void RNA_property_int_get_default_array(PointerRNA *ptr, PropertyRNA *prop, int *values);
-LIBEXPORT int RNA_property_int_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index);
-
-LIBEXPORT float RNA_property_float_get(PointerRNA *ptr, PropertyRNA *prop);
-LIBEXPORT void RNA_property_float_set(PointerRNA *ptr, PropertyRNA *prop, float value);
-LIBEXPORT void RNA_property_float_get_array(PointerRNA *ptr, PropertyRNA *prop, float *values);
-LIBEXPORT void RNA_property_float_get_array_range(PointerRNA *ptr, PropertyRNA *prop, float values[2]);
-LIBEXPORT float RNA_property_float_get_index(PointerRNA *ptr, PropertyRNA *prop, int index);
-LIBEXPORT void RNA_property_float_set_array(PointerRNA *ptr, PropertyRNA *prop, const float *values);
-LIBEXPORT void RNA_property_float_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, float value);
-LIBEXPORT float RNA_property_float_get_default(PointerRNA *ptr, PropertyRNA *prop);
-LIBEXPORT void RNA_property_float_get_default_array(PointerRNA *ptr, PropertyRNA *prop, float *values);
-LIBEXPORT float RNA_property_float_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index);
-
-LIBEXPORT void RNA_property_string_get(PointerRNA *ptr, PropertyRNA *prop, char *value);
-LIBEXPORT char *RNA_property_string_get_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen);
-LIBEXPORT void RNA_property_string_set(PointerRNA *ptr, PropertyRNA *prop, const char *value);
-LIBEXPORT int RNA_property_string_length(PointerRNA *ptr, PropertyRNA *prop);
-LIBEXPORT void RNA_property_string_get_default(PointerRNA *ptr, PropertyRNA *prop, char *value);
-LIBEXPORT char *RNA_property_string_get_default_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen);
-LIBEXPORT int RNA_property_string_default_length(PointerRNA *ptr, PropertyRNA *prop);
-
-LIBEXPORT int RNA_property_enum_get(PointerRNA *ptr, PropertyRNA *prop);
-LIBEXPORT void RNA_property_enum_set(PointerRNA *ptr, PropertyRNA *prop, int value);
-LIBEXPORT int RNA_property_enum_get_default(PointerRNA *ptr, PropertyRNA *prop);
+int RNA_property_boolean_get(PointerRNA *ptr, PropertyRNA *prop);
+void RNA_property_boolean_set(PointerRNA *ptr, PropertyRNA *prop, int value);
+void RNA_property_boolean_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values);
+int RNA_property_boolean_get_index(PointerRNA *ptr, PropertyRNA *prop, int index);
+void RNA_property_boolean_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *values);
+void RNA_property_boolean_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int value);
+int RNA_property_boolean_get_default(PointerRNA *ptr, PropertyRNA *prop);
+void RNA_property_boolean_get_default_array(PointerRNA *ptr, PropertyRNA *prop, int *values);
+int RNA_property_boolean_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index);
+
+int RNA_property_int_get(PointerRNA *ptr, PropertyRNA *prop);
+void RNA_property_int_set(PointerRNA *ptr, PropertyRNA *prop, int value);
+void RNA_property_int_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values);
+void RNA_property_int_get_array_range(PointerRNA *ptr, PropertyRNA *prop, int values[2]);
+int RNA_property_int_get_index(PointerRNA *ptr, PropertyRNA *prop, int index);
+void RNA_property_int_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *values);
+void RNA_property_int_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int value);
+int RNA_property_int_get_default(PointerRNA *ptr, PropertyRNA *prop);
+void RNA_property_int_get_default_array(PointerRNA *ptr, PropertyRNA *prop, int *values);
+int RNA_property_int_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index);
+
+float RNA_property_float_get(PointerRNA *ptr, PropertyRNA *prop);
+void RNA_property_float_set(PointerRNA *ptr, PropertyRNA *prop, float value);
+void RNA_property_float_get_array(PointerRNA *ptr, PropertyRNA *prop, float *values);
+void RNA_property_float_get_array_range(PointerRNA *ptr, PropertyRNA *prop, float values[2]);
+float RNA_property_float_get_index(PointerRNA *ptr, PropertyRNA *prop, int index);
+void RNA_property_float_set_array(PointerRNA *ptr, PropertyRNA *prop, const float *values);
+void RNA_property_float_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, float value);
+float RNA_property_float_get_default(PointerRNA *ptr, PropertyRNA *prop);
+void RNA_property_float_get_default_array(PointerRNA *ptr, PropertyRNA *prop, float *values);
+float RNA_property_float_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index);
+
+void RNA_property_string_get(PointerRNA *ptr, PropertyRNA *prop, char *value);
+char *RNA_property_string_get_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen);
+void RNA_property_string_set(PointerRNA *ptr, PropertyRNA *prop, const char *value);
+int RNA_property_string_length(PointerRNA *ptr, PropertyRNA *prop);
+void RNA_property_string_get_default(PointerRNA *ptr, PropertyRNA *prop, char *value);
+char *RNA_property_string_get_default_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen);
+int RNA_property_string_default_length(PointerRNA *ptr, PropertyRNA *prop);
+
+int RNA_property_enum_get(PointerRNA *ptr, PropertyRNA *prop);
+void RNA_property_enum_set(PointerRNA *ptr, PropertyRNA *prop, int value);
+int RNA_property_enum_get_default(PointerRNA *ptr, PropertyRNA *prop);
 void *RNA_property_enum_py_data_get(PropertyRNA *prop);
 
-LIBEXPORT PointerRNA RNA_property_pointer_get(PointerRNA *ptr, PropertyRNA *prop);
-LIBEXPORT void RNA_property_pointer_set(PointerRNA *ptr, PropertyRNA *prop, PointerRNA ptr_value);
-LIBEXPORT PointerRNA RNA_property_pointer_get_default(PointerRNA *ptr, PropertyRNA *prop);
+PointerRNA RNA_property_pointer_get(PointerRNA *ptr, PropertyRNA *prop);
+void RNA_property_pointer_set(PointerRNA *ptr, PropertyRNA *prop, PointerRNA ptr_value);
+PointerRNA RNA_property_pointer_get_default(PointerRNA *ptr, PropertyRNA *prop);
 
-LIBEXPORT void RNA_property_collection_begin(PointerRNA *ptr, PropertyRNA *prop, CollectionPropertyIterator *iter);
-LIBEXPORT void RNA_property_collection_next(CollectionPropertyIterator *iter);
-LIBEXPORT void RNA_property_collection_end(CollectionPropertyIterator *iter);
-LIBEXPORT int RNA_property_collection_length(PointerRNA *ptr, PropertyRNA *prop);
-LIBEXPORT int RNA_property_collection_lookup_index(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *t_ptr);
-LIBEXPORT int RNA_property_collection_lookup_int(PointerRNA *ptr, PropertyRNA *prop, int key, PointerRNA *r_ptr);
-LIBEXPORT int RNA_property_collection_lookup_string(PointerRNA *ptr, PropertyRNA *prop, const char *key, PointerRNA *r_ptr);
-LIBEXPORT int RNA_property_collection_type_get(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *r_ptr);
+void RNA_property_collection_begin(PointerRNA *ptr, PropertyRNA *prop, CollectionPropertyIterator *iter);
+void RNA_property_collection_next(CollectionPropertyIterator *iter);
+void RNA_property_collection_end(CollectionPropertyIterator *iter);
+int RNA_property_collection_length(PointerRNA *ptr, PropertyRNA *prop);
+int RNA_property_collection_lookup_index(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *t_ptr);
+int RNA_property_collection_lookup_int(PointerRNA *ptr, PropertyRNA *prop, int key, PointerRNA *r_ptr);
+int RNA_property_collection_lookup_string(PointerRNA *ptr, PropertyRNA *prop, const char *key, PointerRNA *r_ptr);
+int RNA_property_collection_type_get(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *r_ptr);
 
 /* efficient functions to set properties for arrays */
-LIBEXPORT int RNA_property_collection_raw_array(PointerRNA *ptr, PropertyRNA *prop, PropertyRNA *itemprop, RawArray *array);
-LIBEXPORT int RNA_property_collection_raw_get(struct ReportList *reports, PointerRNA *ptr, PropertyRNA *prop, const char *propname, void *array, RawPropertyType type, int len);
-LIBEXPORT int RNA_property_collection_raw_set(struct ReportList *reports, PointerRNA *ptr, PropertyRNA *prop, const char *propname, void *array, RawPropertyType type, int len);
-LIBEXPORT int RNA_raw_type_sizeof(RawPropertyType type);
+int RNA_property_collection_raw_array(PointerRNA *ptr, PropertyRNA *prop, PropertyRNA *itemprop, RawArray *array);
+int RNA_property_collection_raw_get(struct ReportList *reports, PointerRNA *ptr, PropertyRNA *prop, const char *propname, void *array, RawPropertyType type, int len);
+int RNA_property_collection_raw_set(struct ReportList *reports, PointerRNA *ptr, PropertyRNA *prop, const char *propname, void *array, RawPropertyType type, int len);
+int RNA_raw_type_sizeof(RawPropertyType type);
 RawPropertyType RNA_property_raw_type(PropertyRNA *prop);
 
 
 /* to create ID property groups */
-LIBEXPORT void RNA_property_pointer_add(PointerRNA *ptr, PropertyRNA *prop);
-LIBEXPORT void RNA_property_pointer_remove(PointerRNA *ptr, PropertyRNA *prop);
-LIBEXPORT void RNA_property_collection_add(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *r_ptr);
-LIBEXPORT int RNA_property_collection_remove(PointerRNA *ptr, PropertyRNA *prop, int key);
-LIBEXPORT void RNA_property_collection_clear(PointerRNA *ptr, PropertyRNA *prop);
-LIBEXPORT int RNA_property_collection_move(PointerRNA *ptr, PropertyRNA *prop, int key, int pos);
+void RNA_property_pointer_add(PointerRNA *ptr, PropertyRNA *prop);
+void RNA_property_pointer_remove(PointerRNA *ptr, PropertyRNA *prop);
+void RNA_property_collection_add(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *r_ptr);
+int RNA_property_collection_remove(PointerRNA *ptr, PropertyRNA *prop, int key);
+void RNA_property_collection_clear(PointerRNA *ptr, PropertyRNA *prop);
+int RNA_property_collection_move(PointerRNA *ptr, PropertyRNA *prop, int key, int pos);
 
 /* copy/reset */
-LIBEXPORT int RNA_property_copy(PointerRNA *ptr, PointerRNA *fromptr, PropertyRNA *prop, int index);
-LIBEXPORT int RNA_property_reset(PointerRNA *ptr, PropertyRNA *prop, int index);
+int RNA_property_copy(PointerRNA *ptr, PointerRNA *fromptr, PropertyRNA *prop, int index);
+int RNA_property_reset(PointerRNA *ptr, PropertyRNA *prop, int index);
 
 /* Path
  *
@@ -790,18 +791,18 @@ LIBEXPORT int RNA_property_reset(PointerRNA *ptr, PropertyRNA *prop, int index);
  * particular pointers, which is useful in a number of applications, like
  * UI code or Actions, though efficiency is a concern. */
 
-LIBEXPORT char *RNA_path_append(const char *path, PointerRNA *ptr, PropertyRNA *prop,
+char *RNA_path_append(const char *path, PointerRNA *ptr, PropertyRNA *prop,
 	int intkey, const char *strkey);
-LIBEXPORT char *RNA_path_back(const char *path);
+char *RNA_path_back(const char *path);
 
-LIBEXPORT int RNA_path_resolve(PointerRNA *ptr, const char *path,
+int RNA_path_resolve(PointerRNA *ptr, const char *path,
 		PointerRNA *r_ptr, PropertyRNA **r_prop);
 
-LIBEXPORT int RNA_path_resolve_full(PointerRNA *ptr, const char *path,
+int RNA_path_resolve_full(PointerRNA *ptr, const char *path,
 		PointerRNA *r_ptr, PropertyRNA **r_prop, int *index);
 
-LIBEXPORT char *RNA_path_from_ID_to_struct(PointerRNA *ptr);
-LIBEXPORT char *RNA_path_from_ID_to_property(PointerRNA *ptr, PropertyRNA *prop);
+char *RNA_path_from_ID_to_struct(PointerRNA *ptr);
+char *RNA_path_from_ID_to_property(PointerRNA *ptr, PropertyRNA *prop);
 
 /* Quick name based property access
  *
@@ -812,48 +813,48 @@ LIBEXPORT char *RNA_path_from_ID_to_property(PointerRNA *ptr, PropertyRNA *prop)
  * There is no support for pointers and collections here yet, these can be 
  * added when ID properties support them. */
 
-LIBEXPORT int RNA_boolean_get(PointerRNA *ptr, const char *name);
-LIBEXPORT void RNA_boolean_set(PointerRNA *ptr, const char *name, int value);
-LIBEXPORT void RNA_boolean_get_array(PointerRNA *ptr, const char *name, int *values);
-LIBEXPORT void RNA_boolean_set_array(PointerRNA *ptr, const char *name, const int *values);
+int RNA_boolean_get(PointerRNA *ptr, const char *name);
+void RNA_boolean_set(PointerRNA *ptr, const char *name, int value);
+void RNA_boolean_get_array(PointerRNA *ptr, const char *name, int *values);
+void RNA_boolean_set_array(PointerRNA *ptr, const char *name, const int *values);
 
-LIBEXPORT int RNA_int_get(PointerRNA *ptr, const char *name);
-LIBEXPORT void RNA_int_set(PointerRNA *ptr, const char *name, int value);
-LIBEXPORT void RNA_int_get_array(PointerRNA *ptr, const char *name, int *values);
-LIBEXPORT void RNA_int_set_array(PointerRNA *ptr, const char *name, const int *values);
+int RNA_int_get(PointerRNA *ptr, const char *name);
+void RNA_int_set(PointerRNA *ptr, const char *name, int value);
+void RNA_int_get_array(PointerRNA *ptr, const char *name, int *values);
+void RNA_int_set_array(PointerRNA *ptr, const char *name, const int *values);
 
-LIBEXPORT float RNA_float_get(PointerRNA *ptr, const char *name);
-LIBEXPORT void RNA_float_set(PointerRNA *ptr, const char *name, float value);
-LIBEXPORT void RNA_float_get_array(PointerRNA *ptr, const char *name, float *values);
-LIBEXPORT void RNA_float_set_array(PointerRNA *ptr, const char *name, const float *values);
+float RNA_float_get(PointerRNA *ptr, const char *name);
+void RNA_float_set(PointerRNA *ptr, const char *name, float value);
+void RNA_float_get_array(PointerRNA *ptr, const char *name, float *values);
+void RNA_float_set_array(PointerRNA *ptr, const char *name, const float *values);
 
-LIBEXPORT int RNA_enum_get(PointerRNA *ptr, const char *name);
-LIBEXPORT void RNA_enum_set(PointerRNA *ptr, const char *name, int value);
-LIBEXPORT void RNA_enum_set_identifier(PointerRNA *ptr, const char *name, const char *id);
-LIBEXPORT int RNA_enum_is_equal(struct bContext *C, PointerRNA *ptr, const char *name, const char *enumname);
+int RNA_enum_get(PointerRNA *ptr, const char *name);
+void RNA_enum_set(PointerRNA *ptr, const char *name, int value);
+void RNA_enum_set_identifier(PointerRNA *ptr, const char *name, const char *id);
+int RNA_enum_is_equal(struct bContext *C, PointerRNA *ptr, const char *name, const char *enumname);
 
 /* lower level functions that don't use a PointerRNA */
-LIBEXPORT int RNA_enum_value_from_id(EnumPropertyItem *item, const char *identifier, int *value);
-LIBEXPORT int RNA_enum_id_from_value(EnumPropertyItem *item, int value, const char **identifier);
-LIBEXPORT int RNA_enum_icon_from_value(EnumPropertyItem *item, int value, int *icon);
+int RNA_enum_value_from_id(EnumPropertyItem *item, const char *identifier, int *value);
+int RNA_enum_id_from_value(EnumPropertyItem *item, int value, const char **identifier);
+int RNA_enum_icon_from_value(EnumPropertyItem *item, int value, int *icon);
 
-LIBEXPORT void RNA_string_get(PointerRNA *ptr, const char *name, char *value);
-LIBEXPORT char *RNA_string_get_alloc(PointerRNA *ptr, const char *name, char *fixedbuf, int fixedlen);
-LIBEXPORT int RNA_string_length(PointerRNA *ptr, const char *name);
-LIBEXPORT void RNA_string_set(PointerRNA *ptr, const char *name, const char *value);
+void RNA_string_get(PointerRNA *ptr, const char *name, char *value);
+char *RNA_string_get_alloc(PointerRNA *ptr, const char *name, char *fixedbuf, int fixedlen);
+int RNA_string_length(PointerRNA *ptr, const char *name);
+void RNA_string_set(PointerRNA *ptr, const char *name, const char *value);
 
 /**
  * Retrieve the named property from PointerRNA.
  */
-LIBEXPORT PointerRNA RNA_pointer_get(PointerRNA *ptr, const char *name);
+PointerRNA RNA_pointer_get(PointerRNA *ptr, const char *name);
 /* Set the property name of PointerRNA ptr to ptr_value */
-LIBEXPORT void RNA_pointer_set(PointerRNA *ptr, const char *name, PointerRNA ptr_value);
-LIBEXPORT void RNA_pointer_add(PointerRNA *ptr, const char *name);
+void RNA_pointer_set(PointerRNA *ptr, const char *name, PointerRNA ptr_value);
+void RNA_pointer_add(PointerRNA *ptr, const char *name);
 
-LIBEXPORT void RNA_collection_begin(PointerRNA *ptr, const char *name, CollectionPropertyIterator *iter);
-LIBEXPORT int RNA_collection_length(PointerRNA *ptr, const char *name);
-LIBEXPORT void RNA_collection_add(PointerRNA *ptr, const char *name, PointerRNA *r_value);
-LIBEXPORT void RNA_collection_clear(PointerRNA *ptr, const char *name);
+void RNA_collection_begin(PointerRNA *ptr, const char *name, CollectionPropertyIterator *iter);
+int RNA_collection_length(PointerRNA *ptr, const char *name);
+void RNA_collection_add(PointerRNA *ptr, const char *name, PointerRNA *r_value);
+void RNA_collection_clear(PointerRNA *ptr, const char *name);
 
 #define RNA_BEGIN(sptr, itemptr, propname) \
 	{ \
@@ -889,65 +890,65 @@ LIBEXPORT void RNA_collection_clear(PointerRNA *ptr, const char *name);
 	}
 
 /* check if the idproperty exists, for operators */
-LIBEXPORT int RNA_property_is_set(PointerRNA *ptr, const char *name);
-LIBEXPORT int RNA_property_is_idprop(PropertyRNA *prop);
+int RNA_property_is_set(PointerRNA *ptr, const char *name);
+int RNA_property_is_idprop(PropertyRNA *prop);
 
 /* python compatible string representation of this property, (must be freed!) */
-LIBEXPORT char *RNA_property_as_string(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop);
-LIBEXPORT char *RNA_pointer_as_string(struct bContext *C, PointerRNA *ptr);
+char *RNA_property_as_string(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop);
+char *RNA_pointer_as_string(struct bContext *C, PointerRNA *ptr);
 
 /* Function */
 
-LIBEXPORT const char *RNA_function_identifier(FunctionRNA *func);
-LIBEXPORT const char *RNA_function_ui_description(FunctionRNA *func);
-LIBEXPORT int RNA_function_flag(FunctionRNA *func);
-LIBEXPORT int RNA_function_defined(FunctionRNA *func);
+const char *RNA_function_identifier(FunctionRNA *func);
+const char *RNA_function_ui_description(FunctionRNA *func);
+int RNA_function_flag(FunctionRNA *func);
+int RNA_function_defined(FunctionRNA *func);
 
-LIBEXPORT PropertyRNA *RNA_function_get_parameter(PointerRNA *ptr, FunctionRNA *func, int index);
-LIBEXPORT PropertyRNA *RNA_function_find_parameter(PointerRNA *ptr, FunctionRNA *func, const char *identifier);
-LIBEXPORT const struct ListBase *RNA_function_defined_parameters(FunctionRNA *func);
+PropertyRNA *RNA_function_get_parameter(PointerRNA *ptr, FunctionRNA *func, int index);
+PropertyRNA *RNA_function_find_parameter(PointerRNA *ptr, FunctionRNA *func, const char *identifier);
+const struct ListBase *RNA_function_defined_parameters(FunctionRNA *func);
 
 /* Utility */
 
-LIBEXPORT ParameterList *RNA_parameter_list_create(ParameterList *parms, PointerRNA *ptr, FunctionRNA *func);
-LIBEXPORT void RNA_parameter_list_free(ParameterList *parms);
-LIBEXPORT int  RNA_parameter_list_size(ParameterList *parms);
-LIBEXPORT int  RNA_parameter_list_arg_count(ParameterList *parms);
-LIBEXPORT int  RNA_parameter_list_ret_count(ParameterList *parms);
-
-LIBEXPORT void RNA_parameter_list_begin(ParameterList *parms, ParameterIterator *iter);
-LIBEXPORT void RNA_parameter_list_next(ParameterIterator *iter);
-LIBEXPORT void RNA_parameter_list_end(ParameterIterator *iter);
-
-LIBEXPORT void RNA_parameter_get(ParameterList *parms, PropertyRNA *parm, void **value);
-LIBEXPORT void RNA_parameter_get_lookup(ParameterList *parms, const char *identifier, void **value);
-LIBEXPORT void RNA_parameter_set(ParameterList *parms, PropertyRNA *parm, const void *value);
-LIBEXPORT void RNA_parameter_set_lookup(ParameterList *parms, const char *identifier, const void *value);
-LIBEXPORT int RNA_parameter_length_get(ParameterList *parms, PropertyRNA *parm);
-LIBEXPORT int RNA_parameter_length_get_data(ParameterList *parms, PropertyRNA *parm, void *data);
-LIBEXPORT void RNA_parameter_length_set(ParameterList *parms, PropertyRNA *parm, int length);
-LIBEXPORT void RNA_parameter_length_set_data(ParameterList *parms, PropertyRNA *parm, void *data, int length);
-
-LIBEXPORT int RNA_function_call(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, ParameterList *parms);
-LIBEXPORT int RNA_function_call_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, ParameterList *parms);
-
-LIBEXPORT int RNA_function_call_direct(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, const char *format, ...)
+ParameterList *RNA_parameter_list_create(ParameterList *parms, PointerRNA *ptr, FunctionRNA *func);
+void RNA_parameter_list_free(ParameterList *parms);
+int  RNA_parameter_list_size(ParameterList *parms);
+int  RNA_parameter_list_arg_count(ParameterList *parms);
+int  RNA_parameter_list_ret_count(ParameterList *parms);
+
+void RNA_parameter_list_begin(ParameterList *parms, ParameterIterator *iter);
+void RNA_parameter_list_next(ParameterIterator *iter);
+void RNA_parameter_list_end(ParameterIterator *iter);
+
+void RNA_parameter_get(ParameterList *parms, PropertyRNA *parm, void **value);
+void RNA_parameter_get_lookup(ParameterList *parms, const char *identifier, void **value);
+void RNA_parameter_set(ParameterList *parms, PropertyRNA *parm, const void *value);
+void RNA_parameter_set_lookup(ParameterList *parms, const char *identifier, const void *value);
+int RNA_parameter_length_get(ParameterList *parms, PropertyRNA *parm);
+int RNA_parameter_length_get_data(ParameterList *parms, PropertyRNA *parm, void *data);
+void RNA_parameter_length_set(ParameterList *parms, PropertyRNA *parm, int length);
+void RNA_parameter_length_set_data(ParameterList *parms, PropertyRNA *parm, void *data, int length);
+
+int RNA_function_call(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, ParameterList *parms);
+int RNA_function_call_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, ParameterList *parms);
+
+int RNA_function_call_direct(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, const char *format, ...)
 #ifdef __GNUC__
 __attribute__ ((format (printf, 5, 6)))
 #endif
 ;
-LIBEXPORT int RNA_function_call_direct_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, const char *format, ...)
+int RNA_function_call_direct_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, const char *format, ...)
 #ifdef __GNUC__
 __attribute__ ((format (printf, 5, 6)))
 #endif
 ;
-LIBEXPORT int RNA_function_call_direct_va(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, const char *format, va_list args);
-LIBEXPORT int RNA_function_call_direct_va_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, const char *format, va_list args);
+int RNA_function_call_direct_va(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, FunctionRNA *func, const char *format, va_list args);
+int RNA_function_call_direct_va_lookup(struct bContext *C, struct ReportList *reports, PointerRNA *ptr, const char *identifier, const char *format, va_list args);
 
 /* ID */
 
-LIBEXPORT short RNA_type_to_ID_code(StructRNA *type);
-LIBEXPORT StructRNA *ID_code_to_RNA_type(short idcode);
+short RNA_type_to_ID_code(StructRNA *type);
+StructRNA *ID_code_to_RNA_type(short idcode);
 
 void RNA_warning(const char *format, ...)
 #ifdef __GNUC__
diff --git a/source/blender/makesrna/RNA_types.h b/source/blender/makesrna/RNA_types.h
index 3053a1c33bc2ac01a43ef77ec72e5a2fc3c058a0..f8199074f27bac48e9b4fcfb02faaa4e837311fe 100644
--- a/source/blender/makesrna/RNA_types.h
+++ b/source/blender/makesrna/RNA_types.h
@@ -36,18 +36,6 @@
 extern "C" {
 #endif
 
-#ifndef LIBEXPORT
-#ifdef _WIN32
-#ifdef BLENDER_PLUGIN
-#define LIBEXPORT __declspec(dllimport)
-#else
-#define LIBEXPORT __declspec(dllexport)
-#endif
-#else
-#define LIBEXPORT
-#endif
-#endif
-
 struct ParameterList;
 struct FunctionRNA;
 struct PropertyRNA;
@@ -293,7 +281,7 @@ typedef struct ParameterList {
 
 typedef struct ParameterIterator {
 	struct ParameterList *parms;
-	PointerRNA funcptr;
+	/* PointerRNA funcptr; */ /*UNUSED*/
 	void *data;
 	int size, offset;
 
diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c
index 0ebe73dfe365f9c76b71015c87e753072c27553f..7da538e171b909eb50ac83a569efaf16cefd1074 100644
--- a/source/blender/makesrna/intern/makesrna.c
+++ b/source/blender/makesrna/intern/makesrna.c
@@ -516,7 +516,7 @@ static char *rna_def_property_get_func(FILE *f, StructRNA *srna, PropertyRNA *pr
 	switch(prop->type) {
 		case PROP_STRING: {
 			StringPropertyRNA *sprop= (StringPropertyRNA*)prop;
-			fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, char *value)\n", func);
+			fprintf(f, "void %s(PointerRNA *ptr, char *value)\n", func);
 			fprintf(f, "{\n");
 			if(manualfunc) {
 				fprintf(f, "	%s(ptr, value);\n", manualfunc);
@@ -532,7 +532,7 @@ static char *rna_def_property_get_func(FILE *f, StructRNA *srna, PropertyRNA *pr
 			break;
 		}
 		case PROP_POINTER: {
-			fprintf(f, "LIBEXPORT PointerRNA %s(PointerRNA *ptr)\n", func);
+			fprintf(f, "PointerRNA %s(PointerRNA *ptr)\n", func);
 			fprintf(f, "{\n");
 			if(manualfunc) {
 				fprintf(f, "	return %s(ptr);\n", manualfunc);
@@ -567,9 +567,9 @@ static char *rna_def_property_get_func(FILE *f, StructRNA *srna, PropertyRNA *pr
 		default:
 			if(prop->arraydimension) {
 				if(prop->flag & PROP_DYNAMIC)
-					fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, %s values[])\n", func, rna_type_type(prop));
+					fprintf(f, "void %s(PointerRNA *ptr, %s values[])\n", func, rna_type_type(prop));
 				else
-					fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, %s values[%d])\n", func, rna_type_type(prop), prop->totarraylength);
+					fprintf(f, "void %s(PointerRNA *ptr, %s values[%d])\n", func, rna_type_type(prop), prop->totarraylength);
 				fprintf(f, "{\n");
 
 				if(manualfunc) {
@@ -614,7 +614,7 @@ static char *rna_def_property_get_func(FILE *f, StructRNA *srna, PropertyRNA *pr
 				fprintf(f, "}\n\n");
 			}
 			else {
-				fprintf(f, "LIBEXPORT %s %s(PointerRNA *ptr)\n", rna_type_type(prop), func);
+				fprintf(f, "%s %s(PointerRNA *ptr)\n", rna_type_type(prop), func);
 				fprintf(f, "{\n");
 
 				if(manualfunc) {
@@ -728,7 +728,7 @@ static char *rna_def_property_set_func(FILE *f, StructRNA *srna, PropertyRNA *pr
 	switch(prop->type) {
 		case PROP_STRING: {
 			StringPropertyRNA *sprop= (StringPropertyRNA*)prop;
-			fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, const char *value)\n", func);
+			fprintf(f, "void %s(PointerRNA *ptr, const char *value)\n", func);
 			fprintf(f, "{\n");
 			if(manualfunc) {
 				fprintf(f, "	%s(ptr, value);\n", manualfunc);
@@ -744,7 +744,7 @@ static char *rna_def_property_set_func(FILE *f, StructRNA *srna, PropertyRNA *pr
 			break;
 		}
 		case PROP_POINTER: {
-			fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, PointerRNA value)\n", func);
+			fprintf(f, "void %s(PointerRNA *ptr, PointerRNA value)\n", func);
 			fprintf(f, "{\n");
 			if(manualfunc) {
 				fprintf(f, "	%s(ptr, value);\n", manualfunc);
@@ -781,9 +781,9 @@ static char *rna_def_property_set_func(FILE *f, StructRNA *srna, PropertyRNA *pr
 		default:
 			if(prop->arraydimension) {
 				if(prop->flag & PROP_DYNAMIC)
-					fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, const %s values[])\n", func, rna_type_type(prop));
+					fprintf(f, "void %s(PointerRNA *ptr, const %s values[])\n", func, rna_type_type(prop));
 				else
-					fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, const %s values[%d])\n", func, rna_type_type(prop), prop->totarraylength);
+					fprintf(f, "void %s(PointerRNA *ptr, const %s values[%d])\n", func, rna_type_type(prop), prop->totarraylength);
 				fprintf(f, "{\n");
 
 				if(manualfunc) {
@@ -841,7 +841,7 @@ static char *rna_def_property_set_func(FILE *f, StructRNA *srna, PropertyRNA *pr
 				fprintf(f, "}\n\n");
 			}
 			else {
-				fprintf(f, "LIBEXPORT void %s(PointerRNA *ptr, %s value)\n", func, rna_type_type(prop));
+				fprintf(f, "void %s(PointerRNA *ptr, %s value)\n", func, rna_type_type(prop));
 				fprintf(f, "{\n");
 
 				if(manualfunc) {
@@ -895,7 +895,7 @@ static char *rna_def_property_length_func(FILE *f, StructRNA *srna, PropertyRNA
 
 		func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "length");
 
-		fprintf(f, "LIBEXPORT int %s(PointerRNA *ptr)\n", func);
+		fprintf(f, "int %s(PointerRNA *ptr)\n", func);
 		fprintf(f, "{\n");
 		if(manualfunc) {
 			fprintf(f, "	return %s(ptr);\n", manualfunc);
@@ -917,7 +917,7 @@ static char *rna_def_property_length_func(FILE *f, StructRNA *srna, PropertyRNA
 
 		func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "length");
 
-		fprintf(f, "LIBEXPORT int %s(PointerRNA *ptr)\n", func);
+		fprintf(f, "int %s(PointerRNA *ptr)\n", func);
 		fprintf(f, "{\n");
 		if(manualfunc) {
 			fprintf(f, "	return %s(ptr);\n", manualfunc);
@@ -952,7 +952,7 @@ static char *rna_def_property_begin_func(FILE *f, StructRNA *srna, PropertyRNA *
 
 	func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "begin");
 
-	fprintf(f, "LIBEXPORT void %s(CollectionPropertyIterator *iter, PointerRNA *ptr)\n", func);
+	fprintf(f, "void %s(CollectionPropertyIterator *iter, PointerRNA *ptr)\n", func);
 	fprintf(f, "{\n");
 
 	if(!manualfunc)
@@ -1014,7 +1014,7 @@ static char *rna_def_property_lookup_int_func(FILE *f, StructRNA *srna, Property
 
 	func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "lookup_int");
 
-	fprintf(f, "LIBEXPORT int %s(PointerRNA *ptr, int index, PointerRNA *r_ptr)\n", func);
+	fprintf(f, "int %s(PointerRNA *ptr, int index, PointerRNA *r_ptr)\n", func);
 	fprintf(f, "{\n");
 
 	if(manualfunc) {
@@ -1105,7 +1105,7 @@ static char *rna_def_property_next_func(FILE *f, StructRNA *srna, PropertyRNA *p
 
 	func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "next");
 
-	fprintf(f, "LIBEXPORT void %s(CollectionPropertyIterator *iter)\n", func);
+	fprintf(f, "void %s(CollectionPropertyIterator *iter)\n", func);
 	fprintf(f, "{\n");
 	fprintf(f, "	%s(iter);\n", manualfunc);
 
@@ -1128,7 +1128,7 @@ static char *rna_def_property_end_func(FILE *f, StructRNA *srna, PropertyRNA *pr
 
 	func= rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "end");
 
-	fprintf(f, "LIBEXPORT void %s(CollectionPropertyIterator *iter)\n", func);
+	fprintf(f, "void %s(CollectionPropertyIterator *iter)\n", func);
 	fprintf(f, "{\n");
 	if(manualfunc)
 		fprintf(f, "	%s(iter);\n", manualfunc);
@@ -1320,31 +1320,31 @@ static void rna_def_property_funcs_header(FILE *f, StructRNA *srna, PropertyDefR
 		case PROP_BOOLEAN:
 		case PROP_INT: {
 			if(!prop->arraydimension) {
-				fprintf(f, "LIBEXPORT int %sget(PointerRNA *ptr);\n", func);
-				//fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, int value);\n", func);
+				fprintf(f, "int %sget(PointerRNA *ptr);\n", func);
+				//fprintf(f, "void %sset(PointerRNA *ptr, int value);\n", func);
 			}
 			else if(prop->arraydimension && prop->totarraylength) {
-				fprintf(f, "LIBEXPORT void %sget(PointerRNA *ptr, int values[%d]);\n", func, prop->totarraylength);
-				//fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, const int values[%d]);\n", func, prop->arraylength);
+				fprintf(f, "void %sget(PointerRNA *ptr, int values[%d]);\n", func, prop->totarraylength);
+				//fprintf(f, "void %sset(PointerRNA *ptr, const int values[%d]);\n", func, prop->arraylength);
 			}
 			else {
-				fprintf(f, "LIBEXPORT void %sget(PointerRNA *ptr, int values[]);\n", func);
-				//fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, const int values[]);\n", func);
+				fprintf(f, "void %sget(PointerRNA *ptr, int values[]);\n", func);
+				//fprintf(f, "void %sset(PointerRNA *ptr, const int values[]);\n", func);
 			}
 			break;
 		}
 		case PROP_FLOAT: {
 			if(!prop->arraydimension) {
-				fprintf(f, "LIBEXPORT float %sget(PointerRNA *ptr);\n", func);
-				//fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, float value);\n", func);
+				fprintf(f, "float %sget(PointerRNA *ptr);\n", func);
+				//fprintf(f, "void %sset(PointerRNA *ptr, float value);\n", func);
 			}
 			else if(prop->arraydimension && prop->totarraylength) {
-				fprintf(f, "LIBEXPORT void %sget(PointerRNA *ptr, float values[%d]);\n", func, prop->totarraylength);
-				//fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, const float values[%d]);\n", func, prop->arraylength);
+				fprintf(f, "void %sget(PointerRNA *ptr, float values[%d]);\n", func, prop->totarraylength);
+				//fprintf(f, "void %sset(PointerRNA *ptr, const float values[%d]);\n", func, prop->arraylength);
 			}
 			else {
-				fprintf(f, "LIBEXPORT void %sget(PointerRNA *ptr, float values[]);\n", func);
-				//fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, const float values[]);\n", func);
+				fprintf(f, "void %sget(PointerRNA *ptr, float values[]);\n", func);
+				//fprintf(f, "void %sset(PointerRNA *ptr, const float values[]);\n", func);
 			}
 			break;
 		}
@@ -1362,8 +1362,8 @@ static void rna_def_property_funcs_header(FILE *f, StructRNA *srna, PropertyDefR
 				fprintf(f, "};\n\n");
 			}
 
-			fprintf(f, "LIBEXPORT int %sget(PointerRNA *ptr);\n", func);
-			//fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, int value);\n", func);
+			fprintf(f, "int %sget(PointerRNA *ptr);\n", func);
+			//fprintf(f, "void %sset(PointerRNA *ptr, int value);\n", func);
 
 			break;
 		}
@@ -1374,24 +1374,24 @@ static void rna_def_property_funcs_header(FILE *f, StructRNA *srna, PropertyDefR
 				fprintf(f, "#define %s_%s_MAX %d\n\n", srna->identifier, prop->identifier, sprop->maxlength);
 			}
 			
-			fprintf(f, "LIBEXPORT void %sget(PointerRNA *ptr, char *value);\n", func);
-			fprintf(f, "LIBEXPORT int %slength(PointerRNA *ptr);\n", func);
-			//fprintf(f, "LIBEXPORT void %sset(PointerRNA *ptr, const char *value);\n", func);
+			fprintf(f, "void %sget(PointerRNA *ptr, char *value);\n", func);
+			fprintf(f, "int %slength(PointerRNA *ptr);\n", func);
+			//fprintf(f, "void %sset(PointerRNA *ptr, const char *value);\n", func);
 
 			break;
 		}
 		case PROP_POINTER: {
-			fprintf(f, "LIBEXPORT PointerRNA %sget(PointerRNA *ptr);\n", func);
+			fprintf(f, "PointerRNA %sget(PointerRNA *ptr);\n", func);
 			//fprintf(f, "void %sset(PointerRNA *ptr, PointerRNA value);\n", func);
 			break;
 		}
 		case PROP_COLLECTION: {
-			fprintf(f, "LIBEXPORT void %sbegin(CollectionPropertyIterator *iter, PointerRNA *ptr);\n", func);
-			fprintf(f, "LIBEXPORT void %snext(CollectionPropertyIterator *iter);\n", func);
-			fprintf(f, "LIBEXPORT void %send(CollectionPropertyIterator *iter);\n", func);
-			//fprintf(f, "LIBEXPORT int %slength(PointerRNA *ptr);\n", func);
-			//fprintf(f, "LIBEXPORT void %slookup_int(PointerRNA *ptr, int key, StructRNA **type);\n", func);
-			//fprintf(f, "LIBEXPORT void %slookup_string(PointerRNA *ptr, const char *key, StructRNA **type);\n", func);
+			fprintf(f, "void %sbegin(CollectionPropertyIterator *iter, PointerRNA *ptr);\n", func);
+			fprintf(f, "void %snext(CollectionPropertyIterator *iter);\n", func);
+			fprintf(f, "void %send(CollectionPropertyIterator *iter);\n", func);
+			//fprintf(f, "int %slength(PointerRNA *ptr);\n", func);
+			//fprintf(f, "void %slookup_int(PointerRNA *ptr, int key, StructRNA **type);\n", func);
+			//fprintf(f, "void %slookup_string(PointerRNA *ptr, const char *key, StructRNA **type);\n", func);
 			break;
 		}
 	}
@@ -1862,7 +1862,7 @@ static void rna_generate_prototypes(BlenderRNA *brna, FILE *f)
 	StructRNA *srna;
 
 	for(srna=brna->structs.first; srna; srna=srna->cont.next)
-		fprintf(f, "extern LIBEXPORT StructRNA RNA_%s;\n", srna->identifier);
+		fprintf(f, "extern StructRNA RNA_%s;\n", srna->identifier);
 	fprintf(f, "\n");
 }
 
@@ -2336,7 +2336,7 @@ static void rna_generate_struct(BlenderRNA *brna, StructRNA *srna, FILE *f)
 		fprintf(f, "\n");
 	}
 
-	fprintf(f, "LIBEXPORT StructRNA RNA_%s = {\n", srna->identifier);
+	fprintf(f, "StructRNA RNA_%s = {\n", srna->identifier);
 
 	if(srna->cont.next) fprintf(f, "\t{(ContainerRNA *)&RNA_%s, ", ((StructRNA*)srna->cont.next)->identifier);
 	else fprintf(f, "\t{NULL, ");
@@ -2482,18 +2482,6 @@ static void rna_generate(BlenderRNA *brna, FILE *f, const char *filename, const
 				 "   Do not edit manually, changes will be overwritten.           */\n\n"
 				  "#define RNA_RUNTIME\n\n");
 
-	fprintf(f, "#ifndef LIBEXPORT\n");
-	fprintf(f, "#ifdef _WIN32\n");
-	fprintf(f, "#ifdef BLENDER_PLUGIN\n");
-	fprintf(f, "#define LIBEXPORT __declspec(dllimport)\n");
-	fprintf(f, "#else\n");
-	fprintf(f, "#define LIBEXPORT __declspec(dllexport)\n");
-	fprintf(f, "#endif\n");
-	fprintf(f, "#else\n");
-	fprintf(f, "#define LIBEXPORT\n");
-	fprintf(f, "#endif\n");
-	fprintf(f, "#endif\n");
-
 	fprintf(f, "#include <float.h>\n");
 	fprintf(f, "#include <stdio.h>\n");
 	fprintf(f, "#include <limits.h>\n");
@@ -2570,12 +2558,6 @@ static void rna_generate_header(BlenderRNA *brna, FILE *f)
 	fprintf(f, "/* Automatically generated function declarations for the Data API.\n"
 				 "   Do not edit manually, changes will be overwritten.              */\n\n");
 
-	fprintf(f, "#ifdef _WIN32\n");
-	fprintf(f, "#define LIBEXPORT __declspec(dllimport)\n");
-	fprintf(f, "#else\n");
-	fprintf(f, "#define LIBEXPORT\n");
-	fprintf(f, "#endif\n\n");
-
 	fprintf(f, "#include \"RNA_types.h\"\n\n");
 
 	fprintf(f, "#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n");
@@ -2597,7 +2579,7 @@ static void rna_generate_header(BlenderRNA *brna, FILE *f)
 		fprintf(f, "/**************** %s ****************/\n\n", srna->name);
 
 		while(srna) {
-			fprintf(f, "extern LIBEXPORT StructRNA RNA_%s;\n", srna->identifier);
+			fprintf(f, "extern StructRNA RNA_%s;\n", srna->identifier);
 			srna= srna->base;
 		}
 		fprintf(f, "\n");
diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c
index 4e4bb46669b00457ea9f4a90f6561a7a78d20914..88447f6dd770b3b1dcd9bc8bc15b6a2abba56f03 100644
--- a/source/blender/makesrna/intern/rna_access.c
+++ b/source/blender/makesrna/intern/rna_access.c
@@ -62,7 +62,7 @@
 
 #include "rna_internal.h"
 
-LIBEXPORT const PointerRNA PointerRNA_NULL= {{NULL}};
+const PointerRNA PointerRNA_NULL= {{NULL}};
 
 /* Init/Exit */
 
@@ -288,7 +288,7 @@ static int rna_ensure_property_array_length(PointerRNA *ptr, PropertyRNA *prop)
 	}
 }
 
-static int rna_ensure_property_array_check(PointerRNA *UNUSED(ptr), PropertyRNA *prop)
+static int rna_ensure_property_array_check(PropertyRNA *prop)
 {
 	if(prop->magic == RNA_MAGIC) {
 		return (prop->getlength || prop->totarraylength) ? 1:0;
@@ -765,9 +765,9 @@ int RNA_property_array_length(PointerRNA *ptr, PropertyRNA *prop)
 	return rna_ensure_property_array_length(ptr, prop);
 }
 
-int RNA_property_array_check(PointerRNA *ptr, PropertyRNA *prop)
+int RNA_property_array_check(PropertyRNA *prop)
 {
-	return rna_ensure_property_array_check(ptr, prop);
+	return rna_ensure_property_array_check(prop);
 }
 
 /* used by BPY to make an array from the python object */
@@ -1399,6 +1399,7 @@ int RNA_property_boolean_get(PointerRNA *ptr, PropertyRNA *prop)
 	IDProperty *idprop;
 
 	BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN);
+	BLI_assert(RNA_property_array_check(prop) == 0);
 
 	if((idprop=rna_idproperty_check(&prop, ptr)))
 		return IDP_Int(idprop);
@@ -1414,6 +1415,7 @@ void RNA_property_boolean_set(PointerRNA *ptr, PropertyRNA *prop, int value)
 	IDProperty *idprop;
 
 	BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN);
+	BLI_assert(RNA_property_array_check(prop) == 0);
 
 	/* just incase other values are passed */
 	if(value) value= 1;
@@ -1440,6 +1442,7 @@ void RNA_property_boolean_get_array(PointerRNA *ptr, PropertyRNA *prop, int *val
 	IDProperty *idprop;
 
 	BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN);
+	BLI_assert(RNA_property_array_check(prop) != 0);
 
 	if((idprop=rna_idproperty_check(&prop, ptr))) {
 		if(prop->arraydimension == 0)
@@ -1463,6 +1466,7 @@ int RNA_property_boolean_get_index(PointerRNA *ptr, PropertyRNA *prop, int index
 	int len= rna_ensure_property_array_length(ptr, prop);
 
 	BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN);
+	BLI_assert(RNA_property_array_check(prop) != 0);
 
 	if(len <= RNA_MAX_ARRAY_LENGTH) {
 		RNA_property_boolean_get_array(ptr, prop, tmp);
@@ -1486,6 +1490,7 @@ void RNA_property_boolean_set_array(PointerRNA *ptr, PropertyRNA *prop, const in
 	IDProperty *idprop;
 
 	BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN);
+	BLI_assert(RNA_property_array_check(prop) != 0);
 
 	if((idprop=rna_idproperty_check(&prop, ptr))) {
 		if(prop->arraydimension == 0)
@@ -1519,6 +1524,7 @@ void RNA_property_boolean_set_index(PointerRNA *ptr, PropertyRNA *prop, int inde
 	int len= rna_ensure_property_array_length(ptr, prop);
 
 	BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN);
+	BLI_assert(RNA_property_array_check(prop) != 0);
 
 	if(len <= RNA_MAX_ARRAY_LENGTH) {
 		RNA_property_boolean_get_array(ptr, prop, tmp);
@@ -1541,6 +1547,7 @@ int RNA_property_boolean_get_default(PointerRNA *UNUSED(ptr), PropertyRNA *prop)
 	BooleanPropertyRNA *bprop= (BooleanPropertyRNA*)prop;
 
 	BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN);
+	BLI_assert(RNA_property_array_check(prop) == 0);
 
 	return bprop->defaultvalue;
 }
@@ -1550,6 +1557,7 @@ void RNA_property_boolean_get_default_array(PointerRNA *UNUSED(ptr), PropertyRNA
 	BooleanPropertyRNA *bprop= (BooleanPropertyRNA*)prop;
 	
 	BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN);
+	BLI_assert(RNA_property_array_check(prop) != 0);
 
 	if(prop->arraydimension == 0)
 		values[0]= bprop->defaultvalue;
@@ -1565,6 +1573,7 @@ int RNA_property_boolean_get_default_index(PointerRNA *ptr, PropertyRNA *prop, i
 	int len= rna_ensure_property_array_length(ptr, prop);
 
 	BLI_assert(RNA_property_type(prop) == PROP_BOOLEAN);
+	BLI_assert(RNA_property_array_check(prop) != 0);
 
 	if(len <= RNA_MAX_ARRAY_LENGTH) {
 		RNA_property_boolean_get_default_array(ptr, prop, tmp);
@@ -1588,6 +1597,7 @@ int RNA_property_int_get(PointerRNA *ptr, PropertyRNA *prop)
 	IDProperty *idprop;
 
 	BLI_assert(RNA_property_type(prop) == PROP_INT);
+	BLI_assert(RNA_property_array_check(prop) == 0);
 
 	if((idprop=rna_idproperty_check(&prop, ptr)))
 		return IDP_Int(idprop);
@@ -1603,6 +1613,7 @@ void RNA_property_int_set(PointerRNA *ptr, PropertyRNA *prop, int value)
 	IDProperty *idprop;
 
 	BLI_assert(RNA_property_type(prop) == PROP_INT);
+	BLI_assert(RNA_property_array_check(prop) == 0);
 	/* useful to check on bad values but set function should clamp */
 	/* BLI_assert(RNA_property_int_clamp(ptr, prop, &value) == 0); */
 
@@ -1628,6 +1639,7 @@ void RNA_property_int_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values)
 	IDProperty *idprop;
 
 	BLI_assert(RNA_property_type(prop) == PROP_INT);
+	BLI_assert(RNA_property_array_check(prop) != 0);
 
 	if((idprop=rna_idproperty_check(&prop, ptr))) {
 		if(prop->arraydimension == 0)
@@ -1688,6 +1700,7 @@ int RNA_property_int_get_index(PointerRNA *ptr, PropertyRNA *prop, int index)
 	int len= rna_ensure_property_array_length(ptr, prop);
 
 	BLI_assert(RNA_property_type(prop) == PROP_INT);
+	BLI_assert(RNA_property_array_check(prop) != 0);
 
 	if(len <= RNA_MAX_ARRAY_LENGTH) {
 		RNA_property_int_get_array(ptr, prop, tmp);
@@ -1711,6 +1724,7 @@ void RNA_property_int_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *v
 	IDProperty *idprop;
 
 	BLI_assert(RNA_property_type(prop) == PROP_INT);
+	BLI_assert(RNA_property_array_check(prop) != 0);
 
 	if((idprop=rna_idproperty_check(&prop, ptr))) {
 		if(prop->arraydimension == 0)
@@ -1744,6 +1758,7 @@ void RNA_property_int_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, i
 	int len= rna_ensure_property_array_length(ptr, prop);
 
 	BLI_assert(RNA_property_type(prop) == PROP_INT);
+	BLI_assert(RNA_property_array_check(prop) != 0);
 
 	if(len <= RNA_MAX_ARRAY_LENGTH) {
 		RNA_property_int_get_array(ptr, prop, tmp);
@@ -1772,6 +1787,7 @@ void RNA_property_int_get_default_array(PointerRNA *UNUSED(ptr), PropertyRNA *pr
 	IntPropertyRNA *iprop= (IntPropertyRNA*)prop;
 	
 	BLI_assert(RNA_property_type(prop) == PROP_INT);
+	BLI_assert(RNA_property_array_check(prop) != 0);
 
 	if(prop->arraydimension == 0)
 		values[0]= iprop->defaultvalue;
@@ -1808,6 +1824,7 @@ float RNA_property_float_get(PointerRNA *ptr, PropertyRNA *prop)
 	IDProperty *idprop;
 
 	BLI_assert(RNA_property_type(prop) == PROP_FLOAT);
+	BLI_assert(RNA_property_array_check(prop) == 0);
 
 	if((idprop=rna_idproperty_check(&prop, ptr))) {
 		if(idprop->type == IDP_FLOAT)
@@ -1827,6 +1844,7 @@ void RNA_property_float_set(PointerRNA *ptr, PropertyRNA *prop, float value)
 	IDProperty *idprop;
 
 	BLI_assert(RNA_property_type(prop) == PROP_FLOAT);
+	BLI_assert(RNA_property_array_check(prop) == 0);
 	/* useful to check on bad values but set function should clamp */
 	/* BLI_assert(RNA_property_float_clamp(ptr, prop, &value) == 0); */
 
@@ -1858,6 +1876,7 @@ void RNA_property_float_get_array(PointerRNA *ptr, PropertyRNA *prop, float *val
 	int i;
 
 	BLI_assert(RNA_property_type(prop) == PROP_FLOAT);
+	BLI_assert(RNA_property_array_check(prop) != 0);
 
 	if((idprop=rna_idproperty_check(&prop, ptr))) {
 		if(prop->arraydimension == 0)
@@ -1923,6 +1942,7 @@ float RNA_property_float_get_index(PointerRNA *ptr, PropertyRNA *prop, int index
 	int len= rna_ensure_property_array_length(ptr, prop);
 
 	BLI_assert(RNA_property_type(prop) == PROP_FLOAT);
+	BLI_assert(RNA_property_array_check(prop) != 0);
 
 	if(len <= RNA_MAX_ARRAY_LENGTH) {
 		RNA_property_float_get_array(ptr, prop, tmp);
@@ -1948,6 +1968,7 @@ void RNA_property_float_set_array(PointerRNA *ptr, PropertyRNA *prop, const floa
 	int i;
 
 	BLI_assert(RNA_property_type(prop) == PROP_FLOAT);
+	BLI_assert(RNA_property_array_check(prop) != 0);
 
 	if((idprop=rna_idproperty_check(&prop, ptr))) {
 		if(prop->arraydimension == 0) {
@@ -1991,6 +2012,7 @@ void RNA_property_float_set_index(PointerRNA *ptr, PropertyRNA *prop, int index,
 	int len= rna_ensure_property_array_length(ptr, prop);
 
 	BLI_assert(RNA_property_type(prop) == PROP_FLOAT);
+	BLI_assert(RNA_property_array_check(prop) != 0);
 
 	if(len <= RNA_MAX_ARRAY_LENGTH) {
 		RNA_property_float_get_array(ptr, prop, tmp);
@@ -2013,6 +2035,7 @@ float RNA_property_float_get_default(PointerRNA *UNUSED(ptr), PropertyRNA *prop)
 	FloatPropertyRNA *fprop= (FloatPropertyRNA*)prop;
 
 	BLI_assert(RNA_property_type(prop) == PROP_FLOAT);
+	BLI_assert(RNA_property_array_check(prop) == 0);
 
 	return fprop->defaultvalue;
 }
@@ -2022,6 +2045,7 @@ void RNA_property_float_get_default_array(PointerRNA *UNUSED(ptr), PropertyRNA *
 	FloatPropertyRNA *fprop= (FloatPropertyRNA*)prop;
 	
 	BLI_assert(RNA_property_type(prop) == PROP_FLOAT);
+	BLI_assert(RNA_property_array_check(prop) != 0);
 
 	if(prop->arraydimension == 0)
 		values[0]= fprop->defaultvalue;
@@ -2037,6 +2061,7 @@ float RNA_property_float_get_default_index(PointerRNA *ptr, PropertyRNA *prop, i
 	int len= rna_ensure_property_array_length(ptr, prop);
 
 	BLI_assert(RNA_property_type(prop) == PROP_FLOAT);
+	BLI_assert(RNA_property_array_check(prop) != 0);
 
 	if(len <= RNA_MAX_ARRAY_LENGTH) {
 		RNA_property_float_get_default_array(ptr, prop, tmp);
@@ -4484,7 +4509,8 @@ int  RNA_parameter_list_ret_count(ParameterList *parms)
 
 void RNA_parameter_list_begin(ParameterList *parms, ParameterIterator *iter)
 {
-	RNA_pointer_create(NULL, &RNA_Function, parms->func, &iter->funcptr);
+	/* may be useful but unused now */
+	/* RNA_pointer_create(NULL, &RNA_Function, parms->func, &iter->funcptr); */ /*UNUSED*/
 
 	iter->parms= parms;
 	iter->parm= parms->func->cont.properties.first;
diff --git a/source/blender/makesrna/intern/rna_constraint.c b/source/blender/makesrna/intern/rna_constraint.c
index 0163dd5db32710883a9849d8345dc9aa8d0e1291..8127c1807064d9ea72b845f01451193204e58edd 100644
--- a/source/blender/makesrna/intern/rna_constraint.c
+++ b/source/blender/makesrna/intern/rna_constraint.c
@@ -85,7 +85,7 @@ static EnumPropertyItem target_space_pchan_items[] = {
 static EnumPropertyItem owner_space_pchan_items[] = {
 	{0, "WORLD", 0, "World Space", "The constraint is applied relative to the world coordinate system"},
 	{2, "POSE", 0, "Pose Space", "The constraint is applied in Pose Space, the object transformation is ignored"},
-	{3, "LOCAL_WITH_PARENT", 0, "The constraint is applied relative to the local coordinate system of the object, with the parent transformation added"},
+	{3, "LOCAL_WITH_PARENT", 0, "Local With Parent", "The constraint is applied relative to the local coordinate system of the object, with the parent transformation added"},
 	{1, "LOCAL", 0, "Local Space", "The constraint is applied relative to the local coordinate sytem of the object"},
 	{0, NULL, 0, NULL, NULL}};
 
diff --git a/source/blender/makesrna/intern/rna_curve.c b/source/blender/makesrna/intern/rna_curve.c
index 260d483b9d24fc735772d6a93a71cb277ef3d87a..599d36ec8b8a6b336b1461cbedf95b0818fe4cb4 100644
--- a/source/blender/makesrna/intern/rna_curve.c
+++ b/source/blender/makesrna/intern/rna_curve.c
@@ -651,7 +651,7 @@ static char *rna_TextBox_path(PointerRNA *ptr)
 	int index= (int)(tb - cu->tb);
 
 	if (index >= 0 && index < cu->totbox)
-		return BLI_sprintfN("textboxes[%d]", index);
+		return BLI_sprintfN("text_boxes[%d]", index);
 	else
 		return BLI_strdup("");
 }
diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h
index d20033a5967caa3b3e2b891b07003c52c6461f0f..c0ae7b02b1ad69fda4c8786750e9296a22f8ab2e 100644
--- a/source/blender/makesrna/intern/rna_internal.h
+++ b/source/blender/makesrna/intern/rna_internal.h
@@ -30,12 +30,6 @@
 #ifndef RNA_INTERNAL_H
 #define RNA_INTERNAL_H
 
-#ifdef _WIN32
-#define LIBEXPORT __declspec(dllexport)
-#else
-#define LIBEXPORT
-#endif
-
 #include "UI_resources.h"
 
 #include "rna_internal_types.h"
@@ -307,8 +301,8 @@ extern CollectionPropertyRNA rna_PropertyGroupItem_idp_array;
 extern FloatPropertyRNA rna_PropertyGroupItem_double;
 extern FloatPropertyRNA rna_PropertyGroupItem_double_array;
 
-extern LIBEXPORT StructRNA RNA_PropertyGroupItem;
-extern LIBEXPORT StructRNA RNA_PropertyGroup;
+extern StructRNA RNA_PropertyGroupItem;
+extern StructRNA RNA_PropertyGroup;
 
 struct IDProperty *rna_idproperty_check(struct PropertyRNA **prop, struct PointerRNA *ptr);
 
diff --git a/source/blender/makesrna/intern/rna_main_api.c b/source/blender/makesrna/intern/rna_main_api.c
index 7d6e1dd0567623dcccbe0b22af8264a829ebd316..05665ea077a3717024f7ab3dffe36b19f273b254 100644
--- a/source/blender/makesrna/intern/rna_main_api.c
+++ b/source/blender/makesrna/intern/rna_main_api.c
@@ -232,7 +232,7 @@ Mesh *rna_Main_meshes_new(Main *UNUSED(bmain), const char *name)
 	id_us_min(&me->id);
 	return me;
 }
-LIBEXPORT void rna_Main_meshes_remove(Main *bmain, ReportList *reports, Mesh *mesh)
+void rna_Main_meshes_remove(Main *bmain, ReportList *reports, Mesh *mesh)
 {
 	if(ID_REAL_USERS(mesh) <= 0)
 		free_libblock(&bmain->mesh, mesh);
diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c
index ba655915fb62a961c43bf94264d47655bafc7d25..5c5391b0bba76af79cf61e4d8d44e17e0ee841dc 100644
--- a/source/blender/makesrna/intern/rna_modifier.c
+++ b/source/blender/makesrna/intern/rna_modifier.c
@@ -2265,6 +2265,13 @@ static void rna_def_modifier_solidify(BlenderRNA *brna)
 	RNA_def_property_ui_text(prop, "Thickness", "Thickness of the shell");
 	RNA_def_property_update(prop, 0, "rna_Modifier_update");
 
+	prop= RNA_def_property(srna, "thickness_vertex_group", PROP_FLOAT, PROP_FACTOR);
+	RNA_def_property_float_sdna(prop, NULL, "offset_fac_vg");
+	RNA_def_property_range(prop, 0.0, 1.0);
+	RNA_def_property_ui_range(prop, 0, 1, 0.1, 3);
+	RNA_def_property_ui_text(prop, "Vertex Group Factor", "Thickness factor to use for zero vertex group influence");
+	RNA_def_property_update(prop, 0, "rna_Modifier_update");
+
 	prop= RNA_def_property(srna, "offset", PROP_FLOAT, PROP_FACTOR);
 	RNA_def_property_float_sdna(prop, NULL, "offset_fac");
 	RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c
index 76bbfcbed41e8d32a7cf9e249818720bff1cf506..55e1119f58e3846c1038df28c729b63047f65649 100644
--- a/source/blender/makesrna/intern/rna_object.c
+++ b/source/blender/makesrna/intern/rna_object.c
@@ -2025,7 +2025,14 @@ static void rna_def_object(BlenderRNA *brna)
 	RNA_def_property_ui_text(prop, "Input Matrix", "Matrix access to location, rotation and scale (including deltas), before constraints and parenting are applied.");
 	RNA_def_property_float_funcs(prop, "rna_Object_matrix_basis_get", "rna_Object_matrix_basis_set", NULL);
 	RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update");
-	
+
+	/*parent_inverse*/
+	prop= RNA_def_property(srna, "matrix_parent_inverse", PROP_FLOAT, PROP_MATRIX);
+	RNA_def_property_float_sdna(prop, NULL, "parentinv");
+	RNA_def_property_multi_array(prop, 2, rna_matrix_dimsize_4x4);
+	RNA_def_property_ui_text(prop, "Matrix", "Inverse of object's parent matrix at time of parenting");
+	RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update");
+
 	/* collections */
 	prop= RNA_def_property(srna, "constraints", PROP_COLLECTION, PROP_NONE);
 	RNA_def_property_struct_type(prop, "Constraint");
diff --git a/source/blender/makesrna/intern/rna_object_api.c b/source/blender/makesrna/intern/rna_object_api.c
index b99b5f3dc266cd95e051d4ab9025689564bfd759..53c71c42f7c4d1fa46bb05ffd12556af1806564e 100644
--- a/source/blender/makesrna/intern/rna_object_api.c
+++ b/source/blender/makesrna/intern/rna_object_api.c
@@ -78,7 +78,7 @@
 
 /* copied from Mesh_getFromObject and adapted to RNA interface */
 /* settings: 0 - preview, 1 - render */
-LIBEXPORT Mesh *rna_Object_to_mesh(Object *ob, ReportList *reports, Scene *sce, int apply_modifiers, int settings)
+Mesh *rna_Object_to_mesh(Object *ob, ReportList *reports, Scene *sce, int apply_modifiers, int settings)
 {
 	Mesh *tmpmesh;
 	Curve *tmpcu = NULL;
@@ -286,7 +286,7 @@ static void dupli_render_particle_set(Scene *scene, Object *ob, int level, int e
 		dupli_render_particle_set(scene, go->ob, level+1, enable);
 }
 /* When no longer needed, duplilist should be freed with Object.free_duplilist */
-LIBEXPORT void rna_Object_create_duplilist(Object *ob, ReportList *reports, Scene *sce)
+void rna_Object_create_duplilist(Object *ob, ReportList *reports, Scene *sce)
 {
 	if (!(ob->transflag & OB_DUPLI)) {
 		BKE_report(reports, RPT_ERROR, "Object does not have duplis.");
@@ -308,7 +308,7 @@ LIBEXPORT void rna_Object_create_duplilist(Object *ob, ReportList *reports, Scen
 	/* ob->duplilist should now be freed with Object.free_duplilist */
 }
 
-LIBEXPORT void rna_Object_free_duplilist(Object *ob)
+void rna_Object_free_duplilist(Object *ob)
 {
 	if (ob->duplilist) {
 		free_object_duplilist(ob->duplilist);
@@ -457,7 +457,7 @@ void rna_ObjectBase_layers_from_view(Base *base, View3D *v3d)
 	base->lay= base->object->lay= v3d->lay;
 }
 
-LIBEXPORT int rna_Object_is_modified(Object *ob, Scene *scene, int settings)
+int rna_Object_is_modified(Object *ob, Scene *scene, int settings)
 {
 	return object_is_modified(scene, ob) & settings;
 }
diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c
index a0744a5b6a00ddb75460372a7a24e5525ea49d9f..4337f3c4de6aa5ca84f1a161e9db57f757d63f05 100644
--- a/source/blender/makesrna/intern/rna_render.c
+++ b/source/blender/makesrna/intern/rna_render.c
@@ -50,12 +50,12 @@
 #include "BKE_context.h"
 #include "BKE_report.h"
 
-LIBEXPORT void engine_tag_redraw(RenderEngine *engine)
+void engine_tag_redraw(RenderEngine *engine)
 {
 	engine->do_draw = 1;
 }
 
-LIBEXPORT void engine_tag_update(RenderEngine *engine)
+void engine_tag_update(RenderEngine *engine)
 {
 	engine->do_update = 1;
 }
@@ -263,7 +263,7 @@ static void rna_RenderLayer_rect_get(PointerRNA *ptr, float *values)
 	memcpy(values, rl->rectf, sizeof(float)*rl->rectx*rl->recty*4);
 }
 
-LIBEXPORT void rna_RenderLayer_rect_set(PointerRNA *ptr, const float *values)
+void rna_RenderLayer_rect_set(PointerRNA *ptr, const float *values)
 {
 	RenderLayer *rl= (RenderLayer*)ptr->data;
 	memcpy(rl->rectf, values, sizeof(float)*rl->rectx*rl->recty*4);
@@ -285,7 +285,7 @@ static void rna_RenderPass_rect_get(PointerRNA *ptr, float *values)
 	memcpy(values, rpass->rect, sizeof(float)*rpass->rectx*rpass->recty*rpass->channels);
 }
 
-LIBEXPORT void rna_RenderPass_rect_set(PointerRNA *ptr, const float *values)
+void rna_RenderPass_rect_set(PointerRNA *ptr, const float *values)
 {
 	RenderPass *rpass= (RenderPass*)ptr->data;
 	memcpy(rpass->rect, values, sizeof(float)*rpass->rectx*rpass->recty*rpass->channels);
diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c
index 57044188dd9111ae6162998a216e20fdd371068d..a685c6deb342e36654711f91480b78b5990f5bd6 100644
--- a/source/blender/makesrna/intern/rna_userdef.c
+++ b/source/blender/makesrna/intern/rna_userdef.c
@@ -2769,7 +2769,7 @@ static void rna_def_userdef_input(BlenderRNA *brna)
 	prop= RNA_def_property(srna, "ndof_orbit_invert_axes", PROP_BOOLEAN, PROP_NONE);
 	RNA_def_property_boolean_sdna(prop, NULL, "ndof_flag", NDOF_ORBIT_INVERT_AXES);
 	RNA_def_property_ui_text(prop, "Invert Axes", "Toggle between moving the viewpoint or moving the scene being viewed");
-	/* in 3Dx docs, this is called 'object mode' vs. 'target camera mode'
+	/* in 3Dx docs, this is called 'object mode' vs. 'target camera mode' */
 
 	/* 3D view: fly */
 	prop= RNA_def_property(srna, "ndof_lock_horizon", PROP_BOOLEAN, PROP_NONE);
diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c
index 307cf0e175add145871a4bbf490ec584328f7f9b..93adf808f8318102fd8b175792aedce4f3191a12 100644
--- a/source/blender/makesrna/intern/rna_wm.c
+++ b/source/blender/makesrna/intern/rna_wm.c
@@ -1746,6 +1746,7 @@ static void rna_def_keyconfig(BlenderRNA *brna)
 	RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", KMI_INACTIVE);
 	RNA_def_property_ui_text(prop, "Active", "Activate or deactivate item");
 	RNA_def_property_ui_icon(prop, ICON_CHECKBOX_DEHLT, 1);
+	RNA_def_property_update(prop, 0, "rna_KeyMapItem_update");
 
 	prop= RNA_def_property(srna, "is_user_modified", PROP_BOOLEAN, PROP_NONE);
 	RNA_def_property_boolean_sdna(prop, NULL, "flag", KMI_USER_MODIFIED);
diff --git a/source/blender/modifiers/intern/MOD_solidify.c b/source/blender/modifiers/intern/MOD_solidify.c
index 0b1fac06e148cf74720114dc69f00fda3e1e6e1a..afe6da8b38a602930194d468d6b0b9f43747b061 100644
--- a/source/blender/modifiers/intern/MOD_solidify.c
+++ b/source/blender/modifiers/intern/MOD_solidify.c
@@ -232,8 +232,10 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
 
 	float (*vert_nors)[3]= NULL;
 
-	float const ofs_orig=				- (((-smd->offset_fac + 1.0f) * 0.5f) * smd->offset);
-	float const ofs_new= smd->offset	- (((-smd->offset_fac + 1.0f) * 0.5f) * smd->offset);
+	const float ofs_orig=				- (((-smd->offset_fac + 1.0f) * 0.5f) * smd->offset);
+	const float ofs_new= smd->offset	- (((-smd->offset_fac + 1.0f) * 0.5f) * smd->offset);
+	const float offset_fac_vg= smd->offset_fac_vg;
+	const float offset_fac_vg_inv= 1.0f - smd->offset_fac_vg;
 
 	/* weights */
 	MDeformVert *dvert, *dv= NULL;
@@ -391,8 +393,9 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
 			dv= dvert;
 			for(i=0; i<numVerts; i++, mv++) {
 				if(dv) {
-					if(defgrp_invert)	scalar_short_vgroup = scalar_short * (1.0f - defvert_find_weight(dv, defgrp_index));
-					else				scalar_short_vgroup = scalar_short * defvert_find_weight(dv, defgrp_index);
+					if(defgrp_invert)	scalar_short_vgroup = 1.0f - defvert_find_weight(dv, defgrp_index);
+					else				scalar_short_vgroup = defvert_find_weight(dv, defgrp_index);
+					scalar_short_vgroup= (offset_fac_vg + (scalar_short_vgroup * offset_fac_vg_inv)) * scalar_short;
 					dv++;
 				}
 				VECADDFAC(mv->co, mv->co, mv->no, scalar_short_vgroup);
@@ -405,8 +408,9 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
 			dv= dvert;
 			for(i=0; i<numVerts; i++, mv++) {
 				if(dv) {
-					if(defgrp_invert)	scalar_short_vgroup = scalar_short * (1.0f - defvert_find_weight(dv, defgrp_index));
-					else				scalar_short_vgroup = scalar_short * defvert_find_weight(dv, defgrp_index);
+					if(defgrp_invert)	scalar_short_vgroup = 1.0f - defvert_find_weight(dv, defgrp_index);
+					else				scalar_short_vgroup = defvert_find_weight(dv, defgrp_index);
+					scalar_short_vgroup= (offset_fac_vg + (scalar_short_vgroup * offset_fac_vg_inv)) * scalar_short;
 					dv++;
 				}
 				VECADDFAC(mv->co, mv->co, mv->no, scalar_short_vgroup);
@@ -466,15 +470,21 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
 
 		/* vertex group support */
 		if(dvert) {
+			float scalar;
+
 			dv= dvert;
 			if(defgrp_invert) {
 				for(i=0; i<numVerts; i++, dv++) {
-					vert_angles[i] *= (1.0f - defvert_find_weight(dv, defgrp_index));
+					scalar= 1.0f - defvert_find_weight(dv, defgrp_index);
+					scalar= offset_fac_vg + (scalar * offset_fac_vg_inv);
+					vert_angles[i] *= scalar;
 				}
 			}
 			else {
 				for(i=0; i<numVerts; i++, dv++) {
-					vert_angles[i] *= defvert_find_weight(dv, defgrp_index);
+					scalar= defvert_find_weight(dv, defgrp_index);
+					scalar= offset_fac_vg + (scalar * offset_fac_vg_inv);
+					vert_angles[i] *= scalar;
 				}
 			}
 		}
diff --git a/source/blender/python/intern/bpy_operator.c b/source/blender/python/intern/bpy_operator.c
index 4b05a9c0c728c5802cee04d0e1e5058c7fde402a..7310878f66145a6a1c1a8f57deb1f7eabd597cf0 100644
--- a/source/blender/python/intern/bpy_operator.c
+++ b/source/blender/python/intern/bpy_operator.c
@@ -52,6 +52,9 @@
 #include "WM_types.h"
 
 #include "MEM_guardedalloc.h"
+
+#include "BLI_ghash.h"
+
 #include "BKE_report.h"
 #include "BKE_context.h"
 
@@ -359,15 +362,18 @@ static PyObject *pyop_as_string(PyObject *UNUSED(self), PyObject *args)
 
 static PyObject *pyop_dir(PyObject *UNUSED(self))
 {
+	GHashIterator *iter= WM_operatortype_iter();
 	PyObject *list= PyList_New(0), *name;
-	wmOperatorType *ot;
-	
-	for(ot= WM_operatortype_first(); ot; ot= ot->next) {
+
+	for( ; !BLI_ghashIterator_isDone(iter); BLI_ghashIterator_step(iter)) {
+		wmOperatorType *ot= BLI_ghashIterator_getValue(iter);
+
 		name= PyUnicode_FromString(ot->idname);
 		PyList_Append(list, name);
 		Py_DECREF(name);
 	}
-	
+	BLI_ghashIterator_free(iter);
+
 	return list;
 }
 
diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c
index 4447a0476f4f87c8dec518f8eae67fc8d20bd69c..ba8145c27737a989fb1a66b55f0b85d62a700e70 100644
--- a/source/blender/python/intern/bpy_rna.c
+++ b/source/blender/python/intern/bpy_rna.c
@@ -856,7 +856,7 @@ static PyObject *pyrna_prop_str(BPy_PropertyRNA *self)
 		if(type==PROP_COLLECTION) {
 			len= pyrna_prop_collection_length(self);
 		}
-		else if (RNA_property_array_check(&self->ptr, self->prop)) {
+		else if (RNA_property_array_check(self->prop)) {
 			len= pyrna_prop_array_length((BPy_PropertyArrayRNA *)self);
 		}
 
@@ -1224,7 +1224,7 @@ PyObject *pyrna_prop_to_py(PointerRNA *ptr, PropertyRNA *prop)
 	PyObject *ret;
 	int type= RNA_property_type(prop);
 
-	if (RNA_property_array_check(ptr, prop)) {
+	if (RNA_property_array_check(prop)) {
 		return pyrna_py_from_array(ptr, prop);
 	}
 
@@ -1369,7 +1369,7 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb
 	int type= RNA_property_type(prop);
 
 
-	if (RNA_property_array_check(ptr, prop)) {
+	if (RNA_property_array_check(prop)) {
 		/* done getting the length */
 		if(pyrna_py_to_array(ptr, prop, data, value, error_prefix) == -1) {
 			return -1;
@@ -4088,7 +4088,7 @@ static PyObject *pyrna_param_to_py(PointerRNA *ptr, PropertyRNA *prop, void *dat
 	int type= RNA_property_type(prop);
 	int flag= RNA_property_flag(prop);
 
-	if(RNA_property_array_check(ptr, prop)) {
+	if(RNA_property_array_check(prop)) {
 		int a, len;
 
 		if (flag & PROP_DYNAMIC) {
@@ -5519,7 +5519,7 @@ PyObject *pyrna_prop_CreatePyObject(PointerRNA *ptr, PropertyRNA *prop)
 {
 	BPy_PropertyRNA *pyrna;
 
-	if (RNA_property_array_check(ptr, prop) == 0) {
+	if (RNA_property_array_check(prop) == 0) {
 		PyTypeObject *type;
 
 		if (RNA_property_type(prop) != PROP_COLLECTION) {
diff --git a/source/blender/python/intern/bpy_rna_anim.c b/source/blender/python/intern/bpy_rna_anim.c
index 30d83e196ba1858fc752ed9b8be98297c4ab7db0..8bde1db96ca12bbf2174c03bb09abff905688de1 100644
--- a/source/blender/python/intern/bpy_rna_anim.c
+++ b/source/blender/python/intern/bpy_rna_anim.c
@@ -107,7 +107,7 @@ static int pyrna_struct_anim_args_parse(PointerRNA *ptr, const char *error_prefi
 		return -1;
 	}
 
-	if(RNA_property_array_check(&r_ptr, prop) == 0) {
+	if(RNA_property_array_check(prop) == 0) {
 		if((*index) == -1) {
 			*index= 0;
 		}
diff --git a/source/blender/python/intern/bpy_rna_array.c b/source/blender/python/intern/bpy_rna_array.c
index 9843a57e0f25be6229b27756d937d16a4a7de03f..e50ce2336715daa8f32464ee9ce0abbd88713fe4 100644
--- a/source/blender/python/intern/bpy_rna_array.c
+++ b/source/blender/python/intern/bpy_rna_array.c
@@ -285,17 +285,20 @@ static char *copy_values(PyObject *seq, PointerRNA *ptr, PropertyRNA *prop, int
 	int totdim= RNA_property_array_dimension(ptr, prop, NULL);
 	const int seq_size= PySequence_Size(seq);
 
-	/* General note for 'data' being NULL or PySequence_GetItem() failing.
+	/* Regarding PySequence_GetItem() failing.
 	 *
 	 * This should never be NULL since we validated it, _but_ some triky python
 	 * developer could write their own sequence type which succeeds on
-	 * validating but fails later somehow, so include checks for safety. */
+	 * validating but fails later somehow, so include checks for safety.
+	 */
+
+	/* Note that 'data can be NULL' */
 
 	if(seq_size == -1) {
 		return NULL;
 	}
 
-	for (i= 0; (i < seq_size) && data; i++) {
+	for (i= 0; i < seq_size; i++) {
 		PyObject *item= PySequence_GetItem(seq, i);
 		if(item) {
 			if (dim + 1 < totdim) {
diff --git a/source/blender/python/mathutils/mathutils_Vector.c b/source/blender/python/mathutils/mathutils_Vector.c
index a954c07c98d311aad85295fff70a79b723017024..56c1334ecaca31fc6b78d732c7e80c0c9f6ae27b 100644
--- a/source/blender/python/mathutils/mathutils_Vector.c
+++ b/source/blender/python/mathutils/mathutils_Vector.c
@@ -37,8 +37,6 @@
 #include "BLI_math.h"
 #include "BLI_utildefines.h"
 
-extern void PyC_LineSpit(void);
-
 #define MAX_DIMENSIONS 4
 
 /* Swizzle axes get packed into a single value that is used as a closure. Each
@@ -1161,28 +1159,18 @@ static PyObject *Vector_mul(PyObject *v1, PyObject *v2)
 	}
 	else if (vec1) {
 		if (MatrixObject_Check(v2)) {
-			extern void PyC_LineSpit(void);
-
-			/* VEC * MATRIX */
-			/* this is deprecated!, use the reverse instead */
-			float tvec[MAX_DIMENSIONS];
-
 
 /* ------ to be removed ------*/
-#ifndef MATH_STANDALONE
-#ifdef WITH_ASSERT_ABORT
+#if 1
 			PyErr_SetString(PyExc_ValueError,
 			                "(Vector * Matrix) is now removed, reverse the "
 			                "order (promoted to an Error for Debug builds)");
 			return NULL;
 #else
-			printf("Warning: (Vector * Matrix) is now deprecated, "
-			       "reverse the multiplication order in the script.\n");
-			PyC_LineSpit();
-#endif
-#endif		/* ifndef MATH_STANDALONE */
-/* ------ to be removed ------*/
 
+			/* VEC * MATRIX */
+			/* this is deprecated!, use the reverse instead */
+			float tvec[MAX_DIMENSIONS];
 
 			if(BaseMath_ReadCallback((MatrixObject *)v2) == -1)
 				return NULL;
@@ -1191,9 +1179,18 @@ static PyObject *Vector_mul(PyObject *v1, PyObject *v2)
 			}
 
 			return newVectorObject(tvec, vec1->size, Py_NEW, Py_TYPE(vec1));
+#endif
+/* ------ to be removed ------*/
 		}
 		else if (QuaternionObject_Check(v2)) {
 			/* VEC * QUAT */
+/* ------ to be removed ------*/
+#if 1
+			PyErr_SetString(PyExc_ValueError,
+			                "(Vector * Quat) is now removed, reverse the "
+			                "order (promoted to an Error for Debug builds)");
+			return NULL;
+#else
 			QuaternionObject *quat2 = (QuaternionObject*)v2;
 			float tvec[3];
 
@@ -1207,26 +1204,11 @@ static PyObject *Vector_mul(PyObject *v1, PyObject *v2)
 				return NULL;
 			}
 
-
-/* ------ to be removed ------*/
-#ifndef MATH_STANDALONE
-#ifdef WITH_ASSERT_ABORT
-			PyErr_SetString(PyExc_ValueError,
-			                "(Vector * Quat) is now removed, reverse the "
-			                "order (promoted to an Error for Debug builds)");
-			return NULL;
-#else
-			printf("Warning: (Vector * Quat) is now deprecated, "
-			       "reverse the multiplication order in the script.\n");
-			PyC_LineSpit();
-#endif
-#endif		/* ifndef MATH_STANDALONE */
-/* ------ to be removed ------*/
-
-
 			copy_v3_v3(tvec, vec1->vec);
 			mul_qt_v3(quat2->quat, tvec);
 			return newVectorObject(tvec, 3, Py_NEW, Py_TYPE(vec1));
+#endif
+/* ------ to be removed ------*/
 		}
 		else if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* VEC * FLOAT */
 			return vector_mul_float(vec1, scalar);
@@ -1260,6 +1242,14 @@ static PyObject *Vector_imul(PyObject *v1, PyObject *v2)
 	/* only support vec*=float and vec*=mat
 	   vec*=vec result is a float so that wont work */
 	if (MatrixObject_Check(v2)) {
+/* ------ to be removed ------*/
+#if 1
+		PyErr_SetString(PyExc_ValueError,
+						"(Vector *= Matrix) is now removed, reverse the "
+						"order (promoted to an Error for Debug builds) "
+						"and uses the non in-place multiplication.");
+		return NULL;
+#else
 		float rvec[MAX_DIMENSIONS];
 		if(BaseMath_ReadCallback((MatrixObject *)v2) == -1)
 			return NULL;
@@ -1267,28 +1257,21 @@ static PyObject *Vector_imul(PyObject *v1, PyObject *v2)
 		if(column_vector_multiplication(rvec, vec, (MatrixObject*)v2) == -1)
 			return NULL;
 
-
-/* ------ to be removed ------*/
-#ifndef MATH_STANDALONE
-#ifdef WITH_ASSERT_ABORT
-			PyErr_SetString(PyExc_ValueError,
-							"(Vector *= Matrix) is now removed, reverse the "
-							"order (promoted to an Error for Debug builds) "
-			                "and uses the non in-place multiplication.");
-			return NULL;
-#else
-			printf("Warning: (Vector *= Matrix) is now deprecated, "
-				   "reverse the (non in-place) multiplication order in the script.\n");
-			PyC_LineSpit();
+		memcpy(vec->vec, rvec, sizeof(float) * vec->size);
 #endif
-#endif		/* ifndef MATH_STANDALONE */
 /* ------ to be removed ------*/
-
-
-		memcpy(vec->vec, rvec, sizeof(float) * vec->size);
 	}
 	else if (QuaternionObject_Check(v2)) {
 		/* VEC *= QUAT */
+
+/* ------ to be removed ------*/
+#if 1
+		PyErr_SetString(PyExc_ValueError,
+						"(Vector *= Quat) is now removed, reverse the "
+						"order (promoted to an Error for Debug builds) "
+						"and uses the non in-place multiplication.");
+		return NULL;
+#else
 		QuaternionObject *quat2 = (QuaternionObject*)v2;
 
 		if(vec->size != 3) {
@@ -1302,25 +1285,9 @@ static PyObject *Vector_imul(PyObject *v1, PyObject *v2)
 			return NULL;
 		}
 
-
-/* ------ to be removed ------*/
-#ifndef MATH_STANDALONE
-#ifdef WITH_ASSERT_ABORT
-			PyErr_SetString(PyExc_ValueError,
-							"(Vector *= Quat) is now removed, reverse the "
-							"order (promoted to an Error for Debug builds) "
-			                "and uses the non in-place multiplication.");
-			return NULL;
-#else
-			printf("Warning: (Vector *= Quat) is now deprecated, "
-				   "reverse the (non in-place) multiplication order in the script.\n");
-			PyC_LineSpit();
+		mul_qt_v3(quat2->quat, vec->vec);
 #endif
-#endif		/* ifndef MATH_STANDALONE */
 /* ------ to be removed ------*/
-
-
-		mul_qt_v3(quat2->quat, vec->vec);
 	}
 	else if (((scalar= PyFloat_AsDouble(v2)) == -1.0f && PyErr_Occurred())==0) { /* VEC *= FLOAT */
 		mul_vn_fl(vec->vec, vec->size, scalar);
@@ -1728,6 +1695,21 @@ static int Vector_setLength(VectorObject *self, PyObject *value)
 	return 0;
 }
 
+/* vector.length_squared */
+static PyObject *Vector_getLengthSquared(VectorObject *self, void *UNUSED(closure))
+{
+	double dot = 0.0f;
+	int i;
+
+	if(BaseMath_ReadCallback(self) == -1)
+		return NULL;
+
+	for(i = 0; i < self->size; i++){
+		dot += (double)(self->vec[i] * self->vec[i]);
+	}
+	return PyFloat_FromDouble(dot);
+}
+
 /* Get a new Vector according to the provided swizzle. This function has little
    error checking, as we are in control of the inputs: the closure is set by us
    in Vector_createSwizzleGetSeter. */
@@ -1851,6 +1833,7 @@ static PyGetSetDef Vector_getseters[] = {
 	{(char *)"z", (getter)Vector_getAxis, (setter)Vector_setAxis, (char *)"Vector Z axis (3D Vectors only).\n\n:type: float", (void *)2},
 	{(char *)"w", (getter)Vector_getAxis, (setter)Vector_setAxis, (char *)"Vector W axis (4D Vectors only).\n\n:type: float", (void *)3},
 	{(char *)"length", (getter)Vector_getLength, (setter)Vector_setLength, (char *)"Vector Length.\n\n:type: float", NULL},
+	{(char *)"length_squared", (getter)Vector_getLengthSquared, (setter)NULL, (char *)"Vector length squared (v.dot(v)).\n\n:type: float", NULL},
 	{(char *)"magnitude", (getter)Vector_getLength, (setter)Vector_setLength, (char *)"Vector Length.\n\n:type: float", NULL},
 	{(char *)"is_wrapped", (getter)BaseMathObject_getWrapped, (setter)NULL, (char *)BaseMathObject_Wrapped_doc, NULL},
 	{(char *)"owner", (getter)BaseMathObject_getOwner, (setter)NULL, (char *)BaseMathObject_Owner_doc, NULL},
diff --git a/source/blender/render/extern/include/RE_engine.h b/source/blender/render/extern/include/RE_engine.h
index 2b0ee81fcde3123b88553e75725ff44b40a08b03..f7a927ec5dbf1fcf8ac45f45f01290ceece5c500 100644
--- a/source/blender/render/extern/include/RE_engine.h
+++ b/source/blender/render/extern/include/RE_engine.h
@@ -93,14 +93,14 @@ void RE_engine_free(RenderEngine *engine);
 void RE_layer_load_from_file(struct RenderLayer *layer, struct ReportList *reports, const char *filename, int x, int y);
 void RE_result_load_from_file(struct RenderResult *result, struct ReportList *reports, const char *filename);
 
-LIBEXPORT struct RenderResult *RE_engine_begin_result(RenderEngine *engine, int x, int y, int w, int h);
-LIBEXPORT void RE_engine_update_result(RenderEngine *engine, struct RenderResult *result);
-LIBEXPORT void RE_engine_end_result(RenderEngine *engine, struct RenderResult *result);
-
-LIBEXPORT int RE_engine_test_break(RenderEngine *engine);
-LIBEXPORT void RE_engine_update_stats(RenderEngine *engine, const char *stats, const char *info);
-LIBEXPORT void RE_engine_update_progress(RenderEngine *engine, float progress);
-LIBEXPORT void RE_engine_report(RenderEngine *engine, int type, const char *msg);
+struct RenderResult *RE_engine_begin_result(RenderEngine *engine, int x, int y, int w, int h);
+void RE_engine_update_result(RenderEngine *engine, struct RenderResult *result);
+void RE_engine_end_result(RenderEngine *engine, struct RenderResult *result);
+
+int RE_engine_test_break(RenderEngine *engine);
+void RE_engine_update_stats(RenderEngine *engine, const char *stats, const char *info);
+void RE_engine_update_progress(RenderEngine *engine, float progress);
+void RE_engine_report(RenderEngine *engine, int type, const char *msg);
 
 int RE_engine_render(struct Render *re, int do_all);
 
diff --git a/source/blender/render/intern/source/rayshade.c b/source/blender/render/intern/source/rayshade.c
index 34d3adcf15bbedb471e3e5274dbe5a449c2c68b7..d62f411a7c5062f04e66d93592ee2eabc9e87813 100644
--- a/source/blender/render/intern/source/rayshade.c
+++ b/source/blender/render/intern/source/rayshade.c
@@ -1679,7 +1679,7 @@ static void ray_trace_shadow_tra(Isect *is, ShadeInput *origshi, int depth, int
 
 /* not used, test function for ambient occlusion (yaf: pathlight) */
 /* main problem; has to be called within shading loop, giving unwanted recursion */
-static int ray_trace_shadow_rad(ShadeInput *ship, ShadeResult *shr)
+static int UNUSED_FUNCTION(ray_trace_shadow_rad)(ShadeInput *ship, ShadeResult *shr)
 {
 	static int counter=0, only_one= 0;
 	extern float hashvectf[];
diff --git a/source/blender/windowmanager/CMakeLists.txt b/source/blender/windowmanager/CMakeLists.txt
index 20ac3ba7077bf057b25bd00b78fdf2f32b5915ce..dc83e29b497e2034bbe07b12d87b42a1d32c4156 100644
--- a/source/blender/windowmanager/CMakeLists.txt
+++ b/source/blender/windowmanager/CMakeLists.txt
@@ -67,6 +67,7 @@ set(SRC
 	intern/wm_window.c
 
 	WM_api.h
+	WM_keymap.h
 	WM_types.h
 	wm.h
 	wm_cursors.h
diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h
index 42c3096dfc9fed028f7d15497bc062e024ad74b8..e1b8cefca4bab27cf1900f3ae68badca67842d6b 100644
--- a/source/blender/windowmanager/WM_api.h
+++ b/source/blender/windowmanager/WM_api.h
@@ -179,7 +179,7 @@ void		WM_operator_free		(struct wmOperator *op);
 void		WM_operator_stack_clear(struct wmWindowManager *wm);
 
 struct wmOperatorType *WM_operatortype_find(const char *idnamem, int quiet);
-struct wmOperatorType *WM_operatortype_first(void);
+struct GHashIterator *WM_operatortype_iter(void);
 void		WM_operatortype_append	(void (*opfunc)(struct wmOperatorType*));
 void		WM_operatortype_append_ptr	(void (*opfunc)(struct wmOperatorType*, void *), void *userdata);
 void		WM_operatortype_append_macro_ptr	(void (*opfunc)(struct wmOperatorType*, void *), void *userdata);
@@ -222,6 +222,7 @@ wmOperator *WM_operator_last_redo(const struct bContext *C);
 #define WM_FILESEL_DIRECTORY	(1 << 1)
 #define WM_FILESEL_FILENAME		(1 << 2)
 #define WM_FILESEL_FILEPATH		(1 << 3)
+#define WM_FILESEL_FILES		(1 << 4)
 
 
 		/* operator as a python command (resultuing string must be free'd) */
@@ -230,6 +231,7 @@ void		WM_operator_bl_idname(char *to, const char *from);
 void		WM_operator_py_idname(char *to, const char *from);
 
 /* *************** menu types ******************** */
+void				WM_menutype_init(void);
 struct MenuType		*WM_menutype_find(const char *idname, int quiet);
 int					WM_menutype_add(struct MenuType* mt);
 int					WM_menutype_contains(struct MenuType* mt);
diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h
index 7fd52e89a5ffa5daa1453d41b0370454ea9896c0..cc3ae3ab753993840d6dcb47f6f1d71b884852d9 100644
--- a/source/blender/windowmanager/WM_types.h
+++ b/source/blender/windowmanager/WM_types.h
@@ -389,8 +389,14 @@ typedef struct wmNDOFMotionData {
 	/* awfully similar to GHOST_TEventNDOFMotionData... */
 	// Each component normally ranges from -1 to +1, but can exceed that.
 	// These use blender standard view coordinates, with positive rotations being CCW about the axis.
-	float tvec[3]; // translation
-	float rvec[3]; // rotation:
+	union {
+		float tvec[3]; // translation
+		struct { float tx, ty, tz; };
+		};
+	union {
+		float rvec[3]; // rotation:
+		struct { float rx, ry, rz; };
+		};
 		// axis = (rx,ry,rz).normalized
 		// amount = (rx,ry,rz).magnitude [in revolutions, 1.0 = 360 deg]
 	float dt; // time since previous NDOF Motion event
@@ -417,8 +423,6 @@ typedef struct wmTimer {
 
 
 typedef struct wmOperatorType {
-	struct wmOperatorType *next, *prev;
-
 	const char *name;		/* text for ui, undo */
 	const char *idname;		/* unique identifier */
 	const char *description;	/* tooltips and python docs */
diff --git a/source/blender/windowmanager/intern/wm.c b/source/blender/windowmanager/intern/wm.c
index 1d5cf1cdc53b73b6934a1fd87ced440b41ce0992..9299b50103c9011dca2782a2df3946eef24d4f73 100644
--- a/source/blender/windowmanager/intern/wm.c
+++ b/source/blender/windowmanager/intern/wm.c
@@ -40,7 +40,11 @@
 
 #include "GHOST_C-api.h"
 
+#include "MEM_guardedalloc.h"
+
+#include "BLI_utildefines.h"
 #include "BLI_blenlib.h"
+#include "BLI_ghash.h"
 
 #include "BKE_blender.h"
 #include "BKE_context.h"
@@ -59,8 +63,6 @@
 #include "wm_draw.h"
 #include "wm.h"
 
-#include "MEM_guardedalloc.h"
-
 #include "ED_screen.h"
 
 #ifdef WITH_PYTHON
@@ -151,14 +153,14 @@ void WM_operator_stack_clear(wmWindowManager *wm)
 
 /* ****************************************** */
 
-static ListBase menutypes = {NULL, NULL}; /* global menutype list */
+static GHash *menutypes_hash= NULL;
 
 MenuType *WM_menutype_find(const char *idname, int quiet)
 {
 	MenuType* mt;
 
 	if (idname[0]) {
-		mt= BLI_findstring(&menutypes, idname, offsetof(MenuType, idname));
+		mt= BLI_ghash_lookup(menutypes_hash, idname);
 		if(mt)
 			return mt;
 	}
@@ -171,35 +173,55 @@ MenuType *WM_menutype_find(const char *idname, int quiet)
 
 int WM_menutype_add(MenuType* mt)
 {
-	BLI_addtail(&menutypes, mt);
+	BLI_ghash_insert(menutypes_hash, (void *)mt->idname, mt);
 	return 1;
 }
 
 /* inefficient but only used for tooltip code */
 int WM_menutype_contains(MenuType* mt)
 {
-	return (mt != NULL && BLI_findindex(&menutypes, mt) != -1);
+	int found= FALSE;
+
+	if(mt) {
+		GHashIterator *iter= BLI_ghashIterator_new(menutypes_hash);
+
+		for( ; !BLI_ghashIterator_isDone(iter); BLI_ghashIterator_step(iter)) {
+			if(mt == BLI_ghashIterator_getValue(iter)) {
+				found= TRUE;
+				break;
+			}
+		}
+		BLI_ghashIterator_free(iter);
+	}
+
+	return found;
 }
 
 void WM_menutype_freelink(MenuType* mt)
 {
-	BLI_freelinkN(&menutypes, mt);
+	BLI_ghash_remove(menutypes_hash, mt->idname, NULL, (GHashValFreeFP)MEM_freeN);
 }
 
-void WM_menutype_free(void)
+/* called on initialize WM_init() */
+void WM_menutype_init(void)
 {
-	MenuType* mt= menutypes.first, *mt_next;
+	menutypes_hash= BLI_ghash_new(BLI_ghashutil_strhash, BLI_ghashutil_strcmp, "menutypes_hash gh");
+}
 
-	while(mt) {
-		mt_next= mt->next;
+void WM_menutype_free(void)
+{
+	GHashIterator *iter= BLI_ghashIterator_new(menutypes_hash);
 
-		if(mt->ext.free)
+	for( ; !BLI_ghashIterator_isDone(iter); BLI_ghashIterator_step(iter)) {
+		MenuType *mt= BLI_ghashIterator_getValue(iter);
+		if(mt->ext.free) {
 			mt->ext.free(mt->ext.data);
-
-		WM_menutype_freelink(mt);
-
-		mt= mt_next;
+		}
 	}
+	BLI_ghashIterator_free(iter);
+
+	BLI_ghash_free(menutypes_hash, NULL, (GHashValFreeFP)MEM_freeN);
+	menutypes_hash= NULL;
 }
 
 /* ****************************************** */
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index 5baaf6b4eb27edee074a719799e4143c7f189050..a96cc8cf9577e34313805bf0b1f1b921a7752267 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -2335,29 +2335,32 @@ static void attach_ndof_data(wmEvent* event, const GHOST_TEventNDOFMotionData* g
 
 	const float s = U.ndof_sensitivity;
 
-	data->tvec[0]= s * ghost->tx;
+	data->tx = s * ghost->tx;
 
-	data->rvec[0]= s * ghost->rx;
-	data->rvec[1]= s * ghost->ry;
-	data->rvec[2]= s * ghost->rz;
+	data->rx = s * ghost->rx;
+	data->ry = s * ghost->ry;
+	data->rz = s * ghost->rz;
 
 	if (U.ndof_flag & NDOF_ZOOM_UPDOWN)
 		{
-		// rotate so Y is where Z was (maintain handed-ness)
-		data->tvec[1]= s * ghost->tz;
-		data->tvec[2]= s * -ghost->ty;
-
-		// should this affect rotation also?
-		// initial guess is 'yes', but get user feedback immediately!
-#if 0	// after turning this on, my guess becomes 'no'
-		data->rvec[1]= s * ghost->rz;
-		data->rvec[2]= s * ghost->ry;
+		/* rotate so Y is where Z was */
+		data->ty = s * ghost->tz;
+		data->tz = s * ghost->ty;
+		/* maintain handed-ness? or just do what feels right? */
+
+		/* should this affect rotation also?
+		 * initial guess is 'yes', but get user feedback immediately!
+		 */
+#if 0
+		/* after turning this on, my guess becomes 'no' */
+		data->ry = s * ghost->rz;
+		data->rz = s * ghost->ry;
 #endif
 		}
 	else
 		{
-		data->tvec[1]= s * ghost->ty;
-		data->tvec[2]= s * ghost->tz;
+		data->ty = s * ghost->ty;
+		data->tz = s * ghost->tz;
 		}
 
 	data->dt = ghost->dt;
diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c
index 20f9d2237c2d9e0905c6f89ba077cdf286467557..6b3a574b6b69b1d5a981392413bdeeb0cb1c479e 100644
--- a/source/blender/windowmanager/intern/wm_files.c
+++ b/source/blender/windowmanager/intern/wm_files.c
@@ -450,7 +450,7 @@ void WM_read_file(bContext *C, const char *filepath, ReportList *reports)
 /* called on startup,  (context entirely filled with NULLs) */
 /* or called for 'New File' */
 /* op can be NULL */
-int WM_read_homefile(bContext *C, ReportList *reports, short from_memory)
+int WM_read_homefile(bContext *C, ReportList *UNUSED(reports), short from_memory)
 {
 	ListBase wmbase;
 	char tstr[FILE_MAXDIR+FILE_MAXFILE];
@@ -466,7 +466,6 @@ int WM_read_homefile(bContext *C, ReportList *reports, short from_memory)
 		} else {
 			tstr[0] = '\0';
 			from_memory = 1;
-			BKE_report(reports, RPT_INFO, "Config directory with "STRINGIFY(BLENDER_STARTUP_FILE)" file not found.");
 		}
 	}
 	
diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c
index 6f8b455e83573b78e367917934ace225f3427e16..66adbdaa681157b038b8f7d0606d949ac88011d4 100644
--- a/source/blender/windowmanager/intern/wm_init_exit.c
+++ b/source/blender/windowmanager/intern/wm_init_exit.c
@@ -128,7 +128,8 @@ void WM_init(bContext *C, int argc, const char **argv)
 	}
 	GHOST_CreateSystemPaths();
 	wm_operatortype_init();
-	
+	WM_menutype_init();
+
 	set_free_windowmanager_cb(wm_close_and_free);	/* library.c */
 	set_blender_test_break_cb(wm_window_testbreak); /* blender.c */
 	DAG_editors_update_cb(ED_render_id_flush_update); /* depsgraph.c */
diff --git a/source/blender/windowmanager/intern/wm_keymap.c b/source/blender/windowmanager/intern/wm_keymap.c
index 2fb0a1b2ab9d6400a49e2d12bc1b9e9ac4d549e8..6887aa4c7173e67cc0c56aa4cc5a8175422a0b83 100644
--- a/source/blender/windowmanager/intern/wm_keymap.c
+++ b/source/blender/windowmanager/intern/wm_keymap.c
@@ -106,6 +106,9 @@ static int wm_keymap_item_equals_result(wmKeyMapItem *a, wmKeyMapItem *b)
 	     (a->ptr && b->ptr && IDP_EqualsProperties(a->ptr->data, b->ptr->data))))
 		return 0;
 	
+	if((a->flag & KMI_INACTIVE) != (b->flag & KMI_INACTIVE))
+		return 0;
+	
 	return (a->propvalue == b->propvalue);
 }
 
@@ -1009,7 +1012,8 @@ void WM_keyconfig_update(wmWindowManager *wm)
 			addonmap= WM_keymap_list_find(&wm->addonconf->keymaps, km->idname, km->spaceid, km->regionid);
 
 			/* diff */
-			wm_keymap_diff_update(&U.user_keymaps, defaultmap, addonmap, km);
+			if(defaultmap)
+				wm_keymap_diff_update(&U.user_keymaps, defaultmap, addonmap, km);
 		}
 	}
 
diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c
index cea2d6b3fe54991f306f4ee848bfbe29768b07d8..1beb5b3dda3f0ae9121fb5a50684ed7106a60cce 100644
--- a/source/blender/windowmanager/intern/wm_operators.c
+++ b/source/blender/windowmanager/intern/wm_operators.c
@@ -58,6 +58,7 @@
 #include "BLI_math.h"
 #include "BLI_string.h"
 #include "BLI_utildefines.h"
+#include "BLI_ghash.h"
 
 #include "BLO_readfile.h"
 
@@ -100,7 +101,7 @@
 #include "wm_subwindow.h"
 #include "wm_window.h"
 
-static ListBase global_ops= {NULL, NULL};
+static GHash *global_ops_hash= NULL;
 
 /* ************ operator API, exported ********** */
 
@@ -113,7 +114,7 @@ wmOperatorType *WM_operatortype_find(const char *idname, int quiet)
 	WM_operator_bl_idname(idname_bl, idname);
 
 	if (idname_bl[0]) {
-		ot= (wmOperatorType *)BLI_findstring_ptr(&global_ops, idname_bl, offsetof(wmOperatorType, idname));
+		ot= BLI_ghash_lookup(global_ops_hash, idname_bl);
 		if(ot) {
 			return ot;
 		}
@@ -125,9 +126,10 @@ wmOperatorType *WM_operatortype_find(const char *idname, int quiet)
 	return NULL;
 }
 
-wmOperatorType *WM_operatortype_first(void)
+/* caller must free */
+GHashIterator *WM_operatortype_iter(void)
 {
-	return global_ops.first;
+	return BLI_ghashIterator_new(global_ops_hash);
 }
 
 /* all ops in 1 list (for time being... needs evaluation later) */
@@ -147,7 +149,8 @@ void WM_operatortype_append(void (*opfunc)(wmOperatorType*))
 
 	RNA_def_struct_ui_text(ot->srna, ot->name, ot->description ? ot->description:"(undocumented operator)"); // XXX All ops should have a description but for now allow them not to.
 	RNA_def_struct_identifier(ot->srna, ot->idname);
-	BLI_addtail(&global_ops, ot);
+
+	BLI_ghash_insert(global_ops_hash, (void *)ot->idname, ot);
 }
 
 void WM_operatortype_append_ptr(void (*opfunc)(wmOperatorType*, void*), void *userdata)
@@ -159,7 +162,8 @@ void WM_operatortype_append_ptr(void (*opfunc)(wmOperatorType*, void*), void *us
 	opfunc(ot, userdata);
 	RNA_def_struct_ui_text(ot->srna, ot->name, ot->description ? ot->description:"(undocumented operator)");
 	RNA_def_struct_identifier(ot->srna, ot->idname);
-	BLI_addtail(&global_ops, ot);
+
+	BLI_ghash_insert(global_ops_hash, (void *)ot->idname, ot);
 }
 
 /* ********************* macro operator ******************** */
@@ -351,7 +355,7 @@ wmOperatorType *WM_operatortype_append_macro(const char *idname, const char *nam
 	RNA_def_struct_ui_text(ot->srna, ot->name, ot->description); // XXX All ops should have a description but for now allow them not to.
 	RNA_def_struct_identifier(ot->srna, ot->idname);
 
-	BLI_addtail(&global_ops, ot);
+	BLI_ghash_insert(global_ops_hash, (void *)ot->idname, ot);
 
 	return ot;
 }
@@ -378,7 +382,7 @@ void WM_operatortype_append_macro_ptr(void (*opfunc)(wmOperatorType*, void*), vo
 	RNA_def_struct_ui_text(ot->srna, ot->name, ot->description);
 	RNA_def_struct_identifier(ot->srna, ot->idname);
 
-	BLI_addtail(&global_ops, ot);
+	BLI_ghash_insert(global_ops_hash, (void *)ot->idname, ot);
 }
 
 wmOperatorTypeMacro *WM_operatortype_macro_define(wmOperatorType *ot, const char *idname)
@@ -426,14 +430,14 @@ int WM_operatortype_remove(const char *idname)
 	if (ot==NULL)
 		return 0;
 	
-	BLI_remlink(&global_ops, ot);
 	RNA_struct_free(&BLENDER_RNA, ot->srna);
 	
 	if(ot->macro.first)
 		wm_operatortype_free_macro(ot);
-	
-	MEM_freeN(ot);
 
+	BLI_ghash_remove(global_ops_hash, (void *)ot->idname, NULL, NULL);
+
+	MEM_freeN(ot);
 	return 1;
 }
 
@@ -807,6 +811,9 @@ void WM_operator_properties_filesel(wmOperatorType *ot, int filter, short type,
 	if(flag & WM_FILESEL_FILENAME)
 		RNA_def_string_file_name(ot->srna, "filename", "", FILE_MAX, "File Name", "Name of the file");
 
+	if(flag & WM_FILESEL_FILES)
+		RNA_def_collection_runtime(ot->srna, "files", &RNA_OperatorFileListElement, "Files", "");
+
 	if (action == FILE_SAVE) {
 		prop= RNA_def_boolean(ot->srna, "check_existing", 1, "Check Existing", "Check and warn on overwriting existing files");
 		RNA_def_property_flag(prop, PROP_HIDDEN);
@@ -1247,7 +1254,7 @@ static uiBlock *wm_block_create_splash(bContext *C, ARegion *ar, void *UNUSED(ar
 	col = uiLayoutColumn(split, 0);
 	uiItemL(col, "Links", ICON_NONE);
 	uiItemStringO(col, "Donations", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/blenderorg/blender-foundation/donation-payment/");
-	uiItemStringO(col, "Release Log", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/development/release-logs/blender-258/");
+	uiItemStringO(col, "Release Log", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/development/release-logs/blender-259/");
 	uiItemStringO(col, "Manual", ICON_URL, "WM_OT_url_open", "url", "http://wiki.blender.org/index.php/Doc:2.5/Manual");
 	uiItemStringO(col, "Blender Website", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/");
 	uiItemStringO(col, "User Community", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/community/user-community/"); // 
@@ -1311,9 +1318,10 @@ static void operator_call_cb(struct bContext *C, void *UNUSED(arg1), void *arg2)
 
 static void operator_search_cb(const struct bContext *C, void *UNUSED(arg), const char *str, uiSearchItems *items)
 {
-	wmOperatorType *ot = WM_operatortype_first();
-	
-	for(; ot; ot= ot->next) {
+	GHashIterator *iter= WM_operatortype_iter();
+
+	for( ; !BLI_ghashIterator_isDone(iter); BLI_ghashIterator_step(iter)) {
+		wmOperatorType *ot= BLI_ghashIterator_getValue(iter);
 
 		if((ot->flag & OPTYPE_INTERNAL) && (G.f & G_DEBUG) == 0)
 			continue;
@@ -1337,6 +1345,7 @@ static void operator_search_cb(const struct bContext *C, void *UNUSED(arg), cons
 			}
 		}
 	}
+	BLI_ghashIterator_free(iter);
 }
 
 static uiBlock *wm_block_search_menu(bContext *C, ARegion *ar, void *UNUSED(arg_op))
@@ -1742,14 +1751,12 @@ static void WM_OT_link_append(wmOperatorType *ot)
 	
 	ot->flag |= OPTYPE_UNDO;
 
-	WM_operator_properties_filesel(ot, FOLDERFILE|BLENDERFILE, FILE_LOADLIB, FILE_OPENFILE, WM_FILESEL_FILEPATH|WM_FILESEL_DIRECTORY|WM_FILESEL_FILENAME| WM_FILESEL_RELPATH);
+	WM_operator_properties_filesel(ot, FOLDERFILE|BLENDERFILE, FILE_LOADLIB, FILE_OPENFILE, WM_FILESEL_FILEPATH|WM_FILESEL_DIRECTORY|WM_FILESEL_FILENAME| WM_FILESEL_RELPATH|WM_FILESEL_FILES);
 	
 	RNA_def_boolean(ot->srna, "link", 1, "Link", "Link the objects or datablocks rather than appending");
 	RNA_def_boolean(ot->srna, "autoselect", 1, "Select", "Select the linked objects");
 	RNA_def_boolean(ot->srna, "active_layer", 1, "Active Layer", "Put the linked objects on the active layer");
 	RNA_def_boolean(ot->srna, "instance_groups", 1, "Instance Groups", "Create instances for each group as a DupliGroup");
-
-	RNA_def_collection_runtime(ot->srna, "files", &RNA_OperatorFileListElement, "Files", "");
 }	
 
 /* *************** recover last session **************** */
@@ -2003,8 +2010,6 @@ static void WM_OT_save_mainfile(wmOperatorType *ot)
 
 static int wm_collada_export_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
 {	
-	int selected = 0;
-
 	if(!RNA_property_is_set(op->ptr, "filepath")) {
 		char filepath[FILE_MAX];
 		BLI_strncpy(filepath, G.main->name, sizeof(filepath));
@@ -3457,26 +3462,31 @@ static void WM_OT_ndof_sensitivity_change(wmOperatorType *ot)
 	RNA_def_boolean(ot->srna, "fast", 0, "Fast NDOF sensitivity change", "If true then sensitivity changes 50%, otherwise 10%");
 } 
 
+
+static void operatortype_ghash_free_cb(wmOperatorType *ot)
+{
+	if(ot->macro.first)
+		wm_operatortype_free_macro(ot);
+
+	if(ot->ext.srna) /* python operator, allocs own string */
+		MEM_freeN((void *)ot->idname);
+
+	MEM_freeN(ot);
+}
+
 /* ******************************************************* */
 /* called on initialize WM_exit() */
 void wm_operatortype_free(void)
 {
-	wmOperatorType *ot;
-	
-	for(ot= global_ops.first; ot; ot= ot->next) {
-		if(ot->macro.first)
-			wm_operatortype_free_macro(ot);
-
-		if(ot->ext.srna) /* python operator, allocs own string */
-			MEM_freeN((void *)ot->idname);
-	}
-	
-	BLI_freelistN(&global_ops);
+	BLI_ghash_free(global_ops_hash, NULL, (GHashValFreeFP)operatortype_ghash_free_cb);
+	global_ops_hash= NULL;
 }
 
 /* called on initialize WM_init() */
 void wm_operatortype_init(void)
 {
+	global_ops_hash= BLI_ghash_new(BLI_ghashutil_strhash, BLI_ghashutil_strcmp, "wm_operatortype_init gh");
+
 	WM_operatortype_append(WM_OT_window_duplicate);
 	WM_operatortype_append(WM_OT_read_homefile);
 	WM_operatortype_append(WM_OT_read_factory_settings);
diff --git a/source/blender/windowmanager/intern/wm_subwindow.c b/source/blender/windowmanager/intern/wm_subwindow.c
index a87001fb1b4e7c0870d9c8e7bea09f5747b8c7ad..8ea1f2fdd0ae5d869387f61d4e96bc634493c4e5 100644
--- a/source/blender/windowmanager/intern/wm_subwindow.c
+++ b/source/blender/windowmanager/intern/wm_subwindow.c
@@ -378,7 +378,8 @@ unsigned int index_to_framebuffer(int index)
 
 void WM_set_framebuffer_index_color(int index)
 {
-	cpack(index_to_framebuffer(index));
+	const int col= index_to_framebuffer(index);
+	cpack(col);
 }
 
 int WM_framebuffer_to_index(unsigned int col)
diff --git a/source/blenderplayer/bad_level_call_stubs/stubs.c b/source/blenderplayer/bad_level_call_stubs/stubs.c
index b37f6b0baf252629ff4f843ee514de406ecd361c..d8f37aa250cef722f15632dd2d0c219d64c4476c 100644
--- a/source/blenderplayer/bad_level_call_stubs/stubs.c
+++ b/source/blenderplayer/bad_level_call_stubs/stubs.c
@@ -395,7 +395,7 @@ void RE_engine_free(struct RenderEngine *engine) {}
 
 /* python */
 struct wmOperatorType *WM_operatortype_find(const char *idname, int quiet){return (struct wmOperatorType *) NULL;}
-struct wmOperatorType *WM_operatortype_first(){return (struct wmOperatorType *) NULL;}
+struct GHashIterator *WM_operatortype_iter(){return (struct GHashIterator *) NULL;}
 struct wmOperatorType *WM_operatortype_exists(const char *idname){return (struct wmOperatorType *) NULL;}
 struct wmOperatorTypeMacro *WM_operatortype_macro_define(struct wmOperatorType *ot, const char *idname){return (struct wmOperatorTypeMacro *) NULL;}
 int WM_operator_call_py(struct bContext *C, struct wmOperatorType *ot, int context, struct PointerRNA *properties, struct ReportList *reports){return 0;}
diff --git a/source/gameengine/Ketsji/KX_Light.cpp b/source/gameengine/Ketsji/KX_Light.cpp
index 49f00e391106a37b77b79cec6f5117f0b09dcfb1..3f09eee013e53b7493fbd849253d9c37a2782aa1 100644
--- a/source/gameengine/Ketsji/KX_Light.cpp
+++ b/source/gameengine/Ketsji/KX_Light.cpp
@@ -254,8 +254,12 @@ void KX_LightObject::BindShadowBuffer(RAS_IRasterizer *ras, KX_Camera *cam, MT_T
 	cam->NodeUpdateGS(0);
 
 	/* setup rasterizer transformations */
+	/* SetViewMatrix may use stereomode which we temporarily disable here */
+	RAS_IRasterizer::StereoMode stereomode = ras->GetStereoMode();
+	ras->SetStereoMode(RAS_IRasterizer::RAS_STEREO_NOSTEREO);
 	ras->SetProjectionMatrix(projectionmat);
 	ras->SetViewMatrix(modelviewmat, cam->NodeGetWorldOrientation(), cam->NodeGetWorldPosition(), cam->GetCameraData()->m_perspective);
+	ras->SetStereoMode(stereomode);
 }
 
 void KX_LightObject::UnbindShadowBuffer(RAS_IRasterizer *ras)
diff --git a/source/tests/CMakeLists.txt b/source/tests/CMakeLists.txt
index 8fd0d6e7099221ed4320b6abfe5f9f1a1500ecde..3f802642d33381ca853237e03c7ceb3eea438daa 100644
--- a/source/tests/CMakeLists.txt
+++ b/source/tests/CMakeLists.txt
@@ -111,7 +111,7 @@ add_test(export_obj_all_objects ${TEST_BLENDER_EXE}
 	--run={'FINISHED'}&bpy.ops.export_scene.obj\(filepath='${TEST_OUT_DIR}/export_obj_all_objects.obj',use_selection=False,use_nurbs=True\)
 	--md5_source=${TEST_OUT_DIR}/export_obj_all_objects.obj
 	--md5_source=${TEST_OUT_DIR}/export_obj_all_objects.mtl
-	--md5=01c123948efadc6a71ab2c09a5925756 --md5_method=FILE
+	--md5=04b3ed97cede07a19548fc518ce9f8ca --md5_method=FILE
 )
 
 
@@ -196,7 +196,7 @@ add_test(export_x3d_cube ${TEST_BLENDER_EXE}
 	--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
 	--run={'FINISHED'}&bpy.ops.export_scene.x3d\(filepath='${TEST_OUT_DIR}/export_x3d_cube.x3d',use_selection=False\)
 	--md5_source=${TEST_OUT_DIR}/export_x3d_cube.x3d
-	--md5=5e804c689896116331fa190a9fabbad4 --md5_method=FILE
+	--md5=2621d8cc2cc1d34f6711c54519907dac --md5_method=FILE
 )
 
 add_test(export_x3d_nurbs ${TEST_BLENDER_EXE}
@@ -204,7 +204,7 @@ add_test(export_x3d_nurbs ${TEST_BLENDER_EXE}
 	--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
 	--run={'FINISHED'}&bpy.ops.export_scene.x3d\(filepath='${TEST_OUT_DIR}/export_x3d_nurbs.x3d',use_selection=False\)
 	--md5_source=${TEST_OUT_DIR}/export_x3d_nurbs.x3d
-	--md5=2d5bcf43cf7b6fbbef1c8cc566968fe5 --md5_method=FILE
+	--md5=d56b3736bab063d101d42079bd276f01 --md5_method=FILE
 )
 
 add_test(export_x3d_all_objects ${TEST_BLENDER_EXE}
@@ -212,7 +212,7 @@ add_test(export_x3d_all_objects ${TEST_BLENDER_EXE}
 	--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
 	--run={'FINISHED'}&bpy.ops.export_scene.x3d\(filepath='${TEST_OUT_DIR}/export_x3d_all_objects.x3d',use_selection=False\)
 	--md5_source=${TEST_OUT_DIR}/export_x3d_all_objects.x3d
-	--md5=2809ec13a4cab55d265ce7525c5db1b7 --md5_method=FILE
+	--md5=0914c9a7fcdbfc5741c1269497e9068b --md5_method=FILE
 )
 
 
@@ -273,7 +273,7 @@ add_test(export_fbx_cube ${TEST_BLENDER_EXE}
 	--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
 	--run={'FINISHED'}&bpy.ops.export_scene.fbx\(filepath='${TEST_OUT_DIR}/export_fbx_cube.fbx',use_selection=False,use_metadata=False\)
 	--md5_source=${TEST_OUT_DIR}/export_fbx_cube.fbx
-	--md5=83dca99a0cb338852b8c85951a44c68a --md5_method=FILE
+	--md5=86da2495dffd7c270e682f599be6b3d1 --md5_method=FILE
 )
 
 add_test(export_fbx_nurbs ${TEST_BLENDER_EXE}
@@ -281,7 +281,7 @@ add_test(export_fbx_nurbs ${TEST_BLENDER_EXE}
 	--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
 	--run={'FINISHED'}&bpy.ops.export_scene.fbx\(filepath='${TEST_OUT_DIR}/export_fbx_nurbs.fbx',use_selection=False,use_metadata=False\)
 	--md5_source=${TEST_OUT_DIR}/export_fbx_nurbs.fbx
-	--md5=c7d9491ffa6264e820ed1e12df63f871 --md5_method=FILE
+	--md5=88a263ddb5181e6522dc214debb92ced --md5_method=FILE
 )
 
 add_test(export_fbx_all_objects ${TEST_BLENDER_EXE}
@@ -289,5 +289,5 @@ add_test(export_fbx_all_objects ${TEST_BLENDER_EXE}
 	--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
 	--run={'FINISHED'}&bpy.ops.export_scene.fbx\(filepath='${TEST_OUT_DIR}/export_fbx_all_objects.fbx',use_selection=False,use_metadata=False\)
 	--md5_source=${TEST_OUT_DIR}/export_fbx_all_objects.fbx
-	--md5=22867f82e1615fd1eae18cfaac8ba035 --md5_method=FILE
+	--md5=e6f75fe7de9aa366896456e13eafc76a --md5_method=FILE
 )
diff --git a/source/tests/bl_run_operators.py b/source/tests/bl_run_operators.py
index 668b4e692284242f0681f30ef5d8de21606b0b12..b64055df252b9b6cb1e3cceb99b0e290f348c38c 100644
--- a/source/tests/bl_run_operators.py
+++ b/source/tests/bl_run_operators.py
@@ -70,7 +70,7 @@ def run_ops(operators, setup_func=None):
 
             setup_func()
 
-            for mode in ('EXEC_DEFAULT', 'INVOKE_DEFAULT'):
+            for mode in {'EXEC_DEFAULT', 'INVOKE_DEFAULT'}:
                 try:
                     op(mode)
                 except: