diff --git a/CMakeLists.txt b/CMakeLists.txt index a2926182c5a..6a9ca35cd05 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -802,33 +802,35 @@ elseif(WIN32) endif() if(MSVC) - if(CMAKE_CL_64) - set(PLATFORM_LINKLIBS ws2_32 vfw32 winmm kernel32 user32 gdi32 comdlg32 advapi32 shfolder shell32 ole32 oleaut32 uuid) - else() - set(PLATFORM_LINKLIBS ws2_32 vfw32 winmm kernel32 user32 gdi32 comdlg32 advapi32 shfolder shell32 ole32 oleaut32 uuid) - endif() + set(PLATFORM_LINKLIBS ws2_32 vfw32 winmm kernel32 user32 gdi32 comdlg32 advapi32 shfolder shell32 ole32 oleaut32 uuid) add_definitions(/D_CRT_NONSTDC_NO_DEPRECATE /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_CONSOLE /D_LIB) - set(CMAKE_CXX_FLAGS "/nologo /J /W1 /Gd /wd4018 /wd4244 /wd4305 /wd4800 /wd4065 /wd4267 /we4013" CACHE STRING "MSVC MT C++ flags " FORCE) - set(CMAKE_C_FLAGS "/nologo /J /W1 /Gd /wd4018 /wd4244 /wd4305 /wd4800 /wd4065 /wd4267 /we4013 /EHsc" CACHE STRING "MSVC MT C++ flags " FORCE) + set(CMAKE_CXX_FLAGS "/nologo /J /Gd /EHsc" CACHE STRING "MSVC MT C++ flags " FORCE) + set(CMAKE_C_FLAGS "/nologo /J /Gd" CACHE STRING "MSVC MT C++ flags " FORCE) if(CMAKE_CL_64) - set(CMAKE_CXX_FLAGS_DEBUG "/Od /Gm /EHsc /RTC1 /MTd /W3 /nologo /Zi /J" CACHE STRING "MSVC MT flags " FORCE) + set(CMAKE_CXX_FLAGS_DEBUG "/Od /Gm /RTC1 /MTd /Zi" CACHE STRING "MSVC MT flags " FORCE) else() - set(CMAKE_CXX_FLAGS_DEBUG "/Od /Gm /EHsc /RTC1 /MTd /W3 /nologo /ZI /J" CACHE STRING "MSVC MT flags " FORCE) + set(CMAKE_CXX_FLAGS_DEBUG "/Od /Gm /RTC1 /MTd /ZI" CACHE STRING "MSVC MT flags " FORCE) endif() - set(CMAKE_CXX_FLAGS_RELEASE "/O2 /Ob2 /EHsc /MT /W3 /nologo /J" CACHE STRING "MSVC MT flags " FORCE) - set(CMAKE_CXX_FLAGS_MINSIZEREL "/O1 /Ob1 /EHsc /MT /W3 /nologo /J" CACHE STRING "MSVC MT flags " FORCE) - set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/O2 /Ob1 /EHsc /MT /W3 /nologo /Zi /J" CACHE STRING "MSVC MT flags " FORCE) + set(CMAKE_CXX_FLAGS_RELEASE "/O2 /Ob2 /MT" CACHE STRING "MSVC MT flags " FORCE) + set(CMAKE_CXX_FLAGS_MINSIZEREL "/O1 /Ob1 /MT" CACHE STRING "MSVC MT flags " FORCE) + set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/O2 /Ob1 /MT /Zi" CACHE STRING "MSVC MT flags " FORCE) if(CMAKE_CL_64) - set(CMAKE_C_FLAGS_DEBUG "/Od /Gm /EHsc /RTC1 /MTd /W3 /nologo /Zi /J" CACHE STRING "MSVC MT flags " FORCE) + set(CMAKE_C_FLAGS_DEBUG "/Od /Gm /RTC1 /MTd /Zi" CACHE STRING "MSVC MT flags " FORCE) else() - set(CMAKE_C_FLAGS_DEBUG "/Od /Gm /EHsc /RTC1 /MTd /W3 /nologo /ZI /J" CACHE STRING "MSVC MT flags " FORCE) + set(CMAKE_C_FLAGS_DEBUG "/Od /Gm /RTC1 /MTd /ZI" CACHE STRING "MSVC MT flags " FORCE) endif() - set(CMAKE_C_FLAGS_RELEASE "/O2 /Ob2 /EHsc /MT /W3 /nologo /J" CACHE STRING "MSVC MT flags " FORCE) - set(CMAKE_C_FLAGS_MINSIZEREL "/O1 /Ob1 /EHsc /MT /W3 /nologo /J" CACHE STRING "MSVC MT flags " FORCE) - set(CMAKE_C_FLAGS_RELWITHDEBINFO "/O2 /Ob1 /EHsc /MT /W3 /nologo /Zi /J" CACHE STRING "MSVC MT flags " FORCE) + set(CMAKE_C_FLAGS_RELEASE "/O2 /Ob2 /MT" CACHE STRING "MSVC MT flags " FORCE) + set(CMAKE_C_FLAGS_MINSIZEREL "/O1 /Ob1 /MT" CACHE STRING "MSVC MT flags " FORCE) + set(CMAKE_C_FLAGS_RELWITHDEBINFO "/O2 /Ob1 /MT /Zi" CACHE STRING "MSVC MT flags " FORCE) + + # most msvc warnings are C & C++ + set(_WARNINGS "/W3 /wd4018 /wd4244 /wd4305 /wd4800 /wd4181 /wd4065 /wd4267 /we4013") + set(C_WARNINGS "${_WARNINGS}") + set(CXX_WARNINGS "${_WARNINGS}") + unset(_WARNINGS) if(WITH_INTERNATIONAL) set(GETTEXT ${LIBDIR}/gettext) @@ -1001,6 +1003,9 @@ elseif(WIN32) set(PLATFORM_LINKFLAGS_DEBUG "/NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libc.lib") + # used in many places so include globally, like OpenGL + blender_include_dirs("${PTHREADS_INCLUDE_DIRS}") + elseif(CMAKE_COMPILER_IS_GNUCC) # keep GCC specific stuff here set(PLATFORM_LINKLIBS "-lshell32 -lshfolder -lgdi32 -lmsvcrt -lwinmm -lmingw32 -lm -lws2_32 -lz -lstdc++ -lole32 -luuid -lwsock32 -lpsapi") @@ -1008,7 +1013,7 @@ elseif(WIN32) if(WITH_MINGW64) #Yes, the point for MinGW64 is moar optimization by default :) - set(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -mmmx -msse -msse2 -O3") + set(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -mmmx -msse -msse2 -ftree-vectorize") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive") set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS} -lpthread") @@ -1154,9 +1159,6 @@ elseif(WIN32) endif() - # used in many places so include globally, like OpenGL - blender_include_dirs("${PTHREADS_INCLUDE_DIRS}") - elseif(APPLE) if(${CMAKE_OSX_DEPLOYMENT_TARGET} STREQUAL "10.5" OR ${CMAKE_OSX_DEPLOYMENT_TARGET} STRGREATER "10.5") diff --git a/SConstruct b/SConstruct index 96d27ae76b0..b1603fd0397 100644 --- a/SConstruct +++ b/SConstruct @@ -774,7 +774,7 @@ if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'win64-vc', 'linuxcross'): dllsources.append('${LCGDIR}/thumbhandler/lib/BlendThumb.dll') dllsources.append('${LCGDIR}/thumbhandler/lib/BlendThumb64.dll') - if env['WITH_BF_OIIO']: + if env['WITH_BF_OIIO'] and env['OURPLATFORM'] != 'win32-mingw': dllsources.append('${LCGDIR}/openimageio/bin/OpenImageIO.dll') dllsources.append('#source/icons/blender.exe.manifest') diff --git a/build_files/buildbot/master.cfg b/build_files/buildbot/master.cfg index 23751f7dcd4..066c133d335 100644 --- a/build_files/buildbot/master.cfg +++ b/build_files/buildbot/master.cfg @@ -117,6 +117,8 @@ 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', 'win64', generic_builder) +add_builder(c, 'mingw_win64_scons', 'mingw64', generic_builder) +add_builder(c, 'mingw_win32_scons', 'mingw32', 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/master_unpack.py b/build_files/buildbot/master_unpack.py index 3df22ad8745..f67bd294496 100644 --- a/build_files/buildbot/master_unpack.py +++ b/build_files/buildbot/master_unpack.py @@ -48,7 +48,8 @@ def get_platform(filename): tokens = filename.split("-") platforms = ('osx', 'mac', 'bsd', 'win', 'linux', 'source', - 'solaris') + 'solaris', + 'mingw') platform_tokens = [] found = False diff --git a/build_files/buildbot/slave_compile.py b/build_files/buildbot/slave_compile.py index 209253296be..eafdf0868cd 100644 --- a/build_files/buildbot/slave_compile.py +++ b/build_files/buildbot/slave_compile.py @@ -117,6 +117,8 @@ else: scons_options.append('BF_BITNESS=' + bitness) scons_options.append('WITH_BF_CYCLES_CUDA_BINARIES=True') scons_options.append('BF_CYCLES_CUDA_NVCC=nvcc.exe') + if builder.find('mingw') != -1: + scons_options.append('BF_TOOLSET=mingw') 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 cb02e619c1d..73c633d0c29 100644 --- a/build_files/buildbot/slave_pack.py +++ b/build_files/buildbot/slave_pack.py @@ -81,6 +81,8 @@ if builder.find('scons') != -1: scons_options.append('BF_BITNESS=' + bitness) scons_options.append('WITH_BF_CYCLES_CUDA_BINARIES=True') scons_options.append('BF_CYCLES_CUDA_NVCC=nvcc.exe') + if builder.find('mingw') != -1: + scons_options.append('BF_TOOLSET=mingw') retcode = subprocess.call(['python', 'scons/scons.py'] + scons_options) sys.exit(retcode) diff --git a/build_files/scons/config/win64-mingw-config.py b/build_files/scons/config/win64-mingw-config.py index 0379ea48088..055b0c7b9fd 100644 --- a/build_files/scons/config/win64-mingw-config.py +++ b/build_files/scons/config/win64-mingw-config.py @@ -179,9 +179,9 @@ CCFLAGS = [ '-pipe', '-funsigned-char', '-fno-strict-aliasing' ] CXXFLAGS = [ '-fpermissive' ] CPPFLAGS = ['-DWIN32', '-DMS_WIN64', '-DFREE_WINDOWS', '-DFREE_WINDOWS64', '-D_LARGEFILE_SOURCE', '-D_FILE_OFFSET_BITS=64', '-D_LARGEFILE64_SOURCE', '-DBOOST_ALL_NO_LIB', '-DBOOST_THREAD_USE_LIB', '-DGLEW_STATIC', '-D_SSIZE_T_'] -REL_CFLAGS = ['-O3', '-mmmx', '-msse', '-msse2'] -REL_CXXFLAGS = ['-O3', '-mmmx', '-msse', '-msse2'] -REL_CCFLAGS = ['-DNDEBUG', '-O3', '-mmmx', '-msse', '-msse2'] +REL_CFLAGS = [] +REL_CXXFLAGS = [] +REL_CCFLAGS = ['-DNDEBUG', '-O2', '-ftree-vectorize', '-mmmx', '-msse', '-msse2'] C_WARN = ['-Wno-char-subscripts', '-Wdeclaration-after-statement', '-Wstrict-prototypes'] diff --git a/build_files/scons/tools/btools.py b/build_files/scons/tools/btools.py index ca0ac2dd8da..65593d559ed 100644 --- a/build_files/scons/tools/btools.py +++ b/build_files/scons/tools/btools.py @@ -622,7 +622,13 @@ def buildslave(target=None, source=None, env=None): else: extension = '.tar.bz2' - platform = env['OURPLATFORM'].split('-')[0] + if env['OURPLATFORM'] == 'win32-mingw': + platform = 'mingw32' + elif env['OURPLATFORM'] == 'win64-mingw': + platform = 'mingw64' + else: + platform = env['OURPLATFORM'].split('-')[0] + if platform == 'linux': import platform @@ -665,12 +671,10 @@ def NSIS_Installer(target=None, source=None, env=None): if env['OURPLATFORM'] not in ('win32-vc', 'win32-mingw', 'win64-vc', 'win64-mingw'): print "NSIS installer is only available on Windows." Exit() - if env['OURPLATFORM'] == 'win32-vc': + if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw'): bitness = '32' - elif env['OURPLATFORM'] == 'win64-vc': + elif env['OURPLATFORM'] in ('win64-vc', 'win64-mingw'): bitness = '64' - else: - bitness = '-mingw' start_dir = os.getcwd() rel_dir = os.path.join(start_dir,'release','windows','installer') @@ -762,7 +766,7 @@ def NSIS_Installer(target=None, source=None, env=None): cmdline = "makensis " + "\""+tmpnsi+"\"" startupinfo = subprocess.STARTUPINFO() - startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW + #startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW proc = subprocess.Popen(cmdline, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, startupinfo=startupinfo, shell = True) data, err = proc.communicate() diff --git a/doc/manpage/blender.1 b/doc/manpage/blender.1 index 97c11bc138c..6257a78171b 100644 --- a/doc/manpage/blender.1 +++ b/doc/manpage/blender.1 @@ -1,4 +1,13 @@ -.TH "BLENDER" "1" "April 05, 2012" "Blender Blender 2\&.62 (sub 3)" +.TH "BLENDER" "1" "April 26, 2012" "Blender Blender 2\&.63 (sub 0) + build date: 2012-04-26 + build time: 19:38:31 + build revision: 45987 + build platform: Linux + build type: Debug + build c flags: -fopenmp -msse2 -msse -pipe -fPIC -funsigned-char -fno-strict-aliasing -Wall -Wcast-align -Werror=declaration-after-statement -Werror=implicit-function-declaration -Werror=return-type -Wstrict-prototypes -Wno-char-subscripts -Wno-unknown-pragmas -Wpointer-arith -Wunused-parameter -Wwrite-strings + build c++ flags: -D__STDC_CONSTANT_MACROS -fopenmp -msse2 -msse -pipe -fPIC -funsigned-char -fno-strict-aliasing -Wall -Wno-invalid-offsetof -Wno-sign-compare + build link flags: -pthread + build system: CMake" .SH NAME blender \- a 3D modelling and rendering package @@ -15,7 +24,7 @@ Use Blender to create TV commercials, to make technical visualizations, business http://www.blender.org .SH OPTIONS -Blender 2.62 (sub 3) +Blender 2.63 (sub 0) Usage: blender [args ...] [file] [args ...] .br .SS "Render Options:" @@ -220,6 +229,12 @@ Enable floating point exceptions Enable debug messages from FFmpeg library .br +.TP +.B \-\-debug\-libmv +.br +Enable debug messages from libmv library +.br + .IP .TP @@ -406,6 +421,7 @@ Arguments are executed in the order they are given. eg \fIBLENDER_SYSTEM_DATAFILES\fR Directory for system wide data files. \fIBLENDER_SYSTEM_PYTHON\fR Directory for system python libraries. \fITMP\fR or \fITMPDIR\fR Store temporary files here. + \fISDL_AUDIODRIVER\fR LibSDL audio driver \- alsa, esd, dma. \fIPYTHONHOME\fR Path to the python directory, eg. /usr/lib/python. .br .br diff --git a/intern/audaspace/intern/AUD_C-API.cpp b/intern/audaspace/intern/AUD_C-API.cpp index 9100a277124..50b47650696 100644 --- a/intern/audaspace/intern/AUD_C-API.cpp +++ b/intern/audaspace/intern/AUD_C-API.cpp @@ -41,6 +41,7 @@ #include #include #include +#include #include "AUD_NULLDevice.h" #include "AUD_I3DDevice.h" @@ -1236,6 +1237,47 @@ const char* AUD_mixdown(AUD_Sound* sound, unsigned int start, unsigned int lengt } } +const char* AUD_mixdown_per_channel(AUD_Sound* sound, unsigned int start, unsigned int length, unsigned int buffersize, const char* filename, AUD_DeviceSpecs specs, AUD_Container format, AUD_Codec codec, unsigned int bitrate) +{ + try + { + AUD_SequencerFactory* f = dynamic_cast(sound->get()); + + f->setSpecs(specs.specs); + + std::vector > writers; + + int channels = specs.channels; + specs.channels = AUD_CHANNELS_MONO; + + for(int i = 0; i < channels; i++) + { + std::stringstream stream; + std::string fn = filename; + size_t index = fn.find_last_of('.'); + size_t index_slash = fn.find_last_of('/'); + size_t index_backslash = fn.find_last_of('\\'); + if((index == std::string::npos) || + ((index < index_slash) && (index_slash != std::string::npos)) || + ((index < index_backslash) && (index_backslash != std::string::npos))) + stream << filename << "_" << (i + 1); + else + stream << fn.substr(0, index) << "_" << (i + 1) << fn.substr(index); + writers.push_back(AUD_FileWriter::createWriter(stream.str(), specs, format, codec, bitrate)); + } + + AUD_Reference reader = f->createQualityReader(); + reader->seek(start); + AUD_FileWriter::writeReader(reader, writers, length, buffersize); + + return NULL; + } + catch(AUD_Exception& e) + { + return e.str; + } +} + AUD_Device* AUD_openMixdownDevice(AUD_DeviceSpecs specs, AUD_Sound* sequencer, float volume, float start) { try diff --git a/intern/audaspace/intern/AUD_C-API.h b/intern/audaspace/intern/AUD_C-API.h index 8388af2170d..a52a1fa8369 100644 --- a/intern/audaspace/intern/AUD_C-API.h +++ b/intern/audaspace/intern/AUD_C-API.h @@ -709,6 +709,21 @@ extern void* AUD_getSet(void* set); */ extern const char* AUD_mixdown(AUD_Sound* sound, unsigned int start, unsigned int length, unsigned int buffersize, const char* filename, AUD_DeviceSpecs specs, AUD_Container format, AUD_Codec codec, unsigned int bitrate); +/** + * Mixes a sound down into multiple files. + * \param sound The sound scene to mix down. + * \param start The start frame. + * \param length The count of frames to write. + * \param buffersize How many samples should be written at once. + * \param filename The file to write to, the channel number and an underscore are added at the beginning. + * \param specs The file's audio specification. + * \param format The file's container format. + * \param codec The codec used for encoding the audio data. + * \param bitrate The bitrate for encoding. + * \return An error message or NULL in case of success. + */ +extern const char* AUD_mixdown_per_channel(AUD_Sound* sound, unsigned int start, unsigned int length, unsigned int buffersize, const char* filename, AUD_DeviceSpecs specs, AUD_Container format, AUD_Codec codec, unsigned int bitrate); + /** * Opens a read device and prepares it for mixdown of the sound scene. * \param specs Output audio specifications. diff --git a/intern/audaspace/intern/AUD_FileWriter.cpp b/intern/audaspace/intern/AUD_FileWriter.cpp index df76b667e3f..f74021acad1 100644 --- a/intern/audaspace/intern/AUD_FileWriter.cpp +++ b/intern/audaspace/intern/AUD_FileWriter.cpp @@ -93,3 +93,39 @@ void AUD_FileWriter::writeReader(AUD_Reference reader, AUD_Referenc writer->write(len, buf); } } + +void AUD_FileWriter::writeReader(AUD_Reference reader, std::vector >& writers, unsigned int length, unsigned int buffersize) +{ + AUD_Buffer buffer(buffersize * AUD_SAMPLE_SIZE(reader->getSpecs())); + AUD_Buffer buffer2(buffersize * sizeof(sample_t)); + sample_t* buf = buffer.getBuffer(); + sample_t* buf2 = buffer2.getBuffer(); + + int len; + bool eos = false; + int channels = reader->getSpecs().channels; + + for(unsigned int pos = 0; ((pos < length) || (length <= 0)) && !eos; pos += len) + { + len = buffersize; + if((len > length - pos) && (length > 0)) + len = length - pos; + reader->read(len, eos, buf); + + for(int channel = 0; channel < channels; channel++) + { + for(int i = 0; i < len; i++) + { + // clamping! + if(buf[i * channels + channel] > 1) + buf2[i] = 1; + else if(buf[i * channels + channel] < -1) + buf2[i] = -1; + else + buf2[i] = buf[i * channels + channel]; + } + + writers[channel]->write(len, buf2); + } + } +} diff --git a/intern/audaspace/intern/AUD_FileWriter.h b/intern/audaspace/intern/AUD_FileWriter.h index c9ee2b1ee12..385aba5ef45 100644 --- a/intern/audaspace/intern/AUD_FileWriter.h +++ b/intern/audaspace/intern/AUD_FileWriter.h @@ -31,6 +31,7 @@ #define __AUD_FILEWRITER_H__ #include +#include #include "AUD_Reference.h" @@ -68,6 +69,15 @@ public: * \param buffersize How many samples should be transfered at once. */ static void writeReader(AUD_Reference reader, AUD_Reference writer, unsigned int length, unsigned int buffersize); + + /** + * Writes a reader to several writers. + * \param reader The reader to read from. + * \param writers The writers to write to. + * \param length How many samples should be transfered. + * \param buffersize How many samples should be transfered at once. + */ + static void writeReader(AUD_Reference reader, std::vector >& writers, unsigned int length, unsigned int buffersize); }; #endif //__AUD_FILEWRITER_H__ diff --git a/intern/audaspace/intern/AUD_Reference.h b/intern/audaspace/intern/AUD_Reference.h index 2e07417154b..0c9f02c0155 100644 --- a/intern/audaspace/intern/AUD_Reference.h +++ b/intern/audaspace/intern/AUD_Reference.h @@ -31,6 +31,7 @@ #include #include +#include // #define MEM_DEBUG @@ -49,8 +50,13 @@ private: * Saves the reference counts. */ static std::map m_references; + static pthread_mutex_t m_mutex; + static bool m_mutex_initialised; public: + + static pthread_mutex_t* getMutex(); + /** * Reference increment. * \param reference The reference. @@ -108,6 +114,7 @@ public: template AUD_Reference(U* reference) { + pthread_mutex_lock(AUD_ReferenceHandler::getMutex()); m_original = reference; m_reference = dynamic_cast(reference); AUD_ReferenceHandler::incref(m_original); @@ -115,6 +122,7 @@ public: if(m_reference != NULL) std::cerr << "+" << typeid(*m_reference).name() << std::endl; #endif + pthread_mutex_unlock(AUD_ReferenceHandler::getMutex()); } AUD_Reference() @@ -129,6 +137,7 @@ public: */ AUD_Reference(const AUD_Reference& ref) { + pthread_mutex_lock(AUD_ReferenceHandler::getMutex()); m_original = ref.m_original; m_reference = ref.m_reference; AUD_ReferenceHandler::incref(m_original); @@ -136,11 +145,13 @@ public: if(m_reference != NULL) std::cerr << "+" << typeid(*m_reference).name() << std::endl; #endif + pthread_mutex_unlock(AUD_ReferenceHandler::getMutex()); } template explicit AUD_Reference(const AUD_Reference& ref) { + pthread_mutex_lock(AUD_ReferenceHandler::getMutex()); m_original = ref.get(); m_reference = dynamic_cast(ref.get()); AUD_ReferenceHandler::incref(m_original); @@ -148,6 +159,7 @@ public: if(m_reference != NULL) std::cerr << "+" << typeid(*m_reference).name() << std::endl; #endif + pthread_mutex_unlock(AUD_ReferenceHandler::getMutex()); } /** @@ -156,12 +168,14 @@ public: */ ~AUD_Reference() { + pthread_mutex_lock(AUD_ReferenceHandler::getMutex()); #ifdef MEM_DEBUG if(m_reference != NULL) std::cerr << "-" << typeid(*m_reference).name() << std::endl; #endif if(AUD_ReferenceHandler::decref(m_original)) delete m_reference; + pthread_mutex_unlock(AUD_ReferenceHandler::getMutex()); } /** @@ -173,6 +187,8 @@ public: if(&ref == this) return *this; + pthread_mutex_lock(AUD_ReferenceHandler::getMutex()); + #ifdef MEM_DEBUG if(m_reference != NULL) std::cerr << "-" << typeid(*m_reference).name() << std::endl; @@ -188,6 +204,8 @@ public: std::cerr << "+" << typeid(*m_reference).name() << std::endl; #endif + pthread_mutex_unlock(AUD_ReferenceHandler::getMutex()); + return *this; } diff --git a/intern/audaspace/intern/AUD_ReferenceHandler.cpp b/intern/audaspace/intern/AUD_ReferenceHandler.cpp index 24f645df761..3e9f6707262 100644 --- a/intern/audaspace/intern/AUD_ReferenceHandler.cpp +++ b/intern/audaspace/intern/AUD_ReferenceHandler.cpp @@ -29,3 +29,24 @@ #include "AUD_Reference.h" std::map AUD_ReferenceHandler::m_references; +pthread_mutex_t AUD_ReferenceHandler::m_mutex; +bool AUD_ReferenceHandler::m_mutex_initialised = false; + +pthread_mutex_t *AUD_ReferenceHandler::getMutex() +{ + if(!m_mutex_initialised) + { + pthread_mutexattr_t attr; + pthread_mutexattr_init(&attr); + pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); + + pthread_mutex_init(&m_mutex, &attr); + + pthread_mutexattr_destroy(&attr); + + m_mutex_initialised = true; + } + + return &m_mutex; +} + diff --git a/intern/container/CTR_Map.h b/intern/container/CTR_Map.h index 8b6d84337c2..9557821d642 100644 --- a/intern/container/CTR_Map.h +++ b/intern/container/CTR_Map.h @@ -63,7 +63,7 @@ public: for (int i = 0; i < m_num_buckets; ++i) { m_buckets[i] = 0; - for(Entry *entry = map.m_buckets[i]; entry; entry=entry->m_next) + for (Entry *entry = map.m_buckets[i]; entry; entry=entry->m_next) insert(entry->m_key, entry->m_value); } } diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py index 9fc7ee5c88e..35f97bf629f 100644 --- a/intern/cycles/blender/addon/properties.py +++ b/intern/cycles/blender/addon/properties.py @@ -86,7 +86,7 @@ class CyclesRenderSettings(bpy.types.PropertyGroup): default=False, ) cls.blur_glossy = FloatProperty( - name="Blur Glossy", + name="Filter Glossy", description="Adaptively blur glossy shaders after blurry bounces, to reduce noise at the cost of accuracy", min=0.0, max=10.0, default=0.0, diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index f934ba5a651..0ed08589327 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -790,6 +790,31 @@ class CyclesTexture_PT_colors(CyclesButtonsPanel, Panel): layout.template_color_ramp(mapping, "color_ramp", expand=True) +class CyclesScene_PT_simplify(CyclesButtonsPanel, Panel): + bl_label = "Simplify" + bl_context = "scene" + COMPAT_ENGINES = {'CYCLES'} + + def draw_header(self, context): + rd = context.scene.render + self.layout.prop(rd, "use_simplify", text="") + + def draw(self, context): + layout = self.layout + + rd = context.scene.render + + layout.active = rd.use_simplify + + split = layout.split() + + col = split.column() + col.prop(rd, "simplify_subdivision", text="Subdivision") + + col = split.column() + col.prop(rd, "simplify_child_particles", text="Child Particles") + + def draw_device(self, context): scene = context.scene layout = self.layout diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp index 0116422c756..41cd200d003 100644 --- a/intern/cycles/blender/blender_sync.cpp +++ b/intern/cycles/blender/blender_sync.cpp @@ -153,7 +153,7 @@ void BlenderSync::sync_integrator() integrator->transparent_shadows = get_boolean(cscene, "use_transparent_shadows"); integrator->no_caustics = get_boolean(cscene, "no_caustics"); - integrator->blur_glossy = get_float(cscene, "blur_glossy"); + integrator->filter_glossy = get_float(cscene, "blur_glossy"); integrator->seed = get_int(cscene, "seed"); diff --git a/intern/cycles/kernel/kernel_path.h b/intern/cycles/kernel/kernel_path.h index 20cba00aed8..8ebac177277 100644 --- a/intern/cycles/kernel/kernel_path.h +++ b/intern/cycles/kernel/kernel_path.h @@ -266,8 +266,8 @@ __device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int sample, R /* blurring of bsdf after bounces, for rays that have a small likelihood of following this particular path (diffuse, rough glossy) */ - if(kernel_data.integrator.blur_glossy != FLT_MAX) { - float blur_pdf = kernel_data.integrator.blur_glossy*min_ray_pdf; + if(kernel_data.integrator.filter_glossy != FLT_MAX) { + float blur_pdf = kernel_data.integrator.filter_glossy*min_ray_pdf; if(blur_pdf < 1.0f) { float blur_roughness = sqrtf(1.0f - blur_pdf)*0.5f; diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h index 3ba8356d296..102a2bb036d 100644 --- a/intern/cycles/kernel/kernel_types.h +++ b/intern/cycles/kernel/kernel_types.h @@ -516,7 +516,7 @@ typedef struct KernelIntegrator { /* caustics */ int no_caustics; - float blur_glossy; + float filter_glossy; /* seed */ int seed; diff --git a/intern/cycles/render/integrator.cpp b/intern/cycles/render/integrator.cpp index f1fffcdbd74..c1f066df10c 100644 --- a/intern/cycles/render/integrator.cpp +++ b/intern/cycles/render/integrator.cpp @@ -41,7 +41,7 @@ Integrator::Integrator() transparent_shadows = false; no_caustics = false; - blur_glossy = 0.0f; + filter_glossy = 0.0f; seed = 0; layer_flag = ~0; sample_clamp = 0.0f; @@ -82,7 +82,7 @@ void Integrator::device_update(Device *device, DeviceScene *dscene) kintegrator->transparent_shadows = transparent_shadows; kintegrator->no_caustics = no_caustics; - kintegrator->blur_glossy = (blur_glossy == 0.0f)? FLT_MAX: 1.0f/blur_glossy; + kintegrator->filter_glossy = (filter_glossy == 0.0f)? FLT_MAX: 1.0f/filter_glossy; kintegrator->seed = hash_int(seed); kintegrator->layer_flag = layer_flag << PATH_RAY_LAYER_SHIFT; @@ -122,7 +122,7 @@ bool Integrator::modified(const Integrator& integrator) transparent_probalistic == integrator.transparent_probalistic && transparent_shadows == integrator.transparent_shadows && no_caustics == integrator.no_caustics && - blur_glossy == integrator.blur_glossy && + filter_glossy == integrator.filter_glossy && layer_flag == integrator.layer_flag && seed == integrator.seed && sample_clamp == integrator.sample_clamp); diff --git a/intern/cycles/render/integrator.h b/intern/cycles/render/integrator.h index 6e292aeaf16..0817fcaa457 100644 --- a/intern/cycles/render/integrator.h +++ b/intern/cycles/render/integrator.h @@ -41,7 +41,7 @@ public: bool transparent_shadows; bool no_caustics; - float blur_glossy; + float filter_glossy; int seed; int layer_flag; diff --git a/intern/cycles/util/util_math.h b/intern/cycles/util/util_math.h index d9e4d4fbac9..33e351c74e9 100644 --- a/intern/cycles/util/util_math.h +++ b/intern/cycles/util/util_math.h @@ -182,93 +182,74 @@ __device_inline float average(const float2 a) __device_inline float2 operator-(const float2 a) { - float2 r = {-a.x, -a.y}; - return r; + return make_float2(-a.x, -a.y); } __device_inline float2 operator*(const float2 a, const float2 b) { - float2 r = {a.x*b.x, a.y*b.y}; - return r; + return make_float2(a.x*b.x, a.y*b.y); } __device_inline float2 operator*(const float2 a, float f) { - float2 r = {a.x*f, a.y*f}; - return r; + return make_float2(a.x*f, a.y*f); } __device_inline float2 operator*(float f, const float2 a) { - float2 r = {a.x*f, a.y*f}; - return r; + return make_float2(a.x*f, a.y*f); } __device_inline float2 operator/(float f, const float2 a) { - float2 r = {f/a.x, f/a.y}; - return r; + return make_float2(f/a.x, f/a.y); } __device_inline float2 operator/(const float2 a, float f) { float invf = 1.0f/f; - float2 r = {a.x*invf, a.y*invf}; - return r; + return make_float2(a.x*invf, a.y*invf); } __device_inline float2 operator/(const float2 a, const float2 b) { - float2 r = {a.x/b.x, a.y/b.y}; - return r; + return make_float2(a.x/b.x, a.y/b.y); } __device_inline float2 operator+(const float2 a, const float2 b) { - float2 r = {a.x+b.x, a.y+b.y}; - return r; + return make_float2(a.x+b.x, a.y+b.y); } __device_inline float2 operator-(const float2 a, const float2 b) { - float2 r = {a.x-b.x, a.y-b.y}; - return r; + return make_float2(a.x-b.x, a.y-b.y); } __device_inline float2 operator+=(float2& a, const float2 b) { - a.x += b.x; - a.y += b.y; - return a; + return a = a + b; } __device_inline float2 operator*=(float2& a, const float2 b) { - a.x *= b.x; - a.y *= b.y; - return a; + return a = a * b; } __device_inline float2 operator*=(float2& a, float f) { - a.x *= f; - a.y *= f; - return a; + return a = a * f; } __device_inline float2 operator/=(float2& a, const float2 b) { - a.x /= b.x; - a.y /= b.y; - return a; + return a = a / b; } __device_inline float2 operator/=(float2& a, float f) { float invf = 1.0f/f; - a.x *= invf; - a.y *= invf; - return a; + return a = a * invf; } @@ -314,14 +295,12 @@ __device_inline bool operator!=(const float2 a, const float2 b) __device_inline float2 min(float2 a, float2 b) { - float2 r = {min(a.x, b.x), min(a.y, b.y)}; - return r; + return make_float2(min(a.x, b.x), min(a.y, b.y)); } __device_inline float2 max(float2 a, float2 b) { - float2 r = {max(a.x, b.x), max(a.y, b.y)}; - return r; + return make_float2(max(a.x, b.x), max(a.y, b.y)); } __device_inline float2 clamp(float2 a, float2 mn, float2 mx) @@ -361,112 +340,78 @@ __device_inline float2 interp(float2 a, float2 b, float t) /* Float3 Vector */ -__device_inline bool is_zero(const float3 a) -{ - return (a.x == 0.0f && a.y == 0.0f && a.z == 0.0f); -} - -__device_inline float average(const float3 a) -{ - return (a.x + a.y + a.z)*(1.0f/3.0f); -} - #ifndef __KERNEL_OPENCL__ __device_inline float3 operator-(const float3 a) { - float3 r = make_float3(-a.x, -a.y, -a.z); - return r; + return make_float3(-a.x, -a.y, -a.z); } __device_inline float3 operator*(const float3 a, const float3 b) { - float3 r = make_float3(a.x*b.x, a.y*b.y, a.z*b.z); - return r; + return make_float3(a.x*b.x, a.y*b.y, a.z*b.z); } __device_inline float3 operator*(const float3 a, float f) { - float3 r = make_float3(a.x*f, a.y*f, a.z*f); - return r; + return make_float3(a.x*f, a.y*f, a.z*f); } __device_inline float3 operator*(float f, const float3 a) { - float3 r = make_float3(a.x*f, a.y*f, a.z*f); - return r; + return make_float3(a.x*f, a.y*f, a.z*f); } __device_inline float3 operator/(float f, const float3 a) { - float3 r = make_float3(f/a.x, f/a.y, f/a.z); - return r; + return make_float3(f/a.x, f/a.y, f/a.z); } __device_inline float3 operator/(const float3 a, float f) { float invf = 1.0f/f; - float3 r = make_float3(a.x*invf, a.y*invf, a.z*invf); - return r; + return make_float3(a.x*invf, a.y*invf, a.z*invf); } __device_inline float3 operator/(const float3 a, const float3 b) { - float3 r = make_float3(a.x/b.x, a.y/b.y, a.z/b.z); - return r; + return make_float3(a.x/b.x, a.y/b.y, a.z/b.z); } __device_inline float3 operator+(const float3 a, const float3 b) { - float3 r = make_float3(a.x+b.x, a.y+b.y, a.z+b.z); - return r; + return make_float3(a.x+b.x, a.y+b.y, a.z+b.z); } __device_inline float3 operator-(const float3 a, const float3 b) { - float3 r = make_float3(a.x-b.x, a.y-b.y, a.z-b.z); - return r; + return make_float3(a.x-b.x, a.y-b.y, a.z-b.z); } __device_inline float3 operator+=(float3& a, const float3 b) { - a.x += b.x; - a.y += b.y; - a.z += b.z; - return a; + return a = a + b; } __device_inline float3 operator*=(float3& a, const float3 b) { - a.x *= b.x; - a.y *= b.y; - a.z *= b.z; - return a; + return a = a * b; } __device_inline float3 operator*=(float3& a, float f) { - a.x *= f; - a.y *= f; - a.z *= f; - return a; + return a = a * f; } __device_inline float3 operator/=(float3& a, const float3 b) { - a.x /= b.x; - a.y /= b.y; - a.z /= b.z; - return a; + return a = a / b; } __device_inline float3 operator/=(float3& a, float f) { float invf = 1.0f/f; - a.x *= invf; - a.y *= invf; - a.z *= invf; - return a; + return a = a * invf; } __device_inline float dot(const float3 a, const float3 b) @@ -506,7 +451,11 @@ __device_inline float3 normalize_len(const float3 a, float *t) __device_inline bool operator==(const float3 a, const float3 b) { +#ifdef __KERNEL_SSE__ + return (_mm_movemask_ps(_mm_cmpeq_ps(a.m128, b.m128)) & 7) == 7; +#else return (a.x == b.x && a.y == b.y && a.z == b.z); +#endif } __device_inline bool operator!=(const float3 a, const float3 b) @@ -516,14 +465,20 @@ __device_inline bool operator!=(const float3 a, const float3 b) __device_inline float3 min(float3 a, float3 b) { - float3 r = make_float3(min(a.x, b.x), min(a.y, b.y), min(a.z, b.z)); - return r; +#ifdef __KERNEL_SSE__ + return _mm_min_ps(a.m128, b.m128); +#else + return make_float3(min(a.x, b.x), min(a.y, b.y), min(a.z, b.z)); +#endif } __device_inline float3 max(float3 a, float3 b) { - float3 r = make_float3(max(a.x, b.x), max(a.y, b.y), max(a.z, b.z)); - return r; +#ifdef __KERNEL_SSE__ + return _mm_max_ps(a.m128, b.m128); +#else + return make_float3(max(a.x, b.x), max(a.y, b.y), max(a.z, b.z)); +#endif } __device_inline float3 clamp(float3 a, float3 mn, float3 mx) @@ -533,7 +488,12 @@ __device_inline float3 clamp(float3 a, float3 mn, float3 mx) __device_inline float3 fabs(float3 a) { +#ifdef __KERNEL_SSE__ + __m128 mask = _mm_castsi128_ps(_mm_set1_epi32(0x7fffffff)); + return _mm_and_ps(a.m128, mask); +#else return make_float3(fabsf(a.x), fabsf(a.y), fabsf(a.z)); +#endif } #endif @@ -555,6 +515,16 @@ __device_inline void print_float3(const char *label, const float3& a) printf("%s: %.8f %.8f %.8f\n", label, a.x, a.y, a.z); } +__device_inline float3 rcp(const float3& a) +{ +#ifdef __KERNEL_SSE__ + float4 r = _mm_rcp_ps(a.m128); + return _mm_sub_ps(_mm_add_ps(r, r), _mm_mul_ps(_mm_mul_ps(r, r), a)); +#else + return make_float3(1.0f/a.x, 1.0f/a.y, 1.0f/a.z); +#endif +} + #endif __device_inline float3 interp(float3 a, float3 b, float t) @@ -562,122 +532,209 @@ __device_inline float3 interp(float3 a, float3 b, float t) return a + t*(b - a); } +__device_inline bool is_zero(const float3 a) +{ +#ifdef __KERNEL_SSE__ + return a == make_float3(0.0f); +#else + return (a.x == 0.0f && a.y == 0.0f && a.z == 0.0f); +#endif +} + +__device_inline float reduce_add(const float3& a) +{ +#ifdef __KERNEL_SSE__ + return (a.x + a.y + a.z); +#else + return (a.x + a.y + a.z); +#endif +} + +__device_inline float average(const float3 a) +{ + return reduce_add(a)*(1.0f/3.0f); +} + /* Float4 Vector */ +#ifdef __KERNEL_SSE__ + +template __forceinline const float4 shuffle(const float4& b) +{ + return _mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(b), _MM_SHUFFLE(index_3, index_2, index_1, index_0))); +} + +template<> __forceinline const float4 shuffle<0, 0, 2, 2>(const float4& b) +{ + return _mm_moveldup_ps(b); +} + +template<> __forceinline const float4 shuffle<1, 1, 3, 3>(const float4& b) +{ + return _mm_movehdup_ps(b); +} + +template<> __forceinline const float4 shuffle<0, 1, 0, 1>(const float4& b) +{ + return _mm_castpd_ps(_mm_movedup_pd(_mm_castps_pd(b))); +} + +#endif + #ifndef __KERNEL_OPENCL__ -__device_inline bool is_zero(const float4& a) -{ - return (a.x == 0.0f && a.y == 0.0f && a.z == 0.0f && a.w == 0.0f); -} - -__device_inline float average(const float4& a) -{ - return (a.x + a.y + a.z + a.w)*(1.0f/4.0f); -} - __device_inline float4 operator-(const float4& a) { +#ifdef __KERNEL_SSE__ + __m128 mask = _mm_castsi128_ps(_mm_set1_epi32(0x80000000)); + return _mm_xor_ps(a.m128, mask); +#else return make_float4(-a.x, -a.y, -a.z, -a.w); +#endif } __device_inline float4 operator*(const float4& a, const float4& b) { +#ifdef __KERNEL_SSE__ + return _mm_mul_ps(a.m128, b.m128); +#else return make_float4(a.x*b.x, a.y*b.y, a.z*b.z, a.w*b.w); +#endif } __device_inline float4 operator*(const float4& a, float f) { +#ifdef __KERNEL_SSE__ + return a * make_float4(f); +#else return make_float4(a.x*f, a.y*f, a.z*f, a.w*f); +#endif } __device_inline float4 operator*(float f, const float4& a) { - return make_float4(a.x*f, a.y*f, a.z*f, a.w*f); + return a * f; +} + +__device_inline float4 rcp(const float4& a) +{ +#ifdef __KERNEL_SSE__ + float4 r = _mm_rcp_ps(a.m128); + return _mm_sub_ps(_mm_add_ps(r, r), _mm_mul_ps(_mm_mul_ps(r, r), a)); +#else + return make_float4(1.0f/a.x, 1.0f/a.y, 1.0f/a.z, 1.0f/a.w); +#endif } __device_inline float4 operator/(const float4& a, float f) { - float invf = 1.0f/f; - return make_float4(a.x*invf, a.y*invf, a.z*invf, a.w*invf); + return a * (1.0f/f); } __device_inline float4 operator/(const float4& a, const float4& b) { +#ifdef __KERNEL_SSE__ + return a * rcp(b); +#else return make_float4(a.x/b.x, a.y/b.y, a.z/b.z, a.w/b.w); +#endif + } __device_inline float4 operator+(const float4& a, const float4& b) { +#ifdef __KERNEL_SSE__ + return _mm_add_ps(a.m128, b.m128); +#else return make_float4(a.x+b.x, a.y+b.y, a.z+b.z, a.w+b.w); +#endif } __device_inline float4 operator-(const float4& a, const float4& b) { +#ifdef __KERNEL_SSE__ + return _mm_sub_ps(a.m128, b.m128); +#else return make_float4(a.x-b.x, a.y-b.y, a.z-b.z, a.w-b.w); +#endif } __device_inline float4 operator+=(float4& a, const float4& b) { - a.x += b.x; - a.y += b.y; - a.z += b.z; - a.w += b.w; - return a; + return a = a + b; } __device_inline float4 operator*=(float4& a, const float4& b) { - a.x *= b.x; - a.y *= b.y; - a.z *= b.z; - a.w *= b.w; - return a; + return a = a * b; } __device_inline float4 operator/=(float4& a, float f) { - float invf = 1.0f/f; - a.x *= invf; - a.y *= invf; - a.z *= invf; - a.w *= invf; - return a; + return a = a / f; } __device_inline int4 operator<(const float4& a, const float4& b) { +#ifdef __KERNEL_SSE__ + return _mm_cvtps_epi32(_mm_cmplt_ps(a.m128, b.m128)); /* todo: avoid cvt */ +#else return make_int4(a.x < b.x, a.y < b.y, a.z < b.z, a.w < b.w); +#endif +} + +__device_inline int4 operator>=(float4 a, float4 b) +{ +#ifdef __KERNEL_SSE__ + return _mm_cvtps_epi32(_mm_cmpge_ps(a.m128, b.m128)); /* todo: avoid cvt */ +#else + return make_int4(a.x >= b.x, a.y >= b.y, a.z >= b.z, a.w >= b.w); +#endif } __device_inline int4 operator<=(const float4& a, const float4& b) { +#ifdef __KERNEL_SSE__ + return _mm_cvtps_epi32(_mm_cmple_ps(a.m128, b.m128)); /* todo: avoid cvt */ +#else return make_int4(a.x <= b.x, a.y <= b.y, a.z <= b.z, a.w <= b.w); +#endif } __device_inline bool operator==(const float4 a, const float4 b) { +#ifdef __KERNEL_SSE__ + return (_mm_movemask_ps(_mm_cmpeq_ps(a.m128, b.m128)) & 15) == 15; +#else return (a.x == b.x && a.y == b.y && a.z == b.z && a.w == b.w); -} - -__device_inline float dot(const float4& a, const float4& b) -{ - return a.x*b.x + a.y*b.y + a.z*b.z + a.w*b.w; +#endif } __device_inline float4 cross(const float4& a, const float4& b) { +#ifdef __KERNEL_SSE__ + return (shuffle<1,2,0,0>(a)*shuffle<2,0,1,0>(b)) - (shuffle<2,0,1,0>(a)*shuffle<1,2,0,0>(b)); +#else return make_float4(a.y*b.z - a.z*b.y, a.z*b.x - a.x*b.z, a.x*b.y - a.y*b.x, 0.0f); +#endif } __device_inline float4 min(float4 a, float4 b) { +#ifdef __KERNEL_SSE__ + return _mm_min_ps(a.m128, b.m128); +#else return make_float4(min(a.x, b.x), min(a.y, b.y), min(a.z, b.z), min(a.w, b.w)); +#endif } __device_inline float4 max(float4 a, float4 b) { +#ifdef __KERNEL_SSE__ + return _mm_max_ps(a.m128, b.m128); +#else return make_float4(max(a.x, b.x), max(a.y, b.y), max(a.z, b.z), max(a.w, b.w)); +#endif } #endif @@ -686,28 +743,45 @@ __device_inline float4 max(float4 a, float4 b) __device_inline float4 select(const int4& mask, const float4& a, const float4& b) { +#ifdef __KERNEL_SSE__ + /* blendv is sse4, and apparently broken on vs2008 */ + return _mm_or_ps(_mm_and_ps(_mm_cvtepi32_ps(mask), a), _mm_andnot_ps(_mm_cvtepi32_ps(mask), b)); /* todo: avoid cvt */ +#else return make_float4((mask.x)? a.x: b.x, (mask.y)? a.y: b.y, (mask.z)? a.z: b.z, (mask.w)? a.w: b.w); +#endif } __device_inline float4 reduce_min(const float4& a) { +#ifdef __KERNEL_SSE__ + float4 h = min(shuffle<1,0,3,2>(a), a); + return min(shuffle<2,3,0,1>(h), h); +#else return make_float4(min(min(a.x, a.y), min(a.z, a.w))); +#endif } __device_inline float4 reduce_max(const float4& a) { +#ifdef __KERNEL_SSE__ + float4 h = max(shuffle<1,0,3,2>(a), a); + return max(shuffle<2,3,0,1>(h), h); +#else return make_float4(max(max(a.x, a.y), max(a.z, a.w))); +#endif } +#if 0 __device_inline float4 reduce_add(const float4& a) { +#ifdef __KERNEL_SSE__ + float4 h = shuffle<1,0,3,2>(a) + a; + return shuffle<2,3,0,1>(h) + h; +#else return make_float4((a.x + a.y) + (a.z + a.w)); +#endif } - -__device_inline float3 rcp(const float3& a) -{ - return make_float3(1.0f/a.x, 1.0f/a.y, 1.0f/a.z); -} +#endif __device_inline void print_float4(const char *label, const float4& a) { @@ -716,23 +790,77 @@ __device_inline void print_float4(const char *label, const float4& a) #endif +#ifndef __KERNEL_OPENCL__ + +__device_inline bool is_zero(const float4& a) +{ +#ifdef __KERNEL_SSE__ + return a == make_float4(0.0f); +#else + return (a.x == 0.0f && a.y == 0.0f && a.z == 0.0f && a.w == 0.0f); +#endif +} + +__device_inline float reduce_add(const float4& a) +{ +#ifdef __KERNEL_SSE__ + float4 h = shuffle<1,0,3,2>(a) + a; + return _mm_cvtss_f32(shuffle<2,3,0,1>(h) + h); /* todo: efficiency? */ +#else + return ((a.x + a.y) + (a.z + a.w)); +#endif +} + +__device_inline float average(const float4& a) +{ + return reduce_add(a) * 0.25f; +} + +__device_inline float dot(const float4& a, const float4& b) +{ + return reduce_add(a * b); +} + +#endif + /* Int3 */ #ifndef __KERNEL_OPENCL__ +__device_inline int3 min(int3 a, int3 b) +{ +#ifdef __KERNEL_SSE__ + return _mm_min_epi32(a.m128, b.m128); +#else + return make_int3(min(a.x, b.x), min(a.y, b.y), min(a.z, b.z)); +#endif +} + __device_inline int3 max(int3 a, int3 b) { +#ifdef __KERNEL_SSE__ + return _mm_max_epi32(a.m128, b.m128); +#else return make_int3(max(a.x, b.x), max(a.y, b.y), max(a.z, b.z)); +#endif } __device_inline int3 clamp(const int3& a, int mn, int mx) { +#ifdef __KERNEL_SSE__ + return min(max(a, make_int3(mn)), make_int3(mx)); +#else return make_int3(clamp(a.x, mn, mx), clamp(a.y, mn, mx), clamp(a.z, mn, mx)); +#endif } __device_inline int3 clamp(const int3& a, int3& mn, int mx) { +#ifdef __KERNEL_SSE__ + return min(max(a, mn), make_int3(mx)); +#else return make_int3(clamp(a.x, mn.x, mx), clamp(a.y, mn.y, mx), clamp(a.z, mn.z, mx)); +#endif } #endif @@ -748,44 +876,62 @@ __device_inline void print_int3(const char *label, const int3& a) /* Int4 */ -#ifndef __KERNEL_OPENCL__ - -__device_inline int4 operator>=(float4 a, float4 b) -{ - return make_int4(a.x >= b.x, a.y >= b.y, a.z >= b.z, a.w >= b.w); -} - -#endif - #ifndef __KERNEL_GPU__ __device_inline int4 operator+(const int4& a, const int4& b) { +#ifdef __KERNEL_SSE__ + return _mm_add_epi32(a.m128, b.m128); +#else return make_int4(a.x+b.x, a.y+b.y, a.z+b.z, a.w+b.w); +#endif } __device_inline int4 operator+=(int4& a, const int4& b) { - a.x += b.x; - a.y += b.y; - a.z += b.z; - a.w += b.w; - return a; + return a = a + b; } __device_inline int4 operator>>(const int4& a, int i) { +#ifdef __KERNEL_SSE__ + return _mm_srai_epi32(a.m128, i); +#else return make_int4(a.x >> i, a.y >> i, a.z >> i, a.w >> i); +#endif +} + +__device_inline int4 min(int4 a, int4 b) +{ +#ifdef __KERNEL_SSE__ + return _mm_min_epi32(a.m128, b.m128); +#else + return make_int4(min(a.x, b.x), min(a.y, b.y), min(a.z, b.z), min(a.w, b.w)); +#endif +} + +__device_inline int4 max(int4 a, int4 b) +{ +#ifdef __KERNEL_SSE__ + return _mm_max_epi32(a.m128, b.m128); +#else + return make_int4(max(a.x, b.x), max(a.y, b.y), max(a.z, b.z), max(a.w, b.w)); +#endif } __device_inline int4 clamp(const int4& a, const int4& mn, const int4& mx) { - return make_int4(clamp(a.x, mn.x, mx.x), clamp(a.y, mn.y, mx.y), clamp(a.z, mn.z, mx.z), clamp(a.w, mn.w, mx.w)); + return min(max(a, mn), mx); } __device_inline int4 select(const int4& mask, const int4& a, const int4& b) { +#ifdef __KERNEL_SSE__ + __m128 m = _mm_cvtepi32_ps(mask); + return _mm_castps_si128(_mm_or_ps(_mm_and_ps(m, _mm_castsi128_ps(a)), _mm_andnot_ps(m, _mm_castsi128_ps(b)))); /* todo: avoid cvt */ +#else return make_int4((mask.x)? a.x: b.x, (mask.y)? a.y: b.y, (mask.z)? a.z: b.z, (mask.w)? a.w: b.w); +#endif } __device_inline void print_int4(const char *label, const int4& a) diff --git a/intern/cycles/util/util_transform.cpp b/intern/cycles/util/util_transform.cpp index 61bc36ae888..0fd26825911 100644 --- a/intern/cycles/util/util_transform.cpp +++ b/intern/cycles/util/util_transform.cpp @@ -129,23 +129,26 @@ static bool transform_matrix4_gj_inverse(float R[][4], float M[][4]) Transform transform_inverse(const Transform& tfm) { - union { Transform T; float M[4][4]; } R, M; - - R.T = transform_identity(); - M.T = tfm; + Transform tfmR = transform_identity(); + float M[4][4], R[4][4]; - if(!transform_matrix4_gj_inverse(R.M, M.M)) { + memcpy(R, &tfmR, sizeof(R)); + memcpy(M, &tfm, sizeof(M)); + + if(!transform_matrix4_gj_inverse(R, M)) { /* matrix is degenerate (e.g. 0 scale on some axis), ideally we should never be in this situation, but try to invert it anyway with tweak */ - M.M[0][0] += 1e-8f; - M.M[1][1] += 1e-8f; - M.M[2][2] += 1e-8f; + M[0][0] += 1e-8f; + M[1][1] += 1e-8f; + M[2][2] += 1e-8f; - if(!transform_matrix4_gj_inverse(R.M, M.M)) + if(!transform_matrix4_gj_inverse(R, M)) return transform_identity(); } - return R.T; + memcpy(&tfmR, R, sizeof(R)); + + return tfmR; } CCL_NAMESPACE_END diff --git a/intern/cycles/util/util_types.h b/intern/cycles/util/util_types.h index 3c61d1f468b..cf167707e47 100644 --- a/intern/cycles/util/util_types.h +++ b/intern/cycles/util/util_types.h @@ -55,15 +55,17 @@ /* SIMD Types */ -/* not enabled yet, just testing */ -#if 0 -#define __KERNEL_SSE__ +/* not enabled, globally applying it just gives slowdown, + * but useful for testing. */ +//#define __KERNEL_SSE__ #ifdef __KERNEL_SSE__ -#include -#include +#include /* SSE 1 */ +#include /* SSE 2 */ +#include /* SSE 3 */ +#include /* SSE 3 */ +#include /* SSE 4 */ -#endif #endif #ifndef _WIN32 @@ -126,29 +128,29 @@ typedef uint64_t device_ptr; struct uchar2 { uchar x, y; - uchar operator[](int i) const { return *(&x + i); } - uchar& operator[](int i) { return *(&x + i); } + __forceinline uchar operator[](int i) const { return *(&x + i); } + __forceinline uchar& operator[](int i) { return *(&x + i); } }; struct uchar3 { uchar x, y, z; - uchar operator[](int i) const { return *(&x + i); } - uchar& operator[](int i) { return *(&x + i); } + __forceinline uchar operator[](int i) const { return *(&x + i); } + __forceinline uchar& operator[](int i) { return *(&x + i); } }; struct uchar4 { uchar x, y, z, w; - uchar operator[](int i) const { return *(&x + i); } - uchar& operator[](int i) { return *(&x + i); } + __forceinline uchar operator[](int i) const { return *(&x + i); } + __forceinline uchar& operator[](int i) { return *(&x + i); } }; struct int2 { int x, y; - int operator[](int i) const { return *(&x + i); } - int& operator[](int i) { return *(&x + i); } + __forceinline int operator[](int i) const { return *(&x + i); } + __forceinline int& operator[](int i) { return *(&x + i); } }; #ifdef __KERNEL_SSE__ @@ -157,13 +159,18 @@ struct __align(16) int3 { __m128i m128; struct { int x, y, z, w; }; }; + + __forceinline int3() {} + __forceinline int3(const __m128i a) : m128(a) {} + __forceinline operator const __m128i&(void) const { return m128; } + __forceinline operator __m128i&(void) { return m128; } #else struct int3 { int x, y, z, w; #endif - int operator[](int i) const { return *(&x + i); } - int& operator[](int i) { return *(&x + i); } + __forceinline int operator[](int i) const { return *(&x + i); } + __forceinline int& operator[](int i) { return *(&x + i); } }; #ifdef __KERNEL_SSE__ @@ -172,41 +179,46 @@ struct __align(16) int4 { __m128i m128; struct { int x, y, z, w; }; }; + + __forceinline int4() {} + __forceinline int4(const __m128i a) : m128(a) {} + __forceinline operator const __m128i&(void) const { return m128; } + __forceinline operator __m128i&(void) { return m128; } #else struct int4 { int x, y, z, w; #endif - int operator[](int i) const { return *(&x + i); } - int& operator[](int i) { return *(&x + i); } + __forceinline int operator[](int i) const { return *(&x + i); } + __forceinline int& operator[](int i) { return *(&x + i); } }; struct uint2 { uint x, y; - uint operator[](int i) const { return *(&x + i); } - uint& operator[](int i) { return *(&x + i); } + __forceinline uint operator[](uint i) const { return *(&x + i); } + __forceinline uint& operator[](uint i) { return *(&x + i); } }; struct uint3 { uint x, y, z; - uint operator[](int i) const { return *(&x + i); } - uint& operator[](int i) { return *(&x + i); } + __forceinline uint operator[](uint i) const { return *(&x + i); } + __forceinline uint& operator[](uint i) { return *(&x + i); } }; struct uint4 { uint x, y, z, w; - uint operator[](int i) const { return *(&x + i); } - uint& operator[](int i) { return *(&x + i); } + __forceinline uint operator[](uint i) const { return *(&x + i); } + __forceinline uint& operator[](uint i) { return *(&x + i); } }; struct float2 { float x, y; - float operator[](int i) const { return *(&x + i); } - float& operator[](int i) { return *(&x + i); } + __forceinline float operator[](int i) const { return *(&x + i); } + __forceinline float& operator[](int i) { return *(&x + i); } }; #ifdef __KERNEL_SSE__ @@ -215,13 +227,18 @@ struct __align(16) float3 { __m128 m128; struct { float x, y, z, w; }; }; + + __forceinline float3() {} + __forceinline float3(const __m128 a) : m128(a) {} + __forceinline operator const __m128&(void) const { return m128; } + __forceinline operator __m128&(void) { return m128; } #else struct float3 { float x, y, z, w; #endif - float operator[](int i) const { return *(&x + i); } - float& operator[](int i) { return *(&x + i); } + __forceinline float operator[](int i) const { return *(&x + i); } + __forceinline float& operator[](int i) { return *(&x + i); } }; #ifdef __KERNEL_SSE__ @@ -230,13 +247,18 @@ struct __align(16) float4 { __m128 m128; struct { float x, y, z, w; }; }; + + __forceinline float4() {} + __forceinline float4(const __m128 a) : m128(a) {} + __forceinline operator const __m128&(void) const { return m128; } + __forceinline operator __m128&(void) { return m128; } #else struct float4 { float x, y, z, w; #endif - float operator[](int i) const { return *(&x + i); } - float& operator[](int i) { return *(&x + i); } + __forceinline float operator[](int i) const { return *(&x + i); } + __forceinline float& operator[](int i) { return *(&x + i); } }; #endif @@ -348,6 +370,18 @@ __device_inline int align_up(int offset, int alignment) return (offset + alignment - 1) & ~(alignment - 1); } +__device_inline int3 make_int3(int i) +{ +#ifdef __KERNEL_SSE__ + int3 a; + a.m128 = _mm_set1_epi32(i); +#else + int3 a = {i, i, i, i}; +#endif + + return a; +} + __device_inline int4 make_int4(int i) { #ifdef __KERNEL_SSE__ diff --git a/intern/ghost/GHOST_Rect.h b/intern/ghost/GHOST_Rect.h index bcbcaded364..30d9d16b701 100644 --- a/intern/ghost/GHOST_Rect.h +++ b/intern/ghost/GHOST_Rect.h @@ -241,8 +241,10 @@ inline void GHOST_Rect::wrapPoint(GHOST_TInt32 &x, GHOST_TInt32 &y, GHOST_TInt32 GHOST_TInt32 h= getHeight(); /* highly unlikely but avoid eternal loop */ - if(w-ofs*2 <= 0 || h-ofs*2 <= 0) + if (w-ofs*2 <= 0 || h-ofs*2 <= 0) { return; + } + while(x-ofs < m_l) x+= w-(ofs*2); while(y-ofs < m_t) y+= h-(ofs*2); while(x+ofs > m_r) x-= w-(ofs*2); diff --git a/intern/ghost/intern/GHOST_NDOFManagerX11.cpp b/intern/ghost/intern/GHOST_NDOFManagerX11.cpp index 1e025cd738a..1e78cafd4f6 100644 --- a/intern/ghost/intern/GHOST_NDOFManagerX11.cpp +++ b/intern/ghost/intern/GHOST_NDOFManagerX11.cpp @@ -75,28 +75,32 @@ bool GHOST_NDOFManagerX11::available() bool GHOST_NDOFManagerX11::processEvents() { - GHOST_TUns64 now = m_system.getMilliSeconds(); - bool anyProcessed = false; - spnav_event e; - while (spnav_poll_event(&e)) { - switch (e.type) { - case SPNAV_EVENT_MOTION: - { - /* 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}; - updateTranslation(t, now); - updateRotation(r, now); - break; + if (m_available) { + GHOST_TUns64 now = m_system.getMilliSeconds(); + + spnav_event e; + while (spnav_poll_event(&e)) { + switch (e.type) { + case SPNAV_EVENT_MOTION: + { + /* 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}; + + updateTranslation(t, now); + updateRotation(r, now); + break; + } + case SPNAV_EVENT_BUTTON: + updateButton(e.button.bnum, e.button.press, now); + break; } - case SPNAV_EVENT_BUTTON: - updateButton(e.button.bnum, e.button.press, now); - break; + anyProcessed = true; } - anyProcessed = true; } + return anyProcessed; } diff --git a/intern/guardedalloc/intern/mallocn.c b/intern/guardedalloc/intern/mallocn.c index 2a6a0df0ff4..bb3a1c66ddc 100644 --- a/intern/guardedalloc/intern/mallocn.c +++ b/intern/guardedalloc/intern/mallocn.c @@ -243,7 +243,7 @@ void *MEM_dupallocN(void *vmemh) MemHead *memh= vmemh; memh--; - if(memh->mmap) + if (memh->mmap) newp= MEM_mapallocN(memh->len, "dupli_mapalloc"); else newp= MEM_mallocN(memh->len, "dupli_alloc"); @@ -265,8 +265,8 @@ void *MEM_reallocN(void *vmemh, size_t len) memh--; newp= MEM_mallocN(len, memh->name); - if(newp) { - if(len < memh->len) + if (newp) { + if (len < memh->len) memcpy(newp, vmemh, len); else memcpy(newp, vmemh, memh->len); @@ -311,14 +311,14 @@ void *MEM_mallocN(size_t len, const char *str) memh= (MemHead *)malloc(len+sizeof(MemHead)+sizeof(MemTail)); - if(memh) { + if (memh) { make_memhead_header(memh, len, str); mem_unlock_thread(); - if(malloc_debug_memset && len) + if (malloc_debug_memset && len) memset(memh+1, 255, len); #ifdef DEBUG_MEMCOUNTER - if(_mallocn_count==DEBUG_MEMCOUNTER_ERROR_VAL) + if (_mallocn_count==DEBUG_MEMCOUNTER_ERROR_VAL) memcount_raise(__func__); memh->_count= _mallocn_count++; #endif @@ -339,11 +339,11 @@ void *MEM_callocN(size_t len, const char *str) memh= (MemHead *)calloc(len+sizeof(MemHead)+sizeof(MemTail),1); - if(memh) { + if (memh) { make_memhead_header(memh, len, str); mem_unlock_thread(); #ifdef DEBUG_MEMCOUNTER - if(_mallocn_count==DEBUG_MEMCOUNTER_ERROR_VAL) + if (_mallocn_count==DEBUG_MEMCOUNTER_ERROR_VAL) memcount_raise(__func__); memh->_count= _mallocn_count++; #endif @@ -366,14 +366,14 @@ void *MEM_mapallocN(size_t len, const char *str) memh= mmap(NULL, len+sizeof(MemHead)+sizeof(MemTail), PROT_READ|PROT_WRITE, MAP_SHARED|MAP_ANON, -1, 0); - if(memh!=(MemHead *)-1) { + if (memh!=(MemHead *)-1) { make_memhead_header(memh, len, str); memh->mmap= 1; mmap_in_use += len; peak_mem = mmap_in_use > peak_mem ? mmap_in_use : peak_mem; mem_unlock_thread(); #ifdef DEBUG_MEMCOUNTER - if(_mallocn_count==DEBUG_MEMCOUNTER_ERROR_VAL) + if (_mallocn_count==DEBUG_MEMCOUNTER_ERROR_VAL) memcount_raise(__func__); memh->_count= _mallocn_count++; #endif @@ -406,9 +406,9 @@ static int compare_len(const void *p1, const void *p2) const MemPrintBlock *pb1= (const MemPrintBlock*)p1; const MemPrintBlock *pb2= (const MemPrintBlock*)p2; - if(pb1->len < pb2->len) + if (pb1->len < pb2->len) return 1; - else if(pb1->len == pb2->len) + else if (pb1->len == pb2->len) return 0; else return -1; @@ -431,7 +431,7 @@ void MEM_printmemlist_stats(void) membl = membase->first; if (membl) membl = MEMNEXT(membl); - while(membl) { + while (membl) { pb->name= membl->name; pb->len= membl->len; pb->items= 1; @@ -439,18 +439,18 @@ void MEM_printmemlist_stats(void) totpb++; pb++; - if(membl->next) + if (membl->next) membl= MEMNEXT(membl->next); else break; } /* sort by name and add together blocks with the same name */ qsort(printblock, totpb, sizeof(MemPrintBlock), compare_name); - for(a=0, b=0; aitems, (double)pb->len/(double)(1024*1024), (double)pb->len/1024.0/(double)pb->items, pb->name); free(printblock); @@ -491,7 +491,7 @@ static void MEM_printmemlist_internal( int pydict ) print_error("# membase_debug.py\n"); print_error("membase = [\\\n"); } - while(membl) { + while (membl) { if (pydict) { fprintf(stderr, "{'len':" SIZET_FORMAT ", 'name':'''%s''', 'pointer':'%p'},\\\n", SIZET_ARG(membl->len), membl->name, (void *)(membl+1)); } else { @@ -501,7 +501,7 @@ static void MEM_printmemlist_internal( int pydict ) print_error("%s len: " SIZET_FORMAT " %p\n", membl->name, SIZET_ARG(membl->len), membl+1); #endif } - if(membl->next) + if (membl->next) membl= MEMNEXT(membl->next); else break; } @@ -536,9 +536,9 @@ void MEM_callbackmemlist(void (*func)(void*)) { membl = membase->first; if (membl) membl = MEMNEXT(membl); - while(membl) { + while (membl) { func(membl+1); - if(membl->next) + if (membl->next) membl= MEMNEXT(membl->next); else break; } @@ -554,13 +554,13 @@ short MEM_testN(void *vmemh) { membl = membase->first; if (membl) membl = MEMNEXT(membl); - while(membl) { + while (membl) { if (vmemh == membl+1) { mem_unlock_thread(); return 1; } - if(membl->next) + if (membl->next) membl= MEMNEXT(membl->next); else break; } @@ -585,13 +585,13 @@ short MEM_freeN(void *vmemh) /* anders compileertie niet meer */ MemHead *memh= vmemh; const char *name; - if (memh == NULL){ + if (memh == NULL) { MemorY_ErroR("free","attempt to free NULL pointer"); /* print_error(err_stream, "%d\n", (memh+4000)->tag1); */ return(-1); } - if(sizeof(intptr_t)==8) { + if (sizeof(intptr_t)==8) { if (((intptr_t) memh) & 0x7) { MemorY_ErroR("free","attempt to free illegal pointer"); return(-1); @@ -605,7 +605,7 @@ short MEM_freeN(void *vmemh) /* anders compileertie niet meer */ } memh--; - if(memh->tag1 == MEMFREE && memh->tag2 == MEMFREE) { + if (memh->tag1 == MEMFREE && memh->tag2 == MEMFREE) { MemorY_ErroR(memh->name,"double free"); return(-1); } @@ -613,7 +613,7 @@ short MEM_freeN(void *vmemh) /* anders compileertie niet meer */ mem_lock_thread(); if ((memh->tag1 == MEMTAG1) && (memh->tag2 == MEMTAG2) && ((memh->len & 0x3) == 0)) { memt = (MemTail *)(((char *) memh) + sizeof(MemHead) + memh->len); - if (memt->tag3 == MEMTAG3){ + if (memt->tag3 == MEMTAG3) { memh->tag1 = MEMFREE; memh->tag2 = MEMFREE; @@ -628,7 +628,7 @@ short MEM_freeN(void *vmemh) /* anders compileertie niet meer */ error = 2; MemorY_ErroR(memh->name,"end corrupt"); name = check_memlist(memh); - if (name != NULL){ + if (name != NULL) { if (name != memh->name) MemorY_ErroR(name,"is also corrupt"); } } else{ @@ -694,13 +694,13 @@ static void rem_memblock(MemHead *memh) totblock--; mem_in_use -= memh->len; - if(memh->mmap) { + if (memh->mmap) { mmap_in_use -= memh->len; if (munmap(memh, memh->len + sizeof(MemHead) + sizeof(MemTail))) printf("Couldn't unmap memory %s\n", memh->name); } else { - if(malloc_debug_memset && memh->len) + if (malloc_debug_memset && memh->len) memset(memh+1, 255, memh->len); free(memh); } @@ -723,7 +723,7 @@ static const char *check_memlist(MemHead *memh) forw = membase->first; if (forw) forw = MEMNEXT(forw); forwok = NULL; - while(forw){ + while (forw) { if (forw->tag1 != MEMTAG1 || forw->tag2 != MEMTAG2) break; forwok = forw; if (forw->next) forw = MEMNEXT(forw->next); @@ -733,7 +733,7 @@ static const char *check_memlist(MemHead *memh) back = (MemHead *) membase->last; if (back) back = MEMNEXT(back); backok = NULL; - while(back){ + while (back) { if (back->tag1 != MEMTAG1 || back->tag2 != MEMTAG2) break; backok = back; if (back->prev) back = MEMNEXT(back->prev); @@ -742,13 +742,13 @@ static const char *check_memlist(MemHead *memh) if (forw != back) return ("MORE THAN 1 MEMORYBLOCK CORRUPT"); - if (forw == NULL && back == NULL){ + if (forw == NULL && back == NULL) { /* geen foute headers gevonden dan maar op zoek naar memblock*/ forw = membase->first; if (forw) forw = MEMNEXT(forw); forwok = NULL; - while(forw){ + while (forw) { if (forw == memh) break; if (forw->tag1 != MEMTAG1 || forw->tag2 != MEMTAG2) break; forwok = forw; @@ -760,7 +760,7 @@ static const char *check_memlist(MemHead *memh) back = (MemHead *) membase->last; if (back) back = MEMNEXT(back); backok = NULL; - while(back){ + while (back) { if (back == memh) break; if (back->tag1 != MEMTAG1 || back->tag2 != MEMTAG2) break; backok = back; @@ -772,10 +772,10 @@ static const char *check_memlist(MemHead *memh) if (forwok) name = forwok->nextname; else name = "No name found"; - if (forw == memh){ + if (forw == memh) { /* voor alle zekerheid wordt dit block maar uit de lijst gehaald */ - if (forwok){ - if (backok){ + if (forwok) { + if (backok) { forwok->next = (MemHead *)&backok->next; backok->prev = (MemHead *)&forwok->next; forwok->nextname = backok->name; @@ -785,7 +785,7 @@ static const char *check_memlist(MemHead *memh) /* membase->last = (struct Link *) &forwok->next; */ } } else{ - if (backok){ + if (backok) { backok->prev = NULL; membase->first = &backok->next; } else{ diff --git a/intern/mikktspace/mikktspace.c b/intern/mikktspace/mikktspace.c index 2036e601bcb..24c77c439a7 100644 --- a/intern/mikktspace/mikktspace.c +++ b/intern/mikktspace/mikktspace.c @@ -193,7 +193,7 @@ static STSpace AvgTSpace(const STSpace * pTS0, const STSpace * pTS1) // this if is important. Due to floating point precision // averaging when ts0==ts1 will cause a slight difference // which results in tangent space splits later on - if(pTS0->fMagS==pTS1->fMagS && pTS0->fMagT==pTS1->fMagT && + if (pTS0->fMagS==pTS1->fMagS && pTS0->fMagT==pTS1->fMagT && veq(pTS0->vOs,pTS1->vOs) && veq(pTS0->vOt, pTS1->vOt)) { ts_res.fMagS = pTS0->fMagS; @@ -207,8 +207,8 @@ static STSpace AvgTSpace(const STSpace * pTS0, const STSpace * pTS1) ts_res.fMagT = 0.5f*(pTS0->fMagT+pTS1->fMagT); ts_res.vOs = vadd(pTS0->vOs,pTS1->vOs); ts_res.vOt = vadd(pTS0->vOt,pTS1->vOt); - if( VNotZero(ts_res.vOs) ) ts_res.vOs = Normalize(ts_res.vOs); - if( VNotZero(ts_res.vOt) ) ts_res.vOt = Normalize(ts_res.vOt); + if ( VNotZero(ts_res.vOs) ) ts_res.vOs = Normalize(ts_res.vOs); + if ( VNotZero(ts_res.vOt) ) ts_res.vOt = Normalize(ts_res.vOt); } return ts_res; @@ -246,7 +246,7 @@ tbool genTangSpace(const SMikkTSpaceContext * pContext, const float fAngularThre const float fThresCos = (float) cos((fAngularThreshold*(float)M_PI)/180.0f); // verify all call-backs have been set - if( pContext->m_pInterface->m_getNumFaces==NULL || + if ( pContext->m_pInterface->m_getNumFaces==NULL || pContext->m_pInterface->m_getNumVerticesOfFace==NULL || pContext->m_pInterface->m_getPosition==NULL || pContext->m_pInterface->m_getNormal==NULL || @@ -254,21 +254,21 @@ tbool genTangSpace(const SMikkTSpaceContext * pContext, const float fAngularThre return TFALSE; // count triangles on supported faces - for(f=0; fm_pInterface->m_getNumVerticesOfFace(pContext, f); - if(verts==3) ++iNrTrianglesIn; + if (verts==3) ++iNrTrianglesIn; else if(verts==4) iNrTrianglesIn += 2; } - if(iNrTrianglesIn<=0) return TFALSE; + if (iNrTrianglesIn<=0) return TFALSE; // allocate memory for an index list piTriListIn = (int *) malloc(sizeof(int)*3*iNrTrianglesIn); pTriInfos = (STriInfo *) malloc(sizeof(STriInfo)*iNrTrianglesIn); - if(piTriListIn==NULL || pTriInfos==NULL) + if (piTriListIn==NULL || pTriInfos==NULL) { - if(piTriListIn!=NULL) free(piTriListIn); - if(pTriInfos!=NULL) free(pTriInfos); + if (piTriListIn!=NULL) free(piTriListIn); + if (pTriInfos!=NULL) free(pTriInfos); return TFALSE; } @@ -283,7 +283,7 @@ tbool genTangSpace(const SMikkTSpaceContext * pContext, const float fAngularThre // Mark all degenerate triangles iTotTris = iNrTrianglesIn; iDegenTriangles = 0; - for(t=0; tm_pInterface->m_getNumVerticesOfFace(pContext, f); - if(verts!=3 && verts!=4) continue; + if (verts!=3 && verts!=4) continue; // I've decided to let degenerate triangles and group-with-anythings @@ -390,28 +390,28 @@ tbool genTangSpace(const SMikkTSpaceContext * pContext, const float fAngularThre // (this is already the case for good triangles but not for // degenerate ones and those with bGroupWithAnything==true) bool bOrient = psTspace[index].bOrient; - if(psTspace[index].iCounter == 0) // tspace was not derived from a group + if (psTspace[index].iCounter == 0) // tspace was not derived from a group { // look for a space created in GenerateTSpaces() by iCounter>0 bool bNotFound = true; int i=1; - while(i 0) bNotFound=false; + if (psTspace[index+i].iCounter > 0) bNotFound=false; else ++i; } - if(!bNotFound) bOrient = psTspace[index+i].bOrient; + if (!bNotFound) bOrient = psTspace[index+i].bOrient; }*/ // set data - for(i=0; ivOs.x, pTSpace->vOs.y, pTSpace->vOs.z}; float bitang[] = {pTSpace->vOt.x, pTSpace->vOt.y, pTSpace->vOt.z}; - if(pContext->m_pInterface->m_setTSpace!=NULL) + if (pContext->m_pInterface->m_setTSpace!=NULL) pContext->m_pInterface->m_setTSpace(pContext, tang, bitang, pTSpace->fMagS, pTSpace->fMagT, pTSpace->bOrient, f, i); - if(pContext->m_pInterface->m_setTSpaceBasic!=NULL) + if (pContext->m_pInterface->m_setTSpaceBasic!=NULL) pContext->m_pInterface->m_setTSpaceBasic(pContext, tang, pTSpace->bOrient==TTRUE ? 1.0f : (-1.0f), f, i); ++index; @@ -464,23 +464,23 @@ static void GenerateSharedVerticesIndexList(int piTriList_in_and_out[], const SM int iMaxCount=0; SVec3 vMin = GetPosition(pContext, 0), vMax = vMin, vDim; float fMin, fMax; - for(i=1; i<(iNrTrianglesIn*3); i++) + for (i=1; i<(iNrTrianglesIn*3); i++) { const int index = piTriList_in_and_out[i]; const SVec3 vP = GetPosition(pContext, index); - if(vMin.x > vP.x) vMin.x = vP.x; + if (vMin.x > vP.x) vMin.x = vP.x; else if(vMax.x < vP.x) vMax.x = vP.x; - if(vMin.y > vP.y) vMin.y = vP.y; + if (vMin.y > vP.y) vMin.y = vP.y; else if(vMax.y < vP.y) vMax.y = vP.y; - if(vMin.z > vP.z) vMin.z = vP.z; + if (vMin.z > vP.z) vMin.z = vP.z; else if(vMax.z < vP.z) vMax.z = vP.z; } vDim = vsub(vMax,vMin); iChannel = 0; fMin = vMin.x; fMax=vMax.x; - if(vDim.y>vDim.x && vDim.y>vDim.z) + if (vDim.y>vDim.x && vDim.y>vDim.z) { iChannel=1; fMin = vMin.y, fMax=vMax.y; @@ -497,12 +497,12 @@ static void GenerateSharedVerticesIndexList(int piTriList_in_and_out[], const SM piHashOffsets = (int *) malloc(sizeof(int)*g_iCells); piHashCount2 = (int *) malloc(sizeof(int)*g_iCells); - if(piHashTable==NULL || piHashCount==NULL || piHashOffsets==NULL || piHashCount2==NULL) + if (piHashTable==NULL || piHashCount==NULL || piHashOffsets==NULL || piHashCount2==NULL) { - if(piHashTable!=NULL) free(piHashTable); - if(piHashCount!=NULL) free(piHashCount); - if(piHashOffsets!=NULL) free(piHashOffsets); - if(piHashCount2!=NULL) free(piHashCount2); + if (piHashTable!=NULL) free(piHashTable); + if (piHashCount!=NULL) free(piHashCount); + if (piHashOffsets!=NULL) free(piHashOffsets); + if (piHashCount2!=NULL) free(piHashCount2); GenerateSharedVerticesIndexListSlow(piTriList_in_and_out, pContext, iNrTrianglesIn); return; } @@ -510,7 +510,7 @@ static void GenerateSharedVerticesIndexList(int piTriList_in_and_out[], const SM memset(piHashCount2, 0, sizeof(int)*g_iCells); // count amount of elements in each cell unit - for(i=0; i<(iNrTrianglesIn*3); i++) + for (i=0; i<(iNrTrianglesIn*3); i++) { const int index = piTriList_in_and_out[i]; const SVec3 vP = GetPosition(pContext, index); @@ -521,11 +521,11 @@ static void GenerateSharedVerticesIndexList(int piTriList_in_and_out[], const SM // evaluate start index of each cell. piHashOffsets[0]=0; - for(k=1; kpTmpVert[l].vert[c]) fvMin[c]=pTmpVert[l].vert[c]; + for (l=(iL_in+1); l<=iR_in; l++) + for (c=0; c<3; c++) + if (fvMin[c]>pTmpVert[l].vert[c]) fvMin[c]=pTmpVert[l].vert[c]; else if(fvMax[c]dx && dy>dz) channel=1; + if (dy>dx && dy>dz) channel=1; else if(dz>dx) channel=2; fSep = 0.5f*(fvMax[channel]+fvMin[channel]); // terminate recursion when the separation/average value // is no longer strictly between fMin and fMax values. - if(fSep>=fvMax[channel] || fSep<=fvMin[channel]) + if (fSep>=fvMax[channel] || fSep<=fvMin[channel]) { // complete the weld - for(l=iL_in; l<=iR_in; l++) + for (l=iL_in; l<=iR_in; l++) { int i = pTmpVert[l].index; const int index = piTriList_in_and_out[i]; @@ -617,7 +617,7 @@ static void MergeVertsFast(int piTriList_in_and_out[], STmpVert pTmpVert[], cons tbool bNotFound = TTRUE; int l2=iL_in, i2rec=-1; - while(l20); // at least 2 entries // separate (by fSep) all points between iL_in and iR_in in pTmpVert[] - while(iL < iR) + while (iL < iR) { tbool bReadyLeftSwap = TFALSE, bReadyRightSwap = TFALSE; - while((!bReadyLeftSwap) && iL=iL_in && iL<=iR_in); bReadyLeftSwap = !(pTmpVert[iL].vert[channel]=iL_in && iR<=iR_in); bReadyRightSwap = pTmpVert[iR].vert[channel]m_pInterface->m_getNumFaces(pContext); f++) + for (f=0; fm_pInterface->m_getNumFaces(pContext); f++) { const int verts = pContext->m_pInterface->m_getNumVerticesOfFace(pContext, f); - if(verts!=3 && verts!=4) continue; + if (verts!=3 && verts!=4) continue; pTriInfos[iDstTriIndex].iOrgFaceNumber = f; pTriInfos[iDstTriIndex].iTSpacesOffs = iTSpacesOffs; - if(verts==3) + if (verts==3) { unsigned char * pVerts = pTriInfos[iDstTriIndex].vert_num; pVerts[0]=0; pVerts[1]=1; pVerts[2]=2; @@ -810,7 +810,7 @@ static int GenerateInitialVerticesIndexList(STriInfo pTriInfos[], int piTriList_ const float distSQ_02 = LengthSquared(vsub(T2,T0)); const float distSQ_13 = LengthSquared(vsub(T3,T1)); tbool bQuadDiagIs_02; - if(distSQ_020 ? ORIENT_PRESERVING : 0); - if( NotZero(fSignedAreaSTx2) ) + if ( NotZero(fSignedAreaSTx2) ) { const float fAbsArea = fabsf(fSignedAreaSTx2); const float fLenOs = Length(vOs); const float fLenOt = Length(vOt); const float fS = (pTriInfos[f].iFlag&ORIENT_PRESERVING)==0 ? (-1.0f) : 1.0f; - if( NotZero(fLenOs) ) pTriInfos[f].vOs = vscale(fS/fLenOs, vOs); - if( NotZero(fLenOt) ) pTriInfos[f].vOt = vscale(fS/fLenOt, vOt); + if ( NotZero(fLenOs) ) pTriInfos[f].vOs = vscale(fS/fLenOs, vOs); + if ( NotZero(fLenOt) ) pTriInfos[f].vOt = vscale(fS/fLenOt, vOt); // evaluate magnitudes prior to normalization of vOs and vOt pTriInfos[f].fMagS = fLenOs / fAbsArea; pTriInfos[f].fMagT = fLenOt / fAbsArea; // if this is a good triangle - if( NotZero(pTriInfos[f].fMagS) && NotZero(pTriInfos[f].fMagT)) + if ( NotZero(pTriInfos[f].fMagS) && NotZero(pTriInfos[f].fMagT)) pTriInfos[f].iFlag &= (~GROUP_WITH_ANY); } } // force otherwise healthy quads to a fixed orientation - while(t<(iNrTrianglesIn-1)) + while (t<(iNrTrianglesIn-1)) { const int iFO_a = pTriInfos[t].iOrgFaceNumber; const int iFO_b = pTriInfos[t+1].iOrgFaceNumber; - if(iFO_a==iFO_b) // this is a quad + if (iFO_a==iFO_b) // this is a quad { const tbool bIsDeg_a = (pTriInfos[t].iFlag&MARK_DEGENERATE)!=0 ? TTRUE : TFALSE; const tbool bIsDeg_b = (pTriInfos[t+1].iFlag&MARK_DEGENERATE)!=0 ? TTRUE : TFALSE; // bad triangles should already have been removed by // DegenPrologue(), but just in case check bIsDeg_a and bIsDeg_a are false - if((bIsDeg_a||bIsDeg_b)==TFALSE) + if ((bIsDeg_a||bIsDeg_b)==TFALSE) { const tbool bOrientA = (pTriInfos[t].iFlag&ORIENT_PRESERVING)!=0 ? TTRUE : TFALSE; const tbool bOrientB = (pTriInfos[t+1].iFlag&ORIENT_PRESERVING)!=0 ? TTRUE : TFALSE; // if this happens the quad has extremely bad mapping!! - if(bOrientA!=bOrientB) + if (bOrientA!=bOrientB) { //printf("found quad with bad mapping\n"); tbool bChooseOrientFirstTri = TFALSE; - if((pTriInfos[t+1].iFlag&GROUP_WITH_ANY)!=0) bChooseOrientFirstTri = TTRUE; + if ((pTriInfos[t+1].iFlag&GROUP_WITH_ANY)!=0) bChooseOrientFirstTri = TTRUE; else if( CalcTexArea(pContext, &piTriListIn[t*3+0]) >= CalcTexArea(pContext, &piTriListIn[(t+1)*3+0]) ) bChooseOrientFirstTri = TTRUE; @@ -1048,7 +1048,7 @@ static void InitTriInfo(STriInfo pTriInfos[], const int piTriListIn[], const SMi // match up edge pairs { SEdge * pEdges = (SEdge *) malloc(sizeof(SEdge)*iNrTrianglesIn*3); - if(pEdges==NULL) + if (pEdges==NULL) BuildNeighborsSlow(pTriInfos, piTriListIn, iNrTrianglesIn); else { @@ -1070,12 +1070,12 @@ static int Build4RuleGroups(STriInfo pTriInfos[], SGroup pGroups[], int piGroupT const int iNrMaxGroups = iNrTrianglesIn*3; int iNrActiveGroups = 0; int iOffset = 0, f=0, i=0; - for(f=0; f0?(i-1):2]; - if(neigh_indexL>=0) // neighbor + if (neigh_indexL>=0) // neighbor { const tbool bAnswer = AssignRecur(piTriListIn, pTriInfos, neigh_indexL, @@ -1102,7 +1102,7 @@ static int Build4RuleGroups(STriInfo pTriInfos[], SGroup pGroups[], int piGroupT const tbool bDiff = bOrPre!=bOrPre2 ? TTRUE : TFALSE; assert(bAnswer || bDiff); } - if(neigh_indexR>=0) // neighbor + if (neigh_indexR>=0) // neighbor { const tbool bAnswer = AssignRecur(piTriListIn, pTriInfos, neigh_indexR, @@ -1141,20 +1141,20 @@ static tbool AssignRecur(const int piTriListIn[], STriInfo psTriInfos[], const int iVertRep = pGroup->iVertexRepresentitive; const int * pVerts = &piTriListIn[3*iMyTriIndex+0]; int i=-1; - if(pVerts[0]==iVertRep) i=0; + if (pVerts[0]==iVertRep) i=0; else if(pVerts[1]==iVertRep) i=1; else if(pVerts[2]==iVertRep) i=2; assert(i>=0 && i<3); // early out - if(pMyTriInfo->AssignedGroup[i] == pGroup) return TTRUE; + if (pMyTriInfo->AssignedGroup[i] == pGroup) return TTRUE; else if(pMyTriInfo->AssignedGroup[i]!=NULL) return TFALSE; - if((pMyTriInfo->iFlag&GROUP_WITH_ANY)!=0) + if ((pMyTriInfo->iFlag&GROUP_WITH_ANY)!=0) { // first to group with a group-with-anything triangle // determines it's orientation. // This is the only existing order dependency in the code!! - if( pMyTriInfo->AssignedGroup[0] == NULL && + if ( pMyTriInfo->AssignedGroup[0] == NULL && pMyTriInfo->AssignedGroup[1] == NULL && pMyTriInfo->AssignedGroup[2] == NULL ) { @@ -1164,7 +1164,7 @@ static tbool AssignRecur(const int piTriListIn[], STriInfo psTriInfos[], } { const tbool bOrient = (pMyTriInfo->iFlag&ORIENT_PRESERVING)!=0 ? TTRUE : TFALSE; - if(bOrient != pGroup->bOrientPreservering) return TFALSE; + if (bOrient != pGroup->bOrientPreservering) return TFALSE; } AddTriToGroup(pGroup, iMyTriIndex); @@ -1173,9 +1173,9 @@ static tbool AssignRecur(const int piTriListIn[], STriInfo psTriInfos[], { const int neigh_indexL = pMyTriInfo->FaceNeighbors[i]; const int neigh_indexR = pMyTriInfo->FaceNeighbors[i>0?(i-1):2]; - if(neigh_indexL>=0) + if (neigh_indexL>=0) AssignRecur(piTriListIn, psTriInfos, neigh_indexL, pGroup); - if(neigh_indexR>=0) + if (neigh_indexR>=0) AssignRecur(piTriListIn, psTriInfos, neigh_indexR, pGroup); } @@ -1199,39 +1199,39 @@ static tbool GenerateTSpaces(STSpace psTspace[], const STriInfo pTriInfos[], con SSubGroup * pUniSubGroups = NULL; int * pTmpMembers = NULL; int iMaxNrFaces=0, iUniqueTspaces=0, g=0, i=0; - for(g=0; giNrFaces; i++) // triangles + for (i=0; iiNrFaces; i++) // triangles { const int f = pGroup->pFaceIndices[i]; // triangle number int index=-1, iVertIndex=-1, iOF_1=-1, iMembers=0, j=0, l=0; SSubGroup tmp_group; tbool bFound; SVec3 n, vOs, vOt; - if(pTriInfos[f].AssignedGroup[0]==pGroup) index=0; + if (pTriInfos[f].AssignedGroup[0]==pGroup) index=0; else if(pTriInfos[f].AssignedGroup[1]==pGroup) index=1; else if(pTriInfos[f].AssignedGroup[2]==pGroup) index=2; assert(index>=0 && index<3); @@ -1245,14 +1245,14 @@ static tbool GenerateTSpaces(STSpace psTspace[], const STriInfo pTriInfos[], con // project vOs = vsub(pTriInfos[f].vOs, vscale(vdot(n,pTriInfos[f].vOs), n)); vOt = vsub(pTriInfos[f].vOt, vscale(vdot(n,pTriInfos[f].vOt), n)); - if( VNotZero(vOs) ) vOs = Normalize(vOs); - if( VNotZero(vOt) ) vOt = Normalize(vOt); + if ( VNotZero(vOs) ) vOs = Normalize(vOs); + if ( VNotZero(vOt) ) vOt = Normalize(vOt); // original face number iOF_1 = pTriInfos[f].iOrgFaceNumber; iMembers = 0; - for(j=0; jiNrFaces; j++) + for (j=0; jiNrFaces; j++) { const int t = pGroup->pFaceIndices[j]; // triangle number const int iOF_2 = pTriInfos[t].iOrgFaceNumber; @@ -1260,8 +1260,8 @@ static tbool GenerateTSpaces(STSpace psTspace[], const STriInfo pTriInfos[], con // project SVec3 vOs2 = vsub(pTriInfos[t].vOs, vscale(vdot(n,pTriInfos[t].vOs), n)); SVec3 vOt2 = vsub(pTriInfos[t].vOt, vscale(vdot(n,pTriInfos[t].vOt), n)); - if( VNotZero(vOs2) ) vOs2 = Normalize(vOs2); - if( VNotZero(vOt2) ) vOt2 = Normalize(vOt2); + if ( VNotZero(vOs2) ) vOs2 = Normalize(vOs2); + if ( VNotZero(vOt2) ) vOt2 = Normalize(vOt2); { const tbool bAny = ( (pTriInfos[f].iFlag | pTriInfos[t].iFlag) & GROUP_WITH_ANY )!=0 ? TTRUE : TFALSE; @@ -1272,7 +1272,7 @@ static tbool GenerateTSpaces(STSpace psTspace[], const STriInfo pTriInfos[], con const float fCosT = vdot(vOt,vOt2); assert(f!=t || bSameOrgFace); // sanity check - if(bAny || bSameOrgFace || (fCosS>fThresCos && fCosT>fThresCos)) + if (bAny || bSameOrgFace || (fCosS>fThresCos && fCosT>fThresCos)) pTmpMembers[iMembers++] = t; } } @@ -1280,7 +1280,7 @@ static tbool GenerateTSpaces(STSpace psTspace[], const STriInfo pTriInfos[], con // sort pTmpMembers tmp_group.iNrFaces = iMembers; tmp_group.pTriMembers = pTmpMembers; - if(iMembers>1) + if (iMembers>1) { unsigned int uSeed = INTERNAL_RND_SORT_SEED; // could replace with a random seed? QuickSort(pTmpMembers, 0, iMembers-1, uSeed); @@ -1289,10 +1289,10 @@ static tbool GenerateTSpaces(STSpace psTspace[], const STriInfo pTriInfos[], con // look for an existing match bFound = TFALSE; l=0; - while(liCounter<2); assert(((pTriInfos[f].iFlag&ORIENT_PRESERVING)!=0) == pGroup->bOrientPreservering); - if(pTS_out->iCounter==1) + if (pTS_out->iCounter==1) { *pTS_out = AvgTSpace(pTS_out, &pSubGroupTspace[l]); pTS_out->iCounter = 2; // update counter @@ -1347,7 +1347,7 @@ static tbool GenerateTSpaces(STSpace psTspace[], const STriInfo pTriInfos[], con } // clean up and offset iUniqueTspaces - for(s=0; s=0 && i<3); @@ -1390,8 +1390,8 @@ static STSpace EvalTspace(int face_indices[], const int iFaces, const int piTriL n = GetNormal(pContext, index); vOs = vsub(pTriInfos[f].vOs, vscale(vdot(n,pTriInfos[f].vOs), n)); vOt = vsub(pTriInfos[f].vOt, vscale(vdot(n,pTriInfos[f].vOt), n)); - if( VNotZero(vOs) ) vOs = Normalize(vOs); - if( VNotZero(vOt) ) vOt = Normalize(vOt); + if ( VNotZero(vOs) ) vOs = Normalize(vOs); + if ( VNotZero(vOt) ) vOt = Normalize(vOt); i2 = piTriListIn[3*f + (i<2?(i+1):0)]; i1 = piTriListIn[3*f + i]; @@ -1423,9 +1423,9 @@ static STSpace EvalTspace(int face_indices[], const int iFaces, const int piTriL } // normalize - if( VNotZero(res.vOs) ) res.vOs = Normalize(res.vOs); - if( VNotZero(res.vOt) ) res.vOt = Normalize(res.vOt); - if(fAngleSum>0) + if ( VNotZero(res.vOs) ) res.vOs = Normalize(res.vOs); + if ( VNotZero(res.vOt) ) res.vOt = Normalize(res.vOt); + if (fAngleSum>0) { res.fMagS /= fAngleSum; res.fMagT /= fAngleSum; @@ -1438,11 +1438,11 @@ static tbool CompareSubGroups(const SSubGroup * pg1, const SSubGroup * pg2) { tbool bStillSame=TTRUE; int i=0; - if(pg1->iNrFaces!=pg2->iNrFaces) return TFALSE; - while(iiNrFaces && bStillSame) + if (pg1->iNrFaces!=pg2->iNrFaces) return TFALSE; + while (iiNrFaces && bStillSame) { bStillSame = pg1->pTriMembers[i]==pg2->pTriMembers[i] ? TTRUE : TFALSE; - if(bStillSame) ++i; + if (bStillSame) ++i; } return bStillSame; } @@ -1467,12 +1467,12 @@ static void QuickSort(int* pSortBuffer, int iLeft, int iRight, unsigned int uSee do { - while(pSortBuffer[iL] < iMid) + while (pSortBuffer[iL] < iMid) ++iL; - while(pSortBuffer[iR] > iMid) + while (pSortBuffer[iR] > iMid) --iR; - if(iL <= iR) + if (iL <= iR) { iTmp = pSortBuffer[iL]; pSortBuffer[iL] = pSortBuffer[iR]; @@ -1480,11 +1480,11 @@ static void QuickSort(int* pSortBuffer, int iLeft, int iRight, unsigned int uSee ++iL; --iR; } } - while(iL <= iR); + while (iL <= iR); - if(iLeft < iR) + if (iLeft < iR) QuickSort(pSortBuffer, iLeft, iR, uSeed); - if(iL < iRight) + if (iL < iRight) QuickSort(pSortBuffer, iL, iRight, uSeed); } @@ -1499,8 +1499,8 @@ static void BuildNeighborsFast(STriInfo pTriInfos[], SEdge * pEdges, const int p // build array of edges unsigned int uSeed = INTERNAL_RND_SORT_SEED; // could replace with a random seed? int iEntries=0, iCurStartIndex=-1, f=0, i=0; - for(f=0; f pSortBuffer[iRight].array[channel]) + if (pSortBuffer[iLeft].array[channel] > pSortBuffer[iRight].array[channel]) { sTmp = pSortBuffer[iLeft]; pSortBuffer[iLeft] = pSortBuffer[iRight]; @@ -1673,12 +1673,12 @@ static void QuickSortEdges(SEdge * pSortBuffer, int iLeft, int iRight, const int do { - while(pSortBuffer[iL].array[channel] < iMid) + while (pSortBuffer[iL].array[channel] < iMid) ++iL; - while(pSortBuffer[iR].array[channel] > iMid) + while (pSortBuffer[iR].array[channel] > iMid) --iR; - if(iL <= iR) + if (iL <= iR) { sTmp = pSortBuffer[iL]; pSortBuffer[iL] = pSortBuffer[iR]; @@ -1686,11 +1686,11 @@ static void QuickSortEdges(SEdge * pSortBuffer, int iLeft, int iRight, const int ++iL; --iR; } } - while(iL <= iR); + while (iL <= iR); - if(iLeft < iR) + if (iLeft < iR) QuickSortEdges(pSortBuffer, iLeft, iR, channel, uSeed); - if(iL < iRight) + if (iL < iRight) QuickSortEdges(pSortBuffer, iL, iRight, channel, uSeed); } @@ -1700,10 +1700,10 @@ static void GetEdge(int * i0_out, int * i1_out, int * edgenum_out, const int ind *edgenum_out = -1; // test if first index is on the edge - if(indices[0]==i0_in || indices[0]==i1_in) + if (indices[0]==i0_in || indices[0]==i1_in) { // test if second index is on the edge - if(indices[1]==i0_in || indices[1]==i1_in) + if (indices[1]==i0_in || indices[1]==i1_in) { edgenum_out[0]=0; // first edge i0_out[0]=indices[0]; @@ -1736,15 +1736,15 @@ static void DegenPrologue(STriInfo pTriInfos[], int piTriList_out[], const int i // locate quads with only one good triangle int t=0; - while(t<(iTotTris-1)) + while (t<(iTotTris-1)) { const int iFO_a = pTriInfos[t].iOrgFaceNumber; const int iFO_b = pTriInfos[t+1].iOrgFaceNumber; - if(iFO_a==iFO_b) // this is a quad + if (iFO_a==iFO_b) // this is a quad { const tbool bIsDeg_a = (pTriInfos[t].iFlag&MARK_DEGENERATE)!=0 ? TTRUE : TFALSE; const tbool bIsDeg_b = (pTriInfos[t+1].iFlag&MARK_DEGENERATE)!=0 ? TTRUE : TFALSE; - if((bIsDeg_a^bIsDeg_b)!=0) + if ((bIsDeg_a^bIsDeg_b)!=0) { pTriInfos[t].iFlag |= QUAD_ONE_DEGEN_TRI; pTriInfos[t+1].iFlag |= QUAD_ONE_DEGEN_TRI; @@ -1760,12 +1760,12 @@ static void DegenPrologue(STriInfo pTriInfos[], int piTriList_out[], const int i iNextGoodTriangleSearchIndex = 1; t=0; bStillFindingGoodOnes = TTRUE; - while(t (t+1)); // swap triangle t0 and t1 - if(!bJustADegenerate) + if (!bJustADegenerate) { int i=0; - for(i=0; i<3; i++) + for (i=0; i<3; i++) { const int index = piTriList_out[t0*3+i]; piTriList_out[t0*3+i] = piTriList_out[t1*3+i]; @@ -1805,7 +1805,7 @@ static void DegenPrologue(STriInfo pTriInfos[], int piTriList_out[], const int i bStillFindingGoodOnes = TFALSE; // this is not supposed to happen } - if(bStillFindingGoodOnes) ++t; + if (bStillFindingGoodOnes) ++t; } assert(bStillFindingGoodOnes); // code will still work. @@ -1817,28 +1817,28 @@ static void DegenEpilogue(STSpace psTspace[], STriInfo pTriInfos[], int piTriLis int t=0, i=0; // deal with degenerate triangles // punishment for degenerate triangles is O(N^2) - for(t=iNrTrianglesIn; tx/4; /* This doesn't seem to work... paprmh */ - if(cast->gamma != 1.0) gamwarp(tbuf, cast->gamma); + if (cast->gamma != 1.0) gamwarp(tbuf, cast->gamma); /* reduce */ - for(i=0; ix<4 || tbuf->y<4) break; + if (tbuf->x<4 || tbuf->y<4) break; } /* enlarge */ - for(i=0; ix > x4) { + if (tbuf->x > x4) { scaleImBuf(tbuf, ibuf->x, ibuf->y); break; } } /* this doesn't seem to work...paprmh*/ - if(cast->gamma != 1.0) gamwarp(tbuf, 1.0 / cast->gamma); + if (cast->gamma != 1.0) gamwarp(tbuf, 1.0 / cast->gamma); - if(ibuf->rect)memcpy(ibuf->rect, tbuf->rect, 4*ibuf->x*ibuf->y); + if (ibuf->rect)memcpy(ibuf->rect, tbuf->rect, 4*ibuf->x*ibuf->y); - if(ibuf->rect_float) + if (ibuf->rect_float) memcpy(ibuf->rect_float, tbuf->rect_float, 4*ibuf->x*ibuf->y*sizeof(float)); freeImBuf(tbuf); @@ -161,13 +161,13 @@ void doblur(struct ImBuf *mbuf, float fac, Cast *cast) /* which buffers ? */ - if(fac>7.0) fac= 7.0; - if(fac<=1.0) return; + if (fac>7.0) fac= 7.0; + if (fac<=1.0) return; pfac= 2.0; pbuf= dupImBuf(mbuf); n= 1; - while(pfac < fac) { + while (pfac < fac) { blurbuf(pbuf, n, cast); blurbuf(pbuf, n, cast); @@ -185,10 +185,10 @@ void doblur(struct ImBuf *mbuf, float fac, Cast *cast) fac= (fac-pfac)/(ifac-pfac); n= mbuf->x*mbuf->y; - if(cast->show) fac=cast->show-1; + if (cast->show) fac=cast->show-1; - if(mbuf->rect_float){ - if(fac>=1) { + if (mbuf->rect_float){ + if (fac>=1) { memcpy(mbuf->rect_float, ibuf->rect_float, 4*n*sizeof(float)); } else if(fac<=0) { @@ -200,7 +200,7 @@ void doblur(struct ImBuf *mbuf, float fac, Cast *cast) irectf= (float *)ibuf->rect_float; prectf= (float *)pbuf->rect_float; mrectf= (float *)mbuf->rect_float; - while(n--) { + while (n--) { mrectf[0]= irectf[0]*fac+ prectf[0]*infac; mrectf[1]= irectf[1]*fac+ prectf[1]*infac; mrectf[2]= irectf[2]*fac+ prectf[2]*infac; @@ -213,10 +213,10 @@ void doblur(struct ImBuf *mbuf, float fac, Cast *cast) } else if(mbuf->rect){ b1= (int)fac*255.0; - if(b1>255) b1= 255; + if (b1>255) b1= 255; b2= 255-b1; - if(b1==255) { + if (b1==255) { memcpy(mbuf->rect, ibuf->rect, 4*n); } else if(b1==0) { @@ -226,7 +226,7 @@ void doblur(struct ImBuf *mbuf, float fac, Cast *cast) irect= (char *)ibuf->rect; prect= (char *)pbuf->rect; mrect= (char *)mbuf->rect; - while(n--) { + while (n--) { mrect[0]= (irect[0]*b1+ prect[0]*b2)>>8; mrect[1]= (irect[1]*b1+ prect[1]*b2)>>8; mrect[2]= (irect[2]*b1+ prect[2]*b2)>>8; @@ -247,7 +247,7 @@ void plugin_seq_doit(Cast *cast, float facf0, float facf1, int x, int y, ImBuf * { float bfacf0, bfacf1; - if(cast->use_ipo==0) { + if (cast->use_ipo==0) { bfacf0= bfacf1= cast->blur+1.0; } else { @@ -255,8 +255,8 @@ void plugin_seq_doit(Cast *cast, float facf0, float facf1, int x, int y, ImBuf * bfacf1 = (facf1 * 6.0) + 1.0; } - if(out->rect) memcpy(out->rect, ibuf1->rect, 4*out->x*out->y); - if(out->rect_float) memcpy(out->rect_float, ibuf1->rect_float, 4*out->x*out->y*sizeof(float)); + if (out->rect) memcpy(out->rect, ibuf1->rect, 4*out->x*out->y); + if (out->rect_float) memcpy(out->rect_float, ibuf1->rect_float, 4*out->x*out->y*sizeof(float)); /****************I can't get this field code to work... works ok without...paprmh****************/ @@ -269,13 +269,13 @@ void plugin_seq_doit(Cast *cast, float facf0, float facf1, int x, int y, ImBuf * doblur(out, bfacf0, cast); /*fieldA*/ -/* if(out->rect)out->rect += out->x * out->y; - if(out->rect_float)out->rect_float += out->x * out->y; +/* if (out->rect)out->rect += out->x * out->y; + if (out->rect_float)out->rect_float += out->x * out->y; doblur(out, bfacf1, cast);*/ /*fieldB*/ -/* if(out->rect)out->rect -= out->x * out->y; - if(out->rect_float)out->rect_float -= out->x * out->y; +/* if (out->rect)out->rect -= out->x * out->y; + if (out->rect_float)out->rect_float -= out->x * out->y; out->flags |= IB_fields; interlace(out);*/ diff --git a/release/plugins/texture/clouds2.c b/release/plugins/texture/clouds2.c index fc20f5769ef..8561d11dc3b 100644 --- a/release/plugins/texture/clouds2.c +++ b/release/plugins/texture/clouds2.c @@ -150,7 +150,7 @@ int plugin_tex_doit(int stype, Cast *cast, float *texvec, float *dxt, float *dyt /* always return this value */ result[0] = CLAMP (val+cast->offset, 0.0, 1.0) * pow (fabs(sqrt(tv[0]*tv[0]+tv[1]*tv[1]+tv[2]*tv[2])), cast->falloff); - if(stype==1) { + if (stype==1) { /* * this is r, g, b, a: */ @@ -161,7 +161,7 @@ int plugin_tex_doit(int stype, Cast *cast, float *texvec, float *dxt, float *dyt res |= TEX_RGB; } - if(stype==2) { + if (stype==2) { /* * This value is the displacement of the actual normal in * the Material calculation. diff --git a/release/plugins/texture/tiles.c b/release/plugins/texture/tiles.c index 151f64b6dab..11e1ed8f8af 100644 --- a/release/plugins/texture/tiles.c +++ b/release/plugins/texture/tiles.c @@ -124,7 +124,7 @@ float sample_wave(float freq, float coord, float pixsize) float fac, frac, retval; int part1, part2; - if(pixsize > freq) return 0.5; + if (pixsize > freq) return 0.5; pixsize/= freq; @@ -132,19 +132,19 @@ float sample_wave(float freq, float coord, float pixsize) part1= ffloor(fac); frac= fac - part1; - if(part1 & 1) retval= 0.0; - else retval= 1.0; + if (part1 & 1) retval= 0.0; + else retval = 1.0; - if(pixsize != 0.0) { + if (pixsize != 0.0) { /* is coord+pixsize another value? */ part2= ffloor(fac + pixsize); - if(part1==part2) return retval; + if (part1==part2) return retval; /* antialias */ - if(retval==1.0) retval= (1.0-frac)/pixsize; - else retval= 1.0-(1.0-frac)/pixsize; + if (retval == 1.0) retval= (1.0 - frac) / pixsize; + else retval= 1.0 - (1.0 - frac) / pixsize; } return retval; } @@ -153,23 +153,23 @@ int plugin_tex_doit(int stype, Cast *cast, float *texvec, float *dxt, float *dyt { float xwave, ywave; - if(stype==1) { + if (stype==1) { texvec[0]+= hnoise(cast->noise, texvec[0], texvec[1], texvec[2]); texvec[1]+= hnoise(cast->noise, texvec[1], texvec[2], texvec[0]); } - if(dxt && dyt) { + if (dxt && dyt) { xwave= sample_wave(cast->size, texvec[0], fabs(dxt[0]) + fabs(dyt[0]) ); ywave= sample_wave(cast->size, texvec[1], fabs(dxt[1]) + fabs(dyt[1]) ); - if(xwave > ywave) result[0]= xwave-ywave; + if (xwave > ywave) result[0]= xwave-ywave; else result[0]= ywave-xwave; } else { xwave= sample_wave(cast->size, texvec[0], 0.0 ); ywave= sample_wave(cast->size, texvec[1], 0.0 ); - if(xwave > ywave) result[0]= xwave-ywave; + if (xwave > ywave) result[0]= xwave-ywave; else result[0]= ywave-xwave; } diff --git a/release/scripts/modules/blend_render_info.py b/release/scripts/modules/blend_render_info.py index 7c30b480d6b..5a09f664637 100755 --- a/release/scripts/modules/blend_render_info.py +++ b/release/scripts/modules/blend_render_info.py @@ -75,7 +75,7 @@ def read_blend_rend_chunk(path): # Now we want the scene name, start and end frame. this is 32bites long start_frame, end_frame = struct.unpack('>2i' if is_big_endian else '<2i', blendfile.read(8)) - scene_name = blendfile.read(24) + scene_name = blendfile.read(64) scene_name = scene_name[:scene_name.index(b'\0')] diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py index a4e7d107099..9c4e79c4c34 100644 --- a/release/scripts/startup/bl_ui/properties_data_modifier.py +++ b/release/scripts/startup/bl_ui/properties_data_modifier.py @@ -440,11 +440,15 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel): layout.separator() - flow = layout.column_flow() - flow.prop(md, "time") - flow.prop(md, "resolution") - flow.prop(md, "spatial_size") - flow.prop(md, "depth") + split = layout.split() + + col = split.column() + col.prop(md, "time") + col.prop(md, "resolution") + + col = split.column() + col.prop(md, "spatial_size") + col.prop(md, "depth") layout.label("Waves:") diff --git a/release/scripts/startup/bl_ui/space_sequencer.py b/release/scripts/startup/bl_ui/space_sequencer.py index aae950519a4..43d675c1417 100644 --- a/release/scripts/startup/bl_ui/space_sequencer.py +++ b/release/scripts/startup/bl_ui/space_sequencer.py @@ -220,7 +220,6 @@ class SEQUENCER_MT_add_effect(Menu): layout.operator("sequencer.effect_strip_add", text="Gamma Cross").type = 'GAMMA_CROSS' layout.operator("sequencer.effect_strip_add", text="Multiply").type = 'MULTIPLY' layout.operator("sequencer.effect_strip_add", text="Over Drop").type = 'OVER_DROP' - layout.operator("sequencer.effect_strip_add", text="Plugin").type = 'PLUGIN' layout.operator("sequencer.effect_strip_add", text="Wipe").type = 'WIPE' layout.operator("sequencer.effect_strip_add", text="Glow").type = 'GLOW' layout.operator("sequencer.effect_strip_add", text="Transform").type = 'TRANSFORM' @@ -488,7 +487,7 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel, Panel): col = layout.column(align=True) if strip.type == 'SPEED': col.prop(strip, "multiply_speed") - elif strip.type in {'CROSS', 'GAMMA_CROSS', 'PLUGIN', 'WIPE'}: + elif strip.type in {'CROSS', 'GAMMA_CROSS', 'WIPE'}: col.prop(strip, "use_default_fade", "Default fade") if not strip.use_default_fade: col.prop(strip, "effect_fader", text="Effect fader") @@ -553,7 +552,6 @@ class SEQUENCER_PT_input(SequencerButtonsPanel, Panel): return strip.type in {'MOVIE', 'IMAGE', 'SCENE', 'MOVIECLIP', 'META', 'ADD', 'SUBTRACT', 'ALPHA_OVER', 'ALPHA_UNDER', 'CROSS', 'GAMMA_CROSS', 'MULTIPLY', 'OVER_DROP', - 'PLUGIN', 'WIPE', 'GLOW', 'TRANSFORM', 'MULTICAM', 'SPEED', 'ADJUSTMENT'} @@ -716,7 +714,6 @@ class SEQUENCER_PT_filter(SequencerButtonsPanel, Panel): return strip.type in {'MOVIE', 'IMAGE', 'SCENE', 'MOVIECLIP', 'META', 'ADD', 'SUBTRACT', 'ALPHA_OVER', 'ALPHA_UNDER', 'CROSS', 'GAMMA_CROSS', 'MULTIPLY', 'OVER_DROP', - 'PLUGIN', 'WIPE', 'GLOW', 'TRANSFORM', 'COLOR', 'MULTICAM', 'SPEED', 'ADJUSTMENT'} diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py index 7010c4f07cf..6ae66481fa1 100644 --- a/release/scripts/startup/bl_ui/space_userpref.py +++ b/release/scripts/startup/bl_ui/space_userpref.py @@ -785,8 +785,6 @@ class USERPREF_PT_file(Panel): sub = col1.column() sub.label(text="Fonts:") sub.label(text="Textures:") - sub.label(text="Texture Plugins:") - sub.label(text="Sequence Plugins:") sub.label(text="Render Output:") sub.label(text="Scripts:") sub.label(text="Sounds:") @@ -797,8 +795,6 @@ class USERPREF_PT_file(Panel): sub = col1.column() sub.prop(paths, "font_directory", text="") sub.prop(paths, "texture_directory", text="") - sub.prop(paths, "texture_plugin_directory", text="") - sub.prop(paths, "sequence_plugin_directory", text="") sub.prop(paths, "render_output_directory", text="") sub.prop(paths, "script_directory", text="") sub.prop(paths, "sound_directory", text="") diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py index 31ef6b79be3..9cf52056875 100644 --- a/release/scripts/startup/bl_ui/space_view3d.py +++ b/release/scripts/startup/bl_ui/space_view3d.py @@ -131,7 +131,7 @@ class ShowHideMenu(): layout = self.layout layout.operator("%s.reveal" % self._operator_name, text="Show Hidden") - layout.operator("%s.hide" % self._operator_name, text="Hide Selected") + layout.operator("%s.hide" % self._operator_name, text="Hide Selected").unselected = False layout.operator("%s.hide" % self._operator_name, text="Hide Unselected").unselected = True @@ -1602,7 +1602,7 @@ class VIEW3D_MT_edit_mesh_specials(Menu): layout.operator("mesh.subdivide", text="Subdivide Smooth").smoothness = 1.0 layout.operator("mesh.merge", text="Merge...") layout.operator("mesh.remove_doubles") - layout.operator("mesh.hide", text="Hide") + layout.operator("mesh.hide", text="Hide").unselected = False layout.operator("mesh.reveal", text="Reveal") layout.operator("mesh.select_all", text="Select Inverse").action = 'INVERT' layout.operator("mesh.flip_normals") @@ -2036,7 +2036,7 @@ class VIEW3D_MT_edit_meta_showhide(Menu): layout = self.layout layout.operator("mball.reveal_metaelems", text="Show Hidden") - layout.operator("mball.hide_metaelems", text="Hide Selected") + layout.operator("mball.hide_metaelems", text="Hide Selected").unselected = False layout.operator("mball.hide_metaelems", text="Hide Unselected").unselected = True diff --git a/release/scripts/startup/keyingsets_builtins.py b/release/scripts/startup/keyingsets_builtins.py index 3527ece2bd3..b7693880f9c 100644 --- a/release/scripts/startup/keyingsets_builtins.py +++ b/release/scripts/startup/keyingsets_builtins.py @@ -45,7 +45,7 @@ ANIM_KS_ROTATION_ID = "Rotation" ANIM_KS_SCALING_ID = "Scaling" ANIM_KS_LOC_ROT_SCALE_ID = "LocRotScale" ANIM_KS_AVAILABLE_ID = "Available" -ANIM_KS_WHOLE_CHARACTER_ID = "Whole Character" +ANIM_KS_WHOLE_CHARACTER_ID = "WholeCharacter" # Location diff --git a/release/scripts/templates/operator_modal_timer.py b/release/scripts/templates/operator_modal_timer.py index ec47390da81..ebbf6395df5 100644 --- a/release/scripts/templates/operator_modal_timer.py +++ b/release/scripts/templates/operator_modal_timer.py @@ -14,7 +14,7 @@ class ModalTimerOperator(bpy.types.Operator): if event.type == 'TIMER': # change theme color, silly! - color = context.user_preferences.themes[0].view_3d.back + color = context.user_preferences.themes[0].view_3d.space.back color.s = 1.0 color.h += 0.01 diff --git a/release/windows/installer/00.sconsblender.nsi b/release/windows/installer/00.sconsblender.nsi index eb9b6629108..f6e5b783faa 100644 --- a/release/windows/installer/00.sconsblender.nsi +++ b/release/windows/installer/00.sconsblender.nsi @@ -90,7 +90,6 @@ Function .onInit ${If} ${RunningX64} ${If} "[BITNESS]" == "32" - ${OrIf} "[BITNESS]" == "-mingw" StrCpy $INSTDIR "$PROGRAMFILES32\Blender Foundation\Blender" ; Can't use InstallDir inside Section ${ElseIf} "[BITNESS]" == "64" StrCpy $INSTDIR "$PROGRAMFILES64\Blender Foundation\Blender" diff --git a/source/blender/avi/intern/avi.c b/source/blender/avi/intern/avi.c index 59ce879520e..637d4be30fd 100644 --- a/source/blender/avi/intern/avi.c +++ b/source/blender/avi/intern/avi.c @@ -442,7 +442,9 @@ AviError AVI_open_movie (const char *name, AviMovie *movie) if (GET_FCC (movie->fp) != FCC("RIFF") || !(movie->size = GET_FCC (movie->fp))) + { return AVI_ERROR_FORMAT; + } movie->header = (AviMainHeader *) MEM_mallocN (sizeof (AviMainHeader), "movieheader"); @@ -1002,7 +1004,7 @@ AviError AVI_write_frame (AviMovie *movie, int frame_num, ...) movie->entries[frame_num * (movie->header->Streams+1) + stream + 1].ChunkId = chunk.fcc; movie->entries[frame_num * (movie->header->Streams+1) + stream + 1].Flags = AVIIF_KEYFRAME; - movie->entries[frame_num * (movie->header->Streams+1) + stream + 1].Offset = ftell(movie->fp)-12L-movie->movi_offset; + movie->entries[frame_num * (movie->header->Streams+1) + stream + 1].Offset = (int)(ftell(movie->fp) - 12L - movie->movi_offset); movie->entries[frame_num * (movie->header->Streams+1) + stream + 1].Size = chunk.size; /* Write the chunk */ @@ -1024,8 +1026,8 @@ AviError AVI_write_frame (AviMovie *movie, int frame_num, ...) movie->entries[frame_num * (movie->header->Streams+1)].ChunkId = FCC("rec "); movie->entries[frame_num * (movie->header->Streams+1)].Flags = AVIIF_LIST; - movie->entries[frame_num * (movie->header->Streams+1)].Offset = rec_off-8L-movie->movi_offset; - movie->entries[frame_num * (movie->header->Streams+1)].Size = ftell(movie->fp)-(rec_off+4L); + movie->entries[frame_num * (movie->header->Streams+1)].Offset = (int)(rec_off - 8L - movie->movi_offset); + movie->entries[frame_num * (movie->header->Streams+1)].Size = (int)(ftell(movie->fp) - (rec_off + 4L)); /* Update the record size */ fseek (movie->fp, rec_off, SEEK_SET); @@ -1044,7 +1046,7 @@ AviError AVI_close_compress (AviMovie *movie) int temp, movi_size, i; fseek (movie->fp, 0L, SEEK_END); - movi_size = ftell (movie->fp); + movi_size = (int)ftell(movie->fp); PUT_FCC ("idx1", movie->fp); PUT_FCCN ((movie->index_entries*(movie->header->Streams+1)*16), movie->fp); @@ -1052,7 +1054,7 @@ AviError AVI_close_compress (AviMovie *movie) for (temp=0; temp < movie->index_entries*(movie->header->Streams+1); temp++) awrite (movie, &movie->entries[temp], 1, sizeof(AviIndexEntry), movie->fp, AVI_INDEXE); - temp = ftell (movie->fp); + temp = (int)ftell(movie->fp); fseek (movie->fp, AVI_RIFF_SOFF, SEEK_SET); diff --git a/source/blender/avi/intern/codecs.c b/source/blender/avi/intern/codecs.c index 73af7097994..2c244177655 100644 --- a/source/blender/avi/intern/codecs.c +++ b/source/blender/avi/intern/codecs.c @@ -46,10 +46,12 @@ void *avi_format_convert (AviMovie *movie, int stream, void *buffer, AviFormat f return buffer; if (from != AVI_FORMAT_RGB24 && - to != AVI_FORMAT_RGB24) + to != AVI_FORMAT_RGB24) + { return avi_format_convert(movie, stream, - avi_format_convert (movie, stream, buffer, from, AVI_FORMAT_RGB24, size), - AVI_FORMAT_RGB24, to, size); + avi_format_convert(movie, stream, buffer, from, AVI_FORMAT_RGB24, size), + AVI_FORMAT_RGB24, to, size); + } switch (to) { case AVI_FORMAT_RGB24: diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h index e0fac79359d..14f5c27c3df 100644 --- a/source/blender/blenkernel/BKE_blender.h +++ b/source/blender/blenkernel/BKE_blender.h @@ -41,8 +41,8 @@ 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 262 -#define BLENDER_SUBVERSION 4 +#define BLENDER_VERSION 263 +#define BLENDER_SUBVERSION 0 #define BLENDER_MINVERSION 250 #define BLENDER_MINSUBVERSION 0 @@ -51,7 +51,7 @@ extern "C" { /* can be left blank, otherwise a,b,c... etc with no quotes */ #define BLENDER_VERSION_CHAR /* alpha/beta/rc/release, docs use this */ -#define BLENDER_VERSION_CYCLE rc +#define BLENDER_VERSION_CYCLE alpha extern char versionstr[]; /* from blender.c */ diff --git a/source/blender/blenkernel/BKE_curve.h b/source/blender/blenkernel/BKE_curve.h index fa3a1a6897a..3b9328ae1aa 100644 --- a/source/blender/blenkernel/BKE_curve.h +++ b/source/blender/blenkernel/BKE_curve.h @@ -53,72 +53,83 @@ struct Scene; #define CU_DO_TILT(cu, nu) (((nu->flag & CU_2D) && (cu->flag & CU_3D)==0) ? 0 : 1) #define CU_DO_RADIUS(cu, nu) ((CU_DO_TILT(cu, nu) || ((cu)->flag & CU_PATH_RADIUS) || (cu)->bevobj || (cu)->ext1!=0.0f || (cu)->ext2!=0.0f) ? 1:0) +/* ** Curve ** */ +void BKE_curve_unlink(struct Curve *cu); +void BKE_curve_free(struct Curve *cu); +void BKE_curve_editfont_free(struct Curve *cu); +struct Curve *BKE_curve_add(const char *name, int type); +struct Curve *BKE_curve_copy(struct Curve *cu); +void BKE_curve_make_local(struct Curve *cu); +short BKE_curve_type_get(struct Curve *cu); +void BKE_curve_type_test(struct Object *ob); +void BKE_curve_curve_dimension_update(struct Curve *cu); +void BKE_curve_tex_space_calc(struct Curve *cu); -void unlink_curve(struct Curve *cu); -void free_curve_editNurb_keyIndex(struct EditNurb *editnurb); -void free_curve_editNurb(struct Curve *cu); -void free_curve(struct Curve *cu); -void BKE_free_editfont(struct Curve *cu); -struct Curve *add_curve(const char *name, int type); -struct Curve *copy_curve(struct Curve *cu); -void make_local_curve(struct Curve *cu); -struct ListBase *curve_editnurbs(struct Curve *cu); -short curve_type(struct Curve *cu); -void test_curve_type(struct Object *ob); -void update_curve_dimension(struct Curve *cu ); -void tex_space_curve(struct Curve *cu); -int count_curveverts(struct ListBase *nurb); -int count_curveverts_without_handles(struct ListBase *nurb); -void freeNurb(struct Nurb *nu); -void freeNurblist(struct ListBase *lb); -struct Nurb *duplicateNurb(struct Nurb *nu); -void duplicateNurblist(struct ListBase *lb1, struct ListBase *lb2); -void test2DNurb(struct Nurb *nu); -void minmaxNurb(struct Nurb *nu, float *min, float *max); +int BKE_curve_minmax(struct Curve *cu, float min[3], float max[3]); +int BKE_curve_center_median(struct Curve *cu, float cent[3]); +int BKE_curve_center_bounds(struct Curve *cu, float cent[3]); +void BKE_curve_translate(struct Curve *cu, float offset[3], int do_keys); +void BKE_curve_delete_material_index(struct Curve *cu, int index); -void nurbs_knot_calc_u(struct Nurb *nu); -void nurbs_knot_calc_v(struct Nurb *nu); +ListBase *BKE_curve_nurbs_get(struct Curve *cu); -void makeNurbfaces(struct Nurb *nu, float *coord_array, int rowstride, int resolu, int resolv); -void makeNurbcurve(struct Nurb *nu, float *coord_array, float *tilt_array, float *radius_array, float *weight_array, int resolu, int stride); -void forward_diff_bezier(float q0, float q1, float q2, float q3, float *p, int it, int stride); -float *make_orco_curve(struct Scene *scene, struct Object *ob); -float *make_orco_surf(struct Object *ob); -void makebevelcurve(struct Scene *scene, struct Object *ob, struct ListBase *disp, int forRender); +float (*BKE_curve_vertexCos_get(struct Curve *cu, struct ListBase *lb, int *numVerts_r))[3]; +void BK_curve_vertexCos_apply(struct Curve *cu, struct ListBase *lb, float (*vertexCos)[3]); -void makeBevelList(struct Object *ob); +float (*BKE_curve_keyVertexCos_get(struct Curve *cu, struct ListBase *lb, float *key))[3]; +void BKE_curve_keyVertexTilts_apply(struct Curve *cu, struct ListBase *lb, float *key); -void calchandleNurb(struct BezTriple *bezt, struct BezTriple *prev, struct BezTriple *next, int mode); -void calchandlesNurb(struct Nurb *nu); -void testhandlesNurb(struct Nurb *nu); -void autocalchandlesNurb(struct Nurb *nu, int flag); -void autocalchandlesNurb_all(ListBase *editnurb, int flag); -void sethandlesNurb(ListBase *editnurb, short code); +void BKE_curve_editNurb_keyIndex_free(struct EditNurb *editnurb); +void BKE_curve_editNurb_free(struct Curve *cu); +struct ListBase *BKE_curve_editNurbs_get(struct Curve *cu); -void switchdirectionNurb(struct Nurb *nu); +float *BKE_curve_make_orco(struct Scene *scene, struct Object *ob); +float *BKE_curve_surf_make_orco(struct Object *ob); -void addNurbPoints(struct Nurb *nu, int number); -void addNurbPointsBezier(struct Nurb *nu, int number); +void BKE_curve_bevelList_make(struct Object *ob); +void BKE_curve_bevel_make(struct Scene *scene, struct Object *ob, struct ListBase *disp, int forRender); -float (*curve_getVertexCos(struct Curve *cu, struct ListBase *lb, int *numVerts_r))[3]; -void curve_applyVertexCos(struct Curve *cu, struct ListBase *lb, float (*vertexCos)[3]); +void BKE_curve_forward_diff_bezier(float q0, float q1, float q2, float q3, float *p, int it, int stride); -float (*curve_getKeyVertexCos(struct Curve *cu, struct ListBase *lb, float *key))[3]; -void curve_applyKeyVertexTilts(struct Curve *cu, struct ListBase *lb, float *key); +/* ** Nurbs ** */ + +int BKE_nurbList_verts_count(struct ListBase *nurb); +int BKE_nurbList_verts_count_without_handles(struct ListBase *nurb); + +void BKE_nurbList_free(struct ListBase *lb); +void BKE_nurbList_duplicate(struct ListBase *lb1, struct ListBase *lb2); +void BKE_nurbList_handles_set(struct ListBase *editnurb, short code); + +void BKE_nurbList_handles_autocalc(ListBase *editnurb, int flag); + +void BKE_nurb_free(struct Nurb *nu); +struct Nurb *BKE_nurb_duplicate(struct Nurb *nu); + +void BKE_nurb_test2D(struct Nurb *nu); +void BKE_nurb_minmax(struct Nurb *nu, float *min, float *max); + +void BKE_nurb_makeFaces(struct Nurb *nu, float *coord_array, int rowstride, int resolu, int resolv); +void BKE_nurb_makeCurve(struct Nurb *nu, float *coord_array, float *tilt_array, float *radius_array, float *weight_array, int resolu, int stride); + +void BKE_nurb_knot_calc_u(struct Nurb *nu); +void BKE_nurb_knot_calc_v(struct Nurb *nu); /* nurb checks if they can be drawn, also clamp order func */ -int check_valid_nurb_u(struct Nurb *nu); -int check_valid_nurb_v(struct Nurb *nu); +int BKE_nurb_check_valid_u(struct Nurb *nu); +int BKE_nurb_check_valid_v(struct Nurb *nu); -int clamp_nurb_order_u(struct Nurb *nu); -int clamp_nurb_order_v(struct Nurb *nu); +int BKE_nurb_order_clamp_u(struct Nurb *nu); +int BKE_nurb_order_clamp_v(struct Nurb *nu); -ListBase *BKE_curve_nurbs(struct Curve *cu); +void BKE_nurb_direction_switch(struct Nurb *nu); + +void BKE_nurb_points_add(struct Nurb *nu, int number); +void BKE_nurb_bezierPoints_add(struct Nurb *nu, int number); + +void BKE_nurb_handle_calc(struct BezTriple *bezt, struct BezTriple *prev, struct BezTriple *next, int mode); + +void BKE_nurb_handles_calc(struct Nurb *nu); +void BKE_nurb_handles_autocalc(struct Nurb *nu, int flag); +void BKE_nurb_handles_test(struct Nurb *nu); -int minmax_curve(struct Curve *cu, float min[3], float max[3]); -int curve_center_median(struct Curve *cu, float cent[3]); -int curve_center_bounds(struct Curve *cu, float cent[3]); -void curve_translate(struct Curve *cu, float offset[3], int do_keys); -void curve_delete_material_index(struct Curve *cu, int index); #endif - diff --git a/source/blender/blenkernel/BKE_lattice.h b/source/blender/blenkernel/BKE_lattice.h index 29c78510fd8..a0075c4d6be 100644 --- a/source/blender/blenkernel/BKE_lattice.h +++ b/source/blender/blenkernel/BKE_lattice.h @@ -49,7 +49,7 @@ void make_local_lattice(struct Lattice *lt); void calc_lat_fudu(int flag, int res, float *fu, float *du); void init_latt_deform(struct Object *oblatt, struct Object *ob); -void calc_latt_deform(struct Object *, float *co, float weight); +void calc_latt_deform(struct Object *, float co[3], float weight); void end_latt_deform(struct Object *); int object_deform_mball(struct Object *ob, struct ListBase *dispbase); diff --git a/source/blender/blenkernel/BKE_mball.h b/source/blender/blenkernel/BKE_mball.h index fafd2a3d30e..018ee7f6c94 100644 --- a/source/blender/blenkernel/BKE_mball.h +++ b/source/blender/blenkernel/BKE_mball.h @@ -37,147 +37,30 @@ struct Object; struct Scene; struct MetaElem; -typedef struct point { /* a three-dimensional point */ - float x, y, z; /* its coordinates */ -} MB_POINT; +void BKE_metaball_unlink(struct MetaBall *mb); +void BKE_metaball_free(struct MetaBall *mb); +struct MetaBall *BKE_metaball_add(const char *name); +struct MetaBall *BKE_metaball_copy(struct MetaBall *mb); -typedef struct vertex { /* surface vertex */ - MB_POINT position, normal; /* position and surface normal */ -} VERTEX; +void BKE_metaball_make_local(struct MetaBall *mb); -typedef struct vertices { /* list of vertices in polygonization */ - int count, max; /* # vertices, max # allowed */ - VERTEX *ptr; /* dynamically allocated */ -} VERTICES; +void BKE_metaball_cubeTable_free(void); -typedef struct corner { /* corner of a cube */ - int i, j, k; /* (i, j, k) is index within lattice */ - float x, y, z, value; /* location and function value */ - struct corner *next; -} CORNER; +void BKE_metaball_polygonize(struct Scene *scene, struct Object *ob, struct ListBase *dispbase); +int BKE_metaball_is_basis_for(struct Object *ob1, struct Object *ob2); +int BKE_metaball_is_basis(struct Object *ob); +struct Object *BKE_metaball_basis_find(struct Scene *scene, struct Object *ob); -typedef struct cube { /* partitioning cell (cube) */ - int i, j, k; /* lattice location of cube */ - CORNER *corners[8]; /* eight corners */ -} CUBE; +void BKE_metaball_tex_space_calc(struct Object *ob); +float *BKE_metaball_make_orco(struct Object *ob, struct ListBase *dispbase); -typedef struct cubes { /* linked list of cubes acting as stack */ - CUBE cube; /* a single cube */ - struct cubes *next; /* remaining elements */ -} CUBES; - -typedef struct centerlist { /* list of cube locations */ - int i, j, k; /* cube location */ - struct centerlist *next; /* remaining elements */ -} CENTERLIST; - -typedef struct edgelist { /* list of edges */ - int i1, j1, k1, i2, j2, k2; /* edge corner ids */ - int vid; /* vertex id */ - struct edgelist *next; /* remaining elements */ -} EDGELIST; - -typedef struct intlist { /* list of integers */ - int i; /* an integer */ - struct intlist *next; /* remaining elements */ -} INTLIST; - -typedef struct intlists { /* list of list of integers */ - INTLIST *list; /* a list of integers */ - struct intlists *next; /* remaining elements */ -} INTLISTS; - -typedef struct process { /* parameters, function, storage */ - /* what happens here? floats, I think. */ - /* float (*function)(void); */ /* implicit surface function */ - float (*function)(float, float, float); - float size, delta; /* cube size, normal delta */ - int bounds; /* cube range within lattice */ - CUBES *cubes; /* active cubes */ - VERTICES vertices; /* surface vertices */ - CENTERLIST **centers; /* cube center hash table */ - CORNER **corners; /* corner value hash table */ - EDGELIST **edges; /* edge and vertex id hash table */ -} PROCESS; - -/* dividing scene using octal tree makes polygonisation faster */ -typedef struct ml_pointer { - struct ml_pointer *next, *prev; - struct MetaElem *ml; -} ml_pointer; - -typedef struct octal_node { - struct octal_node *nodes[8]; /* children of current node */ - struct octal_node *parent; /* parent of current node */ - struct ListBase elems; /* ListBase of MetaElem pointers (ml_pointer) */ - float x_min, y_min, z_min; /* 1st border point */ - float x_max, y_max, z_max; /* 7th border point */ - float x,y,z; /* center of node */ - int pos, neg; /* number of positive and negative MetaElements in the node */ - int count; /* number of MetaElems, which belongs to the node */ -} octal_node; - -typedef struct octal_tree { - struct octal_node *first; /* first node */ - int pos, neg; /* number of positive and negative MetaElements in the scene */ - short depth; /* number of scene subdivision */ -} octal_tree; - -struct pgn_elements { - struct pgn_elements *next, *prev; - char *data; -}; - -octal_node* find_metaball_octal_node(octal_node *node, float x, float y, float z, short depth); - -void freepolygonize(PROCESS *p); -void docube(CUBE *cube, PROCESS *p, struct MetaBall *mb); -void testface(int i, int j, int k, CUBE* old, int bit, int c1, int c2, int c3, int c4, PROCESS *p); -CORNER *setcorner (PROCESS* p, int i, int j, int k); -int vertid (CORNER *c1, CORNER *c2, PROCESS *p, struct MetaBall *mb); -int setcenter(CENTERLIST *table[], int i, int j, int k); -int otherface (int edge, int face); -void makecubetable (void); -void setedge (EDGELIST *table[], int i1, int j1, int k1, int i2, int j2, int k2, int vid); -int getedge (EDGELIST *table[], int i1, int j1, int k1, int i2, int j2, int k2); -void addtovertices (VERTICES *vertices, VERTEX v); -void vnormal (MB_POINT *point, PROCESS *p, MB_POINT *v); -void converge (MB_POINT *p1, MB_POINT *p2, float v1, float v2, float (*function)(float, float, float), MB_POINT *p, struct MetaBall *mb, int f); -void add_cube(PROCESS *mbproc, int i, int j, int k, int count); -void find_first_points(PROCESS *mbproc, struct MetaBall *mb, int a); - -void fill_metaball_octal_node(octal_node *node, struct MetaElem *ml, short i); -void subdivide_metaball_octal_node(octal_node *node, float size_x, float size_y, float size_z, short depth); -void free_metaball_octal_node(octal_node *node); -void init_metaball_octal_tree(int depth); -void polygonize(PROCESS *mbproc, struct MetaBall *mb); -float init_meta(struct Scene *scene, struct Object *ob); - -void unlink_mball(struct MetaBall *mb); -void free_mball(struct MetaBall *mb); -struct MetaBall *add_mball(const char *name); -struct MetaBall *copy_mball(struct MetaBall *mb); -void make_local_mball(struct MetaBall *mb); -struct MetaElem *add_metaball_element(struct MetaBall *mb, const int type); -void tex_space_mball(struct Object *ob); -float *make_orco_mball(struct Object *ob, struct ListBase *dispbase); -void copy_mball_properties(struct Scene *scene, struct Object *active_object); -struct Object *find_basis_mball(struct Scene *scene, struct Object *ob); -int is_basis_mball(struct Object *ob); -int is_mball_basis_for(struct Object *ob1, struct Object *ob2); -void metaball_polygonize(struct Scene *scene, struct Object *ob, struct ListBase *dispbase); -void calc_mballco(struct MetaElem *ml, float vec[3]); -float densfunc(struct MetaElem *ball, float x, float y, float z); -float metaball(float x, float y, float z); -void accum_mballfaces(int i1, int i2, int i3, int i4); -void *new_pgn_element(int size); -int nextcwedge (int edge, int face); -void BKE_freecubetable(void); +void BKE_metaball_properties_copy(struct Scene *scene, struct Object *active_object); int BKE_metaball_minmax(struct MetaBall *mb, float min[3], float max[3]); int BKE_metaball_center_median(struct MetaBall *mb, float cent[3]); int BKE_metaball_center_bounds(struct MetaBall *mb, float cent[3]); void BKE_metaball_translate(struct MetaBall *mb, float offset[3]); -#endif +struct MetaElem *BKE_metaball_element_add(struct MetaBall *mb, const int type); +#endif diff --git a/source/blender/blenkernel/BKE_movieclip.h b/source/blender/blenkernel/BKE_movieclip.h index d7b2f271a83..29924542494 100644 --- a/source/blender/blenkernel/BKE_movieclip.h +++ b/source/blender/blenkernel/BKE_movieclip.h @@ -40,10 +40,10 @@ struct MovieClipUser; struct MovieTrackingTrack; struct MovieDistortion; -void free_movieclip(struct MovieClip *clip); -void unlink_movieclip(struct Main *bmain, struct MovieClip *clip); +void BKE_movieclip_free(struct MovieClip *clip); +void BKE_movieclip_unlink(struct Main *bmain, struct MovieClip *clip); -struct MovieClip *BKE_add_movieclip_file(const char *name); +struct MovieClip *BKE_movieclip_file_add(const char *name); void BKE_movieclip_reload(struct MovieClip *clip); struct ImBuf *BKE_movieclip_get_ibuf(struct MovieClip *clip, struct MovieClipUser *user); diff --git a/source/blender/blenkernel/BKE_report.h b/source/blender/blenkernel/BKE_report.h index f6307806491..aa625fab3b2 100644 --- a/source/blender/blenkernel/BKE_report.h +++ b/source/blender/blenkernel/BKE_report.h @@ -54,7 +54,11 @@ __attribute__ ((format (printf, 3, 4))) ; void BKE_reports_prepend(ReportList *reports, const char *prepend); -void BKE_reports_prependf(ReportList *reports, const char *prepend, ...); +void BKE_reports_prependf(ReportList *reports, const char *prepend, ...) +#ifdef __GNUC__ +__attribute__ ((format (printf, 2, 3))) +#endif +; ReportType BKE_report_print_level(ReportList *reports); void BKE_report_print_level_set(ReportList *reports, ReportType level); diff --git a/source/blender/blenkernel/BKE_tessmesh.h b/source/blender/blenkernel/BKE_tessmesh.h index d9d2c21e2b3..3a806651d61 100644 --- a/source/blender/blenkernel/BKE_tessmesh.h +++ b/source/blender/blenkernel/BKE_tessmesh.h @@ -23,6 +23,7 @@ #ifndef __BKE_TESSMESH_H__ #define __BKE_TESSMESH_H__ +#include "BKE_customdata.h" #include "bmesh.h" struct BMesh; @@ -58,7 +59,7 @@ typedef struct BMEditMesh { /*derivedmesh stuff*/ struct DerivedMesh *derivedFinal, *derivedCage; - int lastDataMask; + CustomDataMask lastDataMask; /* index tables, to map indices to elements via * EDBM_index_arrays_init and associated functions. don't diff --git a/source/blender/blenkernel/intern/CCGSubSurf.c b/source/blender/blenkernel/intern/CCGSubSurf.c index f5718974f9f..53e4a973cd4 100644 --- a/source/blender/blenkernel/intern/CCGSubSurf.c +++ b/source/blender/blenkernel/intern/CCGSubSurf.c @@ -1272,7 +1272,9 @@ CCGError ccgSubSurf_syncFace(CCGSubSurf *ss, CCGFaceHDL fHDL, int numVerts, CCGV if (f->numVerts != numVerts || memcmp(FACE_getVerts(f), ss->tempVerts, sizeof(*ss->tempVerts) * numVerts) || memcmp(FACE_getEdges(f), ss->tempEdges, sizeof(*ss->tempEdges) * numVerts)) + { topologyChanged = 1; + } } if (!f || topologyChanged) { diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index c28958d5b0d..0fd030be39c 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -1223,7 +1223,7 @@ void DM_update_weight_mcol(Object *ob, DerivedMesh *dm, int const draw_flag, for (i=0; inumPolyData; i++, mp++) { ml = mloop + mp->loopstart; - BLI_array_growitems(wtcol_l, mp->totloop); + BLI_array_grow_items(wtcol_l, mp->totloop); for (j = 0; j < mp->totloop; j++, ml++, totloop++) { copy_v4_v4_char((char *)&wtcol_l[totloop], (char *)&wtcol_v[4 * ml->v]); @@ -2279,8 +2279,10 @@ DerivedMesh *editbmesh_get_derived_cage_and_final(Scene *scene, Object *obedit, * the data we need, rebuild the derived mesh */ if (!em->derivedCage || - (em->lastDataMask & dataMask) != dataMask) + (em->lastDataMask & dataMask) != dataMask) + { editbmesh_build_data(scene, obedit, em, dataMask); + } *final_r = em->derivedFinal; return em->derivedCage; @@ -2292,8 +2294,10 @@ DerivedMesh *editbmesh_get_derived_cage(Scene *scene, Object *obedit, BMEditMesh * the data we need, rebuild the derived mesh */ if (!em->derivedCage || - (em->lastDataMask & dataMask) != dataMask) + (em->lastDataMask & dataMask) != dataMask) + { editbmesh_build_data(scene, obedit, em, dataMask); + } return em->derivedCage; } @@ -2701,8 +2705,7 @@ void DM_calc_auto_bump_scale(DerivedMesh *dm) if (nr_tris_to_pile==1 || nr_tris_to_pile==2) { const int indices[] = {offs+0, offs+1, offs+2, offs+0, offs+2, (offs+3)&0x3 }; int t; - for ( t=0; ttype != OB_CURVE) return; cu= ob->data; - nurbs= BKE_curve_nurbs(cu); + nurbs= BKE_curve_nurbs_get(cu); nu= nurbs->first; if (cu->path) free_path(cu->path); @@ -1350,9 +1350,11 @@ static void new_particle_duplilist(ListBase *lb, ID *id, Scene *scene, Object *p /* some hair paths might be non-existent so they can't be used for duplication */ if (hair && - ((a < totpart && psys->pathcache[a]->steps < 0) || - (a >= totpart && psys->childcache[a-totpart]->steps < 0))) + ((a < totpart && psys->pathcache[a]->steps < 0) || + (a >= totpart && psys->childcache[a-totpart]->steps < 0))) + { continue; + } if (part->ren_as==PART_DRAW_GR) { /* prevent divide by zero below [#28336] */ diff --git a/source/blender/blenkernel/intern/anim_sys.c b/source/blender/blenkernel/intern/anim_sys.c index fc58799eb18..be53e3ddcba 100644 --- a/source/blender/blenkernel/intern/anim_sys.c +++ b/source/blender/blenkernel/intern/anim_sys.c @@ -1250,8 +1250,7 @@ static void animsys_evaluate_fcurves (PointerRNA *ptr, ListBase *list, AnimMappe FCurve *fcu; /* calculate then execute each curve */ - for (fcu= list->first; fcu; fcu= fcu->next) - { + for (fcu= list->first; fcu; fcu= fcu->next) { /* check if this F-Curve doesn't belong to a muted group */ if ((fcu->grp == NULL) || (fcu->grp->flag & AGRP_MUTED)==0) { /* check if this curve should be skipped */ @@ -1274,8 +1273,7 @@ static void animsys_evaluate_drivers (PointerRNA *ptr, AnimData *adt, float ctim /* drivers are stored as F-Curves, but we cannot use the standard code, as we need to check if * the depsgraph requested that this driver be evaluated... */ - for (fcu= adt->drivers.first; fcu; fcu= fcu->next) - { + for (fcu= adt->drivers.first; fcu; fcu= fcu->next) { ChannelDriver *driver= fcu->driver; short ok= 0; @@ -1351,8 +1349,7 @@ void animsys_evaluate_action_group (PointerRNA *ptr, bAction *act, bActionGroup return; /* calculate then execute each curve */ - for (fcu= agrp->channels.first; (fcu) && (fcu->grp == agrp); fcu= fcu->next) - { + for (fcu= agrp->channels.first; (fcu) && (fcu->grp == agrp); fcu= fcu->next) { /* check if this curve should be skipped */ if ((fcu->flag & (FCURVE_MUTED|FCURVE_DISABLED)) == 0) { calculate_fcurve(fcu, ctime); @@ -1968,8 +1965,7 @@ void nladata_flush_channels (ListBase *channels) float value= nec->value; /* write values - see animsys_write_rna_setting() to sync the code */ - switch (RNA_property_type(prop)) - { + switch (RNA_property_type(prop)) { case PROP_BOOLEAN: if (RNA_property_array_length(ptr, prop)) RNA_property_boolean_set_index(ptr, prop, array_index, ANIMSYS_FLOAT_AS_BOOL(value)); @@ -2171,7 +2167,7 @@ static void animsys_evaluate_overrides (PointerRNA *ptr, AnimData *adt) * * Current Status: * - Currently (as of September 2009), overrides we haven't needed to (fully) implement overrides. - * However, the code fo this is relatively harmless, so is left in the code for now. + * However, the code for this is relatively harmless, so is left in the code for now. */ /* Evaluation loop for evaluation animation data @@ -2217,7 +2213,9 @@ void BKE_animsys_evaluate_animdata (Scene *scene, ID *id, AnimData *adt, float c * or be layered on top of existing animation data. * - Drivers should be in the appropriate order to be evaluated without problems... */ - if ((recalc & ADT_RECALC_DRIVERS) /*&& (adt->recalc & ADT_RECALC_DRIVERS)*/) // XXX for now, don't check yet, as depsgraph hasn't been updated + if ((recalc & ADT_RECALC_DRIVERS) + /* XXX for now, don't check yet, as depsgraph hasn't been updated */ + /* && (adt->recalc & ADT_RECALC_DRIVERS)*/) { animsys_evaluate_drivers(&id_ptr, adt, ctime); } diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c index 0f3e27a9b6e..d1d6833e903 100644 --- a/source/blender/blenkernel/intern/armature.c +++ b/source/blender/blenkernel/intern/armature.c @@ -566,13 +566,13 @@ Mat4 *b_bone_spline_setup(bPoseChannel *pchan, int rest) if (bone->segments > MAX_BBONE_SUBDIV) bone->segments = MAX_BBONE_SUBDIV; - forward_diff_bezier(0.0, h1[0], h2[0], 0.0, data[0], + BKE_curve_forward_diff_bezier(0.0, h1[0], h2[0], 0.0, data[0], MAX_BBONE_SUBDIV, 4*sizeof(float)); - forward_diff_bezier(0.0, h1[1], length + h2[1], length, data[0]+1, + BKE_curve_forward_diff_bezier(0.0, h1[1], length + h2[1], length, data[0]+1, MAX_BBONE_SUBDIV, 4*sizeof(float)); - forward_diff_bezier(0.0, h1[2], h2[2], 0.0, data[0]+2, + BKE_curve_forward_diff_bezier(0.0, h1[2], h2[2], 0.0, data[0]+2, MAX_BBONE_SUBDIV, 4*sizeof(float)); - forward_diff_bezier(roll1, roll1 + 0.390464f*(roll2-roll1), roll2 - 0.390464f*(roll2-roll1), roll2, data[0]+3, + BKE_curve_forward_diff_bezier(roll1, roll1 + 0.390464f*(roll2-roll1), roll2 - 0.390464f*(roll2-roll1), roll2, data[0]+3, MAX_BBONE_SUBDIV, 4*sizeof(float)); equalize_bezier(data[0], bone->segments); /* note: does stride 4! */ @@ -1372,7 +1372,7 @@ void armature_mat_pose_to_bone_ex(Object *ob, bPoseChannel *pchan, float inmat[] /* same as object_mat3_to_rot() */ void pchan_mat3_to_rot(bPoseChannel *pchan, float mat[][3], short use_compat) { - switch(pchan->rotmode) { + switch (pchan->rotmode) { case ROT_MODE_QUAT: mat3_to_quat(pchan->quat, mat); break; diff --git a/source/blender/blenkernel/intern/boids.c b/source/blender/blenkernel/intern/boids.c index a556c99dc7d..fbcabccd2b9 100644 --- a/source/blender/blenkernel/intern/boids.c +++ b/source/blender/blenkernel/intern/boids.c @@ -962,7 +962,7 @@ void boid_brain(BoidBrainData *bbd, int p, ParticleData *pa) set_boid_values(&val, bbd->part->boids, pa); /* go through rules */ - switch(state->ruleset_type) { + switch (state->ruleset_type) { case eBoidRulesetType_Fuzzy: { for (rule = state->rules.first; rule; rule = rule->next) { @@ -1258,7 +1258,7 @@ void boid_body(BoidBrainData *bbd, ParticleData *pa) bpa->ground = boid_find_ground(bbd, pa, ground_co, ground_nor); /* change modes, constrain movement & keep track of down vector */ - switch(bpa->data.mode) { + switch (bpa->data.mode) { case eBoidMode_InAir: { float grav[3]; @@ -1437,7 +1437,7 @@ BoidRule *boid_new_rule(int type) if (type <= 0) return NULL; - switch(type) { + switch (type) { case eBoidRuleType_Goal: case eBoidRuleType_Avoid: rule = MEM_callocN(sizeof(BoidRuleGoalAvoid), "BoidRuleGoalAvoid"); diff --git a/source/blender/blenkernel/intern/brush.c b/source/blender/blenkernel/intern/brush.c index e7ba09d3959..3df6de2fd24 100644 --- a/source/blender/blenkernel/intern/brush.c +++ b/source/blender/blenkernel/intern/brush.c @@ -337,7 +337,7 @@ void brush_reset_sculpt(Brush *br) brush_set_defaults(br); brush_curve_preset(br, CURVE_PRESET_SMOOTH); - switch(br->sculpt_tool) { + switch (br->sculpt_tool) { case SCULPT_TOOL_CLAY: br->flag |= BRUSH_FRONTFACE; break; diff --git a/source/blender/blenkernel/intern/bvhutils.c b/source/blender/blenkernel/intern/bvhutils.c index 009b7ca7f99..df80ce6e87c 100644 --- a/source/blender/blenkernel/intern/bvhutils.c +++ b/source/blender/blenkernel/intern/bvhutils.c @@ -649,8 +649,7 @@ BVHTree* bvhtree_from_mesh_edges(BVHTreeFromMesh *data, DerivedMesh *mesh, float BVHTree *tree = bvhcache_find(&mesh->bvhCache, BVHTREE_FROM_EDGES); //Not in cache - if (tree == NULL) - { + if (tree == NULL) { int i; int numEdges= mesh->getNumEdges(mesh); MVert *vert = mesh->getVertDataArray(mesh, CD_MVERT); @@ -675,8 +674,7 @@ BVHTree* bvhtree_from_mesh_edges(BVHTreeFromMesh *data, DerivedMesh *mesh, float } } } - else - { + else { // printf("BVHTree is already build, using cached tree\n"); } diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index 474aa84fec6..4de7df098c3 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -230,7 +230,7 @@ static int can_pbvh_draw(Object *ob, DerivedMesh *dm) int deformed= 0; /* active modifiers means extra deformation, which can't be handled correct - * on bith of PBVH and sculpt "layer" levels, so use PBVH only for internal brush + * on birth of PBVH and sculpt "layer" levels, so use PBVH only for internal brush * stuff and show final DerivedMesh so user would see actual object shape */ deformed|= ob->sculpt->modifiers_active; diff --git a/source/blender/blenkernel/intern/cloth.c b/source/blender/blenkernel/intern/cloth.c index a0c273cf962..97baaad430b 100644 --- a/source/blender/blenkernel/intern/cloth.c +++ b/source/blender/blenkernel/intern/cloth.c @@ -191,8 +191,7 @@ static BVHTree *bvhselftree_build_from_cloth (ClothModifierData *clmd, float eps bvhtree = BLI_bvhtree_new(cloth->numverts, epsilon, 4, 6); // fill tree - for (i = 0; i < cloth->numverts; i++, verts++) - { + for (i = 0; i < cloth->numverts; i++, verts++) { copy_v3_v3(&co[0*3], verts->xold); BLI_bvhtree_insert(bvhtree, i, co, 1); @@ -232,8 +231,7 @@ static BVHTree *bvhtree_build_from_cloth (ClothModifierData *clmd, float epsilon bvhtree = BLI_bvhtree_new(cloth->numfaces, epsilon, 4, 26); // fill tree - for (i = 0; i < cloth->numfaces; i++, mfaces++) - { + for (i = 0; i < cloth->numfaces; i++, mfaces++) { copy_v3_v3(&co[0*3], verts[mfaces->v1].xold); copy_v3_v3(&co[1*3], verts[mfaces->v2].xold); copy_v3_v3(&co[2*3], verts[mfaces->v3].xold); @@ -266,10 +264,8 @@ void bvhtree_update_from_cloth(ClothModifierData *clmd, int moving) mfaces = cloth->mfaces; // update vertex position in bvh tree - if (verts && mfaces) - { - for (i = 0; i < cloth->numfaces; i++, mfaces++) - { + if (verts && mfaces) { + for (i = 0; i < cloth->numfaces; i++, mfaces++) { copy_v3_v3(&co[0*3], verts[mfaces->v1].txold); copy_v3_v3(&co[1*3], verts[mfaces->v2].txold); copy_v3_v3(&co[2*3], verts[mfaces->v3].txold); @@ -278,8 +274,7 @@ void bvhtree_update_from_cloth(ClothModifierData *clmd, int moving) copy_v3_v3(&co[3*3], verts[mfaces->v4].txold); // copy new locations into array - if (moving) - { + if (moving) { // update moving positions copy_v3_v3(&co_moving[0*3], verts[mfaces->v1].tx); copy_v3_v3(&co_moving[1*3], verts[mfaces->v2].tx); @@ -319,15 +314,12 @@ void bvhselftree_update_from_cloth(ClothModifierData *clmd, int moving) mfaces = cloth->mfaces; // update vertex position in bvh tree - if (verts && mfaces) - { - for (i = 0; i < cloth->numverts; i++, verts++) - { + if (verts && mfaces) { + for (i = 0; i < cloth->numverts; i++, verts++) { copy_v3_v3(&co[0*3], verts->txold); // copy new locations into array - if (moving) - { + if (moving) { // update moving positions copy_v3_v3(&co_moving[0*3], verts->tx); @@ -558,11 +550,9 @@ void cloth_free_modifier(ClothModifierData *clmd ) cloth = clmd->clothObject; - if ( cloth ) - { + if ( cloth ) { // If our solver provides a free function, call it - if ( solvers [clmd->sim_parms->solver_type].free ) - { + if ( solvers [clmd->sim_parms->solver_type].free ) { solvers [clmd->sim_parms->solver_type].free ( clmd ); } @@ -574,11 +564,9 @@ void cloth_free_modifier(ClothModifierData *clmd ) cloth->numverts = 0; // Free the springs. - if ( cloth->springs != NULL ) - { + if ( cloth->springs != NULL ) { LinkNode *search = cloth->springs; - while (search) - { + while (search) { ClothSpring *spring = search->link; MEM_freeN ( spring ); @@ -628,14 +616,12 @@ void cloth_free_modifier_extern ( ClothModifierData *clmd ) cloth = clmd->clothObject; - if ( cloth ) - { + if ( cloth ) { if (G.rt > 0) printf("cloth_free_modifier_extern in\n"); // If our solver provides a free function, call it - if ( solvers [clmd->sim_parms->solver_type].free ) - { + if ( solvers [clmd->sim_parms->solver_type].free ) { solvers [clmd->sim_parms->solver_type].free ( clmd ); } @@ -647,11 +633,9 @@ void cloth_free_modifier_extern ( ClothModifierData *clmd ) cloth->numverts = 0; // Free the springs. - if ( cloth->springs != NULL ) - { + if ( cloth->springs != NULL ) { LinkNode *search = cloth->springs; - while (search) - { + while (search) { ClothSpring *spring = search->link; MEM_freeN ( spring ); @@ -708,8 +692,7 @@ static void cloth_to_object (Object *ob, ClothModifierData *clmd, float (*verte /* inverse matrix is not uptodate... */ invert_m4_m4(ob->imat, ob->obmat); - for (i = 0; i < cloth->numverts; i++) - { + for (i = 0; i < cloth->numverts; i++) { copy_v3_v3 (vertexCos[i], cloth->verts[i].x); mul_m4_v3(ob->imat, vertexCos[i]); /* cloth is in global coords */ } @@ -749,17 +732,12 @@ static void cloth_apply_vgroup ( ClothModifierData *clmd, DerivedMesh *dm ) verts = clothObj->verts; - if (cloth_uses_vgroup(clmd)) - { - for ( i = 0; i < numverts; i++, verts++ ) - { + if (cloth_uses_vgroup(clmd)) { + for ( i = 0; i < numverts; i++, verts++ ) { dvert = dm->getVertData ( dm, i, CD_MDEFORMVERT ); - if ( dvert ) - { - for ( j = 0; j < dvert->totweight; j++ ) - { - if (( dvert->dw[j].def_nr == (clmd->sim_parms->vgroup_mass-1)) && (clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_GOAL )) - { + if ( dvert ) { + for ( j = 0; j < dvert->totweight; j++ ) { + if (( dvert->dw[j].def_nr == (clmd->sim_parms->vgroup_mass-1)) && (clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_GOAL )) { verts->goal = dvert->dw [j].weight; /* goalfac= 1.0f; */ /* UNUSED */ @@ -769,22 +747,18 @@ static void cloth_apply_vgroup ( ClothModifierData *clmd, DerivedMesh *dm ) */ verts->goal = ( float ) pow ( verts->goal , 4.0f ); - if ( verts->goal >=SOFTGOALSNAP ) - { + if ( verts->goal >=SOFTGOALSNAP ) { verts->flags |= CLOTH_VERT_FLAG_PINNED; } } - if (clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_SCALING ) - { - if ( dvert->dw[j].def_nr == (clmd->sim_parms->vgroup_struct-1)) - { + if (clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_SCALING ) { + if ( dvert->dw[j].def_nr == (clmd->sim_parms->vgroup_struct-1)) { verts->struct_stiff = dvert->dw [j].weight; verts->shear_stiff = dvert->dw [j].weight; } - if ( dvert->dw[j].def_nr == (clmd->sim_parms->vgroup_bend-1)) - { + if ( dvert->dw[j].def_nr == (clmd->sim_parms->vgroup_bend-1)) { verts->bend_stiff = dvert->dw [j].weight; } } @@ -812,8 +786,7 @@ static int cloth_from_object(Object *ob, ClothModifierData *clmd, DerivedMesh *d float maxdist = 0; // If we have a clothObject, free it. - if ( clmd->clothObject != NULL ) - { + if ( clmd->clothObject != NULL ) { cloth_free_modifier ( clmd ); if (G.rt > 0) printf("cloth_free_modifier cloth_from_object\n"); @@ -821,8 +794,7 @@ static int cloth_from_object(Object *ob, ClothModifierData *clmd, DerivedMesh *d // Allocate a new cloth object. clmd->clothObject = MEM_callocN ( sizeof ( Cloth ), "cloth" ); - if ( clmd->clothObject ) - { + if ( clmd->clothObject ) { clmd->clothObject->old_solver_type = 255; // clmd->clothObject->old_collision_type = 255; cloth = clmd->clothObject; @@ -851,10 +823,8 @@ static int cloth_from_object(Object *ob, ClothModifierData *clmd, DerivedMesh *d verts = clmd->clothObject->verts; // set initial values - for ( i = 0; i < dm->getNumVerts(dm); i++, verts++ ) - { - if (first) - { + for ( i = 0; i < dm->getNumVerts(dm); i++, verts++ ) { + if (first) { copy_v3_v3( verts->x, mvert[i].co ); mul_m4_v3( ob->obmat, verts->x ); @@ -891,18 +861,15 @@ static int cloth_from_object(Object *ob, ClothModifierData *clmd, DerivedMesh *d // has to be happen before springs are build! cloth_apply_vgroup (clmd, dm); - if ( !cloth_build_springs ( clmd, dm ) ) - { + if ( !cloth_build_springs ( clmd, dm ) ) { cloth_free_modifier ( clmd ); modifier_setError(&(clmd->modifier), "%s", TIP_("Can't build springs.")); printf("cloth_free_modifier cloth_build_springs\n"); return 0; } - for ( i = 0; i < dm->getNumVerts(dm); i++) - { - if ((!(cloth->verts[i].flags & CLOTH_VERT_FLAG_PINNED)) && (cloth->verts[i].goal > ALMOST_ZERO)) - { + for ( i = 0; i < dm->getNumVerts(dm); i++) { + if ((!(cloth->verts[i].flags & CLOTH_VERT_FLAG_PINNED)) && (cloth->verts[i].goal > ALMOST_ZERO)) { cloth_add_spring (clmd, i, i, 0.0, CLOTH_SPRING_TYPE_GOAL); } } @@ -917,8 +884,7 @@ static int cloth_from_object(Object *ob, ClothModifierData *clmd, DerivedMesh *d clmd->clothObject->bvhtree = bvhtree_build_from_cloth ( clmd, MAX2(clmd->coll_parms->epsilon, clmd->coll_parms->distance_repel) ); - for (i = 0; i < dm->getNumVerts(dm); i++) - { + for (i = 0; i < dm->getNumVerts(dm); i++) { maxdist = MAX2(maxdist, clmd->coll_parms->selfepsilon* ( cloth->verts[i].avg_spring_len*2.0f)); } @@ -937,8 +903,7 @@ static void cloth_from_mesh ( ClothModifierData *clmd, DerivedMesh *dm ) /* Allocate our vertices. */ clmd->clothObject->numverts = numverts; clmd->clothObject->verts = MEM_callocN ( sizeof ( ClothVertex ) * clmd->clothObject->numverts, "clothVertex" ); - if ( clmd->clothObject->verts == NULL ) - { + if ( clmd->clothObject->verts == NULL ) { cloth_free_modifier ( clmd ); modifier_setError(&(clmd->modifier), "%s", TIP_("Out of memory on allocating clmd->clothObject->verts.")); printf("cloth_free_modifier clmd->clothObject->verts\n"); @@ -948,8 +913,7 @@ static void cloth_from_mesh ( ClothModifierData *clmd, DerivedMesh *dm ) // save face information clmd->clothObject->numfaces = numfaces; clmd->clothObject->mfaces = MEM_callocN ( sizeof ( MFace ) * clmd->clothObject->numfaces, "clothMFaces" ); - if ( clmd->clothObject->mfaces == NULL ) - { + if ( clmd->clothObject->mfaces == NULL ) { cloth_free_modifier ( clmd ); modifier_setError(&(clmd->modifier), "%s", TIP_("Out of memory on allocating clmd->clothObject->mfaces.")); printf("cloth_free_modifier clmd->clothObject->mfaces\n"); @@ -977,8 +941,7 @@ int cloth_add_spring ( ClothModifierData *clmd, unsigned int indexA, unsigned in Cloth *cloth = clmd->clothObject; ClothSpring *spring = NULL; - if (cloth) - { + if (cloth) { // TODO: look if this spring is already there spring = ( ClothSpring * ) MEM_callocN ( sizeof ( ClothSpring ), "cloth spring" ); @@ -1006,11 +969,9 @@ static void cloth_free_errorsprings(Cloth *cloth, EdgeHash *UNUSED(edgehash), Li { unsigned int i = 0; - if ( cloth->springs != NULL ) - { + if ( cloth->springs != NULL ) { LinkNode *search = cloth->springs; - while (search) - { + while (search) { ClothSpring *spring = search->link; MEM_freeN ( spring ); @@ -1021,10 +982,8 @@ static void cloth_free_errorsprings(Cloth *cloth, EdgeHash *UNUSED(edgehash), Li cloth->springs = NULL; } - if (edgelist) - { - for ( i = 0; i < cloth->numverts; i++ ) - { + if (edgelist) { + for ( i = 0; i < cloth->numverts; i++ ) { BLI_linklist_free ( edgelist[i],NULL ); } @@ -1062,8 +1021,7 @@ static int cloth_build_springs ( ClothModifierData *clmd, DerivedMesh *dm ) if (!edgelist) return 0; - for ( i = 0; i < numverts; i++ ) - { + for ( i = 0; i < numverts; i++ ) { edgelist[i] = NULL; } @@ -1074,12 +1032,10 @@ static int cloth_build_springs ( ClothModifierData *clmd, DerivedMesh *dm ) edgehash = BLI_edgehash_new(); // structural springs - for ( i = 0; i < numedges; i++ ) - { + for ( i = 0; i < numedges; i++ ) { spring = ( ClothSpring * ) MEM_callocN ( sizeof ( ClothSpring ), "cloth spring" ); - if ( spring ) - { + if ( spring ) { spring->ij = MIN2(medge[i].v1, medge[i].v2); spring->kl = MAX2(medge[i].v2, medge[i].v1); spring->restlen = len_v3v3(cloth->verts[spring->kl].xrest, cloth->verts[spring->ij].xrest); @@ -1104,22 +1060,19 @@ static int cloth_build_springs ( ClothModifierData *clmd, DerivedMesh *dm ) if (struct_springs > 0) clmd->sim_parms->avg_spring_len /= struct_springs; - for (i = 0; i < numverts; i++) - { + for (i = 0; i < numverts; i++) { cloth->verts[i].avg_spring_len = cloth->verts[i].avg_spring_len * 0.49f / ((float)cloth->verts[i].spring_count); } // shear springs - for ( i = 0; i < numfaces; i++ ) - { + for ( i = 0; i < numfaces; i++ ) { // triangle faces already have shear springs due to structural geometry if ( !mface[i].v4 ) continue; spring = ( ClothSpring *) MEM_callocN ( sizeof ( ClothSpring ), "cloth spring" ); - if (!spring) - { + if (!spring) { cloth_free_errorsprings(cloth, edgehash, edgelist); return 0; } @@ -1140,8 +1093,7 @@ static int cloth_build_springs ( ClothModifierData *clmd, DerivedMesh *dm ) // if ( mface[i].v4 ) --> Quad face spring = ( ClothSpring * ) MEM_callocN ( sizeof ( ClothSpring ), "cloth spring" ); - if (!spring) - { + if (!spring) { cloth_free_errorsprings(cloth, edgehash, edgelist); return 0; } @@ -1162,15 +1114,13 @@ static int cloth_build_springs ( ClothModifierData *clmd, DerivedMesh *dm ) if (numfaces) { // bending springs search2 = cloth->springs; - for ( i = struct_springs; i < struct_springs+shear_springs; i++ ) - { + for ( i = struct_springs; i < struct_springs+shear_springs; i++ ) { if ( !search2 ) break; tspring2 = search2->link; search = edgelist[tspring2->kl]; - while ( search ) - { + while ( search ) { tspring = search->link; index2 = ( ( tspring->ij==tspring2->kl ) ? ( tspring->kl ) : ( tspring->ij ) ); @@ -1181,8 +1131,7 @@ static int cloth_build_springs ( ClothModifierData *clmd, DerivedMesh *dm ) { spring = ( ClothSpring * ) MEM_callocN ( sizeof ( ClothSpring ), "cloth spring" ); - if (!spring) - { + if (!spring) { cloth_free_errorsprings(cloth, edgehash, edgelist); return 0; } @@ -1212,16 +1161,14 @@ static int cloth_build_springs ( ClothModifierData *clmd, DerivedMesh *dm ) /* of the strands. -jahka */ search = cloth->springs; search2 = search->next; - while (search && search2) - { + while (search && search2) { tspring = search->link; tspring2 = search2->link; if (tspring->ij == tspring2->kl) { spring = ( ClothSpring * ) MEM_callocN ( sizeof ( ClothSpring ), "cloth spring" ); - if (!spring) - { + if (!spring) { cloth_free_errorsprings(cloth, edgehash, edgelist); return 0; } @@ -1242,13 +1189,12 @@ static int cloth_build_springs ( ClothModifierData *clmd, DerivedMesh *dm ) } /* insert other near springs in edgehash AFTER bending springs are calculated (for selfcolls) */ - for ( i = 0; i < numedges; i++ ) // struct springs + for (i = 0; i < numedges; i++) { /* struct springs */ BLI_edgehash_insert ( edgehash, MIN2(medge[i].v1, medge[i].v2), MAX2(medge[i].v2, medge[i].v1), NULL ); - - for ( i = 0; i < numfaces; i++ ) // edge springs - { - if (mface[i].v4) - { + } + + for (i = 0; i < numfaces; i++) { /* edge springs */ + if (mface[i].v4) { BLI_edgehash_insert ( edgehash, MIN2(mface[i].v1, mface[i].v3), MAX2(mface[i].v3, mface[i].v1), NULL ); BLI_edgehash_insert ( edgehash, MIN2(mface[i].v2, mface[i].v4), MAX2(mface[i].v2, mface[i].v4), NULL ); @@ -1258,10 +1204,8 @@ static int cloth_build_springs ( ClothModifierData *clmd, DerivedMesh *dm ) cloth->numsprings = struct_springs + shear_springs + bend_springs; - if ( edgelist ) - { - for ( i = 0; i < numverts; i++ ) - { + if ( edgelist ) { + for ( i = 0; i < numverts; i++ ) { BLI_linklist_free ( edgelist[i],NULL ); } diff --git a/source/blender/blenkernel/intern/collision.c b/source/blender/blenkernel/intern/collision.c index 7195fb9c425..264a251c317 100644 --- a/source/blender/blenkernel/intern/collision.c +++ b/source/blender/blenkernel/intern/collision.c @@ -80,8 +80,7 @@ void collision_move_object(CollisionModifierData *collmd, float step, float prev float tv[3] = {0, 0, 0}; unsigned int i = 0; - for ( i = 0; i < collmd->numverts; i++ ) - { + for ( i = 0; i < collmd->numverts; i++ ) { sub_v3_v3v3 ( tv, collmd->xnew[i].co, collmd->x[i].co ); VECADDS ( collmd->current_x[i].co, collmd->x[i].co, tv, prevstep ); VECADDS ( collmd->current_xnew[i].co, collmd->x[i].co, tv, step ); @@ -101,8 +100,7 @@ BVHTree *bvhtree_build_from_mvert ( MFace *mfaces, unsigned int numfaces, MVert tree = BLI_bvhtree_new ( numfaces*2, epsilon, 4, 26 ); // fill tree - for ( i = 0; i < numfaces; i++, tface++ ) - { + for ( i = 0; i < numfaces; i++, tface++ ) { copy_v3_v3 ( &co[0*3], x[tface->v1].co ); copy_v3_v3 ( &co[1*3], x[tface->v2].co ); copy_v3_v3 ( &co[2*3], x[tface->v3].co ); @@ -128,10 +126,8 @@ void bvhtree_update_from_mvert ( BVHTree * bvhtree, MFace *faces, int numfaces, if ( !bvhtree ) return; - if ( x ) - { - for ( i = 0; i < numfaces; i++, mfaces++ ) - { + if ( x ) { + for ( i = 0; i < numfaces; i++, mfaces++ ) { copy_v3_v3 ( &co[0*3], x[mfaces->v1].co ); copy_v3_v3 ( &co[1*3], x[mfaces->v2].co ); copy_v3_v3 ( &co[2*3], x[mfaces->v3].co ); @@ -139,8 +135,7 @@ void bvhtree_update_from_mvert ( BVHTree * bvhtree, MFace *faces, int numfaces, copy_v3_v3 ( &co[3*3], x[mfaces->v4].co ); // copy new locations into array - if ( moving && xnew ) - { + if ( moving && xnew ) { // update moving positions copy_v3_v3 ( &co_moving[0*3], xnew[mfaces->v1].co ); copy_v3_v3 ( &co_moving[1*3], xnew[mfaces->v2].co ); @@ -150,8 +145,7 @@ void bvhtree_update_from_mvert ( BVHTree * bvhtree, MFace *faces, int numfaces, ret = BLI_bvhtree_update_node ( bvhtree, i, co, co_moving, ( mfaces->v4 ? 4 : 3 ) ); } - else - { + else { ret = BLI_bvhtree_update_node ( bvhtree, i, co, NULL, ( mfaces->v4 ? 4 : 3 ) ); } @@ -465,8 +459,7 @@ static void collision_compute_barycentric ( float pv[3], float p1[3], float p2[3 d = ( a * c - b * b ); - if ( ABS ( d ) < (double)ALMOST_ZERO ) - { + if ( ABS ( d ) < (double)ALMOST_ZERO ) { *w1 = *w2 = *w3 = 1.0 / 3.0; return; } @@ -504,8 +497,7 @@ static int cloth_collision_response_static ( ClothModifierData *clmd, CollisionM cloth1 = clmd->clothObject; - for ( ; collpair != collision_end; collpair++ ) - { + for ( ; collpair != collision_end; collpair++ ) { // only handle static collisions here if ( collpair->flag & COLLISION_IN_FUTURE ) continue; @@ -540,8 +532,7 @@ static int cloth_collision_response_static ( ClothModifierData *clmd, CollisionM // TODO // If v_n_mag < 0 the edges are approaching each other. - if ( magrelVel > ALMOST_ZERO ) - { + if ( magrelVel > ALMOST_ZERO ) { // Calculate Impulse magnitude to stop all motion in normal direction. float magtangent = 0, repulse = 0, d = 0; double impulse = 0.0; @@ -558,8 +549,7 @@ static int cloth_collision_response_static ( ClothModifierData *clmd, CollisionM magtangent = MIN2 ( clmd->coll_parms->friction * 0.01f * magrelVel, sqrtf( dot_v3v3( vrel_t_pre,vrel_t_pre ) ) ); // Apply friction impulse. - if ( magtangent > ALMOST_ZERO ) - { + if ( magtangent > ALMOST_ZERO ) { normalize_v3( vrel_t_pre ); impulse = magtangent / ( 1.0f + w1*w1 + w2*w2 + w3*w3 ); // 2.0 * @@ -587,8 +577,7 @@ static int cloth_collision_response_static ( ClothModifierData *clmd, CollisionM spf = (float)clmd->sim_parms->stepsPerFrame / clmd->sim_parms->timescale; d = clmd->coll_parms->epsilon*8.0f/9.0f + epsilon2*8.0f/9.0f - collpair->distance; - if ( ( magrelVel < 0.1f*d*spf ) && ( d > ALMOST_ZERO ) ) - { + if ( ( magrelVel < 0.1f*d*spf ) && ( d > ALMOST_ZERO ) ) { repulse = MIN2 ( d*1.0f/spf, 0.1f*d*spf - magrelVel ); // stay on the safe side and clamp repulse @@ -666,8 +655,8 @@ static CollPair* cloth_edge_collision ( ModifierData *md1, ModifierData *md2, BVHTreeOverlap *overlap, CollPair *collpair, GHash *visithash, MemArena *arena) { - ClothModifierData *clmd = ( ClothModifierData * ) md1; - CollisionModifierData *collmd = ( CollisionModifierData * ) md2; + ClothModifierData *clmd = (ClothModifierData *)md1; + CollisionModifierData *collmd = (CollisionModifierData *) md2; MFace *face1=NULL, *face2 = NULL; ClothVertex *verts1 = clmd->clothObject->verts; double distance = 0; @@ -685,10 +674,8 @@ static CollPair* cloth_edge_collision ( ModifierData *md1, ModifierData *md2, face2 = & ( collmd->mfaces[overlap->indexB] ); // check all 4 possible collisions - for ( i = 0; i < 4; i++ ) - { - if ( i == 0 ) - { + for ( i = 0; i < 4; i++ ) { + if ( i == 0 ) { // fill faceA ap1 = face1->v1; ap2 = face1->v2; @@ -699,10 +686,8 @@ static CollPair* cloth_edge_collision ( ModifierData *md1, ModifierData *md2, bp2 = face2->v2; bp3 = face2->v3; } - else if ( i == 1 ) - { - if ( face1->v4 ) - { + else if ( i == 1 ) { + if ( face1->v4 ) { // fill faceA ap1 = face1->v1; ap2 = face1->v3; @@ -717,10 +702,8 @@ static CollPair* cloth_edge_collision ( ModifierData *md1, ModifierData *md2, continue; } } - if ( i == 2 ) - { - if ( face2->v4 ) - { + if ( i == 2 ) { + if ( face2->v4 ) { // fill faceA ap1 = face1->v1; ap2 = face1->v2; @@ -735,10 +718,8 @@ static CollPair* cloth_edge_collision ( ModifierData *md1, ModifierData *md2, continue; } } - else if ( i == 3 ) - { - if ( face1->v4 && face2->v4 ) - { + else if ( i == 3 ) { + if ( face1->v4 && face2->v4 ) { // fill faceA ap1 = face1->v1; ap2 = face1->v3; @@ -847,8 +828,7 @@ static int cloth_edge_collision_response_moving ( ClothModifierData *clmd, Colli cloth1 = clmd->clothObject; - for ( ; collpair != collision_end; collpair++ ) - { + for ( ; collpair != collision_end; collpair++ ) { if (!(collpair->flag & COLLISION_IS_EDGES)) continue; @@ -865,8 +845,7 @@ static int cloth_edge_collision_response_moving ( ClothModifierData *clmd, Colli magrelVel = dot_v3v3 ( relativeVelocity, collpair->normal ); // If v_n_mag < 0 the edges are approaching each other. - if ( magrelVel > ALMOST_ZERO ) - { + if ( magrelVel > ALMOST_ZERO ) { // Calculate Impulse magnitude to stop all motion in normal direction. float magtangent = 0, repulse = 0, d = 0; double impulse = 0.0; @@ -885,8 +864,7 @@ static int cloth_edge_collision_response_moving ( ClothModifierData *clmd, Colli magtangent = MIN2 ( clmd->coll_parms->friction * 0.01 * magrelVel,sqrt ( dot_v3v3 ( vrel_t_pre,vrel_t_pre ) ) ); // Apply friction impulse. - if ( magtangent > ALMOST_ZERO ) - { + if ( magtangent > ALMOST_ZERO ) { normalize_v3( vrel_t_pre ); impulse = magtangent; @@ -906,8 +884,7 @@ static int cloth_edge_collision_response_moving ( ClothModifierData *clmd, Colli spf = (float)clmd->sim_parms->stepsPerFrame / clmd->sim_parms->timescale; d = collpair->distance; - if ( ( magrelVel < 0.1*d*spf && ( d > ALMOST_ZERO ) ) ) - { + if ( ( magrelVel < 0.1*d*spf && ( d > ALMOST_ZERO ) ) ) { repulse = MIN2 ( d*1.0/spf, 0.1*d*spf - magrelVel ); // stay on the safe side and clamp repulse @@ -949,8 +926,7 @@ static int cloth_collision_response_moving ( ClothModifierData *clmd, CollisionM cloth1 = clmd->clothObject; - for ( ; collpair != collision_end; collpair++ ) - { + for ( ; collpair != collision_end; collpair++ ) { if (collpair->flag & COLLISION_IS_EDGES) continue; @@ -967,8 +943,7 @@ static int cloth_collision_response_moving ( ClothModifierData *clmd, CollisionM magrelVel = dot_v3v3 ( relativeVelocity, collpair->normal ); // If v_n_mag < 0 the edges are approaching each other. - if ( magrelVel > ALMOST_ZERO ) - { + if ( magrelVel > ALMOST_ZERO ) { // Calculate Impulse magnitude to stop all motion in normal direction. float magtangent = 0, repulse = 0, d = 0; double impulse = 0.0; @@ -985,8 +960,7 @@ static int cloth_collision_response_moving ( ClothModifierData *clmd, CollisionM magtangent = MIN2 ( clmd->coll_parms->friction * 0.01 * magrelVel,sqrt ( dot_v3v3 ( vrel_t_pre,vrel_t_pre ) ) ); // Apply friction impulse. - if ( magtangent > ALMOST_ZERO ) - { + if ( magtangent > ALMOST_ZERO ) { normalize_v3( vrel_t_pre ); impulse = magtangent; // 2.0 * @@ -1006,8 +980,7 @@ static int cloth_collision_response_moving ( ClothModifierData *clmd, CollisionM spf = (float)clmd->sim_parms->stepsPerFrame / clmd->sim_parms->timescale; d = -collpair->distance; - if ( ( magrelVel < 0.1*d*spf ) && ( d > ALMOST_ZERO ) ) - { + if ( ( magrelVel < 0.1*d*spf ) && ( d > ALMOST_ZERO ) ) { repulse = MIN2 ( d*1.0/spf, 0.1*d*spf - magrelVel ); // stay on the safe side and clamp repulse @@ -1034,8 +1007,7 @@ static int cloth_collision_response_moving ( ClothModifierData *clmd, CollisionM magrelVel = dot_v3v3 ( relativeVelocity, collpair->normal ); // If v_n_mag < 0 the edges are approaching each other. - if ( magrelVel > ALMOST_ZERO ) - { + if ( magrelVel > ALMOST_ZERO ) { // Calculate Impulse magnitude to stop all motion in normal direction. float magtangent = 0, repulse = 0, d = 0; double impulse = 0.0; @@ -1052,8 +1024,7 @@ static int cloth_collision_response_moving ( ClothModifierData *clmd, CollisionM magtangent = MIN2 ( clmd->coll_parms->friction * 0.01 * magrelVel,sqrt ( dot_v3v3 ( vrel_t_pre,vrel_t_pre ) ) ); // Apply friction impulse. - if ( magtangent > ALMOST_ZERO ) - { + if ( magtangent > ALMOST_ZERO ) { normalize_v3( vrel_t_pre ); impulse = magtangent; // 2.0 * @@ -1072,8 +1043,7 @@ static int cloth_collision_response_moving ( ClothModifierData *clmd, CollisionM spf = (float)clmd->sim_parms->stepsPerFrame / clmd->sim_parms->timescale; d = -collpair->distance; - if ( ( magrelVel < 0.1*d*spf ) && ( d > ALMOST_ZERO ) ) - { + if ( ( magrelVel < 0.1*d*spf ) && ( d > ALMOST_ZERO ) ) { repulse = MIN2 ( d*1.0/spf, 0.1*d*spf - magrelVel ); // stay on the safe side and clamp repulse @@ -1185,8 +1155,8 @@ int cloth_point_tri_moving_v3v3_f(float v1[2][3], int i1, float v2[2][3], int i2 static CollPair* cloth_collision ( ModifierData *md1, ModifierData *md2, BVHTreeOverlap *overlap, CollPair *collpair, double dt, GHash *gh, MemArena *arena) { - ClothModifierData *clmd = ( ClothModifierData * ) md1; - CollisionModifierData *collmd = ( CollisionModifierData * ) md2; + ClothModifierData *clmd = (ClothModifierData *)md1; + CollisionModifierData *collmd = (CollisionModifierData *) md2; MFace *face1=NULL, *face2 = NULL; ClothVertex *verts1 = clmd->clothObject->verts; double distance = 0; @@ -1202,10 +1172,8 @@ static CollPair* cloth_collision ( ModifierData *md1, ModifierData *md2, BVHTree face2 = & ( collmd->mfaces[overlap->indexB] ); // check all 4 possible collisions - for ( i = 0; i < 4; i++ ) - { - if ( i == 0 ) - { + for ( i = 0; i < 4; i++ ) { + if ( i == 0 ) { // fill faceA ap1 = face1->v1; ap2 = face1->v2; @@ -1216,10 +1184,8 @@ static CollPair* cloth_collision ( ModifierData *md1, ModifierData *md2, BVHTree bp2 = face2->v2; bp3 = face2->v3; } - else if ( i == 1 ) - { - if ( face1->v4 ) - { + else if ( i == 1 ) { + if ( face1->v4 ) { // fill faceA ap1 = face1->v1; ap2 = face1->v3; @@ -1234,10 +1200,8 @@ static CollPair* cloth_collision ( ModifierData *md1, ModifierData *md2, BVHTree continue; } } - if ( i == 2 ) - { - if ( face2->v4 ) - { + if ( i == 2 ) { + if ( face2->v4 ) { // fill faceA ap1 = face1->v1; ap2 = face1->v2; @@ -1252,10 +1216,8 @@ static CollPair* cloth_collision ( ModifierData *md1, ModifierData *md2, BVHTree continue; } } - else if ( i == 3 ) - { - if ( face1->v4 && face2->v4 ) - { + else if ( i == 3 ) { + if ( face1->v4 && face2->v4 ) { // fill faceA ap1 = face1->v1; ap2 = face1->v3; @@ -1400,8 +1362,8 @@ static void machine_epsilon_offset(Cloth *cloth) static CollPair* cloth_collision ( ModifierData *md1, ModifierData *md2, BVHTreeOverlap *overlap, CollPair *collpair, float dt ) { - ClothModifierData *clmd = ( ClothModifierData * ) md1; - CollisionModifierData *collmd = ( CollisionModifierData * ) md2; + ClothModifierData *clmd = (ClothModifierData *)md1; + CollisionModifierData *collmd = (CollisionModifierData *) md2; Cloth *cloth = clmd->clothObject; MFace *face1=NULL, *face2 = NULL; #ifdef USE_BULLET @@ -1417,10 +1379,8 @@ static CollPair* cloth_collision ( ModifierData *md1, ModifierData *md2, face2 = & ( collmd->mfaces[overlap->indexB] ); // check all 4 possible collisions - for ( i = 0; i < 4; i++ ) - { - if ( i == 0 ) - { + for ( i = 0; i < 4; i++ ) { + if ( i == 0 ) { // fill faceA collpair->ap1 = face1->v1; collpair->ap2 = face1->v2; @@ -1431,10 +1391,8 @@ static CollPair* cloth_collision ( ModifierData *md1, ModifierData *md2, collpair->bp2 = face2->v2; collpair->bp3 = face2->v3; } - else if ( i == 1 ) - { - if ( face1->v4 ) - { + else if ( i == 1 ) { + if ( face1->v4 ) { // fill faceA collpair->ap1 = face1->v1; collpair->ap2 = face1->v4; @@ -1448,10 +1406,8 @@ static CollPair* cloth_collision ( ModifierData *md1, ModifierData *md2, else i++; } - if ( i == 2 ) - { - if ( face2->v4 ) - { + if ( i == 2 ) { + if ( face2->v4 ) { // fill faceA collpair->ap1 = face1->v1; collpair->ap2 = face1->v2; @@ -1465,10 +1421,8 @@ static CollPair* cloth_collision ( ModifierData *md1, ModifierData *md2, else break; } - else if ( i == 3 ) - { - if ( face1->v4 && face2->v4 ) - { + else if ( i == 3 ) { + if ( face1->v4 && face2->v4 ) { // fill faceA collpair->ap1 = face1->v1; collpair->ap2 = face1->v4; @@ -1513,8 +1467,7 @@ static CollPair* cloth_collision ( ModifierData *md1, ModifierData *md2, distance = 2.0 * (double)( epsilon1 + epsilon2 + ALMOST_ZERO ); #endif - if ( distance <= ( epsilon1 + epsilon2 + ALMOST_ZERO ) ) - { + if ( distance <= ( epsilon1 + epsilon2 + ALMOST_ZERO ) ) { normalize_v3_v3( collpair->normal, collpair->vector ); collpair->distance = distance; @@ -2283,24 +2236,21 @@ static void cloth_bvh_objcollisions_nearcheck ( ClothModifierData * clmd, Collis #ifdef WITH_ELTOPO machine_epsilon_offset(clmd->clothObject); - for ( i = 0; i < numresult; i++ ) - { - *collisions_index = cloth_collision ( ( ModifierData * ) clmd, ( ModifierData * ) collmd, + for ( i = 0; i < numresult; i++ ) { + *collisions_index = cloth_collision ( (ModifierData *)clmd, (ModifierData *)collmd, overlap+i, *collisions_index, dt, tri_visithash, arena ); } - for ( i = 0; i < numresult; i++ ) - { - *collisions_index = cloth_edge_collision ( ( ModifierData * ) clmd, ( ModifierData * ) collmd, + for ( i = 0; i < numresult; i++ ) { + *collisions_index = cloth_edge_collision ( (ModifierData *)clmd, (ModifierData *)collmd, overlap+i, *collisions_index, visithash, arena ); } BLI_ghash_free(visithash, NULL, NULL); BLI_ghash_free(tri_visithash, NULL, NULL); BLI_memarena_free(arena); #else /* WITH_ELTOPO */ - for ( i = 0; i < numresult; i++ ) - { - *collisions_index = cloth_collision ( ( ModifierData * ) clmd, ( ModifierData * ) collmd, + for ( i = 0; i < numresult; i++ ) { + *collisions_index = cloth_collision ( (ModifierData *)clmd, (ModifierData *)collmd, overlap+i, *collisions_index, dt ); } #endif /* WITH_ELTOPO */ @@ -2323,12 +2273,10 @@ static int cloth_bvh_objcollisions_resolve ( ClothModifierData * clmd, Collision // process all collisions (calculate impulses, TODO: also repulses if distance too short) result = 1; - for ( j = 0; j < 5; j++ ) // 5 is just a value that ensures convergence - { + for ( j = 0; j < 5; j++ ) { /* 5 is just a value that ensures convergence */ result = 0; - if ( collmd->bvhtree ) - { + if ( collmd->bvhtree ) { #ifdef WITH_ELTOPO result += cloth_collision_response_moving(clmd, collmd, collisions, collisions_index); result += cloth_edge_collision_response_moving(clmd, collmd, collisions, collisions_index); @@ -2339,14 +2287,11 @@ static int cloth_bvh_objcollisions_resolve ( ClothModifierData * clmd, Collision { #else // apply impulses in parallel - if ( result ) - { + if (result) { #endif - for ( i = 0; i < numverts; i++ ) - { + for (i = 0; i < numverts; i++) { // calculate "velocities" (just xnew = xold + v; no dt in v) - if ( verts[i].impulse_count ) - { + if (verts[i].impulse_count) { VECADDMUL ( verts[i].tv, verts[i].impulse, 1.0f / verts[i].impulse_count ); copy_v3_v3 ( verts[i].impulse, tnull ); verts[i].impulse_count = 0; @@ -2402,8 +2347,7 @@ int cloth_bvh_objcollision (Object *ob, ClothModifierData * clmd, float step, fl collisions_index = MEM_callocN(sizeof(CollPair *) *numcollobj , "CollPair"); // check all collision objects - for (i = 0; i < numcollobj; i++) - { + for (i = 0; i < numcollobj; i++) { Object *collob= collobjs[i]; CollisionModifierData *collmd = (CollisionModifierData*)modifiers_findByType(collob, eModifierType_Collision); BVHTreeOverlap *overlap = NULL; @@ -2435,8 +2379,7 @@ int cloth_bvh_objcollision (Object *ob, ClothModifierData * clmd, float step, fl } rounds++; - for (i = 0; i < numcollobj; i++) - { + for (i = 0; i < numcollobj; i++) { if ( collisions[i] ) MEM_freeN ( collisions[i] ); } @@ -2449,12 +2392,9 @@ int cloth_bvh_objcollision (Object *ob, ClothModifierData * clmd, float step, fl //////////////////////////////////////////////////////////// // verts come from clmd - for ( i = 0; i < numverts; i++ ) - { - if ( clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_GOAL ) - { - if ( verts [i].flags & CLOTH_VERT_FLAG_PINNED ) - { + for ( i = 0; i < numverts; i++ ) { + if ( clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_GOAL ) { + if ( verts [i].flags & CLOTH_VERT_FLAG_PINNED ) { continue; } } @@ -2467,10 +2407,8 @@ int cloth_bvh_objcollision (Object *ob, ClothModifierData * clmd, float step, fl //////////////////////////////////////////////////////////// // Test on *simple* selfcollisions //////////////////////////////////////////////////////////// - if ( clmd->coll_parms->flags & CLOTH_COLLSETTINGS_FLAG_SELF ) - { - for (l = 0; l < (unsigned int)clmd->coll_parms->self_loop_count; l++) - { + if ( clmd->coll_parms->flags & CLOTH_COLLSETTINGS_FLAG_SELF ) { + for (l = 0; l < (unsigned int)clmd->coll_parms->self_loop_count; l++) { // TODO: add coll quality rounds again BVHTreeOverlap *overlap = NULL; unsigned int result = 0; @@ -2483,14 +2421,12 @@ int cloth_bvh_objcollision (Object *ob, ClothModifierData * clmd, float step, fl verts = cloth->verts; - if ( cloth->bvhselftree ) - { - // search for overlapping collision pairs + if ( cloth->bvhselftree ) { + // search for overlapping collision pairs overlap = BLI_bvhtree_overlap ( cloth->bvhselftree, cloth->bvhselftree, &result ); // #pragma omp parallel for private(k, i, j) schedule(static) - for ( k = 0; k < result; k++ ) - { + for ( k = 0; k < result; k++ ) { float temp[3]; float length = 0; float mindistance; @@ -2500,8 +2436,7 @@ int cloth_bvh_objcollision (Object *ob, ClothModifierData * clmd, float step, fl mindistance = clmd->coll_parms->selfepsilon* ( cloth->verts[i].avg_spring_len + cloth->verts[j].avg_spring_len ); - if ( clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_GOAL ) - { + if ( clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_GOAL ) { if ( ( cloth->verts [i].flags & CLOTH_VERT_FLAG_PINNED ) && ( cloth->verts [j].flags & CLOTH_VERT_FLAG_PINNED ) ) { @@ -2514,29 +2449,24 @@ int cloth_bvh_objcollision (Object *ob, ClothModifierData * clmd, float step, fl if ( ( ABS ( temp[0] ) > mindistance ) || ( ABS ( temp[1] ) > mindistance ) || ( ABS ( temp[2] ) > mindistance ) ) continue; // check for adjacent points (i must be smaller j) - if ( BLI_edgehash_haskey ( cloth->edgehash, MIN2(i, j), MAX2(i, j) ) ) - { + if ( BLI_edgehash_haskey ( cloth->edgehash, MIN2(i, j), MAX2(i, j) ) ) { continue; } length = normalize_v3( temp ); - if ( length < mindistance ) - { + if ( length < mindistance ) { float correction = mindistance - length; - if ( cloth->verts [i].flags & CLOTH_VERT_FLAG_PINNED ) - { + if ( cloth->verts [i].flags & CLOTH_VERT_FLAG_PINNED ) { mul_v3_fl( temp, -correction ); VECADD ( verts[j].tx, verts[j].tx, temp ); } - else if ( cloth->verts [j].flags & CLOTH_VERT_FLAG_PINNED ) - { + else if ( cloth->verts [j].flags & CLOTH_VERT_FLAG_PINNED ) { mul_v3_fl( temp, correction ); VECADD ( verts[i].tx, verts[i].tx, temp ); } - else - { + else { mul_v3_fl( temp, correction * -0.5 ); VECADD ( verts[j].tx, verts[j].tx, temp ); @@ -2560,12 +2490,9 @@ int cloth_bvh_objcollision (Object *ob, ClothModifierData * clmd, float step, fl //////////////////////////////////////////////////////////// // SELFCOLLISIONS: update velocities //////////////////////////////////////////////////////////// - if ( ret2 ) - { - for ( i = 0; i < cloth->numverts; i++ ) - { - if ( ! ( verts [i].flags & CLOTH_VERT_FLAG_PINNED ) ) - { + if ( ret2 ) { + for ( i = 0; i < cloth->numverts; i++ ) { + if ( ! ( verts [i].flags & CLOTH_VERT_FLAG_PINNED ) ) { sub_v3_v3v3 ( verts[i].tv, verts[i].tx, verts[i].txold ); } } diff --git a/source/blender/blenkernel/intern/colortools.c b/source/blender/blenkernel/intern/colortools.c index 25391a34689..6dc1b2a4b00 100644 --- a/source/blender/blenkernel/intern/colortools.c +++ b/source/blender/blenkernel/intern/colortools.c @@ -202,7 +202,7 @@ void curvemap_reset(CurveMap *cuma, rctf *clipr, int preset, int slope) if (cuma->curve) MEM_freeN(cuma->curve); - switch(preset) { + switch (preset) { case CURVE_PRESET_LINE: cuma->totpoint= 2; break; case CURVE_PRESET_SHARP: cuma->totpoint= 4; break; case CURVE_PRESET_SMOOTH: cuma->totpoint= 4; break; @@ -214,7 +214,7 @@ void curvemap_reset(CurveMap *cuma, rctf *clipr, int preset, int slope) cuma->curve= MEM_callocN(cuma->totpoint*sizeof(CurveMapPoint), "curve points"); - switch(preset) { + switch (preset) { case CURVE_PRESET_LINE: cuma->curve[0].x= clipr->xmin; cuma->curve[0].y= clipr->ymax; @@ -252,10 +252,9 @@ void curvemap_reset(CurveMap *cuma, rctf *clipr, int preset, int slope) case CURVE_PRESET_MID9: { int i; - for (i=0; i < cuma->totpoint; i++) - { - cuma->curve[i].x= i / ((float)cuma->totpoint-1); - cuma->curve[i].y= 0.5; + for (i = 0; i < cuma->totpoint; i++) { + cuma->curve[i].x = i / ((float)cuma->totpoint - 1); + cuma->curve[i].y = 0.5; } } break; @@ -500,8 +499,8 @@ static void curvemap_make_table(CurveMap *cuma, rctf *clipr) for (a=0; atotpoint-1; a++, fp += 2*CM_RESOL) { correct_bezpart(bezt[a].vec[1], bezt[a].vec[2], bezt[a+1].vec[0], bezt[a+1].vec[1]); - forward_diff_bezier(bezt[a].vec[1][0], bezt[a].vec[2][0], bezt[a+1].vec[0][0], bezt[a+1].vec[1][0], fp, CM_RESOL-1, 2*sizeof(float)); - forward_diff_bezier(bezt[a].vec[1][1], bezt[a].vec[2][1], bezt[a+1].vec[0][1], bezt[a+1].vec[1][1], fp+1, CM_RESOL-1, 2*sizeof(float)); + BKE_curve_forward_diff_bezier(bezt[a].vec[1][0], bezt[a].vec[2][0], bezt[a+1].vec[0][0], bezt[a+1].vec[1][0], fp, CM_RESOL-1, 2*sizeof(float)); + BKE_curve_forward_diff_bezier(bezt[a].vec[1][1], bezt[a].vec[2][1], bezt[a+1].vec[0][1], bezt[a+1].vec[1][1], fp+1, CM_RESOL-1, 2*sizeof(float)); } /* store first and last handle for extrapolation, unit length */ diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c index 0a6e8a163cc..82a908eaf57 100644 --- a/source/blender/blenkernel/intern/constraint.c +++ b/source/blender/blenkernel/intern/constraint.c @@ -3439,8 +3439,7 @@ static void shrinkwrap_get_tarmat (bConstraint *con, bConstraintOb *cob, bConstr { bShrinkwrapConstraint *scon = (bShrinkwrapConstraint *) con->data; - if ( VALID_CONS_TARGET(ct) && (ct->tar->type == OB_MESH) ) - { + if ( VALID_CONS_TARGET(ct) && (ct->tar->type == OB_MESH) ) { int fail = FALSE; float co[3] = {0.0f, 0.0f, 0.0f}; float no[3] = {0.0f, 0.0f, 0.0f}; @@ -3461,12 +3460,10 @@ static void shrinkwrap_get_tarmat (bConstraint *con, bConstraintOb *cob, bConstr unit_m4(ct->matrix); - if (target != NULL) - { + if (target != NULL) { space_transform_from_matrixs(&transform, cob->matrix, ct->tar->obmat); - switch(scon->shrinkType) - { + switch (scon->shrinkType) { case MOD_SHRINKWRAP_NEAREST_SURFACE: case MOD_SHRINKWRAP_NEAREST_VERTEX: @@ -3475,8 +3472,7 @@ static void shrinkwrap_get_tarmat (bConstraint *con, bConstraintOb *cob, bConstr else bvhtree_from_mesh_faces(&treeData, target, 0.0, 2, 6); - if (treeData.tree == NULL) - { + if (treeData.tree == NULL) { fail = TRUE; break; } @@ -3506,14 +3502,12 @@ static void shrinkwrap_get_tarmat (bConstraint *con, bConstraintOb *cob, bConstr bvhtree_from_mesh_faces(&treeData, target, scon->dist, 4, 6); - if (treeData.tree == NULL) - { + if (treeData.tree == NULL) { fail = TRUE; break; } - if (normal_projection_project_vertex(0, co, no, &transform, treeData.tree, &hit, treeData.raycast_callback, &treeData) == FALSE) - { + if (normal_projection_project_vertex(0, co, no, &transform, treeData.tree, &hit, treeData.raycast_callback, &treeData) == FALSE) { fail = TRUE; break; } @@ -3542,8 +3536,7 @@ static void shrinkwrap_evaluate (bConstraint *UNUSED(con), bConstraintOb *cob, L bConstraintTarget *ct= targets->first; /* only evaluate if there is a target */ - if (VALID_CONS_TARGET(ct)) - { + if (VALID_CONS_TARGET(ct)) { copy_v3_v3(cob->matrix[3], ct->matrix[3]); } } diff --git a/source/blender/blenkernel/intern/context.c b/source/blender/blenkernel/intern/context.c index e9dd4d01b0e..7a5b4ef9b24 100644 --- a/source/blender/blenkernel/intern/context.c +++ b/source/blender/blenkernel/intern/context.c @@ -777,7 +777,7 @@ int CTX_data_mode_enum(const bContext *C) Object *obedit= CTX_data_edit_object(C); if (obedit) { - switch(obedit->type) { + switch (obedit->type) { case OB_MESH: return CTX_MODE_EDIT_MESH; case OB_CURVE: diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c index 9232fe8ec04..e0cadac586b 100644 --- a/source/blender/blenkernel/intern/curve.c +++ b/source/blender/blenkernel/intern/curve.c @@ -70,7 +70,7 @@ static int cu_isectLL(const float v1[3], const float v2[3], const float v3[3], c short cox, short coy, float *labda, float *mu, float vec[3]); -void unlink_curve(Curve *cu) +void BKE_curve_unlink(Curve *cu) { int a; @@ -95,7 +95,7 @@ void unlink_curve(Curve *cu) } /* frees editcurve entirely */ -void BKE_free_editfont(Curve *cu) +void BKE_curve_editfont_free(Curve *cu) { if (cu->editfont) { EditFont *ef= cu->editfont; @@ -112,7 +112,7 @@ void BKE_free_editfont(Curve *cu) } } -void free_curve_editNurb_keyIndex(EditNurb *editnurb) +void BKE_curve_editNurb_keyIndex_free(EditNurb *editnurb) { if (!editnurb->keyindex) { return; @@ -121,26 +121,26 @@ void free_curve_editNurb_keyIndex(EditNurb *editnurb) editnurb->keyindex= NULL; } -void free_curve_editNurb (Curve *cu) +void BKE_curve_editNurb_free (Curve *cu) { if (cu->editnurb) { - freeNurblist(&cu->editnurb->nurbs); - free_curve_editNurb_keyIndex(cu->editnurb); + BKE_nurbList_free(&cu->editnurb->nurbs); + BKE_curve_editNurb_keyIndex_free(cu->editnurb); MEM_freeN(cu->editnurb); cu->editnurb= NULL; } } /* don't free curve itself */ -void free_curve(Curve *cu) +void BKE_curve_free(Curve *cu) { - freeNurblist(&cu->nurb); + BKE_nurbList_free(&cu->nurb); BLI_freelistN(&cu->bev); freedisplist(&cu->disp); - BKE_free_editfont(cu); + BKE_curve_editfont_free(cu); - free_curve_editNurb(cu); - unlink_curve(cu); + BKE_curve_editNurb_free(cu); + BKE_curve_unlink(cu); BKE_free_animdata((ID *)cu); if (cu->mat) MEM_freeN(cu->mat); @@ -151,7 +151,7 @@ void free_curve(Curve *cu) if (cu->tb) MEM_freeN(cu->tb); } -Curve *add_curve(const char *name, int type) +Curve *BKE_curve_add(const char *name, int type) { Curve *cu; @@ -187,14 +187,14 @@ Curve *add_curve(const char *name, int type) return cu; } -Curve *copy_curve(Curve *cu) +Curve *BKE_curve_copy(Curve *cu) { Curve *cun; int a; cun= copy_libblock(&cu->id); cun->nurb.first= cun->nurb.last= NULL; - duplicateNurblist( &(cun->nurb), &(cu->nurb)); + BKE_nurbList_duplicate( &(cun->nurb), &(cu->nurb)); cun->mat= MEM_dupallocN(cu->mat); for (a=0; atotcol; a++) { @@ -242,7 +242,7 @@ static void extern_local_curve(Curve *cu) } } -void make_local_curve(Curve *cu) +void BKE_curve_make_local(Curve *cu) { Main *bmain= G.main; Object *ob; @@ -273,7 +273,7 @@ void make_local_curve(Curve *cu) extern_local_curve(cu); } else if (is_local && is_lib) { - Curve *cu_new= copy_curve(cu); + Curve *cu_new= BKE_curve_copy(cu); cu_new->id.us= 0; BKE_id_lib_local_paths(bmain, cu->id.lib, &cu_new->id); @@ -291,7 +291,7 @@ void make_local_curve(Curve *cu) } /* Get list of nurbs from editnurbs structure */ -ListBase *curve_editnurbs(Curve *cu) +ListBase *BKE_curve_editNurbs_get(Curve *cu) { if (cu->editnurb) { return &cu->editnurb->nurbs; @@ -300,7 +300,7 @@ ListBase *curve_editnurbs(Curve *cu) return NULL; } -short curve_type(Curve *cu) +short BKE_curve_type_get(Curve *cu) { Nurb *nu; int type= cu->type; @@ -322,9 +322,9 @@ short curve_type(Curve *cu) return type; } -void update_curve_dimension(Curve *cu) +void BKE_curve_curve_dimension_update(Curve *cu) { - ListBase *nurbs= BKE_curve_nurbs(cu); + ListBase *nurbs= BKE_curve_nurbs_get(cu); Nurb *nu= nurbs->first; if (cu->flag&CU_3D) { @@ -335,24 +335,24 @@ void update_curve_dimension(Curve *cu) else { for ( ; nu; nu= nu->next) { nu->flag |= CU_2D; - test2DNurb(nu); + BKE_nurb_test2D(nu); /* since the handles are moved they need to be auto-located again */ if (nu->type == CU_BEZIER) - calchandlesNurb(nu); + BKE_nurb_handles_calc(nu); } } } -void test_curve_type(Object *ob) +void BKE_curve_type_test(Object *ob) { - ob->type= curve_type(ob->data); + ob->type= BKE_curve_type_get(ob->data); if (ob->type==OB_CURVE) - update_curve_dimension((Curve *)ob->data); + BKE_curve_curve_dimension_update((Curve *)ob->data); } -void tex_space_curve(Curve *cu) +void BKE_curve_tex_space_calc(Curve *cu) { DispList *dl; BoundBox *bb; @@ -408,7 +408,7 @@ void tex_space_curve(Curve *cu) } } -int count_curveverts(ListBase *nurb) +int BKE_nurbList_verts_count(ListBase *nurb) { Nurb *nu; int tot=0; @@ -423,7 +423,7 @@ int count_curveverts(ListBase *nurb) return tot; } -int count_curveverts_without_handles(ListBase *nurb) +int BKE_nurbList_verts_count_without_handles(ListBase *nurb) { Nurb *nu; int tot=0; @@ -440,7 +440,7 @@ int count_curveverts_without_handles(ListBase *nurb) /* **************** NURBS ROUTINES ******************** */ -void freeNurb(Nurb *nu) +void BKE_nurb_free(Nurb *nu) { if (nu==NULL) return; @@ -460,7 +460,7 @@ void freeNurb(Nurb *nu) } -void freeNurblist(ListBase *lb) +void BKE_nurbList_free(ListBase *lb) { Nurb *nu, *next; @@ -469,13 +469,13 @@ void freeNurblist(ListBase *lb) nu= lb->first; while (nu) { next= nu->next; - freeNurb(nu); + BKE_nurb_free(nu); nu= next; } lb->first= lb->last= NULL; } -Nurb *duplicateNurb(Nurb *nu) +Nurb *BKE_nurb_duplicate(Nurb *nu) { Nurb *newnu; int len; @@ -515,22 +515,22 @@ Nurb *duplicateNurb(Nurb *nu) return newnu; } -void duplicateNurblist(ListBase *lb1, ListBase *lb2) +void BKE_nurbList_duplicate(ListBase *lb1, ListBase *lb2) { Nurb *nu, *nun; - freeNurblist(lb1); + BKE_nurbList_free(lb1); nu= lb2->first; while (nu) { - nun= duplicateNurb(nu); + nun= BKE_nurb_duplicate(nu); BLI_addtail(lb1, nun); nu= nu->next; } } -void test2DNurb(Nurb *nu) +void BKE_nurb_test2D(Nurb *nu) { BezTriple *bezt; BPoint *bp; @@ -559,7 +559,7 @@ void test2DNurb(Nurb *nu) } } -void minmaxNurb(Nurb *nu, float *min, float *max) +void BKE_nurb_minmax(Nurb *nu, float *min, float *max) { BezTriple *bezt; BPoint *bp; @@ -586,7 +586,7 @@ void minmaxNurb(Nurb *nu, float *min, float *max) } /* be sure to call makeknots after this */ -void addNurbPoints(Nurb *nu, int number) +void BKE_nurb_points_add(Nurb *nu, int number) { BPoint *tmp= nu->bp; int i; @@ -606,7 +606,7 @@ void addNurbPoints(Nurb *nu, int number) nu->pntsu += number; } -void addNurbPointsBezier(Nurb *nu, int number) +void BKE_nurb_bezierPoints_add(Nurb *nu, int number) { BezTriple *tmp= nu->bezt; int i; @@ -636,7 +636,7 @@ static void calcknots(float *knots, const short pnts, const short order, const s float k; int a; - switch(flag & (CU_NURB_ENDPOINT|CU_NURB_BEZIER)) { + switch (flag & (CU_NURB_ENDPOINT|CU_NURB_BEZIER)) { case CU_NURB_ENDPOINT: k= 0.0; for (a=1; a <= pnts_order; a++) { @@ -706,7 +706,7 @@ static void makeknots(Nurb *nu, short uv) if (nu->type == CU_NURBS) { if (uv == 1) { if (nu->knotsu) MEM_freeN(nu->knotsu); - if (check_valid_nurb_u(nu)) { + if (BKE_nurb_check_valid_u(nu)) { nu->knotsu= MEM_callocN(4+sizeof(float)*KNOTSU(nu), "makeknots"); if (nu->flagu & CU_NURB_CYCLIC) { calcknots(nu->knotsu, nu->pntsu, nu->orderu, 0); /* cyclic should be uniform */ @@ -721,7 +721,7 @@ static void makeknots(Nurb *nu, short uv) } else if (uv == 2) { if (nu->knotsv) MEM_freeN(nu->knotsv); - if (check_valid_nurb_v(nu)) { + if (BKE_nurb_check_valid_v(nu)) { nu->knotsv= MEM_callocN(4+sizeof(float)*KNOTSV(nu), "makeknots"); if (nu->flagv & CU_NURB_CYCLIC) { calcknots(nu->knotsv, nu->pntsv, nu->orderv, 0); /* cyclic should be uniform */ @@ -736,12 +736,12 @@ static void makeknots(Nurb *nu, short uv) } } -void nurbs_knot_calc_u(Nurb *nu) +void BKE_nurb_knot_calc_u(Nurb *nu) { makeknots(nu, 1); } -void nurbs_knot_calc_v(Nurb *nu) +void BKE_nurb_knot_calc_v(Nurb *nu) { makeknots(nu, 2); } @@ -809,7 +809,7 @@ static void basisNurb(float t, short order, short pnts, float *knots, float *bas } -void makeNurbfaces(Nurb *nu, float *coord_array, int rowstride, int resolu, int resolv) +void BKE_nurb_makeFaces(Nurb *nu, float *coord_array, int rowstride, int resolu, int resolv) /* coord_array has to be 3*4*resolu*resolv in size, and zero-ed */ { BPoint *bp; @@ -972,7 +972,7 @@ void makeNurbfaces(Nurb *nu, float *coord_array, int rowstride, int resolu, int MEM_freeN(jend); } -void makeNurbcurve(Nurb *nu, float *coord_array, float *tilt_array, float *radius_array, float *weight_array, int resolu, int stride) +void BKE_nurb_makeCurve(Nurb *nu, float *coord_array, float *tilt_array, float *radius_array, float *weight_array, int resolu, int stride) /* coord_array has to be 3*4*pntsu*resolu in size and zero-ed * tilt_array and radius_array will be written to if valid */ { @@ -1074,7 +1074,7 @@ void makeNurbcurve(Nurb *nu, float *coord_array, float *tilt_array, float *radiu } /* forward differencing method for bezier curve */ -void forward_diff_bezier(float q0, float q1, float q2, float q3, float *p, int it, int stride) +void BKE_curve_forward_diff_bezier(float q0, float q1, float q2, float q3, float *p, int it, int stride) { float rt0,rt1,rt2,rt3,f; int a; @@ -1122,7 +1122,7 @@ static void forward_diff_bezier_cotangent(float *p0, float *p1, float *p2, float /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -float *make_orco_surf(Object *ob) +float *BKE_curve_surf_make_orco(Object *ob) { /* Note: this function is used in convertblender only atm, so * suppose nonzero curve's render resolution should always be used */ @@ -1190,7 +1190,7 @@ float *make_orco_surf(Object *ob) float *_tdata= MEM_callocN((nu->pntsu*resolu) * (nu->pntsv*resolv) *3*sizeof(float), "temp data"); float *tdata= _tdata; - makeNurbfaces(nu, tdata, 0, resolu, resolv); + BKE_nurb_makeFaces(nu, tdata, 0, resolu, resolv); for (b=0; bdata; DispList *dl; @@ -1312,7 +1312,7 @@ float *make_orco_curve(Scene *scene, Object *ob) /* ***************** BEVEL ****************** */ -void makebevelcurve(Scene *scene, Object *ob, ListBase *disp, int forRender) +void BKE_curve_bevel_make(Scene *scene, Object *ob, ListBase *disp, int forRender) { DispList *dl, *dlnew; Curve *bevcu, *cu; @@ -2038,7 +2038,7 @@ static void make_bevel_list_3D_tangent(BevList *bl) static void make_bevel_list_3D(BevList *bl, int smooth_iter, int twist_mode) { - switch(twist_mode) { + switch (twist_mode) { case CU_TWIST_TANGENT: make_bevel_list_3D_tangent(bl); break; @@ -2083,7 +2083,7 @@ static void make_bevel_list_segment_3D(BevList *bl) -void makeBevelList(Object *ob) +void BKE_curve_bevelList_make(Object *ob) { /* * - convert all curves to polys, with indication of resol and flags for double-vertices @@ -2112,7 +2112,7 @@ void makeBevelList(Object *ob) BLI_freelistN(&(cu->bev)); if (cu->editnurb && ob->type!=OB_FONT) { - ListBase *nurbs= curve_editnurbs(cu); + ListBase *nurbs= BKE_curve_editNurbs_get(cu); nu = nurbs->first; } else { @@ -2128,7 +2128,7 @@ void makeBevelList(Object *ob) /* check we are a single point? also check we are not a surface and that the orderu is sane, * enforced in the UI but can go wrong possibly */ - if (!check_valid_nurb_u(nu)) { + if (!BKE_nurb_check_valid_u(nu)) { bl= MEM_callocN(sizeof(BevList)+1*sizeof(BevPoint), "makeBevelList1"); BLI_addtail(&(cu->bev), bl); bl->nr= 0; @@ -2201,7 +2201,7 @@ void makeBevelList(Object *ob) /* BevPoint must stay aligned to 4 so sizeof(BevPoint)/sizeof(float) works */ for (j=0; j<3; j++) { - forward_diff_bezier( prevbezt->vec[1][j], prevbezt->vec[2][j], + BKE_curve_forward_diff_bezier( prevbezt->vec[1][j], prevbezt->vec[2][j], bezt->vec[0][j], bezt->vec[1][j], &(bevp->vec[j]), resolu, sizeof(BevPoint)); } @@ -2256,7 +2256,7 @@ void makeBevelList(Object *ob) else bl->poly= -1; bevp= (BevPoint *)(bl+1); - makeNurbcurve( nu, &bevp->vec[0], + BKE_nurb_makeCurve( nu, &bevp->vec[0], do_tilt ? &bevp->alfa : NULL, do_radius ? &bevp->radius : NULL, do_weight ? &bevp->weight : NULL, @@ -2719,18 +2719,18 @@ static void calchandlesNurb_intern(Nurb *nu, int skip_align) } } -void calchandleNurb(BezTriple *bezt, BezTriple *prev, BezTriple *next, int mode) +void BKE_nurb_handle_calc(BezTriple *bezt, BezTriple *prev, BezTriple *next, int mode) { calchandleNurb_intern(bezt, prev, next, mode, FALSE); } -void calchandlesNurb(Nurb *nu) /* first, if needed, set handle flags */ +void BKE_nurb_handles_calc(Nurb *nu) /* first, if needed, set handle flags */ { calchandlesNurb_intern(nu, FALSE); } -void testhandlesNurb(Nurb *nu) +void BKE_nurb_handles_test(Nurb *nu) { /* use when something has changed with handles. * it treats all BezTriples with the following rules: @@ -2770,10 +2770,10 @@ void testhandlesNurb(Nurb *nu) bezt++; } - calchandlesNurb(nu); + BKE_nurb_handles_calc(nu); } -void autocalchandlesNurb(Nurb *nu, int flag) +void BKE_nurb_handles_autocalc(Nurb *nu, int flag) { /* checks handle coordinates and calculates type */ @@ -2841,21 +2841,21 @@ void autocalchandlesNurb(Nurb *nu, int flag) bezt2++; } - calchandlesNurb(nu); + BKE_nurb_handles_calc(nu); } -void autocalchandlesNurb_all(ListBase *editnurb, int flag) +void BKE_nurbList_handles_autocalc(ListBase *editnurb, int flag) { Nurb *nu; nu= editnurb->first; while (nu) { - autocalchandlesNurb(nu, flag); + BKE_nurb_handles_autocalc(nu, flag); nu= nu->next; } } -void sethandlesNurb(ListBase *editnurb, short code) +void BKE_nurbList_handles_set(ListBase *editnurb, short code) { /* code==1: set autohandle */ /* code==2: set vectorhandle */ @@ -2884,7 +2884,7 @@ void sethandlesNurb(ListBase *editnurb, short code) } bezt++; } - calchandlesNurb(nu); + BKE_nurb_handles_calc(nu); } nu= nu->next; } @@ -2928,7 +2928,7 @@ void sethandlesNurb(ListBase *editnurb, short code) bezt++; } - calchandlesNurb(nu); + BKE_nurb_handles_calc(nu); } nu= nu->next; } @@ -2958,7 +2958,7 @@ static void swapdata(void *adr1, void *adr2, int len) } } -void switchdirectionNurb(Nurb *nu) +void BKE_nurb_direction_switch(Nurb *nu) { BezTriple *bezt1, *bezt2; BPoint *bp1, *bp2; @@ -3064,9 +3064,9 @@ void switchdirectionNurb(Nurb *nu) } -float (*curve_getVertexCos(Curve *UNUSED(cu), ListBase *lb, int *numVerts_r))[3] +float (*BKE_curve_vertexCos_get(Curve *UNUSED(cu), ListBase *lb, int *numVerts_r))[3] { - int i, numVerts = *numVerts_r = count_curveverts(lb); + int i, numVerts = *numVerts_r = BKE_nurbList_verts_count(lb); float *co, (*cos)[3] = MEM_mallocN(sizeof(*cos)*numVerts, "cu_vcos"); Nurb *nu; @@ -3093,7 +3093,7 @@ float (*curve_getVertexCos(Curve *UNUSED(cu), ListBase *lb, int *numVerts_r))[3] return cos; } -void curve_applyVertexCos(Curve *UNUSED(cu), ListBase *lb, float (*vertexCos)[3]) +void BK_curve_vertexCos_apply(Curve *UNUSED(cu), ListBase *lb, float (*vertexCos)[3]) { float *co = vertexCos[0]; Nurb *nu; @@ -3121,9 +3121,9 @@ void curve_applyVertexCos(Curve *UNUSED(cu), ListBase *lb, float (*vertexCos)[3] } } -float (*curve_getKeyVertexCos(Curve *UNUSED(cu), ListBase *lb, float *key))[3] +float (*BKE_curve_keyVertexCos_get(Curve *UNUSED(cu), ListBase *lb, float *key))[3] { - int i, numVerts = count_curveverts(lb); + int i, numVerts = BKE_nurbList_verts_count(lb); float *co, (*cos)[3] = MEM_mallocN(sizeof(*cos)*numVerts, "cu_vcos"); Nurb *nu; @@ -3152,7 +3152,7 @@ float (*curve_getKeyVertexCos(Curve *UNUSED(cu), ListBase *lb, float *key))[3] return cos; } -void curve_applyKeyVertexTilts(Curve *UNUSED(cu), ListBase *lb, float *key) +void BKE_curve_keyVertexTilts_apply(Curve *UNUSED(cu), ListBase *lb, float *key) { Nurb *nu; int i; @@ -3179,7 +3179,7 @@ void curve_applyKeyVertexTilts(Curve *UNUSED(cu), ListBase *lb, float *key) } } -int check_valid_nurb_u( struct Nurb *nu ) +int BKE_nurb_check_valid_u( struct Nurb *nu ) { if (nu==NULL) return 0; if (nu->pntsu <= 1) return 0; @@ -3194,7 +3194,7 @@ int check_valid_nurb_u( struct Nurb *nu ) } return 1; } -int check_valid_nurb_v( struct Nurb *nu) +int BKE_nurb_check_valid_v( struct Nurb *nu) { if (nu==NULL) return 0; if (nu->pntsv <= 1) return 0; @@ -3210,7 +3210,7 @@ int check_valid_nurb_v( struct Nurb *nu) return 1; } -int clamp_nurb_order_u( struct Nurb *nu ) +int BKE_nurb_order_clamp_u( struct Nurb *nu ) { int change = 0; if (nu->pntsuorderu) { @@ -3224,7 +3224,7 @@ int clamp_nurb_order_u( struct Nurb *nu ) return change; } -int clamp_nurb_order_v( struct Nurb *nu) +int BKE_nurb_order_clamp_v( struct Nurb *nu) { int change = 0; if (nu->pntsvorderv) { @@ -3239,10 +3239,10 @@ int clamp_nurb_order_v( struct Nurb *nu) } /* Get edit nurbs or normal nurbs list */ -ListBase *BKE_curve_nurbs(Curve *cu) +ListBase *BKE_curve_nurbs_get(Curve *cu) { if (cu->editnurb) { - return curve_editnurbs(cu); + return BKE_curve_editNurbs_get(cu); } return &cu->nurb; @@ -3250,20 +3250,20 @@ ListBase *BKE_curve_nurbs(Curve *cu) /* basic vertex data functions */ -int minmax_curve(Curve *cu, float min[3], float max[3]) +int BKE_curve_minmax(Curve *cu, float min[3], float max[3]) { - ListBase *nurb_lb= BKE_curve_nurbs(cu); + ListBase *nurb_lb= BKE_curve_nurbs_get(cu); Nurb *nu; for (nu= nurb_lb->first; nu; nu= nu->next) - minmaxNurb(nu, min, max); + BKE_nurb_minmax(nu, min, max); return (nurb_lb->first != NULL); } -int curve_center_median(Curve *cu, float cent[3]) +int BKE_curve_center_median(Curve *cu, float cent[3]) { - ListBase *nurb_lb= BKE_curve_nurbs(cu); + ListBase *nurb_lb= BKE_curve_nurbs_get(cu); Nurb *nu; int total= 0; @@ -3297,11 +3297,11 @@ int curve_center_median(Curve *cu, float cent[3]) return (total != 0); } -int curve_center_bounds(Curve *cu, float cent[3]) +int BKE_curve_center_bounds(Curve *cu, float cent[3]) { float min[3], max[3]; INIT_MINMAX(min, max); - if (minmax_curve(cu, min, max)) { + if (BKE_curve_minmax(cu, min, max)) { mid_v3_v3v3(cent, min, max); return 1; } @@ -3309,9 +3309,9 @@ int curve_center_bounds(Curve *cu, float cent[3]) return 0; } -void curve_translate(Curve *cu, float offset[3], int do_keys) +void BKE_curve_translate(Curve *cu, float offset[3], int do_keys) { - ListBase *nurb_lb= BKE_curve_nurbs(cu); + ListBase *nurb_lb= BKE_curve_nurbs_get(cu); Nurb *nu; int i; @@ -3346,9 +3346,9 @@ void curve_translate(Curve *cu, float offset[3], int do_keys) } } -void curve_delete_material_index(Curve *cu, int index) +void BKE_curve_delete_material_index(Curve *cu, int index) { - const int curvetype= curve_type(cu); + const int curvetype= BKE_curve_type_get(cu); if (curvetype == OB_FONT) { struct CharInfo *info= cu->strinfo; diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c index afb5e85ffa8..ee8e57d5a3e 100644 --- a/source/blender/blenkernel/intern/customdata.c +++ b/source/blender/blenkernel/intern/customdata.c @@ -167,7 +167,7 @@ static void layerCopy_bmesh_elem_py_ptr(const void *UNUSED(source), void *dest, int i, size = sizeof(void *); for (i = 0; i < count; ++i) { - void **ptr = (void **)((char *)dest + i * size); + void **ptr = (void **)((char *)dest + i * size); *ptr = NULL; } } @@ -2337,7 +2337,10 @@ int CustomData_layer_has_math(struct CustomData *data, int layer_n) const LayerTypeInfo *typeInfo = layerType_getInfo(data->layers[layer_n].type); if (typeInfo->equal && typeInfo->add && typeInfo->multiply && - typeInfo->initminmax && typeInfo->dominmax) return 1; + typeInfo->initminmax && typeInfo->dominmax) + { + return 1; + } return 0; } @@ -2684,7 +2687,9 @@ int CustomData_verify_versions(struct CustomData *data, int index) if (!typeInfo->defaultname && (index > 0) && data->layers[index-1].type == layer->type) + { keeplayer = 0; /* multiple layers of which we only support one */ + } } if (!keeplayer) { diff --git a/source/blender/blenkernel/intern/deform.c b/source/blender/blenkernel/intern/deform.c index 1232177fa10..3e0c947ff4a 100644 --- a/source/blender/blenkernel/intern/deform.c +++ b/source/blender/blenkernel/intern/deform.c @@ -479,7 +479,7 @@ void flip_side_name(char name[MAX_VGROUP_NAME], const char from_name[MAX_VGROUP_ /* first case; separator . - _ with extensions r R l L */ if (is_char_sep(name[len - 2]) ) { - switch(name[len - 1]) { + switch (name[len - 1]) { case 'l': prefix[len - 1] = 0; strcpy(replace, "r"); @@ -500,7 +500,7 @@ void flip_side_name(char name[MAX_VGROUP_NAME], const char from_name[MAX_VGROUP_ } /* case; beginning with r R l L , with separator after it */ else if (is_char_sep(name[1]) ) { - switch(name[0]) { + switch (name[0]) { case 'l': strcpy(replace, "r"); BLI_strncpy(suffix, name + 1, sizeof(suffix)); diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c index aa6d42977ca..045d85242f1 100644 --- a/source/blender/blenkernel/intern/depsgraph.c +++ b/source/blender/blenkernel/intern/depsgraph.c @@ -462,7 +462,7 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Scene *scene, O if (ob->parent) { node2 = dag_get_node(dag,ob->parent); - switch(ob->partype) { + switch (ob->partype) { case PARSKEL: dag_add_relation(dag,node2,node,DAG_RL_DATA_DATA|DAG_RL_OB_OB, "Parent"); break; @@ -539,7 +539,7 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Scene *scene, O break; case OB_MBALL: { - Object *mom= find_basis_mball(scene, ob); + Object *mom= BKE_metaball_basis_find(scene, ob); if (mom!=ob) { node2 = dag_get_node(dag, mom); @@ -2245,7 +2245,7 @@ static void dag_object_time_update_flags(Object *ob) Curve *cu; Lattice *lt; - switch(ob->type) { + switch (ob->type) { case OB_MESH: me= ob->data; if (me->key) { diff --git a/source/blender/blenkernel/intern/displist.c b/source/blender/blenkernel/intern/displist.c index 01d5d6ef2ad..3d79386e19a 100644 --- a/source/blender/blenkernel/intern/displist.c +++ b/source/blender/blenkernel/intern/displist.c @@ -1,4 +1,5 @@ /* + * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or @@ -228,7 +229,7 @@ void count_displist(ListBase *lb, int *totvert, int *totface) dl= lb->first; while (dl) { - switch(dl->type) { + switch (dl->type) { case DL_SURF: *totvert+= dl->nr*dl->parts; *totface+= (dl->nr-1)*(dl->parts-1); @@ -296,7 +297,7 @@ static void curve_to_displist(Curve *cu, ListBase *nubase, ListBase *dispbase, i else resolu= nu->resolu; - if (!check_valid_nurb_u(nu)); + if (!BKE_nurb_check_valid_u(nu)); else if (nu->type == CU_BEZIER) { /* count */ @@ -351,7 +352,7 @@ static void curve_to_displist(Curve *cu, ListBase *nubase, ListBase *dispbase, i else { int j; for (j=0; j<3; j++) { - forward_diff_bezier( prevbezt->vec[1][j], + BKE_curve_forward_diff_bezier( prevbezt->vec[1][j], prevbezt->vec[2][j], bezt->vec[0][j], bezt->vec[1][j], @@ -384,7 +385,7 @@ static void curve_to_displist(Curve *cu, ListBase *nubase, ListBase *dispbase, i data= dl->verts; if (nu->flagu & CU_NURB_CYCLIC) dl->type= DL_POLY; else dl->type= DL_SEGM; - makeNurbcurve(nu, data, NULL, NULL, NULL, resolu, 3*sizeof(float)); + BKE_nurb_makeCurve(nu, data, NULL, NULL, NULL, resolu, 3*sizeof(float)); } else if (nu->type == CU_POLY) { len= nu->pntsu; @@ -672,9 +673,9 @@ void makeDispListMBall(Scene *scene, Object *ob) freedisplist(&(ob->disp)); if (ob->type==OB_MBALL) { - if (ob==find_basis_mball(scene, ob)) { - metaball_polygonize(scene, ob, &ob->disp); - tex_space_mball(ob); + if (ob==BKE_metaball_basis_find(scene, ob)) { + BKE_metaball_polygonize(scene, ob, &ob->disp); + BKE_metaball_tex_space_calc(ob); object_deform_mball(ob, &ob->disp); } @@ -685,8 +686,8 @@ void makeDispListMBall(Scene *scene, Object *ob) void makeDispListMBall_forRender(Scene *scene, Object *ob, ListBase *dispbase) { - metaball_polygonize(scene, ob, dispbase); - tex_space_mball(ob); + BKE_metaball_polygonize(scene, ob, dispbase); + BKE_metaball_tex_space_calc(ob); object_deform_mball(ob, dispbase); } @@ -730,7 +731,7 @@ static void curve_calc_modifiers_pre(Scene *scene, Object *ob, int forRender, fl ModifierData *md = modifiers_getVirtualModifierList(ob); ModifierData *pretessellatePoint; Curve *cu= ob->data; - ListBase *nurb= BKE_curve_nurbs(cu); + ListBase *nurb= BKE_curve_nurbs_get(cu); int numVerts = 0; int editmode = (!forRender && cu->editnurb); float (*originalVerts)[3] = NULL; @@ -753,9 +754,9 @@ static void curve_calc_modifiers_pre(Scene *scene, Object *ob, int forRender, fl * tilts, which is passed through in the modifier stack. * this is also the reason curves do not use a virtual * shape key modifier yet. */ - deformedVerts= curve_getKeyVertexCos(cu, nurb, keyVerts); + deformedVerts= BKE_curve_keyVertexCos_get(cu, nurb, keyVerts); originalVerts= MEM_dupallocN(deformedVerts); - numVerts = count_curveverts_without_handles(nurb); + numVerts = BKE_nurbList_verts_count_without_handles(nurb); } } @@ -770,7 +771,7 @@ static void curve_calc_modifiers_pre(Scene *scene, Object *ob, int forRender, fl if (mti->type!=eModifierTypeType_OnlyDeform) continue; if (!deformedVerts) { - deformedVerts = curve_getVertexCos(cu, nurb, &numVerts); + deformedVerts = BKE_curve_vertexCos_get(cu, nurb, &numVerts); originalVerts = MEM_dupallocN(deformedVerts); } @@ -782,9 +783,9 @@ static void curve_calc_modifiers_pre(Scene *scene, Object *ob, int forRender, fl } if (deformedVerts) - curve_applyVertexCos(cu, nurb, deformedVerts); + BK_curve_vertexCos_apply(cu, nurb, deformedVerts); if (keyVerts) /* these are not passed through modifier stack */ - curve_applyKeyVertexTilts(cu, nurb, keyVerts); + BKE_curve_keyVertexTilts_apply(cu, nurb, keyVerts); if (keyVerts) MEM_freeN(keyVerts); @@ -834,7 +835,7 @@ static void curve_calc_modifiers_post(Scene *scene, Object *ob, ListBase *dispba ModifierData *md = modifiers_getVirtualModifierList(ob); ModifierData *pretessellatePoint; Curve *cu= ob->data; - ListBase *nurb= BKE_curve_nurbs(cu); + ListBase *nurb= BKE_curve_nurbs_get(cu); int required_mode = 0, totvert = 0; int editmode = (!forRender && cu->editnurb); DerivedMesh *dm= NULL, *ndm; @@ -956,7 +957,7 @@ static void curve_calc_modifiers_post(Scene *scene, Object *ob, ListBase *dispba } if (deformedVerts) { - curve_applyVertexCos(ob->data, nurb, originalVerts); + BK_curve_vertexCos_apply(ob->data, nurb, originalVerts); MEM_freeN(originalVerts); MEM_freeN(deformedVerts); } @@ -1023,7 +1024,7 @@ static void add_orco_dm(Scene *scene, Object *ob, DerivedMesh *dm, DerivedMesh * dm->getVertCos(dm, orco); } else { - orco= (float(*)[3])make_orco_curve(scene, ob); + orco= (float(*)[3])BKE_curve_make_orco(scene, ob); } for (a=0; aeditnurb) - nubase= curve_editnurbs(cu); + nubase= BKE_curve_editNurbs_get(cu); else nubase= &cu->nurb; @@ -1144,7 +1145,7 @@ void makeDispListSurf(Scene *scene, Object *ob, ListBase *dispbase, if (nu->flagu & CU_NURB_CYCLIC) dl->type= DL_POLY; else dl->type= DL_SEGM; - makeNurbcurve(nu, data, NULL, NULL, NULL, resolu, 3*sizeof(float)); + BKE_nurb_makeCurve(nu, data, NULL, NULL, NULL, resolu, 3*sizeof(float)); } else { len= (nu->pntsu*resolu) * (nu->pntsv*resolv); @@ -1168,7 +1169,7 @@ void makeDispListSurf(Scene *scene, Object *ob, ListBase *dispbase, if (nu->flagv & CU_NURB_CYCLIC) dl->flag|= DL_CYCL_U; /* reverse too! */ if (nu->flagu & CU_NURB_CYCLIC) dl->flag|= DL_CYCL_V; - makeNurbfaces(nu, data, 0, resolu, resolv); + BKE_nurb_makeFaces(nu, data, 0, resolu, resolv); /* gl array drawing: using indices */ displist_surf_indices(dl); @@ -1182,7 +1183,7 @@ void makeDispListSurf(Scene *scene, Object *ob, ListBase *dispbase, copy_displist(&cu->disp, dispbase); if (!forRender) { - tex_space_curve(cu); + BKE_curve_tex_space_calc(cu); } if (!forOrco) @@ -1262,7 +1263,7 @@ static void do_makeDispListCurveTypes(Scene *scene, Object *ob, ListBase *dispba float (*deformedVerts)[3]; int numVerts; - nubase= BKE_curve_nurbs(cu); + nubase= BKE_curve_nurbs_get(cu); BLI_freelistN(&(cu->bev)); @@ -1273,10 +1274,10 @@ static void do_makeDispListCurveTypes(Scene *scene, Object *ob, ListBase *dispba if (!forOrco) curve_calc_modifiers_pre(scene, ob, forRender, &originalVerts, &deformedVerts, &numVerts); - makeBevelList(ob); + BKE_curve_bevelList_make(ob); /* If curve has no bevel will return nothing */ - makebevelcurve(scene, ob, &dlbev, forRender); + BKE_curve_bevel_make(scene, ob, &dlbev, forRender); /* no bevel or extrude, and no width correction? */ if (!dlbev.first && cu->width==1.0f) { @@ -1410,7 +1411,7 @@ static void do_makeDispListCurveTypes(Scene *scene, Object *ob, ListBase *dispba copy_displist(&cu->disp, dispbase); if (!forRender) { - tex_space_curve(cu); + BKE_curve_tex_space_calc(cu); } if (!forOrco) curve_calc_modifiers_post(scene, ob, dispbase, derivedFinal, forRender, originalVerts, deformedVerts); diff --git a/source/blender/blenkernel/intern/dynamicpaint.c b/source/blender/blenkernel/intern/dynamicpaint.c index 9ce4d68eeed..e6f38a3a334 100644 --- a/source/blender/blenkernel/intern/dynamicpaint.c +++ b/source/blender/blenkernel/intern/dynamicpaint.c @@ -231,13 +231,22 @@ static int dynamicPaint_surfaceNumOfPoints(DynamicPaintSurface *surface) /* checks whether surface's format/type has realtime preview */ int dynamicPaint_surfaceHasColorPreview(DynamicPaintSurface *surface) { - if (surface->format == MOD_DPAINT_SURFACE_F_IMAGESEQ) return 0; + if (surface->format == MOD_DPAINT_SURFACE_F_IMAGESEQ) { + return 0; + } else if (surface->format == MOD_DPAINT_SURFACE_F_VERTEX) { if (surface->type == MOD_DPAINT_SURFACE_T_DISPLACE || - surface->type == MOD_DPAINT_SURFACE_T_WAVE) return 0; - else return 1; + surface->type == MOD_DPAINT_SURFACE_T_WAVE) + { + return 0; + } + else { + return 1; + } + } + else { + return 1; } - else return 1; } /* get currently active surface (in user interface) */ @@ -393,11 +402,15 @@ void dynamicPaintSurface_updateType(struct DynamicPaintSurface *surface) static int surface_totalSamples(DynamicPaintSurface *surface) { if (surface->format == MOD_DPAINT_SURFACE_F_IMAGESEQ && - surface->flags & MOD_DPAINT_ANTIALIAS) - return (surface->data->total_points*5); + surface->flags & MOD_DPAINT_ANTIALIAS) + { + return (surface->data->total_points * 5); + } if (surface->format == MOD_DPAINT_SURFACE_F_VERTEX && - surface->flags & MOD_DPAINT_ANTIALIAS && surface->data->adj_data) + surface->flags & MOD_DPAINT_ANTIALIAS && surface->data->adj_data) + { return (surface->data->total_points+surface->data->adj_data->total_targets); + } return surface->data->total_points; } @@ -548,8 +561,7 @@ static int surface_getBrushFlags(DynamicPaintSurface *surface, Scene *scene) else base = scene->base.first; - while (base || go) - { + while (base || go) { brushObj = NULL; /* select object */ @@ -559,8 +571,7 @@ static int surface_getBrushFlags(DynamicPaintSurface *surface, Scene *scene) else brushObj = base->object; - if (!brushObj) - { + if (!brushObj) { if (surface->brush_group) go = go->next; else base= base->next; continue; @@ -572,12 +583,10 @@ static int surface_getBrushFlags(DynamicPaintSurface *surface, Scene *scene) base= base->next; md = modifiers_findByType(brushObj, eModifierType_DynamicPaint); - if (md && md->mode & (eModifierMode_Realtime | eModifierMode_Render)) - { + if (md && md->mode & (eModifierMode_Realtime | eModifierMode_Render)) { DynamicPaintModifierData *pmd2 = (DynamicPaintModifierData *)md; - if (pmd2->brush) - { + if (pmd2->brush) { DynamicPaintBrushSettings *brush = pmd2->brush; if (brush->flags & MOD_DPAINT_USES_VELOCITY) @@ -888,8 +897,10 @@ void surface_freeUnusedData(DynamicPaintSurface *surface) /* free bakedata if not active or surface is baked */ if (!(surface->flags & MOD_DPAINT_ACTIVE) || - (surface->pointcache && surface->pointcache->flag & PTCACHE_BAKED)) + (surface->pointcache && surface->pointcache->flag & PTCACHE_BAKED)) + { free_bakeData(surface->data); + } } void dynamicPaint_freeSurfaceData(DynamicPaintSurface *surface) @@ -1219,9 +1230,13 @@ static int surface_usesAdjData(DynamicPaintSurface *surface) { if (surface_usesAdjDistance(surface)) return 1; if (surface->format == MOD_DPAINT_SURFACE_F_VERTEX && - surface->flags & MOD_DPAINT_ANTIALIAS) return 1; - - return 0; + surface->flags & MOD_DPAINT_ANTIALIAS) + { + return 1; + } + else { + return 0; + } } /* initialize surface adjacency data */ @@ -1294,10 +1309,12 @@ static void dynamicPaint_initAdjacencyData(DynamicPaintSurface *surface, int for /* now check if total number of edges+faces for * each vertex is even, if not -> vertex is on mesh edge */ for (i=0; itotal_points; i++) { - if ((temp_data[i]%2) || - temp_data[i] < 4) + if ((temp_data[i] % 2) || + (temp_data[i] < 4)) + { ad->flags[i] |= ADJ_ON_MESH_EDGE; - + } + /* reset temp data */ temp_data[i] = 0; } @@ -1863,8 +1880,10 @@ static void dynamicPaint_frameUpdate(DynamicPaintModifierData *pmd, Scene *scene /* restore canvas derivedmesh if required */ if (surface->type == MOD_DPAINT_SURFACE_T_DISPLACE && - surface->flags & MOD_DPAINT_DISP_INCREMENTAL && surface->next) + surface->flags & MOD_DPAINT_DISP_INCREMENTAL && surface->next) + { canvas_copyDerivedMesh(canvas, dm); + } BKE_ptcache_validate(cache, surface->current_frame); BKE_ptcache_write(&pid, surface->current_frame); @@ -2042,9 +2061,12 @@ static int dynamicPaint_findNeighbourPixel(PaintUVPoint *tempPoints, DerivedMesh //printf("connected UV : %f,%f & %f,%f - %f,%f & %f,%f\n", s_uv1[0], s_uv1[1], s_uv2[0], s_uv2[1], t_uv1[0], t_uv1[1], t_uv2[0], t_uv2[1]); if (((s_uv1[0] == t_uv1[0] && s_uv1[1] == t_uv1[1]) && - (s_uv2[0] == t_uv2[0] && s_uv2[1] == t_uv2[1]) ) || - ((s_uv2[0] == t_uv1[0] && s_uv2[1] == t_uv1[1]) && - (s_uv1[0] == t_uv2[0] && s_uv1[1] == t_uv2[1]) )) return ((px+neighX[n_index]) + w*(py+neighY[n_index])); + (s_uv2[0] == t_uv2[0] && s_uv2[1] == t_uv2[1]) ) || + ((s_uv2[0] == t_uv1[0] && s_uv2[1] == t_uv1[1]) && + (s_uv1[0] == t_uv2[0] && s_uv1[1] == t_uv2[1]) )) + { + return ((px+neighX[n_index]) + w*(py+neighY[n_index])); + } /* * Find a point that is relatively at same edge position @@ -2185,11 +2207,9 @@ int dynamicPaint_createUVSurface(DynamicPaintSurface *surface) */ if (!error) { #pragma omp parallel for schedule(static) - for (ty = 0; ty < h; ty++) - { + for (ty = 0; ty < h; ty++) { int tx; - for (tx = 0; tx < w; tx++) - { + for (tx = 0; tx < w; tx++) { int i, sample; int index = tx+w*ty; PaintUVPoint *tPoint = (&tempPoints[index]); @@ -2257,8 +2277,7 @@ int dynamicPaint_createUVSurface(DynamicPaintSurface *surface) /* If collision wasn't found but the face is a quad * do another check for the second half */ - if ((!isInside) && mface[i].v4) - { + if ((!isInside) && mface[i].v4) { /* change d2 to test the other half */ sub_v2_v2v2(d2, tface[i].uv[3], tface[i].uv[0]); // uv3 - uv0 @@ -2330,11 +2349,9 @@ int dynamicPaint_createUVSurface(DynamicPaintSurface *surface) * (To avoid seams on uv island edges) */ #pragma omp parallel for schedule(static) - for (ty = 0; ty < h; ty++) - { + for (ty = 0; ty < h; ty++) { int tx; - for (tx = 0; tx < w; tx++) - { + for (tx = 0; tx < w; tx++) { int index = tx+w*ty; PaintUVPoint *tPoint = (&tempPoints[index]); @@ -2408,11 +2425,9 @@ int dynamicPaint_createUVSurface(DynamicPaintSurface *surface) * When base loop is over convert found neighbor indexes to real ones * Also count the final number of active surface points */ - for (ty = 0; ty < h; ty++) - { + for (ty = 0; ty < h; ty++) { int tx; - for (tx = 0; tx < w; tx++) - { + for (tx = 0; tx < w; tx++) { int index = tx+w*ty; PaintUVPoint *tPoint = (&tempPoints[index]); @@ -2440,11 +2455,9 @@ int dynamicPaint_createUVSurface(DynamicPaintSurface *surface) if (sData->adj_data) { PaintAdjData *ed = sData->adj_data; unsigned int n_pos = 0; - for (ty = 0; ty < h; ty++) - { + for (ty = 0; ty < h; ty++) { int tx; - for (tx = 0; tx < w; tx++) - { + for (tx = 0; tx < w; tx++) { int i, index = tx+w*ty; if (tempPoints[index].face_index != -1) { @@ -2576,8 +2589,7 @@ void dynamicPaint_outputSurfaceImage(DynamicPaintSurface *surface, char* filenam if (ibuf == NULL) {setError(surface->canvas, "Image save failed: Not enough free memory.");return;} #pragma omp parallel for schedule(static) - for (index = 0; index < sData->total_points; index++) - { + for (index = 0; index < sData->total_points; index++) { int pos=f_data->uv_p[index].pixel_index*4; /* image buffer position */ /* Set values of preferred type */ @@ -2759,8 +2771,7 @@ static void mesh_faces_spherecast_dp(void *userdata, int index, const BVHTreeRay { float dist = bvhtree_ray_tri_intersection(ray, hit->dist, t0, t1, t2); - if (dist >= 0 && dist < hit->dist) - { + if (dist >= 0 && dist < hit->dist) { hit->index = index; hit->dist = dist; hit->no[0] = (quad) ? 1.0f : 0.0f; @@ -2780,7 +2791,7 @@ static void mesh_faces_spherecast_dp(void *userdata, int index, const BVHTreeRay * To optimize brush detection speed this doesn't calculate hit normal. * If ray hit the second half of a quad, no[0] is set to 1.0f, else 0.0f */ -static void mesh_faces_nearest_point_dp(void *userdata, int index, const float *co, BVHTreeNearest *nearest) +static void mesh_faces_nearest_point_dp(void *userdata, int index, const float co[3], BVHTreeNearest *nearest) { const BVHTreeFromMesh *data = (BVHTreeFromMesh*) userdata; MVert *vert = data->vert; @@ -2799,8 +2810,7 @@ static void mesh_faces_nearest_point_dp(void *userdata, int index, const float * int vertex, edge; dist = nearest_point_in_tri_surface(t0, t1, t2, co, &vertex, &edge, nearest_tmp); - if (dist < nearest->dist) - { + if (dist < nearest->dist) { nearest->index = index; nearest->dist = dist; copy_v3_v3(nearest->co, nearest_tmp); @@ -3188,8 +3198,7 @@ static int dynamicPaint_paintMesh(DynamicPaintSurface *surface, /* check bounding box collision */ if (grid && meshBrush_boundsIntersect(&grid->grid_bounds, &mesh_bb, brush, brush_radius)) /* Build a bvh tree from transformed vertices */ - if (bvhtree_from_mesh_faces(&treeData, dm, 0.0f, 4, 8)) - { + if (bvhtree_from_mesh_faces(&treeData, dm, 0.0f, 4, 8)) { int c_index; int total_cells = grid->dim[0]*grid->dim[1]*grid->dim[2]; @@ -3203,8 +3212,7 @@ static int dynamicPaint_paintMesh(DynamicPaintSurface *surface, /* loop through cell points and process brush */ #pragma omp parallel for schedule(static) - for (id = 0; id < grid->s_num[c_index]; id++) - { + for (id = 0; id < grid->s_num[c_index]; id++) { int index = grid->t_index[grid->s_pos[c_index] + id]; int ss, samples = bData->s_num[index]; float total_sample = (float)samples; @@ -3220,8 +3228,7 @@ static int dynamicPaint_paintMesh(DynamicPaintSurface *surface, total_sample = gaussianTotal; /* Supersampling */ - for (ss=0; sscollision == MOD_DPAINT_COL_VOLUME || brush->collision == MOD_DPAINT_COL_VOLDIST) - if (BLI_bvhtree_ray_cast(treeData.tree, ray_start, ray_dir, 0.0f, &hit, mesh_faces_spherecast_dp, &treeData) != -1) - { + if (BLI_bvhtree_ray_cast(treeData.tree, ray_start, ray_dir, 0.0f, &hit, mesh_faces_spherecast_dp, &treeData) != -1) { /* We hit a triangle, now check if collision point normal is facing the point */ /* For optimization sake, hit point normal isn't calculated in ray cast loop */ @@ -3277,8 +3283,7 @@ static int dynamicPaint_paintMesh(DynamicPaintSurface *surface, /* If ray and hit face normal are facing same direction * hit point is inside a closed mesh. */ - if (dot>=0) - { + if (dot>=0) { float dist = hit.dist; int f_index = hit.index; @@ -3342,8 +3347,7 @@ static int dynamicPaint_paintMesh(DynamicPaintSurface *surface, hit.dist = brush_radius; /* Do a face normal directional raycast, and use that distance */ - if (BLI_bvhtree_ray_cast(treeData.tree, ray_start, proj_ray, 0.0f, &hit, mesh_faces_spherecast_dp, &treeData) != -1) - { + if (BLI_bvhtree_ray_cast(treeData.tree, ray_start, proj_ray, 0.0f, &hit, mesh_faces_spherecast_dp, &treeData) != -1) { proxDist = hit.dist; madd_v3_v3v3fl(hitCo, ray_start, proj_ray, hit.dist); /* Calculate final hit coordinates */ hQuad = (hit.no[0] == 1.0f); @@ -3446,8 +3450,7 @@ static int dynamicPaint_paintMesh(DynamicPaintSurface *surface, /* * Process hit color and alpha */ - if (surface->type == MOD_DPAINT_SURFACE_T_PAINT) - { + if (surface->type == MOD_DPAINT_SURFACE_T_PAINT) { float sampleColor[3]; float alpha_factor = 1.0f; @@ -3589,8 +3592,7 @@ static int dynamicPaint_paintParticles(DynamicPaintSurface *surface, BLI_begin_threaded_malloc(); /* only continue if particle bb is close enough to canvas bb */ - if (boundsIntersectDist(&grid->grid_bounds, &part_bb, range)) - { + if (boundsIntersectDist(&grid->grid_bounds, &part_bb, range)) { int c_index; int total_cells = grid->dim[0]*grid->dim[1]*grid->dim[2]; @@ -3603,13 +3605,14 @@ static int dynamicPaint_paintParticles(DynamicPaintSurface *surface, /* check cell bounding box */ if (!grid->s_num[c_index] || - !boundsIntersectDist(&grid->bounds[c_index], &part_bb, range)) + !boundsIntersectDist(&grid->bounds[c_index], &part_bb, range)) + { continue; + } /* loop through cell points */ #pragma omp parallel for schedule(static) - for (id = 0; id < grid->s_num[c_index]; id++) - { + for (id = 0; id < grid->s_num[c_index]; id++) { int index = grid->t_index[grid->s_pos[c_index] + id]; float disp_intersect = 0.0f; float radius = 0.0f; @@ -3714,8 +3717,7 @@ static int dynamicPaint_paintParticles(DynamicPaintSurface *surface, } } - if (strength > 0.001f) - { + if (strength > 0.001f) { float paintColor[4] = {0.0f}; float depth = 0.0f; @@ -3781,8 +3783,7 @@ static int dynamicPaint_paintSinglePoint(DynamicPaintSurface *surface, float *po * Loop through every surface point */ #pragma omp parallel for schedule(static) - for (index = 0; index < sData->total_points; index++) - { + for (index = 0; index < sData->total_points; index++) { float distance = len_v3v3(pointCoord, bData->realCoord[bData->s_pos[index]].v); float colorband[4] = {0.0f}; float strength; @@ -3891,8 +3892,7 @@ static void dynamicPaint_prepareAdjacencyData(DynamicPaintSurface *surface, int if (!bNeighs) return; #pragma omp parallel for schedule(static) - for (index = 0; index < sData->total_points; index++) - { + for (index = 0; index < sData->total_points; index++) { int i; int numOfNeighs = adj_data->n_num[index]; @@ -3911,8 +3911,7 @@ static void dynamicPaint_prepareAdjacencyData(DynamicPaintSurface *surface, int /* calculate average values (single thread) */ bData->average_dist = 0.0f; - for (index = 0; index < sData->total_points; index++) - { + for (index = 0; index < sData->total_points; index++) { int i; int numOfNeighs = adj_data->n_num[index]; @@ -4080,8 +4079,7 @@ static int dynamicPaint_prepareEffectStep(DynamicPaintSurface *surface, Scene *s if (*force) { #pragma omp parallel for schedule(static) - for (index = 0; index < sData->total_points; index++) - { + for (index = 0; index < sData->total_points; index++) { float forc[3] = {0}; /* apply force fields */ @@ -4121,8 +4119,7 @@ static int dynamicPaint_prepareEffectStep(DynamicPaintSurface *surface, Scene *s } /* calculate average values (single thread) */ - for (index = 0; index < sData->total_points; index++) - { + for (index = 0; index < sData->total_points; index++) { average_force += (*force)[index*4+3]; } average_force /= sData->total_points; @@ -4171,8 +4168,7 @@ static void dynamicPaint_doEffectStep(DynamicPaintSurface *surface, float *force memcpy(prevPoint, sData->type_data, sData->total_points*sizeof(struct PaintPoint)); #pragma omp parallel for schedule(static) - for (index = 0; index < sData->total_points; index++) - { + for (index = 0; index < sData->total_points; index++) { int i; int numOfNeighs = sData->adj_data->n_num[index]; PaintPoint *pPoint = &((PaintPoint*)sData->type_data)[index]; @@ -4214,8 +4210,7 @@ static void dynamicPaint_doEffectStep(DynamicPaintSurface *surface, float *force memcpy(prevPoint, sData->type_data, sData->total_points*sizeof(struct PaintPoint)); #pragma omp parallel for schedule(static) - for (index = 0; index < sData->total_points; index++) - { + for (index = 0; index < sData->total_points; index++) { int i; int numOfNeighs = sData->adj_data->n_num[index]; float totalAlpha = 0.0f; @@ -4256,8 +4251,7 @@ static void dynamicPaint_doEffectStep(DynamicPaintSurface *surface, float *force /* * Drip Effect */ - if (surface->effect & MOD_DPAINT_EFFECT_DO_DRIP && force) - { + if (surface->effect & MOD_DPAINT_EFFECT_DO_DRIP && force) { float eff_scale = distance_scale*EFF_MOVEMENT_PER_FRAME*timescale/2.0f; /* Copy current surface to the previous points array to read unmodified values */ memcpy(prevPoint, sData->type_data, sData->total_points*sizeof(struct PaintPoint)); @@ -4335,8 +4329,7 @@ void dynamicPaint_doWaveStep(DynamicPaintSurface *surface, float timescale) if (!prevPoint) return; /* calculate average neigh distance (single thread) */ - for (index = 0; index < sData->total_points; index++) - { + for (index = 0; index < sData->total_points; index++) { int i; int numOfNeighs = sData->adj_data->n_num[index]; @@ -4435,8 +4428,7 @@ static void dynamicPaint_surfacePreStep(DynamicPaintSurface *surface, float time int index; #pragma omp parallel for schedule(static) - for (index=0; indextotal_points; index++) - { + for (index=0; indextotal_points; index++) { /* Do drying dissolve effects */ if (surface->type == MOD_DPAINT_SURFACE_T_PAINT) { PaintPoint *pPoint = &((PaintPoint*)sData->type_data)[index]; @@ -4651,8 +4643,7 @@ static int dynamicPaint_generateBakeData(DynamicPaintSurface *surface, Scene *sc * Prepare each surface point for a new step */ #pragma omp parallel for schedule(static) - for (index=0; indextotal_points; index++) - { + for (index=0; indextotal_points; index++) { float prev_point[3] = {0.0f, 0.0f, 0.0f}; if (do_velocity_data && !new_bdata) { copy_v3_v3(prev_point, bData->realCoord[bData->s_pos[index]].v); @@ -4796,8 +4787,7 @@ static int dynamicPaint_doStep(Scene *scene, Object *ob, DynamicPaintSurface *su else base = scene->base.first; - while (base || go) - { + while (base || go) { brushObj = NULL; /* select object */ if (surface->brush_group) { @@ -4821,12 +4811,10 @@ static int dynamicPaint_doStep(Scene *scene, Object *ob, DynamicPaintSurface *su /* check if target has an active dp modifier */ md = modifiers_findByType(brushObj, eModifierType_DynamicPaint); - if (md && md->mode & (eModifierMode_Realtime | eModifierMode_Render)) - { + if (md && md->mode & (eModifierMode_Realtime | eModifierMode_Render)) { DynamicPaintModifierData *pmd2 = (DynamicPaintModifierData *)md; /* make sure we're dealing with a brush */ - if (pmd2->brush) - { + if (pmd2->brush) { DynamicPaintBrushSettings *brush = pmd2->brush; BrushMaterials bMats = {0}; diff --git a/source/blender/blenkernel/intern/editderivedmesh.c b/source/blender/blenkernel/intern/editderivedmesh.c index 857f6e75e2c..263f89a363e 100644 --- a/source/blender/blenkernel/intern/editderivedmesh.c +++ b/source/blender/blenkernel/intern/editderivedmesh.c @@ -162,7 +162,7 @@ static void BMEdit_RecalcTessellation_intern(BMEditMesh *tm) /* no need to ensure the loop order, we know its ok */ else if (f->len == 3) { - BLI_array_growone(looptris); + BLI_array_grow_one(looptris); l = BM_iter_new(&liter, bm, BM_LOOPS_OF_FACE, f); for (j=0; l; l=BM_iter_step(&liter), j++) { looptris[i][j] = l; @@ -171,7 +171,7 @@ static void BMEdit_RecalcTessellation_intern(BMEditMesh *tm) } else if (f->len == 4) { BMLoop *ltmp[4]; - BLI_array_growitems(looptris, 2); + BLI_array_grow_items(looptris, 2); l = BM_iter_new(&liter, bm, BM_LOOPS_OF_FACE, f); for (j=0; l; l=BM_iter_step(&liter), j++) { @@ -219,7 +219,7 @@ static void BMEdit_RecalcTessellation_intern(BMEditMesh *tm) BLI_addfilledge(&sf_ctx, firstv, v); totfilltri = BLI_edgefill_ex(&sf_ctx, FALSE, f->no); - BLI_array_growitems(looptris, totfilltri); + BLI_array_grow_items(looptris, totfilltri); for (efa = sf_ctx.fillfacebase.first; efa; efa=efa->next) { BMLoop *l1= efa->v1->tmp.p; diff --git a/source/blender/blenkernel/intern/effect.c b/source/blender/blenkernel/intern/effect.c index 4f320b41184..c275d4ef0ac 100644 --- a/source/blender/blenkernel/intern/effect.c +++ b/source/blender/blenkernel/intern/effect.c @@ -129,7 +129,7 @@ PartDeflect *object_add_collision_fields(int type) pd->f_damp = 1.0f; /* set sensible defaults based on type */ - switch(type) { + switch (type) { case PFIELD_VORTEX: pd->shape = PFIELD_SHAPE_PLANE; break; @@ -419,8 +419,7 @@ static float eff_calc_visibility(ListBase *colliders, EffectorCache *eff, Effect len = normalize_v3(norm); // check all collision objects - for (col = colls->first; col; col = col->next) - { + for (col = colls->first; col; col = col->next) { CollisionModifierData *collmd = col->collmd; if (col->ob == eff->ob) @@ -506,7 +505,8 @@ float effector_falloff(EffectorCache *eff, EffectorData *efd, EffectedPoint *UNU falloff=0.0f; else if (eff->pd->zdir == PFIELD_Z_NEG && fac > 0.0f) falloff=0.0f; - else switch(eff->pd->falloff) { + else { + switch (eff->pd->falloff) { case PFIELD_FALL_SPHERE: falloff*= falloff_func_dist(eff->pd, efd->distance); break; @@ -529,6 +529,7 @@ float effector_falloff(EffectorCache *eff, EffectorData *efd, EffectedPoint *UNU falloff*= falloff_func_rad(eff->pd, r_fac); break; + } } return falloff; @@ -835,7 +836,7 @@ static void do_physical_effector(EffectorCache *eff, EffectorData *efd, Effected copy_v3_v3(force, efd->vec_to_point); - switch(pd->forcefield) { + switch (pd->forcefield) { case PFIELD_WIND: copy_v3_v3(force, efd->nor); mul_v3_fl(force, strength * efd->falloff); diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c index bb8cfe37a88..e85432581d5 100644 --- a/source/blender/blenkernel/intern/fcurve.c +++ b/source/blender/blenkernel/intern/fcurve.c @@ -800,7 +800,7 @@ void calchandles_fcurve (FCurve *fcu) if (bezt->vec[2][0] < bezt->vec[1][0]) bezt->vec[2][0]= bezt->vec[1][0]; /* calculate auto-handles */ - calchandleNurb(bezt, prev, next, 1); /* 1==special autohandle */ + BKE_nurb_handle_calc(bezt, prev, next, 1); /* 1==special autohandle */ /* for automatic ease in and out */ if (ELEM(bezt->h1,HD_AUTO,HD_AUTO_ANIM) && ELEM(bezt->h2,HD_AUTO,HD_AUTO_ANIM)) { @@ -1655,8 +1655,7 @@ static float evaluate_driver (ChannelDriver *driver, const float evaltime) { driver->curval= 0.0f; } - else - { + else { /* this evaluates the expression using Python,and returns its result: * - on errors it reports, then returns 0.0f */ diff --git a/source/blender/blenkernel/intern/fmodifier.c b/source/blender/blenkernel/intern/fmodifier.c index ed5cf5e7924..0b722aabd4c 100644 --- a/source/blender/blenkernel/intern/fmodifier.c +++ b/source/blender/blenkernel/intern/fmodifier.c @@ -318,8 +318,7 @@ static void fcm_fn_generator_evaluate (FCurve *UNUSED(fcu), FModifier *fcm, floa /* get function pointer to the func to use: * WARNING: must perform special argument validation hereto guard against crashes */ - switch (data->type) - { + switch (data->type) { /* simple ones */ case FCM_GENERATOR_FN_SIN: /* sine wave */ fn= sin; diff --git a/source/blender/blenkernel/intern/font.c b/source/blender/blenkernel/intern/font.c index b2759f18e9b..5d7960a9823 100644 --- a/source/blender/blenkernel/intern/font.c +++ b/source/blender/blenkernel/intern/font.c @@ -68,8 +68,7 @@ void free_vfont(struct VFont *vf) if (vf == NULL) return; if (vf->data) { - while (vf->data->characters.first) - { + while (vf->data->characters.first) { VChar *che = vf->data->characters.first; while (che->nurbsbase.first) { @@ -136,8 +135,7 @@ struct TmpFont *vfont_find_tmpfont(VFont *vfont) // Try finding the font from font list tmpfnt = ttfdata.first; - while (tmpfnt) - { + while (tmpfnt) { if (tmpfnt->vfont == vfont) break; tmpfnt = tmpfnt->next; @@ -280,7 +278,7 @@ VFont *load_vfont(Main *bmain, const char *name) static VFont *which_vfont(Curve *cu, CharInfo *info) { - switch(info->flag & (CU_CHINFO_BOLD|CU_CHINFO_ITALIC)) { + switch (info->flag & (CU_CHINFO_BOLD|CU_CHINFO_ITALIC)) { case CU_CHINFO_BOLD: if (cu->vfontb) return(cu->vfontb); else return(cu->vfont); case CU_CHINFO_ITALIC: @@ -397,8 +395,7 @@ static void buildchar(Main *bmain, Curve *cu, unsigned long character, CharInfo nu1 = che->nurbsbase.first; // Create the character - while (nu1) - { + while (nu1) { bezt1 = nu1->bezt; if (bezt1) { nu2 =(Nurb*) MEM_mallocN(sizeof(Nurb),"duplichar_nurb"); @@ -822,10 +819,15 @@ struct chartrans *BKE_text_to_curve(Main *bmain, Scene *scene, Object *ob, int m } } else if ((cu->spacemode==CU_JUSTIFY) && (cu->tb[0].w != 0.0f)) { - float curofs= 0.0f; - for (i=0; i<=slen; i++) { - for (j=i; (mem[j]) && (mem[j]!='\n') && - (mem[j]!='\r') && (chartransdata[j].dobreak==0) && (jlinenr]-linedata[ct->linenr])/linedata4[ct->linenr]; @@ -833,7 +835,7 @@ struct chartrans *BKE_text_to_curve(Main *bmain, Scene *scene, Object *ob, int m } if (mem[i]=='\n' || mem[i]=='\r' || chartransdata[i].dobreak) curofs= 0; ct++; - } + } } } @@ -950,7 +952,7 @@ struct chartrans *BKE_text_to_curve(Main *bmain, Scene *scene, Object *ob, int m if ((mode==FO_CURSUP || mode==FO_PAGEUP) && ct->linenr==0); else if ((mode==FO_CURSDOWN || mode==FO_PAGEDOWN) && ct->linenr==lnr); else { - switch(mode) { + switch (mode) { case FO_CURSUP: lnr= ct->linenr-1; break; case FO_CURSDOWN: lnr= ct->linenr+1; break; case FO_PAGEUP: lnr= ct->linenr-10; break; @@ -1009,7 +1011,7 @@ struct chartrans *BKE_text_to_curve(Main *bmain, Scene *scene, Object *ob, int m if (mode == FO_EDIT) { /* make nurbdata */ - freeNurblist(&cu->nurb); + BKE_nurbList_free(&cu->nurb); ct= chartransdata; if (cu->sepchar==0) { diff --git a/source/blender/blenkernel/intern/idprop.c b/source/blender/blenkernel/intern/idprop.c index 1fee5cfa359..dfe73ae20db 100644 --- a/source/blender/blenkernel/intern/idprop.c +++ b/source/blender/blenkernel/intern/idprop.c @@ -484,7 +484,7 @@ void IDP_ReplaceGroupInGroup(IDProperty *dest, IDProperty *src) } /* * replaces a property with the same name in a group, or adds - * it if the propery doesn't exist. + * it if the properly doesn't exist. */ void IDP_ReplaceInGroup(IDProperty *group, IDProperty *prop) { @@ -581,8 +581,7 @@ void IDP_FreeIterBeforeEnd(void *vself) static void IDP_FreeGroup(IDProperty *prop) { IDProperty *loop; - for (loop=prop->data.group.first; loop; loop=loop->next) - { + for (loop=prop->data.group.first; loop; loop=loop->next) { IDP_FreeProperty(loop); } BLI_freelistN(&prop->data.group); diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c index 6e0330f5316..5c9c942cc6c 100644 --- a/source/blender/blenkernel/intern/image.c +++ b/source/blender/blenkernel/intern/image.c @@ -578,7 +578,7 @@ static ImBuf *add_ibuf_size(unsigned int width, unsigned int height, const char BLI_strncpy(ibuf->name, name, sizeof(ibuf->name)); ibuf->userflags |= IB_BITMAPDIRTY; - switch(uvtestgrid) { + switch (uvtestgrid) { case 1: BKE_image_buf_fill_checker(rect, rect_float, width, height); break; @@ -929,7 +929,7 @@ char BKE_ftype_to_imtype(const int ftype) int BKE_imtype_is_movie(const char imtype) { - switch(imtype) { + switch (imtype) { case R_IMF_IMTYPE_AVIRAW: case R_IMF_IMTYPE_AVIJPEG: case R_IMF_IMTYPE_AVICODEC: @@ -946,7 +946,7 @@ int BKE_imtype_is_movie(const char imtype) int BKE_imtype_supports_zbuf(const char imtype) { - switch(imtype) { + switch (imtype) { case R_IMF_IMTYPE_IRIZ: case R_IMF_IMTYPE_OPENEXR: /* but not R_IMF_IMTYPE_MULTILAYER */ return 1; @@ -956,7 +956,7 @@ int BKE_imtype_supports_zbuf(const char imtype) int BKE_imtype_supports_compress(const char imtype) { - switch(imtype) { + switch (imtype) { case R_IMF_IMTYPE_PNG: return 1; } @@ -965,7 +965,7 @@ int BKE_imtype_supports_compress(const char imtype) int BKE_imtype_supports_quality(const char imtype) { - switch(imtype) { + switch (imtype) { case R_IMF_IMTYPE_JPEG90: case R_IMF_IMTYPE_JP2: case R_IMF_IMTYPE_AVIJPEG: @@ -979,7 +979,7 @@ char BKE_imtype_valid_channels(const char imtype) char chan_flag= IMA_CHAN_FLAG_RGB; /* assume all support rgb */ /* alpha */ - switch(imtype) { + switch (imtype) { case R_IMF_IMTYPE_TARGA: case R_IMF_IMTYPE_IRIS: case R_IMF_IMTYPE_PNG: @@ -995,7 +995,7 @@ char BKE_imtype_valid_channels(const char imtype) } /* bw */ - switch(imtype) { + switch (imtype) { case R_IMF_IMTYPE_PNG: case R_IMF_IMTYPE_JPEG90: case R_IMF_IMTYPE_TARGA: @@ -1110,8 +1110,11 @@ int BKE_add_image_extension(char *string, const char imtype) } #ifdef WITH_TIFF else if (imtype==R_IMF_IMTYPE_TIFF) { - if (!BLI_testextensie(string, ".tif") && - !BLI_testextensie(string, ".tiff")) extension= ".tif"; + if (!BLI_testextensie(string, ".tif") && + !BLI_testextensie(string, ".tiff")) + { + extension= ".tif"; + } } #endif #ifdef WITH_OPENEXR @@ -1791,7 +1794,7 @@ void BKE_image_signal(Image *ima, ImageUser *iuser, int signal) if (ima==NULL) return; - switch(signal) { + switch (signal) { case IMA_SIGNAL_FREE: image_free_buffers(ima); if (iuser) diff --git a/source/blender/blenkernel/intern/image_gen.c b/source/blender/blenkernel/intern/image_gen.c index 675c0771140..1441bd7b12b 100644 --- a/source/blender/blenkernel/intern/image_gen.c +++ b/source/blender/blenkernel/intern/image_gen.c @@ -169,12 +169,10 @@ static void checker_board_color_fill(unsigned char *rect, float *rect_float, int hue_step= power_of_2_max_i(width / 8); if (hue_step < 8) hue_step= 8; - for (y= 0; y < height; y++) - { + for (y= 0; y < height; y++) { val= 0.1 + (y * (0.4 / height)); /* use a number lower then 1.0 else its too bright */ - for (x= 0; x < width; x++) - { + for (x= 0; x < width; x++) { hue= (float)((double)(x/hue_step) * 1.0 / width * hue_step); hsv_to_rgb(hue, sat, val, &r, &g, &b); @@ -291,12 +289,10 @@ static void checker_board_text(unsigned char *rect, float *rect_float, int width BLF_buffer(mono, rect_float, rect, width, height, 4); - for (y= 0; y < height; y+=step) - { + for (y= 0; y < height; y+=step) { text[1]= '1'; - for (x= 0; x < width; x+=step) - { + for (x= 0; x < width; x+=step) { /* hard coded offset */ pen_x = x + 33; pen_y = y + 44; diff --git a/source/blender/blenkernel/intern/implicit.c b/source/blender/blenkernel/intern/implicit.c index a4edc1e531a..b593419db9f 100644 --- a/source/blender/blenkernel/intern/implicit.c +++ b/source/blender/blenkernel/intern/implicit.c @@ -178,8 +178,7 @@ static void print_fvector(float m3[3]) DO_INLINE void print_lfvector(float (*fLongVector)[3], unsigned int verts) { unsigned int i = 0; - for (i = 0; i < verts; i++) - { + for (i = 0; i < verts; i++) { print_fvector(fLongVector[i]); } } @@ -193,8 +192,7 @@ DO_INLINE lfVector *create_lfvector(unsigned int verts) /* delete long vector */ DO_INLINE void del_lfvector(float (*fLongVector)[3]) { - if (fLongVector != NULL) - { + if (fLongVector != NULL) { MEM_freeN (fLongVector); // cloth_aligned_free(&MEMORY_BASE, fLongVector); } @@ -208,8 +206,7 @@ DO_INLINE void cp_lfvector(float (*to)[3], float (*from)[3], unsigned int verts) DO_INLINE void init_lfvector(float (*fLongVector)[3], float vector[3], unsigned int verts) { unsigned int i = 0; - for (i = 0; i < verts; i++) - { + for (i = 0; i < verts; i++) { copy_v3_v3(fLongVector[i], vector); } } @@ -223,8 +220,7 @@ DO_INLINE void mul_lfvectorS(float (*to)[3], float (*fLongVector)[3], float scal { unsigned int i = 0; - for (i = 0; i < verts; i++) - { + for (i = 0; i < verts; i++) { mul_fvector_S(to[i], fLongVector[i], scalar); } } @@ -233,8 +229,7 @@ DO_INLINE void mul_lfvectorS(float (*to)[3], float (*fLongVector)[3], float scal DO_INLINE void submul_lfvectorS(float (*to)[3], float (*fLongVector)[3], float scalar, unsigned int verts) { unsigned int i = 0; - for (i = 0; i < verts; i++) - { + for (i = 0; i < verts; i++) { VECSUBMUL(to[i], fLongVector[i], scalar); } } @@ -258,8 +253,7 @@ DO_INLINE void add_lfvector_lfvector(float (*to)[3], float (*fLongVectorA)[3], f { unsigned int i = 0; - for (i = 0; i < verts; i++) - { + for (i = 0; i < verts; i++) { VECADD(to[i], fLongVectorA[i], fLongVectorB[i]); } @@ -269,8 +263,7 @@ DO_INLINE void add_lfvector_lfvectorS(float (*to)[3], float (*fLongVectorA)[3], { unsigned int i = 0; - for (i = 0; i < verts; i++) - { + for (i = 0; i < verts; i++) { VECADDS(to[i], fLongVectorA[i], fLongVectorB[i], bS); } @@ -280,8 +273,7 @@ DO_INLINE void add_lfvectorS_lfvectorS(float (*to)[3], float (*fLongVectorA)[3], { unsigned int i = 0; - for (i = 0; i < verts; i++) - { + for (i = 0; i < verts; i++) { VECADDSS(to[i], fLongVectorA[i], aS, fLongVectorB[i], bS); } } @@ -289,8 +281,7 @@ DO_INLINE void add_lfvectorS_lfvectorS(float (*to)[3], float (*fLongVectorA)[3], DO_INLINE void sub_lfvector_lfvectorS(float (*to)[3], float (*fLongVectorA)[3], float (*fLongVectorB)[3], float bS, unsigned int verts) { unsigned int i = 0; - for (i = 0; i < verts; i++) - { + for (i = 0; i < verts; i++) { VECSUBS(to[i], fLongVectorA[i], fLongVectorB[i], bS); } @@ -300,8 +291,7 @@ DO_INLINE void sub_lfvector_lfvector(float (*to)[3], float (*fLongVectorA)[3], f { unsigned int i = 0; - for (i = 0; i < verts; i++) - { + for (i = 0; i < verts; i++) { sub_v3_v3v3(to[i], fLongVectorA[i], fLongVectorB[i]); } @@ -350,15 +340,12 @@ DO_INLINE void inverse_fmatrix(float to[3][3], float from[3][3]) unsigned int i, j; float d; - if ((d=det_fmatrix(from))==0) - { + if ((d=det_fmatrix(from)) == 0) { printf("can't build inverse"); exit(0); } - for (i=0;i<3;i++) - { - for (j=0;j<3;j++) - { + for (i=0;i<3;i++) { + for (j=0;j<3;j++) { int i1=(i+1)%3; int i2=(i+2)%3; int j1=(j+1)%3; @@ -535,8 +522,7 @@ DO_INLINE fmatrix3x3 *create_bfmatrix(unsigned int verts, unsigned int springs) /* delete big matrix */ DO_INLINE void del_bfmatrix(fmatrix3x3 *matrix) { - if (matrix != NULL) - { + if (matrix != NULL) { MEM_freeN (matrix); } } @@ -554,8 +540,7 @@ DO_INLINE void init_bfmatrix(fmatrix3x3 *matrix, float m3[3][3]) { unsigned int i; - for (i = 0; i < matrix[0].vcount+matrix[0].scount; i++) - { + for (i = 0; i < matrix[0].vcount+matrix[0].scount; i++) { cp_fmatrix(matrix[i].m, m3); } } @@ -567,12 +552,10 @@ DO_INLINE void initdiag_bfmatrix(fmatrix3x3 *matrix, float m3[3][3]) unsigned int i,j; float tmatrix[3][3] = {{0,0,0},{0,0,0},{0,0,0}}; - for (i = 0; i < matrix[0].vcount; i++) - { + for (i = 0; i < matrix[0].vcount; i++) { cp_fmatrix(matrix[i].m, m3); } - for (j = matrix[0].vcount; j < matrix[0].vcount+matrix[0].scount; j++) - { + for (j = matrix[0].vcount; j < matrix[0].vcount+matrix[0].scount; j++) { cp_fmatrix(matrix[j].m, tmatrix); } } @@ -581,8 +564,7 @@ DO_INLINE void initdiag_bfmatrix(fmatrix3x3 *matrix, float m3[3][3]) DO_INLINE void mul_bfmatrix_S(fmatrix3x3 *matrix, float scalar) { unsigned int i = 0; - for (i = 0; i < matrix[0].vcount+matrix[0].scount; i++) - { + for (i = 0; i < matrix[0].vcount+matrix[0].scount; i++) { mul_fmatrix_S(matrix[i].m, scalar); } } @@ -601,15 +583,13 @@ DO_INLINE void mul_bfmatrix_lfvector( float (*to)[3], fmatrix3x3 *from, lfVector { #pragma omp section { - for (i = from[0].vcount; i < from[0].vcount+from[0].scount; i++) - { + for (i = from[0].vcount; i < from[0].vcount+from[0].scount; i++) { muladd_fmatrix_fvector(to[from[i].c], from[i].m, fLongVector[from[i].r]); } } #pragma omp section { - for (i = 0; i < from[0].vcount+from[0].scount; i++) - { + for (i = 0; i < from[0].vcount+from[0].scount; i++) { muladd_fmatrix_fvector(temp[from[i].r], from[i].m, fLongVector[from[i].c]); } } @@ -627,8 +607,7 @@ DO_INLINE void mul_prevfmatrix_lfvector( float (*to)[3], fmatrix3x3 *from, lfVec { unsigned int i = 0; - for (i = 0; i < from[0].vcount; i++) - { + for (i = 0; i < from[0].vcount; i++) { mul_fmatrix_fvector(to[from[i].r], from[i].m, fLongVector[from[i].c]); } } @@ -639,8 +618,7 @@ DO_INLINE void add_bfmatrix_bfmatrix( fmatrix3x3 *to, fmatrix3x3 *from, fmatrix unsigned int i = 0; /* process diagonal elements */ - for (i = 0; i < matrix[0].vcount+matrix[0].scount; i++) - { + for (i = 0; i < matrix[0].vcount+matrix[0].scount; i++) { add_fmatrix_fmatrix(to[i].m, from[i].m, matrix[i].m); } @@ -651,8 +629,7 @@ DO_INLINE void addadd_bfmatrix_bfmatrix( fmatrix3x3 *to, fmatrix3x3 *from, fmat unsigned int i = 0; /* process diagonal elements */ - for (i = 0; i < matrix[0].vcount+matrix[0].scount; i++) - { + for (i = 0; i < matrix[0].vcount+matrix[0].scount; i++) { addadd_fmatrix_fmatrix(to[i].m, from[i].m, matrix[i].m); } @@ -663,8 +640,7 @@ DO_INLINE void subadd_bfmatrix_bfmatrix( fmatrix3x3 *to, fmatrix3x3 *from, fmat unsigned int i = 0; /* process diagonal elements */ - for (i = 0; i < matrix[0].vcount+matrix[0].scount; i++) - { + for (i = 0; i < matrix[0].vcount+matrix[0].scount; i++) { subadd_fmatrix_fmatrix(to[i].m, from[i].m, matrix[i].m); } @@ -675,8 +651,7 @@ DO_INLINE void sub_bfmatrix_bfmatrix( fmatrix3x3 *to, fmatrix3x3 *from, fmatrix unsigned int i = 0; /* process diagonal elements */ - for (i = 0; i < matrix[0].vcount+matrix[0].scount; i++) - { + for (i = 0; i < matrix[0].vcount+matrix[0].scount; i++) { sub_fmatrix_fmatrix(to[i].m, from[i].m, matrix[i].m); } @@ -687,8 +662,7 @@ DO_INLINE void sub_bfmatrix_Smatrix( fmatrix3x3 *to, fmatrix3x3 *from, fmatrix3 unsigned int i = 0; /* process diagonal elements */ - for (i = 0; i < matrix[0].vcount; i++) - { + for (i = 0; i < matrix[0].vcount; i++) { sub_fmatrix_fmatrix(to[matrix[i].c].m, from[matrix[i].c].m, matrix[i].m); } @@ -699,8 +673,7 @@ DO_INLINE void addsub_bfmatrix_bfmatrix( fmatrix3x3 *to, fmatrix3x3 *from, fmat unsigned int i = 0; /* process diagonal elements */ - for (i = 0; i < matrix[0].vcount+matrix[0].scount; i++) - { + for (i = 0; i < matrix[0].vcount+matrix[0].scount; i++) { addsub_fmatrix_fmatrix(to[i].m, from[i].m, matrix[i].m); } @@ -713,8 +686,7 @@ DO_INLINE void subadd_bfmatrixS_bfmatrixS( fmatrix3x3 *to, fmatrix3x3 *from, flo unsigned int i = 0; /* process diagonal elements */ - for (i = 0; i < matrix[0].vcount+matrix[0].scount; i++) - { + for (i = 0; i < matrix[0].vcount+matrix[0].scount; i++) { subadd_fmatrixS_fmatrixS(to[i].m, from[i].m, aS, matrix[i].m, bS); } @@ -772,12 +744,10 @@ int implicit_init (Object *UNUSED(ob), ClothModifierData *clmd) id->dV = create_lfvector(cloth->numverts); id->z = create_lfvector(cloth->numverts); - for (i=0;inumverts;i++) - { + for (i=0;inumverts;i++) { id->A[i].r = id->A[i].c = id->dFdV[i].r = id->dFdV[i].c = id->dFdX[i].r = id->dFdX[i].c = id->P[i].c = id->P[i].r = id->Pinv[i].c = id->Pinv[i].r = id->bigI[i].c = id->bigI[i].r = id->M[i].r = id->M[i].c = i; - if (verts [i].flags & CLOTH_VERT_FLAG_PINNED) - { + if (verts [i].flags & CLOTH_VERT_FLAG_PINNED) { id->S[pinned].pinned = 1; id->S[pinned].c = id->S[pinned].r = i; pinned++; @@ -791,8 +761,7 @@ int implicit_init (Object *UNUSED(ob), ClothModifierData *clmd) // init springs search = cloth->springs; - for (i=0;inumsprings;i++) - { + for (i=0;inumsprings;i++) { spring = search->link; // dFdV_start[i].r = big_I[i].r = big_zero[i].r = @@ -810,8 +779,7 @@ int implicit_init (Object *UNUSED(ob), ClothModifierData *clmd) initdiag_bfmatrix(id->bigI, I); - for (i = 0; i < cloth->numverts; i++) - { + for (i = 0; i < cloth->numverts; i++) { copy_v3_v3(id->X[i], verts[i].x); } @@ -823,12 +791,10 @@ int implicit_free (ClothModifierData *clmd) Cloth *cloth; cloth = (Cloth *)clmd->clothObject; - if (cloth) - { + if (cloth) { id = cloth->implicit; - if (id) - { + if (id) { del_bfmatrix(id->A); del_bfmatrix(id->dFdV); del_bfmatrix(id->dFdX); @@ -886,12 +852,10 @@ DO_INLINE float fbstar_jacobi(float length, float L, float kb, float cb) float tempfb = kb * fb(length, L); float fbstar = cb * (length - L); - if (tempfb < fbstar) - { + if (tempfb < fbstar) { return cb; } - else - { + else { return kb * fbderiv(length, L); } } @@ -900,8 +864,7 @@ DO_INLINE void filter(lfVector *V, fmatrix3x3 *S) { unsigned int i=0; - for (i=0;istarget && conjgrad_loopcount < conjgrad_looplimit) - { + while (s>starget && conjgrad_loopcount < conjgrad_looplimit) { // Mul(q,A,d); // q = A*d; mul_bfmatrix_lfvector(q, lA, d); @@ -979,8 +941,7 @@ DO_INLINE void BuildPPinv(fmatrix3x3 *lA, fmatrix3x3 *P, fmatrix3x3 *Pinv) // Take only the diagonal blocks of A // #pragma omp parallel for private(i) if (lA[0].vcount > CLOTH_OPENMP_LIMIT) - for (i = 0; iflags &= ~CLOTH_SPRING_FLAG_NEEDED; - if (length > ALMOST_ZERO) - { + if (length > ALMOST_ZERO) { /* if (length>L) { @@ -1270,16 +1230,13 @@ DO_INLINE void cloth_calc_spring_force(ClothModifierData *clmd, ClothSpring *s, */ mul_fvector_S(dir, extent, 1.0f/length); } - else - { + else { mul_fvector_S(dir, extent, 0.0f); } // calculate force of structural + shear springs - if ((s->type & CLOTH_SPRING_TYPE_STRUCTURAL) || (s->type & CLOTH_SPRING_TYPE_SHEAR)) - { - if (length > L || no_compress) - { + if ((s->type & CLOTH_SPRING_TYPE_STRUCTURAL) || (s->type & CLOTH_SPRING_TYPE_SHEAR)) { + if (length > L || no_compress) { s->flags |= CLOTH_SPRING_FLAG_NEEDED; k = clmd->sim_parms->structural; @@ -1337,10 +1294,8 @@ DO_INLINE void cloth_calc_spring_force(ClothModifierData *clmd, ClothSpring *s, // dfdx_spring(s->dfdx, dir, length, 0.0, k); // dfdv_damp(s->dfdv, dir, MIN2(1.0, (clmd->sim_parms->goalfrict/100.0))); } - else // calculate force of bending springs - { - if (length < L) - { + else { /* calculate force of bending springs */ + if (length < L) { s->flags |= CLOTH_SPRING_FLAG_NEEDED; k = clmd->sim_parms->bending; @@ -1358,10 +1313,8 @@ DO_INLINE void cloth_calc_spring_force(ClothModifierData *clmd, ClothSpring *s, DO_INLINE void cloth_apply_spring_force(ClothModifierData *UNUSED(clmd), ClothSpring *s, lfVector *lF, lfVector *UNUSED(X), lfVector *UNUSED(V), fmatrix3x3 *dFdV, fmatrix3x3 *dFdX) { - if (s->flags & CLOTH_SPRING_FLAG_NEEDED) - { - if (!(s->type & CLOTH_SPRING_TYPE_BENDING)) - { + if (s->flags & CLOTH_SPRING_FLAG_NEEDED) { + if (!(s->type & CLOTH_SPRING_TYPE_BENDING)) { sub_fmatrix_fmatrix(dFdV[s->ij].m, dFdV[s->ij].m, s->dfdv); sub_fmatrix_fmatrix(dFdV[s->kl].m, dFdV[s->kl].m, s->dfdv); add_fmatrix_fmatrix(dFdV[s->matrix_index].m, dFdV[s->matrix_index].m, s->dfdv); @@ -1486,8 +1439,7 @@ static void hair_velocity_smoothing(ClothModifierData *clmd, lfVector *lF, lfVec } /* gather colliders */ - if (colliders && collfac > 0.0f) for (col = colliders->first; col; col = col->next) - { + if (colliders && collfac > 0.0f) for (col = colliders->first; col; col = col->next) { MVert *loc0 = col->collmd->x; MVert *loc1 = col->collmd->xnew; float vel[3]; @@ -1593,8 +1545,7 @@ static void cloth_calc_force(ClothModifierData *clmd, float UNUSED(frame), lfVec /* multiply lF with mass matrix * force = mass * acceleration (in this case: gravity) */ - for (i = 0; i < numverts; i++) - { + for (i = 0; i < numverts; i++) { float temp[3]; copy_v3_v3(temp, lF[i]); mul_fmatrix_fvector(lF[i], M[i].m, temp); @@ -1603,8 +1554,7 @@ static void cloth_calc_force(ClothModifierData *clmd, float UNUSED(frame), lfVec submul_lfvectorS(lF, lV, spring_air, numverts); /* handle external forces like wind */ - if (effectors) - { + if (effectors) { // 0 = force, 1 = normalized force winvec = create_lfvector(cloth->numverts); @@ -1612,14 +1562,12 @@ static void cloth_calc_force(ClothModifierData *clmd, float UNUSED(frame), lfVec printf("winvec: out of memory in implicit.c\n"); // precalculate wind forces - for (i = 0; i < cloth->numverts; i++) - { + for (i = 0; i < cloth->numverts; i++) { pd_point_from_loc(clmd->scene, (float*)lX[i], (float*)lV[i], i, &epoint); pdDoEffectors(effectors, NULL, clmd->sim_parms->effector_weights, &epoint, winvec[i], NULL); } - for (i = 0; i < cloth->numfaces; i++) - { + for (i = 0; i < cloth->numfaces; i++) { float trinormal[3]={0,0,0}; // normalized triangle normal float triunnormal[3]={0,0,0}; // not-normalized-triangle normal float tmp[3]={0,0,0}; @@ -1650,8 +1598,7 @@ static void cloth_calc_force(ClothModifierData *clmd, float UNUSED(frame), lfVec VECADDS(lF[mfaces[i].v3], lF[mfaces[i].v3], tmp, factor); // add wind from v4 - if (mfaces[i].v4) - { + if (mfaces[i].v4) { copy_v3_v3(tmp, trinormal); mul_v3_fl(tmp, calculateVertexWindForce(winvec[mfaces[i].v4], triunnormal)); VECADDS(lF[mfaces[i].v4], lF[mfaces[i].v4], tmp, factor); @@ -1692,8 +1639,7 @@ static void cloth_calc_force(ClothModifierData *clmd, float UNUSED(frame), lfVec // calculate spring forces search = cloth->springs; - while (search) - { + while (search) { // only handle active springs // if (((clmd->sim_parms->flags & CSIMSETT_FLAG_TEARING_ENABLED) && !(springs[i].flags & CSPRING_FLAG_DEACTIVATE))|| !(clmd->sim_parms->flags & CSIMSETT_FLAG_TEARING_ENABLED)) {} cloth_calc_spring_force(clmd, search->link, lF, lX, lV, dFdV, dFdX, time); @@ -1703,8 +1649,7 @@ static void cloth_calc_force(ClothModifierData *clmd, float UNUSED(frame), lfVec // apply spring forces search = cloth->springs; - while (search) - { + while (search) { // only handle active springs // if (((clmd->sim_parms->flags & CSIMSETT_FLAG_TEARING_ENABLED) && !(springs[i].flags & CSPRING_FLAG_DEACTIVATE))|| !(clmd->sim_parms->flags & CSIMSETT_FLAG_TEARING_ENABLED)) cloth_apply_spring_force(clmd, search->link, lF, lX, lV, dFdV, dFdX); @@ -1836,21 +1781,17 @@ int implicit_solver (Object *ob, float frame, ClothModifierData *clmd, ListBase Implicit_Data *id = cloth->implicit; int do_extra_solve; - if (clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_GOAL) /* do goal stuff */ - { - for (i = 0; i < numverts; i++) - { + if (clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_GOAL) { /* do goal stuff */ + for (i = 0; i < numverts; i++) { // update velocities with constrained velocities from pinned verts - if (verts [i].flags & CLOTH_VERT_FLAG_PINNED) - { + if (verts [i].flags & CLOTH_VERT_FLAG_PINNED) { sub_v3_v3v3(id->V[i], verts[i].xconst, verts[i].xold); // mul_v3_fl(id->V[i], clmd->sim_parms->stepsPerFrame); } } } - while (step < tf) - { + while (step < tf) { // damping velocity for artistic reasons mul_lfvectorS(id->V, id->V, clmd->sim_parms->vel_damping, numverts); @@ -1864,13 +1805,10 @@ int implicit_solver (Object *ob, float frame, ClothModifierData *clmd, ListBase add_lfvector_lfvectorS(id->Xnew, id->X, id->Vnew, dt, numverts); /* move pinned verts to correct position */ - for (i = 0; i < numverts; i++) - { - if (clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_GOAL) - { - if (verts [i].flags & CLOTH_VERT_FLAG_PINNED) - { - float tvect[3] = {.0,.0,.0}; + for (i = 0; i < numverts; i++) { + if (clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_GOAL) { + if (verts[i].flags & CLOTH_VERT_FLAG_PINNED) { + float tvect[3] = {0.0f, 0.0f, 0.0f}; sub_v3_v3v3(tvect, verts[i].xconst, verts[i].xold); mul_fvector_S(tvect, tvect, step+dt); VECADD(tvect, tvect, verts[i].xold); @@ -1881,14 +1819,12 @@ int implicit_solver (Object *ob, float frame, ClothModifierData *clmd, ListBase copy_v3_v3(verts[i].txold, id->X[i]); } - if (clmd->coll_parms->flags & CLOTH_COLLSETTINGS_FLAG_ENABLED && clmd->clothObject->bvhtree) - { + if (clmd->coll_parms->flags & CLOTH_COLLSETTINGS_FLAG_ENABLED && clmd->clothObject->bvhtree) { // collisions // itstart(); // update verts to current positions - for (i = 0; i < numverts; i++) - { + for (i = 0; i < numverts; i++) { copy_v3_v3(verts[i].tx, id->Xnew[i]); sub_v3_v3v3(verts[i].tv, verts[i].tx, verts[i].txold); @@ -1904,8 +1840,7 @@ int implicit_solver (Object *ob, float frame, ClothModifierData *clmd, ListBase do_extra_solve = cloth_bvh_objcollision(ob, clmd, step/clmd->sim_parms->timescale, dt/clmd->sim_parms->timescale); // copy corrected positions back to simulation - for (i = 0; i < numverts; i++) - { + for (i = 0; i < numverts; i++) { // correct velocity again, just to be sure we had to change it due to adaptive collisions sub_v3_v3v3(verts[i].tv, verts[i].tx, id->X[i]); } @@ -1913,11 +1848,9 @@ int implicit_solver (Object *ob, float frame, ClothModifierData *clmd, ListBase //if (do_extra_solve) // cloth_calc_helper_forces(ob, clmd, initial_cos, step/clmd->sim_parms->timescale, dt/clmd->sim_parms->timescale); - for (i = 0; i < numverts; i++) - { + for (i = 0; i < numverts; i++) { - if (do_extra_solve) - { + if (do_extra_solve) { if ((clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_GOAL) && (verts [i].flags & CLOTH_VERT_FLAG_PINNED)) continue; @@ -1933,8 +1866,7 @@ int implicit_solver (Object *ob, float frame, ClothModifierData *clmd, ListBase // if there were collisions, advance the velocity from v_n+1/2 to v_n+1 - if (do_extra_solve) - { + if (do_extra_solve) { // V = Vnew; cp_lfvector(id->V, id->Vnew, numverts); @@ -1944,8 +1876,7 @@ int implicit_solver (Object *ob, float frame, ClothModifierData *clmd, ListBase simulate_implicit_euler(id->Vnew, id->X, id->V, id->F, id->dFdV, id->dFdX, dt / 2.0f, id->A, id->B, id->dV, id->S, id->z, id->olddV, id->P, id->Pinv, id->M, id->bigI); } } - else - { + else { // X = Xnew; cp_lfvector(id->X, id->Xnew, numverts); } @@ -1959,16 +1890,13 @@ int implicit_solver (Object *ob, float frame, ClothModifierData *clmd, ListBase step += dt; } - for (i = 0; i < numverts; i++) - { - if ((clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_GOAL) && (verts [i].flags & CLOTH_VERT_FLAG_PINNED)) - { + for (i = 0; i < numverts; i++) { + if ((clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_GOAL) && (verts [i].flags & CLOTH_VERT_FLAG_PINNED)) { copy_v3_v3(verts[i].txold, verts[i].xconst); // TODO: test --> should be .x copy_v3_v3(verts[i].x, verts[i].xconst); copy_v3_v3(verts[i].v, id->V[i]); } - else - { + else { copy_v3_v3(verts[i].txold, id->X[i]); copy_v3_v3(verts[i].x, id->X[i]); copy_v3_v3(verts[i].v, id->V[i]); @@ -1987,8 +1915,7 @@ void implicit_set_positions (ClothModifierData *clmd) unsigned int numverts = cloth->numverts, i; Implicit_Data *id = cloth->implicit; - for (i = 0; i < numverts; i++) - { + for (i = 0; i < numverts; i++) { copy_v3_v3(id->X[i], verts[i].x); copy_v3_v3(id->V[i], verts[i].v); } diff --git a/source/blender/blenkernel/intern/ipo.c b/source/blender/blenkernel/intern/ipo.c index 2fd1d291363..c33bb973385 100644 --- a/source/blender/blenkernel/intern/ipo.c +++ b/source/blender/blenkernel/intern/ipo.c @@ -1906,7 +1906,7 @@ void do_versions_ipos_to_animato(Main *main) AnimData *adt= BKE_id_add_animdata(id); - SEQ_BEGIN(ed, seq) { + SEQ_BEGIN (ed, seq) { IpoCurve *icu = (seq->ipo) ? seq->ipo->curve.first : NULL; short adrcode = SEQ_FAC1; diff --git a/source/blender/blenkernel/intern/key.c b/source/blender/blenkernel/intern/key.c index 0a1c0467244..54a2613991a 100644 --- a/source/blender/blenkernel/intern/key.c +++ b/source/blender/blenkernel/intern/key.c @@ -1594,7 +1594,7 @@ void curve_to_key(Curve *cu, KeyBlock *kb, ListBase *nurb) int a, tot; /* count */ - tot = count_curveverts(nurb); + tot = BKE_nurbList_verts_count(nurb); if (tot == 0) return; if (kb->data) MEM_freeN(kb->data); @@ -1647,7 +1647,7 @@ void key_to_curve(KeyBlock *kb, Curve *UNUSED(cu), ListBase *nurb) nu = nurb->first; fp = kb->data; - tot = count_curveverts(nurb); + tot = BKE_nurbList_verts_count(nurb); tot = MIN2(kb->totelem, tot); @@ -1742,7 +1742,7 @@ float (*key_to_vertcos(Object * ob, KeyBlock * kb))[3] } else if (ELEM(ob->type, OB_CURVE, OB_SURF)) { Curve *cu = (Curve *)ob->data; - tot = count_curveverts(&cu->nurb); + tot = BKE_nurbList_verts_count(&cu->nurb); } if (tot == 0) return NULL; @@ -1822,7 +1822,7 @@ void vertcos_to_key(Object *ob, KeyBlock *kb, float (*vertCos)[3]) else if (ELEM(ob->type, OB_CURVE, OB_SURF)) { Curve *cu = (Curve *)ob->data; elemsize = cu->key->elemsize; - tot = count_curveverts(&cu->nurb); + tot = BKE_nurbList_verts_count(&cu->nurb); } if (tot == 0) { diff --git a/source/blender/blenkernel/intern/lattice.c b/source/blender/blenkernel/intern/lattice.c index f182d7bcb7c..12f11a9dee1 100644 --- a/source/blender/blenkernel/intern/lattice.c +++ b/source/blender/blenkernel/intern/lattice.c @@ -342,7 +342,7 @@ void init_latt_deform(Object *oblatt, Object *ob) } } -void calc_latt_deform(Object *ob, float *co, float weight) +void calc_latt_deform(Object *ob, float co[3], float weight) { Lattice *lt= ob->data; float u, v, w, tu[4], tv[4], tw[4]; diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c index 7e756e853b1..71266275fbd 100644 --- a/source/blender/blenkernel/intern/library.c +++ b/source/blender/blenkernel/intern/library.c @@ -182,7 +182,7 @@ int id_make_local(ID *id, int test) if (id->flag & LIB_INDIRECT) return 0; - switch(GS(id->name)) { + switch (GS(id->name)) { case ID_SCE: return 0; /* not implemented */ case ID_LI: @@ -198,12 +198,12 @@ int id_make_local(ID *id, int test) return 1; case ID_CU: if (!test) { - make_local_curve((Curve*)id); + BKE_curve_make_local((Curve*)id); make_local_key(((Curve*)id)->key); } return 1; case ID_MB: - if (!test) make_local_mball((MetaBall*)id); + if (!test) BKE_metaball_make_local((MetaBall*)id); return 1; case ID_MA: if (!test) make_local_material((Material*)id); @@ -279,7 +279,7 @@ int id_copy(ID *id, ID **newid, int test) /* conventions: * - make shallow copy, only this ID block * - id.us of the new ID is set to 1 */ - switch(GS(id->name)) { + switch (GS(id->name)) { case ID_SCE: return 0; /* can't be copied from here */ case ID_LI: @@ -291,10 +291,10 @@ int id_copy(ID *id, ID **newid, int test) if (!test) *newid= (ID*)copy_mesh((Mesh*)id); return 1; case ID_CU: - if (!test) *newid= (ID*)copy_curve((Curve*)id); + if (!test) *newid= (ID*)BKE_curve_copy((Curve*)id); return 1; case ID_MB: - if (!test) *newid= (ID*)copy_mball((MetaBall*)id); + if (!test) *newid= (ID*)BKE_metaball_copy((MetaBall*)id); return 1; case ID_MA: if (!test) *newid= (ID*)copy_material((Material*)id); @@ -368,7 +368,7 @@ int id_unlink(ID *id, int test) Main *mainlib= G.main; ListBase *lb; - switch(GS(id->name)) { + switch (GS(id->name)) { case ID_TXT: if (test) return 1; unlink_text(mainlib, (Text*)id); @@ -425,7 +425,7 @@ int id_single_user(bContext *C, ID *id, PointerRNA *ptr, PropertyRNA *prop) ListBase *which_libbase(Main *mainlib, short type) { - switch( type ) { + switch ( type ) { case ID_SCE: return &(mainlib->scene); case ID_LI: @@ -589,7 +589,7 @@ static ID *alloc_libblock_notest(short type) { ID *id= NULL; - switch( type ) { + switch ( type ) { case ID_SCE: id= MEM_callocN(sizeof(Scene), "scene"); break; @@ -796,7 +796,7 @@ void free_libblock(ListBase *lb, void *idv) BPY_id_release(id); #endif - switch( GS(id->name) ) { /* GetShort from util.h */ + switch ( GS(id->name) ) { /* GetShort from util.h */ case ID_SCE: free_scene((Scene *)id); break; @@ -810,10 +810,10 @@ void free_libblock(ListBase *lb, void *idv) free_mesh((Mesh *)id, 1); break; case ID_CU: - free_curve((Curve *)id); + BKE_curve_free((Curve *)id); break; case ID_MB: - free_mball((MetaBall *)id); + BKE_metaball_free((MetaBall *)id); break; case ID_MA: free_material((Material *)id); @@ -886,7 +886,7 @@ void free_libblock(ListBase *lb, void *idv) free_gpencil_data((bGPdata *)id); break; case ID_MC: - free_movieclip((MovieClip *)id); + BKE_movieclip_free((MovieClip *)id); break; } @@ -1010,8 +1010,7 @@ static void IDnames_to_dyn_pupstring(DynStr *pupds, ListBase *lb, ID *link, shor BLI_dynstr_append(pupds, numstr); /* icon */ - switch(GS(id->name)) - { + switch (GS(id->name)) { case ID_MA: /* fall through */ case ID_TE: /* fall through */ case ID_IM: /* fall through */ diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c index 6d44282c60a..2dfd41f299a 100644 --- a/source/blender/blenkernel/intern/material.c +++ b/source/blender/blenkernel/intern/material.c @@ -493,7 +493,7 @@ short *give_totcolp(Object *ob) /* same as above but for ID's */ Material ***give_matarar_id(ID *id) { - switch(GS(id->name)) { + switch (GS(id->name)) { case ID_ME: return &(((Mesh *)id)->mat); break; @@ -509,7 +509,7 @@ Material ***give_matarar_id(ID *id) short *give_totcolp_id(ID *id) { - switch(GS(id->name)) { + switch (GS(id->name)) { case ID_ME: return &(((Mesh *)id)->totcol); break; @@ -525,12 +525,12 @@ short *give_totcolp_id(ID *id) static void data_delete_material_index_id(ID *id, short index) { - switch(GS(id->name)) { + switch (GS(id->name)) { case ID_ME: mesh_delete_material_index((Mesh *)id, index); break; case ID_CU: - curve_delete_material_index((Curve *)id, index); + BKE_curve_delete_material_index((Curve *)id, index); break; case ID_MB: /* meta-elems don't have materials atm */ diff --git a/source/blender/blenkernel/intern/mball.c b/source/blender/blenkernel/intern/mball.c index da5e02c17f1..73e3576b57f 100644 --- a/source/blender/blenkernel/intern/mball.c +++ b/source/blender/blenkernel/intern/mball.c @@ -65,6 +65,106 @@ #include "BKE_object.h" #include "BKE_material.h" +/* Data types */ + +typedef struct point { /* a three-dimensional point */ + float x, y, z; /* its coordinates */ +} MB_POINT; + +typedef struct vertex { /* surface vertex */ + MB_POINT position, normal; /* position and surface normal */ +} VERTEX; + +typedef struct vertices { /* list of vertices in polygonization */ + int count, max; /* # vertices, max # allowed */ + VERTEX *ptr; /* dynamically allocated */ +} VERTICES; + +typedef struct corner { /* corner of a cube */ + int i, j, k; /* (i, j, k) is index within lattice */ + float x, y, z, value; /* location and function value */ + struct corner *next; +} CORNER; + +typedef struct cube { /* partitioning cell (cube) */ + int i, j, k; /* lattice location of cube */ + CORNER *corners[8]; /* eight corners */ +} CUBE; + +typedef struct cubes { /* linked list of cubes acting as stack */ + CUBE cube; /* a single cube */ + struct cubes *next; /* remaining elements */ +} CUBES; + +typedef struct centerlist { /* list of cube locations */ + int i, j, k; /* cube location */ + struct centerlist *next; /* remaining elements */ +} CENTERLIST; + +typedef struct edgelist { /* list of edges */ + int i1, j1, k1, i2, j2, k2; /* edge corner ids */ + int vid; /* vertex id */ + struct edgelist *next; /* remaining elements */ +} EDGELIST; + +typedef struct intlist { /* list of integers */ + int i; /* an integer */ + struct intlist *next; /* remaining elements */ +} INTLIST; + +typedef struct intlists { /* list of list of integers */ + INTLIST *list; /* a list of integers */ + struct intlists *next; /* remaining elements */ +} INTLISTS; + +typedef struct process { /* parameters, function, storage */ + /* what happens here? floats, I think. */ + /* float (*function)(void); */ /* implicit surface function */ + float (*function)(float, float, float); + float size, delta; /* cube size, normal delta */ + int bounds; /* cube range within lattice */ + CUBES *cubes; /* active cubes */ + VERTICES vertices; /* surface vertices */ + CENTERLIST **centers; /* cube center hash table */ + CORNER **corners; /* corner value hash table */ + EDGELIST **edges; /* edge and vertex id hash table */ +} PROCESS; + +/* dividing scene using octal tree makes polygonisation faster */ +typedef struct ml_pointer { + struct ml_pointer *next, *prev; + struct MetaElem *ml; +} ml_pointer; + +typedef struct octal_node { + struct octal_node *nodes[8]; /* children of current node */ + struct octal_node *parent; /* parent of current node */ + struct ListBase elems; /* ListBase of MetaElem pointers (ml_pointer) */ + float x_min, y_min, z_min; /* 1st border point */ + float x_max, y_max, z_max; /* 7th border point */ + float x,y,z; /* center of node */ + int pos, neg; /* number of positive and negative MetaElements in the node */ + int count; /* number of MetaElems, which belongs to the node */ +} octal_node; + +typedef struct octal_tree { + struct octal_node *first; /* first node */ + int pos, neg; /* number of positive and negative MetaElements in the scene */ + short depth; /* number of scene subdivision */ +} octal_tree; + +struct pgn_elements { + struct pgn_elements *next, *prev; + char *data; +}; + +/* Forward declarations */ +static int vertid(CORNER *c1, CORNER *c2, PROCESS *p, MetaBall *mb); +static int setcenter(CENTERLIST *table[], int i, int j, int k); +static CORNER *setcorner(PROCESS* p, int i, int j, int k); +static void converge (MB_POINT *p1, MB_POINT *p2, float v1, float v2, + float (*function)(float, float, float), MB_POINT *p, MetaBall *mb, int f); + /* Global variables */ static float thresh= 0.6f; @@ -73,7 +173,7 @@ static MetaElem **mainb; static octal_tree *metaball_tree = NULL; /* Functions */ -void unlink_mball(MetaBall *mb) +void BKE_metaball_unlink(MetaBall *mb) { int a; @@ -85,9 +185,9 @@ void unlink_mball(MetaBall *mb) /* do not free mball itself */ -void free_mball(MetaBall *mb) +void BKE_metaball_free(MetaBall *mb) { - unlink_mball(mb); + BKE_metaball_unlink(mb); if (mb->adt) { BKE_free_animdata((ID *)mb); @@ -99,7 +199,7 @@ void free_mball(MetaBall *mb) if (mb->disp.first) freedisplist(&mb->disp); } -MetaBall *add_mball(const char *name) +MetaBall *BKE_metaball_add(const char *name) { MetaBall *mb; @@ -115,7 +215,7 @@ MetaBall *add_mball(const char *name) return mb; } -MetaBall *copy_mball(MetaBall *mb) +MetaBall *BKE_metaball_copy(MetaBall *mb) { MetaBall *mbn; int a; @@ -143,7 +243,7 @@ static void extern_local_mball(MetaBall *mb) } } -void make_local_mball(MetaBall *mb) +void BKE_metaball_make_local(MetaBall *mb) { Main *bmain= G.main; Object *ob; @@ -174,7 +274,7 @@ void make_local_mball(MetaBall *mb) extern_local_mball(mb); } else if (is_local && is_lib) { - MetaBall *mb_new= copy_mball(mb); + MetaBall *mb_new= BKE_metaball_copy(mb); mb_new->id.us= 0; /* Remap paths of new ID using old library as base. */ @@ -194,7 +294,7 @@ void make_local_mball(MetaBall *mb) /* most simple meta-element adding function * don't do context manipulation here (rna uses) */ -MetaElem *add_metaball_element(MetaBall *mb, const int type) +MetaElem *BKE_metaball_element_add(MetaBall *mb, const int type) { MetaElem *ml= MEM_callocN(sizeof(MetaElem), "metaelem"); @@ -204,7 +304,7 @@ MetaElem *add_metaball_element(MetaBall *mb, const int type) ml->s= 2.0; ml->flag= MB_SCALE_RAD; - switch(type) { + switch (type) { case MB_BALL: ml->type = MB_BALL; ml->expx= ml->expy= ml->expz= 1.0; @@ -246,7 +346,7 @@ MetaElem *add_metaball_element(MetaBall *mb, const int type) * basic MetaBall (usually with name Meta). All other MetaBalls (with * names Meta.001, Meta.002, etc) are included in this Bounding Box. */ -void tex_space_mball(Object *ob) +void BKE_metaball_tex_space_calc(Object *ob) { DispList *dl; BoundBox *bb; @@ -290,7 +390,7 @@ void tex_space_mball(Object *ob) boundbox_set_from_min_max(bb, min, max); } -float *make_orco_mball(Object *ob, ListBase *dispbase) +float *BKE_metaball_make_orco(Object *ob, ListBase *dispbase) { BoundBox *bb; DispList *dl; @@ -342,7 +442,7 @@ float *make_orco_mball(Object *ob, ListBase *dispbase) * It test last character of Object ID name. If last character * is digit it return 0, else it return 1. */ -int is_basis_mball(Object *ob) +int BKE_metaball_is_basis(Object *ob) { int len; @@ -353,7 +453,7 @@ int is_basis_mball(Object *ob) } /* return nonzero if ob1 is a basis mball for ob */ -int is_mball_basis_for (Object *ob1, Object *ob2) +int BKE_metaball_is_basis_for (Object *ob1, Object *ob2) { int basis1nr, basis2nr; char basis1name[MAX_ID_NAME], basis2name[MAX_ID_NAME]; @@ -361,7 +461,7 @@ int is_mball_basis_for (Object *ob1, Object *ob2) BLI_split_name_num(basis1name, &basis1nr, ob1->id.name+2, '.'); BLI_split_name_num(basis2name, &basis2nr, ob2->id.name+2, '.'); - if (!strcmp(basis1name, basis2name)) return is_basis_mball(ob1); + if (!strcmp(basis1name, basis2name)) return BKE_metaball_is_basis(ob1); else return 0; } @@ -371,7 +471,7 @@ int is_mball_basis_for (Object *ob1, Object *ob2) * are copied to all metaballs in same "group" (metaballs with same base name: MBall, * MBall.001, MBall.002, etc). The most important is to copy properties to the base metaball, * because this metaball influence polygonisation of metaballs. */ -void copy_mball_properties(Scene *scene, Object *active_object) +void BKE_metaball_properties_copy(Scene *scene, Object *active_object) { Scene *sce_iter= scene; Base *base; @@ -416,7 +516,7 @@ void copy_mball_properties(Scene *scene, Object *active_object) * * warning!, is_basis_mball() can fail on returned object, see long note above. */ -Object *find_basis_mball(Scene *scene, Object *basis) +Object *BKE_metaball_basis_find(Scene *scene, Object *basis) { Scene *sce_iter= scene; Base *base; @@ -522,14 +622,14 @@ Object *find_basis_mball(Scene *scene, Object *basis) /* **************** POLYGONIZATION ************************ */ -void calc_mballco(MetaElem *ml, float vec[3]) +static void calc_mballco(MetaElem *ml, float vec[3]) { if (ml->mat) { - mul_m4_v3((float ( * )[4])ml->mat, vec); + mul_m4_v3((float (*)[4])ml->mat, vec); } } -float densfunc(MetaElem *ball, float x, float y, float z) +static float densfunc(MetaElem *ball, float x, float y, float z) { float dist2 = 0.0, dx, dy, dz; float vec[3]; @@ -537,7 +637,7 @@ float densfunc(MetaElem *ball, float x, float y, float z) vec[0]= x; vec[1]= y; vec[2]= z; - mul_m4_v3((float ( * )[4])ball->imat, vec); + mul_m4_v3((float (*)[4])ball->imat, vec); dx= vec[0]; dy= vec[1]; dz= vec[2]; @@ -605,7 +705,7 @@ float densfunc(MetaElem *ball, float x, float y, float z) } } -octal_node* find_metaball_octal_node(octal_node *node, float x, float y, float z, short depth) +static octal_node* find_metaball_octal_node(octal_node *node, float x, float y, float z, short depth) { if (!depth) return node; @@ -673,7 +773,7 @@ octal_node* find_metaball_octal_node(octal_node *node, float x, float y, float z return node; } -float metaball(float x, float y, float z) +static float metaball(float x, float y, float z) /* float x, y, z; */ { struct octal_node *node; @@ -713,7 +813,7 @@ static int *indices=NULL; static int totindex, curindex; -void accum_mballfaces(int i1, int i2, int i3, int i4) +static void accum_mballfaces(int i1, int i2, int i3, int i4) { int *newi, *cur; /* static int i=0; I would like to delete altogether, but I don't dare to, yet */ @@ -746,7 +846,7 @@ void accum_mballfaces(int i1, int i2, int i3, int i4) } /* ******************* MEMORY MANAGEMENT *********************** */ -void *new_pgn_element(int size) +static void *new_pgn_element(int size) { /* during polygonize 1000s of elements are allocated * and never freed in between. Freeing only done at the end. @@ -789,7 +889,7 @@ void *new_pgn_element(int size) return cur->data; } -void freepolygonize(PROCESS *p) +static void freepolygonize(PROCESS *p) { MEM_freeN(p->corners); MEM_freeN(p->edges); @@ -832,7 +932,7 @@ static int rightface[12] = { /* docube: triangulate the cube directly, without decomposition */ -void docube(CUBE *cube, PROCESS *p, MetaBall *mb) +static void docube(CUBE *cube, PROCESS *p, MetaBall *mb) { INTLISTS *polys; CORNER *c1, *c2; @@ -853,7 +953,7 @@ void docube(CUBE *cube, PROCESS *p, MetaBall *mb) count++; } if (count>2) { - switch(count) { + switch (count) { case 3: accum_mballfaces(indexar[2], indexar[1], indexar[0], 0); break; @@ -900,7 +1000,7 @@ void docube(CUBE *cube, PROCESS *p, MetaBall *mb) * if surface crosses face, compute other four corners of adjacent cube * and add new cube to cube stack */ -void testface(int i, int j, int k, CUBE* old, int bit, int c1, int c2, int c3, int c4, PROCESS *p) +static void testface(int i, int j, int k, CUBE* old, int bit, int c1, int c2, int c3, int c4, PROCESS *p) { CUBE newc; CUBES *oldcubes = p->cubes; @@ -951,7 +1051,7 @@ void testface(int i, int j, int k, CUBE* old, int bit, int c1, int c2, int c3, i /* setcorner: return corner with the given lattice location * set (and cache) its function value */ -CORNER *setcorner (PROCESS* p, int i, int j, int k) +static CORNER *setcorner (PROCESS* p, int i, int j, int k) { /* for speed, do corner value caching here */ CORNER *c; @@ -986,7 +1086,7 @@ CORNER *setcorner (PROCESS* p, int i, int j, int k) /* nextcwedge: return next clockwise edge from given edge around given face */ -int nextcwedge (int edge, int face) +static int nextcwedge (int edge, int face) { switch (edge) { case LB: @@ -1020,7 +1120,7 @@ int nextcwedge (int edge, int face) /* otherface: return face adjoining edge that is not the given face */ -int otherface (int edge, int face) +static int otherface (int edge, int face) { int other = leftface[edge]; return face == other? rightface[edge] : other; @@ -1029,7 +1129,7 @@ int otherface (int edge, int face) /* makecubetable: create the 256 entry table for cubical polygonization */ -void makecubetable (void) +static void makecubetable (void) { static int isdone= 0; int i, e, c, done[12], pos[8]; @@ -1070,7 +1170,7 @@ void makecubetable (void) } } -void BKE_freecubetable(void) +void BKE_metaball_cubeTable_free(void) { int i; INTLISTS *lists, *nlists; @@ -1100,7 +1200,7 @@ void BKE_freecubetable(void) /* setcenter: set (i,j,k) entry of table[] * return 1 if already set; otherwise, set and return 0 */ -int setcenter(CENTERLIST *table[], int i, int j, int k) +static int setcenter(CENTERLIST *table[], int i, int j, int k) { int index; CENTERLIST *newc, *l, *q; @@ -1125,7 +1225,7 @@ int setcenter(CENTERLIST *table[], int i, int j, int k) /* setedge: set vertex id for edge */ -void setedge (EDGELIST *table[], +static void setedge (EDGELIST *table[], int i1, int j1, int k1, int i2, int j2, int k2, @@ -1161,7 +1261,7 @@ void setedge (EDGELIST *table[], /* getedge: return vertex id for edge; return -1 if not set */ -int getedge (EDGELIST *table[], +static int getedge (EDGELIST *table[], int i1, int j1, int k1, int i2, int j2, int k2) { @@ -1179,10 +1279,13 @@ int getedge (EDGELIST *table[], k2=t; } q = table[HASH(i1, j1, k1)+HASH(i2, j2, k2)]; - for (; q != NULL; q = q->next) + for (; q != NULL; q = q->next) { if (q->i1 == i1 && q->j1 == j1 && q->k1 == k1 && q->i2 == i2 && q->j2 == j2 && q->k2 == k2) + { return q->vid; + } + } return -1; } @@ -1199,7 +1302,7 @@ int getedge (EDGELIST *table[], /* addtovertices: add v to sequence of vertices */ -void addtovertices (VERTICES *vertices, VERTEX v) +static void addtovertices (VERTICES *vertices, VERTEX v) { if (vertices->count == vertices->max) { int i; @@ -1217,7 +1320,7 @@ void addtovertices (VERTICES *vertices, VERTEX v) /* vnormal: compute unit length surface normal at point */ -void vnormal (MB_POINT *point, PROCESS *p, MB_POINT *v) +static void vnormal (MB_POINT *point, PROCESS *p, MB_POINT *v) { float delta= 0.2f*p->delta; float f = p->function(point->x, point->y, point->z); @@ -1267,7 +1370,7 @@ void vnormal (MB_POINT *point, PROCESS *p, MB_POINT *v) } -int vertid (CORNER *c1, CORNER *c2, PROCESS *p, MetaBall *mb) +static int vertid (CORNER *c1, CORNER *c2, PROCESS *p, MetaBall *mb) { VERTEX v; MB_POINT a, b; @@ -1296,7 +1399,7 @@ int vertid (CORNER *c1, CORNER *c2, PROCESS *p, MetaBall *mb) /* converge: from two points of differing sign, converge to zero crossing */ /* watch it: p1 and p2 are used to calculate */ -void converge (MB_POINT *p1, MB_POINT *p2, float v1, float v2, +static void converge (MB_POINT *p1, MB_POINT *p2, float v1, float v2, float (*function)(float, float, float), MB_POINT *p, MetaBall *mb, int f) { int i = 0; @@ -1396,7 +1499,7 @@ void converge (MB_POINT *p1, MB_POINT *p2, float v1, float v2, } /* ************************************** */ -void add_cube(PROCESS *mbproc, int i, int j, int k, int count) +static void add_cube(PROCESS *mbproc, int i, int j, int k, int count) { CUBES *ncube; int n; @@ -1426,7 +1529,7 @@ void add_cube(PROCESS *mbproc, int i, int j, int k, int count) } -void find_first_points(PROCESS *mbproc, MetaBall *mb, int a) +static void find_first_points(PROCESS *mbproc, MetaBall *mb, int a) { MB_POINT IN, in, OUT, out; /*point;*/ MetaElem *ml; @@ -1546,7 +1649,7 @@ void find_first_points(PROCESS *mbproc, MetaBall *mb, int a) } } -void polygonize(PROCESS *mbproc, MetaBall *mb) +static void polygonize(PROCESS *mbproc, MetaBall *mb) { CUBE c; int a; @@ -1586,7 +1689,7 @@ void polygonize(PROCESS *mbproc, MetaBall *mb) } } -float init_meta(Scene *scene, Object *ob) /* return totsize */ +static float init_meta(Scene *scene, Object *ob) /* return totsize */ { Scene *sce_iter= scene; Base *base; @@ -1738,7 +1841,7 @@ float init_meta(Scene *scene, Object *ob) /* return totsize */ /* transformation of Metalem bb */ for (i=0; i<8; i++) - mul_m4_v3((float ( * )[4])mat, mainb[a]->bb->vec[i]); + mul_m4_v3((float (*)[4])mat, mainb[a]->bb->vec[i]); /* find max and min of transformed bb */ for (i=0; i<8; i++) { @@ -1812,7 +1915,7 @@ float init_meta(Scene *scene, Object *ob) /* return totsize */ /* if MetaElem lies in node, then node includes MetaElem pointer (ml_p) * pointing at MetaElem (ml) */ -void fill_metaball_octal_node(octal_node *node, MetaElem *ml, short i) +static void fill_metaball_octal_node(octal_node *node, MetaElem *ml, short i) { ml_pointer *ml_p; @@ -1844,7 +1947,7 @@ void fill_metaball_octal_node(octal_node *node, MetaElem *ml, short i) * +------+------+ * */ -void subdivide_metaball_octal_node(octal_node *node, float size_x, float size_y, float size_z, short depth) +static void subdivide_metaball_octal_node(octal_node *node, float size_x, float size_y, float size_z, short depth) { MetaElem *ml; ml_pointer *ml_p; @@ -2101,7 +2204,7 @@ void subdivide_metaball_octal_node(octal_node *node, float size_x, float size_y, } /* free all octal nodes recursively */ -void free_metaball_octal_node(octal_node *node) +static void free_metaball_octal_node(octal_node *node) { int a; for (a=0;a<8;a++) { @@ -2112,7 +2215,7 @@ void free_metaball_octal_node(octal_node *node) } /* If scene include more then one MetaElem, then octree is used */ -void init_metaball_octal_tree(int depth) +static void init_metaball_octal_tree(int depth) { struct octal_node *node; ml_pointer *ml_p; @@ -2170,7 +2273,7 @@ void init_metaball_octal_tree(int depth) subdivide_metaball_octal_node(node, size[0], size[1], size[2], metaball_tree->depth); } -void metaball_polygonize(Scene *scene, Object *ob, ListBase *dispbase) +void BKE_metaball_polygonize(Scene *scene, Object *ob, ListBase *dispbase) { PROCESS mbproc; MetaBall *mb; diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c index 7280af18493..c7f6bf93831 100644 --- a/source/blender/blenkernel/intern/mesh.c +++ b/source/blender/blenkernel/intern/mesh.c @@ -128,18 +128,22 @@ static int customdata_compare(CustomData *c1, CustomData *c2, Mesh *m1, Mesh *m2 CustomDataLayer *l1, *l2; int i, i1=0, i2=0, tot, j; - for (i=0; itotlayer; i++) { - if (ELEM7(c1->layers[i].type, CD_MVERT, CD_MEDGE, CD_MPOLY, - CD_MLOOPUV, CD_MLOOPCOL, CD_MTEXPOLY, CD_MDEFORMVERT)) + for (i = 0; i < c1->totlayer; i++) { + if (ELEM7(c1->layers[i].type, CD_MVERT, CD_MEDGE, CD_MPOLY, + CD_MLOOPUV, CD_MLOOPCOL, CD_MTEXPOLY, CD_MDEFORMVERT)) + { i1++; + } } - - for (i=0; itotlayer; i++) { - if (ELEM7(c2->layers[i].type, CD_MVERT, CD_MEDGE, CD_MPOLY, - CD_MLOOPUV, CD_MLOOPCOL, CD_MTEXPOLY, CD_MDEFORMVERT)) + + for (i = 0; i < c2->totlayer; i++) { + if (ELEM7(c2->layers[i].type, CD_MVERT, CD_MEDGE, CD_MPOLY, + CD_MLOOPUV, CD_MLOOPCOL, CD_MTEXPOLY, CD_MDEFORMVERT)) + { i2++; + } } - + if (i1 != i2) return MESHCMP_CDLAYERS_MISMATCH; @@ -148,12 +152,16 @@ static int customdata_compare(CustomData *c1, CustomData *c2, Mesh *m1, Mesh *m2 i1 = 0; i2 = 0; for (i=0; i < tot; i++) { while (i1 < c1->totlayer && !ELEM7(l1->type, CD_MVERT, CD_MEDGE, CD_MPOLY, - CD_MLOOPUV, CD_MLOOPCOL, CD_MTEXPOLY, CD_MDEFORMVERT)) + CD_MLOOPUV, CD_MLOOPCOL, CD_MTEXPOLY, CD_MDEFORMVERT)) + { i1++, l1++; + } - while (i2 < c2->totlayer && !ELEM7(l2->type, CD_MVERT, CD_MEDGE, CD_MPOLY, - CD_MLOOPUV, CD_MLOOPCOL, CD_MTEXPOLY, CD_MDEFORMVERT)) + while (i2 < c2->totlayer && !ELEM7(l2->type, CD_MVERT, CD_MEDGE, CD_MPOLY, + CD_MLOOPUV, CD_MLOOPCOL, CD_MTEXPOLY, CD_MDEFORMVERT)) + { i2++, l2++; + } if (l1->type == CD_MVERT) { MVert *v1 = l1->data; @@ -327,7 +335,7 @@ static void mesh_ensure_tessellation_customdata(Mesh *me) /* TODO - add some --debug-mesh option */ if (G.debug & G_DEBUG) { - /* note: this warning may be un-called for if we are inirializing the mesh for the + /* note: this warning may be un-called for if we are initializing the mesh for the * first time from bmesh, rather then giving a warning about this we could be smarter * and check if there was any data to begin with, for now just print the warning with * some info to help troubleshoot whats going on - campbell */ @@ -1104,7 +1112,7 @@ void mesh_strip_loose_polysloops(Mesh *me) b++; } else { - /* XXX Theorically, we should be able to not do this, as no remaining poly + /* XXX Theoretically, we should be able to not do this, as no remaining poly * should use any stripped loop. But for security's sake... */ new_idx[a] = -a; } @@ -1128,7 +1136,7 @@ void mesh_strip_loose_edges(Mesh *me) MEdge *e; MLoop *l; int a, b; - unsigned int *new_idx = MEM_mallocN(sizeof(int) * me->totedge, "strip_loose_edges old2new idx mapping for loops."); + unsigned int *new_idx = MEM_mallocN(sizeof(int) * me->totedge, __func__); for (a = b = 0, e = me->medge; a < me->totedge; a++, e++) { if (e->v1 != e->v2) { @@ -1154,6 +1162,8 @@ void mesh_strip_loose_edges(Mesh *me) for (a = 0, l = me->mloop; a < me->totloop; a++, l++) { l->e = new_idx[l->e]; } + + MEM_freeN(new_idx); } void mball_to_mesh(ListBase *lb, Mesh *me) @@ -1606,7 +1616,7 @@ void mesh_to_curve(Scene *scene, Object *ob) BLI_edgehash_free(eh, NULL); if (edges.first) { - Curve *cu = add_curve(ob->id.name+2, OB_CURVE); + Curve *cu = BKE_curve_add(ob->id.name+2, OB_CURVE); cu->flag |= CU_3D; while (edges.first) { @@ -1865,8 +1875,8 @@ void mesh_calc_normals(MVert *mverts, int numVerts, MLoop *mloop, MPoly *mpolys, BLI_array_empty(vertcos); BLI_array_empty(vertnos); - BLI_array_growitems(vertcos, mp->totloop); - BLI_array_growitems(vertnos, mp->totloop); + BLI_array_grow_items(vertcos, mp->totloop); + BLI_array_grow_items(vertnos, mp->totloop); for (j=0; j < mp->totloop; j++) { int vindex = ml[j].v; @@ -1875,7 +1885,7 @@ void mesh_calc_normals(MVert *mverts, int numVerts, MLoop *mloop, MPoly *mpolys, } BLI_array_empty(edgevecbuf); - BLI_array_growitems(edgevecbuf, mp->totloop); + BLI_array_grow_items(edgevecbuf, mp->totloop); accumulate_vertex_normals_poly(vertnos, pnors[i], vertcos, edgevecbuf, mp->totloop); } @@ -2412,8 +2422,8 @@ int mesh_recalcTessellation(CustomData *fdata, #ifdef USE_TESSFACE_SPEEDUP #define ML_TO_MF(i1, i2, i3) \ - BLI_array_growone(mface_to_poly_map); \ - BLI_array_growone(mface); \ + BLI_array_grow_one(mface_to_poly_map); \ + BLI_array_grow_one(mface); \ mface_to_poly_map[mface_index] = poly_index; \ mf= &mface[mface_index]; \ /* set loop indices, transformed to vert indices later */ \ @@ -2431,8 +2441,8 @@ int mesh_recalcTessellation(CustomData *fdata, /* ALMOST IDENTICAL TO DEFINE ABOVE (see EXCEPTION) */ #define ML_TO_MF_QUAD() \ - BLI_array_growone(mface_to_poly_map); \ - BLI_array_growone(mface); \ + BLI_array_grow_one(mface_to_poly_map); \ + BLI_array_grow_one(mface); \ mface_to_poly_map[mface_index] = poly_index; \ mf= &mface[mface_index]; \ /* set loop indices, transformed to vert indices later */ \ @@ -2490,10 +2500,10 @@ int mesh_recalcTessellation(CustomData *fdata, totfilltri = BLI_edgefill(&sf_ctx, FALSE); if (totfilltri) { - BLI_array_growitems(mface_to_poly_map, totfilltri); - BLI_array_growitems(mface, totfilltri); + BLI_array_grow_items(mface_to_poly_map, totfilltri); + BLI_array_grow_items(mface, totfilltri); if (poly_orig_index) { - BLI_array_growitems(mface_orig_index, totfilltri); + BLI_array_grow_items(mface_orig_index, totfilltri); } for (f = sf_ctx.fillfacebase.first; f; f = f->next, mf++) { @@ -2662,7 +2672,7 @@ int mesh_mpoly_to_mface(struct CustomData *fdata, struct CustomData *ldata, k = 0; for (i = 0; itotloop, 3, 4)) { - BLI_array_growone(mface); + BLI_array_grow_one(mface); mf = &mface[k]; mf->mat_nr = mp->mat_nr; @@ -3052,10 +3062,13 @@ void mesh_flush_hidden_from_verts(const MVert *mvert, for (i = 0; i < totedge; i++) { MEdge *e = &medge[i]; if (mvert[e->v1].flag & ME_HIDE || - mvert[e->v2].flag & ME_HIDE) + mvert[e->v2].flag & ME_HIDE) + { e->flag |= ME_HIDE; - else + } + else { e->flag &= ~ME_HIDE; + } } for (i = 0; i < totpoly; i++) { MPoly *p = &mpoly[i]; diff --git a/source/blender/blenkernel/intern/mesh_validate.c b/source/blender/blenkernel/intern/mesh_validate.c index aebbcd4208d..446ad399e11 100644 --- a/source/blender/blenkernel/intern/mesh_validate.c +++ b/source/blender/blenkernel/intern/mesh_validate.c @@ -240,9 +240,23 @@ int BKE_mesh_validate_arrays(Mesh *mesh, PRINT(" loop %u has invalid vert reference (%u)\n", sp->loopstart + j, ml->v); sp->invalid = TRUE; } + + mverts[ml->v].flag |= ME_VERT_TMP_TAG; *v = ml->v; } + /* is the same vertex used more then once */ + if (!sp->invalid) { + v = sp->verts; + for (j = 0; j < mp->totloop; j++, v++) { + if ((mverts[*v].flag & ME_VERT_TMP_TAG) == 0) { + PRINT(" poly %u has duplicate vert reference at corner (%u)\n", i, j); + sp->invalid = TRUE; + } + mverts[*v].flag &= ~ME_VERT_TMP_TAG; + } + } + if (sp->invalid) continue; diff --git a/source/blender/blenkernel/intern/modifiers_bmesh.c b/source/blender/blenkernel/intern/modifiers_bmesh.c index 573b8a725b3..99bb3468320 100644 --- a/source/blender/blenkernel/intern/modifiers_bmesh.c +++ b/source/blender/blenkernel/intern/modifiers_bmesh.c @@ -117,8 +117,8 @@ void DM_to_bmesh_ex(DerivedMesh *dm, BMesh *bm) BLI_array_empty(verts); BLI_array_empty(edges); - BLI_array_growitems(verts, mp->totloop); - BLI_array_growitems(edges, mp->totloop); + BLI_array_grow_items(verts, mp->totloop); + BLI_array_grow_items(edges, mp->totloop); ml = mloop + mp->loopstart; for (j = 0; j < mp->totloop; j++, ml++) { diff --git a/source/blender/blenkernel/intern/movieclip.c b/source/blender/blenkernel/intern/movieclip.c index 9f8585675e3..d548d7589bb 100644 --- a/source/blender/blenkernel/intern/movieclip.c +++ b/source/blender/blenkernel/intern/movieclip.c @@ -450,7 +450,7 @@ static MovieClip *movieclip_alloc(const char *name) * otherwise creates new. * does not load ibuf itself * pass on optional frame for #name images */ -MovieClip *BKE_add_movieclip_file(const char *name) +MovieClip *BKE_movieclip_file_add(const char *name) { MovieClip *clip; MovieClipUser user; @@ -517,7 +517,7 @@ static void real_ibuf_size(MovieClip *clip, MovieClipUser *user, ImBuf *ibuf, in *height = ibuf->y; if (clip->flag & MCLIP_USE_PROXY) { - switch(user->render_size) { + switch (user->render_size) { case MCLIP_PROXY_RENDER_SIZE_25: (*width) *= 4; (*height) *= 4; @@ -1149,14 +1149,14 @@ void BKE_movieclip_build_proxy_frame(MovieClip *clip, int clip_flag, struct Movi } } -void free_movieclip(MovieClip *clip) +void BKE_movieclip_free(MovieClip *clip) { free_buffers(clip); BKE_tracking_free(&clip->tracking); } -void unlink_movieclip(Main *bmain, MovieClip *clip) +void BKE_movieclip_unlink(Main *bmain, MovieClip *clip) { bScreen *scr; ScrArea *area; diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c index 7580f2eee4d..d7212e5eaf9 100644 --- a/source/blender/blenkernel/intern/multires.c +++ b/source/blender/blenkernel/intern/multires.c @@ -835,7 +835,7 @@ static void multires_subdivide(MultiresModifierData *mmd, Object *ob, int totlvl MDisps *mdisps; int lvl= mmd->totlvl; - if (totlvl > multires_max_levels) + if ((totlvl > multires_max_levels) || (me->totpoly == 0)) return; multires_force_update(ob); @@ -1017,7 +1017,7 @@ static void multiresModifier_disp_run(DerivedMesh *dm, Mesh *me, DerivedMesh *dm column_vectors_to_mat3(mat, tx, ty, no); - switch(op) { + switch (op) { case APPLY_DISPLACEMENTS: /* Convert displacement to object space * and add to grid points */ diff --git a/source/blender/blenkernel/intern/navmesh_conversion.c b/source/blender/blenkernel/intern/navmesh_conversion.c index 34e0be1de92..23d2f50c3f7 100644 --- a/source/blender/blenkernel/intern/navmesh_conversion.c +++ b/source/blender/blenkernel/intern/navmesh_conversion.c @@ -57,8 +57,7 @@ BLI_INLINE int left(const float* a, const float* b, const float* c) int polyNumVerts(const unsigned short* p, const int vertsPerPoly) { int i, nv = 0; - for (i=0; igetNumVerts(dm); - if (nverts>=0xffff) - { + if (nverts>=0xffff) { printf("Converting navmesh: Error! Too many vertices. Max number of vertices %d\n", 0xffff); return 0; } @@ -128,8 +125,7 @@ int buildRawVertIndicesData(DerivedMesh* dm, int *nverts_r, float **verts_r, dm->getVertCos(dm, (float(*)[3])verts); //flip coordinates - for (vi=0; vigetNumTessFaces(dm); faces = dm->getTessFaceArray(dm); ntris = nfaces; - for (fi=0; fiv4) ntris++; @@ -149,15 +144,13 @@ int buildRawVertIndicesData(DerivedMesh* dm, int *nverts_r, float **verts_r, tris = MEM_callocN(sizeof(unsigned short)*3*ntris, "buildRawVertIndicesData tris"); tri = tris; triIdx = 0; - for (fi=0; fiv1; tri[3*triIdx+1] = (unsigned short) face->v3; tri[3*triIdx+2] = (unsigned short) face->v2; trisToFacesMap[triIdx++]=fi; - if (face->v4) - { + if (face->v4) { tri[3*triIdx+0] = (unsigned short) face->v1; tri[3*triIdx+1] = (unsigned short) face->v4; tri[3*triIdx+2] = (unsigned short) face->v3; @@ -187,8 +180,7 @@ int buildPolygonsByDetailedMeshes(const int vertsPerPoly, const int npolys, unsigned short* newPoly = MEM_callocN(sizeof(unsigned short)*capacity, "buildPolygonsByDetailedMeshes newPoly"); memset(newPoly, 0xff, sizeof(unsigned short)*capacity); - for (polyidx=0; polyidx0) - { + for (i=0; i< ntris; i++) { + if (recastData[trisToFacesMap[trisMapping[i]]]>0) { validTriStart = i; break; } } - if (validTriStart<0) - { + if (validTriStart<0) { printf("Converting navmesh: Error! No valid polygons in mesh\n"); MEM_freeN(trisMapping); return 0; @@ -396,8 +367,7 @@ int buildNavMeshData(const int nverts, const float* verts, //and reserve memory for adjacency info dtris = MEM_callocN(sizeof(unsigned short)*3*2*ndtris, "buildNavMeshData dtris"); memset(dtris, 0xffff, sizeof(unsigned short)*3*2*ndtris); - for (i=0; iend = (float)ceil((double)info.length * FPS); } - else + else #endif { strip->end = 10.0f; @@ -373,7 +373,7 @@ NlaStrip *add_nla_soundstrip (Scene *scene, Speaker *speaker) strip->extendmode = NLASTRIP_EXTEND_NOTHING; /* nothing to extend... */ /* strip should be referenced as-is */ - strip->scale= 1.0f; + strip->scale = 1.0f; strip->repeat = 1.0f; /* return this strip */ diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index bc9411b7e02..3ffd8115914 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -319,8 +319,8 @@ void free_object(Object *ob) id->us--; if (id->us==0) { if (ob->type==OB_MESH) unlink_mesh(ob->data); - else if (ob->type==OB_CURVE) unlink_curve(ob->data); - else if (ob->type==OB_MBALL) unlink_mball(ob->data); + else if (ob->type==OB_CURVE) BKE_curve_unlink(ob->data); + else if (ob->type==OB_MBALL) BKE_metaball_unlink(ob->data); } ob->data= NULL; } @@ -459,7 +459,7 @@ void unlink_object(Object *ob) } } else if (ELEM(OB_MBALL, ob->type, obt->type)) { - if (is_mball_basis_for (obt, ob)) + if (BKE_metaball_is_basis_for (obt, ob)) obt->recalc|= OB_RECALC_DATA; } @@ -625,10 +625,11 @@ void unlink_object(Object *ob) #endif if (sce->ed) { Sequence *seq; - SEQ_BEGIN(sce->ed, seq) - if (seq->scene_camera==ob) { - seq->scene_camera= NULL; + SEQ_BEGIN (sce->ed, seq) { + if (seq->scene_camera == ob) { + seq->scene_camera = NULL; } + } SEQ_END } } @@ -748,10 +749,10 @@ static void *add_obdata_from_type(int type) { switch (type) { case OB_MESH: return add_mesh("Mesh"); - case OB_CURVE: return add_curve("Curve", OB_CURVE); - case OB_SURF: return add_curve("Surf", OB_SURF); - case OB_FONT: return add_curve("Text", OB_FONT); - case OB_MBALL: return add_mball("Meta"); + case OB_CURVE: return BKE_curve_add("Curve", OB_CURVE); + case OB_SURF: return BKE_curve_add("Surf", OB_SURF); + case OB_FONT: return BKE_curve_add("Text", OB_FONT); + case OB_MBALL: return BKE_metaball_add("Meta"); case OB_CAMERA: return add_camera("Camera"); case OB_LAMP: return add_lamp("Lamp"); case OB_LATTICE: return add_lattice("Lattice"); @@ -1483,7 +1484,7 @@ void object_rot_to_mat3(Object *ob, float mat[][3]) void object_mat3_to_rot(Object *ob, float mat[][3], short use_compat) { - switch(ob->rotmode) { + switch (ob->rotmode) { case ROT_MODE_QUAT: { float dquat[4]; @@ -1821,7 +1822,7 @@ static void give_parvert(Object *par, int nr, float vec[3]) ListBase *nurbs; cu= par->data; - nurbs= BKE_curve_nurbs(cu); + nurbs= BKE_curve_nurbs_get(cu); nu= nurbs->first; count= 0; @@ -2025,7 +2026,7 @@ static void solve_parenting (Scene *scene, Object *ob, Object *par, float obmat[ if (ob->partype & PARSLOW) copy_m4_m4(slowmat, obmat); - switch(ob->partype & PARTYPE) { + switch (ob->partype & PARTYPE) { case PAROBJECT: ok= 0; if (par->type==OB_CURVE) { @@ -2260,14 +2261,14 @@ void minmax_object(Object *ob, float min[3], float max[3]) int a; short change= FALSE; - switch(ob->type) { + switch (ob->type) { case OB_CURVE: case OB_FONT: case OB_SURF: { Curve *cu= ob->data; - if (cu->bb==NULL) tex_space_curve(cu); + if (cu->bb==NULL) BKE_curve_tex_space_calc(cu); bb= *(cu->bb); for (a=0; a<8; a++) { @@ -2568,7 +2569,7 @@ void object_handle_update(Scene *scene, Object *ob) } /* includes all keys and modifiers */ - switch(ob->type) { + switch (ob->type) { case OB_MESH: { #if 0 // XXX, comment for 2.56a release, background wont set 'scene->customdata_mask' @@ -2784,8 +2785,7 @@ int ray_hit_boundbox(struct BoundBox *bb, float ray_start[3], float ray_normal[3 int result = 0; int i; - for (i = 0; i < 12 && result == 0; i++) - { + for (i = 0; i < 12 && result == 0; i++) { float lambda; int v1, v2, v3; v1 = triangle_indexes[i][0]; @@ -2812,8 +2812,7 @@ int object_insert_ptcache(Object *ob) BLI_sortlist(&ob->pc_ids, pc_cmp); - for (link=ob->pc_ids.first, i = 0; link; link=link->next, i++) - { + for (link=ob->pc_ids.first, i = 0; link; link=link->next, i++) { int index = GET_INT_FROM_POINTER(link->data); if (i < index) @@ -2931,7 +2930,7 @@ static KeyBlock *insert_curvekey(Scene *scene, Object *ob, const char *name, int Curve *cu= ob->data; Key *key= cu->key; KeyBlock *kb; - ListBase *lb= BKE_curve_nurbs(cu); + ListBase *lb= BKE_curve_nurbs_get(cu); int newkey= 0; if (key==NULL) { @@ -2958,7 +2957,7 @@ static KeyBlock *insert_curvekey(Scene *scene, Object *ob, const char *name, int /* create new block with prepared data */ kb = add_keyblock_ctime(key, name, FALSE); - kb->totelem= count_curveverts(lb); + kb->totelem= BKE_nurbList_verts_count(lb); kb->data= data; } diff --git a/source/blender/blenkernel/intern/ocean.c b/source/blender/blenkernel/intern/ocean.c index 907de7888cb..5ba1b3d86c3 100644 --- a/source/blender/blenkernel/intern/ocean.c +++ b/source/blender/blenkernel/intern/ocean.c @@ -196,15 +196,13 @@ static float Ph(struct Ocean* o, float kx,float kz ) float tmp; float k2 = kx*kx + kz*kz; - if (k2 == 0.0f) - { + if (k2 == 0.0f) { return 0.0f; // no DC component } // damp out the waves going in the direction opposite the wind tmp = (o->_wx * kx + o->_wz * kz)/sqrtf(k2); - if (tmp < 0) - { + if (tmp < 0) { tmp *= o->_damp_reflections; } @@ -421,18 +419,15 @@ void BKE_ocean_eval_uv_catrom(struct Ocean *oc, struct OceanResult *ocr, float u frac_z) { - if (oc->_do_disp_y) - { + if (oc->_do_disp_y) { ocr->disp[1] = INTERP(oc->_disp_y); } - if (oc->_do_normals) - { + if (oc->_do_normals) { ocr->normal[0] = INTERP(oc->_N_x); ocr->normal[1] = oc->_N_y/*INTERP(oc->_N_y) (MEM01)*/; ocr->normal[2] = INTERP(oc->_N_z); } - if (oc->_do_chop) - { + if (oc->_do_chop) { ocr->disp[0] = INTERP(oc->_disp_x); ocr->disp[2] = INTERP(oc->_disp_z); } @@ -441,8 +436,7 @@ void BKE_ocean_eval_uv_catrom(struct Ocean *oc, struct OceanResult *ocr, float u ocr->disp[2] = 0.0; } - if (oc->_do_jacobian) - { + if (oc->_do_jacobian) { compute_eigenstuff(ocr, INTERP(oc->_Jxx),INTERP(oc->_Jzz),INTERP(oc->_Jxz)); } } @@ -474,8 +468,7 @@ void BKE_ocean_eval_ij(struct Ocean *oc, struct OceanResult *ocr, int i,int j) ocr->disp[1] = oc->_do_disp_y ? oc->_disp_y[i*oc->_N+j] : 0.0f; - if (oc->_do_chop) - { + if (oc->_do_chop) { ocr->disp[0] = oc->_disp_x[i*oc->_N+j]; ocr->disp[2] = oc->_disp_z[i*oc->_N+j]; } @@ -484,8 +477,7 @@ void BKE_ocean_eval_ij(struct Ocean *oc, struct OceanResult *ocr, int i,int j) ocr->disp[2] = 0.0f; } - if (oc->_do_normals) - { + if (oc->_do_normals) { ocr->normal[0] = oc->_N_x[i*oc->_N+j]; ocr->normal[1] = oc->_N_y/*oc->_N_y[i*oc->_N+j] (MEM01)*/; ocr->normal[2] = oc->_N_z[i*oc->_N+j]; @@ -493,8 +485,7 @@ void BKE_ocean_eval_ij(struct Ocean *oc, struct OceanResult *ocr, int i,int j) normalize_v3(ocr->normal); } - if (oc->_do_jacobian) - { + if (oc->_do_jacobian) { compute_eigenstuff(ocr, oc->_Jxx[i*oc->_N+j],oc->_Jzz[i*oc->_N+j],oc->_Jxz[i*oc->_N+j]); } @@ -511,12 +502,10 @@ void BKE_simulate_ocean(struct Ocean *o, float t, float scale, float chop_amount // compute a new htilda #pragma omp parallel for private(i, j) - for (i = 0 ; i < o->_M ; ++i) - { + for (i = 0 ; i < o->_M ; ++i) { // note the <= _N/2 here, see the fftw doco about // the mechanics of the complex->real fft storage - for ( j = 0 ; j <= o->_N / 2 ; ++j) - { + for ( j = 0 ; j <= o->_N / 2 ; ++j) { fftw_complex exp_param1; fftw_complex exp_param2; fftw_complex conj_param; @@ -541,8 +530,7 @@ void BKE_simulate_ocean(struct Ocean *o, float t, float scale, float chop_amount #pragma omp section { - if (o->_do_disp_y) - { + if (o->_do_disp_y) { // y displacement fftw_execute(o->_disp_y_plan); } @@ -550,13 +538,10 @@ void BKE_simulate_ocean(struct Ocean *o, float t, float scale, float chop_amount #pragma omp section { - if (o->_do_chop) - { + if (o->_do_chop) { // x displacement - for ( i = 0 ; i < o->_M ; ++i) - { - for ( j = 0 ; j <= o->_N / 2 ; ++j) - { + for ( i = 0 ; i < o->_M ; ++i) { + for ( j = 0 ; j <= o->_N / 2 ; ++j) { fftw_complex mul_param; fftw_complex minus_i; @@ -575,13 +560,10 @@ void BKE_simulate_ocean(struct Ocean *o, float t, float scale, float chop_amount #pragma omp section { - if (o->_do_chop) - { + if (o->_do_chop) { // z displacement - for ( i = 0 ; i < o->_M ; ++i) - { - for ( j = 0 ; j <= o->_N / 2 ; ++j) - { + for ( i = 0 ; i < o->_M ; ++i) { + for ( j = 0 ; j <= o->_N / 2 ; ++j) { fftw_complex mul_param; fftw_complex minus_i; @@ -600,13 +582,10 @@ void BKE_simulate_ocean(struct Ocean *o, float t, float scale, float chop_amount #pragma omp section { - if (o->_do_jacobian) - { + if (o->_do_jacobian) { // Jxx - for ( i = 0 ; i < o->_M ; ++i) - { - for ( j = 0 ; j <= o->_N / 2 ; ++j) - { + for ( i = 0 ; i < o->_M ; ++i) { + for ( j = 0 ; j <= o->_N / 2 ; ++j) { fftw_complex mul_param; //init_complex(mul_param, -scale, 0); @@ -620,10 +599,8 @@ void BKE_simulate_ocean(struct Ocean *o, float t, float scale, float chop_amount } fftw_execute(o->_Jxx_plan); - for ( i = 0 ; i < o->_M ; ++i) - { - for ( j = 0 ; j < o->_N ; ++j) - { + for ( i = 0 ; i < o->_M ; ++i) { + for ( j = 0 ; j < o->_N ; ++j) { o->_Jxx[i*o->_N+j] += 1.0; } } @@ -632,13 +609,10 @@ void BKE_simulate_ocean(struct Ocean *o, float t, float scale, float chop_amount #pragma omp section { - if (o->_do_jacobian) - { + if (o->_do_jacobian) { // Jzz - for ( i = 0 ; i < o->_M ; ++i) - { - for ( j = 0 ; j <= o->_N / 2 ; ++j) - { + for ( i = 0 ; i < o->_M ; ++i) { + for ( j = 0 ; j <= o->_N / 2 ; ++j) { fftw_complex mul_param; //init_complex(mul_param, -scale, 0); @@ -651,10 +625,8 @@ void BKE_simulate_ocean(struct Ocean *o, float t, float scale, float chop_amount } } fftw_execute(o->_Jzz_plan); - for ( i = 0 ; i < o->_M ; ++i) - { - for ( j = 0 ; j < o->_N ; ++j) - { + for ( i = 0 ; i < o->_M ; ++i) { + for ( j = 0 ; j < o->_N ; ++j) { o->_Jzz[i*o->_N+j] += 1.0; } } @@ -663,13 +635,10 @@ void BKE_simulate_ocean(struct Ocean *o, float t, float scale, float chop_amount #pragma omp section { - if (o->_do_jacobian) - { + if (o->_do_jacobian) { // Jxz - for ( i = 0 ; i < o->_M ; ++i) - { - for ( j = 0 ; j <= o->_N / 2 ; ++j) - { + for ( i = 0 ; i < o->_M ; ++i) { + for ( j = 0 ; j <= o->_N / 2 ; ++j) { fftw_complex mul_param; //init_complex(mul_param, -scale, 0); @@ -688,12 +657,9 @@ void BKE_simulate_ocean(struct Ocean *o, float t, float scale, float chop_amount #pragma omp section { // fft normals - if (o->_do_normals) - { - for ( i = 0 ; i < o->_M ; ++i) - { - for ( j = 0 ; j <= o->_N / 2 ; ++j) - { + if (o->_do_normals) { + for ( i = 0 ; i < o->_M ; ++i) { + for ( j = 0 ; j <= o->_N / 2 ; ++j) { fftw_complex mul_param; init_complex(mul_param, 0.0, -1.0); @@ -709,12 +675,9 @@ void BKE_simulate_ocean(struct Ocean *o, float t, float scale, float chop_amount #pragma omp section { - if (o->_do_normals) - { - for ( i = 0 ; i < o->_M ; ++i) - { - for ( j = 0 ; j <= o->_N / 2 ; ++j) - { + if (o->_do_normals) { + for ( i = 0 ; i < o->_M ; ++i) { + for ( j = 0 ; j <= o->_N / 2 ; ++j) { fftw_complex mul_param; init_complex(mul_param, 0.0, -1.0); @@ -757,12 +720,9 @@ static void set_height_normalize_factor(struct Ocean *oc) BLI_rw_mutex_lock(&oc->oceanmutex, THREAD_LOCK_READ); - for (i = 0; i < oc->_M; ++i) - { - for (j = 0; j < oc->_N; ++j) - { - if ( max_h < fabsf(oc->_disp_y[i*oc->_N+j])) - { + for (i = 0; i < oc->_M; ++i) { + for (j = 0; j < oc->_N; ++j) { + if ( max_h < fabsf(oc->_disp_y[i*oc->_N+j])) { max_h = fabsf(oc->_disp_y[i*oc->_N+j]); } } @@ -851,10 +811,8 @@ void BKE_init_ocean(struct Ocean* o, int M,int N, float Lx, float Lz, float V, f /*srand(seed);*/ BLI_srand(seed); - for (i = 0 ; i < o->_M ; ++i) - { - for (j = 0 ; j < o->_N ; ++j) - { + for (i = 0 ; i < o->_M ; ++i) { + for (j = 0 ; j < o->_N ; ++j) { float r1 = gaussRand(); float r2 = gaussRand(); @@ -921,14 +879,12 @@ void BKE_free_ocean_data(struct Ocean *oc) BLI_rw_mutex_lock(&oc->oceanmutex, THREAD_LOCK_WRITE); - if (oc->_do_disp_y) - { + if (oc->_do_disp_y) { fftw_destroy_plan(oc->_disp_y_plan); MEM_freeN(oc->_disp_y); } - if (oc->_do_normals) - { + if (oc->_do_normals) { MEM_freeN(oc->_fft_in_nx); MEM_freeN(oc->_fft_in_nz); fftw_destroy_plan(oc->_N_x_plan); @@ -938,8 +894,7 @@ void BKE_free_ocean_data(struct Ocean *oc) MEM_freeN(oc->_N_z); } - if (oc->_do_chop) - { + if (oc->_do_chop) { MEM_freeN(oc->_fft_in_x); MEM_freeN(oc->_fft_in_z); fftw_destroy_plan(oc->_disp_x_plan); @@ -948,8 +903,7 @@ void BKE_free_ocean_data(struct Ocean *oc) MEM_freeN(oc->_disp_z); } - if (oc->_do_jacobian) - { + if (oc->_do_jacobian) { MEM_freeN(oc->_fft_in_jxx); MEM_freeN(oc->_fft_in_jzz); MEM_freeN(oc->_fft_in_jxz); @@ -1002,7 +956,7 @@ static void cache_filename(char *string, const char *path, const char *relbase, char cachepath[FILE_MAX]; const char *fname; - switch(type) { + switch (type) { case CACHE_TYPE_FOAM: fname= "foam_"; break; @@ -1043,8 +997,7 @@ void BKE_free_ocean_cache(struct OceanCache *och) if (!och) return; if (och->ibufs_disp) { - for (i=och->start, f=0; i<=och->end; i++, f++) - { + for (i=och->start, f=0; i<=och->end; i++, f++) { if (och->ibufs_disp[f]) { IMB_freeImBuf(och->ibufs_disp[f]); } @@ -1053,8 +1006,7 @@ void BKE_free_ocean_cache(struct OceanCache *och) } if (och->ibufs_foam) { - for (i=och->start, f=0; i<=och->end; i++, f++) - { + for (i=och->start, f=0; i<=och->end; i++, f++) { if (och->ibufs_foam[f]) { IMB_freeImBuf(och->ibufs_foam[f]); } @@ -1063,8 +1015,7 @@ void BKE_free_ocean_cache(struct OceanCache *och) } if (och->ibufs_norm) { - for (i=och->start, f=0; i<=och->end; i++, f++) - { + for (i=och->start, f=0; i<=och->end; i++, f++) { if (och->ibufs_norm[f]) { IMB_freeImBuf(och->ibufs_norm[f]); } diff --git a/source/blender/blenkernel/intern/packedFile.c b/source/blender/blenkernel/intern/packedFile.c index 8a940e339bc..e0c61fbcc90 100644 --- a/source/blender/blenkernel/intern/packedFile.c +++ b/source/blender/blenkernel/intern/packedFile.c @@ -72,7 +72,7 @@ int seekPackedFile(PackedFile *pf, int offset, int whence) if (pf) { oldseek = pf->seek; - switch(whence) { + switch (whence) { case SEEK_CUR: seek = oldseek + offset; break; @@ -392,7 +392,7 @@ int checkPackedFile(const char *filename, PackedFile *pf) /* unpackFile() looks at the existing files (abs_name, local_name) and a packed file. * * It returns a char *to the existing file name / new file name or NULL when - * there was an error or when the user desides to cancel the operation. + * there was an error or when the user decides to cancel the operation. */ char *unpackFile(ReportList *reports, const char *abs_name, const char *local_name, PackedFile *pf, int how) diff --git a/source/blender/blenkernel/intern/paint.c b/source/blender/blenkernel/intern/paint.c index 27f5f7d9eb1..f417f9b79fb 100644 --- a/source/blender/blenkernel/intern/paint.c +++ b/source/blender/blenkernel/intern/paint.c @@ -59,7 +59,7 @@ Paint *paint_get_active(Scene *sce) ToolSettings *ts = sce->toolsettings; if (sce->basact && sce->basact->object) { - switch(sce->basact->object->mode) { + switch (sce->basact->object->mode) { case OB_MODE_SCULPT: return &ts->sculpt->paint; case OB_MODE_VERTEX_PAINT: diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c index a154a1f8926..febe4277010 100644 --- a/source/blender/blenkernel/intern/particle.c +++ b/source/blender/blenkernel/intern/particle.c @@ -1572,7 +1572,7 @@ static float psys_interpolate_value_from_verts(DerivedMesh *dm, short from, int if (values==0 || index==-1) return 0.0; - switch(from) { + switch (from) { case PART_FROM_VERT: return values[index]; case PART_FROM_FACE: @@ -1936,7 +1936,7 @@ static void do_kink(ParticleKey *state, ParticleKey *par, float *par_rot, float copy_v3_v3(result, state->co); sub_v3_v3v3(par_vec, par->co, state->co); - switch(type) { + switch (type) { case PART_KINK_CURL: { negate_v3(par_vec); @@ -2846,7 +2846,7 @@ static void cache_key_incremental_rotation(ParticleCacheKey *key0, ParticleCache { float cosangle, angle, tangent[3], normal[3], q[4]; - switch(i) { + switch (i) { case 0: /* start from second key */ break; @@ -3778,7 +3778,7 @@ static void get_cpa_texture(DerivedMesh *dm, ParticleSystem *psys, ParticleSetti if (ELEM(texco, TEXCO_UV, TEXCO_ORCO) && (ELEM(part->from, PART_FROM_FACE, PART_FROM_VOLUME) == 0 || part->distr == PART_DISTR_GRID)) texco = TEXCO_GLOB; - switch(texco) { + switch (texco) { case TEXCO_GLOB: copy_v3_v3(texvec, par->state.co); break; @@ -3846,7 +3846,7 @@ void psys_get_texture(ParticleSimulationData *sim, ParticleData *pa, ParticleTex if (texco == TEXCO_UV && (ELEM(part->from, PART_FROM_FACE, PART_FROM_VOLUME) == 0 || part->distr == PART_DISTR_GRID)) texco = TEXCO_GLOB; - switch(texco) { + switch (texco) { case TEXCO_GLOB: copy_v3_v3(texvec, pa->state.co); break; diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index 4ce24953c89..d3644657de7 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -787,7 +787,7 @@ static void distribute_threads_exec(ParticleThread *thread, ParticleData *pa, Ch pa->num = i = ctx->index[p]; mface = dm->getTessFaceData(dm,i,CD_MFACE); - switch(distr) { + switch (distr) { case PART_DISTR_JIT: if (ctx->jitlevel == 1) { if (mface->v4) @@ -855,13 +855,15 @@ static void distribute_threads_exec(ParticleThread *thread, ParticleData *pa, Ch } if (intersect==0) pa->foffset=0.0; - else switch(distr) { - case PART_DISTR_JIT: - pa->foffset*= ctx->jit[p%(2*ctx->jitlevel)]; - break; - case PART_DISTR_RAND: - pa->foffset*=BLI_frand(); - break; + else { + switch (distr) { + case PART_DISTR_JIT: + pa->foffset *= ctx->jit[p % (2 * ctx->jitlevel)]; + break; + case PART_DISTR_RAND: + pa->foffset *= BLI_frand(); + break; + } } } } @@ -1575,7 +1577,7 @@ static void initialize_all_particles(ParticleSimulationData *sim) static void get_angular_velocity_vector(short avemode, ParticleKey *state, float *vec) { - switch(avemode) { + switch (avemode) { case PART_AVE_VELOCITY: copy_v3_v3(vec, state->vel); break; @@ -1779,7 +1781,7 @@ void psys_get_birth_coordinates(ParticleSimulationData *sim, ParticleData *pa, P if (part->rotmode) { /* create vector into which rotation is aligned */ - switch(part->rotmode) { + switch (part->rotmode) { case PART_ROT_NOR: copy_v3_v3(rot_vec, nor); break; @@ -2141,7 +2143,7 @@ static void integrate_particle(ParticleSettings *part, ParticleData *pa, float d if (pa->prev_state.time < 0.f && integrator == PART_INT_VERLET) integrator = PART_INT_EULER; - switch(integrator) { + switch (integrator) { case PART_INT_EULER: steps=1; break; @@ -2175,7 +2177,7 @@ static void integrate_particle(ParticleSettings *part, ParticleData *pa, float d /* calculate next state */ add_v3_v3(states[i].vel, impulse); - switch(integrator) { + switch (integrator) { case PART_INT_EULER: madd_v3_v3v3fl(pa->state.co, states->co, states->vel, dtime); madd_v3_v3v3fl(pa->state.vel, states->vel, acceleration, dtime); @@ -2193,7 +2195,7 @@ static void integrate_particle(ParticleSettings *part, ParticleData *pa, float d } break; case PART_INT_RK4: - switch(i) { + switch (i) { case 0: copy_v3_v3(dx[0], states->vel); mul_v3_fl(dx[0], dtime); @@ -2859,7 +2861,7 @@ static float collision_point_distance_with_normal(float p[3], ParticleCollisionE if (fac >= 0.f) collision_interpolate_element(pce, 0.f, fac, col); - switch(pce->tot) { + switch (pce->tot) { case 1: { sub_v3_v3v3(nor, p, pce->x0); @@ -2884,7 +2886,7 @@ static void collision_point_on_surface(float p[3], ParticleCollisionElement *pce { collision_interpolate_element(pce, 0.f, fac, col); - switch(pce->tot) { + switch (pce->tot) { case 1: { sub_v3_v3v3(co, p, pce->x0); @@ -3833,7 +3835,7 @@ static void dynamics_step(ParticleSimulationData *sim, float cfra) sim->colliders = get_collider_cache(sim->scene, sim->ob, NULL); /* initialize physics type specific stuff */ - switch(part->phystype) { + switch (part->phystype) { case PART_PHYS_BOIDS: { ParticleTarget *pt = psys->targets.first; @@ -3908,7 +3910,7 @@ static void dynamics_step(ParticleSimulationData *sim, float cfra) pa->state.time = -1.f; } - switch(part->phystype) { + switch (part->phystype) { case PART_PHYS_NEWTON: { LOOP_DYNAMIC_PARTICLES { @@ -4499,7 +4501,7 @@ void particle_system_update(Scene *scene, Object *ob, ParticleSystem *psys) /* setup necessary physics type dependent additional data if it doesn't yet exist */ psys_prepare_physics(&sim); - switch(part->type) { + switch (part->type) { case PART_HAIR: { /* nothing to do so bail out early */ @@ -4551,7 +4553,7 @@ void particle_system_update(Scene *scene, Object *ob, ParticleSystem *psys) } default: { - switch(part->phystype) { + switch (part->phystype) { case PART_PHYS_NO: case PART_PHYS_KEYED: { diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c index dbcef9ad4c8..39293084dc0 100644 --- a/source/blender/blenkernel/intern/pointcache.c +++ b/source/blender/blenkernel/intern/pointcache.c @@ -433,7 +433,7 @@ static void ptcache_particle_extra_read(void *psys_v, PTCacheMem *pm, float UNUS PTCacheExtra *extra = pm->extradata.first; for (; extra; extra=extra->next) { - switch(extra->type) { + switch (extra->type) { case BPHYS_EXTRA_FLUID_SPRINGS: { if (psys->fluid_springs) @@ -690,14 +690,20 @@ static int ptcache_dynamicpaint_write(PTCacheFile *pf, void *dp_v) /* cache type */ ptcache_file_write(pf, &surface->type, 1, sizeof(int)); - if (surface->type == MOD_DPAINT_SURFACE_T_PAINT) - in_len = sizeof(PaintPoint)*total_points; + if (surface->type == MOD_DPAINT_SURFACE_T_PAINT) { + in_len = sizeof(PaintPoint) * total_points; + } else if (surface->type == MOD_DPAINT_SURFACE_T_DISPLACE || - surface->type == MOD_DPAINT_SURFACE_T_WEIGHT) - in_len = sizeof(float)*total_points; - else if (surface->type == MOD_DPAINT_SURFACE_T_WAVE) - in_len = sizeof(PaintWavePoint)*total_points; - else return 0; + surface->type == MOD_DPAINT_SURFACE_T_WEIGHT) + { + in_len = sizeof(float) * total_points; + } + else if (surface->type == MOD_DPAINT_SURFACE_T_WAVE) { + in_len = sizeof(PaintWavePoint) * total_points; + } + else { + return 0; + } out = (unsigned char *)MEM_callocN(LZO_OUT_LEN(in_len), "pointcache_lzo_buffer"); @@ -727,14 +733,20 @@ static int ptcache_dynamicpaint_read(PTCacheFile *pf, void *dp_v) return 0; /* read surface data */ - if (surface->type == MOD_DPAINT_SURFACE_T_PAINT) + if (surface->type == MOD_DPAINT_SURFACE_T_PAINT) { data_len = sizeof(PaintPoint); + } else if (surface->type == MOD_DPAINT_SURFACE_T_DISPLACE || - surface->type == MOD_DPAINT_SURFACE_T_WEIGHT) + surface->type == MOD_DPAINT_SURFACE_T_WEIGHT) + { data_len = sizeof(float); - else if (surface->type == MOD_DPAINT_SURFACE_T_WAVE) + } + else if (surface->type == MOD_DPAINT_SURFACE_T_WAVE) { data_len = sizeof(PaintWavePoint); - else return 0; + } + else { + return 0; + } ptcache_file_compressed_read(pf, (unsigned char*)surface->data->type_data, data_len*surface->data->total_points); @@ -989,8 +1001,7 @@ void BKE_ptcache_ids_from_object(ListBase *lb, Object *ob, Scene *scene, int dup } else if (md->type == eModifierType_Smoke) { SmokeModifierData *smd = (SmokeModifierData *)md; - if (smd->type & MOD_SMOKE_TYPE_DOMAIN) - { + if (smd->type & MOD_SMOKE_TYPE_DOMAIN) { pid= MEM_callocN(sizeof(PTCacheID), "PTCacheID"); BKE_ptcache_id_from_smoke(pid, ob, (SmokeModifierData*)md); BLI_addtail(lb, pid); @@ -998,8 +1009,7 @@ void BKE_ptcache_ids_from_object(ListBase *lb, Object *ob, Scene *scene, int dup } else if (md->type == eModifierType_DynamicPaint) { DynamicPaintModifierData *pmd = (DynamicPaintModifierData *)md; - if (pmd->canvas) - { + if (pmd->canvas) { DynamicPaintSurface *surface = pmd->canvas->surfaces.first; for (; surface; surface=surface->next) { @@ -1205,8 +1215,7 @@ static int ptcache_file_compressed_read(PTCacheFile *pf, unsigned char *result, r = lzo1x_decompress_safe(in, (lzo_uint)in_len, result, (lzo_uint *)&out_len, NULL); #endif #ifdef WITH_LZMA - if (compressed == 2) - { + if (compressed == 2) { size_t sizeOfIt; size_t leni = in_len, leno = len; ptcache_file_read(pf, &size, 1, sizeof(unsigned int)); @@ -1270,8 +1279,7 @@ static int ptcache_file_compressed_write(PTCacheFile *pf, unsigned char *in, uns else ptcache_file_write(pf, in, in_len, sizeof(unsigned char)); - if (compressed == 2) - { + if (compressed == 2) { unsigned int size = sizeOfIt; ptcache_file_write(pf, &sizeOfIt, 1, sizeof(unsigned int)); ptcache_file_write(pf, props, size, sizeof(unsigned char)); @@ -2313,7 +2321,7 @@ void BKE_ptcache_id_time(PTCacheID *pid, Scene *scene, float cfra, int *startfra if (timescale) { time= BKE_curframe(scene); - nexttime= BKE_frame_to_ctime(scene, CFRA+1); + nexttime = BKE_frame_to_ctime(scene, CFRA + 1.0f); *timescale= MAX2(nexttime - time, 0.0f); } @@ -2505,16 +2513,14 @@ int BKE_ptcache_object_reset(Scene *scene, Object *ob, int mode) } if (md->type == eModifierType_Smoke) { SmokeModifierData *smd = (SmokeModifierData *)md; - if (smd->type & MOD_SMOKE_TYPE_DOMAIN) - { + if (smd->type & MOD_SMOKE_TYPE_DOMAIN) { BKE_ptcache_id_from_smoke(&pid, ob, (SmokeModifierData*)md); reset |= BKE_ptcache_id_reset(scene, &pid, mode); } } if (md->type == eModifierType_DynamicPaint) { DynamicPaintModifierData *pmd = (DynamicPaintModifierData *)md; - if (pmd->canvas) - { + if (pmd->canvas) { DynamicPaintSurface *surface = pmd->canvas->surfaces.first; for (; surface; surface=surface->next) { @@ -2813,8 +2819,7 @@ void BKE_ptcache_bake(PTCacheBaker* baker) PTCacheID *pid2; BKE_ptcache_ids_from_object(&pidlist2, pid->ob, scene, MAX_DUPLI_RECUR); for (pid2=pidlist2.first; pid2; pid2=pid2->next) { - if (pid2->type == PTCACHE_TYPE_SMOKE_DOMAIN) - { + if (pid2->type == PTCACHE_TYPE_SMOKE_DOMAIN) { if (pid2->cache && !(pid2->cache->flag & PTCACHE_BAKED)) { if (bake || pid2->cache->flag & PTCACHE_REDO_NEEDED) BKE_ptcache_id_clear(pid2, PTCACHE_CLEAR_ALL, 0); @@ -3246,8 +3251,7 @@ void BKE_ptcache_update_info(PTCacheID *pid) } if (cache->flag & PTCACHE_DISK_CACHE) { - if (pid->type == PTCACHE_TYPE_SMOKE_DOMAIN) - { + if (pid->type == PTCACHE_TYPE_SMOKE_DOMAIN) { int totpoint = pid->totpoint(pid->calldata, 0); if (cache->totpoint > totpoint) diff --git a/source/blender/blenkernel/intern/property.c b/source/blender/blenkernel/intern/property.c index 066de61575d..e7247be7f51 100644 --- a/source/blender/blenkernel/intern/property.c +++ b/source/blender/blenkernel/intern/property.c @@ -99,7 +99,7 @@ void init_property(bProperty *prop) prop->data= 0; - switch(prop->type) { + switch (prop->type) { case GPROP_BOOL: case GPROP_INT: case GPROP_FLOAT: @@ -206,7 +206,7 @@ int compare_property(bProperty *prop, const char *str) // extern int Gdfra; /* sector.c */ float fvalue, ftest; - switch(prop->type) { + switch (prop->type) { case GPROP_BOOL: if (BLI_strcasecmp(str, "true")==0) { if (prop->data==1) return 0; @@ -242,7 +242,7 @@ void set_property(bProperty *prop, const char *str) { // extern int Gdfra; /* sector.c */ - switch(prop->type) { + switch (prop->type) { case GPROP_BOOL: if (BLI_strcasecmp(str, "true")==0) prop->data= 1; else if (BLI_strcasecmp(str, "false")==0) prop->data= 0; @@ -266,7 +266,7 @@ void add_property(bProperty *prop, const char *str) { // extern int Gdfra; /* sector.c */ - switch(prop->type) { + switch (prop->type) { case GPROP_BOOL: case GPROP_INT: prop->data+= atoi(str); @@ -288,7 +288,7 @@ void set_property_valstr(bProperty *prop, char *str) if (str == NULL) return; - switch(prop->type) { + switch (prop->type) { case GPROP_BOOL: case GPROP_INT: sprintf(str, "%d", prop->data); diff --git a/source/blender/blenkernel/intern/report.c b/source/blender/blenkernel/intern/report.c index b3e288dfc74..a7df6b10f06 100644 --- a/source/blender/blenkernel/intern/report.c +++ b/source/blender/blenkernel/intern/report.c @@ -43,7 +43,7 @@ static const char *report_type_str(int type) { - switch(type) { + switch (type) { case RPT_DEBUG: return "Debug"; case RPT_INFO: return "Info"; case RPT_OPERATOR: return "Operator"; diff --git a/source/blender/blenkernel/intern/sca.c b/source/blender/blenkernel/intern/sca.c index 8123cbf3f0b..b5bb6b76c61 100644 --- a/source/blender/blenkernel/intern/sca.c +++ b/source/blender/blenkernel/intern/sca.c @@ -110,7 +110,7 @@ void init_sensor(bSensor *sens) sens->data= NULL; sens->pulse = 0; - switch(sens->type) { + switch (sens->type) { case SENS_ALWAYS: sens->pulse = 0; break; @@ -272,7 +272,7 @@ void init_controller(bController *cont) if (cont->data) MEM_freeN(cont->data); cont->data= NULL; - switch(cont->type) { + switch (cont->type) { case CONT_EXPRESSION: cont->data= MEM_callocN(sizeof(bExpressionCont), "expcont"); break; @@ -400,7 +400,7 @@ void init_actuator(bActuator *act) if (act->data) MEM_freeN(act->data); act->data= NULL; - switch(act->type) { + switch (act->type) { case ACT_ACTION: case ACT_SHAPEACTION: act->data= MEM_callocN(sizeof(bActionActuator), "actionact"); @@ -647,7 +647,7 @@ void sca_remove_ob_poin(Object *obt, Object *ob) sens= obt->sensors.first; while (sens) { - switch(sens->type) { + switch (sens->type) { case SENS_MESSAGE: ms= sens->data; if (ms->fromObject==ob) ms->fromObject= NULL; @@ -657,7 +657,7 @@ void sca_remove_ob_poin(Object *obt, Object *ob) act= obt->actuators.first; while (act) { - switch(act->type) { + switch (act->type) { case ACT_CAMERA: ca= act->data; if (ca->ob==ob) ca->ob= NULL; diff --git a/source/blender/blenkernel/intern/seqeffects.c b/source/blender/blenkernel/intern/seqeffects.c index 8015e53e4c9..d3eade834e6 100644 --- a/source/blender/blenkernel/intern/seqeffects.c +++ b/source/blender/blenkernel/intern/seqeffects.c @@ -2112,7 +2112,7 @@ static void transform_image(int x, int y, struct ImBuf *ibuf1, struct ImBuf *out yt += (yo / 2.0f); //interpolate - switch(interpolation) { + switch (interpolation) { case 0: neareast_interpolation(ibuf1,out, xt,yt,xi,yi); break; diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index 2d4397d16cd..9291cb90dff 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -259,8 +259,7 @@ void seq_free_editing(Scene *scene) if (ed == NULL) return; - SEQ_BEGIN(ed, seq) - { + SEQ_BEGIN (ed, seq) { seq_free_sequence(scene, seq); } SEQ_END @@ -363,7 +362,7 @@ unsigned int seq_hash_render_data(const SeqRenderData *a) /* ************************* iterator ************************** */ /* *************** (replaces old WHILE_SEQ) ********************* */ -/* **************** use now SEQ_BEGIN() SEQ_END ***************** */ +/* **************** use now SEQ_BEGIN () SEQ_END ***************** */ /* sequence strip iterator: * - builds a full array, recursively into meta strips */ @@ -515,8 +514,17 @@ void build_seqar_cb(ListBase *seqbase, Sequence ***seqar, int *totseq, *seqar = tseqar; } +static int metaseq_start(Sequence *metaseq) +{ + return metaseq->start + metaseq->startofs; +} -static void seq_update_sound_bounds_recursive(Scene *scene, Sequence *metaseq) +static int metaseq_end(Sequence *metaseq) +{ + return metaseq->start + metaseq->len - metaseq->endofs; +} + +static void seq_update_sound_bounds_recursive_rec(Scene *scene, Sequence *metaseq, int start, int end) { Sequence *seq; @@ -524,23 +532,28 @@ static void seq_update_sound_bounds_recursive(Scene *scene, Sequence *metaseq) * since sound is played outside of evaluating the imbufs, */ for (seq = metaseq->seqbase.first; seq; seq = seq->next) { if (seq->type == SEQ_META) { - seq_update_sound_bounds_recursive(scene, seq); + seq_update_sound_bounds_recursive_rec(scene, seq, MAX2(start, metaseq_start(seq)), MIN2(end, metaseq_end(seq))); } else if (ELEM(seq->type, SEQ_SOUND, SEQ_SCENE)) { if (seq->scene_sound) { int startofs = seq->startofs; int endofs = seq->endofs; - if (seq->startofs + seq->start < metaseq->start + metaseq->startofs) - startofs = metaseq->start + metaseq->startofs - seq->start; + if (seq->startofs + seq->start < start) + startofs = start - seq->start; - if (seq->start + seq->len - seq->endofs > metaseq->start + metaseq->len - metaseq->endofs) - endofs = seq->start + seq->len - metaseq->start - metaseq->len + metaseq->endofs; + if (seq->start + seq->len - seq->endofs > end) + endofs = seq->start + seq->len - end; sound_move_scene_sound(scene, seq->scene_sound, seq->start + startofs, seq->start + seq->len - endofs, startofs); } } } } +static void seq_update_sound_bounds_recursive(Scene *scene, Sequence *metaseq) +{ + seq_update_sound_bounds_recursive_rec(scene, metaseq, metaseq_start(metaseq), metaseq_end(metaseq)); +} + void calc_sequence_disp(Scene *scene, Sequence *seq) { if (seq->startofs && seq->startstill) seq->startstill = 0; @@ -3099,13 +3112,17 @@ int seqbase_isolated_sel_check(ListBase *seqbase) if ( (seq->seq1 && (seq->seq1->flag & SELECT) == 0) || (seq->seq2 && (seq->seq2->flag & SELECT) == 0) || (seq->seq3 && (seq->seq3->flag & SELECT) == 0) ) + { return FALSE; + } } else { if ( (seq->seq1 && (seq->seq1->flag & SELECT)) || (seq->seq2 && (seq->seq2->flag & SELECT)) || (seq->seq3 && (seq->seq3->flag & SELECT)) ) + { return FALSE; + } } } diff --git a/source/blender/blenkernel/intern/shrinkwrap.c b/source/blender/blenkernel/intern/shrinkwrap.c index 4006837efd6..e201209ec3f 100644 --- a/source/blender/blenkernel/intern/shrinkwrap.c +++ b/source/blender/blenkernel/intern/shrinkwrap.c @@ -146,8 +146,7 @@ static void shrinkwrap_calc_nearest_vertex(ShrinkwrapCalcData *calc) BENCH(bvhtree_from_mesh_verts(&treeData, calc->target, 0.0, 2, 6)); - if (treeData.tree == NULL) - { + if (treeData.tree == NULL) { OUT_OF_MEMORY(); return; } @@ -158,8 +157,7 @@ static void shrinkwrap_calc_nearest_vertex(ShrinkwrapCalcData *calc) #ifndef __APPLE__ #pragma omp parallel for default(none) private(i) firstprivate(nearest) shared(treeData,calc) schedule(static) #endif - for (i = 0; inumVerts; ++i) - { + for (i = 0; inumVerts; ++i) { float *co = calc->vertexCos[i]; float tmp_co[3]; float weight = defvert_array_find_weight_safe(calc->dvert, i, calc->vgroup); @@ -189,8 +187,7 @@ static void shrinkwrap_calc_nearest_vertex(ShrinkwrapCalcData *calc) //Found the nearest vertex - if (nearest.index != -1) - { + if (nearest.index != -1) { //Adjusting the vertex weight, so that after interpolating it keeps a certain distance from the nearest position float dist = sasqrt(nearest.dist); if (dist > FLT_EPSILON) weight *= (dist - calc->keepDist)/dist; @@ -224,8 +221,7 @@ int normal_projection_project_vertex(char options, const float *vert, const floa memcpy( &hit_tmp, hit, sizeof(hit_tmp) ); //Apply space transform (TODO readjust dist) - if (transf) - { + if (transf) { copy_v3_v3( tmp_co, vert ); space_transform_apply( transf, tmp_co ); co = tmp_co; @@ -298,8 +294,7 @@ static void shrinkwrap_calc_normal_projection(ShrinkwrapCalcData *calc) //Prepare data to retrieve the direction in which we should project each vertex - if (calc->smd->projAxis == MOD_SHRINKWRAP_PROJECT_OVER_NORMAL) - { + if (calc->smd->projAxis == MOD_SHRINKWRAP_PROJECT_OVER_NORMAL) { if (calc->vert == NULL) return; } else { @@ -316,8 +311,7 @@ static void shrinkwrap_calc_normal_projection(ShrinkwrapCalcData *calc) return; } - if (calc->smd->auxTarget) - { + if (calc->smd->auxTarget) { auxMesh = object_get_derived_final(calc->smd->auxTarget); if (!auxMesh) return; @@ -332,16 +326,14 @@ static void shrinkwrap_calc_normal_projection(ShrinkwrapCalcData *calc) #ifndef __APPLE__ #pragma omp parallel for private(i,hit) schedule(static) #endif - for (i = 0; inumVerts; ++i) - { + for (i = 0; inumVerts; ++i) { float *co = calc->vertexCos[i]; float tmp_co[3], tmp_no[3]; float weight = defvert_array_find_weight_safe(calc->dvert, i, calc->vgroup); if (weight == 0.0f) continue; - if (calc->vert) - { + if (calc->vert) { /* calc->vert contains verts from derivedMesh */ /* this coordinated are deformed by vertexCos only for normal projection (to get correct normals) */ /* for other cases calc->varts contains undeformed coordinates and vertexCos should be used */ @@ -364,8 +356,7 @@ static void shrinkwrap_calc_normal_projection(ShrinkwrapCalcData *calc) hit.dist = 10000.0f; //TODO: we should use FLT_MAX here, but sweepsphere code isn't prepared for that //Project over positive direction of axis - if (use_normal & MOD_SHRINKWRAP_PROJECT_ALLOW_POS_DIR) - { + if (use_normal & MOD_SHRINKWRAP_PROJECT_ALLOW_POS_DIR) { if (auxData.tree) normal_projection_project_vertex(0, tmp_co, tmp_no, &local2aux, auxData.tree, &hit, auxData.raycast_callback, &auxData); @@ -374,8 +365,7 @@ static void shrinkwrap_calc_normal_projection(ShrinkwrapCalcData *calc) } //Project over negative direction of axis - if (use_normal & MOD_SHRINKWRAP_PROJECT_ALLOW_NEG_DIR && hit.index == -1) - { + if (use_normal & MOD_SHRINKWRAP_PROJECT_ALLOW_NEG_DIR && hit.index == -1) { float inv_no[3]; negate_v3_v3(inv_no, tmp_no); @@ -386,8 +376,7 @@ static void shrinkwrap_calc_normal_projection(ShrinkwrapCalcData *calc) } - if (hit.index != -1) - { + if (hit.index != -1) { madd_v3_v3v3fl(hit.co, hit.co, tmp_no, calc->keepDist); interp_v3_v3v3(co, co, hit.co, weight); } @@ -414,8 +403,7 @@ static void shrinkwrap_calc_nearest_surface_point(ShrinkwrapCalcData *calc) //Create a bvh-tree of the given target BENCH(bvhtree_from_mesh_faces( &treeData, calc->target, 0.0, 2, 6)); - if (treeData.tree == NULL) - { + if (treeData.tree == NULL) { OUT_OF_MEMORY(); return; } @@ -429,8 +417,7 @@ static void shrinkwrap_calc_nearest_surface_point(ShrinkwrapCalcData *calc) #ifndef __APPLE__ #pragma omp parallel for default(none) private(i) firstprivate(nearest) shared(calc,treeData) schedule(static) #endif - for (i = 0; inumVerts; ++i) - { + for (i = 0; inumVerts; ++i) { float *co = calc->vertexCos[i]; float tmp_co[3]; float weight = defvert_array_find_weight_safe(calc->dvert, i, calc->vgroup); @@ -458,10 +445,8 @@ static void shrinkwrap_calc_nearest_surface_point(ShrinkwrapCalcData *calc) BLI_bvhtree_find_nearest(treeData.tree, tmp_co, &nearest, treeData.nearest_callback, &treeData); //Found the nearest vertex - if (nearest.index != -1) - { - if (calc->smd->shrinkOpts & MOD_SHRINKWRAP_KEEP_ABOVE_SURFACE) - { + if (nearest.index != -1) { + if (calc->smd->shrinkOpts & MOD_SHRINKWRAP_KEEP_ABOVE_SURFACE) { //Make the vertex stay on the front side of the face madd_v3_v3v3fl(tmp_co, nearest.co, nearest.no, calc->keepDist); } @@ -511,8 +496,7 @@ void shrinkwrapModifier_deform(ShrinkwrapModifierData *smd, Object *ob, DerivedM } - if (smd->target) - { + if (smd->target) { calc.target = object_get_derived_final(smd->target); //TODO there might be several "bugs" on non-uniform scales matrixs @@ -528,28 +512,24 @@ void shrinkwrapModifier_deform(ShrinkwrapModifierData *smd, Object *ob, DerivedM calc.vgroup = defgroup_name_index(calc.ob, smd->vgroup_name); - if (dm != NULL && smd->shrinkType == MOD_SHRINKWRAP_PROJECT) - { + if (dm != NULL && smd->shrinkType == MOD_SHRINKWRAP_PROJECT) { //Setup arrays to get vertexs positions, normals and deform weights calc.vert = dm->getVertDataArray(dm, CD_MVERT); calc.dvert = dm->getVertDataArray(dm, CD_MDEFORMVERT); //Using vertexs positions/normals as if a subsurface was applied - if (smd->subsurfLevels) - { + if (smd->subsurfLevels) { SubsurfModifierData ssmd= {{NULL}}; ssmd.subdivType = ME_CC_SUBSURF; //catmull clark ssmd.levels = smd->subsurfLevels; //levels ss_mesh = subsurf_make_derived_from_derived(dm, &ssmd, FALSE, NULL, 0, 0, (ob->mode & OB_MODE_EDIT)); - if (ss_mesh) - { + if (ss_mesh) { calc.vert = ss_mesh->getVertDataArray(ss_mesh, CD_MVERT); - if (calc.vert) - { - //TRICKY: this code assumes subsurface will have the transformed original vertices - //in their original order at the end of the vert array. + if (calc.vert) { + /* TRICKY: this code assumes subsurface will have the transformed original vertices + * in their original order at the end of the vert array. */ calc.vert = calc.vert + ss_mesh->getNumVerts(ss_mesh) - dm->getNumVerts(dm); } } @@ -562,8 +542,7 @@ void shrinkwrapModifier_deform(ShrinkwrapModifierData *smd, Object *ob, DerivedM //Projecting target defined - lets work! if (calc.target) { - switch(smd->shrinkType) - { + switch (smd->shrinkType) { case MOD_SHRINKWRAP_NEAREST_SURFACE: BENCH(shrinkwrap_calc_nearest_surface_point(&calc)); break; diff --git a/source/blender/blenkernel/intern/sketch.c b/source/blender/blenkernel/intern/sketch.c index 71ea85de716..32681c3a041 100644 --- a/source/blender/blenkernel/intern/sketch.c +++ b/source/blender/blenkernel/intern/sketch.c @@ -44,8 +44,7 @@ void freeSketch(SK_Sketch *sketch) { SK_Stroke *stk, *next; - for (stk = sketch->strokes.first; stk; stk = next) - { + for (stk = sketch->strokes.first; stk; stk = next) { next = stk->next; sk_freeStroke(stk); @@ -119,8 +118,7 @@ SK_Stroke* sk_createStroke(void) void sk_shrinkStrokeBuffer(SK_Stroke *stk) { - if (stk->nb_points < stk->buf_size) - { + if (stk->nb_points < stk->buf_size) { SK_Point *old_points = stk->points; stk->buf_size = stk->nb_points; @@ -135,8 +133,7 @@ void sk_shrinkStrokeBuffer(SK_Stroke *stk) void sk_growStrokeBuffer(SK_Stroke *stk) { - if (stk->nb_points == stk->buf_size) - { + if (stk->nb_points == stk->buf_size) { SK_Point *old_points = stk->points; stk->buf_size *= 2; @@ -151,12 +148,10 @@ void sk_growStrokeBuffer(SK_Stroke *stk) void sk_growStrokeBufferN(SK_Stroke *stk, int n) { - if (stk->nb_points + n > stk->buf_size) - { + if (stk->nb_points + n > stk->buf_size) { SK_Point *old_points = stk->points; - while (stk->nb_points + n > stk->buf_size) - { + while (stk->nb_points + n > stk->buf_size) { stk->buf_size *= 2; } @@ -202,8 +197,7 @@ void sk_insertStrokePoints(SK_Stroke *stk, SK_Point *pts, int len, int start, in sk_growStrokeBufferN(stk, len - size); - if (len != size) - { + if (len != size) { int tail_size = stk->nb_points - end + 1; memmove(stk->points + start + len, stk->points + end + 1, tail_size * sizeof(SK_Point)); @@ -218,8 +212,7 @@ void sk_trimStroke(SK_Stroke *stk, int start, int end) { int size = end - start + 1; - if (start > 0) - { + if (start > 0) { memmove(stk->points, stk->points + start, size * sizeof(SK_Point)); } @@ -253,8 +246,7 @@ void sk_straightenStroke(SK_Stroke *stk, int start, int end, float p_start[3], f sk_insertStrokePoint(stk, &pt1, start + 1); /* insert after start */ sk_insertStrokePoint(stk, &pt2, end + 1); /* insert before end (since end was pushed back already) */ - for (i = 1; i < total; i++) - { + for (i = 1; i < total; i++) { float delta = (float)i / (float)total; float *p = stk->points[start + 1 + i].p; @@ -269,30 +261,23 @@ void sk_polygonizeStroke(SK_Stroke *stk, int start, int end) int i; /* find first exact points outside of range */ - for (;start > 0; start--) - { - if (stk->points[start].type == PT_EXACT) - { + for (;start > 0; start--) { + if (stk->points[start].type == PT_EXACT) { break; } } - for (;end < stk->nb_points - 1; end++) - { - if (stk->points[end].type == PT_EXACT) - { + for (;end < stk->nb_points - 1; end++) { + if (stk->points[end].type == PT_EXACT) { break; } } offset = start + 1; - for (i = start + 1; i < end; i++) - { - if (stk->points[i].type == PT_EXACT) - { - if (offset != i) - { + for (i = start + 1; i < end; i++) { + if (stk->points[i].type == PT_EXACT) { + if (offset != i) { memcpy(stk->points + offset, stk->points + i, sizeof(SK_Point)); } @@ -301,8 +286,7 @@ void sk_polygonizeStroke(SK_Stroke *stk, int start, int end) } /* some points were removes, move end of array */ - if (offset < end) - { + if (offset < end) { int size = stk->nb_points - end; memmove(stk->points + offset, stk->points + end, size * sizeof(SK_Point)); stk->nb_points = offset + size; @@ -323,8 +307,7 @@ void sk_flattenStroke(SK_Stroke *stk, int start, int end) project_v3_v3v3(normal, distance, normal); limit = normalize_v3(normal); - for (i = 1; i < total - 1; i++) - { + for (i = 1; i < total - 1; i++) { float d = limit * i / total; float offset[3]; float *p = stk->points[start + i].p; @@ -342,8 +325,7 @@ void sk_flattenStroke(SK_Stroke *stk, int start, int end) void sk_removeStroke(SK_Sketch *sketch, SK_Stroke *stk) { - if (sketch->active_stroke == stk) - { + if (sketch->active_stroke == stk) { sketch->active_stroke = NULL; } @@ -358,8 +340,7 @@ void sk_reverseStroke(SK_Stroke *stk) sk_allocStrokeBuffer(stk); - for (i = 0; i < stk->nb_points; i++) - { + for (i = 0; i < stk->nb_points; i++) { sk_copyPoint(stk->points + i, old_points + stk->nb_points - 1 - i); } @@ -376,8 +357,7 @@ void sk_filterStroke(SK_Stroke *stk, int start, int end) char work; int i; - if (start == -1) - { + if (start == -1) { start = 0; end = stk->nb_points - 1; } @@ -386,8 +366,7 @@ void sk_filterStroke(SK_Stroke *stk, int start, int end) stk->nb_points = 0; /* adding points before range */ - for (i = 0; i < start; i++) - { + for (i = 0; i < start; i++) { sk_appendStrokePoint(stk, old_points + i); } @@ -398,8 +377,7 @@ void sk_filterStroke(SK_Stroke *stk, int start, int end) work = 1; /* while still reducing */ - while (work) - { + while (work) { int ls, le; work = 0; @@ -407,15 +385,13 @@ void sk_filterStroke(SK_Stroke *stk, int start, int end) le = start+1; /* while not over interval */ - while (ls < end) - { + while (ls < end) { int max_i = 0; short v1[2]; float max_dist = 16; /* more than 4 pixels */ /* find the next marked point */ - while (marked[le] == 0) - { + while (marked[le] == 0) { le++; } @@ -424,8 +400,7 @@ void sk_filterStroke(SK_Stroke *stk, int start, int end) v1[0] = old_points[ls].p2d[1] - old_points[le].p2d[1]; - for ( i = ls + 1; i < le; i++ ) - { + for ( i = ls + 1; i < le; i++ ) { float mul; float dist; short v2[2]; @@ -433,8 +408,7 @@ void sk_filterStroke(SK_Stroke *stk, int start, int end) v2[0] = old_points[i].p2d[0] - old_points[ls].p2d[0]; v2[1] = old_points[i].p2d[1] - old_points[ls].p2d[1]; - if (v2[0] == 0 && v2[1] == 0) - { + if (v2[0] == 0 && v2[1] == 0) { continue; } @@ -442,15 +416,13 @@ void sk_filterStroke(SK_Stroke *stk, int start, int end) dist = mul * mul * (v2[0]*v2[0] + v2[1]*v2[1]); - if (dist > max_dist) - { + if (dist > max_dist) { max_dist = dist; max_i = i; } } - if (max_i != 0) - { + if (max_i != 0) { work = 1; marked[max_i] = 1; } @@ -462,10 +434,8 @@ void sk_filterStroke(SK_Stroke *stk, int start, int end) /* adding points after range */ - for (i = start; i <= end; i++) - { - if (marked[i]) - { + for (i = start; i <= end; i++) { + if (marked[i]) { sk_appendStrokePoint(stk, old_points + i); } } @@ -473,8 +443,7 @@ void sk_filterStroke(SK_Stroke *stk, int start, int end) MEM_freeN(marked); /* adding points after range */ - for (i = end + 1; i < nb_points; i++) - { + for (i = end + 1; i < nb_points; i++) { sk_appendStrokePoint(stk, old_points + i); } @@ -490,13 +459,11 @@ void sk_filterLastContinuousStroke(SK_Stroke *stk) end = stk->nb_points -1; - for (start = end - 1; start > 0 && stk->points[start].type == PT_CONTINUOUS; start--) - { + for (start = end - 1; start > 0 && stk->points[start].type == PT_CONTINUOUS; start--) { /* nothing to do here*/ } - if (end - start > 1) - { + if (end - start > 1) { sk_filterStroke(stk, start, end); } } @@ -505,8 +472,7 @@ SK_Point *sk_lastStrokePoint(SK_Stroke *stk) { SK_Point *pt = NULL; - if (stk->nb_points > 0) - { + if (stk->nb_points > 0) { pt = stk->points + (stk->nb_points - 1); } @@ -520,8 +486,7 @@ void sk_endContinuousStroke(SK_Stroke *stk) void sk_updateNextPoint(SK_Sketch *sketch, SK_Stroke *stk) { - if (stk) - { + if (stk) { memcpy(&sketch->next_point, stk->points[stk->nb_points - 1].p, sizeof(SK_Point)); } } @@ -529,8 +494,7 @@ void sk_updateNextPoint(SK_Sketch *sketch, SK_Stroke *stk) int sk_stroke_filtermval(SK_DrawData *dd) { int retval = 0; - if (ABS(dd->mval[0] - dd->previous_mval[0]) + ABS(dd->mval[1] - dd->previous_mval[1]) > U.gp_manhattendist) - { + if (ABS(dd->mval[0] - dd->previous_mval[0]) + ABS(dd->mval[1] - dd->previous_mval[1]) > U.gp_manhattendist) { retval = 1; } @@ -551,12 +515,10 @@ void sk_deleteSelectedStrokes(SK_Sketch *sketch) { SK_Stroke *stk, *next; - for (stk = sketch->strokes.first; stk; stk = next) - { + for (stk = sketch->strokes.first; stk; stk = next) { next = stk->next; - if (stk->selected == 1) - { + if (stk->selected == 1) { sk_removeStroke(sketch, stk); } } @@ -566,31 +528,26 @@ void sk_selectAllSketch(SK_Sketch *sketch, int mode) { SK_Stroke *stk = NULL; - if (mode == -1) - { - for (stk = sketch->strokes.first; stk; stk = stk->next) - { + if (mode == -1) { + for (stk = sketch->strokes.first; stk; stk = stk->next) { stk->selected = 0; } } else if (mode == 0) { - for (stk = sketch->strokes.first; stk; stk = stk->next) - { + for (stk = sketch->strokes.first; stk; stk = stk->next) { stk->selected = 1; } } else if (mode == 1) { int selected = 1; - for (stk = sketch->strokes.first; stk; stk = stk->next) - { + for (stk = sketch->strokes.first; stk; stk = stk->next) { selected &= stk->selected; } selected ^= 1; - for (stk = sketch->strokes.first; stk; stk = stk->next) - { + for (stk = sketch->strokes.first; stk; stk = stk->next) { stk->selected = selected; } } diff --git a/source/blender/blenkernel/intern/softbody.c b/source/blender/blenkernel/intern/softbody.c index 01930cc28da..5d8a4955e58 100644 --- a/source/blender/blenkernel/intern/softbody.c +++ b/source/blender/blenkernel/intern/softbody.c @@ -78,6 +78,7 @@ variables on the UI for now #include "BKE_DerivedMesh.h" #include "BKE_pointcache.h" #include "BKE_deform.h" +#include "BKE_mesh.h" //XXX #include "BIF_editdeform.h" //XXX #include "BIF_graphics.h" #include "PIL_time.h" @@ -401,7 +402,10 @@ static void ccd_mesh_update(Object *ob,ccd_Mesh *pccd_M) if (!cmd->numverts || !cmd->numfaces) return; if ((pccd_M->totvert != cmd->numverts) || - (pccd_M->totface != cmd->numfaces)) return; + (pccd_M->totface != cmd->numfaces)) + { + return; + } pccd_M->bbmin[0]=pccd_M->bbmin[1]=pccd_M->bbmin[2]=1e30f; pccd_M->bbmax[0]=pccd_M->bbmax[1]=pccd_M->bbmax[2]=-1e30f; @@ -1387,8 +1391,7 @@ static void scan_for_ext_face_forces(Object *ob,float timenow) } bf = sb->scratch->bodyface; for (a=0; ascratch->totface; a++, bf++) { - if (( bf->flag & BFF_INTERSECT) || ( bf->flag & BFF_CLOSEVERT)) - { + if (( bf->flag & BFF_INTERSECT) || ( bf->flag & BFF_CLOSEVERT)) { sb->bpoint[bf->v1].choke2=MAX2(sb->bpoint[bf->v1].choke2,choke); sb->bpoint[bf->v2].choke2=MAX2(sb->bpoint[bf->v2].choke2,choke); sb->bpoint[bf->v3].choke2=MAX2(sb->bpoint[bf->v3].choke2,choke); @@ -1934,8 +1937,8 @@ static int sb_detect_vertex_collisionCached(float opco[3], float facenormal[3], } } - if ((deflected < 2)&& (G.rt != 444)) // we did not hit a face until now - { // see if 'outer' hits an edge + if ((deflected < 2)&& (G.rt != 444)) { /* we did not hit a face until now */ + /* see if 'outer' hits an edge */ float dist; closest_to_line_segment_v3(ve, opco, nv1, nv2); @@ -2830,8 +2833,7 @@ static void softbody_calc_forces(Scene *scene, Object *ob, float forcetime, floa nlEnd(NL_MATRIX); nlEnd(NL_SYSTEM); - if ((G.rt == 32) && (nl_flags & NLF_BUILD)) - { + if ((G.rt == 32) && (nl_flags & NLF_BUILD)) { printf("####MEE#####\n"); nlPrintMatrix(); } @@ -3229,8 +3231,7 @@ static void springs_from_mesh(Object *ob) float scale =1.0f; sb= ob->soft; - if (me && sb) - { + if (me && sb) { /* using bp->origS as a container for spring calcualtions here ** will be overwritten sbObjectStep() to receive ** actual modifier stack positions @@ -3267,6 +3268,7 @@ static void mesh_to_softbody(Scene *scene, Object *ob) BodyPoint *bp; BodySpring *bs; int a, totedge; + BKE_mesh_tessface_ensure(me); if (ob->softflag & OB_SB_EDGES) totedge= me->totedge; else totedge= 0; @@ -3305,8 +3307,7 @@ static void mesh_to_softbody(Scene *scene, Object *ob) this enables per vertex *mass painting* */ - if (sb->namedVG_Mass[0]) - { + if (sb->namedVG_Mass[0]) { int grp= defgroup_name_index (ob,sb->namedVG_Mass); /* printf("VGN %s %d\n",sb->namedVG_Mass,grp); */ if (grp > -1) { @@ -3319,8 +3320,7 @@ static void mesh_to_softbody(Scene *scene, Object *ob) /* first set the default */ bp->springweight = 1.0f; - if (sb->namedVG_Spring_K[0]) - { + if (sb->namedVG_Spring_K[0]) { int grp= defgroup_name_index (ob,sb->namedVG_Spring_K); //printf("VGN %s %d\n",sb->namedVG_Spring_K,grp); if (grp > -1) { @@ -3559,7 +3559,7 @@ static void curve_surf_to_softbody(Scene *scene, Object *ob) int a, curindex=0; int totvert, totspring = 0, setgoal=0; - totvert= count_curveverts(&cu->nurb); + totvert= BKE_nurbList_verts_count(&cu->nurb); if (ob->softflag & OB_SB_EDGES) { if (ob->type==OB_CURVE) { @@ -3637,8 +3637,7 @@ static void curve_surf_to_softbody(Scene *scene, Object *ob) } } - if (totspring) - { + if (totspring) { build_bps_springlist(ob); /* link bps to springs */ if (ob->softflag & OB_SB_SELF) {calculate_collision_balls(ob);} } @@ -3894,7 +3893,7 @@ static void softbody_reset(Object *ob, SoftBody *sb, float (*vertexCos)[3], int SB_estimate_transform(ob,NULL,NULL,NULL); SB_estimate_transform(ob,NULL,NULL,NULL); } - switch(ob->type) { + switch (ob->type) { case OB_MESH: if (ob->softflag & OB_SB_FACECOLL) mesh_faces_to_scratch(ob); break; @@ -3950,8 +3949,7 @@ static void softbody_step(Scene *scene, Object *ob, SoftBody *sb, float dtime) if (sb->solver_ID>0) mid_flags |= MID_PRESERVE; forcetime = forcetimemax; /* hope for integrating in one step */ - while ( (ABS(timedone) < ABS(dtime)) && (loops < 2000) ) - { + while ( (ABS(timedone) < ABS(dtime)) && (loops < 2000) ) { /* set goals in time */ interpolate_exciter(ob,200,(int)(200.0f*(timedone/dtime))); @@ -4019,12 +4017,11 @@ static void softbody_step(Scene *scene, Object *ob, SoftBody *sb, float dtime) } } - else if (sb->solver_ID == 2) - {/* do semi "fake" implicit euler */ + else if (sb->solver_ID == 2) { + /* do semi "fake" implicit euler */ //removed }/*SOLVER SELECT*/ - else if (sb->solver_ID == 4) - { + else if (sb->solver_ID == 4) { /* do semi "fake" implicit euler */ }/*SOLVER SELECT*/ else if (sb->solver_ID == 3) { @@ -4081,7 +4078,7 @@ void sbObjectStep(Scene *scene, Object *ob, float cfra, float (*vertexCos)[3], i if (sb->bpoint == NULL || ((ob->softflag & OB_SB_EDGES) && !ob->soft->bspring && object_has_edges(ob))) { - switch(ob->type) { + switch (ob->type) { case OB_MESH: mesh_to_softbody(scene, ob); break; diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index c2dbb518837..28ce95ea8d1 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -95,8 +95,7 @@ struct bSound* sound_new_file(struct Main *bmain, const char *filename) sound_load(bmain, sound); - if (!sound->playback_handle) - { + if (!sound->playback_handle) { free_libblock(&bmain->sound, sound); sound = NULL; } @@ -106,22 +105,19 @@ struct bSound* sound_new_file(struct Main *bmain, const char *filename) void sound_free(struct bSound* sound) { - if (sound->packedfile) - { + if (sound->packedfile) { freePackedFile(sound->packedfile); sound->packedfile = NULL; } #ifdef WITH_AUDASPACE - if (sound->handle) - { + if (sound->handle) { AUD_unload(sound->handle); sound->handle = NULL; sound->playback_handle = NULL; } - if (sound->cache) - { + if (sound->cache) { AUD_unload(sound->cache); sound->cache = NULL; } @@ -141,10 +137,8 @@ static void sound_sync_callback(void* data, int mode, float time) struct Scene* scene; scene = bmain->scene.first; - while (scene) - { - if (scene->audio.flag & AUDIO_SYNC) - { + while (scene) { + if (scene->audio.flag & AUDIO_SYNC) { if (mode) sound_play_scene(scene); else @@ -282,8 +276,7 @@ struct bSound* sound_new_limiter(struct Main *bmain, struct bSound *source, floa void sound_delete(struct Main *bmain, struct bSound* sound) { - if (sound) - { + if (sound) { sound_free(sound); free_libblock(&bmain->sound, sound); @@ -312,8 +305,7 @@ void sound_cache_notifying(struct Main* main, struct bSound* sound) void sound_delete_cache(struct bSound* sound) { sound->flags &= ~SOUND_FLAGS_CACHING; - if (sound->cache) - { + if (sound->cache) { AUD_unload(sound->cache); sound->cache = NULL; sound->playback_handle = sound->handle; @@ -322,16 +314,13 @@ void sound_delete_cache(struct bSound* sound) void sound_load(struct Main *bmain, struct bSound* sound) { - if (sound) - { - if (sound->cache) - { + if (sound) { + if (sound->cache) { AUD_unload(sound->cache); sound->cache = NULL; } - if (sound->handle) - { + if (sound->handle) { AUD_unload(sound->handle); sound->handle = NULL; sound->playback_handle = NULL; @@ -341,7 +330,7 @@ void sound_load(struct Main *bmain, struct bSound* sound) // XXX unused currently #if 0 - switch(sound->type) + switch (sound->type) { case SOUND_TYPE_FILE: #endif @@ -376,15 +365,13 @@ void sound_load(struct Main *bmain, struct bSound* sound) break; } #endif - if (sound->flags & SOUND_FLAGS_MONO) - { + if (sound->flags & SOUND_FLAGS_MONO) { void* handle = AUD_monoSound(sound->handle); AUD_unload(sound->handle); sound->handle = handle; } - if (sound->flags & SOUND_FLAGS_CACHING) - { + if (sound->flags & SOUND_FLAGS_CACHING) { sound->cache = AUD_bufferSound(sound->handle); } @@ -557,14 +544,12 @@ void sound_play_scene(struct Scene *scene) if (status == AUD_STATUS_INVALID) sound_start_play_scene(scene); - if (!scene->sound_scene_handle) - { + if (!scene->sound_scene_handle) { AUD_unlock(); return; } - if (status != AUD_STATUS_PLAYING) - { + if (status != AUD_STATUS_PLAYING) { AUD_seek(scene->sound_scene_handle, CFRA / FPS); AUD_resume(scene->sound_scene_handle); } @@ -577,8 +562,7 @@ void sound_play_scene(struct Scene *scene) void sound_stop_scene(struct Scene *scene) { - if (scene->sound_scene_handle) - { + if (scene->sound_scene_handle) { AUD_pause(scene->sound_scene_handle); if (scene->audio.flag & AUDIO_SYNC) @@ -596,12 +580,10 @@ void sound_seek_scene(struct Main *bmain, struct Scene *scene) status = scene->sound_scene_handle ? AUD_getStatus(scene->sound_scene_handle) : AUD_STATUS_INVALID; - if (status == AUD_STATUS_INVALID) - { + if (status == AUD_STATUS_INVALID) { sound_start_play_scene(scene); - if (!scene->sound_scene_handle) - { + if (!scene->sound_scene_handle) { AUD_unlock(); return; } @@ -616,10 +598,8 @@ void sound_seek_scene(struct Main *bmain, struct Scene *scene) } } - if (scene->audio.flag & AUDIO_SCRUB && !animation_playing) - { - if (scene->audio.flag & AUDIO_SYNC) - { + if (scene->audio.flag & AUDIO_SCRUB && !animation_playing) { + if (scene->audio.flag & AUDIO_SYNC) { AUD_seek(scene->sound_scene_handle, CFRA / FPS); AUD_seekSequencer(scene->sound_scene_handle, CFRA / FPS); } @@ -648,8 +628,7 @@ void sound_seek_scene(struct Main *bmain, struct Scene *scene) float sound_sync_scene(struct Scene *scene) { - if (scene->sound_scene_handle) - { + if (scene->sound_scene_handle) { if (scene->audio.flag & AUDIO_SYNC) return AUD_getSequencerPosition(scene->sound_scene_handle); else @@ -668,8 +647,7 @@ int sound_scene_playing(struct Scene *scene) void sound_free_waveform(struct bSound* sound) { - if (sound->waveform) - { + if (sound->waveform) { MEM_freeN(((SoundWaveform*)sound->waveform)->data); MEM_freeN(sound->waveform); } @@ -683,8 +661,7 @@ void sound_read_waveform(struct bSound* sound) info = AUD_getInfo(sound->playback_handle); - if (info.length > 0) - { + if (info.length > 0) { SoundWaveform* waveform = MEM_mallocN(sizeof(SoundWaveform), "SoundWaveform"); int length = info.length * SOUND_WAVE_SAMPLES_PER_SECOND; @@ -709,23 +686,16 @@ void sound_update_scene(struct Scene* scene) void* handle; float quat[4]; - for (SETLOOPER(scene, sce_it, base)) - { + for (SETLOOPER(scene, sce_it, base)) { ob = base->object; - if (ob->type == OB_SPEAKER) - { - if (ob->adt) - { - for (track = ob->adt->nla_tracks.first; track; track = track->next) - { - for (strip = track->strips.first; strip; strip = strip->next) - { - if (strip->type == NLASTRIP_TYPE_SOUND) - { + if (ob->type == OB_SPEAKER) { + if (ob->adt) { + for (track = ob->adt->nla_tracks.first; track; track = track->next) { + for (strip = track->strips.first; strip; strip = strip->next) { + if (strip->type == NLASTRIP_TYPE_SOUND) { speaker = (Speaker*)ob->data; - if (AUD_removeSet(scene->speaker_handles, strip->speaker_handle)) - { + if (AUD_removeSet(scene->speaker_handles, strip->speaker_handle)) { if (speaker->sound) AUD_moveSequence(strip->speaker_handle, strip->start / FPS, -1, 0); else { @@ -734,15 +704,13 @@ void sound_update_scene(struct Scene* scene) } } else { - if (speaker->sound) - { + if (speaker->sound) { strip->speaker_handle = AUD_addSequence(scene->sound_scene, speaker->sound->playback_handle, strip->start / FPS, -1, 0); AUD_setRelativeSequence(strip->speaker_handle, 0); } } - if (strip->speaker_handle) - { + if (strip->speaker_handle) { AUD_addSet(new_set, strip->speaker_handle); AUD_updateSequenceData(strip->speaker_handle, speaker->volume_max, speaker->volume_min, speaker->distance_max, @@ -765,13 +733,11 @@ void sound_update_scene(struct Scene* scene) } } - while ((handle = AUD_getSet(scene->speaker_handles))) - { + while ((handle = AUD_getSet(scene->speaker_handles))) { AUD_removeSequence(scene->sound_scene, handle); } - if (scene->camera) - { + if (scene->camera) { mat4_to_quat(quat, scene->camera->obmat); AUD_setSequencerAnimData(scene->sound_scene, AUD_AP_LOCATION, CFRA, scene->camera->obmat[3], 1); AUD_setSequencerAnimData(scene->sound_scene, AUD_AP_ORIENTATION, CFRA, quat, 1); diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c index 83a24f6afdc..129d3a3f698 100644 --- a/source/blender/blenkernel/intern/subsurf_ccg.c +++ b/source/blender/blenkernel/intern/subsurf_ccg.c @@ -314,7 +314,7 @@ static int ss_sync_from_uv(CCGSubSurf *ss, CCGSubSurf *origss, DerivedMesh *dm, MLoop *ml = mloop + mp->loopstart; BLI_array_empty(fverts); - BLI_array_growitems(fverts, nverts); + BLI_array_grow_items(fverts, nverts); get_face_uv_map_vert(vmap, mpoly, ml, i, fverts); @@ -350,7 +350,7 @@ static int ss_sync_from_uv(CCGSubSurf *ss, CCGSubSurf *origss, DerivedMesh *dm, CCGFace *f; BLI_array_empty(fverts); - BLI_array_growitems(fverts, nverts); + BLI_array_grow_items(fverts, nverts); get_face_uv_map_vert(vmap, mpoly, ml, i, fverts); ccgSubSurf_syncFace(ss, SET_INT_IN_POINTER(i), nverts, fverts, &f); @@ -583,7 +583,7 @@ static void ss_sync_from_derivedmesh(CCGSubSurf *ss, DerivedMesh *dm, CCGFace *f; BLI_array_empty(fVerts); - BLI_array_growitems(fVerts, mp->totloop); + BLI_array_grow_items(fVerts, mp->totloop); ml = mloop + mp->loopstart; for (j = 0; j < mp->totloop; j++, ml++) { @@ -2423,7 +2423,9 @@ static void ccgDM_release(DerivedMesh *dm) /* Check that mmd still exists */ if (!ccgdm->multires.local_mmd && BLI_findindex(&ccgdm->multires.ob->modifiers, ccgdm->multires.mmd) < 0) + { ccgdm->multires.mmd = NULL; + } if (ccgdm->multires.mmd) { if (ccgdm->multires.modified_flags & MULTIRES_COORDS_MODIFIED) @@ -3148,13 +3150,13 @@ static CCGDerivedMesh *getCCGDerivedMesh(CCGSubSurf *ss, *((int *)ccgSubSurf_getFaceUserData(ss, f)) = vertNum; BLI_array_empty(loopidx); - BLI_array_growitems(loopidx, numVerts); + BLI_array_grow_items(loopidx, numVerts); for (s = 0; s < numVerts; s++) { loopidx[s] = loopindex++; } BLI_array_empty(vertidx); - BLI_array_growitems(vertidx, numVerts); + BLI_array_grow_items(vertidx, numVerts); for (s = 0; s < numVerts; s++) { CCGVert *v = ccgSubSurf_getFaceVert(f, s); vertidx[s] = GET_INT_FROM_POINTER(ccgSubSurf_getVertVertHandle(v)); diff --git a/source/blender/blenkernel/intern/text.c b/source/blender/blenkernel/intern/text.c index a7e49dd7fc8..cb7369476c0 100644 --- a/source/blender/blenkernel/intern/text.c +++ b/source/blender/blenkernel/intern/text.c @@ -1193,9 +1193,11 @@ void txt_order_cursors(Text *text) if (!text->sell) return; /* Flip so text->curl is before text->sell */ - if (txt_get_span(text->curl, text->sell)<0 || - (text->curl==text->sell && text->curc>text->selc)) + if ((txt_get_span(text->curl, text->sell) < 0) || + (text->curl == text->sell && text->curc > text->selc)) + { txt_curs_swap(text); + } } int txt_has_sel(Text *text) @@ -2018,7 +2020,7 @@ void txt_do_undo(Text *text) undoing= 1; - switch(op) { + switch (op) { case UNDO_CLEFT: txt_move_right(text, 0); break; @@ -2245,7 +2247,7 @@ void txt_do_redo(Text *text) undoing= 1; - switch(op) { + switch (op) { case UNDO_CLEFT: txt_move_left(text, 0); break; @@ -2652,7 +2654,10 @@ void txt_backspace_char (Text *text) } while (mrk && mrk->lineno==lineno); } - memcpy(text->curl->line + text->curc - c_len, text->curl->line + text->curc, text->curl->len-text->curc+1); + /* source and destination overlap, don't use memcpy() */ + memmove(text->curl->line + text->curc - c_len, + text->curl->line + text->curc, + text->curl->len - text->curc + 1); text->curl->len-= c_len; text->curc-= c_len; @@ -2829,8 +2834,7 @@ void txt_indent(Text *text) } num = 0; - while (TRUE) - { + while (TRUE) { tmp= MEM_mallocN(text->curl->len+indentlen+1, "textline_string"); text->curc = 0; @@ -2848,8 +2852,7 @@ void txt_indent(Text *text) txt_make_dirty(text); txt_clean_text(text); - if (text->curl == text->sell) - { + if (text->curl == text->sell) { text->selc = text->sell->len; break; } @@ -2859,14 +2862,12 @@ void txt_indent(Text *text) } } text->curc = 0; - while ( num > 0 ) - { + while ( num > 0 ) { text->curl = text->curl->prev; num--; } - if (!undoing) - { + if (!undoing) { txt_undo_add_toop(text, UNDO_INDENT, txt_get_span(text->lines.first, text->curl), text->curc, txt_get_span(text->lines.first, text->sell), text->selc); } } @@ -2890,12 +2891,10 @@ void txt_unindent(Text *text) indent = spaceslen; } - while (TRUE) - { + while (TRUE) { int i = 0; - if (BLI_strncasecmp(text->curl->line, remove, indent) == 0) - { + if (BLI_strncasecmp(text->curl->line, remove, indent) == 0) { while (i< text->curl->len) { text->curl->line[i]= text->curl->line[i+indent]; i++; @@ -2906,8 +2905,7 @@ void txt_unindent(Text *text) txt_make_dirty(text); txt_clean_text(text); - if (text->curl == text->sell) - { + if (text->curl == text->sell) { text->selc = text->sell->len; break; } @@ -2918,14 +2916,12 @@ void txt_unindent(Text *text) } text->curc = 0; - while ( num > 0 ) - { + while ( num > 0 ) { text->curl = text->curl->prev; num--; } - if (!undoing) - { + if (!undoing) { txt_undo_add_toop(text, UNDO_UNINDENT, txt_get_span(text->lines.first, text->curl), text->curc, txt_get_span(text->lines.first, text->sell), text->selc); } } @@ -2941,8 +2937,7 @@ void txt_comment(Text *text) if (!text->sell) return;// Need to change this need to check if only one line is selected to more then one num = 0; - while (TRUE) - { + while (TRUE) { tmp= MEM_mallocN(text->curl->len+2, "textline_string"); text->curc = 0; @@ -2960,8 +2955,7 @@ void txt_comment(Text *text) txt_make_dirty(text); txt_clean_text(text); - if (text->curl == text->sell) - { + if (text->curl == text->sell) { text->selc = text->sell->len; break; } @@ -2971,14 +2965,12 @@ void txt_comment(Text *text) } } text->curc = 0; - while ( num > 0 ) - { + while ( num > 0 ) { text->curl = text->curl->prev; num--; } - if (!undoing) - { + if (!undoing) { txt_undo_add_toop(text, UNDO_COMMENT, txt_get_span(text->lines.first, text->curl), text->curc, txt_get_span(text->lines.first, text->sell), text->selc); } } @@ -2992,12 +2984,10 @@ void txt_uncomment(Text *text) if (!text->curl) return; if (!text->sell) return; - while (TRUE) - { + while (TRUE) { int i = 0; - if (text->curl->line[i] == remove) - { + if (text->curl->line[i] == remove) { while (i< text->curl->len) { text->curl->line[i]= text->curl->line[i+1]; i++; @@ -3009,8 +2999,7 @@ void txt_uncomment(Text *text) txt_make_dirty(text); txt_clean_text(text); - if (text->curl == text->sell) - { + if (text->curl == text->sell) { text->selc = text->sell->len; break; } @@ -3021,14 +3010,12 @@ void txt_uncomment(Text *text) } text->curc = 0; - while ( num > 0 ) - { + while ( num > 0 ) { text->curl = text->curl->prev; num--; } - if (!undoing) - { + if (!undoing) { txt_undo_add_toop(text, UNDO_UNCOMMENT, txt_get_span(text->lines.first, text->curl), text->curc, txt_get_span(text->lines.first, text->sell), text->selc); } } @@ -3044,27 +3031,23 @@ int setcurr_tab_spaces (Text *text, int space) if (!text) return 0; if (!text->curl) return 0; - while (text->curl->line[i] == indent) - { + while (text->curl->line[i] == indent) { //we only count those tabs/spaces that are before any text or before the curs; - if (i == text->curc) - { + if (i == text->curc) { return i; } else { i++; } } - if (strstr(text->curl->line, word)) - { + if (strstr(text->curl->line, word)) { /* if we find a ':' on this line, then add a tab but not if it is: * 1) in a comment * 2) within an identifier * 3) after the cursor (text->curc), i.e. when creating space before a function def [#25414] */ int a, is_indent = 0; - for (a=0; (a < text->curc) && (text->curl->line[a] != '\0'); a++) - { + for (a=0; (a < text->curc) && (text->curl->line[a] != '\0'); a++) { char ch= text->curl->line[a]; if (ch=='#') { break; @@ -3081,13 +3064,10 @@ int setcurr_tab_spaces (Text *text, int space) } } - for (test=0; back_words[test]; test++) - { + for (test=0; back_words[test]; test++) { /* if there are these key words then remove a tab because we are done with the block */ - if (strstr(text->curl->line, back_words[test]) && i > 0) - { - if (strcspn(text->curl->line, back_words[test]) < strcspn(text->curl->line, comm)) - { + if (strstr(text->curl->line, back_words[test]) && i > 0) { + if (strcspn(text->curl->line, back_words[test]) < strcspn(text->curl->line, comm)) { i -= space; } } @@ -3136,14 +3116,16 @@ TextMarker *txt_find_marker_region(Text *text, TextLine *line, int start, int en for (marker=text->markers.first; marker; marker=next) { next= marker->next; - if (group && marker->group != group) continue; + if (group && marker->group != group) continue; else if ((marker->flags & flags) != flags) continue; - else if (marker->lineno < lineno) continue; + else if (marker->lineno < lineno) continue; else if (marker->lineno > lineno) break; if ((marker->start==marker->end && start<=marker->start && marker->start<=end) || - (marker->startend>start)) + (marker->startend>start)) + { return marker; + } } return NULL; } diff --git a/source/blender/blenkernel/intern/texture.c b/source/blender/blenkernel/intern/texture.c index 23d818369a2..29b9505f449 100644 --- a/source/blender/blenkernel/intern/texture.c +++ b/source/blender/blenkernel/intern/texture.c @@ -663,7 +663,7 @@ void default_tex(Tex *tex) void tex_set_type(Tex *tex, int type) { - switch(type) { + switch (type) { case TEX_VOXELDATA: if (tex->vd == NULL) @@ -1180,7 +1180,7 @@ Tex *give_current_material_texture(Material *ma) int give_active_mtex(ID *id, MTex ***mtex_ar, short *act) { - switch(GS(id->name)) { + switch (GS(id->name)) { case ID_MA: *mtex_ar= ((Material *)id)->mtex; if (act) *act= (((Material *)id)->texact); @@ -1211,7 +1211,7 @@ void set_active_mtex(ID *id, short act) if (act<0) act= 0; else if (act>=MAX_MTEX) act= MAX_MTEX-1; - switch(GS(id->name)) { + switch (GS(id->name)) { case ID_MA: ((Material *)id)->texact= act; break; diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c index 59c38117858..079bde0afec 100644 --- a/source/blender/blenkernel/intern/writeffmpeg.c +++ b/source/blender/blenkernel/intern/writeffmpeg.c @@ -120,19 +120,17 @@ static int write_audio_frame(void) audio_time += (double) audio_input_samples / (double) c->sample_rate; pkt.size = avcodec_encode_audio(c, audio_output_buffer, - audio_outbuf_size, - (short*) audio_input_buffer); + audio_outbuf_size, + (short *)audio_input_buffer); - if (pkt.size < 0) - { + if (pkt.size < 0) { // XXX error("Error writing audio packet"); return -1; } pkt.data = audio_output_buffer; - if (c->coded_frame && c->coded_frame->pts != AV_NOPTS_VALUE) - { + if (c->coded_frame && c->coded_frame->pts != AV_NOPTS_VALUE) { pkt.pts = av_rescale_q(c->coded_frame->pts, c->time_base, audio_stream->time_base); fprintf(stderr, "Audio Frame PTS: %d\n", (int)pkt.pts); @@ -175,7 +173,7 @@ static AVFrame* alloc_picture(int pix_fmt, int width, int height) * first is always desired guess_format parameter */ static const char** get_file_extensions(int format) { - switch(format) { + switch (format) { case FFMPEG_DV: { static const char * rv[] = { ".dv", NULL }; return rv; @@ -372,7 +370,7 @@ static void set_ffmpeg_property_option(AVCodecContext* c, IDProperty * prop) *param++ = 0; } - switch(prop->type) { + switch (prop->type) { case IDP_STRING: fprintf(stderr, "%s.\n", IDP_String(prop)); av_set_string3(c, prop->name, IDP_String(prop), 1, &rv); @@ -717,7 +715,7 @@ static int start_ffmpeg_impl(struct RenderData *rd, int rectx, int recty, Report BLI_snprintf(of->filename, sizeof(of->filename), "%s", name); /* set the codec to the user's selection */ - switch(ffmpeg_type) { + switch (ffmpeg_type) { case FFMPEG_AVI: case FFMPEG_MOV: case FFMPEG_MKV: @@ -929,8 +927,7 @@ int start_ffmpeg(struct Scene *scene, RenderData *rd, int rectx, int recty, Repo success = start_ffmpeg_impl(rd, rectx, recty, reports); #ifdef WITH_AUDASPACE - if (audio_stream) - { + if (audio_stream) { AVCodecContext* c = audio_stream->codec; AUD_DeviceSpecs specs; specs.channels = c->channels; @@ -974,8 +971,7 @@ int append_ffmpeg(RenderData *rd, int start_frame, int frame, int *pixels, int r // why is this done before writing the video frame and again at end_ffmpeg? // write_audio_frames(frame / (((double)rd->frs_sec) / rd->frs_sec_base)); - if (video_stream) - { + if (video_stream) { avframe= generate_video_frame((unsigned char*) pixels, reports); success= (avframe && write_video_frame(rd, frame - start_frame, avframe, reports)); @@ -1172,10 +1168,12 @@ static const AVOption *my_av_find_opt(void *v, const char *name, const AVOption *o= c->option; for (;o && o->name; o++) { - if (!strcmp(o->name, name) && - (!unit || (o->unit && !strcmp(o->unit, unit))) && - (o->flags & mask) == flags ) + if (!strcmp(o->name, name) && + (!unit || (o->unit && !strcmp(o->unit, unit))) && + (o->flags & mask) == flags) + { return o; + } } return NULL; } diff --git a/source/blender/blenlib/BLI_array.h b/source/blender/blenlib/BLI_array.h index d66b8c009d7..7069732eeb6 100644 --- a/source/blender/blenlib/BLI_array.h +++ b/source/blender/blenlib/BLI_array.h @@ -44,7 +44,7 @@ * int i; * * for (i=0; i<10; i++) { - * BLI_array_growone(arr); + * BLI_array_grow_one(arr); * arr[i] = something; * } * BLI_array_free(arr); @@ -64,7 +64,7 @@ #define BLI_array_staticdeclare(arr, maxstatic) \ int _##arr##_count = 0; \ void *_##arr##_tmp; \ - char _##arr##_static[maxstatic * sizeof(arr)] + char _##arr##_static[maxstatic * sizeof(arr)] /* this returns the entire size of the array, including any buffering. */ @@ -116,32 +116,32 @@ ) /* grow an array by a specified number of items */ -#define BLI_array_growitems(arr, num) ( \ +#define BLI_array_grow_items(arr, num) ( \ ((void *)(arr) == NULL && (void *)(_##arr##_static) != NULL) ? \ ((arr = (void*)_##arr##_static), (_##arr##_count += num)) : \ _bli_array_grow_items(arr, num) \ ) /* returns length of array */ -#define BLI_array_growone(arr) BLI_array_growitems(arr, 1) +#define BLI_array_grow_one(arr) BLI_array_grow_items(arr, 1) /* appends an item to the array. */ #define BLI_array_append(arr, item) ( \ - (void) BLI_array_growone(arr), \ + (void) BLI_array_grow_one(arr), \ (void) (arr[_##arr##_count - 1] = item) \ ) /* appends an item to the array and returns a pointer to the item in the array. * item is not a pointer, but actual data value.*/ #define BLI_array_append_r(arr, item) ( \ - (void) BLI_array_growone(arr), \ + (void) BLI_array_grow_one(arr), \ (void) (arr[_##arr##_count - 1] = item), \ (&arr[_##arr##_count - 1]) \ ) #define BLI_array_reserve(arr, num) \ - BLI_array_growitems(arr, num), (void)(_##arr##_count -= (num)) + BLI_array_grow_items(arr, num), (void)(_##arr##_count -= (num)) #define BLI_array_free(arr) \ @@ -163,7 +163,7 @@ /* set the count of the array, doesn't actually increase the allocated array * size. don't use this unless you know what you're doing. */ -#define BLI_array_set_length(arr, count) \ +#define BLI_array_length_set(arr, count) \ _##arr##_count = (count) /* only to prevent unused warnings */ diff --git a/source/blender/blenlib/BLI_editVert.h b/source/blender/blenlib/BLI_editVert.h deleted file mode 100644 index 0f754d5fc98..00000000000 --- a/source/blender/blenlib/BLI_editVert.h +++ /dev/null @@ -1,191 +0,0 @@ -/* - * ***** 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) 2001-2002 by NaN Holding BV. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -#ifndef __BLI_EDITVERT_H__ -#define __BLI_EDITVERT_H__ - -/** \file BLI_editVert.h - * \ingroup bli - * \since March 2001 - * \author nzc - * \brief Some editing types needed in the lib (unfortunately) for - * scanfill.c - */ - -#include "DNA_customdata_types.h" -#include "DNA_mesh_types.h" - -#include "BLO_sys_types.h" // for intptr_t support - -struct DerivedMesh; - -/* note; changing this also might affect the undo copy in editmesh.c */ -typedef struct EditVert -{ - struct EditVert *next, *prev; - union { - /* some lean storage for temporary usage - * in editmesh routines - */ - struct EditVert *v; - struct EditEdge *e; - struct EditFace *f; - void *p; - intptr_t l; - float fp; - int t; - } tmp; - float no[3]; /*vertex normal */ - float co[3]; /*vertex location */ - short xs, ys; /* used to store a screenspace 2d projection of the verts */ - - /* f stores selection eg. if (eve->f & SELECT) {... - * h for hidden. if (!eve->h) {... - * f1 and f2 can be used for temp data, clear them first*/ - unsigned char f, h, f1, f2; - float bweight; - short fast; /* only 0 or 1, for editmesh_fastmalloc, do not store temp data here! */ - int hash; /* internal editmesh.c use only, don't touch! */ - int keyindex; /* original index #, for restoring key information */ - - void *data; /* custom vertex data */ -} EditVert; - -struct EditEdge; - -typedef struct HashEdge { - struct EditEdge *eed; - struct HashEdge *next; -} HashEdge; - -/* note; changing this also might affect the undo copy in editmesh.c */ -typedef struct EditEdge -{ - struct EditEdge *next, *prev; - struct EditVert *v1, *v2; - union { - /* some lean storage for temporary usage - * in editmesh routines - */ - struct EditVert *v; - struct EditEdge *e; - struct EditFace *f; - void *p; - intptr_t l; - float fp; - } tmp; - short f1, f2; /* short, f1 is (ab)used in subdiv */ - unsigned char f, h, dir, seam, sharp; - float crease; - float bweight; - short fast; /* only 0 or 1, for editmesh_fastmalloc */ - short fgoni; /* index for fgon, for search */ - HashEdge hash; - void *data; /*custom edge data*/ -} EditEdge; - -/* note; changing this also might affect the undo copy in editmesh.c */ -typedef struct EditFace -{ - struct EditFace *next, *prev; - struct EditVert *v1, *v2, *v3, *v4; - struct EditEdge *e1, *e2, *e3, *e4; - union { - /* some lean storage for temporary usage - * in editmesh routines - */ - struct EditVert *v; - struct EditEdge *e; - struct EditFace *f; - void *p; - intptr_t l; - float fp; - } tmp; - float n[3], cent[3]; - unsigned char flag; - unsigned char f, f1, h; - unsigned char fast; /* only 0 or 1, for editmesh_fastmalloc */ - unsigned char fgonf; /* flag for fgon options */ - short mat_nr; - void *data; /* custom face data */ -} EditFace; - - -/*selection types*/ -#define EDITVERT 0 -#define EDITEDGE 1 -#define EDITFACE 2 - -typedef struct EditSelection -{ - struct EditSelection *next, *prev; - short type; - void *data; -} EditSelection; - - -typedef struct EditMesh -{ - ListBase verts, edges, faces; - ListBase selected; /*EditSelections. Used to store the order in which things are selected.*/ - HashEdge *hashedgetab; - - /* this is for the editmesh_fastmalloc */ - EditVert *allverts, *curvert; - EditEdge *alledges, *curedge; - EditFace *allfaces, *curface; - /* DerivedMesh caches... note that derived cage can be equivalent - * to derived final, care should be taken on release. - */ - - /* used for keeping track of the last clicked on face - so the space image - * when using the last selected face - (EditSelection) the space image flickered too much - * - * never access this directly, use EM_set_actFace and EM_get_actFace */ - EditFace *act_face; - - /* copy from scene */ - short selectmode; - /* copy from object actcol */ - short mat_nr; - /* stats */ - int totvert, totedge, totface, totvertsel, totedgesel, totfacesel; - /* shape key being edited */ - int shapenr; - - struct DerivedMesh *derivedCage, *derivedFinal; - /* the custom data layer mask that was last used to calculate - * derivedCage and derivedFinal - */ - int lastDataMask; - - CustomData vdata, edata, fdata; - -} EditMesh; - -#endif - diff --git a/source/blender/blenlib/BLI_lasso.h b/source/blender/blenlib/BLI_lasso.h new file mode 100644 index 00000000000..2360173c3b8 --- /dev/null +++ b/source/blender/blenlib/BLI_lasso.h @@ -0,0 +1,41 @@ +/* + * ***** 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) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#ifndef __BLI_LASSO_H__ +#define __BLI_LASSO_H__ + +/** \file BLI_lasso.h + * \ingroup bli + */ + +struct rcti; + +void BLI_lasso_boundbox(struct rcti *rect, int mcords[][2], short moves); +int BLI_lasso_is_point_inside(int mcords[][2], short moves, int sx, int sy, const int error_value); +int BLI_lasso_is_edge_inside(int mcords[][2], short moves, int x0, int y0, int x1, int y1, const int error_value); + +#endif diff --git a/source/blender/blenlib/CMakeLists.txt b/source/blender/blenlib/CMakeLists.txt index c06a1240729..d4b9bc3d2bc 100644 --- a/source/blender/blenlib/CMakeLists.txt +++ b/source/blender/blenlib/CMakeLists.txt @@ -61,6 +61,7 @@ set(SRC intern/graph.c intern/gsqueue.c intern/jitter.c + intern/lasso.c intern/listbase.c intern/math_base.c intern/math_base_inline.c @@ -90,10 +91,9 @@ set(SRC intern/voxel.c intern/winstuff.c + BLI_args.h BLI_array.h BLI_bitmap.h - BLI_smallhash.h - BLI_args.h BLI_blenlib.h BLI_boxpack2d.h BLI_bpath.h @@ -103,7 +103,6 @@ set(SRC BLI_dynlib.h BLI_dynstr.h BLI_edgehash.h - BLI_editVert.h BLI_fileops.h BLI_fileops_types.h BLI_fnmatch.h @@ -114,6 +113,7 @@ set(SRC BLI_jitter.h BLI_kdopbvh.h BLI_kdtree.h + BLI_lasso.h BLI_linklist.h BLI_listbase.h BLI_math.h @@ -133,6 +133,7 @@ set(SRC BLI_rand.h BLI_rect.h BLI_scanfill.h + BLI_smallhash.h BLI_string.h BLI_string_cursor_utf8.h BLI_string_utf8.h diff --git a/source/blender/blenlib/intern/BLI_kdopbvh.c b/source/blender/blenlib/intern/BLI_kdopbvh.c index 2cc67b3f0aa..3921c01d2cf 100644 --- a/source/blender/blenlib/intern/BLI_kdopbvh.c +++ b/source/blender/blenlib/intern/BLI_kdopbvh.c @@ -217,12 +217,10 @@ static void bvh_insertionsort(BVHNode **a, int lo, int hi, int axis) { int i,j; BVHNode *t; - for (i=lo; i < hi; i++) - { + for (i=lo; i < hi; i++) { j=i; t = a[i]; - while ((j!=lo) && (t->bv[axis] < (a[j-1])->bv[axis])) - { + while ((j!=lo) && (t->bv[axis] < (a[j-1])->bv[axis])) { a[j] = a[j-1]; j--; } @@ -233,8 +231,7 @@ static void bvh_insertionsort(BVHNode **a, int lo, int hi, int axis) static int bvh_partition(BVHNode **a, int lo, int hi, BVHNode * x, int axis) { int i=lo, j=hi; - while (1) - { + while (1) { while ((a[i])->bv[axis] < x->bv[axis]) i++; j--; while (x->bv[axis] < (a[j])->bv[axis]) j--; @@ -284,22 +281,18 @@ static void bvh_heapsort(BVHNode **a, int lo, int hi, int axis) static BVHNode *bvh_medianof3(BVHNode **a, int lo, int mid, int hi, int axis) // returns Sortable { - if ((a[mid])->bv[axis] < (a[lo])->bv[axis]) - { + if ((a[mid])->bv[axis] < (a[lo])->bv[axis]) { if ((a[hi])->bv[axis] < (a[mid])->bv[axis]) return a[mid]; - else - { + else { if ((a[hi])->bv[axis] < (a[lo])->bv[axis]) return a[hi]; else return a[lo]; } } - else - { - if ((a[hi])->bv[axis] < (a[mid])->bv[axis]) - { + else { + if ((a[hi])->bv[axis] < (a[mid])->bv[axis]) { if ((a[hi])->bv[axis] < (a[lo])->bv[axis]) return a[lo]; else @@ -354,8 +347,7 @@ static void sort_along_axis(BVHTree *tree, int start, int end, int axis) static int partition_nth_element(BVHNode **a, int _begin, int _end, int n, int axis) { int begin = _begin, end = _end, cut; - while (end-begin > 3) - { + while (end-begin > 3) { cut = bvh_partition(a, begin, end, bvh_medianof3(a, begin, (begin+end)/2, end-1, axis), axis ); if (cut <= n) begin = cut; @@ -375,8 +367,7 @@ static void build_skip_links(BVHTree *tree, BVHNode *node, BVHNode *left, BVHNod node->skip[0] = left; node->skip[1] = right; - for (i = 0; i < node->totnode; i++) - { + for (i = 0; i < node->totnode; i++) { if (i+1 < node->totnode) build_skip_links(tree, node->children[i], left, node->children[i+1] ); else @@ -396,20 +387,16 @@ static void create_kdop_hull(BVHTree *tree, BVHNode *node, const float *co, int int i, k; // don't init boudings for the moving case - if (!moving) - { - for (i = tree->start_axis; i < tree->stop_axis; i++) - { - bv[2*i] = FLT_MAX; - bv[2*i + 1] = -FLT_MAX; + if (!moving) { + for (i = tree->start_axis; i < tree->stop_axis; i++) { + bv[2 * i] = FLT_MAX; + bv[2 * i + 1] = -FLT_MAX; } } - for (k = 0; k < numpoints; k++) - { - // for all Axes. - for (i = tree->start_axis; i < tree->stop_axis; i++) - { + for (k = 0; k < numpoints; k++) { + /* for all Axes. */ + for (i = tree->start_axis; i < tree->stop_axis; i++) { newminmax = dot_v3v3(&co[k * 3], KDOP_AXES[i]); if (newminmax < bv[2 * i]) bv[2 * i] = newminmax; @@ -427,17 +414,14 @@ static void refit_kdop_hull(BVHTree *tree, BVHNode *node, int start, int end) float *bv = node->bv; - for (i = tree->start_axis; i < tree->stop_axis; i++) - { + for (i = tree->start_axis; i < tree->stop_axis; i++) { bv[2*i] = FLT_MAX; bv[2*i + 1] = -FLT_MAX; } - for (j = start; j < end; j++) - { -// for all Axes. - for (i = tree->start_axis; i < tree->stop_axis; i++) - { + for (j = start; j < end; j++) { + /* for all Axes. */ + for (i = tree->start_axis; i < tree->stop_axis; i++) { newmin = tree->nodes[j]->bv[(2 * i)]; if ((newmin < bv[(2 * i)])) bv[(2 * i)] = newmin; @@ -459,15 +443,13 @@ static char get_largest_axis(float *bv) middle_point[0] = (bv[1]) - (bv[0]); // x axis middle_point[1] = (bv[3]) - (bv[2]); // y axis middle_point[2] = (bv[5]) - (bv[4]); // z axis - if (middle_point[0] > middle_point[1]) - { + if (middle_point[0] > middle_point[1]) { if (middle_point[0] > middle_point[2]) return 1; // max x axis else return 5; // max z axis } - else - { + else { if (middle_point[1] > middle_point[2]) return 3; // max y axis else @@ -481,18 +463,14 @@ static void node_join(BVHTree *tree, BVHNode *node) { int i, j; - for (i = tree->start_axis; i < tree->stop_axis; i++) - { + for (i = tree->start_axis; i < tree->stop_axis; i++) { node->bv[2*i] = FLT_MAX; node->bv[2*i + 1] = -FLT_MAX; } - for (i = 0; i < tree->tree_type; i++) - { - if (node->children[i]) - { - for (j = tree->start_axis; j < tree->stop_axis; j++) - { + for (i = 0; i < tree->tree_type; i++) { + if (node->children[i]) { + for (j = tree->start_axis; j < tree->stop_axis; j++) { // update minimum if (node->children[i]->bv[(2 * j)] < node->bv[(2 * j)]) node->bv[(2 * j)] = node->children[i]->bv[(2 * j)]; @@ -619,17 +597,17 @@ static void build_implicit_tree_helper(BVHTree *tree, BVHBuildHelper *data) data->tree_type= tree->tree_type; //Calculate the smallest tree_type^n such that tree_type^n >= num_leafs - for ( - data->leafs_per_child[0] = 1; - data->leafs_per_child[0] < data->totleafs; - data->leafs_per_child[0] *= data->tree_type - ); + for (data->leafs_per_child[0] = 1; + data->leafs_per_child[0] < data->totleafs; + data->leafs_per_child[0] *= data->tree_type) + { + /* pass */ + } data->branches_on_level[0] = 1; //We could stop the loop first (but I am lazy to find out when) - for (depth = 1; depth < 32; depth++) - { + for (depth = 1; depth < 32; depth++) { data->branches_on_level[depth] = data->branches_on_level[depth-1] * data->tree_type; data->leafs_per_child [depth] = data->leafs_per_child [depth-1] / data->tree_type; } @@ -700,8 +678,7 @@ static int implicit_needed_branches(int tree_type, int leafs) static void split_leafs(BVHNode **leafs_array, int *nth, int partitions, int split_axis) { int i; - for (i=0; i < partitions-1; i++) - { + for (i=0; i < partitions-1; i++) { if (nth[i] >= nth[partitions]) break; @@ -742,8 +719,7 @@ static void non_recursive_bvh_div_nodes(BVHTree *tree, BVHNode *branches_array, //Most of bvhtree code relies on 1-leaf trees having at least one branch //We handle that special case here - if (num_leafs == 1) - { + if (num_leafs == 1) { BVHNode *root = branches_array+0; refit_kdop_hull(tree, root, 0, num_leafs); root->main_axis = get_largest_axis(root->bv) / 2; @@ -758,8 +734,7 @@ static void non_recursive_bvh_div_nodes(BVHTree *tree, BVHNode *branches_array, build_implicit_tree_helper(tree, &data); //Loop tree levels (log N) loops - for (i=1, depth = 1; i <= num_branches; i = i*tree_type + tree_offset, depth++) - { + for (i=1, depth = 1; i <= num_branches; i = i*tree_type + tree_offset, depth++) { const int first_of_next_level = i*tree_type + tree_offset; const int end_j = MIN2(first_of_next_level, num_branches + 1); //index of last branch on this level int j; @@ -885,22 +860,19 @@ BVHTree *BLI_bvhtree_new(int maxsize, float epsilon, char tree_type, char axis) tree->nodes = (BVHNode **)MEM_callocN(sizeof(BVHNode *)*numnodes, "BVHNodes"); - if (!tree->nodes) - { + if (!tree->nodes) { MEM_freeN(tree); return NULL; } tree->nodebv = (float*)MEM_callocN(sizeof(float)* axis * numnodes, "BVHNodeBV"); - if (!tree->nodebv) - { + if (!tree->nodebv) { MEM_freeN(tree->nodes); MEM_freeN(tree); } tree->nodechild = (BVHNode**)MEM_callocN(sizeof(BVHNode*) * tree_type * numnodes, "BVHNodeBV"); - if (!tree->nodechild) - { + if (!tree->nodechild) { MEM_freeN(tree->nodebv); MEM_freeN(tree->nodes); MEM_freeN(tree); @@ -908,8 +880,7 @@ BVHTree *BLI_bvhtree_new(int maxsize, float epsilon, char tree_type, char axis) tree->nodearray = (BVHNode *)MEM_callocN(sizeof(BVHNode)* numnodes, "BVHNodeArray"); - if (!tree->nodearray) - { + if (!tree->nodearray) { MEM_freeN(tree->nodechild); MEM_freeN(tree->nodebv); MEM_freeN(tree->nodes); @@ -918,8 +889,7 @@ BVHTree *BLI_bvhtree_new(int maxsize, float epsilon, char tree_type, char axis) } //link the dynamic bv and child links - for (i=0; i< numnodes; i++) - { + for (i=0; i< numnodes; i++) { tree->nodearray[i].bv = tree->nodebv + i * axis; tree->nodearray[i].children = tree->nodechild + i * tree_type; } @@ -931,8 +901,7 @@ BVHTree *BLI_bvhtree_new(int maxsize, float epsilon, char tree_type, char axis) void BLI_bvhtree_free(BVHTree *tree) { - if (tree) - { + if (tree) { MEM_freeN(tree->nodes); MEM_freeN(tree->nodearray); MEM_freeN(tree->nodebv); @@ -985,8 +954,7 @@ int BLI_bvhtree_insert(BVHTree *tree, int index, const float *co, int numpoints) node->index= index; // inflate the bv with some epsilon - for (i = tree->start_axis; i < tree->stop_axis; i++) - { + for (i = tree->start_axis; i < tree->stop_axis; i++) { node->bv[(2 * i)] -= tree->epsilon; // minimum node->bv[(2 * i) + 1] += tree->epsilon; // maximum } @@ -1013,8 +981,7 @@ int BLI_bvhtree_update_node(BVHTree *tree, int index, const float *co, const flo create_kdop_hull(tree, node, co_moving, numpoints, 1); // inflate the bv with some epsilon - for (i = tree->start_axis; i < tree->stop_axis; i++) - { + for (i = tree->start_axis; i < tree->stop_axis; i++) { node->bv[(2 * i)] -= tree->epsilon; // minimum node->bv[(2 * i) + 1] += tree->epsilon; // maximum } @@ -1057,8 +1024,7 @@ static int tree_overlap(BVHNode *node1, BVHNode *node2, int start_axis, int stop bv2 += start_axis<<1; // test all axis if min + max overlap - for (; bv1 != bv1_end; bv1+=2, bv2+=2) - { + for (; bv1 != bv1_end; bv1+=2, bv2+=2) { if ((*(bv1) > *(bv2 + 1)) || (*(bv2) > *(bv1 + 1))) return 0; } @@ -1070,27 +1036,21 @@ static void traverse(BVHOverlapData *data, BVHNode *node1, BVHNode *node2) { int j; - if (tree_overlap(node1, node2, data->start_axis, data->stop_axis)) - { + if (tree_overlap(node1, node2, data->start_axis, data->stop_axis)) { // check if node1 is a leaf - if (!node1->totnode) - { + if (!node1->totnode) { // check if node2 is a leaf - if (!node2->totnode) - { + if (!node2->totnode) { - if (node1 == node2) - { + if (node1 == node2) { return; } - if (data->i >= data->max_overlap) - { + if (data->i >= data->max_overlap) { // try to make alloc'ed memory bigger data->overlap = realloc(data->overlap, sizeof(BVHTreeOverlap)*data->max_overlap*2); - if (!data->overlap) - { + if (!data->overlap) { printf("Out of Memory in traverse\n"); return; } @@ -1103,20 +1063,15 @@ static void traverse(BVHOverlapData *data, BVHNode *node1, BVHNode *node2) data->i++; } - else - { - for (j = 0; j < data->tree2->tree_type; j++) - { + else { + for (j = 0; j < data->tree2->tree_type; j++) { if (node2->children[j]) traverse(data, node1, node2->children[j]); } } } - else - { - - for (j = 0; j < data->tree2->tree_type; j++) - { + else { + for (j = 0; j < data->tree2->tree_type; j++) { if (node1->children[j]) traverse(data, node1->children[j], node2); } @@ -1142,8 +1097,7 @@ BVHTreeOverlap *BLI_bvhtree_overlap(BVHTree *tree1, BVHTree *tree2, unsigned int data = MEM_callocN(sizeof(BVHOverlapData *)* tree1->tree_type, "BVHOverlapData_star"); - for (j = 0; j < tree1->tree_type; j++) - { + for (j = 0; j < tree1->tree_type; j++) { data[j] = (BVHOverlapData *)MEM_callocN(sizeof(BVHOverlapData), "BVHOverlapData"); // init BVHOverlapData @@ -1157,8 +1111,7 @@ BVHTreeOverlap *BLI_bvhtree_overlap(BVHTree *tree1, BVHTree *tree2, unsigned int } #pragma omp parallel for private(j) schedule(static) - for (j = 0; j < MIN2(tree1->tree_type, tree1->nodes[tree1->totleaf]->totnode); j++) - { + for (j = 0; j < MIN2(tree1->tree_type, tree1->nodes[tree1->totleaf]->totnode); j++) { traverse(data[j], tree1->nodes[tree1->totleaf]->children[j], tree2->nodes[tree2->totleaf]); } @@ -1167,14 +1120,12 @@ BVHTreeOverlap *BLI_bvhtree_overlap(BVHTree *tree1, BVHTree *tree2, unsigned int to = overlap = (BVHTreeOverlap *)MEM_callocN(sizeof(BVHTreeOverlap)*total, "BVHTreeOverlap"); - for (j = 0; j < tree1->tree_type; j++) - { + for (j = 0; j < tree1->tree_type; j++) { memcpy(to, data[j]->overlap, data[j]->i*sizeof(BVHTreeOverlap)); to+=data[j]->i; } - for (j = 0; j < tree1->tree_type; j++) - { + for (j = 0; j < tree1->tree_type; j++) { free(data[j]->overlap); MEM_freeN(data[j]); } @@ -1191,8 +1142,7 @@ static float calc_nearest_point(const float proj[3], BVHNode *node, float *neare const float *bv = node->bv; //nearest on AABB hull - for (i=0; i != 3; i++, bv += 2) - { + for (i=0; i != 3; i++, bv += 2) { if (bv[0] > proj[i]) nearest[i] = bv[0]; else if (bv[1] < proj[i]) @@ -1235,35 +1185,28 @@ typedef struct NodeDistance // TODO: use a priority queue to reduce the number of nodes looked on static void dfs_find_nearest_dfs(BVHNearestData *data, BVHNode *node) { - if (node->totnode == 0) - { + if (node->totnode == 0) { if (data->callback) data->callback(data->userdata , node->index, data->co, &data->nearest); - else - { + else { data->nearest.index = node->index; data->nearest.dist = calc_nearest_point(data->proj, node, data->nearest.co); } } - else - { + else { //Better heuristic to pick the closest node to dive on int i; float nearest[3]; - if (data->proj[ node->main_axis ] <= node->children[0]->bv[node->main_axis*2+1]) - { + if (data->proj[ node->main_axis ] <= node->children[0]->bv[node->main_axis*2+1]) { - for (i=0; i != node->totnode; i++) - { + for (i=0; i != node->totnode; i++) { if ( calc_nearest_point(data->proj, node->children[i], nearest) >= data->nearest.dist) continue; dfs_find_nearest_dfs(data, node->children[i]); } } - else - { - for (i=node->totnode-1; i >= 0 ; i--) - { + else { + for (i=node->totnode-1; i >= 0 ; i--) { if ( calc_nearest_point(data->proj, node->children[i], nearest) >= data->nearest.dist) continue; dfs_find_nearest_dfs(data, node->children[i]); } @@ -1381,17 +1324,14 @@ int BLI_bvhtree_find_nearest(BVHTree *tree, const float co[3], BVHTreeNearest *n data.callback = callback; data.userdata = userdata; - for (i = data.tree->start_axis; i != data.tree->stop_axis; i++) - { + for (i = data.tree->start_axis; i != data.tree->stop_axis; i++) { data.proj[i] = dot_v3v3(data.co, KDOP_AXES[i]); } - if (nearest) - { + if (nearest) { memcpy( &data.nearest , nearest, sizeof(*nearest) ); } - else - { + else { data.nearest.index = -1; data.nearest.dist = FLT_MAX; } @@ -1401,8 +1341,7 @@ int BLI_bvhtree_find_nearest(BVHTree *tree, const float co[3], BVHTreeNearest *n dfs_find_nearest_begin(&data, root); //copy back results - if (nearest) - { + if (nearest) { memcpy(nearest, &data.nearest, sizeof(*nearest)); } @@ -1424,10 +1363,8 @@ static float ray_nearest_hit(BVHRayCastData *data, float *bv) float low = 0, upper = data->hit.dist; - for (i=0; i != 3; i++, bv += 2) - { - if (data->ray_dot_axis[i] == 0.0f) - { + for (i=0; i != 3; i++, bv += 2) { + if (data->ray_dot_axis[i] == 0.0f) { //axis aligned ray if (data->ray.origin[i] < bv[0] - data->ray.radius || data->ray.origin[i] > bv[1] + data->ray.radius) @@ -1435,18 +1372,15 @@ static float ray_nearest_hit(BVHRayCastData *data, float *bv) return FLT_MAX; } } - else - { + else { float ll = (bv[0] - data->ray.radius - data->ray.origin[i]) / data->ray_dot_axis[i]; float lu = (bv[1] + data->ray.radius - data->ray.origin[i]) / data->ray_dot_axis[i]; - if (data->ray_dot_axis[i] > 0.0f) - { + if (data->ray_dot_axis[i] > 0.0f) { if (ll > low) low = ll; if (lu < upper) upper = lu; } - else - { + else { if (lu > low) low = lu; if (ll < upper) upper = ll; } @@ -1494,31 +1428,25 @@ static void dfs_raycast(BVHRayCastData *data, BVHNode *node) float dist = (data->ray.radius > 0.0f) ? ray_nearest_hit(data, node->bv) : fast_ray_nearest_hit(data, node); if (dist >= data->hit.dist) return; - if (node->totnode == 0) - { - if (data->callback) + if (node->totnode == 0) { + if (data->callback) { data->callback(data->userdata, node->index, &data->ray, &data->hit); - else - { + } + else { data->hit.index = node->index; data->hit.dist = dist; madd_v3_v3v3fl(data->hit.co, data->ray.origin, data->ray.direction, dist); } } - else - { + else { //pick loop direction to dive into the tree (based on ray direction and split axis) - if (data->ray_dot_axis[ (int)node->main_axis ] > 0.0f) - { - for (i=0; i != node->totnode; i++) - { + if (data->ray_dot_axis[ (int)node->main_axis ] > 0.0f) { + for (i=0; i != node->totnode; i++) { dfs_raycast(data, node->children[i]); } } - else - { - for (i=node->totnode-1; i >= 0; i--) - { + else { + for (i=node->totnode-1; i >= 0; i--) { dfs_raycast(data, node->children[i]); } } @@ -1575,13 +1503,11 @@ int BLI_bvhtree_ray_cast(BVHTree *tree, const float co[3], const float dir[3], f normalize_v3(data.ray.direction); - for (i=0; i<3; i++) - { + for (i=0; i<3; i++) { data.ray_dot_axis[i] = dot_v3v3(data.ray.direction, KDOP_AXES[i]); data.idot_axis[i] = 1.0f / data.ray_dot_axis[i]; - if (fabsf(data.ray_dot_axis[i]) < FLT_EPSILON) - { + if (fabsf(data.ray_dot_axis[i]) < FLT_EPSILON) { data.ray_dot_axis[i] = 0.0; } data.index[2*i] = data.idot_axis[i] < 0.0f ? 1 : 0; @@ -1593,14 +1519,12 @@ int BLI_bvhtree_ray_cast(BVHTree *tree, const float co[3], const float dir[3], f if (hit) memcpy( &data.hit, hit, sizeof(*hit) ); - else - { + else { data.hit.index = -1; data.hit.dist = FLT_MAX; } - if (root) - { + if (root) { dfs_raycast(&data, root); // iterative_raycast(&data, root); } @@ -1635,8 +1559,7 @@ float BLI_bvhtree_bb_raycast(float *bv, const float light_start[3], const float dist = ray_nearest_hit(&data, bv); - if (dist > 0.0f) - { + if (dist > 0.0f) { madd_v3_v3v3fl(pos, light_start, data.ray.direction, dist); } return dist; @@ -1666,8 +1589,7 @@ typedef struct RangeQueryData static void dfs_range_query(RangeQueryData *data, BVHNode *node) { - if (node->totnode == 0) - { + if (node->totnode == 0) { #if 0 /*UNUSED*/ //Calculate the node min-coords (if the node was a point then this is the point coordinates) float co[3]; @@ -1676,18 +1598,14 @@ static void dfs_range_query(RangeQueryData *data, BVHNode *node) co[2] = node->bv[4]; #endif } - else - { + else { int i; - for (i=0; i != node->totnode; i++) - { + for (i=0; i != node->totnode; i++) { float nearest[3]; float dist = calc_nearest_point(data->center, node->children[i], nearest); - if (dist < data->radius) - { + if (dist < data->radius) { //Its a leaf.. call the callback - if (node->children[i]->totnode == 0) - { + if (node->children[i]->totnode == 0) { data->hits++; data->callback(data->userdata, node->children[i]->index, dist); } @@ -1711,15 +1629,12 @@ int BLI_bvhtree_range_query(BVHTree *tree, const float co[3], float radius, BVHT data.callback = callback; data.userdata = userdata; - if (root != NULL) - { + if (root != NULL) { float nearest[3]; float dist = calc_nearest_point(data.center, root, nearest); - if (dist < data.radius) - { - //Its a leaf.. call the callback - if (root->totnode == 0) - { + if (dist < data.radius) { + /* Its a leaf.. call the callback */ + if (root->totnode == 0) { data.hits++; data.callback(data.userdata, root->index, dist); } diff --git a/source/blender/blenlib/intern/DLRB_tree.c b/source/blender/blenlib/intern/DLRB_tree.c index 0e90042a35f..7c5ee236a35 100644 --- a/source/blender/blenlib/intern/DLRB_tree.c +++ b/source/blender/blenlib/intern/DLRB_tree.c @@ -141,8 +141,7 @@ DLRBT_Node *BLI_dlrbTree_search (DLRBT_Tree *tree, DLRBT_Comparator_FP cmp_cb, v return NULL; /* iteratively perform this search */ - while (node && found==0) - { + while (node && found == 0) { /* check if traverse further or not * NOTE: it is assumed that the values will be unit values only */ @@ -183,8 +182,7 @@ DLRBT_Node *BLI_dlrbTree_search_exact (DLRBT_Tree *tree, DLRBT_Comparator_FP cmp return NULL; /* iteratively perform this search */ - while (node && found==0) - { + while (node && found==0) { /* check if traverse further or not * NOTE: it is assumed that the values will be unit values only */ diff --git a/source/blender/blenlib/intern/bpath.c b/source/blender/blenlib/intern/bpath.c index 0504ac5be60..8534621ccf1 100644 --- a/source/blender/blenlib/intern/bpath.c +++ b/source/blender/blenlib/intern/bpath.c @@ -387,7 +387,7 @@ void bpath_traverse_id(Main *bmain, ID *id, BPathVisitor visit_cb, const int fla return; } - switch(GS(id->name)) { + switch (GS(id->name)) { case ID_IM: ima= (Image *)id; if (ima->packedfile == NULL || (flag & BPATH_TRAVERSE_SKIP_PACKED) == 0) { @@ -510,7 +510,7 @@ void bpath_traverse_id(Main *bmain, ID *id, BPathVisitor visit_cb, const int fla if (scene->ed) { Sequence *seq; - SEQ_BEGIN(scene->ed, seq) { + SEQ_BEGIN (scene->ed, seq) { if (SEQ_HAS_PATH(seq)) { if (ELEM(seq->type, SEQ_MOVIE, SEQ_SOUND)) { rewrite_path_fixed_dirfile(seq->strip->dir, seq->strip->stripdata->name, diff --git a/source/blender/blenlib/intern/dynlib.c b/source/blender/blenlib/intern/dynlib.c index e300d09ffbc..c80f3e08e3b 100644 --- a/source/blender/blenlib/intern/dynlib.c +++ b/source/blender/blenlib/intern/dynlib.c @@ -85,7 +85,9 @@ char *BLI_dynlib_get_error_as_string(DynamicLibrary *lib) if (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS, NULL, err, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), buf, sizeof(buf), NULL)) + { return buf; + } } return NULL; diff --git a/source/blender/blenlib/intern/fileops.c b/source/blender/blenlib/intern/fileops.c index 4b5ea44e97c..8990f0f79d3 100644 --- a/source/blender/blenlib/intern/fileops.c +++ b/source/blender/blenlib/intern/fileops.c @@ -230,7 +230,7 @@ void *BLI_gzopen(const char *filename, const char *mode) GetShortPathNameW(filename_16,short_name_16, 256); for (i = 0; i < 256; i++) { - short_name[i] = short_name_16[i]; + short_name[i] = (char)short_name_16[i]; } gzfile = gzopen(short_name,mode); diff --git a/source/blender/blenlib/intern/freetypefont.c b/source/blender/blenlib/intern/freetypefont.c index a9a1f2bc57e..8f2a2e6f8b5 100644 --- a/source/blender/blenlib/intern/freetypefont.c +++ b/source/blender/blenlib/intern/freetypefont.c @@ -127,17 +127,21 @@ static void freetypechar_to_vchar(FT_Face face, FT_ULong charcode, VFontData *vf npoints[j] = ftoutline.contours[j] - ftoutline.contours[j - 1]; } - // get number of on-curve points for beziertriples (including conic virtual on-points) + // get number of on-curve points for beziertriples (including conic virtual on-points) for (j = 0; j < ftoutline.n_contours; j++) { for (k = 0; k < npoints[j]; k++) { - if (j > 0) l = k + ftoutline.contours[j - 1] + 1; else l = k; - if (ftoutline.tags[l] == FT_Curve_Tag_On) - onpoints[j]++; + l = (j > 0) ? (k + ftoutline.contours[j - 1] + 1) : k; - if (k < npoints[j] - 1 ) + if (ftoutline.tags[l] == FT_Curve_Tag_On) + onpoints[j]++; + + if (k < npoints[j] - 1 ) { if ( ftoutline.tags[l] == FT_Curve_Tag_Conic && - ftoutline.tags[l+1] == FT_Curve_Tag_Conic) + ftoutline.tags[l+1] == FT_Curve_Tag_Conic) + { onpoints[j]++; + } + } } } @@ -398,8 +402,7 @@ static VFontData *objfnt_to_ftvfontdata(PackedFile * pf) } // Load characters - while (charcode < 256) - { + while (charcode < 256) { // Generate the font data freetypechar_to_vchar(face, charcode, vfd); diff --git a/source/blender/blenlib/intern/graph.c b/source/blender/blenlib/intern/graph.c index 75131f81ade..432a74a5890 100644 --- a/source/blender/blenlib/intern/graph.c +++ b/source/blender/blenlib/intern/graph.c @@ -46,13 +46,11 @@ static void flagAxialSymmetry(BNode *root_node, BNode *end_node, BArc *arc, int void BLI_freeNode(BGraph *graph, BNode *node) { - if (node->arcs) - { + if (node->arcs) { MEM_freeN(node->arcs); } - if (graph->free_node) - { + if (graph->free_node) { graph->free_node(node); } } @@ -70,8 +68,7 @@ BNode *BLI_otherNode(BArc *arc, BNode *node) void BLI_removeArc(BGraph *graph, BArc *arc) { - if (graph->free_arc) - { + if (graph->free_arc) { graph->free_arc(arc); } @@ -82,8 +79,7 @@ void BLI_flagNodes(BGraph *graph, int flag) { BNode *node; - for (node = graph->nodes.first; node; node = node->next) - { + for (node = graph->nodes.first; node; node = node->next) { node->flag = flag; } } @@ -92,8 +88,7 @@ void BLI_flagArcs(BGraph *graph, int flag) { BArc *arc; - for (arc = graph->arcs.first; arc; arc = arc->next) - { + for (arc = graph->arcs.first; arc; arc = arc->next) { arc->flag = flag; } } @@ -109,10 +104,8 @@ void BLI_buildAdjacencyList(BGraph *graph) BNode *node; BArc *arc; - for (node = graph->nodes.first; node; node = node->next) - { - if (node->arcs != NULL) - { + for (node = graph->nodes.first; node; node = node->next) { + if (node->arcs != NULL) { MEM_freeN(node->arcs); } @@ -122,16 +115,13 @@ void BLI_buildAdjacencyList(BGraph *graph) node->flag = 0; } - for (arc = graph->arcs.first; arc; arc= arc->next) - { + for (arc = graph->arcs.first; arc; arc= arc->next) { addArcToNodeAdjacencyList(arc->head, arc); addArcToNodeAdjacencyList(arc->tail, arc); } - for (node = graph->nodes.first; node; node = node->next) - { - if (node->degree != node->flag) - { + for (node = graph->nodes.first; node; node = node->next) { + if (node->degree != node->flag) { printf("error in node [%p]. Added only %i arcs out of %i\n", (void *)node, node->flag, node->degree); } } @@ -141,8 +131,7 @@ void BLI_rebuildAdjacencyListForNode(BGraph* graph, BNode *node) { BArc *arc; - if (node->arcs != NULL) - { + if (node->arcs != NULL) { MEM_freeN(node->arcs); } @@ -151,20 +140,16 @@ void BLI_rebuildAdjacencyListForNode(BGraph* graph, BNode *node) /* temporary use to indicate the first index available in the lists */ node->flag = 0; - for (arc = graph->arcs.first; arc; arc= arc->next) - { - if (arc->head == node) - { + for (arc = graph->arcs.first; arc; arc= arc->next) { + if (arc->head == node) { addArcToNodeAdjacencyList(arc->head, arc); } - else if (arc->tail == node) - { + else if (arc->tail == node) { addArcToNodeAdjacencyList(arc->tail, arc); } } - if (node->degree != node->flag) - { + if (node->degree != node->flag) { printf("error in node [%p]. Added only %i arcs out of %i\n", (void *)node, node->flag, node->degree); } } @@ -173,10 +158,8 @@ void BLI_freeAdjacencyList(BGraph *graph) { BNode *node; - for (node = graph->nodes.first; node; node = node->next) - { - if (node->arcs != NULL) - { + for (node = graph->nodes.first; node; node = node->next) { + if (node->arcs != NULL) { MEM_freeN(node->arcs); node->arcs = NULL; } @@ -187,10 +170,8 @@ int BLI_hasAdjacencyList(BGraph *graph) { BNode *node; - for (node = graph->nodes.first; node; node = node->next) - { - if (node->arcs == NULL) - { + for (node = graph->nodes.first; node; node = node->next) { + if (node->arcs == NULL) { return 0; } } @@ -200,28 +181,24 @@ int BLI_hasAdjacencyList(BGraph *graph) void BLI_replaceNodeInArc(BGraph *graph, BArc *arc, BNode *node_src, BNode *node_replaced) { - if (arc->head == node_replaced) - { + if (arc->head == node_replaced) { arc->head = node_src; node_src->degree++; } - if (arc->tail == node_replaced) - { + if (arc->tail == node_replaced) { arc->tail = node_src; node_src->degree++; } - if (arc->head == arc->tail) - { + if (arc->head == arc->tail) { node_src->degree -= 2; graph->free_arc(arc); BLI_freelinkN(&graph->arcs, arc); } - if (node_replaced->degree == 0) - { + if (node_replaced->degree == 0) { BLI_removeNode(graph, node_replaced); } } @@ -230,26 +207,22 @@ void BLI_replaceNode(BGraph *graph, BNode *node_src, BNode *node_replaced) { BArc *arc, *next_arc; - for (arc = graph->arcs.first; arc; arc = next_arc) - { + for (arc = graph->arcs.first; arc; arc = next_arc) { next_arc = arc->next; - if (arc->head == node_replaced) - { + if (arc->head == node_replaced) { arc->head = node_src; node_replaced->degree--; node_src->degree++; } - if (arc->tail == node_replaced) - { + if (arc->tail == node_replaced) { arc->tail = node_src; node_replaced->degree--; node_src->degree++; } - if (arc->head == arc->tail) - { + if (arc->head == arc->tail) { node_src->degree -= 2; graph->free_arc(arc); @@ -257,8 +230,7 @@ void BLI_replaceNode(BGraph *graph, BNode *node_src, BNode *node_replaced) } } - if (node_replaced->degree == 0) - { + if (node_replaced->degree == 0) { BLI_removeNode(graph, node_replaced); } } @@ -267,12 +239,9 @@ void BLI_removeDoubleNodes(BGraph *graph, float limit) { BNode *node_src, *node_replaced; - for (node_src = graph->nodes.first; node_src; node_src = node_src->next) - { - for (node_replaced = graph->nodes.first; node_replaced; node_replaced = node_replaced->next) - { - if (node_replaced != node_src && len_v3v3(node_replaced->p, node_src->p) <= limit) - { + for (node_src = graph->nodes.first; node_src; node_src = node_src->next) { + for (node_replaced = graph->nodes.first; node_replaced; node_replaced = node_replaced->next) { + if (node_replaced != node_src && len_v3v3(node_replaced->p, node_src->p) <= limit) { BLI_replaceNode(graph, node_src, node_replaced); } } @@ -285,11 +254,9 @@ BNode * BLI_FindNodeByPosition(BGraph *graph, float *p, float limit) BNode *closest_node = NULL, *node; float min_distance = 0.0f; - for (node = graph->nodes.first; node; node = node->next) - { + for (node = graph->nodes.first; node; node = node->next) { float distance = len_v3v3(p, node->p); - if (distance <= limit && (closest_node == NULL || distance < min_distance)) - { + if (distance <= limit && (closest_node == NULL || distance < min_distance)) { closest_node = node; min_distance = distance; } @@ -301,15 +268,13 @@ BNode * BLI_FindNodeByPosition(BGraph *graph, float *p, float limit) static void flagSubgraph(BNode *node, int subgraph) { - if (node->subgraph_index == 0) - { + if (node->subgraph_index == 0) { BArc *arc; int i; node->subgraph_index = subgraph; - for (i = 0; i < node->degree; i++) - { + for (i = 0; i < node->degree; i++) { arc = node->arcs[i]; flagSubgraph(BLI_otherNode(arc, node), subgraph); } @@ -321,20 +286,16 @@ int BLI_FlagSubgraphs(BGraph *graph) BNode *node; int subgraph = 0; - if (BLI_hasAdjacencyList(graph) == 0) - { + if (BLI_hasAdjacencyList(graph) == 0) { BLI_buildAdjacencyList(graph); } - for (node = graph->nodes.first; node; node = node->next) - { + for (node = graph->nodes.first; node; node = node->next) { node->subgraph_index = 0; } - for (node = graph->nodes.first; node; node = node->next) - { - if (node->subgraph_index == 0) - { + for (node = graph->nodes.first; node; node = node->next) { + if (node->subgraph_index == 0) { subgraph++; flagSubgraph(node, subgraph); } @@ -347,10 +308,8 @@ void BLI_ReflagSubgraph(BGraph *graph, int old_subgraph, int new_subgraph) { BNode *node; - for (node = graph->nodes.first; node; node = node->next) - { - if (node->flag == old_subgraph) - { + for (node = graph->nodes.first; node; node = node->next) { + if (node->flag == old_subgraph) { node->flag = new_subgraph; } } @@ -362,26 +321,22 @@ static int detectCycle(BNode *node, BArc *src_arc) { int value = 0; - if (node->flag == 0) - { + if (node->flag == 0) { int i; /* mark node as visited */ node->flag = 1; - for (i = 0; i < node->degree && value == 0; i++) - { + for (i = 0; i < node->degree && value == 0; i++) { BArc *arc = node->arcs[i]; /* don't go back on the source arc */ - if (arc != src_arc) - { + if (arc != src_arc) { value = detectCycle(BLI_otherNode(arc, node), arc); } } } - else - { + else { value = 1; } @@ -399,11 +354,9 @@ int BLI_isGraphCyclic(BGraph *graph) BLI_flagNodes(graph, 0); /* detectCycles in subgraphs */ - for (node = graph->nodes.first; node && value == 0; node = node->next) - { + for (node = graph->nodes.first; node && value == 0; node = node->next) { /* only for nodes in subgraphs that haven't been visited yet */ - if (node->flag == 0) - { + if (node->flag == 0) { value = value || detectCycle(node, NULL); } } @@ -415,10 +368,8 @@ BArc * BLI_findConnectedArc(BGraph *graph, BArc *arc, BNode *v) { BArc *nextArc; - for (nextArc = graph->arcs.first; nextArc; nextArc = nextArc->next) - { - if (arc != nextArc && (nextArc->head == v || nextArc->tail == v)) - { + for (nextArc = graph->arcs.first; nextArc; nextArc = nextArc->next) { + if (arc != nextArc && (nextArc->head == v || nextArc->tail == v)) { break; } } @@ -434,30 +385,24 @@ static int subtreeShape(BNode *node, BArc *rootArc, int include_root) node->flag = 1; - if (include_root) - { + if (include_root) { BNode *newNode = BLI_otherNode(rootArc, node); return subtreeShape(newNode, rootArc, 0); } - else - { + else { /* Base case, no arcs leading away */ - if (node->arcs == NULL || *(node->arcs) == NULL) - { + if (node->arcs == NULL || *(node->arcs) == NULL) { return 0; } - else - { + else { int i; - for (i = 0; i < node->degree; i++) - { + for (i = 0; i < node->degree; i++) { BArc *arc = node->arcs[i]; BNode *newNode = BLI_otherNode(arc, node); /* stop immediate and cyclic backtracking */ - if (arc != rootArc && newNode->flag == 0) - { + if (arc != rootArc && newNode->flag == 0) { depth += subtreeShape(newNode, arc, 0); } } @@ -480,13 +425,11 @@ float BLI_subtreeLength(BNode *node) node->flag = 0; /* flag node as visited */ - for (i = 0; i < node->degree; i++) - { + for (i = 0; i < node->degree; i++) { BArc *arc = node->arcs[i]; BNode *other_node = BLI_otherNode(arc, node); - if (other_node->flag != 0) - { + if (other_node->flag != 0) { float subgraph_length = arc->length + BLI_subtreeLength(other_node); length = MAX2(length, subgraph_length); } @@ -503,15 +446,12 @@ void BLI_calcGraphLength(BGraph *graph) nb_subgraphs = BLI_FlagSubgraphs(graph); - for (i = 1; i <= nb_subgraphs; i++) - { + for (i = 1; i <= nb_subgraphs; i++) { BNode *node; - for (node = graph->nodes.first; node; node = node->next) - { + for (node = graph->nodes.first; node; node = node->next) { /* start on an external node of the subgraph */ - if (node->subgraph_index == i && node->degree == 1) - { + if (node->subgraph_index == i && node->degree == 1) { float subgraph_length = BLI_subtreeLength(node); length = MAX2(length, subgraph_length); break; @@ -542,32 +482,27 @@ static void testRadialSymmetry(BGraph *graph, BNode* root_node, RadialArc* ring, int i; /* sort ring by angle */ - for (i = 0; i < total - 1; i++) - { + for (i = 0; i < total - 1; i++) { float minAngle = FLT_MAX; int minIndex = -1; int j; - for (j = i + 1; j < total; j++) - { + for (j = i + 1; j < total; j++) { float angle = dot_v3v3(ring[i].n, ring[j].n); /* map negative values to 1..2 */ - if (angle < 0) - { + if (angle < 0) { angle = 1 - angle; } - if (angle < minAngle) - { + if (angle < minAngle) { minIndex = j; minAngle = angle; } } /* swap if needed */ - if (minIndex != i + 1) - { + if (minIndex != i + 1) { RadialArc tmp; tmp = ring[i + 1]; ring[i + 1] = ring[minIndex]; @@ -575,8 +510,7 @@ static void testRadialSymmetry(BGraph *graph, BNode* root_node, RadialArc* ring, } } - for (i = 0; i < total && symmetric; i++) - { + for (i = 0; i < total && symmetric; i++) { BNode *node1, *node2; float tangent[3]; float normal[3]; @@ -593,29 +527,25 @@ static void testRadialSymmetry(BGraph *graph, BNode* root_node, RadialArc* ring, BLI_mirrorAlongAxis(p, root_node->p, normal); /* check if it's within limit before continuing */ - if (len_v3v3(node1->p, p) > limit) - { + if (len_v3v3(node1->p, p) > limit) { symmetric = 0; } } - if (symmetric) - { + if (symmetric) { /* mark node as symmetric physically */ copy_v3_v3(root_node->symmetry_axis, axis); root_node->symmetry_flag |= SYM_PHYSICAL; root_node->symmetry_flag |= SYM_RADIAL; /* FLAG SYMMETRY GROUP */ - for (i = 0; i < total; i++) - { + for (i = 0; i < total; i++) { ring[i].arc->symmetry_group = group; ring[i].arc->symmetry_flag = SYM_SIDE_RADIAL + i; } - if (graph->radial_symmetry) - { + if (graph->radial_symmetry) { graph->radial_symmetry(root_node, ring, total); } } @@ -634,13 +564,11 @@ static void handleRadialSymmetry(BGraph *graph, BNode *root_node, int depth, flo root_node->symmetry_flag |= SYM_TOPOLOGICAL; /* total the number of arcs in the symmetry ring */ - for (i = 0; i < root_node->degree; i++) - { + for (i = 0; i < root_node->degree; i++) { BArc *connectedArc = root_node->arcs[i]; /* depth is store as a negative in flag. symmetry level is positive */ - if (connectedArc->symmetry_level == -depth) - { + if (connectedArc->symmetry_level == -depth) { total++; } } @@ -649,13 +577,11 @@ static void handleRadialSymmetry(BGraph *graph, BNode *root_node, int depth, flo unit = ring; /* fill in the ring */ - for (unit = ring, i = 0; i < root_node->degree; i++) - { + for (unit = ring, i = 0; i < root_node->degree; i++) { BArc *connectedArc = root_node->arcs[i]; /* depth is store as a negative in flag. symmetry level is positive */ - if (connectedArc->symmetry_level == -depth) - { + if (connectedArc->symmetry_level == -depth) { BNode *otherNode = BLI_otherNode(connectedArc, root_node); float vec[3]; @@ -676,19 +602,16 @@ static void handleRadialSymmetry(BGraph *graph, BNode *root_node, int depth, flo * using a rather bogus insertion sort * butrings will never get too big to matter * */ - for (i = 0; i < total; i++) - { + for (i = 0; i < total; i++) { int j; - for (j = i - 1; j >= 0; j--) - { + for (j = i - 1; j >= 0; j--) { BArc *arc1, *arc2; arc1 = ring[j].arc; arc2 = ring[j + 1].arc; - if (arc1->length > arc2->length) - { + if (arc1->length > arc2->length) { /* swap with smaller */ RadialArc tmp; @@ -696,8 +619,7 @@ static void handleRadialSymmetry(BGraph *graph, BNode *root_node, int depth, flo ring[j + 1] = ring[j]; ring[j] = tmp; } - else - { + else { break; } } @@ -707,38 +629,32 @@ static void handleRadialSymmetry(BGraph *graph, BNode *root_node, int depth, flo first = 0; group = 0; - for (i = 1; i < total; i++) - { + for (i = 1; i < total; i++) { int dispatch = 0; int last = i - 1; - if (fabsf(ring[first].arc->length - ring[i].arc->length) > limit) - { + if (fabsf(ring[first].arc->length - ring[i].arc->length) > limit) { dispatch = 1; } /* if not dispatching already and on last arc * Dispatch using current arc as last * */ - if (dispatch == 0 && i == total - 1) - { + if (dispatch == 0 && i == total - 1) { last = i; dispatch = 1; } - if (dispatch) - { + if (dispatch) { int sub_total = last - first + 1; group += 1; - if (sub_total == 1) - { + if (sub_total == 1) { group -= 1; /* not really a group so decrement */ /* NOTHING TO DO */ } - else if (sub_total == 2) - { + else if (sub_total == 2) { BArc *arc1, *arc2; BNode *node1, *node2; @@ -750,14 +666,12 @@ static void handleRadialSymmetry(BGraph *graph, BNode *root_node, int depth, flo testAxialSymmetry(graph, root_node, node1, node2, arc1, arc2, axis, limit, group); } - else if (sub_total != total) /* allocate a new sub ring if needed */ - { + else if (sub_total != total) /* allocate a new sub ring if needed */ { RadialArc *sub_ring = MEM_callocN(sizeof(RadialArc) * sub_total, "radial symmetry ring"); int sub_i; /* fill in the sub ring */ - for (sub_i = 0; sub_i < sub_total; sub_i++) - { + for (sub_i = 0; sub_i < sub_total; sub_i++) { sub_ring[sub_i] = ring[first + sub_i]; } @@ -765,8 +679,7 @@ static void handleRadialSymmetry(BGraph *graph, BNode *root_node, int depth, flo MEM_freeN(sub_ring); } - else if (sub_total == total) - { + else if (sub_total == total) { testRadialSymmetry(graph, root_node, ring, total, axis, limit, group); } @@ -786,12 +699,10 @@ static void flagAxialSymmetry(BNode *root_node, BNode *end_node, BArc *arc, int sub_v3_v3v3(vec, end_node->p, root_node->p); - if (dot_v3v3(vec, root_node->symmetry_axis) < 0) - { + if (dot_v3v3(vec, root_node->symmetry_axis) < 0) { arc->symmetry_flag |= SYM_SIDE_NEGATIVE; } - else - { + else { arc->symmetry_flag |= SYM_SIDE_POSITIVE; } } @@ -809,16 +720,13 @@ static void testAxialSymmetry(BGraph *graph, BNode* root_node, BNode* node1, BNo cross_v3_v3v3(nor, vec, axis); - if (abs(nor[0]) > abs(nor[1]) && abs(nor[0]) > abs(nor[2]) && nor[0] < 0) - { + if (abs(nor[0]) > abs(nor[1]) && abs(nor[0]) > abs(nor[2]) && nor[0] < 0) { negate_v3(nor); } - else if (abs(nor[1]) > abs(nor[0]) && abs(nor[1]) > abs(nor[2]) && nor[1] < 0) - { + else if (abs(nor[1]) > abs(nor[0]) && abs(nor[1]) > abs(nor[2]) && nor[1] < 0) { negate_v3(nor); } - else if (abs(nor[2]) > abs(nor[1]) && abs(nor[2]) > abs(nor[0]) && nor[2] < 0) - { + else if (abs(nor[2]) > abs(nor[1]) && abs(nor[2]) > abs(nor[0]) && nor[2] < 0) { negate_v3(nor); } @@ -827,8 +735,7 @@ static void testAxialSymmetry(BGraph *graph, BNode* root_node, BNode* node1, BNo BLI_mirrorAlongAxis(p, root_node->p, nor); /* check if it's within limit before continuing */ - if (len_v3v3(node1->p, p) <= limit) - { + if (len_v3v3(node1->p, p) <= limit) { /* mark node as symmetric physically */ copy_v3_v3(root_node->symmetry_axis, nor); root_node->symmetry_flag |= SYM_PHYSICAL; @@ -838,13 +745,11 @@ static void testAxialSymmetry(BGraph *graph, BNode* root_node, BNode* node1, BNo flagAxialSymmetry(root_node, node1, arc1, group); flagAxialSymmetry(root_node, node2, arc2, group); - if (graph->axial_symmetry) - { + if (graph->axial_symmetry) { graph->axial_symmetry(root_node, node1, node2, arc1, arc2); } } - else - { + else { /* NOT SYMMETRIC */ } } @@ -858,20 +763,16 @@ static void handleAxialSymmetry(BGraph *graph, BNode *root_node, int depth, floa /* mark topological symmetry */ root_node->symmetry_flag |= SYM_TOPOLOGICAL; - for (i = 0; i < root_node->degree; i++) - { + for (i = 0; i < root_node->degree; i++) { BArc *connectedArc = root_node->arcs[i]; /* depth is store as a negative in flag. symmetry level is positive */ - if (connectedArc->symmetry_level == -depth) - { - if (arc1 == NULL) - { + if (connectedArc->symmetry_level == -depth) { + if (arc1 == NULL) { arc1 = connectedArc; node1 = BLI_otherNode(arc1, root_node); } - else - { + else { arc2 = connectedArc; node2 = BLI_otherNode(arc2, root_node); break; /* Can stop now, the two arcs have been found */ @@ -880,8 +781,7 @@ static void handleAxialSymmetry(BGraph *graph, BNode *root_node, int depth, floa } /* shouldn't happen, but just to be sure */ - if (node1 == NULL || node2 == NULL) - { + if (node1 == NULL || node2 == NULL) { return; } @@ -897,18 +797,15 @@ static void markdownSecondarySymmetry(BGraph *graph, BNode *node, int depth, int /* count the number of branches in this symmetry group * and determinate the axis of symmetry * */ - for (i = 0; i < node->degree; i++) - { + for (i = 0; i < node->degree; i++) { BArc *connectedArc = node->arcs[i]; /* depth is store as a negative in flag. symmetry level is positive */ - if (connectedArc->symmetry_level == -depth) - { + if (connectedArc->symmetry_level == -depth) { count++; } /* If arc is on the axis */ - else if (connectedArc->symmetry_level == level) - { + else if (connectedArc->symmetry_level == level) { add_v3_v3(axis, connectedArc->head->p); sub_v3_v3v3(axis, axis, connectedArc->tail->p); } @@ -917,22 +814,18 @@ static void markdownSecondarySymmetry(BGraph *graph, BNode *node, int depth, int normalize_v3(axis); /* Split between axial and radial symmetry */ - if (count == 2) - { + if (count == 2) { handleAxialSymmetry(graph, node, depth, axis, limit); } - else - { + else { handleRadialSymmetry(graph, node, depth, axis, limit); } /* markdown secondary symetries */ - for (i = 0; i < node->degree; i++) - { + for (i = 0; i < node->degree; i++) { BArc *connectedArc = node->arcs[i]; - if (connectedArc->symmetry_level == -depth) - { + if (connectedArc->symmetry_level == -depth) { /* markdown symmetry for branches corresponding to the depth */ markdownSymmetryArc(graph, connectedArc, node, level + 1, limit); } @@ -944,19 +837,16 @@ static void markdownSymmetryArc(BGraph *graph, BArc *arc, BNode *node, int level int i; /* if arc is null, we start straight from a node */ - if (arc) - { + if (arc) { arc->symmetry_level = level; node = BLI_otherNode(arc, node); } - for (i = 0; i < node->degree; i++) - { + for (i = 0; i < node->degree; i++) { BArc *connectedArc = node->arcs[i]; - if (connectedArc != arc) - { + if (connectedArc != arc) { BNode *connectedNode = BLI_otherNode(connectedArc, node); /* symmetry level is positive value, negative values is subtree depth */ @@ -966,26 +856,22 @@ static void markdownSymmetryArc(BGraph *graph, BArc *arc, BNode *node, int level arc = NULL; - for (i = 0; i < node->degree; i++) - { + for (i = 0; i < node->degree; i++) { int issymmetryAxis = 0; BArc *connectedArc = node->arcs[i]; /* only arcs not already marked as symetric */ - if (connectedArc->symmetry_level < 0) - { + if (connectedArc->symmetry_level < 0) { int j; /* true by default */ issymmetryAxis = 1; - for (j = 0; j < node->degree; j++) - { + for (j = 0; j < node->degree; j++) { BArc *otherArc = node->arcs[j]; /* different arc, same depth */ - if (otherArc != connectedArc && otherArc->symmetry_level == connectedArc->symmetry_level) - { + if (otherArc != connectedArc && otherArc->symmetry_level == connectedArc->symmetry_level) { /* not on the symmetry axis */ issymmetryAxis = 0; break; @@ -994,15 +880,12 @@ static void markdownSymmetryArc(BGraph *graph, BArc *arc, BNode *node, int level } /* arc could be on the symmetry axis */ - if (issymmetryAxis == 1) - { + if (issymmetryAxis == 1) { /* no arc as been marked previously, keep this one */ - if (arc == NULL) - { + if (arc == NULL) { arc = connectedArc; } - else if (connectedArc->symmetry_level < arc->symmetry_level) - { + else if (connectedArc->symmetry_level < arc->symmetry_level) { /* go with more complex subtree as symmetry arc */ arc = connectedArc; } @@ -1010,20 +893,17 @@ static void markdownSymmetryArc(BGraph *graph, BArc *arc, BNode *node, int level } /* go down the arc continuing the symmetry axis */ - if (arc) - { + if (arc) { markdownSymmetryArc(graph, arc, node, level, limit); } /* secondary symmetry */ - for (i = 0; i < node->degree; i++) - { + for (i = 0; i < node->degree; i++) { BArc *connectedArc = node->arcs[i]; /* only arcs not already marked as symetric and is not the next arc on the symmetry axis */ - if (connectedArc->symmetry_level < 0) - { + if (connectedArc->symmetry_level < 0) { /* subtree depth is store as a negative value in the symmetry */ markdownSecondarySymmetry(graph, node, -connectedArc->symmetry_level, level, limit); } @@ -1035,13 +915,11 @@ void BLI_markdownSymmetry(BGraph *graph, BNode *root_node, float limit) BNode *node; BArc *arc; - if (root_node == NULL) - { + if (root_node == NULL) { return; } - if (BLI_isGraphCyclic(graph)) - { + if (BLI_isGraphCyclic(graph)) { return; } @@ -1054,37 +932,29 @@ void BLI_markdownSymmetry(BGraph *graph, BNode *root_node, float limit) node = root_node; /* sanity check REMOVE ME */ - if (node->degree > 0) - { + if (node->degree > 0) { arc = node->arcs[0]; - if (node->degree == 1) - { + if (node->degree == 1) { markdownSymmetryArc(graph, arc, node, 1, limit); } - else - { + else { markdownSymmetryArc(graph, NULL, node, 1, limit); } /* mark down non-symetric arcs */ - for (arc = graph->arcs.first; arc; arc = arc->next) - { - if (arc->symmetry_level < 0) - { + for (arc = graph->arcs.first; arc; arc = arc->next) { + if (arc->symmetry_level < 0) { arc->symmetry_level = 0; } - else - { + else { /* mark down nodes with the lowest level symmetry axis */ - if (arc->head->symmetry_level == 0 || arc->head->symmetry_level > arc->symmetry_level) - { + if (arc->head->symmetry_level == 0 || arc->head->symmetry_level > arc->symmetry_level) { arc->head->symmetry_level = arc->symmetry_level; } - if (arc->tail->symmetry_level == 0 || arc->tail->symmetry_level > arc->symmetry_level) - { + if (arc->tail->symmetry_level == 0 || arc->tail->symmetry_level > arc->symmetry_level) { arc->tail->symmetry_level = arc->symmetry_level; } } @@ -1108,16 +978,13 @@ void* IT_peek(void* arg, int n) { BArcIterator *iter = (BArcIterator*)arg; - if (iter->index + n < 0) - { + if (iter->index + n < 0) { return iter->head(iter); } - else if (iter->index + n >= iter->length) - { + else if (iter->index + n >= iter->length) { return iter->tail(iter); } - else - { + else { return iter->peek(iter, n); } } diff --git a/source/blender/blenlib/intern/lasso.c b/source/blender/blenlib/intern/lasso.c new file mode 100644 index 00000000000..29b967fcd37 --- /dev/null +++ b/source/blender/blenlib/intern/lasso.c @@ -0,0 +1,129 @@ +/* + * ***** 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) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + * + */ + +/** \file blender/blenlib/intern/lasso.c + * \ingroup bli + */ + +#include "DNA_vec_types.h" + +#include "BLI_math.h" +#include "BLI_rect.h" + +#include "BLI_lasso.h" /* own include */ + +void BLI_lasso_boundbox(rcti *rect, int mcords[][2], short moves) +{ + short a; + + rect->xmin = rect->xmax = mcords[0][0]; + rect->ymin = rect->ymax = mcords[0][1]; + + for (a = 1; a < moves; a++) { + if (mcords[a][0] < rect->xmin) rect->xmin = mcords[a][0]; + else if (mcords[a][0] > rect->xmax) rect->xmax = mcords[a][0]; + if (mcords[a][1] < rect->ymin) rect->ymin = mcords[a][1]; + else if (mcords[a][1] > rect->ymax) rect->ymax = mcords[a][1]; + } +} + + +int BLI_lasso_is_point_inside(int mcords[][2], short moves, + const int sx, const int sy, + const int error_value) +{ + /* we do the angle rule, define that all added angles should be about zero or (2 * PI) */ + float angletot = 0.0, dot, ang, cross, fp1[2], fp2[2]; + int a; + int *p1, *p2; + + if (sx == error_value) { + return 0; + } + + p1 = mcords[moves - 1]; + p2 = mcords[0]; + + /* first vector */ + fp1[0] = (float)(p1[0] - sx); + fp1[1] = (float)(p1[1] - sy); + normalize_v2(fp1); + + for (a = 0; a < moves; a++) { + /* second vector */ + fp2[0] = (float)(p2[0] - sx); + fp2[1] = (float)(p2[1] - sy); + normalize_v2(fp2); + + /* dot and angle and cross */ + dot = fp1[0] * fp2[0] + fp1[1] * fp2[1]; + ang = fabs(saacos(dot)); + + cross = (float)((p1[1] - p2[1]) * (p1[0] - sx) + (p2[0] - p1[0]) * (p1[1] - sy)); + + if (cross < 0.0f) angletot -= ang; + else angletot += ang; + + /* circulate */ + fp1[0] = fp2[0]; fp1[1] = fp2[1]; + p1 = p2; + p2 = mcords[a + 1]; + } + + if (fabs(angletot) > 4.0) return 1; + return 0; +} + +/* edge version for lasso select. we assume boundbox check was done */ +int BLI_lasso_is_edge_inside(int mcords[][2], short moves, + int x0, int y0, int x1, int y1, + const int error_value) +{ + int v1[2], v2[2]; + int a; + + if (x0 == error_value || x1 == error_value) { + return 0; + } + + v1[0] = x0, v1[1] = y0; + v2[0] = x1, v2[1] = y1; + + /* check points in lasso */ + if (BLI_lasso_is_point_inside(mcords, moves, v1[0], v1[1], error_value)) return 1; + if (BLI_lasso_is_point_inside(mcords, moves, v2[0], v2[1], error_value)) return 1; + + /* no points in lasso, so we have to intersect with lasso edge */ + + if (isect_line_line_v2_int(mcords[0], mcords[moves - 1], v1, v2) > 0) return 1; + for (a = 0; a < moves - 1; a++) { + if (isect_line_line_v2_int(mcords[a], mcords[a + 1], v1, v2) > 0) return 1; + } + + return 0; +} diff --git a/source/blender/blenlib/intern/listbase.c b/source/blender/blenlib/intern/listbase.c index fecaa507b5c..f7114822dfd 100644 --- a/source/blender/blenlib/intern/listbase.c +++ b/source/blender/blenlib/intern/listbase.c @@ -1,9 +1,4 @@ -/* util.c - * - * various string, file, list operations. - * - * - * +/* * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or @@ -189,8 +184,7 @@ void BLI_sortlist(ListBase *listbase, int (*cmp)(void *, void *)) BLI_remlink(listbase, current); - while (previous && cmp(previous, current) == 1) - { + while (previous && cmp(previous, current) == 1) { previous = previous->prev; } diff --git a/source/blender/blenlib/intern/math_rotation.c b/source/blender/blenlib/intern/math_rotation.c index ec5fd39cd87..37402f9391c 100644 --- a/source/blender/blenlib/intern/math_rotation.c +++ b/source/blender/blenlib/intern/math_rotation.c @@ -78,7 +78,23 @@ void mul_qt_qtqt(float q[4], const float q1[4], const float q2[4]) q[2] = t2; } -/* Assumes a unit quaternion */ +/** + * \note: + * Assumes a unit quaternion? + * + * infact not, but you may wan't to use a unit quat, read on... + * + * Shortcut for 'q v q*' when \a v is actually a quaternion. + * This removes the need for converting a vector to a quaternion, + * calculating q's conjugate and converting back to a vector. + * It also happens to be faster (17+,24* vs * 24+,32*). + * If \a q is not a unit quaternion, then \a v will be both rotated by + * the same amount as if q was a unit quaternion, and scaled by the square of + * the length of q. + * + * For people used to python mathutils, its like: + * def mul_qt_v3(q, v): (q * Quaternion((0.0, v[0], v[1], v[2])) * q.conjugated())[1:] + */ void mul_qt_v3(const float q[4], float v[3]) { float t0, t1, t2; @@ -1615,7 +1631,7 @@ void normalize_dq(DualQuat *dq, float totweight) } } -void mul_v3m3_dq(float *co, float mat[][3], DualQuat *dq) +void mul_v3m3_dq(float co[3], float mat[][3], DualQuat *dq) { float M[3][3], t[3], scalemat[3][3], len2; float w = dq->quat[0], x = dq->quat[1], y = dq->quat[2], z = dq->quat[3]; diff --git a/source/blender/blenlib/intern/path_util.c b/source/blender/blenlib/intern/path_util.c index 3c59ca8d52b..f52921cd19b 100644 --- a/source/blender/blenlib/intern/path_util.c +++ b/source/blender/blenlib/intern/path_util.c @@ -1156,7 +1156,7 @@ char *BLI_get_folder_version(const int id, const int ver, const int do_check) { static char path[FILE_MAX] = ""; int ok; - switch(id) { + switch (id) { case BLENDER_RESOURCE_PATH_USER: ok= get_path_user(path, NULL, NULL, NULL, ver); break; diff --git a/source/blender/blenlib/intern/pbvh.c b/source/blender/blenlib/intern/pbvh.c index 7a955cf6ed9..f4481c37f2d 100644 --- a/source/blender/blenlib/intern/pbvh.c +++ b/source/blender/blenlib/intern/pbvh.c @@ -1151,7 +1151,7 @@ static void pbvh_update_draw_buffers(PBVH *bvh, PBVHNode **nodes, int totnode) } if (node->flag & PBVH_UpdateDrawBuffers) { - switch(bvh->type) { + switch (bvh->type) { case PBVH_GRIDS: GPU_update_grid_buffers(node->draw_buffers, bvh->grids, @@ -1290,7 +1290,9 @@ void BLI_pbvh_get_grid_updates(PBVH *bvh, int clear, void ***gridfaces, int *tot for (hiter = BLI_ghashIterator_new(map), i = 0; !BLI_ghashIterator_isDone(hiter); BLI_ghashIterator_step(hiter), ++i) + { faces[i]= BLI_ghashIterator_getKey(hiter); + } BLI_ghashIterator_free(hiter); @@ -1345,7 +1347,7 @@ void BLI_pbvh_node_num_verts(PBVH *bvh, PBVHNode *node, int *uniquevert, int *to { int tot; - switch(bvh->type) { + switch (bvh->type) { case PBVH_GRIDS: tot= node->totprim*bvh->gridsize*bvh->gridsize; if (totvert) *totvert= tot; @@ -1360,7 +1362,7 @@ void BLI_pbvh_node_num_verts(PBVH *bvh, PBVHNode *node, int *uniquevert, int *to void BLI_pbvh_node_get_grids(PBVH *bvh, PBVHNode *node, int **grid_indices, int *totgrid, int *maxgrid, int *gridsize, DMGridData ***griddata, DMGridAdjacency **gridadj) { - switch(bvh->type) { + switch (bvh->type) { case PBVH_GRIDS: if (grid_indices) *grid_indices= node->prim_indices; if (totgrid) *totgrid= node->totprim; @@ -1504,7 +1506,7 @@ int BLI_pbvh_node_raycast(PBVH *bvh, PBVHNode *node, float (*origco)[3], if (node->flag & PBVH_FullyHidden) return 0; - switch(bvh->type) { + switch (bvh->type) { case PBVH_FACES: vert = bvh->verts; faces= node->prim_indices; diff --git a/source/blender/blenlib/intern/string.c b/source/blender/blenlib/intern/string.c index 4c92a872ed7..b2245226a3c 100644 --- a/source/blender/blenlib/intern/string.c +++ b/source/blender/blenlib/intern/string.c @@ -125,7 +125,7 @@ size_t BLI_strescape(char *dst, const char *src, const size_t maxlen) { size_t len= 0; while (len < maxlen) { - switch(*src) { + switch (*src) { case '\0': goto escape_finish; case '\\': diff --git a/source/blender/blenlib/intern/string_utf8.c b/source/blender/blenlib/intern/string_utf8.c index aede08be7f9..20c5c8082ce 100644 --- a/source/blender/blenlib/intern/string_utf8.c +++ b/source/blender/blenlib/intern/string_utf8.c @@ -168,7 +168,7 @@ static const size_t utf8_skip_data[256] = { size_t utf8_size; \ while (*src != '\0' && (utf8_size= utf8_skip_data[*src]) < maxncpy) { \ maxncpy -= utf8_size; \ - switch(utf8_size) { \ + switch (utf8_size) { \ case 6: *dst ++ = *src ++; \ case 5: *dst ++ = *src ++; \ case 4: *dst ++ = *src ++; \ diff --git a/source/blender/blenloader/intern/readblenentry.c b/source/blender/blenloader/intern/readblenentry.c index 49990a953f6..8f3131c733a 100644 --- a/source/blender/blenloader/intern/readblenentry.c +++ b/source/blender/blenloader/intern/readblenentry.c @@ -156,8 +156,7 @@ LinkNode *BLO_blendhandle_get_previews(BlendHandle *bh, int ofblocktype, int *to for (bhead= blo_firstbhead(fd); bhead; bhead= blo_nextbhead(fd, bhead)) { if (bhead->code==ofblocktype) { char *idname= bhead_id_name(fd, bhead); - switch(GS(idname)) - { + switch (GS(idname)) { case ID_MA: /* fall through */ case ID_TE: /* fall through */ case ID_IM: /* fall through */ diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index d196a7f6a9c..c54daed8139 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -1061,8 +1061,7 @@ void blo_freefiledata(FileData *fd) close(fd->filedes); } - if (fd->gzfiledes != NULL) - { + if (fd->gzfiledes != NULL) { gzclose(fd->gzfiledes); } @@ -2756,9 +2755,9 @@ static void switch_endian_keyblock(Key *key, KeyBlock *kb) cp= key->elemstr; poin= data; - while ( cp[0] ) { /* cp[0]==amount */ + while ( cp[0] ) { /* cp[0] == amount */ - switch(cp[1]) { /* cp[1]= type */ + switch (cp[1]) { /* cp[1] = type */ case IPO_FLOAT: case IPO_BPOINT: case IPO_BEZTRIPLE: @@ -3442,7 +3441,7 @@ static void lib_link_particlesettings(FileData *fd, Main *main) for (; state; state=state->next) { rule = state->rules.first; for (; rule; rule=rule->next) - switch(rule->type) { + switch (rule->type) { case eBoidRuleType_Goal: case eBoidRuleType_Avoid: { @@ -4235,8 +4234,7 @@ static void lib_link_object(FileData *fd, Main *main) { SmokeModifierData *smd = (SmokeModifierData *)modifiers_findByType(ob, eModifierType_Smoke); - if (smd && smd->type == MOD_SMOKE_TYPE_DOMAIN && smd->domain) - { + if (smd && smd->type == MOD_SMOKE_TYPE_DOMAIN && smd->domain) { smd->domain->flags |= MOD_SMOKE_FILE_LOAD; /* flag for refreshing the simulation after loading */ } } @@ -4359,8 +4357,7 @@ static void direct_link_modifiers(FileData *fd, ListBase *lb) else if (md->type==eModifierType_Smoke) { SmokeModifierData *smd = (SmokeModifierData*) md; - if (smd->type==MOD_SMOKE_TYPE_DOMAIN) - { + if (smd->type==MOD_SMOKE_TYPE_DOMAIN) { smd->flow = NULL; smd->coll = NULL; smd->domain = newdataadr(fd, smd->domain); @@ -4405,8 +4402,7 @@ static void direct_link_modifiers(FileData *fd, ListBase *lb) smd->flow = NULL; smd->domain = NULL; smd->coll = newdataadr(fd, smd->coll); - if (smd->coll) - { + if (smd->coll) { smd->coll->points = NULL; smd->coll->numpoints = 0; } @@ -4418,8 +4414,7 @@ static void direct_link_modifiers(FileData *fd, ListBase *lb) else if (md->type==eModifierType_DynamicPaint) { DynamicPaintModifierData *pmd = (DynamicPaintModifierData*) md; - if (pmd->canvas) - { + if (pmd->canvas) { pmd->canvas = newdataadr(fd, pmd->canvas); pmd->canvas->pmd = pmd; pmd->canvas->dm = NULL; @@ -4439,8 +4434,7 @@ static void direct_link_modifiers(FileData *fd, ListBase *lb) } } } - if (pmd->brush) - { + if (pmd->brush) { pmd->brush = newdataadr(fd, pmd->brush); pmd->brush->pmd = pmd; pmd->brush->psys = newdataadr(fd, pmd->brush->psys); @@ -4847,7 +4841,7 @@ static void lib_link_scene(FileData *fd, Main *main) } } - SEQ_BEGIN(sce->ed, seq) { + SEQ_BEGIN (sce->ed, seq) { if (seq->ipo) seq->ipo= newlibadr_us(fd, sce->id.lib, seq->ipo); seq->scene_sound = NULL; if (seq->scene) { @@ -4978,7 +4972,7 @@ static void direct_link_scene(FileData *fd, Scene *sce) /* recursive link sequences, lb will be correctly initialized */ link_recurs_seq(fd, &ed->seqbase); - SEQ_BEGIN(ed, seq) { + SEQ_BEGIN (ed, seq) { seq->seq1= newdataadr(fd, seq->seq1); seq->seq2= newdataadr(fd, seq->seq2); seq->seq3= newdataadr(fd, seq->seq3); @@ -6090,8 +6084,7 @@ static void direct_link_sound(FileData *fd, bSound *sound) sound->waveform = NULL; // versioning stuff, if there was a cache, then we enable caching: - if (sound->cache) - { + if (sound->cache) { sound->flags |= SOUND_FLAGS_CACHING; sound->cache = NULL; } @@ -6234,8 +6227,7 @@ static void lib_link_movieclip(FileData *fd, Main *main) static const char *dataname(short id_code) { - - switch( id_code ) { + switch ( id_code ) { case ID_OB: return "Data from OB"; case ID_ME: return "Data from ME"; case ID_IP: return "Data from IP"; @@ -6345,7 +6337,7 @@ static BHead *read_libblock(FileData *fd, Main *main, BHead *bhead, int flag, ID bhead= read_data_into_oldnewmap(fd, bhead, allocname); /* init pointers direct data */ - switch( GS(id->name) ) { + switch (GS(id->name)) { case ID_WM: direct_link_windowmanager(fd, (wmWindowManager *)id); break; @@ -6923,7 +6915,7 @@ static void area_add_window_regions(ScrArea *sa, SpaceLink *sl, ListBase *lb) if (sl) { /* first channels for ipo action nla... */ - switch(sl->spacetype) { + switch (sl->spacetype) { case SPACE_IPO: ar= MEM_callocN(sizeof(ARegion), "area region from do_versions"); BLI_addtail(lb, ar); @@ -7045,7 +7037,7 @@ static void area_add_window_regions(ScrArea *sa, SpaceLink *sl, ListBase *lb) if (sl) { /* if active spacetype has view2d data, copy that over to main region */ /* and we split view3d */ - switch(sl->spacetype) { + switch (sl->spacetype) { case SPACE_VIEW3D: view3d_split_250((View3D *)sl, lb); break; @@ -7451,8 +7443,7 @@ static void do_version_constraints_radians_degrees_250(ListBase *lb) static void do_version_old_trackto_to_constraints(Object *ob) { /* create new trackto constraint from the relationship */ - if (ob->track) - { + if (ob->track) { bConstraint *con= add_ob_constraint(ob, "AutoTrack", CONSTRAINT_TYPE_TRACKTO); bTrackToConstraint *data = con->data; @@ -8337,8 +8328,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) Mesh *me; sound = main->sound.first; - while (sound) - { + while (sound) { sound->max_gain = 1.0; sound->min_gain = 0.0; sound->distance = 1.0; @@ -9005,7 +8995,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) while (sce) { ed= sce->ed; if (ed) { - SEQ_BEGIN(sce->ed, seq) { + SEQ_BEGIN (sce->ed, seq) { if (seq->type==SEQ_IMAGE || seq->type==SEQ_MOVIE) seq->flag |= SEQ_MAKE_PREMUL; } @@ -9754,17 +9744,16 @@ static void do_versions(FileData *fd, Library *lib, Main *main) if (md->type==eModifierType_Mirror) { MirrorModifierData *mmd = (MirrorModifierData*) md; - switch(mmd->axis) - { - case 0: - mmd->flag |= MOD_MIR_AXIS_X; - break; - case 1: - mmd->flag |= MOD_MIR_AXIS_Y; - break; - case 2: - mmd->flag |= MOD_MIR_AXIS_Z; - break; + switch (mmd->axis) { + case 0: + mmd->flag |= MOD_MIR_AXIS_X; + break; + case 1: + mmd->flag |= MOD_MIR_AXIS_Y; + break; + case 2: + mmd->flag |= MOD_MIR_AXIS_Z; + break; } mmd->axis = 0; @@ -10063,8 +10052,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) * */ { Scene *sce; - for (sce=main->scene.first; sce; sce = sce->id.next) - { + for (sce=main->scene.first; sce; sce = sce->id.next) { if (sce->toolsettings->skgen_subdivisions[0] == sce->toolsettings->skgen_subdivisions[1] || sce->toolsettings->skgen_subdivisions[0] == sce->toolsettings->skgen_subdivisions[2] || sce->toolsettings->skgen_subdivisions[1] == sce->toolsettings->skgen_subdivisions[2]) @@ -10422,7 +10410,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) Sequence *seq; for (sce=main->scene.first; sce; sce=sce->id.next) { - SEQ_BEGIN(sce->ed, seq) { + SEQ_BEGIN (sce->ed, seq) { if (seq->blend_mode == 0) seq->blend_opacity = 100.0f; } @@ -10480,13 +10468,11 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } // convert fluids to modifier - if (main->versionfile < 246 || (main->versionfile == 246 && main->subversionfile < 1)) - { + if (main->versionfile < 246 || (main->versionfile == 246 && main->subversionfile < 1)) { Object *ob; for (ob = main->object.first; ob; ob= ob->id.next) { - if (ob->fluidsimSettings) - { + if (ob->fluidsimSettings) { FluidsimModifierData *fluidmd = (FluidsimModifierData *)modifier_new(eModifierType_Fluidsim); BLI_addhead(&ob->modifiers, (ModifierData *)fluidmd); @@ -10777,7 +10763,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) while (sce) { ed= sce->ed; if (ed) { - SEQP_BEGIN(ed, seq) { + SEQP_BEGIN (ed, seq) { if (seq->strip && seq->strip->proxy) { seq->strip->proxy->quality =90; } @@ -10810,10 +10796,8 @@ static void do_versions(FileData *fd, Library *lib, Main *main) bActuator *act; int a; - for (sound = main->sound.first; sound; sound = sound->id.next) - { - if (sound->newpackedfile) - { + for (sound = main->sound.first; sound; sound = sound->id.next) { + if (sound->newpackedfile) { sound->packedfile = sound->newpackedfile; sound->newpackedfile = NULL; } @@ -10823,8 +10807,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) for (act= ob->actuators.first; act; act= act->next) { if (act->type == ACT_SOUND) { bSoundActuator *sAct = (bSoundActuator*) act->data; - if (sAct->sound) - { + if (sAct->sound) { sound = newlibadr(fd, lib, sAct->sound); sAct->flag = sound->flags & SOUND_FLAGS_3D ? ACT_SND_3D_SOUND : 0; sAct->pitch = sound->pitch; @@ -10847,13 +10830,10 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } - for (scene = main->scene.first; scene; scene = scene->id.next) - { - if (scene->ed && scene->ed->seqbasep) - { - SEQ_BEGIN(scene->ed, seq) { - if (seq->type == SEQ_HD_SOUND) - { + for (scene = main->scene.first; scene; scene = scene->id.next) { + if (scene->ed && scene->ed->seqbasep) { + SEQ_BEGIN (scene->ed, seq) { + if (seq->type == SEQ_HD_SOUND) { char str[FILE_MAX]; BLI_join_dirfile(str, sizeof(str), seq->strip->dir, seq->strip->stripdata->name); BLI_path_abs(str, main->name); @@ -11229,8 +11209,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) if (tex->vd->extend == 0) tex->vd->extend = TEX_CLIP; - for (sce= main->scene.first; sce; sce= sce->id.next) - { + for (sce= main->scene.first; sce; sce= sce->id.next) { if (sce->audio.main == 0.0f) sce->audio.main = 1.0f; @@ -11372,8 +11351,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } - if (main->versionfile < 250 || (main->versionfile == 250 && main->subversionfile < 8)) - { + if (main->versionfile < 250 || (main->versionfile == 250 && main->subversionfile < 8)) { { Scene *sce= main->scene.first; while (sce) { @@ -11495,8 +11473,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } - if (main->versionfile < 250 || (main->versionfile == 250 && main->subversionfile < 9)) - { + if (main->versionfile < 250 || (main->versionfile == 250 && main->subversionfile < 9)) { Scene *sce; Mesh *me; Object *ob; @@ -11522,8 +11499,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } - if (main->versionfile < 250 || (main->versionfile == 250 && main->subversionfile < 10)) - { + if (main->versionfile < 250 || (main->versionfile == 250 && main->subversionfile < 10)) { Object *ob; /* properly initialize hair clothsim data on old files */ @@ -11540,8 +11516,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } /* fix bad area setup in subversion 10 */ - if (main->versionfile == 250 && main->subversionfile == 10) - { + if (main->versionfile == 250 && main->subversionfile == 10) { /* fix for new view type in sequencer */ bScreen *screen; ScrArea *sa; @@ -11580,8 +11555,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } - if (main->versionfile < 250 || (main->versionfile == 250 && main->subversionfile < 11)) - { + if (main->versionfile < 250 || (main->versionfile == 250 && main->subversionfile < 11)) { { /* fix for new view type in sequencer */ bScreen *screen; @@ -11623,8 +11597,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } - if (main->versionfile < 250 || (main->versionfile == 250 && main->subversionfile < 12)) - { + if (main->versionfile < 250 || (main->versionfile == 250 && main->subversionfile < 12)) { Scene *sce; Object *ob; Brush *brush; @@ -11829,7 +11802,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) if ((sce->r.ffcodecdata.flags & FFMPEG_MULTIPLEX_AUDIO) == 0) sce->r.ffcodecdata.audio_codec = 0x0; // CODEC_ID_NONE - SEQ_BEGIN(sce->ed, seq) { + SEQ_BEGIN (sce->ed, seq) { seq->volume = 1.0f; } SEQ_END @@ -11985,8 +11958,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } - if (main->versionfile < 253) - { + if (main->versionfile < 253) { Object *ob; Scene *scene; bScreen *sc; @@ -12099,7 +12071,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) for (scene= main->scene.first; scene; scene=scene->id.next) { if (scene) { Sequence *seq; - SEQ_BEGIN(scene->ed, seq) { + SEQ_BEGIN (scene->ed, seq) { if (seq->sat==0.0f) { seq->sat= 1.0f; } @@ -12197,8 +12169,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } - if (main->versionfile < 253 || (main->versionfile == 253 && main->subversionfile < 1)) - { + if (main->versionfile < 253 || (main->versionfile == 253 && main->subversionfile < 1)) { Object *ob; for (ob = main->object.first; ob; ob = ob->id.next) { @@ -12207,8 +12178,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) if (md->type == eModifierType_Smoke) { SmokeModifierData *smd = (SmokeModifierData *)md; - if ((smd->type & MOD_SMOKE_TYPE_DOMAIN) && smd->domain) - { + if ((smd->type & MOD_SMOKE_TYPE_DOMAIN) && smd->domain) { smd->domain->vorticity = 2.0f; smd->domain->time_scale = 1.0f; @@ -12227,8 +12197,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) if (md2->type == eModifierType_Smoke) { SmokeModifierData *smd2 = (SmokeModifierData *)md2; - if ((smd2->type & MOD_SMOKE_TYPE_FLOW) && smd2->flow) - { + if ((smd2->type & MOD_SMOKE_TYPE_FLOW) && smd2->flow) { smd2->flow->flags |= MOD_SMOKE_FLOW_INITVELOCITY; } } @@ -12314,8 +12283,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) for (act= ob->actuators.first; act; act= act->next) { if (act->type==ACT_STEERING) { bSteeringActuator* stact = act->data; - if (stact->facingaxis==0) - { + if (stact->facingaxis==0) { stact->facingaxis=1; } } @@ -12575,11 +12543,10 @@ static void do_versions(FileData *fd, Library *lib, Main *main) Scene *scene; Sequence *seq; - for (scene=main->scene.first; scene; scene=scene->id.next) - { + for (scene=main->scene.first; scene; scene=scene->id.next) { scene->r.ffcodecdata.audio_channels = 2; scene->audio.volume = 1.0f; - SEQ_BEGIN(scene->ed, seq) { + SEQ_BEGIN (scene->ed, seq) { seq->pitch = 1.0f; } SEQ_END @@ -12750,8 +12717,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) { /* set defaults for obstacle avoidance, recast data */ Scene *sce; - for (sce = main->scene.first; sce; sce = sce->id.next) - { + for (sce = main->scene.first; sce; sce = sce->id.next) { if (sce->gm.levelHeight == 0.f) sce->gm.levelHeight = 2.f; @@ -12931,8 +12897,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } - if (main->versionfile < 260 || (main->versionfile == 260 && main->subversionfile < 6)) - { + if (main->versionfile < 260 || (main->versionfile == 260 && main->subversionfile < 6)) { Scene *sce; MovieClip *clip; bScreen *sc; @@ -12996,8 +12961,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } - if (main->versionfile < 260 || (main->versionfile == 260 && main->subversionfile < 8)) - { + if (main->versionfile < 260 || (main->versionfile == 260 && main->subversionfile < 8)) { Brush *brush; for (brush= main->brush.first; brush; brush= brush->id.next) { @@ -13006,8 +12970,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } - if (main->versionfile < 261 || (main->versionfile == 261 && main->subversionfile < 1)) - { + if (main->versionfile < 261 || (main->versionfile == 261 && main->subversionfile < 1)) { { /* update use flags for node sockets (was only temporary before) */ Scene *sce; @@ -13108,8 +13071,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } - if (main->versionfile < 261 || (main->versionfile == 261 && main->subversionfile < 2)) - { + if (main->versionfile < 261 || (main->versionfile == 261 && main->subversionfile < 2)) { { /* convert Camera Actuator values to defines */ Object *ob; @@ -13143,8 +13105,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } - if (main->versionfile < 261 || (main->versionfile == 261 && main->subversionfile < 3)) - { + if (main->versionfile < 261 || (main->versionfile == 261 && main->subversionfile < 3)) { { /* convert extended ascii to utf-8 for text editor */ Text *text; @@ -13170,8 +13131,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) for (md= ob->modifiers.first; md; md= md->next) { if (md->type == eModifierType_DynamicPaint) { DynamicPaintModifierData *pmd = (DynamicPaintModifierData *)md; - if (pmd->canvas) - { + if (pmd->canvas) { DynamicPaintSurface *surface = pmd->canvas->surfaces.first; for (; surface; surface=surface->next) { surface->color_dry_threshold = 1.0f; @@ -13186,8 +13146,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } - if (main->versionfile < 262) - { + if (main->versionfile < 262) { Object *ob; for (ob=main->object.first; ob; ob= ob->id.next) { ModifierData *md; @@ -13202,8 +13161,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } - if (main->versionfile < 263) - { + if (main->versionfile < 263) { /* set fluidsim rate. the version patch for this in 2.62 was wrong, so * try to correct it, if rate is 0.0 that's likely not intentional */ Object *ob; @@ -13220,8 +13178,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } - if (main->versionfile < 262 || (main->versionfile == 262 && main->subversionfile < 1)) - { + if (main->versionfile < 262 || (main->versionfile == 262 && main->subversionfile < 1)) { /* update use flags for node sockets (was only temporary before) */ Scene *sce; bNodeTree *ntree; @@ -13236,8 +13193,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } /* only swap for pre-release bmesh merge which had MLoopCol red/blue swap */ - if (main->versionfile == 262 && main->subversionfile == 1) - { + if (main->versionfile == 262 && main->subversionfile == 1) { { Mesh *me; for (me = main->mesh.first; me; me = me->id.next) { @@ -13247,8 +13203,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } - if (main->versionfile < 262 || (main->versionfile == 262 && main->subversionfile < 2)) - { + if (main->versionfile < 262 || (main->versionfile == 262 && main->subversionfile < 2)) { { /* Set new idname of keyingsets from their now "label-only" name. */ Scene *scene; @@ -13262,8 +13217,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } - if (main->versionfile < 262 || (main->versionfile == 262 && main->subversionfile < 3)) - { + if (main->versionfile < 262 || (main->versionfile == 262 && main->subversionfile < 3)) { Object *ob; ModifierData *md; @@ -13277,8 +13231,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } - if (main->versionfile < 262 || (main->versionfile == 262 && main->subversionfile < 4)) - { + if (main->versionfile < 262 || (main->versionfile == 262 && main->subversionfile < 4)) { /* Read Viscosity presets from older files */ Object *ob; @@ -13302,18 +13255,13 @@ static void do_versions(FileData *fd, Library *lib, Main *main) - { + if (main->versionfile < 263) { /* Default for old files is to save particle rotations to pointcache */ ParticleSettings *part; for (part = main->particle.first; part; part = part->id.next) part->flag |= PART_ROTATIONS; } - /* put compatibility code here until next subversion bump */ - { - - } - /* WATCH IT!!!: pointers from libdata have not been converted yet here! */ /* WATCH IT 2!: Userdef struct init has to be in editors/interface/resources.c! */ @@ -13445,7 +13393,7 @@ BlendFileData *blo_read_file_internal(FileData *fd, const char *filepath) BLI_strncpy(bfd->main->name, filepath, sizeof(bfd->main->name)); while (bhead) { - switch(bhead->code) { + switch (bhead->code) { case DATA: case DNA1: case TEST: /* used as preview since 2.5x */ @@ -14273,7 +14221,7 @@ static void expand_scene(FileData *fd, Main *mainvar, Scene *sce) if (sce->ed) { Sequence *seq; - SEQ_BEGIN(sce->ed, seq) { + SEQ_BEGIN (sce->ed, seq) { if (seq->scene) expand_doit(fd, mainvar, seq->scene); if (seq->scene_camera) expand_doit(fd, mainvar, seq->scene_camera); if (seq->sound) expand_doit(fd, mainvar, seq->sound); @@ -14341,7 +14289,7 @@ static void expand_main(FileData *fd, Main *mainvar) while (id) { if (id->flag & LIB_TEST) { - switch(GS(id->name)) { + switch (GS(id->name)) { case ID_OB: expand_object(fd, mainvar, (Object *)id); diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index 0f2990a9157..5f8e4841d2d 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -757,24 +757,30 @@ static void current_screen_compat(Main *mainvar, bScreen **screen) *screen= (window)? window->screen: NULL; } +typedef struct RenderInfo { + int sfra; + int efra; + char scene_name[MAX_ID_NAME - 2]; +} RenderInfo; + static void write_renderinfo(WriteData *wd, Main *mainvar) /* for renderdeamon */ { bScreen *curscreen; Scene *sce; - int data[8]; + RenderInfo data; /* XXX in future, handle multiple windows with multiple screnes? */ current_screen_compat(mainvar, &curscreen); for (sce= mainvar->scene.first; sce; sce= sce->id.next) { if (sce->id.lib==NULL && ( sce==curscreen->scene || (sce->r.scemode & R_BG_RENDER)) ) { - data[0]= sce->r.sfra; - data[1]= sce->r.efra; + data.sfra = sce->r.sfra; + data.efra = sce->r.efra; + memset(data.scene_name, 0, sizeof(data.scene_name)); - memset(data+2, 0, sizeof(int)*6); - BLI_strncpy((char *)(data+2), sce->id.name+2, sizeof(sce->id.name)-2); + BLI_strncpy(data.scene_name, sce->id.name + 2, sizeof(data.scene_name)); - writedata(wd, REND, 32, data); + writedata(wd, REND, sizeof(data), &data); } } } @@ -831,7 +837,7 @@ static void write_boid_state(WriteData *wd, BoidState *state) writestruct(wd, DATA, "BoidState", 1, state); for (; rule; rule=rule->next) { - switch(rule->type) { + switch (rule->type) { case eBoidRuleType_Goal: case eBoidRuleType_Avoid: writestruct(wd, DATA, "BoidRuleGoalAvoid", 1, rule); @@ -1024,7 +1030,7 @@ static void write_sensors(WriteData *wd, ListBase *lb) writedata(wd, DATA, sizeof(void *)*sens->totlinks, sens->links); - switch(sens->type) { + switch (sens->type) { case SENS_NEAR: writestruct(wd, DATA, "bNearSensor", 1, sens->data); break; @@ -1085,7 +1091,7 @@ static void write_controllers(WriteData *wd, ListBase *lb) writedata(wd, DATA, sizeof(void *)*cont->totlinks, cont->links); - switch(cont->type) { + switch (cont->type) { case CONT_EXPRESSION: writestruct(wd, DATA, "bExpressionCont", 1, cont->data); break; @@ -1108,7 +1114,7 @@ static void write_actuators(WriteData *wd, ListBase *lb) while (act) { writestruct(wd, DATA, "bActuator", 1, act); - switch(act->type) { + switch (act->type) { case ACT_ACTION: case ACT_SHAPEACTION: writestruct(wd, DATA, "bActionActuator", 1, act->data); @@ -1310,10 +1316,8 @@ static void write_modifiers(WriteData *wd, ListBase *modbase) else if (md->type==eModifierType_Smoke) { SmokeModifierData *smd = (SmokeModifierData*) md; - if (smd->type & MOD_SMOKE_TYPE_DOMAIN) - { - if (smd->domain) - { + if (smd->type & MOD_SMOKE_TYPE_DOMAIN) { + if (smd->domain) { write_pointcaches(wd, &(smd->domain->ptcaches[0])); /* create fake pointcache so that old blender versions can read it */ @@ -1347,8 +1351,7 @@ static void write_modifiers(WriteData *wd, ListBase *modbase) else if (md->type==eModifierType_DynamicPaint) { DynamicPaintModifierData *pmd = (DynamicPaintModifierData*) md; - if (pmd->canvas) - { + if (pmd->canvas) { DynamicPaintSurface *surface; writestruct(wd, DATA, "DynamicPaintCanvasSettings", 1, pmd->canvas); @@ -1362,8 +1365,7 @@ static void write_modifiers(WriteData *wd, ListBase *modbase) writestruct(wd, DATA, "EffectorWeights", 1, surface->effector_weights); } } - if (pmd->brush) - { + if (pmd->brush) { writestruct(wd, DATA, "DynamicPaintBrushSettings", 1, pmd->brush); writestruct(wd, DATA, "ColorBand", 1, pmd->brush->paint_ramp); writestruct(wd, DATA, "ColorBand", 1, pmd->brush->vel_ramp); @@ -1865,7 +1867,7 @@ static void write_previews(WriteData *wd, PreviewImage *prv) short h = prv->h[1]; unsigned int *rect = prv->rect[1]; /* don't write out large previews if not requested */ - if (!(U.flag & USER_SAVE_PREVIEWS)) { + if (!(U.flag & USER_SAVE_PREVIEWS) || TRUE) { prv->w[1] = 0; prv->h[1] = 0; prv->rect[1] = NULL; @@ -1875,7 +1877,7 @@ static void write_previews(WriteData *wd, PreviewImage *prv) if (prv->rect[1]) writedata(wd, DATA, prv->w[1]*prv->h[1]*sizeof(unsigned int), prv->rect[1]); /* restore preview, we still want to keep it in memory even if not saved to file */ - if (!(U.flag & USER_SAVE_PREVIEWS) ) { + if (!(U.flag & USER_SAVE_PREVIEWS) || TRUE) { prv->w[1] = w; prv->h[1] = h; prv->rect[1] = rect; @@ -2106,19 +2108,19 @@ static void write_scenes(WriteData *wd, ListBase *scebase) /* reset write flags too */ - SEQ_BEGIN(ed, seq) { + SEQ_BEGIN (ed, seq) { if (seq->strip) seq->strip->done= 0; writestruct(wd, DATA, "Sequence", 1, seq); } SEQ_END - SEQ_BEGIN(ed, seq) { + SEQ_BEGIN (ed, seq) { if (seq->strip && seq->strip->done==0) { /* write strip with 'done' at 0 because readfile */ if (seq->plugin) writestruct(wd, DATA, "PluginSeq", 1, seq->plugin); if (seq->effectdata) { - switch(seq->type) { + switch (seq->type) { case SEQ_COLOR: writestruct(wd, DATA, "SolidColorVars", 1, seq->effectdata); break; @@ -2252,7 +2254,7 @@ static void write_region(WriteData *wd, ARegion *ar, int spacetype) writestruct(wd, DATA, "ARegion", 1, ar); if (ar->regiondata) { - switch(spacetype) { + switch (spacetype) { case SPACE_VIEW3D: if (ar->regiontype==RGN_TYPE_WINDOW) { RegionView3D *rv3d= ar->regiondata; diff --git a/source/blender/bmesh/bmesh.h b/source/blender/bmesh/bmesh.h index 6b41babd927..13926c42192 100644 --- a/source/blender/bmesh/bmesh.h +++ b/source/blender/bmesh/bmesh.h @@ -192,6 +192,41 @@ * - bmo_xxx() - Low level / internal operator API functions. * - _bm_xxx() - Functions which are called via macros only. * + * \section bm_todo BMesh TODO's + * + * There may be a better place for this section, but adding here for now. + * + * + * \subsection bm_todo_tools Tools + * + * Probably most of these will be bmesh operators. + * + * - make ngons flat. + * - make ngons into tris/quads (ngon poke?), many methods could be used here (triangulate/fan/quad-fan). + * - solidify (precise mode), keeps even wall thickness, re-creates outlines of offset faces with plane-plane + * intersections. + * - split vert (we already have in our API, just no tool) + * - bridge (add option to bridge between different edge loop counts, option to remove selected face regions) + * - flip selected region (invert all faces about the plane defined by the selected region outline) + * - interactive dissolve (like the knife tool but draw over edges to dissolve) + * + * + * \subsection bm_todo_optimize Optimizations + * + * - skip normal calc when its not needed (when calling chain of operators & for modifiers, flag as dirty) + * - skip BMO flag allocation, its not needed in many cases, this is fairly redundant to calc by default. + * - ability to call BMO's with option not to create return data (will save some time) + * - binary diff UNDO, currently this uses huge amount of ram when all shapes are stored for each undo step for eg. + * - use two differnt iterator types for BMO map/buffer types. + * - avoid string lookups for BMO slot lookups _especially_ when used in loops, this is very crappy. + * + * + * \subsection bm_todo_tools_enhance Tool Enhancements + * + * - face inset interpolate loop data from face (currently copies - but this stretches UV's in an ugly way) + * - vert slide UV correction (like we have for edge slide) + * - fill-face edge net - produce consistant normals, currently it won't, fix should be to fill in edge-net node + * connected with previous one - since they already check for normals of adjacent edge-faces before creating. */ #ifdef __cplusplus diff --git a/source/blender/bmesh/intern/bmesh_construct.c b/source/blender/bmesh/intern/bmesh_construct.c index dee18e62930..c2d5d93cbc3 100644 --- a/source/blender/bmesh/intern/bmesh_construct.c +++ b/source/blender/bmesh/intern/bmesh_construct.c @@ -803,6 +803,7 @@ BMesh *BM_mesh_copy(BMesh *bm_old) BMesh *bm_new; BMVert *v, *v2, **vtable = NULL; BMEdge *e, *e2, **edges = NULL, **etable = NULL; + BMElem **eletable; BLI_array_declare(edges); BMLoop *l, /* *l2, */ **loops = NULL; BLI_array_declare(loops); @@ -870,8 +871,8 @@ BMesh *BM_mesh_copy(BMesh *bm_old) BLI_array_empty(loops); BLI_array_empty(edges); - BLI_array_growitems(loops, f->len); - BLI_array_growitems(edges, f->len); + BLI_array_grow_items(loops, f->len); + BLI_array_grow_items(edges, f->len); l = BM_iter_new(&liter, bm_old, BM_LOOPS_OF_FACE, f); for (j = 0; j < f->len; j++, l = BM_iter_step(&liter)) { @@ -913,21 +914,29 @@ BMesh *BM_mesh_copy(BMesh *bm_old) /* copy over edit selection history */ for (ese = bm_old->selected.first; ese; ese = ese->next) { - void *ele = NULL; + BMElem *ele = NULL; - if (ese->htype == BM_VERT) - ele = vtable[BM_elem_index_get(ese->ele)]; - else if (ese->htype == BM_EDGE) - ele = etable[BM_elem_index_get(ese->ele)]; - else if (ese->htype == BM_FACE) { - ele = ftable[BM_elem_index_get(ese->ele)]; + switch (ese->htype) { + case BM_VERT: + eletable = (BMElem **)vtable; + break; + case BM_EDGE: + eletable = (BMElem **)etable; + break; + case BM_FACE: + eletable = (BMElem **)ftable; + break; + default: + eletable = NULL; + break; } - else { - BLI_assert(0); + + if (eletable) { + ele = eletable[BM_elem_index_get(ese->ele)]; + if (ele) { + BM_select_history_store(bm_new, ele); + } } - - if (ele) - BM_select_history_store(bm_new, ele); } MEM_freeN(etable); diff --git a/source/blender/bmesh/intern/bmesh_core.c b/source/blender/bmesh/intern/bmesh_core.c index 7d4129b1205..f38c737b8ac 100644 --- a/source/blender/bmesh/intern/bmesh_core.c +++ b/source/blender/bmesh/intern/bmesh_core.c @@ -50,6 +50,9 @@ #endif +/** + * \brief Main function for creating a new vertex. + */ BMVert *BM_vert_create(BMesh *bm, const float co[3], const BMVert *example) { BMVert *v = BLI_mempool_calloc(bm->vpool); @@ -85,6 +88,12 @@ BMVert *BM_vert_create(BMesh *bm, const float co[3], const BMVert *example) return v; } +/** + * \brief Main function for creating a new edge. + * + * \note Duplicate edges are supported by the API however users should _never_ see them. + * so unless you need a unique edge or know the edge won't exist, you should call wih \a nodouble=TRUE + */ BMEdge *BM_edge_create(BMesh *bm, BMVert *v1, BMVert *v2, const BMEdge *example, int nodouble) { BMEdge *e; @@ -175,32 +184,32 @@ static BMLoop *bm_face_boundary_add(BMesh *bm, BMFace *f, BMVert *startv, BMEdge BMFace *BM_face_copy(BMesh *bm, BMFace *f, const short copyverts, const short copyedges) { - BMEdge **edges = NULL; BMVert **verts = NULL; - BLI_array_staticdeclare(edges, BM_NGON_STACK_SIZE); - BLI_array_staticdeclare(verts, BM_NGON_STACK_SIZE); + BMEdge **edges = NULL; + BLI_array_fixedstack_declare(verts, BM_NGON_STACK_SIZE, f->len, __func__); + BLI_array_fixedstack_declare(edges, BM_NGON_STACK_SIZE, f->len, __func__); BMLoop *l_iter; BMLoop *l_first; - BMLoop *l2; - BMFace *f2; + BMLoop *l_copy; + BMFace *f_copy; int i; l_iter = l_first = BM_FACE_FIRST_LOOP(f); + i = 0; do { if (copyverts) { - BMVert *v = BM_vert_create(bm, l_iter->v->co, l_iter->v); - BLI_array_append(verts, v); + verts[i] = BM_vert_create(bm, l_iter->v->co, l_iter->v); } else { - BLI_array_append(verts, l_iter->v); + verts[i] = l_iter->v; } + i++; } while ((l_iter = l_iter->next) != l_first); l_iter = l_first = BM_FACE_FIRST_LOOP(f); i = 0; do { if (copyedges) { - BMEdge *e; BMVert *v1, *v2; if (l_iter->e->v1 == verts[i]) { @@ -212,28 +221,29 @@ BMFace *BM_face_copy(BMesh *bm, BMFace *f, const short copyverts, const short co v1 = verts[(i + 1) % f->len]; } - e = BM_edge_create(bm, v1, v2, l_iter->e, FALSE); - BLI_array_append(edges, e); + edges[i] = BM_edge_create(bm, v1, v2, l_iter->e, FALSE); } else { - BLI_array_append(edges, l_iter->e); + edges[i] = l_iter->e; } - i++; } while ((l_iter = l_iter->next) != l_first); - f2 = BM_face_create(bm, verts, edges, f->len, FALSE); + f_copy = BM_face_create(bm, verts, edges, f->len, FALSE); - BM_elem_attrs_copy(bm, bm, f, f2); + BM_elem_attrs_copy(bm, bm, f, f_copy); l_iter = l_first = BM_FACE_FIRST_LOOP(f); - l2 = BM_FACE_FIRST_LOOP(f2); + l_copy = BM_FACE_FIRST_LOOP(f_copy); do { - BM_elem_attrs_copy(bm, bm, l_iter, l2); - l2 = l2->next; + BM_elem_attrs_copy(bm, bm, l_iter, l_copy); + l_copy = l_copy->next; } while ((l_iter = l_iter->next) != l_first); - - return f2; + + BLI_array_fixedstack_free(verts); + BLI_array_fixedstack_free(edges); + + return f_copy; } /** @@ -270,6 +280,9 @@ BLI_INLINE BMFace *bm_face_create__internal(BMesh *bm) return f; } +/** + * \brief Main face creation function + */ BMFace *BM_face_create(BMesh *bm, BMVert **verts, BMEdge **edges, const int len, int nodouble) { BMFace *f = NULL; @@ -319,6 +332,12 @@ BMFace *BM_face_create(BMesh *bm, BMVert **verts, BMEdge **edges, const int len, return f; } +/** + * Check the element is valid. + * + * BMESH_TODO, when this raises an error the output is incredible confusing. + * need to have some nice way to print/debug what the hecks going on. + */ int bmesh_elem_check(void *element, const char htype) { BMHeader *head = element; @@ -446,14 +465,16 @@ int bmesh_elem_check(void *element, const char htype) } /** - * low level function, only free's, - * does not change adjust surrounding geometry */ + * low level function, only frees the vert, + * doesn't change or adjust surrounding geometry + */ static void bm_kill_only_vert(BMesh *bm, BMVert *v) { bm->totvert--; bm->elem_index_dirty |= BM_VERT; - BM_select_history_remove(bm, (BMElem *)v); + BM_select_history_remove(bm, v); + if (v->head.data) CustomData_bmesh_free_block(&bm->vdata, &v->head.data); @@ -461,6 +482,10 @@ static void bm_kill_only_vert(BMesh *bm, BMVert *v) BLI_mempool_free(bm->vpool, v); } +/** + * low level function, only frees the edge, + * doesn't change or adjust surrounding geometry + */ static void bm_kill_only_edge(BMesh *bm, BMEdge *e) { bm->totedge--; @@ -475,6 +500,10 @@ static void bm_kill_only_edge(BMesh *bm, BMEdge *e) BLI_mempool_free(bm->epool, e); } +/** + * low level function, only frees the face, + * doesn't change or adjust surrounding geometry + */ static void bm_kill_only_face(BMesh *bm, BMFace *f) { if (bm->act_face == f) @@ -492,6 +521,10 @@ static void bm_kill_only_face(BMesh *bm, BMFace *f) BLI_mempool_free(bm->fpool, f); } +/** + * low level function, only frees the loop, + * doesn't change or adjust surrounding geometry + */ static void bm_kill_only_loop(BMesh *bm, BMLoop *l) { bm->totloop--; @@ -502,7 +535,7 @@ static void bm_kill_only_loop(BMesh *bm, BMLoop *l) } /** - * kills all edges associated with f, along with any other faces containing + * kills all edges associated with \a f, along with any other faces containing * those edges */ void BM_face_edges_kill(BMesh *bm, BMFace *f) @@ -526,7 +559,7 @@ void BM_face_edges_kill(BMesh *bm, BMFace *f) } /** - * kills all verts associated with f, along with any other faces containing + * kills all verts associated with \a f, along with any other faces containing * those vertices */ void BM_face_verts_kill(BMesh *bm, BMFace *f) @@ -587,7 +620,9 @@ void BM_face_kill(BMesh *bm, BMFace *f) bm_kill_only_face(bm, f); } - +/** + * kills \a e and all faces that use it. + */ void BM_edge_kill(BMesh *bm, BMEdge *e) { @@ -615,6 +650,9 @@ void BM_edge_kill(BMesh *bm, BMEdge *e) bm_kill_only_edge(bm, e); } +/** + * kills \a v and all edges that use it. + */ void BM_vert_kill(BMesh *bm, BMVert *v) { if (v->e) { @@ -746,6 +784,9 @@ static int bm_loop_reverse_loop(BMesh *bm, BMFace *f return 1; } +/** + * \brief Flip the faces direction + */ int bmesh_loop_reverse(BMesh *bm, BMFace *f) { #ifdef USE_BMESH_HOLES diff --git a/source/blender/bmesh/intern/bmesh_marking.c b/source/blender/bmesh/intern/bmesh_marking.c index 9200d7d2a98..a69558eeeca 100644 --- a/source/blender/bmesh/intern/bmesh_marking.c +++ b/source/blender/bmesh/intern/bmesh_marking.c @@ -496,17 +496,17 @@ int BM_mesh_elem_hflag_count_disabled(BMesh *bm, const char htype, const char hf * \note use BM_elem_flag_test(ele, BM_ELEM_SELECT) to test selection * \note by design, this will not touch the editselection history stuff */ -void _bm_elem_select_set(BMesh *bm, BMHeader *head, int select) +void BM_elem_select_set(BMesh *bm, BMElem *ele, int select) { - switch (head->htype) { + switch (ele->head.htype) { case BM_VERT: - BM_vert_select_set(bm, (BMVert *)head, select); + BM_vert_select_set(bm, (BMVert *)ele, select); break; case BM_EDGE: - BM_edge_select_set(bm, (BMEdge *)head, select); + BM_edge_select_set(bm, (BMEdge *)ele, select); break; case BM_FACE: - BM_face_select_set(bm, (BMFace *)head, select); + BM_face_select_set(bm, (BMFace *)ele, select); break; default: BLI_assert(0); @@ -566,7 +566,7 @@ BMFace *BM_active_face_get(BMesh *bm, int sloppy) * - #EM_editselection_normal * - #EM_editselection_plane */ -void BM_editselection_center(float r_center[3], BMEditSelection *ese) +void BM_editselection_center(BMEditSelection *ese, float r_center[3]) { if (ese->htype == BM_VERT) { BMVert *eve = (BMVert *)ese->ele; @@ -583,7 +583,7 @@ void BM_editselection_center(float r_center[3], BMEditSelection *ese) } } -void BM_editselection_normal(float r_normal[3], BMEditSelection *ese) +void BM_editselection_normal(BMEditSelection *ese, float r_normal[3]) { if (ese->htype == BM_VERT) { BMVert *eve = (BMVert *)ese->ele; @@ -617,14 +617,14 @@ void BM_editselection_normal(float r_normal[3], BMEditSelection *ese) /* Calculate a plane that is rightangles to the edge/vert/faces normal * also make the plane run along an axis that is related to the geometry, * because this is used for the manipulators Y axis. */ -void BM_editselection_plane(BMesh *bm, float r_plane[3], BMEditSelection *ese) +void BM_editselection_plane(BMEditSelection *ese, float r_plane[3]) { if (ese->htype == BM_VERT) { BMVert *eve = (BMVert *)ese->ele; float vec[3] = {0.0f, 0.0f, 0.0f}; if (ese->prev) { /* use previously selected data to make a useful vertex plane */ - BM_editselection_center(vec, ese->prev); + BM_editselection_center(ese->prev, vec); sub_v3_v3v3(r_plane, vec, eve->co); } else { @@ -674,7 +674,7 @@ void BM_editselection_plane(BMesh *bm, float r_plane[3], BMEditSelection *ese) else { BMVert *verts[4] = {NULL}; - BM_iter_as_array(bm, BM_VERTS_OF_FACE, efa, (void **)verts, 4); + BM_iter_as_array(NULL, BM_VERTS_OF_FACE, efa, (void **)verts, 4); if (efa->len == 4) { float vecA[3], vecB[3]; @@ -713,12 +713,14 @@ void BM_editselection_plane(BMesh *bm, float r_plane[3], BMEditSelection *ese) normalize_v3(r_plane); } -int BM_select_history_check(BMesh *bm, const BMElem *ele) + +/* --- macro wrapped funcs --- */ +int _bm_select_history_check(BMesh *bm, const BMHeader *ele) { BMEditSelection *ese; for (ese = bm->selected.first; ese; ese = ese->next) { - if (ese->ele == ele) { + if (ese->ele == (BMElem *)ele) { return TRUE; } } @@ -726,11 +728,11 @@ int BM_select_history_check(BMesh *bm, const BMElem *ele) return FALSE; } -int BM_select_history_remove(BMesh *bm, BMElem *ele) +int _bm_select_history_remove(BMesh *bm, BMHeader *ele) { BMEditSelection *ese; for (ese = bm->selected.first; ese; ese = ese->next) { - if (ese->ele == ele) { + if (ese->ele == (BMElem *)ele) { BLI_freelinkN(&(bm->selected), ese); return TRUE; } @@ -739,26 +741,29 @@ int BM_select_history_remove(BMesh *bm, BMElem *ele) return FALSE; } +void _bm_select_history_store_notest(BMesh *bm, BMHeader *ele) +{ + BMEditSelection *ese = (BMEditSelection *) MEM_callocN(sizeof(BMEditSelection), "BMEdit Selection"); + ese->htype = ele->htype; + ese->ele = (BMElem *)ele; + BLI_addtail(&(bm->selected), ese); +} + +void _bm_select_history_store(BMesh *bm, BMHeader *ele) +{ + if (!BM_select_history_check(bm, (BMElem *)ele)) { + BM_select_history_store_notest(bm, (BMElem *)ele); + } +} +/* --- end macro wrapped funcs --- */ + + void BM_select_history_clear(BMesh *bm) { BLI_freelistN(&bm->selected); bm->selected.first = bm->selected.last = NULL; } -void BM_select_history_store_notest(BMesh *bm, BMElem *ele) -{ - BMEditSelection *ese = (BMEditSelection *) MEM_callocN(sizeof(BMEditSelection), "BMEdit Selection"); - ese->htype = ((BMHeader *)ele)->htype; - ese->ele = ele; - BLI_addtail(&(bm->selected), ese); -} - -void BM_select_history_store(BMesh *bm, BMElem *ele) -{ - if (!BM_select_history_check(bm, ele)) { - BM_select_history_store_notest(bm, ele); - } -} void BM_select_history_validate(BMesh *bm) { @@ -775,6 +780,41 @@ void BM_select_history_validate(BMesh *bm) } } +/* utility function */ +int BM_select_history_active_get(BMesh *bm, BMEditSelection *ese) +{ + BMEditSelection *ese_last = bm->selected.last; + BMFace *efa = BM_active_face_get(bm, FALSE); + + ese->next = ese->prev = NULL; + + if (ese_last) { + if (ese_last->htype == BM_FACE) { /* if there is an active face, use it over the last selected face */ + if (efa) { + ese->ele = (BMElem *)efa; + } + else { + ese->ele = ese_last->ele; + } + ese->htype = BM_FACE; + } + else { + ese->ele = ese_last->ele; + ese->htype = ese_last->htype; + } + } + else if (efa) { /* no */ + ese->ele = (BMElem *)efa; + ese->htype = BM_FACE; + } + else { + ese->ele = NULL; + return FALSE; + } + + return TRUE; +} + void BM_mesh_elem_hflag_disable_test(BMesh *bm, const char htype, const char hflag, int respecthide, const char hflag_test) { diff --git a/source/blender/bmesh/intern/bmesh_marking.h b/source/blender/bmesh/intern/bmesh_marking.h index a3e97ea9677..12ebaedac60 100644 --- a/source/blender/bmesh/intern/bmesh_marking.h +++ b/source/blender/bmesh/intern/bmesh_marking.h @@ -42,8 +42,7 @@ void BM_edge_hide_set(BMEdge *e, int hide); void BM_face_hide_set(BMFace *f, int hide); /* Selection code */ -#define BM_elem_select_set(bm, ele, hide) _bm_elem_select_set(bm, &(ele)->head, hide) -void _bm_elem_select_set(BMesh *bm, BMHeader *ele, int select); +void BM_elem_select_set(BMesh *bm, BMElem *ele, int select); void BM_mesh_elem_hflag_enable_test(BMesh *bm, const char htype, const char hflag, int respecthide, const char hflag_test); @@ -73,15 +72,23 @@ int BM_mesh_elem_hflag_count_disabled(BMesh *bm, const char htype, const char hf /* edit selection stuff */ void BM_active_face_set(BMesh *bm, BMFace *f); BMFace *BM_active_face_get(BMesh *bm, int sloppy); -void BM_editselection_center(float r_center[3], BMEditSelection *ese); -void BM_editselection_normal(float r_normal[3], BMEditSelection *ese); -void BM_editselection_plane(BMesh *bm, float r_plane[3], BMEditSelection *ese); -int BM_select_history_check(BMesh *bm, const BMElem *ele); -int BM_select_history_remove(BMesh *bm, BMElem *ele); -void BM_select_history_store_notest(BMesh *bm, BMElem *ele); -void BM_select_history_store(BMesh *bm, BMElem *ele); +void BM_editselection_center(BMEditSelection *ese, float r_center[3]); +void BM_editselection_normal(BMEditSelection *ese, float r_normal[3]); +void BM_editselection_plane(BMEditSelection *ese, float r_plane[3]); + +#define BM_select_history_check(bm, ele) _bm_select_history_check(bm, &(ele)->head) +#define BM_select_history_remove(bm, ele) _bm_select_history_remove(bm, &(ele)->head) +#define BM_select_history_store_notest(bm, ele) _bm_select_history_store_notest(bm, &(ele)->head) +#define BM_select_history_store(bm, ele) _bm_select_history_store(bm, &(ele)->head) + +int _bm_select_history_check(BMesh *bm, const BMHeader *ele); +int _bm_select_history_remove(BMesh *bm, BMHeader *ele); +void _bm_select_history_store_notest(BMesh *bm, BMHeader *ele); +void _bm_select_history_store(BMesh *bm, BMHeader *ele); + void BM_select_history_validate(BMesh *bm); void BM_select_history_clear(BMesh *em); +int BM_select_history_active_get(BMesh *bm, struct BMEditSelection *ese); #endif /* __BMESH_MARKING_H__ */ diff --git a/source/blender/bmesh/intern/bmesh_mesh_conv.c b/source/blender/bmesh/intern/bmesh_mesh_conv.c index f72efe8ab5f..351fb8e941b 100644 --- a/source/blender/bmesh/intern/bmesh_mesh_conv.c +++ b/source/blender/bmesh/intern/bmesh_mesh_conv.c @@ -282,8 +282,8 @@ void BM_mesh_bm_from_me(BMesh *bm, Mesh *me, int set_key, int act_key_nr) BLI_array_empty(fedges); BLI_array_empty(verts); - BLI_array_growitems(fedges, mpoly->totloop); - BLI_array_growitems(verts, mpoly->totloop); + BLI_array_grow_items(fedges, mpoly->totloop); + BLI_array_grow_items(verts, mpoly->totloop); for (j = 0; j < mpoly->totloop; j++) { ml = &me->mloop[mpoly->loopstart + j]; diff --git a/source/blender/bmesh/intern/bmesh_mods.c b/source/blender/bmesh/intern/bmesh_mods.c index a5e761af783..5f3836cc413 100644 --- a/source/blender/bmesh/intern/bmesh_mods.c +++ b/source/blender/bmesh/intern/bmesh_mods.c @@ -771,7 +771,7 @@ int BM_face_validate(BMFace *face, FILE *err) fflush(err); } - BLI_array_growitems(verts, face->len); + BLI_array_grow_items(verts, face->len); BM_ITER_ELEM_INDEX (l, &iter, face, BM_LOOPS_OF_FACE, i) { verts[i] = l->v; if (l->e->v1 == l->e->v2) { diff --git a/source/blender/bmesh/intern/bmesh_walkers.c b/source/blender/bmesh/intern/bmesh_walkers.c index a3b5d94ba8e..ea29c149c1a 100644 --- a/source/blender/bmesh/intern/bmesh_walkers.c +++ b/source/blender/bmesh/intern/bmesh_walkers.c @@ -226,8 +226,7 @@ void *BMW_state_add(BMWalker *walker) BMwGenericWalker *newstate; newstate = BLI_mempool_alloc(walker->worklist); newstate->depth = walker->depth; - switch (walker->order) - { + switch (walker->order) { case BMW_DEPTH_FIRST: BLI_addhead(&walker->states, newstate); break; diff --git a/source/blender/bmesh/intern/bmesh_walkers_impl.c b/source/blender/bmesh/intern/bmesh_walkers_impl.c index 113e1ddc164..ec4b97d59f3 100644 --- a/source/blender/bmesh/intern/bmesh_walkers_impl.c +++ b/source/blender/bmesh/intern/bmesh_walkers_impl.c @@ -880,7 +880,7 @@ static void *bmw_EdgeringWalker_step(BMWalker *walker) } /* only walk to manifold edge */ if ((l->f->len % 2 == 0) && EDGE_CHECK(l->e) && - !BLI_ghash_haskey(walker->visithash, l->e)) + !BLI_ghash_haskey(walker->visithash, l->e)) #else diff --git a/source/blender/bmesh/operators/bmo_bevel.c b/source/blender/bmesh/operators/bmo_bevel.c index 46dd7606940..b6b54b82f3d 100644 --- a/source/blender/bmesh/operators/bmo_bevel.c +++ b/source/blender/bmesh/operators/bmo_bevel.c @@ -242,7 +242,7 @@ void bmo_bevel_exec(BMesh *bm, BMOperator *op) if (!BMO_elem_flag_test(bm, e, EDGE_OLD)) { BM_elem_index_set(e, BLI_array_count(etags)); /* set_dirty! */ - BLI_array_growone(etags); + BLI_array_grow_one(etags); BMO_elem_flag_enable(bm, e, EDGE_OLD); } @@ -256,11 +256,11 @@ void bmo_bevel_exec(BMesh *bm, BMOperator *op) BM_ITER_ELEM (l2, &liter2, l->f, BM_LOOPS_OF_FACE) { BM_elem_index_set(l2, BLI_array_count(tags)); /* set_loop */ - BLI_array_growone(tags); + BLI_array_grow_one(tags); if (!BMO_elem_flag_test(bm, l2->e, EDGE_OLD)) { BM_elem_index_set(l2->e, BLI_array_count(etags)); /* set_dirty! */ - BLI_array_growone(etags); + BLI_array_grow_one(etags); BMO_elem_flag_enable(bm, l2->e, EDGE_OLD); } @@ -291,7 +291,7 @@ void bmo_bevel_exec(BMesh *bm, BMOperator *op) } if (!BLI_smallhash_haskey(&hash, (intptr_t)e)) { - BLI_array_growone(etags); + BLI_array_grow_one(etags); BM_elem_index_set(e, BLI_array_count(etags) - 1); /* set_dirty! */ BLI_smallhash_insert(&hash, (intptr_t)e, NULL); BMO_elem_flag_enable(bm, e, EDGE_OLD); @@ -309,11 +309,11 @@ void bmo_bevel_exec(BMesh *bm, BMOperator *op) /* create tags for all loops in l-> */ BM_ITER_ELEM (l2, &liter2, l->f, BM_LOOPS_OF_FACE) { - BLI_array_growone(tags); + BLI_array_grow_one(tags); BM_elem_index_set(l2, BLI_array_count(tags) - 1); /* set_loop */ if (!BLI_smallhash_haskey(&hash, (intptr_t)l2->e)) { - BLI_array_growone(etags); + BLI_array_grow_one(etags); BM_elem_index_set(l2->e, BLI_array_count(etags) - 1); /* set_dirty! */ BLI_smallhash_insert(&hash, (intptr_t)l2->e, NULL); BMO_elem_flag_enable(bm, l2->e, EDGE_OLD); diff --git a/source/blender/bmesh/operators/bmo_connect.c b/source/blender/bmesh/operators/bmo_connect.c index 3c1f10be4c4..b8abe112c4d 100644 --- a/source/blender/bmesh/operators/bmo_connect.c +++ b/source/blender/bmesh/operators/bmo_connect.c @@ -71,10 +71,10 @@ void bmo_connectverts_exec(BMesh *bm, BMOperator *op) } if (lastl != l->prev && lastl != l->next) { - BLI_array_growone(loops); + BLI_array_grow_one(loops); loops[BLI_array_count(loops) - 1] = lastl; - BLI_array_growone(loops); + BLI_array_grow_one(loops); loops[BLI_array_count(loops) - 1] = l; } @@ -87,10 +87,10 @@ void bmo_connectverts_exec(BMesh *bm, BMOperator *op) } if (BLI_array_count(loops) > 2) { - BLI_array_growone(loops); + BLI_array_grow_one(loops); loops[BLI_array_count(loops) - 1] = loops[BLI_array_count(loops) - 2]; - BLI_array_growone(loops); + BLI_array_grow_one(loops); loops[BLI_array_count(loops) - 1] = loops[0]; } @@ -101,10 +101,10 @@ void bmo_connectverts_exec(BMesh *bm, BMOperator *op) continue; } - BLI_array_growone(verts); + BLI_array_grow_one(verts); verts[BLI_array_count(verts) - 1] = loops[i * 2]->v; - BLI_array_growone(verts); + BLI_array_grow_one(verts); verts[BLI_array_count(verts) - 1] = loops[i * 2 + 1]->v; } diff --git a/source/blender/bmesh/operators/bmo_create.c b/source/blender/bmesh/operators/bmo_create.c index f2ba110b43d..6f08ab421f3 100644 --- a/source/blender/bmesh/operators/bmo_create.c +++ b/source/blender/bmesh/operators/bmo_create.c @@ -766,7 +766,7 @@ static EPath *edge_find_shortest_path(BMesh *bm, BMOperator *op, BMEdge *edge, E i = 0; BLI_array_empty(verts); for (i = 0, node = path->nodes.first; node; node = node->next, i++) { - BLI_array_growone(verts); + BLI_array_grow_one(verts); verts[i] = node->v; } @@ -999,7 +999,7 @@ void bmo_edgenet_fill_exec(BMesh *bm, BMOperator *op) } edata[BM_elem_index_get(e)].ftag++; - BLI_array_growone(edges); + BLI_array_grow_one(edges); edges[i++] = e; BLI_array_append(verts, node->v); @@ -1009,7 +1009,7 @@ void bmo_edgenet_fill_exec(BMesh *bm, BMOperator *op) vote_on_winding(edge, path->nodes.last, winding); } - BLI_array_growone(edges); + BLI_array_grow_one(edges); edges[i++] = edge; edata[BM_elem_index_get(edge)].ftag++; @@ -1157,7 +1157,7 @@ void bmo_edgenet_prepare(BMesh *bm, BMOperator *op) i = 0; while (e) { BMO_elem_flag_enable(bm, e, EDGE_VIS); - BLI_array_growone(edges); + BLI_array_grow_one(edges); edges[i] = e; e = edge_next(bm, e); @@ -1166,11 +1166,11 @@ void bmo_edgenet_prepare(BMesh *bm, BMOperator *op) if (!count) { edges1 = edges; - BLI_array_set_length(edges1, BLI_array_count(edges)); + BLI_array_length_set(edges1, BLI_array_count(edges)); } else { edges2 = edges; - BLI_array_set_length(edges2, BLI_array_count(edges)); + BLI_array_length_set(edges2, BLI_array_count(edges)); } BLI_array_empty(edges); diff --git a/source/blender/bmesh/operators/bmo_dupe.c b/source/blender/bmesh/operators/bmo_dupe.c index 36d446a0a8c..0659a42c26d 100644 --- a/source/blender/bmesh/operators/bmo_dupe.c +++ b/source/blender/bmesh/operators/bmo_dupe.c @@ -277,8 +277,8 @@ static void copy_mesh(BMOperator *op, BMesh *source, BMesh *target) BLI_array_empty(vtar); BLI_array_empty(edar); - BLI_array_growitems(vtar, f->len); - BLI_array_growitems(edar, f->len); + BLI_array_grow_items(vtar, f->len); + BLI_array_grow_items(edar, f->len); copy_face(op, source, f, target, vtar, edar, vhash, ehash); BMO_elem_flag_enable(source, f, DUPE_DONE); diff --git a/source/blender/bmesh/operators/bmo_extrude.c b/source/blender/bmesh/operators/bmo_extrude.c index 19e2dd85b0e..4fced09c588 100644 --- a/source/blender/bmesh/operators/bmo_extrude.c +++ b/source/blender/bmesh/operators/bmo_extrude.c @@ -58,7 +58,7 @@ void bmo_extrude_face_indiv_exec(BMesh *bm, BMOperator *op) BMO_ITER (f, &siter, bm, op, "faces", BM_FACE) { BLI_array_empty(edges); - BLI_array_growitems(edges, f->len); + BLI_array_grow_items(edges, f->len); i = 0; firstv = lastv = NULL; @@ -573,12 +573,12 @@ static void solidify_add_thickness(BMesh *bm, const float dist) continue; } - BLI_array_growitems(verts, f->len); + BLI_array_grow_items(verts, f->len); BM_ITER_ELEM_INDEX (l, &loopIter, f, BM_LOOPS_OF_FACE, i) { verts[i] = l->v->co; } - BLI_array_growitems(face_angles, f->len); + BLI_array_grow_items(face_angles, f->len); angle_poly_v3(face_angles, (const float **)verts, f->len); i = 0; diff --git a/source/blender/bmesh/operators/bmo_inset.c b/source/blender/bmesh/operators/bmo_inset.c index ee52f8bc0a9..712f6b736d6 100644 --- a/source/blender/bmesh/operators/bmo_inset.c +++ b/source/blender/bmesh/operators/bmo_inset.c @@ -495,8 +495,6 @@ void bmo_inset_exec(BMesh *bm, BMOperator *op) BM_face_copy_shared(bm, f); } - MEM_freeN(edge_info); - /* we could flag new edges/verts too, is it useful? */ BMO_slot_buffer_from_enabled_flag(bm, op, "faceout", BM_FACE, ELE_NEW); @@ -505,6 +503,28 @@ void bmo_inset_exec(BMesh *bm, BMOperator *op) float (*varr_co)[3]; BMOIter oiter; + /* we need to re-calculate tagged normals, but for this purpose we can copy tagged verts from the + * faces they inset from, */ + for (i = 0, es = edge_info; i < edge_info_len; i++, es++) { + zero_v3(es->e_new->v1->no); + zero_v3(es->e_new->v2->no); + } + for (i = 0, es = edge_info; i < edge_info_len; i++, es++) { + float *no = es->l->f->no; + add_v3_v3(es->e_new->v1->no, no); + add_v3_v3(es->e_new->v2->no, no); + } + for (i = 0, es = edge_info; i < edge_info_len; i++, es++) { + /* annoying, avoid normalizing twice */ + if (len_squared_v3(es->e_new->v1->no) != 1.0f) { + normalize_v3(es->e_new->v1->no); + } + if (len_squared_v3(es->e_new->v2->no) != 1.0f) { + normalize_v3(es->e_new->v2->no); + } + } + /* done correcting edge verts normals */ + /* untag verts */ BM_mesh_elem_hflag_disable_all(bm, BM_VERT, BM_ELEM_TAG, FALSE); @@ -537,4 +557,6 @@ void bmo_inset_exec(BMesh *bm, BMOperator *op) } MEM_freeN(varr_co); } + + MEM_freeN(edge_info); } diff --git a/source/blender/bmesh/operators/bmo_join_triangles.c b/source/blender/bmesh/operators/bmo_join_triangles.c index 582039fc1a2..d780e309118 100644 --- a/source/blender/bmesh/operators/bmo_join_triangles.c +++ b/source/blender/bmesh/operators/bmo_join_triangles.c @@ -293,7 +293,7 @@ void bmo_join_triangles_exec(BMesh *bm, BMOperator *op) measure = measure_facepair(v1, v2, v3, v4, limit); if (measure < limit) { - BLI_array_growone(jedges); + BLI_array_grow_one(jedges); jedges[i].e = e; jedges[i].weight = measure; diff --git a/source/blender/bmesh/operators/bmo_mirror.c b/source/blender/bmesh/operators/bmo_mirror.c index cf1669d441e..53c51dfd483 100644 --- a/source/blender/bmesh/operators/bmo_mirror.c +++ b/source/blender/bmesh/operators/bmo_mirror.c @@ -71,7 +71,7 @@ void bmo_mirror_exec(BMesh *bm, BMOperator *op) i = 0; /* v2 = BM_iter_new(&iter, bm, BM_VERTS_OF_MESH, NULL); */ /* UNUSED */ BMO_ITER (v, &siter, bm, &dupeop, "newout", BM_VERT) { - BLI_array_growone(vmap); + BLI_array_grow_one(vmap); vmap[i] = v; /* v2 = BM_iter_step(&iter); */ /* UNUSED */ i++; diff --git a/source/blender/bmesh/operators/bmo_removedoubles.c b/source/blender/bmesh/operators/bmo_removedoubles.c index 149f2537a12..70dcc6fa3ae 100644 --- a/source/blender/bmesh/operators/bmo_removedoubles.c +++ b/source/blender/bmesh/operators/bmo_removedoubles.c @@ -191,8 +191,8 @@ void bmo_weldverts_exec(BMesh *bm, BMOperator *op) continue; } - BLI_array_growone(edges); - BLI_array_growone(loops); + BLI_array_grow_one(edges); + BLI_array_grow_one(loops); edges[a] = e2; loops[a] = l; @@ -393,7 +393,7 @@ void bmo_collapse_exec(BMesh *bm, BMOperator *op) INIT_MINMAX(min, max); for (tot = 0; e; tot++, e = BMW_step(&walker)) { - BLI_array_growone(edges); + BLI_array_grow_one(edges); edges[tot] = e; DO_MINMAX(e->v1->co, min, max); @@ -454,7 +454,7 @@ static void bmo_collapsecon_do_layer(BMesh *bm, BMOperator *op, int layer) CustomData_data_initminmax(type, &min, &max); for (tot = 0; l2; tot++, l2 = BMW_step(&walker)) { - BLI_array_growone(blocks); + BLI_array_grow_one(blocks); blocks[tot] = CustomData_bmesh_get_layer_n(&bm->ldata, l2->head.data, layer); CustomData_data_dominmax(type, blocks[tot], &min, &max); } @@ -501,7 +501,7 @@ void bmesh_finddoubles_common(BMesh *bm, BMOperator *op, BMOperator *optarget, c i = 0; BMO_ITER (v, &oiter, bm, op, "verts", BM_VERT) { - BLI_array_growone(verts); + BLI_array_grow_one(verts); verts[i++] = v; } diff --git a/source/blender/bmesh/operators/bmo_subdivide.c b/source/blender/bmesh/operators/bmo_subdivide.c index 7da02a594d5..d96d0f6c74d 100644 --- a/source/blender/bmesh/operators/bmo_subdivide.c +++ b/source/blender/bmesh/operators/bmo_subdivide.c @@ -778,8 +778,8 @@ void bmo_esubd_exec(BMesh *bm, BMOperator *op) BLI_array_empty(edges); BLI_array_empty(verts); - BLI_array_growitems(edges, face->len); - BLI_array_growitems(verts, face->len); + BLI_array_grow_items(edges, face->len); + BLI_array_grow_items(verts, face->len); matched = 0; @@ -825,7 +825,7 @@ void bmo_esubd_exec(BMesh *bm, BMOperator *op) } } if (matched) { - BLI_array_growone(facedata); + BLI_array_grow_one(facedata); b = BLI_array_count(facedata) - 1; facedata[b].pat = pat; facedata[b].start = verts[i]; @@ -861,7 +861,7 @@ void bmo_esubd_exec(BMesh *bm, BMOperator *op) } } if (matched) { - BLI_array_growone(facedata); + BLI_array_grow_one(facedata); j = BLI_array_count(facedata) - 1; BMO_elem_flag_enable(bm, face, SUBD_SPLIT); @@ -877,7 +877,7 @@ void bmo_esubd_exec(BMesh *bm, BMOperator *op) } if (!matched && totesel) { - BLI_array_growone(facedata); + BLI_array_grow_one(facedata); j = BLI_array_count(facedata) - 1; BMO_elem_flag_enable(bm, face, SUBD_SPLIT); @@ -918,7 +918,7 @@ void bmo_esubd_exec(BMesh *bm, BMOperator *op) /* for case of two edges, connecting them shouldn't be too hard */ BM_ITER_ELEM (l, &liter, face, BM_LOOPS_OF_FACE) { - BLI_array_growone(loops); + BLI_array_grow_one(loops); loops[BLI_array_count(loops) - 1] = l; } @@ -951,10 +951,10 @@ void bmo_esubd_exec(BMesh *bm, BMOperator *op) b += numcuts - 1; for (j = 0; j < numcuts; j++) { - BLI_array_growone(splits); + BLI_array_grow_one(splits); splits[BLI_array_count(splits) - 1] = loops[a]; - BLI_array_growone(splits); + BLI_array_grow_one(splits); splits[BLI_array_count(splits) - 1] = loops[b]; b = (b - 1) % vlen; @@ -989,7 +989,7 @@ void bmo_esubd_exec(BMesh *bm, BMOperator *op) } for (j = 0; j < face->len; j++) { - BLI_array_growone(verts); + BLI_array_grow_one(verts); } j = 0; diff --git a/source/blender/bmesh/operators/bmo_triangulate.c b/source/blender/bmesh/operators/bmo_triangulate.c index 7fd6cf6769c..9632a79b7dd 100644 --- a/source/blender/bmesh/operators/bmo_triangulate.c +++ b/source/blender/bmesh/operators/bmo_triangulate.c @@ -59,8 +59,8 @@ void bmo_triangulate_exec(BMesh *bm, BMOperator *op) BLI_array_empty(projectverts); BLI_array_empty(newfaces); - BLI_array_growitems(projectverts, face->len * 3); - BLI_array_growitems(newfaces, face->len); + BLI_array_grow_items(projectverts, face->len * 3); + BLI_array_grow_items(newfaces, face->len); BM_face_triangulate(bm, face, projectverts, EDGE_NEW, FACE_NEW, newfaces, use_beauty); diff --git a/source/blender/bmesh/operators/bmo_utils.c b/source/blender/bmesh/operators/bmo_utils.c index 3cfa70f6e6c..8409c5b76b8 100644 --- a/source/blender/bmesh/operators/bmo_utils.c +++ b/source/blender/bmesh/operators/bmo_utils.c @@ -348,7 +348,7 @@ void bmo_righthandfaces_exec(BMesh *bm, BMOperator *op) * stack (if we use simple function recursion, we'd end up overloading * the stack on large meshes). */ - BLI_array_growone(fstack); + BLI_array_grow_one(fstack); fstack[0] = startf; BMO_elem_flag_enable(bm, startf, FACE_VIS); @@ -382,7 +382,7 @@ void bmo_righthandfaces_exec(BMesh *bm, BMOperator *op) } if (i == maxi) { - BLI_array_growone(fstack); + BLI_array_grow_one(fstack); maxi++; } @@ -420,7 +420,7 @@ void bmo_vertexsmooth_exec(BMesh *bm, BMOperator *op) i = 0; BMO_ITER (v, &siter, bm, op, "verts", BM_VERT) { - BLI_array_growone(cos); + BLI_array_grow_one(cos); co = cos[i]; j = 0; @@ -1035,7 +1035,7 @@ void bmo_face_reverseuvs_exec(BMesh *bm, BMOperator *op) int i; BLI_array_empty(uvs); - BLI_array_growitems(uvs, fs->len); + BLI_array_grow_items(uvs, fs->len); BM_ITER_ELEM_INDEX (lf, &l_iter, fs, BM_LOOPS_OF_FACE, i) { MLoopUV *luv = CustomData_bmesh_get(&bm->ldata, lf->head.data, CD_MLOOPUV); @@ -1141,7 +1141,7 @@ void bmo_face_reversecolors_exec(BMesh *bm, BMOperator *op) int i; BLI_array_empty(cols); - BLI_array_growitems(cols, fs->len); + BLI_array_grow_items(cols, fs->len); BM_ITER_ELEM_INDEX (lf, &l_iter, fs, BM_LOOPS_OF_FACE, i) { cols[i] = *((MLoopCol *)CustomData_bmesh_get(&bm->ldata, lf->head.data, CD_MLOOPCOL)); diff --git a/source/blender/bmesh/tools/BME_bevel.c b/source/blender/bmesh/tools/BME_bevel.c index 6a91d6f9d00..a357767e1d8 100644 --- a/source/blender/bmesh/tools/BME_bevel.c +++ b/source/blender/bmesh/tools/BME_bevel.c @@ -305,7 +305,7 @@ static BMVert *BME_bevel_split_edge(BMesh *bm, BMVert *v, BMVert *v1, BMLoop *l, e1 = e2; } ov = BM_edge_other_vert(e1, v); - sv = BM_edge_split(bm, e1, v, &ne, 0); + sv = BM_edge_split(bm, e1, v, &ne, 0.0f); //BME_data_interp_from_verts(bm, v, ov, sv, 0.25); /* this is technically wrong.. */ //BME_data_interp_from_faceverts(bm, v, ov, sv, 0.25); //BME_data_interp_from_faceverts(bm, ov, v, sv, 0.25); @@ -347,7 +347,7 @@ static BMVert *BME_bevel_split_edge(BMesh *bm, BMVert *v, BMVert *v1, BMLoop *l, else { is_split_vert = 0; ov = BM_edge_other_vert(l->e, v); - sv = BM_edge_split(bm, l->e, v, &ne, 0); + sv = BM_edge_split(bm, l->e, v, &ne, 0.0f); //BME_data_interp_from_verts(bm, v, ov, sv, 0.25); /* this is technically wrong.. */ //BME_data_interp_from_faceverts(bm, v, ov, sv, 0.25); //BME_data_interp_from_faceverts(bm, ov, v, sv, 0.25); @@ -371,8 +371,8 @@ static BMVert *BME_bevel_split_edge(BMesh *bm, BMVert *v, BMVert *v1, BMLoop *l, if (vtd1->loc == NULL) { /* this is a vert with data only for calculating initial weights */ - if (vtd1->weight < 0) { - vtd1->weight = 0; + if (vtd1->weight < 0.0f) { + vtd1->weight = 0.0f; } scale = vtd1->weight / vtd1->factor; if (!vtd1->max) { @@ -537,14 +537,14 @@ static BMLoop *BME_bevel_edge(BMesh *bm, BMLoop *l, float value, int UNUSED(opti se = l->next->e; jf = NULL; if (kl->v == kv) { - BM_face_split(bm, kl->f, kl->prev->v, kl->next->v, &nl, kl->prev->e, FALSE); + BM_face_split(bm, kl->f, kl->prev->v, kl->next->v, &nl, kl->prev->e, TRUE); ke = kl->e; /* BMESH-TODO: jfke doesn't handle customdata */ jf = bmesh_jfke(bm, kl->prev->radial_next->f, kl->f, kl->prev->e); BM_vert_collapse_edge(bm, ke, kv, FALSE); } else { - BM_face_split(bm, kl->f, kl->next->next->v, kl->v, &nl, kl->next->e, FALSE); + BM_face_split(bm, kl->f, kl->next->next->v, kl->v, &nl, kl->next->e, TRUE); ke = kl->e; /* BMESH-TODO: jfke doesn't handle customdata */ jf = bmesh_jfke(bm, kl->next->radial_next->f, kl->f, kl->next->e); @@ -583,14 +583,14 @@ static BMLoop *BME_bevel_edge(BMesh *bm, BMLoop *l, float value, int UNUSED(opti se = l->e; jf = NULL; if (kl->v == kv) { - BM_face_split(bm, kl->f, kl->prev->v, kl->next->v, &nl, kl->prev->e, FALSE); + BM_face_split(bm, kl->f, kl->prev->v, kl->next->v, &nl, kl->prev->e, TRUE); ke = kl->e; /* BMESH-TODO: jfke doesn't handle customdata */ jf = bmesh_jfke(bm, kl->prev->radial_next->f, kl->f, kl->prev->e); BM_vert_collapse_edge(bm, ke, kv, FALSE); } else { - BM_face_split(bm, kl->f, kl->next->next->v, kl->v, &nl, kl->next->e, FALSE); + BM_face_split(bm, kl->f, kl->next->next->v, kl->v, &nl, kl->next->e, TRUE); ke = kl->e; /* BMESH-TODO: jfke doesn't handle customdata */ jf = bmesh_jfke(bm, kl->next->radial_next->f, kl->f, kl->next->e); @@ -605,7 +605,7 @@ static BMLoop *BME_bevel_edge(BMesh *bm, BMLoop *l, float value, int UNUSED(opti } if (!BMO_elem_flag_test(bm, v1, BME_BEVEL_NONMAN) || !BMO_elem_flag_test(bm, v2, BME_BEVEL_NONMAN)) { - BM_face_split(bm, f, v2, v1, &l, e, FALSE); + BM_face_split(bm, f, v2, v1, &l, e, TRUE); BMO_elem_flag_enable(bm, l->e, BME_BEVEL_BEVEL); l = l->radial_next; } @@ -633,7 +633,7 @@ static BMLoop *BME_bevel_vert(BMesh *bm, BMLoop *l, float value, int UNUSED(opti l = l->next->next; /* "cut off" this corner */ - /* f = */ BM_face_split(bm, l->f, v2, v1, NULL, l->e, FALSE); + /* f = */ BM_face_split(bm, l->f, v2, v1, NULL, l->e, TRUE); return l; } @@ -694,7 +694,7 @@ static BMFace *BME_bevel_poly(BMesh *bm, BMFace *f, float value, int options, BM f = l->f; /* max pass */ - if (value > 0.5f && max > 0) { + if (value > 0.5f && max > 0.0f) { max = -1; BM_ITER_ELEM (l, &iter, f, BM_LOOPS_OF_FACE) { if (BMO_elem_flag_test(bm, l->e, BME_BEVEL_BEVEL) || BMO_elem_flag_test(bm, l->e, BME_BEVEL_ORIG)) { @@ -835,7 +835,7 @@ static void BME_bevel_add_vweight(BME_TransData_Head *td, BMesh *bm, BMVert *v, vtd->weight = weight; } } - else if (vtd->weight < 0) { + else if (vtd->weight < 0.0f) { vtd->factor = factor; vtd->weight = weight; } @@ -897,11 +897,11 @@ static void bevel_init_edges(BMesh *bm, int options, float angle, BME_TransData_ const float threshold = (options & BME_BEVEL_ANGLE) ? cosf(angle + 0.001) : 0.0f; BM_ITER_MESH (e, &iter, bm, BM_EDGES_OF_MESH) { - weight = 0.0; + weight = 0.0f; if (!BMO_elem_flag_test(bm, e, BME_BEVEL_NONMAN)) { if (options & BME_BEVEL_SELECT) { if (BM_elem_flag_test(e, BM_ELEM_SELECT)) { - weight = 1.0; + weight = 1.0f; } } else if (options & BME_BEVEL_WEIGHT) { @@ -925,10 +925,10 @@ static void bevel_init_edges(BMesh *bm, int options, float angle, BME_TransData_ } } else { - weight = 1.0; + weight = 1.0f; } - if (weight > 0.0) { + if (weight > 0.0f) { BMO_elem_flag_enable(bm, e, BME_BEVEL_BEVEL); BME_bevel_add_vweight(td, bm, e->v1, weight, 1.0, options); BME_bevel_add_vweight(td, bm, e->v2, weight, 1.0, options); @@ -1071,9 +1071,9 @@ static BMesh *BME_bevel_mesh(BMesh *bm, float value, int UNUSED(res), int option if (l->v != v) l = l->next; if (l2->v != v) l2 = l2->next; if (l->f->len > 3) - BM_face_split(bm, l->f, l->next->v, l->prev->v, &l, l->e, FALSE); /* clip this corner off */ + BM_face_split(bm, l->f, l->next->v, l->prev->v, &l, l->e, TRUE); /* clip this corner off */ if (l2->f->len > 3) - BM_face_split(bm, l2->f, l2->next->v, l2->prev->v, &l, l2->e, FALSE); /* clip this corner off */ + BM_face_split(bm, l2->f, l2->next->v, l2->prev->v, &l, l2->e, TRUE); /* clip this corner off */ curedge = bmesh_disk_edge_next(curedge, v); } while (curedge != v->e); BME_Bevel_Dissolve_Disk(bm, v); diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp index 778e3029266..c93ee832fe6 100644 --- a/source/blender/collada/AnimationExporter.cpp +++ b/source/blender/collada/AnimationExporter.cpp @@ -29,7 +29,7 @@ void forEachObjectInScene(Scene *sce, Functor &f) { Base *base= (Base*) sce->base.first; - while(base) { + while (base) { Object *ob = base->object; f(ob); @@ -59,13 +59,11 @@ void AnimationExporter::operator() (Object *ob) /* bool isMatAnim = false; */ /* UNUSED */ //Export transform animations - if (ob->adt && ob->adt->action) - { + if (ob->adt && ob->adt->action) { fcu = (FCurve*)ob->adt->action->curves.first; //transform matrix export for bones are temporarily disabled here. - if ( ob->type == OB_ARMATURE ) - { + if ( ob->type == OB_ARMATURE ) { bArmature *arm = (bArmature*)ob->data; for (Bone *bone = (Bone*)arm->bonebase.first; bone; bone = bone->next) write_bone_animation_matrix(ob, bone); @@ -79,59 +77,63 @@ void AnimationExporter::operator() (Object *ob) transformName = extract_transform_name( fcu->rna_path ); if ((!strcmp(transformName, "location") || !strcmp(transformName, "scale")) || - (!strcmp(transformName, "rotation_euler") && ob->rotmode == ROT_MODE_EUL)|| - (!strcmp(transformName, "rotation_quaternion"))) + (!strcmp(transformName, "rotation_euler") && ob->rotmode == ROT_MODE_EUL)|| + (!strcmp(transformName, "rotation_quaternion"))) + { dae_animation(ob ,fcu, transformName, false); + } fcu = fcu->next; } } //Export Lamp parameter animations - if ( (ob->type == OB_LAMP ) && ((Lamp*)ob ->data)->adt && ((Lamp*)ob ->data)->adt->action ) - { + if ( (ob->type == OB_LAMP ) && ((Lamp*)ob ->data)->adt && ((Lamp*)ob ->data)->adt->action ) { fcu = (FCurve*)(((Lamp*)ob ->data)->adt->action->curves.first); while (fcu) { transformName = extract_transform_name( fcu->rna_path ); - if ((!strcmp(transformName, "color")) || (!strcmp(transformName, "spot_size"))|| (!strcmp(transformName, "spot_blend"))|| - (!strcmp(transformName, "distance")) ) - dae_animation(ob , fcu, transformName, true ); + if ((!strcmp(transformName, "color")) || (!strcmp(transformName, "spot_size"))|| + (!strcmp(transformName, "spot_blend")) || (!strcmp(transformName, "distance"))) + { + dae_animation(ob , fcu, transformName, true); + } fcu = fcu->next; } } //Export Camera parameter animations - if ( (ob->type == OB_CAMERA ) && ((Camera*)ob ->data)->adt && ((Camera*)ob ->data)->adt->action ) - { + if ( (ob->type == OB_CAMERA ) && ((Camera*)ob ->data)->adt && ((Camera*)ob ->data)->adt->action ) { fcu = (FCurve*)(((Camera*)ob ->data)->adt->action->curves.first); while (fcu) { transformName = extract_transform_name( fcu->rna_path ); if ((!strcmp(transformName, "lens"))|| - (!strcmp(transformName, "ortho_scale"))|| - (!strcmp(transformName, "clip_end"))||(!strcmp(transformName, "clip_start"))) - dae_animation(ob , fcu, transformName, true ); + (!strcmp(transformName, "ortho_scale"))|| + (!strcmp(transformName, "clip_end"))||(!strcmp(transformName, "clip_start"))) + { + dae_animation(ob , fcu, transformName, true); + } fcu = fcu->next; } } //Export Material parameter animations. - for (int a = 0; a < ob->totcol; a++) - { + for (int a = 0; a < ob->totcol; a++) { Material *ma = give_current_material(ob, a+1); if (!ma) continue; - if (ma->adt && ma->adt->action) - { + if (ma->adt && ma->adt->action) { /* isMatAnim = true; */ fcu = (FCurve*)ma->adt->action->curves.first; while (fcu) { transformName = extract_transform_name( fcu->rna_path ); - if ((!strcmp(transformName, "specular_hardness"))||(!strcmp(transformName, "specular_color")) - ||(!strcmp(transformName, "diffuse_color"))||(!strcmp(transformName, "alpha"))|| - (!strcmp(transformName, "ior"))) + if ((!strcmp(transformName, "specular_hardness"))||(!strcmp(transformName, "specular_color")) || + (!strcmp(transformName, "diffuse_color"))||(!strcmp(transformName, "alpha")) || + (!strcmp(transformName, "ior"))) + { dae_animation(ob ,fcu, transformName, true, ma ); + } fcu = fcu->next; } } @@ -148,8 +150,7 @@ float * AnimationExporter::get_eul_source_for_quat(Object *ob ) float *eul = (float*)MEM_callocN(sizeof(float) * fcu->totvert * 3, "quat output source values"); float temp_quat[4]; float temp_eul[3]; - while(fcu) - { + while (fcu) { char * transformName = extract_transform_name( fcu->rna_path ); if ( !strcmp(transformName, "rotation_quaternion") ) { @@ -199,8 +200,7 @@ void AnimationExporter::dae_animation(Object* ob, FCurve *fcu, char* transformNa bool has_tangents = false; bool quatRotation = false; - if ( !strcmp(transformName, "rotation_quaternion") ) - { + if ( !strcmp(transformName, "rotation_quaternion") ) { fprintf(stderr, "quaternion rotation curves are not supported. rotation curve will not be exported\n"); quatRotation = true; return; @@ -223,23 +223,20 @@ void AnimationExporter::dae_animation(Object* ob, FCurve *fcu, char* transformNa if (fcu->array_index < 3) axis_name = axis_names[fcu->array_index]; } - - //no axis name. single parameter. - else{ + else { + /* no axis name. single parameter */ axis_name = ""; } std::string ob_name = std::string("null"); //Create anim Id - if (ob->type == OB_ARMATURE) - { + if (ob->type == OB_ARMATURE) { ob_name = getObjectBoneName( ob , fcu); BLI_snprintf(anim_id, sizeof(anim_id), "%s_%s.%s", (char*)translate_id(ob_name).c_str(), transformName, axis_name); } - else - { + else { if (ma) ob_name = id_name(ob) + "_material"; else @@ -257,18 +254,17 @@ void AnimationExporter::dae_animation(Object* ob, FCurve *fcu, char* transformNa std::string output_id; //quat rotations are skipped for now, because of complications with determining axis. - if (quatRotation) - { - float * eul = get_eul_source_for_quat(ob); - float * eul_axis = (float*)MEM_callocN(sizeof(float) * fcu->totvert, "quat output source values"); - for ( int i = 0 ; i< fcu->totvert ; i++) + if (quatRotation) { + float *eul = get_eul_source_for_quat(ob); + float *eul_axis = (float*)MEM_callocN(sizeof(float) * fcu->totvert, "quat output source values"); + for (int i = 0 ; i< fcu->totvert ; i++) { eul_axis[i] = eul[i*3 + fcu->array_index]; + } output_id= create_source_from_array(COLLADASW::InputSemantic::OUTPUT, eul_axis , fcu->totvert, quatRotation, anim_id, axis_name); MEM_freeN(eul); MEM_freeN(eul_axis); } - else - { + else { output_id= create_source_from_fcurve(COLLADASW::InputSemantic::OUTPUT, fcu, anim_id, axis_name); } // create interpolations source @@ -307,8 +303,7 @@ void AnimationExporter::dae_animation(Object* ob, FCurve *fcu, char* transformNa if ( !is_param ) target = translate_id(ob_name) + "/" + get_transform_sid(fcu->rna_path, -1, axis_name, true); - else - { + else { if ( ob->type == OB_LAMP ) target = get_light_id(ob) + "/" + get_light_param_sid(fcu->rna_path, -1, axis_name, true); @@ -349,8 +344,7 @@ bool AnimationExporter::is_bone_deform_group(Bone * bone) //Check if current bone is deform if ((bone->flag & BONE_NO_DEFORM) == 0 ) return true; //Check child bones - else - { + else { for (Bone *child = (Bone*)bone->childbase.first; child; child = child->next) { //loop through all the children until deform bone is found, and then return is_def = is_bone_deform_group(child); @@ -369,8 +363,7 @@ void AnimationExporter::sample_and_write_bone_animation_matrix(Object *ob_arm, B //char prefix[256]; FCurve* fcu = (FCurve*)ob_arm->adt->action->curves.first; - while(fcu) - { + while (fcu) { std::string bone_name = getObjectBoneName(ob_arm,fcu); int val = BLI_strcasecmp((char*)bone_name.c_str(),bone->name); if (val==0) break; @@ -511,7 +504,7 @@ float AnimationExporter::convert_angle(float angle) std::string AnimationExporter::get_semantic_suffix(COLLADASW::InputSemantic::Semantics semantic) { - switch(semantic) { + switch (semantic) { case COLLADASW::InputSemantic::INPUT: return INPUT_SOURCE_ID_SUFFIX; case COLLADASW::InputSemantic::OUTPUT: @@ -531,7 +524,7 @@ std::string AnimationExporter::get_semantic_suffix(COLLADASW::InputSemantic::Sem void AnimationExporter::add_source_parameters(COLLADASW::SourceBase::ParameterNameList& param, COLLADASW::InputSemantic::Semantics semantic, bool is_rot, const char *axis, bool transform) { - switch(semantic) { + switch (semantic) { case COLLADASW::InputSemantic::INPUT: param.push_back("TIME"); break; @@ -544,8 +537,7 @@ void AnimationExporter::add_source_parameters(COLLADASW::SourceBase::ParameterNa param.push_back(axis); } else - if ( transform ) - { + if ( transform ) { param.push_back("TRANSFORM"); } else { //assumes if axis isn't specified all axises are added @@ -778,8 +770,7 @@ std::string AnimationExporter::create_4x4_source(std::vector &frames , Ob // SECOND_LIFE_COMPATIBILITY // AFAIK animation to second life is via BVH, but no // reason to not have the collada-animation be correct - if (export_settings->second_life) - { + if (export_settings->second_life) { float temp[4][4]; copy_m4_m4(temp, bone->arm_mat); temp[3][0] = temp[3][1] = temp[3][2] = 0.0f; @@ -787,8 +778,7 @@ std::string AnimationExporter::create_4x4_source(std::vector &frames , Ob mult_m4_m4m4(mat, mat, temp); - if (bone->parent) - { + if (bone->parent) { copy_m4_m4(temp, bone->parent->arm_mat); temp[3][0] = temp[3][1] = temp[3][2] = 0.0f; @@ -1128,7 +1118,7 @@ bool AnimationExporter::hasAnimations(Scene *sce) { Base *base= (Base*) sce->base.first; - while(base) { + while (base) { Object *ob = base->object; FCurve *fcu = 0; @@ -1143,12 +1133,10 @@ bool AnimationExporter::hasAnimations(Scene *sce) fcu = (FCurve*)(((Camera*)ob ->data)->adt->action->curves.first); //Check Material Effect parameter animations. - for (int a = 0; a < ob->totcol; a++) - { + for (int a = 0; a < ob->totcol; a++) { Material *ma = give_current_material(ob, a+1); if (!ma) continue; - if (ma->adt && ma->adt->action) - { + if (ma->adt && ma->adt->action) { fcu = (FCurve*)ma->adt->action->curves.first; } } diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index e0079fbb8a0..8ef2235b6fb 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -138,8 +138,7 @@ void AnimationImporter::animation_to_fcurves(COLLADAFW::AnimationCurve *curve) bez.ipo = BEZT_IPO_CONST; //bez.h1 = bez.h2 = HD_AUTO; } - else - { + else { bez.h1 = bez.h2 = HD_AUTO; bez.ipo = BEZT_IPO_LIN; } @@ -789,17 +788,15 @@ void AnimationImporter::translate_Animations ( COLLADAFW::Node * node , bool is_joint = node->getType() == COLLADAFW::Node::JOINT; COLLADAFW::Node *root = root_map.find(node->getUniqueId()) == root_map.end() ? node : root_map[node->getUniqueId()]; Object *ob = is_joint ? armature_importer->get_armature_for_joint(root) : object_map[node->getUniqueId()]; - if (!ob) - { + if (!ob) { fprintf(stderr, "cannot find Object for Node with id=\"%s\"\n", node->getOriginalId().c_str()); return; } bAction * act; - if ( (animType->transform) != 0 ) - { - const char *bone_name = is_joint ? bc_get_joint_name(node) : NULL; + if ( (animType->transform) != 0 ) { + /* const char *bone_name = is_joint ? bc_get_joint_name(node) : NULL; */ /* UNUSED */ char joint_path[200]; if ( is_joint ) @@ -867,8 +864,7 @@ void AnimationImporter::translate_Animations ( COLLADAFW::Node * node , } } - if ((animType->light) != 0) - { + if ((animType->light) != 0) { Lamp * lamp = (Lamp*) ob->data; if (!lamp->adt || !lamp->adt->action) act = verify_adt_action((ID*)&lamp->id, 1); @@ -880,22 +876,19 @@ void AnimationImporter::translate_Animations ( COLLADAFW::Node * node , for (unsigned int i = 0; i < nodeLights.getCount(); i++) { const COLLADAFW::Light *light = (COLLADAFW::Light *) FW_object_map[nodeLights[i]->getInstanciatedObjectId()]; - if ((animType->light & LIGHT_COLOR) != 0) - { + if ((animType->light & LIGHT_COLOR) != 0) { const COLLADAFW::Color *col = &(light->getColor()); const COLLADAFW::UniqueId& listid = col->getAnimationList(); Assign_color_animations(listid, AnimCurves, "color"); } - if ((animType->light & LIGHT_FOA) != 0 ) - { + if ((animType->light & LIGHT_FOA) != 0 ) { const COLLADAFW::AnimatableFloat *foa = &(light->getFallOffAngle()); const COLLADAFW::UniqueId& listid = foa->getAnimationList(); Assign_float_animations( listid ,AnimCurves, "spot_size"); } - if ( (animType->light & LIGHT_FOE) != 0 ) - { + if ( (animType->light & LIGHT_FOE) != 0 ) { const COLLADAFW::AnimatableFloat *foe = &(light->getFallOffExponent()); const COLLADAFW::UniqueId& listid = foe->getAnimationList(); @@ -905,8 +898,7 @@ void AnimationImporter::translate_Animations ( COLLADAFW::Node * node , } } - if ( (animType->camera) != 0) - { + if ( (animType->camera) != 0) { Camera * camera = (Camera*) ob->data; if (!camera->adt || !camera->adt->action) act = verify_adt_action((ID*)&camera->id, 1); @@ -918,29 +910,25 @@ void AnimationImporter::translate_Animations ( COLLADAFW::Node * node , for (unsigned int i = 0; i < nodeCameras.getCount(); i++) { const COLLADAFW::Camera *camera = (COLLADAFW::Camera *) FW_object_map[nodeCameras[i]->getInstanciatedObjectId()]; - if ((animType->camera & CAMERA_XFOV) != 0 ) - { + if ((animType->camera & CAMERA_XFOV) != 0 ) { const COLLADAFW::AnimatableFloat *xfov = &(camera->getXFov()); const COLLADAFW::UniqueId& listid = xfov->getAnimationList(); Assign_float_animations( listid ,AnimCurves, "lens"); } - else if ((animType->camera & CAMERA_XMAG) != 0 ) - { + else if ((animType->camera & CAMERA_XMAG) != 0 ) { const COLLADAFW::AnimatableFloat *xmag = &(camera->getXMag()); const COLLADAFW::UniqueId& listid = xmag->getAnimationList(); Assign_float_animations( listid ,AnimCurves, "ortho_scale"); } - if ((animType->camera & CAMERA_ZFAR) != 0 ) - { + if ((animType->camera & CAMERA_ZFAR) != 0 ) { const COLLADAFW::AnimatableFloat *zfar = &(camera->getFarClippingPlane()); const COLLADAFW::UniqueId& listid = zfar->getAnimationList(); Assign_float_animations( listid ,AnimCurves, "clip_end"); } - if ((animType->camera & CAMERA_ZNEAR) != 0 ) - { + if ((animType->camera & CAMERA_ZNEAR) != 0 ) { const COLLADAFW::AnimatableFloat *znear = &(camera->getNearClippingPlane()); const COLLADAFW::UniqueId& listid = znear->getAnimationList(); Assign_float_animations( listid ,AnimCurves, "clip_start"); @@ -1162,12 +1150,10 @@ AnimationImporter::AnimMix* AnimationImporter::get_animation_type ( const COLLAD for (unsigned int i = 0; i < nodeCameras.getCount(); i++) { const COLLADAFW::Camera *camera = (COLLADAFW::Camera *) FW_object_map[nodeCameras[i]->getInstanciatedObjectId()]; - if ( camera->getCameraType() == COLLADAFW::Camera::PERSPECTIVE ) - { + if ( camera->getCameraType() == COLLADAFW::Camera::PERSPECTIVE ) { types->camera = setAnimType(&(camera->getXMag()),(types->camera), CAMERA_XFOV); } - else - { + else { types->camera = setAnimType(&(camera->getXMag()),(types->camera), CAMERA_XMAG); } types->camera = setAnimType(&(camera->getFarClippingPlane()),(types->camera), CAMERA_ZFAR); @@ -1641,7 +1627,7 @@ bool AnimationImporter::evaluate_animation(COLLADAFW::Transformation *tm, float COLLADABU::Math::Vector3& axis = ((COLLADAFW::Rotate*)tm)->getRotationAxis(); - float ax[3] = {axis[0], axis[1], axis[2]}; + float ax[3] = {(float)axis[0], (float)axis[1], (float)axis[2]}; float angle = evaluate_fcurve(curves[0], fra); axis_angle_to_mat4(mat, ax, angle); diff --git a/source/blender/collada/ArmatureExporter.cpp b/source/blender/collada/ArmatureExporter.cpp index 743d3c2a158..0d45df37796 100644 --- a/source/blender/collada/ArmatureExporter.cpp +++ b/source/blender/collada/ArmatureExporter.cpp @@ -127,7 +127,7 @@ void ArmatureExporter::find_objects_using_armature(Object *ob_arm, std::vectorbase.first; - while(base) { + while (base) { Object *ob = base->object; if (ob->type == OB_MESH && get_assigned_armature(ob) == ob_arm) { @@ -191,10 +191,8 @@ void ArmatureExporter::add_bone_node(Bone *bone, Object *ob_arm, Scene* sce, // Write nodes of childobjects, remove written objects from list std::list::iterator i = child_objects.begin(); - while( i != child_objects.end() ) - { - if ((*i)->partype == PARBONE && (0 == strcmp((*i)->parsubstr, bone->name))) - { + while (i != child_objects.end()) { + if ((*i)->partype == PARBONE && (0 == strcmp((*i)->parsubstr, bone->name))) { float backup_parinv[4][4]; copy_m4_m4(backup_parinv, (*i)->parentinv); @@ -210,8 +208,7 @@ void ArmatureExporter::add_bone_node(Bone *bone, Object *ob_arm, Scene* sce, // TODO: when such objects are animated as // single matrix the tweak must be applied // to the result. - if (export_settings->second_life) - { + if (export_settings->second_life) { // tweak objects parentinverse to match compatibility float temp[4][4]; @@ -274,8 +271,7 @@ void ArmatureExporter::add_bone_transform(Object *ob_arm, Bone *bone, COLLADASW: } // SECOND_LIFE_COMPATIBILITY - if (export_settings->second_life) - { + if (export_settings->second_life) { // Remove rotations vs armature from transform // parent_rest_rot * mat * irest_rot float temp[4][4]; @@ -285,8 +281,7 @@ void ArmatureExporter::add_bone_transform(Object *ob_arm, Bone *bone, COLLADASW: mult_m4_m4m4(mat, mat, temp); - if (bone->parent) - { + if (bone->parent) { copy_m4_m4(temp, bone->parent->arm_mat); temp[3][0] = temp[3][1] = temp[3][2] = 0.0f; @@ -370,25 +365,21 @@ void ArmatureExporter::export_controller(Object* ob, Object *ob_arm) for (j = 0; j < vert->totweight; j++) { int joint_index = joint_index_by_def_index[vert->dw[j].def_nr]; - if (joint_index != -1 && vert->dw[j].weight > 0.0f) - { + if (joint_index != -1 && vert->dw[j].weight > 0.0f) { jw[joint_index] += vert->dw[j].weight; sumw += vert->dw[j].weight; } } - if (sumw > 0.0f) - { + if (sumw > 0.0f) { float invsumw = 1.0f/sumw; vcounts.push_back(jw.size()); - for (std::map::iterator m = jw.begin(); m != jw.end(); ++m) - { + for (std::map::iterator m = jw.begin(); m != jw.end(); ++m) { joints.push_back((*m).first); weights.push_back(invsumw*(*m).second); } } - else - { + else { vcounts.push_back(0); /*vcounts.push_back(1); joints.push_back(-1); @@ -502,16 +493,14 @@ std::string ArmatureExporter::add_inv_bind_mats_source(Object *ob_arm, ListBase float inv_bind_mat[4][4]; // SECOND_LIFE_COMPATIBILITY - if (export_settings->second_life) - { + if (export_settings->second_life) { // Only translations, no rotation vs armature float temp[4][4]; unit_m4(temp); copy_v3_v3(temp[3], pchan->bone->arm_mat[3]); mult_m4_m4m4(world, ob_arm->obmat, temp); } - else - { + else { // make world-space matrix, arm_mat is armature-space mult_m4_m4m4(world, ob_arm->obmat, pchan->bone->arm_mat); } @@ -597,8 +586,7 @@ void ArmatureExporter::add_vertex_weights_element(const std::string& weights_sou // write deformer index - weight index pairs int weight_index = 0; - for (std::list::const_iterator i = joints.begin(); i != joints.end(); ++i) - { + for (std::list::const_iterator i = joints.begin(); i != joints.end(); ++i) { weightselem.appendValues(*i, weight_index++); } diff --git a/source/blender/collada/ArmatureImporter.cpp b/source/blender/collada/ArmatureImporter.cpp index a978a4757a7..05a2e5643f2 100644 --- a/source/blender/collada/ArmatureImporter.cpp +++ b/source/blender/collada/ArmatureImporter.cpp @@ -278,8 +278,7 @@ void ArmatureImporter::add_leaf_bone(float mat[][4], EditBone *bone, COLLADAFW: TagsMap::iterator etit; ExtraTags *et = 0; etit = uid_tags_map.find(node->getUniqueId().toAscii()); - if (etit != uid_tags_map.end()) - { + if (etit != uid_tags_map.end()) { et = etit->second; //else return; diff --git a/source/blender/collada/CameraExporter.cpp b/source/blender/collada/CameraExporter.cpp index fcb98cc7c32..8640e544dbf 100644 --- a/source/blender/collada/CameraExporter.cpp +++ b/source/blender/collada/CameraExporter.cpp @@ -42,15 +42,14 @@ CamerasExporter::CamerasExporter(COLLADASW::StreamWriter *sw, const ExportSettin template void forEachCameraObjectInScene(Scene *sce, Functor &f, bool export_selected) { - Base *base= (Base*) sce->base.first; - while(base) { + Base *base = (Base*) sce->base.first; + while (base) { Object *ob = base->object; - - if (ob->type == OB_CAMERA && ob->data - && !(export_selected && !(ob->flag & SELECT))) { + + if (ob->type == OB_CAMERA && ob->data && !(export_selected && !(ob->flag & SELECT))) { f(ob, sce); } - base= base->next; + base = base->next; } } diff --git a/source/blender/collada/DocumentExporter.cpp b/source/blender/collada/DocumentExporter.cpp index 52261346acb..19fc30a2790 100644 --- a/source/blender/collada/DocumentExporter.cpp +++ b/source/blender/collada/DocumentExporter.cpp @@ -175,7 +175,7 @@ void DocumentExporter::exportCurrentScene(Scene *sce) std::string unitname = "meter"; float linearmeasure = RNA_float_get(&unit_settings, "scale_length"); - switch(RNA_property_enum_get(&unit_settings, system)) { + switch (RNA_property_enum_get(&unit_settings, system)) { case USER_UNIT_NONE: case USER_UNIT_METRIC: if (linearmeasure == 0.001f) { diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp index bc0606107ab..d81ffebae66 100644 --- a/source/blender/collada/DocumentImporter.cpp +++ b/source/blender/collada/DocumentImporter.cpp @@ -106,7 +106,7 @@ DocumentImporter::~DocumentImporter() { TagsMap::iterator etit; etit = uid_tags_map.begin(); - while(etit!=uid_tags_map.end()) { + while (etit!=uid_tags_map.end()) { delete etit->second; etit++; } @@ -178,7 +178,7 @@ void DocumentImporter::finish() system = RNA_struct_find_property(&unit_settings, "system"); scale = RNA_struct_find_property(&unit_settings, "scale_length"); - switch(unit_converter.isMetricSystem()) { + switch (unit_converter.isMetricSystem()) { case UnitConverter::Metric: RNA_property_enum_set(&unit_settings, system, USER_UNIT_METRIC); break; @@ -744,8 +744,7 @@ bool DocumentImporter::writeEffect( const COLLADAFW::Effect* effect ) Material *ma = uid_effect_map[uid]; std::map::iterator iter; - for (iter = uid_material_map.begin(); iter != uid_material_map.end() ; iter++ ) - { + for (iter = uid_material_map.begin(); iter != uid_material_map.end() ; iter++ ) { if ( iter->second == ma ) { this->FW_object_map[iter->first] = effect; break; @@ -789,7 +788,7 @@ bool DocumentImporter::writeCamera( const COLLADAFW::Camera* camera ) cam->clipend = camera->getFarClippingPlane().getValue(); COLLADAFW::Camera::CameraType type = camera->getCameraType(); - switch(type) { + switch (type) { case COLLADAFW::Camera::ORTHOGRAPHIC: { cam->type = CAM_ORTHO; @@ -808,10 +807,10 @@ bool DocumentImporter::writeCamera( const COLLADAFW::Camera* camera ) break; } - switch(camera->getDescriptionType()) { + switch (camera->getDescriptionType()) { case COLLADAFW::Camera::ASPECTRATIO_AND_Y: { - switch(cam->type) { + switch (cam->type) { case CAM_ORTHO: { double ymag = camera->getYMag().getValue(); @@ -839,7 +838,7 @@ bool DocumentImporter::writeCamera( const COLLADAFW::Camera* camera ) case COLLADAFW::Camera::SINGLE_X: case COLLADAFW::Camera::X_AND_Y: { - switch(cam->type) { + switch (cam->type) { case CAM_ORTHO: cam->ortho_scale = (float)camera->getXMag().getValue(); break; @@ -856,7 +855,7 @@ bool DocumentImporter::writeCamera( const COLLADAFW::Camera* camera ) break; case COLLADAFW::Camera::SINGLE_Y: { - switch(cam->type) { + switch (cam->type) { case CAM_ORTHO: cam->ortho_scale = (float)camera->getYMag().getValue(); break; @@ -1030,7 +1029,7 @@ bool DocumentImporter::writeLight( const COLLADAFW::Light* light ) lamp->dist = d; COLLADAFW::Light::LightType type = light->getLightType(); - switch(type) { + switch (type) { case COLLADAFW::Light::AMBIENT_LIGHT: { lamp->type = LA_HEMI; diff --git a/source/blender/collada/EffectExporter.cpp b/source/blender/collada/EffectExporter.cpp index 9720b92ffae..bbc7677c279 100644 --- a/source/blender/collada/EffectExporter.cpp +++ b/source/blender/collada/EffectExporter.cpp @@ -60,11 +60,10 @@ bool EffectsExporter::hasEffects(Scene *sce) { Base *base = (Base *)sce->base.first; - while(base) { + while (base) { Object *ob= base->object; int a; - for (a = 0; a < ob->totcol; a++) - { + for (a = 0; a < ob->totcol; a++) { Material *ma = give_current_material(ob, a+1); // no material, but check all of the slots diff --git a/source/blender/collada/ErrorHandler.cpp b/source/blender/collada/ErrorHandler.cpp index 1c0f40d2185..530158ed418 100644 --- a/source/blender/collada/ErrorHandler.cpp +++ b/source/blender/collada/ErrorHandler.cpp @@ -49,37 +49,31 @@ bool ErrorHandler::handleError( const COLLADASaxFWL::IError* error ) { mError = true; - if ( error->getErrorClass() == COLLADASaxFWL::IError::ERROR_SAXPARSER ) - { + if ( error->getErrorClass() == COLLADASaxFWL::IError::ERROR_SAXPARSER ) { COLLADASaxFWL::SaxParserError* saxParserError = (COLLADASaxFWL::SaxParserError*) error; const GeneratedSaxParser::ParserError& parserError = saxParserError->getError(); // Workaround to avoid wrong error - if ( parserError.getErrorType() == GeneratedSaxParser::ParserError::ERROR_VALIDATION_MIN_OCCURS_UNMATCHED) - { - if ( strcmp(parserError.getElement(), "effect") == 0 ) - { + if ( parserError.getErrorType() == GeneratedSaxParser::ParserError::ERROR_VALIDATION_MIN_OCCURS_UNMATCHED) { + if ( strcmp(parserError.getElement(), "effect") == 0 ) { mError = false; } } - if ( parserError.getErrorType() == GeneratedSaxParser::ParserError::ERROR_VALIDATION_SEQUENCE_PREVIOUS_SIBLING_NOT_PRESENT) - { - if ( !((strcmp(parserError.getElement(), "extra") == 0) - && (strcmp(parserError.getAdditionalText().c_str(), "sibling: fx_profile_abstract") == 0))) + if ( parserError.getErrorType() == GeneratedSaxParser::ParserError::ERROR_VALIDATION_SEQUENCE_PREVIOUS_SIBLING_NOT_PRESENT) { + if ( !((strcmp(parserError.getElement(), "extra") == 0) && + (strcmp(parserError.getAdditionalText().c_str(), "sibling: fx_profile_abstract") == 0))) { mError = false; } } - if ( parserError.getErrorType() == GeneratedSaxParser::ParserError::ERROR_COULD_NOT_OPEN_FILE) - { + if ( parserError.getErrorType() == GeneratedSaxParser::ParserError::ERROR_COULD_NOT_OPEN_FILE) { std::cout << "Couldn't open file" << std::endl; } std::cout << "Schema validation error: " << parserError.getErrorMessage() << std::endl; } - else if ( error->getErrorClass() == COLLADASaxFWL::IError::ERROR_SAXFWL ) - { + else if ( error->getErrorClass() == COLLADASaxFWL::IError::ERROR_SAXFWL ) { COLLADASaxFWL::SaxFWLError* saxFWLError = (COLLADASaxFWL::SaxFWLError*) error; std::cout << "Sax FWL Error: " << saxFWLError->getErrorMessage() << std::endl; } diff --git a/source/blender/collada/GeometryExporter.cpp b/source/blender/collada/GeometryExporter.cpp index ca112abc0af..8e4fa057daf 100644 --- a/source/blender/collada/GeometryExporter.cpp +++ b/source/blender/collada/GeometryExporter.cpp @@ -440,9 +440,9 @@ void GeometryExporter::create_normals(std::vector &nor, std::vectorbase.first; - while(base) { + while (base) { Object *ob = base->object; - if (ob->type == OB_MESH && ob->data - && !(export_selected && !(ob->flag && SELECT)) - && ((sce->lay & ob->lay)!=0)) { + if (ob->type == OB_MESH && ob->data && + !(export_selected && !(ob->flag & SELECT)) && + ((sce->lay & ob->lay)!=0)) + { f(ob); } base= base->next; diff --git a/source/blender/collada/ImageExporter.cpp b/source/blender/collada/ImageExporter.cpp index 946effda832..4d7c56ab419 100644 --- a/source/blender/collada/ImageExporter.cpp +++ b/source/blender/collada/ImageExporter.cpp @@ -48,11 +48,10 @@ bool ImagesExporter::hasImages(Scene *sce) { Base *base = (Base *)sce->base.first; - while(base) { + while (base) { Object *ob= base->object; int a; - for (a = 0; a < ob->totcol; a++) - { + for (a = 0; a < ob->totcol; a++) { Material *ma = give_current_material(ob, a+1); // no material, but check all of the slots diff --git a/source/blender/collada/LightExporter.cpp b/source/blender/collada/LightExporter.cpp index 51242b36b64..1d7afb9b1a1 100644 --- a/source/blender/collada/LightExporter.cpp +++ b/source/blender/collada/LightExporter.cpp @@ -39,11 +39,10 @@ template void forEachLampObjectInScene(Scene *sce, Functor &f, bool export_selected) { Base *base= (Base*) sce->base.first; - while(base) { + while (base) { Object *ob = base->object; - - if (ob->type == OB_LAMP && ob->data - && !(export_selected && !(ob->flag & SELECT))) { + + if (ob->type == OB_LAMP && ob->data && !(export_selected && !(ob->flag & SELECT))) { f(ob); } base= base->next; diff --git a/source/blender/collada/MaterialExporter.cpp b/source/blender/collada/MaterialExporter.cpp index 1e3358c9216..ac1a5d32a08 100644 --- a/source/blender/collada/MaterialExporter.cpp +++ b/source/blender/collada/MaterialExporter.cpp @@ -50,11 +50,10 @@ bool MaterialsExporter::hasMaterials(Scene *sce) { Base *base = (Base *)sce->base.first; - while(base) { + while (base) { Object *ob= base->object; int a; - for (a = 0; a < ob->totcol; a++) - { + for (a = 0; a < ob->totcol; a++) { Material *ma = give_current_material(ob, a+1); // no material, but check all of the slots diff --git a/source/blender/collada/MaterialExporter.h b/source/blender/collada/MaterialExporter.h index eb7886c23b9..4a5422184d4 100644 --- a/source/blender/collada/MaterialExporter.h +++ b/source/blender/collada/MaterialExporter.h @@ -68,7 +68,7 @@ public: void operator ()(Object *ob) { int a; - for(a = 0; a < ob->totcol; a++) { + for (a = 0; a < ob->totcol; a++) { Material *ma = give_current_material(ob, a+1); diff --git a/source/blender/collada/MeshImporter.cpp b/source/blender/collada/MeshImporter.cpp index 5c01c31bd0d..0bf33206fa7 100644 --- a/source/blender/collada/MeshImporter.cpp +++ b/source/blender/collada/MeshImporter.cpp @@ -116,7 +116,7 @@ UVDataWrapper::UVDataWrapper(COLLADAFW::MeshVertexData& vdata) : mVData(&vdata) void WVDataWrapper::print() { fprintf(stderr, "UVs:\n"); - switch(mVData->getType()) { + switch (mVData->getType()) { case COLLADAFW::MeshVertexData::DATA_TYPE_FLOAT: { COLLADAFW::ArrayPrimitiveType* values = mVData->getFloatValues(); @@ -147,7 +147,7 @@ void UVDataWrapper::getUV(int uv_index, float *uv) int stride = mVData->getStride(0); if (stride==0) stride = 2; - switch(mVData->getType()) { + switch (mVData->getType()) { case COLLADAFW::MeshVertexData::DATA_TYPE_FLOAT: { COLLADAFW::ArrayPrimitiveType* values = mVData->getFloatValues(); @@ -676,7 +676,7 @@ void MeshImporter::get_vector(float v[3], COLLADAFW::MeshVertexData& arr, int i, { i *= stride; - switch(arr.getType()) { + switch (arr.getType()) { case COLLADAFW::MeshVertexData::DATA_TYPE_FLOAT: { COLLADAFW::ArrayPrimitiveType* values = arr.getFloatValues(); @@ -797,7 +797,7 @@ MTFace *MeshImporter::assign_material_to_geom(COLLADAFW::MaterialBinding cmateri // what we already have handled. std::multimap::iterator it; it=materials_mapped_to_geom.find(*geom_uid); - while(it!=materials_mapped_to_geom.end()) { + while (it!=materials_mapped_to_geom.end()) { if (it->second == ma_uid && it->first == *geom_uid) return NULL; // do nothing if already found it++; } diff --git a/source/blender/collada/SceneExporter.cpp b/source/blender/collada/SceneExporter.cpp index 9010fd5062a..cd36267fd56 100644 --- a/source/blender/collada/SceneExporter.cpp +++ b/source/blender/collada/SceneExporter.cpp @@ -43,12 +43,12 @@ void SceneExporter::exportScene(Scene *sce) void SceneExporter::exportHierarchy(Scene *sce) { Base *base= (Base*) sce->base.first; - while(base) { + while (base) { Object *ob = base->object; if (!ob->parent) { if (sce->lay & ob->lay) { - switch(ob->type) { + switch (ob->type) { case OB_MESH: case OB_CAMERA: case OB_LAMP: @@ -81,12 +81,12 @@ void SceneExporter::writeNodes(Object *ob, Scene *sce) // list child objects Base *b = (Base*) sce->base.first; - while(b) { + while (b) { // cob - child object Object *cob = b->object; if (cob->parent == ob) { - switch(cob->type) { + switch (cob->type) { case OB_MESH: case OB_CAMERA: case OB_LAMP: @@ -154,8 +154,7 @@ void SceneExporter::writeNodes(Object *ob, Scene *sce) } } - for (std::list::iterator i= child_objects.begin(); i != child_objects.end(); ++i) - { + for (std::list::iterator i= child_objects.begin(); i != child_objects.end(); ++i) { writeNodes(*i, sce); } diff --git a/source/blender/collada/TransformReader.cpp b/source/blender/collada/TransformReader.cpp index a73d5243624..4c7fde8ef17 100644 --- a/source/blender/collada/TransformReader.cpp +++ b/source/blender/collada/TransformReader.cpp @@ -43,7 +43,7 @@ void TransformReader::get_node_mat(float mat[][4], COLLADAFW::Node *node, std::m COLLADAFW::Transformation *tm = node->getTransformations()[i]; COLLADAFW::Transformation::TransformationType type = tm->getTransformationType(); - switch(type) { + switch (type) { case COLLADAFW::Transformation::TRANSLATE: dae_translate_to_mat4(tm, cur); break; diff --git a/source/blender/collada/TransformWriter.cpp b/source/blender/collada/TransformWriter.cpp index f441833233c..f96aff8aa90 100644 --- a/source/blender/collada/TransformWriter.cpp +++ b/source/blender/collada/TransformWriter.cpp @@ -95,19 +95,16 @@ void TransformWriter::add_node_transform_ob(COLLADASW::Node& node, Object *ob) */ /* Using parentinv should allow use of existing curves */ - if (ob->parent) - { + if (ob->parent) { // If parentinv is identity don't add it. bool add_parinv = false; - for (int i = 0; i < 16; ++i) - { + for (int i = 0; i < 16; ++i) { float f = (i % 4 == i / 4) ? 1.0f : 0.0f; add_parinv |= (ob->parentinv[i % 4][i / 4] != f); } - if (add_parinv) - { + if (add_parinv) { double dmat[4][4]; UnitConverter converter; converter.mat4_to_dae_double(dmat, ob->parentinv); diff --git a/source/blender/collada/collada_internal.cpp b/source/blender/collada/collada_internal.cpp index fc4093bd795..fa99d460184 100644 --- a/source/blender/collada/collada_internal.cpp +++ b/source/blender/collada/collada_internal.cpp @@ -40,7 +40,7 @@ void UnitConverter::read_asset(const COLLADAFW::FileInfo* asset) UnitConverter::UnitSystem UnitConverter::isMetricSystem() { - switch(unit.getLinearUnitUnit()) { + switch (unit.getLinearUnitUnit()) { case COLLADAFW::FileInfo::Unit::MILLIMETER: case COLLADAFW::FileInfo::Unit::CENTIMETER: case COLLADAFW::FileInfo::Unit::DECIMETER: @@ -198,44 +198,39 @@ void clear_global_id_map() /** Look at documentation of translate_map */ std::string translate_id(const std::string &id) { - if (id.size() == 0) - { return id; } + if (id.size() == 0) { + return id; + } + std::string id_translated = id; id_translated[0] = translate_start_name_map[(unsigned int)id_translated[0]]; - for (unsigned int i=1; i < id_translated.size(); i++) - { + for (unsigned int i=1; i < id_translated.size(); i++) { id_translated[i] = translate_name_map[(unsigned int)id_translated[i]]; } // It's so much workload now, the if () should speed up things. - if (id_translated != id) - { + if (id_translated != id) { // Search duplicates map_string_list::iterator iter = global_id_map.find(id_translated); - if (iter != global_id_map.end()) - { + if (iter != global_id_map.end()) { unsigned int i = 0; bool found = false; - for (i=0; i < iter->second.size(); i++) - { - if (id == iter->second[i]) - { + for (i=0; i < iter->second.size(); i++) { + if (id == iter->second[i]) { found = true; break; } } bool convert = false; - if (found) - { - if (i > 0) - { convert = true; } + if (found) { + if (i > 0) { + convert = true; + } } - else - { + else { convert = true; global_id_map[id_translated].push_back(id); } - if (convert) - { + if (convert) { std::stringstream out; out << ++i; id_translated += out.str(); @@ -279,7 +274,7 @@ std::string get_material_id(Material *mat) bool has_object_type(Scene *sce, short obtype) { Base *base= (Base*) sce->base.first; - while(base) { + while (base) { Object *ob = base->object; if (ob->type == obtype && ob->data) { diff --git a/source/blender/editors/animation/anim_channels_defines.c b/source/blender/editors/animation/anim_channels_defines.c index 01ab36133fd..8aafdc6ab40 100644 --- a/source/blender/editors/animation/anim_channels_defines.c +++ b/source/blender/editors/animation/anim_channels_defines.c @@ -98,10 +98,10 @@ /* Draw Backdrop ---------------------------------- */ /* get backdrop color for top-level widgets (Scene and Object only) */ -static void acf_generic_root_color(bAnimContext *UNUSED(ac), bAnimListElem *UNUSED(ale), float *color) +static void acf_generic_root_color(bAnimContext *UNUSED(ac), bAnimListElem *UNUSED(ale), float r_color[3]) { /* darker blue for top-level widgets */ - UI_GetThemeColor3fv(TH_DOPESHEET_CHANNELOB, color); + UI_GetThemeColor3fv(TH_DOPESHEET_CHANNELOB, r_color); } /* backdrop for top-level widgets (Scene and Object only) */ @@ -124,10 +124,10 @@ static void acf_generic_root_backdrop(bAnimContext *ac, bAnimListElem *ale, floa /* get backdrop color for data expanders under top-level Scene/Object */ -static void acf_generic_dataexpand_color(bAnimContext *UNUSED(ac), bAnimListElem *UNUSED(ale), float *color) +static void acf_generic_dataexpand_color(bAnimContext *UNUSED(ac), bAnimListElem *UNUSED(ale), float r_color[3]) { /* lighter color than top-level widget */ - UI_GetThemeColor3fv(TH_DOPESHEET_CHANNELSUBOB, color); + UI_GetThemeColor3fv(TH_DOPESHEET_CHANNELSUBOB, r_color); } /* backdrop for data expanders under top-level Scene/Object */ @@ -147,7 +147,7 @@ static void acf_generic_dataexpand_backdrop(bAnimContext *ac, bAnimListElem *ale } /* get backdrop color for generic channels */ -static void acf_generic_channel_color(bAnimContext *ac, bAnimListElem *ale, float *color) +static void acf_generic_channel_color(bAnimContext *ac, bAnimListElem *ale, float r_color[3]) { bAnimChannelType *acf= ANIM_channel_get_typeinfo(ale); SpaceAction *saction = NULL; @@ -183,12 +183,12 @@ static void acf_generic_channel_color(bAnimContext *ac, bAnimListElem *ale, floa } /* copy the colors over, transforming from bytes to floats */ - rgb_uchar_to_float(color, cp); + rgb_uchar_to_float(r_color, cp); } else { // FIXME: what happens when the indention is 1 greater than what it should be (due to grouping)? int colOfs= 20 - 20*indent; - UI_GetThemeColorShade3fv(TH_HEADER, colOfs, color); + UI_GetThemeColorShade3fv(TH_HEADER, colOfs, r_color); } } @@ -374,13 +374,13 @@ static short acf_generic_dataexpand_setting_valid(bAnimContext *ac, bAnimListEle /* Animation Summary ----------------------------------- */ /* get backdrop color for summary widget */ -static void acf_summary_color(bAnimContext *UNUSED(ac), bAnimListElem *UNUSED(ale), float *color) +static void acf_summary_color(bAnimContext *UNUSED(ac), bAnimListElem *UNUSED(ale), float r_color[3]) { // FIXME: hardcoded color - same as the 'action' line in NLA // reddish color - color[0] = 0.8f; - color[1] = 0.2f; - color[2] = 0.0f; + r_color[0] = 0.8f; + r_color[1] = 0.2f; + r_color[2] = 0.0f; } /* backdrop for summary widget */ @@ -730,13 +730,13 @@ static bAnimChannelType ACF_OBJECT = /* Group ------------------------------------------- */ /* get backdrop color for group widget */ -static void acf_group_color(bAnimContext *UNUSED(ac), bAnimListElem *ale, float *color) +static void acf_group_color(bAnimContext *UNUSED(ac), bAnimListElem *ale, float r_color[3]) { /* highlight only for action group channels */ if (ale->flag & AGRP_ACTIVE) - UI_GetThemeColorShade3fv(TH_GROUP_ACTIVE, 10, color); + UI_GetThemeColorShade3fv(TH_GROUP_ACTIVE, 10, r_color); else - UI_GetThemeColorShade3fv(TH_GROUP, 20, color); + UI_GetThemeColorShade3fv(TH_GROUP, 20, r_color); } /* backdrop for group widget */ @@ -1427,7 +1427,7 @@ static bAnimChannelType ACF_DSCAM= static int acf_dscur_icon(bAnimListElem *ale) { Curve *cu= (Curve *)ale->data; - short obtype= curve_type(cu); + short obtype= BKE_curve_type_get(cu); switch (obtype) { case OB_FONT: @@ -2322,10 +2322,10 @@ static bAnimChannelType ACF_SHAPEKEY= /* GPencil Datablock ------------------------------------------- */ /* get backdrop color for gpencil datablock widget */ -static void acf_gpd_color(bAnimContext *UNUSED(ac), bAnimListElem *UNUSED(ale), float *color) +static void acf_gpd_color(bAnimContext *UNUSED(ac), bAnimListElem *UNUSED(ale), float r_color[3]) { /* these are ID-blocks, but not exactly standalone... */ - UI_GetThemeColorShade3fv(TH_DOPESHEET_CHANNELSUBOB, 20, color); + UI_GetThemeColorShade3fv(TH_DOPESHEET_CHANNELSUBOB, 20, r_color); } // TODO: just get this from RNA? @@ -3043,7 +3043,8 @@ static void achannel_setting_slider_shapekey_cb(bContext *C, void *key_poin, voi } /* Draw a widget for some setting */ -static void draw_setting_widget (bAnimContext *ac, bAnimListElem *ale, bAnimChannelType *acf, uiBlock *block, int xpos, int ypos, int setting) +static void draw_setting_widget(bAnimContext *ac, bAnimListElem *ale, bAnimChannelType *acf, + uiBlock *block, int xpos, int ypos, int setting) { short negflag, ptrsize /* , enabled */ /* UNUSED */, butType; int flag, icon; @@ -3222,7 +3223,8 @@ void ANIM_channel_draw_widgets (bContext *C, bAnimContext *ac, bAnimListElem *al uiBlockSetEmboss(block, UI_EMBOSS); - but = uiDefButR(block, TEX, 1, "", offset+3, yminc, RENAME_TEXT_WIDTH, channel_height, &ptr, RNA_property_identifier(prop), -1, 0, 0, -1, -1, NULL); + but = uiDefButR(block, TEX, 1, "", offset+3, yminc, RENAME_TEXT_WIDTH, channel_height, + &ptr, RNA_property_identifier(prop), -1, 0, 0, -1, -1, NULL); uiButSetFunc(but, achannel_setting_rename_done_cb, ac->ads, NULL); uiButActiveOnly(C, block, but); diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c index e5822c76fa1..922156ebb7a 100644 --- a/source/blender/editors/animation/anim_filter.c +++ b/source/blender/editors/animation/anim_filter.c @@ -992,8 +992,7 @@ static size_t animfilter_fcurves (ListBase *anim_data, bDopeSheet *ads, FCurve * * 4) the fcu pointer is set to the F-Curve after the one we just added, so that we can keep going through * the rest of the F-Curve list without an eternal loop. Back to step 2 :) */ - for (fcu=first; ( (fcu = animfilter_fcurve_next(ads, fcu, grp, filter_mode, owner_id)) ); fcu=fcu->next) - { + for (fcu = first; ( (fcu = animfilter_fcurve_next(ads, fcu, grp, filter_mode, owner_id)) ); fcu = fcu->next) { ANIMCHANNEL_NEW_CHANNEL(fcu, ANIMTYPE_FCURVE, owner_id); } diff --git a/source/blender/editors/animation/anim_markers.c b/source/blender/editors/animation/anim_markers.c index 73dba91207f..94d9d426932 100644 --- a/source/blender/editors/animation/anim_markers.c +++ b/source/blender/editors/animation/anim_markers.c @@ -745,7 +745,7 @@ static int ed_marker_move_modal(bContext *C, wmOperator *op, wmEvent *evt) float dx, fac; char str[256]; - switch(evt->type) { + switch (evt->type) { case ESCKEY: ed_marker_move_cancel(C, op); return OPERATOR_CANCELLED; diff --git a/source/blender/editors/animation/keyframing.c b/source/blender/editors/animation/keyframing.c index 47972ca2c6f..dcaa4073bae 100644 --- a/source/blender/editors/animation/keyframing.c +++ b/source/blender/editors/animation/keyframing.c @@ -1353,8 +1353,7 @@ static int delete_key_v3d_exec (bContext *C, wmOperator *op) float cfra= (float)CFRA; // XXX for now, don't bother about all the yucky offset crap // XXX more comprehensive tests will be needed - CTX_DATA_BEGIN(C, Object*, ob, selected_objects) - { + CTX_DATA_BEGIN (C, Object*, ob, selected_objects) { ID *id= (ID *)ob; FCurve *fcu, *fcn; short success= 0; diff --git a/source/blender/editors/armature/editarmature.c b/source/blender/editors/armature/editarmature.c index cc3d0c6e184..cd698bbf09f 100644 --- a/source/blender/editors/armature/editarmature.c +++ b/source/blender/editors/armature/editarmature.c @@ -755,8 +755,7 @@ static int pose_visual_transform_apply_exec (bContext *C, wmOperator *UNUSED(op) * * TODO, loop over children before parents if multiple bones * at once are to be predictable*/ - CTX_DATA_BEGIN(C, bPoseChannel *, pchan, selected_pose_bones) - { + CTX_DATA_BEGIN (C, bPoseChannel *, pchan, selected_pose_bones) { float delta_mat[4][4]; /* chan_mat already contains the delta transform from rest pose to pose-mode pose @@ -922,7 +921,7 @@ int join_armature_exec(bContext *C, wmOperator *UNUSED(op)) pose= ob->pose; ob->mode &= ~OB_MODE_POSE; - CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) { + CTX_DATA_BEGIN (C, Base*, base, selected_editable_bases) { if ((base->object->type==OB_ARMATURE) && (base->object!=ob)) { bArmature *curarm= base->object->data; @@ -1193,7 +1192,7 @@ static int separate_armature_exec (bContext *C, wmOperator *UNUSED(op)) /* 1) only edit-base selected */ // TODO: use context iterators for this? - CTX_DATA_BEGIN(C, Base *, base, visible_bases) { + CTX_DATA_BEGIN (C, Base *, base, visible_bases) { if (base->object==obedit) base->flag |= 1; else base->flag &= ~1; } @@ -2458,8 +2457,7 @@ void preEditBoneDuplicate(ListBase *editbones) EditBone *eBone; /* clear temp */ - for (eBone = editbones->first; eBone; eBone = eBone->next) - { + for (eBone = editbones->first; eBone; eBone = eBone->next) { eBone->temp = NULL; } } @@ -2817,8 +2815,7 @@ static int armature_fill_bones_exec (bContext *C, wmOperator *op) return OPERATOR_CANCELLED; /* loop over all bones, and only consider if visible */ - CTX_DATA_BEGIN(C, EditBone *, ebone, visible_bones) - { + CTX_DATA_BEGIN (C, EditBone *, ebone, visible_bones) { if (!(ebone->flag & BONE_CONNECTED) && (ebone->flag & BONE_ROOTSEL)) fill_add_joint(ebone, 0, &points); if (ebone->flag & BONE_TIPSEL) @@ -3531,8 +3528,7 @@ static int armature_subdivide_exec(bContext *C, wmOperator *op) /* loop over all editable bones */ // XXX the old code did this in reverse order though! - CTX_DATA_BEGIN(C, EditBone *, ebone, selected_editable_bones) - { + CTX_DATA_BEGIN (C, EditBone *, ebone, selected_editable_bones) { for (i=numcuts+1; i>1; i--) { /* compute cut ratio first */ float cutratio= 1.0f / (float)i; @@ -3820,7 +3816,7 @@ static int armature_parent_set_exec(bContext *C, wmOperator *op) */ /* parent selected bones to the active one */ - CTX_DATA_BEGIN(C, EditBone *, ebone, selected_editable_bones) { + CTX_DATA_BEGIN (C, EditBone *, ebone, selected_editable_bones) { if (ELEM(ebone, actbone, actmirb) == 0) { if (ebone->flag & BONE_SELECTED) bone_connect_to_new_parent(arm->edbo, ebone, actbone, val); @@ -3845,7 +3841,7 @@ static int armature_parent_set_invoke(bContext *C, wmOperator *UNUSED(op), wmEve uiLayout *layout= uiPupMenuLayout(pup); int allchildbones = 0; - CTX_DATA_BEGIN(C, EditBone *, ebone, selected_editable_bones) { + CTX_DATA_BEGIN (C, EditBone *, ebone, selected_editable_bones) { if (ebone != actbone) { if (ebone->parent != actbone) allchildbones= 1; } @@ -3904,7 +3900,7 @@ static int armature_parent_clear_exec(bContext *C, wmOperator *op) bArmature *arm= (bArmature *)ob->data; int val = RNA_enum_get(op->ptr, "type"); - CTX_DATA_BEGIN(C, EditBone *, ebone, selected_editable_bones) { + CTX_DATA_BEGIN (C, EditBone *, ebone, selected_editable_bones) { editbone_clear_parent(ebone, val); } CTX_DATA_END; @@ -3940,7 +3936,7 @@ void ARMATURE_OT_parent_clear(wmOperatorType *ot) static int armature_select_inverse_exec(bContext *C, wmOperator *UNUSED(op)) { /* Set the flags */ - CTX_DATA_BEGIN(C, EditBone *, ebone, visible_bones) { + CTX_DATA_BEGIN (C, EditBone *, ebone, visible_bones) { /* ignore bone if selection can't change */ if ((ebone->flag & BONE_UNSELECTABLE) == 0) { /* select bone */ @@ -3982,7 +3978,7 @@ static int armature_de_select_all_exec(bContext *C, wmOperator *op) } /* Set the flags */ - CTX_DATA_BEGIN(C, EditBone *, ebone, visible_bones) { + CTX_DATA_BEGIN (C, EditBone *, ebone, visible_bones) { /* ignore bone if selection can't change */ if ((ebone->flag & BONE_UNSELECTABLE) == 0) { switch (action) { @@ -4216,7 +4212,7 @@ static int armature_align_bones_exec(bContext *C, wmOperator *op) */ /* align selected bones to the active one */ - CTX_DATA_BEGIN(C, EditBone *, ebone, selected_editable_bones) { + CTX_DATA_BEGIN (C, EditBone *, ebone, selected_editable_bones) { if (ELEM(ebone, actbone, actmirb) == 0) { if (ebone->flag & BONE_SELECTED) bone_align_to_bone(arm->edbo, ebone, actbone); @@ -4905,8 +4901,7 @@ static int pose_clear_transform_generic_exec(bContext *C, wmOperator *op, } /* only clear relevant transforms for selected bones */ - CTX_DATA_BEGIN(C, bPoseChannel*, pchan, selected_pose_bones) - { + CTX_DATA_BEGIN (C, bPoseChannel*, pchan, selected_pose_bones) { /* run provided clearing function */ clear_func(pchan); @@ -5047,7 +5042,7 @@ static int pose_de_select_all_exec(bContext *C, wmOperator *op) } /* Set the flags */ - CTX_DATA_BEGIN(C, bPoseChannel *, pchan, visible_pose_bones) { + CTX_DATA_BEGIN (C, bPoseChannel *, pchan, visible_pose_bones) { /* select pchan only if selectable, but deselect works always */ switch (action) { case SEL_SELECT: @@ -5436,8 +5431,7 @@ static int armature_flip_names_exec (bContext *C, wmOperator *UNUSED(op)) arm= ob->data; /* loop through selected bones, auto-naming them */ - CTX_DATA_BEGIN(C, EditBone *, ebone, selected_editable_bones) - { + CTX_DATA_BEGIN (C, EditBone *, ebone, selected_editable_bones) { flip_side_name(newname, ebone->name, TRUE); // 1 = do strip off number extensions ED_armature_bone_rename(arm, ebone->name, newname); } @@ -5481,8 +5475,7 @@ static int armature_autoside_names_exec (bContext *C, wmOperator *op) arm= ob->data; /* loop through selected bones, auto-naming them */ - CTX_DATA_BEGIN(C, EditBone *, ebone, selected_editable_bones) - { + CTX_DATA_BEGIN (C, EditBone *, ebone, selected_editable_bones) { BLI_strncpy(newname, ebone->name, sizeof(newname)); if (bone_autoside_name(newname, 1, axis, ebone->head[axis], ebone->tail[axis])) ED_armature_bone_rename(arm, ebone->name, newname); @@ -5800,7 +5793,7 @@ void generateSkeletonFromReebGraph(Scene *scene, ReebGraph *rg) /* Loop over subdivision methods */ for (i = 0; lastBone == NULL && i < SKGEN_SUB_TOTAL; i++) { - switch(scene->toolsettings->skgen_subdivisions[i]) { + switch (scene->toolsettings->skgen_subdivisions[i]) { case SKGEN_SUB_LENGTH: lastBone = test_subdivideByLength(scene, obedit, arc, head, tail); break; diff --git a/source/blender/editors/armature/editarmature_generate.c b/source/blender/editors/armature/editarmature_generate.c index 37d095221c9..5b56f5fe7fe 100644 --- a/source/blender/editors/armature/editarmature_generate.c +++ b/source/blender/editors/armature/editarmature_generate.c @@ -52,8 +52,7 @@ void setBoneRollFromNormal(EditBone *bone, float *no, float UNUSED(invmat[][4]), float tmat[][3]) { - if (no != NULL && !is_zero_v3(no)) - { + if (no != NULL && !is_zero_v3(no)) { float normal[3]; copy_v3_v3(normal, no); @@ -67,16 +66,14 @@ float calcArcCorrelation(BArcIterator *iter, int start, int end, float v0[3], fl { int len = 2 + abs(end - start); - if (len > 2) - { + if (len > 2) { float avg_t = 0.0f; float s_t = 0.0f; float s_xyz = 0.0f; int i; /* First pass, calculate average */ - for (i = start; i <= end; i++) - { + for (i = start; i <= end; i++) { float v[3]; IT_peek(iter, i); @@ -89,8 +86,7 @@ float calcArcCorrelation(BArcIterator *iter, int start, int end, float v0[3], fl avg_t /= len; /* Second pass, calculate s_xyz and s_t */ - for (i = start; i <= end; i++) - { + for (i = start; i <= end; i++) { float v[3], d[3]; float dt; @@ -110,8 +106,7 @@ float calcArcCorrelation(BArcIterator *iter, int start, int end, float v0[3], fl return 1.0f - s_xyz / s_t; } - else - { + else { return 1.0f; } } @@ -125,15 +120,13 @@ int nextFixedSubdivision(ToolSettings *toolsettings, BArcIterator *iter, int sta float length_threshold; int i; - if (stroke_length == 0) - { + if (stroke_length == 0) { current_length = 0; IT_peek(iter, start); v1 = iter->p; - for (i = start + 1; i <= end; i++) - { + for (i = start + 1; i <= end; i++) { IT_peek(iter, i); v2 = iter->p; @@ -154,8 +147,7 @@ int nextFixedSubdivision(ToolSettings *toolsettings, BArcIterator *iter, int sta v1 = iter->p; /* < and not <= because we don't care about end, it is P_EXACT anyway */ - for (i = start + 1; i < end; i++) - { + for (i = start + 1; i < end; i++) { IT_peek(iter, i); v2 = iter->p; @@ -183,8 +175,7 @@ int nextAdaptativeSubdivision(ToolSettings *toolsettings, BArcIterator *iter, in IT_peek(iter, start); start_p = iter->p; - for (i = start + 2; i <= end; i++) - { + for (i = start + 2; i <= end; i++) { /* Calculate normal */ IT_peek(iter, i); sub_v3_v3v3(n, iter->p, head); @@ -206,8 +197,7 @@ int nextLengthSubdivision(ToolSettings *toolsettings, BArcIterator *iter, int st int i; i = start + 1; - while (i <= end) - { + while (i <= end) { float *vec0; float *vec1; @@ -218,10 +208,8 @@ int nextLengthSubdivision(ToolSettings *toolsettings, BArcIterator *iter, int st vec1 = iter->p; /* If lengthLimit hits the current segment */ - if (len_v3v3(vec1, head) > lengthLimit) - { - if (same == 0) - { + if (len_v3v3(vec1, head) > lengthLimit) { + if (same == 0) { float dv[3], off[3]; float a, b, c, f; @@ -260,8 +248,7 @@ int nextLengthSubdivision(ToolSettings *toolsettings, BArcIterator *iter, int st return i - 1; /* restart at lower bound */ } - else - { + else { i++; same = 0; // Reset same } @@ -286,16 +273,14 @@ EditBone * subdivideArcBy(ToolSettings *toolsettings, bArmature *arm, ListBase * parent = ED_armature_edit_bone_add(arm, "Bone"); copy_v3_v3(parent->head, iter->p); - if (iter->size > 0) - { + if (iter->size > 0) { parent->rad_head = iter->size * size_buffer; } normal = iter->no; index = next_subdividion(toolsettings, iter, bone_start, end, parent->head, parent->tail); - while (index != -1) - { + while (index != -1) { IT_peek(iter, index); child = ED_armature_edit_bone_add(arm, "Bone"); @@ -303,8 +288,7 @@ EditBone * subdivideArcBy(ToolSettings *toolsettings, bArmature *arm, ListBase * child->parent = parent; child->flag |= BONE_CONNECTED; - if (iter->size > 0) - { + if (iter->size > 0) { child->rad_head = iter->size * size_buffer; parent->rad_tail = iter->size * size_buffer; } diff --git a/source/blender/editors/armature/editarmature_retarget.c b/source/blender/editors/armature/editarmature_retarget.c index f554b7b1c50..77b035024a9 100644 --- a/source/blender/editors/armature/editarmature_retarget.c +++ b/source/blender/editors/armature/editarmature_retarget.c @@ -119,10 +119,8 @@ static int countEditBoneChildren(ListBase *list, EditBone *parent) EditBone *ebone; int count = 0; - for (ebone = list->first; ebone; ebone = ebone->next) - { - if (ebone->parent == parent) - { + for (ebone = list->first; ebone; ebone = ebone->next) { + if (ebone->parent == parent) { count++; } } @@ -134,12 +132,9 @@ static EditBone* nextEditBoneChild(ListBase *list, EditBone *parent, int n) { EditBone *ebone; - for (ebone = list->first; ebone; ebone = ebone->next) - { - if (ebone->parent == parent) - { - if (n == 0) - { + for (ebone = list->first; ebone; ebone = ebone->next) { + if (ebone->parent == parent) { + if (n == 0) { return ebone; } n--; @@ -175,23 +170,19 @@ static float rollBoneByQuatAligned(EditBone *bone, float old_up_axis[3], float q normalize_v3(x_axis); normalize_v3(z_axis); - if (dot_v3v3(new_up_axis, x_axis) < 0) - { + if (dot_v3v3(new_up_axis, x_axis) < 0) { negate_v3(x_axis); } - if (dot_v3v3(new_up_axis, z_axis) < 0) - { + if (dot_v3v3(new_up_axis, z_axis) < 0) { negate_v3(z_axis); } - if (angle_normalized_v3v3(x_axis, new_up_axis) < angle_normalized_v3v3(z_axis, new_up_axis)) - { + if (angle_normalized_v3v3(x_axis, new_up_axis) < angle_normalized_v3v3(z_axis, new_up_axis)) { rotation_between_vecs_to_quat(qroll, new_up_axis, x_axis); /* set roll rotation quat */ return ED_rollBoneToVector(bone, x_axis, FALSE); } - else - { + else { rotation_between_vecs_to_quat(qroll, new_up_axis, z_axis); /* set roll rotation quat */ return ED_rollBoneToVector(bone, z_axis, FALSE); } @@ -199,26 +190,21 @@ static float rollBoneByQuatAligned(EditBone *bone, float old_up_axis[3], float q static float rollBoneByQuatJoint(RigEdge *edge, RigEdge *previous, float qrot[4], float qroll[4], float up_axis[3]) { - if (previous == NULL) - { + if (previous == NULL) { /* default to up_axis if no previous */ return rollBoneByQuatAligned(edge->bone, edge->up_axis, qrot, qroll, up_axis); } - else - { + else { float new_up_axis[3]; float vec_first[3], vec_second[3], normal[3]; - if (previous->bone) - { + if (previous->bone) { sub_v3_v3v3(vec_first, previous->bone->tail, previous->bone->head); } - else if (previous->prev->bone) - { + else if (previous->prev->bone) { sub_v3_v3v3(vec_first, edge->bone->head, previous->prev->bone->tail); } - else - { + else { /* default to up_axis if first bone in the chain is an offset */ return rollBoneByQuatAligned(edge->bone, edge->up_axis, qrot, qroll, up_axis); } @@ -274,19 +260,16 @@ void RIG_freeRigGraph(BGraph *rg) BLI_destroy_worker(rigg->worker); #endif - if (rigg->link_mesh) - { + if (rigg->link_mesh) { REEB_freeGraph(rigg->link_mesh); } - for (arc = rg->arcs.first; arc; arc = arc->next) - { + for (arc = rg->arcs.first; arc; arc = arc->next) { RIG_freeRigArc(arc); } BLI_freelistN(&rg->arcs); - for (node = rg->nodes.first; node; node = node->next) - { + for (node = rg->nodes.first; node; node = node->next) { BLI_freeNode(rg, (BNode*)node); } BLI_freelistN(&rg->nodes); @@ -296,8 +279,7 @@ void RIG_freeRigGraph(BGraph *rg) BLI_ghash_free(rigg->bones_map, NULL, NULL); BLI_ghash_free(rigg->controls_map, NULL, NULL); - if (rigg->flag & RIG_FREE_BONELIST) - { + if (rigg->flag & RIG_FREE_BONELIST) { BLI_freelistN(rigg->editbones); MEM_freeN(rigg->editbones); } @@ -409,12 +391,10 @@ static void RIG_appendEdgeToArc(RigArc *arc, RigEdge *edge) { BLI_addtail(&arc->edges, edge); - if (edge->prev == NULL) - { + if (edge->prev == NULL) { copy_v3_v3(edge->head, arc->head->p); } - else - { + else { RigEdge *last_edge = edge->prev; copy_v3_v3(edge->head, last_edge->tail); RIG_calculateEdgeAngles(last_edge, edge); @@ -436,8 +416,7 @@ static void RIG_addEdgeToArc(RigArc *arc, float tail[3], EditBone *bone) copy_v3_v3(edge->tail, tail); edge->bone = bone; - if (bone) - { + if (bone) { getEditBoneRollUpAxis(bone, bone->roll, edge->up_axis); } @@ -449,28 +428,22 @@ static void renameTemplateBone(char *name, char *template_name, ListBase *editbo { int i, j; - for (i = 0, j = 0; i < (MAXBONENAME-1) && j < (MAXBONENAME-1) && template_name[i] != '\0'; i++) - { - if (template_name[i] == '&') - { - if (template_name[i+1] == 'S' || template_name[i+1] == 's') - { + for (i = 0, j = 0; i < (MAXBONENAME-1) && j < (MAXBONENAME-1) && template_name[i] != '\0'; i++) { + if (template_name[i] == '&') { + if (template_name[i+1] == 'S' || template_name[i+1] == 's') { j += sprintf(name + j, "%s", side_string); i++; } - else if (template_name[i+1] == 'N' || template_name[i+1] == 'n') - { + else if (template_name[i+1] == 'N' || template_name[i+1] == 'n') { j += sprintf(name + j, "%s", num_string); i++; } - else - { + else { name[j] = template_name[i]; j++; } } - else - { + else { name[j] = template_name[i]; j++; } @@ -524,8 +497,7 @@ static RigArc *cloneArc(RigGraph *rg, RigGraph *src_rg, RigArc *src_arc, GHash * arc->count = src_arc->count; - for (src_edge = src_arc->edges.first; src_edge; src_edge = src_edge->next) - { + for (src_edge = src_arc->edges.first; src_edge; src_edge = src_edge->next) { RigEdge *edge; edge = MEM_callocN(sizeof(RigEdge), "rig edge"); @@ -538,8 +510,7 @@ static RigArc *cloneArc(RigGraph *rg, RigGraph *src_rg, RigArc *src_arc, GHash * edge->angle = src_edge->angle; edge->up_angle = src_edge->up_angle; - if (src_edge->bone != NULL) - { + if (src_edge->bone != NULL) { char name[MAXBONENAME]; renameTemplateBone(name, src_edge->bone->name, rg->editbones, side_string, num_string); edge->bone = duplicateEditBoneObjects(src_edge->bone, name, rg->editbones, src_rg->ob, rg->ob); @@ -572,8 +543,7 @@ static RigGraph *cloneRigGraph(RigGraph *src, ListBase *editbones, Object *ob, c preEditBoneDuplicate(src->editbones); /* prime bones for duplication */ /* Clone nodes */ - for (node = src->nodes.first; node; node = node->next) - { + for (node = src->nodes.first; node; node = node->next) { RigNode *cloned_node = newRigNode(rg, node->p); BLI_ghash_insert(ptr_hash, node, cloned_node); } @@ -581,40 +551,32 @@ static RigGraph *cloneRigGraph(RigGraph *src, ListBase *editbones, Object *ob, c rg->head = BLI_ghash_lookup(ptr_hash, src->head); /* Clone arcs */ - for (arc = src->arcs.first; arc; arc = arc->next) - { + for (arc = src->arcs.first; arc; arc = arc->next) { cloneArc(rg, src, arc, ptr_hash, side_string, num_string); } /* Clone controls */ - for (ctrl = src->controls.first; ctrl; ctrl = ctrl->next) - { + for (ctrl = src->controls.first; ctrl; ctrl = ctrl->next) { cloneControl(rg, src, ctrl, ptr_hash, side_string, num_string); } /* Relink bones properly */ - for (arc = rg->arcs.first; arc; arc = arc->next) - { + for (arc = rg->arcs.first; arc; arc = arc->next) { RigEdge *edge; - for (edge = arc->edges.first; edge; edge = edge->next) - { - if (edge->bone != NULL) - { + for (edge = arc->edges.first; edge; edge = edge->next) { + if (edge->bone != NULL) { EditBone *bone; updateDuplicateSubtargetObjects(edge->bone, src->editbones, src->ob, rg->ob); - if (edge->bone->parent) - { + if (edge->bone->parent) { bone = BLI_ghash_lookup(ptr_hash, edge->bone->parent); - if (bone != NULL) - { + if (bone != NULL) { edge->bone->parent = bone; } - else - { + else { /* disconnect since parent isn't cloned * this will only happen when cloning from selected bones * */ @@ -625,22 +587,18 @@ static RigGraph *cloneRigGraph(RigGraph *src, ListBase *editbones, Object *ob, c } } - for (ctrl = rg->controls.first; ctrl; ctrl = ctrl->next) - { + for (ctrl = rg->controls.first; ctrl; ctrl = ctrl->next) { EditBone *bone; updateDuplicateSubtargetObjects(ctrl->bone, src->editbones, src->ob, rg->ob); - if (ctrl->bone->parent) - { + if (ctrl->bone->parent) { bone = BLI_ghash_lookup(ptr_hash, ctrl->bone->parent); - if (bone != NULL) - { + if (bone != NULL) { ctrl->bone->parent = bone; } - else - { + else { /* disconnect since parent isn't cloned * this will only happen when cloning from selected bones * */ @@ -672,8 +630,7 @@ static void RIG_calculateEdgeAngles(RigEdge *edge_first, RigEdge *edge_second) edge_first->angle = angle_normalized_v3v3(vec_first, vec_second); - if (edge_second->bone != NULL) - { + if (edge_second->bone != NULL) { float normal[3]; cross_v3_v3v3(normal, vec_first, vec_second); @@ -699,16 +656,14 @@ static void RIG_addControlBone(RigGraph *rg, EditBone *bone) static int RIG_parentControl(RigControl *ctrl, EditBone *link) { - if (link) - { + if (link) { float offset[3]; int flag = 0; sub_v3_v3v3(offset, ctrl->bone->head, link->head); /* if root matches, check for direction too */ - if (dot_v3v3(offset, offset) < 0.0001f) - { + if (dot_v3v3(offset, offset) < 0.0001f) { float vbone[3], vparent[3]; flag |= RIG_CTRL_FIT_ROOT; @@ -717,45 +672,38 @@ static int RIG_parentControl(RigControl *ctrl, EditBone *link) sub_v3_v3v3(vparent, link->tail, link->head); /* test for opposite direction */ - if (dot_v3v3(vbone, vparent) > 0) - { + if (dot_v3v3(vbone, vparent) > 0) { float nor[3]; float len; cross_v3_v3v3(nor, vbone, vparent); len = dot_v3v3(nor, nor); - if (len < 0.0001f) - { + if (len < 0.0001f) { flag |= RIG_CTRL_FIT_BONE; } } } /* Bail out if old one is automatically better */ - if (flag < ctrl->flag) - { + if (flag < ctrl->flag) { return 0; } /* if there's already a link * overwrite only if new link is higher in the chain */ - if (ctrl->link && flag == ctrl->flag) - { + if (ctrl->link && flag == ctrl->flag) { EditBone *bone = NULL; - for (bone = ctrl->link; bone; bone = bone->parent) - { + for (bone = ctrl->link; bone; bone = bone->parent) { /* if link is in the chain, break and use that one */ - if (bone == link) - { + if (bone == link) { break; } } /* not in chain, don't update link */ - if (bone == NULL) - { + if (bone == NULL) { return 0; } } @@ -778,43 +726,34 @@ static void RIG_reconnectControlBones(RigGraph *rg) int change = 1; /* first pass, link to deform bones */ - for (ctrl = rg->controls.first; ctrl; ctrl = ctrl->next) - { + for (ctrl = rg->controls.first; ctrl; ctrl = ctrl->next) { bPoseChannel *pchan; bConstraint *con; int found = 0; /* DO SOME MAGIC HERE */ - for (pchan= rg->ob->pose->chanbase.first; pchan; pchan= pchan->next) - { - for (con= pchan->constraints.first; con; con= con->next) - { + for (pchan= rg->ob->pose->chanbase.first; pchan; pchan= pchan->next) { + for (con= pchan->constraints.first; con; con= con->next) { bConstraintTypeInfo *cti= constraint_get_typeinfo(con); ListBase targets = {NULL, NULL}; bConstraintTarget *ct; /* constraint targets */ - if (cti && cti->get_constraint_targets) - { + if (cti && cti->get_constraint_targets) { int target_index; cti->get_constraint_targets(con, &targets); - for (target_index = 0, ct= targets.first; ct; target_index++, ct= ct->next) - { - if ((ct->tar == rg->ob) && strcmp(ct->subtarget, ctrl->bone->name) == 0) - { + for (target_index = 0, ct= targets.first; ct; target_index++, ct= ct->next) { + if ((ct->tar == rg->ob) && strcmp(ct->subtarget, ctrl->bone->name) == 0) { /* SET bone link to bone corresponding to pchan */ EditBone *link = BLI_ghash_lookup(rg->bones_map, pchan->name); /* Making sure bone is in this armature */ - if (link != NULL) - { + if (link != NULL) { /* for pole targets, link to parent bone instead, if possible */ - if (con->type == CONSTRAINT_TYPE_KINEMATIC && target_index == 1) - { - if (link->parent && BLI_ghash_haskey(rg->bones_map, link->parent->name)) - { + if (con->type == CONSTRAINT_TYPE_KINEMATIC && target_index == 1) { + if (link->parent && BLI_ghash_haskey(rg->bones_map, link->parent->name)) { link = link->parent; } } @@ -831,10 +770,8 @@ static void RIG_reconnectControlBones(RigGraph *rg) } /* if not found yet, check parent */ - if (found == 0) - { - if (ctrl->bone->parent) - { + if (found == 0) { + if (ctrl->bone->parent) { /* make sure parent is a deforming bone * NULL if not * */ @@ -849,24 +786,19 @@ static void RIG_reconnectControlBones(RigGraph *rg) RigArc *best_arc = NULL; EditBone *link = NULL; - for (arc = rg->arcs.first; arc; arc = arc->next) - { + for (arc = rg->arcs.first; arc; arc = arc->next) { RigEdge *edge; - for (edge = arc->edges.first; edge; edge = edge->next) - { - if (edge->bone) - { + for (edge = arc->edges.first; edge; edge = edge->next) { + if (edge->bone) { int fit = 0; fit = len_v3v3(ctrl->bone->head, edge->bone->head) < 0.0001f; fit = fit || len_v3v3(ctrl->bone->tail, edge->bone->tail) < 0.0001f; - if (fit) - { + if (fit) { /* pick the bone on the arc with the lowest symmetry level * means you connect control to the trunk of the skeleton */ - if (best_arc == NULL || arc->symmetry_level < best_arc->symmetry_level) - { + if (best_arc == NULL || arc->symmetry_level < best_arc->symmetry_level) { best_arc = arc; link = edge->bone; } @@ -880,23 +812,18 @@ static void RIG_reconnectControlBones(RigGraph *rg) } /* if not found yet, check child */ - if (found == 0) - { + if (found == 0) { RigArc *arc; RigArc *best_arc = NULL; EditBone *link = NULL; - for (arc = rg->arcs.first; arc; arc = arc->next) - { + for (arc = rg->arcs.first; arc; arc = arc->next) { RigEdge *edge; - for (edge = arc->edges.first; edge; edge = edge->next) - { - if (edge->bone && edge->bone->parent == ctrl->bone) - { + for (edge = arc->edges.first; edge; edge = edge->next) { + if (edge->bone && edge->bone->parent == ctrl->bone) { /* pick the bone on the arc with the lowest symmetry level * means you connect control to the trunk of the skeleton */ - if (best_arc == NULL || arc->symmetry_level < best_arc->symmetry_level) - { + if (best_arc == NULL || arc->symmetry_level < best_arc->symmetry_level) { best_arc = arc; link = edge->bone; } @@ -911,52 +838,42 @@ static void RIG_reconnectControlBones(RigGraph *rg) /* second pass, make chains in control bones */ - while (change) - { + while (change) { change = 0; - for (ctrl = rg->controls.first; ctrl; ctrl = ctrl->next) - { + for (ctrl = rg->controls.first; ctrl; ctrl = ctrl->next) { /* if control is not linked yet */ - if (ctrl->link == NULL) - { + if (ctrl->link == NULL) { bPoseChannel *pchan; bConstraint *con; RigControl *ctrl_parent = NULL; RigControl *ctrl_child; int found = 0; - if (ctrl->bone->parent) - { + if (ctrl->bone->parent) { ctrl_parent = BLI_ghash_lookup(rg->controls_map, ctrl->bone->parent->name); } /* check constraints first */ /* DO SOME MAGIC HERE */ - for (pchan= rg->ob->pose->chanbase.first; pchan; pchan= pchan->next) - { - for (con= pchan->constraints.first; con; con= con->next) - { + for (pchan= rg->ob->pose->chanbase.first; pchan; pchan= pchan->next) { + for (con= pchan->constraints.first; con; con= con->next) { bConstraintTypeInfo *cti= constraint_get_typeinfo(con); ListBase targets = {NULL, NULL}; bConstraintTarget *ct; /* constraint targets */ - if (cti && cti->get_constraint_targets) - { + if (cti && cti->get_constraint_targets) { cti->get_constraint_targets(con, &targets); - for (ct= targets.first; ct; ct= ct->next) - { - if ((ct->tar == rg->ob) && strcmp(ct->subtarget, ctrl->bone->name) == 0) - { + for (ct= targets.first; ct; ct= ct->next) { + if ((ct->tar == rg->ob) && strcmp(ct->subtarget, ctrl->bone->name) == 0) { /* SET bone link to ctrl corresponding to pchan */ RigControl *link = BLI_ghash_lookup(rg->controls_map, pchan->name); /* if owner is a control bone, link with it */ - if (link && link->link) - { + if (link && link->link) { RIG_parentControl(ctrl, link->bone); found = 1; break; @@ -970,22 +887,17 @@ static void RIG_reconnectControlBones(RigGraph *rg) } } - if (found == 0) - { + if (found == 0) { /* check if parent is already linked */ - if (ctrl_parent && ctrl_parent->link) - { + if (ctrl_parent && ctrl_parent->link) { RIG_parentControl(ctrl, ctrl_parent->bone); change = 1; } - else - { + else { /* check childs */ - for (ctrl_child = rg->controls.first; ctrl_child; ctrl_child = ctrl_child->next) - { + for (ctrl_child = rg->controls.first; ctrl_child; ctrl_child = ctrl_child->next) { /* if a child is linked, link to that one */ - if (ctrl_child->link && ctrl_child->bone->parent == ctrl->bone) - { + if (ctrl_child->link && ctrl_child->bone->parent == ctrl->bone) { RIG_parentControl(ctrl, ctrl_child->bone); change = 1; break; @@ -998,31 +910,25 @@ static void RIG_reconnectControlBones(RigGraph *rg) } /* third pass, link control tails */ - for (ctrl = rg->controls.first; ctrl; ctrl = ctrl->next) - { + for (ctrl = rg->controls.first; ctrl; ctrl = ctrl->next) { /* fit bone already means full match, so skip those */ - if ((ctrl->flag & RIG_CTRL_FIT_BONE) == 0) - { + if ((ctrl->flag & RIG_CTRL_FIT_BONE) == 0) { GHashIterator ghi; /* look on deform bones first */ BLI_ghashIterator_init(&ghi, rg->bones_map); - for ( ; !BLI_ghashIterator_isDone(&ghi); BLI_ghashIterator_step(&ghi)) - { + for ( ; !BLI_ghashIterator_isDone(&ghi); BLI_ghashIterator_step(&ghi)) { EditBone *bone = (EditBone*)BLI_ghashIterator_getValue(&ghi); /* don't link with parent */ - if (bone->parent != ctrl->bone) - { - if (len_v3v3(ctrl->bone->tail, bone->head) < 0.01f) - { + if (bone->parent != ctrl->bone) { + if (len_v3v3(ctrl->bone->tail, bone->head) < 0.01f) { ctrl->tail_mode = TL_HEAD; ctrl->link_tail = bone; break; } - else if (len_v3v3(ctrl->bone->tail, bone->tail) < 0.01f) - { + else if (len_v3v3(ctrl->bone->tail, bone->tail) < 0.01f) { ctrl->tail_mode = TL_TAIL; ctrl->link_tail = bone; break; @@ -1031,8 +937,7 @@ static void RIG_reconnectControlBones(RigGraph *rg) } /* if we haven't found one yet, look in control bones */ - if (ctrl->tail_mode == TL_NONE) - { + if (ctrl->tail_mode == TL_NONE) { } } } @@ -1046,21 +951,18 @@ static void RIG_joinArcs(RigGraph *rg, RigNode *node, RigArc *joined_arc1, RigAr RigEdge *edge, *next_edge; /* ignore cases where joint is at start or end */ - if (joined_arc1->head == joined_arc2->head || joined_arc1->tail == joined_arc2->tail) - { + if (joined_arc1->head == joined_arc2->head || joined_arc1->tail == joined_arc2->tail) { return; } /* swap arcs to make sure arc1 is before arc2 */ - if (joined_arc1->head == joined_arc2->tail) - { + if (joined_arc1->head == joined_arc2->tail) { RigArc *tmp = joined_arc1; joined_arc1 = joined_arc2; joined_arc2 = tmp; } - for (edge = joined_arc2->edges.first; edge; edge = next_edge) - { + for (edge = joined_arc2->edges.first; edge; edge = next_edge) { next_edge = edge->next; RIG_appendEdgeToArc(joined_arc1, edge); @@ -1079,24 +981,18 @@ static void RIG_removeNormalNodes(RigGraph *rg) { RigNode *node, *next_node; - for (node = rg->nodes.first; node; node = next_node) - { + for (node = rg->nodes.first; node; node = next_node) { next_node = node->next; - if (node->degree == 2) - { + if (node->degree == 2) { RigArc *arc, *joined_arc1 = NULL, *joined_arc2 = NULL; - for (arc = rg->arcs.first; arc; arc = arc->next) - { - if (arc->head == node || arc->tail == node) - { - if (joined_arc1 == NULL) - { + for (arc = rg->arcs.first; arc; arc = arc->next) { + if (arc->head == node || arc->tail == node) { + if (joined_arc1 == NULL) { joined_arc1 = arc; } - else - { + else { joined_arc2 = arc; break; } @@ -1112,36 +1008,29 @@ static void RIG_removeUneededOffsets(RigGraph *rg) { RigArc *arc; - for (arc = rg->arcs.first; arc; arc = arc->next) - { + for (arc = rg->arcs.first; arc; arc = arc->next) { RigEdge *first_edge, *last_edge; first_edge = arc->edges.first; last_edge = arc->edges.last; - if (first_edge->bone == NULL) - { - if (first_edge->bone == NULL && len_v3v3(first_edge->tail, arc->head->p) <= 0.001f) - { + if (first_edge->bone == NULL) { + if (first_edge->bone == NULL && len_v3v3(first_edge->tail, arc->head->p) <= 0.001f) { BLI_remlink(&arc->edges, first_edge); MEM_freeN(first_edge); } - else if (arc->head->degree == 1) - { + else if (arc->head->degree == 1) { RigNode *new_node = (RigNode*)BLI_FindNodeByPosition((BGraph*)rg, first_edge->tail, 0.001f); - if (new_node) - { + if (new_node) { BLI_remlink(&arc->edges, first_edge); MEM_freeN(first_edge); BLI_replaceNodeInArc((BGraph*)rg, (BArc*)arc, (BNode*)new_node, (BNode*)arc->head); } - else - { + else { RigEdge *next_edge = first_edge->next; - if (next_edge) - { + if (next_edge) { BLI_remlink(&arc->edges, first_edge); MEM_freeN(first_edge); @@ -1149,57 +1038,44 @@ static void RIG_removeUneededOffsets(RigGraph *rg) } } } - else - { + else { /* check if all arc connected start with a null edge */ RigArc *other_arc; - for (other_arc = rg->arcs.first; other_arc; other_arc = other_arc->next) - { - if (other_arc != arc) - { + for (other_arc = rg->arcs.first; other_arc; other_arc = other_arc->next) { + if (other_arc != arc) { RigEdge *test_edge; - if (other_arc->head == arc->head) - { + if (other_arc->head == arc->head) { test_edge = other_arc->edges.first; - if (test_edge->bone != NULL) - { + if (test_edge->bone != NULL) { break; } } - else if (other_arc->tail == arc->head) - { + else if (other_arc->tail == arc->head) { test_edge = other_arc->edges.last; - if (test_edge->bone != NULL) - { + if (test_edge->bone != NULL) { break; } } } } - if (other_arc == NULL) - { + if (other_arc == NULL) { RigNode *new_node = (RigNode*)BLI_FindNodeByPosition((BGraph*)rg, first_edge->tail, 0.001); - if (new_node) - { + if (new_node) { /* remove null edge in other arcs too */ - for (other_arc = rg->arcs.first; other_arc; other_arc = other_arc->next) - { - if (other_arc != arc) - { + for (other_arc = rg->arcs.first; other_arc; other_arc = other_arc->next) { + if (other_arc != arc) { RigEdge *test_edge; - if (other_arc->head == arc->head) - { + if (other_arc->head == arc->head) { BLI_replaceNodeInArc((BGraph*)rg, (BArc*)other_arc, (BNode*)new_node, (BNode*)other_arc->head); test_edge = other_arc->edges.first; BLI_remlink(&other_arc->edges, test_edge); MEM_freeN(test_edge); } - else if (other_arc->tail == arc->head) - { + else if (other_arc->tail == arc->head) { BLI_replaceNodeInArc((BGraph*)rg, (BArc*)other_arc, (BNode*)new_node, (BNode*)other_arc->tail); test_edge = other_arc->edges.last; BLI_remlink(&other_arc->edges, test_edge); @@ -1212,31 +1088,25 @@ static void RIG_removeUneededOffsets(RigGraph *rg) MEM_freeN(first_edge); BLI_replaceNodeInArc((BGraph*)rg, (BArc*)arc, (BNode*)new_node, (BNode*)arc->head); } - else - { + else { RigEdge *next_edge = first_edge->next; - if (next_edge) - { + if (next_edge) { BLI_remlink(&arc->edges, first_edge); MEM_freeN(first_edge); copy_v3_v3(arc->head->p, next_edge->head); /* remove null edge in other arcs too */ - for (other_arc = rg->arcs.first; other_arc; other_arc = other_arc->next) - { - if (other_arc != arc) - { + for (other_arc = rg->arcs.first; other_arc; other_arc = other_arc->next) { + if (other_arc != arc) { RigEdge *test_edge; - if (other_arc->head == arc->head) - { + if (other_arc->head == arc->head) { test_edge = other_arc->edges.first; BLI_remlink(&other_arc->edges, test_edge); MEM_freeN(test_edge); } - else if (other_arc->tail == arc->head) - { + else if (other_arc->tail == arc->head) { test_edge = other_arc->edges.last; BLI_remlink(&other_arc->edges, test_edge); MEM_freeN(test_edge); @@ -1249,19 +1119,15 @@ static void RIG_removeUneededOffsets(RigGraph *rg) } } - if (last_edge->bone == NULL) - { - if (len_v3v3(last_edge->head, arc->tail->p) <= 0.001f) - { + if (last_edge->bone == NULL) { + if (len_v3v3(last_edge->head, arc->tail->p) <= 0.001f) { BLI_remlink(&arc->edges, last_edge); MEM_freeN(last_edge); } - else if (arc->tail->degree == 1) - { + else if (arc->tail->degree == 1) { RigNode *new_node = (RigNode*)BLI_FindNodeByPosition((BGraph*)rg, last_edge->head, 0.001f); - if (new_node) - { + if (new_node) { RigEdge *previous_edge = last_edge->prev; BLI_remlink(&arc->edges, last_edge); @@ -1269,17 +1135,14 @@ static void RIG_removeUneededOffsets(RigGraph *rg) BLI_replaceNodeInArc((BGraph*)rg, (BArc*)arc, (BNode*)new_node, (BNode*)arc->tail); /* set previous angle to 0, since there's no following edges */ - if (previous_edge) - { + if (previous_edge) { previous_edge->angle = 0; } } - else - { + else { RigEdge *previous_edge = last_edge->prev; - if (previous_edge) - { + if (previous_edge) { BLI_remlink(&arc->edges, last_edge); MEM_freeN(last_edge); @@ -1298,32 +1161,25 @@ static void RIG_arcFromBoneChain(RigGraph *rg, ListBase *list, EditBone *root_bo RigArc *arc = NULL; int contain_head = 0; - for (bone = root_bone; bone; bone = nextEditBoneChild(list, bone, 0)) - { + for (bone = root_bone; bone; bone = nextEditBoneChild(list, bone, 0)) { int nb_children; - if (selected == 0 || (bone->flag & BONE_SELECTED)) - { - if ((bone->flag & BONE_NO_DEFORM) == 0) - { + if (selected == 0 || (bone->flag & BONE_SELECTED)) { + if ((bone->flag & BONE_NO_DEFORM) == 0) { BLI_ghash_insert(rg->bones_map, bone->name, bone); - if (arc == NULL) - { + if (arc == NULL) { arc = newRigArc(rg); - if (starting_node == NULL) - { + if (starting_node == NULL) { starting_node = newRigNodeHead(rg, arc, root_bone->head); } - else - { + else { addRigNodeHead(rg, arc, starting_node); } } - if (bone->parent && (bone->flag & BONE_CONNECTED) == 0) - { + if (bone->parent && (bone->flag & BONE_CONNECTED) == 0) { RIG_addEdgeToArc(arc, bone->head, NULL); } @@ -1331,34 +1187,28 @@ static void RIG_arcFromBoneChain(RigGraph *rg, ListBase *list, EditBone *root_bo last_bone = bone; - if (strcmp(bone->name, "head") == 0) - { + if (strcmp(bone->name, "head") == 0) { contain_head = 1; } } - else if ((bone->flag & BONE_EDITMODE_LOCKED) == 0) /* ignore locked bones */ - { + else if ((bone->flag & BONE_EDITMODE_LOCKED) == 0) { /* ignore locked bones */ RIG_addControlBone(rg, bone); } } nb_children = countEditBoneChildren(list, bone); - if (nb_children > 1) - { + if (nb_children > 1) { RigNode *end_node = NULL; int i; - if (arc != NULL) - { + if (arc != NULL) { end_node = newRigNodeTail(rg, arc, bone->tail); } - else - { + else { end_node = newRigNode(rg, bone->tail); } - for (i = 0; i < nb_children; i++) - { + for (i = 0; i < nb_children; i++) { root_bone = nextEditBoneChild(list, bone, i); RIG_arcFromBoneChain(rg, list, root_bone, end_node, selected); } @@ -1369,13 +1219,11 @@ static void RIG_arcFromBoneChain(RigGraph *rg, ListBase *list, EditBone *root_bo } /* If the loop exited without forking */ - if (arc != NULL && bone == NULL) - { + if (arc != NULL && bone == NULL) { newRigNodeTail(rg, arc, last_bone->tail); } - if (contain_head) - { + if (contain_head) { rg->head = arc->tail; } } @@ -1383,32 +1231,26 @@ static void RIG_arcFromBoneChain(RigGraph *rg, ListBase *list, EditBone *root_bo /*******************************************************************************************************/ static void RIG_findHead(RigGraph *rg) { - if (rg->head == NULL) - { - if (BLI_countlist(&rg->arcs) == 1) - { + if (rg->head == NULL) { + if (BLI_countlist(&rg->arcs) == 1) { RigArc *arc = rg->arcs.first; rg->head = (RigNode*)arc->head; } - else - { + else { RigArc *arc; - for (arc = rg->arcs.first; arc; arc = arc->next) - { + for (arc = rg->arcs.first; arc; arc = arc->next) { RigEdge *edge = arc->edges.last; - if (edge->bone->flag & (BONE_TIPSEL|BONE_SELECTED)) - { + if (edge->bone->flag & (BONE_TIPSEL|BONE_SELECTED)) { rg->head = arc->tail; break; } } } - if (rg->head == NULL) - { + if (rg->head == NULL) { rg->head = rg->nodes.first; } } @@ -1420,8 +1262,7 @@ static void RIG_printNode(RigNode *node, const char name[]) { printf("%s %p %i <%0.3f, %0.3f, %0.3f>\n", name, (void *)node, node->degree, node->p[0], node->p[1], node->p[2]); - if (node->symmetry_flag & SYM_TOPOLOGICAL) - { + if (node->symmetry_flag & SYM_TOPOLOGICAL) { if (node->symmetry_flag & SYM_AXIAL) printf("Symmetry AXIAL\n"); else if (node->symmetry_flag & SYM_RADIAL) @@ -1435,8 +1276,7 @@ void RIG_printArcBones(RigArc *arc) { RigEdge *edge; - for (edge = arc->edges.first; edge; edge = edge->next) - { + for (edge = arc->edges.first; edge; edge = edge->next) { if (edge->bone) printf("%s ", edge->bone->name); else @@ -1465,17 +1305,14 @@ static void RIG_printLinkedCtrl(RigGraph *rg, EditBone *bone, int tabs) char *s = indent; int i; - for (i = 0; i < tabs; i++) - { + for (i = 0; i < tabs; i++) { s[0] = '\t'; s++; } s[0] = 0; - for (ctrl = rg->controls.first; ctrl; ctrl = ctrl->next) - { - if (ctrl->link == bone) - { + for (ctrl = rg->controls.first; ctrl; ctrl = ctrl->next) { + if (ctrl->link == bone) { RIG_printCtrl(ctrl, indent); RIG_printLinkedCtrl(rg, ctrl->bone, tabs + 1); } @@ -1488,13 +1325,11 @@ void RIG_printArc(RigGraph *rg, RigArc *arc) RIG_printNode((RigNode*)arc->head, "head"); - for (edge = arc->edges.first; edge; edge = edge->next) - { + for (edge = arc->edges.first; edge; edge = edge->next) { printf("\tinner joints %0.3f %0.3f %0.3f\n", edge->tail[0], edge->tail[1], edge->tail[2]); printf("\t\tlength %f\n", edge->length); printf("\t\tangle %f\n", edge->angle * 180 / M_PI); - if (edge->bone) - { + if (edge->bone) { printf("\t\t%s\n", edge->bone->name); RIG_printLinkedCtrl(rg, edge->bone, 3); } @@ -1509,18 +1344,15 @@ void RIG_printGraph(RigGraph *rg) RigArc *arc; printf("---- ARCS ----\n"); - for (arc = rg->arcs.first; arc; arc = arc->next) - { + for (arc = rg->arcs.first; arc; arc = arc->next) { RIG_printArc(rg, arc); printf("\n"); } - if (rg->head) - { + if (rg->head) { RIG_printNode(rg->head, "HEAD NODE:"); } - else - { + else { printf("HEAD NODE: NONE\n"); } } @@ -1536,12 +1368,10 @@ RigGraph *RIG_graphFromArmature(const bContext *C, Object *ob, bArmature *arm) rg = newRigGraph(); - if (obedit == ob) - { + if (obedit == ob) { rg->editbones = ((bArmature *)obedit->data)->edbo; } - else - { + else { rg->editbones = MEM_callocN(sizeof(ListBase), "EditBones"); make_boneList(rg->editbones, &arm->bonebase, NULL, NULL); rg->flag |= RIG_FREE_BONELIST; @@ -1551,8 +1381,7 @@ RigGraph *RIG_graphFromArmature(const bContext *C, Object *ob, bArmature *arm) /* Do the rotations */ for (ebone = rg->editbones->first; ebone; ebone=ebone->next) { - if (ebone->parent == NULL) - { + if (ebone->parent == NULL) { RIG_arcFromBoneChain(rg, rg->editbones, ebone, NULL, 0); } } @@ -1571,8 +1400,7 @@ RigGraph *RIG_graphFromArmature(const bContext *C, Object *ob, bArmature *arm) RIG_reconnectControlBones(rg); /* after symmetry, because we use levels to find best match */ - if (BLI_isGraphCyclic((BGraph*)rg)) - { + if (BLI_isGraphCyclic((BGraph*)rg)) { printf("armature cyclic\n"); } @@ -1588,12 +1416,10 @@ static RigGraph *armatureSelectedToGraph(bContext *C, Object *ob, bArmature *arm rg = newRigGraph(); - if (obedit == ob) - { + if (obedit == ob) { rg->editbones = arm->edbo; } - else - { + else { rg->editbones = MEM_callocN(sizeof(ListBase), "EditBones"); make_boneList(rg->editbones, &arm->bonebase, NULL, NULL); rg->flag |= RIG_FREE_BONELIST; @@ -1603,8 +1429,7 @@ static RigGraph *armatureSelectedToGraph(bContext *C, Object *ob, bArmature *arm /* Do the rotations */ for (ebone = rg->editbones->first; ebone; ebone=ebone->next) { - if (ebone->parent == NULL) - { + if (ebone->parent == NULL) { RIG_arcFromBoneChain(rg, rg->editbones, ebone, NULL, 1); } } @@ -1623,8 +1448,7 @@ static RigGraph *armatureSelectedToGraph(bContext *C, Object *ob, bArmature *arm RIG_reconnectControlBones(rg); /* after symmetry, because we use levels to find best match */ - if (BLI_isGraphCyclic((BGraph*)rg)) - { + if (BLI_isGraphCyclic((BGraph*)rg)) { printf("armature cyclic\n"); } @@ -1721,8 +1545,7 @@ static void repositionTailControl(RigGraph *rigg, RigControl *ctrl); static void finalizeControl(RigGraph *rigg, RigControl *ctrl, float resize) { - if ((ctrl->flag & RIG_CTRL_DONE) == RIG_CTRL_DONE) - { + if ((ctrl->flag & RIG_CTRL_DONE) == RIG_CTRL_DONE) { RigControl *ctrl_child; #if 0 @@ -1737,17 +1560,14 @@ static void finalizeControl(RigGraph *rigg, RigControl *ctrl, float resize) #endif /* if there was a tail link: apply link, recalc resize factor and qrot */ - if (ctrl->tail_mode != TL_NONE) - { + if (ctrl->tail_mode != TL_NONE) { float *tail_vec = NULL; float v1[3], v2[3], qtail[4]; - if (ctrl->tail_mode == TL_TAIL) - { + if (ctrl->tail_mode == TL_TAIL) { tail_vec = ctrl->link_tail->tail; } - else if (ctrl->tail_mode == TL_HEAD) - { + else if (ctrl->tail_mode == TL_HEAD) { tail_vec = ctrl->link_tail->head; } @@ -1765,14 +1585,11 @@ static void finalizeControl(RigGraph *rigg, RigControl *ctrl, float resize) ctrl->bone->roll = rollBoneByQuat(ctrl->bone, ctrl->up_axis, ctrl->qrot); /* Cascade to connected control bones */ - for (ctrl_child = rigg->controls.first; ctrl_child; ctrl_child = ctrl_child->next) - { - if (ctrl_child->link == ctrl->bone) - { + for (ctrl_child = rigg->controls.first; ctrl_child; ctrl_child = ctrl_child->next) { + if (ctrl_child->link == ctrl->bone) { repositionControl(rigg, ctrl_child, ctrl->bone->head, ctrl->bone->tail, ctrl->qrot, resize); } - if (ctrl_child->link_tail == ctrl->bone) - { + if (ctrl_child->link_tail == ctrl->bone) { repositionTailControl(rigg, ctrl_child); } } @@ -1800,8 +1617,7 @@ static void repositionControl(RigGraph *rigg, RigControl *ctrl, float head[3], f copy_qt_qt(ctrl->qrot, qrot); - if (ctrl->tail_mode == TL_NONE) - { + if (ctrl->tail_mode == TL_NONE) { sub_v3_v3v3(tail_offset, ctrl->tail, ctrl->head); mul_v3_fl(tail_offset, resize); mul_qt_v3(qrot, tail_offset); @@ -1838,38 +1654,30 @@ static void repositionBone(bContext *C, RigGraph *rigg, RigEdge *edge, float vec copy_v3_v3(bone->head, vec0); copy_v3_v3(bone->tail, vec1); - if (!is_zero_v3(up_axis)) - { + if (!is_zero_v3(up_axis)) { float qroll[4]; - if (scene->toolsettings->skgen_retarget_roll == SK_RETARGET_ROLL_VIEW) - { + if (scene->toolsettings->skgen_retarget_roll == SK_RETARGET_ROLL_VIEW) { bone->roll = rollBoneByQuatAligned(bone, edge->up_axis, qrot, qroll, up_axis); } - else if (scene->toolsettings->skgen_retarget_roll == SK_RETARGET_ROLL_JOINT) - { + else if (scene->toolsettings->skgen_retarget_roll == SK_RETARGET_ROLL_JOINT) { bone->roll = rollBoneByQuatJoint(edge, edge->prev, qrot, qroll, up_axis); } - else - { + else { unit_qt(qroll); } mul_qt_qtqt(qrot, qroll, qrot); } - else - { + else { bone->roll = rollBoneByQuat(bone, edge->up_axis, qrot); } - for (ctrl = rigg->controls.first; ctrl; ctrl = ctrl->next) - { - if (ctrl->link == bone) - { + for (ctrl = rigg->controls.first; ctrl; ctrl = ctrl->next) { + if (ctrl->link == bone) { repositionControl(rigg, ctrl, vec0, vec1, qrot, resize); } - if (ctrl->link_tail == bone) - { + if (ctrl->link_tail == bone) { repositionTailControl(rigg, ctrl); } } @@ -1890,8 +1698,7 @@ static RetargetMode detectArcRetargetMode(RigArc *iarc) int nb_edges = 0; - for (edge = iarc->edges.first; edge; edge = edge->next) - { + for (edge = iarc->edges.first; edge; edge = edge->next) { avg_angle += edge->angle; nb_edges++; } @@ -1901,29 +1708,23 @@ static RetargetMode detectArcRetargetMode(RigArc *iarc) /* avg_length = iarc->length / nb_edges; */ /* UNUSED */ - if (nb_edges > 2) - { - for (edge = iarc->edges.first; edge; edge = edge->next) - { - if (fabs(edge->angle - avg_angle) > M_PI / 6) - { + if (nb_edges > 2) { + for (edge = iarc->edges.first; edge; edge = edge->next) { + if (fabs(edge->angle - avg_angle) > M_PI / 6) { large_angle = 1; } } } - else if (nb_edges == 2 && avg_angle > 0) - { + else if (nb_edges == 2 && avg_angle > 0) { large_angle = 1; } - if (large_angle == 0) - { + if (large_angle == 0) { mode = RETARGET_LENGTH; } - if (earc->bcount <= (iarc->count - 1)) - { + if (earc->bcount <= (iarc->count - 1)) { mode = RETARGET_LENGTH; } @@ -1936,8 +1737,7 @@ static void printMovesNeeded(int *positions, int nb_positions) int moves = 0; int i; - for (i = 0; i < nb_positions; i++) - { + for (i = 0; i < nb_positions; i++) { moves += positions[i] - (i + 1); } @@ -1948,8 +1748,7 @@ static void printPositions(int *positions, int nb_positions) { int i; - for (i = 0; i < nb_positions; i++) - { + for (i = 0; i < nb_positions; i++) { printf("%i ", positions[i]); } printf("\n"); @@ -1965,17 +1764,14 @@ static float costDistance(BArcIterator *iter, float *vec0, float *vec1, int i0, float v1[3], v2[3], c[3]; float v1_inpf; - if (distance_weight > 0) - { + if (distance_weight > 0) { sub_v3_v3v3(v1, vec0, vec1); v1_inpf = dot_v3v3(v1, v1); - if (v1_inpf > 0) - { + if (v1_inpf > 0) { int j; - for (j = i0 + 1; j < i1 - 1; j++) - { + for (j = i0 + 1; j < i1 - 1; j++) { float dist; bucket = IT_peek(iter, j); @@ -1991,48 +1787,40 @@ static float costDistance(BArcIterator *iter, float *vec0, float *vec1, int i0, return distance_weight * max_dist; } - else - { + else { return MAX_COST; } } - else - { + else { return 0; } } static float costAngle(float original_angle, float vec_first[3], float vec_second[3], float angle_weight) { - if (angle_weight > 0) - { + if (angle_weight > 0) { float current_angle; - if (!is_zero_v3(vec_first) && !is_zero_v3(vec_second)) - { + if (!is_zero_v3(vec_first) && !is_zero_v3(vec_second)) { current_angle = saacos(dot_v3v3(vec_first, vec_second)); return angle_weight * fabsf(current_angle - original_angle); } - else - { + else { return angle_weight * (float)M_PI; } } - else - { + else { return 0; } } static float costLength(float original_length, float current_length, float length_weight) { - if (current_length == 0) - { + if (current_length == 0) { return MAX_COST; } - else - { + else { float length_ratio = fabs((current_length - original_length) / original_length); return length_weight * length_ratio * length_ratio; } @@ -2062,8 +1850,7 @@ static float calcCostAngleLengthDistance(BArcIterator *iter, float **UNUSED(vec_ /* Angle cost */ - if (edge->prev) - { + if (edge->prev) { sub_v3_v3v3(vec_first, vec1, vec0); normalize_v3(vec_first); @@ -2089,8 +1876,7 @@ static void copyMemoPositions(int *positions, MemoNode *table, int nb_positions, int previous = 0, current = 0; int i = 0; - for (i = 0; joints_left > 0; joints_left--, i++) - { + for (i = 0; joints_left > 0; joints_left--, i++) { MemoNode *node; node = table + indexMemoNode(nb_positions, previous, current, joints_left); @@ -2108,12 +1894,10 @@ static MemoNode * solveJoints(MemoNode *table, BArcIterator *iter, float **vec_c node = table + index; - if (node->weight != 0) - { + if (node->weight != 0) { return node; } - else if (joints_left == 0) - { + else if (joints_left == 0) { float *vec0 = vec_cache[previous]; float *vec1 = vec_cache[current]; float *vec2 = vec_cache[nb_positions + 1]; @@ -2122,8 +1906,7 @@ static MemoNode * solveJoints(MemoNode *table, BArcIterator *iter, float **vec_c return node; } - else - { + else { MemoNode *min_node = NULL; float *vec0 = vec_cache[previous]; float *vec1 = vec_cache[current]; @@ -2131,8 +1914,7 @@ static MemoNode * solveJoints(MemoNode *table, BArcIterator *iter, float **vec_c int min_next= 0; int next; - for (next = current + 1; next <= nb_positions - (joints_left - 1); next++) - { + for (next = current + 1; next <= nb_positions - (joints_left - 1); next++) { MemoNode *next_node; float *vec2 = vec_cache[next]; float weight = 0.0f; @@ -2140,8 +1922,7 @@ static MemoNode * solveJoints(MemoNode *table, BArcIterator *iter, float **vec_c /* ADD WEIGHT OF PREVIOUS - CURRENT - NEXT triple */ weight = calcCostAngleLengthDistance(iter, vec_cache, edge, vec0, vec1, vec2, current, next, angle_weight, length_weight, distance_weight); - if (weight >= MAX_COST) - { + if (weight >= MAX_COST) { continue; } @@ -2149,22 +1930,19 @@ static MemoNode * solveJoints(MemoNode *table, BArcIterator *iter, float **vec_c next_node = solveJoints(table, iter, vec_cache, nb_joints, nb_positions, current, next, edge->next, joints_left - 1, angle_weight, length_weight, distance_weight); weight += next_node->weight; - if (min_node == NULL || weight < min_weight) - { + if (min_node == NULL || weight < min_weight) { min_weight = weight; min_node = next_node; min_next = next; } } - if (min_node) - { + if (min_node) { node->weight = min_weight; node->next = min_next; return node; } - else - { + else { node->weight = MAX_COST; return node; } @@ -2178,12 +1956,12 @@ static int testFlipArc(RigArc *iarc, RigNode *inode_start) ReebNode *enode_start = BIF_NodeFromIndex(earc, inode_start->link_mesh); /* no flip needed if both nodes are the same */ - if ((enode_start == earc->head && inode_start == iarc->head) || (enode_start == earc->tail && inode_start == iarc->tail)) + if ((enode_start == earc->head && inode_start == iarc->head) || + (enode_start == earc->tail && inode_start == iarc->tail)) { return 0; } - else - { + else { return 1; } } @@ -2209,38 +1987,32 @@ static void retargetArctoArcAggresive(bContext *C, RigGraph *rigg, RigArc *iarc, RetargetMethod method = METHOD_MEMOIZE; int i; - if (nb_joints > earc->bcount) - { + if (nb_joints > earc->bcount) { printf("NOT ENOUGH BUCKETS!\n"); return; } best_positions = MEM_callocN(sizeof(int) * nb_joints, "Best positions"); - if (testFlipArc(iarc, inode_start)) - { + if (testFlipArc(iarc, inode_start)) { node_start = earc->tail; node_end = earc->head; } - else - { + else { node_start = earc->head; node_end = earc->tail; } /* equal number of joints and potential position, just fill them in */ - if (nb_joints == earc->bcount) - { + if (nb_joints == earc->bcount) { int i; /* init with first values */ - for (i = 0; i < nb_joints; i++) - { + for (i = 0; i < nb_joints; i++) { best_positions[i] = i + 1; } } - if (method == METHOD_MEMOIZE) - { + if (method == METHOD_MEMOIZE) { int nb_positions = earc->bcount; int nb_memo_nodes = nb_positions * nb_positions * (nb_joints + 1); MemoNode *table = MEM_callocN(nb_memo_nodes * sizeof(MemoNode), "memoization table"); @@ -2255,8 +2027,7 @@ static void retargetArctoArcAggresive(bContext *C, RigGraph *rigg, RigArc *iarc, initArcIterator(iter, earc, node_start); - for (i = 1; i <= nb_positions; i++) - { + for (i = 1; i <= nb_positions; i++) { EmbedBucket *bucket = IT_peek(iter, i); positions_cache[i] = bucket->p; } @@ -2290,20 +2061,17 @@ static void retargetArctoArcAggresive(bContext *C, RigGraph *rigg, RigArc *iarc, edge = edge->next, i++) { float *no = NULL; - if (i < nb_joints) - { + if (i < nb_joints) { bucket = IT_peek(iter, best_positions[i]); vec1 = bucket->p; no = bucket->no; } - else - { + else { vec1 = node_end->p; no = node_end->no; } - if (edge->bone) - { + if (edge->bone) { repositionBone(C, rigg, edge, vec0, vec1, no); } @@ -2327,13 +2095,11 @@ static void retargetArctoArcLength(bContext *C, RigGraph *rigg, RigArc *iarc, Ri float *previous_vec = NULL; - if (testFlipArc(iarc, inode_start)) - { + if (testFlipArc(iarc, inode_start)) { node_start = (ReebNode*)earc->tail; node_end = (ReebNode*)earc->head; } - else - { + else { node_start = (ReebNode*)earc->head; node_end = (ReebNode*)earc->tail; } @@ -2344,8 +2110,7 @@ static void retargetArctoArcLength(bContext *C, RigGraph *rigg, RigArc *iarc, Ri vec0 = node_start->p; - while (bucket != NULL) - { + while (bucket != NULL) { vec1 = bucket->p; embedding_length += len_v3v3(vec0, vec1); @@ -2365,14 +2130,12 @@ static void retargetArctoArcLength(bContext *C, RigGraph *rigg, RigArc *iarc, Ri previous_vec = vec0; vec1 = bucket->p; - for (edge = iarc->edges.first; edge; edge = edge->next) - { + for (edge = iarc->edges.first; edge; edge = edge->next) { float new_bone_length = edge->length / iarc->length * embedding_length; float *no = NULL; float length = 0; - while (bucket && new_bone_length > length) - { + while (bucket && new_bone_length > length) { length += len_v3v3(previous_vec, vec1); bucket = IT_next(iter); previous_vec = vec1; @@ -2380,15 +2143,13 @@ static void retargetArctoArcLength(bContext *C, RigGraph *rigg, RigArc *iarc, Ri no = bucket->no; } - if (bucket == NULL) - { + if (bucket == NULL) { vec1 = node_end->p; no = node_end->no; } /* no need to move virtual edges (space between unconnected bones) */ - if (edge->bone) - { + if (edge->bone) { repositionBone(C, rigg, edge, vec0, vec1, no); } @@ -2429,29 +2190,23 @@ void *exec_retargetArctoArc(void *param) RigNode *inode_start = p->inode_start; ReebArc *earc = iarc->link_mesh; - if (BLI_countlist(&iarc->edges) == 1) - { + if (BLI_countlist(&iarc->edges) == 1) { RigEdge *edge = iarc->edges.first; - if (testFlipArc(iarc, inode_start)) - { + if (testFlipArc(iarc, inode_start)) { repositionBone(C, rigg, edge, earc->tail->p, earc->head->p, earc->head->no); } - else - { + else { repositionBone(C, rigg, edge, earc->head->p, earc->tail->p, earc->tail->no); } } - else - { + else { RetargetMode mode = detectArcRetargetMode(iarc); - if (mode == RETARGET_AGGRESSIVE) - { + if (mode == RETARGET_AGGRESSIVE) { retargetArctoArcAggresive(C, rigg, iarc, inode_start); } - else - { + else { retargetArctoArcLength(C, rigg, iarc, inode_start); } } @@ -2474,8 +2229,7 @@ static void matchMultiResolutionNode(RigGraph *rigg, RigNode *inode, ReebNode *t inode->link_mesh = enode; - while (ishape == eshape && enode->link_down) - { + while (ishape == eshape && enode->link_down) { inode->link_mesh = enode; enode = enode->link_down; @@ -2488,16 +2242,13 @@ static void markMultiResolutionChildArc(ReebNode *end_enode, ReebNode *enode) { int i; - for (i = 0; i < enode->degree; i++) - { + for (i = 0; i < enode->degree; i++) { ReebArc *earc = (ReebArc*)enode->arcs[i]; - if (earc->flag == ARC_FREE) - { + if (earc->flag == ARC_FREE) { earc->flag = ARC_TAKEN; - if (earc->tail->degree > 1 && earc->tail != end_enode) - { + if (earc->tail->degree > 1 && earc->tail != end_enode) { markMultiResolutionChildArc(end_enode, earc->tail); } break; @@ -2507,15 +2258,12 @@ static void markMultiResolutionChildArc(ReebNode *end_enode, ReebNode *enode) static void markMultiResolutionArc(ReebArc *start_earc) { - if (start_earc->link_up) - { + if (start_earc->link_up) { ReebArc *earc; - for (earc = start_earc->link_up ; earc; earc = earc->link_up) - { + for (earc = start_earc->link_up ; earc; earc = earc->link_up) { earc->flag = ARC_TAKEN; - if (earc->tail->index != start_earc->tail->index) - { + if (earc->tail->index != start_earc->tail->index) { markMultiResolutionChildArc(earc->tail, earc->tail); } } @@ -2531,8 +2279,7 @@ static void matchMultiResolutionArc(RigGraph *rigg, RigNode *start_node, RigArc ishape = BLI_subtreeShape((BGraph*)rigg, (BNode*)start_node, (BArc*)next_iarc, 1) % SHAPE_LEVELS; eshape = BLI_subtreeShape((BGraph*)reebg, (BNode*)enode, (BArc*)next_earc, 1) % SHAPE_LEVELS; - while (ishape != eshape && next_earc->link_up) - { + while (ishape != eshape && next_earc->link_up) { next_earc->flag = ARC_TAKEN; // mark previous as taken, to prevent backtrack on lower levels next_earc = next_earc->link_up; @@ -2563,8 +2310,7 @@ static void matchMultiResolutionStartingNode(RigGraph *rigg, ReebGraph *reebg, R ishape = BLI_subtreeShape((BGraph*)rigg, (BNode*)inode, NULL, 0) % SHAPE_LEVELS; eshape = BLI_subtreeShape((BGraph*)rigg->link_mesh, (BNode*)enode, NULL, 0) % SHAPE_LEVELS; - while (ishape != eshape && reebg->link_up) - { + while (ishape != eshape && reebg->link_up) { reebg = reebg->link_up; enode = reebg->nodes.first; @@ -2593,8 +2339,7 @@ static void findCorrespondingArc(RigGraph *rigg, RigArc *start_arc, RigNode *sta // RIG_printArcBones(next_iarc); // } - for (i = 0; i < enode->degree; i++) - { + for (i = 0; i < enode->degree; i++) { next_earc = (ReebArc*)enode->arcs[i]; // if (next_earc->flag == ARC_FREE) @@ -2619,20 +2364,17 @@ static void findCorrespondingArc(RigGraph *rigg, RigArc *start_arc, RigNode *sta } /* not found, try at higher nodes (lower node might have filtered internal arcs, messing shape of tree */ - if (next_iarc->link_mesh == NULL) - { + if (next_iarc->link_mesh == NULL) { // printf("NO CORRESPONDING ARC FOUND - GOING TO HIGHER LEVELS\n"); - if (enode->link_up) - { + if (enode->link_up) { start_node->link_mesh = enode->link_up; findCorrespondingArc(rigg, start_arc, start_node, next_iarc, 0); } } /* still not found, print debug info */ - if (root && next_iarc->link_mesh == NULL) - { + if (root && next_iarc->link_mesh == NULL) { start_node->link_mesh = enode; /* linking back with root node */ // printf("NO CORRESPONDING ARC FOUND\n"); @@ -2651,12 +2393,10 @@ static void findCorrespondingArc(RigGraph *rigg, RigArc *start_arc, RigNode *sta // } /* Emergency matching */ - for (i = 0; i < enode->degree; i++) - { + for (i = 0; i < enode->degree; i++) { next_earc = (ReebArc*)enode->arcs[i]; - if (next_earc->flag == ARC_FREE && next_earc->symmetry_level == symmetry_level) - { + if (next_earc->flag == ARC_FREE && next_earc->symmetry_level == symmetry_level) { // printf("USING:\n"); // printf("flag %i -- level %i -- flag %i -- group %i\n", next_earc->flag, next_earc->symmetry_level, next_earc->symmetry_flag, next_earc->symmetry_group); matchMultiResolutionArc(rigg, start_node, next_iarc, next_earc); @@ -2673,8 +2413,7 @@ static void retargetSubgraph(bContext *C, RigGraph *rigg, RigArc *start_arc, Rig int i; /* no start arc on first node */ - if (start_arc) - { + if (start_arc) { ReebNode *enode = start_node->link_mesh; ReebArc *earc = start_arc->link_mesh; @@ -2687,16 +2426,13 @@ static void retargetSubgraph(bContext *C, RigGraph *rigg, RigArc *start_arc, Rig matchMultiResolutionNode(rigg, inode, enode); } - for (i = 0; i < inode->degree; i++) - { + for (i = 0; i < inode->degree; i++) { RigArc *next_iarc = (RigArc*)inode->arcs[i]; /* no back tracking */ - if (next_iarc != start_arc) - { + if (next_iarc != start_arc) { findCorrespondingArc(rigg, start_arc, inode, next_iarc, 1); - if (next_iarc->link_mesh) - { + if (next_iarc->link_mesh) { retargetSubgraph(C, rigg, next_iarc, inode); } } @@ -2715,10 +2451,8 @@ static void adjustGraphs(bContext *C, RigGraph *rigg) bArmature *arm= rigg->ob->data; RigArc *arc; - for (arc = rigg->arcs.first; arc; arc = arc->next) - { - if (arc->link_mesh) - { + for (arc = rigg->arcs.first; arc; arc = arc->next) { + if (arc->link_mesh) { retargetArctoArc(C, rigg, arc, arc->head); } } @@ -2762,25 +2496,21 @@ const char *RIG_nameBone(RigGraph *rg, int arc_index, int bone_index) RigArc *arc = BLI_findlink(&rg->arcs, arc_index); RigEdge *iedge; - if (arc == NULL) - { + if (arc == NULL) { return "None"; } - if (bone_index == BLI_countlist(&arc->edges)) - { + if (bone_index == BLI_countlist(&arc->edges)) { return "Last joint"; } iedge = BLI_findlink(&arc->edges, bone_index); - if (iedge == NULL) - { + if (iedge == NULL) { return "Done"; } - if (iedge->bone == NULL) - { + if (iedge->bone == NULL) { return "Bone offset"; } @@ -2794,8 +2524,7 @@ int RIG_nbJoints(RigGraph *rg) total += BLI_countlist(&rg->nodes); - for (arc = rg->arcs.first; arc; arc = arc->next) - { + for (arc = rg->arcs.first; arc; arc = arc->next) { total += BLI_countlist(&arc->edges) - 1; /* -1 because end nodes are already counted */ } @@ -2804,8 +2533,7 @@ int RIG_nbJoints(RigGraph *rg) static void BIF_freeRetarget(void) { - if (GLOBAL_RIGG) - { + if (GLOBAL_RIGG) { RIG_freeRigGraph((BGraph*)GLOBAL_RIGG); GLOBAL_RIGG = NULL; } @@ -2827,11 +2555,10 @@ void BIF_retargetArmature(bContext *C) printf("Reeb Graph created\n"); - CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) { + CTX_DATA_BEGIN (C, Base*, base, selected_editable_bases) { Object *ob = base->object; - if (ob->type==OB_ARMATURE) - { + if (ob->type==OB_ARMATURE) { RigGraph *rigg; bArmature *arm; @@ -2910,8 +2637,7 @@ void BIF_retargetArc(bContext *C, ReebArc *earc, RigGraph *template_rigg) template_rigg = armatureSelectedToGraph(C, ob, ob->data); } - if (template_rigg->arcs.first == NULL) - { + if (template_rigg->arcs.first == NULL) { // XXX // error("No Template and no deforming bones selected"); return; @@ -2930,8 +2656,7 @@ void BIF_retargetArc(bContext *C, ReebArc *earc, RigGraph *template_rigg) finishRetarget(rigg); /* free template if it comes from the edit armature */ - if (free_template) - { + if (free_template) { RIG_freeRigGraph((BGraph*)template_rigg); } RIG_freeRigGraph((BGraph*)rigg); @@ -2944,8 +2669,7 @@ void BIF_retargetArc(bContext *C, ReebArc *earc, RigGraph *template_rigg) void BIF_adjustRetarget(bContext *C) { - if (GLOBAL_RIGG) - { + if (GLOBAL_RIGG) { adjustGraphs(C, GLOBAL_RIGG); } } diff --git a/source/blender/editors/armature/editarmature_sketch.c b/source/blender/editors/armature/editarmature_sketch.c index 81b020a4cf9..4c7ab833e69 100644 --- a/source/blender/editors/armature/editarmature_sketch.c +++ b/source/blender/editors/armature/editarmature_sketch.c @@ -162,25 +162,21 @@ void BIF_makeListTemplates(const bContext *C) Base *base; int index = 0; - if (TEMPLATES_HASH != NULL) - { + if (TEMPLATES_HASH != NULL) { BLI_ghash_free(TEMPLATES_HASH, NULL, NULL); } TEMPLATES_HASH = BLI_ghash_new(BLI_ghashutil_inthash, BLI_ghashutil_intcmp, "makeListTemplates gh"); TEMPLATES_CURRENT = 0; - for ( base = FIRSTBASE; base; base = base->next ) - { + for ( base = FIRSTBASE; base; base = base->next ) { Object *ob = base->object; - if (ob != obedit && ob->type == OB_ARMATURE) - { + if (ob != obedit && ob->type == OB_ARMATURE) { index++; BLI_ghash_insert(TEMPLATES_HASH, SET_INT_IN_POINTER(index), ob); - if (ob == ts->skgen_template) - { + if (ob == ts->skgen_template) { TEMPLATES_CURRENT = index; } } @@ -193,8 +189,7 @@ const char *BIF_listTemplates(const bContext *UNUSED(C)) char menu_header[] = "Template%t|None%x0|"; char *p; - if (TEMPLATES_MENU != NULL) - { + if (TEMPLATES_MENU != NULL) { MEM_freeN(TEMPLATES_MENU); } @@ -206,8 +201,7 @@ const char *BIF_listTemplates(const bContext *UNUSED(C)) BLI_ghashIterator_init(&ghi, TEMPLATES_HASH); - while (!BLI_ghashIterator_isDone(&ghi)) - { + while (!BLI_ghashIterator_isDone(&ghi)) { Object *ob = BLI_ghashIterator_getValue(&ghi); int key = GET_INT_FROM_POINTER(BLI_ghashIterator_getKey(&ghi)); @@ -223,18 +217,15 @@ int BIF_currentTemplate(const bContext *C) { ToolSettings *ts = CTX_data_tool_settings(C); - if (TEMPLATES_CURRENT == 0 && ts->skgen_template != NULL) - { + if (TEMPLATES_CURRENT == 0 && ts->skgen_template != NULL) { GHashIterator ghi; BLI_ghashIterator_init(&ghi, TEMPLATES_HASH); - while (!BLI_ghashIterator_isDone(&ghi)) - { + while (!BLI_ghashIterator_isDone(&ghi)) { Object *ob = BLI_ghashIterator_getValue(&ghi); int key = GET_INT_FROM_POINTER(BLI_ghashIterator_getKey(&ghi)); - if (ob == ts->skgen_template) - { + if (ob == ts->skgen_template) { TEMPLATES_CURRENT = key; break; } @@ -249,21 +240,17 @@ int BIF_currentTemplate(const bContext *C) static RigGraph* sk_makeTemplateGraph(const bContext *C, Object *ob) { Object *obedit = CTX_data_edit_object(C); - if (ob == obedit) - { + if (ob == obedit) { return NULL; } - if (ob != NULL) - { - if (TEMPLATE_RIGG && TEMPLATE_RIGG->ob != ob) - { + if (ob != NULL) { + if (TEMPLATE_RIGG && TEMPLATE_RIGG->ob != ob) { RIG_freeRigGraph((BGraph*)TEMPLATE_RIGG); TEMPLATE_RIGG = NULL; } - if (TEMPLATE_RIGG == NULL) - { + if (TEMPLATE_RIGG == NULL) { bArmature *arm; arm = ob->data; @@ -280,12 +267,10 @@ int BIF_nbJointsTemplate(const bContext *C) ToolSettings *ts = CTX_data_tool_settings(C); RigGraph *rg = sk_makeTemplateGraph(C, ts->skgen_template); - if (rg) - { + if (rg) { return RIG_nbJoints(rg); } - else - { + else { return -1; } } @@ -297,15 +282,13 @@ const char * BIF_nameBoneTemplate(const bContext *C) RigGraph *rg; int index = 0; - if (stk && stk->active_stroke != NULL) - { + if (stk && stk->active_stroke != NULL) { index = stk->active_stroke->nb_points; } rg = sk_makeTemplateGraph(C, ts->skgen_template); - if (rg == NULL) - { + if (rg == NULL) { return ""; } @@ -314,20 +297,17 @@ const char * BIF_nameBoneTemplate(const bContext *C) void BIF_freeTemplates(bContext *UNUSED(C)) { - if (TEMPLATES_MENU != NULL) - { + if (TEMPLATES_MENU != NULL) { MEM_freeN(TEMPLATES_MENU); TEMPLATES_MENU = NULL; } - if (TEMPLATES_HASH != NULL) - { + if (TEMPLATES_HASH != NULL) { BLI_ghash_free(TEMPLATES_HASH, NULL, NULL); TEMPLATES_HASH = NULL; } - if (TEMPLATE_RIGG != NULL) - { + if (TEMPLATE_RIGG != NULL) { RIG_freeRigGraph((BGraph*)TEMPLATE_RIGG); TEMPLATE_RIGG = NULL; } @@ -336,16 +316,13 @@ void BIF_freeTemplates(bContext *UNUSED(C)) void BIF_setTemplate(bContext *C, int index) { ToolSettings *ts = CTX_data_tool_settings(C); - if (index > 0) - { + if (index > 0) { ts->skgen_template = BLI_ghash_lookup(TEMPLATES_HASH, SET_INT_IN_POINTER(index)); } - else - { + else { ts->skgen_template = NULL; - if (TEMPLATE_RIGG != NULL) - { + if (TEMPLATE_RIGG != NULL) { RIG_freeRigGraph((BGraph*)TEMPLATE_RIGG); } TEMPLATE_RIGG = NULL; @@ -357,44 +334,35 @@ void BIF_setTemplate(bContext *C, int index) static void sk_autoname(bContext *C, ReebArc *arc) { ToolSettings *ts = CTX_data_tool_settings(C); - if (ts->skgen_retarget_options & SK_RETARGET_AUTONAME) - { - if (arc == NULL) - { + if (ts->skgen_retarget_options & SK_RETARGET_AUTONAME) { + if (arc == NULL) { char *num = ts->skgen_num_string; int i = atoi(num); i++; BLI_snprintf(num, 8, "%i", i); } - else - { + else { char *side = ts->skgen_side_string; int valid = 0; int caps = 0; - if (side[0] == '\0') - { + if (side[0] == '\0') { valid = 1; } - else if (strcmp(side, "R")==0 || strcmp(side, "L")==0) - { + else if (strcmp(side, "R")==0 || strcmp(side, "L")==0) { valid = 1; caps = 1; } - else if (strcmp(side, "r")==0 || strcmp(side, "l")==0) - { + else if (strcmp(side, "r")==0 || strcmp(side, "l")==0) { valid = 1; caps = 0; } - if (valid) - { - if (arc->head->p[0] < 0) - { + if (valid) { + if (arc->head->p[0] < 0) { BLI_snprintf(side, 8, caps?"R":"r"); } - else - { + else { BLI_snprintf(side, 8, caps?"L":"l"); } } @@ -428,8 +396,7 @@ static ReebArc *sk_strokeToArc(SK_Stroke *stk, float imat[][4], float tmat[][3]) arc->bcount = stk->nb_points - 2; /* first and last are nodes, don't count */ arc->buckets = MEM_callocN(sizeof(EmbedBucket) * arc->bcount, "Buckets"); - for (i = 0; i < arc->bcount; i++) - { + for (i = 0; i < arc->bcount; i++) { copy_v3_v3(arc->buckets[i].p, stk->points[i + 1].p); mul_m4_v3(imat, arc->buckets[i].p); @@ -473,8 +440,7 @@ static void sk_retargetStroke(bContext *C, SK_Stroke *stk) static void sk_cancelStroke(SK_Sketch *sketch) { - if (sketch->active_stroke != NULL) - { + if (sketch->active_stroke != NULL) { sk_resetOverdraw(sketch); sk_removeStroke(sketch, sketch->active_stroke); } @@ -501,8 +467,7 @@ static void sk_drawEdge(GLUquadric *quad, SK_Point *pt0, SK_Point *pt1, float si length = normalize_v3(vec1); cross_v3_v3v3(axis, vec2, vec1); - if (is_zero_v3(axis)) - { + if (is_zero_v3(axis)) { axis[1] = 1; } @@ -522,8 +487,7 @@ static void sk_drawNormal(GLUquadric *quad, SK_Point *pt, float size, float heig cross_v3_v3v3(axis, vec2, pt->no); - if (is_zero_v3(axis)) - { + if (is_zero_v3(axis)) { axis[1] = 1; } @@ -544,18 +508,15 @@ static void sk_drawStroke(SK_Stroke *stk, int id, float color[3], int start, int GLUquadric *quad = gluNewQuadric(); gluQuadricNormals(quad, GLU_SMOOTH); - if (id != -1) - { + if (id != -1) { glLoadName(id); - for (i = 0; i < stk->nb_points; i++) - { + for (i = 0; i < stk->nb_points; i++) { glPushMatrix(); sk_drawPoint(quad, stk->points + i, 0.1); - if (i > 0) - { + if (i > 0) { sk_drawEdge(quad, stk->points + i - 1, stk->points + i, 0.1); } @@ -563,44 +524,37 @@ static void sk_drawStroke(SK_Stroke *stk, int id, float color[3], int start, int } } - else - { + else { float d_rgb[3] = {1, 1, 1}; copy_v3_v3(rgb, color); sub_v3_v3(d_rgb, rgb); mul_v3_fl(d_rgb, 1.0f / (float)stk->nb_points); - for (i = 0; i < stk->nb_points; i++) - { + for (i = 0; i < stk->nb_points; i++) { SK_Point *pt = stk->points + i; glPushMatrix(); - if (pt->type == PT_EXACT) - { + if (pt->type == PT_EXACT) { glColor3f(0, 0, 0); sk_drawPoint(quad, pt, 0.15); sk_drawNormal(quad, pt, 0.05, 0.9); } - if (i >= start && i <= end) - { + if (i >= start && i <= end) { glColor3f(0.3, 0.3, 0.3); } - else - { + else { glColor3fv(rgb); } - if (pt->type != PT_EXACT) - { + if (pt->type != PT_EXACT) { sk_drawPoint(quad, pt, 0.1); } - if (i > 0) - { + if (i > 0) { sk_drawEdge(quad, pt - 1, pt, 0.1); } @@ -627,8 +581,7 @@ static void drawSubdividedStrokeBy(ToolSettings *toolsettings, BArcIterator *ite copy_v3_v3(head, iter->p); index = next_subdividion(toolsettings, iter, bone_start, end, head, tail); - while (index != -1) - { + while (index != -1) { SK_Point *pt = stk->points + index; glPushMatrix(); @@ -654,41 +607,32 @@ static void sk_drawStrokeSubdivision(ToolSettings *toolsettings, SK_Stroke *stk) int head_index = -1; int i; - if (toolsettings->bone_sketching_convert == SK_CONVERT_RETARGET) - { + if (toolsettings->bone_sketching_convert == SK_CONVERT_RETARGET) { return; } - for (i = 0; i < stk->nb_points; i++) - { + for (i = 0; i < stk->nb_points; i++) { SK_Point *pt = stk->points + i; - if (pt->type == PT_EXACT || i == stk->nb_points - 1) /* stop on exact or on last point */ - { - if (head_index == -1) - { + if (pt->type == PT_EXACT || i == stk->nb_points - 1) /* stop on exact or on last point */ { + if (head_index == -1) { head_index = i; } - else - { - if (i - head_index > 1) - { + else { + if (i - head_index > 1) { SK_StrokeIterator sk_iter; BArcIterator *iter = (BArcIterator*)&sk_iter; initStrokeIterator(iter, stk, head_index, i); - if (toolsettings->bone_sketching_convert == SK_CONVERT_CUT_ADAPTATIVE) - { + if (toolsettings->bone_sketching_convert == SK_CONVERT_CUT_ADAPTATIVE) { drawSubdividedStrokeBy(toolsettings, iter, nextAdaptativeSubdivision); } - else if (toolsettings->bone_sketching_convert == SK_CONVERT_CUT_LENGTH) - { + else if (toolsettings->bone_sketching_convert == SK_CONVERT_CUT_LENGTH) { drawSubdividedStrokeBy(toolsettings, iter, nextLengthSubdivision); } - else if (toolsettings->bone_sketching_convert == SK_CONVERT_CUT_FIXED) - { + else if (toolsettings->bone_sketching_convert == SK_CONVERT_CUT_FIXED) { drawSubdividedStrokeBy(toolsettings, iter, nextFixedSubdivision); } @@ -706,10 +650,8 @@ static SK_Point *sk_snapPointStroke(bContext *C, SK_Stroke *stk, int mval[2], in SK_Point *pt = NULL; int i; - for (i = 0; i < stk->nb_points; i++) - { - if (all_pts || stk->points[i].type == PT_EXACT) - { + for (i = 0; i < stk->nb_points; i++) { + if (all_pts || stk->points[i].type == PT_EXACT) { short pval[2]; int pdist; @@ -717,13 +659,11 @@ static SK_Point *sk_snapPointStroke(bContext *C, SK_Stroke *stk, int mval[2], in pdist = ABS(pval[0] - mval[0]) + ABS(pval[1] - mval[1]); - if (pdist < *dist) - { + if (pdist < *dist) { *dist = pdist; pt = stk->points + i; - if (index != NULL) - { + if (index != NULL) { *index = i; } } @@ -801,75 +741,60 @@ int sk_hasOverdraw(SK_Sketch *sketch, SK_Stroke *stk) static void sk_updateOverdraw(bContext *C, SK_Sketch *sketch, SK_Stroke *stk, SK_DrawData *dd) { - if (sketch->over.target == NULL) - { + if (sketch->over.target == NULL) { SK_Stroke *target; int closest_index = -1; int dist = SNAP_MIN_DISTANCE * 2; - for (target = sketch->strokes.first; target; target = target->next) - { - if (target != stk) - { + for (target = sketch->strokes.first; target; target = target->next) { + if (target != stk) { int index; SK_Point *spt = sk_snapPointStroke(C, target, dd->mval, &dist, &index, 1); - if (spt != NULL) - { + if (spt != NULL) { sketch->over.target = target; closest_index = index; } } } - if (sketch->over.target != NULL) - { - if (closest_index > -1) - { - if (sk_lastStrokePoint(stk)->type == PT_EXACT) - { + if (sketch->over.target != NULL) { + if (closest_index > -1) { + if (sk_lastStrokePoint(stk)->type == PT_EXACT) { sketch->over.count = SK_OVERDRAW_LIMIT; } - else - { + else { sketch->over.count++; } } - if (stk->nb_points == 1) - { + if (stk->nb_points == 1) { sketch->over.start = closest_index; } - else - { + else { sketch->over.end = closest_index; } } } - else if (sketch->over.target != NULL) - { + else if (sketch->over.target != NULL) { SK_Point *closest_pt = NULL; int dist = SNAP_MIN_DISTANCE * 2; int index; closest_pt = sk_snapPointStroke(C, sketch->over.target, dd->mval, &dist, &index, 1); - if (closest_pt != NULL) - { - if (sk_lastStrokePoint(stk)->type == PT_EXACT) - { + if (closest_pt != NULL) { + if (sk_lastStrokePoint(stk)->type == PT_EXACT) { sketch->over.count = SK_OVERDRAW_LIMIT; } - else - { + else { sketch->over.count++; } sketch->over.end = index; } - else - { + else { sketch->over.end = -1; } } @@ -883,18 +808,15 @@ static int sk_adjustIndexes(SK_Sketch *sketch, int *start, int *end) *start = sketch->over.start; *end = sketch->over.end; - if (*start == -1) - { + if (*start == -1) { *start = 0; } - if (*end == -1) - { + if (*end == -1) { *end = sketch->over.target->nb_points - 1; } - if (*end < *start) - { + if (*end < *start) { int tmp = *start; *start = *end; *end = tmp; @@ -908,18 +830,15 @@ static void sk_endOverdraw(SK_Sketch *sketch) { SK_Stroke *stk = sketch->active_stroke; - if (sk_hasOverdraw(sketch, NULL)) - { + if (sk_hasOverdraw(sketch, NULL)) { int start; int end; - if (sk_adjustIndexes(sketch, &start, &end)) - { + if (sk_adjustIndexes(sketch, &start, &end)) { sk_reverseStroke(stk); } - if (stk->nb_points > 1) - { + if (stk->nb_points > 1) { stk->points->type = sketch->over.target->points[start].type; sk_lastStrokePoint(stk)->type = sketch->over.target->points[end].type; } @@ -948,8 +867,7 @@ static void sk_endStroke(bContext *C, SK_Sketch *sketch) ToolSettings *ts = CTX_data_tool_settings(C); sk_shrinkStrokeBuffer(sketch->active_stroke); - if (ts->bone_sketching & BONE_SKETCHING_ADJUST) - { + if (ts->bone_sketching & BONE_SKETCHING_ADJUST) { sk_endOverdraw(sketch); } @@ -977,8 +895,7 @@ static float sk_distanceDepth(bContext *C, float p1[3], float p2[3]) distance = len_v3(vec); - if (dot_v3v3(rv3d->viewinv[2], vec) > 0) - { + if (dot_v3v3(rv3d->viewinv[2], vec) > 0) { distance *= -1; } @@ -996,8 +913,7 @@ static void sk_interpolateDepth(bContext *C, SK_Stroke *stk, int start, int end, progress = len_v3v3(stk->points[start].p, stk->points[start - 1].p); - for (i = start; i <= end; i++) - { + for (i = start; i <= end; i++) { float ray_start[3], ray_normal[3]; float delta = len_v3v3(stk->points[i].p, stk->points[i + 1].p); float pval[2]; @@ -1022,8 +938,7 @@ static void sk_projectDrawPoint(bContext *C, float vec[3], SK_Stroke *stk, SK_Dr float dvec[3]; float mval_f[2]; - if (last != NULL) - { + if (last != NULL) { copy_v3_v3(fp, last->p); } @@ -1065,8 +980,7 @@ static int sk_getStrokeSnapPoint(bContext *C, SK_Point *pt, SK_Sketch *sketch, S ToolSettings *ts = CTX_data_tool_settings(C); int point_added = 0; - if (ts->snap_mode == SCE_SNAP_MODE_VOLUME) - { + if (ts->snap_mode == SCE_SNAP_MODE_VOLUME) { DepthPeel *p1, *p2; float *last_p = NULL; float dist = FLT_MAX; @@ -1081,20 +995,16 @@ static int sk_getStrokeSnapPoint(bContext *C, SK_Point *pt, SK_Sketch *sketch, S mvalf[1]= dd->mval[1]; peelObjectsContext(C, &sketch->depth_peels, mvalf, SNAP_ALL); - if (stk->nb_points > 0 && stk->points[stk->nb_points - 1].type == PT_CONTINUOUS) - { + if (stk->nb_points > 0 && stk->points[stk->nb_points - 1].type == PT_CONTINUOUS) { last_p = stk->points[stk->nb_points - 1].p; } - else if (LAST_SNAP_POINT_VALID) - { + else if (LAST_SNAP_POINT_VALID) { last_p = LAST_SNAP_POINT; } - for (p1 = sketch->depth_peels.first; p1; p1 = p1->next) - { - if (p1->flag == 0) - { + for (p1 = sketch->depth_peels.first; p1; p1 = p1->next) { + if (p1->flag == 0) { float vec[3]; float new_dist; float new_size = 0; @@ -1103,42 +1013,34 @@ static int sk_getStrokeSnapPoint(bContext *C, SK_Point *pt, SK_Sketch *sketch, S p1->flag = 1; /* if peeling objects, take the first and last from each object */ - if (ts->snap_flag & SCE_SNAP_PEEL_OBJECT) - { + if (ts->snap_flag & SCE_SNAP_PEEL_OBJECT) { DepthPeel *peel; - for (peel = p1->next; peel; peel = peel->next) - { - if (peel->ob == p1->ob) - { + for (peel = p1->next; peel; peel = peel->next) { + if (peel->ob == p1->ob) { peel->flag = 1; p2 = peel; } } } /* otherwise, pair first with second and so on */ - else - { - for (p2 = p1->next; p2 && p2->ob != p1->ob; p2 = p2->next) - { + else { + for (p2 = p1->next; p2 && p2->ob != p1->ob; p2 = p2->next) { /* nothing to do here */ } } - if (p2) - { + if (p2) { p2->flag = 1; add_v3_v3v3(vec, p1->p, p2->p); mul_v3_fl(vec, 0.5f); new_size = len_v3v3(p1->p, p2->p); } - else - { + else { copy_v3_v3(vec, p1->p); } - if (last_p == NULL) - { + if (last_p == NULL) { copy_v3_v3(p, vec); size = new_size; dist = 0; @@ -1147,8 +1049,7 @@ static int sk_getStrokeSnapPoint(bContext *C, SK_Point *pt, SK_Sketch *sketch, S new_dist = len_v3v3(last_p, vec); - if (new_dist < dist) - { + if (new_dist < dist) { copy_v3_v3(p, vec); dist = new_dist; size = new_size; @@ -1156,8 +1057,7 @@ static int sk_getStrokeSnapPoint(bContext *C, SK_Point *pt, SK_Sketch *sketch, S } } - if (dist != FLT_MAX) - { + if (dist != FLT_MAX) { pt->type = dd->type; pt->mode = PT_SNAP; pt->size = size / 2; @@ -1168,8 +1068,7 @@ static int sk_getStrokeSnapPoint(bContext *C, SK_Point *pt, SK_Sketch *sketch, S //BLI_freelistN(&depth_peels); } - else - { + else { SK_Stroke *snap_stk; float vec[3]; float no[3]; @@ -1179,20 +1078,16 @@ static int sk_getStrokeSnapPoint(bContext *C, SK_Point *pt, SK_Sketch *sketch, S /* snap to strokes */ // if (ts->snap_mode == SCE_SNAP_MODE_VERTEX) /* snap all the time to strokes */ - for (snap_stk = sketch->strokes.first; snap_stk; snap_stk = snap_stk->next) - { + for (snap_stk = sketch->strokes.first; snap_stk; snap_stk = snap_stk->next) { SK_Point *spt = NULL; - if (snap_stk == stk) - { + if (snap_stk == stk) { spt = sk_snapPointStroke(C, snap_stk, dd->mval, &dist, NULL, 0); } - else - { + else { spt = sk_snapPointStroke(C, snap_stk, dd->mval, &dist, NULL, 1); } - if (spt != NULL) - { + if (spt != NULL) { copy_v3_v3(pt->p, spt->p); point_added = 1; } @@ -1203,8 +1098,7 @@ static int sk_getStrokeSnapPoint(bContext *C, SK_Point *pt, SK_Sketch *sketch, S /* try to snap to closer object */ found = snapObjectsContext(C, mval, &dist, vec, no, SNAP_NOT_SELECTED); - if (found == 1) - { + if (found == 1) { pt->type = dd->type; pt->mode = PT_SNAP; copy_v3_v3(pt->p, vec); @@ -1227,8 +1121,7 @@ static int sk_addStrokeSnapPoint(bContext *C, SK_Sketch *sketch, SK_Stroke *stk, point_added = sk_getStrokeSnapPoint(C, &pt, sketch, stk, dd); - if (point_added) - { + if (point_added) { float final_p[3]; float length, distance; int total; @@ -1242,18 +1135,15 @@ static int sk_addStrokeSnapPoint(bContext *C, SK_Sketch *sketch, SK_Stroke *stk, /* update all previous point to give smooth Z progresion */ total = 0; length = 0; - for (i = stk->nb_points - 2; i > 0; i--) - { + for (i = stk->nb_points - 2; i > 0; i--) { length += len_v3v3(stk->points[i].p, stk->points[i + 1].p); total++; - if (stk->points[i].mode == PT_SNAP || stk->points[i].type == PT_EXACT) - { + if (stk->points[i].mode == PT_SNAP || stk->points[i].type == PT_EXACT) { break; } } - if (total > 1) - { + if (total > 1) { distance = sk_distanceDepth(C, final_p, stk->points[i].p); sk_interpolateDepth(C, stk, i + 1, stk->nb_points - 2, length, distance); @@ -1272,18 +1162,15 @@ static void sk_addStrokePoint(bContext *C, SK_Sketch *sketch, SK_Stroke *stk, SK ToolSettings *ts = CTX_data_tool_settings(C); int point_added = 0; - if (snap) - { + if (snap) { point_added = sk_addStrokeSnapPoint(C, sketch, stk, dd); } - if (point_added == 0) - { + if (point_added == 0) { point_added = sk_addStrokeDrawPoint(C, sketch, stk, dd); } - if (stk == sketch->active_stroke && ts->bone_sketching & BONE_SKETCHING_ADJUST) - { + if (stk == sketch->active_stroke && ts->bone_sketching & BONE_SKETCHING_ADJUST) { sk_updateOverdraw(C, sketch, stk, dd); } } @@ -1292,19 +1179,16 @@ static void sk_getStrokePoint(bContext *C, SK_Point *pt, SK_Sketch *sketch, SK_S { int point_added = 0; - if (snap) - { + if (snap) { point_added = sk_getStrokeSnapPoint(C, pt, sketch, stk, dd); LAST_SNAP_POINT_VALID = 1; copy_v3_v3(LAST_SNAP_POINT, pt->p); } - else - { + else { LAST_SNAP_POINT_VALID = 0; } - if (point_added == 0) - { + if (point_added == 0) { point_added = sk_getStrokeDrawPoint(C, pt, sketch, stk, dd); } } @@ -1334,15 +1218,13 @@ static SK_Point* setIteratorValues(SK_StrokeIterator *iter, int index) { SK_Point *pt = NULL; - if (index >= 0 && index < iter->length) - { + if (index >= 0 && index < iter->length) { pt = &(iter->stroke->points[iter->start + (iter->stride * index)]); iter->p = pt->p; iter->no = pt->no; iter->size = pt->size; } - else - { + else { iter->p = NULL; iter->no = NULL; iter->size = 0; @@ -1358,14 +1240,12 @@ void initStrokeIterator(BArcIterator *arg, SK_Stroke *stk, int start, int end) initIteratorFct(iter); iter->stroke = stk; - if (start < end) - { + if (start < end) { iter->start = start + 1; iter->end = end - 1; iter->stride = 1; } - else - { + else { iter->start = start - 1; iter->end = end + 1; iter->stride = -1; @@ -1409,8 +1289,7 @@ static void* nextPoint(void *arg) SK_Point *result = NULL; iter->index++; - if (iter->index < iter->length) - { + if (iter->index < iter->length) { result = setIteratorValues(iter, iter->index); } @@ -1425,8 +1304,7 @@ static void* nextNPoint(void *arg, int n) iter->index += n; /* check if passed end */ - if (iter->index < iter->length) - { + if (iter->index < iter->length) { result = setIteratorValues(iter, iter->index); } @@ -1440,8 +1318,7 @@ static void* peekPoint(void *arg, int n) int index = iter->index + n; /* check if passed end */ - if (index < iter->length) - { + if (index < iter->length) { result = setIteratorValues(iter, index); } @@ -1453,8 +1330,7 @@ static void* previousPoint(void *arg) SK_StrokeIterator *iter = (SK_StrokeIterator*)arg; SK_Point *result = NULL; - if (iter->index > 0) - { + if (iter->index > 0) { iter->index--; result = setIteratorValues(iter, iter->index); } @@ -1466,12 +1342,10 @@ static int iteratorStopped(void *arg) { SK_StrokeIterator *iter = (SK_StrokeIterator*)arg; - if (iter->index >= iter->length) - { + if (iter->index >= iter->length) { return 1; } - else - { + else { return 0; } } @@ -1495,45 +1369,36 @@ static void sk_convertStroke(bContext *C, SK_Stroke *stk) copy_m3_m4(tmat, obedit->obmat); transpose_m3(tmat); - for (i = 0; i < stk->nb_points; i++) - { + for (i = 0; i < stk->nb_points; i++) { SK_Point *pt = stk->points + i; - if (pt->type == PT_EXACT) - { - if (head == NULL) - { + if (pt->type == PT_EXACT) { + if (head == NULL) { head_index = i; head = pt; } - else - { + else { EditBone *bone = NULL; EditBone *new_parent; - if (i - head_index > 1) - { + if (i - head_index > 1) { SK_StrokeIterator sk_iter; BArcIterator *iter = (BArcIterator*)&sk_iter; initStrokeIterator(iter, stk, head_index, i); - if (ts->bone_sketching_convert == SK_CONVERT_CUT_ADAPTATIVE) - { + if (ts->bone_sketching_convert == SK_CONVERT_CUT_ADAPTATIVE) { bone = subdivideArcBy(ts, arm, arm->edbo, iter, invmat, tmat, nextAdaptativeSubdivision); } - else if (ts->bone_sketching_convert == SK_CONVERT_CUT_LENGTH) - { + else if (ts->bone_sketching_convert == SK_CONVERT_CUT_LENGTH) { bone = subdivideArcBy(ts, arm, arm->edbo, iter, invmat, tmat, nextLengthSubdivision); } - else if (ts->bone_sketching_convert == SK_CONVERT_CUT_FIXED) - { + else if (ts->bone_sketching_convert == SK_CONVERT_CUT_FIXED) { bone = subdivideArcBy(ts, arm, arm->edbo, iter, invmat, tmat, nextFixedSubdivision); } } - if (bone == NULL) - { + if (bone == NULL) { bone = ED_armature_edit_bone_add(arm, "Bone"); copy_v3_v3(bone->head, head->p); @@ -1548,14 +1413,12 @@ static void sk_convertStroke(bContext *C, SK_Stroke *stk) bone->flag |= BONE_SELECTED|BONE_TIPSEL|BONE_ROOTSEL; /* move to end of chain */ - while (bone->parent != NULL) - { + while (bone->parent != NULL) { bone = bone->parent; bone->flag |= BONE_SELECTED|BONE_TIPSEL|BONE_ROOTSEL; } - if (parent != NULL) - { + if (parent != NULL) { bone->parent = parent; bone->flag |= BONE_CONNECTED; } @@ -1573,16 +1436,12 @@ static void sk_convert(bContext *C, SK_Sketch *sketch) ToolSettings *ts = CTX_data_tool_settings(C); SK_Stroke *stk; - for (stk = sketch->strokes.first; stk; stk = stk->next) - { - if (stk->selected == 1) - { - if (ts->bone_sketching_convert == SK_CONVERT_RETARGET) - { + for (stk = sketch->strokes.first; stk; stk = stk->next) { + if (stk->selected == 1) { + if (ts->bone_sketching_convert == SK_CONVERT_RETARGET) { sk_retargetStroke(C, stk); } - else - { + else { sk_convertStroke(C, stk); } // XXX @@ -1600,8 +1459,7 @@ static int sk_getSelfIntersections(bContext *C, ListBase *list, SK_Stroke *gestu int added = 0; int s_i; - for (s_i = 0; s_i < gesture->nb_points - 1; s_i++) - { + for (s_i = 0; s_i < gesture->nb_points - 1; s_i++) { float s_p1[3] = {0, 0, 0}; float s_p2[3] = {0, 0, 0}; int g_i; @@ -1610,8 +1468,7 @@ static int sk_getSelfIntersections(bContext *C, ListBase *list, SK_Stroke *gestu project_float(ar, gesture->points[s_i + 1].p, s_p2); /* start checking from second next, because two consecutive cannot intersect */ - for (g_i = s_i + 2; g_i < gesture->nb_points - 1; g_i++) - { + for (g_i = s_i + 2; g_i < gesture->nb_points - 1; g_i++) { float g_p1[3] = {0, 0, 0}; float g_p2[3] = {0, 0, 0}; float vi[3]; @@ -1620,8 +1477,7 @@ static int sk_getSelfIntersections(bContext *C, ListBase *list, SK_Stroke *gestu project_float(ar, gesture->points[g_i].p, g_p1); project_float(ar, gesture->points[g_i + 1].p, g_p2); - if (isect_line_line_strict_v3(s_p1, s_p2, g_p1, g_p2, vi, &lambda)) - { + if (isect_line_line_strict_v3(s_p1, s_p2, g_p1, g_p2, vi, &lambda)) { SK_Intersection *isect = MEM_callocN(sizeof(SK_Intersection), "Intersection"); isect->gesture_index = g_i; @@ -1647,24 +1503,18 @@ static int cmpIntersections(void *i1, void *i2) { SK_Intersection *isect1 = i1, *isect2 = i2; - if (isect1->stroke == isect2->stroke) - { - if (isect1->before < isect2->before) - { + if (isect1->stroke == isect2->stroke) { + if (isect1->before < isect2->before) { return -1; } - else if (isect1->before > isect2->before) - { + else if (isect1->before > isect2->before) { return 1; } - else - { - if (isect1->lambda < isect2->lambda) - { + else { + if (isect1->lambda < isect2->lambda) { return -1; } - else if (isect1->lambda > isect2->lambda) - { + else if (isect1->lambda > isect2->lambda) { return 1; } } @@ -1683,13 +1533,11 @@ static int sk_getIntersections(bContext *C, ListBase *list, SK_Sketch *sketch, S SK_Stroke *stk; int added = 0; - for (stk = sketch->strokes.first; stk; stk = stk->next) - { + for (stk = sketch->strokes.first; stk; stk = stk->next) { int s_added = 0; int s_i; - for (s_i = 0; s_i < stk->nb_points - 1; s_i++) - { + for (s_i = 0; s_i < stk->nb_points - 1; s_i++) { float s_p1[3] = {0, 0, 0}; float s_p2[3] = {0, 0, 0}; int g_i; @@ -1697,8 +1545,7 @@ static int sk_getIntersections(bContext *C, ListBase *list, SK_Sketch *sketch, S project_float(ar, stk->points[s_i].p, s_p1); project_float(ar, stk->points[s_i + 1].p, s_p2); - for (g_i = 0; g_i < gesture->nb_points - 1; g_i++) - { + for (g_i = 0; g_i < gesture->nb_points - 1; g_i++) { float g_p1[3] = {0, 0, 0}; float g_p2[3] = {0, 0, 0}; float vi[3]; @@ -1707,8 +1554,7 @@ static int sk_getIntersections(bContext *C, ListBase *list, SK_Sketch *sketch, S project_float(ar, gesture->points[g_i].p, g_p1); project_float(ar, gesture->points[g_i + 1].p, g_p2); - if (isect_line_line_strict_v3(s_p1, s_p2, g_p1, g_p2, vi, &lambda)) - { + if (isect_line_line_strict_v3(s_p1, s_p2, g_p1, g_p2, vi, &lambda)) { SK_Intersection *isect = MEM_callocN(sizeof(SK_Intersection), "Intersection"); float ray_start[3], ray_end[3]; float mval[2]; @@ -1759,15 +1605,13 @@ static int sk_getSegments(SK_Stroke *segments, SK_Stroke *gesture) initStrokeIterator(iter, gesture, 0, gesture->nb_points - 1); - for (i = 1, j = 0; i < gesture->nb_points; i++) - { + for (i = 1, j = 0; i < gesture->nb_points; i++) { float n[3]; /* Calculate normal */ sub_v3_v3v3(n, gesture->points[i].p, vec); - if (calcArcCorrelation(iter, j, i, vec, n) < CORRELATION_THRESHOLD) - { + if (calcArcCorrelation(iter, j, i, vec, n) < CORRELATION_THRESHOLD) { j = i - 1; sk_appendStrokePoint(segments, &gesture->points[j]); vec = segments->points[segments->nb_points - 1].p; @@ -1782,8 +1626,7 @@ static int sk_getSegments(SK_Stroke *segments, SK_Stroke *gesture) int sk_detectCutGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UNUSED(sketch)) { - if (gest->nb_segments == 1 && gest->nb_intersections == 1) - { + if (gest->nb_segments == 1 && gest->nb_intersections == 1) { return 1; } @@ -1794,8 +1637,7 @@ void sk_applyCutGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UNUSED { SK_Intersection *isect; - for (isect = gest->intersections.first; isect; isect = isect->next) - { + for (isect = gest->intersections.first; isect; isect = isect->next) { SK_Point pt; pt.type = PT_EXACT; @@ -1809,8 +1651,7 @@ void sk_applyCutGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UNUSED int sk_detectTrimGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UNUSED(sketch)) { - if (gest->nb_segments == 2 && gest->nb_intersections == 1 && gest->nb_self_intersections == 0) - { + if (gest->nb_segments == 2 && gest->nb_intersections == 1 && gest->nb_self_intersections == 0) { float s1[3], s2[3]; float angle; @@ -1819,8 +1660,7 @@ int sk_detectTrimGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UNUSE angle = RAD2DEGF(angle_v2v2(s1, s2)); - if (angle > 60 && angle < 120) - { + if (angle > 60 && angle < 120) { return 1; } } @@ -1835,8 +1675,7 @@ void sk_applyTrimGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UNUSE sub_v3_v3v3(trim_dir, gest->segments->points[2].p, gest->segments->points[1].p); - for (isect = gest->intersections.first; isect; isect = isect->next) - { + for (isect = gest->intersections.first; isect; isect = isect->next) { SK_Point pt; float stroke_dir[3]; @@ -1848,14 +1687,12 @@ void sk_applyTrimGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UNUSE sub_v3_v3v3(stroke_dir, isect->stroke->points[isect->after].p, isect->stroke->points[isect->before].p); /* same direction, trim end */ - if (dot_v3v3(stroke_dir, trim_dir) > 0) - { + if (dot_v3v3(stroke_dir, trim_dir) > 0) { sk_replaceStrokePoint(isect->stroke, &pt, isect->after); sk_trimStroke(isect->stroke, 0, isect->after); } /* else, trim start */ - else - { + else { sk_replaceStrokePoint(isect->stroke, &pt, isect->before); sk_trimStroke(isect->stroke, isect->before, isect->stroke->nb_points - 1); } @@ -1865,15 +1702,12 @@ void sk_applyTrimGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UNUSE int sk_detectCommandGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UNUSED(sketch)) { - if (gest->nb_segments > 2 && gest->nb_intersections == 2 && gest->nb_self_intersections == 1) - { + if (gest->nb_segments > 2 && gest->nb_intersections == 2 && gest->nb_self_intersections == 1) { SK_Intersection *isect, *self_isect; /* get the the last intersection of the first pair */ - for ( isect = gest->intersections.first; isect; isect = isect->next ) - { - if (isect->stroke == isect->next->stroke) - { + for ( isect = gest->intersections.first; isect; isect = isect->next ) { + if (isect->stroke == isect->next->stroke) { isect = isect->next; break; } @@ -1881,8 +1715,7 @@ int sk_detectCommandGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UN self_isect = gest->self_intersections.first; - if (isect && isect->gesture_index < self_isect->gesture_index) - { + if (isect && isect->gesture_index < self_isect->gesture_index) { return 1; } } @@ -1899,16 +1732,13 @@ void sk_applyCommandGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UN // command = pupmenu("Action %t|Flatten %x1|Straighten %x2|Polygonize %x3"); if (command < 1) return; - for (isect = gest->intersections.first; isect; isect = isect->next) - { + for (isect = gest->intersections.first; isect; isect = isect->next) { SK_Intersection *i2; i2 = isect->next; - if (i2 && i2->stroke == isect->stroke) - { - switch (command) - { + if (i2 && i2->stroke == isect->stroke) { + switch (command) { case 1: sk_flattenStroke(isect->stroke, isect->before, i2->after); break; @@ -1927,8 +1757,7 @@ void sk_applyCommandGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UN int sk_detectDeleteGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UNUSED(sketch)) { - if (gest->nb_segments == 2 && gest->nb_intersections == 2) - { + if (gest->nb_segments == 2 && gest->nb_intersections == 2) { float s1[3], s2[3]; float angle; @@ -1937,8 +1766,7 @@ int sk_detectDeleteGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UNU angle = RAD2DEGF(angle_v2v2(s1, s2)); - if (angle > 120) - { + if (angle > 120) { return 1; } } @@ -1950,11 +1778,9 @@ void sk_applyDeleteGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *ske { SK_Intersection *isect; - for (isect = gest->intersections.first; isect; isect = isect->next) - { + for (isect = gest->intersections.first; isect; isect = isect->next) { /* only delete strokes that are crossed twice */ - if (isect->next && isect->next->stroke == isect->stroke) - { + if (isect->next && isect->next->stroke == isect->stroke) { isect = isect->next; sk_removeStroke(sketch, isect->stroke); @@ -1965,8 +1791,7 @@ void sk_applyDeleteGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *ske int sk_detectMergeGesture(bContext *C, SK_Gesture *gest, SK_Sketch *UNUSED(sketch)) { ARegion *ar = CTX_wm_region(C); - if (gest->nb_segments > 2 && gest->nb_intersections == 2) - { + if (gest->nb_segments > 2 && gest->nb_intersections == 2) { short start_val[2], end_val[2]; short dist; @@ -1976,26 +1801,21 @@ int sk_detectMergeGesture(bContext *C, SK_Gesture *gest, SK_Sketch *UNUSED(sketc dist = MAX2(ABS(start_val[0] - end_val[0]), ABS(start_val[1] - end_val[1])); /* if gesture is a circle */ - if ( dist <= 20 ) - { + if ( dist <= 20 ) { SK_Intersection *isect; /* check if it circled around an exact point */ - for (isect = gest->intersections.first; isect; isect = isect->next) - { + for (isect = gest->intersections.first; isect; isect = isect->next) { /* only delete strokes that are crossed twice */ - if (isect->next && isect->next->stroke == isect->stroke) - { + if (isect->next && isect->next->stroke == isect->stroke) { int start_index, end_index; int i; start_index = MIN2(isect->after, isect->next->after); end_index = MAX2(isect->before, isect->next->before); - for (i = start_index; i <= end_index; i++) - { - if (isect->stroke->points[i].type == PT_EXACT) - { + for (i = start_index; i <= end_index; i++) { + if (isect->stroke->points[i].type == PT_EXACT) { return 1; /* at least one exact point found, stop detect here */ } } @@ -2015,22 +1835,18 @@ void sk_applyMergeGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UNUS SK_Intersection *isect; /* check if it circled around an exact point */ - for (isect = gest->intersections.first; isect; isect = isect->next) - { + for (isect = gest->intersections.first; isect; isect = isect->next) { /* only merge strokes that are crossed twice */ - if (isect->next && isect->next->stroke == isect->stroke) - { + if (isect->next && isect->next->stroke == isect->stroke) { int start_index, end_index; int i; start_index = MIN2(isect->after, isect->next->after); end_index = MAX2(isect->before, isect->next->before); - for (i = start_index; i <= end_index; i++) - { + for (i = start_index; i <= end_index; i++) { /* if exact, switch to continuous */ - if (isect->stroke->points[i].type == PT_EXACT) - { + if (isect->stroke->points[i].type == PT_EXACT) { isect->stroke->points[i].type = PT_CONTINUOUS; } } @@ -2043,34 +1859,28 @@ void sk_applyMergeGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UNUS int sk_detectReverseGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UNUSED(sketch)) { - if (gest->nb_segments > 2 && gest->nb_intersections == 2 && gest->nb_self_intersections == 0) - { + if (gest->nb_segments > 2 && gest->nb_intersections == 2 && gest->nb_self_intersections == 0) { SK_Intersection *isect; /* check if it circled around an exact point */ - for (isect = gest->intersections.first; isect; isect = isect->next) - { + for (isect = gest->intersections.first; isect; isect = isect->next) { /* only delete strokes that are crossed twice */ - if (isect->next && isect->next->stroke == isect->stroke) - { + if (isect->next && isect->next->stroke == isect->stroke) { float start_v[3], end_v[3]; float angle; - if (isect->gesture_index < isect->next->gesture_index) - { + if (isect->gesture_index < isect->next->gesture_index) { sub_v3_v3v3(start_v, isect->p, gest->stk->points[0].p); sub_v3_v3v3(end_v, sk_lastStrokePoint(gest->stk)->p, isect->next->p); } - else - { + else { sub_v3_v3v3(start_v, isect->next->p, gest->stk->points[0].p); sub_v3_v3v3(end_v, sk_lastStrokePoint(gest->stk)->p, isect->p); } angle = RAD2DEGF(angle_v2v2(start_v, end_v)); - if (angle > 120) - { + if (angle > 120) { return 1; } @@ -2087,11 +1897,9 @@ void sk_applyReverseGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UN { SK_Intersection *isect; - for (isect = gest->intersections.first; isect; isect = isect->next) - { + for (isect = gest->intersections.first; isect; isect = isect->next) { /* only reverse strokes that are crossed twice */ - if (isect->next && isect->next->stroke == isect->stroke) - { + if (isect->next && isect->next->stroke == isect->stroke) { sk_reverseStroke(isect->stroke); /* skip next */ @@ -2102,8 +1910,7 @@ void sk_applyReverseGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UN int sk_detectConvertGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UNUSED(sketch)) { - if (gest->nb_segments == 3 && gest->nb_self_intersections == 1) - { + if (gest->nb_segments == 3 && gest->nb_self_intersections == 1) { return 1; } return 0; @@ -2142,10 +1949,8 @@ static void sk_applyGesture(bContext *C, SK_Sketch *sketch) sk_initGesture(C, &gest, sketch); /* detect and apply */ - for (act = GESTURE_ACTIONS; act->apply != NULL; act++) - { - if (act->detect(C, &gest, sketch)) - { + for (act = GESTURE_ACTIONS; act->apply != NULL; act++) { + if (act->detect(C, &gest, sketch)) { act->apply(C, &gest, sketch); break; } @@ -2173,8 +1978,7 @@ static int sk_selectStroke(bContext *C, SK_Sketch *sketch, const int mval[2], in hits = view3d_opengl_select(&vc, buffer, MAXPICKBUF, &rect); - if (hits>0) - { + if (hits>0) { int besthitresult = -1; if (hits == 1) { @@ -2185,18 +1989,15 @@ static int sk_selectStroke(bContext *C, SK_Sketch *sketch, const int mval[2], in /* loop and get best hit */ } - if (besthitresult > 0) - { + if (besthitresult > 0) { SK_Stroke *selected_stk = BLI_findlink(&sketch->strokes, besthitresult - 1); - if (extend == 0) - { + if (extend == 0) { sk_selectAllSketch(sketch, -1); selected_stk->selected = 1; } - else - { + else { selected_stk->selected ^= 1; } @@ -2232,50 +2033,41 @@ static void sk_drawSketch(Scene *scene, View3D *UNUSED(v3d), SK_Sketch *sketch, glClear(GL_DEPTH_BUFFER_BIT); glEnable(GL_DEPTH_TEST); - if (with_names) - { + if (with_names) { int id; - for (id = 1, stk = sketch->strokes.first; stk; id++, stk = stk->next) - { + for (id = 1, stk = sketch->strokes.first; stk; id++, stk = stk->next) { sk_drawStroke(stk, id, NULL, -1, -1); } glLoadName(-1); } - else - { + else { float selected_rgb[3] = {1, 0, 0}; float unselected_rgb[3] = {1, 0.5, 0}; - for (stk = sketch->strokes.first; stk; stk = stk->next) - { + for (stk = sketch->strokes.first; stk; stk = stk->next) { int start = -1; int end = -1; - if (sk_hasOverdraw(sketch, stk)) - { + if (sk_hasOverdraw(sketch, stk)) { sk_adjustIndexes(sketch, &start, &end); } sk_drawStroke(stk, -1, (stk->selected==1?selected_rgb:unselected_rgb), start, end); - if (stk->selected == 1) - { + if (stk->selected == 1) { sk_drawStrokeSubdivision(ts, stk); } } - if (sketch->active_stroke != NULL) - { + if (sketch->active_stroke != NULL) { SK_Point *last = sk_lastStrokePoint(sketch->active_stroke); - if (ts->bone_sketching & BONE_SKETCHING_QUICK) - { + if (ts->bone_sketching & BONE_SKETCHING_QUICK) { sk_drawStrokeSubdivision(ts, sketch->active_stroke); } - if (last != NULL) - { + if (last != NULL) { GLUquadric *quad = gluNewQuadric(); gluQuadricNormals(quad, GLU_SMOOTH); @@ -2284,8 +2076,7 @@ static void sk_drawSketch(Scene *scene, View3D *UNUSED(v3d), SK_Sketch *sketch, glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - switch (sketch->next_point.mode) - { + switch (sketch->next_point.mode) { case PT_SNAP: glColor3f(0, 1, 0); break; @@ -2345,8 +2136,7 @@ static void sk_drawSketch(Scene *scene, View3D *UNUSED(v3d), SK_Sketch *sketch, glDisable(GL_DEPTH_TEST); /* only draw gesture in active area */ - if (sketch->gesture != NULL /*&& area_is_active_area(G.vd->area)*/) - { + if (sketch->gesture != NULL /* && area_is_active_area(G.vd->area) */) { float gesture_rgb[3] = {0, 0.5, 1}; sk_drawStroke(sketch->gesture, -1, gesture_rgb, -1, -1); } @@ -2356,20 +2146,16 @@ static int sk_finish_stroke(bContext *C, SK_Sketch *sketch) { ToolSettings *ts = CTX_data_tool_settings(C); - if (sketch->active_stroke != NULL) - { + if (sketch->active_stroke != NULL) { SK_Stroke *stk = sketch->active_stroke; sk_endStroke(C, sketch); - if (ts->bone_sketching & BONE_SKETCHING_QUICK) - { - if (ts->bone_sketching_convert == SK_CONVERT_RETARGET) - { + if (ts->bone_sketching & BONE_SKETCHING_QUICK) { + if (ts->bone_sketching_convert == SK_CONVERT_RETARGET) { sk_retargetStroke(C, stk); } - else - { + else { sk_convertStroke(C, stk); } // XXX @@ -2389,8 +2175,7 @@ static int sk_finish_stroke(bContext *C, SK_Sketch *sketch) static void sk_start_draw_stroke(SK_Sketch *sketch) { - if (sketch->active_stroke == NULL) - { + if (sketch->active_stroke == NULL) { sk_startStroke(sketch); sk_selectAllSketch(sketch, -1); @@ -2405,8 +2190,7 @@ static void sk_start_draw_gesture(SK_Sketch *sketch) static int sk_draw_stroke(bContext *C, SK_Sketch *sketch, SK_Stroke *stk, SK_DrawData *dd, short snap) { - if (sk_stroke_filtermval(dd)) - { + if (sk_stroke_filtermval(dd)) { sk_addStrokePoint(C, sketch, stk, dd, snap); sk_updateDrawData(dd); sk_updateNextPoint(sketch, stk); @@ -2428,19 +2212,16 @@ static int ValidSketchViewContext(ViewContext *vc) { return 1; } - else - { + else { return 0; } } int BDR_drawSketchNames(ViewContext *vc) { - if (ValidSketchViewContext(vc)) - { + if (ValidSketchViewContext(vc)) { SK_Sketch *sketch = viewcontextSketch(vc, 0); - if (sketch) - { + if (sketch) { sk_drawSketch(vc->scene, vc->v3d, sketch, 1); return 1; } @@ -2451,11 +2232,9 @@ int BDR_drawSketchNames(ViewContext *vc) void BDR_drawSketch(const bContext *C) { - if (ED_operator_sketch_mode(C)) - { + if (ED_operator_sketch_mode(C)) { SK_Sketch *sketch = contextSketch(C, 0); - if (sketch) - { + if (sketch) { sk_drawSketch(CTX_data_scene(C), CTX_wm_view3d(C), sketch, 0); } } @@ -2464,8 +2243,7 @@ void BDR_drawSketch(const bContext *C) static int sketch_delete(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(event)) { SK_Sketch *sketch = contextSketch(C, 0); - if (sketch) - { + if (sketch) { sk_deleteSelectedStrokes(sketch); // allqueue(REDRAWVIEW3D, 0); } @@ -2478,8 +2256,7 @@ void BIF_sk_selectStroke(bContext *C, const int mval[2], short extend) ToolSettings *ts = CTX_data_tool_settings(C); SK_Sketch *sketch = contextSketch(C, 0); - if (sketch != NULL && ts->bone_sketching & BONE_SKETCHING) - { + if (sketch != NULL && ts->bone_sketching & BONE_SKETCHING) { if (sk_selectStroke(C, sketch, mval, extend)) ED_area_tag_redraw(CTX_wm_area(C)); } @@ -2487,11 +2264,9 @@ void BIF_sk_selectStroke(bContext *C, const int mval[2], short extend) void BIF_convertSketch(bContext *C) { - if (ED_operator_sketch_full_mode(C)) - { + if (ED_operator_sketch_full_mode(C)) { SK_Sketch *sketch = contextSketch(C, 0); - if (sketch) - { + if (sketch) { sk_convert(C, sketch); // BIF_undo_push("Convert Sketch"); // allqueue(REDRAWVIEW3D, 0); @@ -2502,11 +2277,9 @@ void BIF_convertSketch(bContext *C) void BIF_deleteSketch(bContext *C) { - if (ED_operator_sketch_full_mode(C)) - { + if (ED_operator_sketch_full_mode(C)) { SK_Sketch *sketch = contextSketch(C, 0); - if (sketch) - { + if (sketch) { sk_deleteSelectedStrokes(sketch); // BIF_undo_push("Convert Sketch"); // allqueue(REDRAWVIEW3D, 0); @@ -2535,12 +2308,10 @@ SK_Sketch* contextSketch(const bContext *C, int create) Object *obedit = CTX_data_edit_object(C); SK_Sketch *sketch = NULL; - if (obedit && obedit->type == OB_ARMATURE) - { + if (obedit && obedit->type == OB_ARMATURE) { bArmature *arm = obedit->data; - if (arm->sketch == NULL && create) - { + if (arm->sketch == NULL && create) { arm->sketch = createSketch(); } sketch = arm->sketch; @@ -2554,12 +2325,10 @@ SK_Sketch* viewcontextSketch(ViewContext *vc, int create) Object *obedit = vc->obedit; SK_Sketch *sketch = NULL; - if (obedit && obedit->type == OB_ARMATURE) - { + if (obedit && obedit->type == OB_ARMATURE) { bArmature *arm = obedit->data; - if (arm->sketch == NULL && create) - { + if (arm->sketch == NULL && create) { arm->sketch = createSketch(); } sketch = arm->sketch; @@ -2571,8 +2340,7 @@ SK_Sketch* viewcontextSketch(ViewContext *vc, int create) static int sketch_convert(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(event)) { SK_Sketch *sketch = contextSketch(C, 0); - if (sketch != NULL) - { + if (sketch != NULL) { sk_convert(C, sketch); ED_area_tag_redraw(CTX_wm_area(C)); } @@ -2582,8 +2350,7 @@ static int sketch_convert(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(e static int sketch_cancel(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(event)) { SK_Sketch *sketch = contextSketch(C, 0); - if (sketch != NULL) - { + if (sketch != NULL) { sk_cancelStroke(sketch); ED_area_tag_redraw(CTX_wm_area(C)); return OPERATOR_FINISHED; @@ -2594,10 +2361,8 @@ static int sketch_cancel(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(ev static int sketch_finish(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(event)) { SK_Sketch *sketch = contextSketch(C, 0); - if (sketch != NULL) - { - if (sk_finish_stroke(C, sketch)) - { + if (sketch != NULL) { + if (sk_finish_stroke(C, sketch)) { ED_area_tag_redraw(CTX_wm_area(C)); return OPERATOR_FINISHED; } @@ -2608,8 +2373,7 @@ static int sketch_finish(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(ev static int sketch_select(bContext *C, wmOperator *UNUSED(op), wmEvent *event) { SK_Sketch *sketch = contextSketch(C, 0); - if (sketch) - { + if (sketch) { short extend = 0; if (sk_selectStroke(C, sketch, event->mval, extend)) ED_area_tag_redraw(CTX_wm_area(C)); @@ -2677,8 +2441,7 @@ static int sketch_draw_modal(bContext *C, wmOperator *op, wmEvent *event, short SK_Sketch *sketch = contextSketch(C, 1); /* create just to be sure */ int retval = OPERATOR_RUNNING_MODAL; - switch (event->type) - { + switch (event->type) { case LEFTCTRLKEY: case RIGHTCTRLKEY: snap = event->ctrl; @@ -2697,10 +2460,8 @@ static int sketch_draw_modal(bContext *C, wmOperator *op, wmEvent *event, short retval = OPERATOR_CANCELLED; break; case LEFTMOUSE: - if (event->val == KM_RELEASE) - { - if (gesture == 0) - { + if (event->val == KM_RELEASE) { + if (gesture == 0) { sk_endContinuousStroke(stk); sk_filterLastContinuousStroke(stk); sk_updateNextPoint(sketch, stk); @@ -2708,13 +2469,11 @@ static int sketch_draw_modal(bContext *C, wmOperator *op, wmEvent *event, short MEM_freeN(op->customdata); retval = OPERATOR_FINISHED; } - else - { + else { sk_endContinuousStroke(stk); sk_filterLastContinuousStroke(stk); - if (stk->nb_points > 1) - { + if (stk->nb_points > 1) { /* apply gesture here */ sk_applyGesture(C, sketch); } @@ -2750,8 +2509,7 @@ static int sketch_draw_preview(bContext *C, wmOperator *op, wmEvent *event) short snap = RNA_boolean_get(op->ptr, "snap"); SK_Sketch *sketch = contextSketch(C, 0); - if (sketch) - { + if (sketch) { SK_DrawData dd; sk_initDrawData(&dd, event->mval); @@ -2775,8 +2533,7 @@ int ED_operator_sketch_mode_active_stroke(bContext *C) { return 1; } - else - { + else { return 0; } } @@ -2793,8 +2550,7 @@ static int ED_operator_sketch_mode_gesture(bContext *C) { return 1; } - else - { + else { return 0; } } @@ -2811,8 +2567,7 @@ int ED_operator_sketch_full_mode(bContext *C) { return 1; } - else - { + else { return 0; } } @@ -2828,8 +2583,7 @@ int ED_operator_sketch_mode(const bContext *C) { return 1; } - else - { + else { return 0; } } diff --git a/source/blender/editors/armature/poseUtils.c b/source/blender/editors/armature/poseUtils.c index 1a9ff73e5dc..88d219137f7 100644 --- a/source/blender/editors/armature/poseUtils.c +++ b/source/blender/editors/armature/poseUtils.c @@ -131,8 +131,7 @@ void poseAnim_mapping_get (bContext *C, ListBase *pfLinks, Object *ob, bAction * /* for each Pose-Channel which gets affected, get the F-Curves for that channel * and set the relevant transform flags... */ - CTX_DATA_BEGIN(C, bPoseChannel*, pchan, selected_pose_bones) - { + CTX_DATA_BEGIN (C, bPoseChannel*, pchan, selected_pose_bones) { fcurves_to_pchan_links_get(pfLinks, ob, act, pchan); } CTX_DATA_END; @@ -141,8 +140,7 @@ void poseAnim_mapping_get (bContext *C, ListBase *pfLinks, Object *ob, bAction * * i.e. if nothing selected, do whole pose */ if (pfLinks->first == NULL) { - CTX_DATA_BEGIN(C, bPoseChannel*, pchan, visible_pose_bones) - { + CTX_DATA_BEGIN (C, bPoseChannel*, pchan, visible_pose_bones) { fcurves_to_pchan_links_get(pfLinks, ob, act, pchan); } CTX_DATA_END; diff --git a/source/blender/editors/armature/poselib.c b/source/blender/editors/armature/poselib.c index 381423182f9..ea2b28380e0 100644 --- a/source/blender/editors/armature/poselib.c +++ b/source/blender/editors/armature/poselib.c @@ -472,7 +472,7 @@ static int poselib_add_exec (bContext *C, wmOperator *op) BLI_uniquename(&act->markers, marker, "Pose", '.', offsetof(TimeMarker, name), sizeof(marker->name)); /* use Keying Set to determine what to store for the pose */ - // FIXME: in the past, the Keying Set respected selections (LocRotScale), but the current one doesn't (Whole Character) + // FIXME: in the past, the Keying Set respected selections (LocRotScale), but the current one doesn't (WholeCharacter) // so perhaps we need either a new Keying Set, or just to add overrides here... ANIM_apply_keyingset(C, NULL, act, ks, MODIFYKEY_MODE_INSERT, (float)frame); @@ -897,10 +897,12 @@ static void poselib_apply_pose (tPoseLib_PreviewData *pld) } else if (pchan->bone) { /* only ok if bone is visible and selected */ - if ( (pchan->bone->flag & BONE_SELECTED) && - (pchan->bone->flag & BONE_HIDDEN_P)==0 && - (pchan->bone->layer & arm->layer) ) + if ((pchan->bone->flag & BONE_SELECTED) && + (pchan->bone->flag & BONE_HIDDEN_P) == 0 && + (pchan->bone->layer & arm->layer)) + { ok = 1; + } } if (ok) diff --git a/source/blender/editors/armature/poseobject.c b/source/blender/editors/armature/poseobject.c index 043383d79a3..f54cdb330e3 100644 --- a/source/blender/editors/armature/poseobject.c +++ b/source/blender/editors/armature/poseobject.c @@ -216,8 +216,7 @@ static int pose_calculate_paths_exec (bContext *C, wmOperator *op) return OPERATOR_CANCELLED; /* set up path data for bones being calculated */ - CTX_DATA_BEGIN(C, bPoseChannel*, pchan, selected_pose_bones) - { + CTX_DATA_BEGIN (C, bPoseChannel*, pchan, selected_pose_bones) { /* verify makes sure that the selected bone has a bone with the appropriate settings */ animviz_verify_motionpaths(op->reports, scene, ob, pchan); } @@ -324,8 +323,7 @@ static int pose_select_constraint_target_exec(bContext *C, wmOperator *UNUSED(op bConstraint *con; int found= 0; - CTX_DATA_BEGIN(C, bPoseChannel *, pchan, visible_pose_bones) - { + CTX_DATA_BEGIN (C, bPoseChannel *, pchan, visible_pose_bones) { if (pchan->bone->flag & BONE_SELECTED) { for (con= pchan->constraints.first; con; con= con->next) { bConstraintTypeInfo *cti= constraint_get_typeinfo(con); @@ -387,8 +385,7 @@ static int pose_select_hierarchy_exec(bContext *C, wmOperator *op) int add_to_sel = RNA_boolean_get(op->ptr, "extend"); int found= 0; - CTX_DATA_BEGIN(C, bPoseChannel *, pchan, visible_pose_bones) - { + CTX_DATA_BEGIN (C, bPoseChannel *, pchan, visible_pose_bones) { curbone= pchan->bone; if ((curbone->flag & BONE_UNSELECTABLE)==0) { @@ -505,8 +502,7 @@ static short pose_select_same_group (bContext *C, Object *ob, short extend) */ group_flags= MEM_callocN(numGroups+1, "pose_select_same_group"); - CTX_DATA_BEGIN(C, bPoseChannel *, pchan, visible_pose_bones) - { + CTX_DATA_BEGIN (C, bPoseChannel *, pchan, visible_pose_bones) { /* keep track of group as group to use later? */ if (pchan->bone->flag & BONE_SELECTED) { group_flags[pchan->agrp_index] = 1; @@ -522,8 +518,7 @@ static short pose_select_same_group (bContext *C, Object *ob, short extend) /* small optimization: only loop through bones a second time if there are any groups tagged */ if (tagged) { /* only if group matches (and is not selected or current bone) */ - CTX_DATA_BEGIN(C, bPoseChannel *, pchan, visible_pose_bones) - { + CTX_DATA_BEGIN (C, bPoseChannel *, pchan, visible_pose_bones) { if ((pchan->bone->flag & BONE_UNSELECTABLE)==0) { /* check if the group used by this bone is counted */ if (group_flags[pchan->agrp_index]) { @@ -552,8 +547,7 @@ static short pose_select_same_layer (bContext *C, Object *ob, short extend) return 0; /* figure out what bones are selected */ - CTX_DATA_BEGIN(C, bPoseChannel *, pchan, visible_pose_bones) - { + CTX_DATA_BEGIN (C, bPoseChannel *, pchan, visible_pose_bones) { /* keep track of layers to use later? */ if (pchan->bone->flag & BONE_SELECTED) layers |= pchan->bone->layer; @@ -567,8 +561,7 @@ static short pose_select_same_layer (bContext *C, Object *ob, short extend) return 0; /* select bones that are on same layers as layers flag */ - CTX_DATA_BEGIN(C, bPoseChannel *, pchan, visible_pose_bones) - { + CTX_DATA_BEGIN (C, bPoseChannel *, pchan, visible_pose_bones) { /* if bone is on a suitable layer, and the bone can have its selection changed, select it */ if ((layers & pchan->bone->layer) && (pchan->bone->flag & BONE_UNSELECTABLE)==0) { pchan->bone->flag |= BONE_SELECTED; @@ -598,8 +591,7 @@ static int pose_select_same_keyingset(bContext *C, Object *ob, short extend) /* if not extending selection, deselect all selected first */ if (extend == 0) { - CTX_DATA_BEGIN(C, bPoseChannel *, pchan, visible_pose_bones) - { + CTX_DATA_BEGIN (C, bPoseChannel *, pchan, visible_pose_bones) { if ((pchan->bone->flag & BONE_UNSELECTABLE)==0) pchan->bone->flag &= ~BONE_SELECTED; } @@ -1403,8 +1395,7 @@ static int pose_group_assign_exec (bContext *C, wmOperator *op) pose_add_group(ob); /* add selected bones to group then */ - CTX_DATA_BEGIN(C, bPoseChannel*, pchan, selected_pose_bones) - { + CTX_DATA_BEGIN (C, bPoseChannel*, pchan, selected_pose_bones) { pchan->agrp_index= pose->active_group; done= 1; } @@ -1457,8 +1448,7 @@ static int pose_group_unassign_exec (bContext *C, wmOperator *UNUSED(op)) return OPERATOR_CANCELLED; /* find selected bones to remove from all bone groups */ - CTX_DATA_BEGIN(C, bPoseChannel*, pchan, selected_pose_bones) - { + CTX_DATA_BEGIN (C, bPoseChannel*, pchan, selected_pose_bones) { if (pchan->agrp_index) { pchan->agrp_index= 0; done= 1; @@ -1660,8 +1650,7 @@ static void pose_group_select(bContext *C, Object *ob, int select) { bPose *pose= ob->pose; - CTX_DATA_BEGIN(C, bPoseChannel*, pchan, visible_pose_bones) - { + CTX_DATA_BEGIN (C, bPoseChannel*, pchan, visible_pose_bones) { if ((pchan->bone->flag & BONE_UNSELECTABLE)==0) { if (select) { if (pchan->agrp_index == pose->active_group) @@ -1765,8 +1754,7 @@ static int pose_flip_names_exec (bContext *C, wmOperator *UNUSED(op)) arm= ob->data; /* loop through selected bones, auto-naming them */ - CTX_DATA_BEGIN(C, bPoseChannel*, pchan, selected_pose_bones) - { + CTX_DATA_BEGIN (C, bPoseChannel*, pchan, selected_pose_bones) { char newname[MAXBONENAME]; flip_side_name(newname, pchan->name, TRUE); ED_armature_bone_rename(arm, pchan->name, newname); @@ -1812,8 +1800,7 @@ static int pose_autoside_names_exec (bContext *C, wmOperator *op) arm= ob->data; /* loop through selected bones, auto-naming them */ - CTX_DATA_BEGIN(C, bPoseChannel*, pchan, selected_pose_bones) - { + CTX_DATA_BEGIN (C, bPoseChannel*, pchan, selected_pose_bones) { BLI_strncpy(newname, pchan->name, sizeof(newname)); if (bone_autoside_name(newname, 1, axis, pchan->bone->head[axis], pchan->bone->tail[axis])) ED_armature_bone_rename(arm, pchan->name, newname); @@ -1862,8 +1849,7 @@ static int pose_bone_rotmode_exec (bContext *C, wmOperator *op) int mode = RNA_enum_get(op->ptr, "type"); /* set rotation mode of selected bones */ - CTX_DATA_BEGIN(C, bPoseChannel *, pchan, selected_pose_bones) - { + CTX_DATA_BEGIN (C, bPoseChannel *, pchan, selected_pose_bones) { pchan->rotmode = mode; } CTX_DATA_END; @@ -2046,8 +2032,7 @@ static int pose_bone_layers_invoke (bContext *C, wmOperator *op, wmEvent *evt) int layers[32]= {0}; /* hardcoded for now - we can only have 32 armature layers, so this should be fine... */ /* get layers that are active already */ - CTX_DATA_BEGIN(C, bPoseChannel *, pchan, selected_pose_bones) - { + CTX_DATA_BEGIN (C, bPoseChannel *, pchan, selected_pose_bones) { short bit; /* loop over the bits for this pchan's layers, adding layers where they're needed */ @@ -2080,8 +2065,7 @@ static int pose_bone_layers_exec (bContext *C, wmOperator *op) RNA_boolean_get_array(op->ptr, "layers", layers); /* set layers of pchans based on the values set in the operator props */ - CTX_DATA_BEGIN(C, bPoseChannel *, pchan, selected_pose_bones) - { + CTX_DATA_BEGIN (C, bPoseChannel *, pchan, selected_pose_bones) { /* get pointer for pchan, and write flags this way */ RNA_pointer_create((ID *)ob->data, &RNA_Bone, pchan->bone, &ptr); RNA_boolean_set_array(&ptr, "layers", layers); @@ -2121,8 +2105,7 @@ static int armature_bone_layers_invoke (bContext *C, wmOperator *op, wmEvent *ev int layers[32]= {0}; /* hardcoded for now - we can only have 32 armature layers, so this should be fine... */ /* get layers that are active already */ - CTX_DATA_BEGIN(C, EditBone *, ebone, selected_editable_bones) - { + CTX_DATA_BEGIN (C, EditBone *, ebone, selected_editable_bones) { short bit; /* loop over the bits for this pchan's layers, adding layers where they're needed */ @@ -2152,8 +2135,7 @@ static int armature_bone_layers_exec (bContext *C, wmOperator *op) RNA_boolean_get_array(op->ptr, "layers", layers); /* set layers of pchans based on the values set in the operator props */ - CTX_DATA_BEGIN(C, EditBone *, ebone, selected_editable_bones) - { + CTX_DATA_BEGIN (C, EditBone *, ebone, selected_editable_bones) { /* get pointer for pchan, and write flags this way */ RNA_pointer_create((ID *)arm, &RNA_EditBone, ebone, &ptr); RNA_boolean_set_array(&ptr, "layers", layers); @@ -2195,8 +2177,7 @@ static int pose_flip_quats_exec (bContext *C, wmOperator *UNUSED(op)) KeyingSet *ks = ANIM_builtin_keyingset_get_named(NULL, ANIM_KS_LOC_ROT_SCALE_ID); /* loop through all selected pchans, flipping and keying (as needed) */ - CTX_DATA_BEGIN(C, bPoseChannel*, pchan, selected_pose_bones) - { + CTX_DATA_BEGIN (C, bPoseChannel*, pchan, selected_pose_bones) { /* only if bone is using quaternion rotation */ if (pchan->rotmode == ROT_MODE_QUAT) { /* quaternions have 720 degree range */ diff --git a/source/blender/editors/armature/reeb.c b/source/blender/editors/armature/reeb.c index 546bcb1f40f..eebdeafcea9 100644 --- a/source/blender/editors/armature/reeb.c +++ b/source/blender/editors/armature/reeb.c @@ -41,7 +41,6 @@ #include "BLI_blenlib.h" #include "BLI_math.h" #include "BLI_utildefines.h" -#include "BLI_editVert.h" #include "BLI_edgehash.h" #include "BLI_ghash.h" #include "BLI_heap.h" @@ -81,15 +80,23 @@ static ReebGraph *FILTERED_RG = NULL; #define DEBUG_REEB #define DEBUG_REEB_NODE -typedef struct VertexData -{ +/* place-holders! */ +typedef struct EditEdge { + void *fake; +} EditEdge; + +typedef struct EditFace { + void *fake; +} EditFace; +/* end place-holders! */ + +typedef struct VertexData { float w; /* weight */ int i; /* index */ ReebNode *n; } VertexData; -typedef struct EdgeIndex -{ +typedef struct EdgeIndex { EditEdge **edges; int *offset; } EdgeIndex; @@ -183,16 +190,14 @@ void REEB_freeGraph(ReebGraph *rg) ReebNode *node; // free nodes - for ( node = rg->nodes.first; node; node = node->next ) - { + for (node = rg->nodes.first; node; node = node->next) { BLI_freeNode((BGraph*)rg, (BNode*)node); } BLI_freelistN(&rg->nodes); // free arcs arc = rg->arcs.first; - while ( arc ) - { + while ( arc ) { ReebArc *next = arc->next; REEB_freeArc((BArc*)arc); arc = next; @@ -202,8 +207,7 @@ void REEB_freeGraph(ReebGraph *rg) BLI_edgehash_free(rg->emap, NULL); /* free linked graph */ - if (rg->link_up) - { + if (rg->link_up) { REEB_freeGraph(rg->link_up); } @@ -229,8 +233,7 @@ ReebGraph * newReebGraph(void) void BIF_flagMultiArcs(ReebGraph *rg, int flag) { - for ( ; rg; rg = rg->link_up) - { + for ( ; rg; rg = rg->link_up) { BLI_flagArcs((BGraph*)rg, flag); } } @@ -318,8 +321,7 @@ ReebNode *BIF_NodeFromIndex(ReebArc *arc, ReebNode *node) ReebNode *BIF_lowestLevelNode(ReebNode *node) { - while (node->link_down) - { + while (node->link_down) { node = node->link_down; } @@ -407,8 +409,7 @@ ReebGraph *BIF_graphForMultiNode(ReebGraph *rg, ReebNode *node) { ReebGraph *multi_rg = rg; - while (multi_rg && multi_rg->multi_level != node->multi_level) - { + while (multi_rg && multi_rg->multi_level != node->multi_level) { multi_rg = multi_rg->link_up; } @@ -484,15 +485,12 @@ void repositionNodes(ReebGraph *rg) BNode *node = NULL; // Reset node positions - for (node = rg->nodes.first; node; node = node->next) - { + for (node = rg->nodes.first; node; node = node->next) { node->p[0] = node->p[1] = node->p[2] = 0; } - for (arc = rg->arcs.first; arc; arc = arc->next) - { - if (((ReebArc*)arc)->bcount > 0) - { + for (arc = rg->arcs.first; arc; arc = arc->next) { + if (((ReebArc*)arc)->bcount > 0) { float p[3]; copy_v3_v3(p, ((ReebArc*)arc)->buckets[0].p); @@ -512,22 +510,17 @@ void verifyNodeDegree(ReebGraph *rg) ReebNode *node = NULL; ReebArc *arc = NULL; - for (node = rg->nodes.first; node; node = node->next) - { + for (node = rg->nodes.first; node; node = node->next) { int count = 0; - for (arc = rg->arcs.first; arc; arc = arc->next) - { - if (arc->head == node || arc->tail == node) - { + for (arc = rg->arcs.first; arc; arc = arc->next) { + if (arc->head == node || arc->tail == node) { count++; } } - if (count != node->degree) - { + if (count != node->degree) { printf("degree error in node %i: expected %i got %i\n", node->index, count, node->degree); } - if (node->degree == 0) - { + if (node->degree == 0) { printf("zero degree node %i with weight %f\n", node->index, node->weight); } } @@ -539,25 +532,20 @@ static void verifyBucketsArc(ReebGraph *UNUSED(rg), ReebArc *arc) ReebNode *head = (ReebNode*)arc->head; ReebNode *tail = (ReebNode*)arc->tail; - if (arc->bcount > 0) - { + if (arc->bcount > 0) { int i; - for (i = 0; i < arc->bcount; i++) - { - if (arc->buckets[i].nv == 0) - { + for (i = 0; i < arc->bcount; i++) { + if (arc->buckets[i].nv == 0) { printArc(arc); printf("count error in bucket %i/%i\n", i+1, arc->bcount); } } - if (ceilf(head->weight) != arc->buckets[0].val) - { + if (ceilf(head->weight) != arc->buckets[0].val) { printArc(arc); printf("alloc error in first bucket: %f should be %f\n", arc->buckets[0].val, ceil(head->weight)); } - if (floorf(tail->weight) != arc->buckets[arc->bcount - 1].val) - { + if (floorf(tail->weight) != arc->buckets[arc->bcount - 1].val) { printArc(arc); printf("alloc error in last bucket: %f should be %f\n", arc->buckets[arc->bcount - 1].val, floor(tail->weight)); } @@ -568,8 +556,7 @@ void verifyBuckets(ReebGraph *rg) { #ifdef DEBUG_REEB ReebArc *arc = NULL; - for (arc = rg->arcs.first; arc; arc = arc->next) - { + for (arc = rg->arcs.first; arc; arc = arc->next) { verifyBucketsArc(rg, arc); } #endif @@ -580,8 +567,7 @@ void verifyFaces(ReebGraph *rg) #ifdef DEBUG_REEB int total = 0; ReebArc *arc = NULL; - for (arc = rg->arcs.first; arc; arc = arc->next) - { + for (arc = rg->arcs.first; arc; arc = arc->next) { total += BLI_ghash_size(arc->faces); } @@ -592,10 +578,8 @@ void verifyArcs(ReebGraph *rg) { ReebArc *arc; - for (arc = rg->arcs.first; arc; arc = arc->next) - { - if (arc->head->weight > arc->tail->weight) - { + for (arc = rg->arcs.first; arc; arc = arc->next) { + if (arc->head->weight > arc->tail->weight) { printf("FLIPPED ARC!\n"); } } @@ -606,14 +590,11 @@ static void verifyMultiResolutionLinks(ReebGraph *rg, int level) #ifdef DEBUG_REEB ReebGraph *lower_rg = rg->link_up; - if (lower_rg) - { + if (lower_rg) { ReebArc *arc; - for (arc = rg->arcs.first; arc; arc = arc->next) - { - if (BLI_findindex(&lower_rg->arcs, arc->link_up) == -1) - { + for (arc = rg->arcs.first; arc; arc = arc->next) { + if (BLI_findindex(&lower_rg->arcs, arc->link_up) == -1) { printf("missing arc %p for level %i\n", (void *)arc->link_up, level); printf("Source arc was ---\n"); printArc(arc); @@ -647,13 +628,11 @@ static void removeVertFromBucket(EmbedBucket *b, float co[3]) static void mergeBuckets(EmbedBucket *bDst, EmbedBucket *bSrc) { - if (bDst->nv > 0 && bSrc->nv > 0) - { + if (bDst->nv > 0 && bSrc->nv > 0) { bDst->nv += bSrc->nv; interp_v3_v3v3(bDst->p, bDst->p, bSrc->p, (float)bSrc->nv / (float)(bDst->nv)); } - else if (bSrc->nv > 0) - { + else if (bSrc->nv > 0) { bDst->nv = bSrc->nv; copy_v3_v3(bDst->p, bSrc->p); } @@ -661,19 +640,16 @@ static void mergeBuckets(EmbedBucket *bDst, EmbedBucket *bSrc) static void mergeArcBuckets(ReebArc *aDst, ReebArc *aSrc, float start, float end) { - if (aDst->bcount > 0 && aSrc->bcount > 0) - { + if (aDst->bcount > 0 && aSrc->bcount > 0) { int indexDst = 0, indexSrc = 0; start = MAX3(start, aDst->buckets[0].val, aSrc->buckets[0].val); - while (indexDst < aDst->bcount && aDst->buckets[indexDst].val < start) - { + while (indexDst < aDst->bcount && aDst->buckets[indexDst].val < start) { indexDst++; } - while (indexSrc < aSrc->bcount && aSrc->buckets[indexSrc].val < start) - { + while (indexSrc < aSrc->bcount && aSrc->buckets[indexSrc].val < start) { indexSrc++; } @@ -693,8 +669,7 @@ void flipArcBuckets(ReebArc *arc) { int i, j; - for (i = 0, j = arc->bcount - 1; i < j; i++, j--) - { + for (i = 0, j = arc->bcount - 1; i < j; i++, j--) { EmbedBucket tmp; tmp = arc->buckets[i]; @@ -714,20 +689,16 @@ static void allocArcBuckets(ReebArc *arc) float start = ceil(arc->head->weight); arc->bcount = countArcBuckets(arc); - if (arc->bcount > 0) - { + if (arc->bcount > 0) { arc->buckets = MEM_callocN(sizeof(EmbedBucket) * arc->bcount, "embed bucket"); - for (i = 0; i < arc->bcount; i++) - { + for (i = 0; i < arc->bcount; i++) { arc->buckets[i].val = start + i; } } - else - { + else { arc->buckets = NULL; } - } static void resizeArcBuckets(ReebArc *arc) @@ -735,15 +706,13 @@ static void resizeArcBuckets(ReebArc *arc) EmbedBucket *oldBuckets = arc->buckets; int oldBCount = arc->bcount; - if (countArcBuckets(arc) == oldBCount) - { + if (countArcBuckets(arc) == oldBCount) { return; } allocArcBuckets(arc); - if (oldBCount != 0 && arc->bcount != 0) - { + if (oldBCount != 0 && arc->bcount != 0) { int oldStart = (int)oldBuckets[0].val; int oldEnd = (int)oldBuckets[oldBCount - 1].val; int newStart = (int)arc->buckets[0].val; @@ -752,12 +721,10 @@ static void resizeArcBuckets(ReebArc *arc) int newOffset = 0; int len; - if (oldStart < newStart) - { + if (oldStart < newStart) { oldOffset = newStart - oldStart; } - else - { + else { newOffset = oldStart - newStart; } @@ -766,8 +733,7 @@ static void resizeArcBuckets(ReebArc *arc) memcpy(arc->buckets + newOffset, oldBuckets + oldOffset, len * sizeof(EmbedBucket)); } - if (oldBuckets != NULL) - { + if (oldBuckets != NULL) { MEM_freeN(oldBuckets); } } @@ -777,10 +743,8 @@ static void reweightBuckets(ReebArc *arc) int i; float start = ceil((arc->head)->weight); - if (arc->bcount > 0) - { - for (i = 0; i < arc->bcount; i++) - { + if (arc->bcount > 0) { + for (i = 0; i < arc->bcount; i++) { arc->buckets[i].val = start + i; } } @@ -793,8 +757,7 @@ static void interpolateBuckets(ReebArc *arc, float *start_p, float *end_p, int s total = end_index - start_index + 2; - for (j = start_index; j <= end_index; j++) - { + for (j = start_index; j <= end_index; j++) { EmbedBucket *empty = arc->buckets + j; empty->nv = 1; interp_v3_v3v3(empty->p, start_p, end_p, (float)(j - start_index + 1) / total); @@ -810,14 +773,11 @@ static void fillArcEmptyBuckets(ReebArc *arc) start_p = arc->head->p; - for (i = 0; i < arc->bcount; i++) - { + for (i = 0; i < arc->bcount; i++) { EmbedBucket *bucket = arc->buckets + i; - if (missing) - { - if (bucket->nv > 0) - { + if (missing) { + if (bucket->nv > 0) { missing = 0; end_p = bucket->p; @@ -826,14 +786,11 @@ static void fillArcEmptyBuckets(ReebArc *arc) interpolateBuckets(arc, start_p, end_p, start_index, end_index); } } - else - { - if (bucket->nv == 0) - { + else { + if (bucket->nv == 0) { missing = 1; - if (i > 0) - { + if (i > 0) { start_p = arc->buckets[i - 1].p; } start_index = i; @@ -841,8 +798,7 @@ static void fillArcEmptyBuckets(ReebArc *arc) } } - if (missing) - { + if (missing) { end_p = arc->tail->p; end_index = arc->bcount - 1; @@ -859,8 +815,7 @@ static void ExtendArcBuckets(ReebArc *arc) float average_length = 0, length; int padding_head = 0, padding_tail = 0; - if (arc->bcount == 0) - { + if (arc->bcount == 0) { return; /* failsafe, shouldn't happen */ } @@ -881,19 +836,16 @@ static void ExtendArcBuckets(ReebArc *arc) last_bucket = arc->buckets + (arc->bcount - 1); length = len_v3v3(first_bucket->p, arc->head->p); - if (length > 2 * average_length) - { + if (length > 2 * average_length) { padding_head = (int)floor(length / average_length); } length = len_v3v3(last_bucket->p, arc->tail->p); - if (length > 2 * average_length) - { + if (length > 2 * average_length) { padding_tail = (int)floor(length / average_length); } - if (padding_head + padding_tail > 0) - { + if (padding_head + padding_tail > 0) { EmbedBucket *old_buckets = arc->buckets; arc->buckets = MEM_callocN(sizeof(EmbedBucket) * (padding_head + arc->bcount + padding_tail), "embed bucket"); @@ -904,13 +856,11 @@ static void ExtendArcBuckets(ReebArc *arc) MEM_freeN(old_buckets); } - if (padding_head > 0) - { + if (padding_head > 0) { interpolateBuckets(arc, arc->head->p, first_bucket->p, 0, padding_head); } - if (padding_tail > 0) - { + if (padding_tail > 0) { interpolateBuckets(arc, last_bucket->p, arc->tail->p, arc->bcount - padding_tail, arc->bcount - 1); } } @@ -920,8 +870,7 @@ static void extendGraphBuckets(ReebGraph *rg) { ReebArc *arc; - for (arc = rg->arcs.first; arc; arc = arc->next) - { + for (arc = rg->arcs.first; arc; arc = arc->next) { ExtendArcBuckets(arc); } } @@ -941,8 +890,7 @@ static void calculateArcLength(ReebArc *arc) vec0 = arc->head->p; vec1 = arc->head->p; /* in case there's no embedding */ - while (IT_next(iter)) - { + while (IT_next(iter)) { vec1 = iter->p; arc->length += len_v3v3(vec0, vec1); @@ -957,8 +905,7 @@ static void calculateGraphLength(ReebGraph *rg) { ReebArc *arc; - for (arc = rg->arcs.first; arc; arc = arc->next) - { + for (arc = rg->arcs.first; arc; arc = arc->next) { calculateArcLength(arc); } } @@ -975,8 +922,7 @@ void REEB_RadialSymmetry(BNode* root_node, RadialArc* ring, int count) copy_v3_v3(axis, root_node->symmetry_axis); /* first pass, merge incrementally */ - for (i = 0; i < count - 1; i++) - { + for (i = 0; i < count - 1; i++) { ReebNode *node1, *node2; ReebArc *arc1, *arc2; float tangent[3]; @@ -999,8 +945,7 @@ void REEB_RadialSymmetry(BNode* root_node, RadialArc* ring, int count) /* Merge buckets * there shouldn't be any null arcs here, but just to be safe * */ - if (arc1->bcount > 0 && arc2->bcount > 0) - { + if (arc1->bcount > 0 && arc2->bcount > 0) { ReebArcIterator arc_iter1, arc_iter2; BArcIterator *iter1 = (BArcIterator*)&arc_iter1; BArcIterator *iter2 = (BArcIterator*)&arc_iter2; @@ -1013,19 +958,16 @@ void REEB_RadialSymmetry(BNode* root_node, RadialArc* ring, int count) bucket2 = IT_next(iter2); /* Make sure they both start at the same value */ - while (bucket1 && bucket2 && bucket1->val < bucket2->val) - { + while (bucket1 && bucket2 && bucket1->val < bucket2->val) { bucket1 = IT_next(iter1); } - while (bucket1 && bucket2 && bucket2->val < bucket1->val) - { + while (bucket1 && bucket2 && bucket2->val < bucket1->val) { bucket2 = IT_next(iter2); } - for ( ;bucket1 && bucket2; bucket1 = IT_next(iter1), bucket2 = IT_next(iter2)) - { + for ( ;bucket1 && bucket2; bucket1 = IT_next(iter1), bucket2 = IT_next(iter2)) { bucket2->nv += bucket1->nv; /* add counts */ /* mirror on axis */ @@ -1037,8 +979,7 @@ void REEB_RadialSymmetry(BNode* root_node, RadialArc* ring, int count) } /* second pass, mirror back on previous arcs */ - for (i = count - 1; i > 0; i--) - { + for (i = count - 1; i > 0; i--) { ReebNode *node1, *node2; ReebArc *arc1, *arc2; float tangent[3]; @@ -1061,8 +1002,7 @@ void REEB_RadialSymmetry(BNode* root_node, RadialArc* ring, int count) /* Copy buckets * there shouldn't be any null arcs here, but just to be safe * */ - if (arc1->bcount > 0 && arc2->bcount > 0) - { + if (arc1->bcount > 0 && arc2->bcount > 0) { ReebArcIterator arc_iter1, arc_iter2; BArcIterator *iter1 = (BArcIterator*)&arc_iter1; BArcIterator *iter2 = (BArcIterator*)&arc_iter2; @@ -1075,19 +1015,16 @@ void REEB_RadialSymmetry(BNode* root_node, RadialArc* ring, int count) bucket2 = IT_next(iter2); /* Make sure they both start at the same value */ - while (bucket1 && bucket1->val < bucket2->val) - { + while (bucket1 && bucket1->val < bucket2->val) { bucket1 = IT_next(iter1); } - while (bucket2 && bucket2->val < bucket1->val) - { + while (bucket2 && bucket2->val < bucket1->val) { bucket2 = IT_next(iter2); } - for ( ;bucket1 && bucket2; bucket1 = IT_next(iter1), bucket2 = IT_next(iter2)) - { + for ( ;bucket1 && bucket2; bucket1 = IT_next(iter1), bucket2 = IT_next(iter2)) { /* copy and mirror back to bucket2 */ bucket2->nv = bucket1->nv; copy_v3_v3(bucket2->p, bucket1->p); @@ -1122,8 +1059,7 @@ void REEB_AxialSymmetry(BNode* root_node, BNode* node1, BNode* node2, struct BAr /* Merge buckets * there shouldn't be any null arcs here, but just to be safe * */ - if (arc1->bcount > 0 && arc2->bcount > 0) - { + if (arc1->bcount > 0 && arc2->bcount > 0) { ReebArcIterator arc_iter1, arc_iter2; BArcIterator *iter1 = (BArcIterator*)&arc_iter1; BArcIterator *iter2 = (BArcIterator*)&arc_iter2; @@ -1136,19 +1072,16 @@ void REEB_AxialSymmetry(BNode* root_node, BNode* node1, BNode* node2, struct BAr bucket2 = IT_next(iter2); /* Make sure they both start at the same value */ - while (bucket1 && bucket1->val < bucket2->val) - { + while (bucket1 && bucket1->val < bucket2->val) { bucket1 = IT_next(iter1); } - while (bucket2 && bucket2->val < bucket1->val) - { + while (bucket2 && bucket2->val < bucket1->val) { bucket2 = IT_next(iter2); } - for ( ;bucket1 && bucket2; bucket1 = IT_next(iter1), bucket2 = IT_next(iter2)) - { + for ( ; bucket1 && bucket2; bucket1 = IT_next(iter1), bucket2 = IT_next(iter2)) { bucket1->nv += bucket2->nv; /* add counts */ /* mirror on axis */ @@ -1175,7 +1108,7 @@ void postprocessGraph(ReebGraph *rg, char mode) ReebArc *arc; float fac1 = 0, fac2 = 1, fac3 = 0; - switch(mode) + switch (mode) { case SKGEN_AVERAGE: fac1 = fac2 = fac3 = 1.0f / 3.0f; @@ -1490,16 +1423,13 @@ static int compareArcs(void *varc1, void *varc2) float len1 = lengthArc(arc1); float len2 = lengthArc(arc2); - if (len1 < len2) - { + if (len1 < len2) { return -1; } - if (len1 > len2) - { + if (len1 > len2) { return 1; } - else - { + else { return 0; } } @@ -1508,13 +1438,10 @@ static void filterArc(ReebGraph *rg, ReebNode *newNode, ReebNode *removedNode, R { ReebArc *arc = NULL, *nextArc = NULL; - if (merging) - { + if (merging) { /* first pass, merge buckets for arcs that spawned the two nodes into the source arc*/ - for (arc = rg->arcs.first; arc; arc = arc->next) - { - if (arc->head == srcArc->head && arc->tail == srcArc->tail && arc != srcArc) - { + for (arc = rg->arcs.first; arc; arc = arc->next) { + if (arc->head == srcArc->head && arc->tail == srcArc->tail && arc != srcArc) { ReebNode *head = srcArc->head; ReebNode *tail = srcArc->tail; mergeArcBuckets(srcArc, arc, head->weight, tail->weight); @@ -1524,47 +1451,38 @@ static void filterArc(ReebGraph *rg, ReebNode *newNode, ReebNode *removedNode, R /* second pass, replace removedNode by newNode, remove arcs that are collapsed in a loop */ arc = rg->arcs.first; - while (arc) - { + while (arc) { nextArc = arc->next; - if (arc->head == removedNode || arc->tail == removedNode) - { - if (arc->head == removedNode) - { + if (arc->head == removedNode || arc->tail == removedNode) { + if (arc->head == removedNode) { arc->head = newNode; } - else - { + else { arc->tail = newNode; } // Remove looped arcs - if (arc->head == arc->tail) - { + if (arc->head == arc->tail) { // v1 or v2 was already newNode, since we're removing an arc, decrement degree NodeDegreeDecrement(rg, newNode); // If it's srcArc, it'll be removed later, so keep it for now - if (arc != srcArc) - { + if (arc != srcArc) { BLI_remlink(&rg->arcs, arc); REEB_freeArc((BArc*)arc); } } - else - { + else { /* flip arcs that flipped, can happen on diamond shapes, mostly on null arcs */ - if (arc->head->weight > arc->tail->weight) - { + if (arc->head->weight > arc->tail->weight) { flipArc(arc); } //newNode->degree++; // incrementing degree since we're adding an arc NodeDegreeIncrement(rg, newNode); mergeArcFaces(rg, arc, srcArc); - if (merging) - { + if (merging) { ReebNode *head = arc->head; ReebNode *tail = arc->tail; @@ -1587,12 +1505,10 @@ void filterNullReebGraph(ReebGraph *rg) ReebArc *arc = NULL, *nextArc = NULL; arc = rg->arcs.first; - while (arc) - { + while (arc) { nextArc = arc->next; // Only collapse arcs too short to have any embed bucket - if (arc->bcount == 0) - { + if (arc->bcount == 0) { ReebNode *newNode = (ReebNode*)arc->head; ReebNode *removedNode = (ReebNode*)arc->tail; float blend; @@ -1623,12 +1539,14 @@ static int filterInternalExternalReebGraph(ReebGraph *rg, float threshold_intern BLI_sortlist(&rg->arcs, compareArcs); - for (arc = rg->arcs.first; arc; arc = nextArc) - { + for (arc = rg->arcs.first; arc; arc = nextArc) { nextArc = arc->next; - // Only collapse non-terminal arcs that are shorter than threshold - if (threshold_internal > 0 && arc->head->degree > 1 && arc->tail->degree > 1 && (lengthArc(arc) < threshold_internal)) + /* Only collapse non-terminal arcs that are shorter than threshold */ + if ((threshold_internal > 0) && + (arc->head->degree > 1) && + (arc->tail->degree > 1) && + (lengthArc(arc) < threshold_internal)) { ReebNode *newNode = NULL; ReebNode *removedNode = NULL; @@ -1650,26 +1568,25 @@ static int filterInternalExternalReebGraph(ReebGraph *rg, float threshold_intern } // Only collapse terminal arcs that are shorter than threshold - else if (threshold_external > 0 && (arc->head->degree == 1 || arc->tail->degree == 1) && (lengthArc(arc) < threshold_external)) + else if ((threshold_external > 0) && + (arc->head->degree == 1 || arc->tail->degree == 1) && + (lengthArc(arc) < threshold_external)) { ReebNode *terminalNode = NULL; ReebNode *middleNode = NULL; ReebNode *removedNode = NULL; // Assign terminal and middle nodes - if (arc->head->degree == 1) - { + if (arc->head->degree == 1) { terminalNode = arc->head; middleNode = arc->tail; } - else - { + else { terminalNode = arc->tail; middleNode = arc->head; } - if (middleNode->degree == 2 && middleNode != rg->nodes.first) - { + if (middleNode->degree == 2 && middleNode != rg->nodes.first) { #if 1 // If middle node is a normal node, it will be removed later // Only if middle node is not the root node @@ -1685,8 +1602,7 @@ static int filterInternalExternalReebGraph(ReebGraph *rg, float threshold_intern #endif } // Otherwise, just plain remove of the arc - else - { + else { removedNode = terminalNode; // removing arc, so we need to decrease the degree of the remaining node @@ -1713,13 +1629,10 @@ static int filterCyclesReebGraph(ReebGraph *rg, float UNUSED(distance_threshold) ReebArc *next2; int filtered = 0; - for (arc1 = rg->arcs.first; arc1; arc1 = arc1->next) - { - for (arc2 = arc1->next; arc2; arc2 = next2) - { + for (arc1 = rg->arcs.first; arc1; arc1 = arc1->next) { + for (arc2 = arc1->next; arc2; arc2 = next2) { next2 = arc2->next; - if (arc1 != arc2 && arc1->head == arc2->head && arc1->tail == arc2->tail) - { + if (arc1 != arc2 && arc1->head == arc2->head && arc1->tail == arc2->tail) { mergeArcEdges(rg, arc1, arc2, MERGE_APPEND); mergeArcFaces(rg, arc1, arc2); mergeArcBuckets(arc1, arc2, arc1->head->weight, arc1->tail->weight); @@ -1848,8 +1761,7 @@ int filterSmartReebGraph(ReebGraph *UNUSED(rg), float UNUSED(threshold)) if (avg_angle > threshold) merging = 1; - if (merging) - { + if (merging) { ReebNode *terminalNode = NULL; ReebNode *middleNode = NULL; ReebNode *newNode = NULL; @@ -1857,39 +1769,33 @@ int filterSmartReebGraph(ReebGraph *UNUSED(rg), float UNUSED(threshold)) int merging = 0; // Assign terminal and middle nodes - if (arc->head->degree == 1) - { + if (arc->head->degree == 1) { terminalNode = arc->head; middleNode = arc->tail; } - else - { + else { terminalNode = arc->tail; middleNode = arc->head; } // If middle node is a normal node, merge to terminal node - if (middleNode->degree == 2) - { + if (middleNode->degree == 2) { merging = 1; newNode = terminalNode; removedNode = middleNode; } // Otherwise, just plain remove of the arc - else - { + else { merging = 0; newNode = middleNode; removedNode = terminalNode; } // Merging arc - if (merging) - { + if (merging) { filterArc(rg, newNode, removedNode, arc, 1); } - else - { + else { // removing arc, so we need to decrease the degree of the remaining node //newNode->degree--; NodeDegreeDecrement(rg, newNode); @@ -1920,29 +1826,24 @@ static void filterGraph(ReebGraph *rg, short options, float threshold_internal, calculateGraphLength(rg); - if ((options & SKGEN_FILTER_EXTERNAL) == 0) - { + if ((options & SKGEN_FILTER_EXTERNAL) == 0) { threshold_external = 0; } - if ((options & SKGEN_FILTER_INTERNAL) == 0) - { + if ((options & SKGEN_FILTER_INTERNAL) == 0) { threshold_internal = 0; } - if (threshold_internal > 0 || threshold_external > 0) - { + if (threshold_internal > 0 || threshold_external > 0) { /* filter until there's nothing more to do */ - while (done == 1) - { + while (done == 1) { done = 0; /* no work done yet */ done = filterInternalExternalReebGraph(rg, threshold_internal, threshold_external); } } - if (options & SKGEN_FILTER_SMART) - { + if (options & SKGEN_FILTER_SMART) { filterSmartReebGraph(rg, 0.5); filterCyclesReebGraph(rg, 0.5); } @@ -1963,8 +1864,7 @@ static void finalizeGraph(ReebGraph *rg, char passes, char method) sortArcs(rg); - for (i = 0; i < passes; i++) - { + for (i = 0; i < passes; i++) { postprocessGraph(rg, method); } @@ -1979,12 +1879,10 @@ static int compareVerts( const void* a, const void* b ) EditVert *vb = *(EditVert**)b; int value = 0; - if (weightData(va) < weightData(vb)) - { + if (weightData(va) < weightData(vb)) { value = -1; } - else if (weightData(va) > weightData(vb)) - { + else if (weightData(va) > weightData(vb)) { value = 1; } @@ -2001,26 +1899,21 @@ static void spreadWeight(EditMesh *em) verts = MEM_callocN(sizeof(EditVert*) * totvert, "verts array"); - for (eve = em->verts.first, i = 0; eve; eve = eve->next, i++) - { + for (eve = em->verts.first, i = 0; eve; eve = eve->next, i++) { verts[i] = eve; } - while (work_needed == 1) - { + while (work_needed == 1) { work_needed = 0; qsort(verts, totvert, sizeof(EditVert*), compareVerts); - for (i = 0; i < totvert; i++) - { + for (i = 0; i < totvert; i++) { eve = verts[i]; - if (i == 0 || (weightData(eve) - lastWeight) > FLT_EPSILON) - { + if (i == 0 || (weightData(eve) - lastWeight) > FLT_EPSILON) { lastWeight = weightData(eve); } - else - { + else { work_needed = 1; weightSetData(eve, lastWeight + FLT_EPSILON * 2); lastWeight = weightData(eve); @@ -2044,8 +1937,7 @@ void REEB_exportGraph(ReebGraph *rg, int count) char filename[128]; FILE *f; - if (count == -1) - { + if (count == -1) { strcpy(filename, "test.txt"); } else { @@ -2053,15 +1945,13 @@ void REEB_exportGraph(ReebGraph *rg, int count) } f = BLI_fopen(filename, "w"); - for (arc = rg->arcs.first; arc; arc = arc->next) - { + for (arc = rg->arcs.first; arc; arc = arc->next) { int i; float p[3]; exportNode(f, "v1", arc->head); - for (i = 0; i < arc->bcount; i++) - { + for (i = 0; i < arc->bcount; i++) { fprintf(f, "b nv:%i %f %f %f\n", arc->buckets[i].nv, arc->buckets[i].p[0], arc->buckets[i].p[1], arc->buckets[i].p[2]); } @@ -2082,12 +1972,10 @@ static void removeZeroNodes(ReebGraph *rg) { ReebNode *node, *next_node; - for (node = rg->nodes.first; node; node = next_node) - { + for (node = rg->nodes.first; node; node = next_node) { next_node = node->next; - if (node->degree == 0) - { + if (node->degree == 0) { BLI_removeNode((BGraph*)rg, (BNode*)node); } } @@ -2098,63 +1986,51 @@ void removeNormalNodes(ReebGraph *rg) ReebArc *arc, *nextArc; // Merge degree 2 nodes - for (arc = rg->arcs.first; arc; arc = nextArc) - { + for (arc = rg->arcs.first; arc; arc = nextArc) { nextArc = arc->next; - while (arc->head->degree == 2 || arc->tail->degree == 2) - { + while (arc->head->degree == 2 || arc->tail->degree == 2) { // merge at v1 - if (arc->head->degree == 2) - { + if (arc->head->degree == 2) { ReebArc *connectedArc = (ReebArc*)BLI_findConnectedArc((BGraph*)rg, (BArc*)arc, (BNode*)arc->head); /* If arcs are one after the other */ - if (arc->head == connectedArc->tail) - { + if (arc->head == connectedArc->tail) { /* remove furthest arc */ - if (arc->tail->weight < connectedArc->head->weight) - { + if (arc->tail->weight < connectedArc->head->weight) { mergeConnectedArcs(rg, arc, connectedArc); nextArc = arc->next; } - else - { + else { mergeConnectedArcs(rg, connectedArc, arc); break; /* arc was removed, move to next */ } } /* Otherwise, arcs are side by side */ - else - { + else { /* Don't do anything, we need to keep the lowest node, even if degree 2 */ break; } } - // merge at v2 - if (arc->tail->degree == 2) - { + /* merge at v2 */ + if (arc->tail->degree == 2) { ReebArc *connectedArc = (ReebArc*)BLI_findConnectedArc((BGraph*)rg, (BArc*)arc, (BNode*)arc->tail); /* If arcs are one after the other */ - if (arc->tail == connectedArc->head) - { + if (arc->tail == connectedArc->head) { /* remove furthest arc */ - if (arc->head->weight < connectedArc->tail->weight) - { + if (arc->head->weight < connectedArc->tail->weight) { mergeConnectedArcs(rg, arc, connectedArc); nextArc = arc->next; } - else - { + else { mergeConnectedArcs(rg, connectedArc, arc); break; /* arc was removed, move to next */ } } /* Otherwise, arcs are side by side */ - else - { + else { /* Don't do anything, we need to keep the lowest node, even if degree 2 */ break; } @@ -2176,13 +2052,11 @@ static ReebArc *nextArcMappedToEdge(ReebArc *arc, ReebEdge *e) ReebArc *result = NULL; /* Find the ReebEdge in the edge list */ - for (edge = arc->edges.first; edge && !edgeEquals(edge, e); edge = edge->next) - { } + for (edge = arc->edges.first; edge && !edgeEquals(edge, e); edge = edge->next) { } nextEdge = edge->nextEdge; - if (nextEdge != NULL) - { + if (nextEdge != NULL) { result = nextEdge->arc; } @@ -2211,51 +2085,42 @@ void mergeArcEdges(ReebGraph *rg, ReebArc *aDst, ReebArc *aSrc, MergeDirection d { ReebEdge *e = NULL; - if (direction == MERGE_APPEND) - { - for (e = aSrc->edges.first; e; e = e->next) - { + if (direction == MERGE_APPEND) { + for (e = aSrc->edges.first; e; e = e->next) { e->arc = aDst; // Edge is stolen by new arc } BLI_movelisttolist(&aDst->edges , &aSrc->edges); } - else - { - for (e = aSrc->edges.first; e; e = e->next) - { + else { + for (e = aSrc->edges.first; e; e = e->next) { ReebEdge *newEdge = copyEdge(e); newEdge->arc = aDst; BLI_addtail(&aDst->edges, newEdge); - if (direction == MERGE_LOWER) - { + if (direction == MERGE_LOWER) { void **p = BLI_edgehash_lookup_p(rg->emap, e->v1->index, e->v2->index); newEdge->nextEdge = e; // if edge was the first in the list, point the edit edge to the new reeb edge instead. - if (*p == e) - { + if (*p == e) { *p = (void*)newEdge; } // otherwise, advance in the list until the predecessor is found then insert it there - else - { + else { ReebEdge *previous = (ReebEdge*)*p; - while (previous->nextEdge != e) - { + while (previous->nextEdge != e) { previous = previous->nextEdge; } previous->nextEdge = newEdge; } } - else - { + else { newEdge->nextEdge = e->nextEdge; e->nextEdge = newEdge; } @@ -2275,13 +2140,11 @@ int mergeConnectedArcs(ReebGraph *rg, ReebArc *a0, ReebArc *a1) mergeArcFaces(rg, a0, a1); // Bring a0 to the combine length of both arcs - if (a0->tail == a1->head) - { + if (a0->tail == a1->head) { removedNode = a0->tail; a0->tail = a1->tail; } - else if (a0->head == a1->tail) - { + else if (a0->head == a1->tail) { removedNode = a0->head; a0->head = a1->head; } @@ -2303,11 +2166,9 @@ int mergeConnectedArcs(ReebGraph *rg, ReebArc *a0, ReebArc *a1) int mergeArcs(ReebGraph *rg, ReebArc *a0, ReebArc *a1) { int result = 0; - // TRIANGLE POINTS DOWN - if (a0->head->weight == a1->head->weight) // heads are the same - { - if (a0->tail->weight == a1->tail->weight) // tails also the same, arcs can be totally merge together - { + /* TRIANGLE POINTS DOWN */ + if (a0->head->weight == a1->head->weight) { /* heads are the same */ + if (a0->tail->weight == a1->tail->weight) { /* tails also the same, arcs can be totally merge together */ mergeArcEdges(rg, a0, a1, MERGE_APPEND); mergeArcFaces(rg, a0, a1); @@ -2325,8 +2186,7 @@ int mergeArcs(ReebGraph *rg, ReebArc *a0, ReebArc *a1) REEB_freeArc((BArc*)a1); result = 1; } - else if (a0->tail->weight > a1->tail->weight) // a1->tail->weight is in the middle - { + else if (a0->tail->weight > a1->tail->weight) { /* a1->tail->weight is in the middle */ mergeArcEdges(rg, a1, a0, MERGE_LOWER); mergeArcFaces(rg, a1, a0); @@ -2340,8 +2200,7 @@ int mergeArcs(ReebGraph *rg, ReebArc *a0, ReebArc *a1) a0->head = a1->tail; resizeArcBuckets(a0); } - else // a0>n2 is in the middle - { + else { /* a0>n2 is in the middle */ mergeArcEdges(rg, a0, a1, MERGE_LOWER); mergeArcFaces(rg, a0, a1); @@ -2356,11 +2215,9 @@ int mergeArcs(ReebGraph *rg, ReebArc *a0, ReebArc *a1) resizeArcBuckets(a1); } } - // TRIANGLE POINTS UP - else if (a0->tail->weight == a1->tail->weight) // tails are the same - { - if (a0->head->weight > a1->head->weight) // a0->head->weight is in the middle - { + /* TRIANGLE POINTS UP */ + else if (a0->tail->weight == a1->tail->weight) { /* tails are the same */ + if (a0->head->weight > a1->head->weight) { /* a0->head->weight is in the middle */ mergeArcEdges(rg, a0, a1, MERGE_HIGHER); mergeArcFaces(rg, a0, a1); @@ -2374,8 +2231,7 @@ int mergeArcs(ReebGraph *rg, ReebArc *a0, ReebArc *a1) a1->tail = a0->head; resizeArcBuckets(a1); } - else // a1->head->weight is in the middle - { + else { /* a1->head->weight is in the middle */ mergeArcEdges(rg, a1, a0, MERGE_HIGHER); mergeArcFaces(rg, a1, a0); @@ -2390,9 +2246,8 @@ int mergeArcs(ReebGraph *rg, ReebArc *a0, ReebArc *a1) resizeArcBuckets(a0); } } - else - { - // Need something here (OR NOT) + else { + /* Need something here (OR NOT) */ } return result; @@ -2401,18 +2256,14 @@ int mergeArcs(ReebGraph *rg, ReebArc *a0, ReebArc *a1) static void glueByMergeSort(ReebGraph *rg, ReebArc *a0, ReebArc *a1, ReebEdge *e0, ReebEdge *e1) { int total = 0; - while (total == 0 && a0 != a1 && a0 != NULL && a1 != NULL) - { + while (total == 0 && a0 != a1 && a0 != NULL && a1 != NULL) { total = mergeArcs(rg, a0, a1); - if (total == 0) // if it wasn't a total merge, go forward - { - if (a0->tail->weight < a1->tail->weight) - { + if (total == 0) // if it wasn't a total merge, go forward { + if (a0->tail->weight < a1->tail->weight) { a0 = nextArcMappedToEdge(a0, e0); } - else - { + else { a1 = nextArcMappedToEdge(a1, e1); } } @@ -2437,8 +2288,7 @@ static ReebEdge * createArc(ReebGraph *rg, ReebNode *node1, ReebNode *node2) edge = BLI_edgehash_lookup(rg->emap, node1->index, node2->index); // Only add existing edges that haven't been added yet - if (edge == NULL) - { + if (edge == NULL) { ReebArc *arc; ReebNode *v1, *v2; float len, offset; @@ -2451,13 +2301,11 @@ static ReebEdge * createArc(ReebGraph *rg, ReebNode *node1, ReebNode *node2) arc->symmetry_level = 0; arc->faces = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp, "createArc gh"); - if (node1->weight <= node2->weight) - { + if (node1->weight <= node2->weight) { v1 = node1; v2 = node2; } - else - { + else { v1 = node2; v2 = node1; } @@ -2497,8 +2345,7 @@ static ReebEdge * createArc(ReebGraph *rg, ReebNode *node1, ReebNode *node2) addVertToBucket(&(arc->buckets[arc->bcount - 1]), arc->tail->co); } #else - for (i = 0; i < arc->bcount; i++) - { + for (i = 0; i < arc->bcount; i++) { float co[3]; float f = (arc->buckets[i].val - offset) / len; @@ -2532,20 +2379,17 @@ static void addTriangleToGraph(ReebGraph *rg, ReebNode * n1, ReebNode * n2, Reeb /* The rest of the algorithm assumes that e1 is the longest edge */ - if (len1 >= len2 && len1 >= len3) - { + if (len1 >= len2 && len1 >= len3) { e1 = re1; e2 = re2; e3 = re3; } - else if (len2 >= len1 && len2 >= len3) - { + else if (len2 >= len1 && len2 >= len3) { e1 = re2; e2 = re1; e3 = re3; } - else - { + else { e1 = re3; e2 = re2; e3 = re1; @@ -2554,8 +2398,7 @@ static void addTriangleToGraph(ReebGraph *rg, ReebNode * n1, ReebNode * n2, Reeb /* And e2 is the lowest edge * If e3 is lower than e2, swap them */ - if (e3->v1->weight < e2->v1->weight) - { + if (e3->v1->weight < e2->v1->weight) { ReebEdge *etmp = e2; e2 = e3; e3 = etmp; @@ -2595,10 +2438,8 @@ ReebGraph * generateReebGraph(EditMesh *em, int subdivisions) renormalizeWeight(em, (float)rg->resolution); /* Adding vertice */ - for (index = 0, eve = em->verts.first; eve; eve = eve->next) - { - if (eve->h == 0) - { + for (index = 0, eve = em->verts.first; eve; eve = eve->next) { + if (eve->h == 0) { addNode(rg, eve); eve->f2 = 0; index++; @@ -2606,10 +2447,8 @@ ReebGraph * generateReebGraph(EditMesh *em, int subdivisions) } /* Adding face, edge per edge */ - for (efa = em->faces.first; efa; efa = efa->next) - { - if (efa->h == 0) - { + for (efa = em->faces.first; efa; efa = efa->next) { + if (efa->h == 0) { ReebNode *n1, *n2, *n3; n1 = nodeData(efa->v1); @@ -2618,15 +2457,13 @@ ReebGraph * generateReebGraph(EditMesh *em, int subdivisions) addTriangleToGraph(rg, n1, n2, n3, efa); - if (efa->v4) - { + if (efa->v4) { ReebNode *n4 = nodeData(efa->v4); addTriangleToGraph(rg, n1, n3, n4, efa); } #ifdef DEBUG_REEB countfaces++; - if (countfaces % 100 == 0) - { + if (countfaces % 100 == 0) { printf("\rface %i of %i", countfaces, totfaces); } #endif @@ -2656,8 +2493,7 @@ void renormalizeWeight(EditMesh *em, float newmax) eve = em->verts.first; minimum = weightData(eve); maximum = minimum; - for (; eve; eve = eve->next) - { + for (; eve; eve = eve->next) { maximum = MAX2(maximum, weightData(eve)); minimum = MIN2(minimum, weightData(eve)); } @@ -2665,8 +2501,7 @@ void renormalizeWeight(EditMesh *em, float newmax) range = maximum - minimum; /* Normalize weights */ - for (eve = em->verts.first; eve; eve = eve->next) - { + for (eve = em->verts.first; eve; eve = eve->next) { float weight = (weightData(eve) - minimum) / range * newmax; weightSetData(eve, weight); } @@ -2681,8 +2516,7 @@ int weightFromLoc(EditMesh *em, int axis) return 0; /* Copy coordinate in weight */ - for (eve = em->verts.first; eve; eve = eve->next) - { + for (eve = em->verts.first; eve; eve = eve->next) { weightSetData(eve, eve->co[axis]); } @@ -2745,8 +2579,7 @@ int weightToHarmonic(EditMesh *em, EdgeIndex *indexed_edges) int rval; /* Find local extrema */ - for (eve = em->verts.first; eve; eve = eve->next) - { + for (eve = em->verts.first; eve; eve = eve->next) { totvert++; } @@ -2759,52 +2592,42 @@ int weightToHarmonic(EditMesh *em, EdgeIndex *indexed_edges) nlBegin(NL_SYSTEM); /* Find local extrema */ - for (index = 0, eve = em->verts.first; eve; index++, eve = eve->next) - { - if (eve->h == 0) - { + for (index = 0, eve = em->verts.first; eve; index++, eve = eve->next) { + if (eve->h == 0) { EditEdge *eed; int maximum = 1; int minimum = 1; NextEdgeForVert(indexed_edges, -1); /* Reset next edge */ - for (eed = NextEdgeForVert(indexed_edges, index); eed && (maximum || minimum); eed = NextEdgeForVert(indexed_edges, index)) - { + for (eed = NextEdgeForVert(indexed_edges, index); eed && (maximum || minimum); eed = NextEdgeForVert(indexed_edges, index)) { EditVert *eve2; - if (eed->v1 == eve) - { + if (eed->v1 == eve) { eve2 = eed->v2; } - else - { + else { eve2 = eed->v1; } - if (eve2->h == 0) - { + if (eve2->h == 0) { /* Adjacent vertex is bigger, not a local maximum */ - if (weightData(eve2) > weightData(eve)) - { + if (weightData(eve2) > weightData(eve)) { maximum = 0; } /* Adjacent vertex is smaller, not a local minimum */ - else if (weightData(eve2) < weightData(eve)) - { + else if (weightData(eve2) < weightData(eve)) { minimum = 0; } } } - if (maximum || minimum) - { + if (maximum || minimum) { float w = weightData(eve); eve->f1 = 0; nlSetVariable(0, index, w); nlLockVariable(index); } - else - { + else { eve->f1 = 1; } } @@ -2813,38 +2636,30 @@ int weightToHarmonic(EditMesh *em, EdgeIndex *indexed_edges) nlBegin(NL_MATRIX); /* Zero edge weight */ - for (eed = em->edges.first; eed; eed = eed->next) - { + for (eed = em->edges.first; eed; eed = eed->next) { eed->tmp.l = 0; } /* Add faces count to the edge weight */ - for (efa = em->faces.first; efa; efa = efa->next) - { - if (efa->h == 0) - { + for (efa = em->faces.first; efa; efa = efa->next) { + if (efa->h == 0) { efa->e1->tmp.l++; efa->e2->tmp.l++; efa->e3->tmp.l++; - if (efa->e4) - { + if (efa->e4) { efa->e4->tmp.l++; } } } /* Add faces angle to the edge weight */ - for (efa = em->faces.first; efa; efa = efa->next) - { - if (efa->h == 0) - { - if (efa->v4 == NULL) - { + for (efa = em->faces.first; efa; efa = efa->next) { + if (efa->h == 0) { + if (efa->v4 == NULL) { addTriangle(efa->v1, efa->v2, efa->v3, efa->e1->tmp.l, efa->e2->tmp.l, efa->e3->tmp.l); } - else - { + else { addTriangle(efa->v1, efa->v2, efa->v3, efa->e1->tmp.l, efa->e2->tmp.l, 2); addTriangle(efa->v3, efa->v4, efa->v1, efa->e3->tmp.l, efa->e4->tmp.l, 2); } @@ -2857,16 +2672,13 @@ int weightToHarmonic(EditMesh *em, EdgeIndex *indexed_edges) success = nlSolveAdvanced(NULL, NL_TRUE); - if (success) - { + if (success) { rval = 1; - for (index = 0, eve = em->verts.first; eve; index++, eve = eve->next) - { + for (index = 0, eve = em->verts.first; eve; index++, eve = eve->next) { weightSetData(eve, nlGetVariable(0, index)); } } - else - { + else { rval = 0; } @@ -2881,20 +2693,17 @@ EditEdge * NextEdgeForVert(EdgeIndex *indexed_edges, int index) static int offset = -1; /* Reset method, call with NULL mesh pointer */ - if (index == -1) - { + if (index == -1) { offset = -1; return NULL; } /* first pass, start at the head of the list */ - if (offset == -1) - { + if (offset == -1) { offset = indexed_edges->offset[index]; } /* subsequent passes, start on the next edge */ - else - { + else { offset++; } @@ -2916,23 +2725,19 @@ static void shortestPathsFromVert(EditMesh *em, EditVert *starting_vert, EdgeInd BLI_heap_insert(edge_heap, FLT_MAX, NULL); /* Initialize edge flag */ - for (eed= em->edges.first; eed; eed= eed->next) - { + for (eed= em->edges.first; eed; eed= eed->next) { eed->f1 = 0; } - while (BLI_heap_size(edge_heap) > 0) - { + while (BLI_heap_size(edge_heap) > 0) { float current_weight; current_eve->f1 = 1; /* mark vertex as selected */ /* Add all new edges connected to current_eve to the list */ NextEdgeForVert(indexed_edges, -1); // Reset next edge - for (eed = NextEdgeForVert(indexed_edges, indexData(current_eve)); eed; eed = NextEdgeForVert(indexed_edges, indexData(current_eve))) - { - if (eed->f1 == 0) - { + for (eed = NextEdgeForVert(indexed_edges, indexData(current_eve)); eed; eed = NextEdgeForVert(indexed_edges, indexData(current_eve))) { + if (eed->f1 == 0) { BLI_heap_insert(edge_heap, weightData(current_eve) + eed->tmp.fp, eed); eed->f1 = 1; } @@ -2945,16 +2750,13 @@ static void shortestPathsFromVert(EditMesh *em, EditVert *starting_vert, EdgeInd select_eed = BLI_heap_popmin(edge_heap); } while (select_eed != NULL && select_eed->v1->f1 != 0 && select_eed->v2->f1); - if (select_eed != NULL) - { + if (select_eed != NULL) { select_eed->f1 = 2; - if (select_eed->v1->f1 == 0) /* v1 is the new vertex */ - { + if (select_eed->v1->f1 == 0) /* v1 is the new vertex */ { current_eve = select_eed->v1; } - else /* otherwise, it's v2 */ - { + else { /* otherwise, it's v2 */ current_eve = select_eed->v2; } @@ -2983,10 +2785,8 @@ static void buildIndexedEdges(EditMesh *em, EdgeIndex *indexed_edges) indexed_edges->offset = MEM_callocN(totvert * sizeof(int), "EdgeIndex offset"); - for (eed = em->edges.first; eed; eed = eed->next) - { - if (eed->v1->h == 0 && eed->v2->h == 0) - { + for (eed = em->edges.first; eed; eed = eed->next) { + if (eed->v1->h == 0 && eed->v2->h == 0) { tot_indexed += 2; indexed_edges->offset[indexData(eed->v1)]++; indexed_edges->offset[indexData(eed->v2)]++; @@ -2998,10 +2798,8 @@ static void buildIndexedEdges(EditMesh *em, EdgeIndex *indexed_edges) indexed_edges->edges = MEM_callocN(tot_indexed * sizeof(EditEdge*), "EdgeIndex edges"); /* setting vert offsets */ - for (eve = em->verts.first; eve; eve = eve->next) - { - if (eve->h == 0) - { + for (eve = em->verts.first; eve; eve = eve->next) { + if (eve->h == 0) { int d = indexed_edges->offset[indexData(eve)]; indexed_edges->offset[indexData(eve)] = offset; offset += d + 1; @@ -3009,24 +2807,18 @@ static void buildIndexedEdges(EditMesh *em, EdgeIndex *indexed_edges) } /* adding edges in array */ - for (eed = em->edges.first; eed; eed= eed->next) - { - if (eed->v1->h == 0 && eed->v2->h == 0) - { + for (eed = em->edges.first; eed; eed= eed->next) { + if (eed->v1->h == 0 && eed->v2->h == 0) { int i; - for (i = indexed_edges->offset[indexData(eed->v1)]; i < tot_indexed; i++) - { - if (indexed_edges->edges[i] == NULL) - { + for (i = indexed_edges->offset[indexData(eed->v1)]; i < tot_indexed; i++) { + if (indexed_edges->edges[i] == NULL) { indexed_edges->edges[i] = eed; break; } } - for (i = indexed_edges->offset[indexData(eed->v2)]; i < tot_indexed; i++) - { - if (indexed_edges->edges[i] == NULL) - { + for (i = indexed_edges->offset[indexData(eed->v2)]; i < tot_indexed; i++) { + if (indexed_edges->edges[i] == NULL) { indexed_edges->edges[i] = eed; break; } @@ -3044,80 +2836,64 @@ int weightFromDistance(EditMesh *em, EdgeIndex *indexed_edges) totvert = BLI_countlist(&em->verts); - if (em == NULL || totvert == 0) - { + if (em == NULL || totvert == 0) { return 0; } totedge = BLI_countlist(&em->edges); - if (totedge == 0) - { + if (totedge == 0) { return 0; } /* Initialize vertice flag and find at least one selected vertex */ - for (eve = em->verts.first; eve; eve = eve->next) - { + for (eve = em->verts.first; eve; eve = eve->next) { eve->f1 = 0; - if (eve->f & SELECT) - { + if (eve->f & SELECT) { vCount = 1; } } - if (vCount == 0) - { + if (vCount == 0) { return 0; /* no selected vert, failure */ } - else - { + else { EditEdge *eed; int allDone = 0; /* Calculate edge weight */ - for (eed = em->edges.first; eed; eed= eed->next) - { - if (eed->v1->h == 0 && eed->v2->h == 0) - { + for (eed = em->edges.first; eed; eed= eed->next) { + if (eed->v1->h == 0 && eed->v2->h == 0) { eed->tmp.fp = len_v3v3(eed->v1->co, eed->v2->co); } } /* Apply dijkstra spf for each selected vert */ - for (eve = em->verts.first; eve; eve = eve->next) - { - if (eve->f & SELECT) - { + for (eve = em->verts.first; eve; eve = eve->next) { + if (eve->f & SELECT) { shortestPathsFromVert(em, eve, indexed_edges); } } /* connect unselected islands */ - while (allDone == 0) - { + while (allDone == 0) { EditVert *selected_eve = NULL; float selected_weight = 0; float min_distance = FLT_MAX; allDone = 1; - for (eve = em->verts.first; eve; eve = eve->next) - { + for (eve = em->verts.first; eve; eve = eve->next) { /* for every vertex visible that hasn't been processed yet */ - if (eve->h == 0 && eve->f1 != 1) - { + if (eve->h == 0 && eve->f1 != 1) { EditVert *closest_eve; /* find the closest processed vertex */ - for (closest_eve = em->verts.first; closest_eve; closest_eve = closest_eve->next) - { + for (closest_eve = em->verts.first; closest_eve; closest_eve = closest_eve->next) { /* vertex is already processed and distance is smaller than current minimum */ - if (closest_eve->f1 == 1) - { + if (closest_eve->f1 == 1) { float distance = len_v3v3(closest_eve->co, eve->co); - if (distance < min_distance) - { + if (distance < min_distance) { min_distance = distance; selected_eve = eve; selected_weight = weightData(closest_eve); @@ -3127,8 +2903,7 @@ int weightFromDistance(EditMesh *em, EdgeIndex *indexed_edges) } } - if (selected_eve) - { + if (selected_eve) { allDone = 0; weightSetData(selected_eve, selected_weight + min_distance); @@ -3137,10 +2912,8 @@ int weightFromDistance(EditMesh *em, EdgeIndex *indexed_edges) } } - for (eve = em->verts.first; eve && vCount == 0; eve = eve->next) - { - if (eve->f1 == 0) - { + for (eve = em->verts.first; eve && vCount == 0; eve = eve->next) { + if (eve->f1 == 0) { printf("vertex not reached\n"); break; } @@ -3173,13 +2946,11 @@ static void initIteratorFct(ReebArcIterator *iter) static void setIteratorValues(ReebArcIterator *iter, EmbedBucket *bucket) { - if (bucket) - { + if (bucket) { iter->p = bucket->p; iter->no = bucket->no; } - else - { + else { iter->p = NULL; iter->no = NULL; } @@ -3193,14 +2964,12 @@ void initArcIterator(BArcIterator *arg, ReebArc *arc, ReebNode *head) initIteratorFct(iter); iter->arc = arc; - if (head == arc->head) - { + if (head == arc->head) { iter->start = 0; iter->end = arc->bcount - 1; iter->stride = 1; } - else - { + else { iter->start = arc->bcount - 1; iter->end = 0; iter->stride = -1; @@ -3218,14 +2987,12 @@ void initArcIteratorStart(BArcIterator *arg, struct ReebArc *arc, struct ReebNod initIteratorFct(iter); iter->arc = arc; - if (head == arc->head) - { + if (head == arc->head) { iter->start = start; iter->end = arc->bcount - 1; iter->stride = 1; } - else - { + else { iter->start = arc->bcount - 1 - start; iter->end = 0; iter->stride = -1; @@ -3235,8 +3002,7 @@ void initArcIteratorStart(BArcIterator *arg, struct ReebArc *arc, struct ReebNod iter->length = arc->bcount - start; - if (start >= arc->bcount) - { + if (start >= arc->bcount) { iter->start = iter->end; /* stop iterator since it's past its end */ } } @@ -3251,12 +3017,10 @@ void initArcIterator2(BArcIterator *arg, ReebArc *arc, int start, int end) iter->start = start; iter->end = end; - if (end > start) - { + if (end > start) { iter->stride = 1; } - else - { + else { iter->stride = -1; } @@ -3270,12 +3034,10 @@ static void* headNode(void *arg) ReebArcIterator *iter = (ReebArcIterator*)arg; ReebNode *node; - if (iter->start < iter->end) - { + if (iter->start < iter->end) { node = iter->arc->head; } - else - { + else { node = iter->arc->tail; } @@ -3291,12 +3053,10 @@ static void* tailNode(void *arg) ReebArcIterator *iter = (ReebArcIterator*)arg; ReebNode *node; - if (iter->start < iter->end) - { + if (iter->start < iter->end) { node = iter->arc->tail; } - else - { + else { node = iter->arc->head; } @@ -3314,8 +3074,7 @@ static void* nextBucket(void *arg) iter->index++; - if (iter->index < iter->length) - { + if (iter->index < iter->length) { result = &(iter->arc->buckets[iter->start + (iter->stride * iter->index)]); } @@ -3331,8 +3090,7 @@ static void* nextNBucket(void *arg, int n) iter->index += n; /* check if passed end */ - if (iter->index < iter->length) - { + if (iter->index < iter->length) { result = &(iter->arc->buckets[iter->start + (iter->stride * iter->index)]); } @@ -3347,8 +3105,7 @@ static void* peekBucket(void *arg, int n) int index = iter->index + n; /* check if passed end */ - if (index < iter->length) - { + if (index < iter->length) { result = &(iter->arc->buckets[iter->start + (iter->stride * index)]); } @@ -3361,8 +3118,7 @@ static void* previousBucket(void *arg) ReebArcIterator *iter = (ReebArcIterator*)arg; EmbedBucket *result = NULL; - if (iter->index > 0) - { + if (iter->index > 0) { iter->index--; result = &(iter->arc->buckets[iter->start + (iter->stride * iter->index)]); } @@ -3375,12 +3131,10 @@ static int iteratorStopped(void *arg) { ReebArcIterator *iter = (ReebArcIterator*)arg; - if (iter->index >= iter->length) - { + if (iter->index >= iter->length) { return 1; } - else - { + else { return 0; } } diff --git a/source/blender/editors/curve/editcurve.c b/source/blender/editors/curve/editcurve.c index c19041b817e..e65b4280dc9 100644 --- a/source/blender/editors/curve/editcurve.c +++ b/source/blender/editors/curve/editcurve.c @@ -132,7 +132,7 @@ static void set_actNurb(Object *obedit, Nurb *nu) if (nu==NULL) cu->actnu = -1; else { - ListBase *nurbs= curve_editnurbs(cu); + ListBase *nurbs= BKE_curve_editNurbs_get(cu); cu->actnu = BLI_findindex(nurbs, nu); } } @@ -140,7 +140,7 @@ static void set_actNurb(Object *obedit, Nurb *nu) static Nurb *get_actNurb(Object *obedit) { Curve *cu= obedit->data; - ListBase *nurbs= curve_editnurbs(cu); + ListBase *nurbs= BKE_curve_editNurbs_get(cu); return BLI_findlink(nurbs, cu->actnu); } @@ -736,7 +736,7 @@ static void calc_keyHandles(ListBase *nurb, float *key) if (nextp) key_to_bezt(nextfp, nextp, &next); if (prevp) key_to_bezt(prevfp, prevp, &prev); - calchandleNurb(&cur, prevp ? &prev : NULL, nextp ? &next : NULL, 0); + BKE_nurb_handle_calc(&cur, prevp ? &prev : NULL, nextp ? &next : NULL, 0); bezt_to_key(&cur, fp); prevp= bezt; @@ -782,7 +782,7 @@ static void calc_shapeKeys(Object *obedit) BezTriple *bezt, *oldbezt; BPoint *bp, *oldbp; Nurb *nu; - int totvert= count_curveverts(&editnurb->nurbs); + int totvert= BKE_nurbList_verts_count(&editnurb->nurbs); float (*ofs)[3] = NULL; float *oldkey, *newkey, *ofp; @@ -1207,11 +1207,11 @@ void load_editNurb(Object *obedit) ListBase newnurb= {NULL, NULL}, oldnurb= cu->nurb; for (nu= editnurb->first; nu; nu= nu->next) { - newnu= duplicateNurb(nu); + newnu= BKE_nurb_duplicate(nu); BLI_addtail(&newnurb, newnu); if (nu->type == CU_NURBS) { - clamp_nurb_order_u(nu); + BKE_nurb_order_clamp_u(nu); } } @@ -1220,7 +1220,7 @@ void load_editNurb(Object *obedit) calc_shapeKeys(obedit); ED_curve_updateAnimPaths(obedit->data); - freeNurblist(&oldnurb); + BKE_nurbList_free(&oldnurb); } set_actNurb(obedit, NULL); @@ -1247,8 +1247,8 @@ void make_editNurb(Object *obedit) } if (editnurb) { - freeNurblist(&editnurb->nurbs); - free_curve_editNurb_keyIndex(editnurb); + BKE_nurbList_free(&editnurb->nurbs); + BKE_curve_editNurb_keyIndex_free(editnurb); editnurb->keyindex= NULL; } else { @@ -1260,8 +1260,8 @@ void make_editNurb(Object *obedit) cu->lastsel= NULL; /* for select row */ while (nu) { - newnu= duplicateNurb(nu); - test2DNurb(newnu); // after join, or any other creation of curve + newnu= BKE_nurb_duplicate(nu); + BKE_nurb_test2D(newnu); // after join, or any other creation of curve BLI_addtail(&editnurb->nurbs, newnu); if (nu_act == NULL && isNurbsel(nu)) { @@ -1285,7 +1285,7 @@ void free_editNurb(Object *obedit) { Curve *cu= obedit->data; - free_curve_editNurb(cu); + BKE_curve_editNurb_free(cu); } void CU_deselect_all(Object *obedit) @@ -1377,15 +1377,15 @@ static int separate_exec(bContext *C, wmOperator *op) ED_base_object_select(newbase, BA_DESELECT); newob= newbase->object; - newcu= newob->data= copy_curve(oldcu); + newcu= newob->data= BKE_curve_copy(oldcu); newcu->editnurb= NULL; oldcu->id.us--; /* because new curve is a copy: reduce user count */ /* 2. put new object in editmode and clear it */ make_editNurb(newob); newedit= newcu->editnurb; - freeNurblist(&newedit->nurbs); - free_curve_editNurb_keyIndex(newedit); + BKE_nurbList_free(&newedit->nurbs); + BKE_curve_editNurb_keyIndex_free(newedit); /* 3. move over parts from old object */ for (nu= oldedit->nurbs.first; nu; nu=nu1) { @@ -1547,7 +1547,7 @@ static void translateflagNurb(ListBase *editnurb, short flag, const float vec[3] } } - test2DNurb(nu); + BKE_nurb_test2D(nu); } } @@ -1602,7 +1602,7 @@ static int deleteflagNurb(bContext *C, wmOperator *UNUSED(op), int flag) if (a==0) { BLI_remlink(editnurb, nu); keyIndex_delNurb(cu->editnurb, nu); - freeNurb(nu); nu=NULL; + BKE_nurb_free(nu); nu=NULL; } else { /* is nurb in U direction selected */ @@ -1640,9 +1640,9 @@ static int deleteflagNurb(bContext *C, wmOperator *UNUSED(op), int flag) nu->pntsv= newv; MEM_freeN(nu->bp); nu->bp= newbp; - clamp_nurb_order_v(nu); + BKE_nurb_order_clamp_v(nu); - nurbs_knot_calc_v(nu); + BKE_nurb_knot_calc_v(nu); } else { /* is the nurb in V direction selected */ @@ -1684,15 +1684,15 @@ static int deleteflagNurb(bContext *C, wmOperator *UNUSED(op), int flag) nu->pntsu= nu->pntsv; nu->pntsv= 1; SWAP(short, nu->orderu, nu->orderv); - clamp_nurb_order_u(nu); + BKE_nurb_order_clamp_u(nu); if (nu->knotsv) MEM_freeN(nu->knotsv); nu->knotsv= NULL; } else { nu->pntsu= newu; - clamp_nurb_order_u(nu); + BKE_nurb_order_clamp_u(nu); } - nurbs_knot_calc_u(nu); + BKE_nurb_knot_calc_u(nu); } } } @@ -1743,7 +1743,7 @@ static short extrudeflagNurb(EditNurb *editnurb, int flag) nu->pntsv= 2; nu->orderv= 2; - nurbs_knot_calc_v(nu); + BKE_nurb_knot_calc_v(nu); } } else { @@ -1786,7 +1786,7 @@ static short extrudeflagNurb(EditNurb *editnurb, int flag) MEM_freeN(nu->bp); nu->bp= newbp; nu->pntsv++; - nurbs_knot_calc_v(nu); + BKE_nurb_knot_calc_v(nu); } else if (v==0 || v== nu->pntsu-1) { /* column in v-direction selected */ ok= 1; @@ -1813,7 +1813,7 @@ static short extrudeflagNurb(EditNurb *editnurb, int flag) MEM_freeN(nu->bp); nu->bp= newbp; nu->pntsu++; - nurbs_knot_calc_u(nu); + BKE_nurb_knot_calc_u(nu); } } } @@ -1911,7 +1911,7 @@ static void adduplicateflagNurb(Object *obedit, short flag) /* knots */ newnu->knotsu= NULL; - nurbs_knot_calc_u(newnu); + BKE_nurb_knot_calc_u(newnu); } bp++; } @@ -1956,8 +1956,8 @@ static void adduplicateflagNurb(Object *obedit, short flag) newnu->pntsv= newv; newnu->bp = (BPoint*)MEM_mallocN(newu * newv * sizeof(BPoint), "adduplicateN6"); - clamp_nurb_order_u(newnu); - clamp_nurb_order_v(newnu); + BKE_nurb_order_clamp_u(newnu); + BKE_nurb_order_clamp_v(newnu); newnu->knotsu= newnu->knotsv= NULL; @@ -1972,20 +1972,20 @@ static void adduplicateflagNurb(Object *obedit, short flag) } } } - if (check_valid_nurb_u(newnu)) { + if (BKE_nurb_check_valid_u(newnu)) { if (nu->pntsu==newnu->pntsu && nu->knotsu) { newnu->knotsu= MEM_dupallocN( nu->knotsu ); } else { - nurbs_knot_calc_u(newnu); + BKE_nurb_knot_calc_u(newnu); } } - if (check_valid_nurb_v(newnu)) { + if (BKE_nurb_check_valid_v(newnu)) { if (nu->pntsv==newnu->pntsv && nu->knotsv) { newnu->knotsv= MEM_dupallocN( nu->knotsv ); } else { - nurbs_knot_calc_v(newnu); + BKE_nurb_knot_calc_v(newnu); } } } @@ -2010,7 +2010,7 @@ static int switch_direction_exec(bContext *C, wmOperator *UNUSED(op)) for (nu= editnurb->nurbs.first; nu; nu= nu->next) if (isNurbsel(nu)) { - switchdirectionNurb(nu); + BKE_nurb_direction_switch(nu); keyData_switchDirectionNurb(cu, nu); } @@ -2174,7 +2174,7 @@ static int smooth_exec(bContext *C, wmOperator *UNUSED(op)) } MEM_freeN(beztOrig); if (change) - calchandlesNurb(nu); + BKE_nurb_handles_calc(nu); } else if (nu->bp) { bpOrig = MEM_dupallocN( nu->bp ); @@ -2893,7 +2893,7 @@ static void subdividenurb(Object *obedit, int number_cuts) nu->bezt= beztnew; nu->pntsu+= amount; - calchandlesNurb(nu); + BKE_nurb_handles_calc(nu); } } /* End of 'if (nu->type == CU_BEZIER)' */ else if (nu->pntsv==1) { @@ -2965,7 +2965,7 @@ static void subdividenurb(Object *obedit, int number_cuts) nu->pntsu+= amount; if (nu->type & CU_NURBS) { - nurbs_knot_calc_u(nu); + BKE_nurb_knot_calc_u(nu); } } } /* End of 'else if (nu->pntsv==1)' */ @@ -3086,8 +3086,8 @@ static void subdividenurb(Object *obedit, int number_cuts) nu->bp= bpnew; nu->pntsu= (number_cuts+1)*nu->pntsu-number_cuts; nu->pntsv= (number_cuts+1)*nu->pntsv-number_cuts; - nurbs_knot_calc_u(nu); - nurbs_knot_calc_v(nu); + BKE_nurb_knot_calc_u(nu); + BKE_nurb_knot_calc_v(nu); } /* End of 'if (sel== nu->pntsu*nu->pntsv)' (subdivide entire NURB) */ else { /* subdivide in v direction? */ @@ -3132,7 +3132,7 @@ static void subdividenurb(Object *obedit, int number_cuts) MEM_freeN(nu->bp); nu->bp= bpnew; nu->pntsv+= sel; - nurbs_knot_calc_v(nu); + BKE_nurb_knot_calc_v(nu); } else { /* or in u direction? */ @@ -3173,7 +3173,7 @@ static void subdividenurb(Object *obedit, int number_cuts) MEM_freeN(nu->bp); nu->bp= bpnew; nu->pntsu+= sel; - nurbs_knot_calc_u(nu); /* shift knots forward */ + BKE_nurb_knot_calc_u(nu); /* shift knots forward */ } } } @@ -3373,13 +3373,13 @@ static int convertspline(short type, Nurb *nu) nu->bp= NULL; nu->pntsu= nr; nu->type = CU_BEZIER; - calchandlesNurb(nu); + BKE_nurb_handles_calc(nu); } else if (type==CU_NURBS) { nu->type = CU_NURBS; nu->orderu= 4; nu->flagu &= CU_NURB_CYCLIC; /* disable all flags except for cyclic */ - nurbs_knot_calc_u(nu); + BKE_nurb_knot_calc_u(nu); a= nu->pntsu*nu->pntsv; bp= nu->bp; while (a--) { @@ -3436,7 +3436,7 @@ static int convertspline(short type, Nurb *nu) if (type== CU_NURBS) { nu->flagu &= CU_NURB_CYCLIC; /* disable all flags except for cyclic */ nu->flagu |= CU_NURB_BEZIER; - nurbs_knot_calc_u(nu); + BKE_nurb_knot_calc_u(nu); } } } @@ -3559,7 +3559,7 @@ static int set_handle_type_exec(bContext *C, wmOperator *op) Object *obedit= CTX_data_edit_object(C); ListBase *editnurb= object_editcurve_get(obedit); - sethandlesNurb(editnurb, RNA_enum_get(op->ptr, "type")); + BKE_nurbList_handles_set(editnurb, RNA_enum_get(op->ptr, "type")); WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data); DAG_id_tag_update(obedit->data, 0); @@ -3865,15 +3865,15 @@ static void merge_2_nurb(wmOperator *op, ListBase *editnurb, Nurb *nu1, Nurb *nu if (nu1->type == CU_NURBS) { /* merge knots */ - nurbs_knot_calc_u(nu1); + BKE_nurb_knot_calc_u(nu1); /* make knots, for merged curved for example */ - nurbs_knot_calc_v(nu1); + BKE_nurb_knot_calc_v(nu1); } MEM_freeN(temp); BLI_remlink(editnurb, nu2); - freeNurb(nu2); + BKE_nurb_free(nu2); } static int merge_nurb(bContext *C, wmOperator *op) @@ -3976,7 +3976,7 @@ static int make_segment_exec(bContext *C, wmOperator *op) else { if ( BEZSELECTED_HIDDENHANDLES(cu, &(nu->bezt[nu->pntsu-1])) ) { nu1= nu; - switchdirectionNurb(nu); + BKE_nurb_direction_switch(nu); keyData_switchDirectionNurb(cu, nu); } } @@ -3984,7 +3984,7 @@ static int make_segment_exec(bContext *C, wmOperator *op) else if (nu2==NULL) { if ( BEZSELECTED_HIDDENHANDLES(cu, nu->bezt) ) { nu2= nu; - switchdirectionNurb(nu); + BKE_nurb_direction_switch(nu); keyData_switchDirectionNurb(cu, nu); } else { @@ -4003,7 +4003,7 @@ static int make_segment_exec(bContext *C, wmOperator *op) bp= bp+(nu->pntsu-1); if ( bp->f1 & SELECT ) { nu1= nu; - switchdirectionNurb(nu); + BKE_nurb_direction_switch(nu); keyData_switchDirectionNurb(cu, nu); } } @@ -4011,7 +4011,7 @@ static int make_segment_exec(bContext *C, wmOperator *op) else if (nu2==NULL) { if ( bp->f1 & SELECT ) { nu2= nu; - switchdirectionNurb(nu); + BKE_nurb_direction_switch(nu); keyData_switchDirectionNurb(cu, nu); } else { @@ -4038,8 +4038,8 @@ static int make_segment_exec(bContext *C, wmOperator *op) nu1->bezt= bezt; nu1->pntsu+= nu2->pntsu; BLI_remlink(nubase, nu2); - freeNurb(nu2); nu2= NULL; - calchandlesNurb(nu1); + BKE_nurb_free(nu2); nu2= NULL; + BKE_nurb_handles_calc(nu1); } else { bp = @@ -4057,7 +4057,7 @@ static int make_segment_exec(bContext *C, wmOperator *op) /* now join the knots */ if (nu1->type == CU_NURBS) { if (nu1->knotsu==NULL) { - nurbs_knot_calc_u(nu1); + BKE_nurb_knot_calc_u(nu1); } else { fp= MEM_mallocN(sizeof(float)*KNOTSU(nu1), "addsegment3"); @@ -4076,7 +4076,7 @@ static int make_segment_exec(bContext *C, wmOperator *op) } } } - freeNurb(nu2); nu2= NULL; + BKE_nurb_free(nu2); nu2= NULL; } set_actNurb(obedit, nu1); /* for selected */ @@ -4088,12 +4088,12 @@ static int make_segment_exec(bContext *C, wmOperator *op) if (nu1->type == CU_BEZIER && BEZSELECTED_HIDDENHANDLES(cu, nu1->bezt) && BEZSELECTED_HIDDENHANDLES(cu, nu1->bezt+(nu1->pntsu-1))) { nu1->flagu|= CU_NURB_CYCLIC; - calchandlesNurb(nu1); + BKE_nurb_handles_calc(nu1); ok= 1; } else if (nu1->type == CU_NURBS && nu1->bp->f1&SELECT && (nu1->bp+(nu1->pntsu-1))->f1&SELECT) { nu1->flagu|= CU_NURB_CYCLIC; - nurbs_knot_calc_u(nu1); + BKE_nurb_knot_calc_u(nu1); ok= 1; } } @@ -4293,7 +4293,7 @@ static int spin_nurb(float viewmat[][4], Object *obedit, float *axis, float *cen if (isNurbsel(nu)) { nu->orderv= 4; nu->flagv |= CU_NURB_CYCLIC; - nurbs_knot_calc_v(nu); + BKE_nurb_knot_calc_v(nu); } } } @@ -4446,7 +4446,7 @@ static int addvert_Nurb(bContext *C, short mode, float location[3]) newbp->vec[3]= 1.0; newnu->knotsu= newnu->knotsv= NULL; - nurbs_knot_calc_u(newnu); + BKE_nurb_knot_calc_u(newnu); ok= 1; nu= newnu; @@ -4538,7 +4538,7 @@ static int addvert_Nurb(bContext *C, short mode, float location[3]) if (bezt_recalc[1]) { const char h1 = bezt_recalc[1]->h1, h2 = bezt_recalc[1]->h2; bezt_recalc[1]->h1 = bezt_recalc[1]->h2 = HD_AUTO; - calchandleNurb(bezt_recalc[1], bezt_recalc[0], bezt_recalc[2], 0); + BKE_nurb_handle_calc(bezt_recalc[1], bezt_recalc[0], bezt_recalc[2], 0); bezt_recalc[1]->h1 = h1; bezt_recalc[1]->h2 = h2; } @@ -4548,8 +4548,8 @@ static int addvert_Nurb(bContext *C, short mode, float location[3]) } - if (newnu) calchandlesNurb(newnu); - else calchandlesNurb(nu); + if (newnu) BKE_nurb_handles_calc(newnu); + else BKE_nurb_handles_calc(nu); } } } @@ -4617,14 +4617,14 @@ static int addvert_Nurb(bContext *C, short mode, float location[3]) if (!newnu) { nu->pntsu++; - nurbs_knot_calc_u(nu); + BKE_nurb_knot_calc_u(nu); } - else nurbs_knot_calc_u(newnu); + else BKE_nurb_knot_calc_u(newnu); } } if (ok) { - test2DNurb(nu); + BKE_nurb_test2D(nu); if (ED_curve_updateAnimPaths(obedit->data)) WM_event_add_notifier(C, NC_OBJECT|ND_KEYS, obedit); @@ -4783,7 +4783,7 @@ static int toggle_cyclic_exec(bContext *C, wmOperator *op) } bezt++; } - calchandlesNurb(nu); + BKE_nurb_handles_calc(nu); } else if (nu->pntsv==1 && nu->type == CU_NURBS) { if (nu->knotsu) { /* if check_valid_nurb_u fails the knotsu can be NULL */ @@ -4792,7 +4792,7 @@ static int toggle_cyclic_exec(bContext *C, wmOperator *op) while (a--) { if ( bp->f1 & SELECT ) { nu->flagu ^= CU_NURB_CYCLIC; - nurbs_knot_calc_u(nu); /* 1==u type is ignored for cyclic curves */ + BKE_nurb_knot_calc_u(nu); /* 1==u type is ignored for cyclic curves */ break; } bp++; @@ -4807,11 +4807,11 @@ static int toggle_cyclic_exec(bContext *C, wmOperator *op) if ( bp->f1 & SELECT) { if (direction==0 && nu->pntsu>1) { nu->flagu ^= CU_NURB_CYCLIC; - nurbs_knot_calc_u(nu); /* 1==u type is ignored for cyclic curves */ + BKE_nurb_knot_calc_u(nu); /* 1==u type is ignored for cyclic curves */ } if (direction==1 && nu->pntsv>1) { nu->flagv ^= CU_NURB_CYCLIC; - nurbs_knot_calc_v(nu); /* 2==v type is ignored for cyclic curves */ + BKE_nurb_knot_calc_v(nu); /* 2==v type is ignored for cyclic curves */ } break; } @@ -5472,7 +5472,7 @@ static int point_on_nurb(Nurb *nu, void *point) static Nurb *get_lastsel_nurb(Curve *cu) { - ListBase *nubase= curve_editnurbs(cu); + ListBase *nubase= BKE_curve_editNurbs_get(cu); Nurb *nu= nubase->first; if (!cu->lastsel) @@ -5638,7 +5638,7 @@ static int delete_exec(bContext *C, wmOperator *op) } else { keyIndex_delNurbList(editnurb, nubase); - freeNurblist(nubase); + BKE_nurbList_free(nubase); if (ED_curve_updateAnimPaths(obedit->data)) WM_event_add_notifier(C, NC_OBJECT|ND_KEYS, obedit); @@ -5672,7 +5672,7 @@ static int delete_exec(bContext *C, wmOperator *op) BLI_remlink(nubase, nu); keyIndex_delNurb(editnurb, nu); - freeNurb(nu); nu= NULL; + BKE_nurb_free(nu); nu= NULL; } } } @@ -5692,7 +5692,7 @@ static int delete_exec(bContext *C, wmOperator *op) BLI_remlink(nubase, nu); keyIndex_delNurb(editnurb, nu); - freeNurb(nu); nu= NULL; + BKE_nurb_free(nu); nu= NULL; } } } @@ -5734,7 +5734,7 @@ static int delete_exec(bContext *C, wmOperator *op) keyIndex_updateBezt(editnurb, nu->bezt, bezt1, nu->pntsu); MEM_freeN(nu->bezt); nu->bezt= bezt1; - calchandlesNurb(nu); + BKE_nurb_handles_calc(nu); } } else if (nu->pntsv==1) { @@ -5770,8 +5770,8 @@ static int delete_exec(bContext *C, wmOperator *op) } #endif } - clamp_nurb_order_u(nu); - nurbs_knot_calc_u(nu); + BKE_nurb_order_clamp_u(nu); + BKE_nurb_knot_calc_u(nu); } nu= next; } @@ -5797,7 +5797,7 @@ static int delete_exec(bContext *C, wmOperator *op) bezt2= bezt+(nu->pntsu-1); if ( (bezt2->f1 & SELECT) || (bezt2->f2 & SELECT) || (bezt2->f3 & SELECT) ) { nu->flagu &= ~CU_NURB_CYCLIC; - calchandlesNurb(nu); + BKE_nurb_handles_calc(nu); WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data); DAG_id_tag_update(obedit->data, 0); } @@ -5850,7 +5850,7 @@ static int delete_exec(bContext *C, wmOperator *op) cu->actnu= -1; BLI_remlink(nubase, nu); - freeNurb(nu); nu = NULL; + BKE_nurb_free(nu); nu = NULL; } else if (nu1->flagu & CU_NURB_CYCLIC) { /* cyclic */ bezt = @@ -5862,7 +5862,7 @@ static int delete_exec(bContext *C, wmOperator *op) nu1->flagu &= ~CU_NURB_CYCLIC; MEM_freeN(bezt); - calchandlesNurb(nu); + BKE_nurb_handles_calc(nu); } else { /* add new curve */ @@ -5886,8 +5886,8 @@ static int delete_exec(bContext *C, wmOperator *op) nu->pntsu= cut+1; - calchandlesNurb(nu); - calchandlesNurb(nu1); + BKE_nurb_handles_calc(nu); + BKE_nurb_handles_calc(nu1); } } else if (bp1) { @@ -5896,7 +5896,7 @@ static int delete_exec(bContext *C, wmOperator *op) cu->actnu= -1; BLI_remlink(nubase, nu); - freeNurb(nu); nu= NULL; + BKE_nurb_free(nu); nu= NULL; } else if (nu1->flagu & CU_NURB_CYCLIC) { /* cyclic */ bp = @@ -5926,11 +5926,11 @@ static int delete_exec(bContext *C, wmOperator *op) nu1->knotsu= NULL; nu->pntsu= cut+1; - clamp_nurb_order_u(nu); - nurbs_knot_calc_u(nu); + BKE_nurb_order_clamp_u(nu); + BKE_nurb_knot_calc_u(nu); - clamp_nurb_order_u(nu1); - nurbs_knot_calc_u(nu1); + BKE_nurb_order_clamp_u(nu1); + BKE_nurb_knot_calc_u(nu1); } } } @@ -5938,7 +5938,7 @@ static int delete_exec(bContext *C, wmOperator *op) else if (type==2) { cu->actnu= -1; keyIndex_delNurbList(editnurb, nubase); - freeNurblist(nubase); + BKE_nurbList_free(nubase); } if (ED_curve_updateAnimPaths(obedit->data)) @@ -6071,7 +6071,7 @@ int join_curve_exec(bContext *C, wmOperator *UNUSED(op)) /* trasnform all selected curves inverse in obact */ invert_m4_m4(imat, ob->obmat); - CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) { + CTX_DATA_BEGIN (C, Base*, base, selected_editable_bases) { if (base->object->type==ob->type) { if (base->object != ob) { @@ -6083,7 +6083,7 @@ int join_curve_exec(bContext *C, wmOperator *UNUSED(op)) nu= cu->nurb.first; while (nu) { - newnu= duplicateNurb(nu); + newnu= BKE_nurb_duplicate(nu); if (ob->totcol) { /* TODO, merge material lists */ CLAMP(newnu->mat_nr, 0, ob->totcol-1); } @@ -6098,7 +6098,7 @@ int join_curve_exec(bContext *C, wmOperator *UNUSED(op)) mul_m4_v3(cmat, bezt->vec[2]); bezt++; } - calchandlesNurb(newnu); + BKE_nurb_handles_calc(newnu); } if ( (bp= newnu->bp) ) { a= newnu->pntsu*nu->pntsv; @@ -6207,7 +6207,7 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newob) nu->resolv= cu->resolv; } - switch(stype) { + switch (stype) { case CU_PRIM_CURVE: /* curve */ nu->resolu= cu->resolu; if (cutype==CU_BEZIER) { @@ -6240,7 +6240,7 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newob) bezt->vec[2][1] = 0; for (a=0;a<3;a++) mul_m4_v3(mat, bezt->vec[a]); - calchandlesNurb(nu); + BKE_nurb_handles_calc(nu); } else { @@ -6272,7 +6272,7 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newob) if (cutype==CU_NURBS) { nu->knotsu= NULL; /* nurbs_knot_calc_u allocates */ - nurbs_knot_calc_u(nu); + BKE_nurb_knot_calc_u(nu); } } @@ -6306,7 +6306,7 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newob) if (cutype==CU_NURBS) { nu->knotsu= NULL; /* nurbs_knot_calc_u allocates */ - nurbs_knot_calc_u(nu); + BKE_nurb_knot_calc_u(nu); } break; @@ -6347,7 +6347,7 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newob) for (a=0;a<3;a++) mul_m4_v3(mat,bezt->vec[a]); bezt->radius = bezt->weight = 1.0; - calchandlesNurb(nu); + BKE_nurb_handles_calc(nu); } else if ( cutype==CU_NURBS ) { /* nurb */ nu->pntsu= 8; @@ -6375,7 +6375,7 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newob) bp++; } - nurbs_knot_calc_u(nu); + BKE_nurb_knot_calc_u(nu); } break; case CU_PRIM_PATCH: /* 4x4 patch */ @@ -6407,8 +6407,8 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newob) } } - nurbs_knot_calc_u(nu); - nurbs_knot_calc_v(nu); + BKE_nurb_knot_calc_u(nu); + BKE_nurb_knot_calc_v(nu); } break; case CU_PRIM_TUBE: /* Cylinder */ @@ -6469,7 +6469,7 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newob) bp++; } nu->flagu= CU_NURB_BEZIER; - nurbs_knot_calc_u(nu); + BKE_nurb_knot_calc_u(nu); BLI_addtail(editnurb, nu); /* temporal for spin */ @@ -6477,7 +6477,7 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newob) else if ((U.flag & USER_ADD_VIEWALIGNED)) spin_nurb(viewmat, obedit, zvec, mat[3]); else spin_nurb(umat, obedit, tmp_vec, mat[3]); - nurbs_knot_calc_v(nu); + BKE_nurb_knot_calc_v(nu); a= nu->pntsu*nu->pntsv; bp= nu->bp; @@ -6529,7 +6529,7 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newob) if (nu) { /* should always be set */ nu->flag |= CU_SMOOTH; - test2DNurb(nu); + BKE_nurb_test2D(nu); } return nu; @@ -6947,13 +6947,13 @@ static void undoCurve_to_editCurve(void *ucu, void *UNUSED(edata), void *cu_v) Curve *cu= cu_v; UndoCurve *undoCurve= ucu; ListBase *undobase= &undoCurve->nubase; - ListBase *editbase= curve_editnurbs(cu); + ListBase *editbase= BKE_curve_editNurbs_get(cu); Nurb *nu, *newnu; EditNurb *editnurb= cu->editnurb; void *lastsel= NULL; AnimData *ad= BKE_animdata_from_id(&cu->id); - freeNurblist(editbase); + BKE_nurbList_free(editbase); if (undoCurve->undoIndex) { BLI_ghash_free(editnurb->keyindex, NULL, (GHashValFreeFP)MEM_freeN); @@ -6972,7 +6972,7 @@ static void undoCurve_to_editCurve(void *ucu, void *UNUSED(edata), void *cu_v) /* copy */ for (nu= undobase->first; nu; nu= nu->next) { - newnu= duplicateNurb(nu); + newnu= BKE_nurb_duplicate(nu); if (lastsel == NULL) { lastsel= undo_check_lastsel(undoCurve->lastsel, nu, newnu); @@ -6993,7 +6993,7 @@ static void undoCurve_to_editCurve(void *ucu, void *UNUSED(edata), void *cu_v) static void *editCurve_to_undoCurve(void *UNUSED(edata), void *cu_v) { Curve *cu= cu_v; - ListBase *nubase= curve_editnurbs(cu); + ListBase *nubase= BKE_curve_editNurbs_get(cu); UndoCurve *undoCurve; EditNurb *editnurb= cu->editnurb, tmpEditnurb; Nurb *nu, *newnu; @@ -7016,7 +7016,7 @@ static void *editCurve_to_undoCurve(void *UNUSED(edata), void *cu_v) /* copy */ for (nu= nubase->first; nu; nu= nu->next) { - newnu= duplicateNurb(nu); + newnu= BKE_nurb_duplicate(nu); if (lastsel == NULL) { lastsel= undo_check_lastsel(cu->lastsel, nu, newnu); @@ -7039,7 +7039,7 @@ static void free_undoCurve(void *ucv) { UndoCurve *undoCurve= ucv; - freeNurblist(&undoCurve->nubase); + BKE_nurbList_free(&undoCurve->nubase); if (undoCurve->undoIndex) BLI_ghash_free(undoCurve->undoIndex, NULL, (GHashValFreeFP)MEM_freeN); diff --git a/source/blender/editors/curve/editfont.c b/source/blender/editors/curve/editfont.c index 1f1d1495276..cca5dd7a37b 100644 --- a/source/blender/editors/curve/editfont.c +++ b/source/blender/editors/curve/editfont.c @@ -520,13 +520,17 @@ void ED_text_to_object(bContext *C, Text *text, int split_lines) } /********************** utilities ***************************/ - static short next_word(Curve *cu) { short s; - for (s=cu->pos; (cu->str[s]) && (cu->str[s]!=' ') && (cu->str[s]!='\n') && - (cu->str[s]!=1) && (cu->str[s]!='\r'); s++); - if (cu->str[s]) return(s+1); else return(s); + for (s=cu->pos; ((cu->str[s]) && (cu->str[s] != ' ') && (cu->str[s] != '\n') && + (cu->str[s] != 1) && (cu->str[s] != '\r')); + s++) + { + /* pass */ + } + + return cu->str[s] ? (s + 1) : s; } static short prev_word(Curve *cu) @@ -534,9 +538,14 @@ static short prev_word(Curve *cu) short s; if (cu->pos==0) return(0); - for (s=cu->pos-2; (cu->str[s]) && (cu->str[s]!=' ') && (cu->str[s]!='\n') && - (cu->str[s]!=1) && (cu->str[s]!='\r'); s--); - if (cu->str[s]) return(s+1); else return(s); + for (s = cu->pos - 2; ((cu->str[s]) && (cu->str[s] != ' ') && (cu->str[s] != '\n') && + (cu->str[s] != 1) && (cu->str[s] != '\r')); + s--) + { + /* pass */ + } + + return cu->str[s] ? (s + 1) : s; } static int kill_selection(Object *obedit, int ins) /* 1 == new character */ @@ -816,7 +825,7 @@ static int move_cursor(bContext *C, int type, int select) EditFont *ef= cu->editfont; int cursmove= -1; - switch(type) { + switch (type) { case LINE_BEGIN: if ((select) && (cu->selstart==0)) cu->selstart = cu->selend = cu->pos+1; while (cu->pos>0) { @@ -1121,7 +1130,7 @@ static int delete_exec(bContext *C, wmOperator *op) else if (type == DEL_PREV_SEL) type= DEL_PREV_CHAR; } - switch(type) { + switch (type) { case DEL_ALL: cu->len = cu->pos = 0; ef->textbuf[0]= 0; @@ -1491,7 +1500,7 @@ void load_editText(Object *obedit) void free_editText(Object *obedit) { - BKE_free_editfont((Curve *)obedit->data); + BKE_curve_editfont_free((Curve *)obedit->data); } /********************** set case operator *********************/ diff --git a/source/blender/editors/datafiles/splash.png.c b/source/blender/editors/datafiles/splash.png.c index 7fc685d0d60..c3f007a1280 100644 --- a/source/blender/editors/datafiles/splash.png.c +++ b/source/blender/editors/datafiles/splash.png.c @@ -1,1109 +1,1094 @@ /* DataToC output of file */ -int datatoc_splash_png_size= 110338; -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, 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,220, 2, 16, 7, 7, 59,120,244, 27,109, 0, 0, 32, 0, 73, 68, 65, 84,120,218,236,189, -121,156,101, 87, 89,239,253,125,214, 90,123,239,115, 78, 13, 61, 37,157,177,211, 67,102, 8, 1, 76,162, 94, 16,140, 38,136,128, - 19,193,132, 23, 7,188, 2,194,117,184,138,222,139, 1,245,189,130, 50, 5, 84,244, 94, 81,137,120,121, 17, 7, 20,185,160,120, - 81, 36, 40,163,140,145, 36, 12, 9, 9,105, 58,233, 76,221,157,158,171,206, 57,123,239,181,214,243,254,177,246,169,174,174,244, -156,174,238,170,234,253,203,231,164,171,234,156,179,247, 90,235,236,179,127,235,153,126,143,165, 69,139, 22, 45, 90,156,210,120, -250,211, 46,127,197,249,235,206, 26,223,116,255, 35,247,181,171,177,184, 97,219, 37,104,209,162, 69,139, 83, 27, 19,227, 19,190, - 83,184,207,173, 57,123,213,212,230, 7,183,125,182, 93,145,197, 11,105,151,160, 69,139, 22, 45, 78,109,172, 91,119, 94,231,188, -115, 86, 76, 79, 78,116,204,176,172,222, 25, 85, 95,241,175, 31,191, 45,182, 43,179,248, 96,218, 37,104,209,162, 69,139, 83, 27, -155, 54,221, 63, 12, 33,254,118,158, 57, 84,121,153, 8,255,242,204,167, 61,165, 53,250, 90, 82,111,209,162, 69,139, 22,139, 17, -123,247,150,111,237, 15,107,172,117,120,175,215, 56,199,243,218, 85,105, 73,189, 69,139, 22, 45, 90, 44, 66,220,241,181,187,167, -167,250,229, 63, 35, 32, 98, 8, 26,223,117,213,149,151,182,121, 87, 45,169,183,104,209,162, 69,139,197,136,114, 80,127, 60,119, -150,229,203,122,100,121,113, 90,158,217, 31,111, 87,165, 37,245, 67, 65,154, 71, 7,184,200, 24, 46, 1,122,179,158,107,209,162, - 69,139, 22, 39,139,212,107,127,135,203, 44, 99, 99, 93,198,199, 10,140,117,127,124,233, 19,215,183,214,250, 34,130, 59,209,132, -110,140,108,120,205, 11, 46,127,253,245,223,177,254,123,157, 19,251, 15, 95,186,239,211,175,125,239,109,191, 85,249,120,107,243, - 26,109, 63,150, 22, 45, 90,180, 56,241,168,235,248,205,126,191, 68, 99,164,174, 61,162,161,215, 41,178,167, 0,183,182,171,179, - 56,112, 34,119, 96, 2,228, 63,247,156,139,223,240, 59, 63,122,201,139,207,168, 7, 99,167, 79,142,117,159,241, 29, 23, 94,252, - 93,151,156,126,237,167,239,124,228,145,157, 83,213,221, 13,169,183, 86,123,139, 22, 45, 90,156, 96, 44, 95,182,172,158, 24,239, -188,102,217,100, 23,107, 13,222,123,130,198,242,193, 7, 30,253,167,118,117, 22, 7, 78,164,251, 93,128,162, 91, 79, 79,240,240, - 38, 6, 15,111,166,255,205, 59,233,223,125, 15,223,243,196,115, 55,124,242, 77, 63,252,238,231, 93,181,230, 55,128, 21, 45,177, -183,104,209,162,197,137,135,143, 97,202,135,128,115,142,149, 43,199, 89,190,124, 12, 43,242,138,139, 46, 94,219,230, 95,181,150, -250,129, 73,253,243,155,246, 60,178,106, 89,126,249,211,207,159, 60, 83,189, 18,246,238,193,239,221,203,138,213,171,221,139,174, -121,194,119,135,232, 47,252,244,215, 31,249, 50,176,189, 37,246, 22, 45, 90,180, 56,113,216,181,107, 55,107,206, 61,227,181,147, - 19, 29,140, 17,170, 58, 50,168, 42,171,240,158, 71, 30,222,190,179, 93,161,150,212, 31, 67,236,170,236,253,240,215,119,223,182, -101, 16, 86, 61,235,210,229, 23,117,172,163, 30, 12, 8,187,118, 64,209,227, 89, 79,127,194,165,151,175, 93,118,245, 39,190,250, -208,166,169,161,223,216,126, 68, 45, 90,180,104,113,226,176,230,156,213,175, 29, 27, 47, 40,235, 64, 85,213,248, 16,136,196,127, -121,112,243,163,247,180,171,179,240,113, 34, 93, 42, 10, 12,129, 93,192, 87,255,228,211, 91, 95,251,236,255,125,207, 31, 62, 80, -135,225,248, 88, 14, 85,137,223,120, 23,195,251, 55,243,252,167, 95,242,164, 79,191,245,186,247, 94,243,148,115, 94, 5, 76,176, - 47,107,126, 65, 67, 85,175, 80,213,107,155,199,134,165,126,241,156,106,243,109,209,226,212,128,128, 8,157,174,101,124, 34,195, - 24, 65, 85, 87,181,235,178,104, 62,189,147,182,153,152, 4,206, 56,115,210,253,208,223,252,212,249,191,242, 93,103,142,157, 57, - 28, 4, 32, 34,103,156, 75,247,188,245, 84, 26,249,239,239,250,204,159,255,175,191,255,202,111, 0,155, 57, 78,217,241, 13, 1, - 29, 41, 9,237, 20,145, 91,143,240,184, 31, 5,174,109,126,125,181,136,220,180,196, 73,253,148,154,111,139, 22,167, 2,190,235, -233, 79,214,179,206,156, 96,108, 60, 39, 2, 15, 61,184,147,221, 83,211,175,250,226,231,238,254,157,118,117, 22, 62,142,181,164, -205, 0, 17,152, 88, 53,158, 61,105,213,152, 91, 21, 85,100,191,157,130,128,136,136,206,236,252, 70,127,159,121,214, 1,189, 58, -232,224,151, 63,188,245,159,127,255, 71,214,252,200,211, 86,143, 45,175,106,133,157,219, 25,246,198,201, 86,157,193,255,124,197, -213, 47,190,226,130, 51, 46,126,229, 59, 62,249,170, 93, 83,213,167,143, 19,177, 95, 15,188,249, 40,200, 11,224,125,192, 45, 34, -114,115,123,217, 44,217, 77,138, 5,190, 3,248, 94,224, 42,224,137,192, 25, 64, 65,242, 48,221, 7,124, 14,248, 43, 17,249,236, - 60,141,225,219,129, 27,128,239, 1,206, 1, 86, 1,253,230,220,119, 0,159, 2, 62, 44, 34,155, 23,234, 28, 90, 44, 94,108,216, -176,110,188,232,100, 32, 74, 89,213,136, 24,162, 42,130,158,211,174,206,210, 37,117, 1,100,172,176, 87,188,254, 57,107,223,248, -162, 39,175,190,122, 89, 55,203,163,152, 68,216,198,164,135, 8,226,236,126,191, 99, 12, 98,237,190,223, 37, 61, 23, 17,173, 85, -162,119, 14, 51,235, 56, 62,212,196,129,240, 83,207,186,236, 59,158,122,193,233,239,127,233,219,110,249,205, 47,221,189,237, 93, - 64,201,137,175,103,191, 30,184, 94, 85,175, 7,110, 16,145, 54,105,100,105, 17,250, 31, 3,215, 1,171, 15,242,146,211,155,199, -149,192, 47,168,234,199,129,151,136,200,183,142,211,249,207, 1,222, 14,252,240, 1,158,158, 4,158,212, 60,126, 28,248,216, 44, - 15,201,130,153, 67,139,197,143, 94, 55, 63,127,172,151, 19, 85,241, 94,113, 25, 68,141, 68,109, 73,125,169, 91,234,167,191,229, - 7,215,191,237,231,158,118,206, 51,170,126, 68,163, 96,141, 36, 3, 94, 37, 61, 48, 72,148, 68,189, 10, 24, 73,182,125, 84,176, - 32, 34,201,222, 87,176, 34,226,140,216,198, 34, 78,164,174,128, 42, 81,132,178, 95,113,249,218,213,167,127,244,141,215,253,225, -207,253,209,191, 93,248,215,255,122,247,155,128,109, 28, 63,177,154, 91, 14,241,220,181, 7,248,253,163,170,250,172,150,216,151, - 20,254,203, 1,254,182,189,177,108,119, 53, 22,243,101,236, 75, 46,189, 26,248,146,170,126,183,136,124,245,113, 18,250, 19,129, -143, 3,167,205,250,243,110, 96, 35,176,147,148, 87,114, 17,176,108,161,206,161,197,210,192,248, 88,254,157,206, 10,193, 7, 92, -199,160, 81, 49, 6, 52,234,178,118,117,150,176,165, 94,100,102,195, 15, 92,186,226, 42,157,174,169,135, 37,196,152, 72,122,198, -179, 62,178,231,101, 31,239, 90,131, 89,181,186, 33,247,136, 24, 32, 54, 94,124,129, 25,134, 55, 49, 17,191, 49, 16,154,219,143, - 64, 85,214, 44,203,115,243, 87,191,250,220, 95,190,234,226, 51,159,244,154,119,126,230, 87,203, 58,220,118, 60,136, 93, 68,158, -117,152,155,238,200, 93, 63,138,195, 95, 1,188, 28,104, 99,200, 75, 15,119, 1,239, 2,254, 81, 68,190, 62,231, 58, 88, 9,252, - 55,224,198,230,202, 92, 9,124, 72, 85, 47, 21,145,225, 49, 18,250,250,198,242, 30, 17,250,151,129,215, 0, 31, 19, 17, 63,231, -181,151, 1,207, 7,214, 47,164, 57,180, 88, 58, 24, 27,207, 94, 0, 1, 31,107,108, 16,124,136, 20,157, 14,197,192,183,222,156, - 69,130, 99,201,126,183, 85, 29,183,191,247,142,109,159, 23, 83, 50,150, 7,198,186,208,235,104,243,136,251,126, 46, 34, 29, 83, - 65,168,145,162,151, 72, 62, 70,136,145, 25,171, 28,128, 10,226, 16,226, 0,116, 8,148,233,119,173,154,215, 43,170,145, 58, 68, -124, 25,248,229, 23, 92,117,237, 71,223,242,130, 15,174, 59, 99,242,186,230,198, 52,175, 89,252, 34,242, 62,224, 89,141,213, 52, -194,245,237,229,179,164,240,121,224,185, 34,114,169,136,188,101, 46, 25, 54,215,193, 14, 17,249,117,224,197,179,254,188,238, 32, - 22,242,145,226, 79, 73, 49,111,128,191, 1,174, 18,145,143,204, 37,244,230,252, 95, 21,145,223, 22,145,151, 44,176, 57,180, 88, - 2,120,242,229,151,116, 59,157,236, 26, 31, 2,138, 16, 69,169,124,137, 53, 17, 99,100, 83,187, 66, 75,215, 82, 71, 97,251,141, -127,191,233, 55, 63,252,213, 71,175,187,244,204,238, 90, 1, 19, 85, 99,115,219, 32,106,162,236,126, 21,205, 83,207,155,120,194, -207, 60,243,130, 13, 29,215, 49, 49, 70,176, 54,217,214, 49,162,213, 20, 98, 5,179,230,201,152,211, 47, 64, 38,207, 68, 58,147, -224, 75,226,244, 54,116,239,195,196,109,119,131, 31,128,116, 81, 2, 65, 33, 78, 85, 60,227,178,243,206,251,200, 91, 94,240,103, -223,255,234,255, 99,191,245,240,238,247,179, 47,121,111,190,136,125,163,170,190,175,177,208, 71,214,250,227,134,170,174,152,115, -172, 91,143,135, 91,127, 78,134,255, 70, 17,217,120, 50,142,113, 34,230, 59,103,156,199,116, 60, 17,249,206,163,120,237, 95,169, -234,139,129,103, 55,127,186, 14,248,253, 99, 24,247,139,128,107,154, 95,191, 6,252,164,136,132,199,113,141,158,240, 57,180, 88, - 58,152,152,200,255, 66, 12,166, 95,150,152,220, 16,171,200, 96, 56, 36,179,150,126,191,220,220,174,208,210, 37,245, 0, 76, 3, -119,126,226,222,169,183,125,226,222,169, 46, 7, 22,177, 89,245,156,203, 87,191,244,186, 43,215,159,213, 51,185,241, 81,147,235, -125, 56, 68,203,105, 8,211,216,139,158,129,187,242,199,176,235,191,243,160, 46, 4,221,177, 9,127,239,199, 8,247,125, 6,177, - 57,168,162, 2, 85,191,226,162,179, 87, 45,251,224,235,126,248,237,215,188,234,111,119, 60,186,123,248,175,204,127, 67,152,227, - 34,134,211, 16,219,203, 27,107,255,138, 3, 60,191, 17,184, 25,184,249, 96, 4,165,170,111,158,245,222,247,137,200,205,179,142, -251,114,230,148,236, 53,199,188,233, 72,178,247, 85,245,229, 36,247,236,134,163, 29,215,124,204,247, 16,115,189,177, 57,238,138, - 89, 47,191,165,241,170,204, 55,254, 97, 22, 33, 94,122,140,199,248,197, 89, 63,223, 40, 34,245, 9,254,254, 31,143, 57,180, 88, - 2,184,252,242,139,255, 83,183,231,174, 43,125, 73, 16,143, 49,142,170,244,132, 24,240, 85,205,212,116,213, 90,234, 75,152,212, - 35, 73, 68,198, 3,123,153,137,122,207,212,188,171, 8, 79,184,233, 71, 47,122,237,171,174, 94,119,117,168,160, 10, 1,173, 75, -116,216, 7, 95,130, 83,138,231,190, 6,119,229,139, 14,111, 81,172, 92, 71,182,242,165,152, 51, 47,199,127,241,157, 96, 66,162, -124, 17,170,126,205,229, 23,158,117,218,219,126,246,234,183,252,228,155,255,249, 58,224,254,121, 38,245,217,228,113, 76,214,165, -170, 94, 11,252,237,156, 99,205,197, 6, 82, 12,255,229,170,122,195, 65,234,228,175, 96, 95, 18,223, 45,170,122, 5,240,142, 67, -120, 16, 54, 0,239, 80,213, 43, 68,228, 21,135, 32,223,119,112,240,208,194,104, 92,215,171,234,179, 78,224,124, 15, 52,215,143, - 30,230,152,243,141,237,179,126,158, 60,134,235,224, 9,192,104, 55,187, 21,248,231,197, 54,135, 22, 75, 3, 23, 95,188,190,179, -124,121,254, 97,165,166, 44, 75, 92,225, 64, 33,196,136,203, 28,211,253,114, 79, 53,212,207,181, 43,181,116, 73,157,134, 56,235, -230,193, 44, 66,183,107, 79,235,252,224, 59, 94,116,201, 77,207,190,232,180, 11,203, 65, 36,132, 26,202, 1,248, 26, 68,145, 12, -138,231,191, 9,123,217,243,102, 14,182,103, 80,242,145,219, 54,241,145,219, 55,177, 99,106, 64,102,133, 75,207, 94,201, 15, 93, -121, 1,223,118,254, 89,233,192,107,174, 66,242, 9,234, 79,255, 46,228, 46, 13,193, 8,126,170,228, 39,174,185,236,169,127,241, -177,187, 94,250,145, 47,110,122, 3,243, 84,238,214, 16,222,245,115, 44,194,163, 61,198,245, 13,193,205,198,173,205,177, 70,155, -132,217,214,236, 6,246,101,218,223,122,152,205,198,223,206,178,172,223,199,190, 86,137, 87,204, 25,247,203, 85,117,227, 65,132, - 98,222,124, 0, 66,159,125,172,209,216,174, 56,192, 60, 78,212,124, 87,204, 33,244,157,179,198,119, 34, 85,237,214,205,250,121, -219, 49,188,127,246,166,232,147,143,199,237,126, 18,231,208, 98,145, 99,195,134,117,110,114, 89,241, 89,155,235,242,161,175,137, - 26,177, 26, 25,150, 21,190,246, 24, 35, 12,134,241,101,155, 54,109, 14,237,106, 45,109, 82,223,207,152,110, 72,116,217,115, 46, - 91,249,203, 55,223,112,241,175,158, 59,222,237, 14,166, 3, 26, 74,168,203,230, 76, 22,241,211,100, 79,127,217,126,132,254,185, -123, 30,230, 85,127,249, 41, 54, 62,186,151, 78,145,145, 57,131, 81,184,125,243, 14,254,238,179,119,241,131, 87,158,207,255,123, -253, 51,232, 21, 25,230,140, 75,112,151,221,128,255,242,187, 96,226, 12, 64, 83, 16, 93,133,215,189,248,105, 47,251,151, 47,109, -250, 59, 85,190, 74, 10, 17, 28,111, 66,127,199, 28,210,184,249, 40,143,177,161, 57,198, 8, 27,129, 87,136,200,220,205,193, 77, -115,172,219,209,185,175, 60,196,225,111,156, 69,192,175,152,235,194,110,206,253,183,179,200,243, 70, 85,221,207,213,221,184,220, - 95, 62,135,124,111,152, 19, 71,159, 61,182,107, 79,210,124,111,156,117,188, 87, 55, 73,140,115, 63,171, 19,129, 31,157,245,243, -231,143,225,253, 87,205,250,249,142,102,236,171,128,151, 54,199, 62, 31,232, 53,100,251, 31, 36, 87,249,123,142,179,139,254,241, -206,161,197, 34,199,242,229,249,187,198,198,221, 83,124,244,212, 33,224, 50, 75, 4, 68, 44, 89, 46, 12,167, 7,253,254, 84,248, - 64,187, 82,167, 14,169,143, 8,125,253, 43,191,247,156,223,126,243,115,214,253,184,139,142,126, 89, 67,168, 32,248, 20, 71, 23, - 64, 3,114,218, 26,220,183,239, 75,186,189,231,145,157,188,248,237, 31, 97,235,192,211, 27,235, 82, 91, 75,150, 89,114, 43, 88, -205,145,224,121,255,231,191,137, 53,134,215,255,216,213,201, 98,191,224,123, 8,223,248,103, 8, 83,224,186, 32,224,171,154,167, -158,191,250,204,111,191,244,204,103,127,254,235,143,220, 73, 10, 17, 28,177,181,174,170, 55, 30,226,233,107, 15, 64, 96, 7, 34, -167,195,225, 29,115,172,203, 43, 15, 22,151, 22,145, 91, 26,247,246,200, 34,189, 66, 85, 95,126,152,120,248, 45, 34,114,195, 65, -142,183, 81, 85, 95,221, 28,111,100,237, 94,219,108, 2,230,146,229,136, 48, 15, 88,135, 63,107,108, 95, 58,137,243,221,120,176, -227,157, 8,237,128,102,172,179, 55, 29,127,125, 12,135,185,124,214,207, 15,171,234,247, 1,239, 6,206,156,243,186, 53,205,227, -135,129, 95, 87,213, 23,138,200,151, 22,200, 28, 90, 44, 98, 92,246,164,243, 95,211, 27,119, 63,129, 40, 49, 42,138,130, 64,237, - 3,214, 10, 78,132, 97, 95,127,233,222,123, 54,251,118,181, 22, 15, 30, 79, 41,152, 0,178,114,204, 93,251,222,255,124,241, 7, -222,246, 3,235,126,156, 26,202, 88,167,114, 52, 9,144, 25,112, 2, 78, 80, 42,236, 69,207, 68,198,247,233,107,188,250, 47, 63, -195, 61, 15,236,102,183, 23, 30,158,242,108,222, 93,241,205, 71, 7,108,124,116,192,206, 97, 64,157, 99,217,178,113, 62,248,133, -123,184,229,246,166, 76,210, 58,236,134,103,162,123,182,129, 53, 32, 74, 20,200,187, 57, 47,188,250,226,107, 73,177,193,163,213, -180,127,243, 33, 30,215,206,177,206,159,117,180, 82,177, 77, 12,120,246,113, 94,125, 56,242,105,220,207, 55,207,217, 92, 28, 10, -175, 56,204,241,110, 97,159,155,154,217, 94,135,198, 77, 62,219, 11,113,211,161,198,119,128,177,157,232,249,222,116,178,132,127, - 84,117,217, 28, 15,196,151,129,247, 31,195,161,102, 55,200,120,114, 99,137,143, 8,125, 43, 73, 14,246,179,192,158, 57,159,217, - 39, 84,245,105, 11,100, 14, 45, 22, 43,161, 95,118,254,139, 39, 38,243, 55,218,220, 52,247, 81,193,216, 36, 9, 91,213, 53, 85, - 61,100, 56, 28,196,193, 32,190,167, 93,173,165, 79,234,163,164,184,241,103,156, 63,241, 43,159,249,249, 39,254,221, 11, 47, 93, -249,228,126, 63, 16, 8, 16,235,116, 84, 43,136, 21,196, 9, 98, 13,226, 4,115,246,101, 51, 7,249,214,150, 93,252,211,109,247, - 67,175,155,202,220,140, 1,107, 9, 24,246,150,129,111,109,235,179,113,107,159, 90,133,104, 45, 31,251,202,125,251, 6,112,218, - 5,232, 96, 15,224,155,209, 40,248,200, 37,231,174, 60, 31, 56,139,249,107, 84,115,125, 99, 69, 30,173,139,119, 54, 65,237, 60, -138, 77,193, 45,115,206,125, 48,220,122,132,229,102,183, 30,100, 76,215,206, 33,216, 35, 25,223,251, 78,210,124, 55,158, 44,253, -125, 85, 53,141, 53, 61, 18,127,169,128,151,206,180, 56, 56, 58,204, 86,232,250, 5,146, 54,251, 22,146,184,204,153, 34,242, 76, - 17,121, 26, 73,214,245,231, 73,201,169,144, 92,242,239, 85,213,201, 5, 48,135, 22,139, 16,151, 62, 97,253,183,117,199,237,187, - 93, 97, 48,153, 37,162, 84,209, 35,214, 18, 98,196,199,128, 17,168, 75,222,124,247,157,155,203,118,197, 22, 23,142,214,253, 62, -114,183,159,253,146,239, 60,253,181,127,244,131,107,127, 38,139,150,126, 21,193, 42,104, 68, 20, 36, 10,106,165,113,189,167,183, -136,203, 49, 43,206,155, 57,208,166,109,123, 24,244,107,152, 44,246,237, 19, 70,183, 21, 99, 64,149, 93, 83, 53,117,229, 57,119, -153, 99,239,112, 95, 40, 81, 38,206, 0, 44,148,125,164, 59,145,220, 70,222,179,254,140,137,213, 69,110,207, 44,171,112,231, 81, -206,235,213,135,120,110, 67, 67, 82, 27, 72,174,225,153,236,239,163,176, 22,175, 61, 8,177,114, 56,235,122,182, 72, 79,147,185, -126,235, 97,200,240, 80,216,120,136, 57, 30,213,177,230,142,237, 4,206,247,214,147,248,125,249, 93,246,215,102,127,149,136,124, -249, 24,143,213,153,243,251, 52,240, 61, 34,114,231,156, 53,169,128, 63, 82,213,251,128,127,108,254,188, 6,248, 89,142, 77,209, -240,120,206,161,197, 34,195,197,151,174, 59,189, 59,110, 62,227, 10,135,113, 41,203,125, 80, 14, 40,125,133, 10,196,224, 17, 81, -136, 66, 57,140,255,179, 93,177,165, 77,234, 2, 48,209,177, 79,123,235,243,206,125,203, 43,174, 56,253,233, 85, 5,195, 44, 73, -190,106, 80,164,142,228,185, 97,119, 8,177,139, 49, 56, 59, 83,193, 46, 0,186, 47, 52,179,122, 89, 15,155,103,132, 72,163, 23, -175, 13,169, 55,255,170,128, 53, 76,247,107,238, 27, 14, 41,158, 60,107,168, 26, 64,107,240, 67, 48,147,136, 70, 52, 70, 86,142, -101,189,101,189,124,197,214,106,112, 84, 30,136, 35,105, 25,218,196,221,111,108,136,125, 84, 82,117,229, 17,158, 98,118,153,217, -134,166,101,233,177,224, 96, 30,130,199,235,138, 62, 38, 18,110, 94,123,197, 9,158,239, 73, 33,117, 85,253, 31,192, 43,103,253, -233,237, 34,242,120,110,122,125,146,166,251, 8, 55,205, 37,244, 57,215,232,255,109,196,143, 70, 30,140,159, 62, 90, 82,159,135, - 57,180, 88, 92,132,190,188,232,113,183,203,109, 39, 43, 50,212,192,116, 57,100, 88, 86,168,137, 84,117, 13,170, 88, 99,169,170, -240,127,191,122,219,125, 91,218, 85, 91,154,164, 62,114,101,103,151,156,209,249,177,191,124,225,250,155,190,109,117,111,245,160, -138, 80,184, 68,232,117,196,213,145,188,107,249,245,143, 61,120,251,218,229,249,242,159,185,226,244,181, 67, 5, 25, 89,235,117, - 77,124,244,155,152, 53, 41,233,247,210,115, 86,241, 29, 23,174,230,223,239,220, 6,206, 37, 18, 55, 13,161,143,116,225, 98,122, -239,112,199, 52, 23,158,185,239,254,174,123, 30,130,114, 15, 90, 46, 71,154,142, 49, 26, 71,155, 2, 12,243,224,126, 23,145,155, - 26, 43,114,212,178,245, 72,146,215, 14, 68, 78, 71,211,203,253,100, 96,231,113,120,237, 98,154,239,145,144,225,127, 7, 94, 55, -235, 79,127, 9,252,215,199,121,216,169, 57,164,254,231, 71,240,158,119,207, 34,245,139, 85,117,181,136,108, 61,137,115,104,177, - 72,112,254, 69,107,187, 69, 79,110,115,133, 93,238,242, 12,177,134, 97, 57,100,207,212, 20, 16, 16, 21,202,106, 72,158,101, 56, - 99, 41,251,241,215,218, 85, 91,154,164, 62,114,183,175,190,225, 41, 43, 95,245, 7,207, 61,247, 23,207,236,100,121, 63, 10,210, - 75, 38,184, 86,145, 78, 84,134, 57,252,215, 15,221,247,161,155, 63,179,245, 3,127,118,195,186, 95, 21,109, 60,239,182,201,126, -119, 6,221,178,175, 17,148, 49,194,111, 60,255, 74,158,251,245,127,132, 97, 13, 69,222,116,119,107, 72, 61, 2, 26, 97,170,207, - 83,159,112, 14, 63,249,221, 79,156,121,111,220,122, 39,170, 53, 18,170,244, 66, 85,140, 40, 59,166,134,131, 61,253,106,239,124, - 45, 86, 67,236,179,251,176, 95,207, 81,150,182,145, 92,224,199,170, 76,183, 24,187,194, 45,234,249,170,234, 47, 0,111,157,245, -167, 15, 0,255,249, 56,196,160, 31, 37,229,127, 0,108, 23,145,251,142,208, 51,194,156, 13,211,214,147, 56,135, 22,139, 0, 27, - 46, 56,175,232,140,201,237,174,112,107,141, 75, 30,208, 42,120,166,166,167,169,234,146, 44,179,132, 16, 9, 49, 18,176,132, 96, -239,250,218,109,155,239,104, 87,110,233,145,186, 0,226,172, 92,244,134,239, 63,251, 15, 94,245,159,206,124,182,247,208,119, 6, - 41, 82, 75, 62, 29, 4,198,156,176,169,244,195,159,254,139,111,189,243,227,119,239,249, 75, 32,222,191,187,222,130,232, 37, 58, - 99,169, 3,157, 30, 97,211,167,113, 59, 55, 33, 43,214, 1,240,156,167,174,227,230,159,253, 30, 94,249,103,159,162,191,171,132, - 78,145, 50, 49, 85,161,170,161, 63,224,219, 46, 57,131,191,123,213,243, 24,235,100,105, 84,245,128,240,245,247, 35,121,145, 50, -236, 53,162, 49,128, 49,220,251,200,174,109,195, 42,108, 99,254, 18,229, 32,197,156, 71,238,234,107,143,225,253, 55, 31,137,187, -127, 9, 97,209,206,183,169,221,159,237,158,254, 23,224,255, 57, 80,179,149, 99,192, 93,164,254,232,176,191,178,219,161,176,253, - 16, 30,145,147, 49,135, 22, 11, 28,235,207, 63, 47,235,140,153,207, 22,221,252, 66, 99, 5,181,138,143,129,225,112, 72,191,236, - 35,162, 68,148,160,154, 42,137, 66, 77, 89,201, 43,218,149, 91,188, 48,135, 33,245,213,111,126,238, 57,111,255,213,167,159,249, -236,161,135,186,231,144,174, 69, 35,208, 15,140,117, 44,255,246,208,244,150,171,255,232,174,223,252,248,221,123,254, 24,216, 4, - 60,248,141, 71,135,223,192, 8,132,198, 16,176, 38,185,216,253, 20,245,167,223,182,223, 73,126,230,154, 39,242,217, 55,253, 40, -175,252,129, 39,177,126,101, 65, 71,107,198, 77,224,105, 23,158,198, 31,254,220,247,242,201, 55, 92,207,250, 51,246, 37, 10,251, - 47,190, 19,221,181, 9,178, 2,109,146,240,240, 1,140,240,141, 7,118,222, 71, 18,235,136, 11,108,157, 15,150,117,190,216,199, -119,237, 34,157,239,145, 16,250, 79, 3,127, 50,107,131,248, 73,224, 71,154,196,181,227,129,175,205,250,185, 56,194,247,204, 77, -174, 27,158,228, 57,180, 88,192, 88,119,254, 26,155,247,228,163,157,177,252,169, 54,115,120, 34,168, 48, 24, 12,232, 15, 6,141, - 40,167, 16, 35,228,174, 32,207, 10, 44,110,139, 47,205,167,218,213, 91,154,150, 58,107, 86,228, 87,255,244,147, 86, 94, 83, 13, - 35,140,103, 72, 46,104,165,216,161,167, 24,179,188,231,246,237,119,253,194,223,109,122,235,158, 65,248, 84, 99, 69, 76, 3,157, - 79,222,187,247, 11, 15,239,173, 95,114, 90, 47,115,105, 7,216,220, 86,186, 61,226,253,159,196,127,230,247,113, 79,223,151,175, -115,249,218,211,120,219, 75,158,201,155,126,210,243,200,142,105,242,204,113,246,202,177,199,140, 39,124,253,239,241,119,188, 7, - 58,189,180,235, 48, 22, 13, 17, 9,145,122, 88,242,254, 79,221,251, 25,146, 30,253,124,146,250,177,196,135,103, 39,148, 93,171, -170, 43, 78, 86,157,245, 65,176,113,214,248,142,168,251, 92, 83,139,190, 88,231,123,184,185,253, 24,240,206, 89,100,248,121,224, - 7, 68,100,112, 28, 79,243,201, 89, 63,159,173,170,157, 35,232,103, 62,183,143,250,150,147, 60,135, 22, 11,151,208,197,117,245, -253, 69, 47,251,110,147,101,120,173,113,206, 81,213, 21,123,167,167, 32, 42,182,112, 4,245, 41,198, 42, 32, 24,240,242,179,223, -188,115,115, 27,150, 89,162,150,186, 91,183,178,184,112, 69, 97,241, 49,101,183,107, 63,144, 87, 1, 41,132, 87,125,100,243, 45, - 47,126,207,189,255,109,207, 32,124,172,185,185,236, 38,213,188,214, 15,237,170,190,240,254, 59,119,222,150, 57,208, 97, 0, 20, - 49,164,122,245,222, 4,225,142, 63,167,190,229, 55,208,254,163,251,155, 33,153, 99,221, 25,203, 30, 75,232,245,128,240,249, 63, -194,127,234, 13, 72,145, 35,214,166,120,125, 86, 64,237,201, 12,124,238, 27, 15, 63,242,239, 95,223,114, 11, 73,251,125, 94, 72, -125, 78,139,207,185, 22,233,161, 48,183, 76,236,229, 11,236, 58,152, 61,190, 21,141,108,235,177, 90,233,139, 97,190,135,250,140, - 95, 64, 74, 90, 27,125, 55,190, 12,124,191,136, 28,239, 92,141, 79,178,207,157,158, 1, 87, 31,193,123,158, 61,235,231, 93, 36, - 23,254,201,156, 67,139, 5,136,245,231,159, 39,174,224, 93, 46, 51, 63,140, 64, 8, 30, 85, 37,132, 64,127, 48,160,170, 74, 84, - 34, 33,120, 98, 76, 73, 83, 85, 93, 82,215, 85,223,151,252, 67,187,130, 75,151,212,237,215,183, 12,238,126,160, 10,190,215,179, -244,234, 64,207,194,148,141,250, 19,127,187,241,175,127,231,163, 15,191, 22,184,157,148,240, 51, 77,210, 91, 31, 53,122,217,242, - 7,159,216,242,190,221,117,192,213, 1,234,152,178,230, 26, 81, 26,198, 38,136,247,254, 19,213,251, 95, 76,248,218,251,209, 61, - 15, 30,248, 6, 59,189,141,120,239, 45, 84, 31,120, 9,254,203,127, 10,157, 14, 88,151,196,102, 68, 16,147, 33,195, 26,172,242, -250,247,126,249, 3,192, 55,155,243, 31,119, 82,111, 4,103,230, 54, 39,121,223,145,188,183,209, 39,159,157, 44,118,227, 97, 44, -221, 19,141,247,177,127, 82,218,141, 71,176, 22, 55, 46,226,249, 30,108, 94, 63, 72,146, 75, 29,181, 18,254, 26,240,125, 34,178, -235,120,159,171,105,224, 50, 59,227,253, 53,170, 42,135, 24,219, 4,251,103,171,127, 88, 68,226,201,156, 67,139,133, 9, 91,240, - 6,147,243, 83,198,217,164, 21, 98, 32,170, 50, 53, 61, 69, 89, 14,201,243,130, 60,239,128, 8, 86, 28, 70,108, 74, 54,142,242, -107,247,124,173,109,220,178,216,113, 72,247,251,246, 41,255,197, 23,254,245,183,110,122,229, 51,207,184,126, 85,207, 45,187,243, -209,225, 3,127,242,233,173, 31,250,218, 67,253,127, 0, 30,110,172,133,106, 14,137, 6, 96,240,205,109,195,127,122,195,191, 62, -114,237, 91,158,183,230, 89,126,202,131, 51, 72, 97,247, 57, 3,123,147,224,119, 83,127,250,141, 72, 62,142,172,186, 4,179,242, -124,112, 29,136, 53,113,215,253,232,182,175,193,112, 23,100, 25,140,205, 18,224, 82, 32, 26,180, 20,242,113,195,187,111,249,198, -215,255,229, 63, 30,252,107,146,235,253,184,246,164,110,172,243,107,121,108,127,241,157, 28, 93,230,251, 43,216, 95,123,253,163, - 77,155,209, 91,142,224,252,215, 55, 68, 48, 47, 9,103, 34,178, 83, 85,111, 98, 95,185,222,181,170,250,142, 3,181,104,109, 8, -253, 72,218,158, 46,216,249, 30,228,188,223,215,108,110,154,140, 76,238, 6,174, 21,145, 71, 31,199, 49,103,187, 49,159, 47, 34, - 31,156,243,146, 55, 1, 47, 35,149,182, 61, 19,120,155,170,254,202, 92,178, 86,213, 30,240, 94,146,232, 12,205,247,237,166, 19, - 49,135, 22,139, 11,231, 95,122,222,255, 48, 25,175, 17,107,112,153,107,164, 95, 35,195,225,144,233,193, 0, 35, 80, 20, 29, 68, -132, 42,120, 84, 4, 17,131, 17, 19,169,236, 59,218, 21, 92,218,164, 94, 3, 59, 62,187,113,239,255,254,236,198,189, 31,109,110, - 60,219,129, 71, 72,174,246,169,230, 53,115,227, 47,163,126,235,143,252,238,199, 30,126,219, 83,215,244,214,191,232,201,171, 46, - 24,236,169,144,201, 28, 10,147,118,143, 40,100, 25,146,101, 41,131,125,251,237,248,173,183,206, 28, 78,140, 3,151,195,216,248, -156, 59, 23, 80, 5, 52,118,233, 20, 57,183,222,179,101,231, 47,253,233,231,223,210, 88,233, 3,142,161, 67,155, 30, 66, 26,237, - 80,164,117, 52,113,226, 70, 45,237, 21,236,211,220, 30, 17,221, 45, 36,119,245, 92, 93,246,209,102, 98,100,225,190,122,158,175, -133,155,217,191, 13,234,203, 27, 55,252,205,179,198,118, 45,201,149,190,162,177,196,119,114,144, 24,252, 34,152,239, 92,124,144, -253, 19,214,250,192,255,119,164,151,134,136,124,255, 49,108,166,182, 53,229,102,239,110,254,244, 75,192, 51, 85,245,157,192,157, -205,247,243,219, 72,234,113,107,103,189,245,183, 68,228,142,133, 48,135, 22, 11, 7,235, 47, 90,243,243, 54,151,215,137, 3,107, - 29,198, 90,148,200,112, 88, 50,221,159,198,251,154, 44,115, 73,217, 67, 21, 52,169,124,196, 16, 48,145,183,222,243,213,135,134, -237, 42, 46,109, 82, 15, 13,113,251,134,196, 77,243,183,178,121, 4, 14,222, 9,205, 3, 83, 81,245, 43,255,229,189,223,122,253, -170, 49,247,134,239,187, 96,217, 57,195,221, 21, 76,100, 72,199,238,171, 95, 79, 12, 14,121,231,208,117,104, 10, 68,133, 50, 16, -247, 84,116,207, 58,131, 59, 31,222, 57,117,195, 77,159,184,105,247,116,253,169, 89,155,140,249,198,173, 13,161, 31,181,178,153, -136,220, 60, 75,192,102,197, 44,162, 60,233, 25,226,141,181,126, 67, 99, 93,111,152, 69,182,111, 62,192,203,119, 2, 55, 28,228, -185, 69, 49,223, 3,160, 59,231,247,167,156,160,117,255,115, 85, 61, 11,120, 99,243, 29,123, 42,240,246, 67,188,229,247,129,223, - 94, 72,115,104,113,242,177,246,252, 53, 47,178,133,252, 97,114,185, 43,214,165,200,170, 70,101, 88, 14,168,125,221, 92,111, 80, - 85, 67, 20,147, 18,227, 20,130,122, 76,176,111,109, 87,113,105,192, 28,134, 70, 61, 41, 94,190, 19,216, 65,114,183,247,155,191, -235, 97,222, 91, 2,187,247, 12,194,199,159,127,243,221,191,246,158, 47,111,191,171,147, 27,178, 61, 53,113,119, 13,195, 56,115, - 20, 65, 16, 57,192,163,249,143, 0, 84, 17,221,227,145,157, 37,221, 21,203,249,248,198,221,143, 60,251, 55,111,249,205,141, 91, -166,254, 79, 51,182, 62,243,151,245,126, 75, 99,177,222, 32, 34, 87, 30, 11,161,207, 38, 58,146,188,236,205, 28,153,184,202,251, - 72,174,236,121,111, 98,210, 52,133,185,242, 48,231,186,133,212,246,244,214,197, 62,223,133,130, 38,204,112, 53,240,133, 67,188, -236, 14,224,135, 68,228,151, 15, 20, 75,111,113, 10, 91,232,231,175,125,166,205,249, 43,177, 2,162, 51,247, 79,239,125,178,208, -235, 64, 39,239, 82,228, 5,206,229, 4, 85, 66,140, 51,164, 14,250,193,123,191,178,101,123,187,146, 75,228,126, 50,207,199,183, -164,174, 82, 43,128, 39,254,244,211, 86,191,236,183,159,115,206, 15,157,179, 44,119,190, 84,188, 19,232, 88,196,153,100,185,155, - 89,195, 81,133, 0,234, 35, 12, 3,182,142,100,153,176, 39,192, 27, 63,181,227,223,126,239, 67,247,190,163, 14,241,139,236, 43, -165, 91,148, 98, 26,141,139,123,174, 11,123, 35,169,187,217, 45, 39,113, 92, 35,119,248,236,158,232,183, 28, 97, 55,184, 69, 55, -223, 5,116, 61, 92, 8, 92, 5,156,221,124, 63, 31, 1, 62, 39, 34,247,180,183,171, 22,143,177,208,215,175, 61,221,116,117,171, -113,145, 44,203,112,153,155,145,219, 46,171, 33,211,131,105,140, 88,138,230, 57, 31, 61, 62,164,231, 69, 13, 65,106,108,228,162, - 77, 95,217,214, 94, 95, 45,169, 31, 21,177,119, 72,173, 38,207, 60,111,101,241,189, 47,127,198,234, 31,249,169, 43, 78,251,246, -115, 39,178, 12, 21, 84,149, 40, 66,156, 53, 26,163, 96, 84, 83,233,154,192,246, 97,136,127,115,251,142,175,188,227, 51, 91, 63, -116,199,230,233, 15, 3, 15, 52,158,131,193, 98, 37,244, 22, 45, 90,180, 56,102, 66, 95,187,102, 76,114,190,108, 10,189, 80, 44, -116, 58, 29,172, 53, 84,190,162, 14,158,170, 44, 41,171, 33,198,210, 88,234, 29,134,213,128,168,130,193, 37, 85, 80, 83,127,107, -243, 29,143,110,104, 87,179, 37,245, 99, 57, 79, 14,140, 1,147,192,153, 43,199,221, 83,190,125,221,248,183,255,232,147, 87, 94, -245,228,115,122,103,173, 40,236,216,152,147,220, 25, 49, 62,162,253, 16,171,221, 85,236,223,179,117,176,237,125,183,237,248,143, -127,223, 56,245,133,135,118, 85,183, 2, 15, 2,123, 72, 49,244,121,171, 73,111,209,162, 69,139,133,140,245, 23,158,247, 5,205, -226, 85,226, 4,107, 33,203, 29, 62,120,234,186, 70, 53, 82,215, 53,181,175,176,214,210,235,246, 16,160,244, 30, 17,139,193, 16, - 99, 68, 52, 94,119,255,215,182,125,160, 93,205,150,212,143,245, 92,134,148,157,219,107, 30, 19,192, 74,224,140, 85,147,238,244, -201,220, 46,239,230,210,169,130,214,123, 6,113,247,182,189,245, 86, 85,182,146, 92,236,123, 72,113,243,105, 14,159,168,215,162, - 69,139, 22, 75, 22,231, 95,184,254,121,146,199,127,196,165, 60,227, 40, 1, 1,106,239, 9,193,167,196, 56, 85, 84, 35,157,162, -195, 88,111, 28, 31, 2,195,186,196, 26, 11,193, 16, 99, 29, 37, 72,239,190,187,182,148,237,138, 46, 29,184, 19,120, 46,109,136, -120,208,144,242, 20,201,125,190, 5,184,119,251, 30,239,182,227,237,172,215, 71, 82, 54,123, 77,170,133, 47, 73,110,246,150,204, - 91,180,104,113,106, 91, 99,185,190, 94, 50, 67,150, 89,106,173,137, 65, 81, 13,132,232,211, 35,120,140, 24,178, 44,167,219,235, - 17, 85,241,193, 99, 68, 80, 4,137, 32,209,254,225,125,119, 61,220, 18,122, 75,234,199,141,220, 71,229,113, 35, 11,126,244,239, -108, 82,215, 89,255,182, 68,222,162, 69,139, 83, 30, 27, 46, 90,251, 92,177, 60, 5, 52,253, 23,211, 45,178,170, 42,124,240,196, - 16,154,120,185, 54,245, 67,134, 58,212,148,117, 69, 81,116, 49, 81, 8, 26, 49,209,254, 94,187,154, 75,112,195,183,128,199,211, -146,120,139, 22,167, 56,206, 57,231,108, 65,196,137, 8,154, 84, 83,178,180,249,151,220, 58,193, 89, 41,129,225,198,141,247,159, - 18,242,166,107, 55,156,215,181, 29,153, 82, 19,141,177,128, 5,213,128, 15,158,126,191, 15,104,138,149, 3,206,102,100,121, 70, -230,178,166,189,106,164,151,143, 17,189, 82, 15,235,123,239,187,235,161, 11,218, 43,172,181,212, 79,132, 21,223,162, 69,139, 83, - 24,107,215,158, 55,105,108,124, 62,132,235,163,234,115,172,205, 77,230,114,124, 29,240,222, 99,140,208,235,101,244,122, 57, 89, - 46, 40,145,229,171, 46,102, 56,172, 62, 55,232,215,159,168, 43,222,242,192,230, 7,118, 44, 73, 43,204,233,205, 81,162,137, 26, -177,198, 17, 9,132, 24, 24, 12, 7,120, 95,167,120,185, 42, 98, 4,107,147,251, 61,198, 84,187,158,217, 12,213, 72,168, 35, 49, -240,186,246, 74,107, 45,245, 22, 45, 90,180,152, 87,172, 91,183,166, 40,186,238,254, 72,189,218,251,138,224,161,211,233, 49, 62, - 62,129,170, 80,215, 53,221,142, 99,114,178, 75,150,131, 18,169,163,167, 44, 43, 6,195,146,225,176,198, 15,232, 87, 67, 46,222, -244,173,251, 31,120, 60, 99, 57,123,205, 89, 14, 27,205, 67,155,182, 44,136,254,243,235, 54,156,251, 68,205,244,171,209, 4,108, -102,176,206, 82,215, 21, 62, 84, 12,134, 67,156,113, 24, 73, 2, 52,214, 90,156,203,201, 93, 70, 80,240,177,198,217, 12,171,142, -106, 80,163,129,149,155,191,249,208,206,246,138, 91,122, 48,237, 18,180,104,209, 98,161,192,102,188, 83,165, 94, 93, 87, 37,117, - 21, 80,133,170,174,168,227, 16, 91, 4,242,158,224, 58, 80, 83, 50, 93,245,217, 59,236,211,175, 74,250,117, 69, 25,107, 36, 3, -215,147, 94,103,194,126, 99,195, 5,231,173,126, 60, 99,137,226, 87, 84,102, 80,174,190, 96,197,103, 86,111, 88,117,221,153,235, - 87,175, 60,153,107,163, 86,127, 41, 18, 25,105,249,251, 80, 35, 98, 8, 33,146,217,140, 60,203, 16, 17,138,172, 67,183,232, 98, - 68,240, 77,188, 93, 68, 64,149, 24, 34,160,183,181,132,222, 90,234, 45, 90,180,104, 49,175, 56,111,221,217, 47,204, 10,125,175, -175,107,170,210, 99, 76, 70,150,231,120,239,201,187,134,241,229,189, 68,102, 26,154, 20,177, 8, 2,214, 90, 52, 70, 66, 4,107, - 44, 26, 34, 68, 65, 43,125,176,154,142,231,111,188,119,243, 49,101,120,159,177,230,244,177,202,246,167,140,115,168,166, 51, 10, -242,121, 9,242,118, 81,243, 49,163,246,225,173,247, 63,122, 66, 66,134,235, 46, 92,115, 77, 52,225,150, 32, 1,246,255, 70,226, - 0, 0, 32, 0, 73, 68, 65, 84,231, 12,198, 25, 98, 76,235, 80, 14,135,228, 89,142, 0, 33, 6,138,188, 64, 68, 40,125, 73, 80, -197, 26,139, 51, 22,162, 37, 6, 69, 2,215,221,247,141,135,218,218,244,150,212, 91,180,104,209, 98,126,176,230,188,179,215, 91, - 23, 55,198, 88,227,125, 32, 4,193, 24,131, 24, 75, 93,123, 58, 93,199,242,213,147,224,132,170,174,136, 49, 18, 37, 34, 40,206, - 57,140, 56, 20,197,136, 33,250, 20,123,151, 40,168, 55, 31,245,211,241,217,223,218,184,249,168,201,247,172, 53,171, 39,135,102, -122,183,117,142, 8, 68, 13, 73,253, 82, 99,147,140, 38,125,131,121, 39,152,191, 49,200, 78, 65,102,106,123, 68, 13, 86,108,101, -196,222,183,229,193,173,143, 75,241,114,195, 5,235, 76,180,126, 75,144,112, 90,148, 64,150, 89,196, 10, 33,132,164, 24, 7, 20, - 89, 7, 31, 83, 51,141,204,102,136,164,150,171, 85,172, 1, 33,119, 25, 38,102,120, 31,145, 32, 19,247,125,227,129,169,246,170, - 91,154,112,237, 18,180,104,209,226,100, 98,237,186,115, 11, 99,249, 92,212, 64, 12, 64, 52,160, 74, 93,123, 84,107, 98, 4,237, -100,132,144, 18,192, 50,151, 19,162,199, 71,143, 2,130, 69,196,160, 26,241, 33,128,128, 54,174,103, 17,125,150,237,152, 87, 2, -111, 59, 6,155,167,151,200, 59, 98,197,166,243, 24, 82,205,183,212, 40,244,132,248,139, 81,227, 47,122, 77,110,241, 24,148, 88, -167,110,104,170, 16,107, 97,124,213, 88,119,106,251,244, 49,183, 53,141, 18,158,167,134,211,210, 92, 5, 37,181, 77,117,198, 82, -137,160, 49, 82,213, 37,214, 58, 92,227,130, 15, 33, 32, 98,112, 38, 35,146,154,183, 68,141, 16,245, 19,247,125,227,193,150,208, - 91, 82,111,209,226,212,192, 25,103,158, 33,206,101,167, 13, 7,195, 75, 99,140, 99,157,110,103,202,136,169,234, 16,246, 20, 69, - 86,105,212, 50,196,136,175,107, 84,149, 34,207,176,153,107,186, 98, 5,234,178,164,215, 45,208, 16,176,198, 98,172,165, 63,221, -239,250,160,206,101, 34, 26,101,210, 88, 67, 94,228,185,247, 97,172,223, 31,130,128,136,236, 16, 97, 59, 34,123, 37,169, 38, 14, -183,110,221,118, 74,244, 52, 48,142,255,165, 49,172, 22, 21,156,117, 84,161, 38,196,136, 42, 81,212,188,206, 26,115, 77,140, 60, -179, 63, 40,113,193,144,229, 14, 99, 13, 78, 50, 84, 21,193,130, 50, 19,107, 30, 89,236,129, 72,136, 1,113,242,123,231, 95,188, -246, 99,247,126,227,190, 59,142,110,100, 90, 0,196, 24, 19, 75,147,250,148,103,214,224,162, 35,132, 36,244,162, 49, 18,155, 38, - 41, 26, 21, 4,130,130,250,100,221,251,104,236,177,174,205,186, 13,107,141,154,248, 78,140, 34,170,196, 81, 16, 0, 69, 48,228, -205, 6, 7,160, 40, 10,144, 52,222,160, 1,213,128, 17,139, 17,131, 17,131,138, 16, 53,180,181,233, 45,169,183,104,113,106,224, -178,203,215, 62,111,197,138,241, 15, 46,155,236, 57,107, 82,251,202, 78,209,193, 58, 71,140,201,205,107,141,224,171,154, 88,215, -100,185, 99,124,172,139,179,134,224, 3, 62, 6,234,218,227,242, 60,181,191, 52, 2, 2,213,160,100, 88,123,170,178,102, 88,122, - 76,230,200,179,156,186,242, 76, 77, 79, 17, 99,196,135,228,210,141, 40,161, 6,239,107,206, 62,119, 2,239,227, 22, 95,135, 15, -150,101,249,241,170,170,111,175,188,110,222,246,200,174, 37, 99,105,157,183,238,236,107, 98,172,127, 38,134,128,193,162,170,164, - 92, 46,249, 11, 35,230, 23,183,109,219,177, 19,248,173,115,207, 59,231,110,245,241,194, 96,193,132,128,138,155,177, 90, 71, 73, - 96,130,193, 88, 82,172,217,128,205, 44, 98, 12,162, 6,114,254,109,253, 5,107,206,252,214, 55, 55,215, 71, 76,233, 66, 7, 97, -198,229,110,140, 25, 37,154,145,234,193, 3, 62, 4, 98,140,104, 84, 68,133, 81,131, 42, 1,196, 2, 72,204,108,214, 31,114,108, -194,109,198,201,213,154,201,106,140, 33, 54,138,112,233, 97, 40,171,146, 16,106, 20,109, 60, 9, 13,161,135,128, 51, 46,109, 0, -154,214,214, 33, 68, 8, 6, 17,243,111,237, 55,125,105, 67, 38, 39, 39, 23,116,109,184,136,156, 82, 99,152,239,115,157,136,185, - 28,239,115,204,199,152,247, 59,166, 42,121, 47,227,172,179, 39, 24,235, 58, 38, 38, 10, 38, 39,187, 76,244, 10, 86, 44, 27, 99, - 98,114,140,201,241, 46,189, 34, 39, 19, 65,162,210,233, 56, 34, 66,244,145,186,106, 12,106,107, 80, 35,248,168,148, 62, 50, 44, -107,234, 16,136, 62, 80,123, 79, 57, 40, 41,171,138, 58, 42,106, 12, 96,168,189,103, 80,149,148,101, 19, 75,142,201,117, 92, 87, - 37, 33, 26, 4,131, 70,152,238, 79,179,123,207, 30,166,166,250,148, 67,143,175, 34,161, 86,192, 33,209, 98,212,146, 76,254,249, - 95,215, 99,121,223, 99,223,163,136, 81,196, 68, 52,134, 70,161, 66,136, 74,114,183, 35,137,168,196, 36,169, 73, 39, 80, 68,108, - 97,112,133, 67,140,206,136, 90, 56,227,146,206,185,128,179,142, 24,195,204,249, 52, 66, 12,145, 88, 71, 98, 21,169,251,154, 92, -252,135,157,139, 80,209,103, 32,211,201, 50, 22, 1, 20,107, 12, 65, 35, 62, 6, 84, 99,163,119,169,205, 67,136, 81,137, 49,233, -177,107, 84,212,195, 68, 49,201,100,177, 28,228,232,110,181, 98,192, 20,138,201, 12,158,154, 42, 86, 56, 99,201,157, 3,129,254, - 96, 42,109, 2,189,199, 90,203, 68,111,146,168,145,178, 42,147,103,193, 52,122,114, 34, 72, 48,132, 32, 72, 16,172,207, 64,229, -148,188, 55,181,150,122,139, 37, 69,232,137,191,116,222,206,179, 24,200,252,128,107, 2,168, 23,182, 61, 82,115,255,222,157, 24, -167, 56, 39,100,185, 97,114,188, 96,197,138, 30,203,151,143,177,114,197, 4,147, 19, 29, 78,155,236,113,250,233,203,233,116, 28, -162, 80, 7,136,201,247,138,247, 53, 33, 42,181,143,212, 62, 80,214, 53,117, 29, 40,171,154,126,127, 72, 89,150,201,194, 18, 1, -227,168, 98, 96, 88,213,148,181,167,172, 42,188, 15, 68, 85, 52, 10,214,229, 77,214,181, 65, 81,242,241, 30, 43,199,186,120, 31, - 41,135, 67,124, 29,136, 94, 41, 7, 21,213,160, 68,130,128,102,160,102,222,214,246,120,125, 38,198, 26, 92,150,226,211,138, 65, -163, 16, 85, 1,131,181, 38,245,251,158, 57, 87,122, 78, 98, 82, 75,139, 33, 32, 8,163,242,174,224,147,135,195,153,212,125, 12, - 35, 41,244, 97,154, 78,100, 54,195, 75,192,107,141,183, 1,194,161,191, 3,170, 10,178, 47,187,190, 49,119, 17,132,194,117, 40, -125, 73, 21,106, 64, 49, 52, 74,119,146, 8, 52,109, 86, 26, 66, 15, 52,113,109,151,254,118,148,230,147, 26, 77, 31,165,105, 54, - 13,169, 9,122,114,239, 7, 79,158, 21,196, 24,168,162, 82,100, 69,170, 7, 80, 37, 42,168,166, 60, 0, 37,109, 50,210, 84, 36, -121, 19, 78,242,247,175, 37,239, 83,132,212, 23,210, 7,221, 90,230, 75,247, 75,122,160,177, 10, 16,124,133,175,170,212,108,192, - 67,157,164, 52,153,222, 93,243,208, 3,123,113,185, 35, 43, 28, 26, 3,221, 94,206,242,101, 99, 44,155,232, 50, 49,222, 97,114, -188,131,203, 28,185,179, 44, 95,222, 37,119,150,178, 74,237, 47, 93,102,137,162,132,218, 67,136, 16, 21, 13, 74, 85,215, 84, 58, -196,199, 64,229, 35,149,247,148, 62, 89,246,117, 29, 48,198, 98,234,200,176, 28,224, 99,196,217,156, 34,239, 98,140,197, 58,200, - 10,176, 89,170, 59, 14, 6,188, 29, 96, 34,100, 98, 8,165,161, 30,214,128, 57,160, 69,118,180,159,215,241,222, 0,136, 8,206, - 25, 50,151,200, 60,104, 76, 6,111,202, 40, 79, 38,234, 1, 62, 36,145,100,121,251, 16,176, 98, 80, 73, 77, 74,130, 15, 68, 72, -164, 46, 22,139, 80,135,154, 60,207, 49, 98,176, 54,197,149, 53, 68,108,158, 54, 1,135,210,174, 76,227,115,196,152, 33, 58,152, -137, 83,119,178, 46,198, 26,234,210, 19, 53,166, 49,144, 54, 38, 22, 67,145, 21, 12,169, 8, 33,185, 2, 84, 20,162, 38, 82, 31, - 37,184, 29,241,226, 41, 98,211,186,132,144,200,220,138, 0,210,180, 87,173, 26,247,191, 79,217,255,198,226,189, 39,104,196, 57, -135, 96,154,141,132, 18,188, 54,225, 9, 69,212, 30, 86,183,115, 62,191,207, 45,161,183,150,250,146,221, 84, 44, 5,178, 93, 44, - 95,254,131, 17,249,232,223, 81, 76,214, 8,164,255,165, 39, 20,139,140,140, 36, 49,212,149, 82,215,145,189,123,166,121,232,225, -189, 24, 35, 88, 99,112,206, 98, 44,228,206,177, 98,121,143,177,177, 14,181, 15,160,145,241,241,130,101,147, 29,172, 19,164,177, - 0, 35, 80,251, 64, 68,137, 18,241, 62,149, 74, 37,146, 80,112,160,154, 76, 59,107, 45, 98, 29, 86, 28, 33, 70,130,247, 24, 99, -209, 40,104, 76,227, 50,214,146,119, 58,244,138, 14,157,188,199,158, 61,187,241,182,198,132, 28,173, 32,134,125,179, 61,218,101, -157, 31,139, 94,155,216,121,170, 39, 79,153,217,218,120, 24,228,128,164,147,248, 81, 9, 33,149,109, 21, 54, 79, 22,124,108,146, -225,164, 9,101, 72,159,204,186, 38,185, 13, 58, 69, 7, 49, 96, 17,196,130,205, 12,206, 69, 66,125,232,177, 27,107, 17, 35,196, - 50, 34, 38, 89,219,185,117, 84, 85,153,220,221, 77, 88, 96,164,179, 46, 86,146, 34,253, 40, 89,174,185,110, 50,107,211,231,117, - 20,102,186, 8, 68, 19,137,164,120,253,200,250, 55, 38,109,134, 66,157,200, 92,125,192, 58,135, 53, 46,173, 41, 41, 47,195, 24, -193, 88, 48,166,217, 28,165,164, 67,140,154,198, 82,151, 37,231,109, 59,158,227, 29,125, 86,115,199,126, 48, 47,231,236,207,246, - 64,239, 57,165, 72,253, 84,139,151, 47, 5, 50,159,247,248,246, 60, 30,119,116, 59,107,188,165,179, 40, 38, 61,171,251,125, 25, -247,191,203,134,152, 26, 6, 90,107,176,206, 80, 40,196,152,108,175, 24,147,203,179, 42, 43,118,239, 29, 38, 82,144, 38, 14, 43, -224,172, 33, 53, 31, 49, 56,215,184,151, 69,201, 51,139,177, 66,208,128,117, 6,151, 25,196, 40, 54, 51,132,218, 83,135,138, 40, - 32,198, 16,157, 33,170, 71, 85,113, 46, 71, 85, 26,139, 80,155,243, 89,140,205, 81,129,138, 26, 45,146,211, 62, 88,143, 84,130, - 4,139, 6,155, 60,201, 50,127,159,203,145,188, 71, 21,124, 29, 8, 94,154,155,104,227,194, 62, 84, 66,192, 40, 97, 45, 68,196, -128,204,136, 97,166, 99, 88,107, 65, 71, 53,236,161,209, 64, 7,131, 73,229,110,146, 10,194, 76, 67,236,161,138, 7, 61,157,106, - 18,116, 25, 48, 32, 68,197,217,116,252,136, 82,251, 48,147, 0,169, 49,149,216,137, 8, 81, 35,131,225, 0, 77,123,185,153,227, - 24, 49,105,142,162,135,245, 14,204,156, 95, 34, 88, 37, 74, 58, 62, 38,109, 6,141,205, 18, 71,107,202, 25,200,242, 28,103, 51, -164, 33,239, 24, 83,255,244,168, 96, 84, 16,177,205,166,192,224,140, 69, 2,196, 57,161,153,165, 72,226,135, 34,222, 35, 25,223, -161, 60, 76, 71, 59,231, 35, 93,143,217,227, 27,109, 30,142,117, 67,224, 22,194,130,159,140,243,207,103,108,185, 37,241,147,111, -145,207,109,247, 39,251, 17,248,254,164, 61,251,249,253,111,244,242, 24,102,209, 89, 7, 17, 35,205, 43,154,114, 39, 3, 25,179, -173,178,100, 25, 43, 80,215,145,170,140, 51,150, 24, 72,114, 10, 52, 9, 88,198, 72,243, 0,235, 4, 31,107,208, 70, 96, 69, 20, -201,146, 37,104, 51, 71,167, 23,201,242, 34,105,127,251,100,114, 26, 17,130,175,201, 50,199, 88, 49,206,222, 24, 64, 82,108, 57, -102, 30, 19, 64, 43, 33,148,178,207, 37, 47, 39,150,204,121,204,166, 73, 81, 21,142,166,143, 83,212,136,209,100,161,171,142, 30, -137, 60,141, 49, 41,167, 33, 36,247,122,237, 83,179, 19, 49,105,157,181, 73, 84, 19,103, 16, 27,103,200,119,238, 60, 68,132,160, - 41, 76, 50, 58,103,212, 72, 89,151, 4,173,155,207,180,113,168,235, 44,107,157,180,180,163,248,185, 51,150, 34,235, 96,141, 57, -176,247,225,128,107,166, 96, 21,140, 34, 2, 34, 41,174, 46, 77, 61,122,104, 6,109,141, 77,127, 67,103, 18,231,162,234, 76, 2, -159, 52,121, 5,163,117,162,169,229,159,233,118,135,206,187, 55,108, 33,221, 51, 22,186,199, 96,191,123, 87,243,243,108,174, 58, -208,239, 39,149,212, 31,179,160,122,136,251,230, 9,186, 8, 22,123,220,104,177,186,214,143,235,141,100,182,191,114,214, 69, 37, - 7,184,204, 14, 71, 27,251, 91,239,114, 92,230, 56,243,239,104,140,230, 96,228, 38,196,216,212, 67, 3, 84,130, 54, 47, 86, 77, - 77, 75, 34, 62,221,156, 77,197,160, 83,209,155,232, 49, 54, 62,134,179,233,198,109, 93,178, 76, 59,121,135,204,184, 25,183,109, - 84,176,157,100,221, 85,195, 10, 49,224,135,154, 4, 94, 30,231,103,115,162,110,174,137,104,147,251,153, 8,222,123,134,213, 32, - 17,147, 49, 51, 49,239,209, 7, 24, 53, 18, 67,196, 84, 67,186,157, 2,135, 75,137,118,164,228, 51, 49, 32, 54, 37, 35, 62,198, -245, 74, 35,171,106, 13,253,202, 64, 0, 34,205,230,129,153, 76,248,100, 17, 39,235,219, 26,155,198, 16,246,233,172,199, 24,113, - 98,232, 20, 57, 89,158,225,171,112, 4,214,162,162,146, 30, 41, 83, 62,185,212,141,140,170, 32, 82, 89,157,210, 28,171,241,226, -164, 13,166,197, 89,197, 71, 63, 35,208, 3, 16, 67,218,156, 4, 2, 18, 77,179,209,212,199,117,141,159,232,123,207,137, 50,192, - 22, 3,225, 31,137, 39,194,157,200,193,156, 72, 34, 95, 44, 59,200, 83,105,163, 48, 79,131,126,204, 69,117, 44, 78, 43, 57,206, - 23,230,145,174,165, 28,192, 51, 32, 50,178,251,204,140, 85, 5,121, 35, 79, 26,168,167, 3,187,203,189, 12,167,134, 20, 99, 57, - 69,175,131, 43, 50,170,170,166, 42, 75,124, 72,238,217, 60,203,240, 33,206,148, 94,217, 60,195, 58,112,185,224,251,138,175,227, - 73, 36,244,163,123,191, 49, 6, 53, 22, 19,133, 8,137,188, 16,178, 70,215,197, 7,143,149, 89, 86,140,104,227,166,110,222, 27, -125,146, 86,173,146, 94, 58, 22,240,169, 12, 77,230,196, 98,180,177,134,205,172,205, 98,140,233, 28, 26,147, 5, 61,202,134, 71, - 20,235, 50, 52,166, 50, 55,148,153,132,184, 58, 6,166,135, 3,114,233,206,100,157, 31, 50,235, 30, 80, 19, 81,105,198,104,192, -140,146,252,162,146,185,140,160,190,137,155, 27,156,115, 40, 66, 32,162, 62, 52, 94, 27,197, 26, 55,147, 87, 16,227,190,111, 67, -140, 73,192,102,177,147, 90,139, 67,175,145, 91,138, 31,194, 82,140,147, 47,149, 93,230,252, 16,250,194, 25,223,227, 61,222, 99, -119,229, 35, 2, 20,172, 24,172,113, 56, 85, 66,244,148, 83, 21,131,233,189,116, 39, 42,198,151, 77,144,229,142,254, 96, 64, 36, -224,154, 4, 45, 95, 85, 84,117,149, 18,165,140,161,211,233,224,186,150,189, 50, 5,123, 3,120,183,191,163, 67,230,103,142,199, - 99,211,144,242, 24, 45,133,181,168, 77, 4,106,196, 54, 37,238, 73, 7,190, 81,231, 67, 21,130, 70,170,186, 34,203,114,132, 36, -171,154,226,223, 33,137,210,152,100,133,207, 61,175,115, 25, 69, 55, 99,104,114,250, 62,105,208,107,163,247, 62,243, 26,235, 48, - 86, 40,171, 18,239,171, 89,170,109, 74,145,229,169,212,176, 42, 9, 33, 41,206,137, 88,228, 48,139, 43,141,149, 62, 42, 99, 19, -147,234,238,211,113, 3, 74, 42,153, 20, 17,114,151, 55,238,249,180, 41,169,130,167,246, 30,235, 44,206,186,212,216,102,228,188, -144, 84,202, 38, 42, 11,234, 59,220,222, 55,231, 7,110,169,124, 72, 75,173,158,124, 41,124,169, 22,122, 82,221,241, 58,214,241, - 38,242, 35,121,189,179, 25,214, 56, 66, 12,148,123, 75,134,253,237, 76, 44, 31,163, 24, 43,200,243, 28,107, 51, 66, 12, 24, 35, -140,117,199, 26,151,245,144, 97, 57,164,112, 25, 89, 47,185,237,227, 0, 36,164,172,251, 35, 73,204, 57, 89,241, 76,213,166, 70, - 93,149, 76, 82,210, 90,212,136,136, 33,207, 92,163,202,231, 27,146, 51,128, 18, 98,160,242, 53,157, 16,146, 26,160,179,228,133, -163, 6,234, 16, 27, 23,247, 99,199, 22, 66, 96, 56, 12,148,190,156,113,237,107, 99,241, 91, 49, 68, 98,170, 68, 8, 35,155, 60, - 53, 81,113, 70, 25, 12,135, 88,227,176, 78,169,124,213, 84, 86, 28,153, 40, 80, 74,144,107, 94, 43,138,117,169, 63,186, 53, 96, -108,145, 8, 29,176,198,165,141, 9, 66,145, 21,136, 24,188, 87,172,109,202,236, 34,169,178,160, 81,158, 75,249, 27,246,168, 92, - 88,109, 89, 91, 75,234,167, 12,161, 47,149, 57, 45,214, 4,184,165,246, 57, 29,251,251, 71,137,117, 6,171,150, 16, 61, 83, 59, - 74,234,129,167, 59, 25,144,188,164,200,243, 36, 74,162, 41,150, 60, 57,182,140,193,112,154,186,174,233,118,198, 8,157, 64, 48, - 74, 30, 11, 66, 29,168,170,234,128,201, 99, 39,154,204, 15,244,190, 24,149,232, 83,153,151, 15,201,138,141, 52, 73,132, 13,177, -170,146, 72, 76,105, 52,210,149, 58,120, 52, 6, 84, 83, 67,147, 34,207,176, 88,162, 31, 18, 36, 30,144,107, 69, 12,117,168,168, -124,213,184,224, 37,137,189,184,156,204, 57, 6,213, 16,213, 84, 43,239, 26,141,249,178,174,102,202, 35,135,229,160,201,232,215, -166,209,140,206,201,198, 60, 48,161,171,209, 70,183, 62, 37, 97,162,138,143, 41,155, 61, 51,201,157,162, 81,137,146,250,204,139, - 1,219, 84, 52, 32, 74,225,114,196, 36, 47,130,206,148,214,165,243,171, 54, 53,234,139,124, 35,126, 34,191,207,186, 8, 67, 21, -143,155,212, 79, 21, 55,251, 82,139,103, 47,230,178,180,165,180,217,120, 60,239,159,253, 86, 35, 6, 99,115, 28, 57,248,192,238, -109,123, 49, 29, 88,181,122, 85,106, 85, 90,149, 88,231,154, 68,176,180, 25, 24,148,125,166,134,211,228, 54,199,246, 4,250, 22, - 41, 15, 44,144,114,178,220,237,251, 61,223,184,218,157,100, 24,211,100,251, 55,177,103, 35,134, 74, 61,170, 1,193, 80,107,221, - 40,210, 65, 12, 33,149,120, 89,211,120, 46, 44, 69, 39,181, 32,173,171, 65,202, 68, 12,178,223,186,118,187, 57,193, 24,246,236, - 17, 70, 89,227,153,205,136, 26, 25,150, 37, 81, 67,138,105,155, 20,227,166,201, 74, 23, 82, 29,121, 82, 5,140, 73,217,206, 90, - 58,189, 2,137, 66,237,253, 65,136, 66, 83, 44,221,164,172,119,227, 76, 10,157,132, 26, 36,169,229,213,117,114,229,251, 58, 37, -194,169, 8,153,184, 36, 56, 19,147,154,161, 49,150,204,228, 73,197,206, 90,146, 36, 79,147, 64, 21,101,209,127,119,231,155,184, -143, 36, 33,237,112,222,164,195,213,169, 31,105, 6,251, 9, 37,245, 54, 94,222, 30,127, 49,238,194, 23,138,171,253,248, 16,250, -129,223,155,106,227, 29, 57, 61,234, 65, 73,127,247, 16,183,194,225, 92,114,211, 15,135, 3,140, 56,138, 60,167,170,135, 77,163, - 18,197, 83, 49,140, 37, 30, 48,141,224,206,200,170, 92, 40,215, 79,202, 58, 79,101,107,163,216,179, 49, 73, 45, 46, 37,144, 69, -124, 93, 37, 98, 36, 89,186,206,100,100, 38,195, 89, 71,110,179,148, 96, 38, 6, 39,150, 60, 43,168,242,154, 58,142,244,219,155, - 27,173, 10,131,126, 69,109, 6, 73,216,134, 72,175,232, 48,222, 27, 99,215,222, 93, 68, 77, 53,240,177,137,215,167,221, 6,216, -198,229,111,140,197, 57, 33,250,164, 32, 40,205,166, 43,133,179, 15,114, 35,151,136,154,152,142,227, 76, 35, 81,155,220,253, 81, - 83,211,152,224, 61,193,215, 40, 17,171, 54,229, 86, 24,219,184,216, 33,138,153, 9, 73,104, 74,215, 7,192,226,154, 82, 62,195, - 97,221, 5, 75,236,158,240,120,106,210,143,215,249, 14, 86, 66,253,120,234,208,143, 27,169,183,238,245,150,112, 79,228,241, 23, -226,103,190,144, 9,125,116,227, 72, 9,113,150, 92,187, 12,119,151,104,216,195,138,213,203, 25,235,246,232, 21, 61,134,131, 97, -178,238, 66,170,213,138,193, 51,168, 6, 12,226, 52,198,100, 20,177,139,179, 25,138,166,122,239,121,156,219,209,173,131, 82,123, -143,151, 20, 34,176,154, 68, 96, 76,227,230, 54, 98,146, 88,139,198, 25,241, 31, 85,197, 88,155,146,198,148,198,138, 77, 55,215, -172,176,100,149, 35,212, 53,106,146, 96,204, 40,145,205,135,154,210,151, 41,142, 78, 34,214,233,193, 52, 0,121,158,131, 64, 93, -215, 4, 13, 77,141,130,161,200, 11, 98, 8, 73, 1,208, 25,170,106, 10, 34,212,193, 51, 61,232,227,228,177,183,218, 84,233, 30, - 81,171,168,209, 36,157,155, 57,106,173, 19, 57, 55, 2, 71, 49, 4, 98,244, 32,144,185,140, 60,235,164,113, 52, 10,123,198, 58, -178, 70,141,208, 24,211, 28,183, 9, 69, 24, 32,128,168,162, 88,142,119,125,250,201,242,156, 30,200,194, 94,200,165,111, 71, 83, - 86,253,120,201,222,157,106, 68,122, 42, 88,180,109, 98,221,241, 61,238, 98, 76,168, 19, 17, 50,233, 80, 77, 85,236,148,221,156, -113,246,233,116,186, 29,166, 7,211, 84, 85, 69, 21,107, 50, 87,160, 33, 82, 87, 85, 18,210, 41, 2,153, 53,116,109,135,114, 88, - 19, 66, 53,111,115, 59,122,215,166,204,148,145,101,214,162, 98, 16,129, 60,203, 49, 70,136, 62,144,170,185, 19,145, 9,210, 88, -173,169, 82,160,246,146,228, 94,173,204,184,230,173,115, 88,231, 81, 21, 98, 37,169, 39, 58, 77,117,184,198, 84,254,101, 12,190, - 17,179, 17, 82,162,156, 8,120,234,209, 68,136, 81,241,190, 66, 16, 42, 31, 48, 24,156,205,128,164,255,207, 65, 60, 31, 51, 89, -251,141, 98, 29, 6,124, 76,239,145,230, 60,177, 33,127, 99, 28, 34,138,179,201,211, 98,109,114,189, 71,109, 44,245,102,174,162, -210, 36, 12,154,180,137,105, 58,199,165,210, 61,142,139,165,126,178,184,225, 64, 2, 45, 11,150,179, 70, 13,137,154, 68,203, 84, -105, 49, 43,188,213, 92, 19, 71, 75,246, 71, 98,225,187,133, 72,232,173,139,189,181,202,151,130, 85, 61,223,150,249,145,188,207, -153,156,208, 15,108,123,100, 59, 89,207, 96, 93, 70,158, 21,132, 50, 89,186, 65, 3,209, 87, 56,235, 16, 43,196, 44, 80,233,176, - 81, 76,147,121, 25,227,177,189,190, 17,133,201, 44, 98,149, 50, 12,102,117, 98,211, 38,230,110,176,146, 44,243, 16, 21, 37,149, -147,149, 85, 69,152,145,142,205, 48,214, 52,210,178,169,113, 75,208,128,122, 69, 34, 51, 86,238, 40, 81,205, 90, 75,136,145,170, -246, 68, 34,133, 43,102,164,129,101,164, 30, 23,153,169, 52, 8, 49, 18,213,210,233,116, 25,150, 10, 33,185,209, 71, 29,227,246, - 87, 55, 76,110,119,145, 20,243, 55, 54,221,176, 53, 42,117, 44,155,245, 79,253, 5, 52,166,126,241,163,159,189,122, 66,240, 51, - 22,188,168, 52,238,119,197,136,224,236,190,106, 6, 35,194,241,114,187,183,122, 25, 7, 38,112,157,181, 81, 51,205,117,145, 21, -150,204, 25,202,170,194,101,169,235, 99,172, 2, 72,234, 38, 88,251, 64, 89,122, 64,102,186, 20,138, 28, 94,142,246,112,113,123, -183,144, 22,114, 41, 37,190, 45,165,243, 44, 38,203,127,169, 36,194, 29,207, 13,133,168,195, 79, 5,130,175,201,199, 33,106, 69, -191, 26,146, 59,219,196,135,149,232,147, 85,238,131,167,200, 60, 38,203, 48,209,161,254,208, 46,193, 19, 67,232, 9, 86, 44,214, - 10,158, 58, 37,191,137, 82,135, 58,213, 95, 11, 88,113, 51,194, 61,170,158, 16, 3,177,201,248, 14, 33,149,188, 1,228, 20,169, -118,219, 36, 29,127, 69, 9,117, 68,107,176, 86, 40,122, 29,162,175,168,203, 42,197,235,171, 33, 62,122,140,181,100, 89,150, 68, -104, 70,244,220, 88,192,185, 75, 77, 85,124, 72,165,119,253, 97,159, 24, 34,221,172, 75,111,172,139, 6, 24,150,213, 62, 11, 93, - 73,154,238, 54,117,115, 19, 11,214, 26, 66, 72,141,126, 66, 72,114,175,214, 24,140,164, 42,135,220,101,169, 35,155, 8, 33, 52, -146,177,146,186,219,105, 83,155, 47,141, 52,176,145,148,176,103, 0, 85, 75,108,251,167, 31, 63, 14, 31, 9, 20, 53,155,205,116, -253, 37,137,103,151, 25,242, 60,245,112,192, 4, 68,106, 10, 87,211,233,230,116,186,150, 80, 43, 89,150,209,201,115,124, 25,216, -187,119,128, 51, 25,222, 27,246, 78, 85,148,165,111, 54,140,114,204, 61, 26, 92, 75,232, 45,201, 46,118, 50, 95,136,155,131,147, -241,254, 67, 41, 56, 10, 22, 42, 67,217,175, 8,182,198,217,140,110,222,163,172,135, 4, 77, 86, 38,141, 14,187,170, 18, 77,141, -100,138,149,212, 52,196, 87,245, 99, 98,236,243, 23, 63,127,236,123,164,233,200, 38, 65, 82, 67, 29,151, 99, 77,106,214,226, 67, -157,100, 89, 77,234,172,230, 99, 72, 73,103,200, 76, 57,151,181, 14, 31, 3,222, 39,203,200, 58,151, 74, 2,157, 96,213,160,185, - 18,235,152, 60, 20, 35,181,182,161, 38,189,247, 24,232, 21, 61, 66,140, 12,171, 97, 99, 53,207,114,165, 74,163,252,134, 65, 26, -197,183,160, 74, 39,239,208,201,187,152, 24,201,146,208, 43, 94,149, 40, 66,144, 8, 78, 17,187, 79,147,190,246, 53,101, 53,108, -114, 4, 44, 42,130,181,141,168, 77, 51,135, 60,207,147, 37,239,155,113,200,190,254, 2,194, 62, 79,195, 62,151,187,229, 88, 66, -180, 45,161, 63,150,200, 71,234,124,214, 9, 69,110,233,118, 51,122, 99, 5, 78,160,172, 61, 33,212, 8, 73,170,119, 48, 40, 41, -203, 50,181,232,205,146, 70,128,175,147, 34,100,183, 11,170,129, 60,115,172, 56,173,215,104, 11, 24,150,173,200, 25,244, 3,187, -119,151, 76, 77, 87, 36,169,129,163,239,172,232, 22, 66,124,100, 41, 17,249, 98,173,109, 60, 17, 36,121,188, 19, 89, 22, 90, 70, -251,241,180,174,231,229, 61, 81,160,180,216,110, 74,168, 26, 12, 7,148,117,153, 18,203,140,197, 54, 29,205,104,234,218,163,212, -136, 51, 32, 46,185,163,195,137,183,206,247,187,177, 70,168,107,207,168,163,104, 82,113,147, 38,174, 29, 49,214, 96,173, 67, 81, -156, 88, 66, 12,132,144,106,200,173,115,233,185,152,226,214,132, 84, 67, 46,198,128, 81,108,110,201, 60,152, 42, 82, 13,166,153, - 14, 83,140,106,223,157,109,180,221, 99,104,146,227, 36,213,128, 55, 61,222, 69, 4, 43, 22,193, 80, 20, 29, 66,157,196,105,198, -123,227,244,176, 92, 24, 6, 44, 71,232,139,167, 4, 74,132,173, 78,216,229, 12,161,209,120,175, 67, 77,229, 83,217,154,105, 66, - 8,166,105,249, 10, 74, 24,221, 87,194,156, 12,119,217,215, 93, 80, 76,242, 58,212,222, 99, 37, 35,183, 54,201, 4,199,184, 32, -190,255,163,251,227, 98, 34,116,213,198, 39, 35, 66,167,107, 25,159, 40, 88,181,178,195,178,101, 69,234,184,232, 12,213,176,100, -235,182,221, 76, 79, 87,148,101,164,174, 2,190,246,168, 79,201,166, 90, 11,131,224, 49, 38, 98, 68,240,253, 33,206, 25, 58,221, - 14,121, 7,160,196, 24,165,232,116, 88,121,122,206,178,229, 57,219,182, 78,179,107,119, 69, 93, 71, 84,143,142,216,151,116,151, -182,147, 97,209, 46, 70,241,134, 19,117,252,150,208, 23,192,230, 51, 90,164, 6, 79, 69, 36, 54, 74,104,150,204, 58, 80, 24,214, - 67,234,186, 74,141, 97,242,156, 88, 7,134,245, 0, 51,106, 6,194,201, 33,244,145, 73, 28,155,238,105,198,166, 18,183,216,120, - 15,242, 70,120,101,118,108,115, 52,214, 16, 66, 19, 83, 55, 51,228,236, 17,156, 75,110,109, 49, 73, 75,189,215,133, 53,185, 97, -224, 75,110,159, 42,147,246,122,211,215,126, 88,167,182,170,121,150,167, 70, 46,198, 55, 93,246,210,184, 66,140,168,122, 58,121, - 7,117,176,183, 63, 77,191, 46,153, 48,142, 43,179,200, 42, 95,179,135,136, 71,216, 97, 12,209, 21,236, 1,170, 24, 48, 54,141, - 73, 99,202, 27, 24,197,209,103, 98,244, 77,226,155,247, 53,193,215, 41,116, 32,130, 24,219, 72,227, 54, 97, 0,146,232, 78,106, - 14,212,116,123, 11,122, 68, 74,114, 39,234,123,176,208,202,221, 14,110,132, 37,175, 85,158, 27,122,227, 25,203,150,117, 88,117, - 90,151,149,171,198,232,118,115,234, 97,197,150, 45,187,216,246,192, 30,246,236,158,102,122,186, 34,134,212,122,105,116,141,170, -166,176,143, 53,134, 92, 83,115,160, 40,224, 43, 79, 45,138,175, 20,219,175,177, 86, 48, 38, 82, 14,149,178, 83,209,237,228,172, - 90,149, 83,116, 13, 59,182, 87, 12,250,225,232, 44,245,150,200, 23,135, 7,160, 61,254,194,117,219,157, 92, 17,154,163,124,175, -130, 86, 22,103, 28,174,103, 41,242, 46, 49,196,148, 44,166, 1,227,133, 58,166,190,225,185, 75,241,235, 58, 42, 6,139,197, 81, -100,157, 38,222,123,124, 37,101,143,168,166,152,212, 39, 60,119, 14,172, 80,251, 26,109,218,154,186, 44, 75,130, 45, 49, 52, 46, -121,159, 18,231,172,107, 90,164, 42, 26,147,114,155,208,100,192, 35, 77,211,148, 68,138,189,220,176, 65, 97,106, 16,248,154, 40, - 65,193, 9,100, 54, 75,221,225, 72,162, 51, 73,232,165,137,167, 54, 49,237, 97, 53, 76,164, 26,210, 34,135,232, 25, 14, 42, 86, -186,130,149, 69,135,243,140,103, 42, 6,134, 2,123,109,198,192, 64, 64, 81, 13,201,117,171, 1,215, 36,250,197,166, 21,175, 72, - 82,178, 11, 49, 98, 13,196,166,249,140, 0,153,228, 24, 23,103,154,187,196, 38,204, 48,210,159,143, 81,169,171,144,114, 5,116, -255, 68,185,217, 25,212, 75,237,251,121,168,114,183,195, 25, 97,251,214,196,208,237, 57,198, 39, 28,203,151,231,172, 92,209, 97, -124,162, 67,222,113, 84,101,224,225,135,182,179,229,145,221,108,219,186,139,189,123,251,248, 58,181, 57,142, 58, 10,133, 24,140, - 56,156,205,200,178,180, 73, 11,106,155,178,194,136, 6, 67,173,158,210, 15,144,129,224,178,212, 21, 48, 27, 6, 6,123, 97, 79, - 54,160,232, 56, 58,221,156,101,203, 45,214, 66,237, 13, 85,233,143,232,123,231, 22, 51, 97, 44, 21,242,107,251,186, 47, 62, 23, -249,241, 58,206,241,148, 82, 61,242,155, 30, 72,149,145,117,133, 44,179,120,109,226,182, 24,178,144, 37,151, 97,227, 38, 53,198, - 80,116, 44,177, 74,101, 57, 89,199,161,131, 84, 59, 61,178,136,231,147,204, 31, 43,151,146,198,169,193,163,162,228,182, 72, 36, -104, 83, 86,248,168,233, 74, 74, 46, 75,158,133, 81,140,218, 90, 67,237, 61,198,216,125, 49,122, 1,231, 44, 62, 40, 37,194,206, - 24,153,246, 37,117, 76,241,117,155, 91,242,188,160,174, 60,132, 68,214, 81,147,235,123,148,144, 86,171,111,110,216,194,160, 42, -105,130,161,196, 24,169,234,146, 64,151,213,189, 49, 38,135, 83,108, 14,129,135,172,176, 37,122,166,131, 79, 53,232, 52,202,120, -206,165,205,147, 49, 77,187, 85,102,186,204, 73,147, 65,159,154,203, 36,241, 29,193,204,114,203,234,190, 4, 46,109,186,252, 42, -141, 90,158, 44,168,107,119,190,207,123, 44,229,110,163, 8, 69,111, 44, 99,108,210,177,108, 89,206,178,101, 5,221, 38,131,189, - 46, 75,182,108,221,197,150, 71,118,179, 99,199, 94,246,238,157,166, 44, 61,170, 96,109, 65,158, 21, 88,113,233, 51, 18,219,136, - 36,153,253,207, 43,179,218,255,146,165,102, 63, 26,240,101, 0,173, 49,162,216, 70,133,112,239, 30,112,185,161,219,235, 80, 20, -169,220,177, 42,227, 17,245, 17,112,139,145, 60, 22,170,197,118, 42,163, 21,162, 89,248,100,190,239,103,136, 65,240, 3,197,219, -189,136,228,116, 92,206,160,174, 80, 77,194, 45,121,222, 33, 70, 37,104, 72,117,225, 46, 66,128, 97, 24,130, 72, 34, 66, 31, 31, - 67,235,199,235,179, 82,246, 47, 19,154, 77,238,195,178,196,107,197,216,120,129,115, 46,221, 44, 69,136, 18,147, 28,170, 38,101, -183,100, 69, 55,157,207, 52,201,197,206,152,252, 51,117,227,169, 3,155, 16,241,153,229, 97,215,101,186,174,241,211,211,163,102, -246, 84,161, 74,222,137,198,154, 11, 81, 71,225,108,172, 77, 93,226,130, 15, 16,227,140, 59, 60, 18,113,206,209,201,123,216, 44, -103, 66, 4,205, 58, 60,108, 60,119, 7,216, 94, 13, 40,125,202, 15,200,156, 35,179, 89, 42, 87, 99, 95,156, 60,106, 68, 35, 56, -231, 82, 22,126, 76,162, 65, 34,130, 15, 53,214,184, 70, 36, 40, 52,155,157,209, 70, 69, 82,217, 94,144,121,251,254, 44, 21, 67, - 68, 1, 98, 42, 3,236,141, 91, 86,173,238, 50, 62, 97, 40, 10, 75,150, 91,134,101,205,246,237, 3,118,236,152,102,251,246, 61, -236,217,211,167,172,107, 68, 13,206,117,201,109, 7,151,229, 24,235,102,188, 40,135,246, 53,209,120,121, 82,199,197,148, 8,167, - 84, 85,133, 15, 53, 26, 61, 81,125,242, 66, 13, 34, 33, 42, 69,158, 81,149, 62, 85,124,152, 14,130, 59,100, 3,166, 69,215,208, -165,173,147, 60,117,188, 24, 11,181, 41,204,201,168, 59, 63,222, 27, 1, 17,240, 37, 24,171, 80,212, 76,123,207,244,112,154,168, -129,137,177, 9,114,151,179,107,106, 87,234, 67, 46,169, 14, 27, 44, 33,196,148, 13, 31,242,199, 88,233, 71, 63, 62, 57,160,181, - 63, 34,240,100,147,167,214,231,153, 40, 29, 32, 39,178, 55,120,182, 75, 74, 70, 83, 20,195,190,230, 41, 73,116,134,166,157, 75, -147,200,166, 66, 89,150, 88,183, 79, 93, 78, 69, 49, 42, 72, 19,247,140, 81, 17, 39, 76, 59,199, 78,151, 17,197, 32, 26,168, 67, - 74,170, 27,157,103, 22, 21,224, 99, 64,125, 74,146,139, 26,154, 88,119,234,174,150,103, 57, 98, 28,121, 94,224, 83,112,149,237, - 40,183,139,101,115,240,148,190,198,136,208, 41, 10,242, 44,159,105,237,106,141,107,230, 16,136, 33, 34, 70,176,198,205, 58,109, - 90, 29,101,212,208, 38, 89,132, 35,247,123,218, 19,164,144,132, 15,218,136,215, 60,254, 42,245,165,216,206, 58, 85, 8, 64,214, -129,201, 21,194,138,149, 5,157,174,193, 90, 1, 99,216,179,183,207,182, 45, 59,217,185,125,154,254, 84, 73, 89,149, 68, 44,185, - 27,167,200,186, 56, 87,164,112,204,227,159, 45,206,229,169, 69,176, 33, 9, 25,197, 1,190,254,255,217,123,147, 30,201,178, 43, -207,239,119,206,189,247, 61, 27,220, 61,134,204, 36,147, 83, 85, 23, 74,132,138,221, 45, 20,164, 6,180,208, 66, 90,104,209, 75, -173,244, 57,245, 9, 4, 8,146, 86, 85,104,160,133, 82,117, 53,164,170, 34,197, 41, 73,230, 16,131,187,155,217,123,239,222,115, -180, 56,247,153,121, 6,201, 74, 50,153, 67,100,100, 58,225, 12, 79,247, 8,183,233,217,253,159,225, 63,156,184,191, 63, 48,207, - 5,128,164,169,155, 37, 41,117,241, 75,129,224,159, 3,168,127,163,199,126,125,223, 32, 95, 69,119,185,215,113,207,247, 85, 30, - 87,254,222, 46,197, 4,159, 19,228,202,212,230,240, 99, 83,200,169, 32, 14, 69, 50, 90, 6, 74,201,164, 49, 33, 68, 70,119, 93, -140,249,180, 48, 14, 67, 36,167,217, 31,207,104,118, 17,180, 3, 55, 56,241,219,161,224, 12, 64, 1, 54, 52,182, 2, 35,198, 86, -140, 43, 55, 6, 26,239,209,248, 59,129, 83,208,194, 72, 90, 88,106,101,174, 39,150,214,192,131,104,150, 52,133, 59,156,181, 48, -136,169, 70,217, 20,232, 49,174, 85, 22,114,215,182,151,156,200,221, 67,254,254,116, 12,153, 95, 82, 48,206, 93,209,170, 1,119, -119, 22, 15,231,184,214, 25,241,169, 23, 20,213,141, 36,137, 65, 11,199, 58,241,209,116,226,131,253,134,101, 55,240, 15,117,230, -255,158,157,151, 53, 10,128, 82, 10, 37, 21,150,101,193,188,145,187, 79, 61,222,112,143,159,135,119,188,116,251,223,140, 88, 59, -119,243, 15, 51,220,163,107,139, 66, 38,137, 50, 32,164,165,177, 52, 97, 18,133, 47,169, 16,125, 93,223, 19, 33, 17,132,237,149, -112,253, 84,216,140,130, 36,163, 57,216,226,124,240,254, 51,222,255,245,115, 94, 62, 63,176,204, 21,151, 68, 41, 87, 12,101, 75, - 74, 67, 55,244,249,108,238,199,195,134, 91, 92, 72, 50, 68,154,160,110, 49,159,168,203, 66,206,137,148, 75,100, 54,216, 76, 78, - 35, 57,111,194, 13,209,122,137,215, 71, 81,249,171,242, 66,124, 3,232, 95,143, 73,195, 55,128,254,249,118,232,175, 54,202,182, - 40,101, 41,108, 54,112,127,154,250, 62, 54,198,192, 34,177,131, 54, 26,143,174,158, 80, 82,225, 52,157, 88, 78, 51,169, 36, 68, -131, 89, 30,240,252,202, 72,243, 99, 29,119,252,153,129,140,145,129, 13,206, 8,140, 56, 27,140,141,196,215,163, 24,131, 59, 67, -255, 58,227,100, 32,225, 20,105,253,223, 59, 63,117,225,232, 67,116,161,170,212,158,157,110, 45,186, 93, 51,199,105,157,237, 30, - 32,152,122,162,155, 74,104,217, 93,132,102, 45,146,235, 58,112, 31, 79, 71,110, 15,183,212, 22,218,114,235,118, 97,222, 71,250, -170,138,180, 7,187,210, 80,182, 49,142, 27,148, 68,109, 47,131,116, 8, 88,173,220,207, 11, 31,108, 54,124, 52,108,249,155,121, -225,199,203,145,106, 22, 69, 68, 74,231,189,126,146,208,216, 55,171, 61,140,197,187,236, 78,104, 68, 48, 76, 74,122,118,143, 75, - 90, 80, 33, 30,115,231, 12,132,173, 94,248,221, 95,187,241,206,114,196, 42,188,208,194,173,100, 38, 73, 84,133, 53,112, 86,190, -164,179,228, 75, 39,211, 33,108,182,153,237,141,179,191, 22,114, 81,106,107,212,105,193,238, 27, 47, 63,186,227,195, 15,111,185, -191, 63, 97, 46, 12,121,100, 59, 94, 49,148, 77, 76, 65,248,124,100,203,238,156,165,139, 34, 66, 41, 3,248,112,150, 48,182,234, -212,101,194,108, 66,197, 72, 73, 41,195, 14,145,194,241, 48, 97,182,124, 58, 80,127, 83,153,236,223, 0,250,155,215,245,191, 14, -128,254,186,251, 64,184, 67, 59,112,173,239, 95, 0, 0, 32, 0, 73, 68, 65, 84, 9, 41,167, 72, 63,243, 78,240,170, 19,115,157, - 89,234, 76, 50,101, 89, 38,204, 26,183,199,231,184, 11,227,112,197,178,204, 44,132,135,124,232,180, 5,204,193, 12,237, 93,247, -166,127,110,113,118,226,236,104,236,197,216, 74,124,127,232,159, 69, 60, 0, 92,156,236,126, 30,189,235,217,226,165, 3,157, 59, -111, 3,143, 16,222,235,100,182,185,206, 52, 91,162, 3,119, 71, 48, 90, 93,122, 4,105, 6,130,248, 55,187, 51,180, 74, 73, 57, -166, 18,146,250,111,238, 30,241,181,113, 56, 30,169, 75, 37,169, 82,242, 64,195, 88,150,153, 96,180, 55,218,220,104,103,221,119, -148, 45,170,137, 33, 23,106,173,184,198,170,226, 56, 31,113,129, 82, 6,110, 85,249, 91, 23,254, 67,115, 14,110,140,170,148, 78, -178,147,158, 62,183,130,108,107,237,108,170, 99,238, 36,145,179,161, 76,109,181, 79, 83, 98, 60,191,244,245, 3,172,230,102, 33, -249, 51,111,236,155,241,182, 5,105,239,198,103, 14,146, 57, 72,230,222, 51,247,146,153, 68,169, 15, 52,238,111,122,103,126,190, -125, 21,182,219,196,254,177, 50,108,162, 8,106, 13,230,217, 57,222, 29,121,254,236,150, 23,207, 14, 44,213,201,121,100,191,185, - 14, 3,161,148,207,215,223, 23, 92,129, 68, 48, 79, 15,227,201,233,138, 38,149,105, 62,114, 90,158,113,117, 85,201,105,207,178, -180,115, 54,194,107,151,210,246, 77,199,252,245, 26,145,189, 14,128,254,251, 3, 41,229, 99, 59,201,135, 60, 43,224, 19,247,149, - 95, 5, 50,157, 72, 39,107,159, 50, 87,187, 61,139, 87,142,167, 19,227, 80,184,218, 93,241,242,240, 2,247,110,123,234,141,218, -102,114, 46, 76,118, 10, 50,143, 8, 45, 41, 42,176,213,129, 71, 6,143,150,198,206, 27, 59,140, 43, 49,118, 98,236,112, 70,113, - 6,140, 65,156,226, 78,234, 32,158,112,146, 68,134, 88, 34,188,179,149,104, 60, 69, 98, 47,220,220,105, 4,153,219, 29,158, 24, -104,107, 97,253,234,141,101,105, 8, 9, 85,167,182,133,106,141,212,179,208, 17,235,100, 56, 97,158,103, 44, 53, 68,114,184,181, -105,232,135, 69,160, 12,133, 52, 69,172,234, 80, 6,246,155, 29,199,249,200,178,158,229,178, 14,184, 99,191,158, 84,187, 62,221, - 57, 78, 7,150, 90,251,104, 31, 22,159,131,125,159, 55,252, 68,148,159,157,142, 60, 51, 99,212, 68, 22,165,228, 66,201, 5, 69, -152,109,233, 12,253,112,144, 91,233, 86,171,177,205, 10,250,172, 33, 47, 78,103,249,251,217,119,188,117,157,187,139,147, 80,118, -173,177,181, 5,195, 41, 24, 59,111, 52,175, 76,158, 56, 74,230, 94, 18,119,146,184, 19,101, 86,165,242,167,141,232,191, 10,141, -153, 36,103,179,115,246,143,148, 60, 52,150,214,104,179,197, 52,227,217, 29, 47, 62,186,231,120,154, 17, 18,187,237, 53,187,113, - 79,206,165, 99,185,125,201,247,190,187,217,165,140,106, 38,105,166,214,153,251,219, 19, 34, 51, 67,222,245,194,227, 19, 58,245, - 55,221, 40,230,155,162,225,205,233,206,127, 43,228,224,183, 11,222,223,255,181, 92,192,121,149, 17, 33,218,247,189,114, 6,116, -103,221,127,201,249,107,231,227, 76,237,115,145,208,187, 32,249,130,159,159, 79,107,246, 98,115, 48,185,201, 11,115,157, 41, 41, - 81, 61,100,107, 73, 19, 75,171,152, 47,125,255, 60,224,102,164, 1, 6, 29, 49,147, 24,195,107,229, 29, 26,127,153, 38,222,246, -153,157, 59, 69,157,130, 83,196, 40,125,140,158, 33,192,188, 3,185,246,239,113,222,179,199, 11,226, 46,152, 40, 13,152,129,217, -133,201, 97,235,240,150, 36,174,242, 72,115, 63,147,149,172, 25, 65,126,143,189,182, 35, 65,116,195, 81,137,241,245,220,194,198, -181,100, 88,150,120,204,210,255,183,118,206, 72,152,190,220,159,238,195, 91, 94, 5,177, 0,113, 16,230,182,144,114, 38,167, 68, -181,152, 96,152,133, 65, 76,116, 85, 49, 26, 5,225, 56,159,248,207, 73, 25,243, 54,186,250,238, 57,191,190, 76,205, 90,172, 60, - 36, 70,239, 42, 37, 76,116,122, 21, 17, 69, 73,172, 6,178,228,126,113,134,215,187,185,127,252, 58,239, 23,243, 6,231,218, 42, - 91, 12, 23,112, 90,152,162, 96,236,189, 82,169, 52, 79,156, 68, 57, 72,226,214, 51, 47, 52,113, 79, 98, 22,253,163,198,243, 95, -141, 41,171,163,217,216, 92, 57,155, 43,193,100,102,174, 74,107,198,221,139, 3,119, 47,142,220,221, 77,180, 10,155, 97,207,118, -115,197,144, 71, 52, 5,127, 98,237,128,127,123,202,245,229,184,135,134,234, 34,147, 82,193,108,131,119,146,230,250,241, 90, 68, -175,126, 19,123,250,245,126,206,254,212,250,245,156,172,197, 43,123,220,222,241,105,239,254, 18,144, 68, 72, 66,232, 65,233, 95, -167, 56, 84,147,132, 9, 87, 48,142, 35,210,242,161, 76,197,205,187, 65, 87, 28,168,205,194,203,187, 58, 84,115, 22,135,197,157, -197,226,123,246, 59,186,251,215,233,245,122,245,223, 44,147, 32, 40, 67,233,201,101, 6,187,205, 21,215,219,107,230,101,226,246, -240,156,146, 51,219,113,199, 60, 79,236, 54, 59, 84, 11,211, 52, 67, 86,170,195,123, 94, 41,201, 25,205,120, 71, 26,239,244,157, -185,138,147,186,126, 58,201,165, 27, 95, 13,209,162, 80, 90,239,143, 98, 42, 24,218, 65, 90, 72, 40,218,255,125,118,120, 66,226, -145,100,158,209,117,219,214, 48,147,112,135, 19, 69, 36,146,218,204,173,119,188,107,146,154,118,201,152,159,247,215, 37, 71,148, -105,140,223, 15, 88,235, 9,118, 18, 5,141,213,122, 6,217,148, 50,197, 29,119, 99,174,151, 88, 85,183, 32,182, 37, 73, 76,243, -137,113,216, 80,210,192,221,221, 29,115,107,236,115, 97,112,235, 59,252, 53,176,133, 30,151,186, 22, 38, 17,155, 74, 91,193, 95, -176,214, 61,237, 69,227,254,246,210,211, 94, 37, 88,245,211, 62,137,112, 5, 92,155, 83, 84,187, 97,143,247,103,215,104,116,215, - 57, 26, 85,162, 67,159,189,114,103,153, 23,146,120, 38,153, 59, 73, 28, 68,105,107, 46,251, 87,109,196,190,154,225,171,144,147, -210, 56,145,182, 51,121,159,201,195,150, 90,141,233,120,226,254,229,137,103, 31,188,228,120,154, 41,121,203,245,254,134,237,184, - 59, 75, 5, 63, 9,180,255,240, 21,151,127,110,167, 95, 92, 55, 31,127,133,190,208,148,182,223,231,246,243,121,222,214, 55,174, -111,175,215, 99,248,180,175,201,239,234,188,165,119,117, 73,232,159, 18, 14, 96, 2, 69,133,172, 48, 8, 20, 81, 74,130, 44, 66, -209,248, 76, 73,250,223,137, 79,213, 56, 16,115,119,242, 74, 18,191,251, 28,133,216,201, 82,230, 23, 66, 75,179,240,228, 94,154, - 83,221,152,154,115,172,141,195,226,220, 55,227,216,224, 96,206,228, 80,157, 79,236,220,191,212,195, 48, 26, 64,100, 46,100, 21, - 60,131, 42,108,242,134,161,140, 76,117, 10,240,203,137,121, 57,145, 82,102, 28, 54,220,159,238,113, 49, 74,217,224, 14,191,118, -229, 3, 17,126, 37,153,143, 82,225,175,165,241,195, 54,241,200,163, 27,119,192,123, 54,165,159, 37,109,114,206, 13,143,181, 70, - 16,209, 66,173, 35, 93,170, 22,110,114, 74,132,155,221,184,176,111, 51,191,154,192, 44, 98, 72, 67,179,158, 66,199, 93, 27, 73, -132, 33,141, 17,143,138,211,218, 66, 66,206, 14,108,226,161,109, 55,111,164,212, 35, 91, 91,120,187, 15,101, 96, 24,134, 72,122, -179, 72, 67,171, 93,171,174, 34, 44,205, 48,122,160,202, 58, 2,175, 13, 82,192,103,107,134,174, 68,189,214,240,102,148, 92,168, - 86,123, 1,210, 31,177, 8,102,173, 51,235, 51,205, 42,190, 74,213, 66,172,119, 38,232,181,110,249, 26, 59,247,213,154,214, 62, -246, 30,201, 2, 87, 46,108, 92,194, 4, 69,214,233, 72, 39, 28,186, 35,180,190, 90, 50, 22,148, 25,227, 49,141,119, 60,113, 71, -229,185,103,158, 73,230,153, 38,238, 81,150,127, 1,220,191, 76,206,200, 39, 97,137, 72, 35,239, 28, 77, 13, 77,194, 56, 94,163, -146, 56,222,191,224,195, 95, 63,227,246,229,129,218,132,205,120,205,245,246, 17,155,178,249, 92,170,239,127,201,213,238,243, 0, -252,252, 69,119,150, 95,228,126,246, 77, 32,124,188,105, 54,177,127,236,174,251, 85, 16, 79, 18,149,104, 81, 24, 84, 24, 84, 24, - 31,126, 38, 9, 34, 82, 82,198, 36, 12, 10, 89, 53, 0, 94, 3,244,115,175,224,115, 7,247,212,157,186,178,132, 28, 72, 85, 86, -223,178,112, 38, 19,237, 38, 21, 1,206,136,224,205,105,110, 23, 80, 55, 99,110,198, 84, 27,135,165,114, 88,140,219,234,188, 88, -236,252,121,239, 48,247, 14,254, 97,247,190,118, 89, 95, 86,135,254,240, 73,110,166,200,146, 32,181,200,236,182,202,210, 22,234, - 82, 99,103,231,206,210, 42,105,204, 28,231, 19,199,249, 64,210,196,168, 27, 84, 50,199,249,200, 73,224, 23,227,142,151, 34,252, -179, 45,252,136,196,191,245,133,191,180,202, 19,119,178,172, 99,245, 30, 60,221,229,108,222, 65, 92,253, 1,208, 11, 15,198,227, -156, 99, 86,183, 6, 87,173,113, 60,220, 98, 73, 24,114, 10,150,184,117, 48,211, 32,176,185,123,151,220,173,137,102,114,102,151, -187, 11,181, 5,128,182,190,159,159,106,236,161,155, 53,150, 58,211,220,208,148, 16, 87,102,159,195, 81,142,203, 89,150,122, 55, -140, 10,102,225,157,143, 11, 54, 79, 44,186, 80,114,104,140,231, 58,147, 75, 70, 69, 49,241,179,183,187,153, 69,245, 36, 78,179, -229,162, 28,184,164,180,156,187,123, 65,226, 57,234,166, 58,151,215, 82, 16,119,160,145, 37,177,107, 78,113,250, 53, 45, 36,113, - 10, 65, 92, 44, 30,107,144,140,147, 60,102, 73,141,198,228,202, 68,227, 72,226,109, 42,119, 36,158, 91,230, 67, 50, 31, 72,226, -150,196, 44, 23,112,127, 29,206,191,223,251, 51,143,216,211, 86, 78,156,188, 50,230, 13, 57,109,241,197,249,232,197, 71,252,230, -189, 15,184,189, 59,146,180,112,181,123,196,213,246,154,156,202,121,173,246,121,177,219,255, 88,167,187, 79, 11,248,249,171, 14, - 74, 95,248, 88,231, 13,185,157,215,245, 54, 94, 5,242, 21,192, 71, 9,208,222, 38,216,168,176, 77,194, 38, 9, 99, 86, 70, 17, -134,172,108, 84, 25, 21, 74, 78, 12, 41, 49,168, 50,164, 96,131,102,117,138, 70,151,179,130,252, 10,238,107,188,101,209,174,253, - 37,178,186, 21, 59,131,250, 10,193,230,209, 97,122, 39, 72, 85,235,227,246,102, 76,181,114, 90, 42,167,154, 57, 86,227,174, 54, -110,231,198,139,197,248,112,106, 60, 91,140,247,103,227,133,197,142, 88,190, 64, 64,255,100, 59, 86,199, 16, 10,206, 91, 13,210, -210,248,169, 79,212, 97, 3,238, 12,121,228, 84, 15,184, 56,227,176,101, 89, 42,230,115,192,173,135, 71,185,100, 65,165,177,201, -153,171,221, 21,205,157,159, 44, 19, 63, 91,132,255,203, 19,255, 70,141,255,218, 43,127,233,206, 83,156, 65,160,242,176,200,209, -200, 5,151,144, 93, 73,223, 53,167,222, 91, 62,180,200, 28, 5,110,128,130,208, 82, 70,196,168,117,193, 29,198, 50, 48, 14, 27, -154, 25,211, 50,129,119,203, 88, 9,195, 22, 28,114,119, 0, 51, 15, 19,155,136, 61,157,169, 75, 37,107,234,123,242,206, 50,175, -141, 33,101, 54,101,164, 90,195,122,158,186,244,174, 95, 0, 76,208,172, 44,243,114,190,120, 29,103, 40, 17, 93,139, 4,129,175, - 89,139,235, 58,245,190, 55,133, 79,184, 99,184,121, 36,194,117, 96, 18,194, 87,126,141,243, 72, 18, 12,232,230, 13,235,114,183, - 78,255,232,192,174,140, 40, 87,238, 20,145, 40, 80, 5,138,196,123, 96,192, 41, 46, 12,162,140, 30,210,192,130,147,221,112, 26, - 11,198,201, 27,247, 8,183, 36,222,162,242,142, 39,158,121,230, 67, 41,188,239,137, 23,146,152, 81,236, 83,140,229, 63,239,243, -200, 87,115,158, 60, 99,249,132,165,133,164, 3,184, 50, 31, 38, 62,124,241, 33, 31, 61,123,201,116, 90, 24,202,150,155,253, 99, -118,155, 61,170,233,252, 30,120,221,241,230, 75,241,126,127, 19, 53,236,175, 3,160,203,239, 25, 67,127,149,159,171,223, 34,151, -209,221,195,128, 81, 97, 35,194, 54,195, 62, 43,219,172,236, 84,216, 40,108,115,128,250,168, 41, 58,114,149, 0,241, 36, 12, 26, - 29,250,152, 18, 37, 37, 74,150,232, 76,250,136, 94,215,145,123, 18, 82, 7,249,148, 82,247,108,246,200,196,238, 30,205,210, 89, -206,170,122,238,136, 28,249,216, 56,190,181,232, 4, 91, 51,150,165,114,154, 43,199,214,152,106,227,110, 49,238,134,198,203,165, -241,108,168,124,120,106, 60, 41,141,247, 38,227,253,234, 28, 44,178,181,245, 75,124, 29,215, 29,107, 6, 30, 99,124, 87, 26,127, - 73,101,180,133, 38,240,203,186, 48, 45, 51,102, 11,167,233,200, 56,140,152, 54, 78,243, 1, 39,246,209,170,202, 52, 31, 56, 45, -160,154,184,222, 94,177, 25,199, 8, 18,113,227,197,116,100, 78, 27,158, 21,229, 63,181,153,191,162,241,239,188,241,163,214,120, -140,179,244,174,252,226,149,182, 70,170,246,241,251, 58,122, 95, 87, 34, 46,100,113, 30, 13, 59,190, 53, 12, 60,243,137, 86, 23, -212,151,240, 68,215, 62,196, 23, 97, 59,108,187,102,221, 65, 98,236, 29,102, 45,132,231,186,199, 45,136,234,121,236, 94, 82, 97, -174,115, 88,193,118, 35,155,177,108,194,196,134, 24,167, 63, 76,128, 91,167, 56,244,194, 35, 92,236, 34,121,237,254,116,207,205, -238,154,111, 63,253, 54, 83, 61,241,226,246,101, 24,159,104,234,146, 53,239,126,238, 65, 50, 72, 41,197, 52,130,176,137,109,126, - 73,232, 10,189,242,202,120, 95,205,112, 10,230, 21, 65, 40,185,176, 17,103,239,214, 59,244,184,246,147,132,161,207, 64,159,110, -137, 51,122, 20,112,107, 7,159,136, 34,214,204,153,220,184,119,227, 22,227, 5,149,199, 52,222,166,242, 46,137,247, 61,243, 27, - 10,207, 8,162,157,124, 74,112,255,172,207, 33,237,228, 66, 75, 19, 86,102, 36,193, 88,182, 40,202,233,246,200,179, 15,111,185, -187, 59,210,220,217,111,174,185,217, 63, 97, 28, 54, 95,185,166,243, 15, 25,219,103,190, 98, 31,111,162, 93,225, 39,221,134,174, -172,235,215,212, 21,234,211,222,134, 63,232,198, 7,129,141,192, 78,133, 93, 18,246, 73,216,101, 97,183, 2,122, 86, 54, 73,216, -168, 48, 38,143, 63,115, 98,212, 28, 29,185, 42, 67, 14,192, 94,199,239, 37,165, 78,138, 91,247,227, 61,253, 74,133,206,151,138, -125,101, 90,199,188,250,128,233,106, 15,246,246, 65,158, 91, 3, 26,214, 29,175,135, 65, 55,238,145,188, 84,139, 80,179, 96, 85, -153, 91,102,106,198,237,108,188,156, 23, 30,169,240, 40, 37, 30,205, 11,215,185,113, 53, 25,191,156,140,231, 61,142, 81,190,224, -215,210, 59, 14, 41,198, 30,248,150, 24,223,167,242, 29,173, 60,149,198,149, 55,158,139,243,155,229,196, 11,107,208,150, 24,231, -166, 76,109, 45,220,205,224, 60,197,176,200,166, 98,147,183,184, 53,166,249, 72,206, 35,102,161, 11,223,109,182,156,150,153, 31, - 55,231,231, 42,252, 61,137,255, 86,156,255, 1,231,207, 60, 56, 12,237,193,142,189,247,158,151, 21, 69,215,107,235,234,185, 14, -236,139, 50, 12,137,122,104, 88,173,225,119,174, 49,159, 94,106, 35,167,140,106,138,177,246,217, 70, 85,200, 90,186,175,122, 76, - 91, 74,130,237,184, 37,107,225,120, 56,113, 90, 38,112,167, 90, 69,250,194,124,169, 11,211,114,138, 29,185,219,249, 5, 51, 55, -100,141, 61, 53,127, 69, 89, 17,251,242,106,141,113,216,176,191,218,133, 94,126,158,251,125, 9,150,252,185, 72, 92, 1,222,186, -143,140, 42, 98, 18,215, 87,108,240, 89,111,250, 98, 79,234, 36,209,120,254, 69, 66, 58,232, 23,121, 96, 88,236, 6,184, 15,189, - 88, 30, 81, 6, 53, 6, 15,254, 73,238,239, 65, 37,198,214, 27, 51,174,204,120, 76,229, 45,131,231, 52, 94,120,230, 37,202, 83, - 22,190,197,194,111,124,224, 61, 10,207, 36,177, 60,176, 31,146, 47,252, 28,234,211,182, 65, 88,228, 64,229, 72, 74, 18, 69,216, - 98, 60,127,246,130,151,207,239, 67,199,141,114,179,123,196,205,254,201,121, 45,242, 38, 76,141, 95, 5,248,252, 85, 5,219, 55, -165,112,248,196,219,242, 63,125,203,243, 58, 2,122, 2,182, 29,200,175, 20,174,178,112,149,149, 93, 82,118, 89,216,170,178, 43, - 1,232,155,172,108,114, 7,116, 60, 14,166, 36,108, 82,152,126,148,148,206, 35,245, 0,113, 69, 52, 24,214,209,133,117,168,144, -139,118, 45, 26,239,112, 29,115, 4, 60,236, 54,233, 9, 92,107,143,152, 80, 92,185,136,124, 4,144, 11,201,201, 69, 34, 56,163, - 23, 12, 67,137,223, 83,178,176,169,206, 78,141,107,133,107,224, 90, 27, 87, 2, 59, 85,246,218,216, 72,227,103,167,198, 71, 22, - 99,232, 47,234,181, 89,139,169, 61,206, 19, 26,239, 74,227,219,210,184,145,198,142, 70,162, 81,188,242, 87, 6, 63, 22,231, 63, - 78, 11, 73,133,167,251,167, 17,189,234,149, 90,131,156, 54, 47, 19, 0,219, 97,207, 80,130, 69,126, 56,222, 97,147, 49, 14,149, -164,137, 71,187,107,150,214,168,117,233, 17,166,202,143,189,242, 43,115,254, 95, 51,254,125, 86,254, 26,101,143,156,237, 99,219, - 3, 96, 60,167,149,245,110, 61,121,144, 34, 75,173,212, 58,113, 92, 78, 65,144,212, 56,168, 53,165, 32, 61, 33,225,184,214, 89, -240, 46,118, 30,173,179, 22,103,189,107, 62,205, 39,158,191,124,206,179,187,231, 23,153,163, 8,205, 45,162,105,237,120,137,107, - 93, 35,204, 99,166, 16, 18,180,110, 72,179,126,255,225,123,246,254,120,224,195,103, 31,242,232,209, 77,172,127,146, 50, 47, 21, - 81,237,190,239, 23,166,181, 38,141,241,122, 47,109,188,119,231, 66,234,161, 53,173, 79,147, 98,215, 94, 91, 61,115, 66,148,198, -174, 25, 27,243, 11,105, 20,103, 64, 24,100,237,210,165, 59,249,197,180, 99, 5,252,204,202,149, 76,160, 81,240,100,175,108,197, -184,110,198, 19,102, 94,160,188, 32,113,141,241, 24,227,109,175,188,231,133, 95, 82,184,211,244, 96,218,242, 69,158, 65, 78,147, -153,133, 35, 85,130,243,160, 94, 56, 29, 38, 94,124,240,146,187,251,169,187,246, 41, 87,187, 27, 30,237,159, 82, 82,121,237, 70, -237,159,101,247,158,191, 1,218,215,103,196,254, 47,142,169, 95,227,162,233, 15,125, 60,210, 71,235, 91,129,157,194,117,130,235, -172, 92,101,101,159,211,165, 51, 79,137, 77, 9, 48,223,166, 14,236, 26, 93, 70,198,200,106, 20, 85,134,148,201, 41,199,248, 92, -164,131, 45,231,164, 44,164,123, 34,119, 43, 79,243,190,127,236,166, 38,116,226, 84,184,136, 74, 63, 60,163,243, 22, 15, 57,147, -166,248,119,110, 32,234,168,197,152, 86, 83,103, 39,139, 96,253,119,106, 95,112, 58,130,180, 48,187, 72, 38,164,228,148,108,108, - 29,182,196,103,132,147, 56, 89, 64, 78,198,135,205, 63, 17,216,255, 84, 82,220,122,140, 21,156, 71, 24,239,178,240, 22,141, 27, - 26, 27, 55,138, 55, 18,149, 36, 70,117,227, 74,132,191,150,198,175, 84,248, 80, 98, 55, 60,148,194,237,225,200, 52,159,104, 30, - 99,237, 33,101,154, 71,166,184,106,226, 88, 79,168,197,237, 94,237,110, 72,154, 35, 44,134, 70,210, 68, 41,133,193, 71, 78,203, -137,191,173, 19,191,161,240,147,102,252,247, 73,248,110, 7,245, 72, 68,139, 34, 42,117,144,151, 30,194,178,234,217,183,102,228, -105,194,188,162,227, 16,209,171, 56,165, 23, 95,102, 70,109, 17,149, 26,107,150,225, 34, 85,242,152, 50,164,156,120,252,232, 49, -165,100,126,243,254,175,169,117,238,134, 35, 49,217, 89,187,102, 87,249, 45, 67, 2, 33, 28,227,220,140,165,217,199, 29,138, 46, - 53,121,216,210,182,198,188,204,225,248,214, 11,205,156, 11, 41, 7,249,240, 50,210, 23, 92,186,195,157, 53,108,237,194,196,251, -158, 93,176, 30,220,238,126, 1,126, 16,178,195,190,197,181,149,251,243,150, 69, 40, 2,163, 6,247,100, 35, 49,126, 63, 19,231, -128,140,160,178, 22,177,142,187,246,220,121, 13,112, 87, 99,180,202,149, 53, 30, 91,227,134,196,115, 42, 55,100,158,176,240, 14, -153, 95,216,200,175, 36,115,146,116, 49,101,250,156,137,202,102,141,150, 38, 36, 47, 52, 89,130, 36,105,137,211,221,137,195,221, -204,241, 24,207, 55,162, 92,237, 31,243,120,255,148,172,193, 95,120, 19, 63,214,231, 59,127, 21, 64,240, 77, 28,235,255, 81, 23, -175,251, 23, 62,158,253,172,110,107, 29,175,143, 2,123,129,107,133, 43, 21,174, 7,225, 42, 39,118, 57,177, 27,148,125,201,108, -251,168,125,155, 18,219,172,140, 89,122,119, 1,131,194,218, 11,168, 68,103, 18,161, 29, 49, 74, 63,219,195,184,227,114,153, 47, - 95,180,235, 22,127,218,165,149, 16,189, 56,119, 5,229,186, 3, 58, 68,135, 14, 52,167,119,225,134, 90,239, 36, 53, 33,170,172, -232,211, 29, 58, 47, 99,249,236,189,187,119,106,139,209,255,208, 77, 71, 82,130,161,248, 89,118,167,106, 64,163,157, 26, 31, 54, -251, 76,109, 59, 95, 5,244,132,179,199,120,135, 48,137,121, 68, 99, 67,163, 88, 11, 95,117,111, 65, 56, 3,170,197, 56,246,219, - 86,249,175,198, 13,127,147, 11,119,135, 59,230,101,226, 56, 31,104, 86, 17,135,113,216,146,115,137, 92,232,186, 80,231, 3,102, -206,213,254, 49,102,141,151,199,151,108,202, 6, 39,126,158,212,169,211,130, 72, 34,163,164,113,199, 47,221,249, 95,236,200,251, -100,254,189, 56, 63,236, 30, 2,118,102, 91, 11,201,253, 44, 49,212,222,193,111, 68,184,209,204, 86,115, 48,201,123,170,153,187, - 49, 77,199,232,111, 85, 59,217, 49, 81, 82,198,232,123,117, 60,172,109, 37,140,115, 84, 53, 94, 67,141,206, 91,187,254, 29, 44, -170,181,179, 20,179,255,172, 95, 79, 17,151,233,231,107,221,251,181, 80, 82,198, 45,110,227,122,127,195,152,135,216,201,187,159, -205, 67,114,210, 46, 90,139,255,166,143,235, 69, 21,237, 30, 8, 33,181, 84,170, 89, 0, 84,223,167, 39,213,192,121, 91,167, 74, -198, 8,236,204, 40,171, 59,221, 42,239, 20,101, 16,101,208, 32, 22, 14, 18,235,174,140,158,193, 63,157, 47, 26,239,210, 77, 69, - 61,100,123, 46, 30,146, 63,107, 12,173,177,181,198,141, 53,158, 99, 92,145,185, 58,119,238,133, 95, 81,120,159, 87,192,253,179, - 62,115, 84,208,236, 84, 63,145, 71, 99, 24, 55,180, 54,112, 60, 28, 56,221,206,220,223, 30,152,151,214, 87, 18,153,235,253, 99, - 30, 95, 61,233,128,238,127,208,216,243, 95, 26,111,191,238, 31,175,157,247,251,155,102, 20,243,167,222,134,255, 49,157,240,107, - 48,105, 88, 47,127,237, 59,188, 93, 31,175, 95, 39,184, 73,202, 85, 22,246, 89,217,151,196,110, 72,236, 74,102, 63,228, 0,247, - 18, 96, 62, 36, 9,214,186, 72, 39,175,245,148,172,213,171, 19,193,123, 71,188,230, 78,175,128, 28, 93,216,165,165,186, 60,127, - 30,136,222,137, 76,172,141,125,215, 67, 91, 51,220, 90,207,226,238,140,100, 23, 44, 40,216,120, 11,144, 81, 81, 60,236,207, 72, -165,196,239, 94, 65,160, 31,235,235, 65,102,218,183,196,253,238, 36, 96,211,201, 80, 89,132,172,134,168,227,170, 44, 10,211, 1, -110,155,253, 73,175,233,239,115,214,219,224,193,102,102,225, 9,141,141, 55, 6, 42, 3,141, 1, 35,119,189,115, 53, 88,228, 34, -169, 74,230,252,171,218,248,121,174,252, 83,139,145,187,139,197,227,237,221,163, 34,140,227, 30,217, 10,211, 50, 49,207, 51,165, - 12,204,115, 36, 76, 45, 93,115,189, 29, 55,224,194,253,116,143,251,210,125,217,163,211,188,151,196,255, 14, 28,170,243, 63, 23, -229,135,157,217,173, 29, 36, 85, 4,181,222,203,118,150,115, 65,120,186,221,113,157,148, 99,157,128, 24,247, 39, 77,225,147,174, - 97, 50, 84,219,170, 84,168,235, 63, 38,107,248,191,155, 27,183,119, 47, 49, 3,111, 1, 94, 89, 51,219, 97, 27,163,247,227, 29, -181, 85, 84,130,216,150, 83,176,208, 91,131,218,227, 82,101, 29,199,119,192,205,162,236,182, 59,196,232,252,131,200,108, 47,101, - 36,123,230, 52, 79, 8,126,222,167,175, 44,118,235,133,131,247, 28,251,149,125,103,172,114,191, 21,144, 30,200,131,213,207,145, -175,131,193,206,160,120,144,227,194,185, 47,248, 38, 69,149,162,244, 14,157,179,159, 67,234,234,130,135,224,235, 24, 73, 66,233, -161,218, 11,101, 18,218, 26, 42,141,212, 22, 6, 42, 59,171, 92,211,184, 34,177,239, 19,159,183,189,241, 11, 6,126, 65,230, 57, -249,188,111,255, 83,143,166,213, 47,162,181, 70,147, 25,201, 11,146,156,235,253, 99, 84,148,231, 31, 61,227,229,135,119, 28,239, - 67,134,232, 68, 68,240,245,238, 9, 55,251,199,231,196,190,207,226, 61,245, 71,157,223, 95, 66, 65,144,223, 36, 0,252, 58, 22, - 13,175,211,115,231,189,226, 31,129, 43,129,155, 4, 55, 73,184, 46,177, 47,223,167, 24,179,239, 7,101,155, 51,251, 33,177, 27, - 10,219,146,216,228,196,152,149,146, 87, 55,183, 85,123, 27,251,189,248, 90,207, 7,103,128,188,225,205, 59, 89, 45, 64,157,238, - 32,118,121, 51, 73,239,200,253,178, 18, 95, 45,198,122,215,212,196,206,160, 46, 98,193, 64, 86,199,213, 34,175,216,228,226,179, -160, 74,238, 7,169, 55, 37,167,232,208, 61, 37,188, 62, 96, 83, 19, 39,241, 74,114,226, 65,177, 51,166,216,171,150, 12, 82, 28, -138,177,168,114,176,153, 31, 31, 23, 38,243,207,228,245,185,236,206, 27,239, 82,249, 22, 11, 87, 29,208, 71, 42, 27, 26,185,235, -241, 31,238,129, 87,215, 60, 7,170, 10, 99,109,252,168, 54, 78,155,194,207,166,137,156,194, 39,190, 89, 60,255,199,233,136,185, -179, 27,183, 12,105,160, 74,101, 94,102,220,141, 33,143,221,122,181, 63,126, 21,118,227,182,107,196, 43,199,249, 24, 33, 27,101, -195,236,206,127,104,198,117,107,108, 53,241, 3,189, 56, 5,134, 71,129,132, 43,157,120,143,134, 21, 70, 89, 9,144,125, 5,211, -221,218,128, 51, 16, 71,135, 91,195, 59, 93,229,108, 13, 27,142, 92,210,175, 27, 33,133,111, 29,205, 27,213,106, 39, 1,198,206, -125,200, 35, 75,157, 49, 15,143,245,245,218, 57,243, 87,253,114,205, 13,101, 68, 69, 56,213, 35,205,140, 60, 39,118,219, 45, 55, - 87,143, 34, 30,182, 46,209,129,167,116, 38, 0,130,119, 19, 27, 63,199,217,122, 7,122,188, 94,202,179, 62, 53, 48, 51,116,157, - 56,137,161,154,217, 88, 76,195,114, 79,183, 27, 36,130, 99,138,198, 8,126, 5,244,179,171,162,244,194, 89,181,175, 53,214, 68, - 58,237, 55,117,113,173, 51,139, 66,110,141,123, 21, 73, 36, 91, 40,110,236,109,225,198, 27, 31, 97,108, 49,118, 84, 30,123,225, - 23, 62,240,158, 20,238,123, 1,254,169, 36,112,126, 65,117, 45,194,164, 71,170, 28,201,162,100, 25, 56, 30,239,185,127,121,224, -217, 71, 47,153, 78,181, 15,232,156,156, 6,110,246, 79,185,217, 61,250,140, 50,207, 63,187, 51,243,243, 6,250,252,186, 0,211, -215,121,103,254, 85,126,238,214,203, 51, 17,164,183, 27,129, 71, 9, 30, 37,225, 58, 11, 87, 37,186,242,125,214, 46, 77, 75,236, -134,204,182,100, 54, 29,204, 75,214,110, 2, 35,221, 52,164,167, 87,185,133,172,168, 31,158,102,157,177,108,235,168,188, 93,104, -220,221, 72,195,251,225,184, 14,178,165,131,242, 58, 34, 85,237, 62,116, 33, 46,238,135,150, 97,117,193, 90, 69,147,147,115,198, -179,225,154, 58,235, 61,186,123, 23, 65,114,134,170,136, 26, 98,134,137,162, 73, 46,197, 70,107, 49, 1,104,210, 11,133,139, 81, -136, 6,165, 25,233,166, 57, 69, 18,234, 14,181, 49,171,112,111,206,109, 11,201,155,253,137, 99, 75, 35, 12, 70,158,208,120,151, -133,119, 88,184,166,177,163,178,147,198,136,197,130, 33, 8,225, 61, 52, 37,152,248, 56,152,196,238,183, 33, 24,194,183,167,202, - 95, 75,194,243,192,237,184,101,179,217,211,150,133,251,122, 31, 41,105,221,168,198,205, 89,106,152,174, 36, 77,189,195, 4,243, - 74, 93, 42,205, 27, 67, 26,207, 96,191,164,248,222, 92,103,178, 36,124,216,240, 55, 86, 25,151,133,255,105, 40,124, 59, 41,205, -123,184, 75, 39, 59,106, 55,171, 81,131,100, 21,235, 42,134, 68, 4,172,116, 17, 67,127,173,187,173,170,117, 51,150, 7,172,113, -237, 96, 61, 14, 3,135,195,145,165,133, 29,172, 55,231,208,142, 81, 32,152, 33, 18, 30,242,171,198,189, 89,247, 47,248, 88, 57, -212,175, 15,164, 79,142,162,132,107,117,225,118,185,195, 5,174,174,119, 72,234,169,112,174,231,152,219, 48,253,177,243, 58,232, -124,221, 54, 46, 81,159,190, 58,159,166, 30,234, 98,177, 2,114, 11,203, 99,135, 77, 51,118,222,147,238, 8,192, 94,179,233,243, - 43,159, 5, 33,139,162, 73, 35, 9,238, 65,166, 1,103, 23, 69,137,105,204,121,250, 36,151,201,130, 8, 98,138,216, 66,166, 50, - 88, 99,235,206,158,202,142,194, 14,227, 26,227,145, 55,126,202,192, 71,146,131, 75,240, 41, 0,221,197,152,117, 66,100, 65, 71, - 24,181,160,146,169,211,194,179,103, 31,113,127, 59,209,154,119,222, 67, 0,250,227,253, 19,174,191,100, 64,255,163,207,210,207, - 8,236,243,215, 5,252,222,212, 28,243, 47,235,113, 61,212,149,111,137,241,250,227, 36, 60, 78,112,157,133,235,162,236, 75,239, -204, 75, 98, 95,162, 59,223,228, 0,242, 33, 43,146,180, 75,204, 2,140,205, 5,183, 7, 97, 18,222,186,236,104, 5,115,235,150, -155,245, 50, 77,199, 57,123,183,202,131, 56,173, 85, 38,212,199,137, 1,176,145, 53,125,233,144,122, 40, 75, 11,243, 17,111, 11, -162, 70, 46, 21, 43,153,150,130,101,172,221, 56, 94, 82, 34, 11, 88,202, 97, 3,170,126, 78, 99,116,111, 88, 11,105, 21,205,161, -133,235,156,181,214, 1, 4, 68,227,118, 85,163, 16, 24, 52,147, 1, 91, 42, 19,112,223,156,143, 22,227,121,157,185,107,246,169, -120, 20,107, 49,176,233,187,243,239, 81,121,135,202,181,196,231,158,202,208, 99, 77,215,122,168,117, 64,111,132, 99, 94,235,169, - 93, 85,162, 88,105,157, 52,240,238, 84,249,119,158,249,207,105,225,151,119,183, 76, 86, 67, 90,182,217, 5, 95, 64, 51,139,205, - 56,206,220,102,114, 80,214,224,108,242,178, 4, 57, 45,133,158, 48,165,196,144, 7,142,243,129,234,198, 88, 6,182,195,200,177, - 9,255,219, 50,113, 67,226,127,148,204, 35,175,188,178, 80, 89,173,189, 25,122, 78,250,228,118,214,182, 39, 77,253,118, 3,184, - 83, 82,220, 60,128, 82, 20,113, 35,229, 68, 73, 5, 81, 61, 23,140, 99, 25,113,247, 8,113, 89,189,214,229,225,115,188,166,164, - 69,231,156,250,250, 32,124,220,227,217, 28,186, 84,234,238,112,247,160,192,106, 28,167, 35,239,127,244, 33,187, 93,152,226, 52, -186,230, 93,173,187,222,181,190,230,137, 21, 64,171,173,123,185,107, 39, 0,218, 43,101,244, 5,100, 83,159, 58,109, 90,101,244, - 48, 85, 42, 34, 20, 13,215,196, 44, 23, 66,220,154,127,160, 18, 69,244, 26,237,186,154,229,172, 95,235,101,172,133,155, 32, 41, - 38, 34,210,167, 86,170,138,182,184, 70, 68, 20,105, 21,181,202, 96, 11, 91, 42, 91, 10, 35,198,150,198,206,141,159,216,200, 7, -146, 57, 61,136,153,253,125,215,113,206, 25, 85,101, 94, 38, 76,102,100, 48,114,110, 17, 98, 34, 9,220,185,191,187,231,197,179, - 24,183,123,191, 24,220,157,172,153, 71,187, 39, 92,239,110, 94, 75, 64,255,164,247,240,171, 54,218,159, 6,232,243,155, 12,230, -223,140,218, 63,251,219,122,181, 51,191, 86,120,172,240, 36, 11,143, 6,229, 58, 41,251, 34,236,179,196,222,188, 36,246, 37, 51, -228,212,199,206,209,253,106,103,167,187, 27, 97,131,237, 23, 22,186,246,129,100, 51, 48, 59,187,109,185, 59,214, 42,214, 22,176, -176, 4, 93,239,148,200,195,202,158,115, 17,208,204,112,171,120,239,194, 82,202,228, 50,160,105,205,179, 86,218,226, 88,149,238, -173,221,104,181, 97, 75, 37,229, 0,160,148, 20,205, 57,200,115, 66,184,135,165,222,201,244,238,220,221, 34,248,195, 12,175, 14, - 53,118,180,230, 45,246,129, 41,128,124,141,251,148,190,159,207, 34, 60, 81, 56,186,115,107,206,247,230,204,111,166,202,241, 24, - 78, 98,250, 41, 0,253,154,198,119,169,124,159,133,183,165,242, 68, 42,143,164,178,151,136, 61, 93,105, 7, 38, 15,192,156,216, -165, 87, 23,102,205, 88,218, 33,105,232,157,177,227,109,193,151,137,183,151,198, 95,249, 2,165,242,179,164,184,102, 68, 83, 56, -161,137, 48,148,145,205,184,229, 52, 79, 44,109, 70, 93, 34,237,173,239,178,247,155, 43,198,113,199,105,154,152,230, 19,211, 50, - 81,107, 99,200,133,230,206,221,241, 54,194, 82, 74,225,255,212, 68, 90, 42,255,157, 24,215,154,168, 30,129, 58, 15,165, 83, 69, - 37,108, 92,187,151,250, 74,140, 19, 1, 77, 57,228, 75, 78,223,135,231,144,138,185, 51, 14, 35,154,148,251,195,129,147, 77,156, - 78,167,243,129,186, 25, 54,104, 74, 28,142,247, 84,171, 61,177,171,119,214,170,248,233,208,183, 55, 6, 34,228, 84,168,132, 92, -207, 44,204,111,170,213,224,216, 37,101, 55,110,217, 12, 59,172, 54,166,211,130, 74,116,192,130,209,164, 81,125, 9,128,182,144, -198,169,104,236,234,145,224, 7,120,197,207, 10,142, 30, 88,211,187,249, 34, 74,206,137,178, 24, 87, 30,134, 77, 89,186,107,162, -172,118,176,177, 99, 79,238,100, 13, 62,199,249,121,226,161, 93,113, 7,119,121,165,163, 62,175, 78,162,176, 81,151, 8,207, 89, -141,152,206,235,166,200, 39, 79,102, 12,204,108, 48, 54, 94,216, 96,236,104,252,194, 71,126,165, 3, 47, 53,211,250, 95,151, 7, -147, 9,119, 67, 51,148,173, 34, 25,142,199, 35,167,118,203,160, 35,155, 97,195, 80, 10,203,188,240,226,249, 45, 47,159,221,113, - 60, 44,172, 59, 53, 55, 35,231,129, 71,175,113,135,254, 69,157,237,249,155,125,249, 87,163, 35,127, 93,198,236,218,193,252,145, -192,163, 12,143,179,196,238, 60, 39,174,139,114, 85,148, 93,145, 51,233,109,204,137, 33,167,174,165, 93, 9, 47,209,121,120,235, -187,113,241,143, 69,159,182,245,235,222,161,211, 59,106, 51,195,189,210,150, 8,197, 80, 95,217,200, 61,225,203, 65,122,232,202, -218,209, 71,206,116, 31, 34,107,116,231, 97,246, 82, 64,243,153, 83,167, 36,204,115,200,100,230, 6, 45, 12,101, 60, 43, 94, 50, -131, 10, 74, 34,245,209,159, 72, 48,151, 99, 34,219, 39, 8,102,177,223, 55, 86,103,154,152, 8, 36, 98,189,144, 82, 0,187, 62, - 52, 87, 17,174, 36,241,180,131,250,187,219,194,119,166,133,143,230,198,203,230,127, 20,160, 43,206, 19,140,127,197,204,247,101, -225, 29,105,188,165,149,167, 90,185,194, 46,129, 42, 61,147,187, 73, 16,227,170,192,226, 17,109,186,244, 4, 53,215, 56,104,171, -102, 90,202, 88, 77, 49, 94,111,198, 83,131,127,107,202,190, 20,254,201, 27, 47, 79,247,140, 41,145, 37,161, 41,124,224,125,181, -146, 17, 65, 37, 99,182,224,110,156,234, 9, 19,176,230,212, 22, 99,123, 17,167, 90,163,205, 21,247,202,152, 71,174,199, 61,191, -106, 11,255,235,124, 68,114,225,191, 33, 36, 89, 11, 33,253,107, 43,135, 99, 53, 90,209, 20,187,226, 84, 66, 13,225, 70, 78, 67, -196,198, 90, 37,161,148, 50, 96,102, 44,117,102,154,151, 94,104, 72, 0,197,221,115,154, 89, 39, 49, 22, 90,181, 51,176,214,254, -184,147,102,138,228, 94,192,244,128, 23,107,221,239, 32,246, 24, 75, 91,122,167,219, 77, 19, 86, 59, 89, 9, 9,166, 85, 99,177, - 88, 14,205, 82, 35, 69, 76, 42,219,205,134,148, 18,149, 74, 74,153, 65,228, 44,199, 91,187,181,149,244,185, 42, 98,112,235,134, - 59,137, 1,227, 90,132,161,143,221, 87, 64,207,107,135, 46, 68,152, 77,239,236,117,237,208,187,186,227, 12,204,178,190,163,224, -252,227,117,162,165, 23, 39, 69, 89,125,251, 87,174, 9,142,164,152,158, 37, 42,131, 57, 59, 15,211,165,103,154,217,183,137, 27, -111,188,173,194, 79,115,230, 61,132, 83,109, 23, 38,127,129,218, 38,102,153,153, 91,220,183, 69, 38, 26, 11, 75, 19, 6, 43,220, -221,158,120,249,236,158,151, 47, 14,212,165, 79, 46,196,113, 11,103,195,199, 87,111,113,189,189, 38,173,145,169,111,192,199, 39, -242,152,126,199,227,204,223, 68,120,126, 53, 30,203,151, 57,102, 63, 19,224,122,103,254, 36, 5,152, 63,202,210,117,230,112,149, -115,144,225, 6, 97, 83, 18, 99,142,241,159,166, 24,175,175, 7, 67, 88, 90,246,177,100, 39,182,173, 7,159,116,134,187,112, 49, -127,241,142,186, 1,212,134, 89,141,142,120, 29,193,251,106, 34, 34,103,135, 55,179, 72,197,114, 15, 32, 81, 5, 41,138,102,237, -197, 69, 28,136, 86,207,208,128,144, 34,114,209, 26,226,134,152,247,221, 61, 36,201,100, 29, 40, 50,144,165,160,157, 47, 28,163, -255,190,189,119, 11,128,183,245, 39,209,134,104,151, 73,105, 10,111,112, 13, 71,156,232, 36,123,126,247, 96,194, 13,194, 91, 6, -111, 87,227,221,109,225,189, 99,229,254,212,248, 67,206,166,214,247,231,239, 82,249, 11, 22,190,175, 11,223,210,202,183,165,242, -150, 54,118, 93, 15,127,166, 31,172, 93, 58,176,104,116,233,115, 39,161,197,136,182,162,237,192,108, 19,139, 36, 22, 18, 75, 63, -228, 91,159, 50, 92, 53,248,225,212,216,100,225,255, 81,229,185, 53, 22, 91, 24, 39,239, 55,108, 0, 0, 32, 0, 73, 68, 65, 84, -108,232,211,151,198,118,216,112,154, 23,198, 50, 98,150,152,150, 40,126, 42, 51, 72, 24,175,136, 4, 99,222,113,198,178, 57,179, -156,171, 53,166, 58,241, 43,129,255, 3,104,173,242, 35,141,129,254,210, 39, 11,181, 63,160,146, 18,185,187,186,173,147, 32,107, -141,165, 46,156,236, 20, 76,248,149, 57,221,181,235, 75, 13,240,125,124,245, 24, 85, 9,195, 23,119,148,196,188,204,157,179,209, -197,144, 61,134, 22,143, 98, 50,140,140, 56,255, 25,174,114,145,217,110,114, 1,223,171,237, 53,181, 45,204,203,132,160,108,202, - 35, 68,186,254,188, 25,173, 25,158, 20, 18, 44,169,157, 37,107,227, 56,160,195,134,219,195, 29, 83,157,250,117,212,253,232, 87, -153,157,244,253,147,132, 3,221, 40,137, 61,137, 34,221,120,230,188, 59,231, 76,146,203,170,164,181,176,198, 47, 50,189,174,201, - 95,203,234,112, 80,236, 18,191, 78,106, 89,101,181,253,202,142, 85,148, 59,233,204,153,136,215,100, 2,102,132,147, 56, 39, 42, -199,164,204, 41,113, 90, 22,238, 49,234,104,104,154,112,131,153, 25,167,133,247,186, 24,139, 78,193,188,119,101,171, 59,118,219, - 61,105, 17,124, 49, 14, 47,238,121,241,236,192,253, 97,234,158, 17,244,200, 93,103, 83,182, 60,190,122,202,126,123, 21, 60, 14, -127,115,140,101,254,208,145,253, 39,238,212,191,233,156,191, 94,221,249,191,116, 59,171, 97,204,181,194,211, 44, 60, 93,193,188, - 8,215, 41, 58,243,109, 22,174, 74, 58, 7,172,148,188,218,176, 94,210,176,154,247, 17,250,106,121,235,177, 51,167, 3,226, 58, -190, 59, 31, 54,189,119,240,213,143,213,157, 86, 35, 20,195,106,128, 54,103, 2, 21, 29,212, 29,218,202, 78,142, 14, 74, 10,120, - 78,200,144,201, 57,118,114, 66, 2,235, 18, 52,139, 29,187, 22,165, 53, 80,175, 88, 91,249, 2, 66,214, 76,209, 66, 73,165,231, -110, 7,203,186, 55, 74,125,244, 23, 70, 41,235,247,188, 93, 30, 3, 73,206,163,119, 73,157,137,223, 53,235,162, 9, 65, 73,230, -236,128,199,205,120,123,147,249,246, 50,242,206,177,242,193,108,220,183,223,237, 81,112,222, 85, 19,210,193,239,179,240, 95,200, -194,247,180,242,174, 46,188,171,141,167,210,216,201,101,127,206, 43,123,116,243,176,208,173,190,230,206,203,197, 57,239, 76,246, -146, 75, 49, 0, 88,183,234, 19, 96, 99,240,231, 11,236,114,225,199,201,249,160, 40,146, 10,117, 57,133, 21,171,245,228, 49, 43, - 33, 33, 43,219, 78,204,202,212,218,163, 82, 33,146,210, 72,108,134, 45, 57,101,142,243, 61,247,211, 61,224,148, 50,242,107, 85, -254, 6, 16, 73,252,192, 5,177, 22,221,190, 8, 53, 37, 84, 18, 88,139, 34, 17,168, 75,101, 90,166, 88,189,116,134,187, 88, 88, -189, 66,228,170,139,118,187, 88, 51, 90, 13,239,244,156, 50, 67, 30,195, 36,134,136, 64, 13,211,154,194, 92, 43,222, 83,249, 86, -194,222,185,240,228,178, 7,213, 78, 48,116,140,218,130, 67,144,115, 97,183,221,177,221,238, 1,167,221,221,210,250, 94, 95, 83, - 88,228, 77,117,194,150,152, 81,137,104,172, 35, 90,120, 8, 15,227,128, 32,204,243, 41, 2,101,186, 89,204, 26,201,154, 36,177, - 79,137,125,170, 12,205,186,148,237, 66,144, 11, 96,239,154,116,239,118,176,253,250, 57,239,112, 87, 99, 38, 56,171, 69, 86, 15, -250,135,177,171, 34,107, 70, 66,172, 52, 38,119,158, 39,227, 67, 50,191,113,225, 55, 41,241,161, 21, 62, 82,120,222, 26, 7, 17, -238, 84,121,145, 70,166, 52, 80, 49,230,118,143, 73, 98, 73, 11, 66,195, 53, 3,161, 52,217,109,175, 35, 63,158,200,100,104,203, -192,203,151, 47,121,249,252,200, 60, 7,199, 33, 0, 61,238,216,110,216,243,248,250, 41,187,205,254,108, 32,245,117,251,248, 92, - 29,229,190,217,149,191, 57,143,109,237,206,119, 2,143, 19,188, 85,148, 39,131,242, 56, 75, 88,186, 38,250,168, 61,179, 77,225, -181,158,115,140,249,164,143, 35,189,113, 54,179,160,119,218,241,102,180,115,213,223,231,234, 1,130, 29,188, 93,252,129, 61,104, -144,128,220,130,116, 86,151,138, 53, 95,133,187,113,192,186,199, 78,213, 58, 27,190,119,201,158,128,156,144, 49,161,155, 1,213, - 66, 34, 35, 20,196, 21,111,241,248,135,126, 80, 45, 84,234,226,103, 67,153, 36, 1, 64, 57, 21,178,150, 96, 30,247,209,164,172, -148,241,245,254,181,168, 35,204, 30, 88,126,118,125,181, 68,146,204,218,182,199,161,153,148, 48,157, 87,196, 66, 39,126, 51, 38, -222,161,240,193,226,124,123,187,240,139,187,133, 67, 15, 12,145,223, 51,114, 47, 56,127,206,194, 95,201,194,119,211,204,183,181, -241, 93, 89,120, 75,140, 97, 85,146,189,202, 55,232,175,109,119,183,237,100,169,142,229, 30, 49, 54, 45,141,104,217, 65,222, 64, - 42,208,186,255,251, 50,131, 45,224, 66,235,190,225,223,169,206, 14,229,103,165,240,158,192,173,199,115,135,192,152, 11,208, 88, -186,177,206,178,204, 36,105,136,164,110,209,154, 25, 7, 34, 16,167, 45, 44,109,233,254,230,210, 65,199, 48, 77,188,159, 11,127, - 39, 5, 95,140, 39,110,184,102,106,202,220,165,200, 70, 95,172,226,173,161,169, 0,206, 92,195,171,126,200, 3, 67, 9,227, 23, -237,118,170,204,241,251,183,101, 75,163,113,156, 14,180,214, 40, 37,244,237,222,217, 9,126, 6, 49, 61, 11,247,165, 75, 45, 87, -191,117,183, 0,191, 85, 75,143,230, 51, 15,228, 56, 31, 81, 9,125,254,110,187,235,247,107,166,182, 74,109, 11, 57, 21,202, 88, -104, 84,166, 37,118,237,155, 50,118,179,153,214, 3,115, 10, 99, 26, 99,127, 95, 6,188, 70, 81,145, 4,178, 38,146, 14,140,101, -224,106,105,236, 31,128,249,249, 83,132,188, 26,240,244,119,182,172,221,248,131, 2, 81,186, 82,224, 12, 16, 15,254, 63, 82, 11, -227, 26,169,192, 75,115, 62,240,198, 47,188,241,115, 73,252, 88, 18, 63,179,133,103, 90,120, 46,137, 99,114,170,132,130, 66,101, - 45, 12,189,123, 6,132,138, 96, 76,153,228, 43,111, 0,146,102,204,157,146, 50, 99,217,112,119,123,203,203,251, 19,183, 47,143, -220,223, 30,104,182, 22, 80, 81, 52,175,193, 65, 55, 87,107, 48,203,167, 7,193, 87,207,194, 87, 59,223,223,151,221,254,186, 77, - 4, 62, 19, 71,185, 55,185, 91,126, 83,153,236,127, 8,152, 11, 97,229,122,163,240, 52, 7,160, 63, 30, 18, 55, 89,185, 41, 17, -180,178, 79,194,182, 40, 67, 79, 74, 83, 93,227, 59, 59, 27,189,203,197,164,231, 89,175, 44,118, 60,228,101,178,154,105, 52,235, -163,242,110,182,225, 23,109,172,202,122,136,174,206, 30,151,113,244,186, 67, 63, 23, 3,205,206, 7,175, 43,180, 44,180, 81,209, -146,209, 97, 3,121, 12, 80,151,129, 68, 6, 87, 44, 69, 79,149,161,143,244, 27,173, 85,172, 25, 41, 43, 34,153,156,135, 8, 6, -145,200,212, 86,235, 93,182,119,239,247, 78,142,242,106, 88,189,112, 0,226,126,200,185,171,117,117, 92,214,121,252,122,128,114, -145,202,169,176,201,137,167, 40,239, 52,225,237,169,242,244,110,226,195,165, 50,187,252,214,107,215, 8,155,217, 63,151,202,143, -100,225,251, 58,243, 29,173,124, 87, 23, 30,117,182,243, 67,158, 2,242, 96,157,242,208,206,244,124, 16, 72,168, 15, 84,169,229, - 6,182, 79,144, 97, 67, 34,177, 45, 3,187,205, 22, 79,137,195,225,142,187, 15,127,131,159, 66,166, 21,192,171,220,152,242,195, -201,184, 78,206, 63,170,114,231,206,144, 6,198, 97,203,180,156, 56, 30,239,123,152, 74, 66,146, 50,228,196, 82,231, 80, 29, 8, -228,156, 49,111,152, 57, 73,114,172, 66, 58,255, 33, 6, 42,137, 15,114,230, 39,210,248,176, 57,247,162, 28, 21, 62,194, 57,246, -162,112,105, 51,204, 18, 93,241,184,193,220, 98,255,221,119,192,171,131, 92,214,116, 6,154,218, 26, 75,139, 14,217,204, 65, 42, - 67, 14, 63,246,227,124,236, 89,230, 70, 41, 67,207,121,143,107,123, 44, 35,203, 50, 51,219,204,250,242, 92,109,175, 25,202,134, -151,119, 47, 35,252,165, 91,189,186, 57,211,116, 98,102, 14,162, 93,176, 48,144, 20, 39,176,213, 32,191,237,198,109,151, 2,118, -134,184,142, 40,225,132, 55, 45, 83,188, 47,243, 72, 25, 10,110, 53,128, 58, 5,217,242,198,225,137, 10,123,201,108,165, 39,178, -137,247, 56,225,232,206,245, 21,147,153,117,226,254, 32,209,246,149,180,196,120,142, 78,238,188,231,141,127,118,231,159,204,248, -199, 58,243,115, 55,158,137,114, 76,112,104,198,177, 46,209,193,175,185,245,107, 32, 13,161, 12, 73, 2,214, 38,196, 26,163,230, - 32,238,149,129,164,249,188, 3,159,150, 19,199,211, 61,247, 47, 14,188,124,118,207,253,221,145,186, 88,127,126,195, 19, 82, 12, -198, 52,114,125,125,195,245,238,209, 57,152,229,119, 1,236, 39,186, 93,254,190,233,228, 31,152,123,254,199, 20, 2, 95,228, 71, -254, 6,208,191, 94,128,254,137, 23,132,192,181,196,168, 61,192, 92,120, 92,148,235,156,184,206, 18, 36,184,164,140, 41,118,116, -154, 34,170,212,186, 86,252,226,234,118, 73,193, 90,201, 53,190, 26,116,172,255,109, 22,204,241, 86,113,218,153,100,230,235,206, - 82,162,186, 79, 73, 47, 73, 88,189,119,240,158,186, 38,254,208, 1,164, 87, 2, 69, 97, 72,144, 21, 43, 5, 52, 6,145,238, 9, - 35, 33,154, 99,212, 40, 65,108, 59,239, 89,231,133,186,196,136, 54,137,162,121, 32,231, 33,200,113,250,112, 52,221, 9,114,214, -203,152,230, 23, 64,119,187,128,229, 57,191,219, 73,166,177,255,244,139, 9, 14,235,180, 34,218,101, 82, 82,174,147,243,118,131, -119, 54,133,119,198,196,123, 34,124,228,191,221,161, 15, 56,127,198,194,143, 88,248,129, 46, 31, 3,244, 53,156, 99,125, 74,132, -143, 7,109,172, 79,151,246,205, 70, 58,131,189, 65,218,176, 92, 61, 97,179,123, 18,242,168, 97,128,113,164, 74,162,169,194, 92, - 56, 74,194, 68, 40, 18,116,184,218,187,188,193,225,123, 77, 24,181,240,255,101,231, 3, 91,120,121, 60,129, 53, 74, 26,217,148, -177,103, 87, 7,216, 77,203,137,165,119,172, 65, 90,236,249,227, 90,152,171, 80, 87, 9,156, 22,198, 60,146, 54, 3,191,210,133, - 95, 84,225,182,205, 28,151, 9,215,174, 63, 79,130,123, 16, 50, 5,161,164,132,123,128,119,132,158,132, 17,170,117,118,249,234, - 68,184,204, 17,219,218,211,127, 34,142,187, 79, 80,170,213,243, 72, 63,121,188,150,205, 26,169,251,142,187, 88,119,139, 11, 38, -124,196,181,198,116, 65,180, 23, 9, 14,199,249,196, 92,103,174,247,215, 60,185,121,235, 28,196,226, 56,117,153,250,227,142, 21, - 69,235, 92,128,156, 82,152, 26,137, 33, 73,176,217, 56, 78, 39,246,219, 29,219,113, 75,173, 75, 16,251,114, 33, 73, 20,219, 79, -247, 27, 30, 53, 97, 99,142, 90, 3,107,125,146,213, 11,163, 14,214,246,112,120,211,193, 71,233, 97, 57, 26,204,251, 59, 51,126, -237,141,127,110,141,191,183,202,223,181,198, 47, 53,113, 64, 56,118,237,126, 66,209, 46,227, 76, 8, 34, 70,233,175,111,109, 11, - 73, 75,191, 53,235,211,142,120,190,114, 46, 36, 17, 54,219, 29, 41,103, 14,167,123,150,105, 97, 58, 44, 28,239,102, 14,119, 19, -243,212,206, 87,171,217, 26, 51,155,217,109,118, 60,186,122,204,118,179,235,137,124,175,199,249,249, 58,113,199,242,235,252, 0, -190, 25,179,127,113,183, 41, 4, 17,238, 73,134,183,178,242,246,152,120, 84,132,155,146, 3,208,187, 76,109, 80, 33,171,163, 41, -118,206,241,166,187,232,200,105,222, 15,194,254,125,247, 80, 69,119,176,142,191, 11, 88, 72,192,172,213,190, 31,111,253, 16, 12, - 98,142,170, 67,209,179, 1, 76,234, 6, 34,231,221,117,223, 3,123,143, 85,197, 4, 73,153, 60, 36,124, 80, 52,167, 0,226, 84, - 72, 30,108,176, 38,224,201,207,246,166,180,214, 15,165, 70,157,231,136,196,108,222, 25,197, 67,103, 82,103, 68,210,131,173,162, -227, 22,146,164,213, 8,231, 60,133, 88,199,254,125, 31,189,202,240,154, 9,104, 57, 91,149,172, 8,235,202, 69, 18,212, 89, 86, -163,194,147, 13, 60, 29, 11, 79, 54,133,199, 25,110,103, 99,145,116, 46,106, 50,206, 15,104,252,107,157,249,179,180,240, 29,169, -124, 71,126, 27,208,229,213, 29,252,111,125,125,241, 82, 15,102,124,228,163,237,173,177,197,145,156,185,126,242, 22,109, 24,120, -239,189, 95,114,119,247,130,122, 58,144,166,187,120,173,243,122, 35,177,224,108,221, 24,230, 91, 46, 92, 53,229,151,201,248,177, - 55,234, 16, 64,116, 60,222,113,127,186, 71, 36,246,219,181,134, 36,201,165, 81,219, 28, 93,219, 58, 42,214, 64,161,156, 34, 72, - 70, 4,230,218, 56,186,129, 38,230,166, 44, 94, 73,174, 88, 11,166,251,102,232, 7,125, 87, 29,168,106,200, 36,123,161, 57, 45, - 19, 89, 51,154, 18,173, 46, 52,175, 76,243,137, 90,235, 89, 38,214,220, 56, 46, 39, 84, 82, 72,224,204,152,219,194,100,115, 20, -144, 18,249,105,102, 21,179,216,185, 15,121, 0, 87, 14,211, 29,167,211,233, 28, 20, 36, 33,171,232, 5,108,227,116, 60,242, 82, - 94,244, 76,119,139, 9,141,228,179, 9, 80,179, 8,188,105,173,133,140,173, 23,125,181, 53, 90, 11, 47,243,121, 89,184,189,187, -143,112, 33, 17,132,145,162,137,171, 98,148, 65,216, 52, 40,179,227,115, 20, 48,230, 49,237,176, 7,213,220, 67, 79,118, 93, 95, - 70,119,238, 21,222,107,198, 63, 44, 19,127,223,102,254,177, 85,222,243,198, 45, 74, 77,153,172,137, 34,137,171, 60,132,134,223, - 97, 51,140,232, 24,133,125,109, 51, 57, 41, 57, 15, 76,243, 49, 76,160, 92,105,205,187,162, 34, 86, 80,155,113, 67,206, 3, 8, - 28,238, 15, 60,251,232, 57,247, 47, 79, 76,199,133,121, 14,222, 66, 76, 18, 2,204, 75, 30,216,109,246, 92,109,175,216,108,182, -193,207,248, 18, 59,225,207,100, 34,250, 57,222,247,252, 58,130,209,155,196,152,255, 42,128,121, 38,252,217,223, 42,194, 91,131, -242,120, 80, 30,151,196,163, 33,177,207, 41, 34, 81,115,216,163,106, 79, 66,195, 35,180,116,101,155, 91,109, 1,212,125,196, 46, - 30,233,104,134,118, 86,175, 99,205,113,171, 88, 13,163, 22,175,157, 77,220,247,173,235,133, 46, 9, 90, 55,125, 73, 67,130,148, -186,229,106,247,153,233,213,255,217,144, 68,149, 84, 18,185, 36,202,160,144,148,166,103, 81, 21,131, 71,110,184,211, 48, 87, 22, -147,216,227,215,133,100,130, 84,163,213, 22, 83, 3, 1,205,153, 82, 74, 39,197,233,165, 59,247,179, 27,249,217,204,198,108,101, -239, 95,122,226, 21,240,173, 5,211, 63,229, 4,150,206, 17,155,146, 82,144,156,114, 9,135,185,245,129,105,116,245,215, 67,230, -157, 49,243,164,100, 30,151,196,251,167, 70, 85,199, 68, 58,160, 87,254,141, 78,252, 64, 43,239, 74,100,160,223, 72, 72,187,180, -223, 13,121,101,103,250,251, 62,244,204,159,232, 70, 59, 14,122,255, 17, 86,103,218,176,227,126, 57,177,136,176,220,191,128,211, - 68,169, 11, 59, 42,150,132, 5,161,226,212, 53,171, 30,168,125, 76,186, 53,248, 11, 23,174,211,200,207,146,114,107, 97,159,178, -142,182, 23,159, 80,141,209,178,104,248, 23,168,102,106, 93,152,125, 6,129, 33, 23,198, 50,128, 8,115,109,216, 50, 71,199, 45, - 26,113,170, 15,116,225,170,134,144,187, 76,171,219,248, 90,248,248, 75, 46,204,115,116,196, 36,233, 46,109,241,184,199,178, 97, - 28,166,240,180,103,173,245, 26, 85, 26,212,149, 68,102,231,180, 53,115, 39,231,129,146, 11,109, 29,177, 55, 99,183,217, 81,114, -225,249,253, 11, 90,107, 49,246, 39,238,159,246, 42,171,182,134,181,152, 66, 73,159, 64,153,199,123,166,181, 0,239,109,217,198, -253,235,197,161,138,246,213, 84, 99,232,191,243,180,156,104,173,178, 25, 55, 12,213,104,110, 76, 10,183, 42,108,212,217,136,133, - 6,254,156, 70, 0, 65, 69,236,187,116, 63, 11,216, 56,209,248,181, 11,255,232,141,255, 52, 47,252,157, 85,126,238,198, 76,232, -209, 53,101,118,121,100,151, 10, 67, 30, 25,134,130,170,114, 60, 29,168,117, 97,191,221,177, 25, 55, 76,243,196,225,180,160,106, -108,139,178, 43, 59,146, 10,146, 18,211,188,176, 84,167,228,145,195,116, 96,174, 11,199,227,196,237,139, 91, 94,190, 56, 48, 31, - 22,106, 53,172,239, 49,114, 87,134,164, 82,216,239,174,184,218, 93,179, 25, 54, 31,115,220,251,170, 19,226,126,203,255,227, 51, - 4,249,252,117, 7,189,175,243, 52, 32,156,199, 66,162,246,214, 32,188, 53, 38, 30, 15,137, 71, 37,115, 53, 94,242,205,199,238, - 74, 21, 93,106, 59,103,188,175,145,145,214,186, 78,187,143,216,165,251, 72,155,199,152, 50,166,210,193, 50,246, 26,146,180,149, -216,182,146,172,253, 33, 35,183,143,209,115, 78,200, 80,162, 99,110, 65,180, 67,186,164,168, 27,206, 36,141,248,204,113, 76, 12, - 67, 33,229,110,106,195,133, 33,155,122,119,226,235,159, 45,198,254, 84,235,118,106, 70,171,118, 78,203, 26,134,129, 82, 10, 37, -151, 11, 41, 70, 4,215, 20,221,108,255,189, 15, 61,192,215,167, 58,120,127, 78,179,138,249, 18,249,217,235,113,218, 29,238, 68, - 21,201,233, 12,238,107,186, 28,173,161, 24, 59,129,183, 54,133,167,155,204,205, 32, 92,139,115,116,195, 36,241,189,222,161,255, - 64, 43,223,214,133,111,107,229, 90,130,241,252,199, 0,250,122,168,175,137,103,214,129, 39, 33,224, 11,117,122, 78,157,111, 89, -110,149,185,235,159,221,194,126,116, 16, 97,238, 36,185,133,248,121, 0,122,108,170, 27, 66,231, 72,242, 78, 85, 74, 91,248, 71, - 61,241,172,213, 48,118,193, 81, 73,108,183, 59,198, 50,144, 53,115, 90, 38,106, 93,144, 36, 20,250,107,144, 10,238,206,169, 78, - 33, 27, 3, 74, 18,150, 58,245,209,113,194, 49,198,178, 33,107,238,186,113,144,156,251,148,164, 33, 22,193, 51,230,145,152, 22, - 32,217, 53,231, 10,119,211, 28, 90,240, 78,204, 91,221,230,147,104, 0,183, 53,230, 54,199,243,165,225,168,214,172,162, 93,225, - 96,238, 84, 59, 69,113,145,162,216, 0, 24,203, 24,178,188,121,234, 1, 65,202, 38,111,184,190,186, 98,110, 11, 86,131, 76, 26, - 83,130,116,134,170,165,235,249,135, 60,198,244,160,119,250, 41,103, 10,202, 82,235, 37,110,213,227,125, 37,243,140,149,129,105, - 76,204,214, 72, 45, 38,102,181, 95,111,203, 89,226, 22,227,234, 25,184, 75,137,247,188,241,247,243,196,223,122,227,231, 2,115, - 95,141,101,201,140,235, 42, 36, 21,182,155, 13, 67,119,219, 75,253,190,150, 28,251,240,149, 57, 31,211, 42, 66, 16,217,140,156, -156, 92, 10,251,237,136, 94,109, 48, 83, 26,133,246,145,241,222,207,127,198,237,139, 3,117,106,132,113, 94,120,248, 63, 81,248, - 86,130,183, 74,193,199,107, 62,216,222, 48,151, 13, 73,245,141,103,181,127,150,228,187,175, 93,160,203,215,101,103,254, 73,183, -119,145,169,193,219, 69,121, 60, 38, 30,141,153,155, 33,113, 93, 18,251, 18, 38, 51, 89,131,162, 98,125, 95,188, 90,182,210, 89, -236, 43,160,219,121,127,174,125, 52,198, 3, 61,110,184,174, 89, 93, 46, 58,240, 7,174,174,254,112,191,167, 81,170,203,144,145, -161,160,125,167,157, 0,242, 66, 51,199, 61,161, 26,118,154, 37, 37,198,161, 48,142,133, 82, 34,138,213,241, 30, 2,179,210,161, -130, 4,214,144, 48, 91,105, 53,228, 67,181,235,143,123,215,157, 52, 49, 12,153, 97,216,244,221,110,104,215, 53,229,136, 91,125, -240,156,202, 25,204,215,252, 85, 63, 7,205,152,135, 30,250,220, 14,118, 64, 23, 95, 65,180, 39,183, 75,183,159,245,232,214, 67, -247, 46,104,130,199, 99,230,237,237,192,163, 49,113,147,140, 99,133,107,119,126,164, 51, 63,144,133,119,100,225, 93,173, 60,198, - 24, 30, 0,248,239, 2,244, 87, 73, 80,130, 60,240,150, 95,243,201,123, 42,218, 57,218, 52, 94,247, 36, 70, 70,152, 81,146,104, - 0,185, 68, 78,247,220,141, 78, 10,194,236, 80,101,237,222,161,186, 83, 69, 80,135,167, 40, 63,108,209,117, 78,187, 61,173,131, -166, 3,211,116, 98, 18, 97,169,115,236,174,201,108,182, 91,134, 60,160, 89, 56,156, 14,180,182, 4, 25,177, 55,225, 75,155,195, -201, 77, 51,170,153,176, 1, 82, 84,226, 26, 92,150, 72,166,207, 93,242, 85,173, 5, 71, 66, 37,194, 84, 68,217,110, 55, 52,107, -220, 30,110,153,230,185, 39,198, 93,124,207,221, 28,147,139, 1, 77,188,230,145, 81,176, 58,187,173,215,173, 57, 28,151, 35,178, -128,133,179, 17, 75,171,225, 81,191, 42, 11,220, 40, 67, 97,183,219, 49,180,133,118,170, 1,224,253,189,154, 59,195,222, 60,138, -214,169, 78, 61,156, 40, 70,249,219, 97, 75, 41, 67, 16,239, 90, 76, 39,134, 50, 34,192,116,154, 56,144, 56,148,204,169, 9,180, - 32,170, 85, 15, 99, 33, 44,102, 91, 83, 81,222,119,227, 39, 54,243,211,102,252,130,198,175,169, 28,220, 66,234,214,205,119, 74, -202, 61,229, 78,184,222, 95,161, 73, 25,203,200,225,120,224,229,253, 11, 84, 99, 53,177,221,110,163,107,159,143,204,245,128,224, - 12,101, 36, 9, 84,155, 89,106,120,241,151,161, 48, 22,197,155,161,215, 91,110,175,174, 56,124, 48,177,117,120,146,156,183,178, -243, 23, 5,254,203,190,250,243, 82,248, 77, 74,252, 67, 18,126, 34,112,194, 17,190, 30, 31,159, 69, 0, 76,254,186,117,176,111, - 58,160,127,210,109,173,142,112, 79, 18,188, 93,132,167,189, 59,191, 25, 18,215, 67, 24,200,108, 75, 98,144, 24,181,123, 11, 35, - 17,183, 24,175,123, 31, 69,158,157,222, 90, 7,246,190, 43, 95, 43,106,111, 49,150,140, 78,190,143,182,173,157,163, 78, 63, 14, - 54,171, 92, 8, 52, 75,116,231, 99, 97, 40,133, 34,137,228,130, 90,200,136, 82,234,121,215,170,228,156, 25, 74, 98, 40,153, 97, - 40,228, 78,218,115,115,200,189,155,119,167, 25,212, 6,173, 18, 44,245,165,225,181,187,191,185, 33, 22, 67,227, 82, 50,195, 56, - 6,105, 41,199,238, 85,187,167,249,106,198, 65,223, 63,186,202, 57, 85,139,174,145,119,111, 97, 40,242, 32, 95, 59,130, 47,186, - 84,207, 44, 22,233,171,117,173, 37,220,229,236, 83,126, 73,253,114,118,131,242,206,182,240,100, 28,184,201,194, 80,103,190,159, -224, 7, 26,128,254, 29, 89,120,140, 81,228, 2,198,175, 2,185,252,142,201,140,191,250,181,240, 80,157,142, 17, 99,124,233,221, -119, 34,216,213, 33, 4,140, 98,112, 65, 24, 36, 58,244, 89, 96, 33,178,185,151,222, 13, 46,253,239, 36,136, 64, 24,135,183,101, - 96,163,206, 79, 79, 39,126,142, 33, 41,179, 76,157, 40,151,195,131, 61, 72,113, 93, 86,102,149,228, 57, 36, 80, 30, 35,230,218, - 22,164,119,110,213, 90,191, 22,133,214,106,236,123,115,161,214, 74,173, 65,112,211,162,103, 5, 5, 56,181,246,244,182,172, 33, - 43, 91,130, 64,151,251,235,108,126, 41,117,204, 27,167,185, 6,191, 98,189, 56,251,179,228, 30,187,234,117, 26, 36, 61,220, 37, -164, 97,225,241,239,110,104, 42, 12,121, 96,233, 4,186,105,158,153,151,153, 92,130, 59,208,186,130,162, 97,140, 90,176,214,206, -188,137,185,158, 98,234, 32,225,150, 22,122,116,101,200,153, 89,164,167,232, 57,135,233,142,251, 58,241, 83, 27,120,212, 6,196, -133,125, 95, 25,221,227, 60,119,227, 25,141,143,112, 62,104,206,175,104,252,114, 57,114,146,238,192,231,206,216,249, 34,214,157, -240,198,113,195, 85, 74,184, 25,227, 24,193, 59,135,227,161, 43, 1,188,123,223, 75,216, 53,167,145,156,132, 90, 67,225,161, 66, - 79,190,139,181, 65,109, 11,102,241,222, 41, 37,115,115,117,205,205,245, 95,242,131,111, 61,229,173, 23,183,252,235,251, 91,254, - 98,186,227, 9,149, 44,112, 18,231, 67,111, 28,125,230,123,237,192,228,206, 47,210,200, 36,138,242,245,252,248, 99,249, 3,249, -235, 8,178, 95, 55, 64, 63,251,100,247,221,249,211, 12,111,103,229,233,152,120,180, 9, 64,191,234, 62,237, 27, 21, 74, 94,119, -224,214,125,214,251,190,188,181, 51,163,253, 60,126, 55,167,213,222,141,123,183, 72, 53,199, 91,237,128,222, 65,246, 44,243, 90, -119,176,156,193, 72, 92,130,141,158,149, 84, 50,121,200,148,156, 24, 68, 40, 61,118, 85,189, 27,110,148,212,165, 60, 37, 64,184, - 36, 74, 78,103, 11, 86, 1,116,221, 93,119, 9,124, 91, 9, 67,173,209,150,134,205, 43, 57,207, 16,111, 29,208,227, 48,219, 12, -161,107, 94, 65, 93, 82, 58,183,175,171,246, 90, 86,207,247, 30,129, 25, 43,134, 22, 59,211,254,117, 88,144, 16, 71,244,218,241, -169, 34,214,208, 22,177,173,212,218,229, 90,250, 0,132,163, 3, 44, 73,120,186, 45,188,181, 27,120,187, 8,155,105,226, 7, 10, -143,181,241, 14,149,199,122,209,161, 63, 36,197,253,174,110,221, 63, 6,232, 15,182,255, 34, 23, 27,208,179,113,199,197, 85,108, - 77, 67, 51,161,167,126,197,159,149, 0,243,213,169,108,150,208,203,207, 46,204, 4,195, 58,116,240,114, 6,245,234,209,209,235, - 92,153,219,196,207, 85,169, 56,219, 97, 23,157,237, 50,131, 70, 32, 7,110, 72, 78,231,160,148,102,141,106, 45, 66, 99, 82, 56, -171, 37, 81, 74, 42,231,235, 62,226, 64,229, 44, 23, 91, 99, 75,151,186, 4, 24,245,107,162,164,210,255, 94, 20,166, 37,103,106, - 13, 47,130,165, 46, 24,157, 7,161,137,148,194,105, 46,228,112, 25,243,133,165, 70, 66,184,232, 10,240,221, 73,142,139,191,252, -102,220, 97, 86,105,109, 1,239, 44,118,140,121, 62,241,236,249, 51,246, 87,251,216,219,183,110,122,211,243,214,141,152,108,173, -199,247,255,207,222,187,245, 88,146,102,231,121,207,250, 14, 17,177,119, 30,235,212, 53, 7,206,129,164, 68, 74, 6,101,153,246, -133,111, 44,192,166, 33,216,134, 5,255, 72, 3,190,210, 61,117,227, 27,203,240, 1, 2, 44, 27,150, 0,138,162,134,195, 30,206, - 76,247,116,215, 41, 51,247, 33, 34,190,147, 46,214,138,216, 59,171,171, 71, 67,137, 20,187,155, 83,141, 68, 86,101, 87,101,238, -220, 25, 59,214,183,214,122,223,231,173, 20,156,120, 98, 80,242, 94,173, 21, 17, 71,180,235, 60,231,196,113, 28,193,193,199,210, -112, 84,166,214,232, 91,225,115, 50,175,188,250,201,223,182,194, 81,231,109, 20, 26,213, 69,122,123, 77,197,208,209,168, 43,219, - 62,248,192,229,176,101,232, 55,204,211, 68,154, 52,125,111, 78, 51,222,123,134,126, 0,244,121,131, 74,173, 51,125,140, 72,223, -147, 51, 56, 41,250, 24,197, 19,188, 78,100,214,195,173,215,215,209,245,205,150, 39,215, 27,158,164,194,205,155,119, 76,127,254, -115,222,190,125,139,207, 19,208,240, 36, 46,196,241,188,233,193,167, 33,252,220,119,204,246,185,126, 93,216,127,133,162,254, 77, - 44,226,223,116, 2,220,175,250,181,170,117,231, 91,139, 68,125, 30,224,105, 20,110,163, 5,176,116,129,171,222,177, 9,106, 11, -242,118,179,171,181,170,213,172, 20,219,125, 27,162,213,186,242, 90,197,138, 26, 42,114, 41, 54,126,175,186, 27,102, 81,134,183, - 83, 71,184, 56,184,207, 67, 97, 22,209,144,120, 71,232, 3, 93, 31,232, 59, 13,128,137,128, 84, 19,128, 89, 81,117,226,116,252, - 23,180,168,135, 16,240, 94, 31,187,179,252,109, 74,209, 76,234,181,168, 11, 57, 87,230,164,240,154,146, 18, 45,103,221,237,250, -102, 35,252,142,190,239,136,177,195,199,128,132,128, 24,114, 84,188, 61, 70,103,248,204,214, 86, 44,219,162,232, 47, 57, 83, 74, - 86,149,178,117,145,158,138, 11,142,230,132, 86, 60,213, 57,164, 64,149,138,148, 2, 46,155, 71, 56,172, 42,233,165, 35,116, 52, -110, 58,207,119, 46, 58,142,131, 99, 59,205,188, 16,184,150,202,181, 84,162,176, 2,122,220,123,197,252, 67, 29,250,163,201,136, - 40,229, 15, 43,220,203,209, 79,236,176,165, 63, 47,103,228, 60, 93, 19, 84,235,214,131,141,215,151,247,157, 40, 26, 52, 25,138, - 54,138, 48,136,134,175,164,214, 56,182,198,174, 53,238, 90, 99, 22,199,128,240,187,126, 0, 10, 63,119,142, 16,122,142,211,131, - 69,178,118, 43,157,109,211,111, 73,121,166,212,162,157,124, 81, 1,158,162, 94, 53, 0,166,139, 29,185,100, 5,202, 24,238,116, -113, 98, 56, 23, 84, 73, 94,139,113, 18,154, 69,177,106, 55,221,133, 8,165,158,193, 86,236, 32,184, 22,116,133,161,180, 92,215, -194, 91, 90, 92,185,235,231, 65, 36,139, 15,126, 17,210,165, 52, 25,152,166, 50,196, 30,145,200, 56, 29,201, 37, 49, 78, 7, 54, - 23, 27, 66, 12,164, 54,173, 63,149, 84,102,205,178,183,181,141, 91,152,234, 43,235, 93,197,119, 26,250,146,117,207,220,100, 21, -166,206, 8,159, 52, 24,139,242,243, 95, 71,216,227,152,139,163,180, 10,205,227, 5, 98, 19,123,158,235, 42, 70,172,181,174, 69, -188, 76,153,153,137,105, 55,147, 45,156, 40,229, 9, 23,156, 30,186,130, 99, 24, 6,250,216,161,186,189, 74,112,208,197,129,148, - 4, 71,181,117, 14,132,224,136,235,180,203,194,156,188,215,195,163, 23,166,205,150, 87, 23, 3,175, 99,207,229,159, 15,220,188, -250,156,110, 60,224, 40, 92,184,105, 37, 31,182,170,154,143, 79, 92,191,234, 55,254,166, 22,246, 95,246,107, 37,202,125,211,216, -239,127, 19,172,105,191,234,215,109,162,202,239, 11,167,197,252, 89,116, 60, 9,112,211,137,141,219, 61,219, 78, 24,130, 35,120, -212, 86,214,160, 45,236,244,162,239,107,211,113,241,218,233,150, 98,172, 23,209, 38,222,196,114,205, 64, 48,110,241,198,158, 37, -106,105,151,174, 64,150,182,194, 87, 44, 31,219, 59, 66, 12,116, 93, 96,232, 2,125, 8,116,222, 8,235,205,210,204,188, 83, 0, -140, 19,141,211, 12,129, 16, 34, 33,248,213,167,140,117,206,165, 53,114,173,148,212, 40,181,145,230,170, 30,244,201, 10,122,210, -233,131,120,237, 12,187,190,163,235,123, 98,140,132, 24,149,209,238,189,189,177, 62, 70,231,151, 67,131,245,131, 85,129, 51, 39, -177,160, 30,100, 74, 54,253, 0, 5, 87,197, 66, 54,109, 53, 64, 71,245, 21,191, 68,201,214,170,221,187, 21, 84, 12, 60,210, 90, -101, 27,133,223,136, 14, 9,133,224, 43, 91, 81, 17, 93,111,225, 28,239,123,209,127,217,205,238,228, 83,111, 84,137,164,120, 69, -168, 19,161, 28,109,203,238,140, 19,106,164, 59,203, 81,199,126, 94, 77,165, 14,120, 43,232,209, 84,239,201,130, 67, 18,194,166, - 65,114,142, 99,236,121,157, 38,126, 54,207,124, 66,229,149, 52, 30,124, 96,162,113, 81, 11,191,119,253,148,191,223,111,136,227, -129,159,204, 7,114,109,108,251, 11,186,208, 49,231,233, 84, 96,205,150,214,209,145,154,104,225, 91, 3,126,244,103,237,188,195, -161, 49,169, 94,194,163,174,102,193,194, 46,223,188,247,129,206,186,222,121, 30, 25,199, 35, 41, 37,155,226, 40, 6, 54,120, 79, - 8,129, 82,139,138,210, 26,244,125,175, 19,132,146, 52,117,174, 36,237,208, 45,109,176, 20, 37,228,197, 16,153,210,200, 56, 79, -136,211,157,126,240,158,106, 19, 1,239,116,210, 19,131, 39, 14, 27,106, 43,204, 41,153,245,204,190, 87,223,145,107, 90, 31,118, - 46,137,227,116,128, 54,224,196, 91, 49,215,177,188,119,158, 16,163, 78,194,106,101,110,141, 79,105, 16, 2, 46, 70,220, 60,226, -106, 65, 36, 64,195,188,227,154,208, 38, 34,228, 92, 24, 15, 71,164, 8, 50, 57,166,113,100,158, 39, 14,114, 32,101,197, 37,123, - 23,236,224, 4,226,154, 30, 70, 46, 10,245,178,177,217,116, 58,213,163, 16,125,192,187, 30,215,170, 29, 26, 43, 49,232,186, 32, -122,125, 30,130, 15, 10,114,178,231,173,137, 48,199, 64,122,126,203,220, 71,210,245, 37,219,159,254,140,254,238, 29,177, 20, 54, - 50,113, 35,152,240, 82, 39, 68,159,250,142,194,175, 94,216,191, 76,101,254, 43,221, 63,191,102, 12,249,191,116,162,220,175, 11, -250, 87,172,160, 3, 67, 83,196,235,139, 8, 79, 59,225, 73,180, 52,181,222,113, 25, 61, 27, 27, 93, 7,119,242,155, 87,187, 65, - 44,123,240, 90, 23,202, 90,166,229, 74, 73,214,141, 54, 71,107, 10, 12,209, 93,181, 26,103, 28,103,213,229, 61,115,180,120,193, - 69,143, 44,120,210,166,120,217, 24, 2, 62, 6,221,141, 7, 71,116, 94,195, 39,236, 38,182,128, 56, 60, 26,126, 33, 38,128,114, -193,105, 60,170,243, 74,219,182, 81,120, 74,133, 52, 23,114,174,228,148,201,115, 33,207,153,154, 50,148,162, 35,119,167,225, 31, -125, 23,233, 58,165, 90,249, 16, 78, 76,118,219,221,227,116,108,232,156,117,177, 85, 21,207, 90,184,171,142,136,151,240,151, 10, -228, 70, 75,149,154, 84, 50, 86,154, 35, 59,165,208, 53, 7,213,121, 92,243, 86,252,179, 6,108, 52,157, 91, 44, 6, 36, 89, 34, -104,231, 68,191,219,243, 60,141, 52,169,235, 78, 91,206, 10,186,252, 59, 10,250, 57,243,253, 52, 92,111, 4, 50,126, 9,215,145, - 51, 68,168, 91,164,124,150,211,189,236,111,237,189,179,238,169, 90,218, 87, 0, 54, 8, 5,199, 27,105,252,204, 9,127,220, 18, - 63, 74, 7, 62, 41, 51,121,232,104, 94, 31,121,109,141,123,132,222, 11,127,103,232,248,126,154,120,155, 11,185, 27,212,214, 7, -116, 93,143,115, 78,105,115, 53,147, 74,210,107,176, 41, 27, 60,184, 64,174,153, 82, 42,147, 76,116,161,163,180, 74,109,153,220, - 76, 32,231, 59, 82, 78,186,191,246,122,141,138,179,239,207, 14, 10, 81,196, 4,122,105,117, 48, 84, 44,100, 71, 28, 41,143,106, - 77,115, 65, 71,231,101, 94,115, 11,234, 9,107,168,145,161,235,158,125, 17,182,153, 78,161,170, 55,190,154,255,124,219, 95,234, -136,222, 5,141, 87,109,167,227,216, 18, 12,227,164,234,164,192, 57, 40,144, 74, 98, 74, 51, 14, 79,112,137, 22, 58,156, 11, 22, - 84, 20,184,232,175, 52,190,182,100,106,205,204,121,102,187,185,100,232, 7, 82,153,241,213,175,244,254,206,162,116, 83, 78,204, - 99, 38, 29,245,218,245,226,152,219,188,178, 38,230,146,201, 89, 53, 50, 9, 91, 43, 25,205, 81, 68, 56,238,102,142,247, 7,186, - 77, 71, 24, 60,151, 23, 29,215,151,141, 77,167, 90, 20,241,170, 10, 13,206,235, 97, 61,234,235,203, 25, 24,200, 59,189,239,136, -168, 19, 69,188,163, 60,185, 98,127,115, 65,186,216, 50,252,232, 39,244,111, 62, 39,182, 66,207,204,101,213,162,174, 26, 14,225, -141,139, 95,144,206,125,168,120,255,170,100,184,191,172,251,251, 87,229, 16, 16,126, 93, 92,191, 89,251,249, 6,184,102,190,243, -160, 5,253, 54, 10,183,157, 38,170, 93,117,142,139,206,179,137,186,183, 86, 81,139, 10,222,154,225, 78,219,170,106,183,125,121, -181,113,118, 82,143,121,107, 2,206, 35, 62,172, 66,180, 42,102,177,177,134,207,181, 83, 65,209, 46,201,225, 59,221,153,123, 19, -153,169,154, 88, 79,243, 33, 4,194,146, 93,110,113,146,222,107,204,101, 12,222, 10,247,130, 93, 21,243,249,154,223, 91,154, 6, -122,216,238, 47,205,153, 41, 53,131,202, 20, 90, 74,182, 70,104, 22,193, 10,209, 59,186, 46, 18,187,168, 29,191,141,218, 23,245, - 51,237, 76,192,183,116,184, 21,125, 62,230, 66,206, 90, 88,196,224, 51,181, 22, 90,182,137, 69, 86, 15,126,149, 66,117,141,154, - 50, 69, 38,141,191,244, 14,170,163, 86,193,185,170,225, 49,230,146,195,251,181,200,230,185,176,127,243,192,244,250, 21,114,220, - 19,208, 36,207,133,225, 45,103, 42,245,243,192,150,247,175,134, 5,118,211,206,152,222, 82, 11, 62,237,108,175,238,214,177,251, -163, 20,237,117, 42,223, 78, 59,104, 57, 69,198, 54, 81,229,187, 56,207, 93,109,252,255,173,242,127, 32,252, 9,133, 93, 73,236, - 90,193,119, 61,219,216,227, 69, 45,102, 67,232,113,131,227,161,139,252, 73, 73, 60,243,158,191,245,236, 5,191, 8,145,183,227, +int datatoc_splash_png_size = 109883; +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, 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,220, 4, 28, 13, 17, 1,106, 97,184,198, 0, 0, 32, 0, 73, + 68, 65, 84,120,218,236,189,123,156,101, 87, 89,231,253,125,214, 90,123,239,115, 78, 85,245, 37, 87, 8, 36,233,116, 18, 46,130, +220, 18,117, 16, 39,130, 52,239,188,138,151,129, 49,248,145, 87,188, 48,146,168,140,200,235,171, 6, 28, 71,209,215, 11,232, 32, +140,160,146,136, 50,138,142, 51, 4, 21, 25, 64,129,100, 64,129, 23, 16, 51, 92, 36,220,211,233, 36,144, 91,147,116,186,171,234, +156,179,247,186, 60,239, 31,107,159,234,211,149,234,238,234, 75,117,119, 85,237,223,231,115,186, 78,159,115,246,218,107,173,189, +247,250,173,231,110,233,208,161, 67,135, 14,155, 26,207,248,214, 39, 93,123,233,142, 71,206,238,185,243,222, 59,186,217, 88,223, +176,221, 20,116,232,208,161,195,230,198,220,236, 92,232, 85,238, 99, 23, 94,112,246,194, 93, 95,219,251,209,110, 70,214, 47,164, +155,130, 14, 29, 58,116,216,220,216,177,227,162,222, 69,143,218,190,184,101,174,103,198,117,243,230,164,122,237,255,250,224,167, + 82, 55, 51,235, 15,166,155,130, 14, 29, 58,116,216,220,216,179,231,206,113,140,233,255, 45, 11,135, 42, 63, 46,194,251,174,250, +214,167,116, 66, 95, 71,234, 29, 58,116,232,208, 97, 61, 98,126,190,254,157,225,216, 99,173, 35, 4,125,182,115, 60,183,155,149, +142,212, 59,116,232,208,161,195, 58,196,103,110,253,210,226,194,176,254,123, 4, 68, 12, 81,211, 91,190,233,202,199,119,126, 87, + 29,169,119,232,208,161, 67,135,245,136,122,228, 63, 88, 58,203,182,173, 3,138,178, 58,167, 44,236,255,213,205, 74, 71,234, 29, + 58,116,232,208, 97, 61,146,186, 15,159,113,133,101,102,166,207,236, 76,133,177,238, 15, 31,255,132, 75, 58,105,125, 29,193,157, +142,147,234, 59, 94,252, 60,188,190, 12, 67,137,209, 55,241,111,255,235,159,139,160,221,229,232,208,161, 67,135,211, 7,239,211, + 87,134,195, 26, 77, 9,239, 3,162,113,208,171,138,167, 0,183,116,179,211, 73,234, 43, 19,250,223,254,240,179,152,223,255,215, +220,123,207,183, 51, 63,124, 58, 69,255,207,248,219,127,255,231,250,182,171,103,187,203,209,161, 67,135, 14,167,147,212,227,189, + 33, 36,122,189,130,126,191,164, 44, 45,101,105,127,164,155,153,142,212, 15,143,187,119,207,112,207, 30,216,251,181, 17,119,124, +113,200,158,221, 67,212,190,144,222,246,207,232,187, 95,242,152,238,146,116,232,208,161,195,233, 65, 72,113, 33,196,136,115,142, +179,206,154,101,219,182, 25,172,200,181,143,121,236,197,157,169,182, 35,245,195,224, 39, 62,252,110,250,230,149,204,150, 3, 4, +199,222,187, 19,187, 63, 63,100,236,119,144,138,207,235,187, 95,242,239,186,203,210,161, 67,135, 14,167, 30,123,110,191, 83, 83, + 82, 82, 74,132, 16, 65, 12,174,180,229,204,108,117, 73, 55, 59, 29,169,175, 8, 17, 84,126,250, 19,175,166, 95,124, 23,125, 23, + 41,202, 62, 11, 7, 18,183,125,110,196,129,253, 1,211,127,187,190,235,218,215,233,123,126,186,234, 46, 79,135, 14, 29, 58,156, + 90,104, 82, 66,140,204, 47,214, 52,141,199, 89, 67, 89,153,199,117, 51,211,145,250,145,201,253,167, 63,246,119,108,209, 39, 49, +176,183, 81,184, 89,154, 26,110,255, 66,224,158,187,199,152,234,229,164,240,113,253,187,159,216,177,174, 30, 6,213, 43, 84,117, + 87,251,218,185,225, 31,254, 77, 54,222, 14, 29, 54, 7, 4, 68,232,245, 45,179,115, 5,198, 8,170,122,118, 55, 47, 29,169, 31, +253,214,185,246,150,219,136,227,167, 49,224, 29, 20,166, 71, 76,112,215,151, 19,119,238, 30, 17,229,201, 68,251, 69,125,239,181, +207, 89, 3, 50,218, 57, 69, 70, 71,123, 93,113, 12, 77,191, 26,120,127,251,186,122, 19,220, 63,155,109,188, 39,227,222,235, 82, +111,118, 56,179, 41,221, 10,144,112,206,224,202, 2, 16, 84,245,188,110,102,214, 7, 78, 56,164, 77, 63,240, 76,199, 93,229,202, +170,242,249, 70,152, 43, 21,206,135,243,129,253,227,131, 11, 90, 53, 39, 20,181,192, 89,160, 15,188,156, 59,239,172, 88, 72,255, + 7,137,134,125, 95,135,193,236,152,109,231, 22,196,242,125,250,247,255,225,151,169, 62,251, 91,242,172, 15,134,147, 52,238,171, + 91, 66, 90,237, 66, 12,112, 35,112,147,136,220,208,221, 54, 27,130, 92,141,136,164,105,173, 3,240, 3,192,211,129,157,192,118, +160,154,218,248, 38, 96, 4,220, 6,252,129,136, 92,127, 92, 11,166,136, 30,165, 95, 79,105,239,207, 93,192,163,128,243,128, 6, +184, 27,184, 21,248, 48,240, 46, 17,249,226, 97,142,191, 0,248,102,224,155,128, 43,128, 11,128,115,128,179,129,175, 3,187,129, +219,129,247, 2,127, 57, 61, 7, 29, 58,236,220,185, 99,182,234, 21, 32, 74,221,120, 68, 12, 73, 21, 65, 31,213,205,206, 6, 39, +117,125,213,171, 12, 91,110,190,134,127, 78,255, 17,169,207,193,218,132, 8, 24,147, 95, 34, 96,103,132,177, 1,123, 0,190, 54, +249,206, 10,198,128, 31,130, 24, 48,251, 64, 92,228,220,203,107,206,145,128, 24,179,212, 14, 49,208,144,232,149,191, 70,243,141, +207,214,127,252,198,171,229,170, 55,236, 61, 77,115,117, 53,112,181,170, 94, 13,188, 64, 68,246,117,183,207, 58,150, 70, 30, 78, +102,255,124,148, 67, 12, 48, 3, 60, 9,120,147,170,190, 6,120,158,136,124,224, 36,109, 50, 46, 0, 94, 7,188, 96,133,175, 11, +224,242,246,245,111,129,255,204,225, 43, 44,126,237, 8,167,185,160,125,125, 27,240, 34,224, 23, 85,245,149, 34,242,206,238,142, +232, 0, 48,232,151,151,206, 12, 74,146, 42, 33, 40,174,128,164,137,164, 29,169,175, 23, 28,191,250,125,219,205, 63, 3,230, 15, + 9,156, 71, 18, 33, 98,137, 98,243,223,246,125,192, 18,212,226, 53,191,111,212,210, 36,131, 87, 67, 67,254, 60,191, 74,124,156, + 69,149,156,130, 70,242, 95, 85, 48,146,240,177, 38,154,111,103, 40, 95,208,155, 95,250,180, 53,152,135,155,142,240, 90,142, 93, +192,251, 85,117,123,119,251,108,106,108, 5,110, 86,213, 31, 56, 9,132,254, 4,224,147,135, 33,244,181,196, 55, 0,239, 80,213, +239,235, 46,103, 7,128,217,153,242, 95, 57, 43,196,144, 48, 38, 59,205,181,127,183,118,179,179,129, 37,117,125, 21,134,164, 63, +201,208, 43,209,123, 98, 2, 17,201,178,131,100, 25, 66,200,210, 58,194,208,199, 1,214, 96,206, 62, 15,156,131,168,136, 49,173, +164,158,242,223,104,192,104,251,255, 86, 82, 23, 67,213, 43,106, 4,136, 52, 68,182, 67,113,139,222,252,178,159,228, 59,254,203, +245, 71, 83,101, 30,131,212,246,156,163, 44,186, 19,117,253,196, 25,236, 10,224, 26,224, 53,221, 45,180, 33,241, 53,224,131,100, + 21,245, 39,128, 59,201, 6,164,231, 3,255, 1,216, 49,185,117,128,191, 80,213, 15,136,200,253,199, 73,232,151, 2, 31, 0,206, +109, 63,106,128, 55, 3,127, 77, 86,183,127, 29,232,145, 85,241,223, 0, 60, 3,248,238, 35, 52,121, 55,240,241,246,117, 11,112, + 15,112, 63,112, 0,120, 52, 89, 53,255, 42,224, 49, 83, 99,248, 51, 85,253, 38, 17,249, 82,119,233, 55, 55,102,102,139,127, 7, +145,144, 60, 54, 10, 33, 38,170, 94,143,106, 20,110,239,102,103, 3, 75,234,242, 42, 18, 78, 95,139,212, 2,126, 6,151,102,176, +113,144, 95, 97,176,244,222,132, 1,105,220, 35,122,164, 26,100,178, 78, 9, 82,154,216,169, 15,174, 99,105, 12,105, 4, 58, 6, +234,252,127,109,218,223, 43,249, 31,241, 4, 13,104,241,135,220,252,179,111,211,119,190,106,112, 42, 38, 73, 68,110, 4,158, 3, + 76,171,220, 59,199,176,117, 12, 85, 45,151,125,180,216,146,233,217, 34,242,104, 17,249, 33, 17,121,171,136,124, 65, 68,134, 34, +114,187,136,188, 86, 68, 46, 33,171,191, 39,176,192, 91,142,179, 15, 2,252,201, 20,161,127, 5,120,162,136,188, 84, 68,110, 22, +145,123, 69, 36,136,200,130,136,124, 81, 68,254, 70, 68,126, 78, 68, 30,119,132,123,245, 81, 34,242,124, 17,121,141,136,220, 36, + 34,183,138,200, 94, 17,169, 69,228, 54, 17,249, 75,224,201,237,134, 97,130, 45,192,181,221, 93,177,185,241,228, 39, 61,174,223, +235, 21,207, 14, 49,162, 8, 73,148, 38,212, 88,147, 48, 70,246,116, 51,180,129, 37,117, 0,121,217, 71,174,215,223,125,218,205, + 88,115, 25,201, 8,146,166,108,148,166,125, 31,107,202,153,167,215,227,222,171, 7, 69,159,148, 18, 88,155,101,131,148,208,102, + 1,177,130,185,240,201,152,115, 47, 67,182, 60, 2,233,109,129, 80,147, 22,247,162,243,247, 80,239,253, 82, 69,189, 0,182, 15, + 18,193, 88,100, 33, 81,206, 84,223,207,236,129, 75,244,189, 63,247,237,242,111,254,243,226, 41, 32,246,221,170,122, 99, 43,161, + 79,164,245,147, 65, 46,219,151,181,117,203,201,176,215,183, 33,102, 19,205,194,110, 17,217,125, 58,218, 56, 21,227, 93,214,207, + 85,181, 39, 34,205,178,255,207, 30,195,189,240,243,170,250, 12,178, 83, 29,192, 85,199,217,245, 31,157, 58,246, 65,224, 89, 34, +242,213, 83,112, 47,143, 85,245, 23,128,119, 79,125,124,101,183, 28,110,110,204,205,149,127, 46, 6, 51,172,107, 76,105, 72, 77, + 98, 52, 30, 83, 88,203,112, 88,223,213,205,208, 6, 39,117, 0,249,217,255,253,149, 86,186, 88,121,177,253,211,239,125, 18,227, +240, 67,179, 86, 9, 73,193, 8,140,199,104,189, 8,113, 17,251,152,127,141,187,242,133,216, 75,254,213, 97, 85, 8,250,224, 30, +194,109, 55, 19,239,248, 8, 98, 75, 80, 69, 5,154, 97, 67, 57, 40,175,192,234,123,244,159,175,217, 37, 87,222,224, 79,193,124, +237, 62, 25,141,180,196,118, 77, 43,237, 95,177,194,247,187,129, 27,128, 27, 14, 71, 80,170,250,234,169, 99,111, 20,145, 27,166, +218,189,102,138,228,166,219,124,205,106,188,247, 85,245, 26,224,186,195,180,113,196,126,173,197,120,143, 48,214,235,218,118,167, +253, 27,110,106,181, 42,107,141, 95, 1,222,215,190,159, 57,206, 54, 94, 54,245,254,186, 83, 65,232, 83,248,223,203,254,255,148, +110, 57,220,188,120,210,147, 30,251,244,254,192, 61,191, 14, 53, 81, 2,198, 56,154, 58, 16, 83, 36, 52,158,133,197,166,147,212, + 55, 3,169, 31,113, 33,255,147,231, 92,203,194,248, 77, 4,137, 33, 42,234,107,116, 60,132, 80,131, 83,170,239,122, 37,238,202, + 31, 60,250,198,225,172, 29, 20,103,253,123,204, 35,158, 68,248,196,155,193,196, 76,249, 34,208,164,134, 65,113, 21,251, 6,191, + 2,252,210, 41,152,175,105,242, 56, 46,233, 82, 85,119, 1,111, 91,214,214,114,236, 36,219,240,175, 81,213, 23,136,200, 74, 21, +146,174, 32, 59,237, 1,220,212,134,100, 93,127, 4, 13,194, 78,224,122, 85,189, 66, 68,174, 61, 2,249, 94,207,225, 77, 11,147, +126, 93,173,170,207, 57,133,227, 93,105,172,239, 63, 74,155,107,141,143, 79,223,166,199,113, 31, 92, 57, 69,164, 15, 0,111, 61, +197,253, 95,190, 9,254,122,183, 28,110, 78, 60,246,177,151,244,182,109, 43,223,163,120,234,186,198, 85, 14, 20, 98, 74,184,194, +177, 56,172, 15, 52, 99,253, 88, 55, 83,155,148,212,245,250,239, 30,144, 70,111, 96, 81, 95, 76,148, 26,245, 81, 23, 22, 6, 4, + 15,162, 72, 1,213,243,126, 11,251,196,231, 46, 29,115, 96, 84,243,222, 79,237,225,189,159,222,195,131, 11, 35, 10, 43, 60,254, +130,179,248,222, 43, 47,227,105,151, 62, 18, 0,123,225, 55, 33,229, 28,254,195,175,133,210, 1,154,197,249,145, 15, 20,238, 63, +234, 7,254,239,255, 42,207,122,221, 87,214,108,147,146, 9,239,234,101, 18,225,177,182,113,117, 75,112,211,184,165,109,107,178, + 73,152,150,102,119,146, 61,237,159,115, 24, 98,159,222,108,188,109, 74,178,190,145,131,165, 18,175, 88,214,239,107, 84,117,183, +136,172,228,228,247,234, 21, 8,125,186,173, 73,223,174, 88, 97, 28,167,106,188,219,151, 17,250,190,169,254,157,202,172,118, 79, +157,122, 31,143,227,248,239,152,122,255, 55, 34, 82,159,226,103,255,201,203,254,255,169,110, 57,220,124,216,185,115,135,219,178, +181,250,168, 45,117,219, 56,120,146, 38,172, 38,198,117, 67,240, 1, 99,132,209, 56,253,248,158, 61,119,197,110,182, 54, 33,169, +235,155,174,186,156,122,225, 61, 4,115, 25,202,136, 56, 84,124,157,157,221,156, 69,194, 34,197, 51,126,252, 16, 66,255,216,151, +239,225,231,255,226, 67,236,254,250, 60,189,170,160,112, 6,163,240,233,187, 30,228,237, 31,253, 2,223,115,229,165,252,167,171, +255, 53,131,170,192,156,255, 56,220, 19, 95, 64,248,228, 91, 96,238,252,137,135,125, 66, 5,130,253, 47,192,115,215,144,208,175, + 95, 70, 26, 55, 28, 99, 27, 59,219, 54, 38,216, 13, 92, 43, 34,203, 55, 7,175, 89, 38,221, 78,206,125, 36,155,231,117, 83, 4, +124,237,114, 21,118,123,238,183, 77,145,231,117,170,122,136,170,187, 85,185, 95,179,140,124, 95,176,204,142, 62,221,183, 93,167, +105,188,215, 77,181,247,138,214,137,113,249,181, 58, 21,248,185,169,247,199,147, 59,225,155,167,222,127,168,237,251, 57,100, 59, +251,247,183,247,218, 22,178,173,253, 54,178, 55,254, 91, 78,146, 95,131,227,208,228, 75, 9,248,245,110, 57,220,124,216,182,173, +124,203,204,172,123, 74, 72, 1, 31, 35,174,176, 36, 64,196, 82,148,194,120,113, 52, 28, 46,196,191,233,102,106, 19,146,186,254, +254,183,253,159,140,244, 29, 4, 28, 38, 14, 9, 13,196,144,237,232, 86, 64, 35,114,206,133,184,111,254,225,165, 99,190,124,239, + 62,126,248,247,223,203,253,163,192, 96,166,143,183,150,162,176,148, 86,176, 90, 34, 49,240, 87, 31,255, 10,214, 24,126,253,133, +207,204, 18,251,101,207, 34,126,241,239, 33, 46, 64, 49,155,137, 61,198,128,149, 93,250,143, 47,127,164, 92,245,250,123,142, 99, +145,187,238, 8, 95,239, 90,129,192, 86, 34,167,163,225,250,101,210,229,149,135,179, 75,139,200, 77,173,122,123, 34,145, 94,161, +170,215, 28,197, 30,126,147,136,188,224, 48,237,237, 86,213, 87,180,237, 77,164,221, 93,237, 38, 96, 57, 89, 78, 8,243, 57, 43, +245,111,170,111,255,124, 26,199,187,251,112,237,157,138,164, 64,170,122, 62,240,157, 83, 31,189,231, 56,154,249,134,169,247,159, +105, 99,197,223, 76,206,254, 54,141, 71,182,175,111, 3, 94,169,170,111, 2,254,159, 99,149,236, 85,213,144, 67,218,158, 74, 14, +105,123,202, 20,161,255,156,136,124,178, 91, 14, 55, 23,158,248,141,151,190,114, 48,235,126, 8, 81, 82, 82, 20, 5, 1, 31, 34, +214, 10, 78,132,241, 80,127,230,182, 47,223, 21,186,217,218, 68,164,174,215, 95, 81, 48,238,255, 58,181,254, 2, 65,106,108,168, +137, 89,213, 78, 49,113,119, 19,212, 55,184,199, 92,133,204, 30, 92,179, 94,241, 23, 31,225,203, 95,221, 15, 91,103,217,191, 16, + 64, 34, 86, 96, 96,133,115,102, 28,219,251,142,173, 91,103,121,199, 63,125,153,103, 62,225, 98,118, 61,249, 18,176, 14,187,243, + 42,194,167,254, 20,102,182,128,166,156,160,166,176, 37, 62,125, 31,240,166,227, 24,198,106, 83,198,222, 64,118,212, 58, 38, 66, +111,109,192,211, 27,131, 87, 28,141,124, 68,228, 22, 85,189, 97,138,108,119, 29, 69, 59,112,237, 81,218,187, 73, 85,111,225, 80, + 85,247,164,127, 87, 47,211, 66,188,230, 72,253,155,234,219, 53,167,105,188,175, 57,205, 25,253, 62, 66, 14,101,131,108,155,254, +153,227,104,227,172,101, 82,251,155, 56,186,109,222, 2, 47, 5,158,162,170,187, 68,100,188,138,123,239, 72,185, 28, 62,217, 94, +155,247,117, 75,225, 38, 35,244, 39, 94,250,195,115, 91,202,223,180,165,201,130,151, 10,198,230,148,176,141,247,216, 20, 8,137, + 52, 26,165,183,118,179,181,190,112, 66, 5, 93,244,247,190,229,209,204, 23, 31, 97, 28,127, 1,175, 67, 36, 70,162,207, 75,143, + 19,176, 34, 56, 17,177, 6,113,130,185,224,137, 75,199,222,126,223, 67,252,221,167,238,132, 65, 63,135,185, 25, 3,214, 18, 49, +204,215,145,219,247, 14,217,125,255, 16,175, 66,178,150,155,255,229,142,131, 4,112,206,101,232,232, 0, 16, 90, 21,188, 66, 72, +144, 14, 81,105,174, 5,174,110,165,200, 99, 85,241, 78, 19,220,190, 99,200, 31,127,211,178,115, 31, 14,183,172, 82, 45,123,203, + 97,250,180,107, 25,193,174,166,127, 55,158,166,241,238, 62,157,249,247, 85,245, 29,192,165, 83, 31,189, 82, 68, 22,142,163,169, +109, 83,239, 95, 63, 69,232, 55, 3,223, 71, 78,118, 83,182,127,191, 15,248, 95, 83,191,127, 6,240,198, 19, 28,202, 91,129, 31, +236, 8,125,243,225,241,223,112,201,211,250,179,246, 79, 93,101, 48,133, 37,161, 52, 41, 32,214, 18, 83, 34,164,136, 17,240, 53, +175,254,210,231,239,170,187, 25,219, 36,146,186,190,225, 95, 61,131, 97,188, 25,111, 10,156, 12,177, 41, 75,205,138, 16, 68,112, +162, 88,105,179,195, 69,196,149,152,237, 23, 45, 29,191,103,239, 1, 70, 67, 15, 91, 42,150, 82,208, 77,100, 10, 99, 64,149,135, + 22, 60,190, 9, 60,122,171, 99,126,124,208, 89, 87,230,206,207, 66, 75,189, 8,253, 57, 1, 20, 31,192,241,100,213, 87, 25,145, + 87, 29,107,145,138, 87, 28,225,187,157, 45, 73, 77,138,124, 44,121,127, 31,131,180,184,235, 48,196,202, 42,164,235, 67, 36,224, +195, 56,144,173, 86,115,176,251, 8, 99, 60,166,182,150,247,237, 20,142,247,150,211,245,176,168,234, 31,180, 4, 59,193, 63,136, +200,107, 79,194,134,186,223,254,253, 53, 17,249,149,101,191,187, 31,120, 39,240, 78, 85,253, 53,224, 63,181,159,255,152,170,190, + 94, 68, 62,123,156,231,127, 17,240,162, 86,123,243, 99, 34,242, 47,221,114,184,241,241,216,199,239, 56,183, 63,107, 62,226, 42, +135,113,217,203,125, 84,143,168, 67,131, 10,164, 24, 16, 81, 72, 66, 61, 78,191,215,205,216, 38, 32,117,125,219,213,150, 59,110, +255, 89,230,195,111, 19,165,161, 98,140, 73, 66, 84,197, 39,193, 74, 73,193, 62,162,206,224,108,150,218, 83, 43,134,232, 65,211, +204,121, 91, 7,216,178, 32, 38, 64,133,131,121,223,219,191, 42, 96, 13,139, 67,207, 29,227, 49,213,147,167,186,170, 17,212, 67, + 24,131,217, 2, 26, 5,162, 18,245, 2,254,238,129, 2, 56,166,221,229, 97, 60,193,151, 47,232,215,145, 85,195,147,228, 41,239, +103,245, 9, 59,166,195,204,118,170,234,251,143,243,122, 29, 78, 67,112,162,170,232,227, 34,225,246,183, 87,156,226,241,158, 22, + 82, 87,213,215, 3, 63, 57,245,209,231, 68,228,153, 39,208,228, 60,135,170,224,223,191, 2,161, 47,191, 79,127, 89, 85,159,222, + 94, 47, 67,118,170,251,185,163, 28, 35,109,255, 29,112, 97,187,129,251,113,114,158,121,211, 94,171, 79,168,234,139, 69,228,191, +117, 75,226,134, 38,244,109,213,128, 47,185,210,246,138,170, 64, 13, 44,214, 99,198,117,131,154, 68,227, 61,168, 98,141,165,105, +226,187, 63,251,169, 59,238,235,102,109,131,147,186, 94,127,197, 86,246,220,246,118, 26,217,133,200,136,190, 5,131,224,147, 82, + 71, 71,105, 74, 42,121, 9,232, 78, 34,175, 64, 25, 99,178,250, 29,239, 73, 95,255, 10,230,194,111,202, 42,160, 71,157,205,183, + 92,126, 30,255,223,231,247,230,124,240, 42, 57,247,187,230, 77, 0, 0, 41, 75,250,227, 7, 23,185,252, 17, 7,215,119, 61,112, + 55,212, 7,160, 25,106,187, 35,128,132, 98,128,254,252,154,212,171, 22,145,215,180, 82,228,196,254,190, 26,231,181,149,200,105, + 39,167, 54,244,234, 88,177,239, 36,252,118, 61,141,119, 53,132,254, 6,114,206,247, 9,110,231,225, 33, 97, 39, 74,234,171,149, +138,126,111,106, 19,246,172, 99,184,127, 67,219,239,219,201,133,104,174, 39, 39,207, 41,200, 37,102,111, 80,213,143,138, 72,151, +227,123, 3,226,210,199, 92,220,175, 6,242, 41, 87,217,109,174, 44, 16,107, 24,215, 99, 14, 44, 44, 0, 17, 81,161,110,198,148, + 69,129, 51,150,122,152,126,177,155,181, 13, 78,234,250,218,111,126, 50, 15,196,255, 73,144, 11, 41,236,144,158,201,228,217, 36, +165,137, 61,122, 50,166, 47,223, 43, 63,253, 79,239,213,215, 94,249,235, 36, 17, 4,201,158,239, 2,206,160,247, 29,212, 20, 26, + 35,252,210,243,174,228,187, 62,247, 46, 24,123,168,202,252, 59, 90, 82, 79,100,117,254,194,144,167,126,195,163,120,209,183, 63, + 97,233,216,116,255,231, 81,245, 16,155,252, 67, 85, 32, 25,144,123,120,230,142,102,173, 38,171, 37,246,105,167,186,171, 57,198, +208, 54,178, 10,252,120,195,146,214, 99,185,215,117, 61, 94, 85,253, 67,224, 39,166, 62,250, 26,240,184,150, 36, 79, 4, 95, 5, + 46,158,250,255,106,147,123, 76,255,238,162, 19,184,151, 63,168,170,191, 2,252,102,251,209, 12, 57, 75,222,143,118,203,226,198, +194,206,203, 46,170,122, 51,242,105, 87,185,139,141,203, 26,208, 38, 6, 22, 22, 23,105,124, 77, 81, 88, 98, 76,196,148,114,129, +205,104,191,112,235,167,238,250, 76, 55,115, 27,148,212, 21,132,223,121,234,139, 25,199, 63, 34, 73,160,111,135, 84, 70, 80, 85, + 70, 81, 73, 58,195,172,253, 34,125,249, 30,249,137,143,127,185, 93, 50,190,130, 40, 40,138, 17,193, 8,244, 6,196, 61, 31,198, +237,219,131,108,223, 1,192,119, 62,117, 7, 55,252,228,179,120,249, 31,127,136,225, 67, 53,244, 42,176,217,158, 78,227, 97, 56, +226,105,143, 59,159,183,255,252,115,153,233, 21,185,105, 63, 34,126,238,175,144,178,202,185,224, 53, 65, 74, 89, 74,119,250,201, +227,176,167, 31, 43,110,154,146,148,118, 29,199,241, 55,172, 70,221,191,129,176,110,199,171,170,127, 2,252,216,212, 71,247, 1, +143, 89,158, 55,254, 56,241, 89,178,195,219, 4, 15,173,242,184,233,223,157,104, 57,204,119, 79,145, 58,156,164,122, 6, 29,206, + 28, 92,114,233, 69, 69,111,198,124,180,234,151,151, 27, 43,168, 85, 66,138,140,199, 99,134,245, 16, 17, 37,161, 68, 85, 16, 37, + 69, 79,221, 72, 87,220,103, 29,227,232,222,239,175,189,242, 26,188,121, 51,152, 49,115,133,167,111, 5, 69, 89,140, 96,100,134, +129,253,107,206,149,111, 62, 72,232, 64,143, 91, 49,217,204, 13,100,162,118, 14,194, 2,254,195,175, 59,164,249,151, 60,251, 9, +124,244,183,190,159,151,127,247, 55,114,201, 89, 21, 61,245,204,154,200,183, 94,126, 14,111,252,169,239,224, 31,127,227,106, 46, + 57,255,224,218, 21, 62,241,102,244,161, 61, 80, 84,100,143, 14,133,208,198,195,139,222,114,134,206,243,225,188,206,215,123,255, +118,173,211,241,174,134,208,255,114, 25,161,239,109, 9,125,120,146, 78,177, 60,131,219,182, 85, 30,183,237, 56, 54, 2,135,195, +114, 85,251,197,221,146,184,113,176,227,210, 11,109, 57,144,247,247,102,202,167,218,194, 17, 72,160,194,104, 52, 98, 56, 26,229, +164,156, 34,164, 4,165,171, 40,139, 10,139,187, 47,212,230, 67,221,236,109, 80, 73, 93,175,191, 98,192,253,241, 55, 73,210,176, +197, 66, 33,130, 87,101,232, 45,165,169, 40,204,111,211,243,191, 36, 63,116,203,161,121,164, 93,186, 21, 49,119, 17,211, 35, 80, +141,189,210,142, 17,160,154,101,124,231, 63,246,194, 71, 94,143,123,198,203,151,126,254,164,139,207,225,117, 47,190,138,223,122, + 81,224,222, 7, 23, 41, 11,199, 5,103, 61,188, 70, 70,252,220,223, 18, 62,243, 86,232,181, 21, 87,141,205, 14,122, 49, 9,234, + 61, 70,223,117, 42,180, 89,199, 73,154, 19, 41,104,151,170,110, 63,205,113,214,203,177,123,170,127,171,146,214,218, 88,244,245, + 58,222,163,141,237,175,129,231, 77,125,244, 64, 75,232, 7, 78,226,105,254, 39,240, 7, 28, 12,101,123,122,251,217,209,240,244, +169,247,119,156, 96, 31,158,180,236,255,159,235,150,196, 13, 67,232,226,250,250, 87,213,160,248,118, 83, 20, 4,245, 56,231,104, +124,195,252,226, 2, 36,197, 86,142,168, 1, 33, 91, 62, 5, 3, 65,126,242, 43,159,191, 75,187, 25,220,168,146,250,136,115, 80, +182,131, 4,146, 42,195,168, 12, 67, 73, 41,194, 28, 47,144,159,249,216,117,114,237, 45, 15,171,142, 38,215,222, 50,164,146, 55, + 32, 90, 48,142,218, 42,241, 5, 99, 68, 6,115,196,207,252, 25,254,166, 95, 66,135,135,214,144,232, 21,142, 29,231,111,125, 56, +161,251, 17,241,227,127, 64,248,208,111, 32, 85,137, 88,139, 8, 89, 90,247, 30, 82, 42, 32,190, 71,158,115,195,157,107,188,216, + 47,119,250, 90,173,102, 96,121,152,216, 53,103,216,125, 48,221,191,237,109,218,214,227,149,210,215,195,120,143,116,141,223,181, + 2,161, 95, 38, 34, 15,157,204,243,136,200,215,128, 15, 79,125,244,178, 85, 30, 58,253,187,155, 79,176, 27,203,115, 1,124,162, + 91, 18,215, 63, 46,185,244, 34,113, 21,111,113,133,249, 62, 36, 39,220, 84, 85, 98,140, 12, 71, 35,154,166, 70, 37, 17, 99, 32, +165,236,155,220,248, 26,239,155, 97,168,121,103, 55,131, 27,153,212, 47, 24,221, 75,223,238,161,144, 1,139,126, 64, 74, 3, 6, + 50,207,156,189, 74,174,253,167, 27,143,172, 3, 40,223,140,101, 63,117,112,248,148,227,213, 45, 57,101,236,204, 28,233,182,191, +163,249,171, 31, 38,222,250, 87,232,129,175,173,188,192, 46,238, 37,221,118, 19,205,223,188,152,240,201, 63,130, 94, 15,172,203, +201,102, 68, 64, 10, 97,228, 5,171,160,188,114,141, 23,251, 73,209,148,105,220,184,202, 5,252, 70, 14,117, 22,187,238, 40,146, +238,169,198,141, 28,234,148,118,221, 42,230,226,186,117, 60,222,195,141,235,125, 28, 90, 63, 96, 34,161, 63,180, 70,167,156,206, +183,190, 75, 85,127,245, 40,253,251, 85,224,217, 19,197, 21,240,199, 39, 48,214,151,240,240, 76,120,255,208, 45,137,235, 31,182, +226, 55, 76,201,143, 24,103,179, 89,210, 64, 82,101, 97,113,129,186, 30, 83,150, 21,101,217, 3, 17,172, 56,140, 88, 80,197, 36, +249,197, 47,223,218, 21,110, 89,239, 56,162,250, 93, 94,240,185, 70,175,255,182,103, 50,246, 63, 75, 50,143,162, 52,159,160, 95, +188, 69, 94,252,161,163, 22,176,144,159,250,240, 62,253,131,167,191,132, 58,189,141,133, 16,112, 6,172,149, 44, 98, 3,131, 45, + 16,246,227, 63,252,155, 72, 57,139,156,253, 56,204, 89,151,130,235, 65,242,164,135,238, 68,247,222, 10,227,135,160, 40, 96,102, +202, 39,104,226,236,222, 24,165,162, 68,195,111,201,247,252,233,231,215, 80, 58,223,197,195,235,139,239,227,216, 60,223,175,229, +208,220,235,239,111,203,140,222,180,138,243, 95,221,146,229,154, 56,156,137,200, 62, 85,125, 13, 7,195,245,118,169,234,245, 43, +149,104,109, 9,125, 53,101, 79,207,216,241, 30,230,188, 31, 0,158,185, 2,161, 63,120, 2,109,234,212, 28,203, 10,243,254, 62, + 85,253, 91, 14, 38,180,249,101, 85,253, 86,114,216,218, 71,201, 54,243,109,100,149,251,203,150,105, 71,222, 40, 34, 95, 94,118, +190, 61,228,194, 47,255, 64, 86,165, 63,216,142, 99,158,156, 83,254, 81,228, 80,188,151,114,104,149, 57,128,183,138,200,219,187, + 37,113,125,227,210,199, 95,244,203,166,224,149, 98, 13,174,112,109,234,215,196,120, 60,102,113, 52,194, 8, 84, 85, 15, 17,161, +137, 1, 21, 65,196, 96,196, 36, 26,123,125, 55,131, 27,156,212, 1,228,218, 15,223, 9,188,252,184, 90,255,169,143,190,157, 55, +126,203,235, 9,250,114, 14, 52, 35,230, 74,193,146,119,143, 40, 20, 5, 82, 20,160, 9,125,224,211,132,251,111, 97,146, 86, 78, +140, 3, 87,194,204,236,178,149, 18,104, 34,154,250, 96,108, 5,225, 3,140, 70,175, 58,193, 5,253,120,108, 72,215, 30,139,157, +184,205,150,118, 45, 7, 43,151, 77,136,238, 38,178,186,122, 90,149, 63, 81,243,239,226,160,109,250, 21,107,124, 47,220,192,161, +101, 80,175,105,213,240, 55, 76,245,109, 23, 89,149,190,189,149,196,247,113, 24, 27,252, 58, 24,239,114, 60,115,217,255,207, 6, + 30, 56,134, 91,227,114, 17, 57,158,210,191, 47,106,137,248,105, 83,115,124, 52,243,199,251,128,159, 95,225,243,139,129, 31,105, + 95,199,130,143, 3, 47,233,150,195,245,141, 75, 30,115,225, 75,109, 41,191, 42, 14,172,117, 24,107, 81, 18,227,113,205,226,112, +145, 16, 60, 69,225,114,110, 47,205, 41, 62, 20, 72, 49, 98, 18,191,243,229,207,222, 61,238,102,113, 19,144,250, 9, 73,128,160, + 90,132, 95,192, 20,231,209,232, 11, 57,208,140,181,103,145,158,205,106,248,137,236, 34, 6,202,222,145,171, 89, 40,144, 20,234, + 72, 58,208,208,127,228,249, 96,227, 45, 4,247,124,121,193,141,205, 41,156,179, 91, 90, 66, 63,102, 79,123, 17,185, 97, 42,129, +205,246, 99, 88,196,215, 28,173,180,254,130, 86,186,222, 57, 69,182, 43, 21,187,217, 71,206, 72,246,234,245, 58,222, 51, 5, 34, + 50,223,110,158,126, 15,248,161,163,252,220,183,191,123,197, 73,136,147, 7,184, 19,120, 29,240, 71,167,161,158,123,135,147,136, +139, 47,189,240, 7,109, 37,111,204, 42,119,197,186,108, 89,213,164,140,235, 17, 62,248,246,126,131,166, 25,163,152,236, 24,167, + 16, 53, 96,162,253,157,110, 22, 59, 82, 95,221,162,117,237, 45, 94, 95,245,204, 31,225,220,241, 87, 9,252, 66,113,192,211,212, + 9, 51,112,185,138,155, 5, 17, 89,185, 62, 85, 43, 36,105,204, 5, 91,116, 24, 49,195,134,254, 57,219, 97,208,251,107, 56,240, +163,242,188,119,206,159,130,121,186,169,149, 76,111, 90, 94,191,251, 56,137,253, 38,178, 58,255,106,142,174,198,190,177, 61,255, +141,107,126,173,114,137,214, 43, 91, 18,190,230, 8,115,113,109,251,219,117, 61,222, 51,136,216,247,145,243,176,191, 17,120, 33, + 57, 83,220, 5,228,122,234,251,128,175,144,157,226,254, 88, 68,142,228,241,254,104,224, 91,200, 85,223,158, 6, 60,162,213, 56, +156, 13,140, 90, 18,191,171,125,125, 4,248,239, 39,105,115,208,225,116, 74,232,151, 94,124,149,148,233,191,137, 21, 16, 69, 68, + 16, 17, 66, 8,140,198, 67,130,143,244,202, 62, 74,194, 58, 75,212,132,106,162, 48, 14,213, 4,162,239,184,237, 95,238,123,160, +155,201, 13,178,158,156,202,147,233, 31,126,235,119,220,113,255,240,230,139,183, 87,132, 90, 9, 78,160,103, 17,103,178,228,110, +166,186,163, 10, 17, 52, 36, 24, 71,172, 79, 20,133,112, 32,194,150,139, 31,249, 66, 62,251,148,255, 33,175, 90,243, 68, 51,107, + 63, 39, 89, 74, 91,174,194,222, 77,174,110,118,211,105,236,215, 68, 29, 62, 93, 19,253,166, 85, 86,131, 91,119,227,237,208, 97, + 93, 74,232,151, 92,124,174,233,235,253,198, 37,138,162,192, 21,110, 41,221,118,221,140, 89, 28, 45, 98,196, 82,181,223,133, 20, + 8,147,128, 36, 53, 68,241,216,196, 99,246,252,203,222, 47,119,179,217,145,250,241, 45,234,191,247, 45, 91,232,201, 15, 48,210, + 95, 36,233,142,156, 26, 86, 21, 99, 18,134,131, 36,157, 48,164,100,200,193,112, 96,205, 94, 28,175,167,223,251, 19,249,177, 15, +222,219, 93,186, 14, 29, 58,108,106, 66,191,248,194, 25, 41,249,164,169,244,114,177,208,235,245,176,214,208,132, 6, 31, 3, 77, + 93, 83, 55, 99,140,133, 94,217,167, 42,123,140,155, 17, 73, 5,131, 67,147,162,198,223,126,215,103,190,190,179,155,205,142,212, + 79,156,220,223,243,157, 21,119, 61,244, 24,124,250,126,144,103, 16,245,145,164,180, 13,165, 4,241, 56,217,143,149,251, 72,250, + 41, 74,249, 75, 66,239, 86,121,233, 7, 23,186, 75,214,161, 67,135, 14,112,201,229, 23,253,147, 22,233,155,196, 9,214, 66, 81, + 58, 66, 12,120,239, 81, 77,120,239,241,161,193, 90,203,160, 63, 64,128, 58, 4, 68, 44, 6, 67, 74, 9,209,244,252, 59,111,221, +251, 55,221,108,118,164,126,242, 73,254, 3,207,116,236,193, 97, 31,180,244,102, 18,251,154,176, 82, 98,155, 14, 29, 58,116,216, +236,184,244,242, 75,158, 43,101,122, 23, 46,251, 25, 39,137, 8,224, 67, 32,198,144, 29,227, 84, 81, 77,244,170, 30, 51,131, 89, + 66,140,140,125,141, 53, 22,162, 33, 37,159, 36,202,224,142, 47,220,215, 57, 73,110, 32,184, 51,165, 35,242,172, 15, 6,160,115, +218,233,208,161, 67,135,163,173,151,165,254,186, 20,134,162,176,120,245,164,168,168, 70, 98, 10,249, 21, 3, 70, 12, 69, 81,210, + 31, 12, 72,170,132, 24, 48, 34, 40,130, 36,144,100,223,120,199, 23,238,233, 8,125,131,193,116, 83,208,161, 67,135, 14,235, 7, + 59, 31,115,241,119,137,229, 41,185, 12,166,162, 41, 1, 74,211, 52, 52,190,201,234,247,164,168, 42,185,254,181, 33,196, 64,237, + 27,140, 45,112,216, 92,204, 37,217,223,237,102,115, 3,110,248,186, 41,232,208,161,195,153,138, 71, 61,234, 2, 65,196,137, 8, +154,179,166, 20, 89, 24,145,210, 58,193, 89,169,129,241,238,221,119,110,138,244,166, 23,239,188,168,111,123,178,160, 38, 25, 99, + 1, 11,170,145, 16, 3,195,225, 16,208,108, 43, 7,156, 45, 40,202,130,194, 21,109,121,213,196,160,156, 33, 5,197,143,253,109, +119,124,225,238,203,186, 59,108,227,193,117, 83,208,161, 67,135, 51,138,184, 46,190,104,139,177,233,121, 16,175, 78,170,223,105, +109,105, 10, 87, 18,124, 36,132,128, 49,194, 96, 80, 48, 24,148, 20,165,160, 36,182,157,253, 88,198,227,230, 99,163,161,255, 7, +223,240,219, 95,189,235,171, 15,110,196,185, 17,167, 55, 36, 73, 38,105,194, 26, 71, 34, 18, 83,100, 52, 30, 17,130,207,246,114, + 85,196, 8,214,102,245,123, 74, 57,118,189,176, 5,170,137,232, 19, 41,242,171,221,157,214, 73,234, 29, 58,116,232,176,166,216, +177,227,194,170,234,187, 59, 19,254,188, 16, 26, 98,128, 94,111,192,236,236, 28,170,130,247,158,126,207,177,101, 75,159,162, 4, + 37,225, 83,160,174, 27, 70,227,154,241,216, 19, 70, 12,155, 49,143,221,115,251,157, 95, 61,145,190, 92,112,225, 35, 29, 54,153, +187,247,220,215,156, 17,115,179,243,209, 79,208, 66, 63,155, 76,196, 22, 6,235, 44,222, 55,132,216, 48, 26,143,113,198, 97, 36, + 39,160,177,214,226, 92, 73,233, 10,114,238, 46,143,179, 5, 86, 29,205,200,163,145,179,238,250,202,221,251,186, 59,110,227,161, +179,169,119,232,208,225,140,129, 45,120,179,138, 63,207, 55, 53,190,137,168,146,237,196,105,140,173, 34,229, 64,112, 61,240,212, + 44, 54, 67,230,199, 67,134, 77,205,208, 55,212,201, 35, 5,184,129, 12,122,115,246,139, 59, 47,187,232,188, 19,233, 75,146,176, +189, 49,163,250,188,203,182,127,228,188,157,103, 63,255, 17,151,156,119,214,233,156, 27,181,250, 51,137,196, 36,147, 99,136, 30, + 17, 67,140,137,194, 22,148, 69,129,136, 80, 21, 61,250, 85, 31, 35, 66,104,237,237, 34, 2,170,164,152, 0,253, 84, 71,232,157, +164,222,161, 67,135, 14,107,138,139,118, 92,240, 3, 69,165,255, 61,120, 79, 83, 7,140, 41, 40,202,146, 16, 2,101,223, 48,187, +109,144,201, 76, 99,235, 34,150, 64,192, 90,139,166, 68, 76, 96,141, 69, 99,130, 36,104,163, 95,107, 22,211,165,187,111,187,235, +184, 60,188,207,191,240,220,153,198, 14, 23,140,115,168,230, 51, 10,242,113,137,242,251,162,230,102,163,246,158,251,239,252,186, +158,138,185,217,113,249,133,207, 78, 38,222, 20, 37,226,156,193, 56, 67, 74,121, 30,234,241,152,178, 40, 17, 32,166, 72, 85, 86, +136, 8,117,168,137,170, 88, 99,113,198, 66,178,164,168, 72,228,249,119,124,241,238, 46, 54,189, 35,245, 14, 29, 58,116, 88, 27, + 92,120,209, 5,151, 88,151,118,167,228, 9, 33, 18,163, 96,140, 65,140,197,251, 64,175,239,216,118,222, 22,112, 66,227, 27, 82, + 74, 36, 73, 8,138,115, 14, 35, 14, 69, 49, 98, 72, 33,219,222, 37, 9, 26,204,251,195, 98,250, 55,183,239,190,235,152,201,247, +145, 23,158,183,101,108, 22,247, 91,231, 72, 64,210,136,170,146, 52,181,206,104, 50, 52,152, 55,131,249, 31, 6,217, 39, 72,174, + 87, 17,115, 10, 86, 43,182, 49, 98,239,184,239,107,247,159, 80,168,238,206,203,118,152,100,195,125, 81,226, 57, 73, 34, 69, 97, + 17, 43,196, 24,115,198, 56,160, 42,122,132, 20, 0,165,176, 5, 34,185,228,106,147, 60, 32,148,174,192,164,130, 16, 18, 18,101, +238,142, 47,126,181, 75,228,181, 65,209, 57,202,117,232,208,225,180,226,226, 29,143,174,140,229, 99, 73, 35, 41, 2,201,128, 42, +222, 7, 84, 61, 41,129,246, 10, 98,204, 14, 96,133, 43,137, 41, 16, 82, 64, 1,193, 34, 98, 80, 77,132, 24,115,121,200, 86,245, + 44,162,207,177, 61,243,114,114, 53,186, 99,149,121, 6,153,188, 19, 86,108, 62,143, 33,199,124,139, 71, 97, 32,164,151, 37, 77, + 47, 11,154,213,226, 41, 42,201,231,106,104,170,144,188, 48,123,246, 76,127,225,129,197,227, 46,107,154, 36, 62, 87, 13,231,228, +177, 10, 74, 46,155,234,140,165, 17, 65, 83,162,241, 53,214, 58, 92,171,130,143, 49, 34, 98,112,166, 32,145, 16, 50,201,147,244, + 31,238,248,226,215, 58, 66,239, 72,189, 67,135,205,129,243, 31,113,190, 56, 87,156, 51, 30,141, 31,159, 82,154,233,245,123, 11, + 70, 76,227, 99, 60, 80, 85, 69,163, 73,235,152, 18,193,123, 84,149,170, 44,176,133,107,171, 98, 69,124, 93, 51,232, 87,104,140, + 88, 99, 49, 63, 3, 42,183, 0, 0, 32, 0, 73, 68, 65, 84,214, 50, 92, 28,246, 67, 84,231, 10, 17, 77,178,197, 88, 67, 89,149, +101, 8,113,102, 56, 28,131,128,136, 60, 40,194, 3,136,204, 11, 44, 2,227,251,239,223,187, 41,146, 49, 25,199, 27, 52,197,243, + 68, 5,103, 29, 77,244,196,148, 80, 37,137,154, 95,181,198, 60, 59, 37,174, 26,142,106, 92, 52, 20,165,195, 88,131,147,162,141, +197,206,113,215, 19, 91,243, 68, 98,143, 36, 98,138,136,147,223,189,244,177, 23,223,124,219, 23,239,248,204,177,245, 76, 43,128, +148, 82,102,105,114,157,242,194, 26, 92,114,196,152, 19,189,104, 74,164,182, 72,138, 38, 5,129,168,160, 33, 75,247, 33, 25,123, +188,115,179, 99,231,197, 70, 77,122, 51, 70, 17, 85,210,196, 8,128, 34, 24,202,118,131, 3, 80, 85, 21, 72,238,111,212,136,106, +196,136,197,136,193,136, 65, 69, 72, 26,187,216,244,142,212, 59,116,216, 28,120,226,147, 46,126,238,246,237,179,239,216,186,101, +224,172,201,229, 43,123, 85, 15,235, 28, 41,101, 53,175, 53, 66,104, 60,201,123,138,210, 49, 59,211,199, 89, 67, 12,145,144, 34, +222, 7, 92, 89,230,242,151, 38,151, 20,110, 70, 53, 99, 31,104,106,207,184, 14,152,194, 81, 22, 37,190, 9, 44, 44, 46,144, 82, + 34,196,172,210, 77, 40,209, 67, 8,158, 11, 30, 61, 71, 8,233,190,224,227, 59,234,186,254, 96,211,248, 79, 55, 65,239,218,123, +239, 67, 27, 70,210,186,104,199, 5,207, 78,201,191, 36,197,136,193,162,170,100, 95, 46,249,115, 35,230,101,123,247, 62,184, 15, +248,181, 71, 95,244,168, 47,105, 72,151, 71, 11, 38, 70, 84,220,146,212, 58,113, 2, 19, 12,198,146,109,205, 6,108, 97, 17, 99, + 16, 53, 80,242,129, 75, 46,187,240, 17,183,127,229,174, 85,167,158, 86,161,135,176,164,114, 55,198, 76, 28,205,200,241,224,145, + 16, 35, 41, 37, 52, 41,162, 2, 42,237, 70, 3,196, 2, 72, 42,108, 49, 28,115,124,137,219,140,147,103,106, 33,231, 97, 12,169, +205, 8,151, 95,134,186,169,137,209,163,104,171, 73,104, 9, 61, 70,156,113,121, 3,160, 89,186,143, 49, 65, 52,136,152, 15,116, + 79,250,198,134,108,217,178, 69,207,232, 14,138,108,170, 62,172,245,185, 78,197, 88, 78,246, 57,214,162,207,135,180,169, 74, 57, + 40,120,228, 5,115,204,244, 29,115,115, 21, 91,182,244,153, 27, 84,108,223, 58,195,220,150, 25,182,204,246, 25, 84, 37,133, 8, +146,148, 94,207,145, 16, 82, 72,248,166, 21,168,173, 65,141, 16,146, 82,135,196,184,246,248, 24, 73, 33,226, 67,160, 30,213,212, + 77,131, 79,138, 26, 3, 24,124, 8,140,154,154,186,110,109,201, 41,171,142,125, 83, 19,147, 65, 48,104,130,197,225, 34,251, 15, + 28, 96, 97, 97, 72, 61, 14,132, 38, 17,189, 2, 14, 73, 22,163,150, 44,242,175,253,188, 30,207,113, 15, 63, 70, 17,163,136, 73, +104,138,153, 39, 17,146,146,213,237, 72, 38, 42, 49, 72, 38, 55,168, 18,182, 50,184,202, 33, 70,153, 44, 92,206,184,156,231, 92, +192, 89, 71, 74,113,233,124,154, 32,197, 68,242,137,212, 36,252, 80,179,138,255,168, 99, 17, 26,134,140,100, 49, 75,198, 34,128, + 98,141, 33,106, 34,164,152,107,145,167,124,255,228,151,144,146,146, 82,206,199,174, 73,209, 0,115,213, 22,182, 84,219, 64,142, +109,169, 21, 3,166, 82, 76, 97, 8,120,154,212,224,140,165,116, 14, 4,134,163,133,188, 9, 12, 1,107, 45,115,131, 45, 36, 77, +212, 77,157, 53, 11,166,205, 39, 39,130, 68, 67,140,130, 68,193,134,130, 92, 29,115,243,173, 77,157,164,222, 97, 67, 17,122,230, + 47, 93,179,243,172, 7, 50, 95,113, 78, 0, 13,194,222,123, 61,119,206,239,195, 56,197, 57,161, 40, 13, 91,102, 43,182,111, 31, +176,109,219, 12,103,109,159, 99,203, 92,143,115,182, 12, 56,247,220,109,244,122, 14, 81,240, 17, 82,214,189, 18,130, 39, 38,197, +135,132, 15,145,218,123,188,143,212,141,103, 56, 28, 83,215,117,150,176, 68,192, 56,154, 20, 25, 55,158,218, 7,234,166, 33,132, + 72, 82, 69,147, 96, 93,217,122, 93, 27, 20,165,156, 29,112,214, 76,159, 16, 18,245,120, 76,240,145, 20,148,122,212,208,140,106, + 36, 10,104, 1,106,214,108,110, 79,214, 53, 49,214,224,138,108,159, 86, 12,154,132,164, 10, 24,172, 53,185,222,247,210,185,242, +119,146,114,182,180, 20, 35,130, 48, 9,239,138, 33,107, 56,156,201,213,199, 48,146, 77, 31,166,173, 68,102, 11,130, 68,130,122, +130,141, 16,143,252, 12,168, 42,200, 65,239,250, 86,220, 69, 16, 42,215,163, 14, 53, 77,244,128, 98,104, 51,221,137,180, 53,162, +245, 32,161, 71, 90,187,182,203,159, 29,163,248,164, 70,243,165, 52,237,166, 33, 23, 65,207,234,253, 24, 40,139,138,148, 34, 77, + 82,170,162,202,241, 0,170, 36, 5,213,236, 7,160,228, 77, 70, 30,138,100,109,194,105,126,254, 58,242,222, 36,164,126, 38, 93, +232, 78, 50,223,184, 15,233, 74,125, 21, 32,134,134,208, 52, 40,144, 2,248,156, 74,147,197,253,158,187,191, 58,143, 43, 29, 69, +229,208, 20,233, 15, 74,182,109,157, 97,235, 92,159,185,217, 30, 91,102,123,184,194, 81, 58,203,182,109,125, 74,103,169,155, 92, +254,210, 21,150, 36, 74,244, 1, 98,130,164,104, 84, 26,239,105,116, 76, 72,145, 38, 36,154, 16,168, 67,150,236,189,143, 24, 99, + 49, 62, 49,174, 71,132,148,112,182,164, 42,251, 24, 99,177, 14,138, 10,108,145,227,142,163,129, 96, 71,152, 4,133, 24, 98,109, +240, 99, 15,152, 21, 37,178, 99,189, 94, 39,123, 3, 32, 34, 56,103, 40, 92, 38,243,168, 41, 11,188,217,163, 60,139,168, 43, 92, + 36,145, 44,121,135, 24,177, 98, 80,201, 69, 74, 98,136, 36,200,164, 46, 22,139,224,163,167, 44, 75,140, 24,172,205,118,101,141, + 9, 91,230, 77, 0,122,228,126, 59,231, 72,169, 64,116,180,100,167,238, 21,125,140, 53,248, 58,144, 52,229, 62,144, 55, 38, 22, + 67, 85, 84,140,105,136, 49,171, 2, 84, 20,146,102, 82,159, 56,184,173,122,242, 20,177,121, 94, 98,204,100,110, 69, 0,105,203, +171, 54,173,250, 63,100,239,127, 99, 9, 33, 16, 53,225,156, 67, 48,237, 70, 66,137, 65, 91,243,132, 34,106, 57, 90, 55,214,242, +121,238, 8,189,147,212, 55,236,166, 98, 35,144,237,122,121,248, 15, 71,228,147,191, 19,155,172, 17,200,255,228, 47, 20,139, 76, +132, 36, 49,248, 70,241, 62, 49,127, 96,145,187,239,153,199, 24,193, 26,131,115, 22, 99,161,116,142,237,219, 6,204,204,244,240, + 33,130, 38,102,103, 43,182,110,233, 97,157, 32,173, 4,152, 0, 31, 34, 9, 37, 73, 34,132, 28, 42,149, 73, 66,193,129,106, 22, +237,172,181,136,117, 88,113,196,148,136, 33, 96,140, 69,147,160, 41,247,203, 88, 75,217,235, 49,168,122,244,202, 1, 7, 14,236, + 39, 88,143,137, 37,218, 64,138, 7, 71,123,172,211,186, 54, 18,189,182,182,243, 28, 79,158, 61,179,181,213, 48,200,138,164,147, +249, 81,137, 49,135,109, 85,182,204, 18,124,106,157,225,164, 53,101,200,144,194,186,214,185, 13,122, 85, 15, 49, 96, 17,196,130, + 45, 12,206, 37,162, 63,114,223,141,181,136, 17, 82,157, 16,147,165,237,210, 58,154,166,206,234,238,214, 44, 48,201,179, 46, 86, +114, 70,250,137,179, 92,123,223, 20,214,230,235,117, 12, 98,186, 8, 36,147, 72,100,123,253, 68,250, 55, 38,111,134,162,207,100, +174, 33, 98,157,195, 26,151,231,148,236,151, 97,140, 96, 44, 24,211,110,142,178,211, 33, 70, 77, 43,169,203,134,211,182,157,204, +254, 78,174,213,242,190, 31, 78,203, 57,125,109, 87, 58,102, 83,145,250,102,179,151,111, 4, 50, 95,115,251,246, 26,182, 59, 89, +206, 90,109,233, 20,197,228,111,245,144,135,241,208, 85, 54, 38, 5, 18,214, 26,172, 51, 84, 10, 41,101,217, 43,165,172,242,108, +234,134,253,243,227, 76, 10,210,218, 97, 5,156, 53,228,226, 35, 6,231, 90,245,178, 40,101, 97, 49, 86,136, 26,177,206,224, 10, +131, 24,197, 22,134,232, 3, 62, 54, 36, 1, 49,134,228, 12, 73, 3,170,138,115, 37,170,210, 74,132,218,158,207, 98,108,137, 10, + 52,120,180,202, 74,251,104, 3,210, 8, 18, 45, 26,109,214, 36,203,218, 93,151,213, 28,163, 10,193, 71, 98,144,118, 17,109, 85, +216, 71,114, 8,152, 56,172,197,132, 24,144,165,100,152,185, 13,107, 45,232, 36,134, 61,182, 57,208,193, 96,114,184,155,228,128, + 48,211, 18,123,108,210, 97, 79,167,154, 19,186,140, 24, 17,147,226,108,110, 63,161,248, 16,151, 28, 32, 53,229, 16, 59, 17, 33, +105, 98, 52, 30,161,121, 47,183,212,142, 17,147,199, 40,122, 84,237,192,210,249, 37,129, 85,146,228,246, 49,121, 51,104,108,145, + 57, 90,179,207, 64, 81,150, 56, 91, 32, 45,121,167,148,235,167, 39, 5,163,130,136,109, 55, 5, 6,103, 44, 18, 33, 45, 51,205, +108, 68, 18, 63, 18,241,174,166,127, 71,210, 48, 29,235,152, 87, 59, 31,211,253,155,108, 30,142,119, 67,224,206,132, 9, 63, 29, +231, 95, 75,219,114, 71,226,167, 95, 34, 23, 14, 37,109, 57,132,192, 15, 37,237,233,239, 15, 93,232,229, 97,204,162, 83,141,136, +145,246, 23,109,184,147,129,130,105,169, 44, 75,198, 10,120,159,104,234,180, 36,137,129,100,165, 64,235,128,101,140,180, 47,176, + 78, 8,201,131,182, 9, 86, 68,145, 34, 75,130,182,112,244, 6,137,162,172,114,238,239,144, 69, 78, 35, 66, 12,158,162,112,204, + 84,179,204,167, 8,146,109,203,169, 8,152, 8,218, 8,177,150,131, 42,121, 57,181,100,206,195, 54, 77,138,170,192, 49,168,165, +147, 38,140,102, 9, 93,117,242,202,228,105,140,201, 62, 13, 49,171,215,125,200,197, 78,196,228,121,214,214, 81, 77,156, 65,108, + 90, 34,223,229,227, 16, 17,162,102, 51,201,228,156, 73, 19,181,175,137,234,219,107,218, 42,212,117, 74, 90, 39, 79,237,196,126, +238,140,165, 42,122, 88, 99, 86,214, 62,172, 56,103, 10, 86,193, 40, 34, 32,146,237,234,210,198,163,199,182,211,214,216,252, 25, +186,228, 56,151, 84,151, 28,248,164,245, 43,152,204, 19,109, 44,255, 82,181, 59,116,205,181, 97,103,210,154,113,166,107, 12, 14, + 89,187,218,247,211, 92,181,210,255, 79, 43,169, 63,108, 66,245, 8,235,230, 41,186, 9,214,187,221,104,189,170,214, 79,234, 66, + 50,173,175,156,186,169,100,133,219,236,104,180,113,168,244, 46, 39,101,140, 75,127, 39,125, 52,135, 35, 55, 33,165, 54, 30, 26, +160, 17,180,253,177,106, 46, 90,146, 8,121,113, 54, 13,163, 94,195, 96,110,192,204,236, 12,206,230,133,219,186, 44,153,246,202, + 30,133,113, 75,106,219,164, 96,123, 89,186,107,198, 13, 98, 32,140, 53, 39,120, 57,193,107,115,170, 22,215, 76,180, 89,253, 76, +130, 16, 2,227,102,148,137,201,152, 37,155,247,228, 2, 38, 77,164,152, 48,205,152,126,175,194,225,178,163, 29,217,249, 76, 12, +136,205,206,136, 15, 83,189,210,166, 85,181,134, 97, 99, 32, 2,137,118,243,192,146, 39,124,150,136,179,244,109,141,205,125,136, + 7,243,172,167,148,112, 98,232, 85, 37, 69, 89, 16,154,184, 10,105, 81, 81,201,175,236, 41,159, 85,234, 70, 38, 81, 16, 57,172, + 78,105,219,106,181, 56,121,131,105,113, 86, 9, 41, 44, 37,232, 1, 72, 49,111, 78, 34, 17, 73,166,221,104,234, 9,221,227,167, +122,237, 57, 85, 2,216,122, 32,252,213,104, 34,220,169,236,204,169, 36,242,245,178,131,220, 76, 27,133, 53,234,244,195,110,170, +227, 81, 90,201, 73,190, 49, 87, 59,151,178,130,102, 64,100, 34,247,153, 37,169, 10,202, 54, 61,105,196, 47, 70,246,215,243,140, + 23,198, 84, 51, 37,213,160,135,171, 10,154,198,211,212, 53, 33,102,245,108, 89, 20,132,152,150, 66,175,108, 89, 96, 29,184, 82, + 8, 67, 37,248,116, 26, 9,253,216,142, 55,198,160,198, 98,146,144, 32,147, 23, 66,209,230,117, 9, 49, 96,101, 74,138, 17,109, +213,212,237,177, 41,228,212,170, 77,206,151,142, 5, 66, 14, 67,147,101,182, 24,109,165, 97, 51,181, 89, 76, 41,159, 67, 83,150, +160, 39,222,240,136, 98, 93,129,166, 28,230,134,178,228, 16,231, 83,100,113, 60,162,148,254,146,215,249, 17,189,238, 1, 53, 9, +149,182,143, 6,204,196,201, 47, 41,133, 43,136, 26, 90,187,185,193, 57,135, 34, 68, 18, 26, 98,171,181, 81,172,113, 75,126, 5, + 41, 29,124, 26, 82,202, 9,108,214, 59,169,117, 56,242, 28,185,141,120, 17, 54,162,157,124,163,236, 50,215,134,208,207,156,254, +157,104,123, 15,223,149, 79, 8, 80,176, 98,176,198,225, 84,137, 41, 80, 47, 52,140, 22,231,233,207, 53,204,110,157,163, 40, 29, +195,209,136, 68,196,181, 14, 90,161,105,104,124,147, 29,165,140,161,215,235,225,250,150,121, 89,128,249, 8,193, 29,170,232,144, +181, 25,227,201,216, 52,100, 63, 70, 75,101, 45,106, 51,129, 26,177,109,136,123,206, 3,223,102,231, 67, 21,162, 38, 26,223, 80, + 20, 37, 66, 78,171,154,237,223, 49, 39,165, 49, 89, 10, 95,126, 94,231, 10,170,126,193,216,148, 12, 67,206, 65,175,109,190,247, +165,223, 88,135,177, 66,221,212,132,208, 76,101,109, 83,170,162,204,161,134, 77, 77,140, 57,227,156,136, 69,142, 50,185,210, 74, +233,147, 48, 54, 49, 57,238, 62,183, 27, 81,114,200,164,136, 80,186,178, 85,207,231, 77, 73, 19, 3, 62, 4,172,179, 56,235,114, + 97,155,137,242, 66,114, 40,155,168,156, 81,207,112,183,110,174, 13,220, 70,185, 72, 27, 45,158,124, 35, 60, 84,103,186, 83,221, +201,106,235,100, 19,249,106,126,239,108,129, 53,142,152, 34,245,124,205,120,248, 0,115,219,102,168,102, 42,202,178,196,218,130, +152, 34,198, 8, 51,253,153, 86,101, 61,102, 92,143,169, 92, 65, 49,200,106,251, 52, 2,137,217,235,126, 53,142, 57,167,203,158, +169,218,198,168,171, 82, 72,118, 90, 75,154, 16, 49,148,133,107,179,242,133,150,228, 12,160,196, 20,105,130,167, 23, 99,206, 6, +232, 44,101,229,240,128,143,169, 85,113, 63,188,111, 49, 70,198,227, 72, 29,234, 37,213,190,182, 18,191, 21, 67, 34,229, 72,132, + 56,145,201,115, 17, 21,103,148,209,120,140, 53, 14,235,148, 38, 52,109,100,197,234,146, 2,101, 7,185,246,183,162, 88,151,235, +163, 91, 3,198, 86,153,208, 1,107, 92,222,152, 32, 84, 69,133,136, 33, 4,197,218, 54,204, 46,145, 35, 11,218,204,115,217,127, +195, 30,147, 10,171, 11,107,235, 72,125,211, 16,250, 70, 25,211,122,117,128,219,104,215,233,248,143,159, 56,214, 25,172, 90, 98, + 10, 44, 60, 88,227, 71,129,254,150,136,148, 53, 85, 89,230,164, 36,154,109,201, 91,102,182, 50, 26, 47,226,189,167,223,155, 33, +246, 34,209, 40,101,170,136, 62,210, 52,205,138,206, 99,167,154,204, 87, 58, 46, 37, 37,133, 28,230, 21, 98,150, 98, 19,173, 19, + 97, 75,172,170,100, 18, 83,218, 28,233,138,143, 1, 77, 17,213, 92,208,164, 42, 11, 44,150, 20,198, 68, 73, 43,114,173,136,193, +199,134, 38, 52,173, 10, 94,114,178, 23, 87, 82, 56,199,168, 25,163,154, 99,229, 93,155, 99,190,246,205, 82,120,228,184, 30,181, + 30,253,218, 22,154,209,101,222,152, 43, 19,186, 26,109,243,214,103, 39, 76, 84, 9, 41,123,179, 23, 38,171, 83, 52, 41, 73,114, +157,121, 49, 96,219,136, 6, 68,169, 92,137,152,172, 69,208,165,208,186,124,126,213, 54, 70,125,157,111,196, 79,229,243,172,235, +208, 84,113,194,164,190, 89,212,236, 27,205,158,189,158,195,210, 54,210,102,227, 68,142,159, 62,212,136,193,216, 18, 71, 9, 33, +178,127,239, 60,166, 7,103,159,119,118, 46, 85,218,212, 88,231, 90, 71,176,188, 25, 24,213, 67, 22,198,139,148,182,196, 14, 4, +134, 22,169, 87, 78,144,114,186,212,237,135,124,223,170,218,157, 20, 24,211,122,251,183,182,103, 35,134, 70, 3,170, 17,193,224, +213,183, 25,233, 32,197,152, 67,188,172,105, 53, 23,150,170,151, 75,144,250,102,148, 61, 17,163, 28, 50,175,253,126, 73, 52,134, + 3, 7,132,137,215,120, 97, 11,146, 38,198,117, 77,210,152,109,218, 38,219,184,105,189,210,133, 28, 71,158,179, 2,166,156,217, +206, 90,122,131, 10, 73,130, 15,225, 48, 68,161,217,150,110,178,215,187,113, 38,155, 78,162, 7,201,217,242,188,207,170,252,224, +179, 35,156,138, 80,136,203, 9,103, 82,206,102,104,140,165, 48,101,206, 98,103, 45, 57, 37, 79,235, 64,149,100,221, 63,187,107, + 77,220,171,113, 72, 59,154, 54,233,104,113,234,171,245, 96, 63,165,164,222,217,203,187,246,215,227, 46,252, 76, 81,181,159, 28, + 66, 95,249,216, 28, 27,239, 40, 25,224, 71, 53,195,253, 99,220,118,135,115, 89, 77, 63, 30,143, 48,226,168,202,146,198,143,219, + 66, 37, 74,160, 97,156,106, 2, 96,218,132, 59, 19,169,242, 76,185,127,178,215,121, 14, 91,155,216,158,141,201,217,226,178, 3, + 89, 34,248, 38, 19, 35, 89,210,117,166,160, 48, 5,206, 58, 74, 91,100, 7, 51, 49, 56,177,148, 69, 69, 83,122,124,154,228,111, +111, 23, 90, 21, 70,195, 6,111, 70, 57,177, 13,137, 65,213, 99,118, 48,195, 67,243, 15,145, 52,199,192,167,214, 94,159,119, 27, + 96, 91,149,191, 49, 22,231,132, 20,114, 6, 65,105, 55, 93,217,156,125,152,133, 92, 18,106, 82,110,199,153, 54, 69,109, 86,247, + 39,205, 69, 99, 98, 8,196,224, 81, 18, 86,109,246,173, 48,182, 85,177, 67, 18,179,100,146,208,236,174, 15,128,197,181,161,124, +134,163,170, 11, 54,216,154,112, 34, 49,233, 39,235,124,135, 11,161, 62,145, 56,244,147, 70,234,157,122,189, 35,220, 83,217,254, +153,120,205,207,100, 66,159, 44, 28,217, 33,206, 82,106,159,241,254, 26,141, 7,216,126,222, 54,102,250, 3, 6,213,128,241,104, +156,165,187,152, 99,181, 82, 12,140,154, 17,163,180,136, 49, 5, 85,234,227,108,129,162, 57,222,123, 13,199,118,108,243,160,248, + 16, 8,146, 77, 4, 86,115, 18, 24,211,170,185,141,152,156,172, 69,211, 82,242, 31, 85,197, 88,155,157,198,148, 86,138,205,139, +107, 81, 89,138,198, 17,189, 71, 77, 78, 24, 51,113,100, 11,209, 83,135, 58,219,209,201,196,186, 56, 90, 4,160, 44, 75, 16,240, +222, 19, 53,182, 49, 10,134,170,172, 72, 49,230, 12,128,206,208, 52, 11,144,192,199,192,226,104,136,147,135, 47,181, 57,210, 61, +161, 86, 81,163, 57,117,110,225,240,234, 51, 57,183, 9,142, 82,140,164, 20, 64,160,112, 5,101,209,203,253,104, 51,236, 25,235, + 40,218,108,132,198,152,182,221,214, 20, 97,128, 8,162,138, 98, 57,217,241,233,167, 75,115,186,146,132,125, 38,135,190, 29, 75, + 88,245,137,146,189,219,108, 68,186, 25, 36,218,206,177,238,228,182,187, 30, 29,234, 68,132, 66,122, 52, 11, 13,251,100, 63,231, + 95,112, 46,189,126,143,197,209, 34, 77,211,208, 36, 79,225, 42, 52, 38,124,211,228, 68, 58, 85,164,176,134,190,237, 81,143, 61, + 49, 54,107, 54,182, 99, 87,109,202, 82, 24, 89, 97, 45, 42, 6, 17, 40,139, 18, 99,132, 20, 34, 57,154, 59, 19,153, 32,173,212, +154, 35, 5,124,144,156,238,213,202,146,106,222, 58,135,117, 1, 85, 33, 53,146,107,162,211, 70,135,107,202,225, 95,198, 16,218, +100, 54, 66,118,148, 19,129,128,159, 12,132,148,148, 16, 26, 4,161, 9, 17,131,193,217, 2,200,249,255, 57,140,230, 99,201,107, +191,205, 88,135,129,144,242, 49,210,158, 39,181,228,111,140, 67, 68,113, 54,107, 90,172,205,170,247,164,173,164,222,142, 85, 84, + 90,135, 65,147, 55, 49,109,229,184, 28,186,199, 73,145,212, 79, 23, 55,172,148,160,229,140,229,172, 73, 65,162,214,209, 50, 71, + 90, 76,153,183,218,123,226, 88,201,126, 53, 18,190, 59, 19, 9,189, 83,177,119, 82,249, 70,144,170,215, 90, 50, 95,205,113,206, +148,196, 97,100,239,189, 15, 80, 12, 12,214, 21,148, 69, 69,172,179,164, 27, 53,146, 66,131,179, 14,177, 66, 42, 34,141,142,219, +140,105,178, 38,125, 60,190,223,183, 73, 97, 10,139, 88,165,142,163,169, 74,108,218,218,220, 13, 86,178,100, 30,147,162,228,112, +178,186,105,136, 75,169, 99, 11,140, 53,109,106,217, 92,184, 37,106, 68,131, 34,137, 37, 41,119,226,168,102,173, 37,166, 68,227, + 3,137, 68,229,170,165,212,192, 50,201, 30,151, 88,138, 52,136, 41,145,212,210,235,245, 25,215, 10, 49,171,209, 39, 21,227, 14, +205,110,152,213,238, 34,217,230,111,108, 94,176, 53, 41, 62,213,237,252,231,250, 2,154,114,189,248,201,251,160,129, 24,195,146, + 4, 47, 42,173,250, 93, 49, 34, 56,123, 48,154,193,136,112,178,212,238, 93,190,140,149, 9, 92,167, 54,106,166,189, 47,138,202, + 82, 56, 67,221, 52,184, 34, 87,125, 76, 77, 4,201,213, 4,125,136,212,117, 0,100,169, 74,161,200,209,211,209, 30,205,110,239, +206,164,137,220, 72,142,111, 27,233, 60,235, 73,242,223, 40,142,112, 39,115, 67, 33,234, 8, 11,145, 24, 60,229, 44, 36,109, 24, + 54, 99, 74,103, 91,251,176,146, 66,150,202, 67, 12, 84, 69,192, 20, 5, 38, 57, 52, 28, 89, 37,120,106, 8, 61,195,138,197, 90, + 33,224,179,243,155, 40, 62,250, 28,127, 45, 96,197, 45, 37,238, 81, 13,196, 20, 73,173,199,119,140, 57,228, 13,160,164,202,177, +219, 38,231,241, 87,148,232, 19,234,193, 90,161, 26,244, 72,161,193,215, 77,182,215, 55, 99, 66, 10, 24,107, 41,138, 34, 39,161, +153,208,115, 43, 1,151, 46, 23, 85, 9, 49,135,222, 13,199, 67, 82, 76,244,139, 62,131,153, 62, 26, 97, 92, 55, 7, 37,116, 37, +231,116,183,185,154,155, 88,176,214, 16, 99, 46,244, 19, 99, 78,247,106,141,193, 72,142,114, 40, 93,145, 43,178,137, 16, 99,155, + 50, 86,114,117, 59,109, 99,243,165, 77, 13,108, 36, 59,236, 25, 64,213,146,186,250,233, 39,143,195, 39, 9,138,218,205,102,190, +255,114,138,103, 87, 24,202, 50,215,112,192, 68, 68, 60,149,243,244,250, 37,189,190, 37,122,165, 40, 10,122,101, 73,168, 35,243, +243, 35,156, 41, 8,193, 48,191,208, 80,215,161,221, 48,202,113,215,104,112, 29,161,119, 36,187,222,201,252, 76,220, 28,156,142, +227,143,148,193, 81,176,208, 24,234, 97, 67,180, 30,103, 11,250,229,128,218,143,137,154,165, 76,218, 60,236,170, 74, 50, 30, 41, + 20, 43,185,104, 72,104,252,195,108,236,107,103, 63,127,248, 49,210, 86,100,147, 40,185,160,142, 43,177, 38, 23,107, 9,209,231, +180,172, 38, 87, 86, 11, 41,102,167, 51,100, 41,156,203, 90, 71, 72,145, 16,178,100,100,157,203, 33,129, 78,176,106,208, 82, 73, + 62,101, 13,197, 36, 91,219, 88,115,190,247, 20, 25, 84, 3, 98, 74,140,155,113, 43, 53, 79,169, 82,165,205,252,134, 65,218,140, +111, 81,149, 94,217,163, 87,246, 49, 41, 81,228, 68,175, 4, 85,146, 8, 81, 18, 56, 69,236,193,156,244, 62,120,234,102,220,250, + 8, 88, 84, 4,107,219,164, 54,237, 24,202,178,204,146,124,104,251, 33, 7,235, 11, 8, 7, 53, 13, 7, 85,238,150,227, 49,209, +118,132,254,112, 34,159,100,231,179, 78,168, 74, 75,191, 95, 48,152,169,112, 2,181, 15,196,232, 17,114,170,222,209,168,166,174, +235, 92,162,183,200, 57, 2,130,207, 25, 33,251,125, 80,141,148,133, 99,251, 57,131, 54,183,128, 97,235,246,146,209, 48,178,127, +127,205,194, 98, 67, 78, 53,112,236,149, 21,221,153, 96, 31,217, 72, 68,190, 94, 99, 27, 79, 5, 73,158,108, 71,150, 51,205,163, +253,100, 74,215,107,114, 76, 18,168, 45,182,159, 29,170, 70,227, 17,181,175,179, 99,153,177,216,182,162, 25,109, 92,123, 18,143, + 56, 3,226,178, 58, 58,158,122,233,252,144,133, 53,129,247,129, 73, 69,209,156,197, 77, 90,187,118,194, 88,131,181, 14, 69,113, + 98,137, 41, 18, 99,142, 33,183,206,229,239, 82,182, 91, 19,115, 12,185, 24, 3, 70,177,165,165, 8, 96,154, 68, 51, 90,100, 49, + 46, 48,137,125,119,182,205,237,158, 98,235, 28, 39, 57, 6,188,173,241, 46, 34, 88,177, 8,134,170,234, 17,125, 78, 78, 51, 59, +152,101,128,229,242, 56, 98, 27,194, 80, 2, 53, 80, 35,220,239,132,135,156, 33,182, 57,222,125,244, 52, 33,135,173,153,214,132, + 96,218,146,175,160,196,201,186, 18,151,121,184,203,193,234,130, 98,178,214,193,135,128,149,130,210,218,156, 38, 56,165, 51,226, +249,159,172,143,235,137,208, 85, 91,157,140, 8,189,190,101,118,174,226,236,179,122,108,221, 90,229,138,139,206,208,140,107,238, +223,187,159,197,197,134,186, 78,248, 38, 18,124, 64, 67,118, 54, 85, 47,140, 98,192,152,132, 17, 33, 12,199, 56,103,232,245,123, +148, 61,128, 26, 99,148,170,215,227,172,115, 75,182,110, 43,217,123,255, 34, 15,237,111,240, 62,161,122,108,196,190,161,171,180, +157, 14,137,118, 61, 38,111, 56, 85,237,119,132,126, 6,108, 62,147, 69, 60, 4, 26, 18,169,205,132,102, 41,172, 3,133,177, 31, +227,125,147, 11,195,148, 37,201, 71,198,126,132,153, 20, 3,225,244, 16,250, 68, 36, 78,109,245, 52, 99,115,136, 91,106,181, 7, +101,155,120,101,218,182, 57,233,107,140,177,181,169,155, 37,114, 14, 8,206,101,181,182,152,156, 75,125,208,135, 11, 75,195, 40, +212,124,122,161,206,185,215,219,186,246, 99,159,203,170,150, 69,153, 11,185,152,208, 86,217,203,253,138, 41,161, 26,232,149, 61, +212,193,252,112,145,161,175,153, 51,142, 43,139,196,217,193,115,128, 68, 64,120,208, 24,146,171, 56, 0, 52, 41, 98,108,238,147, +166,236, 55, 48,177,163, 47,217,232, 91,199,183, 16, 60, 49,248,108, 58, 16, 65,140,109, 83,227,182,102, 0,114,210,157, 92, 28, +168,173,246, 22,117, 85,153,228, 78,213,115,112,166,133,187, 29, 94, 8,203, 90,171,178, 52, 12,102, 11,182,110,237,113,246, 57, +125,206, 58,123,134,126,191,196,143, 27,238,187,239, 33,246,126,245, 0, 7,246, 47,178,184,216,144, 98, 46,189, 52,185, 71, 85, +179,217,199, 26, 67,169,185, 56, 80, 18, 8, 77,192,139, 18, 26,197, 14, 61,214, 10,198, 36,234,177, 82,247, 26,250,189,146,179, +207, 46,169,250,134, 7, 31,104, 24, 13,227,177, 73,234, 29,145,175, 15, 13, 64,215,254,153,171,182, 59,189, 73,104,142,241, 88, + 5,109, 44,206, 56,220,192, 82,149,125, 82, 76,217, 89, 76, 35, 38, 8, 62,229,186,225,165,203,246,107,159, 20,131,197,226,168, +138, 94,107,239, 61,185, 41,101, 87, 21, 83, 76,174, 19, 94, 58, 7, 86,240,193,163,109, 89, 83, 87, 20, 57, 97, 75,138,173, 74, + 62,100,199, 57,235,218, 18,169,138,166,156,185, 77,104, 61,224,145,182,104, 74, 38,197, 65,105,216,169,176, 48,138,220, 42, 74, + 84,112, 2,133, 45,114,117, 56,114,210,153,156,232,165,181,167,182, 54,237,113, 51,206,164, 26,243, 36,199, 20, 24,143, 26,206, +114, 21,103, 85, 61, 46, 50,129,133, 20, 25, 11,204,219,130,145,129,136,162, 26,179,234, 86, 35,174,117,244, 75,109, 41, 94,145, +156,201, 46,166,132, 53,144,218,226, 51, 2, 20, 82, 98, 92, 90, 42,238,146, 90, 51,195, 36,255,124, 74,138,111, 98,246, 21,208, + 67, 29,229,166, 61,168, 55,218,243,121,164,112,183,163, 9, 97, 7,231,196,208, 31, 56,102,231, 28,219,182,149,156,181,189,199, +236, 92,143,178,231,104,234,200, 61,119, 63,192,125,247,238,103,239,253, 15, 49, 63, 63, 36,248, 92,230, 56,233,196, 20, 98, 48, +226,112,182,160, 40,242, 38, 45,170,109,195, 10, 19, 26, 13, 94, 3,117, 24, 33, 35,193, 21,185, 42, 96, 49,142,140,230,225, 64, + 49,162,234, 57,122,253,146,173,219, 44,214,130, 15,134,166, 14,171,122,238,220,122, 38,140,141, 66,126, 93, 93,247,245,167, 34, + 63, 89,237,156,204, 84,170,171, 95,244, 64,154,130,162, 47, 20,133, 37,104,107,183,197, 80,196, 34,171, 12, 91, 53,169, 49,134, +170,103, 73, 77, 14,203, 41,122, 14, 29,229,216,233,137, 68,188,150,100,254,240,116, 41,185,159, 26, 3, 42, 74,105,171, 76,130, + 54,123,133, 79,138,174,100,231,178,172, 89,152,216,168,173, 53,248, 16, 48,198, 30,180,209, 11, 56,103, 9, 81,169, 17,246,165, +196, 98,168,241, 41,219,215,109,105, 41,203, 10,223, 4,136,153,172,147,102,213,247,196, 33,205,107,104, 23,108, 97,212,212,180, +198, 80, 82, 74, 52,190, 38,210,231,188,193, 12, 91,198, 11,220, 21, 35,119, 91,225,190, 20, 88,140, 33,199,160,211,102,198,115, + 46,111,158,140,105,203,173,178, 84,101, 78, 90, 15,250, 92, 92, 38, 39,223, 17,204,148, 90, 86, 15, 58,112,105, 91,229, 87,105, +179,229,201, 25,117,239,174,245,121,143, 39,220,109, 98,161, 24,204, 20,204,108,113,108,221, 90,178,117,107, 69,191,245, 96,247, +117,205,125,247, 63,196,125,247,238,231,193, 7,231,153,159, 95,164,174, 3,170, 96,109, 69, 89, 84, 88,113,249, 26,137,109,147, + 36,153, 67,207, 43, 83,229,127, 41,114,177, 31,141,132, 58,130,122,140, 40,182,205, 66, 56,127, 0, 92,105,232, 15,122, 84, 85, + 14,119,108,234,180,170, 58, 2,110, 61,146,199,153, 42,177,109,102,116,137,104,206,124, 50, 63,248, 30, 82, 20,194, 72, 9,118, + 30,145,146,158, 43, 25,249, 6,213,156,184,165, 44,123,164,164, 68,141, 57, 46,220, 37,136, 48,142, 99, 16,201, 68, 24,210,195, +104,253,100, 93, 43,229,208, 48,161,105,114, 31,215, 53, 65, 27,102,102, 43,156,115,121,177, 20, 33, 73,202,233, 80, 53,103,118, +203, 82,116, 91,249, 76,115,186,216, 37,145,127, 41,110, 60, 87, 96, 19, 18,161,176,220,227,250, 44,122, 79, 88, 92,156, 20,179, +167,137, 77,214, 78,180,210, 92, 76, 58, 49,103, 99,109,174, 18, 23, 67,132,148,150,212,225,137,132,115,142, 94, 57,192, 22, 37, +115, 34,104,209,227, 30, 19,248, 82,132, 7,154, 17,117,200,254, 1,133,115, 20,182,200,225,106, 28,180,147, 39, 77,104, 2,231, + 92,246,194, 79, 57,105,144,136, 16,162,199, 26,215, 38, 9,138,237,102,103,178, 81,145, 28,182, 23,101,205,158,159,141, 34,136, + 40, 64,202, 97,128,131, 89,203,217,231,245,153,157, 51, 84,149,165, 40, 45,227,218,243,192, 3, 35, 30,124,112,145, 7, 30, 56, +192,129, 3, 67,106,239, 17, 53, 56,215,167,180, 61, 92, 81, 98,172, 91,210,162, 28, 89,215, 68,171,229,201, 21, 23,179, 35,156, +210, 52, 13, 33,122, 52, 5,146,134,172,133, 26, 37, 98, 82,170,178,160,169, 67,142,248, 48, 61, 4,119,196, 2, 76,235,174,160, + 75, 23, 39,185,121,180, 24,103,106, 81,152,211, 17,119,126,178, 55, 2, 34, 16,106, 48, 86,161,242, 44,134,192,226,120,145,164, +145,185,153, 57, 74, 87,242,208,194, 67,185, 14,185,228, 56,108,176,196,152,178, 55,124, 44, 31, 38,165, 31,123,255,100, 69,105, +127, 66,224, 89, 38,207,165,207, 11, 81,122, 64, 73, 98, 62, 6, 30,144,236,140,166, 40,134,131,197, 83,114,210, 25,218,114, 46, +173, 35,155, 10,117, 93, 99,221,193,236,114, 42,138, 81, 65, 90,187,103, 74,138, 56, 97,209, 57,246,185,130, 36, 6,209,136,143, +217,169,110,114,158, 41, 42, 32,164,136,134,236, 36,151, 52,182,182,238, 92, 93,173, 44, 74,196, 56,202,178, 34,100,227, 42, 15, +160,124, 90, 44,119,197, 64, 29, 60, 70,132, 94, 85, 81, 22,229, 82,105, 87,107, 92, 59,134, 72,138, 9, 49,130, 53,110,234,180, +121,118,148, 73, 65,155, 44, 17, 78,212,239,121, 79,144, 77, 18, 33,106,155,188,230,196,163,212, 55, 98, 57,235, 28, 33, 0, 69, + 15,182,108, 23,182,159, 85,209,235, 27,172, 21, 48,134, 3,243, 67,246,222,183,143,125, 15, 44, 50, 92,168,169,155,154,132,165, +116,179, 84, 69, 31,231,170,108,142, 57,241,209,226, 92,153, 75, 4, 27,114, 34,163, 52, 34,248, 49,139,139, 67,154,166, 0,192, + 26,219, 38, 75, 50, 4,175, 7, 55, 8,186, 6,164,222,197, 99,159,185, 15,200,122,204, 46,119, 38,218,249,214,179,186,242,176, + 82, 74, 18,180,177,224, 2,117,108,114, 62, 54, 3,206, 22,136, 66, 33, 14, 83,148, 20,197,255,207,222,155, 52, 73,118, 93,121, +126,191,115,238,189,239,249, 16, 17, 57, 0, 32,193,169,170,203, 74, 52, 21,187, 91, 86, 38,181,153, 22, 90, 72, 11, 45,122,169, +149, 62,167, 62,129,204,100,146, 86, 85,214,102,146,149,170,171, 77,170, 42,178, 57,129, 36,134, 28, 34,194,221,223,123,247,158, +163,197,185,207, 61,144, 36, 11, 4, 8, 2,137, 4,130, 22,204, 64, 68,102,248,244,252,254,207,240, 31, 50,105, 76, 8,145,209, + 93, 23, 99, 62, 45,140,195, 16,201,105,246,233, 25,205, 46,130,118,224, 6, 39,126, 59, 20,156, 1, 40,192,134,198, 86, 96,196, +216,138,113,229,198, 64,227, 61, 26,127, 39,112, 10, 90, 24, 73, 11, 75,173,204,245,196,210, 26,120, 16,205,146,166,112,135,179, + 22, 6, 49,213, 40,155, 2, 61,198,181,202, 66,238,218,246,146, 19,185,123,200,223,159,142, 33,243, 75, 10,198,185, 43, 90, 53, +224,238,206,226,225, 28,215, 58, 35, 62,245,130,162,186,145, 36, 49,104,225, 88, 39, 62,154, 78,124,176,223,176,236, 6,254,161, +206,252, 63,179,243,178, 70, 1, 80, 74,161,164,194,178, 44,152, 55,114,247,169,199, 27,238,241,243,240,142,151,110,255,155, 17, +107,231,110,254, 97,134,123,116,109, 81,200, 36, 81, 6,132,180, 52,150, 38, 76,162,240, 37, 21,162,175,235,123, 34, 36,130,176, +189, 18,174,159, 10,155, 81,144,100, 52, 7, 91,156, 15,222,127,198,251,191,126,206,203,231, 7,150,185,226,146, 40,229,138,161, +108, 73,105,232,134, 62,159,207,253,120,216,112,139, 11, 73,134, 72, 19,212, 45,230, 19,117, 89,200, 57,145,114,137,204, 6,155, +201,105, 36,231, 77,184, 33, 90, 47,241,250, 40, 42,127, 85, 94,136,111, 0,253,235, 49,105,248, 6,208,255,180, 29,250,171,141, +178, 45, 74, 89, 10,155, 13,220,159,166,190,143,141, 49,176, 72,236,160,141,198,163,171, 39,148, 84, 56, 77, 39,150,211, 76, 42, + 9,209, 96,150, 7, 60,191, 50,210,252, 88,199, 29,127,102, 32, 99,100, 96,131, 51, 2, 35,206, 6, 99, 35,241,245, 40,198,224, +206,208,191,206, 56, 25, 72, 56, 69, 90,255,247,206, 79, 93, 56,250, 16, 93,168, 42,181,103,167, 91,139,110,215,204,113, 90,103, +187, 7, 8,166,158,232,166, 18, 90,118, 23,161, 89,139,228,186, 14,220,199,211,145,219,195, 45,181,133,182,220,186, 93,152,247, +145,190,170, 34,237,193,174, 52,148,109,140,227, 6, 37, 81,219,203, 32, 29, 2, 86, 43,247,243,194, 7,155, 13, 31, 13, 91,254, +102, 94,248,241,114,164,154, 69, 17,145,210,121,175,159, 36, 52,246,205,106, 15, 99,241, 46,187, 19, 26, 17, 12,147,146,158,221, +227,146, 22, 84,136,199,220, 57, 3, 97,171, 23,126,247,215,110,188,179, 28,177, 10, 47,180,112, 43,153, 73, 18, 85, 97, 13,156, +149, 47,233, 44,249,210,201,116, 8,155,109,102,123,227,236,175,133, 92,148,218, 26,117, 90,176,251,198,203,143,238,248,240,195, + 91,238,239, 79,152, 11, 67, 30,217,142, 87, 12,101, 19, 83, 16,254, 52,178,101,119,206,210, 69, 17,161,148, 1,124, 56, 75, 24, + 91,117,234, 50, 97, 54,161, 98,164,164,148, 97,135, 72,225,120,152, 48, 91, 62, 27,168,191,169, 76,246,111, 0,253,205,235,250, + 95, 7, 64,127,221,125, 32,220,161,157,132,148, 83,164,159,121, 39,120,213,137,185,206, 44,117, 38,153,178, 44, 19,102,141,219, +227,115,220,133,113,184, 98, 89,102, 22,194, 67, 62,116,218, 2,230, 96,134,246,174,123,211, 63,183, 56, 59,113,118, 52,246, 98, +108, 37,190, 63,244,207, 34, 30, 0, 46, 78,118, 63,143,222,245,108,241,210,129,206,157,183,129, 71, 8,239,117, 50,219, 92,103, +154, 45,209,129,187, 35, 24,173, 46, 61,130, 52, 3, 65,252,155,221, 25, 90,165,164, 28, 83, 9, 73,253, 55,119,143,248,218, 56, + 28,143,212,165,146, 84, 41,121,160, 97, 44,203, 76, 48,218, 27,109,110,180,179,238, 59,202, 22,213,196,144, 11,181, 86, 92, 99, + 85,113,156,143,184, 64, 41, 3,183,170,252,173, 11,255,161, 57, 7, 55, 70, 85, 74, 39,217, 73, 79,159, 91, 65,182,181,118, 54, +213, 49,119,146,200,217, 80,166,182,218,167, 41, 49,158, 95,250,250, 1, 86,115,179,144,252,153, 55,246,205,120,219,130,180,119, +227, 51, 7,201, 28, 36,115,239,153,123,201, 76,162,212, 7, 26,247, 55,189, 51, 63,223,190, 10,219,109, 98,255, 88, 25, 54, 81, + 4,181, 6,243,236, 28,239,142, 60,127,118,203,139,103, 7,150,234,228, 60,178,223, 92,135,129, 80,202,231,235,239, 11,174, 64, + 34,152,167,135,241,228,116, 69,147,202, 52, 31, 57, 45,207,184,186,170,228,180,103, 89,218, 57, 27,225,181, 75,105,251,166, 99, +254,122,141,200, 94, 7, 64,255,253,129,148,242,177,157,228, 67,158, 21,240,137,251,202,175, 2,153, 78,164,147,181, 79,153,171, +221,158,197, 43,199,211,137,113, 40, 92,237,174,120,121,120,129,123,183, 61,245, 70,109, 51, 57, 23, 38, 59, 5,153, 71,132,150, + 20, 21,216,234,192, 35,131, 71, 75, 99,231,141, 29,198,149, 24, 59, 49,118, 56,163, 56, 3,198, 32, 78,113, 39,117, 16, 79, 56, + 73, 34, 67, 44, 17,222,217, 74, 52,158, 34,177, 23,110,238, 52,130,204,237, 14, 79, 12,180,181,176,126,245,198,178, 52,132,132, +170, 83,219, 66,181, 70,234, 89,232,136,117, 50,156, 48,207,166,194, 27,241, 0, 0, 32, 0, 73, 68, 65, 84, 51,150, 26, 34, 57, +220,218, 52,244,195, 34, 80,134, 66,154, 34, 86,117, 40, 3,251,205,142,227,124,100, 89,207,114, 89, 7,220,177, 95, 79,170, 93, +159,238, 28,167, 3, 75,173,125,180, 15,139,207,193,190,207, 27,126, 34,202,207, 78, 71,158,153, 49,106, 34,139, 82,114,161,228, +130, 34,204,182,116,134,126, 56,200,173,116,171,213,216,102, 5,125,214,144, 23,167,179,252,253,236, 59,222,186,206,221,197, 73, + 40,187,214,216,218,130,225, 20,140,157, 55,154, 87, 38, 79, 28, 37,115, 47,137, 59, 73,220,137, 50,171, 82,249,227, 70,244, 95, +133,198, 76,146,179,217, 57,251, 71, 74, 30, 26, 75,107,180,217, 98,154,241,236,142, 23, 31,221,115, 60,205, 8,137,221,246,154, +221,184, 39,231,210,177,220,190,228,123,223,221,236, 82, 70, 53,147, 52, 83,235,204,253,237, 9,145,153, 33,239,122,225,241, 9, +157,250,155,110, 20,243, 77,209,240,230,116,231,191, 21,114,240,219, 5,239,239,255, 90, 46,224,188,202,136, 16,237,251, 94, 57, + 3,186,179,238,191,228,252,181,243,113,166,246,185, 72,232, 93,144,124,193,207,207,103, 53,123,177, 57,152,220,228,133,185,206, +148,148,168, 30,178,181,164,137,165, 85,204,151,190,127, 30,112, 51,210, 0,131,142,152, 73,140,225,181,242, 14,141,191, 76, 19, +111,251,204,206,157,162, 78,193, 41, 98,148, 62, 70,207, 16, 96,222,129, 92,251,247, 56,239,217,227, 5,113, 23, 76,148, 6,204, +192,236,194,228,176,117,120, 75, 18, 87,121,164,185,159,201, 74,214,140, 32,191,199, 94,219,145, 32,186,225,168,196,248,122,110, + 97,227, 90, 50, 44, 75, 60,102,233,255, 91, 59,103, 36, 76, 95,238, 79,247,225, 45,175,130, 88,128, 56, 8,115, 91, 72, 57,147, + 83,162, 90, 76, 48,204,194, 32, 38,186,170, 24,141,130,112,156, 79,252,167,164,140,121, 27, 93,125,247,156, 95, 95,166,102, 45, + 86, 30, 18,163,119,149, 18, 38, 58,189,138,136,162, 36, 86, 3, 89,114,191, 56,195,235,221,220, 63,126,157,247,139,121,131,115, +109,149, 45,134, 11, 56, 45, 76, 81, 48,246, 94,169, 84,154, 39, 78,162, 28, 36,113,235,153, 23,154,184, 39, 49,139,126,170,241, +252, 87, 99,202,234,104, 54, 54, 87,206,230, 74, 48,153,153,171,210,154,113,247,226,192,221,139, 35,119,119, 19,173,194,102,216, +179,221, 92, 49,228, 17, 77,193,159, 88, 59,224,223,158,114,125, 57,238,161,161,186,200,164, 84, 48,219,224,157,164,185,126,188, + 22,209,171,223,196,158,126,189,159,179, 63,182,126, 61, 39,107,241,202, 30,183,119,124,218,187,191, 4, 36, 17,146, 16,122, 80, +250,215, 41, 14,213, 36, 97,194, 21,140,227,136,180,124, 40, 83,113,243,110,208, 21, 7,106,179,240,242,174, 14,213,156,197, 97, +113,103,177,248,158,253,142,238,254,117,122,189, 94,253, 55,203, 36, 8,202, 80,122,114,153,193,110,115,197,245,246,154,121,153, +184, 61, 60,167,228,204,118,220, 49,207, 19,187,205, 14,213,194, 52,205,144,149,234,240,158, 87, 74,114, 70, 51,222,145,198, 59, +125,103,174,226,164,174,159, 78,114,233,198, 87, 67,180, 40,148,214,251,163,152, 10,134,118,144, 22, 18,138,246,127,159, 29,158, +144,120, 36,153,103,116,221,182, 53,204, 36,220,225, 68, 17,137,164, 54,115,235, 29,239,154,164,166, 93, 50,230,231,253,117,201, + 17,101, 26,227,247, 3,214,122,130,157, 68, 65, 99,181,158, 65, 54,165, 76,113,199,221,152,235, 37, 86,213, 45,136,109, 73, 18, +211,124, 98, 28, 54,148, 52,112,119,119,199,220, 26,251, 92, 24,220,250, 14,127, 13,108,161,199,165,174,133, 73,196,166,210, 86, +240, 23,172,117, 79,123,209,184,191,189,244,180, 87, 9, 86,253,180, 79, 34, 92, 1,215,230, 20,213,110,216,227,253,217, 53, 26, +221,117,142, 70,149,232,208,103,175,220, 89,230,133, 36,158, 73,230, 78, 18, 7, 81,218,154,203,254, 85, 27,177,175,102,248, 42, +228,164, 52, 78,164,237, 76,222,103,242,176,165, 86, 99, 58,158,184,127,121,226,217, 7, 47, 57,158,102, 74,222,114,189,191, 97, + 59,238,206, 82,193, 79, 2,237, 63,124,197,229,127,178,211, 47,174,155,143,191, 66, 95,104, 74,219,239,115,251,249, 83,222,214, + 55,174,111,175,215, 99,248,172,175,201,239,234,188,165,119,117, 73,232,159, 18, 14, 96, 2, 69,133,172, 48, 8, 20, 81, 74,130, + 44, 66,209,248, 76, 73,250,223,137, 79,213, 56, 16,115,119,242, 74, 18,191,251, 28,133,216,201, 82,230, 23, 66, 75,179,240,228, + 94,154, 83,221,152,154,115,172,141,195,226,220, 55,227,216,224, 96,206,228, 80,157, 79,236,220,191,212,195, 48, 26, 64,100, 46, +100, 21, 60,131, 42,108,242,134,161,140, 76,117, 10,240,203,137,121, 57,145, 82,102, 28, 54,220,159,238,113, 49, 74,217,224, 14, +191,118,229, 3, 17,126, 37,153,143, 82,225,175,165,241,195, 54,241,200,163, 27,119,192,123, 54,165,159, 37,109,114,206, 13,143, +181, 70, 16,209, 66,173, 35, 93,170, 22,110,114, 74,132,155,221,184,176,111, 51,191,154,192, 44, 98, 72, 67,179,158, 66,199, 93, + 27, 73,132, 33,141, 17,143,138,211,218, 66, 66,206, 14,108,226,161,109, 55,111,164,212, 35, 91, 91,120,187, 15,101, 96, 24,134, + 72,122,179, 72, 67,171, 93,171,174, 34, 44,205, 48,122,160,202, 58, 2,175, 13, 82,192,103,107,134,174, 68,189,214,240,102,148, + 92,168, 86,123, 1,210, 31,177, 8,102,173, 51,235, 51,205, 42,190, 74,213, 66,172,119, 38,232,181,110,249, 26, 59,247,213,154, +214, 62,246, 30,201, 2, 87, 46,108, 92,194, 4, 69,214,233, 72, 39, 28,186, 35,180,190, 90, 50, 22,148, 25,227, 49,141,119, 60, +113, 71,229,185,103,158, 73,230,153, 38,238, 81,150,127, 1,220,191, 76,206,200, 39, 97,137, 72, 35,239, 28, 77, 13, 77,194, 56, + 94,163,146, 56,222,191,224,195, 95, 63,227,246,229,129,218,132,205,120,205,245,246, 17,155,178,249,147, 84,223,255,146,171,221, +159, 2,240,243, 23,221, 89,126,145,251,217, 55,129,240,241,166,217,196,126,218, 93,247,171, 32,158, 36, 42,209,162, 48,168, 48, +168, 48, 62,252, 76, 18, 68,164,164,140, 73, 24, 20,178,106, 0,188, 6,232,231, 94,193,231, 14,238,169, 59,117,101, 9, 57,144, +170,172,190,101,225, 76, 38,218, 77, 42, 2,156, 17,193,155,211,220, 46,160,110,198,220,140,169, 54, 14, 75,229,176, 24,183,213, +121,177,216,249,243,222, 97,238, 29,252,195,238,125,237,178,190,172, 14,253,225,147,220, 76,145, 37, 65,106,145,217,109,149,165, + 45,212,165,198,206,206,157,165, 85,210,152, 57,206, 39,142,243,129,164,137, 81, 55,168,100,142,243,145,147,192, 47,198, 29, 47, + 69,248,103, 91,248, 17,137,127,235, 11,127,105,149, 39,238,100, 89,199,234, 61,120,186,203,217,188,131,184,250, 3,160, 23, 30, +140,199, 57,199,172,110, 13,174, 90,227,120,184,197,146, 48,228, 20, 44,113,235, 96,166, 65, 96,115,247, 46,185, 91, 19,205,228, +204, 46,119, 23,106, 11, 0,109,125, 63, 63,213,216, 67, 55,107, 44,117,166,185,161, 41, 33,174,204, 62,135,163, 28,151,179, 44, +245,110, 24, 21,204,194, 59, 31, 23,108,158, 88,116,161,228,208, 24,207,117, 38,151,140,138, 98,226,103,111,119, 51,139,234, 73, +156,102,203, 69, 57,112, 73,105, 57,119,247,130,196,115,212, 77,117, 46,175,165, 32,238, 64, 35, 75, 98,215,156,226,244,107, 90, + 72,226, 20,130,184, 88, 60,214, 32, 25, 39,121,204,146, 26,141,201,149,137,198,145,196,219, 84,238, 72, 60,183,204,135,100, 62, +144,196, 45,137, 89, 46,224,254, 58,156,127,191,247,103, 30,177,167,173,156, 56,121,101,204, 27,114,218,226,139,243,209,139,143, +248,205,123, 31,112,123,119, 36,105,225,106,247,136,171,237, 53, 57,149,243, 90,237, 79,197,110,255,180, 78,119,159, 21,240,243, + 87, 29,148,190,240,177,206, 27,114, 59,175,235,109,188, 10,228, 43,128,143, 18,160,189, 77,176, 81, 97,155,132, 77, 18,198,172, +140, 34, 12, 89,217,168, 50, 42,148,156, 24, 82, 98, 80,101, 72,193, 6,205,234, 20,141, 46,103, 5,249, 21,220,215,120,203,162, + 93,251, 75,100,117, 43,118, 6,245, 21,130,205,163,195,244, 78,144,170,214,199,237,205,152,106,229,180, 84, 78, 53,115,172,198, + 93,109,220,206,141, 23,139,241,225,212,120,182, 24,239,207,198, 11,139, 29,177,124,129,128,254,201,118,172,142, 33, 20,156,183, + 26,164,165,241, 83,159,168,195, 6,220, 25,242,200,169, 30,112,113,198, 97,203,178, 84,204,231,128, 91, 15,143,114,201,130, 74, + 99,147, 51, 87,187, 43,154, 59, 63, 89, 38,126,182, 8,255,183, 39,254,141, 26,255,181, 87,254,210,157,167, 56,131, 64,229, 97, +145,163,145, 11, 46, 33,187,146,190,107, 78,189,183,124,104,145, 57, 10,220, 0, 5,161,165,140,136, 81,235,130, 59,140,101, 96, + 28, 54, 52, 51,166,101, 2,239,150,177, 18,134, 45, 56,228,238, 0,102, 30, 38, 54, 17,123, 58, 83,151, 74,214,212,247,228,157, +101, 94, 27, 67,202,108,202, 72,181,134,245, 60,117,233, 93,191, 0,152,160, 89, 89,230,229,124,241, 58,206, 80, 34,186, 22, 9, + 2, 95,179, 22,215,117,234,125,111, 10,159,112,199,112,243, 72,132,235,192, 36,132,175,252, 26,231,145, 36, 24,208,205, 27,214, +229,110,157,254,209,129, 93, 25, 81,174,220, 41, 34, 81,160, 10, 20,137,247,192,128, 83, 92, 24, 68, 25, 61,164,129, 5, 39,187, +225, 52, 22,140,147, 55,238, 17,110, 73,188, 69,229, 29, 79, 60,243,204,135, 82,120,223, 19, 47, 36, 49,163,216,103, 24,203,255, +169,207, 35, 95,205,121,242,140,229, 19,150, 22,146, 14,224,202,124,152,248,240,197,135,124,244,236, 37,211,105, 97, 40, 91,110, +246,143,217,109,246,168,166,243,123,224,117,199,155, 47,197,251,253, 77,212,176,191, 14,128, 46,191,103, 12,253, 85,126,174,126, +139, 92, 70,119, 15, 3, 70,133,141, 8,219, 12,251,172,108,179,178, 83, 97,163,176,205, 1,234,163,166,232,200, 85, 2,196,147, + 48,104,116,232, 99, 74,148,148, 40, 89,162, 51,233, 35,122, 93, 71,238, 73, 72, 29,228, 83, 74,221,179,217, 35, 19,187,123, 52, + 75,103, 57,171,234,185, 35,114,228, 99,227,248,214,162, 19,108,205, 88,150,202,105,174, 28, 91, 99,170,141,187,197,184, 27, 26, + 47,151,198,179,161,242,225,169,241,164, 52,222,155,140,247,171,115,176,200,214,214, 47,241,117, 92,119,172, 25,120,140,241, 93, +105,252, 37,149,209, 22,154,192, 47,235,194,180,204,152, 45,156,166, 35,227, 48, 98,218, 56,205, 7,156,216, 71,171, 42,211,124, +224,180,128,106,226,122,123,197,102, 28, 35, 72,196,141, 23,211,145, 57,109,120, 86,148,255,216,102,254,138,198,191,243,198,143, + 90,227, 49,206,210,187,242,139, 87,218, 26,169,218,199,239,235,232,125, 93,137,184,144,197,121, 52,236,248,214, 48,240,204, 39, + 90, 93, 80, 95,194, 19, 93,251, 16, 95,132,237,176,237,154,117, 7,137,177,119,152,181, 16,158,235, 30,183, 32,170,231,177,123, + 73,133,185,206, 97, 5,219,141,108,198,178, 9, 19, 27, 98,156,254, 48, 1,110,157,226,208, 11,143,112,177,139,228,181,251,211, + 61, 55,187,107,190,253,244,219, 76,245,196,139,219,151, 97,124,162,169, 75,214,188,251,185, 7,201, 32,165, 20,211, 8,194, 38, +182,249, 37,161, 43,244,202, 43,227,125, 53,195, 41,152, 87, 4,161,228,194, 70,156,189, 91,239,208,227,218, 79, 18,134, 62, 3, +125,186, 37,206,232, 81,192,173, 29,124, 34,138, 88, 51,103,114,227,222,141, 91,140, 23, 84, 30,211,120,155,202,187, 36,222,247, +204,111, 40, 60, 35,136,118,242, 25,193,253,243, 62,135,180,147, 11, 45, 77, 88,153,145, 4, 99,217,162, 40,167,219, 35,207, 62, +188,229,238,238, 72,115,103,191,185,230,102,255,132,113,216,124,229,154,206, 63,100,108,159,249,138,125,188,137,118,133,159,116, + 27,186,178,174, 95, 83, 87,168,207,122, 27,254,160, 27, 31, 4, 54, 2, 59, 21,118, 73,216, 39, 97,151,133,221, 10,232, 89,217, + 36, 97,163,194,152, 60,254,204,137, 81,115,116,228,170, 12, 57, 0,123, 29,191,151,148, 58, 41,110,221,143,247,244, 43, 21, 58, + 95, 42,246,149,105, 29,243,234, 3,166,171, 61,216,219, 7,121,110, 13,104, 88,119,188, 30, 6,221,184, 71,242, 82, 45, 66,205, +130, 85,101,110,153,169, 25,183,179,241,114, 94,120,164,194,163,148,120, 52, 47, 92,231,198,213,100,252,114, 50,158,247, 56, 70, +249,130, 95, 75,239, 56,164, 24,123,224, 91, 98,124,159,202,119,180,242, 84, 26, 87,222,120, 46,206,111,150, 19, 47,172, 65, 91, + 98,156,155, 50,181,181,112, 55,131,243, 20,195, 34,155,138, 77,222,226,214,152,230, 35, 57,143,152,133, 46,124,183,217,114, 90, +102,126,220,156,159,171,240,247, 36,254, 91,113,254, 7,156, 63,243,224, 48,180, 7, 59,246,222,123, 94, 86, 20, 93,175,173,171, +231, 58,176, 47,202, 48, 36,234,161, 97,181,134,223,185,198,124,122,169,141,156, 50,170, 41,198,218,103, 27, 85, 33,107,233,190, +234, 49,109, 41, 9,182,227,150,172,133,227,225,196,105,153,192,157,106, 21,233, 11,243,165, 46, 76,203, 41,118,228,110,231, 23, +204,220,144, 53,246,212,252, 21,101, 69,236,203,171, 53,198, 97,195,254,106, 23,122,249,121,238,247, 37, 88,242,231, 34,113, 5, +120,235, 62, 50,170,136, 73, 92, 95,177,193,103,189,233,139, 61,169,147, 68,227,249, 23, 9,233,160, 95,228,129, 97,177, 27,224, + 62,244, 98,121, 68, 25,212, 24, 60,248, 39,185,191, 7,149, 24, 91,111,204,184, 50,227, 49,149,183, 12,158,211,120,225,153,151, + 40, 79, 89,248, 22, 11,191,241,129,247, 40, 60,147,196,242,192,126, 72,190,240,115,168, 79,219, 6, 97,145, 3,149, 35, 41, 73, + 20, 97,139,241,252,217, 11, 94, 62,191, 15, 29, 55,202,205,238, 17, 55,251, 39,231,181,200,155, 48, 53,126, 21,224,243, 87, 21, +108,223,148,194,225, 19,111,203,255,248, 45,207,235, 8,232, 9,216,118, 32,191, 82,184,202,194, 85, 86,118, 73,217,101, 97,171, +202,174, 4,160,111,178,178,201, 29,208,241, 56,152,146,176, 73, 97,250, 81, 82, 58,143,212, 3,196, 21,209, 96, 88, 71, 23,214, +161, 66, 46,218,181,104,188,195,117,204, 17,240,176,219,164, 39,112,173, 61, 98, 66,113,229, 34,242, 17, 64, 46, 36, 39, 23,137, +224,140, 94, 48, 12, 37,126, 79,201,194,166, 58, 59, 53,174, 21,174,129,107,109, 92, 9,236, 84,217,107, 99, 35,141,159,157, 26, + 31, 89,140,161,191,168,215,102, 45,166,246, 56, 79,104,188, 43,141,111, 75,227, 70, 26, 59, 26,137, 70,241,202, 95, 25,252, 88, +156,255,107, 90, 72, 42, 60,221, 63,141,232, 85,175,212, 26,228,180,121,153, 0,216, 14,123,134, 18, 44,242,195,241, 14,155,140, +113,168, 36, 77, 60,218, 93,179,180, 70,173, 75,143, 48, 85,126,236,149, 95,153,243,255,153,241,239,179,242,215, 40,123,228,108, + 31,219, 30, 0,227, 57,173,172,119,235,201,131, 20, 89,106,165,214,137,227,114, 10,130,164,198, 65,173, 41, 5,233, 9, 9,199, +181,206,130,119,177,243,104,157,181, 56,235, 93,243,105, 62,241,252,229,115,158,221, 61,191,200, 28, 69,104,110, 17, 77,107,199, + 75, 92,235, 26, 97, 30, 51,133,144,160,117, 67,154,245,251, 15,223,179,247,199, 3, 31, 62,251,144, 71,143,110, 98,253,147,148, +121,169,136,106,247,125,191, 48,173, 53,105,140,215,123,105,227,189, 59, 23, 82, 15,173,105,125,154, 20,187,246,218,234,153, 19, +162, 52,118,205,216,152, 95, 72,163, 56, 3,194, 32,107,151, 46,221,201, 47,166, 29, 43,224,103, 86,174,100, 2,141,130, 39,123, +101, 43,198,117, 51,158, 48,243, 2,229, 5,137,107,140,199, 24,111,123,229, 61, 47,252,146,194,157,166, 7,211,150, 47,242, 12, +114,154,204, 44, 28,169, 18,156, 7,245,194,233, 48,241,226,131,151,220,221, 79,221,181, 79,185,218,221,240,104,255,148,146,202, +107, 55,106,255, 60,187,247,252, 13,208,190, 62, 35,246,127,113, 76,253, 26, 23, 77,127,232,227,145, 62, 90,223, 10,236, 20,174, + 19, 92,103,229, 42, 43,251,156, 46,157,121, 74,108, 74,128,249, 54,117, 96,215,232, 50, 50, 70, 86,163,168, 50,164, 76, 78, 57, +198,231, 34, 29,108, 57, 39,101, 33,221, 19,185, 91,121,154,247,253, 99, 55, 53,161, 19,167,194, 69, 84,250,225, 25,157,183,120, +200,153, 52,197,191,115, 3, 81, 71, 45,198,180,154, 58, 59, 89, 4,235,191, 83,251,130,211, 17,164,133,217, 69, 50, 33, 37,167, +100, 99,235,176, 37, 62, 35,156,196,201, 2,114, 50, 62,108,254,137,192,254,199,146,226,214, 99,172,224, 60,194,120,151,133,183, +104,220,208,216,184, 81,188,145,168, 36, 49,170, 27, 87, 34,252,181, 52,126,165,194,135, 18,187,225,161, 20,110, 15, 71,166,249, + 68,243, 24,107, 15, 41,211, 60, 50,197, 85, 19,199,122, 66, 45,110,247,106,119, 67,210, 28, 97, 49, 52,146, 38, 74, 41, 12, 62, +114, 90, 78,252,109,157,248, 13,133,159, 52,227,191, 79,194,119, 59,168, 71, 34, 90, 20, 81,169,131,188,244, 16,150, 85,207,190, + 53, 35, 79, 19,230, 21, 29,135,136, 94,197, 41,189,248, 50, 51,106,139,168,212, 88,179, 12, 23,169,146,199,148, 33,229,196,227, + 71,143, 41, 37,243,155,247,127, 77,173,115, 55, 28,137,201,206,218, 53,187,202,111, 25, 18, 8,225, 24,231,102, 44,205, 62,238, + 80,116,169,201,195,150,182, 53,230,101, 14,199,183, 94,104,230, 92, 72, 57,200,135,151,145,190,224,210, 29,238,172, 97,107, 23, + 38,222,247,236,130,245,224,118,247, 11,240,131,144, 29,246, 45,174,173,220,159,183, 44, 66, 17, 24, 53,184, 39, 27,137,241,251, +153, 56, 7,100, 4,149,181,136,117,220,181,231,206,107,128,187, 26,163, 85,174,172,241,216, 26, 55, 36,158, 83,185, 33,243,132, +133,119,200,252,194, 70,126, 37,153,147,164,139, 41,211,159,152,168,108,214,104,105, 66,242, 66,147, 37, 72,146,150, 56,221,157, + 56,220,205, 28,143,241,124, 35,202,213,254, 49,143,247, 79,201, 26,252,133, 55,241, 99,125,190,243, 87, 1, 4,223,196,177,254, +167,186,120,221,191,240,241,236,231,117, 91,235,120,125, 20,216, 11, 92, 43, 92,169,112, 61, 8, 87, 57,177,203,137,221,160,236, + 75,102,219, 71,237,219,148,216,102,101,204,210,187, 11, 24, 20,214, 94, 64, 37, 58,147, 8,237,136, 81,250,217, 30,198, 29,151, +203,124,249,162, 93,183,248,211, 46,173,132,232,197,185, 43, 40,215, 29,208, 33, 58,116,160, 57,189, 11, 55,212,122, 39,169, 9, + 81,101, 69,159,238,208,121, 25,203,103,239,221,189, 83, 91,140,254,135,110, 58,146, 18, 12,197,207,178, 59, 85, 3, 26,237,212, +248,176,217,231,106,219,249, 42,160, 39,156, 61,198, 59,132, 73,204, 35, 26, 27, 26,197, 90,248,170,123, 11,194, 25, 80, 45,198, +177,223,182,202,127, 53,110,248,155, 92,184, 59,220, 49, 47, 19,199,249, 64,179,138, 56,140,195,150,156, 75,228, 66,215,133, 58, + 31, 48,115,174,246,143, 49,107,188, 60,190,100, 83, 54, 56,241,243,164, 78,157, 22, 68, 18, 25, 37,141, 59,126,233,206,255, 98, + 71,222, 39,243,239,197,249, 97,247, 16,176, 51,219, 90, 72,238,103,137,161,246, 14,126, 35,194,141,102,182,154,131, 73,222, 83, +205,220,141,105, 58, 70,127,171,218,201,142,137,146, 50, 70,223,171,227, 97,109, 43, 97,156,163,170,241, 26,106,116,222,218,245, +239, 96, 81,173,157,165,152,253,103,253,122,138,184, 76, 63, 95,235,222,175,133,146, 50,110,113, 27,215,251, 27,198, 60,196, 78, +222,253,108, 30,146,147,118,209, 90,252, 55,125, 92, 47,170,104,247, 64, 8,169,165, 82,205, 2,160,250, 62, 61,169, 6,206,219, + 58, 85, 50, 70, 96,103, 70, 89,221,233, 86,121,167, 40,131, 40,131, 6,177,112,144, 88,119,101,244, 12,254,233,124,209,120,151, +110, 42,234, 33,219,115,241,144,252, 89, 99,104,141,173, 53,110,172,241, 28,227,138,204,213,185,115, 47,252,138,194,251,188, 2, +238,159,247,153,163,130,102,167,250,137, 60, 26,195,184,161,181,129,227,225,192,233,118,230,254,246,192,188,180,190,146,200, 92, +239, 31,243,248,234, 73, 7,116,255,131,198,158,255,210,120,251,117,255,120,237,188,223,223, 52,163,152, 63,246, 54,252,211,116, +194,175,193,164, 97,189,252,181,239,240,118,125,188,126,157,224, 38, 41, 87, 89,216,103,101, 95, 18,187, 33,177, 43,153,253,144, + 3,220, 75,128,249,144, 36, 88,235, 34,157,188,214, 83,178, 86,175, 78, 4,239, 29,241,154, 59,189, 2,114,116, 97,151,150,234, +242,252,121, 32,122, 39, 50,177, 54,246, 93, 15,109,205,112,107, 61,139,187, 51,146, 93,176,160, 96,227, 45, 64, 70, 69,241,176, + 63, 35,149, 18,191,123, 5,129,126,172,175, 7,153,105,223, 18,247,187,147,128, 77, 39, 67,101, 17,178, 26,162,142,171,178, 40, + 76, 7,184,109,246, 71,189,166,191,207, 89,111,131, 7,155,153,133, 39, 52, 54,222, 24,168, 12, 52, 6,140,220,245,206,213, 96, +145,139,164, 42,153,243,175,106,227,231,185,242, 79, 45, 70,238, 46, 22,143,183,119,143,138, 48,142,123,100, 43, 76,203,196, 60, +207,148, 50, 48,207,145, 48,181,116,205,245,118,220,128, 11,247,211, 61,238, 75,247,101,143, 78,243, 94, 18,255, 59,112,168,206, +255, 92,148, 31,118,102,183,118,144, 84, 17,212,122, 47,219, 89,206, 5,225,233,118,199,117, 82,142,117, 2, 98,220,159, 52,133, + 79,186,134,201, 80,109,171, 82,161,174,255,152,172,225,255,110,110,220,222,189,196, 12,188, 5,120,101,205,108,135,109,140,222, +143,119,212, 86, 81, 9, 98, 91, 78,193, 66,111, 13,106,143, 75,149,117, 28,223, 1, 55,139,178,219,238, 16,163,243, 15, 34,179, +189,148,145,236,153,211, 60, 33,248,121,159,190,178,216,173, 23, 14,222,115,236, 87,246,157,177,202,253, 86, 64,122, 32, 15, 86, + 63, 71,190, 14, 6, 59,131,226, 65,142, 11,231,190,224,155, 20, 85,138,210, 59,116,206,126, 14,169,171, 11, 30,130,175, 99, 36, + 9,165,135,106, 47,148, 73,104,107,168, 52, 82, 91, 24,168,236,172,114, 77,227,138,196,190, 79,124,222,246,198, 47, 24,248, 5, +153,231,228,243,190,253,143, 61,154, 86,191,136,214, 26, 77,102, 36, 47, 72,114,174,247,143, 81, 81,158,127,244,140,151, 31,222, +113,188, 15, 25,162, 19, 17,193,215,187, 39,220,236, 31,159, 19,251, 62,143,247,212,167, 58,191,191,132,130, 32,191, 73, 0,248, +117, 44, 26, 94,167,231,206,123,197, 63, 2, 87, 2, 55, 9,110,146,112, 93, 98, 95,190, 79, 49,102,223, 15,202, 54,103,246, 67, + 98, 55, 20,182, 37,177,201,137, 49, 43, 37,175,110,110,171,246, 54,246,123,241,181,158, 15,206, 0,121,195,155,119,178, 90,128, + 58,221, 65,236,242,102,146,222,145,251,101, 37,190, 90,140,245,174,169,137,157, 65, 93,196,130,129,172,142,171, 69, 94,177,201, +197,103, 65,149,220, 15, 82,111, 74, 78,209,161,123, 74,120,125,192,166, 38, 78,226,149,228,196,131, 98,103, 76,177, 87, 45, 25, +164, 56, 20, 99, 81,229, 96, 51, 63, 62, 46, 76,230,159,203,235,115,217,157, 55,222,165,242, 45, 22,174, 58,160,143, 84, 54, 52, +114,215,227, 63,220, 3,175,174,121, 14, 84, 21,198,218,248, 81,109,156, 54,133,159, 77, 19, 57,133, 79,124,179,120,254,143,211, + 17,115,103, 55,110, 25,210, 64,149,202,188,204,184, 27, 67, 30,187,245,106,127,252, 42,236,198,109,215,136, 87,142,243, 49, 66, + 54,202,134,217,157,255,208,140,235,214,216,106,226, 7,122,113, 10, 12,143, 2, 9, 87, 58,241, 30, 13, 43,140,178, 18, 32,251, + 10,166,187,181, 1,103, 32,142, 14,183,134,119,186,202,217, 26, 54, 28,185,164, 95, 55, 66, 10,223, 58,154, 55,170,213, 78, 2, +140,157,251,144, 71,150, 58, 99, 30, 30,235,235,181,115,230,175,250,229,154, 27,202,136,138,112,170, 71,154, 25,121, 78,236,182, + 91,110,174, 30, 69, 60,108, 93,162, 3, 79,233, 76, 0, 4,239, 38, 54,126,142,179,245, 14,244,120,189,148,103,125,106, 96,102, +232, 58,113, 18, 67, 53,179,177,152,134,229,158,110, 55, 72, 4,199, 20,141, 17,252, 10,232,103, 87, 69,233,133,179,106, 95,107, +172,137,116,218,111,234,226, 90,103, 22,133,220, 26,247, 42,146, 72,182, 80,220,216,219,194,141, 55, 62,194,216, 98,236,168, 60, +246,194, 47,124,224, 61, 41,220,247, 2,252, 51, 73,224,252,130,234, 90,132, 73,143, 84, 57,146, 69,201, 50,112, 60,222,115,255, +242,192,179,143, 94, 50,157,106, 31,208, 57, 57, 13,220,236,159,114,179,123,244, 57,101,158,127,126,103,230,159, 26,232,243,235, + 2, 76, 95,231,157,249, 87,249,185, 91, 47,207, 68,144,222,110, 4, 30, 37,120,148,132,235, 44, 92,149,232,202,247, 89,187, 52, + 45,177, 27, 50,219,146,217,116, 48, 47, 89,187, 9,140,116,211,144,158, 94,229, 22,178,162,126,120,154,117,198,178,173,163,242, +118,161,113,119, 35, 13,239,135,227, 58,200,150, 14,202,235,136, 84,181,251,208,133,184,184, 31, 90,134,213, 5,107, 21, 77, 78, +206, 25,207,134,107,234,172,247,232,238, 93, 4,201, 25,170, 34,106,136, 25, 38,138, 38,185, 20, 27,173,197, 4,160, 73, 47, 20, + 46, 70, 33, 26,148,102,164,155,230, 20, 73,168, 59,212,198,172,194,189, 57,183, 45, 36,111,246, 71,142, 45,141, 48, 24,121, 66, +227, 93, 22,222, 97,225,154,198,142,202, 78, 26, 35, 22, 11,134, 32,132,247,208,148, 96,226,227, 96, 18,187,223,134, 96, 8,223, +158, 42,127, 45, 9,207, 3,183,227,150,205,102, 79, 91, 22,238,235,125,164,164,117,163, 26, 55,103,169, 97,186,146, 52,245, 14, + 19,204, 43,117,169, 52,111, 12,105, 60,131,253,146,226,123,115,157,201,146,240, 97,195,223, 88,101, 92, 22,254,167,161,240,237, +164, 52,239,225, 46,157,236,168,221,172, 70, 13,146, 85,172,171, 24, 18, 17,176,210, 69, 12,253,181,238,182,170,214,205, 88, 30, +176,198,181,131,245, 56, 12, 28, 14, 71,150, 22,118,176,222,156, 67, 59, 70,129, 96,134, 72,120,200,175, 26,247,102,221,191,224, + 99,229, 80,191, 62,144, 62, 57,138, 18,174,213,133,219,229, 14, 23,184,186,222, 33,169,167,194,185,158, 99,110,195,244,199,206, +235,160,243,117,219,184, 68,125,250,234,124,154,122,168,139,197, 10,200, 45, 44,143, 29, 54,205,216,121, 79,186, 35, 0,123,205, +166,207,175,124, 22,132, 44,138, 38,141, 36,184, 7,153, 6,156, 93, 20, 37,166, 49,231,233,147, 92, 38, 11, 34,136, 41, 98, 11, +153,202, 96,141,173, 59,123, 42, 59, 10, 59,140,107,140, 71,222,248, 41, 3, 31, 73, 14, 46,193,103, 0,116, 23, 99,214, 9,145, + 5, 29, 97,212,130, 74,166, 78, 11,207,158,125,196,253,237, 68,107,222,121, 15, 1,232,143,247, 79,184,254,146, 1,253, 83,159, +165,159, 19,216,231,175, 11,248,189,169, 57,230, 95,214,227,122,168, 43,223, 18,227,245,199, 73,120,156,224, 58, 11,215, 69,217, +151,222,153,151,196,190, 68,119,190,201, 1,228, 67, 86, 36,105,151,152, 5, 24,155, 11,110, 15,194, 36,188,117,217,209, 10,230, +214, 45, 55,235,101,154,142,115,246,110,149, 7,113, 90,171, 76,168,143, 19, 3, 96, 35,107,250,210, 33,245, 80,150, 22,230, 35, +222, 22, 68,141, 92, 42, 86, 50, 45, 5,203, 88,187,113,188,164, 68, 22,176,148,195, 6, 84,253,156,198,232,222,176, 22,210, 42, +154, 67, 11,215, 57,107,173, 3, 8,136,198,237,170, 70, 33, 48,104, 38, 3,182, 84, 38,224,190, 57, 31, 45,198,243, 58,115,215, +236, 51,241, 40,214, 98, 96,211,119,231,223,163,242, 14,149,107,137,207, 61,149,161,199,154,174,245, 80,235,128,222, 8,199,188, +214, 83,187,170, 68,177,210, 58,105,224,221,169,242,239, 60,243,159,210,194, 47,239,110,153,172,134,180,108,179, 11,190,128,102, + 22,155,113,156,185,205,228,160,172,193,217,228,101, 9,114, 90, 10, 61, 97, 74,137, 33, 15, 28,231, 3,213,141,177, 12,108,135, +145, 99, 19,254,183,101,226,134,196,255, 40,153, 71, 94,121,101,161,178, 90,123, 51,244,156,244,201,237,172,109, 79,154,250,237, + 6,112,167,164,184,121, 0,165, 40,226, 70,202,137,146, 10,162,122, 46, 24,199, 50,226,238, 17,226,178,122,173,203,195,231,120, + 77, 73,139,206, 57,245,245, 65,248,184,199,179, 57,116,169,212,221,225,238, 65,129,213, 56, 78, 71,222,255,232, 67,118,187, 48, +197,105,116,205,187, 90,119,189,107,125,205, 19, 43,128, 86, 91,247,114,215, 78, 0,180, 87,202,232, 11,200,166, 62,117,218,180, +202,232, 97,170, 84, 68, 40, 26,174,137, 89, 46,132,184, 53,255, 64, 37,138,232, 53,218,117, 53,203, 89,191,214,203, 88, 11, 55, + 65, 82, 76, 68,164, 79,173, 84, 21,109,113,141,136, 40,210, 42,106,149,193, 22,182, 84,182, 20, 70,140, 45,141,157, 27, 63,177, +145, 15, 36,115,122, 16, 51,251,251,174,227,156, 51,170,202,188, 76,152,204,200, 96,228,220, 34,196, 68, 18,184,115,127,119,207, +139,103, 49,110,247,126, 49,184, 59, 89, 51,143,118, 79,184,222,221,188,150,128,254, 73,239,225, 87,109,180, 63, 11,208,231, 55, + 25,204,191, 25,181,127,254,183,245,106,103,126,173,240, 88,225, 73, 22, 30, 13,202,117, 82,246, 69,216,103,137,189,121, 73,236, + 75,102,200,169,143,157,163,251,213,206, 78,119, 55,194, 6,219, 47, 44,116,237, 3,201,102, 96,118,118,219,114,119,172, 85,172, + 45, 96, 97, 9,186,222, 41,145,135,149, 61,231, 34,160,153,225, 86,241,222,133,165,148,201,101, 64,211,154,103,173,180,197,177, + 42,221, 91,187,209,106,195,150, 74,202, 1, 64, 41, 41,154,115,144,231,132,112, 15, 75,189,147,233,221,185,187, 69,240,135, 25, + 94, 29,106,236,104,205, 91,236, 3, 83, 0,249, 26,247, 41,125, 63,159, 69,120,162,112,116,231,214,156,239,205,153,223, 76,149, +227, 49,156,196,244, 51, 0,250, 53,141,239, 82,249, 62, 11,111, 75,229,137, 84, 30, 73,101, 47, 17,123,186,210, 14, 76, 30,128, + 57,177, 75,175, 46,204,154,177,180, 67,210,208, 59, 99,199,219,130, 47, 19,111, 47,141,191,242, 5, 74,229,103, 73,113,205,136, +166,112, 66, 19, 97, 40, 35,155,113,203,105,158, 88,218,140,186, 68,218, 91,223,101,239, 55, 87,140,227,142,211, 52, 49,205, 39, +166,101,162,214,198,144, 11,205,157,187,227,109,132,165,148,194,255,169,137,180, 84,254, 59, 49,174, 53, 81, 61, 2,117, 30, 74, +167,138, 74,216,184,118, 47,245,149, 24, 39, 2,154,114,200,151,156,190, 15,207, 33, 21,115,103, 28, 70, 52, 41,247,135, 3, 39, +155, 56,157, 78,231, 3,117, 51,108,208,148, 56, 28,239,169, 86,123, 98, 87,239,172, 85,241,211,161,111,111, 12, 68,200,169, 80, + 9,185,158, 89,152,223, 84,171,193,177, 75,202,110,220,178, 25,118, 88,109, 76,167, 5,149,232,128, 5,163, 73,163,250, 18, 0, +109, 33,141, 83,209,216,213, 35,193, 15,240,138,159, 21, 28, 61,176,166,119,243, 69,148,156, 19,101, 49,174, 60, 12,155,178,116, +215, 68, 89,237, 96, 99,199,158,220,201, 26,124,142,243,243,196, 67,187,226, 14,238,242, 74, 71,125, 94,157, 68, 97,163, 46, 17, +158,179, 26, 49,157,215, 77,145, 79,158,204, 24,152,217, 96,108,188,176,193,216,209,248,133,143,252, 74, 7, 94,106,166,245,191, + 46, 15, 38, 19,238,134,102, 40, 91, 69, 50, 28,143, 71, 78,237,150, 65, 71, 54,195,134,161, 20,150,121,225,197,243, 91, 94, 62, +187,227,120, 88, 88,119,106,110, 70,206, 3,143, 94,227, 14,253,139, 58,219,243, 55,251,242,175, 70, 71,254,186,140,217,181,131, +249, 35,129, 71, 25, 30,103,137,221,121, 78, 92, 23,229,170, 40,187, 34,103,210,219,152, 19, 67, 78, 93, 75,187, 18, 94,162,243, +240,214,119,227,226, 31,139, 62,109,235,215,189, 67,167,119,212,102,134,123,165, 45, 17,138,161,190,178,145,123,194,151,131,244, +208,149,181,163,143,156,233, 62, 68,214,232,206,195,236,165,128,230, 51,167, 78, 73,152,231,144,201,204, 13, 90, 24,202,120, 86, +188,100, 6, 21,148, 68,234,163, 63,145, 96, 46,199, 68,182, 79, 16,204, 98,191,111,172,206, 52, 49, 17, 72,196,122, 33,165, 0, +118,125,104,174, 34, 92, 73,226,105, 7,245,119,183,133,239, 76, 11, 31,205,141,151,205, 63, 21,160, 43,206, 19,140,127,197,204, +247,101,225, 29,105,188,165,149,167, 90,185,194, 46,129, 42, 61,147,187, 73, 16,227,170,192,226, 17,109,186,244, 4, 53,215, 56, +104,171,102, 90,202, 88, 77, 49, 94,111,198, 83,131,127,107,202,190, 20,254,201, 27, 47, 79,247,140, 41,145, 37,161, 41,124,224, +125,181,146, 17, 65, 37, 99,182,224,110,156,234, 9, 19,176,230,212, 22, 99,123, 17,167, 90,163,205, 21,247,202,152, 71,174,199, + 61,191,106, 11,255,235,124, 68,114,225,191, 33, 36, 89, 11, 33,253,107, 43,135, 99, 53, 90,209, 20,187,226, 84, 66, 13,225, 70, + 78, 67,196,198, 90, 37,161,148, 50, 96,102, 44,117,102,154,151, 94,104, 72, 0,197,221,115,154, 89, 39, 49, 22, 90,181, 51,176, +214,254,184,147,102,138,228, 94,192,244,128, 23,107,221,239, 32,246, 24, 75, 91,122,167,219, 77, 19, 86, 59, 89, 9, 9,166, 85, + 99,177, 88, 14,205, 82, 35, 69, 76, 42,219,205,134,148, 18,149, 74, 74,153, 65,228, 44,199, 91,187,181,149,244,185, 42, 98,112, +235,134, 59,137, 1,227, 90,132,161,143,221, 87, 64,207,107,135, 46, 68,152, 77,239,236,117,237,208,187,186,227, 12,204,178,190, +163,224,252,227,117,162,165, 23, 39, 69, 89,125,251, 87,174, 9,142,164,152,158, 37, 42,131, 57, 59, 15,211,165,103,154,217,183, +137, 27,111,188,173,194, 79,115,230, 61,132, 83,109, 23, 38,127,129,218, 38,102,153,153, 91,220,183, 69, 38, 26, 11, 75, 19, 6, + 43,220,221,158,120,249,236,158,151, 47, 14,212,165, 79, 46,196,113, 11,103,195,199, 87,111,113,189,189, 38,173,145,169,111,192, +199, 39,242,152,126,199,227,204,223, 68,120,126, 53, 30,203,151, 57,102, 63, 19,224,122,103,254, 36, 5,152, 63,202,210,117,230, +112,149,115,144,225, 6, 97, 83, 18, 99,142,241,159,166, 24,175,175, 7, 67, 88, 90,246,177,100, 39,182,173, 7,159,116,134,187, +112, 49,127,241,142,186, 1,212,134, 89,141,142,120, 29,193,251,106, 34, 34,103,135, 55,179, 72,197,114, 15, 32, 81, 5, 41,138, +102,237,197, 69, 28,136, 86,207,208,128,144, 34,114,209, 26,226,134,152,247,221, 61, 36,201,100, 29, 40, 50,144,165,160,157, 47, + 28,163,255,190,189,119, 11,128,183,245, 39,209,134,104,151, 73,105, 10,111,112, 13, 71,156,232, 36,123,126,247, 96,194, 13,194, + 91, 6,111, 87,227,221,109,225,189, 99,229,254,212,248, 67,206,166,214,247,231,239, 82,249, 11, 22,190,175, 11,223,210,202,183, +165,242,150, 54,118, 93, 15,127,166, 31,172, 93, 58,176,104,116,233,115, 39,161,197,136,182,162,237,192,108, 19,139, 36, 22, 18, + 75, 63,228, 91,159, 50, 92, 53,248,225,212,216,100,225,255, 85,229,185, 53, 22, 91, 24,108,232,211,151,198,118,216,112,154, 23, +198, 50, 98,150,152,150, 40,126, 42, 51, 72, 24,175,136, 4, 99,222,113,198,178, 57,179,156,171, 53,166, 58,241, 43,129,255, 3, +104,173,242, 35,141,129,254,210, 39, 11,181, 63,160,146, 18,185,187,186,173,147, 32,107,141,165, 46,156,236, 20, 76,248,149, 57, +221,181,235, 75, 13,240,125,124,245, 24, 85, 9,195, 23,119,148,196,188,204,157,179,209,197,144, 61,134, 22,143, 98, 50,140,140, + 56,255, 25,174,114,145,217,110,114, 1,223,171,237, 53,181, 45,204,203,132,160,108,202, 35, 68,186,254,188, 25,173, 25,158, 20, + 18, 44,169,157, 37,107,227, 56,160,195,134,219,195, 29, 83,157,250,117,212,253,232, 87,153,157,244,253,147,132, 3,221, 40,137, + 61,137, 34,221,120,230,188, 59,231, 76,146,203,170,164,181,176,198, 47, 50,189,174,201, 95,203,234,112, 80,236, 18,191, 78,106, + 89,101,181,253,202,142, 85,148, 59,233,204,153,136,215,100, 2,102,132,147, 56, 39, 42,199,164,204, 41,113, 90, 22,238, 49,234, +104,104,154,112,131,153, 25,167,133,247,186, 24,139, 78,193,188,119,101,171, 59,118,219, 61,105, 17,124, 49, 14, 47,238,121,241, +236,192,253, 97,234,158, 17,244,200, 93,103, 83,182, 60,190,122,202,126,123, 21, 60, 14,127,115,140,101,254,208,145,253, 39,238, +212,191,233,156,191, 94,221,249,191,116, 59,171, 97,204,181,194,211, 44, 60, 93,193,188, 8,215, 41, 58,243,109, 22,174, 74, 58, + 7,172,148,188,218,176, 94,210,176,154,247, 17,250,106,121,235,177, 51,167, 3,226, 58,190, 59, 31, 54,189,119,240,213,143,213, +157, 86, 35, 20,195,106,128, 54,103, 2, 21, 29,212, 29,218,202, 78,142, 14, 74, 10,120, 78,200,144,201, 57,118,114, 66, 2,235, + 18, 52,139, 29,187, 22,165, 53, 80,175, 88, 91,249, 2, 66,214, 76,209, 66, 73,165,231,110, 7,203,186, 55, 74,125,244, 23, 70, + 41,235,247,188, 93, 30, 3, 73,206,163,119, 73,157,137,223, 53,235,162, 9, 65, 73,230,236,128,199,205,120, 4,236,158, 94, 0, + 0, 32, 0, 73, 68, 65, 84,123,147,249,246, 50,242,206,177,242,193,108,220,183,223,237, 81,112,222, 85, 19,210,193,239,179,240, + 95,200,194,247,180,242,174, 46,188,171,141,167,210,216,201,101,127,206, 43,123,116,243,176,208,173,190,230,206,203,197, 57,239, + 76,246,146, 75, 49, 0, 88,183,234, 19, 96, 99,240,231, 11,236,114,225,199,201,249,160, 40,146, 10,117, 57,133, 21,171,245,228, + 49, 43, 33, 33, 43,219, 78,204,202,212,218,163, 82, 33,146,210, 72,108,134, 45, 57,101,142,243, 61,247,211, 61,224,148, 50,242, +107, 85,254, 6, 16, 73,252,192, 5,177, 22,221,190, 8, 53, 37, 84, 18, 88,139, 34, 17,168, 75,101, 90,166, 88,189,116,134,187, + 88, 88,189, 66,228,170,139,118,187, 88, 51, 90, 13,239,244,156, 50, 67, 30,195, 36,134,136, 64, 13,211,154,194, 92, 43,222, 83, +249, 86,194,222,185,240,228,178, 7,213, 78, 48,116,140,218,130, 67,144,115, 97,183,221,177,221,238, 1,167,221,221,210,250, 94, + 95, 83, 88,228, 77,117,194,150,152, 81,137,104,172, 35, 90,120, 8, 15,227,128, 32,204,243, 41, 2,101,186, 89,204, 26,201,154, + 36,177, 79,137,125,170, 12,205,186,148,237, 66,144, 11, 96,239,154,116,239,118,176,253,250, 57,239,112, 87, 99, 38, 56,171, 69, + 86, 15,250,135,177,171, 34,107, 70, 66,172, 52, 38,119,158, 39,227, 67, 50,191,113,225, 55, 41,241,161, 21, 62, 82,120,222, 26, + 7, 17,238, 84,121,145, 70,166, 52, 80, 49,230,118,143, 73, 98, 73, 11, 66,195, 53, 3,161, 52,217,109,175, 35, 63,158,200,100, +104,203,192,203,151, 47,121,249,252,200, 60, 7,199, 33, 0, 61,238,216,110,216,243,248,250, 41,187,205,254,108, 32,245,117,251, +248,147, 58,202,125,179, 43,127,115, 30,219,218,157,239, 4, 30, 39,120,171, 40, 79, 6,229,113,150,176,116, 77,244, 81,123,102, +155,194,107, 61,231, 24,243, 73, 31, 71,122,227,108,102, 65,239,180,227,205,104,231,170,191,207,213, 3, 4, 59,120,187,248, 3, +123,208, 32, 1,185, 5,233,172, 46, 21,107,190, 10,119,227,128,117,143,157,170,117, 54,124,239,146, 61, 1, 57, 33, 99, 66, 55, + 3,170,133, 68, 70, 40,136, 43,222,226,241, 15,253,160, 90,168,212,197,207,134, 50, 73, 2,128,114, 42,100, 45,193, 60,238,163, + 73, 89, 41,227,235,253,107, 81, 71,152, 61,176,252,236,250,106,137, 36,153,181,109,143, 67, 51, 41, 97, 58,175,136,133, 78,252, +102, 76,188, 67,225,131,197,249,246,118,225, 23,119, 11,135, 30, 24, 34,191,103,228, 94,112,254,156,133,191,146,133,239,166,153, +111,107,227,187,178,240,150, 24,195,170, 36,123,149,111,208, 95,219,238,110,219,201, 82, 29,203, 61, 98,108, 90, 26,209,178,131, +188,129, 84,160,117,255,247,101, 6, 91,192,133,214,125,195,191, 83,157, 29,202,207, 74,225, 61,129, 91,143,231, 14,129, 49, 23, +160,177,116, 99,157,101,153, 73,210, 16, 73,221,162, 53, 51, 14, 68, 32, 78, 91, 88,218,210,253,205,165,131,142, 97,154,120, 63, + 23,254, 78, 10,190, 24, 79,220,112,205,212,148,185, 75,145,141,190, 88,197, 91, 67, 83, 1,156,185,134, 87,253,144, 7,134, 18, +198, 47,218,237, 84,153,227,247,111,203,150, 70,227, 56, 29,104,173, 81, 74,232,219,189,179, 19,252, 12, 98,122, 22,238, 75,151, + 90,174,126,235,110, 1,126,171,150, 30,205,103, 30,200,113, 62,162, 18,250,252,221,118,215,239,215, 76,109,149,218, 22,114, 42, +148,177,208,168, 76, 75,236,218, 55,101,236,102, 51,173, 7,230, 20,198, 52,198,254,190, 12,120,141,162, 34, 9,100, 77, 36, 29, + 24,203,192,213,210,216, 63, 0,243,243,167, 8,121, 53,224,233,239,108, 89,187,241, 7, 5,162,116,165,192, 25, 32, 30,252,127, +164, 22,198, 53, 82,129,151,230,124,224,141, 95,120,227,231,146,248,177, 36,126,102, 11,207,180,240, 92, 18,199,228, 84, 9, 5, +133,202, 90, 24,122,247, 12, 8, 21,193,152, 50,201, 87,222, 0, 36,205,152, 59, 37,101,198,178,225,238,246,150,151,247, 39,110, + 95, 30,185,191, 61,208,108, 45,160,162,104, 94,131,131,110,174,214, 96,150,207, 14,130,175,158,133,175,118,190,191, 47,187,253, +117,155, 8,124, 46,142,114,111,114,183,252,166, 50,217,255, 16, 48, 23,194,202,245, 70,225,105, 14, 64,127, 60, 36,110,178,114, + 83, 34,104,101,159,132,109, 81,134,158,148,166,186,198,119,118, 54,122,151,139, 73,207,179, 94, 89,236,120,200,203,100, 53,211, +104,214, 71,229,221,108,195, 47,218, 88,149,245, 16, 93,157, 61, 46,227,232,117,135,126, 46, 6,154,157, 15, 94, 87,104, 89,104, +163,162, 37,163,195, 6,242, 24,160, 46, 3,137, 12,174, 88,138,158, 42, 67, 31,233, 55, 90,171, 88, 51, 82, 86, 68, 50, 57, 15, + 17, 12, 34,145,169,173,214,187,108,239,222,239,157, 28,229,213,176,122,225, 0,196,253,144,115, 87,235,234,184,172,243,248,245, + 0,229, 34,149, 83, 97,147, 19, 79, 81,222,105,194,219, 83,229,233,221,196,135, 75,101,118,249,173,215,174, 17, 54,179,127, 46, +149, 31,201,194,247,117,230, 59, 90,249,174, 46, 60,234,108,231,135, 60, 5,228,193, 58,229,161,157,233,249, 32,144, 80, 31,168, + 82,203, 13,108,159, 32,195,134, 68, 98, 91, 6,118,155, 45,158, 18,135,195, 29,119, 31,254, 6, 63,133, 76, 43,128, 87,185, 49, +229,135,147,113,157,156,127, 84,229,206,157, 33, 13,140,195,150,105, 57,113, 60,222,247, 48,149,132, 36,101,200,137,165,206,161, + 58, 16,200, 57, 99,222, 48,115,146,228, 88,133,116,254, 67, 12, 84, 18, 31,228,204, 79,164,241, 97,115,238, 69, 57, 42,124,132, +115,236, 69,225,210,102,152, 37,186,226,113,131,185,197,254,187,239,128, 87, 7,185,172,233, 12, 52,181, 53,150, 22, 29,178,153, +131, 84,134, 28,126,236,199,249,216,179,204,141, 82,134,158,243, 30,215,246, 88, 70,150,101,102,182,153,245,229,185,218, 94, 51, +148, 13, 47,239, 94, 70,248, 75,183,122,117,115,166,233,196,204, 28, 68,187, 96, 97, 32, 41, 78, 96,171, 65,126,219,141,219, 46, + 5,236, 12,113, 29, 81,194, 9,111, 90,166,120, 95,230,145, 50, 20,220,106, 0,117, 10,178,229,141,195, 19, 21,246,146,217, 74, + 79,100, 19,239,113,194,209,157,235, 43, 38, 51,235,196,253, 65,162,237, 43,105,137,241, 28,157,220,121,207, 27,255,236,206, 63, +153,241,143,117,230,231,110, 60, 19,229,152,224,208,140, 99, 93,162,131, 95,115,235,215, 64, 26, 66, 25,146, 4,172, 77,136, 53, + 70,205, 65,220, 43, 3, 73,243,121, 7, 62, 45, 39,142,167,123,238, 95, 28,120,249,236,158,251,187, 35,117,177,254,252,134, 39, +164, 24,140,105,228,250,250,134,235,221,163,115, 48,203,239, 2,216, 79,116,187,252,125,211,201, 63, 48,247,252,211, 20, 2, 95, +228, 71,254, 6,208,191, 94,128,254,137, 23,132,192,181,196,168, 61,192, 92,120, 92,148,235,156,184,206, 18, 36,184,164,140, 41, +118,116,154, 34,170,212,186, 86,252,226,234,118, 73,193, 90,201, 53,190, 26,116,172,255,109, 22,204,241, 86,113,218,153,100,230, +235,206, 82,162,186, 79, 73, 47, 73, 88,189,119,240,158,186, 38,254,208, 1,164, 87, 2, 69, 97, 72,144, 21, 43, 5, 52, 6,145, +238, 9, 35, 33,154, 99,212, 40, 65,108, 59,239, 89,231,133,186,196,136, 54,137,162,121, 32,231, 33,200,113,250,112, 52,221, 9, +114,214,203,152,230, 23, 64,119,187,128,229, 57,191,219, 73,166,177,255,244,139, 9, 14,235,180, 34,218,101, 82, 82,174,147,243, +118,131,119, 54,133,119,198,196,123, 34,124,228,191,221,161, 15, 56,127,198,194,143, 88,248,129, 46, 31, 3,244, 53,156, 99,125, + 74,132,143, 7,109,172, 79,151,246,205, 70, 58,131,189, 65,218,176, 92, 61, 97,179,123, 18,242,168, 97,128,113,164, 74,162,169, +194, 92, 56, 74,194, 68, 40, 18,116,184,218,187,188,193,225,123, 77, 24,181,240,159,179,243,129, 45,188, 60,158,192, 26, 37,141, +108,202,216,179,171, 3,236,166,229,196,210, 59,214, 32, 45,246,252,113, 45,204, 85,168,171, 4, 78, 11, 99, 30, 73,155,129, 95, +233,194, 47,170,112,219,102,142,203,132,107,215,159, 39,193, 61, 8,153,130, 80, 82,194, 61,192, 59, 66, 79,194, 8,213, 58,187, +124,117, 34, 92,230,136,109,237,233, 63, 17,199,221, 39, 40,213,234,121,164,159, 60, 94,203,102,141,212,125,199, 93,172,187,197, + 5, 19, 62,226, 90, 99,186, 32,218,139, 4,135,227,124, 98,174, 51,215,251,107,158,220,188,117, 14, 98,113,156,186, 76,253,113, +199,138,162,117, 46, 64, 78, 41, 76,141,196,144, 36,216,108, 28,167, 19,251,237,142,237,184,165,214, 37,136,125,185,144, 36,138, +237,167,251, 13,143,154,176, 49, 71,173,129,181, 62,201,234,133, 81, 7,107,123, 56,188,233,224,163,244,176, 28, 13,230,253,157, + 25,191,246,198, 63,183,198,223, 91,229,239, 90,227,151,154, 56, 32, 28,187,118, 63,161,104,151,113, 38, 4, 17,163,244,215,183, +182,133,164,165,223,154,245,105, 71, 60, 95, 57, 23,146, 8,155,237,142,148, 51,135,211, 61,203,180, 48, 29, 22,142,119, 51,135, +187,137,121,106,231,171,213,108,141,153,205,236, 54, 59, 30, 93, 61,102,187,217,245, 68,190,215,227,252,124,157,184, 99,249,117, +126, 0,223,140,217,191,184,219, 20,130, 8,247, 36,195, 91, 89,121,123, 76, 60, 42,194, 77,201, 1,232, 93,166, 54,168,144,213, +209, 20, 59,231,120,211, 93,116,228, 52,239, 7, 97,255,190,123,168,162, 59, 88,199,223, 5, 44, 36, 96,214,106,223,143,183,126, + 8, 6, 49, 71,213,161,232,217, 0, 38,117, 3,145,243,238,186,239,129,189,199,170, 98,130,164, 76, 30, 18, 62, 40,154, 83, 0, +113, 42, 36, 15, 54, 88, 19,240,228,103,123, 83, 90,235,135, 82,163,206,115, 68, 98, 54,239,140,226,161, 51,169, 51, 34,233,193, + 86,209,113, 11, 73,210,106,132,115,158, 66,172, 99,255,190,143, 94,101,120,205, 4,180,156,173, 74, 86,132,117,229, 34, 9,234, + 44,171, 81,225,201, 6,158,142,133, 39,155,194,227, 12,183,179,177, 72, 58, 23, 53, 25,231, 7, 52,254,181,206,252, 89, 90,248, +142, 84,190, 35,191, 13,232,242,234, 14,254,183,190,190,120,169, 7, 51, 62,242,209,246,214,216,226, 72,206, 92, 63,121,139, 54, + 12,188,247,222, 47,185,187,123, 65, 61, 29, 72,211, 93,188,214,121,189,145, 88,112,182,110, 12,243, 45, 23,174,154,242,203,100, +252,216, 27,117, 8, 32, 58, 30,239,184, 63,221, 35, 18,251,237, 90, 67,146,228,210,168,109,142,174,109, 29, 21,107,160, 80, 78, + 17, 36, 35, 2,115,109, 28,221, 64, 19,115, 83, 22,175, 36, 87,172, 5,211,125, 51,244,131,190,171, 14, 84, 53,100,146,189,208, +156,150,137,172, 25, 77,137, 86, 23,154, 87,166,249, 68,173,245, 44, 19,107,110, 28,151, 19, 42, 41, 36,112,102,204,109, 97,178, + 57, 10, 72,137,252, 52,179,138, 89,236,220,135, 60,128, 43,135,233,142,211,233,116, 14, 10,146,144, 85,244, 2,182,113, 58, 30, +121, 41, 47,122,166,187,197,132, 70,242,217, 4,168, 89, 4,222,180,214, 66,198,214,139,190,218, 26,173,133,151,249,188, 44,220, +222,221, 71,184,144, 8,194, 72,209,196, 85, 49,202, 32,108, 26,148,217,241, 57, 10, 24,243,152,118,216,131,106,238,161, 39,187, +174, 47,163, 59,247, 10,239, 53,227, 31,150,137,191,111, 51,255,216, 42,239,121,227, 22,165,166, 76,214, 68,145,196, 85, 30, 66, +195,239,176, 25, 70,116,140,194,190,182,153,156,148,156, 7,166,249, 24, 38, 80,174,180,230, 93, 81, 17, 43,168,205,184, 33,231, + 1, 4, 14,247, 7,158,125,244,156,251,151, 39,166,227,194, 60, 7,111, 33, 38, 9, 1,230, 37, 15,236, 54,123,174,182, 87,108, + 54,219,224,103,124,137,157,240,231, 50, 17,253, 19,222,247,252, 58,130,209,155,196,152,255, 42,128,121, 38,252,217,223, 42,194, + 91,131,242,120, 80, 30,151,196,163, 33,177,207, 41, 34, 81,115,216,163,106, 79, 66,195, 35,180,116,101,155, 91,109, 1,212,125, +196, 46, 30,233,104,134,118, 86,175, 99,205,113,171, 88, 13,163, 22,175,157, 77,220,247,173,235,133, 46, 9, 90, 55,125, 73, 67, +130,148,186,229,106,247,153,233,213,255,217,144, 68,149, 84, 18,185, 36,202,160,144,148,166,103, 81, 21,131, 71,110,184,211, 48, + 87, 22,147,216,227,215,133,100,130, 84,163,213, 22, 83, 3, 1,205,153, 82, 74, 39,197,233,165, 59,247,179, 27,249,217,204,198, +108,101,239, 95,122,226, 21,240,173, 5,211, 63,229, 4,150,206, 17,155,146, 82,144,156,114, 9,135,185,245,129,105,116,245,215, + 67,230,157, 49,243,164,100, 30,151,196,251,167, 70, 85,199, 68, 58,160, 87,254,141, 78,252, 64, 43,239, 74,100,160,223, 72, 72, +187,180,223, 13,121,101,103,250,251, 62,244,204,159,232, 70, 59, 14,122,255, 17, 86,103,218,176,227,126, 57,177,136,176,220,191, +128,211, 68,169, 11, 59, 42,150,132, 5,161,226,212, 53,171, 30,168,125, 76,186, 53,248, 11, 23,174,211,200,207,146,114,107, 97, +159,178,142,182, 23,159, 80,141,209,178,104,248, 23,168,102,106, 93,152,125, 6,129, 33, 23,198, 50,128, 8,115,109,216, 50, 71, +199, 45, 26,113,170, 15,116,225,170,134,144,187, 76,171,219,248, 90,248,248, 75, 46,204,115,116,196, 36,233, 46,109,241,184,199, +178, 97, 28,166,240,180,103,173,245, 26, 85, 26,212,149, 68,102,231,180, 53,115, 39,231,129,146, 11,109, 29,177, 55, 99,183,217, + 81,114,225,249,253, 11, 90,107, 49,246, 39,238,159,246, 42,171,182,134,181,152, 66, 73,159, 64,153,199,123,166,181, 0,239,109, +217,198,253,235,197,161,138,246,213, 84, 99,232,191,243,180,156,104,173,178, 25, 55, 12,213,104,110, 76, 10,183, 42,108,212,217, +136,133, 6,254,156, 70, 0, 65, 69,236,187,116, 63, 11,216, 56,209,248,181, 11,255,232,141,255, 56, 47,252,157, 85,126,238,198, + 76,232,209, 53,101,118,121,100,151, 10, 67, 30, 25,134,130,170,114, 60, 29,168,117, 97,191,221,177, 25, 55, 76,243,196,225,180, +160,106,108,139,178, 43, 59,146, 10,146, 18,211,188,176, 84,167,228,145,195,116, 96,174, 11,199,227,196,237,139, 91, 94,190, 56, + 48, 31, 22,106, 53,172,239, 49,114, 87,134,164, 82,216,239,174,184,218, 93,179, 25, 54, 31,115,220,251,170, 19,226,126,203,255, +227,115, 4,249,252,117, 7,189,175,243, 52, 32,156,199, 66,162,246,214, 32,188, 53, 38, 30, 15,137, 71, 37,115, 53, 94,242,205, +199,238, 74, 21, 93,106, 59,103,188,175,145,145,214,186, 78,187,143,216,165,251, 72,155,199,152, 50,166,210,193, 50,246, 26,146, +180,149,216,182,146,172,253, 33, 35,183,143,209,115, 78,200, 80,162, 99,110, 65,180, 67,186,164,168, 27,206, 36,141,248,204,113, + 76, 12, 67, 33,229,110,106,195,133, 33,155,122,119,226,235,159, 45,198,254, 84,235,118,106, 70,171,118, 78,203, 26,134,129, 82, + 10, 37,151, 11, 41, 70, 4,215, 20,221,108,255,189, 15, 61,192,215,167, 58,120,127, 78,179,138,249, 18,249,217,235,113,218, 29, +238, 68, 21,201,233, 12,238,107,186, 28,173,161, 24, 59,129,183, 54,133,167,155,204,205, 32, 92,139,115,116,195, 36,241,189,222, +161,255, 64, 43,223,214,133,111,107,229, 90,130,241,252,105, 0,125, 61,212,215,196, 51,235,192,147, 16,240,133, 58, 61,167,206, +183, 44,183,202,220,245,207,110, 97, 63, 58,136, 48,119,146,220, 66,252, 60, 0, 61, 54,213, 13,161,115, 36,121,167, 42,165, 45, +252,163,158,120,214,106, 24,187,224,168, 36,182,219, 29, 99, 25,200,154, 57, 45, 19,181, 46, 72, 18, 10,253, 53, 72, 5,119,231, + 84,167,144,141, 1, 37, 9, 75,157,250,232, 56,225, 24, 99,217,144, 53,119,221, 56, 72,206,125, 74,210, 16,139,224, 25,243, 72, + 76, 11,144,236,154,115,133,187,105, 14, 45,120, 39,230,173,110,243, 73, 52,128,219, 26,115,155,227,249,210,112, 84,107, 86,209, +174,112, 48,119,170,157,162,184, 72, 81,108, 0,140,101, 12, 89,222, 60,245,128, 32,101,147, 55, 92, 95, 93, 49,183, 5,171, 65, + 38,141, 41, 65, 58, 67,213,210,245,252, 67, 30, 99,122,208, 59,253,148, 51, 5,101,169,245, 18,183,234,241,190,146,121,198,202, +192, 52, 38,102,107,164, 22, 19,179,218,175,183,229, 44,113,139,113,245, 12,220,165,196,123,222,248,251,121,226,111,189,241,115, +129,185,175,198,178,100,198,117, 21,146, 10,219,205,134,161,187,237,165,126, 95, 75,142,125,248,202,156,143,105, 21, 33,136,108, + 70, 78, 78, 46,133,253,118, 68,175, 54,152, 41,141, 66,251,200,120,239,231, 63,227,246,197,129, 58, 53,194, 56, 47, 60,252,159, + 40,124, 43,193, 91,165,224,227, 53, 31,108,111,152,203,134,164,250,198,179,218, 63, 79,242,221,215, 46,208,229,235,178, 51,255, +164,219,187,200,212,224,237,162, 60, 30, 19,143,198,204,205,144,184, 46,137,125, 9,147,153,172, 65, 81,177,190, 47, 94, 45, 91, +233, 44,246, 21,208,237,188, 63,215, 62, 26,227,129, 30, 55, 92,215,172, 46, 23, 29,248, 3, 87, 87,127,184,223,211, 40,213,101, +200,200, 80,208,190,211, 78, 0,121,161,153,227,158, 80, 13, 59,205,146, 18,227, 80, 24,199, 66, 41, 17,197,234,120, 15,129, 89, +233, 80, 65, 2,107, 72,152,173,180, 26,242,161,218,245,199,189,235, 78,154, 24,134,204, 48,108,250,110, 55,180,235,154,114,196, +173, 62,120, 78,229, 12,230,107,254,170,159,131,102,204, 67, 15,125,110, 7, 59,160,139,175, 32,218,147,219,165,219,207,122,116, +235,161,123, 23, 52,193,227, 49,243,246,118,224,209,152,184, 73,198,177,194,181, 59, 63,210,153, 31,200,194, 59,178,240,174, 86, + 30, 99, 12, 15, 0,252,119, 1,250,171, 36, 40, 65, 30,120,203,175,249,228, 61, 21,237, 28,109, 26,175,123, 18, 35, 35,204, 40, + 73, 52,128, 92, 34,167,123,238, 70, 39, 5, 97,118,168,178,118,239, 80,221,169, 34,168,195, 83,148, 31,182,232, 58,167,221,158, +214, 65,211,129,105, 58, 49,137,176,212, 57,118,215,100, 54,219, 45, 67, 30,208, 44, 28, 78, 7, 90, 91,130,140,216,155,240,165, +205,225,228,166, 25,213, 76,216, 0, 41, 42,113, 13, 46, 75, 36,211,231, 46,249,170,214,130, 35,161, 18, 97, 42,162,108,183, 27, +154, 53,110, 15,183, 76,243,220, 19,227, 46,190,231,110,142,201,197,128, 38, 94,243,200, 40, 88,157,221,214,235,214, 28,142,203, + 17, 89,192,194,217,136,165,213,240,168, 95,149, 5,110,148,161,176,219,237, 24,218, 66, 59,213, 0,240,254, 94,205,157, 97,111, + 30, 69,235, 84,167, 30, 78, 20,163,252,237,176,165,148, 33,136,119, 45,166, 19, 67, 25, 17, 96, 58, 77, 28, 72, 28, 74,230,212, + 4, 90, 16,213,170,135,177, 16, 22,179,173,169, 40,239,187,241, 19,155,249,105, 51,126, 65,227,215, 84, 14,110, 33,117,235,230, + 59, 37,229,158,114, 39, 92,239,175,208,164,140,101,228,112, 60,240,242,254, 5,170,177,154,216,110,183,209,181,207, 71,230,122, + 64,112,134, 50,146, 4,170,205, 44, 53,188,248,203, 80, 24,139,226,205,208,235, 45,183, 87, 87, 28, 62,152,216, 58, 60, 73,206, + 91,217,249,139, 2,255,101, 95,253,121, 41,252, 38, 37,254, 33, 9, 63, 17, 56,225, 8, 95,143,143,207, 35, 0, 38,127,221, 58, +216, 55, 29,208, 63,233,182, 86, 71,184, 39, 9,222, 46,194,211,222,157,223, 12,137,235, 33, 12,100,182, 37, 49, 72,140,218,189, +133,145,136, 91,140,215,189,143, 34,207, 78,111,173, 3,123,223,149,175, 21,181,183, 24, 75, 70, 39,223, 71,219,214,206, 81,167, + 31, 7,155, 85, 46, 4,154, 37,186,243,177, 48,148, 66,145, 68,114, 65, 45,100, 68, 41,245,188,107, 85,114,206, 12, 37, 49,148, +204, 48, 20,114, 39,237,185, 57,228,222,205,187,211, 12,106,131, 86, 9,150,250,210,240,218,221,223,220, 16,139,161,113, 41,153, + 97, 28,131,180,148, 99,247,170,221,211,124, 53,227,160,239, 31, 93,229,156,170, 69,215,200,187,183, 48, 20,121,144,175, 29,193, + 23, 93,170,103, 22,139,244,213,186,214, 18,238,114,246, 41,191,164,126, 57,187, 65,121,103, 91,120, 50, 14,220,100, 97,168, 51, +223, 79,240, 3, 13, 64,255,142, 44, 60,198, 40,114, 1,227, 87,129, 92,126,199,100,198, 95,253, 90,120,168, 78,199,136, 49,190, +244,238, 59, 17,236,234, 16, 2, 70, 49,184, 32, 12, 18, 29,250, 44,176, 16,217,220, 75,239, 6,151,254,119, 18, 68, 32,140,195, +219, 50,176, 81,231,167,167, 19, 63,199,144,148, 89,166, 78,148,203,225,193, 30,164,184, 46, 43,179, 74,242, 28, 18, 40,143, 17, +115,109, 11,210, 59,183,106,173, 95,139, 66,107, 53,246,189,185, 80,107,165,214, 32,184,105,209,179,130, 2,156, 90,123,122, 91, +214,144,149, 45, 65,160,203,253,117, 54,191,148, 58,230,141,211, 92,131, 95,177, 94,156,253, 89,114,143, 93,245, 58, 13,146, 30, +238, 18,210,176,240,248,119, 55, 52, 21,134, 60,176,116, 2,221, 52,207,204,203, 76, 46,193, 29,104, 93, 65,209, 48, 70, 45, 88, +107,103,222,196, 92, 79, 49,117,144,112, 75, 11, 61,186, 50,228,204, 44,210, 83,244,156,195,116,199,125,157,248,169, 13, 60,106, + 3,226,194,190,175,140,238,113,158,187,241,140,198, 71, 56, 31, 52,231, 87, 52,126,185, 28, 57, 73,119,224,115,103,236,124, 17, +235, 78,120,227,184,225, 42, 37,220,140,113,140,224,157,195,241,208,149, 0,222,189,239, 37,236,154,211, 72, 78, 66,173,161,240, + 80,161, 39,223,197,218,160,182, 5,179,120,239,148,146,185,185,186,230,230,250, 47,249,193,183,158,242,214,139, 91,254,245,253, + 45,127, 49,221,241,132, 74, 22, 56,137,243,161, 55,142, 62,243,189,118, 96,114,231, 23,105,100, 18, 69,249,122,126,124, 90,254, + 64,254, 58,130,236,215, 13,208,207, 62,217,125,119,254, 52,195,219, 89,121, 58, 38, 30,109, 2,208,175,186, 79,251, 70,133,146, +215, 29,184,117,159,245,190, 47,111,237,204,104, 63,143,223,205,105,181,119,227,222, 45, 82,205,241, 86, 59,160,119,144, 61,203, +188,214, 29, 44,103, 48, 18,151, 96,163,103, 37,149, 76, 30, 50, 37, 39, 6, 17, 74,143, 93, 85,239,134, 27, 37,117, 41, 79, 9, + 16, 46,137,146,211,217,130, 85, 0, 93,119,215, 93, 2,223, 86,194, 80,107,180,165, 97,243, 74,206, 51,196, 91, 7,244, 56,204, + 54, 67,232,154, 87, 80,151,148,206,237,235,170,189,150,213,243,189, 71, 96,198,138,161,197,206,180,127, 29, 22, 36,196, 17,189, +118,124,170,136, 53,180, 69,108, 43,181,118,185,150, 62, 0,225,232, 0, 75, 18,158,110, 11,111,237, 6,222, 46,194,102,154,248, +129,194, 99,109,188, 67,229,177, 94,116,232, 15, 73,113,191,171, 91,247,143, 1,250,131,237,191,200,197, 6,244,108,220,113,113, + 21, 91,211,208, 76,232,169, 95,241,103, 37,192,124,117, 42,155, 37,244,242,179, 11, 51,193,176, 14, 29,188,156, 65,189,122,116, +244, 58, 87,230, 54,241,115, 85, 42,206,118,216, 69,103,187,204,160, 17,200,129, 27,146,211, 57, 40,165, 89,163, 90,139,208,152, + 20,206,106, 73,148,146,202,249,186,143, 56, 80, 57,203,197,214,216,210,165, 46, 1, 70,253,154, 40,169,244,191, 23,133,105,201, +153, 90,195,139, 96,169, 11, 70,231, 65,104, 34,165,112,154, 11, 57, 92,198,124, 97,169,145, 16, 46,186, 2,124,119,146,227,226, + 47,191, 25,119,152, 85, 90, 91,192, 59,139, 29, 99,158, 79, 60,123,254,140,253,213, 62,246,246,173,155,222,244,188,117, 35, 38, + 91,235,241,109, 52, 84, 18, 37,135,243,158,153, 33,162,148,126,157,215,186,112, 60,157, 64,225, 63,139,163, 24,147, 59,163, 55, +222,167,242, 65, 10, 61,249, 51,111, 28, 99,222, 70,195,177,255,159,189, 55,251,177, 36,207,238,251, 62,231,183, 68,196,189,185, +214,214, 53, 11,103, 33, 41,146,146, 65, 89,150,253,224, 23, 11,176,101, 8,182, 97,193,127,164, 1, 63,233,157,122,241,139,101, +120,129, 0,203,134, 37, 64,164,134,195, 89, 56, 51,221,211, 93, 91,102,222, 37, 34,126,155, 30,206,137,184, 55,171,171,135, 67, +137, 18,187,155, 83,141, 68, 86,101, 87,101,222,188, 25, 55,206,239,156,243,253,126,190, 46,210,219,107, 42,134,142, 70, 93,217, +246,193, 7, 46,135, 45, 67,191, 97,158, 38,210,164,233,123,115,154,241,222, 51,244, 3,160,207, 27, 84,106,157,233, 99, 68,250, +158,156,193, 73,209,199, 40,158,224,117, 34,179, 30,110,189,190,142,174,111,182, 60,185,222,240, 36, 21,110,222,188, 99,250,243, + 95,240,246,237, 91,124,158,128,134, 39,113, 33,142,231, 77, 15, 62, 13,225, 23,190, 99,182,207,245,155,194,254,107, 20,245,175, + 99, 17,255,186, 19,224,126,221,175, 85,173, 59,223, 90, 36,234,243, 0, 79,163,112, 27, 45,128,165, 11, 92,245,142, 77, 80, 91, +144,183,155, 93,173, 85,173,102,165,216,238,219, 16,173,214,149,215, 42, 86,212, 80,145, 75,177,241,123,213,221, 48,139, 50,188, +157, 58,194,197,193,125, 30, 10,179,136,134,196, 59, 66, 31,232,250, 64,223,105, 0, 76, 4,164,154, 0,204,138,170, 19,167,227, +191,160, 69, 61,132,128,247,250,216,157,229,111, 83,138,102, 82,175, 69, 93,200,185, 50, 39,133,215,148,148,104, 57,235,110,215, + 55, 27,225,119,244,125, 71,140, 29, 62, 6, 36, 4,196,144,163,226,237, 49, 58,195,103,182,182, 98,217, 22, 69,127,201,153, 82, +178,170,148,173,139,244, 84, 92,112, 52, 39,180,226,169,206, 33, 5,170, 84,164, 20,112,217, 60,194, 97, 85, 73, 47, 29,161,163, +113,211,121,190,117,209,113, 28, 28,219,105,230,133,192,181, 84,174,165, 18,133, 21,208,227,222, 43,230, 31,234,208, 31, 77, 70, + 68, 41,127, 88,225, 94,142,126, 98,135, 45,253,121, 57, 35,231,233,154,160, 90,183, 30,108,188,190,188,239, 68,209,160,201, 80, +180, 81,132, 65, 52,124, 37,181,198,177, 53,118,173,113,215, 26,179, 56, 6,132, 63,240, 3, 80,248,133,115,132,208,115,156, 30, + 44,146,181, 91,233,108,155,126, 75,202, 51,165, 22,237,228,139, 10,240, 20,245,170, 1, 48, 93,236,200, 37, 43, 80,198,112,167, +139, 19,195,185,160, 74,242, 90,140,147,208, 44,138, 85,187,233, 46, 68, 40,245, 12,182, 98, 7,193,181,160, 43, 12,165,229,186, + 22,222,210,226,202, 93, 63, 15, 34, 89,124,240,139,144, 46,165,201,192, 52,149, 33,246,136, 68,198,233, 72, 46,137,113, 58,176, +185,216, 16, 98, 32,181,105,253,169,164, 50,107,150,189,173,109,220,194, 84, 95, 89,239, 42,190,211,208,151,172,123,230, 38,171, + 48,117, 70,248,184,193, 88,148,159,255, 58,194, 30,199, 92, 28,165, 85,104, 30, 47, 16,155,216,243, 92, 87, 49, 98,173,117, 45, +226,101,202,204, 76, 76,187,153,108,225, 68, 41, 79,184,224,244,208, 21, 28,195, 48,208,199, 14,213,237, 85,130,131, 46, 14,164, + 36, 56,170,173,115, 32, 4, 71, 92,167, 93, 22,230,228,189, 30, 30,189, 48,109,182,188,186, 24,120, 29,123, 46,255,124,224,230, +213,103,116,227, 1, 71,225,194, 77, 43,249,176, 85,213,124,124,236,250, 85,191,241, 55,181,176,255,170, 95, 43, 81,238,235,198, +126,255,155, 96, 77,251,117,191,110, 19, 85,126, 95, 56, 45,230,207,162,227, 73,128,155, 78,108,220,238,217,118,194, 16, 28,193, +163,182,178, 6,109, 97,167, 23,125, 95,155,142,139,215, 78,183, 20, 99,189,136, 54,241, 38,150,107, 6,130,113,139, 55,246, 44, + 81, 75,187,116, 5,178,180, 21,190, 98,249,216,222, 17, 98,160,235, 2, 67, 23,232, 67,160,243, 70, 88,111,150,102,230,157, 2, + 96,156,104,156,102, 8,132, 16, 9,193,175, 62,101,172,115, 46,173,145,107,165,164, 70,169,141, 52, 87,245,160, 79, 86,208,147, + 78, 31,196,107,103,216,245, 29, 93,223, 19, 99, 36,196,168,140,118,239,237,141,245, 49, 58,191, 28, 26,172, 31,172, 10,156, 57, +137, 5,245, 32, 83,178,233, 7, 40,184, 42, 22,178,105,171, 1, 58,170,175,248, 37, 74,182, 86,237,222,173,160, 98,224,145,214, + 42,219, 40,252, 86,116, 72, 40, 4, 95,217,138,138,232,122, 11,231,120,223,139,254,171,110,118, 39,159,122,163, 74, 36,197, 43, + 66,157, 8,229,104, 91,118,103,156, 80, 35,221, 89,142, 58,246,243,106, 42,117,192, 91, 65,143,166,122, 79, 22, 28,146, 16, 54, + 13,146,115, 28, 99,207,235, 52,241,243,121,230, 99, 42,175,164,241,224, 3, 19,141,139, 90,248,195,235,167,252,189,126, 67, 28, + 15,252,116, 62,144,107, 99,219, 95,208,133,142, 57, 79,167, 2,107,182,180,142,142,212, 68, 11,223, 26,240,163, 63,107,231, 29, + 14,141, 73,245, 18, 30,117, 53, 11, 22,118,249,230,189, 15,116,214,245,206,243,200, 56, 30, 73, 41,217, 20, 71, 49,176,193,123, + 66, 8,148, 90, 84,148,214,160,239,123,157, 32,148,164,169,115, 37,105,135,110,105,131,165, 40, 33, 47,134,200,148, 70,198,121, + 66,156,238,244,131,247, 84,155, 8,120,167,147,158, 24, 60,113,216, 80, 91, 97, 78,201,172,103,246,189,250,142, 92,211,250,176, +115, 73, 28,167, 3,180, 1, 39,222,138,185,142,229,189,243,132, 24,117, 18, 86, 43,115,107,124, 66,131, 16,112, 49,226,230, 17, + 87, 11, 34, 1, 26,230, 29,215,132, 54, 17, 33,231,194,120, 56, 34, 69,144,201, 49,141, 35,243, 60,113,144, 3, 41, 43, 46,217, +187, 96, 7, 39, 16,215,244, 48,114, 81,168,151,141,205,166,211,169, 30,133,232, 3,222,245,184, 86,237,208, 88,137, 65,215, 5, +209,235,243, 16,124, 80,144,147, 61,111, 77,132, 57, 6,210,243, 91,230, 62,146,174, 47,217,254,236,231,244,119,239,136,165,176, +145,137, 27,193,132,151, 58, 33,250,196,119, 20,126,253,194,254, 69, 42,243, 95,235,254,249, 21, 99,200,255,149, 19,229,126, 83, +208,191,100, 5, 29, 24,154, 34, 94, 95, 68,120,218, 9, 79,162,165,169,245,142,203,232,217,216,232, 58,184,147,223,188,218, 13, + 98,217,131,215,186, 80,214, 50, 45, 87, 74,178,110,180, 57, 90, 83, 96,136,238,170,213, 56,227, 56,171, 46,239,153,163,197, 11, + 46,122,100,193,147, 54,197,203,198, 16,240, 49,232,110, 60, 56,162,243, 26, 62, 97, 55,177, 5,196,225,209,240, 11, 49, 1,148, + 11, 78,227, 81,157, 87,218,182,141,194, 83, 42,164,185,144,115, 37,167, 76,158, 11,121,206,212,148,161, 20, 29,185, 59, 13,255, +232,187, 72,215, 41,213,202,135,112, 98,178,219,238, 30,167, 99, 67,231,172,139,173,170,120,214,194, 93,117, 68,188,132,191, 84, + 32, 55, 90,170,212,164,146,177,210, 28,217, 41,133,174, 57,168,206,227,154,183,226,159, 53, 96,163,233,220, 98, 49, 32,201, 18, + 65, 59, 39,250,221,158,231,105,164, 73, 93,119,218,114, 86,208,229, 47, 40,232,231,204,247,211,112,189, 17,200,248, 37, 92, 71, +206, 16,161,110,145,242, 89, 78,247,178,191,181,247,206,186,167,106,105, 95, 1,216, 32, 20, 28,111,164,241,115, 39,252, 73, 75, +252, 48, 29,248,184,204,228,161,163,121,125,228,181, 53,238, 17,122, 47,252,237,161,227,187,105,226,109, 46,228,110, 80, 91, 31, +208,117, 61,206, 57,165,205,213, 76, 42, 73,175,193,166,108,240,224, 2,185,102, 74,169, 76, 50,209,133,142,210, 42,181,101,114, + 51,129,156,239, 72, 57,233,254,218,235, 53, 42,206,190, 63, 59, 40, 68, 17, 19,232,165,213,193, 80,177,144, 29,113,164, 60,170, + 53,205, 5, 29,157,151,121,205, 45,168, 39,172,161, 70,134,174,123,246, 69,216,102, 58,133,170,222,248,106,254,243,109,127,169, + 35,122, 23, 52, 94,181,157,142, 99, 75, 48,140,147,170,147, 2,231,160, 64, 42,137, 41,205, 56, 60,193, 37, 90,232,112, 46, 88, + 80, 81,224,162,191,210,248,218,146,169, 53, 51,231,153,237,230,146,161, 31, 72,101,198, 87,191,210,251, 59,139,210, 77, 57, 49, +143,153,116,212,107,215,139, 99,110,243,202,154,152, 75, 38,103,213,200, 36,108,173,100, 52, 71, 17,225,184,155, 57,222, 31,232, + 54, 29, 97,240, 92, 94,116, 92, 95, 54, 54,157,106, 81,196,171, 42, 52, 56,175,135,245,168,175, 47,103, 96, 32,239,244,190, 35, +162, 78, 20,241,142,242,228,138,253,205, 5,233, 98,203,240,195,159,210,191,249,140,216, 10, 61, 51,151, 85,139,186,106, 56,132, + 55, 46,126, 78, 58,247,161,226,253,235,146,225,254,170,238,239, 95,150, 67, 64,248, 77,113,253,122,237,231, 27,224,154,249,206, +131, 22,244,219, 40,220,118,154,168,118,213, 57, 46, 58,207, 38,234,222, 90, 69, 45, 42,120,107,134, 59,109,171,170,221,246,229, +213,198,217, 73, 61,230,173, 9, 56,143,248,176, 10,209,170,152,197,198, 26, 62,215, 78, 5, 69,187, 36,135,239,116,103,238, 77, +100,166,106, 98, 61,205,135, 16, 8, 75,118,185,197, 73,122,175, 49,151, 49,120, 43,220, 11,118, 85,204,231,107,126,111,105, 26, +232, 97,187,191, 52,103,166,212, 12, 42, 83,104, 41,217, 26,161, 89, 4, 43, 68,239,232,186, 72,236,162,118,252, 54,106, 95,212, +207,180, 51, 1,223,210,225, 86,244,249,152, 11, 57,107, 97, 17,131,207,212, 90,104,217, 38, 22, 89, 61,248, 85, 10,213, 53,106, +202, 20,153, 52,254,210, 59,168,142, 90, 5,231,170,134,199,152, 75, 14,239,215, 34,155,231,194,254,205, 3,211,235, 87,200,113, + 79, 64,147, 60, 23,134,183,156,169,212,207, 3, 91,222,191, 26, 22,216, 77, 59, 99,122, 75, 45,248,180,179,189,186, 91,199,238, +143, 82,180,215,169,124, 59,237,160,229, 20, 25,219, 68,149,239,226, 60,119,181,241,255,183,202,255,129,240, 3, 10,187,146,216, +181,130,239,122,182,177,199,139, 90,204,134,208,227, 6,199, 67, 23,249, 65, 73, 60,243,158,191,245,236, 5,191, 12,145,183,227, 158, 46,232,205, 63,229,153,195,116, 48,125, 66,213,108,114, 32,134,222,118,236, 25, 65,197,104, 11,176,101, 17, 43,234,247,122, 6, 3, 2, 27,255,250,181,163,207, 99,226,144, 51,199,105,214,194,188, 4,244,152, 69,173,150,164, 65, 48,162, 65, 68,211, 60, 175,135,168,182,122, 37,151, 12,112,203, 53,176, 72,215, 62, 14, 68, 15,211, 60,106, 18, 93,232, 8, 33,146,242,196, 84,102, 60, @@ -1111,54 +1096,54 @@ char datatoc_splash_png[]= { 103,171, 26,125,205,229,156,141,111,175,107,128, 24,212,106,230,197, 81,237,208, 40, 18,240, 18, 56,238,143, 28,246, 35, 54,125, 215,127, 95,181, 96,231,148, 73, 73,175,235,214, 28,222, 7,114, 46,204,211,140, 71,184,240,158,103, 67,199,203,174,103,235, 60, 117, 46,236,231,204,110, 63,243,122, 55,179,185,220,112,117,117,193,197, 54,152,139,164, 35, 6,167,238, 17,155,168, 57,139, 33, -118,206,186,109,167, 2,204, 38, 14,182, 3,237,111, 95, 48,110,183, 76,127,220,209,125,246, 41, 93,158,233,164,177,105,142,103, -168,187,162,136,240, 78, 34,237,151,140,226,255,186, 4,209,239, 51,226,255, 58, 10,125,248,186, 23,215, 95, 31, 32, 30,255,234, -150,221,121, 39, 60,139,112, 27,224,218,195,101, 7,215,157,176,233, 60,125,240,132,224,214,139,174, 90,103, 94,210,169,235, 60, -192, 73, 85,137, 0, 0, 32, 0, 73, 68, 65, 84,221,224, 52, 34,178,152, 98, 92, 33, 28, 90,116,157,119,212,162,120, 72,181,192, - 90,132,227, 25,114, 83, 79,230,142, 16, 28,253, 16,181, 64,139,172, 36,234, 69,197,174, 36, 49,219, 37,138,199,249,136, 11,203, -238, 92, 11,188, 62,245,110,197,167, 43,240,164, 64,171,164,146, 73,243, 76,154, 19, 83, 42,228, 44, 90,200,155,242,221,157, 69, - 85,234,206, 84, 11,122,223, 41, 68,196,155,208,110,129,164, 43,150,178, 33,213,110,236,216,154,161,234,164, 34,205,121,181,240, - 73,181,137,198,156,213,135,191, 4,214,216,205,191,230, 74,149, 68, 22,181, 33, 73,178,206, 95, 26, 72,208,241,118, 57,101,195, -224, 61,173,193,225,126,207,221,103,175,153,239,223, 65, 45, 26,122, 33,143,131, 56, 30,213,222, 71, 67,246, 70,213, 0, 85,251, - 59, 42, 8,116,246,252, 53, 57,233,221,191,176,131, 95,146,242,214, 15, 58,219,179,203, 35, 92,124, 3,154, 11,252,164,235,248, - 39,105,226,159, 78,137,157,143, 12,222, 19, 93,224,218, 7, 19,136, 53,230, 52,211,199,192,176,233,216, 12, 91, 64,184,155,142, -188,109, 51,215,116, 84, 10,215,219, 11,110,110,111,128,198,253,253,131,122,193,221, 98,141,204,107, 56,203, 97, 58,144,141,228, -214, 44,167,124,201,165, 95, 64, 46,198, 18, 38,134,168, 8, 90, 59,176,212, 86, 17,115,100, 28,166,145,105,210,194,235,157, 82, -207,196,186,173, 86, 42,174,233,193, 81,221, 12,104, 55, 89,139, 61,107,109, 13,122,105, 6, 92,106,102, 83, 44, 53,225,196,196, -120,210,200, 77, 15,196,198,171, 99,206,153, 57, 77,108,253, 5,193,135,213,249,128,193,109, 82, 41, 4, 87,113,174, 49,231, 73, -253,234,206, 27,108,167,226,124,192, 59, 61, 36,148,156,212,155,223, 26,174, 57,101, 45, 8,204,105,162,181,162,217,233, 38, 60, -156,167,204,219,135, 29,243,225,136,247,158,174, 15,212,218, 72,115,166,164, 74, 23, 7,130, 15,164, 52,177, 12,219, 92, 46, 60, - 21,199,211,203, 11, 62,234,123,158, 15, 29, 55, 93,164,247, 94,197,129, 77,189,240, 99, 45,188, 29, 11,111,230, 61,211,152, 41, - 87, 3,155,203, 13,114,165, 2, 68,113, 6,146,242,250, 22, 86, 30, 61,120,139, 35,174, 69,239, 41,253, 69, 7,155,239, 50,118, -145,253,191,138,164,159,255,148,110,154,232,220,145, 45,194,243,166,133, 61, 5,199,131,124,229, 48, 43, 95,168, 15,127, 29,225, - 47,225,235, 86,236,190,233,153,230,255,190, 95, 83,128,222,193,179, 32,188,232, 28,207,122,225, 38, 52, 46, 93,227, 50,192, 69, - 20, 54,157, 16,131, 88, 96,132,172, 68,180,146,181, 3,215, 27, 88, 89, 5,112,205,240,148,105, 46,148,172, 42,116,113, 74,124, -243,222,180,218,174,174, 88,216, 85,206,110,123,104,237,168, 85,177,220,117, 29,125, 31,233,188,165, 94,173, 34, 32,143,183, 29, - 27, 8, 62,232, 1, 32, 4, 79,140,145,206,196,112, 49,158,129, 46,154, 18,179, 52, 77, 69,139,105, 73,154,124,149, 75,182,113, -236, 50, 68, 54,246,116,107, 22,148,166,157,127,236,162,238,208,131, 10,170,196,185, 83,183, 87,171, 9,251,196, 50,182,161, 85, - 93, 59, 44,129, 47,185, 40, 60, 71, 84,137, 71,181, 66, 15,122, 24,176, 7,106, 99,246,102,227,194,164,217,239, 94,240, 97, 25, -219, 58, 90,181,209,134, 9,215,198, 99,226,254,179,183, 28, 95,191,130, 60,173, 52,214, 47, 19,196, 45, 78, 4,128,217,119, 28, -252, 5,135,176,101,178, 0,147,193, 59,182,101,164, 63,190,198,215,121, 29,223,191,127,253,156,243,186,220,186, 51, 89,174,195, -102,181, 82, 44, 88, 20,254,101,203,252,227,169,240, 47,106,229, 64,227, 50,122, 46,183, 27,188,119,236, 15, 19,185, 84, 45, 44, -222, 19, 98, 71, 8,158, 82, 50,251,253,142,135,227,131,114,191,203, 72, 59, 54,122,223,171, 32, 17, 71,240,129,155,171, 91,198, -105, 36,231,119,180, 6,227, 60, 51,165,172,133,213,248, 0,139,162,189, 74,179,241,176, 62, 7,181, 86,250,110, 96,232, 7,106, - 45, 76, 41, 81,107, 86,114,157, 51,225,151, 8, 93,236,116,111, 46, 90,108,156, 68,157,116, 57,167,215,126,205, 43,197,172,157, -139,227,196, 17, 67, 79,180,169,130,171,139, 26,220, 81,107,166, 49,177,104,247,230,116,164, 22, 13,172,233,124, 71,236,123, 74, - 41,236,247,247,228,156, 24,186, 1,196, 49, 31,238, 17, 60, 93,232,136,174,195,227,241, 46, 50,231,100,170,125,189, 78, 53,150, - 84,127,232,126, 89, 75,185, 64,169,122,240, 46,205,224, 53, 93, 79, 23, 59,134,208,113,255,246,142,119,111,238, 25,231,201, 14, - 74, 66, 25,103, 74, 42,204,115,129,230,217, 12, 61,125, 63,224,229,136,203,133,103,209,115, 83, 38, 94,116,145,155, 24,233,189, - 17, 7, 45,136,169,216,203,189, 19,232, 67,224,134,192,119,106,229, 48, 86, 30,210,145,221, 33,243,246,144, 24,111, 46,184,185, - 25,184,114,157, 58, 85,162,183,169,137, 78, 42, 66,112,244, 93,212, 21, 94, 19,213,210,244,158,242,253,143,152, 98, 96,238, 58, -242,199, 31,227,143, 7,124, 59,210,227,120, 90,148,155,240,113,116,140,226,240, 95,243, 41,235, 95,118,193, 15,191, 46,232, 95, -255,130,238,176,113,123, 39,124, 52,120,181,170, 69,184,242,141,173,107, 12, 17,122, 39,106,209, 18,237,112,154,169,216, 75, 41, - 58, 30, 62,179,171,105,135, 14, 37,103,114,178,209,123,169,136, 84,181,117,121,161,121, 27,209,103,245,159, 47,240, 24,239,155, -118,190, 34, 86, 44, 35,161, 11,186,187,182,145,191, 44,240, 56,235,212,151,124,106, 49, 65, 92, 23, 76, 1, 31, 3, 49, 4, 98, - 92,200,107,139, 63, 94, 11,106, 45,201,172,115,153, 82, 19,185,101,138,104, 82,156,184,166,144, 27,140, 44, 38,205, 84,242,193, - 84,243,241,180,231,147, 37, 32, 70,247,154, 82,237,121, 55,198,142, 58, 1,234,201, 26,101,143,163,166,140,148,130,148,102,187, -122, 61, 68,180,154, 87,156,157, 52, 40, 85, 83,228,164, 52,114,174,248,148,169, 93,193,119, 70,159,117, 58,198, 22,231, 41,165, -177,127,243,192,238,243, 87,212,113,175,202,127,121,220,165,159,143,222, 87,107, 33,194,125,188,230,245,240,130,131, 31,104,222, -227,129,139, 24,217,220, 60,129,249,200,248,201,204,102,122, 67,248, 98,152,235,250,217, 4,103,215,221, 23,194, 57,149,191,111, -211,140, 63,113,142,255,121,158,249,127,107, 99, 59,116,108, 92,160, 11,209, 60,218, 98,211,145, 69,245, 28,108,199,155,121,120, +118,206,186,109,167, 2,204, 38, 14,182, 3,237,247, 46, 24,183, 91,166, 63,233,232, 62,253,132, 46,207,116,210,216, 52,199, 51, +212, 93, 81, 68,120, 39,145,246, 43, 70,241,127, 93,130,232,247, 25,241,127, 29,133, 62,124,213,139,235,111, 14, 16,143,127,117, +203,238,188, 19,158, 69,184, 13,112,237,225,178,131,235, 78,216,116,158, 62,120, 66,112,235, 69, 87,173, 51, 47,233,212,117,158, +110,112, 26, 17, 89, 76, 49,174, 16, 14, 45,186,206, 59,106, 81, 60,164, 90, 96, 45,194,241, 12,185,169, 39,115, 71, 8,142,126, +136, 90,160, 69, 86, 18,245,162, 98, 87,146,152,237, 18,197,227,124,196,133,101,119,174, 5, 94,159,122,183,226,211, 21,120, 82, +160, 85, 82,201,164,121, 38,205,137, 41, 21,114, 22, 45,228, 77,249,238,206,162, 42,117,103,170, 5,189,239, 20, 34,226, 77,104, +183, 64,210, 21, 75,217,144,106, 55,118,108,205, 80,117, 82,145,230,188, 90,248,164,218, 68, 99,206,234,195, 95, 2,107,236,230, + 95,115,165, 74, 34,139,218,144, 36, 89,231, 47, 13, 36,232,120,187,156,178, 97,240,158,214,224,112,191,231,238,211,215,204,247, +239,160, 22, 13,189,144,199, 65, 28,143,106,239,163, 33,123,163,106,128,170,253, 29, 21, 4, 58,123,254,154,156,244,238,159,219, +193, 47, 73,121,235, 7,157,237,217,229, 17, 46,190, 1,205, 5,126,218,117,252,211, 52,241,207,166,196,206, 71, 6,239,137, 46, +112,237,131, 9,196, 26,115,154,233, 99, 96,216,116,108,134, 45, 32,220, 77, 71,222,182,153,107, 58, 42,133,235,237, 5, 55,183, + 55, 64,227,254,254, 65,189,224,110,177, 70,230, 53,156,229, 48, 29,200, 70,114,107,150, 83,190,228,210, 47, 32, 23, 99, 9, 19, + 67, 84, 4,173, 29, 88,106,171,136, 57, 50, 14,211,200, 52,105,225,245, 78,169,103, 98,221, 86, 43, 21,215,244,224,168,110, 6, +180,155,172,197,158,181,182, 6,189, 52, 3, 46, 53,179, 41,150,154,112, 98, 98, 60,105,228,166, 7, 98,227,213, 49,231,204,156, + 38,182,254,130,224,195,234,124,192,224, 54,169, 20,130,171, 56,215,152,243,164,126,117,231, 13,182, 83,113, 62,224,157, 30, 18, + 74, 78,234,205,111, 13,215,156,178, 22, 4,230, 52,209, 90,209,236,116, 19, 30,206, 83,230,237,195,142,249,112,196,123, 79,215, + 7,106,109,164, 57, 83, 82,165,139, 3,193, 7, 82,154, 88,134,109, 46, 23,158,138,227,233,229, 5, 31,245, 61,207,135,142,155, + 46,210,123,175,226,192,166, 35, 17, 72, 31, 0, 0, 32, 0, 73, 68, 65, 84, 94,248,177, 22,222,142,133, 55,243,158,105,204,148, +171,129,205,229, 6,185, 82, 1,162, 56, 3, 73,121,125, 11, 43,143, 30,188,197, 17,215,162,247,148,254,162,131,205,183, 25,187, +200,254,143, 35,233, 23, 63,163,155, 38, 58,119,100,139,240,188,105, 97, 79,193,241, 32, 95, 58,204,202,231,234,195, 95, 71,248, + 75,248,170, 21,187,175,123,166,249,191,235,215, 20,160,119,240, 44, 8, 47, 58,199,179, 94,184, 9,141, 75,215,184, 12,112, 17, +133, 77, 39,196, 32, 22, 24, 33, 43, 17,173,100,237,192,245, 6, 86, 86, 1, 92, 51, 60,101,154, 11, 37,171, 10, 93,156, 18,223, +188, 55,173,182,171, 43, 22,118,149,179,219, 30, 90, 59,106, 85, 44,119, 93, 71,223, 71, 58,111,169, 87,171, 8,200,227,109,199, + 6,130, 15,122, 0, 8,193, 19, 99,164, 51, 49, 92,140,103,160,139,166,196, 44, 77, 83,209, 98, 90,146, 38, 95,229,146,109, 28, +187, 12,145,141, 61,221,154, 5,165,105,231, 31,187,168, 59,244,160,130, 42,113,238,212,237,213,106,194, 62,177,140,109,104, 85, +215, 14, 75,224, 75, 46, 10,207, 17, 85,226, 81,173,208,131, 30, 6,236,129,218,152,189,217,184, 48,105,246,187, 23,124, 88,198, +182,142, 86,109,180, 97,194,181,241,152,184,255,244, 45,199,215,175, 32, 79, 43,141,245,139, 4,113,139, 19, 1, 96,246, 29, 7, +127,193, 33,108,153, 44,192,100,240,142,109, 25,233,143,175,241,117, 94,199,247,239, 95, 63,231,188, 46,183,238, 76,150,235,176, + 89,173, 20, 11, 22,133,127,213, 50,255,100, 42,252,203, 90, 57,208,184,140,158,203,237, 6,239, 29,251,195, 68, 46, 85, 11,139, +247,132,216, 17,130,167,148,204,126,191,227,225,248,160,220,239, 50,210,142,141,222,247, 42, 72,196, 17,124,224,230,234,150,113, + 26,201,249, 29,173,193, 56,207, 76, 41,107, 97, 53, 62,192,162,104,175,210,108, 60,172,207, 65,173,149,190, 27, 24,250,129, 90, + 11, 83, 74,212,154,149, 92,231, 76,248, 37, 66, 23, 59,221,155,139, 22, 27, 39, 81, 39, 93,206,233,181, 95,243, 74, 49,107,231, +226, 56,113,196,208, 19,109,170,224,234,162, 6,119,212,154,105, 76, 44,218,189, 57, 29,169, 69, 3,107, 58,223, 17,251,158, 82, + 10,251,253, 61, 57, 39,134,110, 0,113,204,135,123, 4, 79, 23, 58,162,235,240,120,188,139,204, 57,153,106, 95,175, 83,141, 37, +213, 31,186, 95,214, 82, 46, 80,170, 30,188, 75, 51,120, 77,215,211,197,142, 33,116,220,191,189,227,221,155,123,198,121,178,131, +146, 80,198,153,146, 10,243, 92,160,121, 54, 67, 79,223, 15,120, 57,226,114,225, 89,244,220,148,137, 23, 93,228, 38, 70,122,111, +196, 65, 11, 98, 42,246,114,239, 4,250, 16,184, 33,240,173, 90, 57,140,149,135,116,100,119,200,188, 61, 36,198,155, 11,110,110, + 6,174, 92,167, 78,149,232,109,106,162,147,138, 16, 28,125, 23,117,133,215, 68,181, 52,189,167,124,247, 35,166, 24,152,187,142, +252,147,159,224,143, 7,124, 59,210,227,120, 90,148,155,240,147,232, 24,197,225,191,226, 83,214,191,234,130, 31,126, 83,208,191, +250, 5,221, 97,227,246, 78,248,104,240,106, 85,139,112,229, 27, 91,215, 24, 34,244, 78,212,162, 37,218,225, 52, 83,177,151, 82, +116, 60,124,102, 87,211, 14, 29, 74,206,228,100,163,247, 82, 17,169,106,235,242, 66,243, 54,162,207,234, 63, 95,224, 49,222, 55, +237,124, 69,172, 88, 70, 66, 23,116,119,109, 35,127, 89,224,113,214,169, 47,249,212, 98,130,184, 46,152, 2, 62, 6, 98, 8,196, +184,144,215, 22,127,188, 22,212, 90,146, 89,231, 50,165, 38,114,203, 20,209,164, 56,113, 77, 33, 55, 24, 89, 76,154,169,228,131, +169,230,227,105,207, 39, 75, 64,140,238, 53,165,218,243,110,140, 29,117, 2,212,147, 53,202, 30, 71, 77, 25, 41, 5, 41,205,118, +245,122,136,104, 53,175, 56, 59,105, 80,170,166,200, 73,105,228, 92,241, 41, 83,187,130,239,140, 62,235,116,140, 45,206, 83, 74, + 99,255,230,129,221,103,175,168,227, 94,149,255,242,184, 75, 63, 31,189,175,214, 66,132,251,120,205,235,225, 5, 7, 63,208,188, +199, 3, 23, 49,178,185,121, 2,243,145,241,227,153,205,244,134,240,249, 48,215,245,179, 9,206,174,187,207,133,115, 42,127,223, +166, 25, 63,112,142,255,121,158,249,127,107, 99, 59,116,108, 92,160, 11,209, 60,218, 98,211,145, 69,245, 28,108,199,155,121,120, 120,195,195,225, 30,239, 2, 87,113,192,139, 35,181,153,230,180,107,188,219,189,197,135,192,237,213, 45, 87, 23, 87,138,235,189, 243,188,186,127,195,156,149,206, 22, 36,174,135,153,218, 26,157,120, 10, 26,173, 90,107, 37,183,140, 43, 25,166,105, 77, 89,211, 130, 24,216,108, 58,188, 8,243, 92,152,218, 72,145, 98,194, 45, 29,225,167,146,200, 85,137,135, 58,126,215, 3,153,142,176, 23, @@ -1167,102 +1152,102 @@ char datatoc_splash_png[]= { 94,255,253,220,102, 85,228,139,232,181,219,244,128,209, 10,236, 31,142, 60,188,221, 81, 75,162,139,158, 90, 65, 37,168,158,130, 141,252, 75, 33,165,196,211, 16,248, 72, 26, 55,161,241,188,119,108,101,179, 94, 1,165,104,138,226,194, 47,192,166, 61, 75, 82, 159, 51,189,199, 19, 17,110, 51, 28,247, 19,111,199,196,253,113,226,205,124, 9, 79,175,137, 33, 18, 37,104,142,188,225,125,251, - 62,210,245, 29,181,168,224,112,129, 60,245,125,160,251,254, 11,218,205,134, 67,236,152,255,244,199,184,113, 36, 74,101,211, 10, -207,234,204,161,120, 62, 13, 61,229, 3,135,212,175,219, 90,117,209, 0,252, 71, 37,202,253, 90,148,246,213,220,159, 71,116,220, + 62,210,245, 29,181,168,224,112,129, 60,245,125,160,251,238, 11,218,205,134, 67,236,152,255,236, 71,184,113, 36, 74,101,211, 10, +207,234,204,161,120, 62, 9, 61,229, 3,135,212,175,218, 90,117,209, 0,252, 71, 37,202,253, 70,148,246,229,220,159, 71,116,220, 254, 81, 39, 60, 31, 2, 79, 6,207,109,116,218,157,251, 74, 39, 77, 71, 92, 98, 98, 45, 17,227,146, 87,178,241,206,171, 37, 45, 25,169,212,246,108,202, 67,215,162,158,169,181, 32, 30,154,211, 61, 60, 82,215,212,170,106, 93,186, 15,130,143,129, 24, 84,252, 38, 62,224,131, 42,202,123, 43,206, 97,137, 34,109, 98, 83,122, 89, 27, 66,231,196,188,231, 90,120,251,104, 93,244,146,110, 86, 171,141, 27, 51, 45, 39, 5,184,180, 76, 46,149,185, 52, 38, 99,129, 59, 7,212,186,142,157,155,168, 74, 58,134, 72, 12,103, 30, 116, 19,238,152, 89,222,178,196,151,252,119, 61, 28,148,170, 16,157, 86, 50,165,233,193,192,133,160, 26,132,149, 92,215,172,232, -106,151, 94,169,214,205,218,139,181, 10,205, 59, 90,243, 20, 99,150,159, 36,107,162,184, 23, 83,156, 31,238, 14,220,125,250,138, +106,151, 94,169,214,205,218,139,181, 10,205, 59, 90,243, 20, 99,150,159, 36,107,162,184, 23, 83,156, 31,238, 14,220,125,242,138, 249,225, 29,174, 85,179,242,201,163,253,249,163,130, 14,100,113,188,141,183,188,222,188, 96, 14,189, 10,234, 90,101,240,158,219, 190,103, 83, 50,187,135,119, 72, 82,202,153,150,116,183,210,229,214,231,223,160, 37,178,240,238, 69, 78,239,109,175,222, 33,252, -169,115,252, 47,210,248,231, 84,182, 93, 71,116, 78, 49,166, 81,227,100, 82,206,184, 16,112, 85, 69, 89,222, 59, 82,202,204,121, - 98, 63, 31, 40, 84, 54, 93, 79, 8,113, 77, 52,195,193, 56, 31, 24,231, 35,245, 88, 73,105,230, 59, 47,127,131,151, 31,125, 68, +153,115,252, 47,210,248, 23, 84,182, 93, 71,116, 78, 49,166, 81,227,100, 82,206,184, 16,112, 85, 69, 89,222, 59, 82,202,204,121, + 98, 63, 31, 40, 84, 54, 93, 79, 8,113, 77, 52,195,193, 56, 31, 24,231, 35,245, 88, 73,105,230, 91, 47,127,139,151, 31,125, 68, 223, 13,108,134, 45,119,251,123,142,199,163,165,151,181,181,107, 92, 40,108, 62,120, 58,215,211,142,112,156,142, 36,159, 53, 1, 45, 68, 99,254, 84,114,206,107, 34,221, 42,108, 67, 41,131,197,156, 30, 74,145,195,132,130,150, 55,111,182,178,138, 64, 83, 91, 157,247, 1, 39,193,198,199,213, 58,231,250,200,182,137,107,235,222,215,225, 84, 92,232, 3,125,215, 51,230,196,221,225,142, 70, 101,219,109, 72, 70,102,172,205,198,245,182,230,112, 62,168,231, 29, 61, 44, 4, 20,119,155,106,166,228,194, 97,220,235, 97,194, 41, 63,223, 57, 79,158, 50,247,187,123,210,120,192, 57, 24,134,142,113,206,148, 90,233,124, 68, 92,192, 19,153,231,134,204, 19, -223,153, 71,126, 51, 10, 87, 94,232,112,180,156,180, 88,218,115,224,108,229,176,134, 34,114, 6, 73,224,196, 56, 48,160, 30,151, -192, 69, 46,236, 83,226,110,202, 28,103,225,243, 12,215, 55,149,235,139,129, 33,120, 6, 31,136,126, 57, 92, 55,179, 33,234,115, - 36, 81,191, 94,184,122, 70, 23, 34,247, 62,146,126,246, 25,238, 56,226,231, 68, 95, 38,158,137, 99, 47,129, 59, 31,248,186,255, -250,203,220,191,255, 58,165,237, 43,184, 47,255, 85, 31,199, 86,224, 73, 39,124,212,107,119,126,219, 59,110,162, 70,164,110, 92, +223,154, 71,126, 59, 10, 87, 94,232,112,180,156,180, 88,218,115,224,108,229,176,134, 34,114, 6, 73,224,196, 56, 48,160, 30,151, +192, 69, 46,236, 83,226,110,202, 28,103,225,179, 12,215, 55,149,235,139,129, 33,120, 6, 31,136,126, 57, 92, 55,179, 33,234,115, + 36, 81,191, 94,184,122, 70, 23, 34,247, 62,146,126,254, 41,238, 56,226,231, 68, 95, 38,158,137, 99, 47,129, 59, 31,248,170,255, +250,171,220,191,255, 38,165,237, 75,184, 47,255,117, 31,199, 86,224, 73, 39,124,212,107,119,126,219, 59,110,162, 70,164,110, 92, 35,186, 53,164, 84, 95,120, 13,114, 41, 80, 76,189,109,251,197, 82,150,156,243,133, 91,174,255,191,228, 74, 78,213,132, 51,122, 115,146,170,197, 92,111, 58,139,237,168, 33, 46,208,117,110, 45,198, 33, 6,101,182, 47,118,150, 24,116,151,230,237,128,177,254, 119,186, 55,248, 32,116,193,211,219,216,221,185, 96, 93,130, 1, 94,178, 2, 61,106,209, 67, 6,182, 14, 40, 56,102, 39,164,178, 92,212, 5,103,246, 58, 21,116,107, 62,247, 50,110, 23, 27,183,139,168,125, 75,197, 99, 24, 35, 92, 71,247,173, 53, 74,211,231, 34,151, 66,105, 89,225, 25, 65,181, 4,174, 70,164,104,242,148, 30, 30, 42,174,105,161,172,117, 54,210,156,109, 96, 93, 68, 92, -175, 98,160,102,221,249,146,112,221,220,138,177, 29,247, 51,239, 62,125,197,241,245,103,144,116,132,235,223,235,151, 57, 13, 17, +175, 98,160,102,221,249,146,112,221,220,138,177, 29,247, 51,239, 62,121,197,241,245,167,144,116,132,235,223,235,151, 57, 13, 17, 214,209,221, 62, 92,240,118,120,134,132,142,203, 86,233,157,176, 29,122, 54,226, 8,211,129,249,238, 21,254,240,134,174,141,139, -121,237,241, 24,255, 76, 41,172, 2, 46,183,122,229,154, 21, 52, 61, 64, 10,175, 69,248,199, 52,254,239, 92,185,236, 6,250, 24, +121,237,241, 24,255, 76, 41,172, 2, 46,183,122,229,154, 21, 52, 61, 64, 10,175, 69,248, 39, 52,254,239, 92,185,236, 6,250, 24, 200,181,172,156,240, 57,105,218,157,156, 9,243,166, 52,115, 24,143,250, 28, 2, 67, 28,112, 34,140,243,145, 86,181, 59,155,198, -145, 84,103,130,247,116,155, 11, 74,206, 60, 60,220, 91, 88,139,227,251,191,241, 61, 94,189,125,205,159,255,252,167,186,243,246, +145, 84,103,130,247,116,155, 11, 74,206, 60, 60,220, 91, 88,139,227,187,191,245, 29, 94,189,125,205,159,255,226,103,186,243,246, 94,215, 44,165,144,151,162, 41,138, 56,109,253, 96,185,233,154,209,158,242, 76,153, 50, 67,175, 97, 41, 75,198,121, 12, 65, 11, 167, 33,144, 23,136, 77, 51,206,188, 56,135, 95,186,111, 23, 24,167, 3,206,131,115, 17,103,177,171,181,105,145, 46,162,221,115, 19,135, 52, 61,124, 46,158, 3,111,202,251, 16, 28, 93, 23, 64, 44, 0, 73,116, 50, 0,240,236,234,197, 90,180,155, 69,141, 6, 23,116, 5, 32,142,206,199,149,168, 24, 92, 96,202, 19,205, 14,185,165, 22, 21,232, 5, 5,232,140,199, 35,227, 97,100,158,143, - 68,239, 16, 31,152, 83, 98,158,179,122,190,189, 80,230,137,218,132,190,194, 15,250,200,223,233, 3, 27, 83,184, 23,123,125, 58, - 49, 68,238,122, 0,111,184,118,238,186,104,107, 36,242,210,189,187,117, 10,167,124,137, 39, 21,174,142, 51, 15,159,191, 99,183, + 68,239, 16, 31,152, 83, 98,158,179,122,190,189, 80,230,137,218,132,190,194,247,250,200,223,238, 3, 27, 83,184, 23,123,125, 58, + 49, 68,238,122, 0,111,184,118,238,186,104,107, 36,242,210,189,187,117, 10,167,124,137, 39, 21,174,142, 51, 15,159,189, 99,183, 223,243,246,201, 37,211,237, 21, 55, 55, 23,248,155, 11,250,186,228,201, 11, 67,167,161, 76,222, 11,165, 8,105,214,231,238,234, -187,183,212,233, 55,185, 11,145,242,241,207, 8,227,158,174,105,118,252,115,153,152, 68, 56, 46,107,137,111,152, 16,250,223,167, -208,135, 95, 23,244,199, 79,224,215, 33,151,215, 1,151, 65,120,209,123,158, 15, 70,134,179,204,243, 11, 43,232, 97,149, 78,153, -178,183, 46, 25,231,170, 10,175,217,248,228,117, 33,193,233, 17,188, 22,245,236,150, 84, 86,160,202,146, 11, 93, 68,149,211,165, -170,221, 76,196,225, 35,170,104,247, 94,187,236,174, 91,247,224,218, 13,219,136,219, 97, 1, 38, 38,136,179,209,251,114,195,115, - 52,130, 87,139, 91, 8,126, 37,104,213, 82, 85,145,155,147,217,233,102, 61,132, 0,206,107,135,216,156,135,154,145,170, 35,247, - 80,116, 69, 45, 40,121,206,123, 61, 32,248,160,143, 71,151,183,102,223,114,122,211,202, 88,208, 11, 85, 15, 53,150,179, 94, 90, - 85,177,147, 89,224,240, 65,187,156, 40,136,139, 16, 84, 93, 47, 53, 33, 57, 81,114, 53,216,201,130,125, 15, 56,223, 41,153,206, -196,125,203,196,164,170,113, 95,189,207,115,230,238,243,119,236, 62,251,140,122,220,169, 82, 30,236, 0,244,120,236,222, 78,154, - 54, 10, 48,135, 13, 67,191,101, 0,250, 86,185,121,254, 17, 23,207,158,115,252,249, 79, 56,188,249, 4,210, 61, 93, 57, 16, 12, -239,185, 88,230,100, 69,204, 6,155,190, 44, 7,173,182,110,214,151,210, 28,141, 34,247,135, 13,254,215,227,204,102, 59,112,125, -185,213,221,170,237,125, 75,173,148,154,213,195,191,132,141,160,123, 96, 39, 66,203, 5,231, 35, 67,183,193,137, 48,229, 81, 71, -227,190, 83, 17, 24,142,235,171, 91,182,195,150,113, 26,153, 83,226,221,221, 29, 49, 4,203,125,247,188,120,242,156,146, 11,206, - 59,238,247, 15, 43, 37,174,212,162,194,180,146,241,222,209,119, 61,208, 8,168,130, 59,149,145, 57,233, 4,105,232, 54, 28,202, -158,156,116, 44, 95,154, 98, 97,219, 10,224, 17,162, 83, 1, 37, 38, 28,171,173,156,158, 51, 27,147,164,156, 13, 68, 99,162,186, -166, 94,121,231,188,162,121,156,118,231, 52, 61, 64,244,221, 96, 94,245, 74,149,138, 19,207,182,223,170, 72, 14,193,123,181,170, - 53,116, 34, 52,151, 73,139,187, 15, 68, 31,168,173,218,228, 74,245, 48,201, 44,167,122,200,171,228,156,184,127,184, 99, 62,204, - 10, 63,242, 66, 19, 13, 88,153,231,108,221,180,242,216,231,185,176, 45,153,191,221, 57,126,216,119,244, 78, 47, 40, 39,130,107, +219,183,212,233,183,185, 11,145,242,147,159, 19,198, 61, 93,211,236,248,231, 50, 49,137,112, 92,214, 18, 95, 51, 33,244,191, 75, +161, 15,191, 41,232,143,159,192,175, 66, 46,175, 3, 46,131,240,162,247, 60, 31,140, 12,103,153,231, 23, 86,208,195, 42,157, 50, +101,111, 93, 50,206, 85, 21, 94,179,241,201,235, 66,130,211, 35,120, 45,234,217, 45,169,172, 64,149, 37, 23,186,136, 42,167, 75, + 85,187,153,136,195, 71, 84,209,238,189,118,217, 93,183,238,193,181, 27,182, 17,183,195, 2, 76, 76, 16,103,163,247,229,134,231, +104, 4,175, 22,183, 16,252, 74,208,170,165,170, 34, 55, 39,179,211,205,122, 8, 1,156,215, 14,177, 57, 15, 53, 35, 85, 71,238, +161,232,138, 90, 80,242,156,247,122, 64,240, 65, 31,143, 46,111,205,190,229,244,166,149,177,160, 23,170, 30,106, 44,103,189,180, +170, 98, 39,179,192,225,131,118, 57, 81, 16, 23, 33,168,186, 94,106, 66,114,162,228,106,176,147, 5,251, 30,112,190, 83, 50,157, +137,251,150,137, 73, 85,227,190,122,159,231,204,221,103,239,216,125,250, 41,245,184, 83,165, 60,216, 1,232,241,216,189,157, 52, +109, 20, 96, 14, 27,134,126,203, 0,244,173,114,243,252, 35, 46,158, 61,231,248,139,159,114,120,243, 49,164,123,186,114, 32, 24, +222,115,177,204,201,138,152, 13, 54,125, 89, 14, 90,109,221,172, 47,165, 57, 26, 69,238,143, 26,252,175,199,153,205,118,224,250, +114,171,187, 85,219,251,150, 90, 41, 53,171,135,127, 9, 27, 65,247,192, 78,132,150, 11,206, 71,134,110,131, 19, 97,202,163,142, +198,125,167, 34, 48, 28,215, 87,183,108,135, 45,227, 52, 50,167,196,187,187, 59, 98, 8,150,251,238,121,241,228, 57, 37, 23,156, +119,220,239, 31, 86, 74, 92,169, 69,133,105, 37,227,189,163,239,122,160, 17, 80, 5,119, 42, 35,115,210, 9,210,208,109, 56,148, + 61, 57,233, 88,190, 52,197,194,182, 21,192, 35, 68,167, 2, 74, 76, 56, 86, 91, 57, 61,103, 54, 38, 73, 57, 27,136,198, 68,117, + 77,189,242,206,121, 69,243, 56,237,206,105,122,128,232,187,193,188,234,149, 42, 21, 39,158,109,191, 85,145, 28,130,247,106, 85, +107,232, 68,104, 46,147, 22,119, 31,136, 62, 80, 91,181,201,149,234, 97,146, 89, 78,245,144, 87,201, 57,113,255,112,199,124,152, + 21,126,228,133, 38, 26,176, 50,207,217,186,105,229,177,207,115, 97, 91, 50,191,215, 57,190,223,119,244, 78, 47, 40, 39,130,107, 54,121, 91,242, 13,104, 40, 13,160,158, 29,198,219, 90,216,215, 69,141,209,245,222,215,125,116,173,176, 61, 30,120,177, 47,220, 239,142,188,219, 77,188,219,143,228, 92, 73, 77,184,190,232, 24, 58,189,167, 4,211,235,120,167,228,192, 86, 42, 62, 70,134,143, -174,216, 63, 60, 35,189,122,141,188,171,248,156,233, 8,220,224, 57,136,215,220,129,111, 32,113,238,188, 30,252,133,136,114,191, -238,150,191, 30, 35,254,134,162, 57,175,163,240,114,240,188,216, 4,158,244,158,235,232,185,244,194,214, 11,157,128, 95,216,212, +174,216, 63, 60, 35,189,122,141,188,171,248,156,233, 8,220,224, 57,136,215,220,129,175, 33,113,238,188, 30,252,165,136,114,191, +233,150,191, 26, 35,254,134,162, 57,175,163,240,114,240,188,216, 4,158,244,158,235,232,185,244,194,214, 11,157,128, 95,216,212, 173,174,137, 41, 85,151,195,102,185,170,171, 39,125, 81,186,235,178,180, 65, 94, 72,114,105, 13,106,225,204,151,171,176,153, 6, 1,130,190, 2,181, 56,123, 21,182,197, 24, 45,158, 81, 59, 90, 67,198,169, 29,203,171, 32,206, 91, 71, 20,130, 55, 24, 6,246, 230, 79,163,206,218, 86,139, 77,154, 19,121,214,252,237,156,178,130, 58,130,126, 29,156, 71, 42, 72,110,132, 92,241, 21, 66, 19, 132,229, 0,225,245, 0,226, 28, 34, 94,109, 89, 86,188, 90, 83,229,121, 67,139,119, 93, 98,100, 91, 85,180, 44, 40, 86, 83, 26, 120,167, 42, 94,212, 30,213, 57,237, 42,200,133, 44, 80, 12,167,153,171,194, 76, 16,205,119,247,177,195,135, 64,117, 58,242, 21, -167,157, 19, 46,154,171, 95, 40,165,113,216, 29,121,248,236, 51,210,195,219,211,216,253,108,220,254,190,234,253,228, 59, 23,186, -150,113, 45,209, 55,244,247,135, 7,198,180, 99,122,245, 83, 24,223,226,219, 68, 48,108,173, 99, 97,149,235,115,224,151, 17,171, -137,244, 44,106,203,172, 94, 54,168,183,195,238,255, 9,252, 97,174,208, 15, 60,189,190, 84,165,126, 46,196,224,109,127,172, 63, +167,157, 19, 46,154,171, 95, 40,165,113,216, 29,121,248,244, 83,210,195,219,211,216,253,108,220,254,190,234,253,228, 59, 23,186, +150,113, 45,209, 55,244,247,135, 7,198,180, 99,122,245, 51, 24,223,226,219, 68, 48,108,173, 99, 97,149,235,115,224,151, 17,171, +137,244, 44,106,203,172, 94, 54,168,183,195,238,255, 9,252, 81,174,208, 15, 60,189,190, 84,165,126, 46,196,224,109,127,172, 63, 163,165, 16, 73, 83, 65, 85,112,158,134,215,241,117,201,208, 42,222, 71,162,143,100,177, 44,115,223,240, 97,131,247, 29,226, 60, -155,225, 2,145, 35,115,202,164, 84,248,244,243, 95, 16, 99,228,230,242,134,148, 18,165, 85, 13, 97, 49, 56, 76, 23,131, 2, 98, +155,225, 2,145, 35,115,202,164, 84,248,228,179, 95, 18, 99,228,230,242,134,148, 18,165, 85, 13, 97, 49, 56, 76, 23,131, 2, 98, 16, 30, 30, 30,152,109, 39,238,156, 40,168, 8, 77,222, 67,176,131, 93, 69,130,206, 45,212, 34,199, 42,236,116, 18,237,250,168, 248, 16, 40, 22, 70, 19,130, 39,231, 12,206, 41,197, 14,143, 72, 86,220,172,235, 85, 61,158, 71, 13, 29,146, 70,116, 90,200,115, 206, 58,114,143, 3,177, 11,224, 26, 99,210,169,211,245,197, 13, 65, 2,227,116,228, 48, 30, 86,210,155,136,163, 11,189,118,188, 62,208,249,184, 98, 98,151, 3, 70, 8,129,156, 21,213, 60, 78, 71,218, 92, 73,135,153, 90, 10,206, 45, 47,219,136,195,209,154, -242,231,107,110,140,243,129,231, 52,126, 55, 58,126,163,115, 68, 7,160,120, 87, 7,235, 90,204, 99, 33, 68, 34,122, 77,158,149, -116, 17,222,235,218,229, 11,132,195, 69, 12,167, 12,130,138,119,112,153, 11, 55,175,223,114,184,191, 99,191,219,243,230,240,156, -241,249, 45, 79,110, 55,102,117,195,232,127,202,170, 40, 57,145, 82, 66,162, 99,248,214, 13,117,247, 29,230,113, 71,248,236, 51, -186,114,100, 16,199, 19,231, 24,157,227,173,139,103,206,142,111,222,175, 95, 85, 73, 31,254, 38, 23,244,175,194,184,253, 47,242, +242,231,107,110,140,243,129,231, 52,254, 32, 58,126,171,115, 68, 7,160,120, 87, 7,235, 90,204, 99, 33, 68, 34,122, 77,158,149, +116, 17,222,235,218,229,115,132,195, 69, 12,167, 12,130,138,119,112,153, 11, 55,175,223,114,184,191, 99,191,219,243,230,240,156, +241,249, 45, 79,110, 55,102,117,195,232,127,202,170, 40, 57,145, 82, 66,162, 99,248,198, 13,117,247, 45,230,113, 71,248,244, 83, +186,114,100, 16,199, 19,231, 24,157,227,173,139,103,206,142,175,223,175, 95, 87, 73, 31,254, 38, 23,244, 47,195,184,253, 47,243, 24,122,167,227,246,151, 67,224,249,224,121, 50, 88, 65, 15,142,141,145,189,154,129, 58, 52, 34, 85,189,230, 88, 36,170,170,221, 151, 12,116, 99,187,103, 29, 57, 75, 83,219,151,180, 2, 45,219,128, 87, 11, 65,115, 39,100,229, 82,212,130, 11,106, 7,115,193, 252,167,234,107, 13,134, 89,213, 44,114,177, 23,217, 9,150,162,106,104, 29, 35,106, 87,174,129, 33,138,240,116,202,107, 47,149, 156, 10,243,156,152,199,153,209,172,106, 41,233,254, 92, 92,212,162, 90, 29, 45, 1,100, 36,103, 66,109, 42, 1,178,206, 83,196, 107, 0, 76,115,167, 72,215, 69,224,211, 22, 52,104,181,248,204,178, 34, 72,171, 37,166,105, 68,170, 78, 19, 16,112, 69, 51,217, 27, 13,162,101, 94,211, 40,173,152,197,200, 34, 66, 13,135, 25,186,128, 15,193,124,204,217,180, 7,167,105, 65, 53,129,222, 52, -206, 60,188,122,205,244,246, 53,174,164,197, 64,176,118,210,203, 77,244,139, 23,143, 22,223,126,222, 17,238,126, 10,226, 41, 84, - 14,239,126, 78, 43, 19,158, 66,180, 17,234,226,111,119,239,241,226, 87,225,211,185,105,109,189,103,232, 90, 38,138,240, 99, 47, -252, 97,133,207, 16,158,223, 94, 19,135,192,113,154,180,195, 12, 29,165, 20,230,146, 76, 44, 25, 40,173,104,183,219, 80,159,185, +206, 60,188,122,205,244,246, 53,174,164,197, 64,176,118,210,203, 77,244,243, 23,143, 22,223,126,222, 17,238,126, 6,226, 41, 84, + 14,239,126, 65, 43, 19,158, 66,180, 17,234,226,111,119,239,241,226, 87,225,211,185,105,109,189,103,232, 90, 38,138,240, 35, 47, +252, 81,133, 79, 17,158,223, 94, 19,135,192,113,154,180,195, 12, 29,165, 20,230,146, 76, 44, 25, 40,173,104,183,219, 80,159,185, 232, 33,176, 72, 61, 65,125,154,195, 53,207,110, 62,170,184,145,142,221,241, 13,157,120, 58, 9, 36, 83,202,215,102,182,184,190, 231,120,113,100, 76,137,105,158, 72,105, 70,154, 48,116, 61,151,151, 87,196,168, 93,242,126,127, 36, 68, 77, 17,243,226,108,130, 244, 4, 65, 56, 30,143,204,243,140, 15, 29,125,231, 56, 28,143, 58, 37, 48, 71,200,130,119,173,173, 50,196, 13,193,121,142,245, 160, 60,249,218, 30, 81,252,180,112, 58, 83,223,171,142, 34, 56,175, 49,175, 62,218,243,167, 17,166, 13,115,141, 68,207,156, 43, 83,202, 68, 31,184, 24, 46, 52,222,245, 48, 51,166, 81, 95, 71, 18,240,174,210,199,126,229, 38,212, 86,193,105, 7,171,182, 78, 97, 74,153,212, 38,250,208,179,223,237, 25,247,154,239,174, 0, 37,163, 41, 38,229,203,171, 49,195,179,141,145, 23,243,145,191, - 27,225,101,231, 8,174,154,157,142,181,112, 47,113,188, 94, 78,201,130, 94, 22,186,163,165, 10, 46, 83,164,213,244, 34,103,215, -235,242,231,199, 28, 42, 17,135, 72,225, 58,101,202,152, 25,143, 7,238,238, 31,120,247,246, 25,159,124,251, 5,199, 23, 55, 92, -111, 20, 17, 61,108, 58, 98, 12, 52,132,227, 81,211, 25,221,182,103,251, 59,191,129, 47,153,227,225, 64,123,119, 71,173,158,203, -226,120, 42,158, 49,120, 14,206,193,223,176, 60,145,247,139,124,248,186, 40,188,191, 73,197,252, 47,242,245,155,157,124, 55, 30, + 19,225,101,231, 8,174,154,157,142,181,112, 47,113,188, 94, 78,201,130, 94, 22,186,163,165, 10, 46, 83,164,213,244, 34,103,215, +235,242,231,199, 28, 42, 17,135, 72,225, 58,101,202,152, 25,143, 7,238,238, 31,120,247,246, 25, 31,127,243, 5,199, 23, 55, 92, +111, 20, 17, 61,108, 58, 98, 12, 52,132,227, 81,211, 25,221,182,103,251,251,191,133, 47,153,227,225, 64,123,119, 71,173,158,203, +226,120, 42,158, 49,120, 14,206,193,223,176, 60,145,247,139,124,248,170, 40,188,191, 78,197,252, 47,243,245,155,157,124, 55, 30, 158, 15,158, 23,131,231, 89,239,185,233, 28, 55,157,227, 50, 8,189,211,216, 68,197,149,230,213,107,171,145,169,167,172, 99,237, 202,101,237,184,115, 86,170, 89,171, 5,145,122,218,193,123, 75, 91,106,118,147, 91, 78,224,222, 25, 36,198,128, 45, 65,125,231, 98, 34, 29,113, 94,149,173, 70,103,115, 39,216,184,193, 48, 12,173,105, 35,246, 46,168,221,201, 47, 39,208,170, 5, 61,205,153, @@ -1270,18 +1255,18 @@ char datatoc_splash_png[]= { 22,242, 33,166, 56,170,237, 68,196, 81,102,251,105,196, 94, 22, 39, 64, 45, 52, 81,255,108,136, 74,172, 67,236, 0, 52,207, 36, 167,234, 97, 45, 92,149, 50,141,164,241, 64, 73, 35,180,130,139, 38, 14, 12, 54,238, 23,133,122,148, 90, 79,241,172,134,189, 4, 133,217, 28,238,118,140,111, 94,195,124, 92,253,187,238,188,243,145,115,126,214,251,209, 44, 16, 90,198,207, 15,235,117,181,248, -204, 53,183,252,140, 58,119, 22,252,226, 78, 26,110,115, 35, 58,253,253, 66,194,177, 47,227, 69, 24,157,227,127,199,241, 47,230, +204, 53,183,252,140, 58,119, 22,252,226, 78, 26,110,115, 35, 58,253,253, 66,194,177, 47,227, 69, 24,157,227,127,199,241, 47,231, 196,102,136, 56, 95,153,211,164, 33, 65, 65,115,204,199, 52,173,197,177, 90, 0,139,154,141, 78,186,134, 5, 8, 19, 66, 48, 81, -151, 99, 44, 35,187,253,158, 48, 85,174,171, 39, 77,137,159, 30,103,114,209,175,189,236,152, 91,107,132,238,200,125,120, 32,155, +151, 99, 44, 35,187,253,158, 48, 85,174,171, 39, 77,137,159, 29,103,114,209,175,189,236,152, 91,107,132,238,200,125,120, 32,155, 253,210,153,224,242,109,187,167,139,119,235,225, 21,215,232,135,142,235,219, 27,110,111,175,184,188,186,164,235, 58,230,148, 8, 33,176, 27,119,154, 62,230,116,204,221,197, 72, 41, 39, 94, 67,107,101,205, 64,111,118,221,235,116, 64, 71,251,136, 57, 34,208, 0, 23,103, 76,228,210, 50, 93, 8,235,174,125, 78, 19, 77, 10,219,139, 75,106,109,248, 16,105, 56, 74,201,244,177, 67,196,113, 28, 15,140, 73,233,117,222,123,250,174, 63,253,220,205,254, 89, 75, 33, 89,220,177,139,250,211,156,115, 98,156, 71,117,171,164, - 66,158,116,237,161,132,187,106,150, 51,101,197,199, 16,105,193, 19, 83,229, 63,217, 70,126, 59, 38,110,201, 56,119,154,222,172, + 66,158,116,237,161,132,187,106,150, 51,101,197,199, 16,105,193, 19, 83,229, 63,217, 70,126, 55, 38,110,201, 56,119,154,222,172, 83, 33, 43,204,254,172,227,246,235,235,151,247, 52, 25,178,106,118,100, 93,235,216,106,237, 44, 56,232,116, 93,170,158, 71,164, -209,188,112,153, 19, 79,222,188,230, 97,191,227,243,135, 29,175,238, 95,242,139,235, 75, 46,134,142,103,183, 91,158,220,110,113, - 14,198,185, 48,167, 66,140, 40,197,238, 55,191,131,127,243, 22,217, 61,224,234, 76,173,129, 92, 2,163, 56,102, 25,200,103,221, -250,251,227,235,115, 65,218,135,254,223,151,173, 97,207,255,205, 87, 13, 31,251,126, 7, 31,254, 38,117,201, 95,183,206,252,180, +209,188,112,153, 19, 79,222,188,230, 97,191,227,179,135, 29,175,238, 95,242,203,235, 75, 46,134,142,103,183, 91,158,220,110,113, + 14,198,185, 48,167, 66,140, 40,197,238,183,191,133,127,243, 22,217, 61,224,234, 76,173,129, 92, 2,163, 56,102, 25,200,103,221, +250,251,227,235,115, 65,218,135,254,223, 23,173, 97,207,255,205,151, 13, 31,251,126, 7, 31,254, 38,117,201, 95,181,206,252,180, 63,135,143, 54,158,143, 54,145,167,131,231, 58,136,170,219,131,208,137, 2, 80, 74, 41, 20,179,151, 81,138,209,165,172, 80, 46, 164, 45, 27,195, 55, 11, 97,201, 41,175, 25,231,222, 53, 36, 58,162, 87, 97,146,171,213,138,130,250,183,197, 0, 50, 62, 4, 85, 54,123, 5,182,136,129, 99, 68, 44,170, 52, 44,163,110,204,158,114,234, 52,189, 29, 26, 66, 16, 98,180,241,187,125,254,102,106, @@ -1289,2167 +1274,2167 @@ char datatoc_splash_png[]= { 143, 70,126,103, 18,179,214,214,114, 88,215,220, 25, 69, 96, 46, 49,158,181,105, 91, 18,124,160,235, 61,125,167,251,127, 21,203, 41, 26,181, 89,104, 76, 46,133,156,103,242,116,160,164, 35,222, 65,232, 6,186,126,176, 76,105, 45, 8,165, 20, 74,210, 61,189, 10,220, 85, 76, 85,155,114, 73,167,113,226,248,238,142,186,223,225, 91,181, 46,253, 76,113,252, 94, 99,206,251,128, 76, 57, 9, -232,228,172,216, 59,222,199,201,182,147, 63,253, 44, 33,111, 61, 4,112,242,214,159,128,242,186, 38,249, 87, 33,240, 79,231, 70, - 18,225,217,229,160,136,248,230,240, 94, 85,227,227, 60,145,115, 94,215, 29,181, 22,162,143,116, 33,104,236, 40,205,166, 70, 69, -121,223, 85,187,180, 56,103, 94,164,202,239,205,240, 93, 9,124,183,143,236, 99,224,159,204,149,127, 85, 10, 83, 86, 90,156, 70, -172,234,245,161, 2,207,198,102,179, 97,232,122,246,135, 61,121,202,228,150,108, 60,174,193, 39, 15,239,246,140,135,153,221,187, - 7, 54,219,129,110,211,225,163, 87,174,191,104,177,195, 59,182,219, 11, 90,107, 28,143, 35,199,241, 72, 16,117,109,148, 86, 25, -211,209,108,151, 75,135,108, 43, 45, 88, 15, 37, 43,168,167,181,245,227,209, 59, 13,192,137, 91,205,134,239, 54,148,134, 38,158, -101,189, 38, 42,141, 92,102,198,249,136,243,142,174,235, 76,116,170, 63,165, 46,118,120,209, 24,218, 82,245,117, 88,106, 97,156, - 39, 74,169,228, 50,171, 16, 48, 9,119,119,247,204,243,172, 30,116,163,227,121,241,116,126,160, 86, 33, 87,207, 83, 42,191,195, -196,239,181,204,165, 47,118, 53, 52,211,110,200,186,226,241,230, 42,112,156, 0, 49,178,126, 92,108,162,119,194,225, 58, 57, 77, -121, 78,194, 87,187, 14,155, 60, 58,124,158, 14,164,138,145,109, 78,160, 85, 46,198, 3, 79, 62, 29,185,189,191,227, 71, 55, 79, -249,233,245, 13,247,135,107,230, 92,184,220,118, 10,191, 42, 85,121,114,181,146, 98, 32,253,224,123,184,215,111, 25, 62,249,132, - 86, 39,138,120,158, 22,225, 40,129,183,174,251,224, 24, 94,206, 66,114,126,217,125,249, 87,249,255,239, 31, 2,190, 74,197,253, - 27,155,210,246,117, 47,232,139, 93,237, 58,194,243,193,241,242, 34,240,116, 8,220, 68,221,157, 15, 82,137,168,138, 55, 47, 97, - 34,150,170,182,120,208,151,104,180,210, 78,178, 21, 45,102, 86, 64, 83,162, 36,101, 95,215,160,199,115, 9, 66,180,208, 7, 67, -188,169, 76,198,148,183,222, 80,158, 90,156,108,228,102,106,242,165,179, 88,249,215,210, 86, 49,156, 55, 44,166, 7,186,168, 35, -209,224, 76, 45,158, 33,151, 70, 74,133,105,154, 56,238,143,236,143, 35,227,152,152,230, 74, 46,122,219,232,122, 5, 85,108, 59, -207, 38, 56,162,115, 4, 39,120,218,218, 89, 57,150,130,110,192,151,118, 26,181, 87, 78, 43,136, 84,170,249,131,243,137,229,237, - 29,189, 91,200,103,129,224,173,105, 53,219,185, 68, 49,178,157, 83,236,231,241, 64, 77, 35, 62,120,194, 48,208,247, 27,134,126, - 67,231,148, 20, 86, 74, 37, 31, 39,114, 61, 82,106, 83, 96,143, 4, 90, 83, 84,104,205,149,105,127, 36,221,223, 65,158,207, 34, - 84,219,163,140,243, 47,155,188,243,158, 32,169,241,152, 3,255,152, 15, 47, 31,204, 90,151, 71,116,120, 78,152, 92,209, 3,215, - 67,240,252,111, 21, 62, 78,133,237,101,196,199, 96, 97, 62,133, 92, 42, 83, 82,245,246,218, 97, 90,130,158, 38,188, 45,153,231, -138, 17,174, 84,230, 92, 32, 21,190, 61,206,252,231, 21,254,158,143,188,188,188,162,247,158,230,224,216,224, 54,118,252, 95,115, -229,159,221,237,184,159, 50,147, 52,114,211, 12,128, 86,171, 90, 20, 29,196, 46,176,101,203,229,229, 37,187,221,142, 90,171, 90, - 14,141, 82, 56,116, 3,173,192,171, 95,188, 65,243,106,132,126,219,113,123,251,132,205,213, 6,223, 60,155,161,163, 31,122,242, -229,204,254,184,103,191,223, 51, 77, 19, 1,152, 75,178,136, 94,136,161, 35,182,142, 41, 29,236,224,231,141, 82,167, 7,203, 24, - 35,219,205, 5,125,208,164,185,219,219, 91,154, 56, 14,227, 68,154,139,118,214,211,104, 28,122, 93,120, 55,155,164,232,184, 93, -173,162, 58,186, 87, 97,220,148, 18,135,113,175, 0, 36,163,215, 21, 99, 66,104, 65,135,135,119, 59, 14,135, 81, 21,234,190, 41, - 51,161, 9,177,139,122, 16, 29, 15,252,118,116,252, 23,177,241, 91,155,194,134, 98,135,181, 83,180,174,167, 61,250,179,230,206, -180,181,115,119,198,145, 88,223,219,100, 98,101,233,183,199,215,100,147,229,250, 61,229,211,203, 35, 54,130, 77, 84,108,114, 85, - 29,244,181,112,117,255,142,103,135, 61,255,250,254,142,159,140,207,249,120,154,185,189,189,224,114,136, 12,157,234, 50,166, 82, -168, 5,210,118, 75,254,225, 15,185, 62, 30,184,188,187, 51,187,104,224, 89,153,152,188,103,231, 61,252, 21,250,215,191,236, 16, -240, 85, 40,240,225,155, 94,208,191,110, 54,181,229,246,218, 11,220, 68,225,163,141,240, 98,163,251,243,219,222,113,225,133, 94, - 42,174, 86, 11, 92, 89, 82,213,172,152, 27, 68, 70, 83,211, 22,166,181,170,189,101,177, 84, 53, 20, 58,145,178,193, 92,208, 27, -117,214,125,176,243, 66,240, 94,195, 82,130,118,149,206,130, 48,150,253,185,168,183, 7,196, 4,100, 38,152, 67,150,136,210,147, -192, 60,120, 89, 11,187, 23,136, 81,147,155,116,180,104, 29,115, 46, 76, 83,226,120,156,216, 29, 39, 14,135,196, 92, 0, 23,205, - 10, 39,108,134,200,229,208,177, 13, 94,201, 83,222,173,123,191, 37, 36, 70, 22,177, 87,107, 39, 22,120,107,118,152,105,214, 97, -103, 82, 78,164,108, 99,113,191,140,203, 29,195,208,115,177, 25,232, 59, 15,210,200,165,225, 92, 35,132,133,224,229, 25,211,196, - 56, 30, 40,121,164,235, 3,195,118, 67, 55,244, 12,177,163,243, 29,222,186,240, 82, 51, 41,107, 18,152,238, 58,195, 10,209, 81, - 42, 93, 97,190,123,160,141,123,141,105, 61, 27, 87,190, 95,204, 63,244,231, 47,251,248, 90,212,229,139,177,171,242, 1,188,251, - 90,246,101, 9, 23, 81, 53,183, 19,207, 31,249,200,255, 51, 38,164, 15,108, 47, 55,128, 61,135, 37, 81, 44,226,116,176,130,158, -242,146, 27,239, 41, 45,147,210,104,133, 86,161, 52,115, 74,108, 14, 35,191,159, 27,255,117,236,249,237, 24,137,206, 49, 11, 76, - 13,198, 6, 9,248,246,182,227,191,233, 27, 47, 5,126, 58, 38,222,181,202,199,135,145, 95,204,137, 84, 42,209,146,207,230,121, - 38,196,200,197,118,195, 56,141, 28,246, 7,205, 91,111, 10, 73,114,222,186, 86,239,116, 47, 63, 38,210, 92,104, 73, 56,220,237, -104, 34, 92,223, 92,113,115,125,133,143,142,155,235,167, 92, 93, 92,113,119,127,167,235,149, 82,216, 29, 30, 8, 62,210,135,158, - 57, 39,226, 28,149,167, 16, 20, 91,156,115,194, 57,225,217,147,231,220, 92,223, 82, 75,225,237,253, 29, 21, 33,149,202,235,187, -119,198,133, 79, 38,130, 19,182, 97,163,110,140,182,208, 21,117,245, 81,171, 21,132, 90, 25,167,145,113,158,201,213, 66,101,154, -250,223,157,120,230,121, 34, 79,141,227,113,226,112, 56,174, 29,113, 51, 17,107,109, 16,200, 60,107, 19,191, 43,153,255, 44, 58, -190, 27,133,222,174,171, 32,218,121, 47,185,247,222, 86,109,178,118,233,139, 11, 64, 97, 68, 42,174, 92,166, 64,242, 72,227,177, -128,163,234,217,117,215,222, 59, 44,182,247,228,157,139,183, 98,129,235, 98,192,168,230, 26, 47,203,196,205,195, 43,190,149, 70, -254,205,225,192,235,231, 79,217, 61,185,226,197,237,150,139, 77,111,159, 65,136, 94,152,158, 61,225,240,195, 31,240,244, 71, 63, -226,102, 63,209,130, 80,164, 50,150,137, 89, 6,146,243, 95,153,251,252,215, 18, 19,251, 85, 43,168, 95,199, 81,251,242, 99, 31, -140, 14,247, 98, 16,158,111,180,152, 95, 5,184,244,149, 78, 4,106, 53, 92,233, 66,129,171, 38,126,171,166, 48, 86, 10,156,194, - 84,130, 22, 88,227,100, 55, 17, 85,139,139,218,204, 86, 97,123,181,236,241, 98, 29,110,208,110, 33, 52, 67,153,218,139,217, 57, -193, 5,103, 98,176,120, 86,216, 77, 85,190,236,132, 77,237, 30,188,152,183, 86,187,255,232,221, 26,195,216,154,179, 4, 46,157, - 54,204, 41,233, 30,125, 74,228, 42,184,160,145,168,125,244,244, 94,232,163,103, 27, 53,163,121,221,157, 47,163, 79,179,221,173, -162,192,166, 29,185, 88,113, 95, 62,255,156, 19,217,210,213, 74,173,136,143,116,155, 11,134,174,103,232, 97,219, 71,134,161, 35, -120,209,238,186, 21,170, 43,171,200, 47,231,153,121, 60, 80,235, 76,191,233,233, 47, 54,244,253, 64, 8,234,211,246,226,145,210, - 84,252,148, 10,243,120,164,228, 68,240,172,113,174,130, 2,128,198,221,129,249,254, 29,146,231, 51,219,218, 99, 5,241,185,174, - 66, 62, 80,208,151, 21, 13,242, 69,124,172,124,160, 99,127,164,131,107,205, 64, 51,156,205,240,205,173,128,112,239, 29,255,172, - 10,159,227,184,185,189,102,179,233,152,166,137, 82,245,121, 20,113,108,186,142, 16, 58, 74,201, 43, 98,181,182,194, 56, 31, 40, -117, 38,134,129, 68, 35, 77, 19,223,217, 79,252, 65,115,252,151, 67,207,147, 24, 72,192, 67,107,164, 6,115,115, 36, 52,155,125, -110,234,242,248,221,203,129,239,111, 7,118,173,241,241, 16,249,151,247, 7,126,188, 63,178,111, 77, 59,126,102, 13,214,201,138, - 70, 13, 49, 88,166,185,198,127, 78, 54,170, 86, 11,228, 41,169,109,158,102,198,227,145, 92, 42,251,221,158,183,111,180,240,110, - 47, 46,184,186,222,226, 7,199, 69, 84,209,231,126, 60,208,117, 3,155, 97, 67, 95, 43, 87, 92, 83,107,214,233, 76,240, 28,143, -123,156, 56,134,205, 5,165, 53,118,211,200,187,221, 3,251, 55, 71,211, 76, 44, 30,254, 96, 98, 60,214,231, 41,248, 64,171, 98, -169,135, 90, 10,203, 42,216,212,196,180,224, 85,236,217,170, 58, 66,198,241,200,254,126, 79,158,170, 77,166,156, 82,239,154, 97, -124, 27, 92, 74,227,119,106,226,247, 7,248,237,232,184,246, 66,231, 32, 72, 91,147,254,188, 9,107,157,160, 66,213, 53,178,161, -173,236, 2, 76, 58,120,158,239, 43,237,241, 36,169,125, 96,146,164,129, 63,156,150, 69,102,141,107, 77,206,202,249,201,158,185, - 28, 2, 22,176,205,182, 85,254,246,225,142, 23,211,145,127, 61,238,249,179,244,109, 62, 19,199,115,113, 92, 14,234,122,137, 81, - 25, 17,243,111,124,155,177,101, 46, 62,249,156,235,210, 81,166,198, 84, 50,135,154,121, 35, 95, 29,209,220, 47,219,223,127, 45, -138,250,215, 73,136,246, 85,249,218,203,139, 99,235,224, 89, 7, 31,109, 28,207, 6,225,166, 19,174, 34,108,125, 37,182,102,197, - 55,155,221,172, 24,209, 76, 85,238,154, 18,166, 30,116, 85,187,170, 85, 72,156,232,174,155, 5, 19, 11,174, 4,124, 52,113,212, -217,216, 85, 8, 32,234,197,118, 62,174, 17,145,181,157,176,174, 46,184, 85,236,228,173, 75, 23, 89,186,120, 45,222,222,137, 21, -111, 75, 94, 19,189, 9,134, 96, 81,170,120,106, 94, 10,176,126,254,148, 27,115,110,212,230,137, 67,160,235,183, 92,110,123,182, - 93,164,147, 70,112, 16,156, 91,197, 60,107, 45,106,106, 33,106,139, 77,175,213, 53, 70, 82, 15, 42, 90,208,167,156,200, 21,154, -120, 8, 30, 79, 35,246, 61, 23, 87,151, 92,110,122,250,216,136,193,169, 5,171,233,243, 42,246,189, 84,208, 66, 93, 38,144,172, - 89,210,155, 14,156, 39,183,134,111, 64,243,134,224,172,164, 82,152,198,153, 52,141,170, 74, 12, 78,147,170,188,224, 93, 99,154, -102,198,187,123,202,113, 71, 48, 46,189,156,237, 54,223,247,166,243,129,113,251,121,161,230,189,127,199,175,208,229,159,110,120, -178,186, 2,128,213,167,252,111,156,227, 95,228,138,219,116, 92, 94,109,244,121, 53,186,159, 19,175,254,118, 9,180, 10,165, 86, -130,117,196,186,210,209, 64,150,185,101, 24, 11,127,127,170,252,247,161,231,119, 58,237,206, 15, 77,139,119, 66,236, 61,167,247, -213,222, 3,213, 65,215,132,239,111, 55,220,116, 29, 63,184,216,240,199, 15, 7,126,122, 28, 57,228,132,115,158,161,170, 11, 35, -108,162, 30, 58, 74, 85,159,186,104,116,233, 42,250,196, 76,147, 0, 0, 32, 0, 73, 68, 65, 84, 21,176,111,121,249,152, 15,142, - 52, 39,165,193, 5,207,235,195,107,222,188,126,131,239, 60, 23,215, 27,110,158, 92, 41,222,181, 30,216, 79,123,186,208,209,119, - 3,115, 26, 97,198, 28, 19,137, 62,110, 56,124,254, 11, 82, 86, 59, 99, 74,122,200, 16, 17,186, 24,137, 62,168, 43, 64,150, 17, -187,185, 74,234, 2, 59,210,104, 83,154,158,178,179,101, 8, 56,175,107,154,241, 56, 83,230, 76, 74, 51,227, 97, 34, 77,137, 86, - 85,227,146,155,142,236, 59,132, 39,193,243,221, 0,191,237, 43,191, 21,225,121,112,116,114, 18, 90, 46,133,123, 17, 98, 58, 43, - 0,174,233, 8,222, 47, 7,119, 57, 99, 34,200,249,146,230,139, 46,140,199,139,162, 15, 21,249,118, 74, 8, 92, 11,189,179,207, - 87, 87,141,139, 90,245,154, 97,136,117,138,240,172, 76,252,167,239, 94,243, 44, 39,126, 92, 11,111,234, 71,228,219, 11,158,221, -244, 92,108, 58,156,119,236,168,228,223,250, 1,233,201, 19, 54,127,242, 49,245,112,100,118, 3,135, 50,115,112,158,241, 43, 30, -250,242, 87, 81,220,191,254,124,189,111,200,116,192, 1, 23, 30,158,247,194, 71,189,240,116, 16, 85,183, 71, 24, 92,195, 55, 21, - 91,173,169,106, 85, 85,238,148,133,131,174, 88, 87,141,253,180, 72, 77,167,133, 36,246,209,232,108,202, 22,111,210, 16,175,232, - 84,193, 41,171, 91, 80, 72, 75,240, 4,223,225,157,237,249,188, 42, 89,107,149, 85, 8,164,150, 52, 85,128,251,112, 6,148, 9, -154, 83,173, 10,121,219,205,219,142,211, 57, 79,136,134,132, 52,139, 77,107,167, 45,112,197, 81,157,167,117,145, 33,246, 12,125, -207,182,239,217,118,106,113,137,142,179,136, 80, 78,254,251,170, 35, 6,105,170, 29, 88,132,129,203,199,115,173,164,156,153,115, - 33,163, 19, 6,125,204,218,173, 12,155,129,139,139,129,203, 77, 71,112, 42, 6,162,170,191,218, 7,167,202,107,105,184, 82,160, - 22,130, 19, 66,223,225,187,101,164,123,164, 86, 79,139, 13,223, 11, 62, 68, 92, 85,187,209,116, 28,201,105, 54, 95,208,114,224, - 81, 54,250,120, 60, 50,239,238,192, 44,108,231,194,181, 47,136,224,222,235,186, 29,143,154,167, 15, 22,252,199,215, 37,167,170, -246,232,126,123, 22,216,194,122,199, 69,128, 7,129,255, 15,199, 39, 52, 46, 47,148, 28,119, 28,143,212,154, 20,134, 18,134,245, -231,154,141, 75,222, 90,101,154,181, 67,141, 33, 48,215,140, 31, 19,255, 32, 57,254,199,254,130,151,209,147, 16, 14, 52,102,150, -130,222,180, 67,111,104,199, 14, 36, 52,253, 43,161,111, 25,200, 34, 12, 49,242,195, 16,120,190, 25,248,217,225,200,159,220,239, -249,100,158, 57, 76,137,237, 32, 4, 81, 64, 75, 59,227, 42, 96, 7, 16,141, 57,213,157,244, 66,200, 91, 33, 70,246, 36, 45,141, -157, 20,184,123,117, 79,154, 19,215,207, 46,212,206,150, 43, 83,157, 20, 99,107, 16, 24,125, 78, 85,192, 86, 23,155, 40,149, 46, - 70, 26, 74,128, 19,179,117, 58, 35,196,105,180,108,210, 9,195,242,218, 23,229,175,233,154, 72,173,164,173, 58,230, 41,113, 60, - 28,153,142, 26,190, 82,215,117,155,194,102,104,137, 11,224,105,116,252,192, 59,126,208,123,158, 7,184,104, 66,111,207,155,130, - 13,101,213,148, 44,111, 1, 5, 23,149,166,227,248,106,169,107,126,101, 22,112,198,162, 60, 5, 52,189, 95,208, 17,121, 36,129, -251,208,228, 17, 51, 44, 54, 30, 25, 43,150, 57,128, 45, 31, 78, 16,155,106,157,126, 3, 6, 50, 63,220,189,225,217,199, 7,254, -116,191,227,207,191,251, 61, 61,126,136,163,139,129,237,118, 32, 15, 29,237, 98, 75,158, 19, 29,159,112,243, 48, 49, 38,216,149, -204,103,226, 40,226,190, 22,117,235,175, 21, 19,251,107, 33,220, 95, 77, 65,255,214, 32, 60,219,120,158,246,194,117,132, 75,175, -163,120,111, 16, 25,141,251, 60,141,230,106,213,144,144,102,202,247, 58, 23,243,165,171,232,203, 57,129,232,241, 93, 36, 4, 79, -203, 40, 98,181,216,223,179, 49,160,136,179, 36, 45,165,104,133,168,108,104,188,232,142, 29, 77,177, 90, 66, 87,116,244,104,249, -231,178, 20,120,219,153,123, 71,231,132,224, 79, 81,170,222, 5,250,174, 51,216,140, 87,224,139,217,236, 88,246,183, 33,208, 15, - 3,226, 35, 81, 28,219, 62, 48,116,145,232, 77,104,119, 94,232,154,104, 94,121, 83,230, 89, 53,235,221,122, 11, 57,139,142,205, - 57,171, 24, 78,156, 10,184,108,122,160,233, 80, 29,219,139,129,237,118, 67,244, 78, 5, 64, 38, 96,115,214, 65,120, 15, 34,133, -210, 20,146, 19,189,221, 32, 83, 34,207,153,156, 18,173, 8,201,103,166,161,210,186, 30,215,156, 98, 79,211, 81,167, 41,110, 25, -185, 42,144,103,156, 51,187,135, 29,101, 60, 16,218, 23, 71,231,238, 75,186,236, 47,187,194, 62,148,218,118,214, 91,125, 32,108, -189,157, 9,152,214, 59,169,125, 97, 5,133,124, 42,129, 63,106,208, 58,199, 48,104,225,206, 53,227,189,208,247, 27,106,243,148, - 90,200, 37,175,220,254,146, 43,193,235, 45, 59,101,216,206,141,255,170,120,254,209,102,203,173,247, 28,173,120,207, 8,179, 21, -246,121,233,208,173,160,103,123, 95, 68, 63, 86,172, 56, 21, 17,114, 83, 7,194, 16, 3,191,121,125,205,203,205,134, 63,219, 29, -248,209,126,199,219, 90,237,117,161,162,178,156, 19,165,170,160,172,235, 58,230,156,244,240,103, 65, 67,165,150,245,123, 46, 77, - 95, 59, 34, 66,140,145, 92, 53,243, 96,247,118,135,115,142, 39,207,111,240,157,126, 92, 59, 94, 13,170,241,222,219,185, 65,173, -154,209,247,202,109,183,110, 92, 51,195,189,137, 86,149, 64,151,114, 94,187,248,182, 64,138, 68,216,246, 3,227, 56, 49, 30, 71, -166,227,196, 52, 38,242,164, 98, 86,125,173,218, 79,180, 54,188,131,167,226,248,150, 52,190, 27, 29, 47,162,112,229,160, 35,227, - 10,204, 78,168, 8,161,234, 26, 35, 3,169, 9, 81, 96,110,205, 70,239,246, 38, 58,142, 15,182,242,240,173, 17, 16,130,253, 29, -247,193,213,207,226,206,144, 71, 69, 90, 30,109,209,229,195, 37,190, 61,234,225, 53,252, 6, 83,202,203,123,211, 55,251,147, 7, -110,199,145,223,251,217,143,121,182,219,241,163,227,111,242,217,119, 95,114,117,189,229, 98, 8, 92, 12, 17,182, 27,230,223,249, - 45,196, 71,174,254,228, 39,228,135,153, 99,157,216,215,192,157,255,122,144,230,126,153,253,238, 63,122, 81,255,155,190, 59,255, - 15,249,229,128,171, 0, 47, 7,120,185,245,220,118,142,235, 0, 91,175, 98, 57,223,180,144, 47, 99,229,218,170, 22,230, 92,104, - 85,119,179, 45, 41,167,189,206, 74,136,211, 43,184,210,162,222, 88,154, 87,161,217,210, 73,212, 50,107,194, 20, 2, 78,173,105, -177,139,154, 63,221,197,117,100,190,170,218,157,134,125, 44,228, 56,191,118,235, 70,146,179, 78, 93,156, 16,189,179, 14,125, 33, - 74, 41,154,211, 71,111,249,209, 98,196, 45,107, 20,157,122,213, 55,221,114,179,109,244,206,209, 71,183, 30, 26,196,212,182, 6, -166,210, 29, 93, 8, 10,170,201, 69, 83,209,206,138,152, 19, 71,113, 26,143,154,154, 90,103,130,143,196,174,211,216,213,232, 25, -250,142,205,118,160, 31,122,186,190, 83,165,118, 46,171,112,112, 25, 53, 54, 91,113,180, 90,168, 22,160, 81,210, 76, 42,137, 50, -107,236,170,212, 70,150, 70,106,129,136,210,227, 74,174,170,107, 88, 15, 25,118,224,104,141,227,225, 72,126,216, 33,185,156,186, - 67, 62,160, 92,255,146,157, 37, 95,210,165,159,245, 79, 31,232,151,228,236,147,157, 5,181,172,159,160, 89, 87,219,152, 17,254, -101,115,124, 44,194,205,245, 5,155,161,227, 56,207,228, 82,112,190,163, 11, 29, 85,132,105, 42, 4,187, 22,106,205,120, 96,211, -111, 56,140,137, 56,205,252,195,226,249,239, 54, 91,182,206,177,111, 77,247,229,246, 54, 89,151,190, 20,248,165, 35, 95, 58,248, -178,116,146, 52,125,111, 49,233,101, 61,118, 52,134, 16,248, 59, 79,174,249,246,197,134, 31, 31, 39,254,108,183, 35, 1,113, 51, - 48,207,186, 2, 24,182, 23,250,237, 41, 23, 71,215, 49, 38, 58, 91,209,166,139,120,177, 86,166,121, 58,117,207,181,241,240,102, -199,118,216,240,244,197, 13,169,164,213,166,185, 20,102,231, 78, 12, 4,157, 0, 56, 19,108,122,131, 24, 45, 68, 61,204, 13,208, -140, 90, 39,148, 90,201, 37,147, 18, 76,135,204,221,219, 59,246,187, 3, 57,171, 70,198, 57, 79,240, 81, 95, 43, 37,115, 41,194, -243,193,243, 81,240,188,144,194,181, 20, 58, 3, 11,213,166,207,105,110, 74, 84,204,102, 33,157,155, 22,197, 32, 90,184,131, 57, - 80, 98, 91, 10,187, 16,208,130,190,236,219,163,125, 44,176,252, 27,193, 55, 29,227,251, 53, 8,232,195,250,142,243, 43,174,125, - 65,195,113,254,174,173,175,135,211, 44,161,173, 87,239, 98, 85,173,118, 68,104, 78,136,181,242,189, 55,191, 96, 51, 29,249, 55, -211,200,238,187,223,130,103,215, 60,233,183,108,122, 79,112, 27,242,223,250, 30,206, 9,215,127,250, 51,158,223, 39,118,117,102, - 66,152,172, 45,144, 15, 78, 18,190,186, 5,254,223,167,176,135,175,107, 81,253, 38,236,237, 29,112, 29,224,229, 70, 11,250,211, -222,113, 29,132,173,135, 40, 21, 87, 21, 34,179,140, 20,139,133,154,212, 86,168,169,106,199, 91,180,179, 44, 89, 71,132,202, 27, - 87,255,103,205, 25,201,137,156, 59,188,141, 96,165, 21, 28, 85, 5,115, 78,133, 91, 49, 70,141, 64,140,241,228, 63, 95, 60,179, -246, 62, 4,191,138,118,188, 87, 47,174,142,226,117, 60,191,100,162,123,175,187,111,111,193, 32,222, 5, 66,244,170,118,119,158, - 86,206, 0,167,226, 44, 22, 83,139,119,244, 39,234,156,243, 66,176,195,132,152,248,109,233,120,168,166,150,173,229, 49, 20, 98, - 73, 19,147,101, 91,215, 8,193, 41,194, 51, 70,250, 37,211,189,143,244,195, 64,223,107,130, 28,162,207, 97,181,131,195, 74,208, - 91, 84,244,185,144,115, 82,170,221,148, 72,179, 30,170,164,105, 37, 82,232,138,117,129,222, 27, 0, 68,243,184,171,177,188,171, -165,222,141,135,137,227,221, 61,117, 58,104, 78,186, 60, 6,116,240,239,216,139,203, 23,122,237, 47,118,231, 95,126,209,242,158, -177,237,188,103, 58,249,212, 95,121,207, 63,247,145,209, 71,158,110, 6,196,171, 24, 43,196,142,146, 45, 20,200,236, 6, 49,216, -240,180,101,156,131, 57, 23,220,126,230, 15,102,248,159, 54, 91, 58,239,121, 88, 70,233,246,126,106,237,172,184,107, 17, 79, 2, -169, 53,237,202,237, 45, 1, 5,161,180, 83,134,119, 57, 19, 87,153, 43,138,155, 24,248,189,232,249, 78,244,252,100,156,121, 85, - 42,111, 83, 97, 20, 97,158,205, 39,191,240, 18, 86,253,180, 30, 42, 23,194,225,114,109,157,143,152,197, 41, 63,225,237,231,239, -232,186,200,237,179,107,115,120,232,164,169,180,178, 90, 56, 75, 41,106, 3, 93,190, 66, 43,176,194,120,116,122,230,218,233,112, -231, 68, 87, 80, 15,111, 15,236,239,247,148,217, 4,125,198, 95,247, 33,208,106, 35,136,112,229,225,101, 23,248,150, 23,110, 5, - 58, 10,210,116,164, 61,177,160, 92,117, 55,190, 60,119, 14,240,205,212,237, 77, 87, 77, 94,180,224, 7,129,100,197,125, 41,236, -209, 10,125, 20, 33, 46,127, 22,165, 9,158,255,157,102,183, 23,207, 2, 72,210, 7,176, 10,231,218, 89,177,180, 53, 71,181,215, -146, 6, 38,157,122,249,229,201,168, 8,163,235, 56,134, 45,210,245, 10,147,154, 71,124, 30,113,101,198, 89, 10,159,114, 34,224, -249,254,158,238, 79,255,152, 79, 15, 15,188,155,191,207, 94, 62,194,221, 8,219, 33,194,139, 27, 82, 31,200,253,192,229, 31,255, -132,143,238, 38,142,173,241,185, 8,249,145, 18,255,235,181, 82,254,139, 20,246,240,235, 98,254,215,243,245,189,192, 77,132,111, -111, 28, 47, 6,225, 73,175,162,184,173,135,136,238,131,213,146,101,191, 47,214, 45,230,122, 10,100,201, 77, 71,234, 85,237, 44, -167, 5,170,206,180, 90,174,228,113,102,118, 1, 87, 3, 11, 8,211, 7,133,196, 56,167, 99,244,174,139,244, 54,162, 15,222,219, -167, 56,137,102,156, 91, 70,238,170, 94,143,225, 92, 0,231,214,130, 46,168,224, 43, 56,214, 98,239, 44, 35,221,187,197, 94,183, -180,232,250, 56,157,121,118, 87, 27,151,217,106,188, 51,165,189,217,242,168, 90,224,155,107,167,241,186,141, 91, 87,161,151,221, -132,107,211,120, 86,239, 29,125,232,136, 93, 79,232,244,251,236,122, 85,212,135,168, 22, 54, 69,104, 86,243,246,115,122,140,230, - 65, 46, 13,114,171,230,161,207,148,220, 76, 95,160, 74,235,230,180, 91,103, 89, 97,120,175, 29, 88, 78, 6, 14,209,226, 0, 90, - 12,211,113,199,184,123, 64,170,117,233, 95,178, 11,111,242,225,226,222,206, 14,132,237,189, 14,253,253,190, 93,214,195,211,123, - 71, 0,249,226,191,210, 78, 83,243,247,254,200, 5,254, 44,244, 92, 95,109,233, 55, 29, 83,154, 13,182,226,161, 86, 82,201, 22, -101, 27,104, 69,113,196,125, 23,121, 24, 39,210,155, 29,127,144,224, 31,109,182,116, 49,240, 96, 29,122,178,142,252,188, 91,159, -209, 27,109,182,177,123,110,218,161,231,102, 35,119, 99,199, 87,139,193,173,167, 58,112,154,164,180,182, 22,177,151,155,158,103, -219,158,215,165,240,201, 69,207,167,187, 35,111, 14, 35, 99, 86,216,203,178,114, 90, 74,187, 88, 98, 94, 78,101,237, 30,151,192, -148, 5, 98, 19,134,200,116, 28,249,228,167,191,192,121,207,243,143,158,106,104,141, 19,162, 68,179,109,154,135,126, 85,122, 91, - 88, 79,206, 60,146,153, 57, 5,189,212,210,148,197,112, 63,114,255,102, 71,154,147,242,221, 99, 7, 8, 37, 37, 34,194,117,231, -121, 57, 4,190, 19, 29, 79, 41,120, 19,194,158, 43,221, 79, 66, 43,221,139, 47, 47, 47, 93, 31,105, 80,145, 23, 43,236, 77,139, -185,170,107,148,239, 16,208, 46, 60,218,200,189, 51, 53,124,112,186,151,239,228, 84,224, 11,142, 40,218,237, 55, 22, 59,156, 60, -182, 78,182,211,100,168, 33,170,223,105,234, 93,111,235,142,191, 90,224, 81, 3, 10, 21,207, 33, 94, 51, 95, 60,229,234,246, 41, -210,245, 28, 15, 59,246,251, 59,252,241,142,126,186, 39,230, 3, 98, 24,226,234,133,171,233, 72,255,211, 63,227,102,247,192,155, -221,142,233,135,223, 35,188,124,194,229, 85, 68,174, 47,216,127,251, 57, 97,183,231,166,188,226,249,216, 56,182,198,189,137, 10, -191,238, 90,177,255, 32,246,251,175, 11,250, 95,254,175, 37,148,229, 73, 20, 94,110, 28, 31,109, 28, 79, 58,184,182,130,222,137, -133,172,152, 69, 77,139,249,194,108, 87, 69, 75, 45, 66, 73,104, 81, 47,231,247,115,121, 52,109,213, 46,179, 82,167,153,220,116, - 31,236, 4,139,127, 84,161,155,114,177,163,194, 96,204,163, 46,203,174,143, 83,206,249, 90,208,163,167, 11,110, 85,177,123, 19, - 1,201,154,137,110,190,215,165,227,118,186,143, 95,162, 95, 17,104,174,173, 73, 97,200, 57, 87,222,248,243,110,129, 99,184,179, -221,154,190, 87,164,253, 98,223, 59,127, 86,155, 90,129, 74, 50,204,167, 16, 99,207, 48,108,233, 6, 45,226, 33, 6, 98, 23,241, - 33, 32,222,250,182,162,207,241,146,115,174, 2, 59,179,196,149,166, 73, 82,165,233,248,215,162, 84,157,143,136, 23,130, 56,106, -202,180,146,205, 98,167,226,185,148, 51,115,154, 41,165,216,120, 87,159,195,148, 50,135,135, 61,109, 30,207,104,110, 95, 94,216, -191,108,143, 46, 31,188,174,132,115, 45,242, 99,165,221,135,184,116,143,180,100, 32, 13, 95,133,157, 23,254,216, 71,202,166,231, -197,147, 75,134,222, 81, 90,197, 39,189, 38, 66,112,180, 60,211,199,160,116,175,154, 9,209,147,154,195,237, 11,255, 32, 11,255, -195,118,195, 38, 4,246,214,121,167,179, 34,158,104,100,228, 36,128,179, 2,174,111,109, 13,209, 41,181,173, 90,137,250,120,137, -112,122,228,237,116,147,107,160,212, 65,111,197,253,230,130,239,221, 94,243,249,126,226,243,195,196,219,227,200,110,156,152, 82, - 82,117,121, 59,251,222, 23, 59,164,168, 0,125,209,101, 56,231,137, 33, 50,202,196, 52, 37, 94,125,254,150,203,139, 45,190, 87, -113, 28, 94, 19,232,188, 11,136, 19, 21,191,217,100,102, 17, 38,150,172,187,122, 31, 60, 65, 2,243,152,120,247,250,158,183,175, -238,152, 70, 77,183,211,224, 31,181, 66, 70,169, 92, 70,225, 91,189, 22,244,219, 24,232,106,165, 78,133,148, 11,231,136,224,243, -181, 77, 59, 19, 60, 46,221, 49,143,149, 19, 84,219,131,215, 51,158,123,177, 80,159,108, 35,250,124,214,189,151, 6,115, 85, 59, - 92, 68,232,108, 52, 31,155, 16,221,105, 39,239,207, 46, 53,119,118, 29,182, 37,107, 93, 78, 63, 75,135, 80,151,123, 75,171,102, -145, 19, 58, 31,216,198,200,141,115,108,174,110, 56, 94,221,240,102,119,205,253,254,134,187,195, 61,221,225, 29, 23,135, 55,132, -124,180, 60, 10,143,175,133, 39,175, 63,103,216,237,120,184,187,103,250,123,127,151,209,127, 68,243,142,218, 7,202,139,167,132, -212,184,126,181,231,233,174, 48, 22, 24, 69,206, 79,134, 95,219, 2,255,203, 10,123,248,170, 23,214,175, 82, 33,255,203,120, 44, - 97, 41,232,131,250,208,111, 59,225,186,115, 92,120, 8,152, 21,203,136,112,173, 84,179,103,129,212,165, 99,213,162,174,111,156, -131,192, 56, 51,146,218,227,117, 22,196,176, 96,213,148,136,230,188,179,189,120,208, 61,115, 12,196,232, 45, 22,210,242,181,207, - 58, 60,231,212,111,174,234,109,237,162,163,247,248,168, 97, 44, 11, 3, 90,187, 17,141, 63, 93,111, 62,226,151,137,249, 58, 2, -117,226,181,195, 93, 46,204,165,203,183,112,145,197,243,222,202,169, 43,167, 54, 85,238, 47,251,233,165, 51,111,134,113,205,137, -156,102,106, 45,248,232,232,252,192,176,221,210,247, 61,190,239,244, 0, 18, 21, 51, 43,206,233,141,183,216, 88,255,204,219,222, -172, 29,172,181,157,130, 93,108,162,160, 97, 29, 85, 3, 45, 68,112,165, 82,107,130,166,238,131, 57,205,224,188, 66,109, 74, 81, -109,175,195,180, 1, 66, 26, 39,210,120,212,155,217, 35,113,156,124,161, 96,191,239, 81,231, 3, 31,151,247,138,221,135, 8,241, - 31,218,203,183,118,238, 35, 94,198,163,154,157,254,169, 11,252,121,236,216, 94,246, 92,108, 34,149,170,142, 5,191,144,200,154, -121,242,133, 52, 37,188,135, 57,103,246, 15, 19,191, 63, 55,254,225,102,203,117,240,140, 86,184,103, 78,138,246, 83, 97,135,124, - 86,240,179,141,141,235,242,251,118,218,155,127,225, 16,243,190,204,122,153,100,201, 66, 15,212,201, 75,160,241,116,219,113,115, -177,225,123,181,178,159, 11,119,199,145, 87,251, 61,239,118, 35,199, 89,241,171,186,198, 89,114, 0,180,152,103,203,205,205, 41, - 43,211, 32,107,137,124,120,187,227, 39,237,231, 60,121,113,205,246,122, 64, 16,114, 85,123, 90,244, 74,209,203, 84, 90, 89, 38, - 73, 26, 7,235, 92, 96,154, 19,243,177,240,230,213, 29,111, 95,191,131, 92, 9, 78, 11,230,245, 16,121,210, 5,182, 37,113, 21, - 28, 55, 81,184, 14,129,208, 26,117, 86,165, 60,229,189,130,254,101,235,153,118, 82, 94, 46, 66,188, 83, 70,186,109,175,237,117, -214, 80, 65,157, 55,174,123, 17,253, 57, 4,235,206,179,141,220,115, 91, 4,119, 78,139,186,160, 5,222,186,254, 40, 75,231,111, - 56,217,247,104,136, 77,220,122, 8, 43, 75, 2,156, 52,117,232, 84,240, 20,182,121,143,203,151, 72,154,232,188,112,113,113, 73, - 44,153, 88, 18,119, 77, 24, 93,228, 94, 34,151,251, 79,137,249,176, 30, 86,155,192,112, 56,224,126,252,103,236,196,147,238, 30, - 24, 63,122, 74, 10,158, 50,116, 76, 47,110, 8,185,114, 59,223,243,238,216, 24, 9,143,236,155, 95, 56, 28,183,246,133,251,253, -251, 5,244,171,192,127,255, 80,231,190, 60,174,240, 85, 45,170,223,180, 98,190, 96, 95,159, 4,120,217,171,117,237,182, 19,195, -190, 90, 65,183,168,211,165, 59, 95, 94, 8, 98,217, 37, 88, 7,191,222,245,224,113, 39,102,173,242, 66,125,115,193, 17, 98, 36, -122, 29,179,235,216, 60, 24,238, 85,127,191,116,176,193,128, 46,242,232, 70,218, 78, 73, 94, 38,152, 91, 53, 86, 14, 3,202,136, - 61,198,166,113,150, 77,119, 1, 13,221,159, 57, 81, 82, 20,103,104, 73,231, 28,101, 25,208, 53,206,186,245,118,106, 57,170,254, -251,182,124,239,237, 4,177,192,201, 26, 76,147,115, 33,229,153,146,102,144,170,251,242,190,103, 24, 54,214,161, 71,100,181,224, -121,196, 59, 61, 40,149, 51, 95,123, 93, 42,156,149, 69, 17, 91, 31, 96,209, 90,154,128, 83,157, 45, 44,209, 32,156, 60, 39,202, - 60,106, 55,230, 50,199,195, 81,169,106, 6,221, 15, 78,159,187, 46, 4, 28, 66,158,102, 90, 78,171,146, 95,120,140,133,125,159, -250,246,101,163,247,247,219,214,115, 60,108,251,146,142,254, 92,145,172,233,116,114,218,164,219, 53, 52, 3, 63,146,192,231,161, -103, 59,116,154,199, 93,244, 80,232,157, 90,194, 98,140,120, 39, 76,227, 81,175, 21, 7,227,195,145,223,222,205,252,183,113,195, -183, 66,176, 34,110, 42,119,179,172, 45,197,252,145, 77,141, 70,177, 17,124, 89,246,231,203, 68,198, 14,168,239,223, 59,229, 76, - 63,176,174,167, 90,179,235,207, 22, 19,173,210,106,214, 80, 35,231,216, 56,199,102,227,120, 58,108,248,246,101,100,127,155,217, - 77,153, 41,149, 85,204,214,108, 37, 84, 91, 37,229,194, 62, 37,246,243,204,156, 51, 57,246,212,218,152,114,225,221,155, 59,198, - 52,243,109,247,130,203,107, 71, 46,170,113,161, 83, 65, 28, 5,198, 52,171, 91,160, 20,109,216,115,230,254,213, 91,202, 97,166, -204,137,167,192,245,197,192,181,175, 92, 75,229,186,247, 92, 6,161, 43, 10,132,161, 86,218,152, 41,118, 64,161, 61,222,247, 47, - 93,122, 59, 99,249,175, 35,111,249,146,131,156,237,116,234,217, 39,104, 98,145, 59,166, 71,169,214, 69, 23,175,163,251,213,234, - 38,144,196, 86, 35,162,246,194,204,210,189, 55,138, 44, 7, 1, 29,111, 27,113,250,164,241,176,157,187,179,215, 88,181,169,129, -199,144,147, 13,168, 19,245,225,115,142,233, 8,193,113,209, 94,194,113, 79,183,127,224, 50,103,124,173,140,221, 37,199,250, 28, -183,255, 4, 95,231,245, 53, 83, 61,184, 86,216,252,249,199,116, 63,255, 25,242,252, 25,233, 59, 47, 57,222,222, 50, 69,199,241, -186,199, 29, 34,183,121,226,152, 26,227, 47,209,194,255,187,184,239,191,236, 99,127, 93,133,254,125,223,123,248,170, 21,212,111, - 90, 49, 95,126, 69,224, 54,194,203,141,240,162,251,183,236,189, 89,143, 36, 73,146, 38,246,137,168,170,153,187,199,145, 89, 89, - 87, 31,179, 28, 14, 56, 0, 7,196, 18,224,190, 44, 64,128,243, 66,190,241,255, 3,228,195, 46,123,142,238,234, 58,178,243,138, - 8,119, 55, 51, 85, 17, 62,136,168,154,154,135,103,117,207, 76, 87,119,205,116,101, 35, 59,163,226,244,112, 55, 83, 17,249,228, - 59,216, 38,244, 64,216, 19, 16,250,132,176,186, 75, 23,151,146,168, 49,220,225,182,176,214,177, 11,136, 20, 33, 81, 43,186, 53, -192,128, 56, 32,212, 66, 29,227, 74,112,139,150, 79,220,147,221, 76,103, 30, 45, 50,213,119,233,228,167, 4,247, 1, 33,228,222, -237,126,255, 21,181,116, 51, 81, 50, 54, 44,161,155, 19,101,109, 70, 12, 80,223,102,132,176,255, 78, 70,215,179, 70,165, 30, 64, -202,126, 80,119, 57,239,253, 97,230, 7,139,136, 98,201, 5,203, 60, 99,241,233, 60,197,128, 97,220, 99, 55,142, 24,199, 1,105, - 28, 45,252, 37, 4,144,195,223,228,198, 41,197, 33,119, 52,173,188, 71,103, 58, 65,175,130,152,197, 73, 75, 90,196,210,236, 84, - 65, 20, 13, 18,150,130,101,201, 80,223,199,178, 63, 63, 69, 50,108, 51,109,150,187, 38,131, 11,166,151,159, 45,144, 2,132, 43, -164, 56,106, 7,224,199,154,194, 46, 14, 99,243,169,245,219, 9, 61, 63,200, 89,215,215, 84, 55,176,187, 37,222,105,219,205, 2, -103, 48,126, 29, 70,228, 49,225,102,151, 16,216, 94,187,192,182, 99,133,154,109, 72,206, 25,226, 43,135,227,113,194,207,159,102, -252,223,156,240,183, 41,182,233,123,105, 58,115, 90, 39,114,210, 6,183,215,194,238, 87,179,229,214,119,200,193,243,201,156,188, -144,163,253, 91,175,149, 21, 75,119,134,185, 40,168, 20,183, 31,245,226,231, 94,194, 35, 51, 70,102,188,216, 51,202, 46, 88, 17, - 83,135,132, 67,176,221,145,194,164,144,203, 98,133, 89, 8,115, 17,156,150,140,199,105,198,187,211,130,243,235, 15, 22,108, 50, - 70, 44, 42, 80,182, 0,160, 89, 4,143,243, 17, 75,158, 48, 44,138,225, 41,227,230, 84,240,217,249,140, 3, 43,118, 59,198, 62, - 38,236, 99,192,160,138, 88, 20,144, 25, 58,215,200,215,110, 82,172,133,240,242, 42,160,149, 87,177,241, 47, 32,116,236,241,174, -172,183,245, 24,109,246,221, 4,147, 8,182, 92, 8,242,191, 74,166,224, 0,153,148,144,108, 58, 23,216, 78,126,160,234, 29, 0, - 20, 48, 10, 89,129, 87,178,169,189, 93,209,180, 50,219,201, 95, 47,170,127,187,215, 12,158, 93,175,203, 35,242,242,132, 15,167, -119,120,252,238, 55, 0, 39,136,159,131, 3,172, 9, 57,241,136,137,119, 56, 72,231,194,200, 4, 66, 65,156,143,224,162,184,125, -252, 0,124,248,128,242,203,191, 2, 37, 70, 97,198, 60, 48,110,135,136, 23, 66, 40, 66, 88,126,128, 2,252, 99, 9,120,137, 63, - 21,244,127, 59,219,240, 15,121,146, 63,137, 48,200,125,100,124, 50,152,237,235,158,213, 24,177,181,168,151, 42,169,170,183,156, - 25, 82, 24, 44,108,177,170, 2, 1, 5, 75, 58,163, 46,195, 88,221,187,155, 67, 68, 28, 18, 82, 26,144, 98, 68,138,213,252,165, - 66,200,149,181, 30,193,193,211,214,120,245,251,174,153,233,155, 4, 38,223,155, 7,134,131,162,182,243, 44, 34,136,164,107, 18, -155,229, 62,193,211, 51, 0, 74, 53, 34, 2, 30, 37,110,211,190,123,163,171,214,201, 92,183, 48, 48,214, 9, 12,157, 20, 76,160, -152,139, 37,185,149,197,184,172,156, 18,198,184,195,126, 52, 18, 92, 26,226, 26,237, 25,200,227, 87,235,158, 84,214,120,205,134, -241,118, 30,241, 29, 74, 97,137,113, 11,230,121,198, 52,207, 40, 89, 1, 26, 64,145, 64,197,208, 8, 81, 67, 32, 40, 69,164,221, -128, 56, 12,246, 26, 45, 70, 1, 35, 38,132,104, 19,231,178,204,144,188, 60,247,108,167,139,176,149,205,185,189, 62, 55,216, 76, - 95,189, 40,168, 51, 8,209,213, 50,118, 83, 15,117,165, 91,108,118,233,190, 92,176,115, 53,226,205,112,135,175,227,136, 97, 72, -184, 57,140, 40, 42,150, 96,231, 64,109, 8,128, 32,163,148, 25, 41, 49, 78, 83,193,248,225,132,255, 83, 2,254,243,110,135, 66, -140,169,151,174,245, 78,113,186,202,214,150,142,165, 93,214, 54,112,203, 77,246, 69,113,159,130,182, 22,113, 71, 85,154, 84, 80, -215, 95, 84, 96,107,149,236,191,173,199, 18,214,230,173, 86,191,192,150, 18, 72,206,175,208,192, 40, 20, 32, 20,108,218,141,106, -105,132,148, 32, 69,177, 72, 6,104,192, 16,239,177,148,130,119,167, 51, 22, 8, 22, 37, 60,102, 96, 90,158,176,156, 39, 12,196, -248, 98,153,113,123, 60,225,149, 36,220, 46, 25,123, 76, 24,246,104,198, 46, 68,101,117, 61, 36,133,104,110,124, 13, 5, 65, 72, - 55,102, 45,184,104,198,174,107, 26,251, 68, 62,131,210, 90,246, 59,173,103, 69, 85,151, 19,121, 96,147,195,241,213, 72, 70,208, - 55,128,193,140,106,212, 30, 83,113,169, 91,155,216, 97,176,126, 69, 89, 68,205, 1, 80,124,250, 7,117,177,174, 21,181, 19, 83, -245, 20, 45,206, 59, 80, 39,205,217,215,176, 10,116, 57, 34, 47, 39, 8, 39, 40, 39,128, 34, 4,140, 66,100,233, 79,146, 27,162, -213, 55,182, 4,251, 97, 84, 20,187,227, 9,159,252,250, 43,220,207, 71,188,226,128, 83,136,120, 40, 9, 57,220,225, 3,246,152, - 27,251,224, 79, 87,199,254, 84,197, 62,254, 84,208,175, 63,142, 63, 26,203, 29,192,139, 90,208,119,132, 87, 3,225, 54,170,155, -202,152,222,181,212, 16, 22,241, 11, 93,188,177, 64, 45,248,246, 49,129, 27, 90, 4,106, 83,245,106, 22,102,201, 90, 49,133,182, - 35, 79, 78,102, 99,238,136,108, 46,193,105,196,181,122, 83,123,204,166, 49,217,163,145,187, 28,210,172, 95, 27,188, 98, 16, 11, - 64, 54,237,102, 90,229,108,164,236, 76, 35, 54,243, 26, 48, 4,193,154, 4,111, 38,224, 14,118, 42,221, 65,188, 33, 63,109, 77, - 42, 42,153,105,246,100,181,156,205,180, 38,164,136, 49,153, 44,205,136,126,213, 15,222,221,219,252, 65,183,238,185, 24,212, 46, - 69,140,139,224,171, 12,131,225, 75,251, 56, 60,129,108, 94, 44, 2,118,153, 38,148, 44, 32, 10, 45, 86, 52,207, 25, 57,207,230, -131,183, 27,144,118, 59, 12,227, 30, 0, 97, 42, 5, 90,102,144, 27,157, 0,102, 58, 50, 77,103,168,148,103, 58,116, 52, 66,145, -255,190,173, 73,123,190, 69,167,182,151, 36, 8, 24,132,130,112, 1,180, 10,174, 27,216,160, 21,240,109,193, 80, 0,194, 17,199, -221, 43,252, 83,186,197,155, 72,184, 57,152,118,127,118, 20,100,206, 25,112,207,126, 89, 22,132, 16,204, 36,230,225, 1,127, 63, - 21,252,215,241, 6,202,140,147, 42, 38, 84, 47,247,181,160,207,221,127, 47,232,180,231, 74,237,109,193,186, 14, 64,229,129,120, - 97,239, 90, 15, 31,204, 29,114,111, 17,159, 93, 67, 70,125,198,240, 10,209,219,148,184,242, 56,234,228, 30,200, 60, 21, 40, 6, -159,212, 3,200, 35, 90, 67, 8, 32, 13, 40, 73, 32,108,247,213, 77,138, 96, 97,148, 81,128,227, 25,101, 62,226,152, 21,199,243, - 35, 0,197, 24,119,216, 45, 19,198,121, 66,228, 2, 98, 19,132, 43,173,173, 88,131,252,185,139, 2,110,107, 17,123, 46, 4, 91, -233,222,250,151,218,107,188,185,115,214,161,188,173,144,250,166, 31,228,246,202,236, 66, 52,166, 70,106,107,138,153, 58,233,187, - 44,163,116,147,190, 51, 68,154, 87, 64, 81, 66, 33,219,187, 23,191, 38, 43,241,113, 71, 91,231, 58, 69, 13,141,113,149, 11, 3, - 44, 12,144,187,255,120,101, 86, 34, 68, 49,117,186, 89, 95,159,237, 47,204,155,126, 36,197,160,130, 32,226, 86,179, 54, 80,176, -110,177, 12, 13, 64, 40, 11,118,143,239, 80,150, 25, 17,192, 1,132, 27, 10,152, 82,198,183, 99,196,137,227,159,181,198,253,144, - 5, 62,254, 84,204,127,192,223, 13,192,125, 48, 99,153,207,118,132, 79, 6,198,109, 36,236,221,246,181,230, 68,219, 94,183,180, -116, 49,114, 73,154, 56, 1,171, 44, 11, 4, 6, 39,146, 71, 72,214,157,181,251,204, 56, 68, 94,173, 84,141,208, 84,227, 79,171, - 29,171,186,124,139,149, 29, 6, 51,200, 54, 53,152,214, 10,122, 96,106,176, 22,252,198, 33,174,249,201,106,233, 77,174, 7, 87, -117, 70, 62,217, 1, 8, 47,224,104,208,123,205,121, 10, 80,113, 81,157, 96, 19, 27,214,239,150,235,248, 74, 33, 52, 22,190, 40, - 16,168, 64,217,244,187,145, 24,227, 16, 49,142, 9, 41,245, 6, 53, 91,111,149, 86, 5,250,229,188,168, 77, 10,162, 77, 26, 40, -158,106, 87,220,105, 47, 23,183,150,117, 93,186, 22,211,161, 51,101,104, 94, 80,150, 25, 42, 11,194, 24,113,184,177,204,236, 16, -147,165,191, 45,115,251,185, 53, 27, 59, 47, 25, 50, 47, 93, 72,198,133,191,251, 71,118,231,189, 67, 23, 65, 49,243,136,199,116, -135, 41, 28,192, 33,226, 38, 0,251,211,239,192,211,135, 77,179, 0, 92, 58,124, 97, 99, 9,139, 77,129, 32, 76,233, 14,143,187, - 79,240, 6,192, 50, 16, 94,220,236, 27, 66, 20, 99, 64,202,108, 83,171,199,241,170, 40,190,121,253, 14,191,252,112,196,223,135, - 61, 34, 19, 30, 75,113, 35, 25, 47,226, 27,146,220, 74,136,171,208,187, 21, 50, 93, 27,139, 14, 98,191,124, 14, 72,109,199, 75, - 34,126,148,251,163,175,154,103,210, 46,104,100, 45,158,132, 90,208,215, 50,201,117,199,171,235,215,132,172,224,185, 37, 13,131, -152,204, 10,119, 76,136,187, 17,113,151,140, 9, 95, 4,113, 58, 65,167, 51,202,241, 4,157, 39,112,113, 31,247, 82,236, 14, 91, -102,107, 30,136,160,154,155, 37, 91,193, 10, 60,245,133, 92,186,247, 11,193, 37,124,235, 26,162, 47,238,210, 79,239, 90, 17,150, -181,160,247, 55, 64, 85,150,180,127, 97, 46, 71,117, 13,213,127,142,118, 95, 67, 23,223,163,174, 66, 66, 45,242, 93,183, 88,247, -237,226, 48,125,143,188, 12, 6,152, 32,249, 90,197,228,115,216, 38, 17, 50,129, 69,215,123, 93, 21,133, 92,153,208, 24,242,197, -225,122,128,101,197,151,112,141, 59,210,243,132,203,220,222,199,254, 85, 73, 51, 62,157, 31,241, 41,237,241,126,124,129,133,232, -207,238, 52,247, 67,144,238,226, 79,197,252,135,121, 76,173,160,143,192,103, 3,225,101, 66,131,220, 67,245, 38,175, 5,221,157, -166, 42, 41,206,166,200, 90,104,108,127, 41,245,116,163,238,216,106,108,109, 2,247,129, 68,234, 9,109, 82,176,184,169,134,192, -201,101, 20, 92, 98,133, 53, 47,188,222,208, 2, 4,239, 20, 42, 20, 15, 47,238,129, 92,218, 22,116,213,164,183,140,246,232,251, -115, 7,225,213,202,150,250, 97, 98,249,225,150, 52, 85,109, 53, 43,233,173, 77, 21, 32, 59, 12,125, 9, 92,243,209,235,193,147, -156,161, 94,153,248,209,101, 68, 68,226, 14, 94,120, 6, 86, 86, 99, 12, 83,108,249,243, 43,234,161, 55, 25,121, 41,205, 20, 38, -103, 99, 58,139,152, 75,221,146,205, 2, 54, 47,139, 51,172,179,173, 30,196, 29,236, 34, 64,187, 29,194, 97,143,184,219, 89, 35, - 20, 8,227, 50, 34, 79,103,219,103,199, 0,144,233,211, 69,139,147,135,174,177,152,244,121, 58, 75, 87,208, 21,192,137, 15,120, -179,251, 2,211,120,135,200,132, 27, 14,136,119, 47, 80, 30, 70,232,235, 35,160, 75,179,237,172,195, 87,207,156,223, 78,231,220, - 77,233, 9,243,120, 15,225,136,199,114, 6,239,247,184,187, 29, 16, 34, 3, 11,144, 2,131,198, 1,228, 89,230, 49,237,240,246, -195, 9,229,219, 15,248, 63, 50,227,211, 33,224, 65,172,160, 47, 68,152,148,218,132, 62,117,210,181,237, 14,125,221,165, 87,201, - 26, 81,167,106,208,231,160, 51,251,103,114, 15,193,147,174,228,198,110,154, 71,199,237,112,250, 87,251,141,131,191, 0,141, 51, -162, 10, 38, 65, 80,207, 15,119, 61,119, 40, 11, 66, 62, 99,204, 51,134,105,192, 16,130,221,183,203, 12,153, 39,144,100, 75, 59, - 52,110, 42, 56,212,213,137,250,218, 0, 77, 75, 94,211,128,205, 95,221,127,119, 90,139,119,241,226,168,206, 14,175,133,126,253, -124,186, 62,181, 51,173,228, 55, 56,231, 69,105,205, 61,174,254, 13,205,182,208,185, 55,126, 97,212, 79,209, 86,228,215,107,165, - 35,216,180, 41, 90, 90,149,212,166, 65,111, 38,143,254,241, 2, 11,101,169,246,190,163,243, 37,146,223,247, 1,106,183,120,199, - 3, 48,187,231, 96, 96, 63, 1, 96,179,240, 45, 77,123, 98, 35,194,106, 94,115,253,188,189,124,251,178,105,102, 0,183, 58,227, - 23,249, 17,223,166, 3,222,134,225, 71, 81,107,254,232,235,222,191,228,140,243, 31,226,241,212,243,250,150,129, 47, 7,224,243, - 1,120,153, 8,119,129,177,247,184, 67,173,210, 53, 89,119,232,181,160, 83,213, 97,151,226,147, 99,118,184,206,110,166, 74,232, -178,218, 93,253,219, 29, 62, 15,236,208,188, 17,185, 38, 49, 57, 92, 86, 51,167, 41, 98, 62,239, 49,137, 69, 23, 14, 12, 10,102, - 5, 41, 74, 40, 98, 82, 35,210,181,227,101,166,166, 55,143,161, 22, 91, 5,107,221,228,243,122, 40, 52,195,137,218,245,179,239, -229,125,154,111, 5,172, 39,191,245, 43, 15,118,146, 30,185, 37,173, 65,246,196,220,166,145, 80, 63,191, 58,228, 9, 53,102,189, - 99,231,235, 20, 87,215,168, 85, 99, 94,214,137,188, 44, 11,242,146, 91,194, 88,141,232, 20, 85, 44, 37,183, 72, 79, 41,238,222, -197,134, 80,168, 40,138, 24, 51, 57, 75,134, 46,139, 49,129, 61,199, 86,164,248,190,210, 16,139, 44,130,156,125,135,191,130, 19, -184,102, 6,115,205, 53, 14, 0,158,120,143,215,251, 47,177,140,119, 24,137,176,131,224,158,129,113,158,113, 94, 22, 51,190,209, - 62, 37,139,176,206,189,235,254, 85,117,165,200, 53, 40,158, 35,120, 52, 43,213, 15, 76,216,223, 31,176, 27, 19,132,220, 98, 88, - 25, 41, 57,212,201, 1,211, 92,240,205,111,190,197,255,118,156,240,191,220,220,224, 73, 5,147, 16,102, 2, 22, 82,204, 74, 94, -204, 77,147,222,138,185, 27,203, 8, 86,120,185,151,172, 85, 50, 27, 85,201,120,139,234,212,143, 78, 83, 43,218,161,109, 74,227, - 75,160,154,156,180,232, 77,164, 99, 70,168,222,111, 84, 11,186,235,173, 3,182,111,167,249,140,152, 23, 68, 98, 4, 20,115, 55, - 19,223, 19,199, 21,117,233, 67,118,158, 33, 34,213, 24,166,231, 17,104,219,180,173,207, 75,133,173,253,243, 55, 5, 30,245,235, -215,215, 84,253, 23,178,150,135,160,204, 77, 34,169,180, 54,214,118,191,173,111,183,199, 69,235,238, 93, 58,228,172,146,231,234, - 42,164, 77,242,176, 42, 44,237,231,115, 87,244,181,227,128,104,123,125,171, 19,160,248, 99, 31,113, 11,135, 1, 0, 0, 32, 0, - 73, 68, 65, 84,188,165,140,117,250,238, 94,195, 80, 95,124, 80, 71,155,212,181, 41,242,209,225,210,183, 64, 47,138,120,221,227, -247,241,174,245,243, 18, 9, 62,147, 35,190, 92,142,120,228,244,163,152,214,255,216,133, 61,254,165, 23,244, 31, 2,114,191,101, -224,203,145,172,160, 15,132, 59, 38,236,201, 40,100,112,235, 87,117,251,178, 90,152, 9,142, 87,121,218, 90,201,197,116,217, 46, - 1, 81, 90,137, 93, 27,246,107,176, 9, 49,141, 1,113, 52,185, 26,160, 88, 74, 65,158, 21,243, 98,221,173,249,160,144, 17,203, - 16, 17, 98,133,233, 93, 97,170,236, 62,229, 2,117,214,115,253, 41, 84,119,113,181,192, 59,177,134,252, 70,131,242, 10,251, 59, -103,151,187, 29, 29,235,186,213, 93,119,161,212,118,251, 45,246,213,163, 78,201, 73,125,230, 61, 79,205,127, 30, 93, 83, 0, 63, -168, 65,226,236,218,102, 7,231, 35,143,174,196,104,129,239,210, 11, 74, 54,255,246,188, 20, 43,182,170,144, 98, 31,207, 21,126, -119,215,180, 10,207, 67,139,133,126, 24, 14,108, 78,113, 12, 96,142, 80,206, 40, 83, 1,139,128,197,221,229,114,241, 72,218,132, - 34,147, 73,222,218,204,177,202,215, 54, 78, 92,116, 13, 54, 87,204, 60,224,237,238, 51,204,195,173,185,125,105,193, 24, 2,110, - 95,125, 6,157, 39,232,239, 78,222, 19,198, 45,115, 72,213, 15, 99,109,188,139,126,242,239, 65,238, 93,136,120, 47,138,249,118, -196,203, 79,111, 49,238, 34,206,211,228, 19,104,194,178, 20,243, 39, 32,198,175,254,249, 59,188,248,246, 13,254,247, 52, 64, 1, - 28,139,165,223, 45, 32,204,100,133,124, 38, 66, 6, 99,118, 72,182, 22,246, 77, 1,195,106, 26,211, 8,130,254, 95, 12,237, 86, - 81, 91,228,165, 54,129, 92,155, 79,255,149,171, 27, 33,169, 93, 15, 28, 24,204,209, 26,172, 82,192,121, 65,144, 53, 17,207,217, - 29, 77,174, 23,156,226,217,254,122, 3, 16,161, 8,200,136, 78, 66,100,130,231, 26,172,241,164, 53,214,180,175, 48,157, 50,115, -243,182,116, 5, 92,251, 2,174,107,209,239, 85, 0, 82, 9,104,157,229,106, 67, 93,136, 32,222, 8,171, 75,212, 86, 79,127,110, - 23,214,106, 2, 67,205,186,181,185,210, 81, 45,228,171,151, 68, 45,240, 53, 45,173, 47,242, 45,195,141, 42,223,181,143, 85, 85, - 71,238,214,130, 46,150,113,135,162,192,160,246,118,242,235,145,201, 76,110,168,187, 70,235, 35,143, 68,200,186,222, 9, 82, 37, -140, 23, 77,158, 94,153,202, 55,147, 58,173, 4,210,170, 72, 61,200,140,159,231, 71,124, 27, 15,248, 93, 28,158, 77,250,127,238, -225,242,223, 90,220,227, 95, 98, 49,255, 33, 31,203,158,128,207, 6,224,243,129,240,201, 96,190,205, 59, 63, 52,212, 29,203,180, - 72,119,104,105,187,179, 73,204,250,213,138,186, 67,193, 53,228,160, 19, 34, 19,173, 39, 15,121, 10, 91, 24, 18, 40, 90,246,121, - 89, 4,243, 92, 48, 79, 5,121,169, 70, 42, 4, 10, 17,131, 39,175,133, 24, 91,106, 25, 85, 72, 95, 5, 80,246,194, 30, 28, 82, -182,105,221, 76,108,170,164, 12,174,237,214,182,131, 11,198,197,113,104,126, 45,250,107,199, 47,109,108, 81,215, 90,181,189, 90, -147,187,113,243,226,230,216, 23,119, 59, 52, 21,198,120,174,199, 27,145,239, 73,171, 44,173,234,206,189, 57,170, 90,246,234, 14, - 39,149,112, 88,229,131,170,200, 89, 77, 91, 94,178, 59,193, 89, 60,103, 94, 50,144,205, 95, 95,114,134, 46, 19, 22,210,117,167, -203,108,147,218, 12,100, 89, 64, 57,187, 35, 30, 33, 50, 99, 24, 19,144, 18,242,241, 12, 41, 5,161, 30,138,116,233,248,214,179, -112,183,220,118, 5,225, 33,220,224, 52,220,217,247, 36, 69, 42,130,195, 39,175,112,255, 55,255, 19, 30,254,241,191,175,187, 67, -246,144, 17,213, 13,203, 80, 47, 56,243,207, 92, 8,100, 1, 61,189,197,195,176, 67,185,127,137,195,205,232,199,176, 58,201,146, -221,156, 36,224,171,223,189,199,227,111,223,224,239,227, 13, 62,221, 37, 60,149,108,146, 53, 18,219,157, 43,187,143,187, 58, 33, -142,145,153, 54, 5,221,166, 84,109,228, 45, 99, 77,203,234,214,167, 98,211, 28,173,102, 42, 84,101, 81,117,231, 13, 5,139,243, - 59,252,126, 96,255,221,137, 25, 49,141,224,180,243,162,238,215,220, 60,131,221,110, 52, 86, 19, 36,135,130,227,102, 58,175, 69, - 5,237,227,193, 73,162,117,229, 84, 27, 52,110,171,129,158,101,190,221,157,247, 38,143, 66, 91,248, 92,124,119, 92,139, 57, 58, -130,153,116,113,169, 90,147, 8,155,100,205,239, 0, 47,234,234,207,101,157,206, 59,218,251,202,112, 7, 59, 89,143,218, 53, 81, -229,107,171, 78, 93, 47, 26, 15,109, 43,146,190,128, 75, 39,221, 16,186, 92,237,104,179,145,173,116, 22, 81, 32,169,118,132, 64, - 65, 1,124,165,102,168, 95, 51,175,170,203, 33,135,234,251,194, 45, 23,230, 59,130,107,129, 71,235,185, 68,151,133,221,155,167, - 8,197,231,249, 17, 63, 91, 14,248, 16, 62, 65,254,119,128, 28,255, 73,188,223,127,218,155, 63,255, 51, 18,240,233, 0,124, 49, - 48, 62, 25, 8,183,137,176, 35,131,124, 80, 11, 14,214, 41,189,225,106, 2,247,117, 55,171, 83,201,157,204,227, 98,126,163, 96, - 48, 59, 34, 35, 12, 1,113, 24,144,134, 4, 98, 75,125,154,230,140,249,156,145,167,140,188,184,158, 23,100,185,234,195,128,113, - 55, 98, 55, 14,230,245, 30,130,223, 2,165, 49,176,155,180,141, 9, 20,216,242,195,189,216,138,194,221,178,208,210,204, 8,106, - 38, 37, 45, 33,163,127,142,169,105,216,219, 9, 71, 43,139,185, 74,220,108, 55,174, 86, 64,152,154,227, 29, 7,219,229, 91, 7, -239,140,103,174,102, 35,226, 63,211, 89,206,197,159,179,236,232, 71,147,204,173,167,139, 58, 81,174, 90,204,154, 27,157, 37,101, -149, 34, 40, 98, 25,219,185, 20,115,189, 74, 3,132, 10, 36,207,214, 16,104,110, 59,106,142,190, 56,164, 2, 93,178, 91,211, 2, -156, 44,191, 62,142,123,204,197,164,108, 54, 61, 94, 76, 18,244,241,141, 96,189,125, 23, 74, 56,166, 59,112, 72, 24,153, 16,161, - 24, 99,194,221,253, 75,104,206, 56,191,253, 14,200, 39, 64,115, 43,148, 91, 67, 25,128,175,184,213,173, 6, 37, 4,146, 12, 57, -190,198,227,238, 75,224,176, 7,129, 48, 79,139, 33, 50,163,153,230,236,134,132, 15, 79, 19,126,243,213,119,248,187,120,139,255, -242,203,255,132,199, 15,111, 48,189,253,198,146,192, 80,139,185, 79,237, 68, 88, 32, 16, 82,100, 9,206,214, 95,253,202, 25, 4, -229,128, 28, 2, 64,140, 20, 2,134,113,135, 16, 35, 78, 15, 15,144,167, 15, 24,180, 88,209, 70, 45,228,118,240, 7, 90,229, 81, - 12, 90,161,117, 8, 34, 51,194,120, 11,218, 29, 12,129, 82, 32, 48, 35, 13, 3,138, 2,211,123,194,254, 56, 97, 80,107,192, 66, - 7,157,183,144, 18,170,239,211, 38, 15, 12,141,102,138, 30,252,222, 56,167,245, 80,240, 71,232, 17,237, 82,212,238,117,168,190, -245,230,219, 78, 27,168, 93, 29, 50, 55,183,188,106, 14, 83,105,147,220,224,243,166, 6,111, 15,132,125, 34, 95,101,108,224, 78, -186,214,138,182, 23,117,223,207, 87,232,191,238,240,155,236,144,140,233, 94,180,223,157,119, 12, 6,119, 94, 20, 87, 56,136, 79, -214,197,153,254, 69, 58,133,131, 10, 4, 70,160, 51,247, 51, 35, 13,135, 78,221,177,230,183,119, 40, 8, 76, 18, 40,106,136,140, -232,197,189,228,211,184,118,193, 61,116,161,144,108, 59,124, 0, 7, 89,240,139,252,128,223,150, 91,188,137,227, 15, 38,111,251, -115, 76,241,241,167,130,254,199, 99, 28,190,140, 48, 99,153,145,113,151,128, 3, 3, 67,245, 65,182,104,167, 85,127, 93, 19,199, - 90,102,139, 19,184,220, 77, 78,251,253,168, 51, 75, 40, 16, 56, 5, 80,138, 8, 99, 50, 31,243, 20, 77,106, 85, 10,150, 57, 99, - 58, 46,200,103,139,106, 5, 44, 53, 44, 36,251, 92, 43,232,163,105,186, 83, 64, 12,212,216,244,204, 48,235,216,216,197,170,146, -153,203,180,131,195,253,209, 85,177,245, 79, 86,109, 16,159,237,250,197, 25,240,207,137, 43,213, 11,218,126,166, 34, 4,177, 68, -182,192,230, 35, 29,204, 13, 47, 84,190, 79,203,145, 23,147, 7,249, 1,174, 32,231, 30,184, 59, 92,179,148,245,205,155, 23, 4, -104,149, 19,213,238,105,109,241,141,111, 32, 40, 10, 80, 48,199,189, 16, 11,150,121, 1, 84, 49, 48, 97,153, 38,228,115,133,251, -171,129,134, 23,207,188, 64,138,145,232, 12,170, 14, 72,105,192, 48, 30,192, 49, 97,158,158,144,151, 9,234,142, 96,125,242,233, -230, 57,233,158, 59, 52,126,130, 96,225, 17, 37,237, 49,164,100,209,152, 34,198, 42,126,120,192,155,215, 95,227,252,250, 43, 4, -157,176, 10,217, 62, 78, 30, 2, 93, 51, 22,181,152,208, 69, 11,222, 13, 17,233,102,135,219,253,128,243,108,207, 87,138,228,228, - 59,198,119, 95,189,198,139, 15, 25,255,215,231,127,131, 87, 47, 63,195,127,123,255, 14,167, 92,112,136, 30,157,170,132,133, 24, - 25,210, 12, 75, 74, 53, 51, 97,222, 92,207,204, 1, 83, 24, 16, 98,196, 97,127,192,253,139,151,184,191,127, 1, 45,138,175,241, -107,188,127,122, 4,235,140,129,184, 43,186,186,217,121, 51, 8, 65,205,132,137, 85,192,164, 24,211,128,176,191,197,194, 12, 22, -197,144,172, 1,186,189,185,195,227,211, 35,190, 59,190,199, 62, 68,236, 74,246, 34,178, 90,150,174,100,170,237,174,247, 26,180, -123,149,148, 69,215,173, 91,159,169, 16, 8,221, 76,186,254,156,245, 99,212,209, 3, 87,200,188,186, 40, 42,113,123,127, 35,162, - 86,160,173,151, 71,210,218, 96,244, 36,185, 6,191,119,186,116,233, 29,229, 46,136,124, 25,236,154,116,109,118,190,165, 95,167, -116,169,107,141,155, 46,210,146, 18,219,116,174, 14,198,119,208,188,186, 77,111,244, 25,156, 59, 84,166,159,182,185,111,138,154, -116,177,162,119,207, 33,120, 91,231, 80,215,136, 61,127, 45,153,128,207,202, 17, 95,150, 39,124, 8,131,219,215,254,199,248, 19, -255, 18, 10,250, 15,253,120, 8,198,108,255,124, 36,124, 58, 48, 94, 36,198,109, 80, 12, 29,241,167,222, 97, 36,181, 8,114,199, -150,209, 54, 97,138, 56,188,165, 13, 57,171,236, 48, 43,174,158,172, 22, 83, 66,136, 9,129, 76, 47,163,179, 64, 38, 99,197, 5, -151,228, 88, 78,186,249,187, 15,195,224,122,238, 1,227, 48, 96,112,183, 57,155,134,201,191,198,220,215, 44, 81, 77, 32, 98, 29, - 58,151, 74,225,165, 38,117,162,139,219,132,235,220,226, 69,148,100,117, 66,169,161,108,166, 43,117, 90, 15,217,212,149,152, 17, - 3,144, 18, 33, 69, 54,152,179,126, 35, 89, 25,204, 74,171,156, 69,187,231, 76, 42,247, 32,107, 11, 38,169,250,213,186,164,211, -238,121, 6, 20,196,198,164, 45, 98, 77, 20,200,158,175,221,176, 3, 3, 56,199, 51,206,231, 19,242,116, 70, 57,159, 64,121, 66, -208,158,196,227,102, 64,231, 19, 80, 17,133,148, 48, 12,123,164,221, 1, 97,216, 65, 20,152,231, 9,154,151,231, 5, 64, 59,185, - 81,151,109,174,157,103,156, 58,228, 25,211,128,195,126,143,157, 8,120, 58, 1,203,132,135,215,191, 69, 62,189, 71,200,143,142, - 2,244,175, 6, 61,167,216, 95,160, 2,212,230, 76,251,185,199,152,240,120,119,131,180,143,184,217, 39,132,100,190,238,145, 9, -129, 24,175, 31, 78, 56,127,251,128,255, 58,220,225,139, 52,224,225,124,196, 82, 10, 38, 85,112, 81, 44,174, 81, 94, 84,221,133, -140, 81,136, 33, 76,208, 42, 81,106,156, 11, 0, 28, 48,164,136,195,254, 6, 55,135, 27,236, 99, 4,142, 39, 76,199, 39,232,241, - 9, 9,130, 36,138, 29,107,155,156, 91, 65, 87,223,127,147, 29,254, 65, 5, 76, 5, 65,213,242, 8, 98,194, 14,192, 16, 25,183, - 55,119,184,191,185, 7, 84,241,116,124,196,126, 57,227,160, 5, 67,163,117, 90, 51,176,150,208,231,121,246,125, 97,190,252,120, -123, 63,209,213, 70,234,146,164, 69,155,159,180,125, 77,180, 90,220,242,154, 41,222,110,156,206, 28, 6, 94,212,137,217,238, 71, -214,117,199,221, 93, 9,181,184,171,171,102,168,211, 66,212,120,102,173,232, 0,168, 77,224,230,238, 71,190,231,119,237,121, 77, -211, 83,181,117,139,174, 49,185, 45,132,167,157,115, 43, 57,174,222,171,141,234,210,163, 21,138, 22, 75,172,254, 53, 1,117,165, - 82, 57, 50,210, 53, 60,218, 38,246,210,238,194,237,107,132, 11, 36,108, 85,197,108, 95, 79,246,134,100,212,140,159, 47, 15,248, -109,188,193,251,176,235,228,191,255,190, 39,246,248, 31,181,152,255, 41, 31,203, 45, 1, 95, 12,192,103, 3,227,229,192,184,139, -132,189,167,157, 73,103,120,209, 36, 59, 20,154,108, 71,124,199,104,201,108,216, 4,107, 85, 24,220, 24,174, 4,101,106,144, 91, -115,206, 42, 10,100, 1,205, 5, 73,173, 8, 16, 51,216, 99, 64,135, 33, 34,165, 1, 49, 38,196, 24, 17, 82,196,144, 34,134,100, - 81,171,198, 52, 95,101,107,245,194, 22, 1,192, 54, 17,215,201,168, 26,214,172, 83,205, 22,126,220,220, 93,158,196,214, 91,156, -177,179,141, 25, 11, 2, 41,134, 64, 24,220,151,126,136, 6,105,175,251,125, 43,188,235,197,107, 76,254,162, 94,192,139, 64,178, - 34, 23,219,151,107,233, 38,104, 90,181,173,134, 28,192,153,237,213, 27,160,214, 61,245, 48, 14, 15,179,209, 2, 81, 65, 41, 51, -230,243, 35,150,227, 19,116,158, 64, 37, 91, 81,239,247,210,170, 64,201, 6,207,198, 17,227,238,128,113,127,131, 56, 12,224, 16, - 49,207, 51,230,121,130, 72,110, 6, 49,107,188,236,122,188,244, 78, 97,180, 81,224, 42, 72, 11,162,138, 37,129,149, 12,157, 39, -148,249, 8, 89, 78,224,229, 1, 44,211,202,115, 39,189,178, 91,196, 5, 70,210, 46,172, 86,208, 1,198,233,112,131,249,147,187, -182,234,217, 15, 17,154, 5,209, 13,141,222,255,238, 1,191,124,204,248,219,120,139,199,211, 35,100, 73,152,231, 51,138,170, 57, -197, 41,251, 14, 93,144,137, 87,230,179, 86,133,134, 52,164,128, 57, 96,191,223,227,240,242, 83,104, 46, 40,199, 39,124,248,240, - 22, 50,155,254, 31,211, 9,135, 60,225, 16, 8, 67,183,231, 14,234,208, 59, 76, 18, 26,171,246,156, 44, 6, 55,234,130, 36, 11, - 34,128,253, 48,226,254,229, 75, 68,142, 56,189,249, 6,199,167, 71,228,227, 7, 28,230, 7,140,186,152,189, 43,176,241, 13,192, -247, 76,227,220, 77,119,151,207, 48,129,174,122, 13,108, 11, 59,109,252,252,123,206,191,246,175, 77, 45,236,232,224,156, 78,154, - 6,231,181,160,147,168,245,132, 83,165,254,245,189, 4,105,122, 66,219, 86, 0,218,220, 6, 43,186,226, 59,252,204,213, 61,142, -176,136,185,200, 45, 32,204, 10, 68,209,213, 37,176,105,204,169,173,188, 68,215,185,186, 5, 38,209, 10,191,175,155,177,222, 30, -216,155, 52,149, 70,124,213,222,133,234, 35,250,244,190,176,111,138,123, 37, 84, 94, 52,102,232,138,251,103,249,136, 47,242, 17, -143, 97,128,128,254,160,186,241, 99, 40,252,223,103,100, 19,127, 42,232,255,250, 63, 10,224, 64,166, 67,255,124,176,128,150,219, - 68,216,199,128,200, 14, 67, 21,106, 6, 24,182, 48,106,229,209,232, 34, 93, 70, 34, 5,135,148,124,138, 99, 47,206,224, 53,232, - 2, 68,224,226,114, 29,201, 80,181,230, 33, 18,129,135, 4, 98, 70, 96, 54, 95,247, 20,145,218, 68,110,150,176,177,185,205, 89, -108,170, 53, 25,118, 83,214, 84, 50,107, 46,236, 6,101, 17, 4, 2,196, 29,168, 42,195,157,221,161,170,206,126, 68,235,244,238, -158,114, 45, 78,181, 18,139, 2, 91,161, 34,100, 68,130,217,216, 38, 66,140, 85, 42, 71, 62,160,119, 19,121,133, 2,139, 17, 0, -139,138, 33, 19, 2, 72,177,228, 54,113,233, 30,180,134,180,200,234,166,229,240,125,241, 44,106,201, 85,190,166,237,121,150,146, - 49,207, 51, 30, 77,164,142,101,158, 48,159,158, 32,243, 9, 92,138,161, 14,117, 91,237,163, 6,145,175, 40, 82,192,110,183,195, -120,176,136, 87,230, 0,129,224, 60,157, 48,207,167,213, 76,168,151,150,117,212,159,109, 71,212,123,115, 51,162, 44, 72, 79,175, -113,204, 11,102,201,136,203, 25, 33,159, 17,202, 9, 65,231,110,247,168,155,226,115, 29,118,239,116,203, 96, 75,202, 35, 66,161, -128,167, 79, 62, 1, 94,189, 4,105,193,211,227,132, 52, 68, 72, 22,196,113,135,167,121, 2,191,121,196,255, 92, 24, 92, 78, 56, -229,197,224,245,121, 50, 99, 29,212, 8, 85,119,135, 83, 49,171, 80,173,115, 42,119,168, 4, 0,223,117,151,233,140,233,248,132, - 60,157,129,188, 0, 57,131,101,193, 88, 50, 70, 22,236, 66,180,244, 47,213,150,254, 21, 68,125, 23,110,249,245, 75,216, 97,230, - 8, 1, 97, 39, 51,134, 60, 33, 28,223, 64,243, 29,206,164,144,178,224,252,238, 53,242,124, 70, 42,103, 12,106, 46,128,232, 8, - 84, 62, 4,118,130,204, 43,235, 17, 93,119,237,114,245,213,186, 2,189,211, 22, 25,121,142,149, 96,221,208, 83, 7,196,211,149, -114, 69, 93,235,192, 43, 10,195,116,217,164,161,185,197,109,177,155,213, 22,178,174,123,180,251,222,240,157,186, 54,155,218,154, -216,182,238,210, 23, 38, 44,106, 5, 61,144, 43, 6, 4,237,254,134,147, 88,115,127,223,122,243, 91, 7,155,170,195, 31,106,180, -113,199,104,111, 12,247, 86,216, 87,255, 67,109,161, 59,216,144, 64, 47,231,136,171,103,244,198,157,240,249,170,100,167, 11,126, -177, 60,224,171,116,131,167, 48,252, 65, 16,252,143, 41,204,229,143, 62,169,255, 71,151,167,253,190,130, 94, 83,215, 62, 29, 45, - 15,253, 54, 2,123, 6, 18,247,135,195, 42,173,218, 50,102,214,251,150,153,128,200,235, 36, 76,166,217,166,224,238,108, 45, 77, -201,141, 89,200,192,110,170,161, 47,181,192,196,224, 65, 45, 30,220, 18,163,193,240, 49,128, 2, 57,249, 44, 32,112,141, 67,181, - 29,116,203, 44,215, 53, 41,205, 86,187,106, 19,183,195,158,102, 45,137, 85, 67,222,140, 33,220, 38,182, 35, 29, 85, 50, 19, 60, -128,131, 73, 91,130, 27,180,128,212,190, 87,224, 8, 34,219,112, 22, 87, 7, 72, 22, 20,213, 70,186, 83, 37,148, 82, 67,100,214, - 34,217,204, 75,220,110,215,190,189,123, 0,212,231,217,205,125, 76, 34,104,170,130,226,236,253, 92,128,105,201, 56,207,179,135, -148,216,126, 86,242,130, 50,103, 96,145, 70,223,149, 78,255,206,100, 50, 66,142, 17,195,110,135,113,127, 48,126,131, 63,231,243, -178,224,124, 58,161,204,231,198,224,197,118, 38,187, 50, 67, 95, 88,117,250,142,113, 63,189, 3, 77,143, 30,151, 41, 8,154, 17, - 33,166, 70,112, 6,246,181, 61,239,101,120, 95,227, 41, 54,226, 84, 0,131,176,132,136,183, 47, 94, 96,120,113,192, 30, 5,211, -121,194,251, 55, 79,136, 49, 98, 76,130,227, 83,193,223,238, 63,197, 47,198,215,152, 31, 63, 96,193,140,165, 20, 80, 89,204,211, - 94,197,156,226,218,190,213,195, 57,152, 1,169, 62,227,238,193, 15,128,176, 96,126,120,139,249,225, 45, 32,130,160,102,117, 27, - 69,144,160, 24, 3,144, 40, 88, 94,183, 79,231, 1,106,134, 48,100, 74, 7,226,136,243,112,131,137, 71,128, 25,251,253, 13, 6, - 41,208,183,191, 5, 29,223, 66,206, 31,112,252, 64,206,127, 40, 70,140,211,210, 21,116,189,186, 15,191,246,183, 62,111,235,181, -126,125, 74,188,124, 81,233, 26, 90,242,108, 27,194, 29, 84, 78,157,190,252, 74,219,208, 77,230, 29, 35,162, 49,238, 27,201,181, -219,179, 51,213, 40,229,117,221, 67,155,142,102,147, 78,191,238,244,251,130, 14, 51,129, 89,149, 1,254, 90, 0,205, 76,169,154, -246, 16,138,217, 24,215, 93,187,115, 73,196, 17, 29, 81, 83, 21, 84,251,222,222,182, 95, 0, 36,173, 20,187,245,103,245,182,254, -151,147,184,126,100, 21,218,126, 61,189, 62,157,247,161, 65, 12,224,211,124,196,167,249,140,227,191,193,140,230,178, 22,254, 41, -139,252,229,212, 30,255, 35, 20,244, 42,220,255, 83, 78,232, 12,224,142,129, 87,145,240, 50, 18,238, 3,112, 96, 70,114,114, 87, -133,151, 86,158, 10,119, 58,234,213, 32,179, 58,183,145,165,101, 56, 87,138, 91, 94, 56,185,171,154, 86, 14,149, 23,113,118, 15, -231,106, 12, 19, 56, 32,198, 26,212, 66, 86,188, 67, 64, 12,174,247,238, 72, 50,165,168,197, 69, 54,152,108,125,156,245,251,181, -247,169,154,251, 28,179,231,130,179,255, 60, 70,104, 49, 46, 88,229, 70, 90,203, 45, 53,103, 45,170,164, 24, 94,137, 43,117,162, - 46,149, 95,160,228,100, 65, 69,201,142,108, 48,140,233, 15,110, 41, 94,253,116, 65,236, 26,248, 98, 16,160,212,188,245, 34,109, -218,135,103,101,139, 88,186,152,249,232,115, 43,232,199,211,140,101, 89,154,163,158,169, 15,108,162,151, 34,230,225,174, 61,235, -217, 56, 14, 20, 24, 97, 28, 48,236, 14, 72,227, 30, 28,162, 77, 72, 76,200,170,152,151, 9,144,188,113,179, 90, 81,141,139,249, -237,242,144,117, 22, 52,200, 24,239, 55, 54,255, 52,115,149, 22,157,179, 49, 92,185, 40, 48,125, 28,231,102, 70,180, 70, 81, 3, - 35, 8,225,105,127,192,155,187, 91,236,247, 3,110, 71,194,116, 10,120,113, 11, 76,139,224,119,111,159, 48,206, 35,254,238,179, - 95, 64, 94,191,197, 49,103, 44, 90, 53,252, 51, 74, 89, 54,246,175, 53,186,211,172,205,164, 57,250,153,108, 81, 90,176, 71,148, -165,177,207, 83,141,237, 36, 66,100, 75,251,138, 76, 24, 80, 51,186,197,205, 98,156, 16,167,130, 50,220, 32,237,110,112, 15,198, -205,225, 22,183,183, 47,113,126,124,135, 51, 20, 65, 11,162, 88,246,248,170,107,110, 97,174,184,204, 36,231, 77,105,163, 70,148, -195,149, 29,122,255, 58, 94, 43,226,180,225, 44, 92,204,230,151,106,135,206,152,128,186, 60, 99,238, 95,255,110, 74, 95,147, 24, - 59, 1,100,135,148,193,253, 35,170,175, 68,243,121,167,106, 70, 99, 68,216,254,186,107,251,217,238, 58,169,178,183,224,187,107, -133, 49,218,131,174,205, 85, 84,107,174,214,190,127,181,131, 33, 47,224, 80,109,123,246,202,105, 41,232,206,191,206, 29,110,157, -218,101, 67,184,107, 6, 65, 93,230,240,229,108,244,251,184, 78, 31, 37, 56,118,195,251, 65, 22,252,124,121,194, 55,233, 6, 51, -135, 63, 10, 97,238,178,208,254,169, 50,216, 63, 26,189,250,239,113, 58,255, 83, 62, 46,130,133, 22,124, 18,129, 79, 18,225, 46, - 18, 14, 76, 24,131,186,179, 87,223,167,215,226, 43, 80,146, 38, 85,129,152,151,185, 17,151,125,234, 13,235, 12, 81,211,197,136, -168, 77,200,104, 55,171,127,156,237, 5, 36,151,157,133, 24,220,116, 99,133, 59,139,219,175, 82,113,147, 24,181,189,118, 93,108, -213, 3,160,165,133,213,137,219,139,123,242, 52,171,148, 24, 3,135,181,251,239,166,243, 22,191, 90,117,232,190, 31,227,110,191, - 94,215,208,129, 0,112,132,112, 49,115, 9,177, 20, 40,243,120,175, 7, 65,245,175,244, 85, 0,114,243, 82,175, 11, 56,171,129, -220,108, 96,213,165,106,240,196,187,226, 4, 56,234, 72, 68, 10, 70, 41, 5,211,178, 96,202,165, 37,176,137, 16, 56, 0,152, 23, -200, 98, 59,116,205,197,167,252,109, 33, 64, 48,121, 16,167,128, 48, 12, 8,187,209, 20, 8, 28, 45,122, 85, 5,211, 50,111, 88, -239,253, 46,179, 47, 51, 27,221, 56,241,166, 44, 16, 57,195,191, 47,218,212, 23, 35,135,139,221,201, 43, 92, 20,171,231,211, 99, -239,125,198,246,191,192,248,246,238, 14,199,155, 61,190, 28, 19, 14,123, 91,129,148, 69, 81, 52, 99,121, 58,227,147,175, 94,163, - 76, 5,199,183,175,177, 44,179,169, 5,150, 25, 69, 22, 99,186, 43,251,225,175, 45, 12,164,197,107,122, 96, 71, 80, 54,243, 22, -102,196,184, 67, 10,209,180,225,101, 66,146,140, 1, 64, 36, 69, 2, 33,193,138, 70,108,153, 4,181,160,155,179, 31, 73, 65, 40, - 25, 3, 7,220,220,189,196, 46, 13,152,222,126, 11,253,240, 59, 12,249,201, 80,178,230, 74,215, 69,179, 62,107,111,182, 5,157, - 63,178, 71,199, 71,224,246,235, 5,132,174,236,123,105,227,160,184,125, 45,214, 79,212,174,120,183,233,189, 35, 82, 18,175, 48, -122,141, 41, 6,182,147, 55,117,182,202,220,154,109,246,175,229,110, 82,239,214, 33,166, 17, 3,209, 10,151,215,215,146, 93,146, - 70, 78,136,107,205,237, 70,166,186,218,225, 52,143, 4, 71, 0, 87,110,106,253, 62,158,117, 65,174,162, 49, 45,175,173,108,220, - 29,193,236,114,237,237, 72,214, 76, 60,203, 70,232, 6, 38,249,125,240,123,253,125,171, 25, 83,111, 14,228,231, 72, 80,197,103, -249, 9,247,101,198,119,188,255,163,179,224,175,133,132,253,224,129, 46, 63,237,205,255,229, 79,218, 75, 6, 94, 69,198, 93, 48, - 7,185,129, 87,137,197,134, 12, 69, 54,103, 10,214,144, 2, 64,218, 77,236, 33,200, 30,140,180, 66,103,117,162,179, 66,110,152, - 54,121,138, 26,129, 58,119, 55,151,129, 81,216,196, 43,138,218,196, 74,146, 45, 29,141, 9, 36, 4, 14, 38, 13, 51, 52,157,221, - 11, 27,205, 41,142,200,228,101,166, 25, 7, 98, 32, 12,137, 48,122, 38,123,213,171, 87, 51, 7, 2,183,204,110,245, 2,222, 2, -216,200,243,200, 59,107,115, 53,122, 61,192,201, 26, 14, 1, 52, 23,144,175, 4, 64, 0, 69,242, 12,199, 85, 67,163, 53, 32,133, - 12,193,151,181,233,111, 18, 59, 41,165, 25,153, 72,131,253, 61, 71,157,201, 34, 47,193, 88,138, 69,170,150,188, 78,116, 50, 11, -242,116, 2,150,217,208, 9, 41, 27,174, 64, 53, 24,161, 64,160,152,144,134, 29,134,157, 77,232,196,212,204,114,178, 20,156,166, - 19,150,229,188,238,242,122,120,231,217,148, 17, 54, 10,232, 85,107,203,213, 70,188, 29, 95,205,140, 87,229, 89, 32, 12, 93,141, -146,220,238,104,201,141,202, 53, 4, 4, 4, 44, 41,225,221,221, 45,202, 46,225,241,225,132,249, 68,152,230,140,101, 22,188,127, - 56, 97,250,245,183,216,253,250, 59, 60, 46, 11, 38, 20,136, 0, 57, 47, 88, 52, 59, 49, 14,230,180,215, 23, 51,145, 53,213,207, -155,217,160,134,244,240,112,192,176,187,193, 16, 19,198, 97, 68,204,103,232,187,111, 48, 72, 65, 10,108,249,226, 94,204,163,194, -253,216,181,165,118, 85,183, 56, 89, 30,128, 7, 65,158,143,120, 84, 65, 62,190, 7,151, 19,130,150,154,186,222,254, 31,157, 60, -138,175, 20,105,198,150,165, 78,223,183,206,192, 53,143,129, 58,225, 63, 95,168,211, 85,218, 34,173,144,219,230,189,212,109, 96, -214, 2,222,174, 62,162,238,107,117,211,176,182, 13,122, 95,216,107,156,114,181,106,166,149, 19,179,249,217,245, 91, 55, 3,152, - 38, 24,117, 63, 8, 47,220, 29,148, 77,205, 57, 71,154, 29, 51,245,169,138,180,122, 69, 24,207, 66, 29,189,148,142, 43,227, 92, - 24, 47,244,107, 66,159,250,106, 83,155,189,110,232, 40,165, 31,155,212,245,247, 20,247,234,115,160, 87, 94, 99, 33,224,174,156, -241,229,252,136, 55,113,135, 66,116, 29,145,249, 1,208,229, 63, 91, 81,255, 75,147,168,253,190, 63, 7, 2, 94, 69,211,165,223, - 50, 97,132,145, 70,140, 95,182,146,180, 64,171,156, 99,133,219,252,232, 14,254,175,118,148, 25,230,141,123, 5, 59,124,198, 76, -107,116, 98,103, 42, 66,221,142,180, 1,140,162,102,251,208, 77, 43, 22, 54, 17, 16,188,224,178,244,218,109,115,142, 11,129,154, - 27, 90,100,155, 92, 19, 91, 44,101, 10,138, 16, 21, 41,216,207,147,234,201, 45, 43,114, 92, 25,225,189,203,147,170,221,212,235, -132,185,210,145, 10,153, 21,173, 46, 10,146, 5, 76, 5, 28, 20,204,198,218, 23, 48, 74,201,208, 92, 35,105,123, 47,103,218,236, -207, 69,170,221,174,110,210, 91,171,228,135,153, 16,137,160, 26,145, 75, 1,179,130, 89, 33,129,205, 59, 30, 11,164, 44, 22, 61, - 65,218, 89,172,250,132, 83, 15,106,102,115,227, 75, 1, 97, 24,155,241, 15,199,232, 10,133,130, 57,207, 56,159,143,144,188, 32, -110,156,216, 47, 33,193, 26,141, 89,211,240,184, 99, 72,211,150,176,229,178,181, 54, 97, 18,183,117, 0,171,118,207,234,118, 71, -186, 49,165,117, 57, 36, 57,218, 66, 32, 76,135, 3, 78, 95,190,194,172,132,239,190,253,128, 44, 5, 69, 20,251,113,192,233,221, - 3,238,190,125,141, 87,243,209,174, 49, 85,228, 60, 33,203, 2,163, 58,146,239,207, 87,194, 87,149, 17, 90, 51,197, 46, 65, 35, - 68, 8, 70,222, 99,119,184,195,144, 6,236, 66,196,126,216,161,148, 25, 25,192, 64,130, 4,131,222, 7, 85,159,234,129, 0,105, -235, 28,238, 50,203,130,100,232,249, 29,228,252,222,156,199,104, 53, 49,213, 46,174, 70, 21,205,208,228, 26,138,193, 31,153,218, - 63, 86,208,183, 4,184,143,127,206, 53,138, 28,117,204,246,158, 71,177,190, 62, 61, 49,174, 67,109, 60,241,112,213,155,175, 19, -250,194, 17,231, 56, 0, 49,153,135, 65,153,144,252,107,214,235,139,186, 36,196,231, 69,189, 79,181, 67,183,138, 83, 93,109,106, -194, 53,248,187, 38,227,117,104, 72, 69,232,180,250,181,147,121,110, 72, 53,139,234,162,112,139, 23,247, 25,107,174,250,102,129, - 78,232, 38,107,221,172, 56, 46, 99,105, 63, 54,161, 43, 62,174, 74,184, 52,130,138, 16,252, 44, 63,224, 87,242, 9,222,135,132, -225, 71,110, 70,243,111, 42,234, 63, 21,244,237,159, 17,192, 39, 1,120, 17, 9, 55,172,216, 17, 33,138, 93,210, 69,234,254,208, -157,207,200,180,214,205,222,144,220, 56,218,181,152,208,173, 95, 28,119,211, 42,211,154,155,206,204,237,200,234,108,163,186, 3, - 85,221, 18,213,140, 63,224,164, 20, 16,131,217,200,110, 92,247,231, 34,182,255, 84,179, 1,141, 1,102,252,194, 70,142, 51, 7, - 57, 75,157, 10,148,205,225,141, 5, 33,184, 54,182,145,179, 8,141,224,172,232, 88,172,245,230, 39,215,150, 87, 35, 8,191,137, -164, 74,131, 76,134, 86, 42,216, 71,222, 56,164, 8,161, 17, 42, 12,241, 29,183, 74, 71, 92,226,206,250, 85,165,237,235,234, 92, - 70,206,128,215,142,241, 26,192, 38,207, 11,132, 33, 49,118,251, 4, 26, 2,150, 69,144,103, 66,158, 21, 26, 1, 9, 4, 93, 0, - 89, 10, 72,200, 93,243,204,138, 51,196,193,236,120, 3,144, 18, 35,141,163, 75, 5, 45,123,190,104, 65, 86,193,148, 23, 44,243, - 25, 90,242, 21, 8,112,229, 53,108,129,222,112,161,117,238,178,224,213, 96, 28, 86,125,182, 15, 54,222, 36, 27, 1,241,114, 58, -215,245, 51,155, 53,141, 82,151,144,167,120,250,226, 5,230, 95,126, 1,121,243,128,249, 60,227,254,197, 1,251,125, 50, 11,220, -127,250, 10,127,115,158,113,151, 18,158, 0,104,158,177,200,130,162,130,114, 49,199, 80,135,139, 18,213, 93,184,253, 27,125,234, - 30,180, 96, 87, 38,236, 98,196,253,237, 45,176,156,241,248,238, 27,140,203, 9, 35, 51, 18, 76,193, 17, 1, 36,242, 72, 78, 93, -119,233, 42,125, 76, 8, 86,147,146,206, 76,165,202, 20,215,130, 46,155, 54,231, 99,100, 56,222, 52, 80,215, 77,100,106,227, 74, - 31, 41,221,180, 25,227,233,234,127,211, 85,194, 27,119,187,237, 46, 85,173, 5, 35,113, 43,230, 68, 43, 76, 63,115,196,135,116, - 0,238, 63,197,253,203, 79, 65, 76, 56,189,125,141,249,241, 45,118,121,194,120,129,246,109, 69,141,244, 12,207,214, 14,218,110, - 38, 77,112,191,137,186, 65,171, 73,122,170,155,251,189, 53,245,213, 96, 88,125, 90,135,182,194, 94, 73,139,218,223,187,222, 72, -204, 42,238,168,231, 77,121, 55,246, 19,119,111, 95, 60,255, 31, 43,234, 93, 31,176,145,237, 25, 4,166,235,250,238, 98,183,126, - 95,206,248,172,156,240, 46, 14, 91,115,173, 63, 81, 45,251,193, 3, 93,254,210, 28,225,254,144, 63, 12,224,134,128, 23,172,184, - 5,176, 83, 32,170,184, 71,138,219, 59, 48, 0,202, 14,127,117, 32, 81,213,131, 55,194,154,180,155,104,117, 57, 90,119, 47,204, - 86,212,219,240, 94,208,220,220, 42, 64, 86, 11,108,169,251, 41,184, 48,196,181,172,102,234,198, 64, 22, 44,108,241,159, 5,181, -224, 19,246,187, 17, 59, 54,175,245,224, 30,236,129, 97, 78,111,156, 65,172,254,126,215,212,170,116, 80,174,145,229, 84, 8, 82, -208,233, 83,189,208,130, 59, 99, 15,180,206, 91,131, 61, 94, 18, 51,179,128, 23,116,210, 2,201, 85,215, 28, 64, 28,237,247, 45, -212, 38,103,235,250,237,204,105, 17,181,190,119, 39,161,102,214, 65,100,186,116, 85, 35,181, 21,231, 40, 46, 57, 35, 75, 6, 34, -131, 82, 64, 28,129, 81, 6,112, 57,152,148,237, 60, 97,122, 60, 33,159,142,134, 16, 20, 43,184, 60,236,144,198,209, 92,227, 32, -166,253,223,237, 17, 83, 2, 5, 91,174,228, 82,144,165,224, 60, 77, 88,166,201,119,202,188,221,199,163,131, 87,105, 61,228,215, -105,106, 59,161,183,143,123, 50, 31,161,134,215, 80,219,187,219, 1,181, 25,107,124,221, 65,232,132, 69, 80,101,199,114,162,145, -150,134,128,247,127,245,115, 44,195,128,155, 20,129,148,240,238,237, 19, 68,111,113,163, 5,255,233,237,123,124,206, 1, 37, 70, -139,240,157,158,218,106,163,160, 94,111,180, 13,169,169, 70, 49,106,106,141,170, 51, 79, 80,164, 60,129, 30,190,131, 30,223,227, -248,225,107, 80, 89,176,203, 19, 6, 34, 36, 8,162, 2, 73,201,217,238,213,254,181, 30,206,178,102,163, 67, 46,166, 48,221,236, - 90,215,166,114, 27,254, 65,248,126,150,251, 37,180, 78, 31,185,255,137,232,106, 37, 89,201,143, 61,203,189,143, 63,189,254,147, -137,215,183, 3,185,157, 43,186,152,212, 14,122,175, 74, 24, 1,112, 30,246,208,221, 61, 94,221,191,192,167, 95,252, 12, 52,238, -240,244,226, 83,124,248,221,119,120,120,243, 13,228,252, 1, 7, 75, 64,239, 8,119,151,243,182,118, 13,121,223, 16,117,197,187, -111,144, 92,109,163,190, 26,105,246,176, 30,210, 34, 80,140, 62,137,139, 55,214,226,174,113, 2, 89, 77,163,176,146,133, 75,131, -228,209,214, 85, 12, 51,183,185,116,149,233,209, 20,189, 40,236,250, 17,242, 92,119, 73,108, 19, 16, 47,208, 27, 5, 48,104,198, -207,230, 15,248,199,241,254,123,167,252, 31, 59, 36, 31,127, 42,232,127,248,159, 1,192, 75, 86,220, 19,112, 32,197, 72,212,153, -146,212, 3,149,204,118,212, 9,108,181,200,176, 51,163,153, 43,155,189, 22, 74,234,210,168, 42, 49,110, 75,102,169, 76,113,169, -228,182,206,204,165,212,221,147,203,189, 84,107, 30,185, 77,144,224,108, 78, 80, 2,204,197,224, 85, 14,140,195,126,143, 91, 38, -164, 16,144,130,185,186, 49, 12, 97,136,172, 72,161, 90,199,218,190, 30, 74, 77, 58,198,174, 91,227, 96,132, 29,241,201, 73,106, - 78,188,120,215,222,134,198,117, 37, 33,181, 61,238,109, 56, 60,227, 89, 85,129, 69,192, 92, 16, 19,183, 41, 65,225, 80,187,146, -243,212, 46,238,246,234, 34,231, 96, 57, 51, 67,213, 50,209,205,238, 93,177,228,140,243,124, 70,150,130, 5,138,179, 10, 16, 8, -135,113,192,221,110, 64, 66, 66, 9, 17, 1,132,179, 20, 40, 45,160, 33, 32, 12,123,132, 52,250,115,187,128,137,155, 59, 95, 72, - 6,176,215,124,158,156, 5,231,243,140,101,158, 17,170,164,239, 98, 90,175,238, 95,210,154,184, 78, 96,213, 71,176, 82,175,110, -103,151,247, 84,194, 83,221,121,242, 74, 6, 35,193,118,133,175, 23, 70, 39,213,180,196,158,203,233,211,151,248,240,203,207,113, -254,112,198,126,151,112,119, 59,224,159,126,243, 22,239,222, 62,226,197,219, 55,248,249,195, 9,113, 28, 48,195, 52,233,101,153, - 80, 68,187, 70,129, 86,130, 84, 53,150, 81, 75,114, 11, 80,115,133, 83, 35,190, 37,159,192, 7, 89, 48,232,140,176,168, 21,115, - 34, 68, 50, 9, 78, 4,129,189,156,163,159,208, 59, 50,150,174, 52,211,238,213,239, 74, 59,109,221, 14,219, 68, 79,207, 33,215, -107, 12,119,189,186, 3,191,132,216,169,185, 35,110,222, 79,151,252,247,213, 24,134, 26,108,206, 91,178, 91,229,123,116,133,191, -178,220,235, 68, 46, 88,201,111,112, 88,125, 33,134,196, 29,110,199, 29,110,211,128, 20, 8, 33, 6, 12,247,247, 24, 99,196,119, - 28,240,225, 59, 5,166, 7,220,144, 92, 47,119,157, 1, 83, 63,173,175, 0, 98,167, 17,239, 10, 56, 58, 37, 8, 3, 8, 98,209, -181, 17,128,104,177,166, 79, 4,131,174, 9,109,214, 12, 58, 73,206,237, 98,171,164,173, 55,129,202,180,157,156,155, 43,156, 3, - 86,177, 43,236,114,241, 58, 61,155,218,169, 95,195,125,124,178,239,223,199, 0, 62, 93,142,120,185,204,120, 27, 19,194,159,185, -206,253,107, 11,124,252,177, 23,243, 31,203,227,170, 18,182, 23, 12,220,176,177,223, 7,114, 54,119,184,116,107, 90,205, 99,234, -196, 78,172, 30, 43,106,140,109, 6,219,228, 43,244,236, 34,171,187, 42, 17,221,164,140,213, 9,172,222,132, 89, 60, 0, 70, 60, -106,181,184,135, 50, 7,132, 8,132, 96, 36,149, 37,103, 76, 57,163,136, 34,196,132,219,219, 3,238, 14, 3,238, 15, 3, 14, 67, - 64, 8,166, 35, 15,164, 8, 1, 24,162,147,229,200, 38,102,128,205,119,122,179,215,173, 57,229,190, 98, 40,226,233,109,210, 14, -134, 86,156,200, 59,125, 54,242,155,212, 52,183,122,136,121,138, 69,165, 19, 72, 17, 8, 23,159,246,253,191,179, 21,117,211,238, -195,189,237,171,134,252,168,207, 0, 0, 32, 0, 73, 68, 65, 84, 60,174, 6, 74,136,155,210, 20,228,156,145,151,140, 76,138,211, - 52, 99, 90,102, 44, 75,129, 48, 33,139,224, 52,159,144, 41, 99,222,141,144,113,143,155,152, 16, 29,206,230, 16, 64, 81,145,198, - 61,198,241,128,165, 8,230,233, 12,166,130,113, 24,144,210,128, 16, 18, 20, 64, 46,197,111, 62,107,110,230,121,134,148,108, 65, - 52,212,111, 81,105,227,253,205,173,200,242,118, 26,171, 72, 13,170, 41,208,218,255, 48,117, 59, 89,237, 57,244,207,254,233,118, -143,180,221, 5,187,186,224,221, 47,190,192, 59, 33, 76,231, 9,188,139, 8, 33,226,197,139, 3,206,255,240, 91,124,241,213,107, -236, 68, 49,135, 8, 41, 5,243,114, 66, 46,185,219, 9,235,250, 59,248,202,131,156, 20, 25, 84,144,216, 66,140, 6, 48, 34, 49, - 70, 34, 68, 86, 12,149,221, 78,100, 82, 54,207,213,102, 14,144,184, 71, 73, 7,100, 50, 50,230, 94,102,140,231,247, 32, 57, 55, -137,220,229,228,221, 39,114,233,197,126,184, 61,119,219,182,233,163,164, 56,189,242, 61,159,175, 24, 46,236,120, 55, 5,255, 57, -189,206, 72,107,220, 77,227,220,193,233, 21,177,233,194, 87,152,187,179,142,157, 71, 3,159,218,185, 61, 78,225, 0,230,128, 17, - 2, 42, 5,122,158, 32, 20,128, 16,144, 66,192,139,219, 91,156,142, 47,240,118, 62,131,101,194,142, 47,158, 27,197, 71, 10,189, -110,166,245,198, 98,151,117, 34,175, 19,252,218, 16, 88,160, 14,107, 87,224,213, 38,240, 40,150,198, 22, 32,136,213,205, 17,126, - 62,116,196, 55,121, 70, 4,209,230,237,222,188,121, 42,114, 78,207,101,133,155,144, 28, 92, 47,228,215,126,229,107,215,192,109, -153,241,249,242,132,247,241,165, 53,222,127,230,186,247,175, 41,236,241,199, 92,204,127, 76,143,109, 71,198,120,191, 15,132,155, -168,216, 69, 99,134,115,224,150, 50,166,157, 28,133,200,178,192, 57,248, 52, 69,218, 73, 78,234, 94,106,253,221, 68, 86,184, 80, - 42, 9,141, 58,103, 40, 98,135, 35,237,134, 43,165, 96, 94, 50,230,165, 96, 41,197,205, 89,172,173, 13,137,144,160, 8, 82, 32, -101, 65, 41, 25, 76,140,221,126,192,225,230, 22, 47,239,110,240,201,237, 30, 55,187,132, 33,170, 49,148,217,136,113, 28,128, 16, -236,208, 96,138,128,134, 13,144, 89, 31, 17,171,199, 65, 22,233,254,214,105,125,157,192,235,196,200,190, 39, 85, 2,168, 88,131, -163, 76,171,187,147,119, 1, 82,108,143,206, 30, 40,211,113,129,125, 15, 47, 88, 42, 27,190,201,101, 44, 46,181, 50,254,115,206, -102, 38, 35,130, 12,197,178,100,107,120,200,178,183,150,165, 64, 23,115,173, 90,150, 9, 15,167,130, 50, 12, 24, 57,160,204, 19, -202,156, 61, 75,155, 45,226, 62, 47, 16,201, 72, 41,128,211, 0,118,233, 32,200, 16, 1, 17, 99,128,231, 66, 22,217,234, 12,240, -186, 39,165,103,144,238, 74, 94,107, 83, 88,135,255, 82,231, 32, 70,244,220,202, 20,162,207,104, 78,171,237,104,127,118,209,246, - 95, 2, 66, 41, 56,223,220,224,235,195, 13,222,158, 22, 72,201,248,245,111,222,217, 20, 62, 45,248,235,175,190,195,167,243,130, -194, 17, 69, 9,203, 50, 99, 94,166,182,220,233, 35, 71, 87,138,156, 93, 15,129, 20, 17,132,164,132,129, 24,137, 9, 35, 57,252, - 14, 11, 55,138,176,137, 43,250,219, 76,132, 18,111, 80,118, 47,161, 33,130, 74, 65,218,221, 32,237,247,208,223,253,127,224,247, - 79,166,107, 82, 60,139,168,237, 17, 31,174, 18, 72, 92, 52, 59, 87, 66, 61,248, 10,241,141, 55,133,128, 54,190, 4,132,173,228, -108,219, 0,172,211,123,255, 62, 69, 39, 63,133, 55,247, 94,168,251, 29, 58,115,103,249,218,193,237,214,224, 6,107, 2,121,245, -234, 23, 82,176, 50, 18, 27, 34, 82,166, 51,230,199, 15, 8, 34,160,148, 80,138, 21,211,155, 97,196,155, 56,226, 56,205, 24, 69, -186,167,108, 37, 20, 86,116,171,222, 67,117,133,166, 77,150,182, 22,120,233, 96,114,237, 2, 89,160, 43, 44, 79, 42, 8, 98,247, - 21,171, 21,248,224,255,138,214,137,125, 13, 90,234,201,121, 21,213, 43,174,127,175,161, 49, 27, 66, 99,215,125,117, 10,218,103, - 83,183,234,245,169,156,190,135, 44, 87,175,131,160, 5,159, 46, 15,248,205,120,135, 71,142,157,145,243,159,183,254,253,139,162, - 87,127,154,206,255,176, 41,253,150, 8, 47, 83,117,142, 83,236,130, 49,195,235,238, 27,188,130, 53,234, 55,174,117,233,189, 78, -177,203, 6,118, 67, 20,114,127,108, 21, 91, 20,147,235,197,154,228,173, 90, 64, 86, 40,172, 40,138,100, 44,243,130,243,178, 96, -154, 51,138,248, 17,228, 22,177, 68,193, 96,208, 0,164,144, 64, 60, 96,183, 27,113, 56,236,113,115,216,227,118, 63, 96,159,216, - 38,116,152, 13,108,100,179,113, 53,178, 30, 67, 37,212, 13,238, 70,195,206, 78,226, 83, 93,109, 90, 75,182,157,114, 77,152,171, -134, 54, 89, 20, 83,206,128, 2,187,200, 72,129,125, 23,111,132, 65,118,205, 55,117, 22,172, 2,120,242,154, 24,169,176,173,133, - 61, 36,182,198,167, 58,211,158, 92,202,134,226,136,129,179,225, 91, 11, 82,201,100,204,160,152,204,216,166, 40, 34, 15, 72, 33, - 64, 74, 70, 62,207, 56,207, 39, 20, 48, 52,207,208, 60,131,136, 81,116, 66, 42,110, 77,234, 97, 33,220, 24,228,193,154, 18, 14, - 16, 41,200,162,152,115, 65, 94, 22, 59,232,136, 47, 14,150, 53, 97,171, 94, 12, 61,113,106,179, 67,167,213,136, 68, 85,214,137, -197, 15,224,237, 14,189,250,126,235, 38,225,235, 25,196,232,158, 0, 4,197,183,187, 61,254,219,162, 88,230,197, 37,130,134,212, -188, 60, 62,225,127, 56,158,145, 64,152, 0,100, 41,152,166, 35,164, 44, 93,131,176, 77, 49,107, 48,172,167,168, 13, 68, 24,152, - 49,184, 43,220,160,230,176, 56,192,141,102, 96, 34,190,250, 47,120,128,142,119, 24,135, 61,130, 22, 67, 71,246, 55,128,100, 76, - 74,235,106, 6,207,252,207,140, 20,217,142,119,118,174, 73,231, 6, 64, 61,103,165,107,142, 92,178, 36,151, 80, 60,245, 3,227, - 54,231,126, 99, 43,219, 73,200,208,217, 58,183, 0, 17, 90,125,245,201,145, 24,166,208, 21,244, 85,174, 22, 2, 99,229,238,111, - 11,124,211,170, 87, 3, 25, 54,178,101, 36,187,238, 98, 72,136,108,235,138,114,124, 0, 56,216, 53,150, 51,162, 44, 8, 76, 88, - 64, 40,106,198, 63, 70,148,148, 46,130,183, 78,237,180,242, 83, 8, 27, 2,175,244,246,209, 94,232, 5,142,202,121, 34, 27,220, - 52,198,140,154,106, 81,183,191, 65, 5,193, 85, 21,172,214,159,137, 55, 45,205,124,198,239,253,178,225,147,172, 80,124,166, 78, - 74, 87, 95,211,149,243,246, 81, 72,253,154,145,231,179,207,163,139,176, 25, 2, 94,228, 35, 94,228, 19, 30,199,251, 63, 9, 97, -238,143, 61,181,199,159, 10,249, 31, 56,165,123, 65,191, 25, 8,251,100, 83, 8,179, 90,209,246,104, 49,246,189,153, 82,231,108, -128,213,192,164, 50, 63,235,142,188, 25, 49,201,170,225,172,198, 29, 43,148, 95,252, 10, 52,166, 92,113,200,125,158, 11,230,156, -145, 5, 96,142,150,216, 86,195, 81, 82,194,110,140, 24, 35,155,207,123, 26,176,223, 39,236,135,132,113, 72, 72,177,238,166,139, -187,197,185,108, 14, 12, 85,134, 72, 88, 83,188,224,132, 47, 90,247,188,170,100,197,179, 22,244, 44,200,185, 56, 57,205, 58,254, - 57, 23,188, 63,158,113, 60, 79, 24,152,112, 55, 68,140, 41,128, 66, 64,138, 17,187,113, 64, 66, 68,164,216, 14, 95,120, 17,147, -226,204,115,214, 14,170, 83,251,254,178,202,214, 20,182,208,182,140,247,206,197,143, 3, 40,192, 28,221,200,216,239, 82,173, 47, -157,116,150,226, 14, 67, 74, 88,230, 25,249,188, 96,153,103,227, 3,148,108, 54,182, 4,228, 34,144,146,177,223,153,124, 45,166, -193,138,186, 31, 68, 69, 5,162,197,195,118, 2, 74,153, 80, 58,214, 59,250, 89,145,122, 86, 52,117,228,244,139,226, 78, 91,158, - 50, 59,217,142, 26,252,220,179,167, 13,150,174, 78,123,162,250, 61,135,151, 17,238,150, 16,241,207,195, 30,223,228,130,151,101, -193,116, 94,240,242,229, 13, 94, 69,224,243,175,191,197, 43, 17, 44,238,138, 55,205,103, 76,211,169, 89,243, 94, 74,190,200,247, -219,236,197,122,224,136, 49, 36, 12,196, 24, 72, 17, 73, 49,144, 21,243,228,135, 77, 36, 93,237, 70,253,247, 74,100,134,191, 49, - 4,236, 95,189, 2, 0, 60,253,211, 63,130,143,111,155, 82,130,174, 80,161,250, 98,141, 74,166,187, 56,198,159,217,186, 82,223, -152, 60, 51,233,221, 20,117,124,100,210,235, 73,113, 74,235,185,197,212, 73,207,128,103,123,245,205,126,189,254, 55,247, 69,125, -125,109,251,130,222, 55, 1, 68, 70,206, 69, 94,192,216, 99,184,185,197,225,231,127,133, 60,159,113,254,230,107,148,101,182,149, -208,116, 2,139, 65,227,165, 66,238,213,216,161, 35, 5,106, 55, 49, 87, 71,183, 54, 61,215, 66,223,193,230, 21,137,211,106, 24, -227, 69,127,141,147,182,193,132,154,127, 59,129,146,229,219,115, 94,192,203, 4,118,107,224,170,204,232,175, 83,113,127,248,230, -131,161,120,214, 68, 86,105, 43,127, 79, 1,199,199,118,231,125,167,119, 69,234, 40, 4,236,117,193,203,124,196,215,227, 61,148, -248,234,180,254,231,240,122,255, 67,247,237,241,167,130,254,251,167,244,251, 0,124, 50, 16,238, 7,198,205,192, 24,211, 26, 17, - 74,109,140,178, 3,152, 56,184, 94,188, 52,226,154,118,198, 11,240,236,244, 34, 2, 20,233, 16, 68,131,142, 43,137,164, 50,141, -213, 51,163, 67, 85,129, 42, 67,196, 14, 19,230,128, 33, 70,132, 52, 34, 13,131, 57,191,197,128, 49, 69,236, 83,192,110, 72, 24, -134,128, 33, 13, 24, 7,179,140, 13,193, 24,198, 76,226,121,230,206,110, 87, 55,238,148, 0,101, 70,104, 86, 20, 61, 82,166,144, -214, 46,123, 33, 95, 4,185,100,228,108,246,170, 10,197, 92, 50,222,157, 78,120,247,225, 9,154,103,240, 16, 49, 73,130, 44,246, -164,197, 97,240,105,118,103, 12,250,176,210, 95, 72, 87,206,128, 33, 24, 70,208,147,108,161, 44,235,228,101, 5, 77, 69, 80, 68, - 80,178, 53, 74,185, 18,238,212,154,171, 82,167,127,223,233, 69, 54, 8, 93, 69, 49,157,103,228,249, 4,201,166,135,215,178, 0, -234, 89,219,129, 0, 89, 92, 73, 96,201,107, 20, 98, 11,100, 41,149,145, 79,230, 1, 31, 41,161,232, 19, 74,206, 54, 21,209, 21, -216,175,243,117, 95,181,200,180,153,206,214,125,234, 37, 13,136,219, 68,180,126,220, 92,243,180, 80,119,112,173, 55,123,239,182, -165, 42, 8, 32, 60,142, 7,188,253,236, 83,188,252,236, 14,243,121,198,135, 15, 71,188,122,117,139,253,183,111,241,242,119,239, - 13, 97, 1,144, 37, 99,154,158, 80,202,210, 38,210, 46,162,165, 21, 55,134, 65,238,187, 52, 98,151,118, 72,100,171,159,164,197, -200,114,238,216,149, 80,137, 78,132,232,126,228, 12, 5, 73, 1, 29, 95, 67,150, 35,148, 19,166,242, 8,157, 79,208,199, 55, 8, - 50, 61,195, 76,233,185, 1,107,211, 83,211, 21,222,243,243, 70,228,242,123, 93, 51,138,185, 46,253,122,230,202,222, 23,119, 39, -198, 18,241,243, 71,183, 33, 64,174,121, 14,155,143, 17,175,225, 42, 13,201,233, 50,209, 97,158, 4,141,100,151, 79, 40, 39,198, - 28, 35,118, 95,126,129,225,197, 61,150,183,111, 48, 61,188,135,228, 5, 90, 22, 80, 89, 16,188, 25,172,185,231,212, 17,227, 86, -190,169,180,155,188,103,190, 75,175,104,105, 14,113,181,152,123, 65,199, 42, 89,211,246,125,196, 78, 15,142,192,225,115,220,126, -246, 75, 20, 14,120,255,254, 45,150,227, 7,208,249, 61,120,122, 68,191, 44,185, 86,216,151, 30, 13,234,166,243, 64,207, 11,182, -224, 57, 11,190,246, 49,242,177, 42, 15,128,174,236,216, 3, 20, 47,243,132, 81, 22,156, 67,250,136,218,129,254,164,246,175,255, - 18, 88, 62,254, 84,208,191,191,187, 27, 9,120,145, 8, 47,198,128,155,196,216, 37,131,204,234, 42, 76,250, 75,130,237,176,229, - 10, 89,105, 77, 16,171,133,122, 45,234,226,176, 85, 45, 98, 42, 5, 42, 25, 42,197,138,148,120, 34, 25, 41, 82,116,135,183, 16, -173,184, 40,131,178,153, 66,112, 72, 24, 92, 51, 61,196,128, 24, 25, 67, 12,216, 69,139, 93,141, 49, 34, 57,244, 29, 2,185, 92, -205, 32,119, 51,154,243, 93,223,154, 88,109, 46,111,180,194,117,246, 14, 93,225, 74,119,154, 50,216,125, 65, 94, 44, 48, 69,196, - 72,123, 79,243,132,135,167, 35,100, 57, 99, 79,166, 81,214, 12, 44,226,100, 31, 21,156,136, 16, 99,192,144, 82,131, 2,171, 87, - 60, 87,143,107, 53,114,156,106, 45,162, 29,242, 81,205, 44,170,175,187, 31, 50,185, 88,179, 33, 5,152,115,198,162, 10, 85, 99, -239, 51, 51,134, 24,161, 32,156, 78, 39,204,199, 35,116,158,192,228, 10,104,181, 92,110,178, 21,104,243,184,231, 16, 17,146,153, -204, 48,251, 19, 23,147,121,105,115, 65,136, 9,139,122,184, 76,201,126, 83,209,134, 12,180,229, 79,119, 81, 56,253,212, 86,139, - 61,117,147, 91,213, 22, 80,133,103, 87,172,176, 57,216,186,197,174,108,102,218, 45, 17,137,160,144,184,195,215,175,190,196,183, - 55, 59,236, 20,120,124, 60, 35, 38,198,221,116,198,139, 95,125,133, 52, 45, 88, 66, 64, 81, 96, 90,102,204,203,185,237,171,149, -158,239,164, 93, 97,143,195,120,192,205,238, 22, 3, 49,130,100,139,139, 5, 35, 34, 35,122, 65, 15,100,171, 30,147,188,173, 58, -115, 82, 1,150, 39,112,126, 2, 52,160, 60, 42,208, 38,185,126,135, 74, 87, 10,250,165,245,235,197,140,173,151,231,204,181,221, -234, 69, 97,191,204, 70,215,107,205, 0,158,181, 0,205,240,229,146, 48,215,169, 24,244, 66,166, 78,180, 69,112,218,117,194,212, -204,155,250, 72,209,202,167, 0, 1, 65, 50,150,243, 35,142,121,194,242,255, 76, 24,110,238, 33,211, 25, 37, 79,144,108, 68,209, -152, 23,140,154,155, 59,220, 22, 53,172, 46,111,186,106, 5, 42,146, 88,165,106,218,165, 55, 86, 6,123, 69,168, 90, 3, 80,214, -105,189, 93,152,102,106,149,135, 23,136,247, 63,195,221,221,167, 56, 77, 39,132, 56,130,199, 59,228, 48, 66,195, 30, 56,191, 1, -149,188,121, 21,181,187,102, 69, 13,122,103, 88,129,191, 96, 67,110, 26,158,239,219,165, 95, 67,175,136,158, 99,243,235,243,172, -184, 41,103,220, 20, 47,234,191,167,110,253,107,246,222, 63, 36, 44, 31,127, 42,232, 31,255, 19, 0,220, 4,224,229,142,113, 59, - 16,246, 9, 72,209, 37, 45, 76, 13,170, 90,109, 15,157, 72,227,147,184,133,139,216, 62, 9, 93,161, 87,177,142,151,186,136, 81, -201, 70,104,147, 98, 4,175,226,184, 19, 89,136, 52,120, 72, 72,105, 0,115, 66, 34,114,205, 58,123,209, 78, 72, 41, 34,121, 81, -143, 33, 32, 5,178,120,213,232,214,178,108, 18,171,200,106,112,105, 32, 48, 7, 43,120,205,138,114,245, 6, 55, 80, 65,124,103, -230,219, 4,183,133,108,200, 67, 86,228,146, 81,150,140, 34, 5, 42,130, 44,130,105,154,129,188, 96,239, 42, 1, 45, 38,117, 97, - 53,171, 48, 21,131,210,141, 57, 46, 88,243,158,180,195,217, 86,177, 81,189,102,185, 73,252, 86,127,216, 10, 62,155,102,222, 10, -250, 52, 45, 88, 68,176,100, 35,199, 69,191, 49, 53,251,107, 33, 2, 22,197, 24, 24,180,219,217,186,224,124, 50, 59, 75,119,238, -101,231, 25,196, 24, 16, 82, 68,136, 17, 41, 14,160,200,160,104, 68, 66, 59,228, 24, 2,194,146, 11,230,233, 4,149,220, 21,101, - 92,245, 21,213,154,194,215, 89,127,214,125,222,186,239,172,215, 87,245,213,151,230,157,177,250,199,114,155,200,165,209,151,208, -249,203,251, 36,164, 10,226, 17,143, 55,159,227,187,159,125,129,120,127,192,241,233, 12,102,198, 39,187,136, 47,127,245,107,188, -250,240,132, 66,140,172,138,172, 5,121, 62,161,148, 2,116,113,186,157,179,168,195,238,132,195,120,131,251,195, 11,236, 66, 4, -151,108,214,194,158,184,102,158,239,130,202,206, 96, 49,203,100,234,246,222,237,209, 10,252,232,214,231, 83,178,110,165,105,215, -138, 43,227,138,126,233, 10, 41,234,234, 25,244, 17, 34, 21,186, 29,239,245,207, 93,131,133, 54,233,234,116,237,179,122,232,118, -155,205,190,241, 99,239,140, 98,108,223,219, 21, 98,255,127, 85,131,173, 89, 11,100, 17,204,239,126,135,249,225,157,239,212, 9, - 75, 41,208,101,194, 88, 22,164,138, 2,246, 86,139,178,202,202, 46, 11,189,214,196,195, 42, 61, 67,199, 97, 81,115, 77,180,223, -161,160, 52, 2, 92,151,155, 94, 81, 34, 30, 64,195, 13, 70, 34, 44,239,223, 98, 58, 31,193,203, 98,103, 87, 28, 49,223, 36, 32, - 36,240,211,107,148, 50,109,158,165, 58, 40,149,250,218,119,228,184,203,198,236,114,109,242, 49,205,186,118, 40, 64,191,207,191, -118,141, 48,128, 81, 11,238,242,132,119,113,255, 7, 11,214,255,156,197,253, 71, 83,212,127,236,209,173, 17, 14,187, 39,198, 62, - 49,134, 68,107, 30,182,172, 12, 80,245,164, 37,213,210,174, 32,243, 33, 87,151,122,153,118, 91, 58, 72,171, 66, 92,165,100,104, - 41, 86,252, 75,246, 93, 21, 90,226, 23, 51,131, 56, 33,248,222, 60,197,136,224, 89,216, 45, 55, 61,152,181,106,100,139, 85,229, - 72,136,193, 62,110, 69,220, 10,121,112, 3,156,200,108,223, 3,193,225,229,166,240,182,195,164,222,192,109,247,239,143, 95,202, -234,132,231,133, 89, 74, 65,201,185, 21, 90, 45, 5, 33, 47,216, 73, 54, 70,110, 11, 50, 41, 16, 50,131, 13, 14, 17, 49, 4,212, -240,214,230,124, 85,109,225, 61,181,109, 77,187,232,110, 98,246, 20, 54,151,210, 4, 88, 34, 93, 86, 32,151, 5,243,188,152,171, - 91, 54, 53,128,121,213,219,110,124,153, 78, 45, 11, 61,113,192,205,225, 6, 90, 10, 78,167, 35,164,204, 96, 20, 35, 24,114,205, -178,143, 72,169, 74,216, 44,245,142,227, 0, 78, 97,141,136,133, 0,139, 34,207, 5,121,158,125,173, 64,235,225,164,107,127,210, - 84, 4,186,106,145, 21, 61,166,189,150, 58,222, 28, 72,218, 29, 92,245,216, 17, 84,143,181, 21,126,172,174, 0,245,240,114,180, -128, 7, 44,187, 87,248,240,179,159, 97,249,226, 5,198, 32,198,171,184, 59,224,230, 31,190,194,203, 95,127,103,176,187, 35, 79, - 75, 89,176, 44,103,131,180, 93, 94,183,153,152,213,174,165,195,238, 6, 47,110, 63,193, 46, 38, 68, 41, 8, 96, 4, 49, 93,122, - 64, 65, 20, 54, 52, 9, 4,210,226, 4, 63, 54,228,167, 89, 26,227,234,174,252,185,106,252,194,238,149,174,143, 99,219,175,221, -198,157, 62, 99,207,127,116,250,254,120,104,203,101,169,160,110,130,228, 13,244,206,207, 24,120,228,228, 50,114,174, 8,119, 23, - 54, 93,107,252,252,223,141,230, 75,183, 26,135, 0, 64, 36, 67,138, 37,228,137,127,193, 32,238,251,215,157, 57,118, 81,150,181, -240,136,108,152,238,171, 38,189,172,142,112,126,190,217,100, 94, 86,199,184, 42, 77,107,230, 50,107, 67,105, 23,112,194,225,112, -135,187,187, 59, 60, 61,124, 0,242,108,198, 66,106,126, 31, 74,140,101,188,135, 8, 16,142,223, 65,100,222, 8, 9, 27,108,126, - 97, 24,132, 11, 24,158,117, 91,232,235, 99, 40,216, 74,221,174,205,236,151,186,246,254, 29, 73, 11,238,203, 9, 17,247, 88, 26, -251,226,199, 89,220, 47,127, 94,252,169,160, 95,255, 35, 0, 14,145,240, 98, 32, 28,146, 73,115,184,147,126,136,239,142, 84,220, -225,139,130,251,136, 59, 3,188,248,244, 94,252, 47, 92, 67, 93,139,166, 88, 65,212,156, 81,202, 98, 16,189,212,216, 32,155,162, - 41,176, 23,236, 8,142, 9,145, 77,135,106, 14,112,140, 16,163, 21,113,170, 1, 44,190,235, 15, 64, 96, 69, 12,165,249,195, 7, -114, 99, 16,138, 38,163, 65,108,198, 55,141,152, 83,204,233,174,178,241,165,172, 4, 26,241,157, 53, 42, 27,219,127,135,156,139, - 37,206,185, 94, 59,231,108,161, 40, 75,182,206,157, 42,129,168, 38,196, 17, 82, 72, 24,162, 21, 74,109,176,106,141,145, 93,189, -167, 87,247, 48,177,212, 53,237, 32,219,202,194, 39, 67, 69,114, 94,112,154,206,152,150,197,213, 0,112, 6,187, 66,242, 12,100, - 67, 20, 80,155,173,152, 48,132,128,156, 23, 28,159, 30,128,249,108,144, 59,193,159,199,128,152, 34,210, 56, 98, 28,247, 8,113, - 48,198,126, 12,136, 67, 66,153, 23,248, 42, 27,105,136, 38, 9, 83,185, 10,245,193,201,133,189,173, 89, 13,219, 32,218,250,126, - 19,209,245,130,213,203,184,186, 12,234,122,248,213, 2, 94,223, 87,147,211, 64, 9,203,240, 2,199,225, 22, 79,159,220, 64,239, - 70,156,223, 63,154, 38,247,195,123,124,249,155,215, 24,203,130,153,235,148,174,200,121,134,136,130,201,102,108,114,113,112, 11, -106, 33,224,102,127,131, 23,183,175, 48,114, 4,107,110,178,181, 64,102, 36, 19, 40, 32,146,130,148, 45,154,211, 93, 14, 85, 22, - 63,173, 11,154, 32, 78,245,217, 97, 75, 31,217,163, 95, 66,235,244,209, 93,251,229,119,210,171,144, 59,158, 17, 0,183, 63,157, - 62,186,143,173,214,134,236, 43,180,250,223, 97,235,229, 78,221, 36,222, 23, 41, 21, 40,133,149,209,141,222,190,148,175, 84,155, -150, 99,186,125, 84, 90,237,116,209,178, 0,180,179, 77,147,222,197,173,177,213,253,177, 54,228,208,177,158,138, 56,118, 95,211, -140, 98,234,122,167, 6, 38, 89, 79, 6,233, 28,254,164,147,187,197,144,112,247,226, 21, 62,255, 79,255, 35,190,253,231, 95,225, -225,233, 1,129, 25,201,127,141,228, 96,211,188,187,131,148, 25,116,124,221, 60, 28, 46,161,248,130, 62, 64,202,162,126, 43,124, -174,181,176,247,176,253, 71, 8,116, 13,158,215,143,155,214,212, 70,138, 85,112,155, 39,140,146, 49,135,241, 35,186,146, 31,103, -113,143, 63, 21,242,235, 5, 61,130,240, 34, 1, 55,145,177, 99, 66, 98, 59,180,115, 49,187,213,202, 9,225,234, 99, 70,117, 74, - 23,207,245,150, 54,145, 59,226,235,255,138,237,127,115,134,148, 5,154, 75,203, 54, 7,200,195, 70, 44, 17, 45, 13, 9, 67,138, -216, 13, 17,105, 48,136, 61,250,196,152,216, 92,164,152, 61,106, 21,102,239,202,132, 53, 19, 90,107, 68,170, 79, 88, 28,172,249, - 80,103,185, 55, 55, 20, 2,196,118,216, 34,130,121, 89, 80,150, 5, 42,106, 59,101, 80,103, 48, 99, 19,178,173,217, 75, 67, 25, - 68, 5, 75,206,152,167, 9,203,116, 70, 41,217,126, 54, 19,216, 19, 33,136, 13, 10,143, 41, 90,170, 89,224,118, 35, 86, 11,206, - 22, 27, 43, 62, 29,136, 54,137,155,182,176, 16,109, 38, 42, 86, 72, 11, 84, 22,168, 44,160, 96,217,242, 40, 14,223, 45, 11,100, -177,199, 8, 71, 26, 72, 5,121,158,240, 80, 50,202,124,134, 76, 71,131,136, 27,123, 25,160, 24, 60,176,101, 68, 28, 18, 66,140, -107, 28, 46,212,246,235, 69, 16, 52,131,192, 22, 75, 58,159,159,123,135,119, 4,184,222, 2, 69, 55,190,177,244,156,129,117, 65, -122,187, 44,116,149,235,109,135, 43,181,194,238,142,197,222, 80, 69, 44,195, 61,206,233, 22,243, 56, 66, 95,237,113,247,233, 13, -158,160,248,237,127,255, 26,159,253,195, 55,120,241,112, 68, 38, 70,241,141,183, 74,129,100, 5,177,153,235,132, 10,251, 87,147, - 17, 40,110,246,119,184,187,121,137,145, 9, 65, 23,223,155, 87, 13, 58, 53, 15,119,166,170,230,168, 30,193,128,168,101, 31,136, - 50,148,228,210,156,251,251,207,143,171,255,234,239,137, 68,213, 43, 27,240,143, 17,234,168,185, 63, 93, 2,231,244, 81, 88,190, -167,123,213,224,157,176,122, 13,208,165, 77,236, 90,192, 85,202,154,247, 0,116, 86,105, 98,242,181,139, 5,178,246, 14,123, 94, -208, 84,196,145,153,149,100,177, 78,204,221,244, 93, 57, 22, 98,247, 75, 91, 27, 74, 15,195,215,183,165,237,213,235,119,220,192, -236,110, 53,173, 29,220,190,221,122,212,112,168,128,221,237, 45, 14,247, 47, 17,190,249,202, 6, 25,199, 3,217, 25, 60,129, 9, -101,119, 7,202, 79,192,114,196,165,141,143, 83, 8, 32,228,197,188, 62,247,186, 1,242,158, 23,105,221,238,231,127,159,188,109, - 67,142,118,100, 98,167, 51,198,178,224, 33, 12, 63, 24,169,237,223, 45,252,254,231, 98, 8,254,107,201,113, 10,224, 16,128,219, - 68,216, 71,194,200,102,166, 80,212, 52,226, 69,138, 23,116,110,254,222,173,136, 75,113,120, 24, 32,229,182, 47,181,152, 74,177, -175, 95, 10, 74, 89, 32,165,180, 48, 14, 34, 43,206, 49, 50,226,152, 48,142, 3,198, 49, 97, 24, 70, 39,192, 57,196, 30,188,240, - 85, 83,120, 63, 72,168,153,111,184, 76,196, 11,117, 53, 73,241, 91, 8, 22,203,202,190,215,175,159, 7, 55, 81, 81, 44,121,193, -249,124, 70,158,179,101, 92, 39,131,254, 81,138, 67,241,190,207, 54, 63, 72,103,169, 23,228, 98, 5,125,158, 38,107, 88, 20,205, - 56, 69, 24, 54,185, 5, 35,238,109,156,209,104,189, 70,214, 12,121,191,139,221,100, 71, 74, 89,209,131,170, 69, 86,130, 82, 65, - 41, 5, 36, 5,160,130,148, 44,137,172, 40,131, 2,160,217, 94, 51,104,129, 44,139,173, 6,124, 13, 33, 82,176,156, 38,104, 62, -187, 18,160,218,249,154,249, 78, 76, 17,195,184, 67, 28,119,224,104,168,137,138,113, 31, 68, 11, 64, 17,139, 40, 74, 86,204,203, - 25, 31,158,158,176, 44, 83, 11,221,208,254, 48,110,254, 4,188,209, 48,107,195,145, 47, 83,186, 46, 14,201,141, 2,103, 53, 14, - 41, 62,233, 26,252, 89,255,173, 5,157,145,211, 29,142,195, 29,246,247,159, 64,127,254, 5,142, 55, 7,188,255,112,198,227,251, - 19, 62,127,251,132,191, 58,206, 40,170,200, 88, 61, 9,178,152,209, 14,195, 36, 73, 85,230, 68, 42, 96, 82,236,199, 91,220,221, -220, 99,228, 0,118,215, 48,147,171, 41,162,203,212, 2,145,199,174, 18, 88,164,113, 53,138, 50, 36,140,200, 80, 75,222,203, 51, - 56, 31,193, 87,220,240, 20,223,183,203,190, 44,198,223,159,146, 70, 31, 45,235,122,189, 1, 80,186,240,128,255, 30,184, 94,107, -166,189,250, 90, 69, 91,120, 14,152, 54,100,184,103, 32,190,218,243, 64, 93,250, 90,213,188, 67,252,237,250,218,215,140,225,142, -200, 6,231,230,136,172,124,138, 74,104, 69, 43,234,213,251, 95,220, 34,184, 43,115,218, 21,242, 46, 96,101,141, 71,149, 21, 1, -210,117,167, 79,122,133,212,214, 77,195,134, 80,158,113,250,240, 6,239,126,251, 91,228,121, 70, 8, 1, 75,182, 43, 54,116, 95, -147,160, 40,156, 32, 97,143,176,156, 60,224,137,158, 13, 89,184,128,226,115, 71,142, 11,232,162,157, 63, 82,188,175,237,219, 55, - 19,186, 94,172, 62, 20, 24, 37,227, 70, 38,188,209, 67, 23,155,253,199, 25,106,127, 52,121,234,255,150, 95,226,223,203,148, 94, -159,148, 67, 0,110, 35, 97,207,132,232,151,118,149,115,104,239, 60,220,160, 44,155,194, 53,103, 51, 63, 33,110, 75,160,106, 26, -163,197, 28,222, 32, 11, 72, 5,145,157, 9,237, 69, 58, 37,198, 48, 36,243, 22, 31, 7, 12, 41,121, 81,101,176,103,156, 87,141, -172,212,189,150,219,199, 54,136,219,139, 35, 87,178, 85, 48,230, 55,185,163, 85,157,208,171,222,187,238,253,115, 46, 56,207, 86, -208,151,105, 2, 21,193,152,146,133, 76,144, 53, 43, 21,118, 32, 85,159,208, 61, 22, 85, 10,114, 46, 88,230,140,188, 44,246, 60, - 16,185, 44,206,117,251,108, 43, 5,147,229,106,155,200, 27,203,215, 93,247,140,113,143,246,156,217,250,194,154, 33, 91, 1,104, -131,225,139,170, 53, 71,181,208, 6,115,193,211,226,166,173,106,135, 8,115, 0,130, 53, 30, 82,212,246,250, 98,205,136,168, 58, -236,111,138, 6, 14, 1, 97, 28, 48,236, 15, 24,246, 7,196, 97,176,104,213,218,188, 21,107,200,138,102, 35,251,229,130,247,243, -140,111,223,191,199,178, 76, 24,186, 45,248,150,196, 67, 45,166, 82,187, 56,176,181,224,119, 26,101,127,109,233, 74,225,105, 64, -170, 55,202,210, 17,229, 74, 61,100, 57, 98, 73,119,120, 26, 94, 96,188,127,137,159,255,175,255, 5,191,254,226, 30,111,142,191, -193,219,111,223, 99,252,250, 45,254,250,221, 17, 35, 50,178,102, 8, 76,250, 87,212, 50,229,181,156, 59, 2, 85,229, 46, 42,246, -195, 1,183,135,123, 36, 14, 8, 90,220, 64,166,255,107, 7,118,208,138, 24, 89, 3,106, 13,198, 14, 75,220, 33,135,228, 62, 65, -118,223,132,229, 8,121,248, 22, 60, 61,124,239,161,121, 25,224,242,177, 50, 75,151,219,138,223, 51,185,127,223, 79,163,223, 67, -154,123,198,126,163, 90,226,234,106,129,215,120,229,126,111,176, 50, 30,219, 36, 77,208,102, 46, 83,141,167,148, 54, 84, 66, 67, - 1,187, 20,194,210,226, 76,171,137,138,120,163,190,110,184, 55,242,180,141,100,194,119,231,215,200,114, 88,215, 72,181,169, 91, - 73,122, 23, 87,164,118,215,100,229,225, 65, 81,242, 9, 79,239,191,195, 44,158, 18,229,240, 57,119,186,243,224, 19,127, 32,133, - 82, 37,236,234,117,159, 5,237,160,248,203, 87,221,119,245,160,235, 69,251, 15,209,177,203,150,182, 1, 5, 16,181,224,166,204, -158,177,193,191, 23, 73,250,177, 76,239, 17, 63,253,121,246, 39, 17,112, 23,129,155, 72,216, 5, 69,164, 6, 66,109, 15, 87, 21, -136, 26,188,221,200,113,158,241,109,146, 55, 47,236, 37, 55, 83,147, 72, 5,136,218,178,209,137,130, 23,188,136, 20, 35,134, 49, - 33, 69,131,168,131, 59,170,245,110, 78, 69,253,184, 39,184,126, 93, 32,106,137,104, 6,191,251, 65,170, 46,141, 18, 59, 44,218, - 13,232, 86,174, 42, 62,112,139, 96, 41, 5, 15,199, 51, 30,158,142,152, 79, 39, 80, 41, 24, 57, 32, 2,200, 68,136, 45, 44, 68, -214,104, 83, 39,209,149,108, 4, 63,179,172, 53,130,154, 2,224, 64,230,192, 22, 3, 40, 88,136, 12,199,128, 16, 99,251,221,234, -218, 96,141, 6,233,210,222,138, 21,245,156, 23,148,156, 91,113,159,221,254, 85, 68, 48,103,193,188,204, 40,101, 65,240, 93,247, -226, 50,192,106,110, 18, 35, 35, 14, 17, 51, 51, 78, 57,155,229, 43, 20, 22, 9, 87,252,121,179,102, 41, 4, 70, 26,119,216,221, -220, 96,119,115,143, 97,183, 67,136,209,158, 71,151,186,145,157,133, 6,229,139,224,113, 94,240,171,183,239,241,225,237,107,220, -151,188,145,202, 24, 88,210, 18,217, 77,158,199, 23, 6,164,218,193,243,170, 16, 90, 87, 58, 27,247, 47,108,173, 95, 5,234, 48, -187,253, 12,227,152, 43,148, 35,230,120,139,199,241, 37,194,225,128,191,254,187,255,140,187,191,251, 59, 60, 60,254, 26, 44,132, -241,183, 79,248,226,171,183,184, 63,158,176,204,143, 70,178,162, 0, 1,144,243,140,146,207,168, 34,184, 62,213,108,136, 35, 14, -187, 59, 68,246,181, 3,169,219,189,210, 58,161, 27,254,176, 53, 10, 9, 17,101,119, 7,221,221, 24, 90,227,247,135,178,130,227, - 0,124,250, 11,156,247, 47, 80,190,254,127, 17,150, 39,208,213, 29,120,207, 45,167, 77,209,237,159,111,218, 20,206,109,172,241, - 53, 21,194,191, 12,191,251, 62, 42,221, 10, 83, 55,137, 42, 4, 36, 4,225,210, 36,140, 74, 91,194, 27, 58,117, 2, 26,250,180, -245, 42,232, 11, 82,147,201,170,108,222, 54,202,130,172,204,117,108, 45, 94, 55,133,163,131,215,251,231,170,151, 95,106, 87,172, -251,201,242,153, 84, 82,255,127,246,222, 46,214,146,236, 58, 15,251,214,222,187,170,206,185,183,111,207,112,200, 33, 37,146,226, -143, 68, 82,180, 20, 74,148, 20,253, 56,129, 13, 25,145, 37, 65, 50, 34, 63, 4,126, 72,224, 64, 15, 14,224, 32, 64,242,144,215, - 0,201,107, 94,146, 60, 38,136,145,192, 64,242,226,188, 36, 81, 2, 43, 70, 0,217, 48, 28,201, 18, 4,211, 18, 69,114, 56,228, -144,195,153,233,158,233,153,233,223,251,115, 78,213,222,107,229, 97,173,189,107, 87,157,170,115,111, 83, 51,163,145, 70, 61,104, -116, 79,223,123,207, 57,247,220,170,253,173,245,173,111,125, 95, 69,109, 75, 53,207, 22, 2, 82, 66,186,122,136, 65, 8, 8, 27, -245,190,176, 34,212, 27,171,228,108, 35,134, 82, 4,113,130,175,252,250,101, 97, 36,234,172,120, 73,149, 88,206,213,158,240, 50, -213, 84, 78,168,247,106, 52,193, 11, 63, 89, 90,104,239,157, 8, 78,210,128, 86, 4,151,244,238,164,182,189, 27,224,254,174,128, -250,159,167,174,124,233,254,221, 54,170,120, 63, 13,132,206, 91, 37, 57,222,130, 22, 34,162, 55, 46,179,221,128,172,118,165,146, - 6,181,114,245, 92,168, 56,230, 1,130,100,166, 38,128,183,184, 83,103,214,158, 32,175, 29,162, 15, 42,138,115, 78,197, 78, 70, -121,235,142,186,121, 45,231,149, 43, 87,109, 54, 37,152, 41, 76,101, 69, 75,162,192,158,183,191, 12, 8, 96, 52,187,198,154,234, - 28,252,106,223,227,209,147, 11,156, 63,121,130,212,239,225,201,131,154, 6,173,119,104, 64, 72,190,246,107,102,179, 99,213,130, - 32,217,234,216,144, 24,145, 1,182, 61,107, 23,116,183, 59, 4,181,159,109,154, 22,109,215,161,109, 27, 52,193,153, 58, 63, 7, -187,140,129, 32, 16,165,180, 83, 74,224,200, 26,202,146,129, 60,233,123, 60, 24,184,239,134,136,253, 48,168, 13,173,111,193,201, - 99,159,118, 0, 34, 58, 16, 54, 77, 64,219,110,224,224,224, 24, 24,156, 27, 3, 42, 68,141,102,116, 70,175, 63,143,166,237,208, -110, 79,208,109,111, 97,179,233, 16,154, 22, 20, 66, 49,122,145,226,107, 47, 8, 62,224, 81,223,227,165,135,143,240,237, 55,238, - 98,219, 63,193, 51,141,140,221,130,140, 90, 1, 57,216,167, 50,229,123,197,173,215,158,109,121,103,127,148, 63,203, 2,149,232, - 20,204, 77,241, 44, 36, 16, 31,176,107,110,225,170,187, 5, 23, 90,252,224, 71, 63,134,143,253,200, 23,240,194,189, 59,248,131, -151,191, 2, 4,193,167,239,220,199, 71, 46,247, 24,250, 75,164,253,149,177, 57, 10, 6, 41,238,171,185,112,101,198,225, 60,182, -237, 9,130, 15,240,182, 67,174,153,233, 84,172, 95,141,147, 41,203,137, 74, 31, 5,196,147,103, 64,155, 51, 52, 16, 32,165,209, -159,221, 57, 93, 23,244, 1,116,251, 35,120,252,228,121,208,163, 30, 94, 34, 14, 18,235,106,245,113,118,132,147,234,184,207, 70, - 60,121,125,239,154,153,252,205,113,124, 73, 52,119,204, 65, 28, 35,213,157,169,126, 30, 59,238,165,168,152,233,236,122,188,120, -152, 49, 53, 43, 50, 80, 47, 61,184,232,189, 39, 53, 19, 88, 45, 54, 10,203,164,211,174,199, 5, 21, 89,127,160,222,144,138,161, -153, 94,111, 50, 21,159,201,161, 24,109, 42,143, 16, 32, 94,129,247, 94, 29, 9, 67,139,236,225,231,173, 51, 78,198, 18,202,176, - 71, 72, 87,240, 24,243, 51, 88,150,129, 61,255, 42,192,110,255,159, 41,125,204,118,251,231,254,240, 75, 69,131, 84, 51,159,249, -154,228, 38,245,104, 57,226,210, 7,188,155, 54,240,239,228,136, 58,252, 37,152, 79,127,121,210,221,244,211,198, 97, 27, 28, 26, -167,128,147,239,211,122, 13, 73,139,222,113,214,172,160, 30, 45,188,219,129, 41, 21, 49, 11,217,238,133, 43, 1, 31, 82,245, 30, - 84, 42,252,196,246, 68,108,235, 68, 68, 96, 71, 16,241, 74,195, 59,167, 47,210,156, 23,202,117,144,253,216, 97,158,216, 82,117, - 60, 38, 80, 41, 12,156,168,191,122, 26, 34,246,251, 61, 46,174,174,176,187,184, 0,239,205,227,155,129,136,136, 24, 34,216,121, -248,114,200, 90, 97,193, 85,183,158,108,166, 39,106,207,234, 44,137, 78,119,187, 1, 31, 4,109,112,104,219,128,182,241,104, 60, - 70, 93, 64, 86,253, 82, 22, 39, 73,153, 51,166,152, 48, 12,234,165, 62, 12,186,195,159,169,249,148,242,129,230,224,253, 6,206, -121,132,208,193,121,194,144, 28, 82, 76, 0,121,248, 70,149,200,250,245,121,165, 74,128,212,219,250,161,210,196,112,132,208,181, -216,156,158,162, 59, 85,202,157,124, 0,249, 81,137,206, 32, 83,132,235,252,243, 42, 9, 94,122,114,142,111,222,123, 3,231,231, -143,113,171,153, 74,189,132,166,129, 34, 98, 8, 47,146, 11, 46,251, 19,140,236, 23, 40,147, 38,149, 23,102,203, 10,226, 19, 74, -209,233,207,164,119, 30,151,221,109,164,237,109, 56, 31,176,225,136, 77,104,112,249,250,235,120,241, 91,255, 26, 47,223,127, 25, -159, 74, 30,183,119, 0,210,128, 56, 92,128, 37,234, 17, 96, 43,127,146, 98,101,143, 3,123,127, 8, 93,216,162, 9, 45, 28, 39, - 53,228,177, 8,220, 2,230,182, 25,226, 76,137,157,213,253,124,114, 6,108,206,224, 9,160,196,197,220, 68,253,255, 61,218,211, - 51,108, 62,244, 28,248,209, 35, 60,241, 39, 16,191, 5,165, 93, 49,114, 25, 33, 51, 59,161,137,141, 37, 42, 66, 88,228, 32, 39, -124,236,206, 43,163,240,239,187, 63,151,197, 41,127,177,194,161, 25,168, 87,142, 40, 53, 84,146, 36,141, 81,173,139,182,146,134, - 86,197, 27,228, 62,191, 56,187, 97, 2,184, 12, 28,184, 84,142,159, 91,129,122,125,179,163, 86,125, 75, 85,244,163,140,130, 68, -102,128, 72,152,237,199, 79,169,112,190,129, 46, 9, 72,160,120,161,250,143,180, 5, 92, 11, 38,135,100,162,183,129, 25, 41,246, - 8,195, 5, 2,239, 14,186,232,180, 0,234, 36, 99,248, 75, 94,221, 76,180,108,245,123, 32,152,147,101,176, 63,216,107,175,186, -253,150, 7,108,120, 0,201,230, 61,211,158,253,105, 1, 62,252,254, 27,113, 74, 0, 0, 32, 0, 73, 68, 65, 84, 37,160, 79, 47, -198,214, 41,237,190, 13,132,214,246,166,243,213, 81, 26,130, 42, 67,179,136,167,162, 2, 92, 77,111,141,157,151,221, 48, 78,138, -200, 43,171,168,201,137,206,114,193,240, 41, 85,116,156,217,183, 58,219,237, 5,108, 38,109,219,228,156,129,195,168,248,108, 40, - 97, 66,173,226,143,206, 2,246, 4,151,204, 13,202,118,158, 56, 38,244,125,143,171,221, 21, 46, 47,174, 48,236, 34, 32,206, 60, -224,117,183, 59,153,178, 93,104, 20, 4, 22, 41,191,232,247, 59,238,147,234,220, 94, 95,174,190,113,161, 17,108, 55,132, 77,211, -160,109, 9,109,147,138,216,111,220,219, 86,209, 25, 85,171, 94, 0,212,204,165, 87, 21,126, 6,117, 34, 7, 22,210,249,125, 18, - 0, 65,211,222,136, 32, 66,232, 92, 0,249, 14,187,168,221,187, 68, 32,241,128,253,254, 10, 49,154,113, 14, 39, 36, 86,153, 13, -145,142, 9,154,174, 69,119,122, 11, 39,183,159, 65,219,109, 64, 33,128,156, 87,167,182,188,138,200,227,123,253,120,183,199,139, -247, 31,225, 27,119, 94,199,163,243, 71, 58, 91,206,145,144, 50, 42,118,116, 23,125, 12, 14, 97,235, 48,185,158,139,151,224,151, - 67,211, 82,145,195,110,173,208,250, 22,110,195,204,184, 34,143,243,238, 54,232,236,195,216,108,182,112,253, 14,232, 19,158, 60, -184,143,253,213, 14,254,173,183,241, 51,123,224,249,196,232,132, 16,227, 14,156,246, 38,140,210, 77, 14, 78,177, 0,151, 67,182, -128, 37, 52, 65,181, 29, 78, 88,147,216, 96, 94, 3,101, 46,138,145, 70,205,149,111, 98,200,230, 4,114,114, 91,199, 44, 49, 90, -206,129,140, 52,186, 11, 8,219, 19,156,124,254, 71, 33,247,222,192,131,187, 47, 35,249,205,152, 15, 47, 2,194,184, 81, 82, 85, -209, 5,104, 70, 31,125, 89,160,237,233,251, 56,151,166, 10,252, 73,103,110,215, 88, 29,200, 66, 19, 64,175, 18,247, 76,244,118, - 64,208,103,107,225,178,154, 54,181,246,205,244, 57,234, 52,180, 12,202, 50, 78,186,139,104,237,128,106,175, 59,109,169,196,154, -149, 41,204, 60,170, 87,166,224,150,175,211,165,244, 51,200, 53,171, 98, 11, 0, 73, 18,225,134,115,112,234, 17,169, 67, 34,143, -129, 8,201,152,155, 46,237,225,120, 15, 33, 70, 2, 89,240,204,232,213, 48,159,133,231,110,220,209,232, 56,151,133,110, 37, 18, -250, 41,230,233, 50,159,136,204,104,249, 86, 18,182,220,151, 98,136,222, 3, 96,255,211,138,234,194, 95, 2, 58, 38,213,119,151, - 65,221, 19, 26, 87, 95, 36, 35, 93, 74, 68,229,138, 83,218, 50, 33, 13,169,116,172,249, 7, 65,249,230,112, 21, 96,205,172, 34, -157, 3,130,207,187,223,202,165, 11, 43,152,139, 29, 14,222,132, 51,142,198,136,200, 44,144,209, 85, 54,203, 26, 55,110, 94,152, -213,232, 69, 0, 9, 6,210,230, 68,149,146, 26,196,196, 24,177,187,218,225,226,242, 10, 87,151,123, 12,131,210,174,142,181,152, - 16,135,146,169,156,247,106,169,186,177,152,149, 62,203,149,101,102, 21,132, 0,105, 28,154,109,131,205, 6, 56,233, 8,219,214, - 33,120,101, 60,124, 80,240,215,202,153,117, 67, 32, 83,105, 52, 50, 23,204, 58, 26, 72, 49, 34,197,132,104,251,181, 2, 21,250, -145, 56, 48,108,230,206, 2, 52,130,134,128, 52, 48,144,116, 95,223,231,144,137, 56,128,135, 44,226,139,229,176,243,142,208,116, - 29,182,167,183,112,122,235, 25,116,219, 83,139,210, 85,127, 0, 34, 42, 78,121,100,155, 14,143,246, 3,190,254,198,219,248,198, -221, 59,120,124,126,174,238,116, 70,158,160, 18,235,200,124, 22,107,224,156,131,122,132, 48,181,144,179,104, 94,153,116,131, 85, - 10, 89,165, 62,102, 17,141,154,229,132, 75, 10,120,114,242, 33,248,219, 31,195,173,147, 83, 80, 26, 48,164, 8,230,132,139,171, - 75,236, 83,196,237,152,176, 77,170,207, 24, 56,129,227,110, 60, 40, 72,204,144, 36, 21,151,179,145,118, 15,104,124,139, 0,129, - 99,181, 22,246,137,224, 2,224,133,204, 60,104, 20,210,145,137,185, 68, 24,174,219,192,119, 91, 45, 38,235,241, 45,170,228,177, -166, 69,120,238,195,160,203,115,184,108,167,204, 17, 4,182, 85,166, 49,124,196,149,249, 57, 29,204,185,105, 22, 65, 75, 43,211, -112, 89,140,105,169, 28,236,102, 59,226,117,114,154,222,175,110, 10,222,240, 99,144, 83,222,220,112,174,248,191,203, 68, 37,206, - 35,184,214,221,183, 76,215,198,230,194, 53, 46, 98, 56, 46,160, 62,130, 55, 79,228,147,245,124,190, 20, 11, 50,231, 12,166,226, -190, 90,167, 33, 11, 93, 57, 48, 29, 39, 45,169,203,151,148,228, 53,183,225,192, 8,188, 3,161,135,203, 14,137,182, 49,148,159, - 51,218, 61,225,103,251,105,140,229,128,162, 84,125, 94,166,226,189,117,227, 52,181,116, 88, 97, 17,112,244,123,205,175,223,179, - 96, 19,213, 67, 63,146,251,115,129, 99,127, 41,148,171,142, 80, 71,192,214, 4,114,157, 3, 90,170,102, 53, 37,206,113,116,161, - 78, 80,171,196,200,108,243, 33,148,185, 55,100,170,161,173, 69, 60, 57,203,195,251,209,136,134, 72,144,146, 2,157,179, 44,118, - 4,152,185,140,210,157,222, 14,247,196,227,235,241,228,138,160,214,144, 24,227, 4, 93, 32,108,106,119, 34, 11,122, 99,240,160, - 93,250,110,183,195,213,213, 14,253, 62, 22,177, 29, 4,133, 13,112,236, 71, 65,146,181,141,204,170, 88,101, 65, 9, 75, 17, 34, -144,183,209, 66,227,208,156, 52,184,117,210,162,245, 9, 68, 67,117,184,228, 53, 58, 41,157,142,115, 57, 80, 70,215,120, 40,179, - 12,137,145,226,160, 89,232,156,144,162, 1,171, 83,218, 29, 68, 72, 41, 33, 14,189, 22, 84, 67,143,180,223, 35, 13,123, 16, 71, -160,105,225,124, 82,170,121,127,133,216, 15, 72,251, 65, 85,252, 80,251,246,102,219,226,228,246, 25, 78, 78,159, 65,211,117, 37, - 26,211, 57, 7,113, 78,127, 54,102,149,234,156,195,227,200,248,218, 91,247,241,141,187,119,241,248,201, 19, 61,152,104,188,145, -178,173,103, 6, 45, 33,154,186,100,213,115, 73,177,194,137,198, 4, 46,150,209,238,180,118, 45,172,133, 76, 37, 72,131, 25,123, - 56, 92,158,124, 24,221,115, 31,199,201,246, 4,142, 89,205,119,162, 94,151, 50,244,170,106,207, 30, 9, 16,164,212,131,211,190, -204,160,203,140,219,138,182,210,119,218,158,177,183,130,206, 65,180, 83,119, 4,207,249,231,134, 50, 54,162, 90,160, 38, 0,185, - 6, 77,183, 5,250, 30,113,232,171,110, 84,199, 5, 78, 69, 25, 24,222,120, 3, 87,223,251, 46,134,221, 5, 68,122,136, 68, 99, - 1,138,122,165,192,172,228, 6, 66,106, 98, 92,102, 90,117, 57, 32,202, 15, 38,227,180, 48,105,151,153, 36,175, 8,235,188, 10, - 36,139,141,178,249, 61,152,253, 97,222, 42,161,236, 23, 65,222,178,211,105, 4, 95, 78,197, 3, 2,166,233,160,106,116, 80,175, -163, 77, 49,151, 43, 65,110,233,211, 39,153,230,147,153,183,240,120,189, 9,102, 67,137,105,199,119,104,247,115,179,117,176, 37, - 42,126, 14,154,188,240, 28, 4,245, 60, 32,104,102, 69, 86,178,179,205,215,157,173,166, 77,158,143,150, 31,191,126,158, 44,158, -203, 68, 90,238,244,167,185, 28,203,223,199, 98,199, 62,123, 14, 7,198,134,123, 52,146, 48,144,255,190, 76,104,222,235,121,123, -248,211, 62,217, 95, 8, 56, 39, 61, 80,131,117,233, 39,158,176,241,106,119, 89,142,150,162,176,181,221,115, 85,154,105,252, 40, -103, 85,250, 24,132,162, 55,191,140,222,197,115,199,132,234, 0,100, 86, 91, 84,118,128, 99, 2, 19, 35, 4,149, 34, 57, 71,240, -193,233,108,157,217,226, 77, 97,194, 50, 7,182,244, 21,231, 28,196, 87,170,224,252, 20, 44,229,115,200,102,225, 41, 13, 24,250, - 1,251, 93,143, 97,167,163, 3,113, 42,216, 35,210, 21, 53, 16, 77, 44, 97,203,126,116,237, 46, 85,223,192,228,128, 64,240,155, -128,147,147,128, 77,231, 64,105,143, 33,246,144, 68,136, 89, 12, 40, 13,124,227,225, 61, 20, 52,200,230,140, 73,192,126,140,198, - 20,139,117,140, 57, 13, 46,217,102, 76, 82, 96,138, 67, 68, 31, 35, 50,106,197, 61, 35,138, 0,166,164,141,142,176, 39,175,206, - 93,220,131,163, 50, 41,186, 78, 7,116,219, 14,103,183,110,227,244,244, 54,186,173,170,115,213, 22,213, 23,166,160, 28,146,228, -240,112, 31,241,194,253,135,120,225,206,107,120,114,241,100,218,139, 83,117,192, 57,154,245,127,153, 41,169,233,226,209,179,221, -158, 85, 15,167,234,168, 38,153, 1,186, 76, 85,208, 12,224,170, 57, 5, 61,243, 60, 78, 79, 78,225,132, 49,196, 1, 41,246, 70, - 81, 50, 82, 18,176,244,230,171, 96, 33, 66,241, 18,224, 97,118,162, 73,158,246, 22, 33,147, 58,194, 57,120,140,180,187, 35,213, -126,168,135,187, 81,240,246,243,171, 45, 81,153, 28,210,160,174,116,193, 82,174,196,116, 16, 40,118,163,132,203,199,143,176,255, -234,191,198,195, 59,223, 67,236,119,240,230, 11, 63,207, 79, 99,203, 63,119,121,180,149,119,134,101,186,232, 70, 21,133,190,232, - 11, 55,241,100,159,148,220, 83, 51,246, 2,252,186,202, 72, 6,214, 46,167,171, 57,210,124,116,231,173, 51,207,235,154, 14,228, - 2, 40,216,246, 2,231,235,152,213, 51, 33,153,123, 36,177,153,197,100,241,101,170, 10,190,233, 28, 28, 50, 83,178,163,138, 72, -205, 35,157,138, 6,159,119,229, 82,117,228,107,192, 53, 7,227,226,173, 48,115,106, 91, 3,120, 57, 2,140,117,247, 59,255,229, -104, 74,181,163, 2,120,198,212,139,157,151,192,217,230,233, 51, 66,172,168,217,167,197,199,116, 85, 78,100, 57,217,237,240,245, -171, 88,174,225, 52, 53,250,123, 31, 3,123,248,160, 2,249,193,247, 67,218,153,223, 10, 26,220,210, 90, 8, 10,217, 12,220, 57, -179, 77, 16, 21,171, 57, 18,136, 19, 16, 69,165,147, 19,143, 7,135,221,224,206,148,226,176,195,222, 57,103, 34, 25,187, 29,133, - 70, 21, 61,160,206,107,206,193,123,103, 73, 97, 10, 64,234,169, 78,136, 70,225,233,235,202,119,132,183,185,251, 88,137, 59,171, - 96,139, 16,135,156,178,172,204,136, 49, 98, 24, 6,244,125,143,253, 94,179,151,243, 28,181,248,158,167,222, 2, 52,198,117,139, -146,209, 38, 89,241,159, 63, 94,173,137, 56,192,181,128,107, 52,182, 52,246, 61,210,208, 35,129, 48, 80,128, 15, 30,173,180, 96, -219, 73,109,189,190, 21, 49,170,248,201,179, 64, 28,116,126,110, 7, 89, 76, 17,195, 16, 65,190,129,144,199,208,239,209,239,175, - 16,227, 0, 36,129,135,131, 19, 7, 73, 74,213, 19,235,238, 60,131,145, 88, 93,205,242, 93,204,208,128,156,174,235,112,118,118, - 27,167,183,110,161,219,108, 16, 66, 80, 1, 26,105, 11, 79, 62,152,139,149,218,216, 62,218,245,248,214,219, 15,241,194,157, 59, -120,244,248,129,185,114,213,244, 98, 6,134,241, 96,162,138,210,100, 83,139,151, 29,252,210,101,228,253, 97, 46, 37, 64,130, 76, - 14,166,186,129, 43,234,103, 2, 6, 33,196,238, 20,237,230, 68,205, 56,108,164,194, 34, 35, 75, 96,161, 59,197,180, 39,245,128, -253,108,107,141,112, 14, 75,201,215,148, 35,179, 28, 6,195,177,211,132, 53, 71,112,226,198,181,181,108,217,155,215,223, 38,135, -103, 66,188, 58, 71,122,112, 15, 97,123, 6,103,179,127,182,110, 85, 0,160,223,163,127,235, 13,112,220,227,234,226, 28,136, 59, - 16,167, 3,253, 64,157,123, 86,146,234,178,162,155,104,165,239,170,228,230,214,243,103, 11,222,233,180,188, 74,231,206, 35, 1, - 43, 94, 36, 59, 69,122,181, 97,134, 15,112, 46,152, 73,148,254,123, 49, 76, 50,113,168,243, 30,228, 61,130,179,152, 63,211,166, - 8, 39,164,196,160,161, 7, 13, 78,129, 61,165, 98,250, 52, 81,147,203, 88,200,149,200, 83,140,150,173, 44, 83,160,154, 10,202, - 70,111,187, 67,122,255,120,208,201,124, 62,190, 58, 63,199,212,162, 88,142,168, 19,150,196,103,115,128,118,179,181, 61,111, 5, -133,207,192,155, 87,215,102, 95,199,179,249, 74,142,103,229,153,104, 78,106,129,225,140, 57, 56,102, 86, 83,191,230,150, 35, 58, -142,149,175,134,252,153, 98,213,117,207, 31, 62,168,128, 62, 17, 34,216,193,188,241,234,247,190,113, 78,109, 88,157, 82,218,228, -116,231,212,213,182,143,142, 16, 66, 11,238,128, 4, 7,161, 61, 98,159,180, 35, 54, 58,154,242,129,194,122,245,146,169,238,116, -151, 93,133,110, 12, 93,233, 82,234, 78, 52,213, 51, 0,193, 9,188, 36, 72,114, 72,182,223,236,141,242,244,213, 80,190, 76,197, - 40, 59, 43, 85, 90, 89, 83,193,147,205,199,243,174,247, 96, 38, 51, 49, 42,149, 77,185, 19,162,209, 86,214,219, 44,223, 19,217, -254,167, 57, 75,145,189,238, 36,197, 32,165,168,105,179,154,155, 35,134, 20, 49,236,123,240,144,180,171, 11, 64,235, 29, 34, 11, - 40, 9,196, 91,198,115,210,174,133,152,236,189,214, 84,183,172,132, 31, 98,196,144, 24,141,119,154,219, 62,236, 33, 49,217, 80, - 63, 65,200,155,221,165,114,251, 28,185, 8,171, 82, 5,130,100,158,238,221,102,131, 91,183,207,112,122,235, 54,186,174, 83,115, -153,166,177, 13, 1,117, 98, 43,142,124, 0,158,236, 7,188,112,239,109,124,243,238,235,120,244,228,209, 68,224, 84, 14,166,220, - 91,150,237, 3, 87,124,137, 24,100,249,207, 85,151, 85,118,138,201,216, 3, 77,250,226,106,101,114,114,112,209, 24,156,161, 26, - 43, 93,144,100,215, 2, 2,101, 50, 44,250, 54, 27, 10,229, 67,191, 0, 3, 51,144,246, 0,175,199, 83,100,218,219, 17,149,125, -115, 15,174,102,231, 82,177, 64,202,144, 72, 22, 86,102,247, 64, 54,218,184,191, 66,188,127, 23,233,180, 87, 70,198, 82, 9, 89, - 42,143, 3,214,241,137,244,231, 8,233,170,200,184,104,141,106,157, 80,240, 35,136,209,194,252, 28, 84,125,140,220,228, 39,165, -218, 19,169,203, 49, 3,118, 53, 32, 26, 61,248,173,243,118, 14,206,105,236,177, 11, 1, 46, 3,189,115, 38,102, 53, 29,134,218, - 17, 42,184,187,124, 45,171,127, 5, 25, 40,228,215,192, 50,128,101, 24,183, 84,170,216,211, 98, 50,131, 58, 76, 69,102,162, 58, -153, 1,110, 53,182,145,229, 78,124, 13,192, 88, 86,254,253, 8, 21, 79,114,125,183,238, 80,169,212, 43, 70,203,205,212,243,110, - 70,185,251, 57,152,175, 56, 8,207, 51,211, 35, 1, 97,150,128, 39, 11, 44,197,129,156, 82,214, 37,147, 34, 64,224,132,192, 35, - 59, 50,199,193,247, 26,228,175, 3,247,240, 65, 4,244,165, 95,158,128,173, 55, 91,216,134, 52, 98, 53, 11,152, 96,142,108,198, - 68, 75, 50, 58,219, 17, 66, 19,244,104, 33, 7,231,116,167, 90, 18,131,204, 30, 83, 92, 0,217,176, 40, 83,186,156,210,120, 20, - 57,216,227, 64, 87,191, 26,130,247,218,231, 37, 78,136,123,129,243,130,174,211, 25,167,179,185,175,210,118, 40, 10, 92,103,115, -223,144,221,228,114,106, 26, 8, 72, 22,165,154, 34,210,208,163,239,123,164,168,199,164, 43, 7, 41,169,122,153, 35,192, 12,223, - 52, 38,208, 51,192,202,234, 95, 84,244,248,164, 10,182,227,134, 19,210, 62,169,106,125, 23, 1,150, 18,242, 33,129,192, 94, 12, -180,173, 27, 78, 10,220,106, 3,219, 0,158,236,181,155,147,156,249,144, 59,114,136,113,175,143,231,252, 24, 31,105,239,101,240, - 30, 72, 9,131,168,208,138, 42,249,144, 35,192, 7,143,110,187,193,217,217, 51, 56,189,125, 27,109,179, 81,235, 87,175, 20, 43, -171, 30, 23, 32, 66, 63, 12,224, 65,240, 36, 37,124,243,237,251,248,230,157,215,240,232,252,177,189, 15,184,118, 95,149,100, 76, -156,208, 25,168,183, 93,101, 49,211,141, 49, 39, 94,104, 92, 97,225, 3,197,239, 56,123,173, 77, 52,114, 17,149,120,192, 16,247, -240,172,212,174,118,195, 82,220, 2, 11,149, 43, 2,164, 65,187,225, 74,240, 56, 97,205, 51,235,224,200,104,247,218,163,155,225, -133, 16, 72, 11,150,113,154, 77,144,164, 76,145, 84, 32,148,153, 29,218, 61,129,196,136,139,176, 1,121, 77, 23,204, 35, 29, 77, -247,235, 33,241, 18, 13,239, 70,165,251,210,209, 45,243,144,155,154,115,173,103,234, 50, 9, 8, 26, 11,223,209,135,125,180,100, - 29, 23,247, 80,197,224, 82, 9,221,113,118, 79,103,144,110,116, 77,179,105, 20,212,141,122, 47, 91, 31,214,157,147,203,162, 81, - 85,217,138, 5, 44, 33,194, 58,115, 1,139, 90, 27, 19, 59,128,146,173,150,141, 40,201,118,119,213,234,246,233, 10,214, 10,160, -203,148, 38, 95, 2,232, 57,120,243, 13,196,100,192,186,218,125,105,118,158,159,111,113,126,189,146, 79,239,170,226,141, 8, 54, -226,169, 71, 84,135,183,158,204,152,131,188,238,134, 2,236,203, 99, 7,198,245,182,177, 19,108, 16, 65,195,105,117,158,254, 94, -217,191,222,148,146, 15, 31, 68, 64, 95,250,126, 26, 2, 78, 3,176,245, 74,195, 79,168,185, 28, 65, 73, 78,233, 50,201,123,235, -250, 89,193, 7, 32, 56,187,217,157,118,168, 73,111, 74, 50, 51,150,156,100,198, 60,122,111, 58, 3,115, 31,200,242,207,181, 27, -226, 36, 38, 72,179,217,179,117,238, 89,137,159,106, 69,177,183, 67,196,107, 39,175,102, 55, 82,128, 77,111,176,168, 93, 85, 74, -224, 56,168,187, 29, 44, 7, 58,103, 20, 58, 1, 49,131,146,237, 34,155, 17, 14, 65, 89, 2, 71,182,174,198,140, 74,105, 48,222, - 16,150,108, 36,145, 49,244, 9,210, 15,186,226, 7, 64,188,131, 19, 42, 33, 16,165, 81, 98,168,215,252,126,175,157,104,147,128, -182, 65, 32, 5, 69, 93,217, 82,163, 18,134,131,133, 73, 21,225,158,198, 87, 58, 52, 93, 11, 79, 30, 28, 53,150,132, 74, 40,135, - 50, 32,109,215,162, 59,221, 96,123,114,138,205,201, 45,116,221, 22, 93,187, 81, 17, 69,185,115, 3,144, 4,194, 90,188,220,239, -175,240,141,123,111,225,165,123,111,224,226,252,194,108,108,177,152,211,125, 0, 67,181,245, 43,170,120, 85,170, 14,101,235,168, +232,228,172,216, 59,222,199,201,182,147, 63,253, 44, 33,111, 61, 4,112,242,214,159,128,242,186, 38,249,227, 16,248,103,115, 35, +137,240,236,114, 80, 68,124,115,120,175,170,241,113,158,200, 57,175,235,142, 90, 11,209, 71,186, 16, 52,118,148,102, 83,163,162, +188,239,170, 93, 90,156, 51, 47, 82,229, 15,103,248,182, 4,190,221, 71,246, 49,240, 79,231,202, 31,151,194,148,149, 22,167, 17, +171,122,125,168,192,179,177,217,108, 24,186,158,253, 97, 79,158, 50,185, 37, 27,143,107,240,201,195,187, 61,227, 97,102,247,238, +129,205,118,160,219,116,248,232,149,235, 47, 90,236,240,142,237,246,130,214, 26,199,227,200,113, 60, 18, 68, 93, 27,165, 85,198, +116, 52,219,229,210, 33,219, 74, 11,214, 67,201, 10,234,105,109,253,120,244, 78, 3,112,226, 86,179,225,187, 13,165,161,137,103, + 89,175,137, 74, 35,151,153,113, 62,226,188,163,235, 58, 19,157,234, 79,169,139, 29, 94, 52,134,182, 84,125, 29,150, 90, 24,231, +137, 82, 42,185,204, 42, 4, 76,194,221,221, 61,243, 60,171, 7,221,232,120, 94, 60,157, 31,168, 85,200,213,243,148,202,239, 51, +241,135, 45,115,233,139, 93, 13,205,180, 27,178,174,120,188,185, 10, 28, 39, 64,140,172, 31, 23,155,232,157,112,184, 78, 78, 83, +158,147,240,213,174,195, 38,143, 14,159,167, 3,169, 98,100,155, 19,104,149,139,241,192,147, 79, 70,110,239,239,248,225,205, 83, +126,118,125,195,253,225,154, 57, 23, 46,183,157,194,175, 74, 85,158, 92,173,164, 24, 72,223,251, 14,238,245, 91,134,143, 63,166, +213,137, 34,158,167, 69, 56, 74,224,173,235, 62, 56,134,151,179,144,156, 95,117, 95,254,117,254,255,251,135,128, 47, 83,113,255, +218,166,180,125,213, 11,250, 98, 87,187,142,240,124,112,188,188, 8, 60, 29, 2, 55, 81,119,231,131, 84, 34,170,226,205, 75,152, +136,165,170, 45, 30,244, 37, 26,173,180,147,108, 69,139,153, 21,208,148, 40, 73,217,215, 53,232,241, 92,130, 16, 45,244,193, 16, +111, 42,147, 49,229,173, 55,148,167, 22, 39, 27,185,153,154,124,233, 44, 86,254,181,180, 85, 12,231, 13,139,233,129, 46,234, 72, + 52, 56, 83,139,103,200,165,145, 82, 97,154, 38,142,251, 35,251,227,200, 56, 38,166,185,146,139,222, 54,186, 94, 65, 21,219,206, +179, 9,142,232, 28,193, 9,158,182,118, 86,142,165,160, 27,240,165,157, 70,237,149,211, 10, 34,149,106,254,224,124, 98,121,123, + 71,239, 22,242, 89, 32,120,107, 90,205,118, 46, 81,140,108,231, 20,251,121, 60, 80,211,136, 15,158, 48, 12,244,253,134,161,223, +208, 57, 37,133,149, 82,201,199,137, 92,143,148,218, 20,216, 35,129,214, 20, 21, 90,115,101,218, 31, 73,247,119,144,231,179, 8, +213,246, 40,227,252,139, 38,239,188, 39, 72,106, 60,230,192, 63,230,195,203, 7,179,214,229, 17, 29,158, 19, 38, 87,244,192,245, + 16, 60,255, 91,133,159,164,194,246, 50,226, 99,176, 48,159, 66, 46,149, 41,169,122,123,237, 48, 45, 65, 79, 19,222,150,204,115, +197, 8, 87, 42,115, 46,144, 10,223, 28,103,254,243, 10,127,215, 71, 94, 94, 94,209,123, 79,115,112,108,112, 27, 59,254,175,185, +242,207,239,118,220, 79,153, 73, 26,185,105, 6, 64,171, 85, 45,138, 14, 98, 23,216,178,229,242,242,146,221,110, 71,173, 85, 45, +135, 70, 41, 28,186,129, 86,224,213, 47,223,160,121, 53, 66,191,237,184,189,125,194,230,106,131,111,158,205,208,209, 15, 61,249, +114,102,127,220,179,223,239,153,166,137, 0,204, 37, 89, 68, 47,196,208, 17, 91,199,148, 14,118,240,243, 70,169,211,131,101,140, +145,237,230,130, 62,104,210,220,237,237, 45, 77, 28,135,113, 34,205, 69, 59,235,105, 52, 14,189, 46,188,155, 77, 82,116,220,174, + 86, 81, 29,221,171, 48,110, 74,137,195,184, 87, 0,146,209,235,138, 49, 33,180,160,195,195,187, 29,135,195,168, 10,117,223,148, +153,208,132,216, 69, 61,136,142, 7,126, 55, 58,254,139,216,248,157, 77, 97, 67,177,195,218, 41, 90,215,211, 30,253, 89,115,103, +218,218,185, 59,227, 72,172,239,109, 50,177,178,244,219,227,107,178,201,114,253,158,242,233,229, 17, 27,193, 38, 42, 54,185,170, + 14,250, 90,184,186,127,199,179,195,158,127,115,127,199, 79,199,231,252,100,154,185,189,189,224,114,136, 12,157,234, 50,166, 82, +168, 5,210,118, 75,254,254,247,185, 62, 30,184,188,187, 51,187,104,224, 89,153,152,188,103,231, 61,252, 7,244,175,127,209, 33, +224,203, 80,224,195,215,189,160,127,213,108,106,203,237,181, 23,184,137,194, 71, 27,225,197, 70,247,231,183,189,227,194, 11,189, + 84, 92,173, 22,184,178,164,170, 89, 49, 55,136,140,166,166, 45, 76,107, 85,123,203, 98,169,106, 40,116, 34,101,131,185,160, 55, +234,172,251, 96,231,133,224,189,134,165, 4,237, 42,157, 5, 97, 44,251,115, 81,111, 15,136, 9,200, 76, 48,135, 44, 17,165, 39, +129,121,240,178, 22,118, 47, 16,163, 38, 55,233,104,209, 58,230, 92,152,166,196,241, 56,177, 59, 78, 28, 14,137,185, 0, 46,154, + 21, 78,216, 12,145,203,161, 99, 27,188,146,167,188, 91,247,126, 75, 72,140, 44, 98,175,214, 78, 44,240,214,236, 48,211,172,195, +206,164,156, 72,217,198,226,126, 25,151, 59,134,161,231, 98, 51,208,119, 30,164,145, 75,195,185, 70, 8, 11,193,203, 51,166,137, +113, 60, 80,242, 72,215, 7,134,237,134,110,232, 25, 98, 71,231, 59,188,117,225,165,102, 82,214, 36, 48,221,117,134, 21,162,163, + 84,186,194,124,247, 64, 27,247, 26,211,122, 54,174,124,191,152,127,232,207, 95,244,241,181,168,203,231, 99, 87,229, 3,120,247, +181,236,203, 18, 46,162,106,110, 39,158,127,237, 35,255,207,152,144, 62,176,189,220, 0,246, 28,150, 68,177,136,211,193, 10,122, +202, 75,110,188,167,180, 76, 74,163, 21, 90,133,210,204, 41,177, 57,140,252,253,220,248,175, 99,207,239,198, 72,116,142, 89, 96, +106, 48, 54, 72,192, 55,183, 29,255, 77,223,120, 41,240,179, 49,241,174, 85,126,114, 24,249,229,156, 72,165, 18, 45,249,108,158, +103, 66,140, 92,108, 55,140,211,200, 97,127,208,188,245,166,144, 36,231,173,107,245, 78,247,242, 99, 34,205,133,150,132,195,221, +142, 38,194,245,205, 21, 55,215, 87,248,232,184,185,126,202,213,197, 21,119,247,119,186, 94, 41,133,221,225,129,224, 35,125,232, +153,115, 34,206, 81,121, 10, 65,177,197, 57, 39,156, 19,158, 61,121,206,205,245, 45,181, 20,222,222,223, 81, 17, 82,169,188,190, +123,103, 92,248,100, 34, 56, 97, 27, 54,234,198,104, 11, 93, 81, 87, 31,181, 90, 65,168,149,113, 26, 25,231,153, 92, 45, 84,166, +169,255,221,137,103,158, 39,242,212, 56, 30, 39, 14,135,227,218, 17, 55, 19,177,214, 6,129,204,179, 54,241, 7,146,249,207,162, +227,219, 81,232,237,186, 10,162,157,247,146,123,239,109,213, 38,107,151,190,184, 0, 20, 70,164,226,202,101, 10, 36,143, 52, 30, + 11, 56,170,158, 93,119,237,189,195, 98,123, 79,222,185,120, 43, 22,184, 46, 6,140,106,174,241,178, 76,220, 60,188,226, 27,105, +228, 79, 15, 7, 94, 63,127,202,238,201, 21, 47,110,183, 92,108,122,251, 12, 66,244,194,244,236, 9,135,239,127,143,167, 63,252, + 33, 55,251,137, 22,132, 34,149,177, 76,204, 50,144,156,255,210,220,231,191,146,152,216, 47, 91, 65,253, 42,142,218,151, 31,251, + 96,116,184, 23,131,240,124,163,197,252, 42,192,165,175,116, 34, 80,171,225, 74, 23, 10, 92, 53,241, 91, 53,133,177, 82,224, 20, +166, 18,180,192, 26, 39,187,137,168, 90, 92,212,102,182, 10,219,171,101,143, 23,235,112,131,118, 11,161, 25,202,212, 94,204,206, + 9, 46, 56, 19,131,197,179,194,110,170,242,101, 39,108,106,247,224,197,188,181,218,253, 71,239,214, 24,198,214,156, 37,112,233, +180, 97, 78, 73,247,232, 83, 34, 87,193, 5,141, 68,237,163,167,247, 66, 31, 61,219,168, 25,205,235,238,124, 25,125,154,237,110, + 21, 5, 54,237,200,197,138,251,242,249,231,156,200,150,174, 86,106, 69,124,164,219, 92, 48,116, 61, 67, 15,219, 62, 50, 12, 29, +193,139,118,215,173, 80, 93, 89, 69,126, 57,207,204,227,129, 90,103,250, 77, 79,127,177,161,239, 7, 66, 80,159,182, 23,143,148, +166,226,167, 84,152,199, 35, 37, 39,130,103,141,115, 21, 20, 0, 52,238, 14,204,247,239,144, 60,159,217,214, 30, 43,136,207,117, + 21,242,129,130,190,172,104,144,207,227, 99,229, 3, 29,251, 35, 29, 92,107, 6,154,225,108,134,111,110, 5,132,123,239,248,231, + 85,248, 12,199,205,237, 53,155, 77,199, 52, 77,148,170,207,163,136, 99,211,117,132,208, 81, 74, 94, 17,171,181, 21,198,249, 64, +169, 51, 49, 12, 36, 26,105,154,248,214,126,226, 31, 54,199,127, 57,244, 60,137,129, 4, 60,180, 70,106, 48, 55, 71, 66,179,217, +231,166, 46,143, 63,184, 28,248,238,118, 96,215, 26, 63, 25, 34,255,234,254,192,143,246, 71,246,173,105,199,207,172,193, 58, 89, +209,168, 33, 6,203, 52,215,248,207,201, 70,213,106,129, 60, 37,181,205,211,204,120, 60,146, 75,101,191,219,243,246,141, 22,222, +237,197, 5, 87,215, 91,252,224,184,136, 42,250,220,143, 7,186,110, 96, 51,108,232,107,229,138,107,106,205, 58,157, 9,158,227, +113,143, 19,199,176,185,160,180,198,110, 26,121,183,123, 96,255,230,104,154,137,197,195, 31, 76,140,199,250, 60, 5, 31,104, 85, + 44,245, 80, 75, 97, 89, 5,155,154,152, 22,188,138, 61, 91, 85, 71,200, 56, 30,217,223,239,201, 83,181,201,148, 83,234, 93, 51, +140,111,131, 75,105,252,126, 77,252,253, 1,126, 55, 58,174,189,208, 57, 8,210,214,164, 63,111,194, 90, 39,168, 80,117,141,108, +104, 43,187, 0,147, 14,158,231,251, 74,123, 60, 73,106, 31,152, 36,105,224, 15,167,101,145, 89,227, 90,147,179,114,126,178,103, + 46,135,128, 5,108,179,109,149,223, 59,220,241, 98, 58,242,111,198, 61, 63, 78,223,228, 83,113, 60, 23,199,229,160,174,151, 24, +149, 17, 49,255,214, 55, 25, 91,230,226,227,207,184, 46, 29,101,106, 76, 37,115,168,153, 55,242,229, 17,205,253,170,253,253, 87, +162,168,127,149,132,104, 95,150,175,189,188, 56,182, 14,158,117,240,209,198,241,108, 16,110, 58,225, 42,194,214, 87, 98,107, 86, +124,179,217,205,138, 17,205, 84,229,174, 41, 97,234, 65, 87,181,171, 90,133,196,137,238,186, 89, 48,177,224, 74,192, 71, 19, 71, +157,141, 93,133, 0,162, 94,108,231,227, 26, 17, 89,219, 9,235,234,130, 91,197, 78,222,186,116,145,165,139,215,226,237,157, 88, +241,182,228, 53,209,155, 96, 8, 22,165,138,167,230,165, 0,235,231, 79,185, 49,231, 70,109,158, 56, 4,186,126,203,229,182,103, +219, 69, 58,105, 4, 7,193,185, 85,204,179,214,162,166, 22,162,182,216,244, 90, 93, 99, 36,245,160,162, 5,125,202,137, 92,161, +137,135,224,241, 52, 98,223,115,113,117,201,229,166,167,143,141, 24,156, 90,176,154, 62,175, 98,223, 75, 5, 45,212,101, 2,201, +154, 37,189,233,192,121,114,107,248, 6, 52,111, 8,206, 74, 42,133,105,156, 73,211,168,170,196,224, 52,169,202, 11,222, 53,166, +105,102,188,187,167, 28,119, 4,227,210,203,217,110,243,125,111, 58, 31, 24,183,159, 23,106,222,251,119,252, 26, 93,254,233,134, + 39,171, 43, 0, 88,125,202,127,234, 28,255, 50, 87,220,166,227,242,106,163,207,171,209,253,156,120,245,183, 75,160, 85, 40,181, + 18,172, 35,214,149,142, 6,178,204, 45,195, 88,248,123, 83,229,191, 15, 61,191,223,105,119,126,104, 90,188, 19, 98,239, 57,189, +175,246, 30,168, 14,186, 38,124,119,187,225,166,235,248,222,197,134, 63,121, 56,240,179,227,200, 33, 39,156,243, 12, 85, 93, 24, + 97, 19,245,208, 81,170,250,212, 69,163, 75, 87,169,128,125,203,203,199,124,112,164, 57, 41, 13, 46,120, 94, 31, 94,243,230,245, + 27,124,231,185,184,222,112,243,228, 74,241,174,245,192,126,218,211,133,142,190, 27,152,211, 8, 51,230,152, 72,244,113,195,225, +179, 95,146,178,218, 25, 83,210, 67,134,136,208,197, 72,244, 65, 93, 1,178,140,216,205, 85, 82, 23,216,145, 70,155,210,244,148, +157, 45, 67,192,121, 93,211,140,199,153, 50,103, 82,154, 25, 15, 19,105, 74,180,170, 26,151,220,116,100,223, 33, 60, 9,158,111, + 7,248, 93, 95,249,157, 8,207,131,163,147,147,208,114, 41,220,139, 16,211, 89, 1,112, 77, 71,240,126, 57,184,203, 25, 19, 65, +206,151, 52,159,119, 97, 60, 94, 20,125,168,200,183, 83, 66,224, 90,232,157,125,190,186,106, 92,212,170,215, 12, 67,172, 83,132, +103,101,226, 63,125,247,154,103, 57,241,163, 90,120, 83, 63, 34,223, 94,240,236,166,231, 98,211,225,188, 99, 71, 37,255,206,247, + 72, 79,158,176,249,193, 79,168,135, 35,179, 27, 56,148,153,131,243,140, 95,242,208,151,255, 16,197,253,171,207,215,251,154, 76, + 7, 28,112,225,225,121, 47,124,212, 11, 79, 7, 81,117,123,132,193, 53,124, 83,177,213,154,170, 86, 85,229, 78, 89, 56,232,138, +117,213,216, 79,139,212,116, 90, 72, 98, 31,141,206,166,108,241, 38, 13,241,138, 78, 21,156,178,186, 5,133,180, 4, 79,240, 29, +222,217,158,207,171,146,181, 86, 89,133, 64,106, 73, 83, 5,184, 15,103, 64,153,160, 57,213,170,144,183,221,188,237, 56,157,243, +132,104, 72, 72,179,216,180,118,218, 2, 87, 28,213,121, 90, 23, 25, 98,207,208,247,108,251,158,109,167, 22,151,232, 56,139, 8, +229,228,191,175, 58, 98,144,166,218,129, 69, 24,184,124, 60,215, 74,202,153, 57, 23, 50, 58, 97,208,199,172,221,202,176, 25,184, +184, 24,184,220,116, 4,167, 98, 32,170,250,171,125,112,170,188,150,134, 43, 5,106, 33, 56, 33,244, 29,190, 91, 70,186, 71,106, +245,180,216,240,189,224, 67,196, 85,181, 27, 77,199,145,156,102,243, 5, 45, 96,194,170, 38, 0, 0, 32, 0, 73, 68, 65, 84, 7, + 30,101,163,143,199, 35,243,238, 14,204,194,118, 46, 92,251,156, 8,238,189,174,219,241,168,121,250, 96,193,127,124, 93,114,170, +106,143,238,183,103,129, 45,172,119, 92, 4,120, 16,248,255,112,124, 76,227,242, 66,201,113,199,241, 72,173, 73, 97, 40, 97, 88, +127,174,217,184,228,173, 85,166, 89, 59,212, 24, 2,115,205,248, 49,241, 15,146,227,127,236, 47,120, 25, 61, 9,225, 64, 99,102, + 41,232, 77, 59,244,134,118,236, 64, 66,211,191, 18,250,150,129, 44,194, 16, 35,223, 15,129,231,155,129,159, 31,142,252,224,126, +207,199,243,204, 97, 74,108, 7, 33,136, 2, 90,218, 25, 87, 1, 59,128,104,204,169,238,164, 23, 66,222, 10, 49,178, 39,105,105, +236,164,192,221,171,123,210,156,184,126,118,161,118,182, 92,153,234,164, 24, 91,131,192,232,115,170, 2,182,186,216, 68,169,116, + 49,210, 80, 2,156,152,173,211, 25, 33, 78,163,101,147, 78, 24,150,215,190, 40,127, 77,215, 68,106, 37,109,213, 49, 79,137,227, +225,200,116,212,240,149,186,174,219, 20, 54, 67, 75, 92, 0, 79,163,227,123,222,241,189,222,243, 60,192, 69, 19,122,123,222, 20, +108, 40,171,166,100,121, 11, 40,184,168, 52, 29,199, 87, 75, 93,243, 43,179,128, 51, 22,229, 41,160,233,253,130,142,200, 35, 9, +220,135, 38,143,152, 97,177,241,200, 88,177,204, 1,108,249,112,130,216, 84,235,244, 27, 48,144,249,254,238, 13,207,126,114,224, +207,246, 59,254,252,219,223,209,227,135, 56,186, 24,216,110, 7,242,208,209, 46,182,228, 57,209,241, 49, 55, 15, 19, 99,130, 93, +201,124, 42,142, 34,238, 43, 81,183,254, 90, 49,177,191, 17,194,253,135, 41,232,223, 24,132,103, 27,207,211, 94,184,142,112,233, +117, 20,239, 13, 34,163,113,159,167,209, 92,173, 26, 18,210, 76,249, 94,231, 98,190,116, 21,125, 57, 39, 16, 61,190,139,132,224, +105, 25, 69,172, 22,251,123, 54, 6, 20,113,150,164,165, 20,173, 16,149, 13,141, 23,221,177,163, 41, 86, 75,232,138,142, 30, 45, +255, 92,150, 2,111, 59,115,239,232,156, 16,252, 41, 74,213,187, 64,223,117, 6,155,241, 10,124, 49,155, 29,203,254, 54, 4,250, + 97, 64,124, 36,138, 99,219, 7,134, 46, 18,189, 9,237,206, 11, 93, 19,205, 43,111,202, 60,171,102,189, 91,111, 33,103,209,177, + 57,103, 21,195,137, 83, 1,151, 77, 15, 52, 29,170, 99,123, 49,176,221,110,136,222,169, 0,200, 4,108,206, 58, 8,239, 65,164, + 80,154, 66,114,162,183, 27,100, 74,228, 57,147, 83,162, 21, 33,249,204, 52, 84, 90,215,227,154, 83,236,105, 58,234, 52,197, 45, + 35, 87, 5,242,140,115,102,247,176,163,140, 7, 66,251,252,232,220,125, 65,151,253, 69, 87,216,135, 82,219,206,122,171, 15,132, +173,183, 51, 1,211,122, 39,181, 47,172,160,144, 79, 36,240,175, 27,180,206, 49, 12, 90,184,115,205,120, 47,244,253,134,218, 60, +165, 22,114,201, 43,183,191,228, 74,240,122,203, 78, 25,182,115,227,191, 42,158,127,188,217,114,235, 61, 71, 43,222, 51,194,108, +133,125, 94, 58,116, 43,232,217,222, 23,209,143, 21, 43, 78, 69,132,220,212,129, 48,196,192,111, 95, 95,243,114,179,225,199,187, + 3, 63,220,239,120, 91,171,189, 46, 84, 84,150,115,162, 84, 21,148,117, 93,199,156,147, 30,254, 44,104,168,212,178,126,207,165, +233,107, 71, 68,136, 49,146,171,102, 30,236,222,238,112,206,241,228,249, 13,190,211,143,107,199,171, 65, 53,222,123, 59, 55,168, + 85, 51,250, 94,185,237,214,141,107,102,184, 55,209,170, 18,232, 82,206,107, 23,223, 22, 72,145, 8,219,126, 96, 28, 39,198,227, +200,116,156,152,198, 68,158, 84,204,170,175, 85,251,137,214,134,119,240, 84, 28,223,144,198,183,163,227, 69, 20,174, 28,116,100, + 92,129,217, 9, 21, 33, 84, 93, 99,100, 32, 53, 33, 10,204,173,217,232,221,222, 68,199,241,193, 86, 30,190, 53, 2, 66,176,191, +227, 62,184,250, 89,220, 25,242,168, 72,203,163, 45,186,124,184,196,183, 71, 61,188,134,223, 96, 74,121,121,111,250,102,127,242, +192,237, 56,242,135, 63,255, 17,207,118, 59,126,120,252,109, 62,253,246, 75,174,174,183, 92, 12,129,139, 33,194,118,195,252,251, +191,131,248,200,213, 15,126, 74,126,152, 57,214,137,125, 13,220,249,175, 6,105,238, 87,217,239,254,163, 23,245,191,233,187,243, +127,159, 95, 14,184, 10,240,114,128,151, 91,207,109,231,184, 14,176,245, 42,150,243, 77, 11,249, 50, 86,174,173,106, 97,206,133, + 86,117, 55,219,146,114,218,235,172,132, 56,189,130, 43, 45,234,141,165,121, 21,154, 45,157, 68, 45,179, 38, 76, 33,224,212,154, + 22,187,168,249,211, 93, 92, 71,230,171,170,221,105,216,199, 66,142,243,107,183,110, 36, 57,235,212,197, 9,209, 59,235,208, 23, +162,148,162, 57,125,244,150, 31, 45, 70,220,178, 70,209,169, 87,125,211, 45, 55,219, 70,239, 28,125,116,235,161, 65, 76,109,107, + 96, 42,221,209,133,160,160,154, 92, 52, 21,237,172,136, 57,113, 20,167,241,168,169,169,117, 38,248, 72,236, 58,141, 93,141,158, +161,239,216,108, 7,250,161,167,235, 59, 85,106,231,178, 10, 7,151, 81, 99,179, 21, 71,171,133,106, 1, 26, 37,205,164,146, 40, +179,198,174, 74,109,100,105,164, 22,136, 40, 61,174,228,170,186,134,245,144, 97, 7,142,214, 56, 30,142,228,135, 29,146,203,169, + 59,228, 3,202,245, 47,216, 89,242, 5, 93,250, 89,255,244,129,126, 73,206, 62,217, 89, 80,203,250, 9,154,117,181,141, 25,225, + 95, 53,199, 79, 68,184,185,190, 96, 51,116, 28,231,153, 92, 10,206,119,116,161,163,138, 48, 77,133, 96,215, 66,173, 25, 15,108, +250, 13,135, 49, 17,167,153,127, 84, 60,255,221,102,203,214, 57,246,173,233,190,220,222, 38,235,210,151, 2,191,116,228, 75, 7, + 95,150, 78,146,166,239, 45, 38,189,172,199,142,198, 16, 2,127,251,201, 53,223,188,216,240,163,227,196,143,119, 59, 18, 16, 55, + 3,243,172, 43,128, 97,123,161,223,158,114,113,116, 29, 99,162,179, 21,109,186,136, 23,107,101,154,167, 83,247, 92, 27, 15,111, +118,108,135, 13, 79, 95,220,144, 74, 90,109,154, 75, 97,118,238,196, 64,208, 9,128, 51,193,166, 55,136,209, 66,212,195,220, 0, +205,168,117, 66,169,149, 92, 50, 41,193,116,200,220,189,189, 99,191, 59,144,179,106,100,156,243, 4, 31,245,181, 82, 50,151, 34, + 60, 31, 60, 31, 5,207, 11, 41, 92, 75,161, 51,176, 80,109,250,156,230,166, 68,197,108, 22,210,185,105, 81, 12,162,133, 59,152, + 3, 37,182,165,176, 11, 1, 45,232,203,190, 61,218,199, 2,203,191, 17,124,211, 49,190, 95,131,128, 62,172,239, 56,191,226,218, +231, 52, 28,231,239,218,250,122, 56,205, 18,218,122,245, 46, 86,213,106, 71,132,230,132, 88, 43,223,121,243, 75, 54,211,145, 63, +157, 70,118,223,254, 6, 60,187,230, 73,191,101,211,123,130,219,144,255,214,119,112, 78,184,254,179,159,243,252, 62,177,171, 51, + 19,194,100,109,129,124,112,146,240,229, 45,240,255, 46,133, 61,124, 85,139,234,215, 97,111,239,128,235, 0, 47, 55, 90,208,159, +246,142,235, 32,108, 61, 68,169,184,170, 16,153,101,164, 88, 44,212,164,182, 66, 77, 85, 59,222,162,157,101,201, 58, 34, 84,222, +184,250, 63,107,206, 72, 78,228,220,225,109, 4, 43,173,224,168, 42,152,115, 42,220,138, 49,106, 4, 98,140, 39,255,249,226,153, +181,247, 33,248, 85,180,227,189,122,113,117, 20,175,227,249, 37, 19,221,123,221,125,123, 11, 6,241, 46, 16,162, 87,181,187,243, +180,114, 6, 56, 21,103,177,152, 90,188,163, 63, 81,231,156, 23,130, 29, 38,196,196,111, 75,199, 67, 53,181,108, 45,143,161, 16, + 75,154,152, 44,219,186, 70, 8, 78, 17,158, 49,210, 47,153,238,125,164, 31, 6,250, 94, 19,228, 16,125, 14,171, 29, 28, 86,130, +222,162,162,207,133,156,147, 82,237,166, 68,154,245, 80, 37, 77, 43,145, 66, 87,172, 11,244,222, 0, 32,154,199, 93,141,229, 93, + 45,245,110, 60, 76, 28,239,238,169,211, 65,115,210,229, 49,160,131,191, 96, 47, 46,159,235,181, 63,223,157,127,241, 69,203,123, +198,182,243,158,233,228, 83,127,229, 61,255,194, 71, 70, 31,121,186, 25, 16,175, 98,172, 16, 59, 74,182, 80, 32,179, 27,196, 96, +195,211,150,113, 14,230, 92,112,251,153,127, 56,195,255,180,217,210,121,207,195, 50, 74,183,247, 83,107,103,197, 93,139,120, 18, + 72,173,105, 87,110,111, 9, 40, 8,165,157, 50,188,203,153,184,202, 92, 81,220,196,192, 31, 70,207,183,162,231,167,227,204,171, + 82,121,155, 10,163, 8,243,108, 62,249,133,151,176,234,167,245, 80,185, 16, 14,151,107,235,124,196, 44, 78,249, 9,111, 63,123, + 71,215, 69,110,159, 93,155,195, 67, 39, 77,165,149,213,194, 89, 74, 81, 27,232,242, 21, 90,129, 21,198,163,211, 51,215, 78,135, + 59, 39,186,130,122,120,123, 96,127,191,167,204, 38,232, 51,254,186, 15,129, 86, 27, 65,132, 43, 15, 47,187,192, 55,188,112, 43, +208, 81,144,166, 35,237,137, 5,229,170,187,241,229,185,115,128,111,166,110,111,186,106,242,162, 5, 63, 8, 36, 43,238, 75, 97, +143, 86,232,163, 8,113,249,179, 40, 77,240,252,239, 52,187,189,120, 22, 64,146, 62,128, 85, 56,215,206,138,165,173, 57,170,189, +150, 52, 48,233,212,203, 47, 79, 70, 69, 24, 93,199, 49,108,145,174, 87,152,212, 60,226,243,136, 43, 51,206, 82,248,148, 19, 1, +207,247,247,116,127,246, 39,124,114,120,224,221,252, 93,246,242, 17,238, 70,216, 14, 17, 94,220,144,250, 64,238, 7, 46,255,228, +167,124,116, 55,113,108,141,207, 68,200,143,148,248, 95,173,149,242, 95,166,176,135,223, 20,243,191,158,175,239, 5,110, 34,124, +115,227,120, 49, 8, 79,122, 21,197,109, 61, 68,116, 31,172,150, 44,251,125,177,110, 49,215, 83, 32, 75,110, 58, 82,175,106,103, + 57, 45, 80,117,166,213,114, 37,143, 51,179, 11,184, 26, 88, 64,152, 62, 40, 36,198, 57, 29,163,119, 93,164,183, 17,125,240,222, + 62,197, 73, 52,227,220, 50,114, 87,245,122, 12,231, 2, 56,183, 22,116, 65, 5, 95,193,177, 22,123,103, 25,233,222, 45,246,186, +165, 69,215,199,233,204,179,187,218,184,204, 86,227,157, 41,237,205,150, 71,213, 2,223, 92, 59,141,215,109,220,186, 10,189,236, + 38, 92,155,198,179,122,239,232, 67, 71,236,122, 66,167,223,103,215,171,162, 62, 68,181,176, 41, 66,179,154,183,159,211, 99, 52, + 15,114,105,144, 91, 53, 15,125,166,228,102,250, 2, 85, 90, 55,167,221, 58,203, 10,195,123,237,192,114, 50,112,136, 22, 7,208, + 98,152,142, 59,198,221, 3, 82,173, 75,255,130, 93,120,147, 15, 23,247,118,118, 32,108,239,117,232,239,247,237,178, 30,158,222, + 59, 2,200,231,255,149,118,154,154,191,247,175, 93,224,199,161,231,250,106, 75,191,233,152,210,108,176, 21, 15,181,146, 74,182, + 40,219, 64, 43,138, 35,238,187,200,195, 56,145,222,236,248,135, 9,254,241,102, 75, 23, 3, 15,214,161, 39,235,200,207,187,245, + 25,189,209,102, 27,187,231,166, 29,122,110, 54,114, 55,118,124,181, 24,220,122,170, 3,167, 73, 74,107,107, 17,123,185,233,121, +182,237,121, 93, 10, 31, 95,244,124,178, 59,242,230, 48, 50,102,133,189, 44, 43,167,165,180,139, 37,230,229, 84,214,238,113, 9, + 76, 89, 32, 54, 97,136, 76,199,145,143,127,246, 75,156,247, 60,255,232,169,134,214, 56, 33, 74, 52,219,166,121,232, 87,165,183, +133,245,228,204, 35,153,153, 83,208, 75, 45, 77, 89, 12,247, 35,247,111,118,164, 57, 41,223, 61,118,128, 80, 82, 34, 34, 92,119, +158,151, 67,224, 91,209,241,148,130, 55, 33,236,185,210,253, 36,180,210,189,248,242,242,210,245,145, 6, 21,121,177,194,222,180, +152,171,186, 70,249, 14, 1,237,194,163,141,220, 59, 83,195, 7,167,123,249, 78, 78, 5,190,224,136,162,221,126, 99,177,195,201, + 99,235,100, 59, 77,134, 26,162,250,157,166,222,245,182,238,248,171, 5, 30, 53,160, 80,241, 28,226, 53,243,197, 83,174,110,159, + 34, 93,207,241,176, 99,191,191,195, 31,239,232,167,123, 98, 62, 32,134, 33,174, 94,184,154,142,244, 63,251, 49, 55,187, 7,222, +236,118, 76,223,255, 14,225,229, 19, 46,175, 34,114,125,193,254,155,207, 9,187, 61, 55,229, 21,207,199,198,177, 53,238, 77, 84, +248, 85,215,138,253,123,177,223,127, 83,208,255,234,127, 45,161, 44, 79,162,240,114,227,248,104,227,120,210,193,181, 21,244, 78, + 44,100,197, 44,106, 90,204, 23,102,187, 42, 90,106, 17, 74, 66,139,122, 57,191,159,203,163,105,171,118,153,149, 58,205,228,166, +251, 96, 39, 88,252,163, 10,221,148,139, 29, 21, 6, 99, 30,117, 89,118,125,156,114,206,215,130, 30, 61, 93,112,171,138,221,155, + 8, 72,214, 76,116,243,189, 46, 29,183,211,125,252, 18,253,138, 64,115,109, 77, 10, 67,206,185,242,198,159,119, 11, 28,195,157, +237,214,244,189, 34,237, 23,251,222,249,179,218,212, 10, 84,146, 97, 62,133, 24,123,134, 97, 75, 55,104, 17, 15, 49, 16,187,136, + 15, 1,241,214,183, 21,125,142,151,156,115, 21,216,153, 37,174, 52, 77,146, 42, 77,199,191, 22,165,234,124, 68,188, 16,196, 81, + 83,166,149,108, 22, 59, 21,207,165,156,153,211, 76, 41,197,198,187,250, 28,166,148, 57, 60,236,105,243,120, 70,115,251,226,194, +254, 69,123,116,249,224,117, 37,156,107,145, 31, 43,237, 62,196,165,123,164, 37, 3,105,248, 42,236,188,240, 39, 62, 82, 54, 61, + 47,158, 92, 50,244,142,210, 42, 62,233, 53, 17,130,163,229,153, 62, 6,165,123,213, 76,136,158,212, 28,110, 95,248, 7, 89,248, + 31,182, 27, 54, 33,176,183,206, 59,157, 21,241, 68, 35, 35, 39, 1,156, 21,112,125,107,107,136, 78,169,109,213, 74,212,199, 75, +132,211, 35,111,167,155, 92, 3,165, 14,122, 43,238, 55, 23,124,231,246,154,207,246, 19,159, 29, 38,222, 30, 71,118,227,196,148, +146,170,203,219,217,247,190,216, 33, 69, 5,232,139, 46,195, 57, 79, 12,145, 81, 38,166, 41,241,234,179,183, 92, 94,108,241,189, +138,227,240,154, 64,231, 93, 64,156,168,248,205, 38, 51,139, 48,177,100,221,213,251,224, 9, 18,152,199,196,187,215,247,188,125, +117,199, 52,106,186,157, 6,255,168, 21, 50, 74,229, 50, 10,223,232,181,160,223,198, 64, 87, 43,117, 42,164, 92, 56, 71, 4,159, +175,109,218,153,224,113,233,142,121,172,156,160,218, 30,188,158,241,220,139,133,250,100, 27,209,231,179,238,189, 52,152,171,218, +225, 34, 66,103,163,249,216,132,232, 78, 59,121,127,118,169,185,179,235,176, 45, 89,235,114,250, 89, 58,132,186,220, 91, 90, 53, +139,156,208,249,192, 54, 70,110,156, 99,115,117,195,241,234,134, 55,187,107,238,247, 55,220, 29,238,233, 14,239,184, 56,188, 33, +228,163,229, 81,120,124, 45, 60,121,253, 25,195,110,199,195,221, 61,211,223,253, 59,140,254, 35,154,119,212, 62, 80, 94, 60, 37, +164,198,245,171, 61, 79,119,133,177,192, 40,114,126, 50,252,202, 22,248, 95, 85,216,195,151,189,176,126,153, 10,249, 95,197, 99, + 9, 75, 65, 31,212,135,126,219, 9,215,157,227,194, 67,192,172, 88, 70,132,107,165,154, 61, 11,164, 46, 29,171, 22,117,125,227, + 28, 4,198,153,145,212, 30,175,179, 32,134, 5,171,166, 68, 52,231,157,237,197,131,238,153, 99, 32, 70,111,177,144,150,175,125, +214,225, 57,167,126,115, 85,111,107, 23, 29,189,199, 71, 13, 99, 89, 24,208,218,141,104,252,233,122,243, 17,191, 76,204,215, 17, +168, 19,175, 29,238,114, 97, 46, 93,190,133,139, 44,158,247, 86, 78, 93, 57,181,169,114,127,217, 79, 47,157,121, 51,140,107, 78, +228, 52, 83,107,193, 71, 71,231, 7,134,237,150,190,239,241,125,167, 7,144,168,152, 89,113, 78,111,188,197,198,250,103,222,246, +102,237, 96,173,237, 20,236, 98, 19, 5, 13,235,168, 26,104, 33,130, 43,149, 90, 19, 52,117, 31,204,105, 6,231, 21,106, 83,138, +106,123, 29,166, 13, 16,210, 56,145,198,163,222,204, 30,137,227,228,115, 5,251,125,143, 58, 31,248,184,188, 87,236, 62, 68,136, +255,208, 94,190,181,115, 31,241, 50, 30,213,236,244, 79, 92,224,207, 99,199,246,178,231, 98, 19,169, 84,117, 44,248,133, 68,214, +204,147, 47,164, 41,225, 61,204, 57,179,127,152,248,251,115,227, 31,109,182, 92, 7,207,104,133,123,230,164,104, 63, 21,118,200, +103, 5, 63,219,216,184, 46,191,111,167,189,249,231, 14, 49,239,203,172,151, 73,150, 44,244, 64,157,188, 4, 26, 79,183, 29, 55, + 23, 27,190, 83, 43,251,185,112,119, 28,121,181,223,243,110, 55,114,156, 21,191,170,107,156, 37, 7, 64,139,121,182,220,220,156, +178, 50, 13,178,150,200,135,183, 59,126,218,126,193,147, 23,215,108,175, 7, 4, 33, 87,181,167, 69,175, 20,189, 76,165,149,101, +146,164,113,176,206, 5,166, 57, 49, 31, 11,111, 94,221,241,246,245, 59,200,149,224,180, 96, 94, 15,145, 39, 93, 96, 91, 18, 87, +193,113, 19,133,235, 16, 8,173, 81,103, 85,202, 83,222, 43,232, 95,180,158,105, 39,229,229, 34,196, 59,101,164,219,246,218, 94, +103, 13, 21,212,121,227,186, 23,209,159, 67,176,238, 60,219,200, 61,183, 69,112,231,180,168, 11, 90,224,173,235,143,178,116,254, +134,147,125,143,134,216,196,173,135,176,178, 36,192, 73, 83,135, 78, 5, 79, 97,155,247,184,124,137,164,137,206, 11, 23, 23,151, +196,146,137, 37,113,215,132,209, 69,238, 37,114,185,255,132,152, 15,235, 97,181, 9, 12,135, 3,238, 71, 63,102, 39,158,116,247, +192,248,209, 83, 82,240,148,161, 99,122,113, 67,200,149,219,249,158,119,199,198, 72,120,100,223,252,220,225,184,181,207,221,239, +223, 47,160, 95, 6,254,251,135, 58,247,229,113,133, 47,107, 81,253,186, 21,243, 5,251,250, 36,192,203, 94,173,107,183,157, 24, +246,213, 10,186, 69,157, 46,221,249,242, 66, 16,203, 46,193, 58,248,245,174, 7,143, 59, 49,107,149, 23,234,155, 11,142, 16, 35, +209,235,152, 93,199,230,193,112,175,250,251,165,131, 13, 6,116,145, 71, 55,210,118, 74,242, 50,193,220,170,177,114, 24, 80, 70, +236, 49, 54,141,179,108,186, 11,104,232,254,204,137,146,162, 56, 67, 75, 58,231, 40,203,128,174,113,214,173,183, 83,203, 81,245, +223,183,229,123,111, 39,136, 5, 78,214, 96,154,156, 11, 41,207,148, 52,131, 84,221,151,247, 61,195,176,177, 14, 61, 34,171, 5, +207, 35,222,233, 65,169,156,249,218,235, 82,225,172, 44,138,216,250, 0,139,214,210, 4,156,234,108, 97,137, 6,225,228, 57, 81, +230, 81,187, 49,151, 57, 30,142, 74, 85, 51,232,126,112,250,220,117, 33,224, 16,242, 52,211,114, 90,149,252,194, 99, 44,236,251, +212,183, 47, 26,189,191,223,182,158,227, 97,219, 23,116,244,231,138,100, 77,167,147,211, 38,221,174,161, 25,248,161, 4, 62, 11, + 61,219,161,211, 60,238,162,135, 66,239,212, 18, 22, 99,196, 59, 97, 26,143,122,173, 56, 24, 31,142,252,238,110,230,191,141, 27, +190, 17,130, 21,113, 83,185,155,101,109, 41,230,143,108,106, 52,138,141,224,203,178, 63, 95, 38, 50,118, 64,125,255,222, 41,103, +250,129,117, 61,213,154, 93,127,182,152,104,149, 86,179,134, 26, 57,199,198, 57, 54, 27,199,211, 97,195, 55, 47, 35,251,219,204, +110,202, 76,169,172, 98,182,102, 43,161,218, 42, 41, 23,246, 41,177,159,103,230,156,201,177,167,214,198,148, 11,239,222,220, 49, +166,153,111,186, 23, 92, 94, 59,114, 81,141, 11,157, 10,226, 40, 48,166, 89,221, 2,165,104,195,158, 51,247,175,222, 82, 14, 51, +101, 78, 60, 5,174, 47, 6,174,125,229, 90, 42,215,189,231, 50, 8, 93, 81, 32, 12,181,210,198, 76,177, 3, 10,237,241,190,127, +233,210,219, 25,203,127, 29,121,203, 23, 28,228,108,167, 83,207, 62, 65, 19,139,220, 49, 61, 74,181, 46,186,120, 29,221,175, 86, + 55,129, 36,182, 26, 17,181, 23,102,150,238,189, 81,100, 57, 8,232,120,219,136,211, 39,141,135,237,220,157,189,198,170, 77, 13, + 60,134,156,108, 64,157,168, 15,159,113, 76, 71, 8,142,139,246, 18,142,123,186,253, 3,151, 57,227,107,101,236, 46, 57,214,231, +184,253,199,248, 58,175,175,153,234,193,181,194,230,207,127, 66,247,139,159, 35,207,159,145,190,245,146,227,237, 45, 83,116, 28, +175,123,220, 33,114,155, 39,142,169, 49,254, 10, 45,252, 95,196,125,255, 85, 31,251,235, 42,244,239,251,222,195,151,173,160,126, +221,138,249,242, 43, 2,183, 17, 94,110,132, 23,157,211, 14,221, 11, 27, 1,127,158, 16,182,236,210,171, 89, 73,154, 42,220, 49, + 44,172,158,216, 43, 34, 13, 31,101, 45,186, 75,128,129, 56,143, 95, 10,117, 8, 39,129, 91,208,124,226,115,177,155,250,204,131, + 70,166,218, 46, 93,236, 46,225,206, 3, 66,196,216,237,246,250, 43, 77,211,205,106, 19, 85,195, 10,103,125, 98, 61, 29, 70,116, +160,254, 56, 35,196,253, 91,246,222,172, 71,146, 36, 73, 19,251, 68, 84,213,204,221,227,200,172,172,171,143, 89, 14, 7, 28,128, + 3, 98, 9,112, 95, 22, 32,192,121, 33,223,248,255, 1,242, 97,151, 61, 71,119,117, 29,217,121, 69,132,187,155,153,170, 8, 31, + 68, 84, 77,205,195,179,186,103,166,171,187,102,186,178,145,157, 81,113,122,184,155,169,136,124,242, 29,254, 59, 25, 93,207, 26, +149,122, 0, 41,251, 65,221,229,188,247,135,153, 31, 44, 34,138, 37, 23, 44,243,140,197,167,243, 20, 3,134,113,143,221, 56, 98, + 28, 7,164,113,180,240,151, 16, 64, 14,127,147, 27,167, 20,135,220,209,180,242, 30,157,233, 4,189, 10, 98, 22, 39, 45,105, 17, + 75,179, 83, 5, 81, 52, 72, 88, 10,150, 37, 67,125, 31,203,254,252, 20,201,176,205,180, 89,238,154, 12, 46,152, 94,126,182, 64, + 10, 16,174,144,226,168, 29,128, 31,107, 10,187, 56,140,205,167,214,111, 39,244,252, 32,103, 93, 95, 83,221,192,238,150,120,167, +109, 55, 11,156,193,248,117, 24,145,199,132,155, 93, 66, 96,123,237, 2,219,142, 21,106,182, 33, 57,103,136,175, 28,142,199, 9, + 63,127,154,241,127,115,194,223,166,216,166,239,165,233,204,105,157,200, 73, 27,220, 94, 11,187, 95,205,150, 91,223, 33, 7,207, + 39,115,242, 66,142,246,111,189, 86, 86, 44,221, 25,230,162,160, 82,220,126,212,139,159,123, 9,143,204, 24,153,241, 98,207, 40, +187, 96, 69, 76, 29, 18, 14,193,118, 71, 10,147, 66, 46,139, 21,102, 33,204, 69,112, 90, 50, 30,167, 25,239, 78, 11,206,175, 63, + 88,176,201, 24,177,168, 64,217, 2,128,102, 17, 60,206, 71, 44,121,194,176, 40,134,167,140,155, 83,193,103,231, 51, 14,172,216, +237, 24,251,152,176,143, 1,131, 42, 98, 81, 64,102,232, 92, 35, 95,187, 73,177, 22,194,203,171,128, 86, 94,197,198,191,128,208, +177,199,187,178,222,214, 99,180,217,119, 19, 76, 34,216,114, 33,200,255, 42,153,130, 3,100, 82, 66,178,233, 92, 96, 59,249,129, +170,119, 0, 80,192, 40,100, 5, 94,201,166,246,118, 69,211,202,108, 39,127,189,168,254,237, 94, 51,120,118,189, 46,143,200,203, + 19, 62,156,222,225,241,187,223, 0,156, 32,126, 14, 14,176, 38,228,196, 35, 38,222,225, 32,157, 11, 35, 19, 8, 5,113, 62,130, +139,226,246,241, 3,240,225, 3,202, 47,255, 10,148, 24,133, 25,243,192,184, 29, 34, 94, 8,161, 8, 97,249, 1, 10,240,143, 37, +224, 37,254, 84,208,255,237,108,195, 63,228, 73,254, 36,194, 32,247,145,241,201, 96,182,175,123, 86, 99,196,214,162, 94,170,164, +170,222,114,102, 72, 97,176,176,197,170, 10, 4, 20, 44,233,140,186, 12, 99,117,239,110, 14, 17,113, 72, 72,105, 64,138, 17, 41, + 86,243,151, 10, 33, 87,214,122, 4, 7, 79, 91,227,213,239,187,102,166,111, 18,152,124,111, 30, 24, 14,138,218,206,179,136, 32, +146,174, 73,108,150,251, 4, 79,207, 0, 40,213,136, 8,120,148,184, 77,251,238,141,174, 90, 39,115,221,194,192, 88, 39, 48,116, + 82, 48,129, 98, 46,150,228, 86, 22,227,178,114, 74, 24,227, 14,251,209, 72,112,105,136,107,180,103, 32,143, 95,173,123, 82, 89, +227, 53, 27,198,219,121,196,119, 40,133, 37,198, 45,152,231, 25,211, 60,163,100, 5,104, 0, 69, 2, 21, 67, 35, 68, 13,129,160, + 20,145,118, 3,226, 48,216,107,180, 24, 5,140,152, 16,162, 77,156,203, 50, 67,242,242,220,179,157, 46,194, 86, 54,231,246,250, +220, 96, 51,125,245,162,160,206, 32, 68, 87,203,216, 77, 61,212,149,110,177,217,165,251,114,193,206,213,136, 55,195, 29,190,142, + 35,134, 33,225,230, 48,162,168, 88,130,157, 3,181, 33, 0,130,140, 82,102,164,196, 56, 77, 5,227,135, 19,254, 79, 9,248,207, +187, 29, 10, 49,166, 94,186,214, 59,197,233, 42, 91, 91, 58,150,118, 89,219,192, 45, 55,217, 23,197,125, 10,218, 90,196, 29, 85, +105, 82, 65, 93,127, 81,129,173, 85,178,255,182, 30, 75, 88,155,183, 90,253, 2, 91, 74, 32, 57,191, 66, 3,163, 80,128, 80,176, +105, 55,170,165, 17, 82,130, 20,197, 34, 25,160, 1, 67,188,199, 82, 10,222,157,206, 88, 32, 88,148,240,152,129,105,121,194,114, +158, 48, 16,227,139,101,198,237,241,132, 87,146,112,187,100,236, 49, 97,216,163, 25,187, 16,149,213,245,144, 20,162,185,241, 53, + 20, 4, 33,221,152,181,224,162, 25,187,174,105,236, 19,249, 12, 74,107,217,239,180,158, 21, 85, 93, 78,228,129, 77, 14,199, 87, + 35, 25, 65,223, 0, 6, 51,170, 81,123, 76,197,165,110,109, 98,135,193,250, 21,101, 17, 53, 7, 64,241,233, 31,212,197,186, 86, +212, 78, 76,213, 83,180, 56,239, 64,157, 52,103, 95,195, 42,208,229,136,188,156, 32,156,160,156, 0,138, 16, 48, 10,145,165, 63, + 73,110,136, 86,223,216, 18,236,135, 81, 81,236,142, 39,124,242,235,175,112, 63, 31,241,138, 3, 78, 33,226,161, 36,228,112,135, + 15,216, 99,110,236,131, 63, 93, 29,251, 83, 21,251,248, 83, 65,191,254, 56,254,104, 44,119, 0, 47,106, 65,223, 17, 94, 13,132, +219,168,110, 42, 99,122,215, 82, 67, 88,196, 47,116,241,198, 2,181,224,219,199, 4,110,104, 17,168, 77,213,171, 89,152, 37,107, +197, 20,218,142, 60, 57,153,141,185, 35,178,185, 4,167, 17,215,234, 77,237, 49,155,198,100,143, 70,238,114, 72,179,126,109,240, +138, 65, 44, 0,217,180,155,105,149,179,145,178, 51,141,216,204,107,192, 16, 4,107, 18,188,153,128, 59,216,169,116, 7,241,134, +252,180, 53,169,168,100,166,217,147,213,114, 54,211,154,144, 34,198,100,178, 52, 35,250, 85, 63,120,119,111,243, 7,221,186,231, + 98, 80,187, 20, 49, 46,130,175, 50, 12,134, 47,237,227,240, 4,178,121,177, 8,216,101,154, 80,178,128, 40,180, 88,209, 60,103, +228, 60,155, 15,222,110, 64,218,237, 48,140,123, 0,132,169, 20,104,153, 65,110,116, 2,152,233,200, 52,157,161, 82,158,233,208, +209, 8, 69,254,251,182, 38,237,249, 22,157,218, 94,146, 32, 96, 16, 10,194, 5,208, 42,184,110, 96,131, 86,192,183, 5, 67, 1, + 8, 71, 28,119,175,240, 79,233, 22,111, 34,225,230, 96,218,253,217, 81,144, 57,103,192, 61,251,101, 89, 16, 66, 48,147,152,135, + 7,252,253, 84,240, 95,199, 27, 40, 51, 78,170,152, 80,189,220,215,130, 62,119,255,189,160,211,158, 43,181,183, 5,235, 58, 0, +149, 7,226,133,189,107, 61,124, 48,119,200,189, 69,124,118, 13, 25,245, 25,195, 43, 68,111, 83,226,202,227,168,147,123, 32,243, + 84,160, 24,124, 82, 15, 32,143,104, 13, 33,128, 52,160, 36,129,176,221, 87, 55, 41,130,133, 81, 70, 1,142,103,148,249,136, 99, + 86, 28,207,143, 0, 20, 99,220, 97,183, 76, 24,231, 9,145, 11,136, 77, 16,174,180,182, 98, 13,242,231, 46, 10,184,173, 69,236, +185, 16,108,165,123,235, 95,106,175,241,230,206, 89,135,242,182, 66,234,155,126,144,219, 43,179, 11,209,152, 26,169,173, 41,102, +234,164,239,178,140,210, 77,250,206, 16,105, 94, 1, 69, 9,133,108,239, 94,252,154,172,196,199, 29,109,157,235, 20, 53, 52,198, + 85, 46, 12,176, 48, 64,238,254,227,149, 89,137, 16,197,212,233,102,125,125,182,191, 48,111,250,145, 20,131, 10,130,136, 91,205, +218, 64,193,186,197, 50, 52, 0,161, 44,216, 61,190, 67, 89,102, 68, 0, 7, 16,110, 40, 96, 74, 25,223,142, 17, 39,142,127,214, + 26,247, 67, 22,248,248, 83, 49,255, 1,127, 55, 0,247,193,140,101, 62,219, 17, 62, 25, 24,183,145,176,119,219,215,154, 19,109, +123,221,210,210,197,200, 37,105,226, 4,172,178, 44, 16, 24,156, 72, 30, 33, 89,119,214,238, 51,227, 16,121,181, 82, 53, 66, 83, +141, 63,173,118,172,234,242, 45, 86,118, 24,204, 32,219,212, 96, 90, 43,232,129,169,193, 90,240, 27,135,184,230, 39,171,165, 55, +185, 30, 92,213, 25,249,100, 7, 32,188,128,163, 65,239, 53,231, 41, 64,197, 69,117,130, 77,108, 88,191, 91,174,227, 43,133,208, + 88,248,162, 64,160, 2,101,211,239, 70, 98,140, 67,196, 56, 38,164,212, 27,212,108,189, 85, 90, 21,232,151,243,162, 54, 41,136, + 54,105,160,120,170, 93,113,167,189, 92,220, 90,214,117,233, 90, 76,135,206,148,161,121, 65, 89,102,168, 44, 8, 99,196,225,198, + 50,179, 67, 76,150,254,182,204,237,231,214,108,236,188,100,200,188,116, 33, 25, 23,254,238, 31,217,157,247, 14, 93, 4,197,204, + 35, 30,211, 29,166,112, 0,135,136,155, 0,236, 79,191, 3, 79, 31, 54,205, 2,112,233,240,133,141, 37, 44, 54, 5,130, 48,165, + 59, 60,238, 62,193, 27, 0,203, 64,120,113,179,111, 8, 81,140, 1, 41,179, 77,173, 30,199,171,162,248,230,245, 59,252,242,195, + 17,127, 31,246,136, 76,120, 44,197,141,100,188,136,111, 72,114, 43, 33,174, 66,239, 86,200,116,109, 44, 58,136,253,242, 57, 32, +181, 29, 47,137,248, 81,238,143,190,106,158, 73,187,160,145,181,120, 18,106, 65, 95,203, 36,215, 29,175,174, 95, 19,178,130,231, +150, 52, 12, 98, 50, 43,220, 49, 33,238, 70,196, 93, 50, 38,124, 17,196,233, 4,157,206, 40,199, 19,116,158,192,197,125,220, 75, +177, 59,108,153,173,121, 32,130,106,110,150,108, 5, 43,240,212, 23,114,233,222, 47, 4,151,240,173,107,136,190,184, 75, 63,189, +107, 69, 88,214,130,222,223, 0, 85, 89,210,254,133,185, 28,213, 53, 84,255, 57,218,125, 13, 93,124,143,186, 10, 9,181,200,119, +221, 98,221,183,139,195,244, 61,242, 50, 24, 96,130,228,107, 21,147,207, 97,155, 68,200, 4, 22, 93,239,117, 85, 20,114,101, 66, + 99,200, 23,135,235, 1,150, 21, 95,194, 53,238, 72,207, 19, 46,115,123, 31,251, 87, 37,205,248,116,126,196,167,180,199,251,241, + 5, 22,162, 63,187,211,220, 15, 65,186,139, 63, 21,243, 31,230, 49,181,130, 62, 2,159, 13,132,151, 9, 13,114, 15,213,155,188, + 22,116,119,154,170,164, 56,155, 34,107,161,177,253,165,212,211,141,186, 99,171,177,181, 9,220, 7, 18,169, 39,180, 73,193,226, +166, 26, 2, 39,151, 81,112,137, 21,214,188,240,122, 67, 11, 16,188, 83,168, 80, 60,188,184, 7,114,105, 91,208, 85,147,222, 50, +218,163,239,207, 29,132, 87, 43, 91,234,135,137,229,135, 91,210, 84,181,213,172,164,183, 54, 85,128,236, 48,244, 37,112,205, 71, +175, 7, 79,114,134,122,101,226, 71,151, 17, 17,137, 59,120,225, 25, 88, 89,141, 49, 76,177,229,207,175,168,135,222,100,228,165, + 52, 83,152,156,141,233, 44, 98, 46,117, 75, 54, 11,216,188, 44,206,176,206,182,122, 16,119,176,139, 0,237,118, 8,135, 61,226, +110,103,141, 80, 32,140,203,136, 60,157,109,159, 29, 3, 64,166, 79, 23, 45, 78, 30,186,198, 98,210,231,233, 44, 93, 65, 87, 0, + 39, 62,224,205,238, 11, 76,227, 29, 34, 19,110, 56, 32,222,189, 64,121, 24,161,175,143,128, 46,205,182,179, 14, 95, 61,115,126, + 59,157,115, 55,165, 39,204,227, 61,132, 35, 30,203, 25,188,223,227,238,118, 64,136, 12, 44, 64, 10, 12, 26, 7,144,103,153,199, +180,195,219, 15, 39,148,111, 63,224,255,200,140, 79,135,128, 7,177,130,190, 16, 97, 82,106, 19,250,212, 73,215,182, 59,244,117, +151, 94, 37,107, 68,157,170, 65,159,131,206,236,159,201, 61, 4, 79,186,146, 27,187,105, 30, 29,183,195,233, 95,237, 55, 14,254, + 2, 52,206,136, 42,152, 4, 65, 61, 63,220,245,220,161, 44, 8,249,140, 49,207, 24,166, 1, 67, 8,118,223, 46, 51,100,158, 64, +146, 45,237,208,184,169,224, 80, 87, 39,234,107, 3, 52, 45,121, 77, 3, 54,127,117,255,221,105, 45,222,197,139,163, 58, 59,188, + 22,250,245,243,233,250,212,206,180,146,223,224,156, 23,165, 53,247,184,250, 55, 52,219, 66,231,222,248,133, 81, 63, 69, 91,145, + 95,175,149,142, 96,211,166,104,105, 85, 82,155, 6,189,153, 60,250,199, 11, 44,148,165,218,251,142,206,151, 72,126,223, 7,168, +221,226, 29, 15,192,236,158,131,129,253, 4,128,205,194,183, 52,237,137,141, 8,171,121,205,245,243,246,242,237,203,166,153, 1, +220,234,140, 95,228, 71,124,155, 14,120, 27,134, 31, 69,173,249,163,175,123,255,146, 51,206,127,136,199, 83,207,235, 91, 6,190, + 28,128,207, 7,224,101, 34,220, 5,198,222,227, 14,181, 74,215,100,221,161,215,130, 78, 85,135, 93,138, 79,142,217,225, 58,187, +153, 42,161,203,106,119,245,111,119,248, 60,176, 67,243, 70,228,154,196,228,112, 89,205,156,166,136,249,188,199, 36, 22, 93, 56, + 48, 40,152, 21,164, 40,161,136, 73,141, 72,215,142,151,153,154,222, 60,134, 90,108, 21,172,117,147,207,235,161,208, 12, 39,106, +215,207,190,151,247,105,190, 21,176,158,252,214,175, 60,216, 73,122,228,150,180, 6,217, 19,115,155, 70, 66,253,252,234,144, 39, +212,152,245,142,157,175, 83, 92, 93,163, 86,141,121, 89, 39,242,178, 44,200, 75,110, 9, 99, 53,162, 83, 84,177,148,220, 34, 61, +165,184,123, 23, 27, 66,161,162, 40, 98,204,228, 44, 25,186, 44,198, 4,246, 28, 91,145,226,251, 74, 67, 44,178, 8,114,246, 29, +254, 10, 78,224,154, 25,204, 53,215, 56, 0,120,226, 61, 94,239,191,196, 50,222, 97, 36,194, 14,130,123, 6,198,121,198,121, 89, +204,248, 70,251,148, 44,194, 58,247,174,251, 87,213,149, 34,215,160,120,142,224,209,172, 84, 63, 48, 97,127,127,192,110, 76, 16, +114,139, 97,101,164,228, 80, 39, 7, 76,115,193, 55,191,249, 22,255,219,113,194,255,114,115,131, 39, 21, 76, 66,152, 9, 88, 72, + 49, 43,121, 49, 55, 77,122, 43,230,110, 44, 35, 88,225,229, 94,178, 86,201,108, 84, 37,227, 45,170, 83, 63, 58, 77,173,104,135, +182, 41,141, 47,129,106,114,210,162, 55,145,142, 25,161,122,191, 81, 45,232,174,183, 14,216,190,157,230, 51, 98, 94, 16,137, 17, + 80,204,221, 76,124, 79, 28, 87,212,165, 15,217,121,134,136, 84, 99,152,158, 71,160,109,211,182, 62, 47, 21,182,246,207,223, 20, +120,212,175, 95, 95, 83,245, 95,200, 90, 30,130, 50, 55,137,164,210,218, 88,219,253,182,190,221, 30, 23,173,187,119,233,144,179, + 74,158,171,171,144, 54,201,195,170,176,180,159,207, 93,209,215,142, 3,162,237,245,173, 78,128,226,143,125,240,150, 50,214,233, +187,123, 13, 67,125,241, 65, 29,109, 82,215,166,200, 71,135, 75,223, 2,189, 40,226,117,143,223,199,187,214,207, 75, 36,248, 76, +142,248,114, 57,226,145,211,143, 98, 90,255, 99, 23,246,248,151, 94,208,127, 8,200,253,150,129, 47, 71,178,130, 62, 16,238,152, +176, 39,163,144,193,173, 95,213,237,203,106, 97, 38, 56, 94,229,105,107, 37, 23,211,101,187, 4, 68,105, 37,118,109,216,175,193, + 38,196, 52, 6,196,209,228,106,128, 98, 41, 5,121, 86,204,139,117,183,230,131, 66, 70, 44, 67, 68,136, 21,166,119,133,169,178, +251,148, 11,212, 89,207,245,167, 80,221,197,213, 2,239,196, 26,242, 27, 13,202, 43,236,239,156, 93,238,118,116,172,235, 86,119, +221,133, 82,219,237,183,216, 87,143, 58, 37, 39,245,153,247, 60, 53,255,121,116, 77, 1,252,160, 6,137,179,107,155, 29,156,143, + 60,186, 18,163, 5,190, 75, 47, 40,217,252,219,243, 82,172,216,170, 66,138,125, 60, 87,248,221, 93,211, 42, 60, 15, 45, 22,250, + 97, 56,176, 57,197, 49,128, 57, 66, 57,163, 76, 5, 44, 2, 22,119,151,203,197, 35,105, 19,138, 76, 38,121,107, 51,199, 42, 95, +219, 56,113,209, 53,216, 92, 49,243,128,183,187,207, 48, 15,183,230,246,165, 5, 99, 8,184,125,245, 25,116,158,160,191, 59,121, + 79, 24,183,204, 33, 85, 63,140,181,241, 46,250,201,191, 7,185,119, 33,226,189, 40,230,219, 17, 47, 63,189,197,184,139, 56, 79, +147, 79,160, 9,203, 82,204,159,128, 24,191,250,231,239,240,226,219, 55,248,223,211, 0, 5,112, 44,150,126,183,128, 48,147, 21, +242,153, 8, 25,140,217, 33,217, 90,216, 55, 5, 12,171,105, 76, 35, 8,250,127, 49,180, 91, 69,109,145,151,218, 4,114,109, 62, +253, 87,174,110,132,164,118, 61,112, 96, 48, 71,107,176, 74, 1,231, 5, 65,214, 68, 60,103,119, 52,185, 94,112,138,103,251,235, + 13, 64,132, 34, 32, 35, 58, 9,145, 9,158,107,176,198,147,214, 88,211,190,194,116,202,204,205,219,210, 21,112,237, 11,184,131, +244, 25,139, 0, 0, 32, 0, 73, 68, 65, 84,174, 69,191, 87, 1, 72, 37,160,117,150,171, 13,117, 33,130,120, 35,172, 46, 81, 91, + 61,253,185, 93, 88,171, 9, 12, 53,235,214,230, 74, 71,181,144,175, 94, 18,181,192,215,180,180,190,200,183, 12, 55,170,124,215, + 62, 86, 85, 29,185, 91, 11,186, 88,198, 29,138, 2,131,218,219,201,175, 71, 38, 51,185,161,238, 26,173,143, 60, 18, 33,235,122, + 39, 72,149, 48, 94, 52,121,122,101, 42,223, 76,234,180, 18, 72,171, 34,245, 32, 51,126,158, 31,241,109, 60,224,119,113,120, 54, +233,255,185,135,203,127,107,113,143,127,137,197,252,135,124, 44,123, 2, 62, 27,128,207, 7,194, 39,131,249, 54,239,252,208, 80, +119, 44,211, 34,221,161,165,237,206, 38, 49,235, 87, 43,234, 14, 5,215,144,131, 78,136, 76,180,158, 60,228, 41,108, 97, 72,160, +104,217,231,101, 17,204,115,193, 60, 21,228,165, 26,169, 16, 40, 68, 12,158,188, 22, 98,108,169,101, 84, 33,125, 21, 64,217, 11, +123,112, 72,217,166,117, 51,177,169,146, 50,184,182, 91,219, 14, 46, 24, 23,199,161,249,181,232,175, 29,191,180,177, 69, 93,107, +213,246,106, 77,238,198,205,139,155, 99, 95,220,237,208, 84, 24,227,185, 30,111, 68,190, 39,173,178,180,170, 59,247,230,168,106, +217,171, 59,156, 84,194, 97,149, 15,170, 34,103, 53,109,121,201,238, 4,103,241,156,121,201, 64, 54,127,125,201, 25,186, 76, 88, + 72,215,157, 46,179, 77,106, 51,144,101, 1,229,236,142,120,132,200,140, 97, 76, 64, 74,200,199, 51,164, 20,132,122, 40,210,165, +227, 91,207,194,221,114,219, 21,132,135,112,131,211,112,103,223,147, 20,169, 8, 14,159,188,194,253,223,252, 79,120,248,199,255, +190,238, 14,217, 67, 70, 84, 55, 44, 67,189,224,204, 63,115, 33,144, 5,244,244, 22, 15,195, 14,229,254, 37, 14, 55,163, 31,195, +234, 36, 75,118,115,146,128,175,126,247, 30,143,191,125,131,191,143, 55,248,116,151,240, 84,178, 73,214, 72,108,119,174,236, 62, +238,234,132, 56, 70,102,218, 20,116,155, 82,181,145,183,140, 53, 45,171, 91,159,138, 77,115,180,154,169, 80,149, 69,213,157, 55, + 20, 44,206,239,240,251,129,253,119, 39,102,196, 52,130,211,206,139,186, 95,115,243, 12,118,187,209, 88, 77,144, 28, 10,142,155, +233,188, 22, 21,180,143, 7, 39,137,214,149, 83,109,208,184,173, 6,122,150,249,118,119,222,155, 60, 10,109,225,115,241,221,113, + 45,230,232, 8,102,210,197,165,106, 77, 34,108,146, 53,191, 3,188,168,171, 63,151,117, 58,239,104,239, 43,195, 29,236,100, 61, +106,215, 68,149,175,173, 58,117,189,104, 60,180,173, 72,250, 2, 46,157,116, 67,232,114,181,163,205, 70,182,210, 89, 68,129,164, +218, 17, 2, 5, 5,240,149,154,161,126,205,188,170, 46,135, 28,170,239, 11,183, 92,152,239, 8,174, 5, 30,173,231, 18, 93, 22, +118,111,158, 34, 20,159,231, 71,252,108, 57,224, 67,248, 4,249,223, 1,114,252, 39,241,126,255,105,111,254,252,207, 72,192,167, + 3,240,197,192,248,100, 32,220, 38,194,142, 12,242, 65, 45, 56, 88,167,244,134,171, 9,220,215,221,172, 78, 37,119, 50,143,139, +249,141,130,193,236,136,140, 48, 4,196, 97, 64, 26, 18,136, 45,245,105,154, 51,230,115, 70,158, 50,242,226,122, 94,144,229,170, + 15, 3,198,221,136,221, 56,152,215,123, 8,126, 11,148,198,192,110,210, 54, 38, 80, 96,203, 15,247, 98, 43, 10,119,203, 66, 75, + 51, 35,168,153,148,180,132,140,254, 57,166,166, 97,111, 39, 28,173, 44,230, 42,113,179,221,184, 90, 1, 97,106,142,119, 28,108, +151,111, 29,188, 51,158,185,154,141,136,255, 76,103, 57, 23,127,206,178,163, 31, 77, 50,183,158, 46,234, 68,185,106, 49,107,110, +116,150,148, 85,138,160,136,101,108,231, 82,204,245, 42, 13, 16, 42,144, 60, 91, 67,160,185,237,168, 57,250,226,144, 10,116,201, +110, 77, 11,112,178,252,250, 56,238, 49, 23,147,178,217,244,120, 49, 73,208,199, 55,130,245,246, 93, 40,225,152,238,192, 33, 97, +100, 66,132, 98,140, 9,119,247, 47,161, 57,227,252,246, 59, 32,159, 0,205,173, 80,110, 13,101, 0,190,226, 86,183, 26,148, 16, + 72, 50,228,248, 26,143,187, 47,129,195, 30, 4,194, 60, 45,134,200,140,102,154,179, 27, 18, 62, 60, 77,248,205, 87,223,225,239, +226, 45,254,203, 47,255, 19, 30, 63,188,193,244,246, 27, 75, 2, 67, 45,230, 62,181, 19, 97,129, 64, 72,145, 37, 56, 91,127,245, + 43,103, 16,148, 3,114, 8, 0, 49, 82, 8, 24,198, 29, 66,140, 56, 61, 60, 64,158, 62, 96,208, 98, 69, 27,181,144,219,193, 31, +104,149, 71, 49,104,133,214, 33,136,204, 8,227, 45,104,119, 48, 4, 74,129,192,140, 52, 12, 40, 10, 76,239, 9,251,227,132, 65, +173, 1, 11, 29,116,222, 66, 74,168,190, 79,155, 60, 48, 52,154, 41,122,240,123,227,156,214, 67,193, 31,161, 71,180, 75, 81,187, +215,161,250,214,155,111, 59,109,160,118,117,200,220,220,242,170, 57, 76,165, 77,114,131,207,155, 26,188, 61, 16,246,137,124,149, +177,129, 59,233, 90, 43,218, 94,212,125, 63, 95,161,255,186,195,111,178, 67, 50,166,123,209,126,119,222, 49, 24,220,121, 81, 92, +225, 32, 62, 89, 23,103,250, 23,233, 20, 14, 42, 16, 24,129,206,220,207,140, 52, 28, 58,117,199,154,223,222,161, 32, 48, 73,160, +168, 33, 50,162, 23,247,146, 79,227,218, 5,247,208,133, 66,178,237,240, 1, 28,100,193, 47,242, 3,126, 91,110,241, 38,142, 63, +152,188,237,207, 49,197,199,159, 10,250, 31,143,113,248, 50,194,140,101, 70,198, 93, 2, 14, 12, 12,213, 7,217,162,157, 86,253, +117, 77, 28,107,153, 45, 78,224,114, 55, 57,237,247,163,206, 44,161, 64,224, 20, 64, 41, 34,140,201,124,204, 83, 52,169, 85, 41, + 88,230,140,233,184, 32,159, 45,170, 21,176,212,176,144,236,115,173,160,143,166,233, 78, 1, 49, 80, 99,211, 51,195,172, 99, 99, + 23,171, 74,102, 46,211, 14, 14,247, 71, 87,197,214, 63, 89,181, 65,124,182,235, 23,103,192, 63, 39,174, 84, 47,104,251,153,138, + 16,196, 18,217, 2,155,143,116, 48, 55,188, 80,249, 62, 45, 71, 94, 76, 30,228, 7,184,130,156,123,224,238,112,205, 82,214, 55, +111, 94, 16,160, 85, 78, 84,187,167,181,197, 55,190,129,160, 40, 64,193, 28,247, 66, 44, 88,230, 5, 80,197,192,132,101,154,144, +207, 21,238,175, 6, 26, 94, 60,243, 2, 41, 70,162, 51,168, 58, 32,165, 1,195,120, 0,199,132,121,122, 66, 94, 38,168, 59,130, +245,201,167,155,231,164,123,238,208,248, 9,130,133, 71,148,180,199,144,146, 69, 99,138, 24,171,248,225, 1,111, 94,127,141,243, +235,175, 16,116,194, 42,100,251, 56,121, 8,116,205, 88,212, 98, 66, 23, 45,120, 55, 68,164,155, 29,110,247, 3,206,179, 61, 95, + 41,146,147,239, 24,223,125,245, 26, 47, 62,100,252, 95,159,255, 13, 94,189,252, 12,255,237,253, 59,156,114,193, 33,122,116,170, + 18, 22, 98,100, 72, 51, 44, 41,213,204,132,121,115, 61, 51, 7, 76, 97, 64,136, 17,135,253, 1,247, 47, 94,226,254,254, 5,180, + 40,190,198,175,241,254,233, 17,172, 51, 6,226,174,232,234,102,231,205, 32, 4, 53, 19, 38, 86, 1,147, 98, 76, 3,194,254, 22, + 11, 51, 88, 20, 67,178, 6,232,246,230, 14,143, 79,143,248,238,248, 30,251, 16,177, 43,217,139,200,106, 89,186,146,169,182,187, +222,107,208,238, 85, 82, 22, 93,183,110,125,166, 66, 32,116, 51,233,250,115,214,143, 81, 71, 15, 92, 33,243,234,162,168,196,237, +253,141,136, 90,129,182, 94, 30, 73,107,131,209,147,228, 26,252,222,233,210,165,119,148,187, 32,242,101,176,107,210,181,217,249, +150,126,157,210,165,174, 53,110,186, 72, 75, 74,108,211,185, 58, 24,223, 65,243,234, 54,189,209,103,112,238, 80,153,126,218,230, +190, 41,106,210,197,138,222, 61,135,224,109,157, 67, 93, 35,246,252,181,100, 2, 62, 43, 71,124, 89,158,240, 33, 12,110, 95,251, + 31,227, 79,252, 75, 40,232, 63,244,227, 33, 24,179,253,243,145,240,233,192,120,145, 24,183, 65, 49,116,196,159,122,135,145,212, + 34,200, 29, 91, 70,219,132, 41,226,240,150, 54,228,172,178,195,172,184,122,178, 90, 76, 9, 33, 38, 4, 50,189,140,206, 2,153, +140, 21, 23, 92,146, 99, 57,233,230,239, 62, 12,131,235,185, 7,140,195,128,193,221,230,108, 26, 38,255, 26,115, 95,179, 68, 53, +129,136,117,232, 92, 42,133,151,154,212,137, 46,110, 19,174,115,139, 23, 81,146,213, 9,165,134,178,153,174,212,105, 61,100, 83, + 87, 98, 70, 12, 64, 74,132, 20,217, 96,206,250,141,100,101, 48, 43,173,114, 22,237,158, 51,169,220,131,172, 45,152,164,234, 87, +235,146, 78,187,231, 25, 80, 16, 27,147,182,136, 53, 81, 32,123,190,118,195, 14, 12,224, 28,207, 56,159, 79,200,211, 25,229,124, + 2,229, 9, 65,123, 18,143,155, 1,157, 79, 64, 69, 20, 82,194, 48,236,145,118, 7,132, 97, 7, 81, 96,158, 39,104, 94,158, 23, + 0,237,228, 70, 93,182,185,118,158,113,234,144,103, 76, 3, 14,251, 61,118, 34,224,233, 4, 44, 19, 30, 94,255, 22,249,244, 30, + 33, 63, 58, 10,208,191, 26,244,156, 98,127,129, 10, 80,155, 51,237,231, 30, 99,194,227,221, 13,210, 62,226,102,159, 16,146,249, +186, 71, 38, 4, 98,188,126, 56,225,252,237, 3,254,235,112,135, 47,210,128,135,243, 17, 75, 41,152, 84,193, 69,177,184, 70,121, + 81,117, 23, 50, 70, 33,134, 48, 65,171, 68,169,113, 46, 0,112,192,144, 34, 14,251, 27,220, 28,110,176,143, 17, 56,158, 48, 29, +159,160,199, 39, 36, 8,146, 40,118,172,109,114,110, 5, 93,125,255, 77,118,248, 7, 21, 48, 21, 4, 85,203, 35,136, 9, 59, 0, + 67,100,220,222,220,225,254,230, 30, 80,197,211,241, 17,251,229,140,131, 22, 12,141,214,105,205,192, 90, 66,159,231,217,247,133, +249,242,227,237,253, 68, 87, 27,169, 75,146, 22,109,126,210,246, 53,209,106,113,203,107,166,120,187,113, 58,115, 24,120, 81, 39, +102,187, 31, 89,215, 29,119,119, 37,212,226,174,174,154,161, 78, 11, 81,227,153,181,162, 3,160, 54,129,155,187, 31,249,158,223, +181,231, 53, 77, 79,213,214, 45,186,198,228,182, 16,158,118,206,173,228,184,122,175, 54,170, 75,143, 86, 40, 90, 44,177,250,215, + 4,212,149, 74,229,200, 72,215,240,104,155,216, 75,187, 11,183,175, 17, 46,144,176, 85, 21,179,125, 61,217, 27,146, 81, 51,126, +190, 60,224,183,241, 6,239,195,174,147,255,254,251,158,216,227,127,212, 98,254,167,124, 44,183, 4,124, 49, 0,159, 13,140,151, + 3,227, 46, 18,246,158,118, 38,157,225, 69,147,236, 80,104,178, 29,241, 29,163, 37,179, 97, 19,172, 85, 97,112, 99,184, 18,148, +169, 65,110,205, 57,171, 40,144, 5, 52, 23, 36,181, 34, 64,204, 96,143, 1, 29,134,136,148, 6,196,152, 16, 99, 68, 72, 17, 67, +138, 24,146, 69,173, 26,211,124,149,173,213, 11, 91, 4, 0,219, 68, 92, 39,163,106, 88,179, 78, 53, 91,248,113,115,119,121, 18, + 91,111,113,198,206, 54,102, 44, 8,164, 24, 2, 97,112, 95,250, 33, 26,164,189,238,247,173,240,174, 23,175, 49,249,139,122, 1, + 47, 2,201,138, 92,108, 95,174,165,155,160,105,213,182, 26,114, 0,103,182, 87,111,128, 90,247,212,195, 56, 60,204, 70, 11, 68, + 5,165,204,152,207,143, 88,142, 79,208,121, 2,149,108, 69,189,223, 75,171, 2, 37, 27, 60, 27, 71,140,187, 3,198,253, 13,226, + 48,128, 67,196, 60,207,152,231, 9, 34,185, 25,196,172,241,178,235,241,210, 59,133,209, 70,129,171, 32, 45,136, 42,150, 4, 86, + 50,116,158, 80,230, 35,100, 57,129,151, 7,176, 76, 43,207,157,244,202,110, 17, 23, 24, 73,187,176, 90, 65, 7, 24,167,195, 13, +230, 79,238,218,170,103, 63, 68,104, 22, 68, 55, 52,122,255,187, 7,252,242, 49,227,111,227, 45, 30, 79,143,144, 37, 97,158,207, + 40,170,230, 20,167,236, 59,116, 65, 38, 94,153,207, 90, 21, 26,210,144, 2,230,128,253,126,143,195,203, 79,161,185,160, 28,159, +240,225,195, 91,200,108,250,127, 76, 39, 28,242,132, 67, 32, 12,221,158, 59,168, 67,239, 48, 73,104,172,218,115,178, 24,220,168, + 11,146, 44,136, 0,246,195,136,251,151, 47, 17, 57,226,244,230, 27, 28,159, 30,145,143, 31,112,152, 31, 48,234, 98,246,174,192, +198, 55, 0,223, 51,141,115, 55,221, 93, 62,195, 4,186,234, 53,176, 45,236,180,241,243,239, 57,255,218,191, 54,181,176,163,131, +115, 58,105, 26,156,215,130, 78,162,214, 19, 78,149,250,215,247, 18,164,233, 9,109, 91, 1,104,115, 27,172,232,138,239,240, 51, + 87,247, 56,194, 34,230, 34,183,128, 48, 43, 16, 69, 87,151,192,166, 49,167,182,242, 18, 93,231,234, 22,152, 68, 43,252,190,110, +198,122,123, 96,111,210, 84, 26,241, 85,123, 23,170,143,232,211,251,194,190, 41,238,149, 80,121,209,152,161, 43,238,159,229, 35, +190,200, 71, 60,134, 1, 2,250,131,234,198,143,161,240,127,159,145, 77,252,169,160,255,235,255, 40,128, 3,153, 14,253,243,193, + 2, 90,110, 19, 97, 31, 3, 34, 59, 12, 85,168, 25, 96,216,194,168,149, 71,163,139,116, 25,137, 20, 28, 82,242, 41,142,189, 56, +131,215,160, 11, 16,129,139,203,117, 36, 67,213,154,135, 72, 4, 30, 18,136, 25,129,217,124,221, 83, 68,106, 19,185, 89,194,198, +230, 54,103,177,169,214,100,216, 77, 89, 83,201,172,185,176, 27,148, 69, 16, 8, 16,119,160,170, 12,119,118,135,170, 58,251, 17, +173,211,187,123,202,181, 56,213, 74, 44, 10,108,133,138,144, 17, 9,102, 99,155, 8, 49, 86,169, 28,249,128,222, 77,228, 21, 10, + 44, 70, 0, 44, 42,134, 76, 8, 32,197,146,219,196,165,123,208, 26,210, 34,171,155,150,195,247,197,179,168, 37, 87,249,154,182, +231, 89, 74,198, 60,207,120, 52,145, 58,150,121,194,124,122,130,204, 39,112, 41,134, 58,212,109,181,143, 26, 68,190,162, 72, 1, +187,221, 14,227,193, 34, 94,153, 3, 4,130,243,116,194, 60,159, 86, 51,161, 94, 90,214, 81,127,182, 29, 81,239,205,205,136,178, + 32, 61,189,198, 49, 47,152, 37, 35, 46,103,132,124, 70, 40, 39, 4,157,187,221,163,110,138,207,117,216,189,211, 45,131, 45, 41, +143, 8,133, 2,158, 62,249, 4,120,245, 18,164, 5, 79,143, 19,210, 16, 33, 89, 16,199, 29,158,230, 9,252,230, 17,255,115, 97, +112, 57,225,148, 23,131,215,231,201,140,117, 80, 35, 84,221, 29, 78,197,172, 66,181,206,169,220,161, 18, 0,124,215, 93,166, 51, +166,227, 19,242,116, 6,242, 2,228, 12,150, 5, 99,201, 24, 89,176, 11,209,210,191, 84, 91,250, 87, 16,245, 93,184,229,215, 47, + 97,135,153, 35, 4,132,157,204, 24,242,132,112,124, 3,205,119, 56,147, 66,202,130,243,187,215,200,243, 25,169,156, 49,168,185, + 0,162, 35, 80,249, 16,216, 9, 50,175,172, 71,116,221,181,203,213, 87,235, 10,244, 78, 91,100,228, 57, 86,130,117, 67, 79, 29, + 16, 79, 87,202, 21,117,173, 3,175, 40, 12,211,101,147,134,230, 22,183,197,110, 86, 91,200,186,238,209,238,123,195,119,234,218, +108,106,107, 98,219,186, 75, 95,152,176,168, 21,244, 64,174, 24, 16,180,251, 27, 78, 98,205,253,125,235,205,111, 29,108,170, 14, +127,168,209,198, 29,163,189, 49,220, 91, 97, 95,253, 15,181,133,238, 96, 67, 2,189,156, 35,174,158,209, 27,119,194,231,171,146, +157, 46,248,197,242,128,175,210, 13,158,194,240, 7, 65,240, 63,166, 48,151, 63,250,164,254, 31, 93,158,246,251, 10,122, 77, 93, +251,116,180, 60,244,219, 8,236, 25, 72,220, 31, 14,171,180,106,203,152, 89,239, 91,102, 2, 34,175,147, 48,153,102,155,130,187, +179,181, 52, 37, 55,102, 33, 3,187,169,134,190,212, 2, 19,131, 7,181,120,112, 75,140, 6,195,199, 0, 10,228,228,179,128,192, + 53, 14,213,118,208, 45,179, 92,215,164, 52, 91,237,170, 77,220, 14,123,154,181, 36, 86, 13,121, 51,134,112,155,216,142,116, 84, +201, 76,240, 0, 14, 38,109, 9,110,208, 2, 82,251, 94,129, 35,136,108,195, 89, 92, 29, 32, 89, 80, 84, 27,233, 78,149, 80, 74, + 13,145, 89,139,100, 51, 47,113,187, 93,251,246,238, 1, 80,159,103, 55,247, 49,137,160,169, 10,138,179,247,115, 1,166, 37,227, + 60,207, 30, 82, 98,251, 89,201, 11,202,156,129, 69, 26,125, 87, 58,253, 59,147,201, 8, 57, 70, 12,187, 29,198,253,193,248, 13, +254,156,207,203,130,243,233,132, 50,159, 27,131, 23,219,153,236,202, 12,125, 97,213,233, 59,198,253,244, 14, 52, 61,122, 92,166, + 32,104, 70,132,152, 26,193, 25,216,215,246,188,151,225,125,141,167,216,136, 83, 1, 12,194, 18, 34,222,190,120,129,225,197, 1, +123, 20, 76,231, 9,239,223, 60, 33,198,136, 49, 9,142, 79, 5,127,187,255, 20,191, 24, 95, 99,126,252,128, 5, 51,150, 82, 64, +101, 49, 79,123, 21,115,138,107,251, 86, 15,231, 96, 6,164,250,140,187, 7, 63, 0,194,130,249,225, 45,230,135,183,128, 8,130, +154,213,109, 20, 65,130, 98, 12, 64,162, 96,121,221, 62,157, 7,168, 25,194,144, 41, 29,136, 35,206,195, 13, 38, 30, 1,102,236, +247, 55, 24,164, 64,223,254, 22,116,124, 11, 57,127,192,241, 3, 57,255,161, 24, 49, 78, 75, 87,208,245,234, 62,252,218,223,250, +188,173,215,250,245, 41,241,242, 69,165,107,104,201,179,109, 8,119, 80, 57,117,250,242, 43,109, 67, 55,153,119,140,136,198,184, +111, 36,215,110,207,206, 84,163,148,215,117, 15,109, 58,154, 77, 58,253,186,211,239, 11, 58,204, 4,102, 85, 6,248,107, 1, 52, + 51,165,106,218, 67, 40,102, 99, 92,119,237,206, 37, 17, 71,116, 68, 77, 85, 80,237,123,123,219,126, 1,144,180, 82,236,214,159, +213,219,250, 95, 78,226,250,145, 85,104,251,245,244,250,116,222,135, 6, 49,128, 79,243, 17,159,230, 51,142,255, 6, 51,154,203, + 90,248,167, 44,242,151, 83,123,252,143, 80,208,171,112,255, 79, 57,161, 51,128, 59, 6, 94, 69,194,203, 72,184, 15,192,129, 25, +201,201, 93, 21, 94, 90,121, 42,220,233,168, 87,131,204,234,220, 70,150,150,225, 92, 41,110,121,225,228,174,106, 90, 57, 84, 94, +196,217, 61,156,171, 49, 76,224,128, 24,107, 80, 11, 89,241, 14, 1, 49,184,222,187, 35,201,148,162, 22, 23,217, 96,178,245,113, +214,239,215,222,167,106,238,115,204,158, 11,206,254,243, 24,161,197,184, 96,149, 27,105, 45,183,212,156,181,168,146, 98,120, 37, +174,212,137,186, 84,126,129,146,147, 5, 21, 37, 59,178,193, 48,166, 63,184,165,120,245,211, 5,177,107,224,139, 65,128, 82,243, +214,139,180,105, 31,158,149, 45, 98,233, 98,230,163,207,173,160, 31, 79, 51,150,101,105,142,122,166, 62,176,137, 94,138,152,135, +187,246,172,103,227, 56, 80, 96,132,113,192,176, 59, 32,141,123,112,136, 54, 33, 49, 33,171, 98, 94, 38, 64,242,198,205,106, 69, + 53, 46,230,183,203, 67,214, 89,208, 32, 99,188,223,216,252,211,204, 85, 90,116,206,198,112,229,162,192,244,113,156,155, 25,209, + 26, 69, 13,140, 32,132,167,253, 1,111,238,110,177,223, 15,184, 29, 9,211, 41,224,197, 45, 48, 45,130,223,189,125,194, 56,143, +248,187,207,126, 1,121,253, 22,199,156,177,104,213,240,207, 40,101,217,216,191,214,232, 78,179, 54,147,230,232,103,178, 69,105, +193, 30, 81,150,198, 62, 79, 53,182,147, 8,145, 45,237, 43, 50, 97, 64,205,232, 22, 55,139,113, 66,156, 10,202,112,131,180,187, +193, 61, 24, 55,135, 91,220,222,190,196,249,241, 29,206, 80, 4, 45,136, 98,217,227,171,174,185,133,185,226, 50,147,156, 55,165, +141, 26, 81, 14, 87,118,232,253,235,120,173,136,211,134,179,112, 49,155, 95,170, 29, 58, 99, 2,234,242,140,185,127,253,187, 41, +125, 77, 98,236, 4,144, 29, 82, 6,247,143,168,190, 18,205,231,157,170, 25,141, 17, 97,251,235,174,237,103,187,235,164,202,222, +130,239,174, 21,198,104, 15,186, 54, 87, 81,173,185, 90,251,254,213, 14,134,188,128, 67,181,237,217, 43,167,165,160, 59,255, 58, +119,184,117,106,151, 13,225,174, 25, 4,117,153,195,151,179,209,239,227, 58,125,148,224,216, 13,239, 7, 89,240,243,229, 9,223, +164, 27,204, 28,254, 40,132,185,203, 66,251,167,202, 96,255,104,244,234,191,199,233,252, 79,249,184, 8, 22, 90,240, 73, 4, 62, + 73,132,187, 72, 56, 48, 97, 12,234,206, 94,125,159, 94,139,175, 64, 73,154, 84, 5, 98, 94,230, 70, 92,246,169, 55,172, 51, 68, + 77, 23, 35,162, 54, 33,163,221,172,254,113,182, 23,144, 92,118, 22, 98,112,211,141, 21,238, 44,110,191, 74,197, 77, 98,212,246, +218,117,177, 85, 15,128,150, 22, 86, 39,110, 47,238,201,211,172, 82, 98, 12, 28,214,238,191,155,206, 91,252,106,213,161,251,126, +140,187,253,122, 93, 67, 7, 2,192, 17,194,197,204, 37,196, 82,160,204,227,189, 30, 4,213,191,210, 87, 1,200,205, 75,189, 46, +224,172, 6,114,179,129, 85,151,170,193, 19,239,138, 19,224,168, 35, 17, 41, 24,165, 20, 76,203,130, 41,151,150,192, 38, 66,224, + 0, 96, 94, 32,139,237,208, 53, 23,159,242,183,133, 0,193,228, 65,156, 2,194, 48, 32,236, 70, 83, 32,112,180,232, 85, 21, 76, +203,188, 97,189,247,187,204,190,204,108,116,227,196,155,178, 64,228, 12,255,190,104, 83, 95,140, 28, 46,118, 39,175,112, 81,172, +158, 79,143,189,247, 25,219,255, 2,227,219,187, 59, 28,111,246,248,114, 76, 56,236,109, 5, 82, 22, 69,209,140,229,233,140, 79, +190,122,141, 50, 21, 28,223,190,198,178,204,166, 22, 88,102, 20, 89,140,233,174,236,135,191,182, 48,144, 22,175,233,129, 29, 65, +217,204, 91,152, 17,227, 14, 41, 68,211,134,151, 9, 73, 50, 6, 0,145, 20, 9,132, 4, 43, 26,177,101, 18,212,130,110,206,126, + 36, 5,161,100, 12, 28,112,115,247, 18,187, 52, 96,122,251, 45,244,195,239, 48,228, 39, 67,201,154, 43, 93, 23,205,250,172,189, +217, 22,116,254,200, 30, 29, 31,129,219,175, 23, 16,186,178,239,165,141,131,226,246,181, 88, 63, 81,187,226,221,166,247,142, 72, + 73,188,194,232, 53,166, 24,216, 78,222,212,217, 42,115,107,182,217,191,150,187, 73,189, 91,135,152, 70, 12, 68, 43, 92, 94, 95, + 75,118, 73, 26, 57, 33,174, 53,183, 27,153,234,106,135,211, 60, 18, 28, 1, 92,185,169,245,251,120,214, 5,185,138,198,180,188, +182,178,113,119, 4,179,203,181,183, 35, 89, 51,241, 44, 27,161, 27,152,228,247,193,239,245,247,173,102, 76,189, 57,144,159, 35, + 65, 21,159,229, 39,220,151, 25,223,241,254,143,206,130,191, 22, 18,246,131, 7,186,252,180, 55,255,151, 63,105, 47, 25,120, 21, + 25,119,193, 28,228, 6, 94, 37, 22, 27, 50, 20,217,156, 41, 88, 67, 10, 0,105, 55,177,135, 32,123, 48,210, 10,157,213,137,206, + 10,185, 97,218,228, 41,106, 4,234,220,221, 92, 6, 70, 97, 19,175, 40,106, 19, 43, 73,182,116, 52, 38,144, 16, 56,152, 52,204, +208,116,118, 47,108, 52,167, 56, 34,147,151,153,102, 28,136,129, 48, 36,194,232,153,236, 85,175, 94,205, 28, 8,220, 50,187,213, + 11,120, 11, 96, 35,207, 35,239,172,205,213,232,245, 0, 39,107, 56, 4,208, 92, 64,190, 18, 0, 1, 20,201, 51, 28, 87, 13,141, +214,128, 20, 50, 4, 95,214,166,191, 73,236,164,148,102,100, 34, 13,246,247, 28,117, 38,139,188, 4, 99, 41, 22,169, 90,242, 58, +209,201, 44,200,211, 9, 88,102, 67, 39,164,108,184, 2,213, 96,132, 2,129, 98, 66, 26,118, 24,118, 54,161, 19, 83, 51,203,201, + 82,112,154, 78, 88,150,243,186,203,235,225,157,103, 83, 70,216, 40,160, 87,173, 45, 87, 27,241,118,124, 53, 51, 94,149,103,129, + 48,116, 53, 74,114,187,163, 37, 55, 42,215, 16, 16, 16,176,164,132,119,119,183, 40,187,132,199,135, 19,230, 19, 97,154, 51,150, + 89,240,254,225,132,233,215,223, 98,247,235,239,240,184, 44,152, 80, 32, 2,228,188, 96,209,236,196, 56,152,211, 94, 95,204, 68, +214, 84, 63,111,102,131, 26,210,195,195, 1,195,238, 6, 67, 76, 24,135, 17, 49,159,161,239,190,193, 32, 5, 41,176,229,139,123, + 49,143, 10,247, 99,215,150,218, 85,221,226,100,121, 0, 30, 4,121, 62,226, 81, 5,249,248, 30, 92, 78, 8, 90,106,234,122,251, +127,116,242, 40,190, 82,164, 25, 91,150, 58,125,223, 58, 3,215, 60, 6,234,132,255,124,161, 78, 87,105,139,180, 66,110,155,247, + 82,183,129, 89, 11,120,187,250,136,186,175,213, 77,195,218, 54,232,125, 97,175,113,202,213,170,153, 86, 78,204,230,103,215,111, +221, 12, 96,154, 96,212,253, 32,188,112,119, 80, 54, 53,231, 28,105,118,204,212,167, 42,210,234, 21, 97, 60, 11,117,244, 82, 58, +174,140,115, 97,188,208,175, 9,125,234,171, 77,109,246,186,161,163,148,126,108, 82,215,223, 83,220,171,207,129, 94,121,141,133, +128,187,114,198,151,243, 35,222,196, 29, 10,209,117, 68,230, 7, 64,151,255,108, 69,253, 47, 77,162,246,251,254, 28, 8,120, 21, + 77,151,126,203,132, 17, 70, 26, 49,126,217, 74,210, 2,173,114,142, 21,110,243,163, 59,248,191,218, 81,102,152, 55,238, 21,236, +240, 25, 51,173,209,137,157,169, 8,117, 59,210, 6, 48,138,154,237, 67, 55,173, 88,216, 68, 64,240,130,203,210,107,183,205, 57, + 46, 4,106,110,104,145,109,114, 77,108,177,148, 41, 40, 66, 84,164, 96, 63, 79,170, 39,183,172,200,113,101,132,247, 46, 79,170, +118, 83,175, 19,230, 74, 71, 42,100, 86,180,186, 40, 72, 22, 48, 21,112, 80, 48, 27,107, 95,192, 40, 37, 67,115,141,164,237,189, +156,105,179, 63, 23,169,118,187,186, 73,111,173,146, 31,102, 66, 36,130,106, 68, 46, 5,204, 10,102,133, 4, 54,239,120, 44,144, +178, 88,244, 4,105,103,177,234, 19, 78, 61,168,153,205,141, 47, 5,132, 97,108,198, 63, 28,163, 43, 20, 10,230, 60,227,124, 62, + 66,242,130,184,113, 98,191,132, 4,107, 52,102, 77,195,227,142, 33, 77, 91,194,150,203,214,218,132, 73,220,214, 1,172,218, 61, +171,219, 29,233,198,148,214,229,144,228,104, 11,129, 48, 29, 14, 56,125,249, 10,179, 18,190,251,246, 3,178, 20, 20, 81,236,199, + 1,167,119, 15,184,251,246, 53, 94,205, 71,187,198, 84,145,243,132, 44, 11,140,234, 72,190, 63, 95, 9, 95, 85, 70,104,205, 20, +187, 4,141, 16, 33, 24,121,143,221,225, 14, 67, 26,176, 11, 17,251, 97,135, 82,102,100, 0, 3, 9, 18, 12,122, 31, 84,125,170, + 7, 2,164,173,115,184,203, 44, 11,146,161,231,119,144,243,123,115, 30,163,213,196, 84,187,184, 26, 85, 52, 67,147,107, 40, 6, +127,100,106,255, 88, 65,223, 18,224, 62,254, 57,215, 40,114,212, 49,219,123, 30,197,250,250,244,196,184, 14,181,241,196,195, 85, +111,190, 78,232, 11, 71,156,227, 0,196,100, 30, 6,101, 66,242,175, 89,175, 47,234,146, 16,159, 23,245, 62,213, 14,221, 42, 78, +117,181,169, 9,215,224,239,154,140,215,161, 33, 21,161,211,234,215, 78,230,185, 33,213, 44,170,139,194, 45, 94,220,103,172,185, +234,155, 5, 58,161,155,172,117,179,226,184,140,165,253,216,132,174,248,184, 42,225,210, 8, 42, 66,240,179,252,128, 95,201, 39, +120, 31, 18,134, 31,185, 25,205,191,169,168,255, 84,208,183,127, 70, 0,159, 4,224, 69, 36,220,176, 98, 71,132, 40,118, 73, 23, +169,251, 67,119, 62, 35,211, 90, 55,123, 67,114,227,104,215, 98, 66,183,126,113,220, 77,171, 76,107,110, 58, 51,183, 35,171,179, +141,234, 14, 84,117, 75, 84, 51,254,128,147, 82, 64, 12,102, 35,187,113,221,159,139,216,254, 83,205, 6, 52, 6,152,241, 11, 27, + 57,206, 28,228, 44,117, 42, 80, 54,135, 55, 22,132,224,218,216, 70,206, 34, 52,130,179,162, 99,177,214,155,159, 92, 91, 94,141, + 32,252, 38,146, 42, 13, 50, 25, 90,169, 96, 31,121,227,144, 34,132, 70,168, 48,196,119,220, 42, 29,113,137, 59,235, 87,149,182, +175,171,115, 25, 57, 3, 94, 59,198,107, 0,155, 60, 47, 16,134,196,216,237, 19,104, 8, 88, 22, 65,158, 9,121, 86,104, 4, 36, + 16,116, 1,100, 41, 32, 33,119,205, 51, 43,206, 16, 7,179,227, 13, 64, 74,140, 52,142, 46, 21,180,236,249,162, 5, 89, 5, 83, + 94,176,204,103,104,201, 87, 32,192,149,215,176, 5,122,195,133,214,185,203,130, 87,131,113, 88,245,217, 62,216,120,147,108, 4, +196,203,233, 92,215,207,108,214, 52, 74, 93, 66,158,226,233,139, 23,152,127,249, 5,228,205, 3,230,243,140,251, 23, 7,236,247, +201, 44,112,255,233, 43,252,205,121,198, 93, 74,120, 2,160,121,198, 34, 11,138, 10,202,197, 28, 67, 29, 46, 74, 84,119,225,246, +111,244,169,123,208,130, 93,153,176,139, 17,247,183,183,192,114,198,227,187,111, 48, 46, 39,140,204, 72, 48, 5, 71, 4,144,200, + 35, 57,117,221,165,171,244, 49, 33, 88, 77, 74, 58, 51,149, 42, 83, 92, 11,186,108,218,156,143,145,225,120,211, 64, 93, 55,145, +169,141, 43,125,164,116,211,102,140,167,171,255, 77, 87, 9,111,220,237,182,187, 84,181, 22,140,196,173,152, 19,173, 48,253,204, + 17, 31,210, 1,184,255, 20,247, 47, 63, 5, 49,225,244,246, 53,230,199,183,216,229, 9,227, 5,218,183, 21, 53,210, 51, 60, 91, + 59,104,187,153, 52,193,253, 38,234, 6,173, 38,233,169,110,238,247,214,212, 87,131, 97,245,105, 29,218, 10,123, 37, 45,106,127, +239,122, 35, 49,171,184,163,158, 55,229,221,216, 79,220,189,125,241,252,127,172,168,119,125,192, 70,182,103, 16,152,174,235,187, +139,221,250,125, 57,227,179,114,194,187, 56,108,205,181,254, 68,181,236, 7, 15,116,249, 75,115,132,251, 67,254, 48,128, 27, 2, + 94,176,226, 22,192, 78,129,168,226, 30, 41,110,239,192, 0, 40, 59,252,213,129, 68, 85, 15,222, 8,107,210,110,162,213,229,104, +221,189, 48, 91, 81,111,195,123, 65,115,115,171, 0, 89, 45,176,165,238,167,224,194, 16,215,178,154,169, 27, 3, 89,176,176,197, +127, 22,212,130, 79,216,239, 70,236,216,188,214,131,123,176, 7,134, 57,189,113, 6,177,250,251, 93, 83,171,210, 65,185, 70,150, + 83, 33, 72, 65,167, 79,245, 66, 11,238,140, 61,208, 58,111, 13,246,120, 73,204,204, 2, 94,208, 73, 11, 36, 87, 93,115, 0,113, +180,223,183, 80,155,156,173,235,183, 51,167, 69,212,250,222,157,132,154, 89, 7,145,233,210, 85,141,212, 86,156,163,184,228,140, + 44, 25,136, 12, 74, 1,113, 4, 70, 25,192,229, 96, 82,182,243,132,233,241,132,124, 58, 26, 66, 80,172,224,242,176, 67, 26, 71, +115,141,131,152,246,127,183, 71, 76, 9, 20,108,185,146, 75, 65,150,130,243, 52, 97,153, 38,223, 41,243,118, 31,143, 14, 94,165, +245,144, 95,167,169,237,132,222, 62,238,201,124,132, 26, 94, 67,109,239,110, 7,212,102,172,241,117, 7,161, 19, 22, 65,149, 29, +203,137, 70, 90, 26, 2,222,255,213,207,177, 12, 3,110, 82, 4, 82,194,187,183, 79, 16,189,197,141, 22,252,167,183,239,241, 57, + 7,148, 24, 45,194,119,122,106,171,141,130,122,189,209, 54,164,166, 26,197,168,169, 53,170,206, 60, 65,145,242, 4,122,248, 14, +122,124,143,227,135,175, 65,101,193, 46, 79, 24,136,144, 32,136, 10, 36, 37,103,187, 87,251,215,122, 56,203,154,141, 14,185,152, +194,116,179,107, 93,155,202,109,248, 7,225,251, 89,238,151,208, 58,125,228,254, 39,162,171,149,100, 37, 63,246, 44,247, 62,254, +244,250, 79, 38, 94,223, 14,228,118,174,232, 98, 82, 59,232,189, 42, 97, 4,192,121,216, 67,119,247,120,117,255, 2,159,126,241, + 51,208,184,195,211,139, 79,241,225,119,223,225,225,205, 55,144,243, 7, 28, 44, 1,189, 35,220, 93,206,219,218, 53,228,125, 67, +212, 21,239,190, 65,114,181,141,250,106,164,217,195,122, 72,139, 64, 49,250, 36, 46,222, 88,139,187,198, 9,100, 53,141,194, 74, + 22, 46, 13,146, 71, 91, 87, 49,204,220,230,210, 85,166, 71, 83,244,162,176,235, 71,200,115,221, 37,177, 77, 64,188, 64,111, 20, +192,160, 25, 63,155, 63,224, 31,199,251,239,157,242,127,236,144,124,252,169,160,255,225,127, 6, 0, 47, 89,113, 79,192,129, 20, + 35, 81,103, 74, 82, 15, 84, 50,219, 81, 39,176,213, 34,195,206,140,102,174,108,246, 90, 40,169, 75,163,170,196,184, 45,153,165, + 50,197,165,146,219, 58, 51,151, 82,119, 79, 46,247, 82,173,121,228, 54, 65,130,179, 57, 65, 9, 48, 23,131, 87, 57, 48, 14,251, + 61,110,153,144, 66, 64, 10,230,234,198, 48,132, 33,178, 34,133,106, 29,107,251,122, 40, 53,233, 24,187,110,141,131, 17,118,196, + 39, 39,169, 57,241,226, 93,123, 27, 26,215,149,132,212,246,184,183,225,240,140,103, 85, 5, 22, 1,115, 65, 76,220,166, 4,133, + 67,237, 74,206, 83,187,184,219,171,139,156,131,229,204, 12, 85,203, 68, 55,187,119,197,146, 51,206,243, 25, 89, 10, 22, 40,206, + 42, 64, 32, 28,198, 1,119,187, 1, 9, 9, 37, 68, 4, 16,206, 82,160,180,128,134,128, 48,236, 17,210,232,207,237, 2, 38,110, +238,124, 33, 25,192, 94,243,121,114, 22,156,207, 51,150,121, 70,168,146,190,139,105,189,186,127, 73,107,226, 58,129, 85, 31,193, + 74,189,186,157, 93,222, 83, 9, 79,117,231,201, 43, 25,140, 4,219, 21,190, 94, 24,157, 84,211, 18,123, 46,167, 79, 95,226,195, + 47, 63,199,249,195, 25,251, 93,194,221,237,128,127,250,205, 91,188,123,251,136, 23,111,223,224,231, 15, 39,196,113,192, 12,211, +164,151,101, 66, 17,237, 26, 5, 90, 9, 82,213, 88, 70, 45,201, 45, 64,205, 21, 78,141,248,150,124, 2, 31,100,193,160, 51,194, +162, 86,204,137, 16,201, 36, 56, 17, 4,246,114,142,126, 66,239,200, 88,186,210, 76,187, 87,191, 43,237,180,117, 59,108, 19, 61, + 61,135, 92,175, 49,220,245,234, 14,252, 18, 98,167,230,142,184,121, 63, 93,242,223, 87, 99, 24,106,176, 57,111,201,110,149,239, +209, 21,254,202,114,175, 19,185, 96, 37,191,193, 97,245,133, 24, 18,119,184, 29,119,184, 77, 3, 82, 32,132, 24, 48,220,223, 99, +140, 17,223,113,192,135,239, 20,152, 30,112, 67,114,189,220,117, 6, 76,253,180,190, 2,136,157, 70,188, 43,224,232,148, 32, 12, + 32,136, 69,215, 70, 0,162,197,154, 62, 17, 12,186, 38,180, 89, 51,232, 36, 57,183,139,173,146,182,222, 4, 42,211,118,114,110, +174,112, 14, 88,197,174,176,203,197,235,244,108,106,167,126, 13,247,241,201,190,127, 31, 3,248,116, 57,226,229, 50,227,109, 76, + 8,127,230, 58,247,175, 45,240,241,199, 94,204,127, 44,143,171, 74,216, 94, 48,112,195,198,126, 31,200,217,220,225,210,173,105, + 53,143,169, 19, 59,177,122,172,168, 49,182, 25,108,147,175,208,179,139,172,238,170, 68,116,147, 50, 86, 39,176,122, 19,102,241, + 0, 24,241,168,213,226, 30,202, 28, 16, 34, 16,130,145, 84,150,156, 49,229,140, 34,138, 16, 19,110,111, 15,184, 59, 12,184, 63, + 12, 56, 12, 1, 33,152,142, 60,144, 34, 4, 96,136, 78,150, 35,155,152, 1, 54,223,233,205, 94,183,230,148,251,138,161,136,167, +183, 73, 59, 24, 90,113, 34,239,244,217,200,111, 82,211,220,234, 33,230, 41, 22,149, 78, 32, 69, 32, 92,124,218,247,255,206, 86, +212, 77,187, 15,247,182,175,242,184, 26, 40, 33,110, 74, 83,144,115, 70, 94, 50, 50, 41, 78,211,140,105,153,177, 44, 5,194,132, + 44,130,211,124, 66,166,140,121, 55, 66,198, 61,110, 98, 66,116, 56,155, 67, 0, 69, 69, 26,247, 24,199, 3,150, 34,152,167, 51, +152, 10,198, 97, 64, 74, 3, 66, 72, 80, 0,185, 20,191,249,172,185,153,231, 25, 82,178, 5,209, 80,191, 69,165,141,247, 55,183, + 34,203,219,105,172, 34, 53,168,166, 64,107,255,195,212,237,100,181,231,208, 63,251,167,219, 61,210,118, 23,236,234,130,119,191, +248, 2,239,132, 48,157, 39,240, 46, 34,132,136, 23, 47, 14, 56,255,195,111,241,197, 87,175,177, 19,197, 28, 34,164, 20,204,203, + 9,185,228,110, 39,172,235,239,224, 43, 15,114, 82,100, 80, 65, 98, 11, 49, 26,192,136,196, 24,137, 16, 89, 49, 84,118, 59,145, + 73,217, 60, 87,155, 57, 64,226, 30, 37, 29,144,201,200,152,123,153, 49,158,223,131,228,220, 36,114,151,147,119,159,200,165, 23, +251,225,246,220,109,219,166,143,146,226,244,202,247,124,190, 98,184,176,227,221, 20,252,231,244, 58, 35,173,113, 55,141,115, 7, +167, 87,196,166, 11, 95, 97,238,206, 58,118, 30, 13,124,106,231,246, 56,133, 3,152, 3, 70, 8,168, 20,232,121,130, 80, 0, 66, + 64, 10, 1, 47,110,111,113, 58,190,192,219,249, 12,150, 9, 59,190,120,110, 20, 31, 41,244,186,153,214, 27,139, 93,214,137,188, + 78,240,107, 67, 96,129, 58,172, 93,129, 87,155,192,163, 88, 26, 91,128, 32, 86, 55, 71,248,249,208, 17,223,228, 25, 17, 68,155, +183,123,243,230,169,200, 57, 61,151, 21,110, 66,114,112,189,144, 95,251,149,175, 93, 3,183,101,198,231,203, 19,222,199,151,214, +120,255,153,235,222,191,166,176,199, 31,115, 49,255, 49, 61,182, 29, 25,227,253, 62, 16,110,162, 98, 23,141, 25,206,129, 91,202, +152,118,114, 20, 34,203, 2,231,224,211, 20,105, 39, 57,169,123,169,245,119, 19, 89,225, 66,169, 36, 52,234,156,161,136, 29,142, +180, 27,174,148,130,121,201,152,151,130,165, 86,251, 1, 5, 0, 0, 32, 0, 73, 68, 65, 84, 20, 55,103,177,182, 54, 36, 66,130, + 34, 72,129,148, 5,165,100, 48, 49,118,251, 1,135,155, 91,188,188,187,193, 39,183,123,220,236, 18,134,168,198, 80,102, 35,198, +113, 0, 66,176, 67,131, 41, 2, 26, 54, 64,102,125, 68,172, 30, 7, 89,164,251, 91,167,245,117, 2,175, 19, 35,251,158, 84, 9, +160, 98, 13,142, 50,173,238, 78,222, 5, 72,177, 61, 58,123,160, 76,199, 5,246, 61,188, 96,169,108,248, 38,151,177,184,212,202, +248,207, 57,155,153,140, 8, 50, 20,203,146,173,225, 33,203,222, 90,150, 2, 93,204,181,106, 89, 38, 60,156, 10,202, 48, 96,228, +128, 50, 79, 40,115,246, 44,109,182,136,251,188, 64, 36, 35,165, 0, 78, 3,216,165,131, 32, 67, 4, 68,140, 1,158, 11, 89,100, +171, 51,192,235,158,148,158, 65,186, 43,121,173, 77, 97, 29,254, 75,157,131, 24,209,115, 43, 83,136, 62,163, 57,173,182,163,253, +217, 69,219,127, 9, 8,165,224,124,115,131,175, 15, 55,120,123, 90, 32, 37,227,215,191,121,103, 83,248,180,224,175,191,250, 14, +159,206, 11, 10, 71, 20, 37, 44,203,140,121,153,218,114,167,143, 28, 93, 41,114,118, 61, 4, 82, 68, 16,146, 18, 6, 98, 36, 38, +140,228,240, 59, 44,220, 40,194, 38,174,232,111, 51, 17, 74,188, 65,217,189,132,134, 8, 42, 5,105,119,131,180,223, 67,127,247, +255,129,223, 63,153,174, 73,241, 44,162,182, 71,124,184, 74, 32,113,209,236, 92, 9,245,224, 43,196, 55,222, 20, 2,218,248, 18, + 16,182,146,179,109, 3,176, 78,239,253,251, 20,157,252, 20,222,220,123,161,238,119,232,204,157,229,107, 7,183, 91,131, 27,172, + 9,228,213,171, 95, 72,193,202, 72,108,136, 72,153,206,152, 31, 63, 32,136,128, 82, 66, 41, 86, 76,111,134, 17,111,226,136,227, + 52, 99, 20,233,158,178,149, 80, 88,209,173,122, 15,213, 21,154, 54, 89,218, 90,224,165,131,201,181, 11,100,129,174,176, 60,169, + 32,136,221, 87,172, 86,224,131,255, 43, 90, 39,246, 53,104,169, 39,231, 85, 84,175,184,254,189,134,198,108, 8,141, 93,247,213, + 41,104,159, 77,221,170,215,167,114,250, 30,178, 92,189, 14,130, 22,124,186, 60,224, 55,227, 29, 30, 57,118, 70,206,127,222,250, +247, 47,138, 94,253,105, 58,255,195,166,244, 91, 34,188, 76,213, 57, 78,177, 11,198, 12,175,187,111,240, 10,214,168,223,184,214, +165,247, 58,197, 46, 27,216, 13, 81,200,253,177, 85,108, 81, 76,174, 23,107,146,183,106, 1, 89,161,176,162, 40,146,177,204, 11, +206,203,130,105,206, 40,226, 71,144, 91,196, 18, 5,131, 65, 3,144, 66, 2,241,128,221,110,196,225,176,199,205, 97,143,219,253, +128,125, 98,155,208, 97, 54,176,145,205,198,213,200,122, 12,149, 80, 55,184, 27, 13, 59, 59,137, 79,117,181,105, 45,217,118,202, + 53, 97,174, 26,218,100, 81, 76, 57, 3, 10,236, 34, 35, 5,246, 93,188, 17, 6,217, 53,223,212, 89,176, 10,224,201,107, 98,164, +194,182, 22,246,144,216, 26,159,234, 76,123,114, 41, 27,138, 35, 6,206,134,111, 45, 72, 37,147, 49,131, 98, 50, 99,155,162,136, + 60, 32,133, 0, 41, 25,249, 60,227, 60,159, 80,192,208, 60, 67,243, 12, 34, 70,209, 9,169,184, 53,169,135,133,112, 99,144, 7, +107, 74, 56, 64,164, 32,139, 98,206, 5,121, 89,236,160, 35,190, 56, 88,214,132,173,122, 49,244,196,169,205, 14,157, 86, 35, 18, + 85, 89, 39, 22, 63,128,183, 59,244,234,251,173,155,132,175,103, 16,163,123, 2, 16, 20,223,238,246,248,111,139, 98,153, 23,151, + 8, 26, 82,243,242,248,132,255,225,120, 70, 2, 97, 2,144,165, 96,154,142,144,178,116, 13,194, 54,197,172,193,176,158,162, 54, + 16, 97, 96,198,224,174,112,131,154,195,226, 0, 55,154,129,137,248,234,191,224, 1, 58,222, 97, 28,246, 8, 90, 12, 29,217,223, + 0,146, 49, 41,173,171, 25, 60,243, 63, 51, 82,100, 59,222,217,185, 38,157, 27, 0,245,156,149,174, 57,114,201,146, 92, 66,241, +212, 15,140,219,156,251,141,173,108, 39, 33, 67,103,235,220, 2, 68,104,245,213, 39, 71, 98,152, 66, 87,208, 87,185, 90, 8,140, +149,187,191, 45,240, 77,171, 94, 13,100,216,200,150,145,236,186,139, 33, 33,178,173, 43,202,241, 1,224, 96,215, 88,206,136,178, + 32, 48, 97, 1,161,168, 25,255, 24, 81, 82,186, 8,222, 58,181,211,202, 79, 33,108, 8,188,210,219, 71,123,161, 23, 56, 42,231, +137,108,112,211, 24, 51,106,170, 69,221,254, 6, 21, 4, 87, 85,176, 90,127, 38,222,180, 52,243, 25,191,247,203,134, 79,178, 66, +241,153, 58, 41, 93,125, 77, 87,206,219, 71, 33,245,107, 70,158,207, 62,143, 46,194,102, 8,120,145,143,120,145, 79,120, 28,239, +255, 36,132,185, 63,246,212, 30,127, 42,228,127,224,148,238, 5,253,102, 32,236,147, 77, 33,204,106, 69,219,163,197,216,247,102, + 74,157,179, 1, 86, 3,147,202,252,172, 59,242,102,196, 36,171,134,179, 26,119,172, 80,126,241, 43,208,152,114,197, 33,247,121, + 46,152,115, 70, 22,128, 57, 90, 98, 91, 13, 71, 73, 9,187, 49, 98,140,108, 62,239,105,192,126,159,176, 31, 18,198, 33, 33,197, +186,155, 46,238, 22,231,178, 57, 48, 84, 25, 34, 97, 77,241,130, 19,190,104,221,243,170,146, 21,207, 90,208,179, 32,231,226,228, + 52,235,248,231, 92,240,254,120,198,241, 60, 97, 96,194,221, 16, 49,166, 0, 10, 1, 41, 70,236,198, 1, 9, 17,145, 98, 59,124, +225, 69, 76,138, 51,207, 89, 59,168, 78,237,251,203, 42, 91, 83,216, 66,219, 50,222, 59, 23, 63, 14,160, 0,115,116, 35, 99,191, + 75,181,190,116,210, 89,138, 59, 12, 41, 97,153,103,228,243,130,101,158,141, 15, 80,178,217,216, 18,144,139, 64, 74,198,126,103, +242,181,152, 6, 43,234,126, 16, 21, 21,136, 22, 15,219, 9, 40,101, 66,233, 88,239,232,103, 69,234, 89,209,212,145,211, 47,138, + 59,109,121,202,236,100, 59,106,240,115,207,158, 54, 88,186, 58,237,137,234,247, 28, 94, 70,184, 91, 66,196, 63, 15,123,124,147, + 11, 94,150, 5,211,121,193,203,151, 55,120, 21,129,207,191,254, 22,175, 68,176,184, 43,222, 52,159, 49, 77,167,102,205,123, 41, +249, 34,223,111,179, 23,235,129, 35,198,144, 48, 16, 99, 32, 69, 36,197, 64, 86,204,147, 31, 54,145,116,181, 27,245,223, 43,145, + 25,254,198, 16,176,127,245, 10, 0,240,244, 79,255, 8, 62,190,109, 74, 9,186, 66,133,234,139, 53, 42,153,238,226, 24,127,102, +235, 74,125, 99,242,204,164,119, 83,212,241,145, 73,175, 39,197, 41,173,231, 22, 83, 39, 61, 3,158,237,213, 55,251,245,250,223, +220, 23,245,245,181,237, 11,122,223, 4, 16, 25, 57, 23,121, 1, 99,143,225,230, 22,135,159,255, 21,242,124,198,249,155,175, 81, +150,217, 86, 66,211, 9, 44, 6,141,151, 10,185, 87, 99,135,142, 20,168,221,196, 92, 29,221,218,244, 92, 11,125, 7,155, 87, 36, + 78,171, 97,140, 23,253, 53, 78,218, 6, 19,106,254,237, 4, 74,150,111,207,121, 1, 47, 19,216,173,129,171, 50,163,191, 78,197, +253,225,155, 15,134,226, 89, 19, 89,165,173,252, 61, 5, 28, 31,219,157,247,157,222, 21,169,163, 16,176,215, 5, 47,243, 17, 95, +143,247, 80,226,171,211,250,159,195,235,253, 15,221,183,199,159, 10,250,239,159,210,239, 3,240,201, 64,184, 31, 24, 55, 3, 99, + 76,107, 68, 40,181, 49,202, 14, 96,226,224,122,241,210,136,107,218, 25, 47,192,179,211,139, 8, 80,164, 67, 16, 13, 58,174, 36, +146,202, 52, 86,207,140, 14, 85, 5,170, 12, 17, 59, 76,152, 3,134, 24, 17,210,136, 52, 12,230,252, 22, 3,198, 20,177, 79, 1, +187, 33, 97, 24, 2,134, 52, 96, 28,204, 50, 54, 4, 99, 24, 51,137,231,153, 59,187, 93,221,184, 83, 2,148, 25,161, 89, 81,244, + 72,153, 66, 90,187,236,133,124, 17,228,146,145,179,217,171, 42, 20,115,201,120,119, 58,225,221,135, 39,104,158,193, 67,196, 36, + 9,178,216,147, 22,135,193,167,217,157, 49,232,195, 74,127, 33, 93, 57, 3,134, 96, 24, 65, 79,178,133,178,172,147,151, 21, 52, + 21, 65, 17, 65,201,214, 40,229, 74,184, 83,107,174, 74,157,254,125,167, 23,217, 32,116, 21,197,116,158,145,231, 19, 36,155, 30, + 94,203, 2,168,103,109, 7, 2,100,113, 37,129, 37,175, 81,136, 45,144,165, 84, 70, 62,153, 7,124,164,132,162, 79, 40, 57,219, + 84, 68, 87, 96,191,206,215,125,213, 34,211,102, 58, 91,247,169,151, 52, 32,110, 19,209,250,113,115,205,211, 66,221,193,181,222, +236,189,219,150,170, 32,128,240, 56, 30,240,246,179, 79,241,242,179, 59,204,231, 25, 31, 62, 28,241,234,213, 45,246,223,190,197, +203,223,189, 55,132, 5, 64,150,140,105,122, 66, 41, 75,155, 72,187,136,150, 86,220, 24, 6,185,239,210,136, 93,218, 33,145,173, +126,146, 22, 35,203,185, 99, 87, 66, 37, 58, 17,162,251,145, 51, 20, 36, 5,116,124, 13, 89,142, 80, 78,152,202, 35,116, 62, 65, + 31,223, 32,200,244, 12, 51,165,231, 6,172, 77, 79, 77, 87,120,207,207, 27,145,203,239,117,205, 40,230,186,244,235,153, 43,123, + 95,220,157, 24, 75,196,207, 31,221,134, 0,185,230, 57,108, 62, 70,188,134,171, 52, 36,167,203, 68,135,121, 18, 52,146, 93, 62, +161,156, 24,115,140,216,125,249, 5,134, 23,247, 88,222,190,193,244,240, 30,146, 23,104, 89, 64,101, 65,240,102,176,230,158, 83, + 71,140, 91,249,166,210,110,242,158,249, 46,189,162,165, 57,196,213, 98,238, 5, 29,171,100, 77,219,247, 17, 59, 61, 56, 2,135, +207,113,251,217, 47, 81, 56,224,253,251,183, 88,142, 31, 64,231,247,224,233, 17,253,178,228, 90, 97, 95,122, 52,168,155,206, 3, + 61, 47,216,130,231, 44,248,218,199,200,199,170, 60, 0,186,178, 99, 15, 80,188,204, 19, 70, 89,112, 14,233, 35,106, 7,250,147, +218,191,254, 75, 96,249,248, 83, 65,255,254,238,110, 36,224, 69, 34,188, 24, 3,110, 18, 99,151, 12, 50,171,171, 48,233, 47, 9, +182,195,150, 43,100,165, 53, 65,172, 22,234,181,168,139,195, 86,181,136,169, 20,168,100,168, 20, 43, 82,226,137,100,164, 72,209, + 29,222, 66,180,226,162, 12,202,102, 10,193, 33, 97,112,205,244, 16, 3, 98,100, 12, 49, 96, 23, 45,118, 53,198,136,228,208,119, + 8,228,114, 53,131,220,205,104,206,119,125,107, 98,181,185,188,209, 10,215,217, 59,116,133, 43,221,105,202, 96,247, 5,121,177, +192, 20, 17, 35,237, 61,205, 19, 30,158,142,144,229,140, 61,153, 70, 89, 51,176,136,147,125, 84,112, 34, 66,140, 1, 67, 74, 13, + 10,172, 94,241, 92, 61,174,213,200,113,170,181,136,118,200, 71, 53,179,168,190,238,126,200,228, 98,205,134, 20, 96,206, 25,139, + 42, 84,141,189,207,204, 24, 98,132,130,112, 58,157, 48, 31,143,208,121, 2,147, 43,160,213,114,185,201, 86,160,205,227,158, 67, + 68, 72,102, 50,195,236, 79, 92, 76,230,165,205, 5, 33, 38, 44,234,225, 50, 37,251, 77, 69, 27, 50,208,150, 63,221, 69,225,244, + 83, 91, 45,246,212, 77,110, 85, 91, 64, 21,158, 93,177,194,230, 96,235, 22,187,178,153,105,183, 68, 36,130, 66,226, 14, 95,191, +250, 18,223,222,236,176, 83,224,241,241,140,152, 24,119,211, 25, 47,126,245, 21,210,180, 96, 9, 1, 69,129,105,153, 49, 47,231, +182,175, 86,122,190,147,118,133, 61, 14,227, 1, 55,187, 91, 12,196, 8,146, 45, 46, 22,140,136,140,232, 5, 61,144,173,122, 76, +242,182,234,204, 73, 5, 88,158,192,249, 9,208,128,242,168, 64,155,228,250, 29, 42, 93, 41,232,151,214,175, 23, 51,182, 94,158, + 51,215,118,171, 23,133,253, 50, 27, 93,175, 53, 3,120,214, 2, 52,195,151, 75,194, 92,167, 98,208, 11,153, 58,209, 22,193,105, +215, 9, 83, 51,111,234, 35, 69, 43,159, 2, 4, 4,201, 88,206,143, 56,230, 9,203,255, 51, 97,184,185,135, 76,103,148, 60, 65, +178, 17, 69, 99, 94, 48,106,110,238,112, 91,212,176,186,188,233,170, 21,168, 72, 98,149,170,105,151,222, 88, 25,236, 21,161,106, + 13, 64, 89,167,245,118, 97,154,169, 85, 30, 94, 32,222,255, 12,119,119,159,226, 52,157, 16,226, 8, 30,239,144,195, 8, 13,123, +224,252, 6, 84,242,230, 85,212,238,154, 21, 53,232,157, 97, 5,254,130, 13,185,105,120,190,111,151,126, 13,189, 34,122,142,205, +175,207,179,226,166,156,113, 83,188,168,255,158,186,245,175,217,123,255,144,176,124,252,169,160,127,252, 79, 0,112, 19,128,151, + 59,198,237, 64,216, 39, 32, 69,151,180, 48, 53,168,106,181, 61,116, 34,141, 79,226, 22, 46, 98,251, 36,116,133, 94,197, 58, 94, +234, 34, 70, 37, 27,161, 77,138, 17,188,138,227, 78,100, 33,210,224, 33, 33,165, 1,204, 9,137,200, 53,235,236, 69, 59, 33,165, +136,228, 69, 61,134,128, 20,200,226, 85,163, 91,203,178, 73,172, 34,171,193,165,129,192, 28,172,224, 53, 43,202,213, 27,220, 64, + 5,241,157,153,111, 19,220, 22,178, 33, 15, 89,145, 75, 70, 89, 50,138, 20,168, 8,178, 8,166,105, 6,242,130,189,171, 4,180, +152,212,133,213,172,194, 84, 12, 74, 55,230,184, 96,205,123,210, 14,103, 91,197, 70,245,154,229, 38,241, 91,253, 97, 43,248,108, +154,121, 43,232,211,180, 96, 17,193,146,141, 28, 23,253,198,212,236,175,133, 8, 88, 20, 99, 96,208,110,103,235,130,243,201,236, + 44,221,185,151,157,103, 16, 99, 64, 72, 17, 33, 70,164, 56,128, 34,131,162, 17, 9,237,144, 99, 8, 8, 75, 46,152,167, 19, 84, +114, 87,148,113,213, 87, 84,107, 10, 95,103,253, 89,247,121,235,190,179, 94, 95,213, 87, 95,154,119,198,234, 31,203,109, 34,151, + 70, 95, 66,231, 47,239,147,144, 42,136, 71, 60,222,124,142,239,126,246, 5,226,253, 1,199,167, 51,152, 25,159,236, 34,190,252, +213,175,241,234,195, 19, 10, 49,178, 42,178, 22,228,249,132, 82, 10,208,197,233,118,206,162, 14,187, 19, 14,227, 13,238, 15, 47, +176, 11, 17, 92,178, 89, 11,123,226,154,121,190, 11, 42, 59,131,197, 44,147,169,219,123,183, 71, 43,240,163, 91,159, 79,201,186, +149,166, 93, 43,174,140, 43,250,165, 43,164,168,171,103,208, 71,136, 84,232,118,188,215, 63,119, 13, 22,218,164,171,211,181,207, +234,161,219,109, 54,251,198,143,189, 51,138,177,125,111, 87,136,253,255, 85, 13,182,102, 45,144, 69, 48,191,251, 29,230,135,119, +190, 83, 39, 44,165, 64,151, 9, 99, 89,144, 42, 10,216, 91, 45,202, 42, 43,187, 44,244, 90, 19, 15,171,244, 12, 29,135, 69,205, + 53,209,126,135,130,210, 8,112, 93,110,122, 69,137,120, 0, 13, 55, 24,137,176,188,127,139,233,124, 4, 47,139,157, 93,113,196, +124,147,128,144,192, 79,175, 81,202,180,121,150,234,160, 84,234,107,223,145,227, 46, 27,179,203,181,201,199, 52,235,218,161, 0, +253, 62,255,218, 53,194, 0, 70, 45,184,203, 19,222,197,253, 31, 44, 88,255,115, 22,247, 31, 77, 81,255,177, 71,183, 70, 56,236, +158, 24,251,196, 24, 18,173,121,216,178, 50, 64,213,147,150, 84, 75,187,130,204,135, 92, 93,234,101,218,109,233, 32,173, 10,113, +149,146,161,165, 88,241, 47,217,119, 85,104,137, 95,204, 12,226,132,224,123,243, 20, 35,130,103, 97,183,220,244, 96,214,170,145, + 45, 86,149, 35, 33, 6,251,184, 21,113, 43,228,193, 13,112, 34,179,125, 15, 4,135,151,155,194,219, 14,147,122, 3,183,221,191, + 63,126, 41,171, 19,158, 23,102, 41, 5, 37,231, 86,104,181, 20,132,188, 96, 39,217, 24,185, 45,200,164, 64,200, 12, 54, 56, 68, +196, 16, 80,195, 91,155,243, 85,181,133,247,212,182, 53,237,162,187,137,217, 83,216, 92, 74, 19, 96,137,116, 89,129, 92, 22,204, +243, 98,174,110,217,212, 0,230, 85,111,187,241,101, 58,181, 44,244,196, 1, 55,135, 27,104, 41, 56,157,142,144, 50,131, 81,140, + 96,200, 53,203, 62, 34,165, 42, 97,179,212, 59,142, 3, 56,133, 53, 34, 22, 2, 44,138, 60, 23,228,121,246,181, 2,173,135,147, +174,253, 73, 83, 17,232,170, 69, 86,244,152,246, 90,234,120,115, 32,105,119,112,213, 99, 71, 80, 61,214, 86,248,177,186, 2,212, +195,203,209, 2, 30,176,236, 94,225,195,207,126,134,229,139, 23, 24,131, 24,175,226,238,128,155,127,248, 10, 47,127,253,157,193, +238,142, 60, 45,101,193,178,156, 13,210,118,121,221,102, 98, 86,187,150, 14,187, 27,188,184,253, 4,187,152, 16,165, 32,128, 17, +196,116,233, 1, 5, 81,216,208, 36, 16, 72,139, 19,252,216,144,159,102,105,140,171,187,242,231,170,241, 11,187, 87,186, 62,142, +109,191,118, 27,119,250,140, 61,255,209,233,251,227,161, 45,151,165,130,186, 9,146, 55,208, 59, 63, 99,224,145,147,203,200,185, + 34,220, 93,216,116,173,241,243,127, 55,154, 47,221,106, 28, 2, 0,145, 12, 41,150,144, 39,254, 5,131,184,239, 95,119,230,216, + 69, 89,214,194, 35,178, 97,186,175,154,244,178, 58,194,249,249,102,147,121, 89, 29,227,170, 52,173,153,203,172, 13,165, 93,192, + 9,135,195, 29,238,238,238,240,244,240, 1,200,179, 25, 11,169,249,125, 40, 49,150,241, 30, 34, 64, 56,126, 7,145,121, 35, 36, +108,176,249,133, 97, 16, 46, 96,120,214,109,161,175,143,161, 96, 43,117,187, 54,179, 95,234,218,251,119, 36, 45,184, 47, 39, 68, +220, 99,105,236,139, 31,103,113,191,252,121,241,167,130,126,253,143, 0, 56, 68,194,139,129,112, 72, 38,205,225, 78,250, 33,190, + 59, 82,113,135, 47, 10,238, 35,238, 12,240,226,211,123,241,191,112, 13,117, 45,154, 98, 5, 81,115, 70, 41,139, 65,244, 82, 99, +131,108,138,166,192, 94,176, 35, 56, 38, 68, 54, 29,170, 57,192, 49, 66,140, 86,196,169, 6,176,248,174, 63, 0,129, 21, 49,148, +230, 15, 31,200,141, 65, 40,154,140, 6,177, 25,223, 52, 98, 78, 49,167,187,202,198,151,178, 18,104,196,119,214,168,108,108,255, + 29,114, 46,150, 56,231,122,237,156,179,133,162, 44,217, 58,119,170, 4,162,154, 16, 71, 72, 33, 97,136, 86, 40,181,193,170, 53, + 70,118,245,158, 94,221,195,196, 82,215,180,131,108, 43, 11,159, 12, 21,201,121,193,105, 58, 99, 90, 22, 87, 3,192, 25,236, 10, +201, 51,144, 13, 81, 64,109,182, 98,194, 16, 2,114, 94,112,124,122, 0,230,179, 65,238, 4,127, 30, 3, 98,138, 72,227,136,113, +220, 35,196,193, 24,251, 49, 32, 14, 9,101, 94,224,171,108,164, 33,154, 36, 76,229, 42,212, 7, 39, 23,246,182,102, 53,108,131, +104,235,251, 77, 68,215, 11, 86, 47,227,234, 50,168,235,225, 87, 11,120,125, 95, 77, 78, 3, 37, 44,195, 11, 28,135, 91, 60,125, +114, 3,189, 27,113,126,255,104,154,220, 15,239,241,229,111, 94, 99, 44, 11,102,174, 83,186, 34,231, 25, 34, 10, 38,155,177,201, +197,193, 45,168,133,128,155,253, 13, 94,220,190,194,200, 17,172,185,201,214, 2,153,145, 76,160,128, 72, 10, 82,182,104, 78,119, + 57, 84, 89,252,180, 46,104,130, 56,213,103,135, 45,125,100,143,126, 9,173,211, 71,119,237,151,223, 73,175, 66,238,120, 70, 0, +220,254,116,250,232, 62,182, 90, 27,178,175,208,234,127,135,173,151, 59,117,147,120, 95,164, 84,160, 20, 86, 70, 55,122,251, 82, +190, 82,109, 90,142,233,246, 81,105,181,211, 69,203, 2,208,206, 54, 77,122, 23,183,198, 86,247,199,218,144, 67,199,122, 42,226, +216,125, 77, 51,138,169,235,157, 26,152,100, 61, 25,164,115,248,147, 78,238, 22, 67,194,221,139, 87,248,252, 63,253,143,248,246, +159,127,133,135,167, 7, 4,102, 36,255, 53,146,131, 77,243,238, 14, 82,102,208,241,117,243,112,184,132,226, 11,250, 0, 41,139, +250,173,240,185,214,194,222,195,246, 31, 33,208, 53,120, 94, 63,110, 90, 83, 27, 41, 86,193,109,158, 48, 74,198, 28,198,143,232, + 74,126,156,197, 61,254, 84,200,175, 23,244, 8,194,139, 4,220, 68,198,142, 9,137,237,208,206,197,236, 86, 43, 39,132,171,143, + 25,213, 41, 93, 60,215, 91,218, 68,238,136,175,255, 43,182,255,205, 25, 82, 22,104, 46, 45,219, 28, 32, 15, 27,177, 68,180, 52, + 36, 12, 41, 98, 55, 68,164,193, 32,246,232, 19, 99, 98,115,145, 98,246,168, 85,152,189, 43, 19,214, 76,104,173, 17,169, 62, 97, +113,176,230, 67,157,229,222,220, 80, 8, 16,219, 97,139, 8,230,101, 65, 89, 22,168,168,237,148, 65,157,193,140, 77,200,182,102, + 47, 13,101, 16, 21, 44, 57, 99,158, 38, 44,211, 25,165,100,251,217, 76, 96, 79,132, 32, 54, 40, 60,166,104,169,102,129,219,141, + 88, 45, 56, 91,108,172,248,116, 32,218, 36,110,218,194, 66,180,153,168, 88, 33, 45, 80, 89,160,178,128,130,101,203,163, 56,124, +183, 44,144,197, 30, 35, 28,105, 32, 21,228,121,194, 67,201, 40,243, 25, 50, 29, 13, 34,110,236,101,128, 98,240,192,150, 17,113, + 72, 8, 49,174,113,184, 80,219,175, 23, 65,208, 12, 2, 91, 44,233,124,126,238, 29,222, 17,224,122, 11, 20,221,248,198,210,115, + 6,214, 5,233,237,178,208, 85,174,183, 29,174,212, 10,187, 59, 22,123, 67, 21,177, 12,247, 56,167, 91,204,227, 8,125,181,199, +221,167, 55,120,130,226,183,255,253,107,124,246, 15,223,224,197,195, 17,153, 24,197, 55,222, 42, 5,146, 21,196,102,174, 19, 42, +236, 95, 77, 70,160,184,217,223,225,238,230, 37, 70, 38, 4, 93,124,111, 94, 53,232,212, 60,220,153,170,154,163,122, 4, 3,162, +150,125, 32,202, 80,146, 75,115,238,239, 63, 63,174,254,171,191, 39, 18, 85,175,108,192, 63, 70,168,163,230,254,116, 9,156,211, + 71, 97,249,158,238, 85,131,119,194,234, 53, 64,151, 54,177,107, 1, 87, 41,107,222, 3,208, 89,165,137,201,215, 46, 22,200,218, + 59,236,121, 65, 83, 17, 71,102, 86,146,197, 58, 49,119,211,119,229, 88,136,221, 47,109,109, 40, 61, 12, 95,223,150,182, 87,175, +223,113, 3,179,187,213,180,118,112,251,118,235, 81,195,161, 2,118,183,183, 56,220,191, 68,248,230, 43, 27,100, 28, 15,100,103, +240, 4, 38,148,221, 29, 40, 63, 1,203, 17,151, 54, 62, 78, 33,128,144, 23,243,250,220,235, 6,200,123, 94,164,117,187,159,255, +125,242,182, 13, 57,218,145,137,157,206, 24,203,130,135, 48,252, 96,164,182,127,183,240,251,159,139, 33,248,175, 37,199, 41,128, + 67, 0,110, 19, 97, 31, 9, 35,155,153, 66, 81,211,136, 23, 41, 94,208,185,249,123,183, 34, 46,197,225, 97,128,148,219,190,212, + 98, 42,197,190,126, 41, 40,101,129,148,210,194, 56,136,172, 56,199,200,136, 99,194, 56, 14, 24,199,132, 97, 24,157, 0,231, 16, +123,240,194, 87, 77,225,253, 32,161,102,190,225, 50, 17, 47,212,213, 36,197,111, 33, 88, 44, 43,251, 94,191,126, 30,220, 68, 69, +177,228, 5,231,243, 25,121,206,150,113,157, 12,250, 71, 41, 14,197,251, 62,219,252, 32,157,165, 94,144,139, 21,244,121,154,172, + 97, 81, 52,227, 20, 97,216,228, 22,140,184,183,113, 70,163,245, 26, 89, 51,228,253, 46,118,147, 29, 41,101, 69, 15,170, 22, 89, + 9, 74, 5,165, 20,144, 20,128, 10, 82,178, 36,178,162, 12, 10,128,102,123,205,160, 5,178, 44,182, 26,240, 53,132, 72,193,114, +154,160,249,236, 74,128,106,231,107,230, 59, 49, 69, 12,227, 14,113,220,129,163,161, 38, 42,198,125, 16, 45, 0, 69, 44,162, 40, + 89, 49, 47,103,124,120,122,194,178, 76, 45,116, 67,251,195,184,249, 19,240, 70,195,172, 13, 71,190, 76,233,186, 56, 36, 55, 10, +156,213, 56,164,248,164,107,240,103,253,183, 22,116, 70, 78,119, 56, 14,119,216,223,127, 2,253,249, 23, 56,222, 28,240,254,195, + 25,143,239, 79,248,252,237, 19,254,234, 56,163,168, 34, 99,245, 36,200, 98, 70, 59, 12,147, 36, 85,153, 19,169,128, 73,177, 31, +111,113,119,115,143,145, 3,216, 93,195, 76,174,166,136, 46, 83, 11, 68, 30,187, 74, 96,145,198,213, 40,202,144, 48, 34, 67, 45, +121, 47,207,224,124, 4, 95,113,195, 83,124,223, 46,251,178, 24,127,127, 74, 26,125,180,172,235,245, 6, 64,233,194, 3,254,123, +224,122,173,153,246,234,107, 21,109,225, 57, 96,218,144,225,158,129,248,106,207, 3,117,233,107, 85,243, 14,241,183,235,107, 95, + 51,134, 59, 34, 27,156,155, 35,178,242, 41, 42,161, 21,173,168, 87,239,127,113,139,224,174,204,105, 87,200,187,128,149, 53, 30, + 85, 86, 4, 72,215,157, 62,233, 21, 82, 91, 55, 13, 27, 66,121,198,233,195, 27,188,251,237,111,145,231, 25, 33, 4, 44,217,174, +216,208,125, 77,130,162,112,130,132, 61,194,114,242,128, 39,122, 54,100,225, 2,138,207, 29, 57, 46,160,139,118,254, 72,241,190, +182,111,223, 76,232,122,177,250, 80, 96,148,140, 27,153,240, 70, 15, 93,108,246, 31,103,168,253,209,228,169,255, 91,126,137,127, + 47, 83,122,125, 82, 14, 1,184,141,132, 61, 19,162, 95,218, 85,206,161,189,243,112,131,178,108, 10,215,156,205,252,132,184, 45, +129,170,105,140, 22,115,120,131, 44, 32, 21, 68,118, 38,180, 23,233,148, 24,195,144,204, 91,124, 28, 48,164,228, 69,149,193,158, +113, 94, 53,178, 82,247, 90,110, 31,219, 32,110, 47,142, 92,201, 86,193,152,223,228,142, 86,117, 66,175,122,239,186,247,207,185, +224, 60, 91, 65, 95,166, 9, 84, 4, 99, 74, 22, 50, 65,214,172, 84,216,129, 84,125, 66,247, 88, 84, 41,200,185, 96,153, 51,242, +178,216,243, 64,228,178, 56,215,237,179,173, 20, 76,150,171,109, 34,111, 44, 95,119,221, 51,198, 61,218,115,102,235, 11,107,134, +108, 5,160, 13,134, 47,170,214, 28,213, 66, 27,204, 5, 79,139,155,182,170, 29, 34,204, 1, 8,214,120, 72, 81,219,235,139, 53, + 35,162,234,176,191, 41, 26, 56, 4,132,113,192,176, 63, 96,216, 31, 16,135,193,162, 85,107,243, 86,172, 33, 43,154,141,236,151, + 11,222,207, 51,190,125,255, 30,203, 50, 97,232,182,224, 91, 18, 15,181,152, 74,237,226,192,214,130,223,105,148,253,181,165, 43, +133,167, 1,169,222, 40, 75, 71,148, 43,245,144,229,136, 37,221,225,105,120,129,241,254, 37,126,254,191,254, 23,252,250,139,123, +188, 57,254, 6,111,191,125,143,241,235,183,248,235,119, 71,140,200,200,154, 33, 48,233, 95, 81,203,148,215,114,238, 8, 84,149, +187,168,216, 15, 7,220, 30,238,145, 56, 32,104,113, 3,153,254,175, 29,216, 65, 43, 98,100, 13,168, 53, 24, 59, 44,113,135, 28, +146,251, 4,217,125, 19,150, 35,228,225, 91,240,244,240,189,135,230,101,128,203,199,202, 44, 93,110, 43,126,207,228,254,125, 63, +141,126, 15,105,238, 25,251,141,106,137,171,171, 5, 94,227,149,251,189,193,202,120,108,147, 52, 65,155,185, 76, 53,158, 82,218, + 80, 9, 13, 5,236, 82, 8, 75,139, 51,173, 38, 42,226,141,250,186,225,222,200,211, 54,146, 9,223,157, 95, 35,203, 97, 93, 35, +213,166,110, 37,233, 93, 92,145,218, 93,147,149,135, 7, 69,201, 39, 60,189,255, 14,179,120, 74,148,195,231,220,233,206,131, 79, +252,129, 20, 74,149,176,171,215,125, 22,180,131,226, 47, 95,117,223,213,131,174, 23,237, 63, 68,199, 46, 91,218, 6, 20, 64,212, +130,155, 50,123,198, 6,255, 94, 36,233,199, 50,189, 71,252,244,231,217,159, 68,192, 93, 4,110, 34, 97, 23, 20,145, 26, 8,181, + 61, 92, 85, 32,106,240,118, 35,199,121,198,183, 73,222,188,176,151,220, 76, 77, 34, 21, 32,106,203, 70, 39, 10, 94,240, 34, 82, +140, 24,198,132, 20, 13,162, 14,238,168,214,187, 57, 21,245,227,158,224,250,117,129,168, 37,162, 25,252,238, 7,169,186, 52, 74, +236,176,104, 55,160, 91,185,170,248,192, 45,130,165, 20, 60, 28,207,120,120, 58, 98, 62,157, 64,165, 96,228,128, 8, 32, 19, 33, +182,176, 16, 89,163, 77,157, 68, 87,178, 17,252,204,178,214, 8,106, 10,128, 3,153, 3, 91, 12,160, 96, 33, 50, 28, 3, 66,140, +237,119,171,107,131, 53, 26,164, 75,123, 43, 86,212,115, 94, 80,114,110,197,125,118,251, 87, 17,193,156, 5,243, 50,163,148, 5, +193,119,221,139,203, 0,171,185, 73,140,140, 56, 68,204,204, 56,229,108,150,175, 80, 88, 36, 92,241,231,205,154,165, 16, 24,105, +220, 97,119,115,131,221,205, 61,134,221, 14, 33, 70,123, 30, 93,234, 70,118, 22, 26,148, 47,130,199,121,193,175,222,190,199,135, +183,175,113, 95,242, 70, 42, 99, 96, 73, 75,100, 55,121, 30, 95, 24,144,106, 7,207,171, 66,104, 93,233,108,220,191,176,181,126, + 21,168,195,236,246, 51,140, 99,174, 80,142,152,227, 45, 30,199,151, 8,135, 3,254,250,239,254, 51,238,254,238,239,240,240,248, +107,176, 16,198,223, 62,225,139,175,222,226,254,120,194, 50, 63, 26,201,138, 2, 4, 64,206, 51, 74, 62,163,138,224,250, 84,179, + 33,142, 56,236,238, 16,217,215, 14,164,110,247, 74,235,132,110,248,195,214, 40, 36, 68,148,221, 29,116,119, 99,104,141,223, 31, +202, 10,142, 3,240,233, 47,112,222,191, 64,249,250,255, 69, 88,158, 64, 87,119,224, 61,183,156, 54, 69,183,127,190,105, 83, 56, +183,177,198,215, 84, 8,255, 50,252,238,251,168,116, 43, 76,221, 36,170, 16,144, 16,132, 75,147, 48, 42,109, 9,111,232,212, 9, +104,232,211,214,171,160, 47, 72, 77, 38,171,178,121,219, 40, 11,178, 50,215,177,181,120,221, 20,142, 14, 94,239,159,171, 94,126, +169, 93,177,238, 39,203,103, 82, 73,237,160,109,237,246,217, 74, 64, 41, 40,167,119, 88,148,128,184, 51,239, 11,111, 66,131,163, + 74,236,138, 24, 42, 25, 36, 5,161,243,235,215, 43, 43, 81,246,230,165,116,100, 57,238, 61,225,117,203,169,220, 64,239,221,106, + 66,174,188,178,116,101,188,103, 85, 28,202,130, 65, 21, 71,250, 97, 82,219,254,127,246,222, 45,214,150, 43,187, 14, 27,115,173, + 85, 85,123,159,199, 37,155,221,236,150,186, 91,253,144, 90, 15, 75,145,212,146,163,135, 19,216,144, 17, 89, 50, 44, 35,246, 71, +224,143, 4, 14,252,225, 0, 14, 2, 36, 31,249, 13,144,252,230, 39,201,103,130, 24, 9, 12, 36, 63,206, 79, 18, 39,176, 99, 4, +144, 13,195,145, 44, 65,112, 91,106,117, 55,155,221,236,102,147,188,151,188, 36,239,243, 60,246,174, 90,107,206,124,204,185, 86, +173,170, 93,181,207,185, 45,146,166, 68, 93,226,226, 94,222,115,206,222,251,236, 83,181,198,156, 99,142, 57,198,251, 1,238,239, + 11,168,255,113,234,202,151,238,223,109,163,138,247,211, 64,232,188, 85,146,227, 45,104, 33, 34,122,227, 50,219, 13,200,106, 87, + 42,105, 80, 43, 87,207,133,138, 99, 30, 32, 72,102,106, 2,120,139, 59,117,102,237, 9,242,218, 33,250,160,162, 56,231, 84,236, +100,148,183,238,168,155,215,114, 94,185,114,213,102, 83,130,153,194, 84, 86,180, 36, 10,236,121,251,203,128, 0, 70,179,107,172, +169,206,193,175,247, 61, 30, 63,189,196,197,211,167, 72,253, 30,158, 60,168,105,208,122,135, 6,132,228,107,191,102, 54, 59, 86, + 45, 8,146,173,142, 13,137, 17, 25, 96,219,179,118, 65,119,187, 67, 80,251,217,166,105,209,118, 29,218,182, 65, 19,156,169,243, +115,176,203, 24, 8, 2, 81, 74, 59,165, 4,142,172,161, 44, 25,200,147,190,199,131,129,251,110,136,216, 15,131,218,208,250, 22, +156, 60,246,105, 7, 32,162, 3, 97,211, 4,180,237, 6, 14, 14,142,129,193,185, 49,160, 66,212,104, 70,103,244,250,243,104,218, + 14,237,246, 4,221,246, 12,155, 77,135,208,180,160, 16,138,209,139, 20, 95,123, 65,240, 1,143,251, 30,175, 60,122,140,111,191, +117, 15,219,254, 41,158,107,100,236, 22,100,212, 10,200,193, 62,149, 41,223, 43,110,189,246,108,203, 59,251,163,252, 89, 22,168, + 68,167, 96,110,138,103, 33,129,248,128, 93,115,134,235,238, 12, 46,180,248,193, 79,126, 10,159,250,145, 31,195, 75,247,239,226, +119, 95,253, 10, 16, 4,159,191,251, 0,159,184,218, 99,232,175,144,246,215,198,230, 40, 24,164,184,175,230,194,149, 25,135,243, +216,182, 39, 8, 62,192,219, 14,185,102,166, 83,177,126, 53, 78,166, 44, 39, 42,125, 20, 16, 79,158, 3,109,206,209, 64,128,148, + 70,127,118,231,116, 93,208, 7,208,157, 79,224,201,211, 23, 65,143,123,120,137, 56, 72,172,171,213,199,217, 17, 78,170,227, 62, + 27,241,228,245,189, 27,102,242,183,199,241, 37,209,220, 49, 7,113,140, 84,119,166,250,121,236,184,151,162, 98,166,179,235,241, +226, 97,198,212,172,200, 64,189,244,224,162,247,158,212, 76, 96,181,216, 40, 44,147, 78,187, 30, 23, 84,100,253,129,122, 67, 42, +134,102,122,189,201, 84,124, 38,135, 98,180,169, 60, 66,128,120, 13,222,123,117, 36, 12, 45,178,135,159,183,206, 56, 25, 75, 40, +195, 30, 33, 93,195, 99,204,207, 96, 89, 6,246,252,171, 0,187,253,127,166,244, 49,219,237,159,251,195, 47, 21, 13, 82,205,124, +230,107,146,155,212,163,229,136, 43, 31,240,126,218,192,191,151, 35,234,240,167, 96, 62,253,229, 73,119,211, 79, 27,135,109,112, +104,156, 2, 78,190, 79,235, 53, 36, 45,122,199, 89,179,130,122,180,240,110, 7,166, 84,196, 44,100,187, 23,174, 4,124, 72,213, +123, 80,169,240, 19,219, 19,177,173, 19, 17,129, 29, 65,196, 43, 13,239,156,190, 72,115, 94, 40,215, 65,246, 99,135,121, 98, 75, +213,241,152, 64,165, 48,112,162,254,234,105,136,216,239,247,184,188,190,198,238,242, 18,188, 55,143,111, 6, 34, 34, 98,136, 96, +231,225,203, 33,107,133, 5, 87,221,122,178,153,158,168, 61,171,179, 36, 58,221,237, 6,124, 16,180,193,161,109, 3,218,198,163, +241, 24,117, 1, 89,245, 75, 89,156, 36,101,206,152, 98,194, 48,168,151,250, 48,232, 14,127,166,230, 83,202, 7,154,131,247, 27, + 56,231, 17, 66, 7,231, 9, 67,114, 72, 49, 1,228,225, 27, 85, 34,235,215,231,149, 42, 1, 82,111,235,135, 74, 19,195, 17, 66, +215, 98,115,122,138,238, 84, 41,119,242, 1,228, 71, 37, 58,131, 76, 17,174,243,207,235, 36,120,229,233, 5,190,121,255, 45, 92, + 92, 60,193, 89, 51,149,122, 9, 77, 3, 69,196, 16, 94, 36, 23, 92,246, 39, 24,217, 47, 80, 38, 77, 42, 47,204,150, 21,196, 39, +148,162,211,159, 73,239, 60,174,186, 59, 72,219, 59,112, 62, 96,195, 17,155,208,224,234,205, 55,241,242,183,254, 21, 94,125,240, + 42, 62,151, 60,238,236, 0,164, 1,113,184, 4, 75,212, 35,192, 86,254, 36,197,202, 30, 7,246,254, 16,186,176, 69, 19, 90, 56, + 78,106,200, 99, 17,184, 5,204,109, 51,196,153, 18, 59,171,251,249,228, 28,216,156,195, 19, 64,137,139,185,137,250,255,123,180, +167,231,216,124,236, 5,240,227,199,120,234, 79, 32,126, 11, 74,187, 98,228, 50, 66,102,118, 66, 19, 27, 75, 84,132,176,200, 65, + 78,248,216,157, 87, 70,225,223,119,127, 46,139, 83,254, 98,133, 67, 51, 80,175, 28, 81,106,168, 36, 73, 26,163, 90, 23,109, 37, + 13,173,138, 55,200,125,126,113,118,195, 4,112, 25, 56,112,169, 28, 63,183, 2,245,250,102, 71,173,250,150,170,232, 71, 25, 5, +137,204, 0,145, 48,219,143,159, 82,225,124, 11, 93, 18,144, 64,241, 82,245, 31,105, 11,184, 22, 76, 14,201, 68,111, 3, 51, 82, +236, 17,134, 75, 4,222, 29,116,209,105, 1,212, 73,198,240,151,188,186,153,104,217,234,247, 64, 48, 39,203, 96,127,176,215, 94, +117,251, 45, 15,216,240, 0,146,205, 7,166, 61,251,163, 2,124,248, 83, 64,159, 94,140,173, 83,218,125, 27, 8,173,237, 77,231, +171,163, 52, 4, 85,134,102, 17, 79, 69, 5,184,154,222, 26, 59, 47,187, 97,156, 20,145, 87, 86, 81,147, 19,157,229,130,225, 83, +170,232, 56,179,111,117,182,219, 11,216, 76,218,182,201, 57, 3,135, 81,241,217, 80,194,132, 90,197, 31,157, 5,236, 9, 46,153, + 27,148,237, 60,113, 76,232,251, 30,215,187,107, 92, 93, 94, 99,216, 69, 64,156,121,192,235,110,119, 50,101,187,208, 40, 8, 44, + 82,126,209,239,119,220, 39,213,185,189,190, 92,125,227, 66, 35,216,110, 8,155,166, 65,219, 18,218, 38, 21,177,223,184,183,173, +162, 51,170, 86,189, 0,168,153, 75,175, 42,252, 12,234, 68, 14, 44,164,243,251, 36, 0,130,166,189, 17, 65,132,208,185, 0,242, + 29,118, 81,187,119,137, 64,226, 1,251,253, 53, 98, 52,227, 28, 78, 72,172, 50, 27, 34, 29, 19, 52, 93,139,238,244, 12, 39,119, +158, 67,219,109, 64, 33,128,156, 87,167,182,188,138,200,227,123,253,100,183,199,203, 15, 30,227, 27,119,223,196,227,139,199, 58, + 91,206,145,144, 50, 42,118,116, 23,125, 12, 14, 97,235, 48,185,158,139,151,224,151, 67,211, 82,145,195,110,173,208,250, 22,110, +195,204,184, 38,143,139,238, 14,232,252,227,216,108,182,112,253, 14,232, 19,158, 62,124,128,253,245, 14,254,157,119,241,103,247, +192,139,137,209, 9, 33,198, 29, 56,237, 77, 24,165,155, 28,156, 98, 1, 46,135,108, 1, 75,104,130,106, 59,156,176, 38,177,193, +188, 6,202, 92, 20, 35,141,154, 43,223,196,144,205, 9,228,228,142,142, 89, 98,180,156, 3, 25,105,116, 23, 16,182, 39, 56,249, +209, 31,135,220,127, 11, 15,239,189,138,228, 55, 99, 62,188, 8, 8,227, 70, 73, 85, 69, 23,160, 25,125,244,101,129,182,167,239, +227, 92,154, 42,240, 39,157,185, 93, 99,117, 32, 11, 77, 0,189, 74,220, 51,209,219, 1, 65,159,173,133,203,106,218,212,218, 55, +211,231,168,211,208, 50, 40,203, 56,233, 46,162,181, 3,170,189,238,180,165, 18,107, 86,166, 37,241, 41,130, 0, 0, 32, 0, 73, + 68, 65, 84, 48,243,168, 94,153,130, 91,190, 78,151,210,207, 32, 55,172,138, 45, 0, 36, 73,132, 27, 46,192,169, 71,164, 14,137, + 60, 6, 34, 36, 99,110,186,180,135,227, 61,132, 24, 9,100,193, 51,163, 87,195,124, 22,158,187,113, 71,163,227, 92, 22,186,149, + 72,232,103,152,167,203,124, 34, 50,163,229, 91, 73,216,114, 95,138, 33,250, 0,128,253,143, 42,170, 11,127, 10,232,152, 84,223, + 93, 6,117, 79,104, 92,125,145,140,116, 41, 17,149, 43, 78,105,203,132, 52,164,210,177,230, 31, 4,229,155,195, 85,128, 53,179, +138,116, 14, 8, 62,239,126, 43,151, 46,172, 96, 46,118, 56,120, 19,206, 56, 26, 35, 34,179, 64, 70, 87,217, 44,107,220,184,121, + 97, 86,163, 23, 1, 36, 24, 72,155, 19, 85, 74,106, 16, 19, 99,196,238,122,135,203,171,107, 92, 95,237, 49, 12, 74,187, 58,214, + 98, 66, 28, 74,166,114,222,171,165,234,198, 98, 86,250, 44, 87,150,153, 85, 16, 2,164,113,104,182, 13, 54, 27,224,164, 35,108, + 91,135,224,149,241,240, 65,193, 95, 43,103,214, 13,129, 76,165,209,200, 92, 48,235,104, 32,197,136, 20, 19,162,237,215, 10, 84, +232, 71,226,192,176,153, 59, 11,208, 8, 26, 2,210,192, 64,210,125,125,159, 67, 38,226, 0, 30,178,136, 47,150,195,206, 59, 66, +211,117,216,158,158,225,244,236, 57,116,219, 83,139,210, 85,127, 0, 34, 42, 78,121,100,155, 14,143,247, 3,190,254,214,187,248, +198,189,187,120,114,113,161,238,116, 70,158,160, 18,235,200,124, 22,107,224,156,131,122,132, 48,181,144,179,104, 94,153,116,131, + 85, 10, 89,165, 62,102, 17,141,154,229,132, 43, 10,120,122,242, 49,248, 59,159,194,217,201, 41, 40, 13, 24, 82, 4,115,194,229, +245, 21,246, 41,226, 78, 76,216, 38,213,103, 12,156,192,113, 55, 30, 20, 36,102, 72,146,138,203,217, 72,187, 7, 52,190, 69,128, +192,177, 90, 11,251, 68,112, 1,240, 66,102, 30, 52, 10,233,200,196, 92, 34, 12,215,109,224,187,173, 22,147,245,248, 22, 85,242, + 88,211, 34,188,240,113,208,213, 5, 92,182, 83,230, 8, 2,219, 42,211, 24, 62,226,202,252,156, 14,230,220, 52,139,160,165,149, +105,184, 44,198,180, 84, 14,118,179, 29,241, 58, 57, 77,239, 87, 55, 5,111,248, 49,200, 41,111,110, 56, 87,252,223,101,162, 18, +231, 17, 92,235,238, 91,166,107, 99,115,225, 26, 23, 49, 28, 23, 80, 31,193,155, 39,242,201,122, 62, 95,138, 5,153,115, 6, 83, +113, 95,173,211,144,133,174, 28,152,142,147,150,212,229, 75, 74,242,154,219,112, 96, 4,222,129,208,195,101,135, 68,219, 24,202, +207, 25,237,158,240,179,253, 52,198,114, 64, 81,170, 62, 47, 83,241,222,186,113,154, 90, 58,172,176, 8, 56,250,189,230,215,239, + 89,176,137,234,161, 31,201,253,177,192,177, 63, 21,202, 85, 71,168, 35, 96,107, 2,185,206, 1, 45, 85,179,154, 18,231, 56,186, + 80, 39,168, 85, 98,100,182,249, 16,202,220, 27, 50,213,208,214, 34,158,156,229,225,253,104, 68, 67, 36, 72, 73,129,206, 89, 22, + 59, 2,204, 92, 70,233, 78,111,135,123,226,241,245,120,114, 69, 80,107, 72,140,113,130, 46, 16, 54,181, 59,145, 5,189, 49,120, +208, 46,125,183,219,225,250,122,135,126, 31,139,216, 14,130,194, 6, 56,246,163, 32,201,218, 70,102, 85,172,178,160,132,165, 8, + 17,200,219,104,161,113,104, 78, 26,156,157,180,104,125, 2,209, 80, 29, 46,121,141, 78, 74,167,227, 92, 14,148,209, 53, 30,202, + 44, 67, 98,164, 56,104, 22, 58, 39,164,104,192,234,148,118, 7, 17, 82, 74,136, 67,175, 5,213,208, 35,237,247, 72,195, 30,196, + 17,104, 90, 56,159,148,106,222, 95, 35,246, 3,210,126, 80, 21, 63,212,190,189,217,182, 56,185,115,142,147,211,231,208,116, 93, +137,198,116,206, 65,156,211,159,141, 89,165, 58,231,240, 36, 50,190,246,206, 3,124,227,222, 61, 60,121,250, 84, 15, 38, 26,111, +164,108,235,153, 65, 75,136,166, 46, 89,245, 92, 82,172,112,162, 49,129,139,101,180, 59,173, 93, 11,107, 33, 83, 9,210, 96,198, + 30, 14, 87, 39, 31, 71,247,194,167,113,178, 61,129, 99, 86,243,157,168,215,165, 12,189,170,218,179, 71, 2, 4, 41,245,224,180, + 47, 51,232, 50,227,182,162,173,244,157,182,103,236,173,160,115, 16,237,212, 29,193,115,254,185,161,140,141,168, 22,168, 9, 64, +174, 65,211,109,129,190, 71, 28,250,170, 27,213,113,129, 83, 81, 6,134,183,222,194,245,247,190,139, 97,119, 9,145, 30, 34,209, + 88,128,162, 94, 41, 48, 43,185,129,144,154, 24,151,153, 86, 93, 14,136,242,131,201, 56, 45, 76,218,101, 38,201, 43,194, 58,175, + 2,201, 98,163,108,126, 15,102,127,152,183, 74, 40,251, 69,144,183,236,116, 26,193,151, 83,241,128,128,105, 58,168, 26, 29,212, +235,104, 83,204,229, 74,144, 91,250,244, 73,166,249,100,230, 45, 60, 94,111,130,217, 80, 98,218,241, 29,218,253,220,110, 29,108, +137,138,159,131, 38, 47, 60, 7, 65, 61, 15, 8,154, 89,145,149,236,108,243,117,103,171,105,147,231,163,229,199,175,159, 39,139, +231, 50,145,150, 59,253,105, 46,199,242,247,177,216,177,207,158,195,129,177,225, 30,141, 36, 12,228,191, 47, 19,154, 15,122,222, + 30,254,168, 79,246, 39, 2,206, 73, 15,212, 96, 93,250,137, 39,108,188,218, 93,150,163,165, 40,108,109,247, 92,149,102, 26, 63, +202, 89,149, 62, 6,161,232,205, 47,163,119,241,220, 49,161, 58, 0,153,213, 22,149, 29,224,152,192,196, 8, 65,165, 72,206, 17, +124,112, 58, 91,103,182,120, 83,152,176,204,129, 45,125,197, 57, 7,241,149, 42, 56, 63, 5, 75,249, 28,178, 89,120, 74, 3,134, +126,192,126,215, 99,216,233,232, 64,156, 10,246,136,116, 69, 13, 68, 19, 75,216,178, 31, 93,187, 75,213, 55, 48, 57, 32, 16,252, + 38,224,228, 36, 96,211, 57, 80,218, 99,136, 61, 36, 17, 98, 22, 3, 74, 3,223,120,120, 15, 5, 13,178, 57, 99, 18,176, 31,163, + 49,197, 98, 29, 99, 78,131, 75,182, 25,147, 20,152,226, 16,209,199,136,140, 90,113,207,136, 34,128, 41,105,163, 35,236,201,171, +115, 23,247,224,168, 76,138,174,211, 1,221,182,195,249,217, 29,156,158,222, 65,183, 85,117,174,218,162,250,194, 20,148, 67,146, + 28, 30,237, 35, 94,122,240, 8, 47,221,125, 3, 79, 47,159, 78,123,113,170, 14, 56, 71,179,254, 47, 51, 37, 53, 93, 60,122,182, +219,179,234,225, 84, 29,213, 36, 51, 64,151,169, 10,154, 1, 92, 55,167,160,231, 94,196,233,201, 41,156, 48,134, 56, 32,197,222, + 40, 74, 70, 74, 2,150,222,124, 21, 44, 68, 40, 94, 1, 60,204, 78, 52,201,211,222, 34,100, 82, 71, 56, 7,143,145,118,119,164, +218, 15,245,112, 55, 10,222,126,126,181, 37, 42,147, 67, 26,212,149, 46, 88,202,149,152, 14, 2,197,110,148,112,245,228, 49,246, + 95,253, 87,120,116,247,123,136,253, 14,222,124,225,231,249,105,108,249,231, 46,143,182,242,206,176, 76, 23,221,168,162,208, 23, +125,225, 38,158,236,147,146,123,106,198, 94,128, 95, 87, 25,201,192,218,229,116, 53, 71,154,143,238,188,117,230,121, 93,211,129, + 92, 0, 5,219, 94,224,124, 29,179,122, 38, 36,115,143, 36, 54,179,152, 44,190, 76, 85,193, 55,157,131, 67,102, 74,118, 84, 17, +169,121,164, 83,209,224,243,174, 92,170,142,124, 13,184,230, 96, 92,188, 21,102, 78,109,107, 0, 47, 71,128,177,238,126,231,191, + 28, 77,169,118, 84, 0,207,152,122,177,243, 18, 56,219, 60,125, 70,136, 21, 53,251,180,248,152,174,202,137, 44, 39,187, 29,190, +126, 21,203, 53,156,166, 70,127, 31, 98, 96, 15, 31, 85, 32, 63,248,126, 72, 59,243,179,160,193, 45,173,133,160,144,205,192,157, + 51,219, 4, 81,177,154, 35,129, 56, 1, 81, 84, 58, 57,241,120,112,216, 13,238, 76, 41, 14, 59,236,157,115, 38,146,177,219, 81, +104, 84,209, 3,234,188,230, 28,188,119,150, 20,166, 0,164,158,234,132,104, 20,158,190,174,124, 71,120,155,187,143,149,184,179, + 10,182, 8,113,200, 41,203,202,140, 24, 35,134, 97, 64,223,247,216,239, 53,123, 57,207, 81,139,239,121,234, 45, 64, 99, 92,183, + 40, 25,109,146, 21,255,249,227,213,154,136, 3, 92, 11,184, 70, 99, 75, 99,223, 35, 13, 61, 18, 8, 3, 5,248,224,209, 74, 11, +182,157,212,214,235, 91, 17,163,138,159, 60, 11,196, 65,231,231,118,144,197, 20, 49, 12, 17,228, 27, 8,121, 12,253, 30,253,254, + 26, 49, 14, 64, 18,120, 56, 56,113,144,164, 84, 61,177,238,206, 51, 24,137,213,213, 44,223,197, 12, 13,200,233,186, 14,231,231, +119,112,122,118,134,110,179, 65, 8, 65, 5,104,164, 45, 60,249, 96, 46, 86,106, 99,251,120,215,227, 91,239, 62,194, 75,119,239, +226,241,147,135,230,202, 85,211,139, 25, 24,198,131,137, 42, 74,147, 77, 45, 94,118,240, 75,151,145,247,135,185,148, 0, 9, 50, + 57,152,234, 6,174,168,159, 9, 24,132, 16,187, 83,180,155, 19, 53,227,176,145, 10,139,140, 44,129,133,238, 20,211,158,212, 3, +246,179,173, 53,194, 57, 44, 37, 95, 83,142,204,114, 24, 12,199, 78, 19,214, 28,193,137, 27,215,214,178,101,111, 94,127,155, 28, +158, 9,241,250, 2,233,225,125,132,237, 57,156,205,254,217,186, 85, 1,128,126,143,254,157,183,192,113,143,235,203, 11, 32,238, + 64,156, 14,244, 3,117,238, 89, 73,170,203,138,110,162,149,190,171,146,155, 91,207,159, 45,120,167,211,242, 42,157, 59,143, 4, +172,120,145,236, 20,233,213,134, 25, 62,192,185, 96, 38, 81,250,239,197, 48,201,196,161,206,123,144,247, 8,206, 98,254, 76,155, + 34,156,144, 18,131,134, 30, 52, 56, 5,246,148,138,233,211, 68, 77, 46, 99, 33, 87, 34, 79, 49, 90,182,178, 76,129,106, 42, 40, + 27,189,237, 14,233,253,227, 65, 39,243,249,248,234,252, 28, 83,139, 98, 57,162, 78, 88, 18,159,205, 1,218,205,214,246,188, 21, + 20, 62, 3,111, 94, 93,155,125, 29,207,230, 43, 57,158,149,103,162, 57,169, 5,134, 51,230,224,152, 89, 77,253,154, 91,142,232, + 56, 86,190, 26,242,175, 21,171,110,122,254,240, 81, 5,244,137, 16,193, 14,230,141, 87,191,247,141,115,106,195,234,148,210, 38, +167, 59,167,174,182,125,116,132, 16, 90,112, 7, 36, 56, 8,237, 17,251,164, 29,177,209,209,148, 15, 20,214,171,151, 76,117,167, +187,236, 42,116, 99,232, 74,151, 82,119,162,169,158, 1, 8, 78,224, 37, 65,146, 67,178,253,102,111,148,167,175,134,242,101, 42, + 70,217, 89,169,210,202,154, 10,158,108, 62,158,119,189, 7, 51,153,137, 81,169,108,202,157, 16,141,182,178,222,102,249,158,200, +246, 63,205, 89,138,236,117, 39, 41, 6, 41, 69, 77,155,213,220, 28, 49,164,136, 97,223,131,135,164, 93, 93, 0, 90,239, 16, 89, + 64, 73, 32,222, 50,158,147,118, 45,196,100,239,181,166,186,101, 37,252, 16, 35,134,196,104,188,211,220,246, 97, 15,137,201,134, +250, 9, 66,222,236, 46,149,219,231,200, 69, 88,149, 42, 16, 36,243,116,239, 54, 27,156,221, 57,199,233,217, 29,116, 93,167,230, + 50, 77, 99, 27, 2,234,196, 86, 28,249, 0, 60,221, 15,120,233,254,187,248,230,189, 55,241,248,233,227,137,192,169, 28, 76,185, +183, 44,219, 7,174,248, 18, 49,200,242,159,171, 46,171,236, 20,147,177, 7,154,244,197,213,202,228,228,224,162, 49, 56, 67, 53, + 86,186, 32,201,174, 5, 4,202,100, 88,244,109, 54, 20,202,135,126, 1, 6,102, 32,237, 1, 94,143,167,200,180,183, 35, 42,251, +230, 30, 92,205,206,165, 98,129,148, 33,145, 44,172,204,238,129,108,180,113,127,141,248,224, 30,210,105,175,140,140,165, 18,178, + 84, 30, 7,172,227, 19,233, 47, 16,210,117,145,113,209, 26,213, 58,161,224, 71, 16,163,133,249, 57,168,250, 24,185,201, 79, 74, +181, 39, 82,151, 99, 6,236,106, 64, 52,122,240, 91,231,237, 28,156,211,216, 99, 23, 2, 92, 6,122,231, 76,204,106, 58, 12,181, + 35, 84,112,119,249, 90, 86,255, 10, 50, 80,200,175,129,101, 0,203, 48,110,169, 84,177,167,197,100, 6,117,152,138,204, 68,117, + 50, 3,220,106,108, 35,203,157,248, 26,128,177,172,252,251, 17, 42,158,228,230,110,221,161, 82,169, 87,140,150,155,169,231,221, +140,114,247,115, 48, 95,113, 16,158,103,166, 71, 2,194, 44, 1, 79, 22, 88,138, 3, 57,165,172, 75, 38, 69,128,192, 9,129, 71, +118,100,142,131, 31, 52,200,223, 4,238,225,163, 8,232, 75,191, 60, 1, 91,111,182,176, 13,105,196,106, 22, 48,193, 28,217,140, +137,150,100,116,182, 35,132, 38,232,209, 66, 14,206,233, 78,181, 36, 6,153, 61,166,184, 0,178, 97, 81,166,116, 57,165,241, 40, +114,176,199,129,174,126, 53, 4,239,181,207, 75,156, 16,247, 2,231, 5, 93,167, 51, 78,103,115, 95,165,237, 80, 20,184,206,230, +190, 33,187,201,229,212, 52, 16,144, 44, 74, 53, 69,164,161, 71,223,247, 72, 81,143, 73, 87, 14, 82, 82,245, 50, 71,128, 25,190, +105, 76,160,103,128,149,213,191,168,232,241, 73, 21,108,199, 13, 39,164,125, 82,213,250, 46, 2, 44, 37,228, 67, 2,129,189, 24, +104, 91, 55,156, 20,184,213, 6,182, 1, 60,217,107, 55, 39, 57,243, 33,119,228, 16,227, 94, 31,207,249, 49, 62,210,222,203,224, + 61,144, 18, 6, 81,161, 21, 85,242, 33, 71,128, 15, 30,221,118,131,243,243,231,112,122,231, 14,218,102,163,214,175, 94, 41, 86, + 86, 61, 46, 64,132,126, 24,192,131,224,105, 74,248,230,187, 15,240,205,187,111,224,241,197, 19,123, 31,112,227,190, 42,201,152, + 56,161, 51, 80,111,187,202, 98,166, 27, 99, 78,188,208,184,194,194, 7,138,223,113,246, 90,155,104,228, 34, 42,241,128, 33,238, +225, 89,169, 93,237,134,165,184, 5, 22, 42, 87, 4, 72,131,118,195,149,224,113,194,154,103,214,193,145,209,238,181, 71, 55,195, + 11, 33,144, 22, 44,227, 52,155, 32, 73,153, 34,169, 64, 40, 51, 59,180,123, 10,137, 17,151, 97, 3,242,154, 46,152, 71, 58,154, +238,215, 67,226, 21, 26,222,141, 74,247,165,163, 91,230, 33, 55, 53,231, 90,207,212,101, 18, 16, 52, 22,190,163, 15,251,104,201, + 58, 46,238,161,138,193,165, 18,186,227,236,158,206, 32,221,232,154,102,211, 40,168, 27,245, 94,182, 62,172, 59, 39,151, 69,163, +170,178, 21, 11, 88, 66,132,117,230, 2, 22,181, 54, 38,118, 0, 37, 91, 45, 27, 81,146,237,238,170,213,237,211, 21,172, 21, 64, +151, 41, 77,190, 4,208,115,240,230, 91,136,201,128,117,181,251,210,236, 60, 63,223,226,252,122, 37,159,222, 85,197, 27, 17,108, +196, 83,143,168, 14,111, 61,153, 49, 7,121,221, 13, 5,216,151,199, 14,140,155,109, 99, 39,216, 32,130,134,211,234, 60,253,131, +178,127,189, 45, 37, 31, 62,138,128,190,244,253, 52, 4,156, 6, 96,235,149,134,159, 80,115, 57,130,146,156,210,101,146,247,214, +245,179,130, 15, 64,112,118,179, 59,237, 80,147,222,148,100,102, 44, 57,201,140,121,244,222,116, 6,230, 62,144,229,159,107, 55, +196, 73, 76,144,102,179,103,235,220,179, 18, 63,213,138, 98,111,135,136,215, 78, 94,205,110,164, 0,155,222, 96, 81,187,170,148, +192,113, 80,119, 59, 88, 14,116,206, 40,116, 2, 98, 6, 37,219, 69, 54, 35, 28,130,178, 4,142,108, 93,141, 25,149,210, 96,188, + 33, 44,217, 72, 34, 99,232, 19,164, 31,116,197, 15,128,120, 7, 39, 84, 66, 32, 74,163,196, 80,175,249,253, 94, 59,209, 38, 1, +109,131, 64, 10,138,186,178,165, 70, 37, 12, 7, 11,147, 42,194, 61,141,175,116,104,186, 22,158, 60, 56,106, 44, 9,149, 80, 14, +101, 64,218,174, 69,119,186,193,246,228, 20,155,147, 51,116,221, 22, 93,187, 81, 17, 69,185,115, 3,144, 4,194, 90,188, 60,232, +175,241,141,251,239,224,149,251,111,225,242,226,210,108,108,177,152,211,125, 0, 67,181,245, 43,170,120, 85,170, 14,101,235,168, 157, 21,138,142,170,181,183,170, 27,170, 15,194, 34,127,204,221,220,176, 71,191,239, 17, 90,168,223,126,212, 93,115, 25,237, 2, 237, 4, 78, 64,218,193,113, 63,147, 4, 87, 84,191,165,222,121,235,210,201,168, 80,151,139, 90,176,173, 98, 10, 32, 14,229, 10, - 51,177, 92, 25, 55,228,121,175,141, 79,194,240, 4, 24, 46, 49, 80,192,222,249,210,153, 18, 71,120,238,209, 32, 33,124,159,226, + 51,177, 92, 25, 55,228,121,175,141, 79,194,240, 20, 24,174, 48, 80,192,222,249,210,153, 18, 71,120,238,209, 32, 33,124,159,226, 163,122,142, 94, 79,200,165,154,149, 79, 28,229,108,133,176,164,227,101,160,183, 53,148, 44,142,203, 29,117,182,111, 6,229,224, 36, 43,170,125,208,128, 31,239,171, 85, 78,243,122,135,173,116,214,228, 46,121, 56, 18,176, 35,165,237,115, 65, 80, 88, 4, 26, 157,226,104,100, 92,234, 89,176,204,246,205,101,218,155, 31, 85,167, 99,165,147,102, 57, 78,201, 47,118,237,114, 8,166,130,227, - 49,166, 55,168,131, 71,135,184, 10,200, 93, 93,228,210,178,154,125,226, 24, 87, 37,183,101,170, 95, 86, 58,251,213,247, 71,150, - 24, 7, 65, 35,209, 18,240,142,123,192,191, 31,114, 78,194, 7,181, 51, 63,120, 35, 8,216, 56, 66,107, 20,142,175, 46, 71,205, + 49,166,183,168,131, 71,135,184, 10,200, 93, 93,228,210,178,154,125,226, 24, 87, 37,183,101,170, 95, 86, 58,251,213,247, 71,150, + 24, 7, 65, 35,209, 18,240,142,123,192,127, 24,114, 78,194, 71,181, 51, 63,120, 35, 8,216, 56, 66,107, 20,142,175, 46, 71,205, 251,214, 84, 41, 34,167,115, 68, 26,155, 32, 17,129,243, 4, 7,175,181, 63, 51,122,238,205,185, 44,105, 1, 96,222,233,121, 51, 198, 7, 66,219,106, 87,174,123,219,170, 78,223, 37,251, 26,209,143,181,141, 67, 19,116,253, 74,163, 77,147,173,109,232,252,219, 19,161,241, 14,193,105,135,174,108,192, 8, 18, 19,159,103,142, 6,236,156,119,210, 20,224,203, 14,182,170,156,125, 14, 94,113, 149, 81, 14,141, 74,233,100, 29, 4,217,154,150,179,253,107, 98, 6,239, 6, 12, 41,233, 44,215,178,203,201, 5, 27,182,123,163, 38, 60,132, 28,122, 51,191, 25,162, 10,243, 16, 25, 77, 72,240, 30, 72,146,144,120, 64,138,123, 83,136, 3, 28,117,189, 12, 38, -122, 35,104, 7, 30,124,163,246,175,169,215, 2,204, 70,154,206, 59,180, 93,135,147,147, 91, 56, 57,187,141,166,105,149, 46,118, -128,111, 3,188, 15,136,177, 87, 11, 75, 6,246,195, 30, 2,135, 39, 66,120,241,225, 19,124,251,141,215,113,121,121,129, 44,206, -135, 92,175,154,157,152, 19,145,172,138,139,152, 52,109,142,169,184, 26, 21,135, 44,198,212,233, 75,112,184,148,228, 32, 8,177, - 71,223,239,176, 7, 52,212, 38,197,146, 70, 7,142, 74,115, 11,131,211, 0, 74,189,118,233,116, 88,148,148,177, 11,116, 13, 82, -237,135,171, 56, 79,168,225,140, 2, 56, 87,198, 46, 52,243, 37,163,137, 67, 90,126,185, 30, 3,136, 7, 52, 73,138,202,159,192, - 58, 70, 2,110,180,255, 91, 59,160, 29,138,224, 14,115,210,101,150,180, 86,109,200, 87,129,236, 99, 86, 66, 49,130,114,245,191, - 91, 87,111,227, 52,120, 5,101,239, 61,224, 53,228, 39,139,231,144, 87, 58, 49, 46,136, 65, 42,198, 76,230,180,121,222,122,200, -224,232,192, 38, 14,173,185,176, 69,123, 86, 76, 59,118,200, 58,197, 94, 3,223,156,150,191,118,181,107, 5,236,142,118,241, 86, - 44, 44, 21, 95,124, 29,176,207,132,113, 68,135, 84,253, 18,125,126,208,177, 87,207, 69, 11,239, 3, 97,186, 42,183, 54, 66,144, -114, 44, 10, 2, 39, 56, 17, 36,186,222, 3,254,189, 76,101, 91, 42, 34,194, 7, 13,208, 15,230, 33,246, 67,238,156,117,233,174, -190, 57, 85, 56,229,168, 74, 36, 51,209, 28, 56, 71, 95,114, 57,116, 29,244,166,151, 16, 16,135, 65,179,197, 69,170, 53, 33,189, -255,157, 39,132,134,204, 89, 77, 59,235, 52,232, 74, 92, 54,148, 11,193, 33, 4,160,107, 28,130, 37,132, 69, 97,221,201, 22, 32, -120, 32,120,143,214,123,132, 12,248, 41,175, 19,193, 58, 16, 41,110, 92, 34,227,106, 77,153,125, 39, 61,252, 73, 8, 62,245,166, - 5, 8,104,154, 6, 77, 78, 83, 19,154,208,156,204, 57,127, 89,125,174, 29,177,170,162, 33,234,209,206,131,170,174,153, 74, 1, - 35,226,225, 92, 99,145,175, 40,244,107, 76, 17,151,251, 29, 18, 19,124,104, 65,142, 85, 45, 31,147, 25,198,236, 64, 0,154,160, - 42,249,125, 82, 79, 0, 97,182, 53, 43, 15, 48, 97,216, 95,161,239,175, 16,227, 30,222, 65, 93,235, 66, 64,232, 58,108, 79,110, -225,228,214, 45,108,183,167,154,175,206, 9, 36,186, 14, 87,220,252,121,164,241, 31, 13, 17, 47,188,253, 16, 47,222,121, 13, 23, - 6,232,215,118,139,132, 73,152,132,166,117,141,243, 95, 53,139,161,113, 35,129,242,225,167, 74,114, 33,134, 56, 53,214,113,179, - 13,247,101, 21,188,254, 92,219,180,195,213,229, 57,246,137, 17,136,224, 12,204,181, 75,215,142, 79, 82, 4,197, 29,136,135, 73, - 24,156,171, 68,149, 89,140,230,170, 67,117,242,219,188, 8,156,216,119, 65,108, 50,101, 59, 80, 76, 67,192, 19,224,152,118,150, - 69,144, 87, 68,121, 79,215,145,207,199, 27,130,105,114, 93,189,194, 62,118,233, 52,177,102,165,217,207, 39,151, 50,160, 17,196, -169, 80,239,163, 63, 89, 54,100,170, 83,246,114,231, 78,190,218, 99,175,247,241, 13,204,115, 0, 17, 27,235,148,195, 88,230, 99, -171, 60,154,153, 4, 26,213,221,184, 76,236,100, 14, 58,231, 99,115,115,121, 74, 80,190,238,207,213,199,144,107, 62,111,205,162, -117, 6,234, 52, 3,244, 66,207, 47,116,235,245,117, 80, 40,122,163,225,107, 85, 61, 86,152,134,201,107,150, 53, 26, 94,208,112, - 68, 16, 70, 84,201,235,159,138, 30,127,183,129, 61,124,144, 1,189,190,152, 58, 7,116,158,208, 56, 66,176, 44, 99,231,205, 40, - 69, 52, 44, 5, 66, 16,214,149,157, 44, 62, 3,204, 91,157,197,132, 54,206, 92,211, 92, 89, 11,241, 37,210,211,194, 95, 60,153, -245,172, 32, 38, 66, 98, 32,198,209,218,213, 55, 14,161,113,104, 91, 7,239,149,242, 30, 4,128,120, 77, 63, 35,165,199,219, 16, -172,131, 87, 95,116, 18,152, 50,223,141, 30,220,150,134, 37,217,188, 69,114,126, 20,131, 28, 91,151,102,212, 62, 57, 52,141,166, -196, 53,193,141,135, 48,147,138,206,196,148,229,217,116, 70,116,191,158,188, 25,208,199,136, 52,228, 67,203, 85,133,140,198,198, -234,104, 64,131, 80, 18, 39, 92,237, 7, 92,236,246, 72,137,208, 52, 9,209,171,239,123,240,140, 97,136,154,107,223,117,184,181, -189, 5, 97, 96,119,113, 89,230,197, 89,253,198, 41, 33,165, 30, 41,246,240,100,186,132,214,163,233, 58,108,182,183,208,109, 79, -208,180,109,161, 73,213,119,191,129,176, 96,207,131, 41,189,245,251,123,123, 23,241,194, 91, 15,240,173, 59,175,225,234,242,201, - 68, 33,123,140,254,165,234,176, 96,235,162,101, 33,236, 89, 38,244,122,177, 36, 1, 9, 21,213,122,125,184,213, 4,107,157,144, -149, 31, 33,240, 0,236,207,113,149, 18, 90, 63,221, 41, 23, 78, 96, 30,224, 82,143, 16,175, 64,146,166,135, 39,141, 38, 33,229, - 16,173, 4,151,174,254, 55,192,210,214,167,115,107, 54,215, 68, 33, 45,240,150,220,196, 69,166,246,173,211,247,110,185, 71, 23, -204,109, 63,101,198,146, 76,211,188,230, 62, 62, 75, 98,187,154, 1,113, 52, 50, 35, 37, 79,199,141, 41,135,181, 91, 28, 89, 65, -230, 14,118,166,198,152,212, 66,165, 91,129, 88, 71, 20,115,204, 58, 26, 93, 71, 85, 96,151, 49, 93, 77,198,160, 22,169,196,114, -181,155, 28,227,208, 24, 6, 7, 66,185,195,213, 51,194, 17,127,118,172,239,161, 99, 6,114,115,224,231,149, 98, 75,112,179,221, -246,137,224,174,254,147,166,206,112,217, 72,166, 6,247, 99,133, 95, 6,115,152, 24,207,209,244,235,150,108, 97,121, 5, 15,100, - 38, 4, 8,146, 74, 33,252, 78,138,218,222, 13,241, 92,248,160,208,237,199,190, 63, 79,192,198, 19, 54,142,208, 24,141, 86, 20, -172,117, 88, 68, 53,123,204, 93, 19, 21,207,100, 5, 64, 79, 0, 5,143,208, 52,144, 24, 45,195,219,194, 75, 28,202, 74, 68,138, - 86,157, 51, 21,115, 16, 64,215,193, 66,227,208,180, 58,167,139, 81, 32, 28, 1,120, 77, 58,243, 14, 62, 56, 52, 65,149,186, 82, -236, 90,201,146,225,178,135, 58,143, 59,174,146,213,198,149, 73,131, 35, 52,206, 33,229, 93,122, 99, 25, 66, 8, 10,192,147,140, -231,108,122,193, 37,246,148,170,206,145,204, 9, 44, 13,106, 18, 83,142,112, 51,237, 8, 62,192, 19, 65, 56,153,155,156, 96,232, -123, 92, 94, 94, 98,127,213,235, 10, 25, 1, 49, 69, 36, 2,218,220, 35,250, 22,142, 2,224,168, 4,187,100, 19,156,108, 2,196, -182,250, 67,164,197, 88,211, 54,232, 78, 78,176,217,108,208,118, 91, 3,116,167,193, 56,164,243, 76, 33, 50, 47,124, 53, 9,217, - 39,193, 43, 15, 30,227,107,175,191,137,215,222,122, 27,187,253,149, 42,214,105,185, 99,148, 53,250, 47, 59,202,205,212,183,100, -130,184, 73,183,206, 2,118, 54, 61,204, 26, 3, 65,249,123, 1,126, 26, 15,127,169,138, 1, 17,192, 75,194,169, 92, 34, 14, 9, -125,106,212, 83, 29,106, 82, 68, 60,192,167, 61, 26, 25,138, 8,173, 6,243, 50,199, 68,237,216, 86,194, 66, 39,191,107, 91, 23, -170, 39,255, 82, 37,147,213,158,244, 82,121,188, 17,142,175, 1, 81,189, 17, 92, 28,213,203,123, 90, 79,167,221,228,231, 64, 7, -175,235, 48,148,181,254,247,217, 10, 19,201, 33, 11,147,205, 99,136,166,118,157, 68,211,142,217, 10, 92, 87,120,149,202,171,192, -190, 87, 46, 73,134,201,242, 17,108, 79,221,178, 34, 70, 31,132,105,154, 90,142,118,158,136,226, 42,161, 36, 22,138,164, 3, 0, -149,195,194,102,109,222, 94,123,168,227,134, 29,188, 28, 17,220,241, 17,225,217,154, 74,126,222,201,231,203,162, 20,158,121,101, -141,215, 29,230,106,224,230,234, 27,207, 5,194,226,250,221,194, 38, 36, 21, 67,173,138, 5, 33, 20,250, 93,222, 1,208,125,183, -113, 46,252, 69, 5,244,167,249,158, 26, 83,190,119,182, 99, 74, 57, 22, 53, 71,131,154,123, 26,201, 92,156, 35,249, 44,176, 67, - 78,229, 67,206, 17, 90,239, 33, 62,131, 73,142, 90, 86, 55,182,132,202,145, 45, 27,187, 56,130,111, 28,218,141, 71,215,122, 16, - 57, 12,131,152, 3,154,166,180, 53,196,112,193, 21, 55, 47,230,236, 55,111,190,240, 4, 16,113, 89, 7, 83, 83, 17,125,140, 20, - 25,253, 16, 49, 68,205, 59,175,231,169,186,202, 30, 16,154, 14, 77, 8, 90,152, 96, 92,221,115, 85, 39,170,132,165,131, 80, 42, - 39, 8,115, 66, 26, 34, 98,100,243,150,215, 82,217,129,224,124, 64,215,181,104, 66,192,208,235, 56, 34,198, 1,251,190,199,197, -229, 5,134, 8,108, 66,167,153,219,204, 32, 6, 60, 2,188,215,142,155, 56,192, 9,176,223, 93, 33, 13, 17, 65, 80, 92,223, 20, -140, 28,188, 9, 21,155,198, 97,115,114,130,147,211, 91,104,154, 70,117, 1, 62,140, 80, 40,169,180,102, 33, 52, 8, 68,184,232, - 7,124,231,254, 3,124,237,149, 87,241,198,195,251,136, 49,233, 42,227,252,190,151,245,195,104,154,248, 41, 85, 33, 52, 3, 18, - 17,139, 73,149,209,113,140,170,156,106,210, 34, 47, 3, 29, 85,143, 41,227, 19,140, 6, 53, 0,182,162,116,251, 62,245, 72,228, -198,200, 89, 25,224, 68,133,131,168,192, 53,159, 92,206, 64,217, 21,112,151,178,182,182, 4,236,174,238,193, 43, 47, 77, 42,166, - 68,211,249,247,244,125,163,155,168,221,176, 20,183, 42, 71,254, 46,229,181,211, 65, 2,122,109,127, 74, 84,139, 21,243,150,193, -248, 53, 34, 85,105, 83, 41,216,243,107, 39,151,195,150,212,118,152, 18, 3,142, 65,196, 86,248,234,106,159,118,224,198, 84,113, -206, 78,208, 63,217,124, 4,212,128, 70,193, 61, 89,202, 33, 79, 86,216,166,190,239, 83, 23, 66, 89, 5, 70, 62, 34,126, 59,218, - 53,203,113,235,215, 99, 51,246,121,247,190, 56,167,191,161, 24,111,197,109,224,128,146, 39,193, 98, 56,111,253, 24,197,200,137, - 14, 25,135,165,162,156, 23, 5,136,211,207,245,182, 85, 83, 66,130,222,199,224, 30, 62,200,128,158,223,214,214, 17,182,193,163, - 11, 14,141, 89, 63, 2,166,104,181, 27, 46, 31, 30,148,175, 44, 49, 95, 48,103,130, 33,219,207,101, 22, 53,238,240, 2,239, 9, - 24,108, 87,181, 18,214, 37,101,233, 70,225,134, 7, 66,231,208,157,116,104,131,131, 39,211,213, 37,157,149, 56, 8, 60, 49, 40, -136, 26,129,176,174,197, 9,233,172, 29,208,120,211, 44,156,163, 82, 96, 72,233,228, 7, 51,155, 25,108,206, 15,219, 89,103, 6, -156,107,208,110,182,104,219, 22,193,187,177, 51,178,195,109,244,128, 31,231,127,133, 66,180,128,148, 24, 35, 82, 44, 22, 53,240, -214,161,135,208,192,251, 6,109,240, 96,246, 72,146,208, 15, 3,118,251, 30,177, 31, 48, 36, 2,133, 8,199, 14,130,136,174,109, -208,144, 55,165,181, 67, 27, 26,236,247, 3, 98,191,211,153, 49,229,125, 98,221, 12, 64,210, 31,129,111, 8,219,109,139,237,201, - 41,218,174, 67, 19, 26, 5,123,162, 81, 77,156, 69, 79, 38,222,187,236, 7,124,235,173, 7,248,147, 87, 95,193,219, 15,239, 35, -153,143, 59,142,204,225, 14,160, 71, 42,119, 42,170,169, 64, 41,162,185,204,172, 19, 97, 4,101, 18, 11,120,177, 9, 57,229,241, -139,160, 56, 13, 83,182,231,173,158, 8, 83,149, 48, 17, 97, 43,140,150,212, 26,118, 60, 16,121,226,176, 86,154,209, 25, 5,143, -217, 44,189,246, 89,159,175,187, 29, 96,177,212,180,183,172,192,242, 82,111,189, 46,148,186,233,125, 75, 43, 12,202,234,107,205, - 29,189,140,243,235,236,233,224,179,173,111, 57, 63,198, 57, 57, 97,198, 66, 88, 33, 77, 78,253, 6, 18, 89, 94,186,208,120, 79, - 36,237,212, 83, 76,186, 70,154,216,254, 84, 29, 73, 74, 81,199, 70,153, 65,171,253, 4,176,150, 5,126, 72,123,243, 49, 21,247, - 13,231,222,107,243,239, 99,118,176,107,116,255,117,157,253,154,136, 15, 56,110, 98, 51,181, 47, 94, 22,226, 97, 34,142,147,242, -119,135,235,237, 98, 23,231,253, 50, 23,239,233, 42, 42,222, 33, 48,126, 55,193,253, 3,237,253, 78,165, 83, 39,116,222,161,117, - 70, 21,187,220, 9,170,106,156,178,237,135, 35, 80,202, 51,196, 49,171, 80,215,221,242, 42, 25,149,140,110,135,220,149, 75,201, - 53, 79,163, 79,138,101, 66, 16,124,235,176, 57,105,208,118,141, 26, 47, 68, 70,146,160,124,189,168, 67,178,243,206,204,112,140, -226,102, 93,117,163,108, 90,147,213,202, 22,152, 80, 58, 13,102, 12, 41,162,143, 61,210, 48,168,130,220, 18, 17, 56, 9,132, 2, -154,110,139,205,102,139,144,233,251, 34, 24,202, 32, 35, 99,150,184,176,197,150, 90,122,153,217,184, 14,131, 41,119,109, 16,235, -189,206,231, 29,128,126,191,199,206, 57,117, 68, 19, 77, 92,235,251, 94,221,104,157,186,110,113, 28,224,124, 66,160, 78,119, 8, - 68,205,101,134,116,133,171,203, 29, 82, 63, 88,199, 53,178, 40, 77,208, 36, 21, 6,176,221, 52,216,108, 78,208, 52,173,110, 6, -152,130,191,204, 35,147,128,156,230,119, 67,128,251,231,231,248,230, 27,247,240,205,215,239,224,209,249, 19, 13, 33,161,235, 87, -111,214,102,130,245, 33,231, 42, 44,205, 22,167, 98,129, 58, 42, 82,204,160, 63,254,201,146,221,220, 50, 36,215,153,225, 75,179, -125, 65,109, 63,148,127,254, 50,179,175,133,200,236,128,148,131,195, 18, 69, 44, 55, 94,183, 52,163,222, 87, 89, 75,169,184,252, -167,134,227, 67, 48,159,199,103,210,194,159, 88,120,239,231,229,195, 97, 89, 65,135,140, 63, 3,226,149,242,118, 82, 41, 29,204, -168,168, 12,121,235,242,200,194, 85, 82, 74,165,160,241,162, 29,156,106,107, 84,200,153,162, 2, 56, 15,131, 81,239,169,128, 58, -167,100,180,124, 66,148,106, 75,161,132,183,212, 49,171,181, 66,225, 16,156,111,218, 97,175,125,156,175,233,158,215, 24,129,163, -133,128,220, 12,212,151,138, 6, 89,185, 22,168,186, 9, 28, 25,115,186, 52, 78, 16, 53,200,114,117, 1, 67,203,243,119, 44, 48, - 13, 88, 1,124, 39,132,240, 46, 0,240,187, 1,238,127,225, 64,253,105,152,135, 60,167,107,156,232, 42, 91, 62,208,136, 84,241, -206,201,248, 44,237,212, 61, 17,152, 76,216, 82, 86,145, 74,179, 94,190,174,100,141, 77,230,140, 99,106,105,206, 78,118,158,224, - 91, 66,187,109,209,180,173,210,252, 67,194, 16,243,222, 44,193,147, 71,227, 61,218,214,193,145, 29, 14,146,247,200,201,204, 66, -116,229, 90, 9, 4,181,218,116,164,123,231, 41, 37,236,247, 61,250,126,208,117, 56,214, 29,123,141, 19,119, 32,223,192,217, 76, - 27,204, 42, 14, 36, 11,167, 24,151,101, 39,116,150,203,135,164,229,204,103,193, 84, 1, 24,202, 62,225,140, 52,236,112,158, 18, -134, 56, 32,180,140,198,229,140,244, 4,223,109,112,122,114, 6, 16,225,234,242,113, 89, 85,131,186,222, 35,197,136,253,174,199, -126,119,165,111, 92,166,137, 37, 41, 23,224, 28,130, 39, 80, 8, 56,217,158,162,107, 59,243,241,231,113, 70, 41,170,248,135, 49, - 25, 16,224,193,110,143,111,220,123, 11, 47,190,246, 10,206,119,151,171,125,194, 26,125,120,176, 70, 68, 11,121,205,148, 55, 34, -234, 25, 49, 21,121,156,192,219, 92, 93, 89, 21,103,224, 33,133, 34, 30,237, 81, 93,181, 38, 86,124,192,103, 64, 61, 63,224,220, -202,181,190,212,125,143,126,107, 52,153,177,187, 5,212, 93, 3, 86,170, 67, 86, 14,232,116, 58,222,139,203,250,115, 28,251,212, -122,151, 95,104,185, 88,168,245, 13, 83,127, 5, 51, 38,146,236,238,231,138,129, 9,216, 4,253,110,218,247,231,240, 29, 22, 1, -217,246, 4, 49,131,147, 87, 58,223,124, 28,216,152,180, 20,141, 98,143,201, 40,247,104,218, 22,235,212,237,255,133,181,107,207, - 63, 91, 54, 67,168,241,255,175,239,154,121, 5,188,129, 27,228,135,163,114,125,187,225,215,240, 90, 71, 46,199, 59,245,131,199, -144,229,162, 98, 62,231,158, 51, 48, 7, 29,248,196, 47, 31, 37,242, 88, 48, 6,197, 96,129, 37,224,165,247, 99,225,158,119,194, -112,156, 22, 86, 42,223, 57,220,122,167,128, 61,124,208,128, 28,135,218, 24, 83,188,139,237, 91,155,253,165,212, 25, 21,110, 66, - 63,151,237,245,170,149,114,174,154,193, 17,166, 84,117, 6,244, 44,132,170, 0,189,233, 58,108, 54, 39,104,125,131, 20, 35,250, -200,224, 40, 0,122,144,131,138,230,124, 64,200,128,158,216, 86,196, 34, 88, 60, 58,120, 52, 94, 15,254,100,230, 54,100, 5, 10, - 33,153,133,104, 68,138,170,144,207, 32,172,246,177, 1, 46, 52, 0,180, 83, 14,158,224, 41, 40, 3,144, 5, 90,168,246, 72, 36, - 43,126,157,206, 20, 57,149,220,248,156, 18,231, 72,204,211, 37, 33,102,129,144,244, 72, 24,112, 22, 26,245,191, 79, 2,231, 90, -108, 79,206, 16,154, 13, 46, 46,207,193,125, 15, 71, 9,220, 51,164,205,141,122, 68,140, 3, 36, 73,213, 97,165,114, 91,187,166, - 67,183,221,160,105, 2, 66,163,197,137,243, 30, 18,147, 10,146, 98,143, 36,201,124,237, 61,246,125,196,189, 39, 15,241,205,251, -247,241,189,183,239,227,106,119,133,195,172,170,235,205, 59,100,129,170,155,236,190,230, 81,139, 21,128, 90,224,160,136,222,178, -125, 15, 72, 55, 8,132, 92,177, 3,117, 52, 59, 93, 49, 2,252,152,234,133, 42,141,175, 78, 42,171, 39,201,179, 6,218, 78, 59, -183, 0,179,147,153,229, 66,135,180,214, 57, 99,129, 61,208,151,118,184,179, 70, 55,164,220,229, 6,236,192,210, 76,118,247,215, - 0, 0, 32, 0, 73, 68, 65, 84,231,144,141, 59,170, 73,250, 36,197,107,241, 72, 23,168,134, 33, 43, 94,139,187, 17,129,146, 43, -167,227,228, 61, 23, 51, 71, 22, 6,137,168,133, 52, 37,112, 78,218, 51,129,156,222,171,154, 71, 16, 99, 5,232, 41, 89,156,111, - 4,115, 52,147,169, 52, 6,191, 84, 14,114, 40,133,160, 44,198,144,202, 10,184, 86, 65,145,171,234,117, 90, 1,100,185,193,236, -123,149,177,146,149,252,243, 21, 58,255, 64,115,178,240,188,243,107,209, 1,215,219,190,162,218, 49, 87, 82,178,140,148,100, 69, - 24,115,204, 89, 78,157, 50, 25, 94,146,185, 69,190,123, 56,246, 78, 0,123,248, 32, 3,122,190, 8, 2,128, 32, 4, 98,104,154, -146, 31,215, 89, 72,198, 45, 72, 49, 62,204,153,128,172,204, 64,157, 10,182, 72, 98, 1, 66,206, 40, 68,163,164, 50, 51,218,222, - 91, 38,117, 8,104,155, 13, 54,237, 41,218,166, 65, 79,123,196, 1,112,146,212, 0,196, 37, 4,199, 32, 12,136, 17,136, 67,210, -157,110, 61, 83,148,106, 23,129, 68, 96, 96, 65, 74,154,203,238,125, 22, 47, 37, 12, 67,196, 96,170,116, 11,150, 27,221,151,200, - 20,243,208, 89,189,247,161,236,221,162,210, 33, 43,136,231,221,118,148, 49, 4,103, 21,119, 17, 20, 9, 92, 32,176, 81,234,136, -246,189,123, 32,116,132,182,107,148, 88,246, 1,109, 56, 69,215,110,208,247, 3,118,151, 23, 64,236, 65,222, 97,216, 71, 92,185, - 1, 45, 97,204,168, 47, 7,157,153,227,132,128,110,219,162,219,158,160,219,110,116,204,145, 52, 19,188, 11, 13,200, 82,176, 82, - 74,136,156,208,250, 6, 3, 28,238, 60, 57,199,215,239,222,197,107, 15, 31, 96,136,177,120, 68,175,174,172, 29,185,217,101, 86, -237,115,181,127, 46,213,225,234,242, 28,157, 76, 21, 78,166, 29, 55, 19, 23,134, 83,241,149,179, 41,120,142, 95,157, 32, 23,207, -114,177,171, 2, 83, 14,143,160, 37, 27, 88,208,225,225,136,149, 67,211, 45,204,168,151,168,112, 76, 12, 90,103,103,221, 83,116, -223,245,193, 74,180, 76,175, 3,203,186,118,153, 81,175,186,217, 48,126,126,238, 6,137,170,124,241,162,108,214,213, 78, 22, 19, -177, 96,116,153, 3, 69,120,198, 65,198,189, 36, 30,221, 5,115,141, 89, 40, 84,125,198,156,166,152,103,231, 49, 70, 36, 73, 6, -226,169,252, 22, 78, 96, 73,106, 80, 92, 66, 92,234,239, 73, 38,212,240, 77, 0, 87,158,242,115, 81,205,231,151, 0,153,112,124, -173,109, 41,248,229,152, 35,221, 18,237,125,221,124,157,174, 41, 14, 87, 3, 89, 48, 53,163, 33, 89,127, 63,150, 30, 96,106,104, - 35,240,239,209,206,249,120,254,200, 7, 15,212,223, 9,145,159,130,186,166, 78,169, 97,135,146,144,108,150,152, 84,223, 86, 70, -195, 23,131, 23,117,159,129,119, 64, 34,135, 36, 46, 7,134,219,107,243, 96, 23,109, 30,111,206, 92, 78,141,103,188,249, 73, 59, - 23,108, 22, 71,106,216,226, 2, 54,219, 6,222, 51,156,244,128,153,185, 12,145, 17, 99,182,132,205,254,222,164,251,175, 44,136, -131,118,129,193,107,252,134, 56,117,141, 75,113,192, 16,147, 26,194, 36,235,182,161,157, 35, 9,195, 73,130, 39, 15, 31, 2,188, -247,240, 57, 74,146,104,178, 62, 3, 25, 93,176,192, 82, 20,232,112, 26,233, 74, 46,171,229, 5,201, 52, 8, 26, 14,226,208,110, - 58,108, 79,183,104, 54, 29, 16, 1,239, 24,226, 2,188,115,216,118, 45,250,174, 67,143, 1,128,118, 49, 41,105,164, 34, 39, 75, -152,115, 1, 66, 61, 64,140,174,235,112,122,235, 12,155,211, 83, 52,161, 45, 59,194,193,230,236,125, 63, 32,113, 66, 27, 2,226, -142,225, 16,208,116,183,112,247,226, 10, 95,125,227, 30,238,220,191, 15,230, 52, 77,218, 92, 1,116, 44,208,114,124, 4,216, 51, -161,145,187,243,220, 42,215,158,238, 83,127,247, 28, 37,234, 12,240,165,250,122,172, 4, 77,200,129, 88,167,222, 12,119, 43, 7, - 34,173,116,231,152, 1, 58, 45, 80,245, 75, 0, 61,125, 94, 90,220,231, 63,236,194,229, 64, 44,119,216, 97,201,100,108,181,118, -215,142,166, 50, 83,167, 57, 41, 45,218,244, 69,103, 70, 73, 25, 40, 29,127,128,108,215,222, 92, 31, 5, 9,117,236,170, 32,193, -249, 49, 95, 65,100,205, 33,220,217, 40, 74, 74, 18, 93,189,194, 38,204, 58, 75,231,164,177,179, 25,216,171, 24, 85,153,185,201, -201,202,252,252,166, 66,184,181, 2,116, 45,208, 5,215,129,241, 10,109, 46,215,208,254,115, 64,191,206,142,118,169, 75,230,217, - 53,235,214,116, 29,243,199,170,215,225,170,235,122,105,197,239,216,251,155, 91, 28,135, 52, 29,238,191, 79,127,125,160,133,114, -121, 54,227, 68,109, 54, 41, 17,196,153,114,210,230,156,218, 61, 84,243, 92,170,146,125,204, 25,129, 89, 83,205,136, 28, 6,210, -238, 82,163, 72, 53,221,137,125, 52,161, 22, 44, 71,220,233, 62,172, 16, 98, 63,128, 19,176,119, 26,137,233, 27,157,159,123, 2, -120,208, 14, 53, 13, 9,113,144, 18, 34, 3,155,165,235,140,157,177,223, 91,240, 9,105,210, 89, 32,135, 0,179, 90, 53, 69,126, -226,195, 19,215, 57, 29, 61,168,226,158,202, 42,143, 2,182,165,111,137, 50, 20,186,218,102,148,165,197,184,170, 66, 94, 65,215, - 9,131, 2,138,224,167,188, 63,109,139,112,178, 69,219, 54,104,200,129,130, 71, 12, 17,187,253,128, 62, 68,156,109, 54,120,230, -214,109, 60,230,136, 97,127,137,128,128,224, 28, 56, 14, 72,204, 16,242, 96, 73,240, 13, 97,211,221,194,201,233, 25,182, 39, 39, -104, 66,208,111, 34,120, 52,161,133,131, 96, 31, 7,164,125,143, 38,180, 16, 34, 53,236,113, 13,238,157, 95,225,143, 95,125, 21, -119,222,126, 83,195,116, 28,142, 83,238,178, 60, 67, 95,164, 21,101,218,173,212,145,148, 89, 8,167,115,126,148, 53,191,241,176, - 82,160,241, 34, 96,202, 94,246, 54, 47,172, 11,131, 25,112,149,131, 70,228, 32, 74,114, 10,148,114, 48,205,158, 31,138,180,210, - 13,205,187,244,250, 11,234, 34,162, 6,246,131,110,186, 80,160,130,249, 87,209,145,126,171,166, 78, 87,193,127,198, 74, 76, 15, - 99,129, 51, 81,226,124,159,125,212,245,141, 81, 33,194,163,250, 93, 64,240, 73,217, 39, 39, 92,220,244, 40,111,185,128, 45, 39, -125, 94, 4,202, 56, 79,135, 58, 38,178,232,202,154,100, 16, 55,125, 71,142,161,149,202, 6, 86, 48, 5,244,249,152,135,143,141, -131,102,160,189, 70, 77,203, 82,247,125, 3,235,216,131,153,253,138, 18,158,112, 68,120, 39,215,155,223,224, 72,167,190, 36,166, - 36,187, 79,142,106, 47,170,249,186, 91, 24, 23, 96,133,246, 63,204,131,151,197, 8,216,119,187,105,253,126,186,245, 63,151,160, -254, 78,174,225,121,104, 10, 15,146, 64, 44, 74,178,236,135, 58, 84, 22, 71, 57,155, 91, 70, 3, 26,206,149,190,121,189,228,110, -205,168,112, 33,130,111,188, 94, 20, 46,106,241, 64,206, 58, 51, 1,167, 8, 25, 6,136,236, 0,231,177,217, 52,104,219, 13, 60, - 4,146,122, 21,120, 37,128,147,118,228, 4, 91,147, 18, 95,118,103,251, 62, 97,191,215, 66, 34,120, 7,246,122,209,169,234,222, - 14, 32,169,163, 18, 45, 41,218, 5, 52,109,139,174,213, 29,242, 16,124, 25, 43,144,211,217,121,182,184,205,235,120, 57,180, 34, -145,197,154,138,134,173,132,160, 66, 35,120, 7, 72, 4, 69, 1,136,145,188, 7,117, 29,194,102, 3,239, 29, 56,141,160,149,134, - 30,231, 61, 67, 18,163, 65, 78, 75,213, 29,120,142, 3,210,126, 87, 44,109,189, 19,108,218, 19,156,156,157, 97,115,114,166,170, -122, 17, 56,175,197,145,183,128, 12, 47,128,223, 56, 56,120, 92, 92,156,227,201,190,199,157,139, 39,248,246, 91,247,240,240,209, - 3, 45,212,220,122, 87, 48,167,125,143,118, 21,178, 30,106, 81,139,142,198,196,182, 28,102, 51,138,225, 68,148, 64, 78,217, 63, -191, 66, 83,135,169,163, 22,128,178,117, 65,152,235,161,167,104,236, 86, 14,196,186,119,117, 43,135,100,205, 8, 76,129,148, 38, -145,155,135,173,248,220, 58,198,224, 84,166,110,111,235, 32, 93,127,245,244,139, 14,129,251, 8,237,111,192,157,204,229, 14,229, -125,165, 73,181, 66,134,154,148,135,238, 82,167,150, 7, 56,214,113, 84,222,232, 80,207, 10, 87,214, 57, 33,163,173, 43,242,234, -168, 88, 65, 95,238,187,172,106, 55,186,221, 10,108, 49, 64,135,229,163, 79,104,118,185,153,162,189, 24, 29,201,245, 43,105,152, - 93,183,233, 8,144,173, 93,243, 75,107,100,139, 22,173,115,128, 95, 88,199,163,107, 58,227,131,140, 5, 26,117, 43,168,116, 43, - 24,195, 16,143,166,172,149,215, 64,227,117,207, 51,122,125,145, 37,168, 12,117,184,216,247,226, 93,155,169, 31,195,186,167, 1, -247,240, 65, 5,243,131, 67, 47,251, 50,167,241, 3, 98, 67, 81, 17, 54, 67, 18,170,108, 38,205,173,205, 92,100,242,223, 73, 84, -180,230,152,117,175,145, 8,161, 81,135, 54,142, 70,181,194,107,176, 74,202,222,240, 14,193, 11, 26,239, 17, 40,194,177, 38,177, - 33, 17, 88,252,184, 18,103,221,157,120,157, 3,246, 3, 99,191, 79, 24,122, 13,234,112, 78, 15,154,129, 25, 9,170, 17, 72,182, - 67,143, 10,164,201, 57,132,182, 65,215,117,104,218, 6, 62,120,144, 5,203,120, 71,211,245, 31,103, 78, 78,130, 66,117, 59,199, -240,110,164, 42, 73,200, 70,139, 14,226, 26,144,173,190,197, 16,224,219, 14,109,219,192, 35, 97, 24, 18, 72, 24,113,136, 64,140, -216,247, 61,134,125, 15, 79, 2, 30,118, 32, 48, 6,236, 16,135, 29, 36, 13,250,126,116, 27,108, 78, 78,209,110,182,232,182,234, - 20, 87, 64,201, 86,246,196, 50,192,187,166, 65,138,132,243,243, 75,188,254,248, 49,190,251,224, 17, 94,125,248, 16,151, 87,234, - 16, 71,180, 14,228, 75, 96,189,170,232,149,195,217, 57, 87, 96,238, 48,255,184,148, 21,195,100,162, 44, 39,174,184,204,101,117, - 59,153, 39,249, 24,228, 39,147, 13,111, 42, 39,254,212,144,117,254,247, 53,250,219,175, 92,255, 75, 44,251, 28,162,233,160, 55, -158, 2, 60, 17, 29, 4,173, 28,166,168, 97, 1,130,231,198,178, 85, 81, 97, 10,183,185, 5,108,254,248, 97, 28,231,120,159,228, -125,244, 49, 69, 46,207,173, 77,183, 64,118,207,166,236, 28, 7,128,245, 94,115, 44, 96, 91,193,164,108, 31, 91,129, 58, 32,165, -160,159,184,193,153,138, 61,123,190,151, 78, 92,210, 76, 4, 55,154,205, 76,195, 69,100, 93, 88,182,112,125, 66,214, 35, 85,151, -128,246,198, 62,241,165, 11, 94,254, 56,173, 0,226,117,198, 54, 55,233,204,101,197,172,102,162, 13,153,165, 12, 30, 3,244, 37, -103,189, 53,143,131, 37,127,252,242,121, 85,130,159,252, 25,176,239, 79,211,181,127,224,247,212,243,202,144,203, 55,106,202,192, -151, 79, 18, 6, 57, 41,105, 85, 68,174,116,230,122,138,171,106, 77, 82, 54,104,177,180,171,226, 98,101, 93,133,247, 6,176, 4, -102,221, 63, 23,155,157, 54, 30,104, 3,161,113,140,128, 4, 39, 65, 87,223,122,221, 1, 87, 27, 88, 49, 11, 82,130, 56, 15, 6, -176,235, 19,134,157,210,227,206, 19,146, 0,125, 18, 68,210, 72,207, 70,178,113, 76,117, 99,144, 67, 8, 10,232, 93,219,192, 59, -181,159,109,130,229, 70,175,108,138,214,206,100,206, 17,154,224, 65, 73, 15,182,228, 4,148,164,136,182,156,211, 20, 54,215, 4, -108, 54, 13, 58,239,128,125, 15,238, 7, 0, 78, 5, 68,182, 34,146,226,128,196, 81, 45,100, 33, 72,113,128,243,132,182, 13,104, - 55, 91,108,111,157,161,217,110, 65, 68,104,154, 14,228,189, 50, 28, 24,215,168,250,216,131, 44, 85,244,241,229, 57, 94,125,240, - 0,223,125,251, 1,238, 61, 57, 71, 76,177, 36,172, 30, 85,183,203,202, 65,115, 13,160, 11, 70,135,192,186, 8, 96,115,109,203, - 6, 52, 89,229,158,205,101, 14,181,200,138, 44, 78,104,210,217,184,106,210, 51,238, 44,203,140, 34,151,162,140, 95, 35, 49, 39, -138,248,107,254,148,133, 78,125,106,230,186,240, 12,114, 88, 52, 17,166, 30,239, 92,165, 30, 78,159, 79, 22, 59,242, 82,176,200, - 92,254, 55,138, 18, 29,166,243, 1,153,125, 53, 73, 53, 30,168,170,144, 52,147, 65, 83, 78,161,115, 57,215,192,233, 24,137,125, - 73, 68,148, 42, 73, 94,107,120, 53, 35, 97,201, 78,114,181,176, 51,141,193, 45,204, 37, 47, 61, 91,192,202,168,168, 88,221,153, -158, 11,217,112, 67,128, 92, 3,212,155,168,216, 49, 95,203,148,117, 31,249,197, 98, 66,174,167,242,215, 98, 96,143,125, 95,152, -205,183,129,195,180, 53, 92, 7,238, 82, 3,244,113, 64, 95, 92,115,163, 81, 26, 74,144,247,124,170,126, 83, 96,255,115, 3,234, -239,158,243,157, 81,154,108,166,193,196, 70, 27,101,177, 88, 6,124, 26,179,116,153,202,190, 55,155, 41, 75, 54,141,208,131, 33, -192,137,192, 39,155, 47, 67, 61,165,189, 55,119,179,164, 54,115,158, 8,193, 3,141,119,104,156, 32, 8,131,162,128,145,144,250, -136,184,239, 45, 77,204,152, 3, 79,112,141, 71,211, 4, 64, 4, 67,207, 37,213, 77, 68, 41,241,196,128, 79,234,255, 75, 44, 86, - 16, 96, 4,141,236,143,222,181,104,130, 38,188, 5,103,128,110,130, 1, 2, 21, 21, 50,203, 88,159,103,247, 58,231,156,110, 90, - 11,235,115,148,168, 73,182,228, 54, 29, 3,180,109,131,147,198, 1, 28,209, 15,131,206,179,133,144,162, 32, 14,209, 66,102, 18, - 56, 13, 6,234,128, 39,135,182, 61,193,233,237,103,112,235,236, 25, 52,221,198, 68,133, 64, 8, 77,233,152,180, 80, 34,164, 97, - 64,191,239, 33,177,199,229,174,199,119, 31, 60,192,119,239, 63,192,163,203, 43,235,180, 86,214, 88,112,189, 65,199, 65,164,229, -194,141, 95, 92, 2,229,240,112, 43, 62,224, 46,131,152, 46, 64,231, 29,118,206,153,207, 6,252,108, 39, 79,246,244,203,102,190, -174,114,153,155,131,165, 44,118,229,203, 83,213, 99,102, 46,199,198, 16, 88, 4,125, 28,153,138,211,138,148, 72, 86, 31, 27, 11, -179, 89,154,252, 93, 14,102,165,211, 94, 13,139, 67, 9,169,167,194,118,127, 3, 52, 97, 31,202,227,136,238,157, 35, 39,183,177, - 3, 40,193, 57,175, 34, 86,179,248,205, 63, 44, 54,148, 40, 62,238,229,119, 45,128,147,145,178,183,209, 75,237,231,190, 52,143, -230, 5, 42,250,166, 0,189,116,157, 46,209,221,139,202,246,249,215,201,241,189,244, 53, 45, 10,227, 6,140,216,145,185,254,122, - 33, 32, 51,171,110, 92,123,213,211,194,123, 64, 71, 44,159, 15, 84,253, 50,102, 5, 72, 29,173,251,167,180,139,125, 55,129, 61, -124,112,193,188,190,120,196, 92,131, 48, 90,168, 26, 21,154, 59, 80, 1, 1, 46, 40, 37, 40,150, 62,153, 99, 72,133,224,156, 87, -191, 87,243,100, 79, 28,139,219, 28,217, 58,155,115, 30,137, 24, 12, 21,107, 5, 34,179,118,181, 44,242, 1,224, 97,143,196,132, - 33, 70,141, 25,181,118, 77, 28,129, 90,143,174, 11,104,136, 32,189,237,179,139,130, 2,151,149, 29,117,199,162,164,206,116, 49, -102,224,215, 67,169,105, 27,108, 54,141, 6,194,120, 51,153,201,220,180,131, 89,176, 2,142,140,172,205, 42, 93,176,202, 11, 92, -158, 5,143,145,163,147, 62, 74, 24, 36, 9,222,121, 52,206,193,167,132, 97, 24,180, 75, 23,125,188, 97,176, 92,116,209, 93,119, -146,164,187,245, 33,224,228,244, 20,103,207, 62,135,237,237,219, 8,230, 14, 23,130,110, 36,120,167,175, 87,224,116,234, 49, 36, -244,151,151,232,175, 46,241,232,106,135, 87, 30, 62,198,203,143, 30,225, 98,183,183,226,234,248,125,183,180,190, 3,172, 59, 92, -205,169,197,124, 0,164,122, 30, 74, 53, 53,153,153,155,241,240, 34, 26,157,229,114, 32,141,179, 85,172, 76, 57,231, 36, 55, 71, - 6,230, 68, 7, 51, 99, 90, 16,207, 97, 17,180,143, 3,122, 29,156, 34,179,174,126,121,141,237, 16,216, 15, 99, 79,103, 62,237, -185, 11, 62,128,222,169,122,125,205,206,243,216,207, 77,102,187,249,249,189,153, 23, 5,135,195, 90,153,193,197,184, 83, 71, 37, -169,137,139,153, 81,206,131,200,153,241,217,109, 78, 1,155,199,142, 92,210,132, 51,200,177,185, 89,124, 59,247,112, 95, 2,228, - 53,177, 25, 95,215,157,227,230,201,106,107, 84, 57,112,179, 25,253,117,102, 54,114,100,110, 79, 88,182,184,229,217, 85, 49,253, -158,100,241,113,233,154, 2, 17,215, 20,176, 75, 95,199, 75,241,172, 68, 7,187, 27, 7, 49,222,239, 17,200, 95, 7,236,127,206, -232,119, 26,145,100, 14,246,197,151,247,233,222, 88,237,180,138, 17,172, 29, 64, 84, 9,106, 12, 25,216,141, 42,200,146,191,108, -202, 88,175, 14,111, 46, 52, 26,147, 58,236,141,234,182,110,223,107,247, 74, 32, 80,240, 16,210, 3,219,131,139,197,171,216, 28, -157, 57, 33, 49,144,178,178, 57,127,187,158, 16, 66, 64,227, 60, 16, 5,195,158, 33,137,224,124,131,166,107, 65,129, 16,185,135, - 72, 84, 37, 58,171, 8, 77,170, 45,140,166, 9,216,116, 45, 54, 77, 64,240,174,128, 36,156, 2, 60, 57, 42, 97, 49,158,124, 9, -195, 72,162,113,171, 92,192, 91,166, 52,180, 9,232,144,247,175, 83, 4, 17,195,197,136,116, 37, 64, 28,212,208, 7, 78,169,115, -214,208, 27,199,230,157,237, 8,190, 9,216,220, 58,195,217, 51,207,225,228,236, 76, 1, 29,154, 38, 23,188,183,185,185, 83,139, -206,161, 71,236,123, 12,253,128,139,139, 75,188,121,126,129,151, 31, 62,194,221, 39,231,232,135, 88,252, 0, 68,110,208,153,203, - 20,216,177,212,145,207, 78,171, 3,112,231, 89, 40, 4,205, 44, 99, 43,221, 23, 11,224, 11,176,143,221,121, 17, 2, 25,112,184, - 76,203,230,217,239,226, 36, 16, 11,132,181, 60, 85, 23,190, 22, 87, 74, 55,232,216,235, 46, 55,111,144,173,170,212, 75,134,249, -236,223,143,252,108,198, 3,121, 84,215,187,197,121,171, 76, 18,204,230,160, 79, 51,192, 56,240,169,151, 25,101, 15,182,249, 26, -149, 4, 58, 21,184,142,133,151, 84, 23, 0,215, 29,122, 73, 88,147, 69, 32, 22,145, 85,118,168,238,114,175, 19,147, 45,205,161, -175,179,141, 93, 19,162,221, 68, 96, 39, 56,190, 33,130, 27,116,231,243, 98, 24, 88, 86,146, 51, 48, 51,224,193, 81, 64, 95,124, -206,234,122, 60, 6,232,107, 34,193,185,219, 28,195,141,233,111, 75,166,205,166,155,121, 63, 0,251,251, 26,212, 75, 37, 68,222, - 2,201, 91, 32,216,111,242,128, 11, 40,158,167,177, 7,134, 61,192, 61,144,172,119,186,230, 13,206,243,208,100, 7,115, 18, 64, - 92,128,248, 22,174,233,128,118, 11,242, 94, 45, 87,101,128,240, 14,196,209, 40,188,188,203, 43, 5,116,115,151,234,132,225, 65, - 96,147, 90,103,113,157, 19,221,103, 23,167,246,148,110, 86,146,234,110,235, 72,229, 90,118, 9,224, 1, 10, 14,141, 35,120, 49, - 42,208,121,180,219, 6,221,102,131,147,237, 6,228, 5, 87,251, 43,236,247, 79, 64,177,215, 7,137,166,170,246,246,249,109,131, - 77,219, 34, 52,154,130,230,131,215,221,116,239, 74,118,124,112,185, 96, 98, 83, 93, 43, 96, 75, 28,239,100,181,145,205,250, 3, -101, 41, 24, 90, 68,100, 21,183, 36, 70,188,184,130,236, 8, 29, 9,136,188,186,110,177,189, 23, 14, 96, 15,192, 7,248,224,209, -110,182, 56, 57,123, 22,155,147,147,226,204,181,105,130, 10,255,204,114, 83, 88, 1,155,247, 3, 98,191,199,227,171, 29,238, 60, - 62,199, 43, 15, 31,225,254,197, 37,134,196, 85,188,237,245, 21,249, 81, 97, 12,174,223, 17,206, 31,139,118, 13,173, 82,162,149, -219, 25, 48,102,174,231, 46, 60,251, 85,231, 89, 29,229,196, 54,168,231,116, 38,140, 29,209, 1,225, 60,253,127, 57,236,172, 43, -107,118, 89,237,230,215,187,253, 37,186,125,250,185,180,240,111, 75, 95, 35, 99,134, 57,176, 58,151, 7,106, 19, 26,169, 40, 83, - 41, 59,255,147,147,155,150,129,106,206, 7,212, 52,246, 49, 23, 59,145,105, 89, 64, 57,116, 29,245, 22, 73, 94,151,171, 27, 3, -165,220, 71,213,195,236,231,143,227, 51, 91, 57, 18, 93, 42, 43, 29, 57,158,166,131,199,245,174,105,215,129, 58, 86,198, 82,199, -216,149,131,240, 35, 28, 95,185,195,145,247, 75,228,248,181,120,172, 85,151,149,235,120,137, 29, 89,122, 12, 45,212,221,104,114, -180, 52, 92,122,143,233,248, 53, 96, 15,239, 75, 16,175,127, 57, 15,248, 6, 8, 29,208,158,232,111,215,234,191,249, 0,196, 4, -164, 30,104,122, 32, 92, 2,253, 21, 64, 61, 32,113, 28,120,206, 93,177, 43, 47, 65, 1, 35, 17, 27, 45,238, 33,174, 3,218, 91, -192,201,115,216, 60,247, 60,186,205, 6,105,127, 5,185,122, 0, 55, 92,192,197, 29, 40,245, 70,163,170,226, 21,101, 54,188,183, - 64, 7,165,215,189,241,154, 98,194, 57, 98,128, 97,206, 82, 98,206, 84, 32,235,166,117, 30,158,247,201,201,233,183,238, 2,129, -188,166,146,181,174, 69, 23,110,129,154, 0,218,104,104, 73,215, 54,104, 3,129,121, 80,195, 22, 17, 85,240, 39, 88, 36,171, 66, -133,111, 2, 54,109, 64, 19,212, 96,198, 7, 15, 23,188, 2,187,203,227, 1, 53,197, 65,165, 15,112, 68, 37,221,172,184,117,229, -244, 48,251, 36, 93,239, 83,179, 13,117,204,107,180, 64, 25,116, 7, 63,134, 80,185,220,193, 66,114, 4,174,109,208,182, 29,218, - 77,135,174,219, 98,187, 61, 69, 8, 45, 18, 0,239, 60,152, 5,125,236,193, 81, 35, 99, 29, 1,109,216, 32,138,195,253, 61,227, -187,111, 63,196,171, 15, 31,226,124,223,171,232,208, 29, 30,120,171, 7,136, 28,143,147, 92, 75,114,226,234, 16,144,170,162,143, - 88, 86,205,115,182, 94,173,134,193,108, 45,171,163, 42,128,194, 62,215,177, 50, 65,197, 3,190,222,217,174,204, 52,104, 70, 31, - 80,197, 12,208,172, 99, 31,105,233, 58,253,173, 18,224, 45,204,233,175,163,219,235,209, 21, 85, 39,103,118,110, 35,208,129,210, - 24, 89,209,126,180,189,154,190,222,233,135, 15, 15, 48,154, 0,133,140,247,117,229, 25, 46,179,174,153,112, 36,190, 83,198,239, - 71, 87, 8,243,231,164,241,116, 55, 70, 79, 38,239, 66,214,150, 76,129,137,112, 4,172,175, 49,125, 89,162,161,121,133, 77,145, -149, 49, 82,253, 56, 44,199, 59,106, 94, 25, 75, 77, 93,248,214,231,245, 55, 41, 24,150,190,118, 58,210,146,197,247, 1, 71,174, -197, 99, 63, 79,212,181, 31,173,179, 28,192,116,147,165,126, 34,177, 96,166,100,231, 31,153,101,120, 13,170, 82, 26, 30, 90,165, -229,223,171, 68,212,240,190, 6,244,140,108, 97, 3,108,207,128,238, 54,224, 79,240,169,207,124, 26, 63,248,241,143, 98,179,221, -194, 49,227,238,157,215,241,205,151, 94, 2, 95, 61,214, 46, 62,246, 0, 71, 3, 91, 30,151,200, 1,109, 17,105, 12,218, 21, 73, -216,131, 17, 27,134,108, 26,200,230, 20, 56,249, 48,112,246, 60,126,224,167,127, 22, 63,246,115, 63,133, 23,126,239, 15,112,247, -143,255, 21,164,127, 4, 30, 46,225,120,175, 90, 94, 78,202, 12,196, 65, 11,139, 20,203, 14, 42,145,152, 97,139, 82,119, 13,153, -131, 85, 84, 83, 24, 97, 21,182, 17, 10, 7, 59,169, 22,243, 46,188, 55,231,182,224, 90,108,219, 51,156,110, 79,225, 93, 91, 20, - 31, 14, 64, 28, 6,236,247,151,136,187, 75,184, 62, 42,237, 94,138, 3, 66,227,194,232,143,158,129,220,107, 87, 62,122,212,235, - 30, 60,103,235,217, 42, 99, 90,132,213, 6,151,116,183, 77,253,220,205,138,149,165,172,241,144, 0, 46,168,213,172, 75,131,142, - 28,188,131,107, 54, 38, 30, 76, 96, 68,136, 56,184,166, 65,187,217,160,219,110,209, 53,173, 50, 6, 77,163, 1, 12, 70, 22,236, -135, 8, 71,132,214, 7,120, 34,116,221, 22,112, 13,238,190,117, 31, 47,222,123, 27,119,238, 63,192, 62,246,229,253, 90,164,199, -111, 8,232, 44, 71,188,176,101,186,190, 54,167, 50,153, 80, 10,178,224,103,118,177,150,161,158,163,122, 93,142, 89,181,217,172, - 24,202,102,225,156,158,116,108, 52,243,232,251,237,202,140,126,234,252,118,120, 56,203,193,140,252,128, 48,148,234,115, 86,120, -245,218, 0,102,137, 34,167, 35, 93, 61,102, 59, 20,152, 81,223,114, 93,198,250, 10,245,191,100, 88,195, 88,182,178, 93,162,226, - 81,141, 71,104,126,224, 30,128, 72, 22, 50,202, 88,140,204, 6, 7,114,240,174, 79,205, 80, 86,173, 83,103,187,219, 60,251,254, -248,200,231, 31,115,108, 91,236,220,101,125, 62, 78,184, 70,149, 46,203,224, 7,172,167,155, 97, 97, 78, 47, 71,116, 44,117,193, -182,102,120,195,114, 76, 9,143,201, 30,187, 44,178, 54,235, 98, 89,204, 0,125,233,125,170,169,120,169,226, 87,151,186,228,188, -222,184,132,107,107,255,254, 78,224,102,253,216,225,125, 11,232, 25,128,195, 6,232,110, 1,219,103,225,206,158,199,223,254,149, - 95,196, 15,124,236,121,252,254,215, 95,198, 91, 87, 3, 62,251,177, 15,227, 63,251,181,191,129,111,124,235, 59,248, 7,255,232, -255,192,197,163, 71, 10,176,156,198, 57,123,109,120,174,190,143,229, 74, 77,156, 48, 32, 33,182,132,180,105, 33, 39,183,128,237, -243, 24,206,158,199,190,121, 14,159,254,137, 47,225,165, 23, 95, 71, 58,125, 29,169,217,194,247,231, 32,234, 1, 74,144,216,195, - 13,123, 72,127, 1,233,159, 64,216,194,211,205,124, 66,205, 92, 60,156,243,104,124, 80,111,121, 86,251,214,216,247,139,135, 64, - 54, 30,113,206,132, 97, 32,144,120, 4,191,197,166,217, 34,184,166, 20, 60, 4, 70,138, 61,174, 46,207,209,239,158,128,227, 94, - 19,204,120,220,110, 86, 53,121,139, 16, 26,203, 54,247,102, 3,107,214,150,196,118, 67,168, 27,157,134,190, 72,233,254, 18, 15, -136,105, 52,207,160, 3,186,208,246,127, 45,139,220, 65,221,249, 52,146,222,195,133, 6,161,105,245, 27, 99,129,163, 6,104, 26, -180,221, 6,219,147, 19,248,208,192,140,240,192,246,222, 56,239,145,184,215,157, 97,223,193, 59,167,107,113,161,195,119,238, 63, -196, 31,189,242, 10,222,188,255, 22, 82, 74,179,192,146,227, 43, 45, 88, 19, 4,201,113,218,157,143, 8,104, 24,186,199, 31,243, -248,102, 66,215, 85, 32,154, 21,238,144, 73,164,103,166,218,167, 42,247,188, 11, 43,165,179,230,172,249,151, 49,229,239,112,199, -124,162,245, 62, 16, 17,213, 93, 43, 45,116, 65, 52, 59, 12,231,115,114,220, 96,214, 94,121,237, 44,118,148,227,235,147, 85, 79, -239, 99, 63, 67, 57, 88,110, 91,167,165,151,169,118, 41, 69, 84,253,220,203,180,183, 26, 3,209,129,110,225, 80,103,207, 11, 32, -118,204,157,109,237,243,120, 97, 6, 45,223, 15, 69,142,155,187,184, 93,151, 0,183,246,117,116,164, 24, 88, 75,130, 91, 30,131, -201,141,149,241,114,132,234,231, 27, 40,170,142,141,217,230,239,251,132,225, 18, 32,101, 54,234,169, 52, 91,178,136,111,239,102, -247, 30,222,183,128,158, 1, 56,119,233,155,231,240, 27,191,250,239,224,231,126,242,199,240,223,252,175,191,141,183, 30, 63, 6, - 15, 61,190,241,226,119,112,113,121, 5,231, 9, 61,157, 0,103,173,182, 76,194,213, 85,199, 85,235, 49,202,116,201,116,178, 87, - 32, 92,121, 32,118, 1,241,228, 12,254,244,195,160,237, 51,216,167, 70,103,237,205, 41,248,153, 79,192,199, 15,193,165, 75, 56, -185, 2,226, 21, 40,237,129,253, 19,184, 43, 15, 38,163,224, 57,169,218,221, 27, 45, 79,164,190,234,174, 49,122, 56, 47,127, 50, -226, 48,204,202, 98, 35,254,204, 6,150,138, 40,208, 35,248, 22,222, 5, 21,211, 9,233,236, 27, 90, 28,244,187, 75,196,221,206, - 54,129,165, 8,220,156,211, 76,115,239, 28, 92, 8, 8, 62,192, 57,221,187, 69, 17,146, 57,141, 74, 21, 13,168, 17,230, 34,204, - 34, 0, 41, 81, 17,238,129,235,249,164, 30,175,206,121,253,127,151,231,235,153,165, 80,251, 88,248, 96,138,117, 0,150,210,182, - 61, 61,211, 66,195, 7,235, 64,147, 81,250,156,173,190,148,165, 97,194,213,174,199,142, 60, 34, 8,175, 60,126, 27,223,122,245, -123,184,255,240,237,209,135,255, 88,101,142,117, 81,220, 28,188, 87, 59, 27, 57,156,187,205, 15,191, 50,237,160,217, 1, 65, 51, - 58,212,240,188,100, 61,147,186,141, 59, 3,153, 60,119,103,235, 12, 93, 94,111, 43,113,172, 21, 8, 9,149,252,119,227, 83, 38, - 87, 17, 99,238,231, 46,139, 51,239, 99,221,240,124,108, 13, 90, 87, 20,203,234,204,125,253,255,215,211,222,150, 30,171,202, 32, -160,101,138,126,218, 73, 47,181,119,203, 26,234,165,213,169,165,217,124, 93, 54, 45, 3,140, 92,235,129,112,204,239, 92, 22,186, -228,235, 34, 85,113,131, 2,245, 24, 45,190,246,216,199,138,133, 85, 16,149,235,189,220, 15,193,255,251, 3,244,167,253,181, 86, -152, 30, 43,194,166,174,115, 78, 65,253, 41,103,220,239, 21,229, 94, 63,119,120,127, 1,249,156, 91, 9, 64,211, 1,205, 41, 62, -245,233, 79,227,239,254,173, 95,196,255,248,143,127, 31,247, 30, 95, 40,229, 29,247, 72, 0,126,231, 15,191, 6,184, 6,216, 62, -139,182,235,240,197, 79,255, 0, 62,255,137,143,226,217,179, 19,188,116,231,109,252,222, 55, 94,193,213,174,199,173,109,139,127, -227, 51, 31,195, 39,159,127, 22,207,221, 62,193, 31,127,231,117,252,193,139,175, 97, 72,140,246,217, 91,248,248, 15, 62,135,207, -126,242, 99, 56,185,117,134, 7,111, 63,198,213,213,206,214, 86, 8,216,158,225, 99,159,248, 12, 62,250,145, 91,184,117, 43,224, -222,119, 95,198,195,187,175,224,153, 91, 1, 15,190,245, 85,236,239, 93, 2, 77, 11, 73, 17, 94,178,160, 77,195, 86, 72, 50, 88, - 59, 4, 10,128,108,138, 35, 93, 76,177,140,235, 8,128,243, 30,190,241,122, 72,231,110,142, 60,132, 60, 34,179, 2,175, 8, 6, - 81,186,127,216, 95, 32,245, 87,186, 26, 86,113,165,142, 8,109,227,213, 36, 38, 24,112,103, 11, 88,103, 22,175,165, 59, 83,117, - 57, 24,136, 73,163, 35,189, 15, 69,193, 79,102,154,146,204,247, 26,194,101, 91, 32,135,100,144,215, 54,157,200, 3,142, 52, 6, - 53, 52, 86, 68, 64,213,245,161, 65,215,109,113,122,114, 10, 48,208,239,119, 96,164, 66, 71, 7, 31, 16,124,131,200, 2,142,230, -107,159, 4,247,175, 46,241,202, 91,111,227,181,251,247,208,239,119, 37, 38,244, 58, 64,199, 17,113,143, 44, 81,138, 11, 78,113, -107,244,233,252,223, 7, 25,197,114,178, 64,223,249, 21,218, 52,211,234,185,202,114, 37, 0, 70,166,123,235,246, 41, 92,129,120, -161,132,179,168,110, 6,232, 75, 7,225, 49,113, 28,112,141,128,110, 38, 60, 58,100, 1,166, 29, 62,110,210,213,221,224, 56, 30, - 51,219, 15,105, 84, 57,128,219,101,144, 94, 31, 7, 28,129,240, 37,241, 93,161, 59,111,178,110,135,107, 77, 96, 22, 65,253, 6, -106,118,172,116,217, 55,114,109, 91,251,184,220,172, 67, 7,110, 30, 83,188,254,253,201,241,238,251, 41,188,226,241,148,215,216, -209, 29,255, 90, 59, 51, 97,228,244, 28,116,116,152, 92, 80,119,227, 79, 11,226,107,157,252, 95,136,153,250,242,143,200, 20,239, -205, 6,159,249,225, 79,227, 67,207,222,198,203,119, 31,216, 2, 50,171, 24,142,188,138,232, 54,183,129,176,193,223,251,219,127, - 21, 39,155, 19,252, 47,255,244,171,248,209, 31,218,224,191,248,205,191,133,223,250,131,111,227,191,255,237,127,133,223,252,229, - 47,227,241,229, 30,255,228, 43, 47,225,103, 62,247, 12,254,235,255,248,223,195,255,240, 79,190,130,127,249,194, 29,252,218,191, -245, 5,188,241,205, 59,104,207,110,227,151,255,221,159,199,255,243,127,254, 46, 30,126,251,220,154,124,194,151,126,234,115,120, -230, 67,183,240,237,175,191,140,246,214, 15,226, 23,126,253,151,240, 47,127,235,183,177,191,127,215,186, 82,175, 84,114, 8, 58, -119, 97,157, 65, 19,177,129,183,218,170, 58, 82,139, 86, 64, 64,206, 99, 24,118, 72, 49, 51, 9, 12, 4,237,166, 53, 82,141, 75, -103, 60, 12, 61,146,153,220,112,138,224, 56, 0, 41,130,120, 15,199, 3,124,117, 69, 7, 71, 8,193,163, 9, 13, 26,175,192, 10, - 71, 10,202, 2,120, 49,234,221,144,133,137, 33,226, 44,104, 66,116,117,204,102,254,250,124,186, 87, 78, 54, 79,207, 84,188,242, -230,230,184,103,233,110,228, 26,144,119, 54, 35,111,225,124,208,149, 53, 34, 52, 77,139,208,118,186,246,183,223, 35,241,190,184, -161, 57,242, 0, 57, 12, 41, 34, 50, 3,228,176,103,193, 43,143, 30,227,219,175,191,129, 71,143, 31,106,236,165,195, 1,229,126, - 29, 93,136, 35,243,114,224,250,204,244,201,231,202,178, 98, 59, 86,158,218,140,186, 27,175,233,218, 76,183,143, 84, 53,151,206, - 61,199,134,142,153,103, 14, 84,220,233, 8, 42,188,204,206,104, 82, 21, 3, 46,231,185, 83,181, 66,135, 42,110,244, 72, 71,188, - 4,238,140, 53, 5,123, 37, 60,162, 37, 90,159,198,191, 11,173,138,147,110,210, 81, 29,128,244, 98,241,118,196,222, 70, 86,123, -253,107,175,153, 99,163,156,122, 37,109,238, 20,112,157, 74,252, 38,157,176,172,116,232,115,122,254, 38, 32,120,148,110, 62,242, - 58,113,131,174, 30, 88,223, 83, 63,190, 77, 34, 71, 95,215,218,227, 46, 21, 6, 79, 67,179, 31,251,197,178,190, 97,144, 95,203, -224, 60,146,243,139,182, 74, 75,226,184, 37,224,158, 83,238,239, 52,160,231,231,120,207, 65,253,169,190,137,146,155,231,113,178, -217,224,246, 86,195, 65, 84,249,222, 0,220,129,124,135,230,236, 57,244,238, 4,159,251,236, 39,240,159,252,218, 47,224,239,252, -183,191,133,215,239, 61,198,235,247,158,224,103, 63,247,131,248,251,191,252,101,188,248,250, 3,252,205, 47,127, 26,255,249,255, -252, 59,120,253,205, 39,248,191,223,124, 1,127,245, 71, 63,142,191,247, 75, 63,129, 79,126,248, 12, 31,253,200, 25,254,241,255, -254,123,248,222,215,191,139, 31,251,241, 79,225,217,231,206,144, 94,120, 5,204,130,205,182,197, 23,127,226,179,248,250, 87,190, -133,205,166,193,213,147, 11,252,209,239,254, 49, 30,188,241, 22,250,215, 95,134,156, 63, 0, 81, 82, 55, 42, 18,181,147,118, 4, - 79, 58,191, 22, 75,108, 26, 82, 15, 71,154,192,230,130, 71,227, 8,174,245, 58,199, 78, 3, 56, 14,150,220, 90,137, 49, 0,112, - 63, 32,198, 39,122,193,177,218,171,146,237,132,251, 81,226,171,111,151,131,217,190,170,210, 61, 11,215,136,200,114,186,213, 1, - 15,224, 18,155,170,123,115,172,224,109,195, 90,182,149, 64, 17, 65,226, 8,102,177, 40, 90, 46, 73, 83,228,156,134,220,144, 64, - 72, 65,188, 9, 93, 49,179, 9,182, 50, 39, 32, 52,161, 67,211,180,136,195,128, 33,197,242,130, 19, 11, 36, 37,253, 60, 33, 12, -137,209, 39,198,163, 62,226,123,247,239,227,213,183,222,196,213,229,133,117,251, 55, 56,144,177, 28, 66, 49, 63, 56,231,221,172, -200,178, 64,142,113,179, 53,162, 36, 10,236,185, 43,231, 5,128,156, 83,151,115,224,231, 98, 51,108, 2, 48,146,242, 58,114, 7, - 79,149,191,185,232,101,118,208, 97,140,214,177,203,173,204,241,156,242,195,142,189, 78,108, 59, 24,101,208,114, 57, 46, 11,200, -184, 62, 55,207, 30,239,178,208, 29, 47, 69,189, 30, 62, 45,207, 41,250,149,239,239,240,107, 86,230, 51, 55, 1,168,133,162,129, - 87,102,210,124,100, 14,140,107,194, 89, 22, 31, 67,142,119,200,215,238,161,203,241,199, 39, 44, 11,241,228,200,204,252,240,243, -101,121,228,181,112,109, 93,231, 46,135, 21,234,127,237,103, 67,184,126,135,158, 23, 88, 55,200,225,142,186, 0, 72, 62,128,189, -135, 56, 7,255, 52, 60,147,136, 70, 84, 47,208,243,239, 74,150, 9,209,123, 11,234, 79,247, 77,152,193, 58, 51,144, 6,220,189, -247, 22,156, 3,126,250, 11,159,194, 31,125,243, 85,160, 35,248,205, 41,190,248,195,159,196,191,253,147,127, 5,190,233,240,240, -114,143,103, 78, 59,108,155, 0,132, 0,176,224, 15,191,253, 6,254,211, 95,247,248,241, 79, 62,135,143,220, 58, 81, 42, 57, 40, - 58,252,139,111,188,134, 95,253,242,103,224,136,240, 67, 31,123, 6, 31,250,248,135,177,127,229, 30,158, 60,185,194,219,247, 30, - 86, 94,230,192,201,173, 45,110, 63,123,134, 55,239,188,133, 7,247,238, 99,120,248, 38,232,252, 30,124,188,132,227, 1,148,162, -129,177, 46,151, 23,165,178, 27,149,178,217, 31, 58, 90, 23,195, 70,183,135, 64,112,226,145, 82,139, 24, 7,164, 24,205,169, 74, - 93,235, 32, 9, 72, 17,176, 67, 79, 61,213,140,154, 52,117, 29,219,115,121,239, 16,130, 87, 64,109,219,210,165,147,113,214,245, -129, 47,201,102,183, 96, 56, 34,157,155, 79,132, 72, 98,243, 93,163, 29,171,181, 44,114, 40,206,115,206,121,144, 15,104,186, 14, - 93,211, 90, 23,199, 8,206,172,103,225,224,157, 71,223,239,209, 15,123,180,190, 49,173, 64, 3,225,168,226, 48,191, 1, 92,192, -163,203, 75,220,125,124,142, 59, 15, 31,224,254,163,135,136,182,202,182, 26,243,133,167,244,146,150,101, 10,126,105,109,237, 88, - 87, 63, 63,196, 98,213,173, 79, 34, 30,115,244,163, 96,204,112,183, 97, 48,231,186,191,154, 19,151,117,172,220,165,231,142, 59, -171,131,169, 2,125, 83,208, 83, 13,248,152,230,161,207,199, 11,245, 45,184,118,240,209, 74, 55, 63, 7,211, 58,218,242,186,217, - 58, 86, 0, 3, 43, 96,188,166,191, 31,216,122, 0, 0, 32, 0, 73, 68, 65, 84,236, 95,251,153,147,200,234, 28, 94,142,224,246, -168,153,149, 27,207,250,121,173,152,148,227, 29, 40, 31, 97,132, 32,215,167,165,201, 53, 52,249,117, 66,178, 37,198, 99,237,103, -180,230,180,118,211,130, 7, 71, 76,118, 22, 5,110,242, 20,133,201,117,116,196, 13, 11,255,121,193,193,178,108,207,203, 80,127, - 17, 38, 55, 38, 41,126,159,152,247, 94,184,208,185,247, 10,204,159,186, 42,177,125,102,196, 61, 48, 92,225,165,239,188,130,127, -254,149, 23,241,155,191,244,101,124,233,243, 63, 4,184, 14,169, 57,197,119, 30, 36,236,216,225, 87,127,234,179,120,237,254, 57, - 30, 94,246,248,149,159,252,140,237,175, 39,220,218,118,248,250,107, 15,240, 59, 95,125, 21, 32,193,207,124,238,163,214,130, 49, -206,182, 45, 94,121,251, 9,254,225, 63,255, 26,254,223,175,190,130, 95,252,107,127, 5,127,231, 63,252, 27,248,222, 43,247,240, -149,223,255,166,122,162, 59,194,238,106,143, 7,111, 62,194,231,126,236,211,184,186,216, 97,255,232, 28,210, 95, 2,253, 19,160, -191, 0, 13, 87, 74,133,167, 8, 15,205, 24,119, 78, 13, 93,156, 5,195, 56, 79,240, 65,221,231, 8,217, 27, 58, 66, 36,234,222, -186, 3,124, 19,208,109, 58,108, 54, 27,180, 93,135,208, 4,139, 23,181, 44,118, 16, 60,205, 28,195,108, 48,174, 32,171,221,113, -104, 26,248, 16, 74,140,106, 6, 86, 61,125,157,166,173, 49,192, 73, 87,210, 34,155,193, 75, 82,138, 93, 44,239, 57,211,253, 57, -196, 5,230,163,174,113,171, 30,161, 9,104, 58, 93, 77,107,187, 78,211,222, 28,224,136, 65, 57, 55, 58,137, 22, 15, 41,170,211, -158,221, 77, 67,100,164,168, 31, 7, 2,206, 35,227,213, 7,143,241,245,187,119,241,194,107,170,110,231, 5, 64,207,148,216,117, -162,161,197,238, 72, 14,227, 36,151,230,223,188, 80,173,175, 29,174,181,237,101,148,234, 49, 23,168, 87,158,101,101,215,217,217, - 92,239,190,219,190,110,237, 82, 55, 90,209, 74,245,218,180,232, 74,166,113, 72,179,239,153,215, 94,179, 44,231,117, 95,103, 72, - 34, 71,168, 80, 94,152,147,202, 17, 26,249, 38,207, 49,253, 45,139, 2, 38,145,209,134,117,174, 92,151, 69, 13,197,236, 63, 11, -100,225, 35, 51,214,197,213,166, 27,204,179,175, 19, 97,205,129, 99,233,241,121,206, 40,200,205,222, 47,198,250,122, 22,142,252, -157,113,189,142,228,216, 99,179,200,196, 6, 23,184, 94,220,199,114,179,194, 68,110, 0,254, 55,102,242,174, 51,208,153,216, 61, - 19,162,115,106, 28,246,103,218,232,222,236,151, 63, 61, 61,253,175,222, 87, 96, 94,247, 1, 4,157,153,251,128, 62, 10, 94,120, -237, 62,126,226, 71, 63,141, 95,255,133, 31, 71, 34,194, 94, 60,154,166,193, 23, 63,249, 60, 62,241,220, 25,254,225, 63,253, 19, -124,231,222, 67,252,221,191,254, 99,184,251,228, 2,226, 9,127,243, 75, 63,132,127,244, 47,190,142,223,251,198,171, 56,105, 3, -126,225,243, 31,199,155,231,151,216,110, 59,252,202,151, 63,139,255,233,119,254, 24, 95,127,241, 13,252,127, 47,222,197, 48, 12, -248,251,191,241,243,120,249,123,111,225,187, 47,188,138,103, 62,116,138, 47,253,244,231,241,250,107,111,225, 91, 95,123, 21, 63, -254,211,159,195,167,126,228, 19, 0, 24,173,223, 35, 61,124, 3,233,209, 61,208,112,169,187,241,162,234,115, 42,147,131,209, 86, -181,204,156,105, 84,166, 59,111,194, 11, 55, 74, 47,188, 7,188, 15,182,130, 22,204,202,213,140, 74,212,107, 13, 16,221,229,118, -246,155,156,198,166,134,224, 16,154, 6, 77,104,224,188,135, 35,165,139, 40,239,251,147,211,162,130,212,177, 45,166,100,116,191, -170,222, 71, 18,211, 68, 90,110,228,107,197, 60,237,133,160,243,242,224,225,155, 0,223, 52,234,186,231,180,248,200,233,115,194, -140, 20, 19, 82, 18, 52,205, 6,206, 7,244, 67,212,199, 72,208,185,121, 98,196,196,184, 72,132,239, 61,122,140,151,222,184,135, -123, 15,238, 99,223,247,229, 61, 20,172,207,207, 23, 13, 44,176,188,158,114,108, 7,189,166, 62,151,214,214,214,230,165, 50,235, -248,182, 14, 56,117, 64,176, 37, 11,162,233, 20,137,170,214,144,170, 75, 60,191,201, 37,160,148, 14,111,131,122, 25,151,202,231, - 31, 30, 82, 84,133,157,150, 0,162,107, 71, 21, 50,105,209,101, 37,131,106,106, 62,179,252,216,147, 65,250,209,131,118, 89,234, - 84, 88,164, 5,203,217,233,123, 46, 71,129,226,128,122,144,149,206,253, 41,192, 0, 71, 0, 72,110, 90, 8,201,241, 85,182,197, -199, 26, 99,219, 15, 61,212,113,115, 1,157, 92, 51, 6, 17,220,220, 28,231, 96, 4, 33, 55,247,126,199, 53,108,195, 98,127, 39, -215, 11,240,174,117,170, 59,114,142,212,142,126,115,150, 46,145,195,195,205, 51,120,188, 57, 51,215,199,247, 19, 78, 46, 60,222, - 71, 63,250, 81,121, 55,192,252,157,121, 32, 15, 52, 27, 96,115, 6,156, 62, 7,108,159,197,179, 31,251, 36,254,250,207,127, 25, - 95,248,244,199,241,246,121,143, 55, 31, 93,226,178, 31,240,218,219, 79,240,210,221,251, 24, 46,175,240,165,207,253, 0,190,248, -241, 15,225,193,249, 21, 94,126,227, 62,190,245,202,155, 16, 34,180,109,139,159,253,194, 39,240,145, 15, 61,131,199,123,198,203, -143, 6,188,116,247, 28,159,253,212,243,248, 55,127,228, 99,224, 33,225,175,125,246,121,252,242,207,125, 30,191,247,207,190,138, -175,252,238,159,224,135,127,228, 7,177,187,188,196,221,151,239,224,246,173, 6, 95,248,226,199, 17,100,192, 27, 47,252, 9,222, -252,147, 63,132,156,191,129,192, 87,230,119,158,148,110,149,104,171, 97,211,254,135, 69,149,229, 58,114,119, 58, 61,157,100, 50, -171,101, 40,137,250,164,235,231, 0, 18, 35,226,176,215,212,182, 97, 80, 10,158,198,172, 41,231,156,130,122, 19,208,180,157, 22, - 3,222, 27,245,238, 10,232,214,198, 26,113, 72,232,135, 4, 97, 77, 70,243,164, 54,177, 48,239,247,210,229,151, 12,104,253,211, - 59, 45, 68,188,211,142,223,185,160,169,108, 18,117, 35,193,166,202, 34, 64, 74,130,208,108,112,122,250, 12,134, 20,177,187,188, -128,243,234,206,178,143, 3, 46,251, 61,238, 95, 92,225,205,203, 29, 30, 92,156, 99,183,223,153, 29,104, 5,232, 79, 41,134,147, -149,185,250, 98, 38,245,130,202,245,251, 1,244, 92,255,124, 36, 0, 31,111, 21,220,213, 63,127,164,193, 93, 1,119,125,127, 29, -166,230, 25,249,115,156,221, 63,102, 72, 9, 95, 75, 75, 42,122, 45, 63, 70, 13,178,142, 70,149,189,171, 15, 12,224,224, 55, 48, - 13,133,193,194,199,151,139,143, 41, 4, 99,225,243, 39, 52, 61, 77, 95, 99, 17, 8, 1, 55, 25,182, 47,126,140, 86, 0,125, 82, -166,200,225,195, 80,137, 59, 93,159,183, 47,129, 35,201,113, 22,104,137,158,231,107,128,105,141,154, 95, 2,154,249,227,240,117, -160, 44,215, 80,240, 71, 62,118,140,162, 95, 75, 78, 99, 57, 28,211,224, 72,151,126, 83,129,221,196,224,233,136,206,224,216,125, - 12, 28,143, 87, 46,161, 76, 50,205,111, 40,172, 9, 3,123,106,240,242,179,159,196,219,167, 31,194, 59,223,171,227, 29,167,227, -223, 93, 80, 39, 59,130,198,164,138,229, 69,216,181, 59,154,156,250,187,135, 13,208,157, 2,219,219, 64,123, 10,184, 13,176, 57, -129,111, 59,165,207,140,106,215, 19,141,129, 33,141, 53,108,189,175,158,143,186,208, 21, 67,155,231, 63,245, 41,252,151,255,193, - 47,225,159,125,237, 85,252, 95,127,248, 18,194,126,192,191,255,211,159,197,127,244, 27, 63,139,127,240,223,253,111, 72,119,239, - 34,200, 37,156,236,225,227, 21,252,176, 3,165, 43, 96,120, 12, 31, 47, 16,226, 21,130, 79,240,204, 32, 12,106, 60,131, 84, 74, -107, 50, 51,114, 71,222,128, 59, 26, 13,110, 71,162,200, 36, 26, 21, 44, 42,152,139,250,186, 61,169, 48, 67, 82,196,126,119,133, - 97,215,131,138,227,152, 88,156,170,210,225, 77,219, 34, 52,173,238,197,155, 56, 78, 29,244,220,120,195,177,168, 47, 59,139,209, -223,108, 17,176,161, 10,117,113, 38,184, 83,181,118,178,226,196,145,134,192,120, 26,119,232, 27,223, 0, 68,216,247, 59,128,213, -170, 67, 61,100, 24, 44, 14,237,230, 4,206, 55,216,237,118,186, 56,215,180,184, 26, 34,222, 58,127,130,123,143, 31,225,254,249, - 57,118,177,135,176, 76, 87,213,112,195, 64, 22, 28, 81, 12,223,112,126,206, 11, 7, 1,214, 98, 39,143,172,253,124,200, 3,159, -232,180, 91,247, 52, 58,227,249, 12, 42,197,223,253, 16,148, 93,213,205,151, 2, 64, 80, 86,104,234,143, 19,244, 49,243, 37, 83, - 23, 8, 14,181,118, 98,250,120, 56, 0,245, 67, 48, 95, 6,239,169,157,108,221,161,187, 9,215,112, 45,247,118, 48,179,190, 33, -103,183, 50, 33,175, 31,107, 25,204,175,227, 7,174, 93,123,146, 35,211,193, 89,247,123, 16,157, 42, 71,186,224,107,128, 85,254, -127,242,222, 60,234,150,244, 42,239,251,237,183,170,206,244, 77,119, 30,122,186,173,158, 53, 75,173, 1, 9, 13, 22, 18, 1,131, -153,146, 24,156, 24,108, 12,129, 4,136,147,181, 8,139,229, 9,204,224,120,145,216,193,132,120,225,224, 69, 24,130,193, 9, 68, -134, 48,137, 81,146,145, 64, 82,171, 91, 67, 75,173,110,181,164,238,219,247,118,223,190,243,189,223,112,198, 26,222, 55,127,188, -111,157, 83, 85,167,166,115,135,238, 70, 57,107,125,125,251,251, 78,157, 58,117,234, 84,189,207,222,207,222,251,121, 90,154,174, -180, 1,204, 90, 55,194,150,128, 11, 5,209, 29,179, 2, 40,151,244, 3,232,146,239,176,180, 4,100,170,131, 40, 77,137,218,158, -169, 41, 21,153,106, 38, 36, 41, 1,244,180,159,120,228,245,120,230,192, 29,236,245,214, 43,180, 18, 95, 90,224,126, 19, 26,229, - 92, 11,182, 20,255, 85,249, 37, 97,238,142,224, 78, 97, 41,167,169,230, 99, 83,196, 51,152,236, 90, 47,114,191, 11,209,144, 68, -101,246,149, 54,213,229,150, 12,167, 36,231, 20,210, 44,143,237,219,236,159, 4,148,176,207, 11,185,255,248, 62,254,224,211,167, - 25, 71,214,182,244, 19,231,119,120,219, 83,103,216,190,122,137,206,232, 2,158,222,131,104,100,235,223, 38, 65, 37, 51,208, 19, - 76, 18,205,175,168,236,220,183, 40, 31,241, 21,158, 10, 44,237,238,121, 54,155, 77, 52,113, 42, 95,235, 40,119, 73,229,193,148, - 3, 92,173,173,166,189,231,186,225, 19,109,193,214, 83,120,190, 96,124,113,222,206,110, 65,117, 51,225,190,239, 19, 4,193,188, -219,221, 10,186, 59,205,118,147, 54,221,105, 43, 83,235, 70,212, 72,109, 65, 13, 24,147,204,129, 91, 4,103, 9,235,185, 46,120, -237,212,241, 22, 43,188,181,153, 4,140, 91,214, 53, 24,227,205,235,240,190,215,165,227, 7, 24, 20,147,201,132, 40,156,129,231, - 51, 14,199,156, 31,238,113,113,231, 42,163,201,148,196,249,168, 75,201, 34,218,202,147,217, 84, 55, 44, 85, 81,144,101,221,238, -101, 11, 73, 83,119,125,241,255,211,102, 57, 35,203, 89,157, 42,160,153, 49, 89,227,146, 69, 25, 32,123,188,170,144, 13, 89,240, -151,220, 34,167, 50, 99,113,238,138, 71,101,154,148,148,200,124,127, 85,177,117,142,113,168, 2,211,178,239, 69,200,140,224,149, -211,187, 77, 84,111,213,113, 72, 11, 32,150,212, 37,173,182, 53,199, 44, 29,135,174,202,210, 91,168,169, 53,245,111,112,141,128, - 92,167, 71,222,166,217,140,150, 20,117, 25,107,213, 38,107,158,247, 41, 52,130,126,121, 96,221, 20, 80,233, 10, 90,190,182, 54, -111,202, 51,241,170,222,151, 42,218, 93,151, 48, 2,217,191,135, 94, 64,236,121,213,218,204, 47,177,199, 13, 7,117,113,153,225, - 28, 64,149, 51, 94,113, 53,221,220, 42,230, 36, 85,173,171, 90,250,141,232, 76, 74,144, 22,147,221,254, 48, 22,212,209,214,180, - 69,169, 12,160,167, 1, 2, 11,123,214,162, 29,171,136,115,118, 51,246,152,252, 14,207,159, 57,203,239,125,244,179,124,243, 27, - 78,112,219,193,117,206,237,140,216,231,107,254,221, 31,253, 37,195,243,207,115, 44,218,193,139,247,232, 38, 19,132, 4,109, 34, -140,142,237, 88,131,209,104, 34,226, 56, 65,208,120,202,224, 7,158, 5, 84,229,129,223, 65,252, 62,158,111,165, 93,141,182, 13, -100,169, 55,184, 53,118,115, 22, 6, 98,208,137, 38,137, 99,148, 14, 81, 81,130, 86, 83,116, 60,115, 23,166,147,156,245, 21, 98, -196,213,217, 5,207,179,179,224,202,243, 16,223, 71,249,139,115,108, 48, 78, 33, 87,187, 6,122, 77, 18,197,232,216, 77, 56, 43, -193, 79,193, 58,109, 76, 52, 26, 49, 30, 24,207,186,174, 9,248,174, 65, 68,180,149,149, 77,112,157,243, 90,163,197, 90,194,106, - 13,113, 20,147,104, 67,183, 63,160, 59, 88, 35,137, 19, 70,147, 41,145, 54,140,141,112,121,103,151, 75,195, 17,195,201,144, 56, -142,161, 68,242,179, 77, 93,179,169, 62,185, 68,107, 86, 52,196, 21,233,249, 38, 86,160,154,150,180,159, 34, 52,134,208,197,144, -169, 77,163,162, 96,195, 90,200,234,114, 25,118, 65, 96, 70, 67,110,174, 61,157,103, 39, 51,207,158,237,176,207,102, 60,170,240, -222,217,186,244,156,181,145,242,209,176, 98, 70, 93,185,150,165,251, 18,147,203,215,219,172,123,101,190,235,148,212,203,139,180, -126,217,119, 81,181,173,169,176,118,173,203,190,155,192,167,169, 57,211,180,160,174,219,122,161,215,130,113, 13,147,160,107, 62, -151,208,166,246,109, 26,239,183,186,243, 5,205,234,118, 77, 37, 15,104, 22,201,209, 13, 53,245,170,123,182,206,187,190, 24, 52, - 38, 70, 8,189, 14,137,242,255, 74, 0,250, 13, 7,117, 73, 51,114,207,179, 96,238,119,108, 86,237,119,243,192,158,174,166, 58, -178, 34, 43, 58,201,131,252,188, 73, 75, 45,180,218,231,205, 94, 94,166,243, 40,149, 81, 53, 32,201,124,156,108,225,140, 96,242, -133, 65, 88, 4, 27, 8,152,132,209,104,143, 95,248,157, 15,112,251,109,183,176,190,182,198,222,100,194,149, 75,151,217,185,120, -137,163,179, 25,146, 36, 24, 45,236, 51,138,190,104,124,124,199, 30, 68,118,174,219, 36,120, 38,182, 34,130,129,135, 70, 89, 5, - 56,175,139,116,214, 80, 65,143,196, 11, 16,177,166, 36,202, 45,198,190,107, 44,211, 90,187, 67, 53, 40, 29, 97,226,216, 50, 0, -254, 12,241, 60, 36, 82, 40, 29,217,192, 39,240, 80, 4,136, 11,116, 60,241,241, 60,223,117,186,171,185, 13, 44, 56,192,141,211, -206,115,171, 20,167, 99, 91,211,119,134,238,136, 17, 39, 73,235,154,220,180,171,193,122,139,155, 65,137,231, 92,195,162,121, 53, - 35, 73, 18,116,146,184,217,117, 27, 44,104,109, 61,215,241,124, 98, 35,236, 14, 39, 76, 38, 99,118,166, 35, 70, 70,177, 61,153, -114,117,239, 42,113, 28,187,185,235,118, 25,121,229,226,106,170, 69, 99, 76, 5, 61,183,180, 40,152,102,105,202, 38, 64,207,254, -158, 24,155,173,235, 18,186, 79, 36, 11, 88,139,108, 91,101,198,204, 76, 33,155,151, 76, 80,146,159, 71, 79,165,128,179,234,103, - 11,217,216, 52, 99, 55,153,172, 93,210,140, 61,155,141,155,229,186,119,118, 27, 83, 3,194,185,250,121,118, 36, 47,147,185, 87, -125,143,139,249,253,118, 99,100,203,163,121,245,171,107, 93,205,153, 54, 14,126, 45, 2,204,186, 76,185, 9,160,218, 40,168, 53, -142,118,153,213, 2,135,166,247,203, 5, 84, 53,101,175, 54,170,114,166,109, 31,204,181,100,245, 43, 52,228, 25, 83,207,114,228, -186,255,203,154,105, 5,180, 82,204,252, 14,113, 81, 36,227, 38, 63,174,199,155,221,191,145, 7, 49,111,199, 86,206, 42, 53,232, - 67,111, 13,130,129,149,123, 85, 65,134, 99,116,179,215,201,204, 2, 86,234,139,174,221,114, 36,202,110,159,102,254,226,129, 31, - 56, 5, 18,147,209,114,119,203,143, 73,230,181,234,185,226, 28, 5,189,247,116,137, 72, 41,248,192,238,111, 50,157,241,133, 83, -103, 44,120, 37, 49, 38,158,129,209,156,247,124, 12,107,196,170,131,150, 1,251,136, 24, 72, 72,144,132,232,120, 12,204,144,196, - 56, 37, 53, 15, 81,158, 53,238,144, 0,241, 55,144,238, 38,166,215, 71, 84,215, 26,155,120,129, 29, 66,178,171,173,115, 83,179, -175, 87,198, 96,136, 32,114,142,111,225, 4,188, 0,227,121, 16,143,209,161, 77,255, 68, 89,189,116, 81,182,187,221, 54,196, 57, - 21,251,196,237,211, 57,168,153, 8, 76,108,108, 67, 92,146,204,111, 54, 59, 63,159,218,174, 42, 7, 6,201, 28,180, 73, 20, 90, - 9,218, 36,142, 78,183, 38, 49, 90,196,170,217, 37, 9,104,103, 80, 98, 98,196,243,173,241,140, 82, 8, 30,227, 89,200,238,100, -204,149,189, 93,174,140, 71,140, 19, 77,148, 56,193, 28, 36,223,213,222, 34,252,109, 90, 60,171, 26,219,202,116,220,235,104, 80, - 76,187,247,207, 63,183, 0,203, 24, 97,106, 12,177,155, 78, 32, 83,255,206,102,235, 75,182,153, 75,206, 97, 44,233,172, 83,200, -186,231,101,147,172,190,188,201, 55,182, 21,173, 55, 85, 33, 27, 47,150, 60, 76,166,110,175,169,103, 27,203, 50,103,200,171,216, - 45,191, 70, 50,239,111,106, 23,238,165,191,207,187,191, 77, 45,173, 95,151,237,183, 49,253,105, 19, 96,154, 26,176,169, 3,214, -186,154,113, 99, 22, 95, 67,239,215,102,181, 53,160, 91,148,199, 53, 45,206, 81,155, 62,132,166,128, 96,149,251,174, 41,144, 47, - 3,229, 86, 76, 66,201, 56,103,145,225, 51,218, 90,174,198,110, 93,127,161, 31,101, 14,108, 47, 24,168, 47,186,221,197,234,181, -123, 62,116,250,208,221,128,193, 38,170,179,137,116, 6, 86,242,117,158,114,104,116, 60,181, 0,154, 68,168,212,182, 84, 59, 17, - 23,207, 67, 84, 23, 81, 86,201, 7, 47, 64, 28,149,111, 68,230,102, 41,136, 66, 57, 16,179, 75,172,109, 16,211,206,194, 50, 5, -117,229,228, 54,193, 1,163, 23,216, 64, 65,137,101, 22,196, 14, 97, 39,202, 3,175,107,179,104,175,207, 69, 59, 77,206,204, 68, - 68, 18,115,208,140, 25, 68, 67, 2, 35, 40, 47,198, 75, 18, 80,145,235,138,242, 64,186,224,175,161,186, 91, 72,127, 31,126,111, - 3, 21,116,241,252, 46,158, 31,144, 56,153, 85,230, 46, 92,130, 74, 21,192,147,153, 5,244,217, 20, 24, 33,226,161, 60, 31, 51, - 83, 36,218,154,163,162, 19, 39,180,161, 44,229,158,126,241,137,109, 24,212,218,202,209,218, 24,201,202,211, 26,173, 51,183,174, - 19, 80,208, 26, 19, 11, 90, 25,203, 8,136,213, 65, 75,180,160,163,196,154,211,224, 12,105, 60,101, 99, 45,177,231, 57, 74,204, -220, 82, 86,124, 43,143, 27,205, 34, 98,173,153,132, 99,118,167, 51,174, 76,198,236, 78,198, 68,145,237, 59, 80, 66, 91,120,168, - 95, 76, 77,243,120, 76,157,180,107,157,238,123,219,236,173, 72,187, 27,172,131, 83,130, 98,100, 96,102, 18, 2,103, 56, 99, 10, -217,239,220,206, 83,100,105, 81, 81, 37,128,157,123, 93,161, 86,159,175,211,155,124,237, 62, 61,198,180,105,206,137,218,168,186, - 22,181, 76, 20,209, 86, 35,158, 10,112,167,208, 47,144,210,244, 85, 89,115,227,213, 80, 0,244,122,234,221, 44,155,209, 52, 0, -119, 45,141,220, 16, 96,210, 80, 51,167,230, 53,109,232,231, 86, 76, 82, 75,122,127,249,239,166, 49, 40,104, 42,137,181, 5, 94, -168,110, 70,165,161, 87,160,238,188,232, 22,165,134, 90,169, 93, 83,125, 13, 39,162,136,252,142,189,143,204,139,195,191,175,154, -181,251, 55, 14,208,221, 93, 44, 22, 20,241,123,208, 91,103,227,224,113,254,198,123,222,201,209, 35,135,173,203,141,178,203, 74, - 18,199, 60,242,196, 51, 60,242,216, 23,209,211, 49,223,252, 85, 15,242,249,147,207,241,196, 19, 95,180,138,111,226,113,199,137, -219,120,245,189,119,242,251, 31,123, 2,241, 2,222,246,186,251, 89, 27,244,249,208,103, 79, 49, 9,103, 32,138,215,190,236, 56, - 47, 59,182,197, 7, 62,249, 37,118,119, 39,188,249, 53,119,114,226,240, 1,126,255,225, 39, 25,143,167, 0,188,226,206, 99,188, -241,222,227,252,254,199,159,228,202,213, 33, 15,220,125, 27,239,124,213,157,116, 58,222,220,205, 73, 4,146, 68,243, 91,127,249, - 24,231, 46,111,179,181,177,193,183,189,243, 53,244, 58,182, 30,222, 49,154,117,157,176, 30,143, 57,251,233,207,114,245, 83, 15, -209,147, 46,226,133, 54,211, 14, 44,173,111,252, 1,210,217,132,238, 6, 71,239,127, 45,183,190,230,213, 78,240,101,209, 83, 48, - 25,141, 57,245,216,151,136,167, 17, 7,111, 63,198,177, 59,111,181,146,160, 58,193, 36, 17,138,132,201,229,139,156,249,248, 95, - 16, 93,121, 30,209, 33,196,161,173,227,107,153, 83,246,226, 86,249, 36,210, 86,138, 54, 49,174,217,223, 34, 66, 18,107,226,208, -210,226, 10, 15, 21,248,182,102, 27, 69,104,109, 59,245, 9, 2, 91,135, 55,198, 58,127,169,180,223, 48, 33,193,216,122,189,241, -137,147,200, 9, 75,104, 18, 13,170,211,181, 81,172,134,112, 18,179, 55, 29, 51,140, 19,118,167, 19, 70,225,148, 40, 78,156,147, -154, 52,120, 98,103, 45, 59, 74, 40,212,204, 28,185,148, 80,103,148,121, 77,155,154,236,157,246, 93,245,229,153, 98, 30,208,109, -155,167, 16, 42,159, 88, 5, 4, 2, 99, 66,122,196, 25,229,183,124, 67, 91,182,190, 78, 38,203,214,153,108, 93, 21,178,235, 52, - 27, 73,171, 78,186, 0,236,166,228,181,233, 24, 87, 70, 8,222,214,226, 51,224,110,230, 89,115,166,221, 45, 99, 77,170, 50,165, -171, 98, 35, 93,185,181,105,158,150, 47, 50, 18, 82,114, 46,179,189, 5,197, 5, 90,149,188,143,166,218,227, 61, 5,116, 49,237, - 51,239, 42,128,149, 58, 80, 42,145, 12, 46,118,149, 11,237, 58,176, 97, 89,182, 88,183, 8,104,165, 5,176, 85,245, 31, 20,141, -110,154,108, 87,171,172, 87,235, 94, 7,205, 93,250,197,115,208, 54,219,207,157,103, 83, 34, 27, 91,167,238,103,106,148,237,200, -143,201, 69,190, 79, 20, 4,133,142,214, 47,227,154,186, 20,105,109, 7,218,182, 73,172, 11,254,128, 67, 71,142,243, 63,252,237, -175,103, 24,195,217, 43,195,249,133, 24, 27,195,197, 9,124,226,228, 85,232, 78,249,225,239,252, 79,249,245, 63,253, 24, 79, 60, -117, 1,250, 1,104,197,187,222,250,102,190,247, 27,222,198, 7,158,218, 1,227,241, 61,223,244, 78,190,250, 53,119,242, 79,254, -253,135,249,247,127,254, 57,222,116,223, 45,252,220,247,126, 53,147, 48,225,209,231, 39,236, 78,206,243,173, 95,245,102,190,227, -157, 47,231,174, 63,184,133,127,245,187, 15,243,242,219, 14,242,175,191,231,171,185,247,248,126,158,184, 48,227,202,206, 73,254, -218,131, 47,231,135,190,233,141, 60,242,244,121,167, 72,229,128, 67, 27, 62,252,133,243,156,219,142,120,224,174, 59,249,137,111, -127, 15,143, 60,125,142,157,113,104,187,191, 13,124,197,125,199,248,227,141, 53,126,251,225, 79,115, 64, 7,108, 26, 15, 37, 26, -101,108,137, 64,148,143,168, 46,168, 62,119,191,237, 43,185,247, 45,111,228,194,169,115,164,250,130,253,181, 62,189,245, 62, 23, -207,236,178,123,113,155,219, 94,249, 0,247, 61,120, 63,151,207, 94,154, 95,113, 74, 12,163, 11,231,184,248,185,207, 50,187,124, -214,214,160,149,203,218, 51,121,157, 39, 30, 58,137, 73,146, 24, 29,218, 6, 60, 81,222, 60,197,211, 58, 33,214,102,254,189,120, -202,199,104,155,205, 43, 92, 61, 63, 78, 48,132,243, 27,212,239,116, 81,158,213,100,143,227, 4,223,243, 72, 80, 68,137, 33,113, - 77,125, 6,143, 40,129,189,217,132,157,241,136,113, 24, 50,138, 66, 34,147,160, 19,119,124, 78,104, 7,170,164, 65,203,245,191, -179, 75,205,252,171, 49,245,194, 24,217,246, 9, 83,113,243,234,154,197,173, 28,204,165,180,166, 94,220, 54, 65, 8,189,128,137, -234, 50,246, 59, 24,165, 57, 44, 26, 45, 49, 20, 50,238,116,225,240, 72,103,181, 37,239, 87,158,105,148, 35,243,185,117, 54,102, -118,127, 87, 44,154,241,210,191,205, 1, 38,219,164,103, 22, 13,118,243,177,186,204,135, 88,216,183, 46,123,149,201, 60,144,200, -252, 46, 82, 8, 7,168,109,118, 44,205,232, 77, 30, 88,164,230,123,208, 21, 53,126, 93, 74,211,155,210,186,122, 85,221, 93, 90, - 0, 71, 17,184,154,142, 85, 74, 64,162,173,235, 88, 49, 64,209, 13,245, 99,221, 16,112,148, 3,179, 41, 45, 89, 53,129,112,155, -250,127, 99, 93,223,180,232,121,160,185,193,206, 52, 0,116, 85,121,174, 84,141,175, 96,220,148, 29,111,181,193,122, 64, 44,254, - 66, 72,236, 26, 41,241, 23, 50, 91,247,175, 15,200, 75, 55,176, 53,107, 47,176,117,116,191,203,217,237, 49, 63,251,123,159,228, -195, 79,156,198,203,204, 76,199,198,144,244, 6,144,116,137,180,193,248,125, 39, 50, 99, 65, 61,246,122, 12,103, 17,116,214, 48, -137, 97, 52,139, 57,121,126,155,239,126,247,171,184,227,224, 38,239,124,197,173,108, 15,167,236,142,195,121, 77, 95, 27,195,229, -189, 9,111,189,255, 22,254,167,191,243, 46, 94,126,235,126,206,111,143,217, 63,232,218,113, 32,177,217,232,103, 79, 93,228,251, -126,246,247,153,101, 26,230, 69, 41,198,113, 12, 65, 15,141,240,212,185,109,126,240, 23,222,207,169,115, 87, 81,190, 66,135,154, - 95,253,225,111,100,232,117, 56, 73,143, 61,237,113, 96,166, 57,160, 66, 54,117, 64, 87,124, 58, 42,192, 15,250, 24,191, 79,162, -225,212, 19,167,120,232,125, 31, 33,240, 21,162, 19, 14,221,118,140, 55,124,205,155,240,148,114,163,102,134,103,159, 60,197, 35, -239,251,139,121, 71,185, 10,247, 48,147, 43,152,189,203, 40, 20, 9,138,196,100,192,205, 56,173,106, 29, 99,162, 4, 29, 27,180, - 81, 4,129,213,122,143,102, 33,113, 24,145, 24,101, 93,209,140, 96, 18, 77, 20, 70,152, 36,182, 75,134,231, 57,213,183,136,196, -184,249,114, 32, 50,202,101,235, 9,126,208, 33,232, 14,152,134, 51,166, 81, 76,108, 12,145, 82,204,226,136,189,145,165,215, 39, -225,196,102,240,169, 75, 87,137, 53, 97, 99,125,171,140,132,205,101, 66,133, 44,190,196, 65,173, 74, 32,166,105,172, 37, 11,158, -148, 0,122,221,188,175, 22,123,211,143,189, 46, 67,191,195, 84,236,232,226, 4,143,216,168,140, 79,188,203,194,211, 69, 77, 22, -150,171, 86, 72,104, 49, 87,158,245, 11, 87, 37,245,239, 28,253,156,106,205,203,114,237, 62, 43, 78,103, 74, 82,233,212,155, 64, -151,184,169, 73, 73,230, 45, 25,174,114, 33, 81,156,223, 90,106, 0,115,153,170, 47,239,170, 16,218,141,140,213, 93, 69, 77, 75, -159,105,160,225,105, 57, 82, 86, 7,104,217,233, 10,105,184,150, 74, 65,190, 97,188,174, 78,127,190,250,117,205,153,121, 35,117, -222,114,236,175, 29, 83,208,110, 44,175, 10,200,151, 24,184,146,251, 92, 87, 4, 89,101, 61, 55, 75,253, 15, 70,136,148, 27,103, - 51,249, 43,243,122, 26,217,110, 54,176,223,216,145,182,121, 42,224, 58,224, 61,219, 1,175,148,176, 54,232,176,177,214,199,247, - 22,126,196,195, 89, 72, 28, 26, 16,231,231,237,119,161,191,101, 65, 61,182,182, 92,118,241, 80, 64,130, 39,194,239, 60,252, 37, -134,211,136,255,246,107, 95,199,159, 61,118,138,255,248,216,115,252,157,191,246,138, 69,176, 97,224,241,231, 46,243, 43, 31,252, - 28, 63,242, 55,223,194,195, 95, 58,207,175,127,248,113,126,241,251,191, 54, 23,102, 43, 37, 12,214,123,116, 92,105, 62,209,134, -157,209, 44,183,252, 4,158,112,226,216, 22,202, 87,248,158, 34,142, 18, 6,221, 14, 83,165, 56,235,247,152,133, 29, 70, 33,236, - 69, 17,251,252,144,141, 68,177,209, 83,172,121, 1, 61,175,139, 22,143, 36,209, 68, 97, 2,137,118, 34, 50,182,187, 63, 73,156, - 91,154, 49,120,158, 71,208,239, 90, 29,116, 99,208, 76, 73,118, 99, 20, 66,224,251,104, 12,113,162,241, 13,248, 18, 16, 27, 77, - 20,199, 22, 29, 18, 65,240, 9, 58, 1,202,243,137,103, 51,166,147, 9,137,214,116,123, 3,148,231, 17, 71, 9,113, 50,179,118, -173,146, 58,126,201, 28, 60,141, 59,142,196, 24, 76, 52,118,138, 41, 30,210,235,176,151,104, 46, 15,199, 12,199, 35, 38, 73,194, - 84,107,194, 40, 38,214,145,235, 99,104,144, 13,165,122,124,169,174, 97,166,174, 6, 87,155, 49,152, 26,237,247,210, 69,176, 57, - 0, 41,222, 71,214,192, 69, 8, 85,135,177,234, 48,244, 59, 76,148,143, 70, 17,162,153,224, 17, 34,244,200, 3,186, 42, 88,174, - 74,134,154,207,177, 26,105,166, 32, 5, 99,150,130,229,233,156, 1, 41,140,194,101,187,251,149, 44,131,236,188,206, 45,169, 57, -144, 52, 42,194, 72, 9,165,156,154, 11, 25, 41, 26, 82,166,245,125,169, 0,217,114,167, 53, 41, 41,171, 52,215,190, 77,237,243, -149,246,177, 53,245,238, 54,170,107,178, 98,182,153,253,124,181,217,186,105,150, 78,109, 83,171,175, 20,141,169, 8, 52,154,130, -142,166,192, 24, 90,204,145, 55,245, 16,180, 0,255,186, 30,134,170, 96,172,170,137,182,182,251,221, 64, 34, 66,232,119,208,162, -202, 83,143, 23, 41,107,191,161,160,222,152,165,231,206,164,205,138,181,129,163, 91, 3,254,205,247,190,135,225, 44,154, 47,253, -147, 40,230,151,222,255, 24, 63,255,199,159, 34,138, 51,241,148,242,109, 67,157, 78, 10,179, 62, 22,140,194, 68,243,139, 31,120, -140, 63,126,244, 20, 23,118, 70,188,254,101, 71,241, 10, 93, 88, 97,156,240, 7,159,120,138, 79,159,186,200,246,112,198,129,141, -238, 98,220, 71, 96, 26,199,188,230,142, 67,252,199,159,252, 47, 48, 8,158, 18,206,109,143,248,251,191,248, 1, 30, 61,121,222, -190,165,134,227,251,215,249, 63,190,255,107,153, 69, 9,129,175,240,149,208, 9,124, 30,122,252, 41, 70, 74,145,136, 79,132,199, - 44,130,113, 56, 99,160,125,214,188, 17,235,254,148,129,137,152,196, 6,101, 12, 99,109,232, 41, 69, 96,172,121,138, 54, 22,164, -173,174,139,225,196, 43,238,228,214,123,111,181, 50,177, 34,108, 63,127,158,143,253,234,175,179,251,165,179,232,112, 70, 18,198, - 4,202,167,163, 60, 76, 28,145, 36, 33, 70, 43, 20, 62,137,104,140,120, 8,138,233,108,202,116, 52, 66, 39,137,213, 91,247, 3, -219, 60,151,104, 43,231,218,241,200, 74,151, 36,218,138,154, 24, 99, 93,229,194, 36, 38,138, 35, 43,162,226,249,232,100,135,113, - 18,177, 55, 25, 19,134, 33,113,198, 18, 54,213,176,175,172,167,214, 44, 64,186, 33, 85, 95,206,132,100, 9,208,117, 5,241, 90, -174, 36, 37, 75,244,108,182, 46, 94, 75,245, 21, 22, 3, 13,196,226, 49,243, 58,140, 84,135,145, 23, 48, 75,131, 82, 59,191,192, - 24,143, 8,143, 4, 91,230,104,206,208, 76,249,196,126, 1,172,179, 0,190,116,142, 11,129, 66, 54,107, 86, 21,231,123,225,218, -182,240,110,151,244,214, 45,100,250,186, 14, 28,221,142,230,141,108,115, 70,194, 44,205,208, 75,201,194,159,189,205,139,229, 22, -169,189,150,170,189,185,133,118,115,212, 82,145, 13, 74,139, 76, 92, 26, 2,198, 50,245,182,122,175,241,234,122, 60, 37,245,115, - 99,242,114,202, 89,240, 46, 29, 21, 52, 45, 50,253, 34, 72, 74,254, 59,169, 10,154,116, 33,248,108, 59,198, 54,255, 12,166,186, - 12,209, 36,219, 92, 59,211,111,154,117,225,117, 69, 80, 21, 41,159,105,208,195, 72,109,123,233, 11, 10,238,109,178,117,255,134, -128,121,217,105, 50, 9,232,136,115, 87,182,249,239,126,225, 79,216,183,185, 78,226, 26,188,124, 95,241, 13, 15,222,205,173, 7, -214,230, 10, 89, 77,145,103,238, 2,141, 45, 13,143, 49,213,221,188,177,230,204,229, 93, 72,224,192, 70, 55,183,147,142,231,241, -212,185,109,126,250,247, 31, 33, 78,172, 90,218, 52, 76,120,230,194,246,188,246,141,130, 43,195, 41,159,125,246, 18,175, 59,113, -152,255,231, 99, 95,224, 67, 79, 60,139, 73, 12, 95,124,234,105, 32, 97,170, 19,174, 24, 33, 20,143,200, 4,132,145, 97, 58, 28, -179,167,118,232,196, 3,118,102, 33, 58, 76,120,122,111,202,154,175,232, 27,161, 51,181,158,233,211,196, 16, 38, 54,203, 57,247, -204, 57,190,240,240,227, 36, 97, 12,209,152,217,246, 37,118,206, 60, 75, 52,217, 69,143,119, 81,113,236,152,130,136,112, 26, 18, - 70, 26,180, 71, 34, 16, 71, 9,218, 36,152, 68,147, 68, 17, 90, 27, 60,191,139, 10,186, 86, 10, 54,178, 51,229,162,212,124,228, - 78,148,144,232,132,137,142,152,134, 22,196,103,192, 52,154, 49,141, 67, 98, 43,120,139, 54,105, 29,125,209, 76, 40, 25,147, 16, - 50,163, 80, 85, 11,106, 21,253,154,109,124,163,164,249, 6,170,231,126,151,105, 64, 41,111, 66, 50, 37,193, 1,245, 93,243,117, -177,106,130, 16,137,111, 1,221, 15, 24,139, 79,232,121,115, 64, 22,183,205, 24,197, 4,197,102,145, 62,207, 89,172,146, 51, 80, -209,153, 76,126,169, 87, 64,112,193,129,228,206, 29, 82,114, 78, 11, 58,241,198, 44,106,231,197,239, 66, 50, 77, 70, 11,179, 24, - 89,212,220, 51,231,175,216,121,159, 93,200, 21, 11, 69,197, 34,131,144,213, 78, 55, 53,223,115,105,182, 94,250, 26, 83,235,149, - 94, 71, 3, 11,245, 86,186,101, 65, 97,217, 56, 97, 29, 64,107, 83, 29,192, 86, 81,247, 66,251,142,248, 5,160,155, 74,129,151, - 54, 29,243,109,231,216, 49,213,245,251,210, 99,171,161,191, 77,161, 95, 64,104,158,107,215, 53,117,114,106,130, 8, 93,241,247, -210, 18, 66, 38,200,157,187, 52, 26, 33,246, 58, 68,126,119, 17,117,220,192,186,247,205, 4,118,255,250,193,188, 4,137,147, 4, - 98,107,240, 49, 27,143,120,232, 51, 95,130, 96,109, 33, 60,227, 43,238, 58,114,128,187,142,110,230,102,200, 93, 43,207,226,134, -207,100,215,149, 65, 68,206,113,162, 48,236,155, 85,153,203,108,170,148, 98,123, 28,242, 39, 15, 61,181,184, 9, 21, 16, 56,149, -110, 49,136, 18,118,198, 51,254,199,255,240, 16,223,250,150,251,120,235,125,199,120,239, 71,191,192,103, 62,119, 18,198, 23, 65, -207, 32,153, 50, 51, 9,137, 40, 98, 21, 16, 75,135,117,163,232,199, 49,113, 56, 33,140, 35,166,177,230,244,246,152, 64,121,116, - 48,120,195,136, 80,107,158,159,198,236, 77, 99, 94,145, 24, 46, 93, 30,242,153,143,127, 30,153,236, 32,147,109,100,186,131, 23, - 15,241,102, 19,116,104,103,230,195, 68,163,195, 49, 81, 52,195,196,198,105,204, 27,226, 56,182,205,105,218, 9,205,160, 48,137, - 16,205, 34, 52,134, 40,156,217,177, 54,132, 68, 44,165,164, 17, 66, 29, 49,153, 77,152,197, 49,145,134, 24, 99, 13,103, 10,182, -137, 74,242,206, 97,165,242,158,166,186, 38, 74,195,226,217, 84,135,155, 47,166, 21, 42, 82,149,245, 58,211,188,128, 53,214, 16, - 77, 1,208, 85,192,216,179,217,249, 88,249, 36,226, 45, 47,234, 34, 76,141, 98,106, 60, 98, 4, 95, 76,101, 6,162, 76,126,174, -187, 44,171,206,170,202, 45, 49, 13,110, 30, 62,245,101,207,206,170,103,179,227,121,231,124,137,254,123,113, 65, 86,185,177,179, - 69,176,146,165,108,243, 58, 3,249,239, 68, 86,168,107,183,123,222,212, 82,209,181,117,121, 83, 29, 72, 52, 29, 67, 27,101, 55, - 76, 11,243,146, 22, 20,125, 43, 31,244,220,107, 76,253,232, 92, 67,118,170,235, 40,244,150, 35,115,109, 2,165,170,251, 82, 83, -173,131,208, 60,130, 87, 3,206,228,251,100, 52, 13,214,183,228,221, 26,139,182,203,145,223, 33,246, 87, 83,146,123,161,178,246, - 58, 96,247,111, 28,160,103, 91,254, 23,217,250, 90, 71,120,207,219, 30,224,208,225, 35, 36,238, 76,122, 74,241,246, 7,110,225, -249,237,177, 21,148,209,138, 94,199,231,109, 47,191,149,203,227,215, 50, 8,124,194, 56,225,221,175,186,157,142,239, 91,233,210, - 36,161,215, 81, 22,119,195, 49,105, 79,172, 34,161,227, 43,219,230,165, 99,124, 79,232,250, 30, 68, 19,136,173, 30,188,138, 7, -244,123,157,133, 25,183, 8,119, 28,222,224,239,126,221,235,109, 61,217,117,106,107, 99,248,147, 71, 79,114,238,210, 30, 74,121, -108, 12,186,204, 34,205,207,254,225,167, 56,180,249, 86,126,250,239,125, 21, 63,246, 43, 83, 62,242, 23, 79, 91,113,152, 36, 66, -146,132,196, 24,134, 70, 17,123, 1,145,215, 65,139, 79, 31, 59,223,125,247, 93,199,248,170,119,190,198,205,193, 27,238,184,245, - 32,126,183,195,179,147,132,203,123, 33, 59,137,193,211, 9, 95,218,219,193, 12, 47,227,135,123, 4,209, 16,127, 54,196,155,140, -241,146,136, 0, 13,209, 4, 51,157,160,117,136, 78,180,157,110, 23, 33, 73, 98,162, 40, 70,107,219,205,158,104,237, 28,135, 20, -137, 24,226, 36, 36, 78,180, 3,109, 72,210, 5,193, 56, 16,175,168,109, 10, 44,121,112, 53,169,126, 81, 65, 95, 54,213, 52,235, - 26,125,106,149,184, 76,187,125,212, 45, 94, 77, 18,180, 26, 72, 80,204,148,207,196,239,178,167, 2,102,158, 71, 34,213, 10, 83, - 51,132, 9,138, 8, 69, 7,157,235, 39, 83,148, 27,106, 20, 23,227,226,237,167, 51,226, 46,217, 76, 59, 41, 0, 49,174,225,113, - 73,169,174, 72, 55,187,255, 73, 40,116,150,103,182, 81,146, 22, 21, 36,255, 93, 22,116,234,165,228, 26,168,214,116, 95, 5,236, -155,245, 11, 42,203, 59,166,190, 58, 88, 75,203,215,252,221, 52,100,213, 77,117, 36,102, 61,214, 0, 0, 32, 0, 73, 68, 65, 84, -233, 85,156,208,234,186,218, 27,247,223,226, 51,213, 5, 20,173,133,100,204, 10,138,118,166,154, 46,175, 11, 46,234,206, 69, 93, -253,156, 38,214,194,148,143, 22, 2, 24,229, 49, 9,122,196,202,103, 37, 84,127, 1,179,246,170,247,240,111, 24,160, 75, 86,243, -221,253,136,208, 9, 60, 30,188,235, 24,119,221,118,140, 72,155,185, 66, 92,104,224, 19,167, 47,145, 56, 87,147, 15, 62,254, 44, -119, 30,218,224,107, 94,125,187, 21,202, 0, 6,129,240,129, 79,127,145,217,112, 27, 21, 71,124,236, 51, 95,228,212,133,171, 36, -211, 29,151, 86,248,156,191,116,145, 63,127,236, 41,134,187,219,144,140,249,228, 23,158,225,204, 70, 15,198, 87,172, 91,138, 78, -184,122, 62,230,125, 31,251, 44, 23,207,159,133,100,204,147,167,206,241,196,153, 35,188,227,129, 91, 22, 54,213, 74, 72,226,132, -143,125,225, 52,231,136, 56,191,189,195,159,126,230, 36,195,112,202,112,119,151,127,254, 27, 31,228,239,127,221,131,220,127,116, -192, 71,166, 35,167,132, 23,205, 87, 65,173, 60,198,202, 39, 14,122, 68,193,128, 45,191,203,231,158,122,142,219,239,186,131,215, -190,226,118,251, 5,136, 34, 8, 60, 30,253,252,105,182,247, 70,140,162, 25, 79, 62,245, 28,235, 93,225,220,246, 85,244,100, 15, -153, 14,145,104,132, 10,199,168,217, 12, 21, 69,136,158, 34,225, 20,226,153, 19,235,137, 65,219,209, 55,227,198,200,140,182,154, -236, 41, 80, 87, 45,142, 75,157,233, 82, 77, 97,166, 23,190,202,108,219,246, 50, 53,212,143,178, 73,195,141, 74, 11,170, 20,218, -205,191, 86,102, 74, 85,159, 59,195, 10,132,248,132,158,207,216,235, 48,244, 2,102,202,195,136,170,190,201,128, 16, 97,132,199, - 12, 69,159,197,104,153,145,188,113, 11, 44,255,174, 75,128,179,152,181,103, 91, 72,210, 44,122, 65,143,219,146, 84,130, 65, 25, -201,123,185,147,213,144, 95, 4, 8, 9,249,134,188, 34, 69, 42, 98, 50,153,153,228, 70,232, 40, 9, 66, 42,167, 12,170,232,247, - 37,246,192, 44,189,174, 49, 24,168,185, 48, 53, 52,250,202,183, 1,245, 50,122,157,134, 58,187,105, 89, 27, 46, 54,209, 85,191, -198, 84, 94,255,178,194,245, 94,214,164,170, 91,222,203, 85,250,249, 77, 99,112, 85,181,252, 38, 93,254, 50,217,231,202,192,223, -148, 51, 72,165,122, 21,149,137,131,216,190,153, 78, 31,173, 60,196,104, 94,138,143,170,160, 97,201,122,245,154, 1, 93, 41,219, -224,214, 29, 64,111, 19, 6,251, 96,253, 0,222,198, 65, 54,143,220, 66,176,190,137,233,244,156,193,139,135, 49,194,120, 58,101, - 60,153, 66,146,176,213, 15,232, 40,172, 39,119, 28,218, 70,185,196, 48,157,142,217,219, 29,218,172,191,223, 33, 54,134, 89, 24, -219, 89,120, 47, 32,232,245,232,245,123,140, 39, 51,146, 56,102,208,245, 81, 58, 97,184,125, 21, 34,187,111, 68,177,111,107,157, -225, 52, 33,150,128,238,198, 38,235,251,246,163,130,206, 98,174,222,165, 43,219,123, 35,162, 40,198,243, 20,235,189, 46,187,227, - 41, 38, 9, 33, 12, 89,243, 18,212,116,200,222,249, 51, 48,190, 10,147, 29,152,141,236,177, 42,207,218,195, 14,246,227,173,237, -103,173,191,143, 99,251, 15,112,100,223, 62,186, 65, 64,160,124, 59,195, 46,214,248,100, 52,220,195,196, 17, 29, 79, 80, 73,196, -116,111, 27,102, 19,136,198, 22,188,167, 99,203, 6, 68, 19, 36,154, 64, 56,182,157,233,209, 24,137,166,160, 67,136, 98,183, 36, -231,107,172,203,223,144,148,102,213,249,239,125, 57,243,174,203,226, 77, 54, 32,200,212,138,165, 4, 28,170, 52,212,133,134,249, - 96, 83, 33,172, 97,234,233, 61,104,104,254,105, 8, 8,116,166,126, 62, 81,182,126, 62, 82, 1,177, 82,203, 39,170,228, 68,122, - 24,142,155,136,123,205,152,195, 76,232, 96,230,245,242,226,191,121,175,245,188,128, 76,177, 62,158,125, 78,201,178,117,170, 42, - 8,208,228,152,129,204,216, 92,218,188,167, 50, 87,135, 20, 88, 0, 69,133, 69,235,156,113, 88, 72,214, 72,161,188, 53,111,170, -146,242,235,167, 58,107, 55, 75,219,148,242,129,166,126, 14, 93, 40,127,190, 85,243, 92, 13,192,172,146, 25, 47, 1,152, 89,174, -249, 10,237, 71,212,116,230, 25, 83,193, 72,152, 10,160,215, 85,160,222, 2,104,235,104,241, 86,116,123,225,251,170,186, 47,165, -198, 50,181, 72,241, 87,149, 50,234,230,246,171, 26,226,178, 66, 51, 73,230,111,163,206, 38,207, 31, 58,193, 52,232,162,174, 3, -212,111,102,182,222,138,126,191, 38, 64, 79,181,217,189,142,149,134,237,172, 91,175,242,158, 85, 85, 75, 58, 3,174,134, 6, 70, -177,213, 53,247, 0,149, 44,184, 67,207, 30,194,206,100, 6,209,204, 2, 89, 56,133, 48,180,192,149, 56, 51, 19,129, 81, 50,179, - 38, 49, 94, 96,117,219,189, 46,145,234, 16, 69,110, 28, 78,124,198,177,211, 79,119,116, 55,218, 6, 8,219,151,134,174,179,190, -203,140,152, 89, 28, 65,183,239, 52,234, 83,195, 25, 5,170, 3, 93,159, 4,216,137,157, 13,170,214,224,107, 70,179, 16, 38,145, - 45, 25,120,110, 22,223,239,129,137,109,176,210, 25, 64,103,141,164,187,198,222, 96,157, 88,245,216,157, 42, 54, 98, 24,248,154, -142, 68, 40, 35, 40,147, 32,158, 61,222, 48,177,154,235,244,246,129,223,135,120, 3,146, 24,233,207,236,121,136, 70, 54,112,152, -238, 33,147,157, 69, 95, 66,100, 16,207,105,199,167, 23, 93, 5,191,105, 42, 76, 54,114, 99, 74, 38, 15,238,181, 13,108,101,139, -107,161,150,187,160,183,164,112, 28,139,189, 53,141,206,172,236,236,212, 48,114, 83, 43, 62,147, 89,224, 34, 60, 66,207,103,228, -117, 24,169,128,169,242, 72, 68, 53,222, 31, 50,183, 69, 21, 70, 40,198, 40, 34,132,192,149, 62,148, 44,143,161,205,107,233, 37, - 70, 46, 98,242, 49, 68,153,234, 90, 22,244,179, 25,123, 90,159, 95, 72,199,154,220,251, 45, 67, 68, 26,156, 73,230,219,145,229, -203,202,253,146,184,198, 56,235,208,150,111,158, 44,142,214, 81, 2,246, 38,163,227,154,211, 9,144,242,239,177, 41,147,174, 82, - 87,171,163,237,235, 70,195,218,214,184,107,193,190,130, 53,210,243, 30, 10,169, 12, 68,140, 89, 72,243,152,130, 96, 76,217, 78, -171, 0, 85,215,148,151, 42,223,155,229,108,183, 77,255, 64, 93,160, 81,121,206, 77,179, 19,157, 94,161,204,209, 70,112,166, 84, - 8, 40,171, 5,111, 20,211,110,159,208, 15, 94, 48,255,244,155, 66,191, 95, 51,160, 43,207, 2,122,208,135,222, 6,244,247,193, -250,126, 88, 63, 8,107, 7,237,191,235,251,172,177,139, 23, 44,192, 51,181, 70,141, 83, 3,147,153,173,131,107, 3,179,177,109, - 68,139, 66,208,177,235, 8,114,174,111,221, 53, 11,158,221,129, 13, 32, 58,125,187, 79, 99,172,231,122, 52,133,112,232,204, 99, -112, 70, 49, 46, 99,215,145, 93,226, 18,231, 14,231, 15, 96,176,229,192,189, 99, 95,147,155, 17, 49,246,253,147,208, 30,147,183, -235,150, 72,103, 70, 99,176,129,130, 78,236,241,245, 54,237,231,221,119, 43,102,243, 0,227,254, 38, 97,208,103,236, 7,108, 41, - 97, 29,161,135,166, 99, 12, 94,106, 57,171,141,115,170,211,249,127,227, 8,226, 41, 76, 71, 48,219,131,209, 69,184,122, 58,131, -166, 26, 99, 98,208, 73,190, 83,183, 18,216,203, 23,192, 37,224, 46,209,200,172, 50,248, 40,142,179, 20,223,168,184,104,153, 18, -167,237, 44,176,232,146,186, 97,241, 3,180, 53, 1,105,186,225,203, 50,123,219, 12,231, 49, 85,233,184,154, 71,168,188, 26,131, -216,242,128,216, 0, 83, 20, 67,124, 66, 60,122,232,121,221,122, 73,179, 94, 26,122, 20, 28, 72, 22,187,207,117,161,171,125, 41, -187,204,140,194, 21,233,245,236, 98,169,138, 20,171,219, 65,226, 58,238, 23,199, 34, 75, 11, 96,122,189, 41,153, 75, 15,101, 2, -130, 98, 0,184,208,165, 19,147, 87, 13,204,177, 1, 38, 47,187,170, 11, 76,193,170, 96, 15,171,153,147, 24,211, 94, 70,182,174, - 22, 46,166, 10, 32,205,210, 60,191,148,148,125,138,178,183,109, 2,143,218,108,153,122,129, 22,105, 25, 40, 55, 5,218,152,234, -192,160,170,167, 69,168,111, 72, 20,211,224,112, 71,117, 96, 80, 21,120, 20,231,213,115, 25,188, 40, 38,157, 53,180,168,235,166, -222, 95, 12,145,154,107, 23,159,145, 12,160,119, 6, 22,208,215, 14,192,250, 97,216, 56, 2,251,142,193,225,251,232, 30, 61,193, -129, 67,135, 8,186, 29,140,202, 18,131, 25,224,116,238,108,113,172,185,244,236, 83, 68, 79,252,185,205,216,231, 90,242,190, 13, - 26, 6,155,118,255,251,110, 67,237, 59,198,198,190, 3, 12,214,214,240, 3, 15, 99, 96, 54, 13, 25,238,238, 48,217,185, 8, 87, -206,192,246, 25, 11,212,211, 61,136, 93,192,160, 60,251,179,113,152,238,235,254, 58, 71, 14,108,101,108, 93, 85,166,112,108, 22, - 65,129,214, 76, 38, 51,174, 92, 56,135,190,112, 18, 46,157, 4, 44, 83,192,108,184, 0,245,254, 62,184,235, 45, 28,120,197, 87, -178,182, 62, 0,207, 39, 81, 30,130, 16,136,208, 1,214, 48,244,128,142, 1,207, 44,172, 49, 83,245, 3, 89, 72,198, 57,231,185, - 24, 19,199, 12,175, 92,100,242,137,223,130, 83, 15,217, 32, 35,182,221,247, 11, 71,186, 66, 35, 83,217,114,228,248, 81,211,130, -154, 92,170,153,146,151, 43, 45,163,246, 76, 13,201, 95,111,232, 32, 37, 11,144,169,164, 46,155,106,169,237, 60,208, 23,207, 37, -184,217,115,229, 51,241, 58, 76, 36, 96,162, 20,177, 82,173, 0,189,236, 17,137, 98,104,124,166, 40,214,200,143,152,101, 71, 0, - 37, 51,119, 62,239, 95, 40, 81,130,203,142,188, 21,227, 46,205,178,187, 90,118,220, 48, 13, 40, 18,147,111,130, 52, 5,207,119, - 41,124,255, 58,115, 44,106, 1,201,203,215,197, 28,152, 23, 38, 54,133,161,137, 92,165, 92, 90,244, 72,148,209,198,166, 5, 72, -211,114,155,182, 61, 24,109, 58,192,161,186, 25,172, 18,112, 76, 51, 56,233,150, 37,164, 86, 2, 50, 37, 51,234, 82,147, 5, 87, -179, 12,245,128,222,164,196, 87,198,194,232,134,237,116, 93,112,101,170,143,137, 26,219,101, 99,202, 29,218,196, 64, 24,244,152, -116,250,173, 26, 59,219, 2,251,205,162,226,203,130, 6,255,218,178,244,180, 25, 46,112, 25,186,203, 80, 55,142,194,230, 81, 56, -122, 63,156,120, 3,175,189,255,101,124,211,125, 61, 94,125, 16,214,131, 26,250,200, 57,182,158, 30,193, 79,124, 48,224,236, 51, -143,193,116,232,252,209,197,218,164,246,183,224,240,125,168,219, 94,197,171,239, 58,206,219,238,232,243,242,253,194,241, 1,244, -125,187,176, 92, 9,225,244,222, 45, 60,114,238, 94, 62,250,244, 14, 23,158,249, 34,156,121, 20,118,207, 90, 96, 79, 66, 87,251, -239,193,230,109,220,119,223,125,252,212,155, 23, 46, 88, 85,174, 81, 0,151,103,240,225,231,111,225,125,159,191,135, 51, 95,124, - 18,206,124, 18,182,159,183, 89,116, 20, 89, 5,189,193, 1, 56,254, 74,190,251, 29,119,243,174, 91, 51, 84, 98,102,129,243,176, - 96,238, 85,212, 45,203, 82,182, 68,195,251, 62,115, 27, 31, 57,245, 36,156,127,194,190,167,215, 89, 80,241, 45, 23, 51, 41,170, -125,172,184, 8,154,134,172,185,120, 7,152, 18, 59,251,166,197, 57,175,189,110,106,169, 88,221,208,172, 83,219,165,236,246, 27, -139, 29, 85,155,168,128,177, 10, 24,139,203,206, 11,231,168,238, 30, 41, 62, 55,159, 87, 23,197,196,141,182,169,249,192,102,245, - 34, 44, 25, 42, 94, 23, 0, 55,123,204,217,183, 75,155,217,138, 25,187,162,204,235,124,249,100,233, 18, 47,245, 44,232,170,130, -189,107,153,245,105,142,121, 49,249,242, 1,210,172, 93, 32, 44,155,162,172,154, 97,175,148,157,155,250,237,154,196, 74,170, 68, - 84,154,232,230,170,154,116, 49,131,172,218,119, 83, 41,192, 52, 28, 79, 17, 32,117, 67,205,188,236,253,132,213, 61,221,235, 2, - 30,104, 55,146,215, 84, 18, 48, 21,245,247, 34,160,235,146, 76, 94,231, 12,160,132,113,127,141,208,235, 32,198, 32, 55, 25,128, - 95, 58,153,186, 40,231, 73,222,181,245,243,181, 3,176,126, 20,246,221, 2,199, 95,141,119,255, 59,248,175,223,124,152,239,184, - 79,184,123,179,253,110,183, 20,244,149, 88, 90,188,179, 1,126,236, 50,224, 77, 56,254, 26, 14,222,247,122,190,255,193,117,190, -254, 14,184,125, 13,130,178, 38,228,227,240,109, 47,243,121,244,190,131,252,194,227,251,248,179, 71, 15, 99, 78,126, 28,174, 62, -107,179,127,227,234,228,193,128,129, 36,188,113,159,215,250,248,222,121, 68,248,230, 19, 91,252,244,145, 7,249,224,163,251,225, -153,135, 97,247,121, 75,249,131,171,139,119,185,107,221,240,198, 3, 55,238,114, 72, 12, 60,212, 79, 64,117, 93,185,161,227,124, -229,189,230,198,173,210,108,194, 44,241,235,178, 34,101, 41, 21, 55,163, 20, 83, 80,202, 71, 80,218,212, 60,139,122,203,109,234, -153,117, 53, 78, 50, 55,182,109,132,243,152,168,128,153,155, 59,159,138, 71, 92,114, 62,174, 69,175, 65, 99,152,160, 24,225, 51, - 67, 17,144,204,133,100,188, 12,216, 21,199,207,138,231, 75,151,120,156,215,101,183,101,219,150,101,249, 89,250, 92, 75,117,135, -185,206,208,159, 34,203, 26,244, 58,243, 45, 75, 38,147,207,210,235,233, 84, 64, 93, 0,214, 22,148,139, 52,113,235, 32,160,197, - 84, 68, 53,168,155, 76,214, 40, 75,141, 38,117,157,238,249,207,105, 42,105,243,186,251, 96, 21, 41,215,166, 6,191, 85, 71,206, -168,161,206,161,229,156,190,105,105,219, 90, 3,252, 75, 76, 65,195, 72, 91,235,247,207, 6, 63, 26, 34, 63, 96,175,179, 78,172, - 20,170,242,142,123,105, 61,138, 76,128,127, 77,181,116, 79, 92,179, 90,223, 2,238,250, 33, 75,183,223,242, 26,130, 87,125, 21, - 63,250,246,253,124,251,221,176, 22,172,182,103, 59,226,174,108,243, 89,127,211,190, 87,103, 0,199, 95,193,157,175,124, 3,255, -243, 87,250,188,227, 88,157, 55,183, 11, 14, 2,120,231, 49,120, 96,203,227, 95,109,220,205,175,117,215,137,191,244, 81,216,121, -222,102,235, 0,210,105,182,114, 42, 60,122, 30,188,241, 16,252,139,175,244,249,151,131,123,248, 15, 65,135,228,244,167, 96,120, -197, 54,203,117,214,192,235, 57, 69,162,230,227,108, 13, 16,105,132,153,234,234,187,213,245,134, 93,110,166, 32,242, 83, 98, 6, -210, 84,207, 44,143,226,151, 41, 91, 88,101,113, 53,181,180,123,157,181, 98, 25, 13,159,130,121, 44, 30,161,120,140, 61,155,161, - 79,149, 71,228,250, 60,196,208, 58, 67,111,122,126, 38,194,208,248,204,240,232,163,231, 86,172, 20,128,188,216, 40, 87, 70,126, -228,198,178, 50, 52,125, 49, 99,247,164, 94,154, 87, 40,177, 79, 45, 32,100, 81,210, 85, 40,111,124, 43, 59,255,170,164, 6,108, -230,210,194, 37,243,238, 44,157,240,118,180,121, 3, 37, 43,215, 17, 8,234,138,103,140, 59,249, 75, 37, 14, 22,101, 45, 83,185, - 47,179,154, 25,138,105, 15,244,101,128,222, 90, 47,190, 37,203, 0,205,102, 54,148, 80,217, 85,251,170, 43, 17,212,102,243, 77, - 44, 75,129,182, 47,179,101, 53,166,154,165,152, 6, 61,198, 65,207,185,119, 26,167,118,254,210, 7,246,235,203,212,149, 7, 18, - 44,178,244,193,126, 11,234, 71, 31, 96,237, 85,239,230, 31,188, 99, 31,223,117,143, 19,103, 91, 57,226,112,255,241,251,208,221, -176,224,126,224, 4,199, 31,120,144,159,121,187,207, 91,143,174,182,191, 35,125,248,241,215, 3,230, 40,191,162,223, 10, 39, 63, -102, 71,209,146, 24, 60,159,107,253,174,110, 95,131,127,252,160,160,229, 4,255,175,167,136,159,125,204,102,235,126, 7,252, 0, - 95,193,141,188, 14,210, 17, 38, 76, 98,155,252,140,109,176, 51, 57,178,186,222,179,188, 10, 50, 5,169, 92, 57,114,191, 22, 10, -161, 69, 74,183,206,232,162,170,251,190, 77, 35, 92, 93,100,221, 84, 95, 55,197, 38, 56, 81,132,226, 51, 85, 1, 19,229, 51, 81, - 30,177, 40,103,216,176,210,201,107, 19,250, 18, 35, 12,197, 99,162,125,214,137,241,211,236,181, 80,119,206, 46,100,170, 72,161, -151,128,125, 78, 49,173, 16,220, 45,100,101, 75,206,133, 44,168,125, 41, 3,238,242,202, 76, 14,216, 37, 87,202, 89, 92,159,217, -206,122,161, 92,235, 93, 76,118,218,189, 98,198, 54, 59,134, 97,150, 89, 31, 85, 1, 68, 86, 60, 42, 31, 4,213,201, 32,181,145, - 6,110,147,225, 23, 45, 77,211,178,145,201,124,242,178, 17,176,202, 76,215,212,111, 83,185, 31,211,156,141,215,149,208, 26,143, - 73,170, 75, 7, 75, 18,186, 45, 71,222,138,199,209,212, 4, 41, 53,211, 43,149,234,124,133,108,164,140,126, 95,120, 39, 8,195, -238, 6,161,223,113, 89,250,205,207,170,111,244,190,141, 49,215, 0,234, 34,139, 81,174,238, 6,244,247,195,230, 49,130,187,191, -130,255,234,205,251,248,158,251,242, 25,106,164,225,211,151,225, 47,206, 25,134, 81,245,215, 38, 2, 87,103,112,121, 28, 90,209, -152,160, 15,131, 3,244,111,127,128,127,240,134, 96, 9,208, 19, 3, 23, 38,240,240, 69, 56,181,103,240, 4,238,220, 16,222,116, - 4, 14,118, 23,199,208,243,225,199, 94, 15,207, 14,143,242,254,225, 43,224,226, 99,174,190, 30,241,204, 78,194, 63,255, 84,222, -244,163,236,113,124, 32,124,205,173,194, 29, 27,139,191, 29,235,195, 63,122, 45,156,218,187,157, 71, 70,187,150,222,247,172,250, -221, 31,158, 54,156, 26, 86, 68,160, 37, 55,159,114,139,176,143,109,160,235, 8, 4, 46, 27, 83,110, 28,234,201,243, 17, 38,220, - 67,166, 99, 76, 24,218,177, 55, 39, 21, 91,181,224, 84,101,215, 82,128,246,236, 82, 91,182,136, 72, 1,228,165,144, 13, 53,141, - 16, 9,203,246,169, 85,117, 86, 99,218, 9,133, 84,209,140,130,177, 86,179,164,114,143, 66,172, 60, 66,241,153,136,207, 84,249, - 76,149, 71, 40,138, 4,107,160,115,173, 64, 94, 91,103, 71, 48, 2, 35, 20, 35,241,217,103, 20, 1, 58,111,143,154,201,216,179, - 52,183, 33,239,174,166, 76, 6, 36, 11,243,237,185,204, 69, 22, 24,152, 51, 68,145,197,123,101, 51, 89,157,125,142,172,243,218, - 50,152,151, 5, 2, 57, 10,222, 44,127,175, 75,219,150, 52,142, 84,205,177,103,191,220,180, 91, 94, 88,206,186,230,189,249,102, - 97, 39, 91,146, 95,231, 2,134,249,235,107, 26, 71, 77, 13, 27, 84, 9,174, 25,239,121, 93,193, 50, 21,195, 12,211, 66,183,161, -106, 20,172,172,145, 80,168,238, 20,111,170, 85, 87,177, 93, 77, 93,240, 85,250,240,181, 37,131,150,193, 75,149,104, 76, 89,224, - 85,124,190,204,121,173,210,119, 93, 67, 20,116, 24,246,214, 51,212,215,205,203,208,111, 86,125, 93, 68, 86, 5,245,212, 86,213, -183,205,107,221,117,219,192,118,228, 94,238,185,235, 14,190,243,158, 66,195,142,129,223, 62, 9, 63,245,241, 17,103,207, 94,178, -212,183,235, 38,183,157,221, 78,155, 93,219,209, 44,140,134,201, 21, 8,247, 32, 24,192,190, 91,121,199, 93,251,248,230, 59,151, -233,232,223, 61, 5,255,251,103, 67, 62,247,220, 14,201,116,100, 69, 63,122,235, 60,120,199, 38,223,243,202,128,111,188, 99,113, - 44,253, 0,254,209,235,225,211,103,142,115,121,247,121, 59,158,182,243, 44,231, 62,253,151,252,235,199, 7,142,210,246,108,159, -128,114, 29,247,105,231,189, 82,208, 89,227,189,119, 29,226,127,125,123,192, 3,251, 22,199,113,235, 26,124,223,203,225,251,158, -187,147,120,239,188,205,162,119,207,242,187, 15, 71,252,174,242,151, 50,165,196,164,102, 1, 89, 13, 79, 51, 63, 15,202,104, 2, - 99, 24, 0, 27, 70, 51,208, 17,221, 56,164, 27, 77,241,118,207,224, 61,247, 49,212,116,219,206,174,199, 33, 70, 39,249, 43,183, -176,120,230,154,149, 74,100, 67,171,233,110,169,165,238,218, 40, 84, 73,211,162, 68,203,217,114,170,103,101,179,148,104,202, 58, -104,113,142,180,198,138,199,216, 17, 53,159,177,248,204, 28,205,174,211,133,252,102,210,106, 14, 4,103,120,236, 73,192,196,120, -116, 73, 80, 25,250, 54, 59, 61, 41, 82,200,120, 76,121,246,155, 61,193, 73,145, 78,207,100,225,217, 44,218,100, 2,135,116,219, - 36, 3,152, 34,229, 25, 54, 69,234,189,196,109, 77,149, 48, 68,149, 2, 51,166,162,233, 74, 88,234,223, 44,219,174, 40,108,148, -141, 80, 74, 71,178, 76,121,192, 80,124,189, 89, 10,199, 40, 5,102, 41,201,238,202,152, 42, 67,187,209,178,170,121,248,182, 13, -118,141,250,244, 45,216, 47, 83,145, 17,235,150,219, 86,225, 82,157, 95,122, 29, 5,223, 84,187,111, 18,193, 41,171,169,151,117, -230,235,146, 68,107,216,219, 36, 12, 58,215, 37, 54,243, 82, 0,246,107, 0,117,207,138,175, 4, 61, 59, 51,190,182, 31,117,232, - 30,190,225,174,128, 91, 7,249,173, 63,113, 9,126,226, 99, 83, 46, 63,245, 36, 12,159,183, 51,215,211, 61, 59,143,158,132, 14, -225, 34,247,227,210,147,180,155,190,183,133,127,224, 56,127,235, 30,232, 23,168,252,223,124, 26,126,244,195, 35,246, 78,127, 1, -198,151,172,100, 43,144,248, 61, 30,190,116,152, 83, 59,247, 97,232,243, 45, 39, 22,175,185,111, 19,254,198, 61,125,126,245,244, - 65,216,125, 14, 38,187,112,242, 35,115,201, 85, 60, 39, 60,227,249,182,196,224,119,109, 96,209,179, 98, 58,143,142,239,225,159, - 4,119,241, 75,239, 86,108,101,122, 5,254,250,109,240,154, 91,214,248,228,133, 35,176,253,172,237, 76,159,141,151,115, 16, 99, - 51, 5, 5,214,215,220,104,251,185,103, 99,251, 19,143,209,113,204,204,196, 68, 24,198, 73, 76, 63,153, 50,152,141, 25, 76,183, -233,143,175,208, 25, 95, 38,152,236,160,102, 67,188,120,134,184,192,168,204,134,147,146,223,179, 51,204,165,219, 75, 73,142, 93, - 55,215, 81,243,156, 41,208,190, 52,220,220,141, 1, 68, 37, 13,106,230,135,105,245,245, 60, 91, 51, 87,158,165,217,197,179, 96, - 46, 10, 45,205,202,122, 55, 16,211, 49, 64, 36,194,158,241, 25, 17,176, 70, 68, 58,245,174, 10, 84,185, 41,128, 90, 89,247,120, - 17,212, 84, 38,235, 87,133,239,100, 73, 67,160,232,185,158, 5,230,146, 46,245,210,198,185,194,101,145, 13, 56,234,190, 67, 85, - 3,212, 20,174, 79,105, 1, 16, 89,211,172, 34, 45, 91,117, 12,117, 2, 43,101, 77,113,117, 99,105,101,218,242,109,235,205, 84, -212,117,161,185,158,220, 74, 51,189, 97,219,218,247,169,169,105,151,158,187,134,177,183,178, 0, 30, 90, 54,205,181,240,102, 40, - 5,116,154, 93,234,178,251,214,198,214,109, 98, 47, 96,183,191,105, 69,166, 90,178,113, 47,213,199,106,160,174, 82, 5, 57,223, -210,239, 29, 75,145,111, 28, 57,198,187,111,205,111, 58,142,225,167, 63, 3,151,159, 59, 5, 59,207,194,240, 18,236, 93,128,241, -182,147, 66, 13, 23,217, 57,216, 96,161,219,183,153,191,223,129, 96,141, 91,246,175,241,149, 71,242,251,125,124, 27,126,230,147, - 51,246, 78, 63, 97, 59,207,167, 59, 22, 20, 69, 44,115, 16, 79,185,240,180,225,151,183, 94,201,107, 15, 4,188,204, 81,230,190, -130,183,223,162,248,191,183,182, 8,207, 42,219, 9, 63,218,177, 32,156,132,150, 61, 72,213,241,196,131,160, 3,157, 13,100,227, - 32,172, 31, 1, 17, 62,250,197, 77,254,207,219,142,240,223,191,114,113, 60,158,130,111,185, 19, 62,249,228, 33,216,121, 14, 54, -142,178,118,248, 54, 2,223, 95, 90,160,180,177, 86,171,187,195, 17,211, 83,143,193,238,121, 24, 94,132,201,182, 13,120,226, 41, -152, 4,141, 97,150,104, 66, 29, 49,138, 66, 58,241,136,193,108,143,181,233, 46,253,112, 76, 39,140,232,232, 24, 47,209, 40, 99, - 74,155,159,170,232,119,169,200,120,203,110,210,185,150,149,161,180, 38, 78,197,130,218, 22,192, 27,107,232, 38, 95,151, 47, 91, -152, 52,214,117, 46, 22,235, 97, 30,138,199, 84,121, 76, 29,152,199, 46, 51,191,150, 91,243, 70,221,208, 67, 81,236,137,207, 86, - 74,193,167,139,138,100,104,248, 2, 32,179, 92, 78,206,127,183, 21,162, 52,197,140,125, 41, 83, 46,209,130,159, 55,234, 81,226, -109,206,178,112,141, 49,133, 89,247, 18,143,247,162, 4,170, 84, 1,122,139,210, 77,213,147,154,213, 92, 1,105, 1, 38, 52,176, - 75,218,180,147,152,173, 4,101,211,178,217,175,244, 30,104, 1,134,180,235, 56, 55, 84, 11, 55,233, 22,247,104,147, 84,111,213, -189,220, 70,213,175, 81, 77,178, 65, 25,178, 78, 77, 79, 23,193,222, 37, 90,227,238, 26,211,160,251,130,247,186,223,140,108,253, - 26,106,234,142,126,247,124, 11,190,253,125,220,113,112,157, 19,235,249,205, 62,116, 14, 62,114,106,199,102,175,227,171, 86, 8, -102,231,156, 53, 90, 9, 71,174,225, 75, 47,106, 23, 65,207, 74,164,138, 7,221, 77,232,172,113,207,126, 97, 95, 39,191,223, 63, -122, 22,158, 63,115,222,218,159,142,174,192,206, 89, 43, 0, 35, 64,111, 11,182,142, 67,208,231,137,211,151,120,232,194,113, 78, -172, 59, 70, 93,224,214, 53,225,240, 70,159, 51,162,156, 90,219,142,221,199,204, 29,207,220,155,213, 67,130,174, 21,212,137, 71, - 22,240, 61, 31,115,229, 20,255,238,201, 67,124,219,203, 20,199, 50,172,196,219,143, 3,131,129,109,240,235,111,241, 3, 95,113, -144,247,220,178, 76, 39,122,192,110, 4, 63,242,208, 6,159, 57,245, 57,244,232, 34,102,231,156, 5,246,233,158, 13,118,180,187, -236,140,193,232,152, 40, 73,136,146,136,113, 50, 99, 47,154,210,143,103,244, 19, 24, 36,138,174,241,233, 2, 30, 49, 30,102,190, -248,202, 10, 0,218,234,134,172,160,230, 77,195, 62,175, 69, 1,204, 20, 86,130,114, 81, 14, 33, 65,208,216, 12, 60, 84, 62,161, -120,204,196, 99, 38,138, 72, 20,145, 48,159,227,151,155,116, 51, 54, 61,151,126, 23, 33,194,182,248, 28, 48, 1, 61, 18,188, 66, - 23,188, 41, 80,227, 75, 99, 91,203, 19,136,121,211,149,140, 70,124, 49,147, 73,103,216,189,194,162, 39,133,102,186, 84,117, 46, -201, 76,109, 20,233,230, 98, 19,164,202,238,175,120, 92, 37,159, 69, 90, 92, 43, 69,182,160,233,250,105,227, 2,216,124,109,151, -131,119, 19,216,180,189,174,203, 88, 38, 93,195, 40, 52, 58,148,213, 81,220, 45,130, 6,221, 2,200,235,130,140, 58,122,189, 46, - 51,111, 18, 17,170,115, 79,107, 85, 6, 52,171,101,233,233,223, 99,229,177,215,223, 32, 84, 65,254, 90, 50, 6, 99,204, 77,207, -214,111, 52,176, 95, 3,253, 46,139, 57,117,229, 67,103,141, 35, 27, 1,253, 66,187,237, 95,156,135,217,149, 11, 22,192,167,187, - 22,216,199, 87, 96,120,217,129,104,152,207,210,123,125,187,154,116, 55,109,141,221,235,112,100,160,114,119,108,108,224,241,203, -154,120,178, 99,187,205,167, 59,118,191,211, 93,123,108,113, 98,229, 99,215,246, 51,218,219,225,228,238, 49, 66, 45,244, 60,187, -155,141, 0, 54,251, 62,103, 16,203, 20, 68, 19,155,169, 79,118, 33,158,205,141, 47,108,137,161, 99,183, 17,101,189,224,215, 15, -192,232, 50, 87,174,236,241,177,139, 91, 57,106,255,104, 31, 54,122, 30,123,170, 3, 6, 94,182,110,120,205,193,242,236,112, 24, -193, 86,199, 32,209, 20,153,238,194,244, 42,102,124, 25,198, 59, 78, 38, 55,206, 92,125,174,247, 64,107, 76, 18, 51,213, 17, 83, -147,176,171, 13, 61,237,209, 7,250, 8, 93, 60, 58,104, 2, 52, 62,218, 81,188,198, 53,218,181, 3, 93,105, 88,244,138,202, 96, -203,182,172,197,118,187,188,171,146,148,117,203,155,234,119,183,161,141,204,199,133,146,244, 71, 20, 9,138,200,141,165,133,162, -152, 41,101, 27,223, 68, 72,204, 98,220, 79,174, 35, 11, 95, 69,108,166,233,145,136,176,139,207, 30, 29,214, 9,241, 73,230,221, -230, 70,156, 5,130,148,107,192, 55, 9,183,144,217, 79,229, 28,187,177,178,175, 89, 70,199,100,216,130,226,216,220, 92,130,182, - 64,181, 87,101,226, 20,130,133, 85,132, 97,234,154, 34,117, 38, 80, 41, 78, 6, 84,157,143,170,114,192,178, 19, 92, 13, 88, 92, - 71, 54,190, 84, 62, 89,145, 62,111,195, 44,232,146,114, 91, 91,187, 85, 83,199,212,213,101,233,166,153,214, 47,102,204,171,130, - 63, 13,153,124,213,100, 64, 89, 19, 96,177,182,174,139,128,158,121,110,220, 29, 48,236,172, 57,223,131, 2, 35, 88, 24,199,252, -242,163,223, 75, 65, 94,209,117, 2,115,217,199,118,136, 53, 36, 17,167,159,174, 99,151,157,167, 63,142,122, 55,198,205,217,100, - 26,231,208, 32,138, 78,225, 60, 38, 26,198,177,113, 13, 98,218,213,195, 99,251,175,176,248,127,231, 43, 62,142, 52,137, 89, 20, -228, 61, 55, 98,159,134,195, 98,180, 99, 11,146, 69,227,158,136,179,108, 85, 78,139, 61,182, 51,232,218, 74,217, 38,241,140,139, -179,194, 73, 20,240, 82, 58,192,141,214,152,138,230,201, 5,221,106,219,181,146,196,202,192, 90,227,154,200, 30,127,122,233,233, - 20,216,181, 61, 6,199,108,196,198, 48, 18,197, 4, 8,156, 97, 72, 7, 67, 7, 77,215, 24,186, 36,248,104, 2, 12,158,155,143, -246, 33, 3,145,148,206,242, 74, 73, 42,104,202, 22,108,147, 7, 95, 41, 1,100, 90,100, 43,139,255, 79,235,152,105,215,186,114, -126,240, 11, 32,143, 68, 17,163, 8,197, 35, 18, 33,198,254, 45, 17,193,100,196, 77,210,115,126, 61,160,124,163, 95, 43, 34,204, -196, 99,135, 14,251,146, 14, 93,166,248,105,151,116,161,137,109,110,228,146, 65,188, 52,179,154,119,168, 23,230,201,115, 0, 82, -210,165, 94, 85,159,159,239, 87,170, 45,114,201,200,197,194,178, 69,107,246,146, 41,206,178,151,101,236, 69,125,133, 42,205,251, - 92, 86, 73,185, 81,139,169,120,157,174, 1, 73, 83, 81, 18,186, 22, 15,242,166,140,188,117,173,219,212, 91,176,150, 1,172,110, -177,111,161,185,227, 28,218,107,184, 55, 5, 54, 80, 47, 32,211,228,189,208,100,197, 90, 57,126, 87, 97,218, 82,151,177,107,108, -118,108, 68,185, 6,185,238,220,235,160,120,239,190, 16,128,126, 35,179,245,213, 65, 61,211,173,141,137, 33,154,113,117,154, 16, - 38, 30,221, 12,176,111, 5,216, 89,118,241,108,243, 91, 96, 29,204,136,103, 46,171,118,141,114,104,215,152,214,183,178,179,202, -183, 75,135, 14,217,158,229,101,250,186, 30, 28, 91, 83,168,160,139, 86,174, 89, 47,232, 57, 95,115,177, 53,126,223, 58,174, 5, - 65,192,254,190, 71,144,217,193, 76,195, 52, 54, 11, 35,150,116, 52,175, 19, 66,236, 45, 80, 33,213,180,239, 14,236,113, 7,125, -187,157,231,161,252, 46,135,187,249, 83,178, 23,194, 40,116,129,129, 8,126, 97,225, 74, 12,204, 18,187,120,142, 99, 59, 51,173, -252, 0,237,119, 81,157, 62,210, 91, 67,235, 8, 68,108,192, 98, 82, 80,119,153,122, 18,131,246,220,231,116,251,214, 86,161,108, -134, 98, 38, 6,101, 64,161,240, 5, 2,124, 58, 70,207,129,222,119,255, 90,138, 62,159,201,231,235,241, 38,191, 48,155,124,166, -175,205,242, 98, 13,245,190,233,249,127, 23,166, 30,198,253,164, 25,185, 70, 28,136, 91,240, 78,148, 16, 57,224,142, 69,136, 69, - 17, 35,196, 98,143,124, 30,132,200,245,103,210, 55,130,114,175, 3,116, 0,163, 60,246,164,203,158,137,232, 39, 33,138,100,222, - 36,151, 5, 95, 69,117, 74, 94,108,122,171, 82,245, 75,193, 93,149, 45,212,146,207,120,243,190,233,139, 99,168, 50,234, 49, 82, - 95,239, 54, 52, 88,167,166,210,180, 5, 9, 97,105, 89, 51,206,189, 79,133, 4,110,219, 90,113,211,254, 27, 65,189, 69, 96, 80, - 7,140,101,107,184,166,161,246,108,154, 27,229,150,106,202, 43,128,121, 83, 67, 91,147, 11, 98, 83, 64, 83,166, 55,212, 70, 58, -182, 14,208,139,129, 86, 93, 19,221,130, 61,180,107,221,184, 51, 96,216, 91,183, 89,250, 11,108,188,242, 18,201,212, 51, 35,104, - 73,108,157,196,102,219, 60,115,101,194,133,201, 58, 27,153,174,240, 55, 28,130, 95,221, 60, 76,116,249,148, 21,168,217,156,216, -179,233,119, 32, 28, 47,106,234,198, 89,143,250, 29,219,105,222,233, 91,176, 13, 71,156,220,211,204, 18,143,110,166,251,253, 29, -199,133,223,222, 58,204,100,251,172,149,167,213, 78,201, 13,108,147,221,224, 32, 4, 3,182,246, 31,224,229, 7,160,227, 45,190, -216,237, 41,108,143, 67,251, 91,208,177,141,117, 58,177, 0,110, 98,151,105,251,139, 14,255,222,134,211,180, 63, 98, 93,230,122, -251,216,218, 90,227,193,131,249,179,242,232, 21,136, 70, 51, 91,167,207, 41,186,219,199,211,123,240,139, 79, 24,134,179,132,200, -192,201,203, 83,240, 3,100,109, 63, 42,158, 97,148,130, 78, 15, 19, 90, 55, 57,131, 94,184,181, 37,177, 51,111,153, 33,209, 20, - 19, 78,108,169, 64,220,236,150,137,237, 92,182, 88,177,147, 24,176, 97,147, 66, 33,243,140,221, 55, 6, 95, 52,190, 1, 31,141, - 47, 6,207, 88,104,245,148,155,151, 54, 41,131, 80, 28,105, 50, 21,198,173,117,139,158, 44,213,193, 83, 16,215, 40, 75,132,160, - 28,173,238,178,114,177,160,157, 24, 33, 86,246, 57,131,251,152,238,255,175, 39,203,190, 17,207,175, 18, 0,204,107,235, 98, 89, -156,169,248, 12, 85,151, 45, 61,163, 99,166,150, 45,202,136,166,204,189,204,101,121,132,109,137,214, 46, 1,246,162,230,187,150, -229,110,118,157,121,157, 42,100,117, 42,211,128,166,164, 66,126, 54,195, 34, 20,179,126, 41,201,152, 85, 9,117, 94,181, 98, 87, - 57, 0,206,245, 28, 50,105,185, 49,229, 0, 84, 87,135,111,162,230,219,130,186, 46,128,107,149,110,126,177,118, 94,116,222, 43, - 43,165,232,146, 0, 36,199,150,209,220,217, 78, 5,101, 93,247,249,178, 98, 70,101,193,122,211,123,153,154,241,190, 50,154,188, -234,156,153,154, 50, 72, 85, 38, 94, 5,232,197,191,105, 22,141,142, 98,172,137,211, 78,127,139,153,223,125, 73, 0,250,141,202, -214, 87, 3,117,227,178, 71, 29, 91, 0,139, 38, 48,186,194,165, 11,151,248,200,197,245,156,206,251,127,114, 43,188,245,174, 45, - 62,180,125,247,226,214,236,244, 96,188,223,130,122,156, 42,163, 69,118,159,130,117, 61,235,174,219,108,123, 54,228,233, 75, 51, - 30,191, 26,240,250, 67,139,253,190,251, 86,120,247,253, 7,248,131,189, 19,246, 56,196,135,117, 39,253,234,117,108, 0,113,224, - 78,222,117,239, 1,222,114, 56,115,179,104,248,226,142,225,242,238,200, 66, 75,119, 0,241, 62,247,154,200,173, 26,129, 27,109, -243,237, 49,116,214,173, 53,235,218, 1, 24, 28,134,195,119,243, 29, 15,248,220, 81,104, 10,124,239, 73,108,109, 95,199,133, 74, -168,125, 92,152,194,111,127,126,200,238,153, 83, 46,243,158,129,104,100,243, 8, 40,133,244,214, 96, 54,194, 68, 33, 70,199,232, - 68,219,140, 61, 9,157,199,252,216,218,201,206, 70,136,242, 97,166,172,235,156,177, 43,183,148,152,108,104,177, 0, 26, 35,204, -156,200, 74,218, 52,165,140,193,195,254,136, 88,235, 76,207,169,141,121,198,216,209, 59, 73, 23,255, 66, 3, 94,182,123,171,160, - 9,110,230,226, 53, 10,237,164, 64,230,217,184,128, 22,143,196,129, 58, 98, 28,160,187,237, 69,208, 34,238, 35,153,249,241, 82, - 70,241,222,100, 64,190, 17,251, 78, 65, 61, 11,238,137, 8, 59, 94,192,166,238,210,115,217,250, 92, 78, 56,163,245,158, 46,174, - 30,249,217,225,162,183,122,217,184, 96, 89,167,121, 17,244,178,192,188, 68,211, 23, 23,105, 89, 6,203, 50,105,217,170,218,181, -166, 89,183, 94, 42,168,215, 42,128, 44, 3, 56,168,111,236,107, 2,193, 38,215,177, 58, 10,186, 81,149,173,165,158,121,241,247, - 90, 67,162, 21,107,217,141,229, 5, 83,109,203, 90,199,132,212,237,183, 77,137,160,172,180, 82, 39,148, 83, 70,183,151, 5,135, -186,112,238,117,241,245, 6, 38,221, 1,227,222, 58, 70, 84,229,183,243, 66, 52,202,189,184,153,122, 42,189,147, 68, 54,123, 12, -199, 48,190, 66,124,225,105,222,251,165, 19,124,227,237,139,110,245,141, 0,254,229, 91, 20, 63,168, 79,240,145, 39,215, 97,251, - 44, 76, 47,219, 78,245,104,106,235,234,137,203,248,147,153,245, 22, 55,238,212,251, 29,136, 38,140,174, 92,228,255,122,122, 61, - 7,234, 91, 1,252,240,235, 21,151,198,119,242,208, 19,125,216, 59,101, 27,239, 4,164,187,133,217, 58,193,187, 95,117,144, 31, -124,141,176, 63,211, 57, 31,105,248,179,211, 49,236,238,184,247,232,195,134,207, 66, 80, 39,176,217,187, 10,156,221,107, 96, 89, -131,222, 6,244,143, 34,135,142,243,223,188,126,131,239,125, 32,127, 74, 62,126, 1, 62,120,122, 6,163,179,110, 28,110,249,180, - 41, 1,223,132, 48,190,236, 0,221,189,231, 96, 31, 18, 12, 96,115,134,138, 67, 76, 28, 91,122, 58, 73,208, 73, 4,209, 12, 51, - 27, 34,179, 33,236, 93,180, 99,129, 34,139, 58,187,142, 93, 26,107,202,186, 29,114,255,151, 94,208, 73,182,240,140,202, 80,192, - 22,213, 83,235, 87,165,196,185, 20,101,246, 36,139,197, 92, 48, 24,197,194, 71,219,161,187, 17,167,253,101,156,214,181,136,163, -108,109,237,123, 73,103,190,164,158, 47,215, 56,130,118,189, 55,224,141,120,109, 10,226, 74,169,124,166,238, 30, 35,229,179,173, - 51,218,126,140, 0, 0, 32, 0, 73, 68, 65, 84,186,108,232, 25,190,153, 34, 78, 49, 48,219,141,158, 54,204, 37,197,134,191, 50, - 65, 26,179,200,170,203,154,215,116, 46,232,202,131, 95,146,169,167, 75, 33,163,214,217,216,173, 4,216,179, 65,222,178, 98, 92, -117,102, 76, 3,101,223, 68,137, 55,129, 49,133, 0, 69, 42, 94,211,168, 13,111,218,237,191,169,166,141,105, 14, 42, 76, 69, 54, -191,202,228,136, 49,237, 88, 6,104,150,139,109, 60,223, 43, 72,187,182,165,229, 41, 9, 48, 90,141, 8, 82, 61, 83,191, 4,232, -153, 13, 19,229, 51,236,111, 50,243,187, 52,181,118,190,144,192,126, 35,178,245,107,160,223, 19,155,101,135, 83, 11,208,147, 29, -204,133, 47,240,216, 83, 47,231, 15,238, 62,206,183,223,179,216,250,196, 6,252,242,187, 61,126,235,206, 35,252,230, 83,135,248, -194,213,132, 89,152, 44, 50,243,180, 62,159,142,112, 25,131,190,114, 26,243,220,103,236,251, 92, 57,197, 31,126,241, 24,223,114, -162,207, 87,102,100, 98, 31,216,130,159,127,151,199,191, 57,124, 11,239,125,234, 48, 59,227, 24, 65, 56,190, 21,240,109,247,120, -252,192, 43,172,213,107,246,241,103,103,224,253, 39,135, 48,187,236,162,131, 99,200,203,222,130,215,223,200,160,137,228, 86, 38, - 81,138,245,158,199,155,143,249,252,189,251,132,183, 29,203, 59,195,141, 35,248,217,199, 97,122,241, 89, 27, 88,248,221,210,235, -195,104,240,122, 91,168, 19,111,170,208, 20,150,156,153,134, 54, 86,188,213,104,219, 20,104,180, 70,239, 94, 64, 63,242, 27,112, -250, 19,246,252,199,105, 31, 64,188,218, 69,147,253, 63, 37, 75, 53,239,180,184,154,148,173,210,185, 67, 85,185, 44,110,113,252, -146,137, 0,210, 93,200,210,118, 75, 25,120,139,155,230,197,162,214,219,236, 55,251,147, 5,244,226,195,102,235, 29,246, 37, 93, -186, 38,194,118, 10, 44, 91,165,166,205,109, 69,227,150,236,202,159,130,112,154,121,103,189,211, 77, 33, 24, 48, 37, 84,124,154, -181,215,105,183,103,197, 93,178,224, 94, 4,161,162,135,187, 52,208,181,101,147, 23, 85, 62,241,117,175, 55, 21,251,105, 83, 3, -110,234,188, 22, 86, 20,111,201,130,126,137,144, 78, 27,149,182, 44, 61, 47, 45,105,115, 99,202,153,141,166, 78,242,170,243,111, -106,104,244, 38, 48, 93,165, 57,175, 77, 16, 83, 84,144, 19,234,155,226,202, 36, 96,179, 10,114,233, 99,210, 29, 48,234,109, 96, -148,114, 80,100, 94, 20, 6,240,102, 0,251,234,160,174,141,203,212, 39,214,243,124,114, 21,118,158,103,116,234, 81,126,238,211, -135,120,229,254,128,215, 29,204,103,214,223,117, 63,124,215,253,138,179, 19,197,149,105,192, 44, 41,201,102, 21, 60, 59,132, 31, -251,243,219,121,254,220, 83, 16,237,192,240, 2, 23,159,249, 18,255,236,225, 87,242,243,239, 82,185, 89,248,227, 3,248,103,111, -130, 31,122,109,192,115,163, 0, 5,156, 88, 47,119,134,123,110, 8,255,203, 39, 35,204,185,103, 22, 52,249,218, 65, 94,121,239, -113,254,197,155, 36, 55,198,147, 62, 60, 5, 3, 31,142,246, 96,179, 83,126, 54,126,235, 52, 60,252,244, 85,184,124,218, 89,161, -130, 82,130,239,229, 59,229, 94,117, 0,126,249, 61, 62,241, 10,167, 59,123, 56, 81, 2,191,244,248, 38,191,243,236,171,224,194, -151,236,152, 96, 24, 64,232,181,155, 33,106,121,145, 74,251, 29,180,210,149, 7, 26,115,238,182, 55,204,205, 30, 65,187,214, 27, - 55, 5,240, 50,186,189,244,123, 21, 97,172, 60,182,253, 46,107,241, 20, 79,219,171,194, 20,178, 99,234, 36,125, 43,198,199,114, -242,158, 82,210,116,151, 93,116,101,121, 44, 46,183,184,203, 50,141, 78, 97,212,173, 42,203, 46,206, 11,215,149, 3,202,252,214, -115,126,238, 52,235, 25,204,223, 75,170,235,177,100,202, 0,138,124,173, 94, 42, 64,172,110, 46,189,106,255,217,239, 81,215,148, - 26,114,147, 5,133,227,107,154,101,175,115, 86,171,250, 28,213, 23,211,106,141,121, 77,224, 94, 44, 29, 84, 50, 29, 45,103,216, - 77, 73, 57,160, 74,243,125,137,186, 55,169,255, 67,190,140, 21, 43,159,189,222, 38,179,160,211, 10, 72, 95, 12, 10,254,122,128, -253, 26,186,223, 23, 93,239,132, 35, 59, 95,221,189, 4,103, 30,227,233,245, 35,252,244,129,215,241,227,111, 84,165, 62,234,199, -251,246,167,234,113,176, 3,125,229,164, 99,103, 35,152, 77, 32,249, 44,159,242,124,126, 56,184,159, 31,125,179,226,213,251,243, -175,217,215, 97, 73,160, 38,251,120,122, 15,126,248,163,134, 39,159,124, 26, 46, 63,105, 69, 94,140, 6, 3,235, 74,243,250,131, -222, 53,157,184, 15,158,131,159,251,196,132,189,211, 79,194,108,215, 53, 1, 14, 74,175,228,205, 0,222,112,248,250,190,228,247, - 63, 99, 16,124,219, 80,231,185, 18,129,168,155,171, 95,222, 0,126,178,194,182, 47, 22,160, 95,239,254, 43, 3,160, 12,128,123, - 94,251,107, 72,128,216,101,235,155,186, 71, 87,199, 54, 91,207,200,184,170, 12,173,158, 85,123,163,144,109,155, 18,173,247,108, -214,108,106,128, 87, 50,101,144,185,113, 12, 5,193, 27,150,131,139,162, 2, 93, 21,184,151,101,216,165, 51,238, 89,185, 87, 41, -212,242,211, 78,249, 10, 80, 50,212,115,246, 85,153,180,166,121,220, 12, 86,168, 71, 87, 48, 4,166,129,146,110,146, 98,173, 19, -197,105,163,231,110, 90,102,192, 75, 65, 71, 11,251,214,202,115,212,198, 94,182,133,163, 92, 17,208,219,124, 55, 77, 6, 48,105, -224, 55,233, 12, 24,245,214,209,162,114,129,239, 75, 13,216, 95,160, 76,157, 69,179, 92, 28,218,154,250,100,199,142,123,249, 61, -120,230, 99,252, 89,167,139, 39, 47,231,135, 94,183, 12,192, 77,143,105,226,104,144,112,106,131, 5,147, 88, 16, 14,167,124, 40, -156,240, 67,211, 87,242, 61,175,233,242,245,183, 45,211,235, 75, 52,167,177,192,251,191,125, 58,225,225, 79, 61, 14,207,125, 98, - 97,187, 42, 10,226,144,228, 26, 78,152, 1,254,232, 57,248,169,143, 79,121,230,115,159,134,139, 79, 90,201, 89, 4, 6,251, 92, -179,220,141,125,132,218, 10,239,120,158,135, 86, 10, 81, 30, 70,169,149, 18,244, 27,113, 65,174,178,143, 23,178, 6,117, 51, 51, -248,170,215,164, 25,186,114, 2, 13,171,176, 1, 34,194, 84,121,108,171, 46, 3, 9,241,116, 2, 98,240, 76, 74,209,231,109, 87, -179,110,109,137,148,143,189,101,235,225,197,231,164,142,250,206,128,127,182, 14,189, 36, 9, 43,203,210,175,185,224,128,188,131, - 92,153,233,105, 93, 29,124, 9, 76, 76,254,111, 77,108, 22,117,108, 64,201,231,110,235, 55,222,214, 18,184, 13, 53,221, 22,204, - 88, 33,195,110, 91, 90,104, 3,232,117, 52,184,174, 96, 74, 90, 29,127, 5,147,192,138,128, 94, 6,222, 57, 0,207,118,185, 23, - 24,139,244,252,199, 42, 96,216,223, 34,124, 17, 36, 97, 95,186,160,158, 29,107, 11, 39,150,118, 86,129, 51, 66, 81, 24, 17,254, - 36,158,113,114,247,181,124,255,171, 61,190,238, 54,216,234,180,219,243,102, 7,219, 43, 61, 27, 90, 0,142,167, 54, 35,157, 88, -141,246,207, 78, 46,243,227,151, 94,199, 31,221,119,152,111,125, 25,188,227,232, 50,184, 79, 98,248,248, 37,248,189,211,240,254, - 47,238,114,238, 11,159,129,231, 31,179, 77,102,241,196,233,181,250, 16,207,150,196,109,154, 30,167,134,240,107, 79,193,111,126, -118,151, 11,143, 63, 2,103, 31,179,199, 22,207,108,253, 32, 9,145,104,202,122,112, 99,165, 73, 59, 10,250, 62,120,162, 17,199, -147,106,177, 58,242, 89,225,149, 23, 35,147,189,217,128,254, 82,137,142,139,212,122, 85, 35, 92, 91,134, 35, 18,197,174,215, 97, - 61,233,210, 53, 33, 98,226, 57,101,158,147,142, 45,248,215,167, 32, 92,172,153, 75,149,162, 92,197,232, 91, 14,124, 75,154, 23, -203,186,221, 69,170, 29,216,230, 45, 50, 82,110,224, 82,214,156, 86,169, 78,215, 4,180, 45,128,181,209, 39,189,105,159,166,229, - 76,119,155,253,175,224, 76, 86,245,225, 90, 43,185, 21,168,105, 88,193,101,209,172,112,126, 86,100, 50,218,106,210,183, 9,150, -170,172, 86,231, 44,140,169, 40, 93, 24,197,180,187,198,168,191,110,107,233,198,172,196,204,125, 25,131, 58, 25,203,212,200,142, -181, 77,182, 51,222,145, 9,122, 50,228,201,221,115,252,195,243,111,230,103,142, 30,226,254, 45,235, 63,222,164,253,188,147,192, -197,189,153,181, 95, 29, 94,178, 93,242, 24, 43,254, 18, 14, 33, 26,115,117,247, 44,127,124,241,149,124,240, 75,247,114,203,129, - 77,238,219, 7,135,251,150,150, 58, 63,133,167,119,224,220,246,136,240,252, 73,226,179, 79,192,213,231,172, 60,237,108,184,200, -210,189, 0,194, 29, 62,191,167,248,145,135,109, 22,220, 20,245, 95,152,194, 39, 47,194,149,231, 78, 18,157,124,196,214,182, 71, -151,109, 95, 65, 18,217,185,246, 56, 38,153,238,242,111,159,132,247,157, 97,229, 90,119,213,251,107,224,147,231, 4, 73, 38,120, -241, 4,163, 35,187, 16, 42, 55, 6,230,178,197,148, 58,122,177,164, 13,111,116, 38,127, 51, 27,227,218,190,255,245, 0,121, 35, - 51,165,124,182,253, 30, 3, 29,226, 27,103,203,154,241, 62,207,210,241, 41, 21,157,205,224,139,183,100,182, 89,174, 76, 70, 84, -106, 28,245,178, 89,177,146,114, 27, 85, 85, 48,132, 89,106,148,163,124, 62,190,170,219, 60, 59,127,110, 42,104,123,105, 0,151, - 54, 50,199,109, 50, 91, 76,251, 44, 94, 90, 2,249,170,153,171, 52,101,198, 45,232,112, 90, 42,229, 45, 53,192,153, 21, 28,230, - 42, 24,140,186, 99,214,166,154, 41, 41, 3,229,170, 49,199, 82, 91,213, 12,144, 87, 61,143,129,208,243,217,117,115,233,172, 80, -175,254,171, 54,214, 38, 71,143, 30,189, 70,232,113,218,176,158, 83,118,235,172, 65,127, 31,172,237,135,181,131, 48, 56, 0,155, -135, 97,255,237,176,239, 54,232,110,217,172, 94, 84, 62,148, 79,165, 88,227,208,102,254,103, 31,131,103, 30,178,150,170,179, 84, -176, 38, 64,250,155,118,191,155,110,223, 27,135, 96,235, 22, 88, 59,108, 65,223, 24,235, 51, 62,186, 4,187,231, 96,120,197, 6, - 2,211, 93,235,128,150,106,205,139,178, 93,234,253, 45,184,235,109,176,113,139, 83,151,115,150,171,170, 96, 83,149, 10,228, 76, -247, 96,231, 52, 92,126, 6, 70,219, 22,208,199, 59,182,175, 64, 39,118, 31,221,117,184,229, 21,112,226, 43,172,185,140,231,172, - 92, 37,221,111,219, 11,195, 54, 36,138,113, 2, 63,201,204, 26,226,124,241,131,112,233,105,235,116, 55,217,193, 76,135,152,104, - 10, 70,163,181,206,129,250,245,116, 79,222,172, 46,241, 27,185,205,205, 4,245, 34,152, 55,117,180, 95,207,113,244,116,194,241, -112,196,145,104,151,190, 9,173, 94, 64, 6, 88,165,160,217, 46, 25,208, 78,117, 7,138, 29,237, 89, 42, 28,242, 70, 49,197,231, -138,217,118, 78,116,168,100,187, 37,159,117,169,120,109, 69, 54, 63,255,187,100, 84,153, 41,247,102,215, 37, 37,133, 54, 25, 36, - 21, 25,107, 17,148,117,203,125,235, 26, 26, 95,175,234, 39, 94,145,189,182,205, 92,155,192,213, 84,124,190,166, 57,252, 42,153, -218, 54,175, 89, 69, 3,190,246,188,155,122, 93,247,236,235,133,188,183, 68, 85, 99, 92, 58,147,110, 68,216, 94, 59,200,197,125, -199,137, 61, 31,181, 98,198,165,148,122, 81, 0,250, 90,214,241,235,208,126,215,110,216, 53, 6,166, 25, 90, 62,180,110, 99,211, - 93, 59,151,125,245,180, 21,149, 9,122, 54,155, 21,223,165, 12,238,174,214,161,205,200,103, 35,107,172, 50,221,117, 77,114, 67, -219,140,135, 70,130,142,211, 96, 55, 78,151, 61, 1, 51,131,233, 21, 59,211, 46,158,219, 87, 4, 81, 8,161,155,161,143, 38,118, - 31,169, 73, 74,186,172,232,196,238,255,243,127,106,237, 94,131,129, 59,190,142, 5,246,121, 72,152,216,249,121,109,103,198, 73, - 66,107,243, 58,217,179,192, 58,221,181,199,158, 68,246,117,225, 4, 78, 62, 2,231,158,176,160,222,113, 10,121,190,107,108,107, - 57,181, 43, 34,110,194,192,157,203,201,174, 13, 42,102,123,150, 25,152,141, 32, 14,173,180,139,178,195,226, 74, 41,180,182,224, -158, 5,146, 85, 1,254,197,164,218, 95,108,122,189, 8,232,217, 12,253,102, 5, 72,161, 82,236,248, 93, 6, 73, 23, 47, 73,232, -152, 36, 15,148, 25,209, 25,201,100,236, 57, 49, 32, 41, 1,157, 76,118,158, 85,118, 43,138,214,148, 54,209,101, 22,201, 34,232, - 22, 71,222,200,100, 85,170,164,169,174,172,182,158,203, 12, 51,227, 88,186,196, 98, 86, 87, 80,244, 75,117,127,169, 32, 20,175, -145,130,111, 67,177,235,107,120, 77, 19, 69,110, 26, 2,138,166,207, 70, 5, 40, 55,205,130,151,189,182,106,150,189, 13,155, 97, - 76,203,237, 77,179,164,108,229,113,154,229, 73,130, 37, 64,119, 87,202, 44,232,179,179,126,144,216,243,145, 21, 1,253,203, 91, -124,102,233,194,112,151, 92,146,158, 85, 87,107, 79, 65,122,220,119,160,214,179, 25,189,231,116,221,211,121,240,212,208, 37, 9, -157,152,205,212,130,241,108,104, 1, 57,137,156, 28,170,147,112, 13,187, 48,179,102,163, 36, 64, 79,131, 31,217,236,219,184,140, - 95, 34, 7,234, 83,136, 99, 8, 19,119,103,184,252, 70,156, 45,150, 14,161,219,181,199, 26,199,246,125, 69, 89,167, 55,229,216, - 4,173,243,178,184,147,137,221,206,132, 22, 96,211,192, 33,118,218,243,209,108, 46,233,202,108,226,116,232,157,158,189, 82,181, -152, 46, 75,242, 89,122, 97,242, 18, 78,236,251,132, 67, 11,234,209,116,225, 1,159,185, 64,149, 82, 40,165,230, 64,158, 5,244, -226,239, 55,226,194,189, 25,141,115, 47, 52, 45, 95, 6,230, 69,170,253,102,222,240, 26, 97,207, 11,232, 5, 3, 59,183,174,245, -188,214,167, 82, 58,189,168,113, 94,240, 93, 79,129,191,148, 38,206,208,248,153,187, 32,231,158,215,164,215, 94,151, 97, 21,125, -217,161,189,224,204,210,190, 76, 13,245, 94,212, 88,146,229,198,186, 54, 89,183, 89,241,152,106, 51, 81,179,250,190,170, 0,249, - 90, 12,101,218,128,107, 85,240, 80, 23,148,212,189,166,137, 1,128,230, 0,160,170, 68, 65, 3,160, 27,170, 85,229,138, 94,233, - 41,160,139, 49,196,226,179,189,126,144, 73,103, 80,144,188,254,171,145,108,172,154,173,251,215,253,174,110, 60,108,158,169,167, - 90,229,209,196,209,207, 93,240,157, 77,171, 56, 15, 84,201,216, 88, 24,167,115,158,132,136, 78,108,115, 92, 28, 58, 25, 89,237, - 0, 86,205, 3, 6, 15,225,205,175,190,151,219,110,191, 29,237,119,173,247, 57, 10, 17,205, 51,103, 47,241,137, 47, 60,131,118, - 29, 59,131,193, 26,111,124,221,157, 28,218,191,102, 51, 90,156,164,170, 54, 60,113,234,121,158, 56,249, 28, 90,199, 22,164, 17, -122,189, 14,175,190,251, 54,158, 60,117,134,221,189,145,235, 32,114, 14,114, 81,196, 61,119, 28,103,163,115,152, 79, 61,250,153, -133, 26, 94, 42, 4,163, 99, 72,166, 11,165, 61,223, 7,213,113, 96,238, 45,219,216,213, 1,131, 97,110,185, 74, 42, 23,155,132, -238,188,184, 32, 68, 39,153,115, 95,157,117, 22, 1,189,140,162,255,171, 4,232, 55, 18,240,203,178,242, 23,202,149, 41,251,136, -148,199,174,215,101,160,250,248, 58, 1, 34, 60,195,220, 24,200,100,178,235,162,102,246,124,238, 58,163, 44,151,205,148,139,212, -187, 41,201,232, 41,208,232,101, 77, 94, 34,229, 53,114,211,132, 40,178,220,152, 87, 22, 24,212,233,167,103, 65,166, 76,172,164, -238,117,171, 6, 22,117,153,103,235,109, 87,204,142, 91, 3,116,141,146,219, 42,122,240, 77,127,107, 82,179,107, 83,226,104, 42, - 27,152, 6,187, 85, 83,103,221,106,150,181,221,139,215,138,118,255, 99,140, 48, 92,223, 98,103,176, 31,212,234,166, 45,101, 61, - 52,230, 5,214,137, 95, 21,216,253, 27,243,182,122, 97, 19, 42,122, 81, 35, 87,222,226, 71,212, 98,174, 90, 10, 42, 17,105, 70, -156,218,160,234,216,130, 26, 0, 65,134, 58, 87,120, 65,151,255,236, 93,111,226, 93,111,124, 21,145, 94,168, 98, 29,220,232,242, -151, 79, 60,203,247, 61,125, 22, 29,197,128,230,150, 99, 71,249,135,223,249,245,236, 95, 95,155,223,246,218, 24, 14,109, 13,120, -239,159,127,138, 31,255,249,247, 58, 80, 55, 16, 71, 28, 62,180,197, 63,254,187,223,192, 79,254,219,223,224, 83, 23,206,131,239, - 45, 84,239, 70, 99,254,243,247,188,133,251,239, 56,206,119,127,226,209, 66,241, 42, 99,157, 42, 17,120,227, 69, 16,163,242, 62, -104,237, 64,200,100,238, 46,167, 11, 16,167,230, 55,145,253,192, 90,215, 84,191,150,247,155,189, 48, 68,100, 94,131,191,222,250, -251, 11, 77, 93,221, 72, 41,215, 50,177,152, 85, 64,253, 70,206,207,143, 61,159,237,160, 79,215,132,120, 73,130, 66, 91, 25,215, - 44,224,102,128, 61,107,181,170, 75,168,122, 50,217,139,106,104,148,171, 27, 1,203,102,194, 89,251,212, 50,225,150, 42,154, 61, -109,224,171,107,124, 43, 51,100, 41,243,147,175, 3,239, 54,180,186,180,160,200,169, 1,211,182, 65,193,146, 34,156, 89, 49,187, -174, 97, 31,218,122,153,215, 1,107, 27,199,186,107, 57,191,173,152,132,166, 30,130, 26,151, 53,106,148,226,150,116,255, 13,140, -187,107, 92,217, 56,132,241, 61,107,181,189,106,206,234,154,228,178,205,114, 55,210, 38,245,165, 71,191, 47,133,161,169,145,120, -178, 48, 55, 73, 51,212,180,142, 46,197,214, 25, 93,248,166, 51,210,177,169,208,126, 26, 8,248, 62, 97, 2,255,244,215, 62, 64, -239,125,159,195,120, 29,203,122, 39,154,239,251,234, 87,243,186, 19,135, 28, 59, 16,131, 47,244,122,107,116,130,128, 31,252,149, - 15,242,248,153, 43,142,241, 55,252,228,127,249,118, 6,253,158,205,164,193,210,241, 70,240,148,176,181,214,199,247, 82,102, 64, -114,119,228, 90,191,199,198,250,192, 1,182,191,176,107, 77,129, 93,107, 71,239,103, 62,107, 78, 27, 85, 90, 46,250, 25, 80,159, -159, 15, 50,178,186,122,165,238,205, 34,152, 25, 99,230, 52,253,252,240,181,158, 63, 87,236,162,127, 41, 3,245,170, 32, 94,252, -253, 90, 59, 91,111,164,155, 27, 88, 3,158, 61,191, 67, 79,175,209, 49, 49,162,103,139,155, 51, 99,153,106, 10, 29,232, 89,160, -215, 25, 16,205,214,194,179, 58,241, 34, 21,198, 56, 5,196, 45,130, 95,174, 17,175,217,168,175,116, 33, 79,193,189,106,126, 93, - 42, 0,126,149,206,118,105, 73, 13, 55,102,162,230,218,199,226, 52,237, 68, 86,234, 40,240, 58,250,123, 21,208,109,229,206,214, -146, 9, 88,197, 1,174,244,120,218,104,192,215, 0,122,118, 14, 61,251,111,105,201,192, 64,228,119,216,222, 56,200,180, 99, 27, -169,191, 92,231,210,111, 34,168, 23,239,134, 84, 73, 35, 41, 95, 1, 74,249,192,162,209,114, 90, 7,119, 93,246, 94, 7, 58, 61, - 34,237, 19,143, 34, 16,155,101, 71,137,102, 56,177, 20, 58, 94, 23,188, 4, 60, 1,191,139,231,121, 92, 29,135,236, 14, 67,183, -242,105, 38, 97, 66, 47,181, 87,141,245, 98, 94, 71,130,204,113,100, 7,131,212,130,109, 64,217,134,186, 36, 94,252,109,222,177, -145, 44, 15,252,178,252,241, 91, 1,130,105,253,199,149,193, 39, 11,112, 69, 10,190, 10,212,205, 75,196,154,176,238,185, 34, 85, - 86, 71,171, 87,141,166,189,144, 29,252,197,217,245,153,242,184, 26, 88,149, 57, 79, 39, 64, 60, 23,164,201, 82,217,170, 40, 56, -147, 81, 94,147,204,223, 74, 77,115, 50,139,166, 42, 62,223, 48,187,101,138,116,126,209,126, 84, 26,168,126,150,235,230, 57, 74, -191, 48, 10,215,228,236, 86, 22, 24, 20,129, 81, 10,159,197, 52, 80,234,109, 44, 92,235, 70,209,178, 27,104,218,141,113, 65,181, - 43, 92,171,185,116,211,158,198,215,101, 75,117, 27, 0,167,125, 15, 65, 83,163, 93,221,254,171,244,231,179,128, 94, 74,207,155, -252,251,105,241,217, 93, 63,192,104,176,177, 74,252,185,210, 26,250, 82, 89, 23, 95, 0, 80,111,135, 82,146, 41,226,149,158,152, -121,177,205,209,246,202, 7,175,131,223, 29,240,183,222,243, 32,175,184,235, 86,235,104, 6,232,196,240, 21,247, 30,227,234,112, -230, 2, 0, 31,124,227,244,216, 5, 53,183,192,178,217,179,164,251, 85, 1,120, 58, 77, 85,193,243, 22, 0,158,254,204,211, 36, -223,189,198, 61,143, 87, 35,213,106,234, 47,138, 23,232, 66, 88, 85,229,172, 14,200,235,178,247,155, 61, 62, 87, 6,198,233,163, - 76,209, 45,219,173,126,173, 2, 49, 47,214, 99,226,249, 92, 13,250, 4, 58, 98, 35, 30, 35, 36,249, 88, 55, 51,199,158,163,181, - 51, 0,150,206,179, 23, 37, 88,139,120,157,186,195,101,187,199, 77, 5, 0, 23, 13, 95,202,169,202,234, 88,189, 8,190,170, 98, -241,175,181, 96,205,184, 4, 22, 71,183,132,102, 31,239, 85, 66,228, 74,253,244,146, 99,214,109, 65,180,140,158, 54,205, 37,129, - 82, 27, 90, 83,109,180, 82, 10,180,105,179,165,169,215,188, 47, 59,190,186,160,166,169,156,210, 52, 2,103,106, 2,153, 82, 26, -190,196,118,213, 44, 53,212, 9,163,254, 38,187,107,251, 73,148,127,221, 25,250, 95,181, 57,117,255,165,112, 16,205, 39, 76,230, -118,165,221, 78,135,191,249,182, 7, 80,126,135,207,159,185, 60,183, 12,125,226,204,101, 30,126,234, 60, 73,218, 17,110,244, 50, -255, 37,101,233,179,228,211,160,165,187, 67,150,195,105,218,211,143, 47,198,197,112, 35,237, 71,139,191, 55,101,239,117,127, 43, -163,187,179,207, 85,209,225, 85,160, 94,172,139, 87, 53,254,189,144,179,241,215,115,254, 83, 79,250, 61,191,131,111,214,240,140, -198, 75, 38,136,209, 22,188, 77,166, 59,163, 0,220, 69,222, 89,151,217,182,102,232,239, 98, 23,124,221, 10, 93,108,168, 43, 74, -210, 10,203, 29,209, 82, 65,235,230, 74, 5, 53,111,219,100, 20, 83,150, 29, 22, 75, 5,109, 26,232,234,156,202,114, 1,194, 10, -146,171,171,102,188,166, 5,168,151, 81,211,141,115,232,197,215,149,188,111,173,231,121, 3,160, 47, 5, 0, 53, 12, 64,217,249, -172,115,147, 43,243,160, 55,166,220,161,109,177,157,189, 73,236,248,218,126, 66,191,123,195,214,211,178,123,250,165, 90, 87,247, -121, 73, 63,210,244,100,209,133, 46,110, 12,238,215, 63,252, 56,191,249,161, 39, 50, 28,162,155, 63, 55,137, 27, 51,115,205,107, -198, 88,160, 79,235,221, 70,219, 30, 51,165, 51, 93,229,139, 70, 55, 67,102,132, 77,101,190, 52, 29, 47, 70,240,116,236,230,215, -147,188,125,236,139, 8,230, 55,227,253,202,230,179,171, 64, 62, 91,143, 47,130,115,241,226,111,250,123,155,191,181,161,210, 95, - 12, 64,191, 17,223, 87, 44,138, 29,191,135,111, 52,126,152,208, 79,166, 57, 26, 62,205,174,139,174,100, 74,242, 32,156,102,232, -170, 72,133,202,178,176,203,188, 2, 37,245, 14,107, 38, 35, 73,155,163,213, 91,100,191,243, 91, 89,154, 1,182,236, 24,154,106, -241, 84, 0,205, 53, 73,158,182,152,205,110,218,191, 94, 49, 40, 41,221,175,105, 14, 98,184,134,215, 54,190,255,138, 61, 5, 85, -245,240, 58,230,162,178,182,110,150,155,222,180, 41, 47, 57,232, 76,118, 46,198, 16,171,128,157,141,131,140,187,107, 55, 68,171, -187,169,228,247,255,115,250,253, 26, 22,199,249,156,120, 58,218,101,199,229, 20,134,131, 27, 3,142, 29,220,180, 54,167, 8, 34, -134,209,222,144, 43, 87,119,156,131,156,245,124, 87, 98,184,101,255, 26,163,105,108, 23,163, 36, 97,223, 90,135,120,226,102,204, -147,208,205,130,219, 25,115, 79,112,239,227,116,231,211,101, 35,156, 32, 36,120, 96,231,196,117,184,232,210, 55, 95,126,128,126, - 45, 64, 87, 39,216, 82,150, 69,167,192, 95, 55, 46,114,173, 64,125, 51, 63,231, 11,145,201,135,202,227,106,208,199,215, 6,209, -154,158, 9,151, 80,174,168,201,110, 10, 51,233, 66,222,176,133, 18, 96,207,102,182,154,114,141,247, 34,120, 23,155,184,148, 84, - 11,195,212,101,238,243,109,165, 58,235,175, 5,188,138,140,188, 45,205,110,234,104, 2, 26,252,191, 27,222,167,205, 8, 92,155, - 26,123,211,246,171,138,186,180, 10, 40, 76, 59, 89,218,149,196,104, 10,199,213, 22,208,113,128,174,107, 25, 2, 27,229,198,226, -177,187,126,128,225, 96,203, 26, 95,241,229,243, 88, 37,128,184,201,160, 46,185, 78, 21,145, 50, 42,187, 97, 0,101, 94, 88, 73, - 32,137, 72,194, 41,163,201,148, 31,248,154,215,241,183,223,254, 0,233, 87,215,239,122,252,209, 67,143,243, 79,127,241,119,136, -157,240,204,108,178, 71, 20, 70,252,212,183,191, 19,173,221, 72, 27, 9,119, 28,220,199,111,124,224,227, 86,226, 53,157, 49,143, - 66,244,108,194,238,112, 68, 50, 29, 57,221,121,127,113,124, 73,200,120, 60, 98,119, 52,180,175, 49,203,217,122,245, 98, 45,139, - 20,171,108,101, 41,243,162,124, 17, 47,158,155,177,143, 54, 25,119,155,247,191,145,243,241, 47, 6,160,175,114,235, 76, 85,192, -149, 96,128,175, 19, 36,222,163,107,162,220, 37,162,138,217, 57,121, 87,181, 52,147, 41, 74,184,230,182,203, 80,234, 82, 18, 40, - 84,213,170,165, 36,123, 47,163, 89, 21,249,227,200,214,212,231,153,150, 41, 25,135,147,188, 4,171, 72,190,206,111,202,212,235, - 76, 73,179,158, 41,207,246,115,222,245, 21, 96,164, 91, 6, 8, 85, 84,189, 94,129,150,207, 6, 2,117,224, 45,101,116,189,169, -102, 9,218, 56,211,181,153, 51, 47, 99, 1,234,220,247,202,252,205,169, 1,242,178,207, 85,236,118,207, 6, 27,185,226,170,254, -255,218,187,210,222,198,145, 43, 88,175, 73, 89,167,175,241, 96,147,193, 34,249, 16, 96,147,252,255,191,147,201, 34,153, 96,129, - 32,193,102,214,150,109,201, 34,217, 47, 31,154, 71,179,217, 23,101,137,162,108, 11, 48, 96, 73, 60, 69,178,171,235, 29, 85, 12, - 22,132,231,197, 13,238, 87,159, 74,213,184, 97,198,196, 33, 11,230, 98,129,253, 21,218,239,193, 35, 64, 93,185, 94,142, 16, 68, - 90, 69,185,222,159,238,186,253, 73, 40, 53,186,217, 21,176,184, 6,150,215,160,229, 29,126,250,203,159,241,229,247, 95, 26,133, - 58,150, 72, 81,224, 95,255,254, 15,254,246,243, 55,112,161,100, 97, 47,230, 11,252,245, 79,127,192,237,205,117, 89,185,174,194, -232, 84,228,248,250,207,111,248,229,219, 47,224,226,165,238,143,159,164, 9,126,250,227, 23,252,252,143,111,216,110,158,203,118, - 60, 81,199, 59,127,252,241, 71,204,103, 23,248,250,245,239, 74,229,237,229, 81,201,198, 22, 47, 32,153, 53,189,250, 85, 63,100, - 85, 69,175,183,182,181,116, 50, 73,235, 69,103,195,196,186,146,210,149, 8,249, 80, 30,186,189,106,172,235, 13,109, 24,115, 42, -150,222, 90,142, 25,151,249, 14, 63,188,172,113,149, 61, 98,130,188,214,134, 23, 0,146, 42,196,110, 88,178, 10, 24,250,239,150, - 86, 54, 50,150, 69,247,238,107,205,205,109,235, 90, 53,228,253,205, 31,214, 1, 55,230, 87,113,201,217,194, 18, 77, 48, 57, 65, - 52,123,143, 8,213,119, 64,142, 35,195,239, 46, 80,231, 8, 16, 13,132,215, 99,216,187,107, 34,225, 18, 4,114, 29,191,236,115, -204,236, 14,195,187, 92,219,116,217, 87,127, 65, 28,106,229,184,205,252, 10,191, 94,253, 14,155,233,220, 45,200,176,231, 24, 21, - 43, 19, 61, 4,176,159, 22,212,181, 62,237, 26,204,107,225, 25,210, 64,189,128,215, 35, 45,189, 80,230, 43,243,107,229, 87, 62, -191, 82,154,234,147, 5, 48,153, 52,250,243,217,182,100,215,101, 72,156,132,234, 67, 79, 74, 61,119, 34,197,172,179,173, 2,226, -124,163,216,182, 44,154, 9, 4,168,148,124, 45,154,225, 78, 36,170, 42,190,106, 93, 3, 41,213,184,205, 26,120,121, 40,195,242, -185,234,117,175,227,135,218,173, 39, 68, 51, 42,234,213, 70,245,212, 84,118,139,250,170,201, 80,169,235,174,142,241,184,121,251, - 67, 22,215,157, 2,160,207, 14,172, 35,151, 81,108,151,113,157,109,241,121,187,198,101,254,132, 11, 20, 53,128, 87, 6, 48, 68, -109, 32, 39,116,223,195,246, 94, 7,114,234,130, 61,140,117,125,128, 78,150,121, 61,115,119, 61, 19,164,217,179, 13,159, 69,171, - 77,156,198,182,221,190, 64, 29, 11,252,204,225, 16,181, 19,232, 35,122,216,125, 96,220,215, 72,198, 21,102,239,179,223,144,132, - 44,123, 66,237,214,240,189,135,193,155, 57,244, 14,107, 47,175,180,100,224,101,182,194,247,203, 31,240, 52, 91,129,197, 97,131, -238,177,114,209, 67,129,122,204,126,142, 24,126,215, 66,210,178,208, 88,170, 81,221, 19,122,172,138, 76,233,157, 87,160, 90,236, -128,139,141,210,148, 79, 82, 5,136,149, 52,235, 78,233,197, 43,102,155,170, 62,244,244,162,140,229, 73,165,201,158,239, 26,141, -118,214, 20,177, 43,141,246,250,120,185,221,194, 86, 93,216, 66, 2,187, 45,104,183, 86,251,147,185,241,132, 26,195, 72, 85,160, - 39,141,207,171, 17,207,245,248, 85, 61,239, 84,182,214, 25,185,251,183,232, 89, 62,228,185,156, 75, 87,130, 98, 76,132,135,116, - 10, 92,168, 73,240,101,177,193, 4,178,150,135,101, 2,146,202,154, 85, 67, 65, 51, 71,174,139,215, 8, 11,224,153, 0,108,147, - 41, 37,242,131, 93,199, 56,198, 0, 15,159,253, 43, 28,128,238,202,207,219, 42,183, 93,150,157, 54,182, 47, 29,159,219,158, 74, -218, 55, 76,237, 26, 26,247,140, 28,244, 21,196,177, 85,193,199, 78, 0,250, 8,211, 0,241, 53, 5, 50,112, 28, 58,160,179,179, -248, 78,221,136,217,100,129,251,229,103, 60,207,150, 7, 7,244,115,125, 29,191, 80,174, 19,135,233, 57,155, 97,169, 88,245,115, - 14,122,121, 4, 61,165,144, 73, 10, 18, 41, 68,146,128,165,132,172, 28,205,100,209,152,156,144,210, 92,167,218, 58, 74,130, 11, -169, 88,120,221,246,214, 0, 44,149,125,233,220, 58, 70, 1, 74, 68, 83,109, 44, 11,101,137,138, 50,159,206,145, 89, 55, 27,120, -199,204,234,100,209, 24,193,240, 56,111,216,177,177,244,115,249, 13,250, 2,123, 65, 2, 15,233, 20, 66, 46, 65,146,177,146, 91, - 76,168,116,228,227,134,169, 23, 80, 0,175,231,201,171, 38,142,130,236,197,115,132,118, 75, 16,105, 26,242,194, 6,252,176,231, -208,125, 64,225,146,147,245,125, 15,248, 91,163, 98,216,177,236,201,196,109,108, 52,212,171,222,203, 36,134,227,142,219, 12, 69, -247, 1,240, 16,192,198, 12,215,236,136, 40, 4,143, 57, 20,150,231,238,181, 49, 1, 63, 78,255,157,177,155,204,113,127,121,135, -199,249, 37, 10,145,244,118, 95, 59, 36, 75, 31,234, 21, 19, 13, 72,207, 98,144, 99, 86,160, 93,100,224,154, 74, 52,213,141,196, - 12,102,217,153, 2, 83, 29, 51, 36, 7, 0,235,119, 83,233, 4, 39,219, 27,160, 92,148,163, 32,154,176,250,144, 23,154,203,230, - 35,210, 4,123, 70,114,157, 78, 41,175, 58, 20, 75, 31, 75,177, 29, 1,200, 41,193,247,116,174, 38,150, 25,176,146, 91,164, 36, - 27, 75, 86, 52, 26, 75,130, 45,197,114, 58,139,103, 40, 81,166, 14, 72, 18, 10,230,186, 0,207,100,179,100, 97,155,186,184,140, -233,212,102, 51,136,177, 58,176,193, 93,113,111, 99,238,174, 9,129,201,186,125,235, 89,193,202, 83,116, 22,203,142,125,140,124, -223,109,198,134,213, 67,109,102,125,182,199, 30,153, 15, 14,236,203,149, 39,215, 11,221, 90,197,113,218,186,210, 88,182,203,228, - 9, 89, 58,197,195,234, 78, 85,186, 39,226,224,128, 94, 1,104,223,177, 98, 12, 45,110,233, 41, 6,213, 87,205, 82, 42,101, 51, - 72,228, 49,179,206, 96,136,191,187,109,125, 3,178, 52,150,161, 74,137,110,232, 70, 9, 86,154,236,222,184,231,192,215,106,168, -217,235, 41, 64,186,239,178, 49, 15,254,225, 12, 98,128, 76, 8,124,159,204,213, 7, 25, 99, 41, 95,144, 66,214, 22,173, 40, 85, -215,244, 62,116,189, 95, 93,177,116,106, 13,194,221,219,154,234,185, 45, 89,190, 87,187,105,134,121,165,102,199,214, 71,195, 97, -220, 22,118,119,115,125, 76, 93,176,108,233,201,179, 61,239,206,214, 29,135,101, 97,109,204, 63,228, 80, 23, 2,251,160,246, 60, -135, 65,216, 54, 73,217,199, 73,206,183,158,171,133, 45,228,178,230, 3,121,155, 58,156,190,140, 9,240,237,109,171, 72, 82,150, -206,240,176,250,140,135,229, 13,242, 36,193,123, 10,186,199, 84,219,167, 7, 31,128,181,170,221,183,242,195,157, 50, 4,115,140, - 93,159,155,202,221, 88, 1,125,232,243,168, 90, 0,119, 66,224,127,147, 25, 64, 4,222, 1, 75,185, 69,106,180, 70, 86, 41, 35, - 97, 56,188, 1, 84,255, 95,104,192,175, 27,174,216,152, 25, 25, 33,125,110,193,186,218,110, 35, 19,203, 45,160, 13,246,173, 35, - 92,208, 86, 47,195, 22, 32,102, 59, 43,239,128,142, 17,197, 11,249,130,247,118, 85,235, 1,220,174,200, 64,236, 62, 25,251, 87, -222,235,235, 19,199,133,241, 99,207,217, 6,216,182,109, 86, 19,207, 22, 99,103,251,241,179,214, 49,149,165, 51,172, 87,119, 88, - 47,175,203,214, 53, 62,187, 49,235,172,152,122, 3,230,231, 59,119,242,233,140,159,118,144,231,179,189, 81,143,185,207, 99,232, - 50,159, 34, 60, 31,189,191,242, 47, 43,205, 95, 0, 6, 12, 96,175,236, 86, 97, 0,123,149,175, 20,132,142, 37,170,208, 30, 95, - 51,103,174, 63,218, 68, 49, 76,156, 90,233, 0,214,226,254,100, 97,188,168, 93, 28,212, 18,194,113,175, 75, 11, 75, 37,199,119, - 38,179, 54, 67,243, 18,113,138,116,182,225,205,198, 91,124, 96,108,157,100,176,199, 59,190, 7,112,134,196,112,156,197,144, 28, -191, 95, 54,214,115,133,215, 9, 1, 45,119, 99, 18, 33,225,104, 83,107,253,223,244, 37,102,201, 20, 15,203, 59,172, 87,199, 7, -244,125,243,233, 99, 8,193, 31,169, 80,238,124, 89,250,216, 38, 22,141, 92,216,113, 68, 97,142,189,141,177,228,221,199,108, 23, -219,119, 18, 65, 37, 13,223,145, 10,197, 51, 8,188, 35, 44,229, 22, 19,150,109,203,213,242,141, 94, 24, 44,245,124,187, 1,238, -157, 71,216,130,120,181,215, 18,133, 1, 65,229, 71,169, 94,222, 30,190,182, 3,190,175,106,157, 76, 22, 87,127,199,206,150,182, - 88, 75, 81, 19,124,173,188,165, 7, 0,251,228, 98, 25, 61, 10,222,246, 96,246, 54,198, 46, 57, 62, 58, 97,218,153,154, 32,237, - 2,111, 23,115,119,229,201,237,197,112, 84, 79,248,138,228, 2,235,213,103, 60,172,110,144, 39,233,112,227,239,123,101,234,111, -169, 37,234, 8,183,136, 6,206,162,201,141,215, 45,106,129,222,115, 18, 7,153, 40,157, 2,208,143,197,164, 79, 13,254,167,186, -223,117, 9, 94, 41,149, 96, 81, 70, 2,191, 77,102,170,128, 52, 35, 44,243,103,164, 37,176,233,128,221,248,172, 51, 8,212,106, -125, 35,109,160, 15,157,154,205,197,205,214,191,110, 3, 84,114,160,116, 55,244, 78, 22, 80, 99, 11,248,216,101,108,216,185, 86, -159,251, 54, 76, 85,162,194,242, 28,191, 78,159,188, 55, 16, 9,204,175, 16,168,241, 85,178,251,206,207,103,196, 98, 78, 44, 92, - 19, 27,201, 84, 95,201, 44,153,225,113,117,135,251,213, 45,178, 52, 61,122, 28,248,221,129,122,191, 19,166, 48,123,175,149,231, - 52, 81, 74,135, 73,202,177, 46,222,241,114,231,164, 89,199,150,182,174,117, 12,139,180,182, 56,219,254,181,226,184,142, 56,205, -121, 0,250, 80,204,254, 61,176,121,115,155,122,152, 47, 35,129,223,210, 41, 36, 8,159, 1,172,242, 13, 84,119,123, 41, 37,139, -182,107,155, 14,202, 2,109,112,183,105,203,235,196,201, 10,220, 6,171,183,249,161, 87,239,133, 6, 54, 29,102, 78,237,101,219, -236,156, 90,199,238, 26,109,216, 49,238, 56,101,222, 35, 61,194, 67,159,155,140,152, 44, 26,230,174,234,241,152, 72, 65,159,201, -128, 14,164, 49,128, 94,255, 14,154, 88,144, 77, 24,166, 83,156,199,118,203, 86,155,199,185,201,218, 37,124,197,126, 10,208, 37, - 8,187,201,162,204,161, 95, 29, 92,254,213, 27, 9,123,239, 76,189,255, 99, 97, 94, 69, 30, 60, 98, 63, 76,238,188, 18,145, 41, - 0,153,245, 28,252,249,213,197,134,167,150,143, 61,230,126, 78, 37, 25, 59,166,201, 70, 11,216, 69,130,251,146,177, 75, 8, 92, -230,207,152,112, 81, 43, 17,215,193, 34,195,190,181,202,107,234,224,110,230,213,107,224,181,160, 83,235, 35,118, 3,187,249,222, - 22, 22, 55,189,210,171, 99,215,245,233,125, 42,113, 14, 17,101, 77, 91,156, 95, 13,222, 78, 48,117, 48, 86,223,186,125,152,125, - 84,107, 28, 71,108,223,245,191,158,103,231,136, 10,120,118, 91,192,178,171,234,157,219,181, 12,210,114,206,140,138,161, 11,108, -103,151,120, 88,126,194,211,124,133, 98, 32,131,150,183, 16,117, 78,223,219, 9, 55, 15,207, 56,140,239,199, 30,154, 30, 91, 47, -250,177,192, 63,246,126, 24,131, 98,157,206, 38, 42, 80, 23, 0, 10, 34,220, 79,166, 40, 64, 40, 72,224, 58,127,194,133,204, 91, -230, 37,162,108, 88, 23, 37,216, 65, 3, 80,161, 1,168,208,208,213,204,131,215,173,115, 54, 22,103,233,108, 99, 75,113, 93,232, -215,209, 65, 94,154, 17, 3,184, 5,108,124,197,103, 21, 96, 0,238,136, 64, 8, 20,129,112, 88, 60,212, 23,175,131, 92,175,137, - 3,220,134, 40,240, 48,102,239,100,133,253,162, 84, 34,172, 98, 0, 0, 3,152, 73, 68, 65, 84, 50, 46, 73, 92, 25, 88, 70, 90, -206,211,101,216,194, 70, 12, 67, 82,130,231,217, 21, 30, 86,119,216,204, 23,144, 52, 12,160, 31, 74,108,102,136, 98, 57,223, 62, - 70,238,167,254,182,103,100,111, 17,208,207,245,122,156,138,205,239, 91, 61, 95,231,213, 59,160, 70, 88,167, 83, 72, 8, 20, 36, -112,147, 61,225, 66,238, 90, 97,213,122,184,165, 70,206, 72,106, 64, 13,237,127,226,110,104,156, 53,118,207,100, 7, 2,211,120, -208,180,103,101,116, 77, 98, 76,128, 53,193, 49, 34,153,215,102,254, 86, 80,236,230,235,101, 15, 6,239, 19,197,244,245,117,219, - 22,222, 87,128,198,199,234,163,213,230,184,159, 34, 93,204, 57,112,128,177,135,242,245, 12,134, 20, 41,158,230,215, 88,175, 62, - 97, 59, 93, 52, 98, 99, 31, 12,253,240, 76,253, 45,156,244,152, 76,237,199,254,123,158,123,200,253,208,172,250, 24,199,121, 8, - 69, 63, 33, 68,247,158, 38,224, 49, 77, 33,197, 10,146, 4,174,119,143,152,201, 23, 36,229, 32, 90,104, 76, 88, 80,151, 93, 85, -154,242,186,102,188, 25, 90,215,217, 52,161,180, 54, 64, 91,240,166,197, 30, 29,133,120,210, 1,214, 46,182,237, 83,143, 99, 99, - 57,233,217, 86, 23,232,217,202,118, 67,105,193, 62,125,220, 33,134, 30,220, 93, 68,126,221, 27,101,136,156,140,248,129,215,189, - 31,159, 39, 58,195,149, 90, 40, 19, 35, 76,200,211, 41, 30, 23,183, 88,175,110,177,155, 76, 7,235,140,174, 34, 95,135,238,104, - 57, 21, 91, 79,135, 24,124,198, 4, 82, 31, 12, 61,238,181,143, 68,226,123,255,205, 78,113,108, 21, 99, 55, 31,110, 34,194, 38, - 73,241, 95, 44,145, 83,130,219,221, 26,243, 98,139,164,130, 48, 2, 18, 48,100, 89,253, 86,169,205,233,109,103,100, 58,172,233, -108,222, 6,238,212,245,111,239,128, 54,183, 25,255,107,133, 18,163, 66,228, 81,235,215,178, 57, 94,201,216,152,109,135, 24,117, -252, 49,189,174, 88,206,181,111, 23,240,179, 5,204,125, 26,238, 78, 80,135,225,119,238,140, 42,168,208, 17, 19, 33,155, 46,176, - 94,125,194,122,113,131, 34, 73, 6,127,206,206, 17,227,246, 14,191,127,180,171,189,175,215, 91, 9,185,159,178,143,124,168,227, -179, 85,194,155,175,151, 36,193,175, 52, 71, 78, 2,183, 89,130,101,190, 65,138, 66, 57,254, 86, 62,236,220,150, 81,173,197,104, -202,247, 18,106, 57,169, 49,115,178,176,238, 26,124, 12,123, 87,159, 78,187, 94, 8,167,171,214,233,192,111, 3, 30, 97, 97,201, -194,179,188,203, 48,166, 5,156,212,254, 17, 66,147, 13,179,178,189, 99,110,211, 67, 58,182,179, 76, 36, 43,247,130, 47,187,211, - 16,210,195,200,109,215,200, 38,197,203,218,119,250,181,116,137,205,216, 36, 95,165, 72,176,153, 93, 97,189,250,132,231,217, 2, - 44,146, 55, 59,222, 13,245, 74, 63,192,252,109,220, 64,167, 48,103, 25, 27, 80,158, 2, 88,199,176, 95, 33, 84,208,219,204,177, +122, 35,104, 7, 30,124,163,246,175,169,215, 2,204, 70,154,206, 59,180, 93,135,147,147, 51,156,156,223, 65,211,180, 74, 23, 59, +192,183, 1,222, 7,196,216,171,133, 37, 3,251, 97, 15,129,195, 83, 33,188,252,232, 41,190,253,214,155,184,186,186, 68, 22,231, + 67,110, 86,205, 78,204,137, 72, 86,197, 69, 76,154, 54,199, 84, 92,141,138, 67, 22, 99,234,244, 37, 56, 92, 74,114, 16,132,216, +163,239,119,216, 3, 26,106,147, 98, 73,163, 3, 71,165,185,133,193,105, 0,165, 94,187,116, 58, 44, 74,202,216, 5,186, 6,169, +246,195, 85,156, 39,212,112, 70, 1,156, 43, 99, 23,154,249,146,209,196, 33, 45,191, 92,143, 1,196, 3,154, 36, 69,229, 79, 96, + 29, 35, 1,183,218,255,173, 29,208, 14, 69,112,135, 57,233, 50, 75, 90,171, 54,228,171, 64,246, 49, 43,161, 24, 65,185,250,223, +173,171,183,113, 26,188,130,178,247, 30,240, 26,242,147,197,115,200, 43,157, 24, 23,196, 32, 21, 99, 38,115,218, 60,111, 61,100, +112,116, 96, 19,135,214, 92,216,162, 61, 43,166, 29, 59,100,157, 98,175,129,111, 78,203,223,184,218,181, 2,118, 71,187,120, 43, + 22,150,138, 47,190, 9,216,103,194, 56,162, 67,170,126,137, 62, 63,232,216,171,231,162,133,247,129, 48, 93,149, 91, 27, 33, 72, + 57, 22, 5,129, 19,156, 8, 18,221,236, 1,255, 65,166,178, 45, 21, 17,225,163, 6,232, 7,243, 16,251, 33,119,206,186,116, 87, +223,156, 42,156,114, 84, 37,146,153,104, 14,156,163, 47,185, 28,186, 14,122,211, 75, 8,136,195,160,217,226, 34,213,154,144,222, +255,206, 19, 66, 67,230,172,166,157,117, 26,116, 37, 46, 27,202,133,224, 16, 2,208, 53, 14,193, 18,194,162,176,238,100, 11, 16, + 60, 16,188, 71,235, 61, 66, 6,252,148,215,137, 96, 29,136, 20, 55, 46,145,113,181,166,204,190,147, 30,254, 36, 4,159,122,211, + 2, 4, 52, 77,131, 38,167,169, 9, 77,104, 78,230,156,191,172, 62,215,142, 88, 85,209, 16,245,104,231, 65, 85,215, 76,165,128, + 17,241,112,174,177,200, 87, 20,250, 53,166,136,171,253, 14,137, 9, 62,180, 32,199,170,150,143,201, 12, 99,118, 32, 0, 77, 80, +149,252, 62,169, 39,128, 48,219,154,149, 7,152, 48,236,175,209,247,215,136,113, 15,239,160,174,117, 33, 32,116, 29,182, 39,103, + 56, 57, 59,195,118,123,170,249,234,156, 64,162,235,112,197,205,159, 71, 26,255,241, 16,241,210,187,143,240,242,221, 55,112,105, +128,126, 99,183, 72,152,132, 73,104, 90,215, 56,255, 85,179, 24, 26, 55, 18, 40, 31,126,170, 36, 23, 98,136, 83, 99, 29, 55,219, +112, 95, 86,193,235,207,181, 77, 59, 92, 95, 93, 96,159, 24,129, 8,206,192, 92,187,116,237,248, 36, 69, 80,220,129,120,152,132, +193,185, 74, 84,153,197,104,174, 58, 84, 39,191,205,139,192,137,125, 23,196, 38, 83,182, 3,197, 52, 4, 60, 1,142,105,103, 89, + 4,121, 69,148,247,108, 29,249,124,188, 33,152, 38,215,213, 43,236, 99,151, 78, 19,107, 86,154,253,124,114, 41, 3, 26, 65,156, + 10,245, 62,250,147,101, 67,166, 58,101, 47,119,238,228,171, 61,246,122, 31,223,192, 60, 7, 16,177,177, 78, 57,140,101, 62,182, +202,163,153, 73,160, 81,221,141,203,196, 78,230,160,115, 62, 54, 55,151,103, 4,229,155,254, 92,125, 12,185,225,243,214, 44, 90, +103,160, 78, 51, 64, 47,244,252, 66,183, 94, 95, 7,133,162, 55, 26,190, 86,213, 99,133,105,152,188,102, 89,163,225, 5, 13, 71, + 4, 97, 68,149,188,254,145,232,241,247, 27,216,195, 71, 25,208,235,139,169,115, 64,231, 9,141, 35, 4,203, 50,118,222,140, 82, + 68,195, 82, 32, 4, 97, 93,217,201,226, 51,192,188,213, 89, 76,104,227,204, 53,205,149,181, 16, 95, 34, 61, 45,252,197,147, 89, +207, 10, 98, 34, 36, 6, 98, 28,173, 93,125,227, 16, 26,135,182,117,240, 94, 41,239, 65, 0,136,215,244, 51, 82,122,188, 13,193, + 58,120,245, 69, 39,129, 41,243,221,232,193,109,105, 88,146,205, 91, 36,231, 71, 49,200,177,117,105, 70,237,147, 67,211,104, 74, + 92, 19,220,120, 8, 51,169,232, 76, 76, 89,158, 77,103, 68,247,235,201,155, 1,125,140, 72, 67, 62,180, 92, 85,200,104,108,172, +142, 6, 52, 8, 37,113,194,245,126,192,229,110,143,148, 8, 77,147, 16,189,250,190, 7,207, 24,134,168,185,246, 93,135,179,237, + 25,132,129,221,229, 85,153, 23,103,245, 27,167,132,148,122,164,216,195,147,233, 18, 90,143,166,235,176,217,158,161,219,158,160, +105,219, 66,147,170,239,126, 3, 97,193,158, 7, 83,122,235,247,247,238, 46,226,165,119, 30,226, 91,119,223,192,245,213,211,137, + 66,246, 24,253, 75,213, 97,193,214, 69,203, 66,216,179, 76,232,245, 98, 73, 2, 18, 42,170,245,250,112,171, 9,214, 58, 33, 43, + 63, 66,224, 1,216, 95,224, 58, 37,180,126,186, 83, 46,156,192, 60,192,165, 30, 33, 94,131, 36, 77, 15, 79, 26, 77, 66,202, 33, + 90, 9, 46, 93,253,111,128,165,173, 79,231,214,108,174,137, 66, 90,224, 45,185,137,139, 76,237, 91,167,239,221,114,143, 46,152, +219,126,202,140, 37,153,166,121,205,125,124,150,196,118, 53, 3,226,104,100, 70, 74,158,142, 27, 83, 14,107,183, 56,178,130,204, + 29,236, 76,141, 49,169,133, 74,183, 2,177,142, 40,230,152,117, 52,186,142,170,192, 46, 99,186,154,140, 65, 45, 82,137,229,106, + 55, 57,198,161, 49, 12, 14,132,114,135,171,103,132, 35,254,236, 88,223, 67,199, 12,228,230,192,207, 43,197,150,224,118,187,237, + 19,193, 93,253, 39, 77,157,225,178,145, 76, 13,238,199, 10,191, 12,230, 48, 49,158,163,233,215, 45,217,194,242, 10, 30,200, 76, + 8, 16, 36,149, 66,248,189, 20,181,189, 31,226,185,240, 81,161,219,143,125,127,158,128,141, 39,108, 28,161, 49, 26,173, 40, 88, +235,176,136,106,246,152,187, 38, 42,158,201, 10,128,158, 0, 10, 30,161,105, 32, 49, 90,134,183,133,151, 56,148,149,136, 20,173, + 58,103, 42,230, 32,128,174,131,133,198,161,105,117, 78, 23,163, 64, 56, 2,240,154,116,230, 29,124,112,104,130, 42,117,165,216, +181,146, 37,195,101, 15,117, 30,119, 92, 37,171,141, 43,147, 6, 71,104,156, 67,202,187,244,198, 50,132, 16, 20,128, 39, 25,207, +217,244,130, 75,236, 41, 85,157, 35,153, 19, 88, 26,212, 36,166, 28,225,102,218, 17,124,128, 39,130,112, 50, 55, 57,193,208,247, +184,186,186,194,254,186,215, 21, 50, 2, 98,138, 72, 4,180,185, 71,244, 45, 28, 5,192, 81, 9,118,201, 38, 56,217, 4,136,109, +245,135, 72,139,177,166,109,208,157,156, 96,179,217,160,237,182, 6,232, 78,131,113, 72,231,153, 66,100, 94,248,106, 18,178, 79, +130,215, 30, 62,193,215,222,124, 27,111,188,243, 46,118,251,107, 85,172,211,114,199, 40,107,244, 95,118,148,155,169,111,201, 4, +113,147,110,157, 5,236,108,122,152, 53, 6,130,242,247, 2,252, 52, 30,254, 82, 21, 3, 34,128,151,132, 83,185, 66, 28, 18,250, +212,168,167, 58,212,164,136,120,128, 79,123, 52, 50, 20, 17, 90, 13,230,101,142,137,218,177,173,132,133, 78,126,215,182, 46, 84, + 79,254,165, 74, 38,171, 61,233,165,242,120, 35, 28, 95, 3,162,122, 35,184, 56,170,151,247,180,158, 78,187,201,207,129, 14, 94, +215, 97, 40,107,253,239,179, 21, 38,146, 67, 22, 38,155,199, 16, 77,237, 58,137,166, 29,179, 21,184,174,240, 42,149, 87,129,125, +175, 92,146, 12,147,229, 35,216,158,186,101, 69,140, 62, 8,211, 52,181, 28,237, 60, 17,197, 85, 66, 73, 44, 20, 73, 7, 0, 42, +135,133,205,218,188,189,246, 80,199, 45, 59,120, 57, 34,184,227, 35,194,179, 53,149,252,188,147,207,151, 69, 41, 60,243,202, 26, +175, 59,204,213,192,205,213, 55,158, 11,132,197,245,187,133, 77, 72, 42,134, 90, 21, 11, 66, 40,244,187,188, 7,160,251,126,227, + 92,248,147, 10,232,207,242, 61, 53,166,124,239,108,199,148,114, 44,106,142, 6, 53,247, 52,146,185, 56, 71,242, 89, 96,135,156, +202,135,156, 35,180,222, 67,124, 6,147, 28,181,172,110,108, 9,149, 35, 91, 54,118,113, 4,223, 56,180, 27,143,174,245, 32,114, + 24, 6, 49, 7, 52, 77,105,107,136,225,130, 43,110, 94,204,217,111,222,124,225, 9, 32,226,178, 14,166,166, 34,250, 24, 41, 50, +250, 33, 98,136,154,119, 94,207, 83,117,149, 61, 32, 52, 29,154, 16,180, 48,193,184,186,231,170, 78, 84, 9, 75, 7,161, 84, 78, + 16,230,132, 52, 68,196,200,230, 45,175,165,178, 3,193,249,128,174,107,209,132,128,161,215,113, 68,140, 3,246,125,143,203,171, + 75, 12, 17,216,132, 78, 51,183,153, 65, 12,120, 4,120,175, 29, 55,113,128, 19, 96,191,187, 70, 26, 34,130,160,184,190, 41, 24, + 57,120, 19, 42, 54,141,195,230,228, 4, 39,167,103,104,154, 70,117, 1, 62,140, 80, 40,169,180,102, 33, 52, 8, 68,184,236, 7, +124,231,193, 67,124,237,181,215,241,214,163, 7,136, 49,233, 42,227,252,190,151,245,195,104,154,248, 41, 85, 33, 52, 3, 18, 17, +139, 73,149,209,113,140,170,156,106,210, 34, 47, 3, 29, 85,143, 41,227, 19,140, 6, 53, 0,182,162,116,251, 62,245, 72,228,198, +200, 89, 25,224, 68,133,131,168,192, 53,159, 92,206, 64,217, 21,112,151,178,182,182, 4,236,174,238,193, 43, 47, 77, 42,166, 68, +211,249,247,244,125,163,219,168,221,176, 20,183, 42, 71,254, 46,229,181,211, 65, 2,122,109,127, 74, 84,139, 21,243,150,193,248, + 53, 34, 85,105, 83, 41,216,243,107, 39,151,195,150,212,118,152, 18, 3,142, 65,196, 86,248,234,106,159,118,224,198, 84,113,206, + 78,208, 63,217,124, 4,212,128, 70,193, 61, 89,202, 33, 79, 86,216,166,190,239, 83, 23, 66, 89, 5, 70, 62, 34,126, 59,218, 53, +203,113,235,215, 99, 51,246,121,247,190, 56,167,191,165, 24,111,197,109,224,128,146, 39,193, 98, 56,111,253, 24,197,200,137, 14, + 25,135,165,162,156, 23, 5,136,211,207,245,182, 85, 83, 66,130, 62,196,224, 30, 62,202,128,158,223,214,214, 17,182,193,163, 11, + 14,141, 89, 63, 2,166,104,181, 27, 46, 31, 30,148,175, 44, 49, 95, 48,103,130, 33,219,207,101, 22, 53,238,240, 2,239, 9, 24, +108, 87,181, 18,214, 37,101,233, 70,225,134, 7, 66,231,208,157,116,104,131,131, 39,211,213, 37,157,149, 56, 8, 60, 49, 40,136, + 26,129,176,174,197, 9,233,172, 29,208,120,211, 44,156,163, 82, 96, 72,233,228, 7, 51,155, 25,108,206, 15,219, 89,103, 6,156, +107,208,110,182,104,219, 22,193,187,177, 51,178,195,109,244,128, 31,231,127,133, 66,180,128,148, 24, 35, 82, 44, 22, 53,240,214, +161,135,208,192,251, 6,109,240, 96,246, 72,146,208, 15, 3,118,251, 30,177, 31, 48, 36, 2,133, 8,199, 14,130,136,174,109,208, +144, 55,165,181, 67, 27, 26,236,247, 3, 98,191,211,153, 49,229,125, 98,221, 12, 64,210, 31,129,111, 8,219,109,139,237,201, 41, +218,174, 67, 19, 26, 5,123,162, 81, 77,156, 69, 79, 38,222,187,234, 7,124,235,157,135,248,195,215, 95,195,187,143, 30, 32,153, +143, 59,142,204,225, 14,160, 71, 42,119, 42,170,169, 64, 41,162,185,204,172, 19, 97, 4,101, 18, 11,120,177, 9, 57,229,241,139, +160, 56, 13, 83,182,231,173,158, 8, 83,149, 48, 17, 97, 43,140,150,212, 26,118, 60, 16,121,226,176, 86,154,209, 25, 5,143,217, + 44,189,246, 89,159,175,187, 29, 96,177,212,180,183,172,192,242, 82,111,189, 46,148,186,237,125, 75, 43, 12,202,234,107,205, 29, +189,140,243,235,236,233,224,179,173,111, 57, 63,198, 57, 57, 97,198, 66, 88, 33, 77, 78,253, 6, 18, 89, 94,186,208,120, 79, 36, +237,212, 83, 76,186, 70,154,216,254, 84, 29, 73, 74, 81,199, 70,153, 65,171,253, 4,176,150, 5,126, 72,123,243, 49, 21,247, 45, +231,222,107,243,239, 99,118,176,107,116,255, 77,157,253,154,136, 15, 56,110, 98, 51,181, 47, 94, 22,226, 97, 34,142,147,242,119, +135,155,237, 98, 23,231,253, 50, 23,239,233, 42, 42,222, 35, 48,126, 63,193,253, 35,237,253, 78,165, 83, 39,116,222,161,117, 70, + 21,187,220, 9,170,106,156,178,237,135, 35, 80,202, 51,196, 49,171, 80,215,221,242, 42, 25,149,140,110,135,220,149, 75,201, 53, + 79,163, 79,138,101, 66, 16,124,235,176, 57,105,208,118,141, 26, 47, 68, 70,146,160,124,189,168, 67,178,243,206,204,112,140,226, +102, 93,117,163,108, 90,147,213,202, 22,152, 80, 58, 13,102, 12, 41,162,143, 61,210, 48,168,130,220, 18, 17, 56, 9,132, 2,154, +110,139,205,102,139,144,233,251, 34, 24,202, 32, 35, 99,150,184,176,197,150, 90,122,153,217,184, 14,131, 41,119,109, 16,235,189, +206,231, 29,128,126,191,199,206, 57,117, 68, 19, 77, 92,235,251, 94,221,104,157,186,110,113, 28,224,124, 66,160, 78,119, 8, 68, +205,101,134,116,141,235,171, 29, 82, 63, 88,199, 53,178, 40, 77,208, 36, 21, 6,176,221, 52,216,108, 78,208, 52,173,110, 6,152, +130,191,204, 35,147,128,156,230,119, 67,128, 7, 23, 23,248,230, 91,247,241,205, 55,239,226,241,197, 83, 13, 33,161,155, 87,111, +214,102,130,245, 33,231, 42, 44,205, 22,167, 98,129, 58, 42, 82,204,160, 63,254,201,146,221,220, 50, 36,215,153,225, 75,179,125, + 65,109, 63,148,127,254, 50,179,175,133,200,236,128,148,131,195, 18, 69, 44, 55, 94,183, 52,163,222, 87, 89, 75,169,184,252,103, +134,227, 67, 48,159,199,103,210,194,159, 88,120,239,231,229,195, 97, 89, 65,135,140, 63, 3,226,149,242,118, 82, 41, 29,204,168, +168, 12,121,235,242,200,194, 85, 82, 74,165,160,241,162, 29,156,106,107, 84,200,153,162, 2, 56, 15,131, 81,239,169,128, 58,167, +100,180,124, 66,148,106, 75,161,132,183,212, 49,171,181, 66,225, 16,156,111,219, 97,175,125,156,111,232,158,215, 24,129,163,133, +128,220, 14,212,151,138, 6, 89,185, 22,168,186, 9, 28, 25,115,186, 52, 78, 16, 53,200,114,117, 1, 67,203,243,119, 44, 48, 13, + 88, 1,124, 39,132,240, 62, 0,240,251, 1,238,127,226, 64,253, 89,152,135, 60,167,107,156,232, 42, 91, 62,208,136, 84,241,206, +201,248, 44,237,212, 61, 17,152, 76,216, 82, 86,145, 74,179, 94,190,174,100,141, 77,230,140, 99,106,105,206, 78,118,158,224, 91, + 66,187,109,209,180,173,210,252, 67,194, 16,243,222, 44,193,147, 71,227, 61,218,214,193,145, 29, 14,146,247,200,201,204, 66,116, +229, 90, 9, 4,181,218,116,164,123,231, 41, 37,236,247, 61,250,126,208,117, 56,214, 29,123,141, 19,119, 32,223,192,217, 76, 27, +204, 42, 14, 36, 11,167, 24,151,101, 39,116,150,203,135,164,229,204,103,193, 84, 1, 24,202, 62,225,140, 52,236,112,145, 18,134, + 56, 32,180,140,198,229,140,244, 4,223,109,112,122,114, 14, 16,225,250,234, 73, 89, 85,131,186,222, 35,197,136,253,174,199,126, +119,173,111, 92,166,137, 37, 41, 23,224, 28,130, 39, 80, 8, 56,217,158,162,107, 59,243,241,231,113, 70, 41,170,248,135, 49, 25, + 16,224,225,110,143,111,220,127, 7, 47,191,241, 26, 46,118, 87,171,125,194, 26,125,120,176, 70, 68, 11,121,205,148, 55, 34,234, + 25, 49, 21,121,156,192,219, 92, 93, 89, 21,103,224, 33,133, 34, 30,237, 81, 93,181, 38, 86,124,192,103, 64, 61, 63,224,220,202, +181,190,212,125,143,126,107, 52,153,177,187, 5,212, 93, 3, 86,170, 67, 86, 14,232,116, 58,222,139,203,250,115, 28,251,212,122, +151, 95,104,185, 88,168,245, 13, 83,127, 5, 51, 38,146,236,238,231,138,129, 9,216, 4,253,110,218,247,231,240, 29, 22, 1,217, +246, 4, 49,131,147, 87, 58,223,124, 28,216,152,180, 20,141, 98,143,201, 40,247,104,218, 22,235,212,237,255,133,181,107,207, 63, + 91, 54, 67,168,241,255,111,238,154,121, 5,188,129, 91,228,135,163,114,125,187,229,215,240, 90, 71, 46,199, 59,245,131,199,144, +229,162, 98, 62,231,158, 51, 48, 7, 29,248,196, 47, 31, 37,242, 88, 48, 6,197, 96,129, 37,224,165,247, 99,225,158,119,194,112, +156, 22, 86, 42,223, 59,220,122,175,128, 61,124,212,128, 28,135,218, 24, 83,188,139,237, 91,155,253,165,212, 25, 21,110, 66, 63, +151,237,245,170,149,114,174,154,193, 17,166, 84,117, 6,244, 44,132,170, 0,189,233, 58,108, 54, 39,104,125,131, 20, 35,250,200, +224, 40, 0,122,144,131,138,230,124, 64,200,128,158,216, 86,196, 34, 88, 60, 58,120, 52, 94, 15,254,100,230, 54,100, 5, 10, 33, +153,133,104, 68,138,170,144,207, 32,172,246,177, 1, 46, 52, 0,180, 83, 14,158,224, 41, 40, 3,144, 5, 90,168,246, 72, 36, 43, +126,157,206, 20, 57,149,220,248,156, 18,231, 72,204,211, 37, 33,102,129,144,244, 72, 24,112, 30, 26,245,191, 79, 2,231, 90,108, + 79,206, 17,154, 13, 46,175, 46,192,125, 15, 71, 9,220, 51,164,205,141,122, 68,140, 3, 36, 73,213, 97,165,114, 91,187,166, 67, +183,221,160,105, 2, 66,163,197,137,243, 30, 18,147, 10,146, 98,143, 36,201,124,237, 61,246,125,196,253,167,143,240,205, 7, 15, +240,189,119, 31,224,122,119,141,195,172,170,155,205, 59,100,129,170,155,236,190,230, 81,139, 21,128, 90,224,160,136,222,178,125, + 15, 72, 55, 8,132, 92,177, 3,117, 52, 59, 93, 49, 2,252,152,234,133, 42,141,175, 78, 42,171, 39,201,179, 6,218, 78, 59,183, + 0,179,147,153,229, 66,135,180,214, 57, 99,129, 61,208,151,118,184,179, 70,183,164,220,229, 22,236,192,210,231,144,141, 59,170, + 73,250, 36,197,107,241, 72, 23,168,134, 33, 43, 94,139,187, 17,129,146, 43,167,227,228, 61, 23, 51, 71, 22, 6,137,168,133, 52, + 37,112, 78,218, 51,129,156,222,171,154, 71, 16, 99, 5,232, 41, 89,156,111, 4,115, 52,147,169, 52, 6,191, 84, 14,114, 40,133, +160, 44,198,144,202, 10,184, 86, 65,145,171,234,117, 90, 1,100,185,197,236,123,149,177,146,149,252,243, 21, 58,255, 64,115,178, +240,188,243,107,209, 1, 55,219,190,162,218, 49, 87, 82,178,140,148,100, 69, 24,115,204, 89, 78,157, 50, 25, 94,146,185, 69,190, +127, 56,246, 94, 0,123,248, 40, 3,122,190, 8, 2,128, 32, 4, 98,104,154,146, 31,215, 89, 72,198, 45, 72, 49, 62,204,153,128, +172,204, 64,157, 10,182, 72, 98, 1, 66,206, 40, 68,163,164, 50, 51,218,222, 91, 38,117, 8,104,155, 13, 54,237, 41,218,166, 65, + 79,123,196, 1,112,146,212, 0,196, 37, 4,199, 32, 12,136, 17,136, 67,210,157,110, 61, 83,148,106, 23,129, 68, 96, 96, 65, 74, +154,203,238,125, 22, 47, 37, 12, 67,196, 96,170,116, 11,150, 27,221,151,200, 20,243,208, 89,189,247,161,236,221,162,210, 33, 43, +136,231,221,118,148, 49, 4,103, 21,119, 17, 20, 9, 92, 32,176, 81,234,136,246,189,123, 32,116,132,182,107,148, 88,246, 1,109, + 56, 69,215,110,208,247, 3,118, 87,151, 64,236, 65,222, 97,216, 71, 92,187, 1, 45, 97,204,168, 47, 7,157,153,227,132,128,110, +219,162,219,158,160,219,110,116,204,145, 52, 19,188, 11, 13,200, 82,176, 82, 74,136,156,208,250, 6, 3, 28,238, 62,189,192,215, +239,221,195, 27,143, 30, 98,136,177,120, 68,175,174,172, 29,185,217,101, 86,237,115,181,127, 46,213,225,234,242, 28,157, 76, 21, + 78,166, 29, 55, 19, 23,134, 83,241,149,179, 41,120,142, 95,157, 32, 23,207,114,177,171, 2, 83, 14,143,160, 37, 27, 88,208,225, +225,136,149, 67,211, 45,204,168,151,168,112, 76, 12, 90,103,103,221, 51,116,223,245,193, 74,180, 76,175, 3,203,186,118,153, 81, +175,186,217,140, 69,215,119, 0, 0, 32, 0, 73, 68, 65, 84, 48,126,126,238, 6,137,170,124,241,162,108,214,213, 78, 22, 19,177, + 96,116,153, 3, 69,120,198, 65,198,189, 36, 30,221, 5,115,141, 89, 40, 84,125,198,156,166,152,103,231, 49, 70, 36, 73, 6,226, +169,252, 22, 78, 96, 73,106, 80, 92, 66, 92,234,239, 73, 38,212,240,109, 0, 87,158,241,115, 81,205,231,151, 0,153,112,124,173, +109, 41,248,229,152, 35,221, 18,237,125,211,124,157,110, 40, 14, 87, 3, 89, 48, 53,163, 33, 89,127, 63,150, 30, 96,106,104, 35, +240, 31,208,206,249,120,254,200, 71, 15,212,223, 11,145,159,130,186,166, 78,169, 97,135,146,144,108,150,152, 84,223, 86, 70,195, + 23,131, 23,117,159,129,119, 64, 34,135, 36, 46, 7,134,219,107,243, 96, 23,109, 30,111,206, 92, 78,141,103,188,249, 73, 59, 23, +108, 22, 71,106,216,226, 2, 54,219, 6,222, 51,156,244,128,153,185, 12,145, 17, 99,182,132,205,254,222,164,251,175, 44,136,131, +118,129,193,107,252,134, 56,117,141, 75,113,192, 16,147, 26,194, 36,235,182,161,157, 35, 9,195, 73,130, 39, 15, 31, 2,188,247, +240, 57, 74,146,104,178, 62, 3, 25, 93,176,192, 82, 20,232,112, 26,233, 74, 46,171,229, 5,201, 52, 8, 26, 14,226,208,110, 58, +108, 79,183,104, 54, 29, 16, 1,239, 24,226, 2,188,115,216,118, 45,250,174, 67,143, 1,128,118, 49, 41,105,164, 34, 39, 75,152, +115, 1, 66, 61, 64,140,174,235,112,122,118,142,205,233, 41,154,208,150, 29,225, 96,115,246,190, 31,144, 56,161, 13, 1,113,199, +112, 8,104,186, 51,220,187,188,198, 87,223,186,143,187, 15, 30,128, 57, 77,147, 54, 87, 0, 29, 11,180, 28, 31, 1,246, 76,104, +228,238, 60,183,202,181,167,251,212,223, 61, 71,137, 58, 3,124,169,190, 30, 43, 65, 19,114, 32,214,169, 55,195,221,202,129, 72, + 43,221, 57,102,128, 78, 11, 84,253, 18, 64, 79,159,151, 22,247,249, 15,187,112, 57, 16,203, 29,118, 88, 50, 25, 91,173,221,181, +163,169,204,212,105, 78, 74,139, 54,125,209,153, 81, 82, 6, 74,199, 31, 32,219,181, 55,215, 71, 65, 66, 29,187, 42, 72,112,126, +204, 87, 16, 89,115, 8,119, 54,138,146,146, 68, 87,175,176, 9,179,206,210, 57,105,236,108, 6,246, 42, 70, 85,102,110,114,178, + 50, 63,191,173, 16,110,173, 0, 93, 11,116,193, 77, 96,188, 66,155,203, 13,180,255, 28,208,111,178,163, 93,234,146,121,118,205, +186, 53, 93,199,252,177,234,117,184,234,186, 94, 90,241, 59,246,254,230, 22,199, 33, 77,135,251, 31,210, 95, 31,105,161, 92,158, +205, 56, 81,155, 77, 74, 4,113,166,156,180, 57,167,118, 15,213, 60,151,170,100, 31,115, 70, 96,214, 84, 51, 34,135,129,180,187, +212, 40, 82, 77,119, 98, 31, 77,168, 5,203, 17,119,186, 15, 43,132,216, 15,224, 4,236,157, 70, 98,250, 70,231,231,158, 0, 30, +180, 67, 77, 67, 66, 28,164,132,200,192,102,233, 58, 99,103,236,247, 22,124, 66,154,116, 22,200, 33,192,172, 86, 77,145,159,248, +240,196,117, 78, 71, 15,170,184,167,178,202,163,128,109,233, 91,162, 12,133,174,182, 25,101,105, 49,174,170,144, 87,208,117,194, +160,128, 34,248, 41,239, 79,219, 34,156,108,209,182, 13, 26,114,160,224, 17, 67,196,110, 63,160, 15, 17,231,155, 13,158, 59,187, +131, 39, 28, 49,236,175, 16, 16, 16,156, 3,199, 1,137, 25, 66, 30, 44, 9,190, 33,108,186, 51,156,156,158, 99,123,114,130, 38, + 4,253, 38,130, 71, 19, 90, 56, 8,246,113, 64,218,247,104, 66, 11, 33, 82,195, 30,215,224,254,197, 53,254,224,245,215,113,247, +221,183, 53, 76,199,225, 56,229, 46,203, 51,244, 69, 90, 81,166,221, 74, 29, 73,153,133,112, 58,231, 71, 89,243, 27, 15, 43, 5, + 26, 47, 2,166,236,101,111,243,194,186, 48,152, 1, 87, 57,104, 68, 14,162, 36,167, 64, 41, 7,211,236,249,161, 72, 43,221,208, +188, 75,175,191,160, 46, 34,106, 96, 63,232,166, 11, 5, 42,152,127, 21, 29,233,183,106,234,116, 21,252,103,172,196,244, 48, 22, + 56, 19, 37,206,247,217, 71, 93,223, 24, 21, 34, 60,170,223, 5, 4,159,148,125,114,194,197, 77,143,242,150, 11,216,114,210,231, + 69,160,140,243,116,168, 99, 34,139,174,172, 73, 6,113,211,119,228, 24, 90,169,108, 96, 5, 83, 64,159,143,121,248,216, 56,104, + 6,218,107,212,180, 44,117,223,183,176,142, 61,152,217,175, 40,225, 9, 71,132,119,114,179,249, 13,142,116,234, 75, 98, 74,178, +251,228,168,246,162,154,175,187,133,113, 1, 86,104,255,195, 60,120, 89,140,128,125,191,155,214,239,167, 91,255, 99, 9,234,239, +229, 26,158,135,166,240, 32, 9,196,162, 36,203,126,168, 67,101,113,148,179,185,101, 52,160,225, 92,233,155,215, 75,238,214,140, + 10, 23, 34,248,198,235, 69,225,162, 22, 15,228,172, 51, 19,112,138,144, 97,128,200, 14,112, 30,155, 77,131,182,221,192, 67, 32, +169, 87,129, 87, 2, 56,105, 71, 78,176, 53, 41,241,101,119,182,239, 19,246,123, 45, 36,130,119, 96,175, 23,157,170,238,237, 0, +146, 58, 42,209,146,162, 93, 64,211,182,232, 90,221, 33, 15,193,151,177, 2, 57,157,157,103,139,219,188,142,151, 67, 43, 18, 89, +172,169,104,216, 74, 8, 42, 52,130,119,128, 68, 80, 20,128, 24,201,123, 80,215, 33,108, 54,240,222,129,211, 8, 90,105,232,113, +209, 51, 36, 49, 26,228,180, 84,221,129,231, 56, 32,237,119,197,210,214, 59,193,166, 61,193,201,249, 57, 54, 39,231,170,170, 23, +129,243, 90, 28,121, 11,200,240, 2,248,141,131,131,199,229,229, 5,158,238,123,220,189,124,138,111,191,115, 31,143, 30, 63,212, + 66,205,173,119, 5,115,218,247,104, 87, 33,235,161, 22,181,232,104, 76,108,203, 97, 54,163, 24, 78, 68, 9,228,148,253,243, 43, + 52,117,152, 58,106, 1, 40, 91, 23,132,185, 30,122,138,198,110,229, 64,172,123, 87,183,114, 72,214,140,192, 20, 72,105, 18,185, +121,216,138,207,173, 99, 12, 78,101,234,246,182, 14,210,245, 87, 79,191,232, 16,184,143,208,254, 6,220,201, 92,238, 80,222, 87, +154, 84, 43,100,168, 73,121,232, 46,117,106,121,128, 99, 29, 71,229,141, 14,245,172,112,101,157, 19, 50,218,186, 34,175,142,138, + 21,244,229,190,203,170,118,163,219,173,192, 22, 3,116, 88, 62,250,132,102,151,219, 41,218,139,209,145,220,188,146,134,217,117, +155,142, 0,217,218, 53,191,180, 70,182,104,209, 58, 7,248,133,117, 60,186,161, 51, 62,200, 88,160, 81,183,130, 74,183,130, 49, + 12,241,104,202, 90,121, 13, 52, 94,247, 60,163,215, 23, 89,130,202, 80,135,139,125, 47,222,183,153,250, 49,172,123, 22,112, 15, + 31, 85, 48, 63, 56,244,178, 47,115, 26, 63, 32, 54, 20, 21, 97, 51, 36,161,202,102,210,220,218,204, 69, 38,255,157, 68, 69,107, +142, 89,247, 26,137, 16, 26,117,104,227,104, 84, 43,188, 6,171,164,236, 13,239, 16,188,160,241, 30,129, 34, 28,107, 18, 27, 18, +129,197,143, 43,113,214,221,137,215, 57, 96, 63, 48,246,251,132,161,215,160, 14,231,244,160, 25,152,145,160, 26,129,100, 59,244, +168, 64,154,156, 67,104, 27,116, 93,135,166,109,224,131, 7, 89,176,140,119, 52, 93,255,113,230,228, 36, 40, 84,183,115, 12,239, + 70,170,146,132,108,180,232, 32,174, 1,217,234, 91, 12, 1,190,237,208,182, 13, 60, 18,134, 33,129,132, 17,135, 8,196,136,125, +223, 99,216,247,240, 36,224, 97, 7, 2, 99,192, 14,113,216, 65,210,160,239, 71,183,193,230,228, 20,237,102,139,110,171, 78,113, + 5,148,108,101, 79, 44, 3,188,107, 26,164, 72,184,184,184,194,155, 79,158,224,187, 15, 31,227,245, 71,143,112,117,173, 14,113, + 68,235, 64,190, 4,214,171,138, 94, 57,156,157,115, 5,230, 14,243,143, 75, 89, 49, 76, 38,202,114,226,138,203, 92, 86,183,147, +121,146,143, 65,126, 50,217,240,166,114,226, 79, 13, 89,231,127, 95,163,191,253,202,245,191,196,178,207, 33,154, 14,122,227, 41, +192, 19,209, 65,208,202, 97,138, 26, 22, 32,120,110, 44, 91, 21, 21,166,112,155, 91,192,230,143, 31,198,113,142,247, 73,222, 71, + 31, 83,228,242,220,218,116, 11,100,247,108,202,206,113, 0, 88,239, 53,199, 2,182, 21, 76,202,246,177, 21,168, 3, 82, 10,250, +137, 27,156,169,216,179,231,123,233,196, 37,205, 68,112,163,217,204, 52, 92, 68,214,133,101, 11,215, 39,100, 61, 82,117, 9,104, +111,237, 19, 95,186,224,229,143,211, 10, 32,222,100,108,115,155,206, 92, 86,204,106, 38,218,144, 89,202,224, 49, 64, 95,114,214, + 91,243, 56, 88,242,199, 47,159, 87, 37,248,201,191, 6,246,253, 89,186,246,143,252,158,122, 94, 25,114,249, 70, 77, 25,248,242, + 73,194, 32, 39, 37,173,138,200,149,206, 92, 79,113, 85,173, 73,202, 6, 45,150,118, 85, 92,172,172,171,240,222, 0,150,192,172, +251,231, 98,179,211,198, 3,109, 32, 52,142, 17,144,224, 36,232,234, 91,175, 59,224,106, 3, 43,102, 65, 74, 16,231,193, 0,118, +125,194,176, 83,122,220,121, 66, 18,160, 79,130, 72, 26,233,217, 72, 54,142,169,110, 12,114, 8, 65, 1,189,107, 27,120,167,246, +179, 77,176,220,232,149, 77,209,218,153,204, 57, 66, 19, 60, 40,233,193,150,156,128,146, 20,209,150,115,154,194,230,154,128,205, +166, 65,231, 29,176,239,193,253, 0,192,169,128,200, 86, 68, 82, 28,144, 56,170,133, 44, 4, 41, 14,112,158,208,182, 1,237,102, +139,237,217, 57,154,237, 22, 68,132,166,233, 64,222, 43,195,129,113,141,170,143, 61,200, 82, 69,159, 92, 93,224,245,135, 15,241, +221,119, 31,226,254,211, 11,196, 20, 75,194,234, 81,117,187,172, 28, 52, 55, 0,186, 96,116, 8,172,139, 0, 54,215,182,108, 64, +147, 85,238,217, 92,230, 80,139,172,200,226,132, 38,157,141,171, 38, 61,227,206,178,204, 40,114, 41,202,248, 53, 18,115,162,136, +191,225, 79, 89,232,212,167,102,174, 11,207, 32,135, 69, 19, 97,234,241,206, 85,234,225,244,249,100,177, 35, 47, 5,139,204,229, +127,163, 40,209, 97, 58, 31,144,217, 87,147, 84,227,129,170, 10, 73, 51, 25, 52,229, 20, 58,151,115, 13,156,142,145,216,151, 68, + 68,169,146,228,181,134, 87, 51, 18,150,236, 36, 87, 11, 59,211, 24,220,194, 92,242,210,179, 5,172,140,138,138,213,157,233,185, +144, 13,183, 4,200, 53, 64,189,141,138, 29,243,181, 76, 89,247,145, 95, 44, 38,228,102, 42,127, 45, 6,246,216,247,133,217,124, + 27, 56, 76, 91,195, 77,224, 46, 53, 64, 31, 7,244,197, 53, 55, 26,165,161, 4,249,192,167,234,183, 5,246, 63, 54,160,254,254, + 57,223, 25,165,201,102, 26, 76,108,180, 81, 22,139,101,192,167, 49, 75,151,169,236,123,179,153,178,100,211, 8, 61, 24, 2,156, + 8,124,178,249, 50,212, 83,218,123,115, 55, 75,106, 51,231,137, 16, 60,208,120,135,198, 9,130, 48, 40, 10, 24, 9,169,143,136, +251,222,210,196,140, 57,240, 4,215,120, 52, 77, 0, 68, 48,244, 92, 82,221, 68,148, 18, 79, 12,248,164,254,191,196, 98, 5, 1, + 70,208,200,254,232, 93,139, 38,104,194, 91,112, 6,232, 38, 24, 32, 80, 81, 33,179,140,245,121,118,175,115,206,233,166,181,176, + 62, 71,137,154,100, 75,110,211, 49, 64,219, 54, 56,105, 28,192, 17,253, 48,232, 60, 91, 8, 41, 10,226, 16, 45,100, 38,129,211, + 96,160, 14,120,114,104,219, 19,156,222,121, 14,103,231,207,161,233, 54, 38, 42, 4, 66,104, 74,199,164,133, 18, 33, 13, 3,250, +125, 15,137, 61,174,118, 61,190,251,240, 33,190,251,224, 33, 30, 95, 93, 91,167,181,178,198,130,155, 13, 58, 14, 34, 45, 23,110, +252,226, 18, 40,135,135, 91,241, 1,119, 25,196,116, 1, 58,239,176,115,206,124, 54,224,103, 59,121,178,167, 95, 54,243,117,149, +203,220, 28, 44,101,177, 43, 95,158,170, 30, 51,115, 57, 54,134,192, 34,232,227,200, 84,156, 86,164, 68,178,250,216, 88,152,205, +210,228,239,114, 48, 43,157,246,106, 88, 28, 74, 72, 61, 21,182,251, 27,160, 9,251, 80, 30, 71,116,239, 28, 57,185,141, 29, 64, + 9,206,121, 21,177,154,197,111,254, 97,177,161, 68,241,113, 47,191,107, 1,156,140,148,189,141, 94,106, 63,247,165,121, 52, 47, + 80,209,183, 5,232,165,235,116,137,238, 94, 84,182,207,191, 78,142,239,165,175,105, 81, 24,183, 96,196,142,204,245,215, 11, 1, +153, 89,117,227,198,171,158, 22,222, 3, 58, 98,249,124,160,234,151, 49, 43, 64,234,104,221, 63,162, 93,236,251, 9,236,225,163, + 11,230,245,197, 35,230, 26,132,209, 66,213,168,208,220,129, 10, 8,112, 65, 41, 65,177,244,201, 28, 67, 42, 4,231,188,250,189, +154, 39,123,226, 88,220,230,200,214,217,156,243, 72,196, 96,168, 88, 43, 16,153,181,171,101,145, 15, 0, 15,123, 36, 38, 12, 49, +106,204,168,181,107,226, 8,212,122,116, 93, 64, 67, 4,233,109,159, 93, 20, 20,184,172,236,168, 59, 22, 37,117,166,139, 49, 3, +191, 30, 74, 77,219, 96,179,105, 52, 16,198,155,201, 76,230,166, 29,204,130, 21,112,100,100,109, 86,233,130, 85, 94,224,242, 44, +120,140, 28,157,244, 81,194, 32, 73,240,206,163,113, 14, 62, 37, 12,195,160, 93,186,232,227, 13,131,229,162,139,238,186,147, 36, +221,173, 15, 1, 39,167,167, 56,127,254, 5,108,239,220, 65, 48,119,184, 16,116, 35,193, 59,125,189, 2,167, 83,143, 33,161,191, +186, 66,127,125,133,199,215, 59,188,246,232, 9, 94,125,252, 24,151,187,189, 21, 87,199,239,187,165,245, 29, 96,221,225,106, 78, + 45,230, 3, 32,213,243, 80,170,169,201,204,220,140,135, 23,209,232, 44,151, 3,105,156,173, 98,101,202, 57, 39,185, 57, 50, 48, + 39, 58,152, 25,211,130,120, 14,139,160,125, 28,208,235,224, 20,153,117,245,203,107,108,135,192,126, 24,123, 58,243,105,207, 93, +240, 1,244, 78,213,235,107,118,158,199,126,110, 50,219,205,207,239,205,188, 40, 56, 28,214,202, 12, 46,198,157, 58, 42, 73, 77, + 92,204,140,114, 30, 68,206,140,207,110,115, 10,216, 60,118,228,146, 38,156, 65,142,205,205,226,219,185,135,251, 18, 32,175,137, +205,248,166,238, 28,183, 79, 86, 91,163,202,129,219,205,232,111, 50,179,145, 35,115,123,194,178,197, 45,207,174,138,233,247, 36, +139,143, 75, 55, 20,136,184,161,128, 93,250, 58, 94,138,103, 37, 58,216,221, 56,136,241,254,128, 64,254, 38, 96,255, 99, 70,191, +211,136, 36,115,176, 47,190,188,207,246,198,106,167, 85,140, 96,237, 0,162, 74, 80, 99,200,192,110, 84, 65,150,252,101, 83,198, +122,117,120,115,161,209,152,212, 97,111, 84,183,117,251, 94,187, 87, 2,129,130,135,144, 30,216, 30, 92, 44, 94,197,230,232,204, + 9,137,129,148,149,205,249,219,245,132, 16, 2, 26,231,129, 40, 24,246, 12, 73, 4,231, 27, 52, 93, 11, 10,132,200, 61, 68,162, + 42,209, 89, 69,104, 82,109, 97, 52, 77,192,166,107,177,105, 2,130,119, 5, 36,225, 20,224,201, 81, 9,139,241,228, 75, 24, 70, + 18,141, 91,229, 2,222, 50,165,161, 77, 64,135,188,127,157, 34,136, 24, 46, 70,164,107, 1,226,160,134, 62,112, 74,157,179,134, +222, 56, 54,239,108, 71,240, 77,192,230,236, 28,231,207,189,128,147,243,115, 5,116,104,154, 92,240,222,230,230, 78, 45, 58,135, + 30,177,239, 49,244, 3, 46, 47,175,240,246,197, 37, 94,125,244, 24,247,158, 94,160, 31, 98,241, 3, 16,185, 69,103, 46, 83, 96, +199, 82, 71, 62, 59,173, 14,192,157,103,161, 16, 52,179,140,173,116, 95, 44,128, 47,192, 62,118,231, 69, 8,100,192,225, 50, 45, +155,103,191,139,147, 64, 44, 16,214,242, 76, 93,248, 90, 92, 41,221,162, 99,175,187,220,188, 65,182,170, 82, 47, 25,230,179,127, + 63,242,179, 25, 15,228, 81, 93,239, 22,231,173, 50, 73, 48,155,131, 62,205, 0,227,192,167, 94,102,148, 61,216,230,107, 84, 18, +232, 84,224, 58, 22, 94, 82, 93, 0, 92,119,232, 37, 97, 77, 22,129, 88, 68, 86,217,161,186,203,189, 73, 76,182, 52,135,190,201, + 54,118, 77,136,118, 27,129,157,224,248,134, 8,110,209,157,207,139, 97, 96, 89, 73,206,192,204,128, 7, 71, 1,125,241, 57,171, +235,241, 24,160,175,137, 4,231,110,115, 12, 55,166,191, 45,153, 54,155,110,230,195, 0,236, 31,106, 80, 47,149, 16,121, 11, 36, +111,129, 96,191,201, 3, 46,160,120,158,198, 30, 24,246, 0,247, 64,178,222,233,134, 55, 56,207, 67,147, 29,204, 73, 0,113, 1, +226, 91,184,166, 3,218, 45,200,123,181, 92,149, 1,194, 59, 16, 71,163,240,242, 46,175, 20,208,205, 93,170, 19,134, 7,129, 77, +106,157,197,117, 78,116,159, 93,156,218, 83,186, 89, 73,170,187,173, 35,149,107,217, 37,128, 7, 40, 56, 52,142,224,197,168, 64, +231,209,110, 27,116,155, 13, 78,182, 27,144, 23, 92,239,175,177,223, 63, 5,197, 94, 31, 36,154,170,218,219,231,183, 13, 54,109, +139,208,104, 10,154, 15, 94,119,211,189, 43,217,241,193,229,130,137, 77,117,173,128, 45,113,188,147,213, 70, 54,235, 15,148,165, + 96,104, 17,145, 85,220,146, 24,241,242, 26,178, 35,116, 36, 32,242,234,186,197,246, 94, 56,128, 61, 0, 31,224,131, 71,187,217, +226,228,252,121,108, 78, 78,138, 51,215,166, 9, 42,252, 51,203, 77, 97, 5,108,222, 15,136,253, 30, 79,174,119,184,251,228, 2, +175, 61,122,140, 7,151, 87, 24, 18, 87,241,182, 55, 87,228, 71,133, 49,184,121, 71, 56,127, 44,218, 53,180, 74,137, 86,110,103, +192,152,185,158,187,240,236, 87,157,103,117,148, 19,219,160,158,211,153, 48,118, 68, 7,132,243,244,255,229,176,179,174,172,217, +101,181,155, 95,239,246,151,232,246,233,231,210,194,191, 45,125,141,140, 25,230,192,234, 92, 30,168, 77,104,164,162, 76,165,236, +252, 79, 78,110, 90, 6,170, 57, 31, 80,211,216,199, 92,236, 68,166,101, 1,229,208,117,212, 91, 36,121, 93,174,110, 12,148,114, + 31, 85, 15,179,159, 63,142,207,108,229, 72,116,169,172,116,228,120,150, 14, 30, 55,187,166,221, 4,234, 88, 25, 75, 29, 99, 87, + 14,194,143,112,124,229, 14, 71,222, 47,145,227,215,226,177, 86, 93, 86,174,227, 37,118,100,233, 49,180, 80,119,163,201,209,210, +112,233, 3,166,227,215,128, 61,124, 40, 65,188,254,229, 60,224, 27, 32,116, 64,123,162,191, 93,171,255,230, 3, 16, 19,144,122, +160,233,129,112, 5,244,215, 0,245,128,196,113,224, 57,119,197,174,188, 4, 5,140, 68,108,180,184,135,184, 14,104,207,128,147, + 23,176,121,225, 69,116,155, 13,210,254, 26,114,253, 16,110,184,132,139, 59, 80,234,141, 70, 85,197, 43,202,108,120,111,129, 14, + 74,175,123,227, 53,197,132,115,196, 0,195,156,165,196,156,169, 64,214, 77,235, 60, 60,239,147,147,211,111,221, 5, 2,121, 77, + 37,107, 93,139, 46,156,129,154, 0,218,104,104, 73,215, 54,104, 3,129,121, 80,195, 22, 17, 85,240, 39, 88, 36,171, 66,133,111, + 2, 54,109, 64, 19,212, 96,198, 7, 15, 23,188, 2,187,203,227, 1, 53,197, 65,165, 15,112, 68, 37,221,172,184,117,229,244, 48, +251, 36, 93,239, 83,179, 13,117,204,107,180, 64, 25,116, 7, 63,134, 80,185,220,193, 66,114, 4,174,109,208,182, 29,218, 77,135, +174,219, 98,187, 61, 69, 8, 45, 18, 0,239, 60,152, 5,125,236,193, 81, 35, 99, 29, 1,109,216, 32,138,195,131, 61,227,187,239, + 62,194,235,143, 30,225, 98,223,171,232,208, 29, 30,120,171, 7,136, 28,143,147, 92, 75,114,226,234, 16,144,170,162,143, 88, 86, +205,115,182, 94,173,134,193,108, 45,171,163, 42,128,194, 62,215,177, 50, 65,197, 3,190,222,217,174,204, 52,104, 70, 31, 80,197, + 12,208,172, 99, 31,105,233, 58,253,173, 18,224, 45,204,233,111,162,219,235,209, 21, 85, 39,103,118,110, 35,208,129,210, 24, 89, +209,126,180,189,154,190,222,233,135, 15, 15, 48,154, 0,133,140,247,117,229, 25, 46,179,174,153,112, 36,190, 83,198,239, 71, 87, + 8,243,231,164,241,116, 55, 70, 79, 38,239, 66,214,150, 76,129,137,112, 4,172,111, 48,125, 89,162,161,121,133, 77,145,149, 49, + 82,253, 56, 44,199, 59,106, 94, 25, 75, 77, 93,248,214,231,245,183, 41, 24,150,190,118, 58,210,146,197,247, 1, 71,174,197, 99, + 63, 79,212,181, 31,173,179, 28,192,116,147,165,126, 34,177, 96,166,100,231, 31,153,101,120, 13,170, 82, 26, 30, 90,165,229, 63, +168, 68,212,240,161, 6,244,140,108, 97, 3,108,207,129,238, 14,224, 79,240,185, 47,124, 30, 63,248,233, 79, 98,179,221,194, 49, +227,222,221, 55,241,205, 87, 94, 1, 95, 63,209, 46, 62,246, 0, 71, 3, 91, 30,151,200, 1,109, 17,105, 12,218, 21, 73,216,131, + 17, 27,134,108, 26,200,230, 20, 56,249, 56,112,254, 34,126,224,231,127, 1, 63,249,139, 63,135,151,126,251,119,113,239, 15,254, + 37,164,127, 12, 30,174,224,120,175, 90, 94, 78,202, 12,196, 65, 11,139, 20,203, 14, 42,145,152, 97,139, 82,119, 13,153,131, 85, + 84, 83, 24, 97, 21,182, 17, 10, 7, 59,169, 22,243, 46,188, 55,231,182,224, 90,108,219,115,156,110, 79,225, 93, 91, 20, 31, 14, + 64, 28, 6,236,247, 87,136,187, 43,184, 62, 42,237, 94,138, 3, 66,227,194,232,143,158,129,220,107, 87, 62,122,212,235, 30, 60, +103,235,217, 42, 99, 90,132,213, 6,151,116,183, 77,253,220,205,138,149,165,172,241,144, 0, 46,168,213,172, 75,131,142, 28,188, +131,107, 54, 38, 30, 76, 96, 68,136, 56,184,166, 65,187,217,160,219,110,209, 53,173, 50, 6, 77,163, 1, 12, 70, 22,236,135, 8, + 71,132,214, 7,120, 34,116,221, 22,112, 13,238,189,243, 0, 47,223,127, 23,119, 31, 60,196, 62,246,229,253, 90,164,199,111, 9, +232, 44, 71,188,176,101,186,190, 54,167, 50,153, 80, 10,178,224,103,118,177,150,161,158,163,122, 93,142, 89,181,217,172, 24,202, +102,225,156,158,116,108, 52,243,232,251,237,202,140,126,234,252,118,120, 56,203,193,140,252,128, 48,148,234,115, 86,120,245,218, + 0,102,137, 34,167, 35, 93, 61,102, 59, 20,152, 81,223,114, 83,198,250, 10,245,191,100, 88,195, 88,182,178, 93,162,226, 81,141, + 71,104,126,224, 30,128, 72, 22, 50,202, 88,140,204, 6, 7,114,240,174, 79,205, 80, 86,173, 83,103,187,219, 60,251,254,248,200, +231, 31,115,108, 91,236,220,101,125, 62, 78,184, 65,149, 46,203,224, 7,172,167,155, 97, 97, 78, 47, 71,116, 44,117,193,182,102, +120,195,114, 76, 9,143,201, 30,187, 44,178, 54,235, 98, 89,204, 0,125,233,125,170,169,120,169,226, 87,151,186,228,188,222,184, +132,107,107,255,254, 94,224,102,253,216,225, 67, 11,232, 25,128,195, 6,232,206,128,237,243,112,231, 47,226,175,255,250,175,224, + 7, 62,245, 34,126,231,235,175,226,157,235, 1, 95,252,212,199,241,159,253,149,191,136,111,124,235, 59,248,187,127,255,255,192, +229,227,199, 10,176,156,198, 57,123,109,120,174,190,143,229, 74, 77,156, 48, 32, 33,182,132,180,105, 33, 39,103,192,246, 69, 12, +231, 47, 98,223,188,128,207,255,204, 79,227,149,151,223, 68, 58,125, 19,169,217,194,247, 23, 32,234, 1, 74,144,216,195, 13,123, + 72,127, 9,233,159, 66,216,194,211,205,124, 66,205, 92, 60,156,243,104,124, 80,111,121, 86,251,214,216,247,139,135, 64, 54, 30, +113,206,132, 97, 32,144,120, 4,191,197,166,217, 34,184,166, 20, 60, 4, 70,138, 61,174,175, 46,208,239,158,130,227, 94, 19,204, +120,220,110, 86, 53,121,139, 16, 26,203, 54,247,102, 3,107,214,150,196,118, 67,168, 27,157,134,190, 72,233,254, 18, 15,136,105, + 52,207,160, 3,186,208,246,127, 45,139,220, 65,221,249, 52,146,222,195,133, 6,161,105,245, 27, 99,129,163, 6,104, 26,180,221, + 6,219,147, 19,248,208,192,140,240,192,246,222, 56,239,145,184,215,157, 97,223,193, 59,167,107,113,161,195,119, 30, 60,194,239, +191,246, 26,222,126,240, 14, 82, 74,179,192,146,227, 43, 45, 88, 19, 4,201,113,218,157,143, 8,104, 24,186,199, 31,243,248,102, + 66,215, 85, 32,154, 21,238,144, 73,164,103,166,218,167, 42,247,188, 11, 43,165,179,230,172,249,151, 49,229,239,112,199,124,162, +245, 62, 16, 17,213, 93, 43, 45,116, 65, 52, 59, 12,231,115,114,220, 98,214, 94,121,237, 44,118,148,227,235,147, 85, 79,239, 99, + 63, 67, 57, 88,110, 91,167,165,151,169,118, 41, 69, 84,253,220,203,180,183, 26, 3,209,129,110,225, 80,103,207, 11, 32,118,204, +157,109,237,243,120, 97, 6, 45,223, 15, 69,142,219,187,184,221,148, 0,183,246,117,116,164, 24, 88, 75,130, 91, 30,131,201,173, +149,241,114,132,234,231, 91, 40,170,142,141,217,230,239,251,132,225, 18, 32,101, 54,234,153, 52, 91,178,136,111,239,103,247, 30, + 62,180,128,158, 1, 56,119,233,155, 23,240,215,254,242,191,131, 95,252,217,159,196,127,243,191,254, 35,188,243,228, 9,120,232, +241,141,151,191,131,203,171,107, 56, 79,232,233, 4, 56,111,181,101, 18,174,174, 58,174, 90,143, 81,166, 75,166,147,189, 6,225, +218, 3,177, 11,136, 39,231,240,167, 31, 7,109,159,195, 62, 53, 58,107,111, 78,193,207,125, 6, 62,126, 12, 46, 93,193,201, 53, + 16,175, 65,105, 15,236,159,194, 93,123, 48, 25, 5,207, 73,213,238,222,104,121, 34,245, 85,119,141,209,195,121,249,147, 17,135, + 97, 86, 22, 27,241,103, 54,176, 84, 68,129, 30,193,183,240, 46,168,152, 78, 72,103,223,208,226,160,223, 93, 33,238,118,182, 9, + 44, 69,224,230,156,102,154,123,231,224, 66, 64,240, 1,206,233,222, 45,138,144,204,105, 84,170,104, 64,141, 48, 23, 97, 22, 1, + 72,137,138,112, 15, 92,207, 39,245,120,117,206,235,255,187, 60, 95,207, 44,133,218,199,194, 7, 83,172, 3,176,148,182,237,233, +185, 22, 26, 62, 88, 7,154,140,210,231,108,245,165, 44, 13, 19,174,119, 61,118,228, 17, 65,120,237,201,187,248,214,235,223,195, +131, 71,239,142, 62,252,199, 42,115,172,139,226,230,224,189,218,217,200,225,220,109,126,248,149,105, 7,205, 14, 8,154,209,161, +134,231, 37,235,153,212,109,220, 25,200,228,185, 59, 91,103,232,242,122, 91,137, 99,173, 64, 72,168,228,191, 27,159, 50,185,138, + 24,115, 63,119, 89,156,121, 31,235,134,231, 99,107,208,186,162, 88, 86,103,238,235,255,191,158,246,182,244, 88, 85, 6, 1, 45, + 83,244,211, 78,122,169,189, 91,214, 80, 47,173, 78, 45,205,230,235,178,105, 25, 96,228, 70, 15,132, 99,126,231,178,208, 37,223, + 20,169,138, 91, 20,168,199,104,241,181,199, 62, 86, 44,172,130,168,220,236,229,126, 8,254,223, 31,160, 63,235,175,181,194,244, + 88, 17, 54,117,157,115, 10,234,207, 56,227,254,160, 40,247,250,185,195,135, 11,200,231,220, 74, 0,154, 14,104, 78,241,185,207, +127, 30,127,243,175,254, 10,254,199,127,248, 59,184,255,228, 82, 41,239,184, 71, 2,240,155,191,247, 53,192, 53,192,246,121,180, + 93,135,159,248,252, 15,224, 71, 63,243, 73, 60,127,126,130, 87,238,190,139,223,254,198,107,184,222,245, 56,219,182,248, 55,190, +240, 41,124,246,197,231,241,194,157, 19,252,193,119,222,196,239,190,252, 6,134,196,104,159, 63,195,167,127,240, 5,124,241,179, +159,194,201,217, 57, 30,190,251, 4,215,215, 59, 91, 91, 33, 96,123,142, 79,125,230, 11,248,228, 39,206,112,118, 22,112,255,187, +175,226,209,189,215,240,220, 89,192,195,111,125, 21,251,251, 87, 64,211, 66, 82,132,151, 44,104,211,176, 21,146, 12,214, 14,129, + 2, 32,155,226, 72, 23, 83, 44,227, 58, 2,224,188,135,111,188, 30,210,185,155, 35, 15, 33,143,200,172,192, 43,130, 65,148,238, + 31,246,151, 72,253,181,174,134, 85, 92,169, 35, 66,219,120, 53,137, 9, 6,220,217, 2,214,153,197,107,233,206, 84, 93, 14, 6, + 98,210,232, 72,239, 67, 81,240,147,153,166, 36,243,189,134,112,217, 22,200, 33, 25,228,181, 77, 39,242,128, 35,141, 65, 13,141, + 21, 17, 80,117,125,104,208,117, 91,156,158,156, 2, 12,244,251, 29, 24,169,208,209,193, 7, 4,223, 32,178,128,163,249,218, 39, +193,131,235, 43,188,246,206,187,120,227,193,125,244,251, 93,137, 9,189, 9,208,113, 68,220, 35, 75,148,226,130, 83,220, 26,125, + 58,255,247, 65, 70,177,156, 44,208,119,126,133, 54,205,180,122,174,178, 92, 9,128,145,233,222,186,125, 10, 87, 32, 94, 40,225, + 44,170,155, 1,250,210, 65,120, 76, 28, 7,220, 32,160,155, 9,143, 14, 89,128,105,135,143,219,116,117,183, 56,142,199,204,246, + 67, 26, 85, 14,224,118, 25,164,215,199, 1, 71, 32,124, 73,124, 87,232,206,219,172,219,225, 70, 19,152, 69, 80,191,133,154, 29, + 43, 93,246,173, 92,219,214, 62, 46,183,235,208,129,219,199, 20,175,127,127,114,188,251,126, 6,175,120, 60,227, 53,118,116,199, +191,214,206, 76, 24, 57, 61, 7, 29, 29, 38, 23,212,221,248,179,130,248, 90, 39,255, 39, 98,166,190,252, 35, 50,197,123,179,193, + 23,126,248,243,248,216,243,119,240,234,189,135,182,128,204, 42,134, 35,175, 34,186,205, 29, 32,108,240,183,255,250,159,195,201, +230, 4,255,203, 63,249, 42,126,252,135, 54,248, 47,254,214, 95,197, 63,248,221,111,227,191,255, 71,255, 18,127,235,215,190,140, + 39, 87,123,252,227,175,188,130, 63,251,165,231,240, 95,255,199,255, 30,254,135,127,252, 21,252,139,151,238,226,175,252, 91, 63, +134,183,190,121, 23,237,249, 29,252,218,191,251, 75,248,127,254,207,223,194,163,111, 95, 88,147, 79,248,233,159,251, 18,158,251, +216, 25,190,253,245, 87,209,158,253, 32,126,249, 55,126, 21,255,226, 31,252, 35,236, 31,220,179,174,212, 43,149, 28,130,206, 93, + 88,103,208, 68,108,224,173,182,170,142,212,162, 21, 16,144,243, 24,134, 29, 82,204, 76, 2, 3, 65,187,105,141, 84,227,210, 25, + 15, 67,143,100, 38, 55,156, 34, 56, 14, 64,138, 32,222,195,241, 0, 95, 93,209,193, 17, 66,240,104, 66,131,198, 43,176,194,145, +130,178, 0, 94,140,122, 55,100, 97, 98,136, 56, 11,154, 16, 93, 29,179,153,191, 62,159,238,149,147,205,211, 51, 21,175,188,185, + 57,238, 89,186, 27,185, 6,228,157,205,200, 91, 56, 31,116,101,141, 8, 77,211, 34,180,157,174,253,237,247, 72,188, 47,110,104, +142, 60, 64, 14, 67,138,136,204, 0, 57,236, 89,240,218,227, 39,248,246,155,111,225,241,147, 71, 26,123,233,112, 64,185,223, 68, + 23,226,200,188, 28,184, 57, 51,125,242,185,178,172,216,142,149,167, 54,163,238,198,107,186, 54,211,237, 35, 85,205,165,115,207, +177,161, 99,230,153, 3, 21,119, 58,130, 10, 47,179, 51,154, 84,197,128,203,121,238, 84,173,208,161,138, 27, 61,210, 17, 47,129, + 59, 99, 77,193, 94, 9,143,104,137,214,167,241,239, 66,171,226,164,219,116, 84, 7, 32,189, 88,188, 29,177,183,145,213, 94,255, +198,107,230,216, 40,167, 94, 73,155, 59, 5,220,164, 18,191, 77, 39, 44, 43, 29,250,156,158,191, 13, 8, 30,165,155,143,188, 78, +220,162,171, 7,214,247,212,143,111,147,200,209,215,181,246,184, 75,133,193,179,208,236,199,126,177,172,111, 24,228,215, 50, 56, +143,228,252,162,173,210,146, 56,110, 9,184,231,148,251,123, 13,232,249, 57, 62,112, 80,127,166,111,162,228,230,121,156,108, 54, +184,179,213,112, 16, 85,190, 55, 0,119, 32,223,161, 57,127, 1,189, 59,193,151,190,248, 25,252, 39,127,229,151,241, 55,254,219, +127,128, 55,239, 63,193,155,247,159,226, 23,190,244,131,248, 59,191,246,101,188,252,230, 67,252,165, 47,127, 30,255,249,255,252, +155,120,243,237,167,248,191,223,126, 9,127,238,199, 63,141,191,253,171, 63,131,207,126,252, 28,159,252,196, 57,254,225,255,254, +219,248,222,215,191,139,159,252,169,207,225,249, 23,206,145, 94,122, 13,204,130,205,182,197, 79,252,204, 23,241,245,175,124, 11, +155, 77,131,235,167,151,248,253,223,250, 3, 60,124,235, 29,244,111,190, 10,185,120, 8,162,164,110, 84, 36,106, 39,237, 8,158, +116,126, 45,150,216, 52,164, 30,142, 52,129,205, 5,143,198, 17, 92,235,117,142,157, 6,112, 28, 44,185,181, 18, 99, 0,224,126, + 64,140, 79,245,130, 99,181, 87, 37,219, 9,247,163,196, 87,223, 46, 7,179,125, 85,165,123, 22,174, 17,145,229,116,171, 3, 30, +192, 37, 54, 85,247,230, 88,193,219,134,181,108, 43,129, 34,130,196, 17,204, 98, 81,180, 92,146,166,200, 57, 13,185, 33,129,144, +130,120, 19,186, 98,102, 19,108,101, 78, 64,104, 66,135,166,105, 17,135, 1, 67,138,229, 5, 39, 22, 72, 74,250,121, 66, 24, 18, +163, 79,140,199,125,196,247, 30, 60,192,235,239,188,141,235,171, 75,235,246,111,113, 32, 99, 57,132, 98,126,112,206,187, 89,145, +101,129, 28,227,118,107, 68, 73, 20,216,115, 87,206, 11, 0, 57,167, 46,231,192,207,197,102,216, 4, 96, 36,229,117,228, 14,158, + 42,127,115,209,203,236,160,195, 24,173, 99,151, 91,153,227, 57,229,135, 29,123,157,216,118, 48,202,160,229,114, 92, 22,144,113, +125,110,158, 61,222,101,161, 59, 94,138,122, 61,124, 90,158, 83,244, 43,223,223,225,215,172,204,103,110, 3, 80, 11, 69, 3,175, +204,164,249,200, 28, 24, 55,132,179, 44, 62,134, 28,239,144,111,220, 67,151,227,143, 79, 88, 22,226,201,145,153,249,225,231,203, +242,200,107,225,218,186,201, 93, 14, 43,212,255,218,207,134,112,243, 14, 61, 47,176,110,144,195, 29,117, 1,144,124, 0,123, 15, +113, 14,254, 89,120, 38, 17,141,168, 94,160,231,223,151, 44, 19,162, 15, 22,212,159,237,155, 48,131,117,102, 32, 13,184,119,255, + 29, 56, 7,252,252,143,125, 14,191,255,205,215,129,142,224, 55,167,248,137, 31,254, 44,254,237,159,253, 51,240, 77,135, 71, 87, +123, 60,119,218, 97,219, 4, 32, 4,128, 5,191,247,237,183,240,159,254,134,199, 79,125,246, 5,124,226,236, 68,169,228,160,232, +240,207,191,241, 6,254,242,151,191, 0, 71,132, 31,250,212,115,248,216,167, 63,142,253,107,247,241,244,233, 53,222,189,255,168, +242, 50, 7, 78,206,182,184,243,252, 57,222,190,251, 14, 30,222,127,128,225,209,219,160,139,251,240,241, 10,142, 7, 80,138, 6, +198,186, 92, 94,148,202,110, 84,202,102,127,232,104, 93, 12, 27,221, 30, 2,193,137, 71, 74, 45, 98, 28,144, 98, 52,167, 42,117, +173,131, 36, 32, 69,192, 14, 61,245, 84, 51,106,210,212,117,108,207,229,189, 67, 8, 94, 1,181,109, 75,151, 78,198, 89,215, 7, +190, 36,155,221,130,225,136,116,110, 62, 17, 34,137,205,119,141,118,172,214,178,200,161, 56,207, 57,231, 65, 62,160,233, 58,116, + 77,107, 93, 28, 35, 56,179,158,133,131,119, 30,125,191, 71, 63,236,209,250,198,180, 2, 13,132,163,138,195,252, 6,112, 1,143, +175,174,112,239,201, 5,238, 62,122,136, 7,143, 31, 33,218, 42,219,106,204, 23,158,209, 75, 90,150, 41,248,165,181,181, 99, 93, +253,252, 16,139, 85,183, 62,137,120,204,209,143,130, 49,195,221,134,193,156,235,254,106, 78, 92,214,177,114,151,158, 59,238,172, + 14,166, 10,244, 77, 65, 79, 53,224, 99,154,135, 62, 31, 47,212,183,224,218,193, 71, 43,221,252, 28, 76,235,104,203,155,102,235, + 88, 1, 12,172,128,241,154,178,127,237,103, 78, 34,171,115,120, 57,130,219,163,102, 86,110, 61,235,231,181, 98, 82,142,119,160, +124,132, 17,130,220,156,150, 38, 55,208,228, 55, 9,201,150, 24,143,181,159,209,154,211,218,109, 11, 30, 28, 49,217, 89, 20,184, +201, 51, 20, 38, 55,209, 17,183, 44,252,231, 5, 7,203,178, 61, 47, 67,253, 69,152,220,152,164,248,125, 98,222, 7,225, 66,231, + 62, 40, 48,127,230,170,196,246,153, 17,247,192,112,141, 87,190,243, 26,254,217, 87, 94,198,223,250,213, 47,227,167,127,244,135, + 0,215, 33, 53,167,248,206,195,132, 29, 59,252,229,159,251, 34,222,120,112,129, 71, 87, 61,126,253,103,191, 96,251,235, 9,103, +219, 14, 95,127,227, 33,126,243,171,175, 3, 36,248,179, 95,250,164,181, 96,140,243,109,139,215,222,125,138,191,247,207,190,134, +255,247,171,175,225, 87,254,252,159,193,223,248, 15,255, 34,190,247,218,125,124,229,119,190,169,158,232,142,176,187,222,227,225, +219,143,241,165,159,252, 60,174, 47,119,216, 63,190,128,244, 87, 64,255, 20,232, 47, 65,195,181, 82,225, 41,194, 67, 51,198,157, + 83, 67, 23,103,193, 48,206, 19,124, 80,247, 57, 66,246,134,142, 16,137,186,183,238, 0,223, 4,116,155, 14,155,205, 6,109,215, + 33, 52,193,226, 69, 45,139, 29, 4, 79, 51,199, 48, 27,140, 43,200,106,119, 28,154, 6, 62,132, 18,163,154,129, 85, 79, 95,167, +105,107, 12,112,210,149,180,200,102,240,146,148, 98, 23,203,123,206,116,127, 14,113,129,249,168,107,220,170, 71,104, 2,154, 78, + 87,211,218,174,211,180, 55, 7, 56, 98, 80,206,141, 78,162,197, 67,138,234,180,103,119,211, 16, 25, 41,234,199,129,128,139,200, +120,253,225, 19,124,253,222, 61,188,244,134,170,219,121, 1,208, 51, 37,118,147,104,104,177, 59,146,195, 56,201,165,249, 55, 47, + 84,235,107,135,107,109,123, 25,165,122,204, 5,234,149,103, 89,217,117,118, 54,215,187,239,182,175, 91,187,212,141, 86,180, 82, +189, 54, 45,186,146,105, 28,210,236,123,230,181,215, 44,203,153,248, 79,153, 0, 0, 32, 0, 73, 68, 65, 84,121,221, 55, 25,146, +200, 17, 42,148, 23,230,164,114,132, 70,190,205,115, 76,127,203,162,128, 73,100,180, 97,157, 43,215,101, 81, 67, 49,251,207, 2, + 89,248,200,140,117,113,181,233, 22,243,236,155, 68, 88,115,224, 88,122,124,158, 51, 10,114,187,247,139,177,190,158,133, 35,127, +103,220,172, 35, 57,246,216, 44, 50,177,193, 5,110, 22,247,177,220,174, 48,145, 91,128,255,173,153,188,155, 12,116, 38,118,207, +132,232,156, 26,135,253,107,109,116,111,247,203,159,158,158,254, 87, 31, 42, 48,175,251, 0,130,206,204,125, 64, 31, 5, 47,189, +241, 0, 63,243,227,159,199,111,252,242, 79, 33, 17, 97, 47, 30, 77,211,224, 39, 62,251, 34, 62,243,194, 57,254,222, 63,249, 67, +124,231,254, 35,252,205,191,240,147,184,247,244, 18,226, 9,127,233,167,127, 8,127,255,159,127, 29,191,253,141,215,113,210, 6, +252,242,143,126, 26,111, 95, 92, 97,187,237,240,235, 95,254, 34,254,167,223,252, 3,124,253,229,183,240,255,189,124, 15,195, 48, +224,239,252,181, 95,194,171,223,123, 7,223,125,233,117, 60,247,177, 83,252,244,207,255, 40,222,124,227, 29,124,235,107,175,227, +167,126,254, 75,248,220,143,124, 6, 0,163,245,123,164, 71,111, 33, 61,190, 15, 26,174,116, 55, 94, 84,125, 78,101,114, 48,218, +170,150,153, 51,141,202,116,231, 77,120,225, 70,233,133,247,128,247,193, 86,208,130, 89,185,154, 81,137,122,173, 1,162,187,220, +206,126,147,211,216,212, 16, 28, 66,211,160, 9, 13,156,247,112,164,116, 17,229,125,127,114, 90, 84,144, 58,182,197,148,140,238, + 87,213,251, 72, 98,154, 72,203,141,124,173,152,167,189, 16,116, 94, 30, 60,124, 19,224,155, 70, 93,247,156, 22, 31, 57,125, 78, +152,145, 98, 66, 74,130,166,217,192,249,128,126,136,250, 24, 9, 58, 55, 79,140,152, 24,151,137,240,189,199, 79,240,202, 91,247, +113,255,225, 3,236,251,190,188,135,130,245,249,249,162,129, 5,150,215, 83,142,237,160,215,212,231,210,218,218,218,188, 84,102, + 29,223,214, 1,167, 14, 8,182,100, 65, 52,157, 34, 81,213, 26, 82,117,137,231, 55,185, 4,148,210,225,109, 80, 47,227, 82,249, +252,195, 67,138,170,176,211, 18, 64,116,227,168, 66, 38, 45,186,172,100, 80, 77,205,103,150, 31,123, 50, 72, 63,122,208, 46, 75, +157, 10,139,180, 96, 57, 59,125,207,229, 40, 80, 28, 80, 15,178,210,185, 63, 3, 24,224, 8, 0,201,109, 11, 33, 57,190,202,182, +248, 88, 99,108,251,161,135, 58,110, 47,160,147, 27,198, 32,130,219,155,227, 28,140, 32,228,246,222,239,184,129,109, 88,236,239, +228,102, 1,222,141, 78,117, 71,206,145,218,209,111,206,210, 37,114,120,180,121, 14, 79, 54,231,230,250,248, 97,194,201,133,199, +251,228, 39, 63, 41,239, 7,152,191, 55, 15,228,129,102, 3,108,206,129,211, 23,128,237,243,120,254, 83,159,197, 95,248,165, 47, +227,199, 62,255,105,188,123,209,227,237,199, 87,184,234, 7,188,241,238, 83,188,114,239, 1,134,171,107,252,244,151,126, 0, 63, +241,233,143,225,225,197, 53, 94,125,235, 1,190,245,218,219, 16, 34,180,109,139, 95,248,177,207,224, 19, 31,123, 14, 79,246,140, + 87, 31, 15,120,229,222, 5,190,248,185, 23,241,111,254,200,167,192, 67,194,159,255,226,139,248,181, 95,252, 81,252,246, 63,253, + 42,190,242, 91,127,136, 31,254,145, 31,196,238,234, 10,247, 94,189,139, 59,103, 13,126,236, 39, 62,141, 32, 3,222,122,233, 15, +241,246, 31,254, 30,228,226, 45, 4,190, 54,191,243,164,116,171, 68, 91, 13,155,246, 63, 44,170, 44,215,145,187,211,233,233, 36, +147, 89, 45, 67, 73,212, 39, 93, 63, 7,144, 24, 17,135,189,166,182, 13,131, 82,240, 52,102, 77, 57,231, 20,212,155,128,166,237, +180, 24,240,222,168,119, 87, 64,183, 54,214,136, 67, 66, 63, 36, 8,107, 50,154, 39,181,137,133,121,191,151, 46,191,100, 64,235, +159,222,105, 33,226,157,118,252,206, 5, 77,101,147,168, 27, 9, 54, 85, 22, 1, 82, 18,132,102,131,211,211,231, 48,164,136,221, +213, 37,156, 87,119,150,125, 28,112,213,239,241,224,242, 26,111, 95,237,240,240,242, 2,187,253,206,236, 64, 43, 64,127, 70, 49, +156,172,204,213, 23, 51,169, 23, 84,174,223, 15,160,231,250,231, 19, 1,248,116,171,224,174,254,249, 35, 13,238, 10,184,235,251, +235, 48, 53,207,200,159,227,236,254, 49, 67, 74,248, 90, 90, 82,209,107,249, 49,106,144,117, 52,170,236, 93,125, 96, 0, 7,191, +129,105, 40, 12, 22, 62,190, 92,124, 76, 33, 24, 11,159, 63,161,233,105,250, 26,139, 64, 8,184,205,176,125,241, 99,180, 2,232, +147, 50, 69, 14, 31,134, 74,220,233,250,188,125, 9, 28, 73,142,179, 64, 75,244, 60,223, 0, 76,107,212,252, 18,208,204, 31,135, +111, 2,101,185,129,130, 63,242,177, 99, 20,253, 90,114, 26,203,225,152, 6, 71,186,244,219, 10,236, 38, 6, 79, 71,116, 6,199, +238, 99,224,120,188,114, 9,101,146,105,126, 67, 97, 77, 24,216, 83,131, 87,159,255, 44,222, 61,253, 24,222,251, 94, 29,239, 57, + 29,255,254,130, 58,217, 17, 52, 38, 85, 44, 47,194,174,221,209,228,212,223, 61,108,128,238, 20,216,222, 1,218, 83,192,109,128, +205, 9,124,219, 41,125,102, 84,187,158,104, 12, 12,105,172, 97,235,125,245,124,212,133,174, 24,218,188,248,185,207,225,191,252, + 15,126, 21,255,244,107,175,227,255,250,189, 87, 16,246, 3,254,253,159,255, 34,254,163,191,246, 11,248,187,255,221,255,134,116, +239, 30,130, 92,193,201, 30, 62, 94,195, 15, 59, 80,186, 6,134, 39,240,241, 18, 33, 94, 35,248, 4,207, 12,194,160,198, 51, 72, +165,180, 38, 51, 35,119,228, 13,184,163,209,224,118, 36,138, 76,162, 81,193,162,130,185,168,175,219,147, 10, 51, 36, 69,236,119, +215, 24,118, 61,168, 56,142,137,197,169, 42, 29,222,180, 45, 66,211,234, 94,188,137,227,212, 65,207,141, 55, 28,139,250,178,179, + 24,253,205, 22, 1, 27,170, 80, 23,103,130, 59, 85,107, 39, 43, 78, 28,105, 8,140,167,113,135,190,241, 13, 64,132,125,191, 3, + 88,173, 58,212, 67,134,193,226,208,110, 78,224,124,131,221,110,167,139,115, 77,139,235, 33,226,157,139,167,184,255,228, 49, 30, + 92, 92, 96, 23,123, 8,203,116, 85, 13,183, 12,100,193, 17,197,240, 45,231,231,188,112, 16, 96, 45,118,242,200,218,207,199, 60, +240,153, 78,187,117, 79,163, 51,158,207,160, 82,252,221, 15, 65,217, 85,221,124, 41, 0, 4,101,133,166,254, 56, 65, 31, 51, 95, + 50,117,129,224, 80,107, 39,166,143,135, 3, 80, 63, 4,243,101,240,158,218,201,214, 29,186,155,112, 13, 55,114,111, 7, 51,235, + 91,114,118, 43, 19,242,250,177,150,193,252, 38,126,224,198,181, 39, 57, 50, 29,156,117,191, 7,209,169,114,164, 11,190, 1, 88, +229,150,161, 43,183, 1,204,163,105,132,183, 4, 92, 96,102,186, 35,207, 0,202, 11,122, 0, 94,248, 25, 46,142,128,100,189,136, + 98, 44,184,237,201,145, 81,145,172, 51, 33,105, 1,208,179,158,248,210,111,240,221, 23, 62,135,167,155,179, 21,175,196, 15, 23, +184,191, 15, 66, 57,147, 96,211,252, 79, 55, 61, 18, 74, 58,130,189,133,139,156,166, 43,107, 83,136,123,224,250,137,102,145,135, + 14, 24, 46,144, 92,245, 88, 89, 84,247,255,147,247,230,209,178, 92,215,121,223,111,159,170,234,233, 78,111, 30, 48, 61, 16, 51, + 39,144, 4, 7,145,226, 96,138, 84,100, 91,150, 44, 39,177,229,196,146, 45,219,145, 18,201,113,178,150,162,165,229,217,150,228, +120, 41,177, 35, 59,138,151, 29,121, 41,178, 21, 89,114, 34,133,150, 34, 89,162, 70,146, 22, 41,145, 0,193, 9, 36, 8, 16, 4, +129,135,247,128,135, 55,191,119,135, 30,107, 56, 39,127,156, 83,221, 85,213, 53,245,155, 0, 49,189,214, 5,222,189, 93, 93, 93, + 93, 93,117,190,189,191,189,247,247,229,150, 12,167, 36,231, 20,210, 44,143,237,219,236,159, 4,148,176,207, 11,121,240,248, 62, +126,227, 11,167, 25, 71,214,182,244,179,231,119,120,247,115,103,216,190,122,137,206,232, 2,158,222,131,104,100,235,223, 38, 65, + 37, 51,208, 19, 76, 18,205,175,168,236,220,183, 40, 31,241, 21,158, 10, 44,237,238,121, 54,155, 77, 52,113, 42, 95,235, 40,119, + 73,229,193,148, 3, 92,173,173,166,189,231,186,225, 19,109,193,214, 83,120,190, 96,124,113,222,206,110, 65,117, 51,225,190,239, + 19, 4,193,188,219,221, 10,186, 59,205,118,147, 54,221,105, 43, 83,235, 70,212, 72,109, 65, 13, 24,147,204,129, 91, 4,103, 9, +235,185, 46,120,237,212,241, 22, 43,188,181,153, 4,140, 91,214, 53, 24,227,205,235,240,190,215,165,227, 7, 24, 20,147,201,132, + 40,156,129,231, 51, 14,199,156, 31,238,113,113,231, 42,163,201,148,196,249,168, 75,201, 34,218,202,147,217, 84, 55, 44, 85, 81, +144,101,221,238,101, 11, 73, 83,119,125,241,223,105,179,156,145,229,172, 78, 21,208,204,152,172,113,201,162, 12,144, 61, 94, 85, +200,134, 44,248, 75,110,145, 83,153,177, 56,119,197,163, 50, 77, 74, 74,100,190,191,170,216, 58,199, 56, 84,129,105,217,247, 34, +100, 70,240,202,233,221, 38,170,183,234, 56,164, 5, 16, 75,234,146, 86,219,154, 99,150,142, 67, 87,101,233, 45,212,212,154,250, + 55,184, 70, 64,174,211, 35,111,211,108, 70, 75,138,186,140,181,106,147, 53,207,251, 20, 26, 65,191, 60,176,110, 10,168,116, 5, + 45, 95, 91,155, 55,229,153,120, 85,239, 75, 21,237,174, 75, 24,129,236,223, 67, 47, 32,246,188,106,109,230, 87,217,227,134,131, +186,184,204,112, 14,160,202, 25,175,184,154,110,110, 21,115,146,170,214, 85, 45,253, 70,116, 38, 37, 72,139,201,110,127, 24, 11, +234,104,107,218,162, 84, 6,208,211, 0,129,133, 61,107,209,142, 85,196, 57,187, 25,123, 76,126,135,151,207,156,229, 63,124,234, + 75,124,199, 91, 79,112,199,193,117,206,237,140,216,231,107,254,237,111,253, 33,195,243, 47,115, 44,218,193,139,247,232, 38, 19, +132, 4,109, 34,140,142,237, 88,131,209,104, 34,226, 56, 65,208,120,202,224, 7,158, 5, 84,229,129,223, 65,252, 62,158,111,165, + 93,141,182, 13,100,169, 55,184, 53,118,115, 22, 6, 98,208,137, 38,137, 99,148, 14, 81, 81,130, 86, 83,116, 60,115, 23,166,147, +156,245, 21, 98,196,213,217, 5,207,179,179,224,202,243, 16,223, 71,249,139,115,108, 48, 78, 33, 87,187, 6,122, 77, 18,197,232, +216, 77, 56, 43,193, 79,193, 58,109, 76, 52, 26, 49, 30, 24,207,186,174, 9,248,174, 65, 68,180,149,149, 77,112,157,243, 90,163, +197, 90,194,106, 13,113, 20,147,104, 67,183, 63,160, 59, 88, 35,137, 19, 70,147, 41,145, 54,140,141,112,121,103,151, 75,195, 17, +195,201,144, 56,142,161, 68,242,179, 77, 93,179,169, 62,185, 68,107, 86, 52,196, 21,233,249, 38, 86,160,154,150,180,159, 34, 52, +134,208,197,144,169, 77,163,162, 96,195, 90,200,234,114, 25,118, 65, 96, 70, 67,110,174, 61,157,103, 39, 51,207,158,237,176,207, +102, 60,170,240,222,217,186,244,156,181,145,242,209,176, 98, 70, 93,185,150,165,251, 18,147,203,215,219,172,123,101,190,235,148, +212,203,139,180,126,217,119, 81,181,173,169,176,118,173,203,190,155,192,167,169, 57,211,180,160,174,219,122,161,215,130,113, 13, +147,160,107, 62,151,208,166,246,109, 26,239,183,186,243, 5,205,234,118, 77, 37, 15,104, 22,201,209, 13, 53,245,170,123,182,206, +187,190, 24, 52, 38, 70, 8,189, 14,137,242,255, 72, 0,250, 13, 7,117, 73, 51,114,207,179, 96,238,119,108, 86,237,119,243,192, +158,174,166, 58,178, 34, 43, 58,201,131,252,188, 73, 75, 45,180,218,231,205, 94, 94,166,243, 40,149, 81, 53, 32,201,124,156,108, +225,140, 96,242,133, 65, 88, 4, 27, 8,152,132,209,104,143,159,254,213,143,114,231, 29,183,177,190,182,198,222,100,194,149, 75, +151,217,185,120,137,163,179, 25,146, 36, 24, 45,236, 51,138,190,104,124,124,199, 30, 68,118,174,219, 36,120, 38,182, 34,130,129, +135, 70, 89, 5, 56,175,139,116,214, 80, 65,143,196, 11, 16,177,166, 36,202, 45,198,190,107, 44,211, 90,187, 67, 53, 40, 29, 97, +226,216, 50, 0,254, 12,241, 60, 36, 82, 40, 29,217,192, 39,240, 80, 4,136, 11,116, 60,241,241, 60,223,117,186,171,185, 13, 44, + 56,192,141,211,206,115,171, 20,167, 99, 91,211,119,134,238,136, 17, 39, 73,235,154,220,180,171,193,122,139,155, 65,137,231, 92, +195,162,121, 53, 35, 73, 18,116,146,184,217,117, 27, 44,104,109, 61,215,241,124, 98, 35,236, 14, 39, 76, 38, 99,118,166, 35, 70, + 70,177, 61,153,114,117,239, 42,113, 28,187,185,235,118, 25,121,229,226,106,170, 69, 99, 76, 5, 61,183,180, 40,152,102,105,202, + 38, 64,207,254,158, 24,155,173,235, 18,186, 79, 36, 11, 88,139,108, 91,101,198,204, 76, 33,155,151, 76, 80,146,159, 71, 79,165, +128,179,234,103, 11,217,216, 52, 99, 55,153,172, 93,210,140, 61,155,141,155,229,186,119,118, 27, 83, 3,194,185,250,121,118, 36, + 47,147,185, 87,125,143,139,249,253,118, 99,100,203,163,121,245,171,107, 93,205,153, 54, 14,126, 45, 2,204,186, 76,185, 9,160, +218, 40,168, 53,142,118,153,213, 2,135,166,247,203, 5, 84, 53,101,175, 54,170,114,166,109, 31,204,181,100,245, 43, 52,228, 25, + 83,207,114,228,186,255,203,154,105, 5,180, 82,204,252, 14,113, 81, 36,227, 38, 63,174,199,155,221,191,145, 7, 49,111,199, 86, +206, 42, 53,232, 67,111, 13,130,129,149,123, 85, 65,134, 99,116,179,215,201,204, 2, 86,234,139,174,221,114, 36,202,110,159,102, +254,226,129, 31, 56, 5, 18,147,209,114,119,203,143, 73,230,181,234,185,226, 28, 5,189,247,116,137, 72, 41,248,192,238,111, 50, +157,241,213, 83,103, 44,120, 37, 49, 38,158,129,209,156,247,124, 12,107,196,170,131,150, 1,251,136, 24, 72, 72,144,132,232,120, + 12,204,144,196, 56, 37, 53, 15, 81,158, 53,238,144, 0,241, 55,144,238, 38,166,215, 71, 84,215, 26,155,120,129, 29, 66,178,171, +173,115, 83,179,175, 87,198, 96,136, 32,114,142,111,225, 4,188, 0,227,121, 16,143,209,161, 77,255, 68, 89,189,116, 81,182,187, +221, 54,196, 57, 21,251,196,237,211, 57,168,153, 8, 76,108,108, 67, 92,146,204,111, 54, 59, 63,159,218,174, 42, 7, 6,201, 28, +180, 73, 20, 90, 9,218, 36,142, 78,183, 38, 49, 90,196,170,217, 37, 9,104,103, 80, 98, 98,196,243,173,241,140, 82, 8, 30,227, + 89,200,238,100,204,149,189, 93,174,140, 71,140, 19, 77,148, 56,193, 28, 36,223,213,222, 34,252,109, 90, 60,171, 26,219,202,116, +220,235,104, 80, 76,187,247,207, 63,183, 0,203, 24, 97,106, 12,177,155, 78, 32, 83,255,206,102,235, 75,182,153, 75,206, 97, 44, +233,172, 83,200,186,231,101,147,172,190,188,201, 55,182, 21,173, 55, 85, 33, 27, 47,150, 60, 76,166,110,175,169,103, 27,203, 50, +103,200,171,216, 45,191, 70, 50,239,111,106, 23,238,165,191,207,187,191, 77, 45,173, 95,151,237,183, 49,253,105, 19, 96,154, 26, +176,169, 3,214,186,154,113, 99, 22, 95, 67,239,215,102,181, 53,160, 91,148,199, 53, 45,206, 81,155, 62,132,166,128, 96,149,251, +174, 41,144, 47, 3,229, 86, 76, 66,201, 56,103,145,225, 51,218, 90,174,198,110, 93,191,213,143, 50, 7,182, 91, 6,234,139,110, +119,177,122,237,158, 15,157, 62,116, 55, 96,176,137,234,108, 34,157,129,149,124,157,167, 28, 26, 29, 79, 45,128, 38, 17, 42,181, + 45,213, 78,196,197,243, 16,213, 69,148, 85,242,193, 11, 16, 71,229, 27,145,185, 89, 10,162, 80, 14,196,236, 18,107, 27,196,180, +179,176, 76, 65, 93, 57,185, 77,112,192,232, 5, 54, 80, 80, 98,153, 5,177, 67,216,137,242,192,235,218, 44,218,235,115,209, 78, +147, 51, 51, 17,145,196, 28, 52, 99, 6,209,144,192, 8,202,139,241,146, 4, 84,228,186,162, 60,144, 46,248,107,168,238, 22,210, +223,135,223,219, 64, 5, 93, 60,191,139,231, 7, 36, 78,102,149,185, 11,151,160, 82, 5,240,100,102, 1,125, 54, 5, 70,136,120, + 40,207,199,204, 20,137,182,230,168,232,196, 9,109, 40, 75,185,167, 95,124, 98, 27, 6,181,182,114,180, 54, 70,178,242,180, 70, +235,204,173,235, 4, 20,180,198,196,130, 86,198, 50, 2, 98,117,208, 18, 45,232, 40,177,230, 52, 56, 67, 26, 79,217, 88, 75,236, +121,142, 18, 51,183,148, 21,223,202,227, 70,179,136, 88,107, 38,225,152,221,233,140, 43,147, 49,187,147, 49, 81,100,251, 14,148, +208, 22, 30,234, 23, 83,211, 60, 30, 83, 39,237, 90,167,251,222, 54,123, 43,210,238, 6,235,224,148,160, 24, 25,152,153,132,192, + 25,206,152, 66,246, 59,183,243, 20, 89, 90, 84, 84, 9, 96,231, 94, 87,168,213,231,235,244, 38, 95,187, 79,143, 49,109,154,115, +162, 54,170,174, 69, 45, 19, 69,180,213,136,167, 2,220, 41,244, 11,164, 52,125, 85,214,220,120, 53, 20, 0,189,158,122, 55,203, +102, 52, 13,192, 93, 75, 35, 55, 4,152, 52,212,204,169,121, 77, 27,250,185, 21,147,212,146,222, 95,254,187,105, 12, 10,154, 74, + 98,109,129, 23,170,155, 81,105,232, 21,168, 59, 47,186, 69,169,161, 86,106,215, 84, 95,195,137, 40, 34,191, 99,239, 35,243,202, +240,239,171,102,237,254,141, 3,116,119, 23,139, 5, 69,252, 30,244,214,217, 56,120,156, 63,245,193,247,113,244,200, 97,235,114, +163,236,178,146,196, 49,159,121,250, 5, 62,243,228,179,232,233,152,239,248,166, 71,248,202,201,151,120,250,233,103,173,226,155, +120,220,117,226, 14,222,120,255,221,252,250,163, 79, 35, 94,192,187,223,252, 32,107,131, 62, 31,255,210, 41, 38,225, 12, 68,241, +166,215, 28,231, 53,199,182,248,232,231,190,198,238,238,132,119, 60,124, 55, 39, 14, 31,224,215, 31,127,134,241,120, 10,192,235, +238, 62,198,219,238, 63,206,175,127,250, 25,174, 92, 29,242,208,189,119,240,190, 55,220, 77,167,227,205,221,156, 68, 32, 73, 52, +191,252,135, 79,114,238,242, 54, 91, 27, 27,124,231,251, 30,166,215,177,245,240,142,209,172,235,132,245,120,204,217, 47,124,137, +171,159,127,140,158,116, 17, 47,180,153,118, 96,105,125,227, 15,144,206, 38,116, 55, 56,250,224,155,184,253,225, 55, 58,193,151, + 69, 79,193,100, 52,230,212,147, 95, 35,158, 70, 28,188,243, 24,199,238,190,221, 74,130,234, 4,147, 68, 40, 18, 38,151, 47,114, +230,211,127, 64,116,229,101, 68,135, 16,135,182,142,175,101, 78,217,139, 91,229,147, 72, 91, 41,218,196,184,102,127,139, 8, 73, +172,137, 67, 75,139, 43, 60, 84,224,219,154,109, 20,161,181,237,212, 39, 8,108, 29,222, 24,235,252,165,210,126,195,132, 4, 99, +235,245,198, 39, 78, 34, 39, 44,161, 73, 52,168, 78,215, 70,177, 26,194, 73,204,222,116,204, 48, 78,216,157, 78, 24,133, 83,162, + 56,113, 78,106,210,224,137,157,181,236, 40,161, 80, 51,115,228, 82, 66,157, 81,230, 53,109,106,178,119,218,119,213,151,103,138, +121, 64,183,109,158, 66,168,124, 98, 21, 16, 8,140, 9,233, 17,103,148,223,242, 13,109,217,250, 58,153, 44, 91,103,178,117, 85, +200,174,211,108, 36,173, 58,233, 2,176,155,146,215,166, 99, 92, 25, 33,120, 91,139,207,128,187,153,103,205,153,118,183,140, 53, +169,202,148,174,138,141,116,229,214,166,121, 90,190,200, 72, 72,201,185,204,246, 22, 20, 23,104, 85,242, 62,154,106,143,247, 20, +208,197,180,207,188,171, 0, 86,234, 64,169, 68, 50,184,216, 85, 46,180,235,192,134,101,217, 98,221, 34,160,149, 22,192, 86,213, +127, 80, 52,186,105,178, 93,173,178, 94,173,123, 29, 52,119,233, 23,207, 65,219,108, 63,119,158, 77,137,108,108,157,186,159,169, + 81,182, 35, 63, 38, 23,249, 62, 81, 16, 20, 58, 90,191,142,107,234, 82,164,181, 29,104,219, 38,177, 46,248, 3, 14, 29, 57,206, +255,240, 23,190,149, 97, 12,103,175, 12,231, 23, 98,108, 12, 23, 39,240,217,147, 87,161, 59,229,135,191,231, 63,229, 23,126,247, + 81,158,126,238, 2,244, 3,208,138,247,191,235, 29,124,223,183,189,155,143, 62,183, 3,198,227,123,255,244,251,248,230,135,239, +230,239,252,187, 79,240,239,126,255,203,188,253,129,219,248, 23,223,247,205, 76,194,132, 39, 94,158,176, 59, 57,207,159,251,166, +119,240,221,239,123, 45,247,252,198,109,252,211, 95,123,156,215,222,113,144,127,254,189,223,204,253,199,247,243,244,133, 25, 87, +118, 78,242,199, 30,121, 45, 63,244,167,223,198,103,158, 63,239, 20,169, 28,112,104,195, 39,190,122,158,115,219, 17, 15,221,115, + 55, 63,250, 93, 31,228, 51,207,159, 99,103, 28,218,238,111, 3,223,240,192, 49,126,123, 99,141, 95,121,252, 11, 28,208, 1,155, +198, 67,137, 70, 25, 91, 34, 16,229, 35,170, 11,170,207,189,239,254, 70,238,127,231,219,184,112,234, 28,169,190, 96,127,173, 79, +111,189,207,197, 51,187,236, 94,220,230,142,215, 63,196, 3,143, 60,200,229,179,151,230, 87,156, 18,195,232,194, 57, 46,126,249, + 75,204, 46,159,181, 53,104,229,178,246, 76, 94,231,137,135, 78, 98,146, 36, 70,135,182, 1, 79,148, 55, 79,241,180, 78,136,181, +153,127, 47,158,242, 49,218,102,243, 10, 87,207,143, 19, 12,225,252, 6,245, 59, 93,148,103, 53,217,227, 56,193,247, 60, 18, 20, + 81, 98, 72, 92, 83,159,193, 35, 74, 96,111, 54, 97,103, 60, 98, 28,134,140,162,144,200, 36,232,196, 29,159, 19,218,129, 42,105, +208,114,253,239,236, 82, 51,255,106, 76,189, 48, 70,182,125,194, 84,220,188,186,102,113, 43, 7,115, 41,173,169, 23,183, 77, 16, + 66, 47, 96,162,186,140,253, 14, 70,105, 14,139, 70, 75, 12,133,140, 59, 93, 56, 60,210, 89,109,201,251,149,103, 26,229,200,124, +110,157,141,153,221,223, 21,139,102,188,244,111,115,128,201, 54,233,153, 69,131,221,124,172, 46,243, 33, 22,246,173,203, 94,101, + 50, 15, 36, 50,191,139, 20,194, 1,106,155, 29, 75, 51,122,147, 7, 22,169,249, 30,116, 69,141, 95,151,210,244,166,180,174, 94, + 85,119,151, 22,192, 81, 4,174,166, 99,149, 18,144,104,235, 58, 86, 12, 80,116, 67,253, 88, 55, 4, 28,229,192,108, 74, 75, 86, + 77, 32,220,166,254,223, 88,215, 55, 45,122, 30,104,110,176, 51, 13, 0, 93, 85,158, 43, 85,227, 43, 24, 55,101,199, 91,109,176, + 30, 16,139,191, 16, 18,187, 70, 74,252, 86,102,235,254,245, 1,121,233, 6,182,102,237, 5,182,142,238,119, 57,187, 61,230, 39, +255,195,231,248,196,211,167,241, 50, 51,211,177, 49, 36,189, 1, 36, 93, 34,109, 48,126,223,137,204, 88, 80,143,189, 30,195, 89, + 4,157, 53, 76, 98, 24,205, 98, 78,158,223,230,175,126,224, 13,220,117,112,147,247,189,238,118,182,135, 83,118,199,225,188,166, +175,141,225,242,222,132,119, 61,120, 27,255,211, 95,124, 63,175,189,125, 63,231,183,199,236, 31,116,237, 56,144,216,108,244, 75, +167, 46,242,253, 63,249,235,204, 50, 13,243,162, 20,227, 56,134,160,135, 70,120,238,220, 54, 63,248,211, 31,225,212,185,171, 40, + 95,161, 67,205,207,253,240,183, 51,244, 58,156,164,199,158,246, 56, 48,211, 28, 80, 33,155, 58,160, 43, 62, 29, 21,224, 7,125, +140,223, 39,209,112,234,233, 83, 60,246,225, 79, 18,248, 10,209, 9,135,238, 56,198, 91,191,229,237,120, 74,185, 81, 51,195,139, +207,156,226, 51, 31,254,131,121, 71,185, 10,247, 48,147, 43,152,189,203, 40, 20, 9,138,196,100,192,205, 56,173,106, 29, 99,162, + 4, 29, 27,180, 81, 4,129,213,122,143,102, 33,113, 24,145, 24,101, 93,209,140, 96, 18, 77, 20, 70,152, 36,182, 75,134,231, 57, +213,183,136,196,184,249,114, 32, 50,202,101,235, 9,126,208, 33,232, 14,152,134, 51,166, 81, 76,108, 12,145, 82,204,226,136,189, +145,165,215, 39,225,196,102,240,169, 75, 87,137, 53, 97, 99,125,171,140,132,205,101, 66,133, 44,190,196, 65,173, 74, 32,166,105, +172, 37, 11,158,148, 0,122,221,188,175, 22,123,211,143,189, 46, 67,191,195, 84,236,232,226, 4,143,216,168,140, 79,188,203,194, +211, 69, 77, 22,150,171, 86, 72,104, 49, 87,158,245, 11, 87, 37,245,239, 28,253,156,106,205,203,114,237, 62, 43, 78,103, 74, 82, +233,212,155, 64,151,184,169, 73, 73,230, 45, 25,174,114, 33, 81,156,223, 90,106, 0,115,153,170, 47,239,170, 16,218,141,140,213, + 93, 69, 77, 75,159,105,160,225,105, 57, 82, 86, 7,104,217,233, 10,105,184,150, 74, 65,190, 97,188,174, 78,127,190,250,117,205, +153,121, 35,117,222,114,236,175, 29, 83,208,110, 44,175, 10,200,151, 24,184,146,251, 92, 87, 4, 89,101, 61, 55, 75,253, 15, 70, +136,148, 27,103, 51,249, 43,243,122, 26,217,110, 54,176,223,216,145,182,121, 42,224, 58,224, 61,219, 1,175,148,176, 54,232,176, +177,214,199,247, 22,126,196,195, 89, 72, 28, 26, 16,231,231,237,119,161,191,101, 65, 61,182,182, 92,118,241, 80, 64,130, 39,194, +175, 62,254, 53,134,211,136,255,246,143,191,153,223,123,242, 20,255,241,201,151,248,139,127,236,117,139, 96,195,192, 83, 47, 93, +230,103, 63,246,101,254,238,159,125, 39,143,127,237, 60,191,240,137,167,248,153, 31,248,227,185, 48, 91, 41, 97,176,222,163,227, + 74,243,137, 54,236,140,102,185,229, 39,240,132, 19,199,182, 80,190,194,247, 20,113,148, 48,232,118,152, 42,197, 89,191,199, 44, +236, 48, 10, 97, 47,138,216,231,135,108, 36,138,141,158, 98,205, 11,232,121, 93,180,120, 36,137, 38, 10, 19, 72,180, 19,145,177, +221,253, 73,226,220,210,140,193,243, 60,130,126,215,234,160, 27,131,102, 74,178, 27,163, 16, 2,223, 71, 99,136, 19,141,111,192, +151,128,216,104,162, 56,182,232,144, 8,130, 79,208, 9, 80,158, 79, 60,155, 49,157, 76, 72,180,166,219, 27,160, 60,143, 56, 74, +136,147,153,181,107,149,212,241, 75,230,224,105,220,113, 36,198, 96,162,177, 83, 76,241,144, 94,135,189, 68,115,121, 56,102, 56, + 30, 49, 73, 18,166, 90, 19, 70, 49,177,142, 92, 31, 67,131,108, 40,213,227, 75,117, 13, 51,117, 53,184,218,140,193,212,104,191, +151, 46,130,205, 1, 72,241, 62,178, 6, 46, 66,168, 58,140, 85,135,161,223, 97,162,124, 52,138, 16,205, 4,143, 16,161, 71, 30, +208, 85,193,114, 85, 50,212,124,142,213, 72, 51, 5, 41, 24,179, 20, 44, 79,231, 12, 72, 97, 20, 46,219,221,175,100, 25,100,231, +117,110, 73,205,129,164, 81, 17, 70, 74, 40,229,212, 92,200, 72,209,144, 50,173,239, 75, 5,200,150, 59,173, 73, 73, 89,165,185, +246,109,106,159,175,180,143,173,169,119,183, 81, 93,147, 21,179,205,236,231,171,205,214, 77,179,116,106,155, 90,125,165,104, 76, + 69,160,209, 20,116, 52, 5,198,208, 98,142,188,169,135,160, 5,248,215,245, 48, 84, 5, 99, 85, 77,180,181,221,239, 6, 18, 17, + 66,191,131, 22, 85,158,122,188, 66, 89,251, 13, 5,245,198, 44, 61,119, 38,109, 86,172, 13, 28,221, 26,240, 47,191,239,131, 12, +103,209,124,233,159, 68, 49,255,250, 35, 79,242, 83,191,253,121,162, 56, 19, 79, 41,223, 54,212,233,164, 48,235, 99,193, 40, 76, + 52, 63,243,209, 39,249,237, 39, 78,113, 97,103,196, 91, 94,115, 20,175,208,133, 21,198, 9,191,241,217,231,248,194,169,139,108, + 15,103, 28,216,232, 46,198,125, 4,166,113,204,195,119, 29,226, 63,254,216,127,129, 65,240,148,112,110,123,196, 95,255,153,143, +242,196,201,243,246, 45, 53, 28,223,191,206,255,241, 3,127,156, 89,148, 16,248, 10, 95, 9,157,192,231,177,167,158, 99,164, 20, +137,248, 68,120,204, 34, 24,135, 51, 6,218,103,205, 27,177,238, 79, 25,152,136, 73,108, 80,198, 48,214,134,158, 82, 4,198,154, +167,104, 99, 65,218,234,186, 24, 78,188,238,110,110,191,255,118, 43, 19, 43,194,246,203,231,121,244,231,126,129,221,175,157, 69, +135, 51,146, 48, 38, 80, 62, 29,229, 97,226,136, 36, 9, 49, 90,161,240, 73, 68, 99,196, 67, 80, 76,103, 83,166,163, 17, 58, 73, +172,222,186, 31,216,230,185, 68, 91, 57,215,142, 71, 86,186, 36,209, 86,212,196, 24,235, 42, 23, 38, 49, 81, 28, 89, 17, 21,207, + 71, 39, 59,140,147,136,189,201,152, 48, 12,137, 51,150,176,169,134,125,101, 61,181,102, 1,210, 13,169,250,114, 38, 36, 75,128, +174, 43,136,215,114, 37, 41, 89,162,103,179,117,241, 90,170,175,176, 24,104, 32, 22,143,153,215, 97,164, 58,140,188,128, 89, 26, +148,218,249, 5,198,120, 68,120, 36,216, 50, 71,115,134,102,202, 39,246, 11, 96,157, 5,240,165,115, 92, 8, 20,178, 89,179,170, + 56,223, 11,215,182,133,119,187,164,183,110, 33,211,215,117,224,232,118, 52,111,100,155, 51, 18,102,105,134, 94, 74, 22,254,236, +109, 94, 44,183, 72,237,181, 84,237,205, 45,180,155,163,150,138,108, 80, 90,100,226,210, 16, 48,150,169,183,213,123,141, 87,215, +227, 41,169,159, 27,147,151, 83,206,130,119,233,168,160,105,145,233, 23, 65, 82,242,223, 73, 85,208,164, 11,193,103,219, 49,182, +249,103, 48,213,101,136, 38,217,230,218,153,126,211,172, 11,175, 43,130,170, 72,249, 76,131, 30, 70,106,219, 75,111, 41,184,183, +201,214,253, 27, 2,230,101,167,201, 36,160, 35,206, 93,217,230,191,251,233,223, 97,223,230, 58,137,107,240,242,125,197,183, 61, +114, 47,183, 31, 88,155, 43,100, 53, 69,158,185, 11, 52,182, 52, 60,198, 84,119,243,198,154, 51,151,119, 33,129, 3, 27,221,220, + 78, 58,158,199,115,231,182,249,137, 95,255, 12,113, 98,213,210,166, 97,194, 11, 23,182,231,181,111, 20, 92, 25, 78,249,210,139, +151,120,243,137,195,252, 63,143,126,149,143, 63,253, 34, 38, 49, 60,251,220,243, 64,194, 84, 39, 92, 49, 66, 40, 30,145, 9, 8, + 35,195,116, 56,102, 79,237,208,137, 7,236,204, 66,116,152,240,252,222,148, 53, 95,209, 55, 66,103,106, 61,211,167,137, 33, 76, +108,150,115,238,133,115,124,245,241,167, 72,194, 24,162, 49,179,237, 75,236,156,121,145,104,178,139, 30,239,162,226,216, 49, 5, + 17,225, 52, 36,140, 52,104,143, 68, 32,142, 18,180, 73, 48,137, 38,137, 34,180, 54,120,126, 23, 21,116,173, 20,108,100,103,202, + 69,169,249,200,157, 40, 33,209, 9, 19, 29, 49, 13, 45,136,207,128,105, 52, 99, 26,135,196, 86,240, 22,109,210, 58,250,162,153, + 80, 50, 38, 33,100, 70,161,170, 22,212, 42,250, 53,219,248, 70, 73,243, 13, 84,207,253, 46,211,128, 82,222,132,100, 74,130, 3, +234,187,230,235, 98,213, 4, 33, 18,223, 2,186, 31, 48, 22,159,208,243,230,128, 44,110,155, 49,138, 9,138,205, 34,125,158,179, + 88, 37,103,160,162, 51,153,252, 82,175,128,224,130, 3,201,157, 59,164,228,156, 22,116,226,141, 89,212,206,139,223,133,100,154, +140, 22,102, 49,178,168,185,103,206, 95,177,243, 62,187,144, 43, 22,138,138, 69, 6, 33,171,157,110,106,190,231,210,108,189,244, + 53,166,214, 43,189,142, 6, 22,234,173,116,203,130,194,178,113,194, 58,128,214,166, 58,128,173,162,238,133,246, 29,241, 11, 64, + 55,149, 2, 47,109, 58,230,219,206,177, 99,170,235,247,165,199, 86, 67,127,155, 66,191,128,208, 60,215,174,107,234,228,212, 4, + 17,186,226,239,165, 37,132, 76,144, 59,119,105, 52, 66,236,117,136,252,238, 34,234,184,129,117,239,155, 9,236,254,245,131,121, + 9, 18, 39, 9,196,214,224, 99, 54, 30,241,216, 23,191, 6,193,218, 66,120,198, 87,220,115,228, 0,247, 28,221,204,205,144,187, + 86,158,197, 13,159,201,174, 43,131,136,156,227, 68, 97,216, 55,171, 50,151,217, 84, 41,197,246, 56,228,119, 30,123,110,113, 19, + 42, 32,112, 42,221, 98, 16, 37,236,140,103,252,143,255,254, 49,254,220, 59, 31,224, 93, 15, 28,227, 67,159,250, 42, 95,252,242, + 73, 24, 95, 4, 61,131,100,202,204, 36, 36,162,136, 85, 64, 44, 29,214,141,162, 31,199,196,225,132, 48,142,152,198,154,211,219, + 99, 2,229,209,193,224, 13, 35, 66,173,121,121, 26,179, 55,141,121, 93, 98,184,116,121,200, 23, 63,253, 21,100,178,131, 76,182, +145,233, 14, 94, 60,196,155, 77,208,161,157,153, 15, 19,141, 14,199, 68,209, 12, 19, 27,167, 49,111,136,227,216, 54,167,105, 39, + 52,131,194, 36, 66, 52,139,208, 24,162,112,102,199,218, 16, 18,177,148,146, 70, 8,117,196,100, 54, 97, 22,199, 68, 26, 98,140, + 53,156, 41,216, 38, 42,201, 59,135,149,202,123,154,234,154, 40, 13,139,103, 83, 29,110,190,152, 86,168, 72, 85,214,235, 76,243, + 2,214, 88, 67, 52, 5, 64, 87, 1, 99,207,102,231, 99,229,147,136,183,188,168,139, 48, 53,138,169,241,136, 17,124, 49,149, 25, +136, 50,249,185,238,178,172, 58,171, 42,183,196, 52,184,121,248,212,151, 61, 59,171,158,205,142,231,157,243, 37,250,239,197, 5, + 89,229,198,206, 22,193, 74,150,178,205,235, 12,228,191, 19, 89,161,174,221,238,121, 83, 75, 69,215,214,229, 77,117, 32,209,116, + 12,109,148,221, 48, 45,204, 75, 90, 80,244,173,124,208,115,175, 49,245,163,115, 13,217,169,174,163,208, 91,142,204,181, 9,148, +170,238, 75, 77,181, 14, 66,243, 8, 94, 13, 56,147,239,147,209, 52, 88,223,146,119,107, 44,218, 46, 71,126,135,216, 95, 77, 73, +238, 86,101,237,117,192,238,223, 56, 64,207,182,252, 47,178,245,181,142,240,193,119, 63,196,161,195, 71, 72,220,153,244,148,226, + 61, 15,221,198,203,219, 99, 43, 40,163, 21,189,142,207,187, 95,123, 59,151,199,111, 98, 16,248,132,113,194, 7,222,112, 39, 29, +223,183,210,165, 73, 66,175,163, 44,238,134, 99,210,158, 88, 69, 66,199, 87,182,205, 75,199,248,158,208,245, 61,136, 38, 16, 91, + 61,120, 21, 15,232,247, 58, 11, 51,110, 17,238, 58,188,193, 95,250,147,111,177,245,100,215,169,173,141,225,119,158, 56,201,185, + 75,123, 40,229,177, 49,232, 50,139, 52, 63,249,155,159,231,208,230,187,248,137,191,252, 77,252,131,159,157,242,201, 63,120,222, +138,195, 36, 17,146, 36, 36,198, 48, 52,138,216, 11,136,188, 14, 90,124,250,216,249,238,123,239, 57,198, 55,189,239, 97, 55, 7, +111,184,235,246,131,248,221, 14, 47, 78, 18, 46,239,133,236, 36, 6, 79, 39,124,109,111, 7, 51,188,140, 31,238, 17, 68, 67,252, +217, 16,111, 50,198, 75, 34, 2, 52, 68, 19,204,116,130,214, 33, 58,209,118,186, 93,132, 36,137,137,162, 24,173,109, 55,123,162, +181,115, 28, 82, 36, 98,136,147,144, 56,209, 14,180, 33, 73, 23, 4,227, 64,188,162,182, 41,176,228,193,213,164,250, 69, 5,125, +217, 84,211,172,107,244,169, 85,226, 50,237,246, 81,183,120, 53, 73,208,106, 32, 65, 49, 83, 62, 19,191,203,158, 10,152,121, 30, +137, 84, 43, 76,205, 16, 38, 40, 34, 20, 29,116,174,159, 76, 81,110,168, 81, 92,140,139,183,159,206,136,187,100, 51,237,164, 0, +196,184,134,199, 37,165,186, 34,221,236,254,145, 80,232, 44,207,108,163, 36, 45, 42, 72,254,187, 44,232,212, 75,201, 53, 80,173, +233,190, 10,216, 55,235, 23, 84,150,119, 76,125,117,176,150,150,175,249,187,105,200,170,155,234,210,171, 56,161,213,117,181, 55, +238,191,197,103,170, 11, 40, 90, 11,201,152, 21, 20,237, 76, 53, 93, 94, 23, 92,212,157,139,186,250, 57, 77,172,133, 41, 31, 45, + 4, 48,202, 99, 18,244,136,149,207, 74,168,126, 11,179,246,170,247,240,111, 24,160, 75, 86,243,221,253,136,208, 9, 60, 30,185, +231, 24,247,220,113,140, 72,155,185, 66, 92,104,224,179,167, 47,145, 56, 87,147,143, 61,245, 34,119, 31,218,224, 91,222,120,167, + 21,202, 0, 6,129,240,209, 47, 60,203,108,184,141,138, 35, 30,253,226,179,156,186,112,149,100,186,227,210, 10,159,243,151, 46, +242,251, 79, 62,199,112,119, 27,146, 49,159,251,234, 11,156,217,232,193,248,138,117, 75,209, 9, 87,207,199,124,248,209, 47,113, +241,252, 89, 72,198, 60,115,234, 28, 79,159, 57,194,123, 31,186,109, 97, 83,173,132, 36, 78,120,244,171,167, 57, 71,196,249,237, + 29,126,247,139, 39, 25,134, 83,134,187,187,252,163, 95,252, 24,127,253, 79, 62,194,131, 71, 7,124,114, 58,114, 74,120,209,124, + 21,212,202, 99,172,124,226,160, 71, 20, 12,216,242,187,124,249,185,151,184,243,158,187,120,211,235,238,180, 95,128, 40,130,192, +227,137,175,156,102,123,111,196, 40,154,241,204,115, 47,177,222, 21,206,109, 95, 69, 79,246,144,233, 16,137, 70,168,112,140,154, +205, 80, 81,132,232, 41, 18, 78, 33,158, 57,177,158, 24,180, 29,125, 51,110,140,204,104,171,201,158, 2,117,213,226,184,212,153, + 46,213, 20,102,122,225,171,204,182,109, 47, 83, 67,253, 40,155, 52,220,168,180,160, 74,161,221,252,107,101,166, 84,245,185, 51, +172, 64,136, 79,232,249,140,189, 14, 67, 47, 96,166, 60,140,168,234,155, 12, 8, 17, 70,120,204, 80,244, 89,140,150, 25,201, 27, +183,192,242,239,186, 4, 56,139, 89,123,182,133, 36,205,162, 23,244,184, 45, 73, 37, 24,148,145,188,151, 59, 89, 13,249, 69,128, +144,144,111,200, 43, 82,164, 34, 38,147,153, 73,110,132,142,146, 32,164,114,202,160,138,126, 95, 98, 15,204,150, 7, 97,254, 0, + 0, 32, 0, 73, 68, 65, 84,210,235, 26,131,129,154, 11, 83, 67,163,175,124, 27, 80, 47,163,215,105,168,179,155,150,181,225, 98, + 19, 93,245,107, 76,229,245, 47, 43, 92,239,101, 77,170,186,229,189, 92,165,159,223, 52, 6, 87, 85,203,111,210,229, 47,147,125, +174, 12,252, 77, 57,131, 84,170, 87, 81,153, 56,136,237,155,233,244,209,202, 67,140,230,213,248,168, 10, 26,150,172, 87,175, 25, +208,149,178, 13,110,221, 1,244, 54, 97,176, 15,214, 15,224,109, 28,100,243,200,109, 4,235,155,152, 78,207, 25,188,120, 24, 35, +140,167, 83,198,147, 41, 36, 9, 91,253,128,142,194,122,114,199,161,109,148, 75, 12,211,233,152,189,221,161,205,250,251, 29, 98, + 99,152,133,177,157,133,247, 2,130, 94,143, 94,191,199,120, 50, 35,137, 99, 6, 93, 31,165, 19,134,219, 87, 33,178,251, 70, 20, +251,182,214, 25, 78, 19, 98, 9,232,110,108,178,190,111, 63, 42,232, 44,230,234, 93,186,178,189, 55, 34,138, 98, 60, 79,177,222, +235,178, 59,158, 98,146, 16,194,144, 53, 47, 65, 77,135,236,157, 63, 3,227,171, 48,217,129,217,200, 30,171,242,172, 61,236, 96, + 63,222,218,126,214,250,251, 56,182,255, 0, 71,246,237,163, 27, 4, 4,202,183, 51,236, 98,141, 79, 70,195, 61, 76, 28,209,241, + 4,149, 68, 76,247,182, 97, 54,129,104,108,193,123, 58,182,108, 64, 52, 65,162, 9,132, 99,219,153, 30,141,145,104, 10, 58,132, + 40,118, 75,114,190,198,186,252, 13, 73,105, 86,157,255,222,151, 51,239,186, 44,222,100, 3,130, 76,173, 88, 74,192,161, 74, 67, + 93,104,152, 15, 54, 21,194, 26,166,158,222,131,134,230,159,134,128, 64,103,234,231, 19,101,235,231, 35, 21, 16, 43,181,124,162, + 74, 78,164,135,225,184,137,184,223,140, 57,204,132, 14,102, 94, 47, 47,254, 63,239,181,158, 23,144, 41,214,199,179,207, 41, 89, +182, 78, 85, 5, 1,154, 28, 51,144, 25,155, 75,155,247, 84,230,234,144, 2, 11,160,168,176,104,157, 51, 14, 11,201, 26, 41,148, +183,230, 77, 85, 82,126,253, 84,103,237,102,105,155, 82, 62,208,212,207,161, 11,229,207,183,106,158,171, 1,152, 85, 50,227, 37, + 0, 51,203, 53, 95,161,253,136,154,206, 60, 99, 42, 24, 9, 83, 1,244,186, 10,212, 91, 0,109, 29, 45,222,138,110, 47,124, 95, + 85,247,165,212, 88,166, 22, 41,254,170, 82, 70,221,220,126, 85, 67, 92, 86,104, 38,201,252,109,212,217,228,229, 67, 39,152, 6, + 93,212,117,128,250,205,204,214, 91,209,239,215, 4,232,169, 54,187,215,177,210,176,157,117,235, 85,222,179,170,106, 73,103,192, +213,208,192, 40,182,186,230, 30,160,146, 5,119,232,217, 67,216,153,204, 32,154, 89, 32, 11,167, 16,134, 22,184, 18,103,102, 34, + 48, 74,102,214, 36,198, 11,172,110,187,215, 37, 82, 29,162,200,141,195,137,207, 56,118,250,233,142,238, 70,219, 0, 97,251,210, +208,117,214,119,153, 17, 51,139, 35,232,246,157, 70,125,106, 56,163, 64,117,160,235,147, 0, 59,177,179, 65,213, 26,124,205,104, + 22,194, 36,178, 37, 3,207,205,226,251, 61, 48,177, 13, 86, 58, 3,232,172,145,116,215,216, 27,172, 19,171, 30,187, 83,197, 70, + 12, 3, 95,211,145, 8,101, 4,101, 18,196,179,199, 27, 38, 86,115,157,222, 62,240,251, 16,111, 64, 18, 35,253,153, 61, 15,209, +200, 6, 14,211, 61,100,178,179,232, 75,136, 12,226, 57,237,248,244,162,171,224, 55, 77,133,201, 70,110, 76,201,228,193,189,182, +129,173,108,113, 45,212,114, 23,244,150, 20,142, 99,177,183,166,209,153,149,157,157, 26, 70,110,106,197,103, 50, 11, 92,132, 71, +232,249,140,188, 14, 35, 21, 48, 85, 30,137,168,198,251, 67,230,182,168,194, 8,197, 24, 69,132, 16,184,210,135,146,229, 49,180, +121, 45,189,196,200, 69, 76, 62,134, 40, 83, 93,203,130,126, 54, 99, 79,235,243, 11,233, 88,147,123,191,101,136, 72,131, 51,201, +124, 59,178,124, 89,185, 95, 18,215, 24,103, 29,218,242,205,147,197,209, 58, 74,192,222,100,116, 92,115, 58, 1, 82,254, 61, 54, +101,210, 85,234,106,117,180,125,221,104, 88,219, 26,119, 45,216, 87,176, 70,122,222, 67, 33,149,129,136, 49, 11,105, 30, 83, 16, +140, 41,219,105, 21,160,234,154,242, 82,229,123,179,156,237,182,233, 31,168, 11, 52, 42,207,185,105,118,162,211, 43,148, 57,218, + 8,206,148, 10, 1,101,181,224,141, 98,218,237, 19,250,193, 45,243, 79,191, 41,244,251, 53, 3,186,242, 44,160, 7,125,232,109, + 64,127, 31,172,239,135,245,131,176,118,208,254,127,125,159, 53,118,241,130, 5,120,166,214,168,113,106, 96, 50,179,117,112,109, + 96, 54,182,141,104, 81, 8, 58,118, 29, 65,206,245,173,187,102,193,179, 59,176, 1, 68,167,111,247,105,140,245, 92,143,166, 16, + 14,157,121, 12,206, 40,198,101,236, 58,178, 75, 92,226,220,225,252, 1, 12,182, 28,184,119,236,107,114, 51, 34,198,190,127, 18, +218, 99,242,118,221, 18,233,204,104, 12, 54, 80,208,137, 61,190,222,166,253,188,251,110,199,108, 30, 96,220,223, 36, 12,250,140, +253,128, 45, 37,172, 35,244,208,116,140,193, 75, 45,103,181,113, 78,117, 58,255,255, 56,130,120, 10,211, 17,204,246, 96,116, 17, +174,158,206,160,169,198,152, 24,116,146,239,212,173, 4,246,242, 5,112, 9,184, 75, 52, 50,171, 12, 62,138,227, 44,197, 55, 42, + 46, 90,166,196,105, 59, 11, 44,186,164,110, 88,252, 0,109, 77, 64,154,110,248,178,204,222, 54,195,121, 76, 85, 58,174,230, 17, + 42,175,198, 32,182, 60, 32, 54,192, 20,197, 16,159, 16,143, 30,122, 94,183, 94,210,172,151,134, 30, 5, 7,146,197,238,115, 93, +232,106, 95,202, 46, 51,163,112, 69,122, 61,187, 88,170, 34,197,234,118,144,184,142,251,197,177,200,210, 2,152, 94,111, 74,230, +210, 67,153,128,160, 24, 0, 46,116,233,196,228, 85, 3,115,108,128,201,203,174,234, 2, 83,176, 42,216,195,106,230, 36,198,180, +151,145,173,171,133,139,169, 2, 72,179, 52,207, 47, 37,101,159,162,236,109,155,192,163, 54, 91,166, 94,160, 69, 90, 6,202, 77, +129, 54,166, 58, 48,168,234,105, 17,234, 27, 18,197, 52, 56,220, 81, 29, 24, 84, 5, 30,197,121,245, 92, 6, 47,138, 73,103, 13, + 45,234,186,169,247, 87, 66,164,230,218,197,103, 36, 3,232,157,129, 5,244,181, 3,176,126, 24, 54,142,192,190, 99,112,248, 1, +186, 71, 79,112,224,208, 33,130,110, 7,163,178,196, 96, 6, 56,157, 59, 91, 28,107, 46,189,248, 28,209,211,191,111, 51,246,185, +150,188,111,131,134,193,166,221,255,190, 59, 80,251,142,177,177,239, 0,131,181, 53,252,192,195, 24,152, 77, 67,134,187, 59, 76, +118, 46,194,149, 51,176,125,198, 2,245,116, 15, 98, 23, 48, 40,207,254,108, 28,166,251,230, 63,193,145, 3, 91, 25, 91, 87,149, + 41, 28,155, 69, 80,160, 53,147,201,140, 43, 23,206,161, 47,156,132, 75, 39, 1,203, 20, 48, 27, 46, 64,189,191, 15,238,121, 39, + 7, 94,247,141,172,173, 15,192,243, 73,148,135, 32, 4, 34,116,128, 53, 12, 61,160, 99,192, 51, 11,107,204, 84,253, 64, 22,146, +113,206,121, 46,198,196, 49,195, 43, 23,153,124,246,151,225,212, 99, 54,200,136,109,247,253,194,145,174,208,200, 84,182, 28, 57, +126,212,180,160, 38,151,106,166,228,229, 74,203,168, 61, 83, 67,242,215, 27, 58, 72,201, 2,100, 42,169,203,166, 90,106, 59, 15, +244,197,115, 9,110,246, 92,249, 76,188, 14, 19, 9,152, 40, 69,172, 84, 43, 64, 47,123, 68,162, 24, 26,159, 41,138, 53,242, 35, +102,217, 17, 64,201,204,157,207,251, 23, 74,148,224,178, 35,111,197,184, 75,179,236,174,150, 29, 55, 76, 3,138,196,228,155, 32, + 77,193,243, 93, 10,223,191,206, 28,139, 90, 64,242,242,117, 49, 7,230,133,137, 77, 97,104, 34, 87, 41,151, 22, 61, 18,101,180, +177,105, 1,210,180,220,166,109, 15, 70,155, 14,112,168,110, 6,171, 4, 28,211, 12, 78,186,101, 9,169,149,128, 76,201,140,186, +212,100,193,213, 44, 67, 61,160, 55, 41,241,149,177, 48,186, 97, 59, 93, 23, 92,153,234, 99,162,198,118,217,152,114,135, 54, 49, + 16, 6, 61, 38,157,126,171,198,206,182,192,126,179,168,248,178,160,193,191,182, 44, 61,109,134, 11, 92,134,238, 50,212,141,163, +176,121, 20,142, 62, 8, 39,222,202,155, 30,124, 13,127,250,129, 30,111, 60, 8,235, 65, 13,125,228, 28, 91, 79,143,224, 71, 63, + 22,112,246,133, 39, 97, 58,116,254,232, 98,109, 82,251, 91,112,248, 1,212, 29,111,224,141,247, 28,231,221,119,245,121,237,126, +225,248, 0,250,190, 93, 88,174,132,112,122,239, 54, 62,115,238,126, 62,245,252, 14, 23, 94,120, 22,206, 60, 1,187,103, 45,176, + 39,161,171,253,247, 96,243, 14, 30,120,224, 1,126,252, 29, 11, 23,172, 42,215, 40,128,203, 51,248,196,203,183,241,225,175,220, +199,153,103,159,129, 51,159,131,237,151,109, 22, 29, 69, 86, 65,111,112, 0,142,191,158,191,250,222,123,121,255,237, 25, 42, 49, +179,192,121, 88, 48,247, 42,234,150,101, 41, 91,162,225,195, 95,188,131, 79,158,122, 6,206, 63,109,223,211,235, 44,168,248,150, +139,153, 20,213, 62, 86, 92, 4, 77, 67,214, 92,188, 3, 76,137,157,125,211,226,156,215, 94, 55,181, 84,172,110,104,214,169,237, + 82,118,251,141,197,142,170, 77, 84,192, 88, 5,140,197,101,231,133,115, 84,119,143, 20,159,155,207,171,139, 98,226, 70,219,212, +124, 96,179,122, 17,150, 12, 21,175, 11,128,155, 61,230,236,219,165,205,108,197,140, 93, 81,230,117,190,124,178,116,137,151,122, + 22,116, 85,193,222,181,204,250, 52,199,188,152,124,249, 0,105,214, 46, 16,150, 77, 81, 86,205,176, 87,202,206, 77,253,118, 77, + 98, 37, 85, 34, 42, 77,116,115, 85, 77,186,152, 65, 86,237,187,169, 20, 96, 26,142,167, 8,144,186,161,102, 94,246,126,194,234, +158,238,117, 1, 15,180, 27,201,107, 42, 9,152,138,250,123, 17,208,117, 73, 38,175,115, 6, 80,194,184,191, 70,232,117, 16, 99, +144,155, 12,192,175,158, 76, 93,148,243, 36,239,218,250,249,218, 1, 88, 63, 10,251,110,131,227,111,196,123,240,189,252,215,239, + 56,204,119, 63, 32,220,187,217,126,183, 91, 10,250, 74, 44, 45,222,217, 0, 63,118, 25,240, 38, 28,127,152,131, 15,188,133, 31, +120,100,157,111,189, 11,238, 92,131,160,172, 9,249, 56,124,231,107,124,158,120,224, 32, 63,253,212, 62,126,239,137,195,152,147, +159,134,171, 47,218,236,223,184, 58,121, 48, 96, 32, 9,111,219,231,181, 62,190,247, 29, 17,190,227,196, 22, 63,113,228, 17, 62, +246,196,126,120,225,113,216,125,217, 82,254,224,234,226, 93,238, 89, 55,188,237,192,141,187, 28, 18, 3,143,245, 19, 80, 93, 87, +110,232, 56, 95,121,175,185,113,171, 52,155, 48, 75,252,186,172, 72, 89, 74,197,205, 40,197, 20,148,242, 17,148, 54, 53,207,162, +222,114,155,122,102, 93,141,147,204,141,109, 27,225, 60, 38, 42, 96,230,230,206,167,226, 17,151,156,143,107,209,107,208, 24, 38, + 40, 70,248,204, 80, 4, 36,115, 33, 25, 47, 3,118,197,241,179,226,249,210, 37, 30,231,117,217,109,217,182,101, 89,126,150, 62, +215, 82,221, 97,174, 51,244,167,200,178, 6,189,206,124,203,146,201,228,179,244,122, 58, 21, 80, 23,128,181, 5,229, 34, 77,220, + 58, 8,104, 49, 21, 81, 13,234, 38,147, 53,202, 82,163, 73, 93,167,123,254,115,154, 74,218,188,238, 62, 88, 69,202,181,169,193, +111,213,145, 51,106,168,115,104, 57,167,111, 90,218,182,214, 0,255, 18, 83,208, 48,210,214,250,253,179,193,143,134,200, 15,216, +235,172, 19, 43,133,170,188,227, 94, 93,143, 34, 19,224, 95, 83, 45,221, 19,215,172,214,183,128,187,126,200,210,237,183, 61, 76, +240,134,111,226,239,189,103, 63,223,117, 47,172, 5,171,237,217,142,184, 43,219,124,214,223,180,239,213, 25,192,241,215,113,247, +235,223,202,255,252,141, 62,239, 61, 86,231,205,237,130,131, 0,222,119, 12, 30,218,242,248,167, 27,247,242,243,221,117,226,175, +125, 10,118, 94,182,217, 58,128,116,154,173,156, 10,143,158, 7,111, 59, 4,255,248, 27,125,254,201,224, 62,254,125,208, 33, 57, +253,121, 24, 94,177,205,114,157, 53,240,122, 78,145,168,249, 56, 91, 3, 68, 26, 97,166,186,250,110,117,189, 97,151,155, 41,136, +252,148,152,129, 52,213, 51,203,163,248,101,202, 22, 86, 89, 92, 77, 45,237, 94,103,173, 88, 70,195,167, 96, 30,139, 71, 40, 30, + 99,207,102,232, 83,229, 17,185, 62, 15, 49,180,206,208,155,158,159,137, 48, 52, 62, 51, 60,250,232,185, 21, 43, 5, 32, 47, 54, +202,149,145, 31,185,177,172, 12, 77, 95,204,216, 61,169,151,230, 21, 74,236, 83, 11, 8, 89,148,116, 21,202, 27,223,202,206,191, + 42,169, 1,155,185,180,112,201,188, 59, 75, 39,188, 29,109,222, 64,201,202,117, 4,130,186,226, 25,227, 78,254, 82,137,131, 69, + 89,203, 84,238,203,172,102,134, 98,218, 3,125, 25,160,183,214,139,111,201, 50, 64,179,153, 13, 37, 84,118,213,190,234, 74, 4, +181,217,124, 19,203, 82,160,237,203,108, 89,141,169,102, 41,166, 65,143,113,208,115,238,157,198,169,157,191,250,129,253,250, 50, +117,229,129, 4,139, 44,125,176,223,130,250,209,135, 88,123,195, 7,248, 27,239,221,199, 95,185,207,137,179,173, 28,113,184,255, +248,125,232,110, 88,112, 63,112,130,227, 15, 61,194, 63,123,143,207,187,142,174,182,191, 35,125,248,145,183, 0,230, 40, 63,171, +223, 5, 39, 31,181,163,104, 73, 12,158,207,181,126, 87,119,174,193,223,126, 68,208,114,130,255,215, 83,196, 47, 62,105,179,117, +191, 3,126,128,175,224, 70, 94, 7,233, 8, 19, 38,177, 77,126,198, 54,216,153, 28, 89, 93,239, 89, 94, 5,153,130, 84,174, 28, +185, 95, 11,133,208, 34,165, 91,103,116, 81,213,125,223,166, 17,174, 46,178,110,170,175,155, 98, 19,156, 40, 66,241,153,170,128, +137,242,153, 40,143, 88,148, 51,108, 88,233,228,181, 9,125,137, 17,134,226, 49,209, 62,235,196,248,105,246, 90,168, 59,103, 23, + 50, 85,164,208, 75,192, 62,167,152, 86, 8,238, 22,178,178, 37,231, 66, 22,212,190,148, 1,119,121,101, 38, 7,236,146, 43,229, + 44,174,207,108,103,189, 80,174,245, 46, 38, 59,237, 94, 49, 99,155, 29,195, 48,203,172,143,170, 0, 34, 43, 30,149, 15,130,234, +100,144,218, 72, 3,183,201,240,139,150,166,105,217,200,100, 62,121,217, 8, 88,101,166,107,234,183,169,220,143,105,206,198,235, + 74,104,141,199, 36,213,165,131, 37, 9,221,150, 35,111,197,227,104,106,130,148,154,233,149, 74,117,190, 66, 54, 82, 70,191, 47, +188, 19,132, 97,119,131,208,239,184, 44,253,230,103,213, 55,122,223,198,152,107, 0,117,145,197, 40, 87,119, 3,250,251, 97,243, + 24,193,189,223,192,127,245,142,125,124,239, 3,249, 12, 53,210,240,133,203,240, 7,231, 12,195,168,250,107, 19,129,171, 51,184, + 60, 14,173,104, 76,208,135,193, 1,250,119, 62,196,223,120,107,176, 4,232,137,129, 11, 19,120,252, 34,156,218, 51,120, 2,119, +111, 8,111, 63, 2, 7,187,139, 99,232,249,240, 15,222, 2, 47, 14,143,242,145,225,235,224,226,147,174,190, 30,241,194, 78,194, + 63,250,124,222,244,163,236,113,124, 32,124,203,237,194, 93, 27,139,191, 29,235,195,223,122, 19,156,218,187,147,207,140,118, 45, +189,239, 89,245,187,223, 60,109, 56, 53,172,136, 64, 75,110, 62,229, 22, 97, 31,219, 64,215, 17, 8, 92, 54,166,220, 56,212, 51, +231, 35, 76,184,135, 76,199,152, 48,180, 99,111, 78, 42,182,106,193,169,202,174,165, 0,237,217,165,182,108, 17,145, 2,200, 75, + 33, 27,106, 26, 33, 18,150,237, 83,171,234,172,198,180, 19, 10,169,162, 25, 5, 99,173,102, 73,229, 30,133, 88,121,132,226, 51, + 17,159,169,242,153, 42,143, 80, 20, 9,214, 64,231, 90,129,188,182,206,142, 96, 4, 70, 40, 70,226,179,207, 40, 2,116,222, 30, + 53,147,177,103,105,110, 67,222, 93, 77,153, 12, 72, 22,230,219,115,153,139, 44, 48, 48,103,136, 34,139,247,202,102,178, 58,251, + 28, 89,231,181,101, 48, 47, 11, 4,114, 20,188, 89,254, 94,151,182, 45,105, 28,169,154, 99,207,126,185,105,183,188,176,156,117, +205,123,243,205,194, 78,182, 36,191,206, 5, 12,243,215,215, 52,142,154, 26, 54,168, 18, 92, 51,222,243,186,130,101, 42,134, 25, +166,133,110, 67,213, 40, 88, 89, 35,161, 80,221, 41,222, 84,171,174, 98,187,154,186,224,171,244,225,107, 75, 6, 45,131,151, 42, +209,152,178,192,171,248,124,153,243, 90,165,239,186,134, 40,232, 48,236,173,103,168,175,155,151,161,223,172,250,186,136,172, 10, +234,169,173,170,111,155,215,186,235,182,129,237,200,253,220,119,207, 93,124,207,125,133,134, 29, 3,191,114, 18,126,252,211, 35, +206,158,189,100,169,111,215, 77,110, 59,187,157, 54,187,182,163, 89, 24, 13,147, 43, 16,238, 65, 48,128,125,183,243,222,123,246, +241, 29,119, 47,211,209,191,118, 10,254,247, 47,133,124,249,165, 29,146,233,200,138,126,244,214,121,228,174, 77,190,247,245, 1, +223,126,215,226, 88,250, 1,252,173,183,192, 23,206, 28,231,242,238,203,118, 60,109,231, 69,206,125,225, 15,249,231, 79, 13, 28, +165,237,217, 62, 1,229, 58,238,211,206,123,165,160,179,198,135,238, 57,196,255,250,158,128,135,246, 45,142,227,246, 53,248,254, +215,194,247,191,116, 55,241,222,121,155, 69,239,158,229,215, 30,143,248, 53,229, 47,101, 74,137, 73,205, 2,178, 26,158,102,126, + 30,148,209, 4,198, 48, 0, 54,140,102,160, 35,186,113, 72, 55,154,226,237,158,193,123,233, 81,212,116,219,206,174,199, 33, 70, + 39,249, 43,183,176,120,230,154,149, 74,100, 67,171,233,110,169,165,238,218, 40, 84, 73,211,162, 68,203,217,114,170,103,101,179, +148,104,202, 58,104,113,142,180,198,138,199,216, 17, 53,159,177,248,204, 28,205,174,211,133,252,102,210,106, 14, 4,103,120,236, + 73,192,196,120,116, 73, 80, 25,250, 54, 59, 61, 41, 82,200,120, 76,121,246,155, 61,193, 73,145, 78,207,100,225,217, 44,218,100, + 2,135,116,219, 36, 3,152, 34,229, 25, 54, 69,234,189,196,109, 77,149, 48, 68,149, 2, 51,166,162,233, 74, 88,234,223, 44,219, +174, 40,108,148,141, 80, 74, 71,178, 76,121,192, 80,124,189, 89, 10,199, 40, 5,102, 41,201,238,202,152, 42, 67,187,209,178,170, +121,248,182, 13,118,141,250,244, 45,216, 47, 83,145, 17,235,150,219, 86,225, 82,157, 95,122, 29, 5,223, 84,187,111, 18,193, 41, +171,169,151,117,230,235,146, 68,107,216,219, 36, 12, 58,215, 37, 54,243,106, 0,246,107, 0,117,207,138,175, 4, 61, 59, 51,190, +182, 31,117,232, 62,190,237,158,128,219, 7,249,173, 63,123, 9,126,244,209, 41,151,159,123, 6,134, 47,219,153,235,233,158,157, + 71, 79, 66,135,112,145,251,113,233, 73,218, 77,223,219,194, 63,112,156, 63,127, 31,244, 11, 84,254, 47, 61, 15,127,239, 19, 35, +246, 78,127, 21,198,151,172,100, 43,144,248, 61, 30,191,116,152, 83, 59, 15, 96,232,243,103, 78, 44, 94,243,192, 38,252,169,251, +250,252,220,233,131,176,251, 18, 76,118,225,228, 39,231,146,171,120, 78,120,198,243,109,137,193,239,218,192,162,103,197,116,158, + 24,223,199,223, 9,238,225, 95,127, 64,177,149,233, 21,248, 19,119,192,195,183,173,241,185, 11, 71, 96,251, 69,219,153, 62, 27, + 47,231, 32,198,102, 10, 10,172,175,185,209,246,115,207,198,246, 39, 30,163,227,152,153,137,137, 48,140,147,152,126, 50,101, 48, + 27, 51,152,110,211, 31, 95,161, 51,190, 76, 48,217, 65,205,134,120,241, 12,113,129, 81,153, 13, 39, 37,191,103,103,152, 75,183, +151,146, 28,187,110,174,163,230, 57, 83,160,125,105,184,185, 27, 3,136, 74, 26,212,204, 15,211,234,235,121,182,102,174, 60, 75, +179,139,103,193, 92, 20, 90,154,149,245,110, 32,166, 99,128, 72,132, 61,227, 51, 34, 96,141,136,116,234, 93, 21,168,114, 83, 0, +181,178,238,241, 34,168,169, 76,214,175, 10,223,201,146,134, 64,209,115, 61, 11,204, 37, 93,234,165,141,115,133,203, 34, 27,112, +212,125,135,170, 6,168, 41, 92,159,210, 2, 32,178,166, 89, 69, 90,182,234, 24,234, 4, 86,202,154,226,234,198,210,202,180,229, +219,214,155,169,168,235, 66,115, 61,185,149,102,122,195,182,181,239, 83, 83,211, 46, 61,119, 13, 99,111,101, 1, 60,180,108,154, +107,225,205, 80, 10,232, 52,187,212,101,247,173,141,173,219,196, 94,192,110,127,211,138, 76,181,100,227, 94,173,143,213, 64, 93, +165, 10,114,190,165,223, 59,150, 34,223, 56,114,140, 15,220,158,223,116, 28,195, 79,124, 17, 46,191,116, 10,118, 94,132,225, 37, +216,187, 0,227,109, 39,133, 26, 46,178,115,176,193, 66,183,111, 51,127,191, 3,193, 26,183,237, 95,227, 27,143,228,247,251,212, + 54,252,179,207,205,216, 59,253,180,237, 60,159,238, 88, 80, 20,177,204, 65, 60,229,194,243,134,127,179,245,122,222,116, 32,224, + 53,142, 50,247, 21,188,231, 54,197,255,189,181, 69,120, 86,217, 78,248,209,142, 5,225, 36,180,236, 65,170,142, 39, 30, 4, 29, +232,108, 32, 27, 7, 97,253, 8,136,240,169,103, 55,249, 63,239, 56,194,127,255,250,197,241,120, 10,254,204,221,240,185,103, 14, +193,206, 75,176,113,148,181,195,119, 16,248,254,210, 2,165,141,181, 90,221, 29,142,152,158,122, 18,118,207,195,240, 34, 76,182, +109,192, 19, 79,193, 36,104, 12,179, 68, 19,234,136, 81, 20,210,137, 71, 12,102,123,172, 77,119,233,135, 99, 58, 97, 68, 71,199, +120,137, 70, 25, 83,218,252, 84, 69,191, 75, 69,198, 91,118,147,206,181,172, 12,165, 53,113, 42, 22,212,182, 0,222, 88, 67, 55, +249,186,124,217,194,164,177,174,115,177, 88, 15,243, 80, 60,166,202, 99,234,192, 60,118,153,249,181,220,154, 55,234,134, 30,138, + 98, 79,124,182, 82, 10, 62, 93, 84, 36, 67,195, 23, 0,153,229,114,114,254,187,173, 16,165, 41,102,236, 75,153,114,137, 22,252, +188, 81,143, 18,111,115,150,133,107,140, 41,204,186,151,120,188, 23, 37, 80,165, 10,208, 91,148,110,170,158,212,172,230, 10, 72, + 11, 48,161,129, 93,210,166,157,196,108, 37, 40,155,150,205,126,165,247, 64, 11, 48,164, 93,199,185,161, 90,184, 73,183,184, 71, +155,164,122,171,238,229, 54,170,126,141,106,146, 13,202,144,117,106,122,186, 8,246, 46,209, 26,119,215,152, 6,221, 91,222,235, +126, 51,178,245,107,168,169, 59,250,221,243, 45,248,246,247,113,215,193,117, 78,172,231, 55,251,248, 57,248,228,169, 29,155,189, +142,175, 90, 33,152,157,115,214,104, 37, 28,185,134, 47,189,168, 93, 4, 61, 43,145, 42, 30,116, 55,161,179,198,125,251,133,125, +157,252,126,127,235, 69,120,249,204,121,107,127, 58,186, 2, 59,103,173, 0,140, 0,189, 45,216, 58, 14, 65,159,167, 79, 95,226, +177, 11,199, 57,177,238, 24,117,129,219,215,132,195, 27,125,206,136,114,106,109, 59,118, 31, 51,119, 60,115,111, 86, 15, 9,186, + 86, 80, 39, 30, 89,192,247,124,204,149, 83,252,219,103, 14,241,157,175, 81, 28,203,176, 18,239, 57, 14, 12, 6,182,193,175,191, +197, 95,251,134,131,124,240,182,101, 58,209, 3,118, 35,248,187,143,109,240,197, 83, 95, 70,143, 46, 98,118,206, 89, 96,159,238, +217, 96, 71,187,203,206, 24,140,142,137,146,132, 40,137, 24, 39, 51,246,162, 41,253,120, 70, 63,129, 65,162,232, 26,159, 46,224, + 17,227, 97,230,139,175,172, 0,160,173,110,200, 10,106,222, 52,236,243, 90, 20,192, 76, 97, 37, 40, 23,229, 16, 18, 4,141,205, +192, 67,229, 19,138,199, 76, 60,102,162,136, 68, 17, 9,243, 57,126,185, 73, 55, 99,211,115,233,119, 17, 34,108,139,207, 1, 19, +208, 35,193, 43,116,193,155, 2, 53,190, 52,182,181, 60,129,152, 55, 93,201,104,196, 23, 51,153,116,134,221, 43, 44,122, 82,104, +166, 75, 85,231,146,204,212, 70,145,110, 46, 54, 65,170,236,254,138,199, 85,242, 89,164,197,181, 82,100, 11,154,174,159, 54, 46, +128,205,215,118, 57,120, 55,129, 77,219,235,186,140,101,210, 53,140, 66,163, 67, 89, 29,197,221, 34,104,208, 45,128,188, 46,200, +168,163,215,235, 50,243, 38, 17,161, 58,247,180, 86,101, 64,179, 90,150,158,254, 61, 86, 30,123,253, 13, 66, 21,228,175, 37, 99, + 48,198,220,244,108,253, 70, 3,251, 53,208,239,178,152, 83, 87, 62,116,214, 56,178, 17,208, 47,180,219,254,193,121,152, 93,185, + 96, 1,124,186,107,129,125,124, 5,134,151, 29,136,134,249, 44,189,215,183,171, 73,119,211,214,216,189, 14, 71, 6, 42,119,199, +198, 6,158,186,172,137, 39, 59,182,219,124,186, 99,247, 59,221,181,199, 22, 39, 86, 62,118,109, 63,163,189, 29, 78,238, 30, 35, +212, 66,207,179,187,217, 8, 96,179,239,115, 6,177, 76, 65, 52,177,153,250,100, 23,226,217,220,248,194,150, 24, 58,118, 27, 81, +214, 11,126,253, 0,140, 46,115,229,202, 30,143, 94,220,202, 81,251, 71,251,176,209,243,216, 83, 29, 48,240,154,117,195,195, 7, +203,179,195, 97, 4, 91, 29,131, 68, 83,100,186, 11,211,171,152,241,101, 24,239, 56,153,220, 56,115,245,185,222, 3,173, 49, 73, +204, 84, 71, 76, 77,194,174, 54,244,180, 71, 31,232, 35,116,241,232,160, 9,208,248,104, 71,241, 26,215,104,215, 14,116,165, 97, +209, 43, 42,131, 45,219,178, 22,219,237,242,174, 74, 82,214, 45,111,170,223,221,134, 54, 50, 31, 23, 74,210, 31, 81, 36, 40, 34, + 55,150, 22,138, 98,166,148,109,124, 19, 33, 49,139,113, 63,185,142, 44,124, 21,177,153,166, 71, 34,194, 46, 62,123,116, 88, 39, +196, 39,153,119,155, 27,113, 22, 8, 82,174, 1,223, 36,220, 66,102, 63,149,115,236,198,202,190,102, 25, 29,147, 97, 11,138, 99, +115,115, 9,218, 2,213, 94,149,137, 83, 8, 22, 86, 17,134,169,107,138,212,153, 64,165, 56, 25, 80,117, 62,170,202, 1,203, 78, +112, 53, 96,113, 29,217,248, 82,249,100, 69,250,188, 13,179,160, 75,202,109,109,237, 86, 77, 29, 83, 87,151,165,155,102, 90,191, +152, 49,175, 10,254, 52,100,242, 85,147, 1,101, 77,128,197,218,186, 46, 2,122,230,185,113,119,192,176,179,230,124, 15, 10,140, + 96, 97, 28,243,235,143,126, 47, 5,121, 69,215, 9,204,101, 31,219, 33,214,144, 68,156,126,186,142, 93,118,158,254, 56,234,221, + 24, 55,103,147,105,156, 67,131, 40, 58,133,243,152,104, 24,199,198, 53,136,105, 87, 15,143,237,255,133,197,191,157,175,248, 56, +210, 36,102, 81,144,247,220,136,125, 26, 14,139,209,142, 45, 72, 22,141,123, 34,206,178, 85, 57, 45,246,216,206,160,107, 43,101, +155,196, 51, 46,206, 10, 39, 81,192, 75,233, 0, 55, 90, 99, 42,154, 39, 23,116,171,109,215, 74, 18, 43, 3,107,141,107, 34,123, +252,233,165,167, 83, 96,215,246, 24, 28,179, 17, 27,195, 72, 20, 19, 32,112,134, 33, 29, 12, 29, 52, 93, 99,232,146,224,163, 9, + 48,120,110, 62,218,135, 12, 68, 82, 58,203, 43, 37,169,160, 41, 91,176, 77, 30,124,165, 4,144,105,145,173, 44,254,157,214, 49, +211,174,117,229,252,224, 23, 64, 30,137, 34, 70, 17,138, 71, 36, 66,140,253, 91, 34,130,201,136,155,164,231,252,122, 64,249, 70, +191, 86, 68,152,137,199, 14, 29,246, 37, 29,186, 76,241,211, 46,233, 66, 19,219,220,200, 37,131,120,105,102, 53,239, 80, 47,204, +147,231, 0,164,164, 75,189,170, 62, 63,223,175, 84, 91,228,146,145,139,133,101,139,214,236, 37, 83,156,101, 47,203,216,139,250, + 10, 85,154,247,185,172,146,114,163, 22, 83,241, 58, 93, 3,146,166,162, 36,116, 45, 30,228, 77, 25,121,235, 90,183,169,183, 96, + 45, 3, 88,221, 98,223, 66,115,199, 57,180,215,112,111, 10,108,160, 94, 64,166,201,123,161,201,138,181,114,252,174,194,180,165, + 46, 99,215,216,236,216,136,114, 13,114,221,185,215, 65,241,222,189, 21,128,126, 35,179,245,213, 65, 61,211,173,141,137, 33,154, +113,117,154, 16, 38, 30,221, 12,176,111, 5,216, 89,118,241,108,243, 91, 96, 29,204,136,103, 46,171,118,141,114,104,215,152,214, +183,178,179,202,183, 75,135, 14,217,158,229,101,250,186, 30, 28, 91, 83,168,160,139, 86,174, 89, 47,232, 57, 95,115,177, 53,126, +223, 58,174, 5, 65,192,254,190, 71,144,217,193, 76,195, 52, 54, 11, 35,150,116, 52,175, 19, 66,236, 45, 80, 33,213,180,239, 14, +236,113, 7,125,187,157,231,161,252, 46,135,187,249, 83,178, 23,194, 40,116,129,129, 8,126, 97,225, 74, 12,204, 18,187,120,142, + 99, 59, 51,173,252, 0,237,119, 81,157, 62,210, 91, 67,235, 8, 68,108,192, 98, 82, 80,119,153,122, 18,131,246,220,231,116,251, +214, 86,161,108,134, 98, 38, 6,101, 64,161,240, 5, 2,124, 58, 70,207,129,222,119,255,183, 20,125, 62,147,207,215,227, 77,126, + 97, 54,249, 76, 95,155,229,197, 26,234,125,211,243,255, 95,152,122, 24,247,147,102,228, 26,113, 32,110,193, 59, 81, 66,228,128, + 59, 22, 33, 22, 69,140, 16,139, 61,242,121, 16, 34,215,159, 73,223, 8,202,189, 14,208, 1,140,242,216,147, 46,123, 38,162,159, +132, 40,146,121,147, 92, 22,124, 21,213, 41,121,177,233,173, 74,213, 47, 5,119, 85,182, 80, 75, 62,227,205,251,166, 47,142,161, +202,168,199, 72,125,189,219,208, 96,157,154, 74,211, 22, 36,132,165,101,205, 56,247, 62, 21, 18,184,109,107,197, 77,251,111, 4, +245, 22,129, 65, 29, 48,150,173,225,154,134,218,179,105,110,148, 91,170, 41,175, 0,230, 77, 13,109, 77, 46,136, 77, 1, 77,153, +222, 80, 27,233,216, 58, 64, 47, 6, 90,117, 77,116, 11,246,208,174,117,227,206,128, 97,111,221,102,233,183,216,120,229, 85,146, +169,103, 70,208,146,216, 58,137,205,182,121,225,202,132, 11,147,117, 54, 50, 93,225,111, 61, 4, 63,183,121,152,232,242, 41, 43, + 80,179, 57,177,103,211,239, 64, 56, 94,212,212,141,179, 30,245, 59,182,211,188,211,183, 96, 27,142, 56,185,167,153, 37, 30,221, + 76,247,251,123,143, 11,191,178,117,152,201,246, 89, 43, 79,171,157,146, 27,216, 38,187,193, 65, 8, 6,108,237, 63,192,107, 15, + 64,199, 91,124,177,219, 83,216, 30,135,246,183,160, 99, 27,235,116, 98, 1,220,196, 46,211,246, 23, 29,254,189, 13,167,105,127, +196,186,204,245,246,177,181,181,198, 35, 7,243,103,229,137, 43, 16,141,102,182, 78,159, 83,116,183,143,231,247,224,103,158, 54, + 12,103, 9,145,129,147,151,167,224, 7,200,218,126, 84, 60,195, 40, 5,157, 30, 38,180,110,114, 6,189,112,107, 75, 98,103,222, + 50, 67,162, 41, 38,156,216, 82,129,184,217, 45, 19,219,185,108,177, 98, 39, 49, 96,195, 38,133, 66,230, 25,187,111, 12,190,104, +124, 3, 62, 26, 95, 12,158,177,208,234, 41, 55, 47,109, 82, 6,161, 56,210,100, 42,140, 91,235, 22, 61, 89,170,131,167, 32,174, + 81,150, 8, 65, 57, 90,221,101,229, 98, 65, 59, 49, 66,172,236,115, 6,247, 49,221,191,175, 39,203,190, 17,207,175, 18, 0,204, +107,235, 98, 89,156,169,248, 12, 85,151, 45, 61,163, 99,166,150, 45,202,136,166,204,189,204,101,121,132,109,137,214, 46, 1,246, +162,230,187,150,229,110,118,157,121,157, 42,100,117, 42,211,128,166,164, 66,126, 54,195, 34, 20,179,126, 41,201,152, 85, 9,117, + 94,181, 98, 87, 57, 0,206,245, 28, 50,105,185, 49,229, 0, 84, 87,135,111,162,230,219,130,186, 46,128,107,149,110,126,177,118, + 94,116,222, 43, 43,165,232,146, 0, 36,199,150,209,220,217, 78, 5,101, 93,247,249,178, 98, 70,101,193,122,211,123,153,154,241, +190, 50,154,188,234,156,153,154, 50, 72, 85, 38, 94, 5,232,197,191,105, 22,141,142, 98,172,137,211, 78,127,139,153,223,125, 85, + 0,250,141,202,214, 87, 3,117,227,178, 71, 29, 91, 0,139, 38, 48,186,194,165, 11,151,248,228,197,245,156,206,251,127,114, 59, +188,235,158, 45, 62,190,125,239,226,214,236,244, 96,188,223,130,122,156, 42,163, 69,118,159,130,117, 61,235,174,219,108,123, 54, +228,249, 75, 51,158,186, 26,240,150, 67,139,253,126,224,118,248,192,131, 7,248,141,189, 19,246, 56,196,135,117, 39,253,234,117, +108, 0,113,224,110,222,127,255, 1,222,121, 56,115,179,104,120,118,199,112,121,119,100,161,165, 59,128,120,159,123, 77,228, 86, +141,192,141,182,249,246, 24, 58,235,214,154,117,237, 0, 12, 14,195,225,123,249,238,135,124,238, 42, 52, 5,126,232, 36,182,182, +175,227, 66, 37,212, 62, 46, 76,225, 87,190, 50,100,247,204, 41,151,121,207, 64, 52,178,121, 4,148, 66,122,107, 48, 27, 97,162, + 16,163, 99,116,162,109,198,158,132,206, 99,126,108,237,100,103, 35, 68,249, 48, 83,214,117,206,216,149, 91, 74, 76, 54,180, 88, + 0,141, 17,102, 78,100, 37,109,154, 82,198,224, 97,127, 68,172,117,166,231,212,198, 60, 99,236,232,157,164,139,127,161, 1, 47, +219,189, 85,208, 4, 55,115,241, 26,133,118, 82, 32,243,108, 92, 64,139, 71,226, 64, 29, 49, 14,208,221,246, 34,104, 17,247,145, +204,252,120, 41,163,120,111, 50, 32,223,136,125,167,160,158, 5,247, 68,132, 29, 47, 96, 83,119,233,185,108,125, 46, 39,156,209, +122, 79, 23, 87,143,252,236,112,209, 91,189,108, 92,176,172,211,188, 8,122, 89, 96, 94,162,233,139,139,180, 44,131,101,153,180, +108, 85,237, 90,211,172, 91, 47, 21,212,107, 21, 64,150, 1, 28,212, 55,246, 53,129, 96,147,235, 88, 29, 5,221,168,202,214, 82, +207,188,248,123,173, 33,209,138,181,236,198,242,130,169,182,101,173, 99, 66,234,246,219,166, 68, 80, 86, 90,169, 19,202, 41,163, +219,203,130, 67, 93, 56,247,186,248,122, 3,147,238,128,113,111, 29, 35,170,242,219,185, 21,141,114,175,108,166,158, 74,239, 36, +145,205, 30,195, 49,140,175, 16, 95,120,158, 15,125,237, 4,223,126,231,162, 91,125, 35,128,127,242, 78,197, 15,234, 19,124,242, +153,117,216, 62, 11,211,203,182, 83, 61,154,218,186,122,226, 50,254,100,102,189,197,141, 59,245,126, 7,162, 9,163, 43, 23,249, +191,158, 95,207,129,250, 86, 0, 63,252, 22,197,165,241,221, 60,246,116, 31,246, 78,217,198, 59, 1,233,110, 97,182, 78,240,129, + 55, 28,228, 7, 31, 22,246,103, 58,231, 35, 13,191,119, 58,134,221, 29,247, 30,125,216,240, 89, 8,234, 4, 54,123, 87,129,179, +123, 13, 44,107,208,219,128,254, 81,228,208,113,254,155,183,108,240,125, 15,229, 79,201,167, 47,192,199, 78,207, 96,116,214,141, +195, 45,159, 54, 37,224,155, 16,198,151, 29,160,187,247, 28,236, 67,130, 1,108,206, 80,113,136,137, 99, 75, 79, 39, 9, 58,137, + 32,154, 97,102, 67,100, 54,132,189,139,118, 44, 80,100, 81,103,215,177, 75, 99, 77, 89,183, 67,238, 95,233, 5,157,100, 11,207, +168, 12, 5,108, 81, 61,181,126, 85, 74,156, 75, 81,102, 79,178, 88,204, 5,131, 81, 44,124,180, 29,186, 27,113,218, 95,198,105, + 93,139, 56,202,214,214,190,151,116,230, 75,234,249,114,141, 35,104,215,123, 3,222,136,215,166, 32,174,148,202,103,234,238, 49, + 82, 62,219,170,203,134,158,225,155, 41,226, 20, 3,179,221,232,105,195, 92, 82,108,248, 43, 19,164, 49,139,172,186,172,121, 77, +231,130,174, 60,248, 37,153,122,186, 20, 50,106,157,141,221, 74,128, 61, 27,228, 45, 43,198, 85,103,198, 52, 80,246, 77,148,120, + 19, 24, 83, 8, 80,164,226, 53,141,218,240,166,221,254,155,106,218,152,230,160,194, 84,100,243,171, 76,142, 24,211,142,101,128, +102,185,216,198,243,189,130,180,107, 91, 90,158,146, 0,163,213,136, 32,213, 51,245, 75,128,158,217, 48, 81, 62,195,254, 38, 51, +191, 75, 83,107,231,173, 4,246, 27,145,173, 95, 3,253,158,216, 44, 59,156, 90,128,158,236, 96, 46,124,149, 39,159,123, 45,191, +113,239,113,190,235,190,197,214, 39, 54,224,223,124,192,227,151,239, 62,194, 47, 61,119,136,175, 94, 77,152,133,201, 34, 51, 79, +235,243,233, 8,151, 49,232, 43,167, 49, 47,125,209,190,207,149, 83,252,230,179,199,248, 51, 39,250,124, 99, 70, 38,246,161, 45, +248,169,247,123,252,203,195,183,241,161,231, 14,179, 51,142, 17,132,227, 91, 1,223,121,159,199, 95,123,157,181,122,205, 62,126, +239, 12,124,228,228, 16,102,151, 93,116,112, 12,121,205, 59,241,250, 27, 25, 52,145,220,202, 36, 74,177,222,243,120,199, 49,159, +191,252,128,240,238, 99,121,103,184,113, 4, 63,249, 20, 76, 47,190,104, 3, 11,191, 91,122,125, 24, 13, 94,111, 11,117,226,237, + 21,154,194,146, 51,211,208,198,138,183, 26,109,155, 2,141,214,232,221, 11,232,207,252, 34,156,254,172, 61,255,113,218, 7, 16, +175,118,209,100,255,165,100,169,230,157, 22, 87,147,178, 85, 58,119,168, 42,151,197, 45,142, 95, 50, 17, 64,186, 11, 89,218,110, + 41, 3,111,113,211,188, 82,212,122,155,253,102,127,178,128, 94,124,216,108,189,195,190,164, 75,215, 68,216, 78,129,101,171,212, +180,185,173,104,220,146, 93,249, 83, 16, 78, 51,239,172,119,186, 41, 4, 3,166,132,138, 79,179,246, 58,237,246,172,184, 75, 22, +220,139, 32, 84,244,112,151,129, 74, 93, 4, 0, 0, 32, 0, 73, 68, 65, 84, 6,186,182,108,242,162,202, 39,190,238,245,166, 98, + 63,109,106,192, 77,157,215,194,138,226, 45, 89,208, 47, 17,210,105,163,210,150,165,231,165, 37,109,110, 76, 57,179,209,212, 73, + 94,117,254, 77, 13,141,222, 4,166,171, 52,231,181, 9, 98,138, 10,114, 66,125, 83, 92,153, 4,108, 86, 65, 46,125, 76,186, 3, + 70,189, 13,140, 82, 14,138,204, 43,194, 0,222, 12, 96, 95, 29,212,181,113,153,250,196,122,158, 79,174,194,206,203,140, 78, 61, +193,191,248,194, 33, 94,191, 63,224,205, 7,243,153,245, 95,121, 16,254,202,131,138,179, 19,197,149,105,192, 44, 41,201,102, 21, +188, 56,132,127,240,251,119,242,242,185,231, 32,218,129,225, 5, 46,190,240, 53,254,225,227,175,231,167,222,175,114,179,240,199, + 7,240, 15,223, 14, 63,244,166,128,151, 70, 1, 10, 56,177, 94,238, 12,247,210, 16,254,151,207, 69,152,115, 47, 44,104,242,181, +131,188,254,254,227,252,227,183, 75,110,140, 39,125,120, 10, 6, 62, 28,237,193,102,167,252,108,252,242,105,120,252,249,171,112, +249,180,179, 66, 5,165, 4,223,203,119,202,189,225, 0,252,155, 15,250,196, 43,156,238,236,225, 68, 9,252,235,167, 54,249,213, + 23,223, 0, 23,190,102,199, 4,195, 0, 66,175,221, 12, 81,203,139, 84,218,239,160,149,174, 60,208,152,115,183,189, 97,110,246, + 8,218,181,222,184, 41,128,151,209,237,165,223,171, 8, 99,229,177,237,119, 89,139,167,120,218, 94, 21,166,144, 29, 83, 39,233, + 91, 49, 62,150,147,247,148,146,166,187,236,162, 43,203, 99,113,185,197, 93,150,105,116, 10,163,110, 85, 89,118,113, 94,184,174, + 28, 80,230,183,158,243,115,167, 89,207, 96,254, 94, 82, 93,143, 37, 83, 6, 80,228,107,245, 82, 1, 98,117,115,233, 85,251,207, +126,143,186,166,212,144,155, 44, 40, 28, 95,211, 44,123,157,179, 90,213,231,168,190,152, 86,107,204,107, 2,247, 98,233,160,146, +233,104, 57,195,110, 74,202, 1, 85,154,239, 75,212,189, 73,253, 31,242,101,172, 88,249,236,245, 54,153, 5,157, 86, 64,250, 74, + 80,240,215, 3,236,215,208,253,190,232,122, 39, 28,217,249,234,238, 37, 56,243, 36,207,175, 31,225, 39, 14,188,153, 31,121,155, + 42,245, 81, 63,222,183, 63, 85,143,131, 29,232, 43, 39, 29, 59, 27,193,108, 2,201,151,248,188,231,243,195,193,131,252,189,119, + 40,222,184, 63,255,154,125, 29,150, 4,106,178,143,231,247,224,135, 63,101,120,230,153,231,225,242, 51, 86,228,197,104, 48,176, +174, 52,111, 57,232, 93,211,137,251,216, 57,248, 23,159,157,176,119,250, 25,152,237,186, 38,192, 65,233,149,188, 25,192, 91, 15, + 95,223,151,252,145, 23, 12,130,111, 27,234, 60, 87, 34, 16,117,115,245,203, 27,192, 79, 86,216,246,149, 2,244,235,221,127,101, + 0,148, 1,112,207,107,127, 13, 9, 16,187,108,125, 83,247,232,234,216,102,235, 25, 25, 87,149,161,213,179,106,111, 20,178,109, + 83,162,245,158,205,154, 77, 13,240, 74,166, 12, 50, 55,142,161, 32,120,195,114,112, 81, 84,160,171, 2,247,178, 12,187,116,198, + 61, 43,247, 42,133, 90,126,218, 41, 95, 1, 74,134,122,206,190, 42,147,214, 52,143,155,193, 10,245,232, 10,134,192, 52, 80,210, + 77, 82,172,117,162, 56,109,244,220, 77,203, 12,120, 41,232,104, 97,223, 90,121,142,218,216,203,182,112,148, 43, 2,122,155,239, +166,201, 0, 38, 13,252, 38,157, 1,163,222, 58, 90, 84, 46,240,125,181, 1,251, 45,202,212, 89, 52,203,197,161,173,169, 79,118, +236,184,151,223,131, 23, 30,229,247, 58, 93, 60,121, 45, 63,244,230,101, 0,110,122, 76, 19, 71,131,132, 83, 27, 44,152,196,130, +112, 56,229,227,225,132, 31,154,190,158,239,125,184,203,183,222,177, 76,175, 47,209,156,198, 2,239,255,246,133,132,199, 63,255, + 20,188,244,217,133,237,170, 40,136, 67,146,107, 56, 97, 6,248,173,151,224,199, 63, 61,229,133, 47,127, 1, 46, 62, 99, 37,103, + 17, 24,236,115,205,114, 55,246, 17,106, 43,188,227,121, 30, 90, 41, 68,121, 24,165, 86, 74,208,111,196, 5,185,202, 62,110,101, + 13,234,102,102,240, 85,175, 73, 51,116,229, 4, 26, 86, 97, 3, 68,132,169,242,216, 86, 93, 6, 18,226,233, 4,196,224,153,148, +162,207,219,174,102,221,218, 18, 41, 31,123,203,214,195,139,207, 73, 29,245,157, 1,255,108, 29,122, 73, 18, 86,150,165, 95,115, +193, 1,121, 7,185, 50,211,211,186, 58,248, 18,152,152,252,223,154,216, 44,234,216,128,146,207,221,214,111,188,173, 37,112, 27, +106,186, 45,152,177, 66,134,221,182,180,208, 6,208,235,104,112, 93,193,148,180, 58,254, 10, 38,129, 21, 1,189, 12,188,115, 0, +158,237,114, 47, 48, 22,233,249,143, 85,192,176,191, 69,248, 10, 72,194,190,122, 65, 61, 59,214, 22, 78, 44,237,172, 2,103,132, +162, 48, 34,252, 78, 60,227,228,238,155,248,129, 55,122,252,201, 59, 96,171,211,110,207,155, 29,108,175,244,108,104, 1, 56,158, +218,140,116, 98, 53,218,191, 52,185,204,143, 92,122, 51,191,245,192, 97,254,220,107,224,189, 71,151,193,125, 18,195,167, 47,193, +127, 56, 13, 31,121,118,151,115, 95,253, 34,188,252,164,109, 50,139, 39, 78,175,213,135,120,182, 36,110,211,244, 56, 53,132,159, +127, 14,126,233, 75,187, 92,120,234, 51,112,246, 73,123,108,241,204,214, 15,146, 16,137,166,172, 7, 55, 86,154,180,163,160,239, +131, 39, 26,113, 60,169, 22,171, 35,159, 21, 94,121, 37, 50,217,155, 13,232,175,150,232,184, 72,173, 87, 53,194,181,101, 56, 34, + 81,236,122, 29,214,147, 46, 93, 19, 34, 38,158, 83,230, 57,233,216,130,127,125, 10,194,197,154,185, 84, 41,202, 85,140,190,229, +192,183,164,121,177,172,219, 93,164,218,129,109,222, 34, 35,229, 6, 46,101,205,105,149,234,116, 77, 64,219, 2, 88, 27,125,210, +155,246,105, 90,206,116,183,217,255, 10,206,100, 85, 31,174,181,146, 91,129,154,134, 21, 92, 22,205, 10,231,103, 69, 38,163,173, + 38,125,155, 96,169,202,106,117,206,194,152,138,210,133, 81, 76,187,107,140,250,235,182,150,110,204, 74,204,220,215, 49,168,147, +177, 76,141,236, 88,219,100, 59,227, 29,153,160, 39, 67,158,217, 61,199,223, 60,255, 14,254,217,209, 67, 60,184,101,253,199,155, +180,159,119, 18,184,184, 55,179,246,171,195, 75,182, 75, 30, 99,197, 95,194, 33, 68, 99,174,238,158,229,183, 47,190,158,143,125, +237,126,110, 59,176,201, 3,251,224,112,223,210, 82,231,167,240,252, 14,156,219, 30, 17,158, 63, 73,124,246,105,184,250,146,149, +167,157, 13, 23, 89,186, 23, 64,184,195, 87,246, 20,127,247,113,155, 5, 55, 69,253, 23,166,240,185,139,112,229,165,147, 68, 39, + 63, 99,107,219,163,203,182,175, 32,137,236, 92,123, 28,147, 76,119,249, 87,207,192,135,207,176,114,173,187,234,253, 53,240,185, +115,130, 36, 19,188,120,130,209,145, 93, 8,149, 27, 3,115,217, 98, 74, 29,189, 82,210,134, 55, 58,147,191,153,141,113,109,223, +255,122,128,188,145,153, 82, 62,219,126,143,129, 14,241,141,179,101,205,120,159,103,233,248,148,138,206,102,240,197, 91, 50,219, + 44, 87, 38, 35, 42, 53,142,122,217,172, 88, 73,185,141,170, 42, 24,194, 44, 53,202, 81, 62, 31, 95,213,109,158,157, 63, 55, 21, +180,189, 52,128, 75, 27,153,227, 54,153, 45,166,125, 22, 47, 45,129,124,213,204, 85,154, 50,227, 22,116, 56, 45,149,242,150, 26, +224,204, 10, 14,115, 21, 12, 70,221, 49,107, 83,205,148,148,129,114,213,152, 99,169,173,106, 6,200,171,158,199, 64,232,249,236, +186,185,116, 86,168, 87,255, 81, 27,107,147,163, 71,143, 94, 35,244, 56,109, 88,207, 41,187,117,214,160,191, 15,214,246,195,218, + 65, 24, 28,128,205,195,176,255, 78,216,119, 7,116,183,108, 86, 47, 42, 31,202,167, 82,172,113,104, 51,255,179, 79,194, 11,143, + 89, 75,213, 89, 42, 88, 19, 32,253, 77,187,223, 77,183,239,141, 67,176,117, 27,172, 29,182,160,111,140,245, 25, 31, 93,130,221, +115, 48,188, 98, 3,129,233,174,117, 64, 75,181,230, 69,217, 46,245,254, 22,220,243,110,216,184,205,169,203, 57,203, 85, 85,176, +169, 74, 5,114,166,123,176,115, 26, 46,191, 0,163,109, 11,232,227, 29,219, 87,160, 19,187,143,238, 58,220,246, 58, 56,241, 13, +214, 92,198,115, 86,174,146,238,183,237,133, 97, 27, 18,197, 56,129,159,100,102, 13,113,158,253, 24, 92,122,222, 58,221, 77,118, + 48,211, 33, 38,154,130,209,104,173,115,160,126, 61,221,147, 55,171, 75,252, 70,110,115, 51, 65,189, 8,230, 77, 29,237,215,115, + 28, 61,157,112, 60, 28,113, 36,218,165,111, 66,171, 23,144, 1, 86, 41,104,182, 75, 6,180, 83,221,129, 98, 71,123,150, 10,135, +188, 81, 76,241,185, 98,182,157, 19, 29, 42,217,110,201,103, 93, 42, 94, 91,145,205,207,255, 46, 25, 85,102,202,189,217,117, 73, + 73,161, 77, 6, 73, 69,198, 90, 4,101,221,114,223,186,134,198,215,171,250,137, 87,100,175,109, 51,215, 38,112, 53, 21,159,175, +105, 14,191, 74,166,182,205,107, 86,209,128,175, 61,239,166, 94,215, 61,251,122, 33,239, 45, 81,213, 24,151,206,164, 27, 17,182, +215, 14,114,113,223,113, 98,207, 71,173,152,113, 41,165, 94, 17,128,190,150,117,252, 58,180,223,181, 27,118,141,129,105,134,150, + 15,173,219,216,116,215,206,101, 95, 61,109, 69,101,130,158,205,102,197,119, 41,131,187,171,117,104, 51,242,217,200, 26,171, 76, +119, 93,147,220,208, 54,227,161,145,160,227, 52,216,141,211,101, 79,192,204, 96,122,197,206,180,139,231,246, 21, 65, 20, 66,232, +102,232,163,137,221, 71,106,146,146, 46, 43, 58,177,251,255,202,239, 90,187,215, 96,224,142,175, 99,129,125, 30, 18, 38,118,126, + 94,219,153,113,146,208,218,188, 78,246, 44,176, 78,119,237,177, 39,145,125, 93, 56,129,147,159,129,115, 79, 91, 80,239, 56,133, + 60,223, 53,182,181,156,218, 21, 17, 55, 97,224,206,229,100,215, 6, 21,179, 61,203, 12,204, 70, 16,135, 86,218, 69,217, 97,113, +165, 20, 90, 91,112,207, 2,201,170, 0,255, 74, 82,237,175, 52,189, 94, 4,244,108,134,126,179, 2,164, 80, 41,118,252, 46,131, +164,139,151, 36,116, 76,146, 7,202,140,232,140,100, 50,246,156, 24,144,148,128, 78, 38, 59,207, 42,187, 21, 69,107, 74,155,232, + 50,139,100, 17,116,139, 35,111,100,178, 42, 85,210, 84, 87, 86, 91,207,101,134,153,113, 44, 93, 98, 49,171, 43, 40,250,165,186, +191, 84, 16,138,215, 72,193,183,161,216,245, 53,188,166,137, 34, 55, 13, 1, 69,211,103,163, 2,148,155,102,193,203, 94, 91, 53, +203,222,134,205, 48,166,229,246,166, 89, 82,182,242, 56,205,242, 36,193, 18,160,187, 43,101, 22,244,217, 89, 63, 72,236,249,200, +138,128,254,245, 45, 62,179,116, 97,184, 75, 46, 73,207,170,171,181,167, 32, 61,238, 59, 80,235,217,140,222,115,186,238,233, 60, +120,106,232,146,132, 78,204,102,106,193,120, 54,180,128,156, 68, 78, 14,213, 73,184,134, 93,152, 89,179, 81, 18,160,167,193,143, +108,246,109, 92,198, 47,145, 3,245, 41,196, 49,132,137,187, 51, 92,126, 35,206, 22, 75,135,208,237,218, 99,141, 99,251,190,162, +172,211,155,114,108,130,214,121, 89,220,201,196,110,103, 66, 11,176,105,224, 16, 59,237,249,104, 54,151,116,101, 54,113, 58,244, + 78,207, 94,169, 90, 76,151, 37,249, 44,189, 48,121, 9, 39,246,125,194,161, 5,245,104,186,240,128,207, 92,160, 74, 41,148, 82, +115, 32,207, 2,122,241,247, 27,113,225,222,140,198,185, 91, 77,203,151,129,121,145,106,191,153, 55,188, 70,216,243, 2,122,193, +192,206,173,107, 61,175,245,169,148, 78, 47,106,156, 23,124,215, 83,224, 47,165,137, 51, 52,126,230, 46,200,185,231, 53,233,181, +215,101, 88, 69, 95,118,104, 47, 56,179,180, 47, 83, 67,189, 23, 53,150,100,185,177,174, 77,214,109, 86, 60,166,218, 76,212,172, +190,175, 42, 64,190, 22, 67,153, 54,224, 90, 21, 60,212, 5, 37,117,175,105, 98, 0,160, 57, 0,168, 42, 81,208, 0,232,134,106, + 85,185,162, 87,122, 10,232, 98, 12,177,248,108,175, 31,100,210, 25, 20, 36,175,255,104, 36, 27,171,102,235,254,117,191,171, 27, + 15,155,103,234,169, 86,121, 52,113,244,115, 23,124,103,211, 42,206, 3, 85, 50, 54, 22,198,233,156, 39, 33,162, 19,219, 28, 23, +135, 78, 70, 86, 59,128, 85,243,128,193, 67,120,199, 27,239,231,142, 59,239, 68,251, 93,235,125,142, 66, 68,243,194,217, 75,124, +246,171, 47,160, 93,199,206, 96,176,198,219,222,124, 55,135,246,175,217,140, 22, 39,169,170, 13, 79,159,122,153,167, 79,190,132, +214,177, 5,105,132, 94,175,195, 27,239,189,131,103, 78,157, 97,119,111,228, 58,136,156,131, 92, 20,113,223, 93,199,217,232, 28, +230,243, 79,124,113,161,134,151, 10,193,232, 24,146,233, 66,105,207,247, 65,117, 28,152,123,203, 54,118,117,192, 96,152, 91,174, +146,202,197, 38,161, 59, 47, 46, 8,209, 73,230,220, 87,103,157, 69, 64, 47,163,232,255, 40, 1,250,141, 4,252,178,172,252, 86, +185, 50,101, 31,145,242,216,245,186, 12, 84, 31, 95, 39, 64,132,103,152, 27, 3,153, 76,118, 93,212,204,158,207, 93,103,148,229, +178,153,114,145,122, 55, 37, 25, 61, 5, 26,189,172,201, 75,164,188, 70,110,154, 16, 69,150, 27,243,202, 2,131, 58,253,244, 44, +200,148,137,149,212,189,110,213,192,162, 46,243,108,189,237,138,217,113,107,128,174, 81,114, 91, 69, 15,190,233,111, 77,106,118, +109, 74, 28, 77,101, 3,211, 96,183,106,234,172, 91,205,178,182,123,241, 90,209,238, 31,198, 8,195,245, 45,118, 6,251, 65,173, +110,218, 82,214, 67, 99,110,177, 78,252,170,192,238,223,152,183,213, 11,155, 80,209,139, 26,185,242, 22, 63,162, 22,115,213, 82, + 80,137, 72, 51,226,212, 6, 85,199, 22,212, 0, 8, 50,212,185,194, 11,186,252,103,239,127, 59,239,127,219, 27,136,244, 66, 21, +235,224, 70,151, 63,124,250, 69,190,255,249,179,232, 40, 6, 52,183, 29, 59,202,223,252,158,111,101,255,250,218,252,182,215,198, +112,104,107,192,135,126,255,243,252,200, 79,125,200,129,186,129, 56,226,240,161, 45,254,246, 95,250, 54,126,236, 95,253, 34,159, +191,112, 30,124,111,161,122, 55, 26,243,159,127,240,157, 60,120,215,113,254,234,103,159, 40, 20,175, 50,214,169, 18,129, 55, 94, + 4, 49, 42,239,131,214, 14,132, 76,230,238,114,186, 0,113,106,126, 19,217, 15,172,117, 77,245,107,121,191,217, 11, 67, 68,230, + 53,248,235,173,191,223,106,234,234, 70, 74,185,150,137,197,172, 2,234, 55,114,126,126,236,249,108, 7,125,186, 38,196, 75, 18, + 20,218,202,184,102, 1, 55, 3,236, 89,171, 85, 93, 66,213,147,201, 94, 84, 67,163, 92,221, 8, 88, 54, 19,206,218,167,150, 9, +183, 84,209,236,105, 3, 95, 93,227, 91,153, 33, 75,153,159,124, 29,120,183,161,213,165, 5, 69, 78, 13,152,182, 13, 10,150, 20, +225,204,138,217,117, 13,251,208,214,203,188, 14, 88,219, 56,214, 93,203,249,109,197, 36, 52,245, 16,212,184,172, 81,163, 20,183, +164,251,111, 96,220, 93,227,202,198, 33,140,239, 89,171,237, 85,115, 86,215, 36,151,109,150,187,145, 54,169,175, 62,250,125, 41, + 12, 77,141,196,147,133,185, 73,154,161,166,117,116, 41,182,206,232,194, 55,157,145,142, 77,133,246,211, 64,192,247, 9, 19,248, +251, 63,255, 81,122, 31,254, 50,198,235, 88,214, 59,209,124,255, 55,191,145, 55,159, 56,228,216,129, 24,124,161,215, 91,163, 19, + 4,252,224,207,126,140,167,206, 92,113,140,191,225,199,254,203,247, 48,232,247,108, 38, 13,150,142, 55,130,167,132,173,181, 62, +190,151, 50, 3,146,187, 35,215,250, 61, 54,214, 7, 14,176,253,133, 93,107, 10,236, 90, 59,122, 63,243, 89,115,218,168,210,114, +209,207,128,250,252,124,144,145,213,213, 43,117,111, 22,193,204, 24, 51,167,233,231,135,175,245,252,185, 98, 23,253,171, 25,168, + 87, 5,241,226,239,215,218,217,122, 35,221,220,192, 26,240,236,249, 29,122,122,141,142,137, 17, 61, 91,220,156, 25,203, 84, 83, +232, 64,207, 2,189,206,128,104,182, 22,158,213,137, 23,169, 48,198, 41, 32,110, 17,252,114,141,120,205, 70,125,165, 11,121, 10, +238, 85,243,235, 82, 1,240,171,116,182, 75, 75,106,184, 49, 19, 53,215, 62, 22,167,105, 39,178, 82, 71,129,215,209,223,171,128, +110, 43,119,182,150, 76,192, 42, 14,112,165,199,211, 70, 3,190, 6,208,179,115,232,217,255,151,150, 12, 12, 68,126,135,237,141, +131, 76, 59,182,145,250,235,117, 46,253, 38,130,122,241,110, 72,149, 52,146,242, 21,160,148, 15, 44, 26, 45,167,117,112,215,101, +239,117,160,211, 35,210, 62,241, 40, 2,177, 89,118,148,104,134, 19, 75,161,227,117,193, 75,192, 19,240,187,120,158,199,213,113, +200,238, 48,116, 43,159,102, 18, 38,244, 82,123,213, 88, 47,230,117, 36,200, 28, 71,118, 48, 72, 45,216, 6,148,109,168, 75,226, +197,223,230, 29, 27,201,242,192, 47,203, 31,191, 21, 32,152,214,127, 92, 25,124,178, 0, 87,164,224,171, 64,221,188, 74,172, 9, +235,158, 43, 82,101,117,180,122,213,104,218,173,236,224, 47,206,174,207,148,199,213,192,170,204,121, 58, 1,226,185, 32, 77,150, +202, 86, 69,193,153,140,242,154,100,254, 86,106,154,147, 89, 52, 85,241,249,134,217, 45, 83,164,243,139,246,163,210, 64,245,179, + 92, 55,207, 81,250,133, 81,184, 38,103,183,178,192,160, 8,140, 82,248, 44,166,129, 82,111, 99,225, 90, 55,138,150,221, 64,211, +110,140, 11,170, 93,225, 90,205,165,155,246, 52,190, 46, 91,170,219, 0, 56,237,123, 8,154, 26,237,234,246, 95,165, 63,159, 5, +244, 82,122,222,228,223, 79,139,207,238,250, 1, 70,131,141, 85,226,207,149,214,208, 87,203,186,120, 11, 64,189, 29, 74, 73,166, +136, 87,122, 98,230,197, 54, 71,219, 43, 31,188, 14,126,119,192,159,255,224, 35,188,238,158,219,173,163, 25,160, 19,195, 55,220, +127,140,171,195,153, 11, 0,124,240,141,211, 99, 23,212,220, 2,203,102,207,146,238, 87, 5,224,233, 52, 85, 5,207, 91, 0,120, +250, 51, 79,147,124,247, 26,247, 60, 94,141, 84,171,169,191, 40,110,209,133,176,170,202, 89, 29,144,215,101,239, 55,123,124,174, + 12,140,211, 71,153,162, 91,182, 91,253, 90, 5, 98, 94,169,199,196,243,185, 26,244, 9,116,196, 70, 60, 70, 72,242,177,110,102, +142, 61, 71,107,103, 0, 44,157,103, 47, 74,176, 22,241, 58,117,135,203,118,143,155, 10, 0, 46, 26,190,148, 83,149,213,177,122, + 17,124, 85,197,226, 95,107,193,154,113, 9, 44,142,110, 9,205, 62,222,171,132,200,149,250,233, 37,199,172,219,130,104, 25, 61, +109,154, 75, 2,165, 54,180,166,218,104,165, 20,104,211,102, 75, 83,175,121, 95,118,124,117, 65, 77, 83, 57,165,105, 4,206,212, + 4, 50,165, 52,124,137,237,170, 89,106,168, 19, 70,253, 77,118,215,246,147, 40,255,186, 51,244, 63,106,115,234,254,171,225, 32, +154, 79,152,204,237, 74,187,157, 14,127,246,221, 15,161,252, 14, 95, 57,115,121,110, 25,250,244,153,203, 60,254,220,121,146,180, + 35,220,232,101,254, 75,202,210,103,201,167, 65, 75,119,135, 44,135,211,180,167, 31, 95,137,139,225, 70,218,143, 22,127,111,202, +222,235,254, 86, 70,119,103,159,171,162,195,171, 64,189, 88, 23,175,106,252,187,149,179,241,215,115,254, 83, 79,250, 61,191,131, +111,214,240,140,198, 75, 38,136,209, 22,188, 77,166, 59,163, 0,220, 69,222, 89,151,217,182,102,232,239, 98, 23,124,221, 10, 93, +108,168, 43, 74,210, 10,203, 29,209, 82, 65,235,230, 74, 5, 53,111,219,100, 20, 83,150, 29, 22, 75, 5,109, 26,232,234,156,202, +114, 1,194, 10,146,171,171,102,188,166, 5,168,151, 81,211,141,115,232,197,215,149,188,111,173,231,121, 3,160, 47, 5, 0, 53, + 12, 64,217,249,172,115,147, 43,243,160, 55,166,220,161,109,177,157,189, 73,236,248,218,126, 66,191,123,195,214,211,178,123,250, +213, 90, 87,247,121, 85, 63,210,244,100,209,133, 46,110, 12,238, 23, 62,241, 20,191,244,241,167, 51, 28,162,155, 63, 55,137, 27, + 51,115,205,107,198, 88,160, 79,235,221, 70,219, 30, 51,165, 51, 93,229,139, 70, 55, 67,102,132, 77,101,190, 52, 29, 47, 70,240, +116,236,230,215,147,188,125,236, 43, 8,230, 55,227,253,202,230,179,171, 64, 62, 91,143, 47,130,115,241,226,111,250,123,155,191, +181,161,210, 95, 9, 64,191, 17,223, 87, 44,138, 29,191,135,111, 52,126,152,208, 79,166, 57, 26, 62,205,174,139,174,100, 74,242, + 32,156,102,232,170, 72,133,202,178,176,203,188, 2, 37,245, 14,107, 38, 35, 73,155,163,213, 91,100,191,243, 91, 89,154, 1,182, +236, 24,154,106,241, 84, 0,205, 53, 73,158,182,152,205,110,218,191, 94, 49, 40, 41,221,175,105, 14, 98,184,134,215, 54,190,255, +138, 61, 5, 85,245,240, 58,230,162,178,182,110,150,155,222,180, 41, 47, 57,232, 76,118, 46,198, 16,171,128,157,141,131,140,187, +107, 55, 68,171,187,169,228,247,255,115,250,253, 26, 22,199,249,156,120, 58,218,101,199,229, 20,134,131, 27, 3,142, 29,220,180, + 54,167, 8, 34,134,209,222,144, 43, 87,119,156,131,156,245,124, 87, 98,184,109,255, 26,163,105,108, 23,163, 36, 97,223, 90,135, +120,226,102,204,147,208,205,130,219, 25,115, 79,112,239,227,116,231,211,101, 35,156, 32, 36,120, 96,231,196,117,184,232,210, 55, + 95,127,128,126, 45, 64, 87, 39,216, 82,150, 69,167,192, 95, 55, 46,114,173, 64,125, 51, 63,231,173,200,228, 67,229,113, 53,232, +227,107,131,104, 77,207,132, 75, 40, 87,212,100, 55,133,153,116, 33,111,216, 66, 9,176,103, 51, 91, 77,185,198,123, 17,188,139, + 77, 92, 74,170,133, 97,234, 50,247,249,182, 82,157,245,215, 2, 94, 69, 70,222,150,102, 55,117, 52, 1, 13,254,223, 13,239,211, +102, 4,174, 77,141,189,105,251, 85, 69, 93, 90, 5, 20,166,157, 44,237, 74, 98, 52,133,227,106, 11,232, 56, 64,215,181, 12,129, +141,114, 99,241,216, 93, 63,192,112,176,101,141,175,248,250,121,172, 18, 64,220,100, 80,151, 92,167,138, 72, 25,149,221, 48,128, + 50, 47,172, 36,144, 68, 36,225,148,209,100,202, 95,251,150, 55,243, 23,222,243, 16,233, 87,215,239,122,252,214, 99, 79,241,247, +127,230, 87,137,157,240,204,108,178, 71, 20, 70,252,248,119,189, 15,173,221, 72, 27, 9,119, 29,220,199, 47,126,244,211, 86,226, + 53,157, 49,143, 66,244,108,194,238,112, 68, 50, 29, 57,221,121,127,113,124, 73,200,120, 60, 98,119, 52,180,175, 49,203,217,122, +245, 98, 45,139, 20,171,108,101, 41,243,162,124, 5, 47,158,155,177,143, 54, 25,119,155,247,191,145,243,241,175, 4,160,175,114, +235, 76, 85,192,149, 96,128,175, 19, 36,222,163,107,162,220, 37,162,138,217, 57,121, 87,181, 52,147, 41, 74,184,230,182,203, 80, +234, 82, 18, 40, 84,213,170,165, 36,123, 47,163, 89, 21,249,227,200,214,212,231,153,150, 41, 25,135,147,188, 4,171, 72,190,206, +111,202,212,235, 76, 73,179,158, 41,207,246,115,222,245, 21, 96,164, 91, 6, 8, 85, 84,189, 94,129,150,207, 6, 2,117,224, 45, +101,116,189,169,102, 9,218, 56,211,181,153, 51, 47, 99, 1,234,220,247,202,252,205,169, 1,242,178,207, 85,236,118,207, 6, 27, +185,226,170, 54, 24, 37,140, 7,251,216, 89, 63,224, 84,227,110,205,154,120, 43, 27,230,218, 2,251,117,104,191, 55, 30, 1,243, +206,117,183, 66,136,100, 58,202,179,243,233, 85,151,191, 40,171, 70,215,219,132,193, 22,172,109, 33,107, 7,185,255,193, 7, 56, +126,236,248, 66,161,206,104,124, 18, 94, 60,119,129,103,159, 63,205,255,215,222,149,237, 54,142, 92,209,115,139,212, 46,111,237, +198, 4, 65, 35,121, 8, 16, 32,255,255, 61,147, 32,105, 96,158,130, 73, 79, 91,182, 37,139,100,221, 60, 20,151, 98,177, 54,202, + 18, 69,201, 22, 96,192,146,184,138,100,157, 58,119, 57,135, 11, 37, 11, 59, 93, 44,241,143,191,253, 5, 15,247,119,101,229,186, + 10,163, 83,145,227,215,255,124,199,111,223,127, 3, 23,111,117,127,252, 36, 77,240,247,191,254, 25,255,250,247,119,236,182,175, +101, 59,158,168,227,157,223,190,125,195, 98, 62,197,175,191,254, 83,169,188,189, 61, 43,217,216,226, 13, 36,179,166, 87,191,234, +135,172,170,232,245,214,182,150, 78, 38,105,189,232,108,152, 88, 87, 82,186, 18, 33, 31,202, 99,183, 87,141,117,189,161, 13, 99, +206,197,210, 91,203, 49,227, 38,223,227,151,183, 13,110,179,103, 76,144,215,218,240, 2, 64, 82,133,216, 13, 75, 86, 1, 67,255, +221,210,202, 70,198,178,232,222,125,173,185,185,109, 93,171,134,188,191,249,195, 58,224,198,252, 42, 46, 57, 91, 88,162, 9, 38, + 39,136,102,239, 17,161,250, 14,200,113,100,248,221, 5,234, 28, 1,162,129,240,122, 12,123,119, 77, 36, 92,130, 64,174,227,151, +125,142,153,221, 97,120,151,107,155, 46,251,234, 47,136, 67,173, 28,183, 93,220,226,247,219, 63, 97, 59, 91,184, 5, 25, 14, 28, +163, 98,101,162,135, 0,246,243,130,186,214,167, 93,131,121, 45, 60, 67, 26,168, 23,240,122,164,165, 83,101,190,178,184, 83,126, +229,139, 91,165,169, 62, 89, 2,147, 73,163, 63,159,237, 74,118, 93,134,196, 73,168, 62,244,164,212,115, 39, 82,204, 58,219, 41, + 32,206,183,138,109,203,162,153, 64,128, 74,201,215,162, 25,238, 68,162,170,226,171,214, 53,144, 82,141,219,110,128,183,167, 50, + 44,159,171, 94,247, 58,126,168,221,122, 66, 52,163,162, 94,109, 84, 79, 77,101,183,168,175,154, 12,149,186,238,234, 24, 79,155, +183, 63,102,113,221, 57, 0,250,226,192, 58,114, 25,197,118, 25,119,217, 14, 95,119, 27,220,228, 47,152,162,168, 1,188, 50,128, + 33,106, 3, 57,161,251, 30,182,247, 58,144, 83, 23,236, 97,172,235, 3,116,178,204,235,153,187,235,153, 32,205,158,109,248, 44, + 90,109,226, 52,182,237,246, 5,234, 88,224,103, 14,135,168,157, 64, 31,209,195,238, 3,227,190, 70, 50,174, 48,123,159,253,134, + 36,100,217, 19,106,183,134,239, 61, 12,222,204,161,119, 88,123,121,165, 37, 3,111,243, 53,126,220,252,130,151,249, 26, 44,142, + 27,116,143,149,139, 30, 10,212, 99,246,115,194,240,187, 22,146,150,133,198, 82,141,234,158,208, 99, 85,100, 74,239,188, 2,213, + 98, 15, 76,183, 74, 83, 62, 73, 21, 32, 86,210,172,123,165, 23,175,152,109,170,250,208,211,105, 25,203,147, 74,147, 61,223, 55, + 26,237,172, 41, 98, 87, 26,237,245,241,114,187,133,173,186,176,133, 4,246, 59,208,126,163,246, 39,115,227, 9, 53,134,145,170, + 64, 79, 26,159, 87, 35,158,235,241,171,122,222,169,108,173, 51,114,247,215,232, 89, 62,228,185, 92, 74, 87,130, 98, 76,132,167, +116, 6, 76,213, 36,248,166,216, 98, 2, 89,203,195, 50, 1, 73,101,205,170,161,160,153, 35,215,197,107,132, 5,240, 76, 0,182, +201,148, 18,249,193,174, 99, 28, 99,128,135,207,254, 21, 14, 64,119,229,231,109,149,219, 46,203, 78, 27,219,151,142,207,109, 79, + 37, 29, 26,166,118, 13,141, 7, 70, 14,250, 10,226,216,170,224, 99, 39, 0,125,132,105,128,248,154, 2, 25, 56, 14, 29,208,217, + 89,124,167,110,196,108,178,196,207,213, 87,188,206, 87, 71, 7,244, 75,125,157,190, 80,174, 19,135,233, 57,155, 97,169, 88,245, +107, 14,122,123, 6,189,164,144, 73, 10, 18, 41, 68,146,128,165,132,172, 28,205,100,209,152,156,144,210, 92,167,218, 58, 74,130, + 11,169, 88,120,221,246,214, 0, 44,149,125,233,220, 58, 70, 1, 74, 68, 83,109, 44, 11,101,137,138, 50,159,206,145, 89, 55, 27, +120,199,204,234,100,209, 24,193,240, 56,111,216,177,177,244, 75,249, 13,250, 2,123, 65, 2, 79,233, 12, 66,174, 64,146,177,150, + 59, 76,168,116,228,227,134,169, 23, 80, 0,175,231,201,171, 38,142,130,236,197,115,132,118, 75, 16,105, 26,242,194, 6,252,176, +231,208,125, 64,225,146,147,245,125, 15,248, 91,163, 98,216,177,236,201,196,109,108, 52,212,171,222,203, 36,134,227,142,219, 12, + 69,247, 1,240, 16,192,198, 12,215,236,136, 40, 4,143, 57, 20,150,231,238,181, 49, 1, 63, 78,255,157,177,159, 44,240,243,230, + 17,207,139, 27, 20, 34,233,237,190,118, 76,150, 62,212, 43, 38, 26,144, 94,196, 32,199,172, 64,187,200,192, 53,149,104,170, 27, +137, 25,204,178, 51, 5,166, 58,102, 72, 14, 0,214,239,166,210, 9, 78,182, 55, 64,185, 40, 71, 65, 52, 97,245, 33, 47, 52,151, +205, 71,164, 9,246,140,228, 58,157, 83, 94,117, 40,150, 62,150, 98, 59, 2,144, 83,130, 31,233, 66, 77, 44, 51, 96, 45,119, 72, + 73, 54,150,172,104, 52,150, 4, 91,138,229,116, 22,207, 80,162, 76, 29,144, 36, 20,204,117, 1,158,201,102,201,194, 54,117,113, + 25,211,169,205,102, 16, 99,117, 96,131,187,226,222,198,220, 93, 19, 2,147,117,251,214,179,130,149,167,232, 44,150, 29,251, 24, +249,161,219,140, 13,171,135,218,204,250,108,143, 61, 50, 31, 28,216,151, 43, 79,174, 23,186,181,138,227,180,117,165,177,108,151, +201, 19,178,116,134,167,245,163,170,116, 79,196,209, 1,189, 2,208,190, 99,197, 24, 90,220,210,115, 12,170,239,154,165, 84,202, +102,144,200, 99,102,157,193, 16,127,119,219,250, 6,100,105, 44, 67,149, 18,221,208,141, 18,172, 52,217,189,113,207,129,175,213, + 80,179,215,115,128,116,223,101, 99, 30,252,227, 25,196, 0,153, 16,248, 49, 89,168, 15, 50,198, 74,190, 33,133,172, 45, 90, 81, +170,174,233,125,232,122,191,186, 98,233,212, 26,132,187,183, 53,213,115, 91,178,124,175,118,211, 12,243, 74,205,142,173,143,134, +195,184, 45,236,238,230,250,152,186, 96,217,210,147,103,123,222,157,173, 59, 14,203,194,218,152,127,200,161, 46, 4,246, 65,237, +121, 14,131,176,109,146,114,136,147,156,111, 61, 87, 11, 91,200,101,205, 7,242, 54,117, 56,125, 25, 19,224,219,219, 86,145,164, + 44,157,227,105,253, 21, 79,171,123,228, 73,130,143, 20,116,143,169,182, 79,143, 62, 0,107, 85,187,215,242,195,157, 51, 4,115, +138, 93, 95,154,202,221, 88, 1,125,232,243,168, 90, 0,247, 66,224,127,147, 57, 64, 4,222, 3, 43,185, 67,106,180, 70, 86, 41, + 35, 97, 56,188, 1, 84,255, 95,104,192,175, 27,174,216,152, 25, 25, 33,125,110,193,186,218,110, 35, 19,203, 45,160, 13,246,173, + 35, 92,208, 86, 47,195, 22, 32,102, 59, 43,239,128,142, 17,197, 11,249,130,247,118, 85,235, 1,220,174,200, 64,236, 62, 25,135, + 87,222,235,235, 19,199,133,241, 99,207,217, 6,216,182,109, 86, 19,207, 22, 99,103,251,241,179,214, 49,149,165,115,108,214,143, +216,172,238,202,214, 53,190,184, 49,235,162,152,122, 3,230,151, 59,119,242,233,140,159,119,144,231,139,189, 81, 79,185,207, 83, +232, 50,159, 35, 60, 31,189,191,242, 47, 43,205, 95, 0, 6, 12, 96,175,236, 86, 97, 0,123,149,175, 20,132,142, 37,170,208, 30, + 95, 51,103,174, 63,218, 68, 49, 76,156, 90,233, 0,214,226,254,100, 97,188,168, 93, 28,212, 18,194,113,175, 75, 11, 75, 37,199, +119, 38,179, 54, 67,243, 18,113,138,116,182,225,205,198, 91,124, 96,108,157,100,176,199, 59,190, 7,112,134,196,112,156,197,144, + 28,191, 95, 54,214,115,133,215, 9, 1, 45,119, 99, 18, 33,225,104, 83,107,253,223,244, 37,102,201, 12, 79,171, 71,108,214,167, + 7,244, 67,243,233, 99, 8,193,159,168, 80,238,114, 89,250,216, 38, 22,141, 92,216,105, 68, 97, 78,189,141,177,228,221,199,108, + 23,219,119, 18, 65, 37, 13,223,147, 10,197, 51, 8,188, 39,172,228, 14, 19,150,109,203,213,242,141, 94, 24, 44,245,124,187, 1, +238,157, 71,216,130,120,181,215, 18,133, 1, 65,229, 71,169, 94,222, 30,190,182, 3,190,175,106,157, 76, 22, 87,127,199,206,150, +182, 88, 75, 81, 19,124,173,188,165, 7, 0,251,228, 98, 25, 61, 10,222, 14, 96,246, 54,198, 46, 57, 62, 58, 97,218,153,154, 32, +237, 2,111, 23,115,119,229,201,237,197,112, 84, 79,248,138,100,138,205,250, 43,158,214,247,200,147,116,184,241,247,163, 50,245, +107,106,137, 58,193, 45,162,129,179,104,114,227,117,139, 90,160,247,156,196, 81, 38, 74,231, 0,244, 83, 49,233,115,131,255,185, +238,119, 93,130, 87, 74, 37, 88,148,145,192, 31,147,185, 42, 32,205, 8,171,252, 21,105, 9,108, 58, 96, 55, 62,235, 12, 2,181, + 90,223, 72, 27,232, 67,167,102,115,113,179,245,175,219, 0,149, 28, 40,221, 13,189,147, 5,212,216, 2, 62,118, 25, 27,118,174, +213,231,190, 13, 83,149,168,176, 60,199,175,211, 39,239, 13, 68, 2,243, 59, 4,106,124,149,236,190,243,243, 25,177,152, 19, 11, +215,196, 70, 50,213, 87, 50, 75,230,120, 94, 63,226,231,250, 1, 89,154,158, 60, 14,252,225, 64,189,223, 9, 83,152,189,215,202, +115,154, 40,165,195, 36,229, 84, 23,239,116,185,115,210,172, 99, 75, 91,215, 58,134, 69, 90, 91,156,109,255, 90,113, 92, 71,156, +230, 50, 0,125, 40,102,255, 17,216,188,185, 77, 61,204,151,145,192, 31,233, 12, 18,132,175, 0,214,249, 22,170,187,189,148,146, + 69,219,181, 77, 7,101,129, 54,184,219,180,229,117,226,100, 5,110,131,213,219,252,208,171,247, 66, 3,155, 14, 51,167,246,178, +109,118, 78,173, 99,119,141, 54,236, 24,119,156, 50,239,145, 30,225,161,207, 77, 70, 76, 22, 13,115, 87,245,120, 76,164,160,207, +100, 64, 7,210, 24, 64,175,127, 7, 77, 44,200, 38, 12,211, 41,206, 99,187,101,171,205,227,220,100,237, 18,190, 98, 63, 5,232, + 18,132,253,100, 89,230,208,111,143, 46,255,234,141,132,125,116,166,222,255,177, 48,175, 34, 15, 30,177, 31, 38,119, 94,137,200, + 20,128,204,122, 14,254,252,238, 98,195,115,203,199,158,114, 63,231,146,140, 29,211,100,163, 5,236, 34,193,207,146,177, 75, 8, +220,228,175,152,112, 81, 43, 17,215,193, 34,195,190,181,202,107,234,224,110,230,213,107,224,181,160, 83,235, 35,118, 3,187,249, +222, 22, 22, 55,189,210,171, 99,215,245,233,125, 42,113, 14, 17,101, 77, 91,156,223, 13,222, 78, 48,117, 48, 86,223,186,125,152, +125, 84,107, 28, 71,108,223,245,191,158,103,231,136, 10,120,118, 91,192,178,171,234,157,219,181, 12,210,114,206,140,138,161, 11, +236,230, 55,120, 90,125,193,203, 98,141, 98, 32,131,150,107,136, 58,167, 31,237,132,155,135,103, 28,198,247, 99, 15, 77,143,173, + 23,253, 84,224, 31,123, 63,140, 65,177, 78,103, 19, 21,168, 11, 0, 5, 17,126, 78,102, 40, 64, 40, 72,224, 46,127,193, 84,230, + 45,243, 18, 81, 54,172,139, 18,236,160, 1,168,208, 0, 84,104,232,106,230,193,235,214, 57, 27,139,179,116,182,177,165,184, 46, +244,235,232, 32, 47,205,136, 1,220, 2, 54,190,226,179, 10, 48, 0,119, 68, 32, 4,138, 64, 56, 44, 30,234,139,215, 65,174,215, +196, 1,110, 67, 20,120, 24,179,119,178,194,126, 81, 25,151, 36,174, 12, 44, 35, 45,231,233, 50,108, 97, 35,134, 33, 41,193,235, +252, 22, 79,235, 71,108, 23, 75, 72, 26, 6,208,143, 37, 54, 51, 68,177,156,111, 31, 35,247, 83,191,238, 25,217, 53, 2,250,165, + 94,143,115,177,249, 67,171,231,235,188,122, 7,212, 8,155,116, 6, 9,129,130, 4,238,179, 23, 76,229,190, 21, 86,173,135, 91, +106,228,140,164, 6,212,208,254, 39,238,134,198, 89, 99,247, 76,118, 32, 48,141, 7, 77,123, 86, 70,215, 36,198, 4, 88, 19, 28, + 35,146,121,109,230,111, 5,197,110,190, 94,246, 96,240, 62, 81, 76, 95, 95,183,109,225, 67, 5,104,124,172, 62, 90,109,142,251, + 41,210,197,156, 3, 7, 24,123, 40, 95,207, 96, 72,145,226,101,113,135,205,250, 11,118,179,101, 35, 54,246,201,208,143,207,212, +175,225,164,199,100,106, 63,246,223,243,210, 67,238,199,102,213,167, 56,206, 99, 40,250, 9, 33,186,247, 52, 1,207,105, 10, 41, +214,144, 36,112,183,127,198, 92,190, 33, 41, 7,209, 66, 99,194,130,186,236,170,210,148,215, 53,227,205,208,186,206,166, 9,165, +181, 1,218,130, 55, 45,246,232, 40,196,147, 14,176,118,177,109,159,122, 28, 27,203, 73,207,182,186, 64,207, 86,182, 27, 74, 11, +246,233,227, 14, 49,244,224,238, 34,242,235,222, 40, 67,228,100,196, 15,188,238,253,248, 60,209, 25,174,212, 66,153, 24, 97, 66, +158,206,240,188,124,192,102,253,128,253,100, 54, 88,103,116, 21,249, 58,118, 71,203,185,216,122, 58,196,224, 51, 38,144,250,100, +232,113,175, 67, 36, 18, 63,250,111,118,142, 99,171, 24,187,249,112, 19, 17,182, 73,138,255, 98,133,156, 18, 60,236, 55, 88, 20, + 59, 36, 21,132, 17,144,128, 33,203,234,183, 74,109, 78,111, 59, 35,211, 97, 77,103,243, 54,112,167,174,127,123, 7,180,185,205, +248,223, 43,148, 24, 21, 34,143, 90,191,150,205,241, 74,198,198,108, 59,196,168,227,143,233,125,197,114,174,125,187,128,159, 45, + 96,238,211,112,119,130, 58, 12,191,115,103, 84, 65,133,142,152, 8,217,108,195,140, 64,204, 0, 0, 1,209, 73, 68, 65, 84,137, +205,250, 11, 54,203,123, 20, 73, 50,248,115,118,137, 24,119,112,248,253,179, 93,237, 99,189,174, 37,228,126,206, 62,242,161,142, +207, 86, 9,111,190,222,146, 4,191,211, 2, 57, 9, 60,100, 9, 86,249, 22, 41, 10,229,248, 91,249,176,115, 91, 70,181, 22,163, + 41,223, 75,168,229,164,198,204,201,194,186,107,240, 49,236, 93,125, 58,237,122, 33,156,174, 90,167, 3,191, 13,120,132,133, 37, + 11,207,242, 46,195,152, 22,112, 82,251, 71, 8, 77, 54,204,202,246,142,185, 77, 15,233,216,206, 50,145,172,220, 11,190,236, 78, + 67, 72, 15, 35,183, 93, 35,155, 20, 47,107,223,233,215,210, 37, 54, 99,147,124,149, 34,193,118,126,139,205,250, 11, 94,231, 75, +176, 72,174,118,188, 27,234,149,126,130,249,117,220, 64,231, 48,103, 25, 27, 80,158, 3, 88,199,176, 95, 33, 84,208,219,204,177, 87, 3,116, 38, 84, 47,123, 78, 2, 25, 18, 85, 25,143,172,108,176,104, 80, 85, 7,235, 22,128, 83,123,192, 22,102,149,188, 1, 228,122, 59, 23, 25,213,240, 58,112,144, 1, 98,102, 5, 60, 59,144, 88, 15,173,199,168,202,233,236,146,200,109, 41,218,124, 65, - 14, 16,101, 39,208,218,128,120, 95, 13,120,151,184,141,151,157,115,188, 0,141, 45,181, 96, 10, 6,177, 99,130,208, 1,123,248, -171,221,187,121,254,230,230,201,147, 11, 60, 45,111,240,184,184,197,118, 58,213, 52, 57, 62, 94, 71, 1,245, 15,240,124, 95,231, - 59,150,110,128,177, 93,251,115, 0,254, 80,248, 80, 16, 65, 18, 97, 61,153, 33,167, 4,185, 72,113,153, 61, 97, 38, 95,148, 36, - 43, 43, 41, 87,193, 84,183,189, 85, 96, 94,229,211, 43, 15,246,106,208, 23, 6,168,146,179, 17,188,131,147, 61,110,202,238,255, - 29,113, 69,110, 99,113,171,141, 46,160, 6,231, 2, 78,119,229, 58, 57, 96, 30,189, 10,207, 0,219, 68,226, 21,206,108,236, 46, - 36,116, 77,110,188,147, 19,199,239,100,155, 28, 72,207, 49,193,246,251, 49,131,133,192,110,178,192,227,242, 22,143,139, 43,228, -233,100, 88,231, 75,227,185,121,107,120,241,127, 87,127,157, 17,229,233, 32, 53, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130, + 14, 16,101, 39,208,218,128,248, 80, 13,120,151,184,141,151,157,115,188, 0,141, 45,181, 96, 10, 6,177, 99,130,208, 1,123,248, +171,221,187,121,254,230,230,201,147, 41, 94, 86,247,120, 94, 62, 96, 55,155,105,154, 28,159,175,147,128,250, 39,120,126,172,243, + 29, 75, 55,192,216,174,253, 37, 0,127, 40,124, 40,136, 32,137,176,153,204,145, 83,130, 92,164,184,201, 94, 48,151,111, 74,146, +149,149,148,171, 96,170,219,222, 42, 48,175,242,233,149, 7,123, 53,232, 11, 3, 84,201,217, 8,222,193,201, 30, 55,101,247,255, +142,184, 34,183,177,184,213, 70, 23, 80,131,115, 1,167,187,114,157, 28, 48,143, 94,133,103,128,109, 34,241, 14,103, 54,118, 23, + 18,186, 38, 55,222,201,137,227,119,178, 77, 14,164,231,152, 96,251,253,152,193, 66, 96, 63, 89,226,121,245,128,231,229, 45,242, +116, 50,172,243,165,241,220, 92, 27, 94,252, 31, 55,225,165,132,184,246, 81,143, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130, 0}; diff --git a/source/blender/editors/datafiles/startup.blend.c b/source/blender/editors/datafiles/startup.blend.c index f2ea7d8bbd5..91349c7b5be 100644 --- a/source/blender/editors/datafiles/startup.blend.c +++ b/source/blender/editors/datafiles/startup.blend.c @@ -1,1005 +1,354 @@ /* DataToC output of file */ -int datatoc_startup_blend_size = 375344; +int datatoc_startup_blend_size = 376016; char datatoc_startup_blend[] = { - 66, 76, 69, 78, 68, 69, 82, 45,118, 50, 54, 50, 82, 69, 78, 68, - 32, 0, 0, 0, 64,202, 23,183,255,127, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 83, 99,101,110, -101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 76, 79, 66, 48, 4, 0, 0, 48,198, 23,183, -255,127, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 32, 32, 32, 51, 3, 0, 0, 0,250, 0, 0, 0, 1, 0, 0, 1,248,163,195, 6, - 0, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 0, 16, 0, 0,128, 32, 4, 0, 53,178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 77, 0, 0, - 88, 1, 0, 0,152,208,194, 6, 0, 0, 0, 0,146, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 77, 87,105,110, 77, 97,110, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,210,194, 6, 0, 0, 0, 0, 56,210,194, 6, 0, 0, 0, 0, 56,210,194, 6, - 0, 0, 0, 0, 56,210,194, 6, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 23, 3, 0, 73,127, 0, 0, 56, 25, 3, 0, 73,127, 0, 0, 88, 23, 3, 0, - 73,127, 0, 0, 72, 24, 3, 0, 73,127, 0, 0, 56, 25, 3, 0, 73,127, 0, 0, 40, 26, 3, 0, 73,127, 0, 0, 40, 26, 3, 0, - 73,127, 0, 0, 40, 26, 3, 0, 73,127, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, 56,210,194, 6, 0, 0, 0, 0,147, 1, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,188, 2, 0, 73,127, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0,248,163,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,115, 99,114,101,101,110, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 6, 1, 0,126, 7,146, 4, 0, 0, 0, 0, - 1, 0,238, 3, 0, 0, 0, 0, 1, 0, 0, 0,200,225, 12, 0, 73,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,184, 35, 13, 0, 73,127, 0, 0, 8, 93,223, 0, 73,127, 0, 0, 8, 93,223, 0, - 73,127, 0, 0, 8,228, 12, 0, 73,127, 0, 0,120,203, 12, 0, 73,127, 0, 0, 56,213,226, 0, 73,127, 0, 0,136,226, 12, 0, - 73,127, 0, 0, 24, 41, 13, 0, 73,127, 0, 0, 8,237,224, 0, 73,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 78, 0, 0, 8, 1, 0, 0,136,211,194, 6, 0, 0, 0, 0,210, 0, 0, 0, 1, 0, 0, 0,120, 55,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 65,110, -105,109, 97,116,105,111,110, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,154,194, 6, 0, 0, 0, 0,104,219,194, 6, - 0, 0, 0, 0,216,219,194, 6, 0, 0, 0, 0, 24,232,194, 6, 0, 0, 0, 0,136,232,194, 6, 0, 0, 0, 0,168, 45,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,154,194, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 40,155,194, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 40,155,194, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,216,212,194, 6, 0, 0, 0, 0,184,154,194, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216,212,194, 6, - 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 72,213,194, 6, 0, 0, 0, 0, 40,155,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 4,222, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72,213,194, 6, 0, 0, 0, 0,211, 0, 0, 0, - 1, 0, 0, 0,184,213,194, 6, 0, 0, 0, 0,216,212,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,213,194, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 40,214,194, 6, - 0, 0, 0, 0, 72,213,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 40,214,194, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,152,214,194, 6, 0, 0, 0, 0,184,213,194, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152,214,194, 6, - 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 8,215,194, 6, 0, 0, 0, 0, 40,214,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 24, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,215,194, 6, 0, 0, 0, 0,211, 0, 0, 0, - 1, 0, 0, 0,120,215,194, 6, 0, 0, 0, 0,152,214,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 4,195, 2, - 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120,215,194, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,232,215,194, 6, - 0, 0, 0, 0, 8,215,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 4, 60, 1, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,232,215,194, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 88,216,194, 6, 0, 0, 0, 0,120,215,194, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 60, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88,216,194, 6, - 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,200,216,194, 6, 0, 0, 0, 0,232,215,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200,216,194, 6, 0, 0, 0, 0,211, 0, 0, 0, - 1, 0, 0, 0, 56,217,194, 6, 0, 0, 0, 0, 88,216,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 4, 88, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56,217,194, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,168,217,194, 6, - 0, 0, 0, 0,200,216,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 1, 88, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,168,217,194, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 24,218,194, 6, 0, 0, 0, 0, 56,217,194, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 1,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24,218,194, 6, - 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,136,218,194, 6, 0, 0, 0, 0,168,217,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136,218,194, 6, 0, 0, 0, 0,211, 0, 0, 0, - 1, 0, 0, 0,248,218,194, 6, 0, 0, 0, 0, 24,218,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 1, 4, 1, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,218,194, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,104,219,194, 6, - 0, 0, 0, 0,136,218,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 4, 60, 2, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,104,219,194, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,218,194, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 60, 2, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,219,194, 6, - 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 72,220,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,155,194, 6, - 0, 0, 0, 0,216,212,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,220,194, 6, - 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,184,220,194, 6, 0, 0, 0, 0,216,219,194, 6, 0, 0, 0, 0, 40,155,194, 6, - 0, 0, 0, 0,184,213,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,220,194, 6, - 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 40,221,194, 6, 0, 0, 0, 0, 72,220,194, 6, 0, 0, 0, 0,216,212,194, 6, - 0, 0, 0, 0, 40,214,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,221,194, 6, - 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,152,221,194, 6, 0, 0, 0, 0,184,220,194, 6, 0, 0, 0, 0,184,213,194, 6, - 0, 0, 0, 0, 40,214,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,221,194, 6, - 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 8,222,194, 6, 0, 0, 0, 0, 40,221,194, 6, 0, 0, 0, 0,184,154,194, 6, - 0, 0, 0, 0,152,214,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,222,194, 6, - 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,120,222,194, 6, 0, 0, 0, 0,152,221,194, 6, 0, 0, 0, 0, 72,213,194, 6, - 0, 0, 0, 0,152,214,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,222,194, 6, - 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,232,222,194, 6, 0, 0, 0, 0, 8,222,194, 6, 0, 0, 0, 0, 40,214,194, 6, - 0, 0, 0, 0, 8,215,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,222,194, 6, - 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 88,223,194, 6, 0, 0, 0, 0,120,222,194, 6, 0, 0, 0, 0,152,214,194, 6, - 0, 0, 0, 0,120,215,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,223,194, 6, - 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,200,223,194, 6, 0, 0, 0, 0,232,222,194, 6, 0, 0, 0, 0, 72,213,194, 6, - 0, 0, 0, 0,232,215,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,223,194, 6, - 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 56,224,194, 6, 0, 0, 0, 0, 88,223,194, 6, 0, 0, 0, 0,120,215,194, 6, - 0, 0, 0, 0,232,215,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,224,194, 6, - 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,168,224,194, 6, 0, 0, 0, 0,200,223,194, 6, 0, 0, 0, 0,184,154,194, 6, - 0, 0, 0, 0, 88,216,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,224,194, 6, - 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 24,225,194, 6, 0, 0, 0, 0, 56,224,194, 6, 0, 0, 0, 0, 8,215,194, 6, - 0, 0, 0, 0,200,216,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,225,194, 6, - 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,136,225,194, 6, 0, 0, 0, 0,168,224,194, 6, 0, 0, 0, 0,152,214,194, 6, - 0, 0, 0, 0,200,216,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,225,194, 6, - 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,248,225,194, 6, 0, 0, 0, 0, 24,225,194, 6, 0, 0, 0, 0, 88,216,194, 6, - 0, 0, 0, 0,200,216,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,225,194, 6, - 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,104,226,194, 6, 0, 0, 0, 0,136,225,194, 6, 0, 0, 0, 0, 88,216,194, 6, - 0, 0, 0, 0, 56,217,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,226,194, 6, - 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,216,226,194, 6, 0, 0, 0, 0,248,225,194, 6, 0, 0, 0, 0,200,216,194, 6, - 0, 0, 0, 0, 56,217,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,226,194, 6, - 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 72,227,194, 6, 0, 0, 0, 0,104,226,194, 6, 0, 0, 0, 0,184,213,194, 6, - 0, 0, 0, 0,168,217,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,227,194, 6, - 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,184,227,194, 6, 0, 0, 0, 0,216,226,194, 6, 0, 0, 0, 0, 8,215,194, 6, - 0, 0, 0, 0,168,217,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,227,194, 6, - 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 40,228,194, 6, 0, 0, 0, 0, 72,227,194, 6, 0, 0, 0, 0, 56,217,194, 6, - 0, 0, 0, 0,168,217,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,228,194, 6, - 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,152,228,194, 6, 0, 0, 0, 0,184,227,194, 6, 0, 0, 0, 0, 88,216,194, 6, - 0, 0, 0, 0, 24,218,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,228,194, 6, - 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 8,229,194, 6, 0, 0, 0, 0, 40,228,194, 6, 0, 0, 0, 0, 56,217,194, 6, - 0, 0, 0, 0,136,218,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,229,194, 6, - 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,120,229,194, 6, 0, 0, 0, 0,152,228,194, 6, 0, 0, 0, 0, 24,218,194, 6, - 0, 0, 0, 0,136,218,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,229,194, 6, - 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,232,229,194, 6, 0, 0, 0, 0, 8,229,194, 6, 0, 0, 0, 0,120,215,194, 6, - 0, 0, 0, 0,248,218,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,229,194, 6, - 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 88,230,194, 6, 0, 0, 0, 0,120,229,194, 6, 0, 0, 0, 0, 8,215,194, 6, - 0, 0, 0, 0,248,218,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,230,194, 6, - 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,200,230,194, 6, 0, 0, 0, 0,232,229,194, 6, 0, 0, 0, 0, 40,214,194, 6, - 0, 0, 0, 0,104,219,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,230,194, 6, - 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 56,231,194, 6, 0, 0, 0, 0, 88,230,194, 6, 0, 0, 0, 0,232,215,194, 6, - 0, 0, 0, 0,104,219,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,231,194, 6, - 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,168,231,194, 6, 0, 0, 0, 0,200,230,194, 6, 0, 0, 0, 0,248,218,194, 6, - 0, 0, 0, 0,104,219,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,231,194, 6, - 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 24,232,194, 6, 0, 0, 0, 0, 56,231,194, 6, 0, 0, 0, 0,184,213,194, 6, - 0, 0, 0, 0, 24,218,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,232,194, 6, - 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,231,194, 6, 0, 0, 0, 0,168,217,194, 6, - 0, 0, 0, 0,136,218,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,136,232,194, 6, - 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 88,236,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,213,194, 6, - 0, 0, 0, 0, 40,155,194, 6, 0, 0, 0, 0,216,212,194, 6, 0, 0, 0, 0, 40,214,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0,196, 2, 0, 0,222, 2, 0, 0, 7, 7,241, 4, 27, 0, 1, 0, 0, 0, 0, 0, - 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 54,195, 6, 0, 0, 0, 0,232, 54,195, 6, 0, 0, 0, 0,120,233,194, 6, - 0, 0, 0, 0,232,234,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,120,233,194, 6, 0, 0, 0, 0,215, 0, 0, 0, - 1, 0, 0, 0,232,234,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,148, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 32,158, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0,158, 68, 0, 0,200, 65, 0, 0,158, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,241, 4, 26, 0,241, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0,196, 2, 0, 0,221, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,241, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232,234,194, 6, 0, 0, 0, 0,215, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,233,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, - 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, - 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 2, 0, 0,222, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 88,236,194, 6, 0, 0, 0, 0,214, 0, 0, 0, - 1, 0, 0, 0,232, 4,195, 6, 0, 0, 0, 0,136,232,194, 6, 0, 0, 0, 0,152,214,194, 6, 0, 0, 0, 0,120,215,194, 6, - 0, 0, 0, 0,232,215,194, 6, 0, 0, 0, 0, 72,213,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0, -240, 4, 0, 0, 0, 0, 0, 0, 59, 1, 0, 0, 4, 4,216, 0, 60, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,168, 3,195, 6, 0, 0, 0, 0,168, 3,195, 6, 0, 0, 0, 0, 72,237,194, 6, 0, 0, 0, 0,184,238,194, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72,237,194, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,184,238,194, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0, 0, 0,208, 65, 98, 39, 38, 54, - 0, 0, 88, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 87, 67, - 0, 0,200, 65, 0, 0, 87, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, - 10, 0,216, 0, 26, 0,216, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0, -240, 4, 0, 0, 34, 1, 0, 0, 59, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 26, 0, - 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184,238,194, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 72,237,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 67, 0, 0, 61,196, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 71, 67, 1, 0,145,195, 0, 0, 0, 0,199, 0, 0, 0,216, 0, 0, 0, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 0, 0, - 62, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,198, 0, 0, 0, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, - 6, 0,216, 0, 34, 1,199, 0, 34, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0, -240, 4, 0, 0, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 34, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,240,194, 6, 0, 0, 0, 0, 8, 2,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 40,240,194, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,200,241,194, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, - 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, - 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116, -101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, -199, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,200,241,194, 6, - 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,104,243,194, 6, 0, 0, 0, 0, 40,240,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255,199, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,104,243,194, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8,245,194, 6, - 0, 0, 0, 0,200,241,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101, -114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, -199, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8,245,194, 6, - 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,168,246,194, 6, 0, 0, 0, 0,104,243,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254,199, 0,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168,246,194, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 72,248,194, 6, - 0, 0, 0, 0, 8,245,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, - 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, -199, 0, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72,248,194, 6, - 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232,249,194, 6, 0, 0, 0, 0,168,246,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117, -114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117, -114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254,199, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,232,249,194, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,136,251,194, 6, - 0, 0, 0, 0, 72,248,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100, -105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,254, -199, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,136,251,194, 6, - 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40,253,194, 6, 0, 0, 0, 0,232,249,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99, + 66, 76, 69, 78, 68, 69, 82, 45,118, 50, 54, 51, 82, 69, 78, 68, + 72, 0, 0, 0, 48,156,165,231,255,127, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 83, 99,101,110, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99, -101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 76, 79, 66, + 48, 4, 0, 0, 96,152,165,231,255,127, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 32, 32, 32, 48, 0, 0, 0, 0,250, 0, 0, 0, + 1, 0, 0, 1, 40,180,113, 5, 0, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 0, 16, 0, 0,128, 32, 4, 0,218,179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,253,199, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 40,253,194, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,200,254,194, 6, - 0, 0, 0, 0,136,251,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, - 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,253, -199, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,200,254,194, 6, - 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,104, 0,195, 6, 0, 0, 0, 0, 40,253,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253,199, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,104, 0,195, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8, 2,195, 6, - 0, 0, 0, 0,200,254,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, - 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112, -117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,253, -199, 0,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8, 2,195, 6, - 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 0,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,253,199, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,168, 3,195, 6, 0, 0, 0, 0,179, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0, -160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,232, 4,195, 6, - 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,216, 9,195, 6, 0, 0, 0, 0, 88,236,194, 6, 0, 0, 0, 0,184,154,194, 6, - 0, 0, 0, 0, 88,216,194, 6, 0, 0, 0, 0,200,216,194, 6, 0, 0, 0, 0,152,214,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 15, 15, 24, 4, 88, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 8,195, 6, 0, 0, 0, 0,184, 8,195, 6, 0, 0, 0, 0,216, 5,195, 6, - 0, 0, 0, 0, 72, 7,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216, 5,195, 6, 0, 0, 0, 0,215, 0, 0, 0, - 1, 0, 0, 0, 72, 7,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,140, 68, 0, 0, 0, 0, - 0, 0,208, 65, 39,182,158, 55, 0, 0,131, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,224,130, 68, 0, 0,200, 65, 0,224,130, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 24, 4, 26, 0, 24, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 24, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72, 7,195, 6, 0, 0, 0, 0,215, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 5,195, 6, 0, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, - 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0, 18, 0, 0, 0, - 61, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, - 0, 0, 0, 2, 4, 0, 0, 4, 8, 0, 24, 4, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0, 26, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 24, 4, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0,184, 8,195, 6, 0, 0, 0, 0,190, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,216, 9,195, 6, - 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,152, 16,195, 6, 0, 0, 0, 0,232, 4,195, 6, 0, 0, 0, 0,120,215,194, 6, - 0, 0, 0, 0,248,218,194, 6, 0, 0, 0, 0,104,219,194, 6, 0, 0, 0, 0,232,215,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0, 61, 1, 0, 0, 59, 2, 0, 0, 3, 3,216, 0,255, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 13,195, 6, 0, 0, 0, 0,168, 13,195, 6, 0, 0, 0, 0,200, 10,195, 6, - 0, 0, 0, 0, 56, 12,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200, 10,195, 6, 0, 0, 0, 0,215, 0, 0, 0, - 1, 0, 0, 0, 56, 12,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0, - 0, 0,208, 65, 98, 39, 38, 54, 0, 0, 88, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 87, 67, 0, 0,200, 65, 0, 0, 87, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,216, 0, 26, 0,216, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0, 34, 2, 0, 0, 59, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,216, 0, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56, 12,195, 6, 0, 0, 0, 0,215, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 10,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0,244,194, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 67, 0, 0, 83,195, 0, 0, 0, 0,199, 0, 0, 0,216, 0, 0, 0, 18, 0, 0, 0, -228, 0, 0, 0, 0, 0, 0, 0,198, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,198, 0, 0, 0, 18, 0, 0, 0, -228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 2, 0, 0, - 2, 0, 3, 3, 0, 0, 12, 4, 6, 0,216, 0,229, 0,199, 0,211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0, 61, 1, 0, 0, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,216, 0,229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 87, 77, 0, 0, 88, 1, 0, 0,200,224,112, 5, 0, 0, 0, 0,146, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 77, 87,105, +110, 77, 97,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,226,112, 5, 0, 0, 0, 0,104,226,112, 5, + 0, 0, 0, 0,104,226,112, 5, 0, 0, 0, 0,104,226,112, 5, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,120,158,119, 77, +215,127, 0, 0,120,158,119, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,105,119, 77, +215,127, 0, 0, 88,105,119, 77,215,127, 0, 0, 16, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,168, 13,195, 6, 0, 0, 0, 0,183, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 15,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, - 16, 0, 0, 0, 8, 15,195, 6, 0, 0, 0, 0,237, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0,104, 15,195, 6, - 0, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0,104, 15,195, 6, 0, 0, 0, 0,236, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0,104, 38,198, 6, 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0,104, 38,198, 6, 0, 0, 0, 0, 20, 0, 0, 0, - 1, 0, 1, 0,104, 38,198, 6, 0, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0,248, 64,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,104, 74,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 8,129,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 72, 88,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 88,110,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,168, 81,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 56, 60,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,200, 67,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 40, 59,198, 6, 0, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0,104, 38,198, 6, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0,152, 16,195, 6, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 40, 30,195, 6, 0, 0, 0, 0,216, 9,195, 6, - 0, 0, 0, 0, 56,217,194, 6, 0, 0, 0, 0,168,217,194, 6, 0, 0, 0, 0, 8,215,194, 6, 0, 0, 0, 0,200,216,194, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 1, 0, 0, 23, 4, 0, 0, 89, 0, 0, 0,194, 2, 0, 0, 1, 1, 87, 2, -106, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 28,195, 6, 0, 0, 0, 0,120, 28,195, 6, - 0, 0, 0, 0,136, 17,195, 6, 0, 0, 0, 0, 72, 23,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136, 17,195, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,248, 18,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 21, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128, 21, 68, 0, 0,200, 65, 0,128, 21, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 87, 2, 26, 0, 87, 2, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 1, 0, 0, 23, 4, 0, 0, 89, 0, 0, 0,114, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248, 18,195, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,104, 20,195, 6, 0, 0, 0, 0,136, 17,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0, -160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 1, 0, 0,193, 1, 0, 0,115, 0, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 80, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104, 20,195, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,216, 21,195, 6, 0, 0, 0, 0,248, 18,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0, -160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 1, 0, 0,193, 1, 0, 0,115, 0, 0, 0,115, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216, 21,195, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 72, 23,195, 6, 0, 0, 0, 0,104, 20,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 35, 67, 0,128, 96,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128, 96,196, 0, 0, 0, 0,163, 0, 0, 0, -180, 0, 0, 0, 18, 0, 0, 0,147, 3, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -162, 0, 0, 0, 18, 0, 0, 0,147, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,148, 3,163, 0,130, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0, 23, 4, 0, 0,115, 0, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72, 23,195, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 21,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 1, 0, 0, 23, 4, 0, 0,115, 0, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 2, 80, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 24,195, 6, 0, 0, 0, 0, 68, 65, 84, 65,112, 3, 0, 0,184, 24,195, 6, - 0, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -200,167,141, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 13,128,191, 0, 0,128,191, 0, 0, 0, 0, - 0, 0, 0, 0, 74,215, 76,190, 0, 0, 0, 0, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63, -143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190, -142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65, -111,121,173,192,248,209,213, 64, 0, 0,128, 63,178,157,229, 62,209,162,227,190, 48,180, 81,191,184,158, 81,191,117, 90,127, 63, - 13,114, 91, 62, 26, 63,185, 62, 35, 44,185, 62,145,180,109,188,105,147,125, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, - 0, 0, 0, 0, 9,185,108, 65,214,211,111, 65, 99,240,191, 62,110,116, 85, 63, 64,185, 70,188, 0, 0, 82,180, 48,221,185,190, - 44, 45, 51, 62, 28, 11, 79, 63, 0, 0, 56,179, 67,108,117,194,183,204,216, 65,105,156, 5,194,212,247,159,192,235, 62,114, 66, - 59,254,213,193,158,225, 3, 66, 55, 8,160, 64, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63, -143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,178,157,229, 62,209,162,227,190, 48,180, 81,191,184,158, 81,191,117, 90,127, 63, - 13,114, 91, 62, 26, 63,185, 62, 35, 44,185, 62,145,180,109,188,105,147,125, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, - 0, 0, 0, 0, 9,185,108, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,163, 91, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 12,163, 91, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,163, 91, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65, -214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,236, 15, 72, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 0, 0,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 32, 33, 12, 66, 86,152,137, 66,113, 27,126, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 96, 1, 0, 0,120, 28,195, 6, 0, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, -205,204, 76, 62, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,200, 67,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8,128, 0, 0, 0, 12, 66, 0, 0,128, 63, -205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 40, 30,195, 6, - 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,216, 38,195, 6, 0, 0, 0, 0,152, 16,195, 6, 0, 0, 0, 0, 88,216,194, 6, - 0, 0, 0, 0, 24,218,194, 6, 0, 0, 0, 0,136,218,194, 6, 0, 0, 0, 0, 56,217,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 89, 0, 0, 0, 3, 1, 0, 0, 2, 2,192, 1,171, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 36,195, 6, 0, 0, 0, 0,216, 36,195, 6, 0, 0, 0, 0, 24, 31,195, 6, - 0, 0, 0, 0,104, 35,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24, 31,195, 6, 0, 0, 0, 0,215, 0, 0, 0, - 1, 0, 0, 0,136, 32,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 89, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,224, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,223, 67, 0, 0,200, 65, 0,128,223, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,192, 1, 26, 0,192, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 89, 0, 0, 0,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,192, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136, 32,195, 6, 0, 0, 0, 0,215, 0, 0, 0, - 1, 0, 0, 0,248, 33,195, 6, 0, 0, 0, 0, 24, 31,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,112,193, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,254,194, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0, -144, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0, -144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 10, 6, 0, 0, - 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,217, 0,145, 0,200, 0,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0,115, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,217, 0,145, 0, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248, 33,195, 6, 0, 0, 0, 0,215, 0, 0, 0, - 1, 0, 0, 0,104, 35,195, 6, 0, 0, 0, 0,136, 32,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,191, 1, 0, 0,191, 1, 0, 0,115, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104, 35,195, 6, 0, 0, 0, 0,215, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 33,195, 6, 0, 0, 0, 0, 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, - 0, 0,160, 64, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, -144, 0, 0, 0, 18, 0, 0, 0,230, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,230, 0, 0, 0, 18, 0, 0, 0, -144, 0, 0, 0,111, 18,131, 58,111, 18,131, 58, 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,231, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,217, 0, 0, 0,191, 1, 0, 0,115, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,231, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,216, 36,195, 6, 0, 0, 0, 0,178, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 38,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,112, 0, 0, 0, 24, 38,195, 6, - 0, 0, 0, 0, 37, 1, 0, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0,216, 38,195, 6, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,168, 45,195, 6, 0, 0, 0, 0, 40, 30,195, 6, - 0, 0, 0, 0, 24,218,194, 6, 0, 0, 0, 0,184,213,194, 6, 0, 0, 0, 0,168,217,194, 6, 0, 0, 0, 0,136,218,194, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 5, 1, 0, 0,194, 2, 0, 0, 12, 12,192, 1, -190, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 44,195, 6, 0, 0, 0, 0, 24, 44,195, 6, - 0, 0, 0, 0,200, 39,195, 6, 0, 0, 0, 0,168, 42,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200, 39,195, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 56, 41,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,192, 94, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,224, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -191, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,223, 67, 0, 0,200, 65, 0,128,223, 67, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,192, 1, 26, 0,192, 1, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 5, 1, 0, 0, 30, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56, 41,195, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,168, 42,195, 6, 0, 0, 0, 0,200, 39,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 55, 67, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,201,195, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -199, 0, 0, 0, 18, 0, 0, 0,163, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 8, 4, 0, 0, 2, 0, 3, 3, 0, 0, 2, 4, 6, 0,200, 0,164, 1,200, 0,146, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 31, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 0,164, 1, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168, 42,195, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 41,195, 6, 0, 0, 0, 0, 0, 0, 32,193, - 0, 0,104, 68, 0, 0, 72,194, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, 0, 0,201,195, 0, 0, 0, 0,231, 0, 0, 0, -248, 0, 0, 0, 18, 0, 0, 0,163, 1, 0, 0, 0, 0, 0, 0,230, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -230, 0, 0, 0, 18, 0, 0, 0,163, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,146, 72, 0, 64, 28, 70, 10,215, 35, 60, - 0, 0, 72, 66, 74, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 4, 4, 0,248, 0,164, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 0, 0, 0,191, 1, 0, 0, 31, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 0,164, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 72, 1, 0, 0, 24, 44,195, 6, - 0, 0, 0, 0, 38, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,168, 45,195, 6, - 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 38,195, 6, 0, 0, 0, 0,248,218,194, 6, - 0, 0, 0, 0, 8,215,194, 6, 0, 0, 0, 0, 40,214,194, 6, 0, 0, 0, 0,104,219,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0, 61, 2, 0, 0,194, 2, 0, 0, 1, 1,216, 0,134, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 53,195, 6, 0, 0, 0, 0, 56, 53,195, 6, 0, 0, 0, 0,152, 46,195, 6, - 0, 0, 0, 0, 8, 48,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152, 46,195, 6, 0, 0, 0, 0,215, 0, 0, 0, - 1, 0, 0, 0, 8, 48,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,165, 67, 0, 0, 0, 64, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 0, 0, - 23, 0, 0, 0, 0,128,164, 67, 0, 0,200, 65, 0,128,164, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 74, 1, 24, 0, 74, 1, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0, 61, 2, 0, 0, 61, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8, 48,195, 6, 0, 0, 0, 0,215, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 46,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0, 61, 2, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,216, 0,134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,120, 49,195, 6, 0, 0, 0, 0, 68, 65, 84, 65,112, 3, 0, 0,120, 49,195, 6, 0, 0, 0, 0,173, 0, 0, 0, - 1, 0, 0, 0, 56,255, 13, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228,100, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 65,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 72, 1, 77,190, - 0, 0, 0, 0,221,149, 47, 63, 86,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, - 0, 0, 0, 0,192, 56, 49,188, 55, 53,101, 63, 52,247,227, 62, 0, 0, 0, 0, 90, 38,173,190, 0,222,192,190,152, 9, 52,193, - 0, 0,128, 63,223,149, 47, 63, 55, 70, 58, 63,160, 56, 49,188, 0, 0, 0, 0, 88,126,162,190,229,251,159, 62, 55, 53,101, 63, - 0, 0, 0, 0, 7,165, 39, 63,150, 84, 28,191, 51,247,227, 62, 0, 0, 0, 0,110,101,239, 64,151, 62,208,192, 78,255,170, 64, - 0, 0,128, 63, 47,201,194, 63, 61, 73,145,191,244,250, 39,191, 8,165, 39,191,190,164,206, 63,209, 10,143, 63,180,164, 28, 63, -149, 84, 28, 63,224,153,196,188,136,239, 76, 64, 10,108,228,190, 52,247,227,190,125, 21, 64,191,126,113,172,191,216, 49, 49, 65, -152, 9, 52, 65,149, 70,158, 62, 24,234,167, 62,192,214,159,187, 0, 0, 6,181,196,188,181,189, 71,238,178, 61,127, 45,128, 62, - 0, 0,226, 51,168,120, 21,194,107, 5, 2, 66,203,135,213,193,147,214,159,192,177, 38, 19, 66,124,173,255,193, 96,101,210, 65, -128, 40,160, 64,221,149, 47, 63, 86,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, - 0, 0, 0, 0,192, 56, 49,188, 55, 53,101, 63, 52,247,227, 62, 0, 0, 0, 0, 90, 38,173,190, 0,222,192,190,152, 9, 52,193, - 0, 0,128, 63, 47,201,194, 63, 61, 73,145,191,244,250, 39,191, 8,165, 39,191,190,164,206, 63,209, 10,143, 63,180,164, 28, 63, -149, 84, 28, 63,224,153,196,188,136,239, 76, 64, 10,108,228,190, 52,247,227,190,125, 21, 64,191,126,113,172,191,216, 49, 49, 65, -152, 9, 52, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,102,103, 97, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102,103, 97, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102,103, 97, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63,241, 22, 72, 63, 78,162,246,190, 43, 8, 90,190, 2, 35,171,190, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,253,191,136, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 65, 1, 2, 0, 0,255,255, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0,128, 63,190,133, 65, 66, 99,212, 90, 66, - 27,183,118, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 1, 0, 0, 56, 53,195, 6, - 0, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65,205,204, 76, 62, 2, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,200, 67,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 3, 0, 8, 0,128, 0, 0, 0, 12, 66, 0, 0,128, 63, 10,215, 35, 60, 0, 0,250, 67, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 8, 1, 0, 0,120, 55,195, 6, 0, 0, 0, 0,210, 0, 0, 0, - 1, 0, 0, 0,248,163,195, 6, 0, 0, 0, 0,136,211,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 82, 67,111,109,112,111,115,105,116,105,110,103, 0,103, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 56,195, 6, - 0, 0, 0, 0,120, 62,195, 6, 0, 0, 0, 0,232, 62,195, 6, 0, 0, 0, 0, 24, 72,195, 6, 0, 0, 0, 0,136, 72,195, 6, - 0, 0, 0, 0,184,124,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200, 56,195, 6, 0, 0, 0, 0,211, 0, 0, 0, - 1, 0, 0, 0, 56, 57,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56, 57,195, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,168, 57,195, 6, - 0, 0, 0, 0,200, 56,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,168, 57,195, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 24, 58,195, 6, 0, 0, 0, 0, 56, 57,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24, 58,195, 6, - 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,136, 58,195, 6, 0, 0, 0, 0,168, 57,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136, 58,195, 6, 0, 0, 0, 0,211, 0, 0, 0, - 1, 0, 0, 0,248, 58,195, 6, 0, 0, 0, 0, 24, 58,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234, 3, - 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248, 58,195, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,104, 59,195, 6, - 0, 0, 0, 0,136, 58,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,104, 59,195, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,216, 59,195, 6, 0, 0, 0, 0,248, 58,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 92, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216, 59,195, 6, - 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 72, 60,195, 6, 0, 0, 0, 0,104, 59,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,126, 7, 92, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72, 60,195, 6, 0, 0, 0, 0,211, 0, 0, 0, - 1, 0, 0, 0,184, 60,195, 6, 0, 0, 0, 0,216, 59,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6,234, 3, - 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184, 60,195, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 40, 61,195, 6, - 0, 0, 0, 0, 72, 60,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 40, 61,195, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,152, 61,195, 6, 0, 0, 0, 0,184, 60,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152, 61,195, 6, - 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 8, 62,195, 6, 0, 0, 0, 0, 40, 61,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 3,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8, 62,195, 6, 0, 0, 0, 0,211, 0, 0, 0, - 1, 0, 0, 0,120, 62,195, 6, 0, 0, 0, 0,152, 61,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120, 62,195, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8, 62,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,232, 62,195, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 88, 63,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 56, 57,195, 6, 0, 0, 0, 0,168, 57,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 88, 63,195, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,200, 63,195, 6, 0, 0, 0, 0,232, 62,195, 6, - 0, 0, 0, 0, 56, 57,195, 6, 0, 0, 0, 0,136, 58,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,200, 63,195, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 56, 64,195, 6, 0, 0, 0, 0, 88, 63,195, 6, - 0, 0, 0, 0,168, 57,195, 6, 0, 0, 0, 0,248, 58,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 56, 64,195, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,168, 64,195, 6, 0, 0, 0, 0,200, 63,195, 6, - 0, 0, 0, 0,136, 58,195, 6, 0, 0, 0, 0,248, 58,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,168, 64,195, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 24, 65,195, 6, 0, 0, 0, 0, 56, 64,195, 6, - 0, 0, 0, 0, 24, 58,195, 6, 0, 0, 0, 0,216, 59,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 24, 65,195, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,136, 65,195, 6, 0, 0, 0, 0,168, 64,195, 6, - 0, 0, 0, 0,104, 59,195, 6, 0, 0, 0, 0,216, 59,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,136, 65,195, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,248, 65,195, 6, 0, 0, 0, 0, 24, 65,195, 6, - 0, 0, 0, 0,248, 58,195, 6, 0, 0, 0, 0, 72, 60,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,248, 65,195, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,104, 66,195, 6, 0, 0, 0, 0,136, 65,195, 6, - 0, 0, 0, 0,136, 58,195, 6, 0, 0, 0, 0, 72, 60,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,104, 66,195, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,216, 66,195, 6, 0, 0, 0, 0,248, 65,195, 6, - 0, 0, 0, 0,104, 59,195, 6, 0, 0, 0, 0, 72, 60,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,216, 66,195, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 72, 67,195, 6, 0, 0, 0, 0,104, 66,195, 6, - 0, 0, 0, 0,248, 58,195, 6, 0, 0, 0, 0,216, 59,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 72, 67,195, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,184, 67,195, 6, 0, 0, 0, 0,216, 66,195, 6, - 0, 0, 0, 0,136, 58,195, 6, 0, 0, 0, 0,184, 60,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,184, 67,195, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 40, 68,195, 6, 0, 0, 0, 0, 72, 67,195, 6, - 0, 0, 0, 0, 72, 60,195, 6, 0, 0, 0, 0, 40, 61,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 40, 68,195, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,152, 68,195, 6, 0, 0, 0, 0,184, 67,195, 6, - 0, 0, 0, 0,184, 60,195, 6, 0, 0, 0, 0, 40, 61,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,152, 68,195, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 8, 69,195, 6, 0, 0, 0, 0, 40, 68,195, 6, - 0, 0, 0, 0,184, 60,195, 6, 0, 0, 0, 0,152, 61,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 8, 69,195, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,120, 69,195, 6, 0, 0, 0, 0,152, 68,195, 6, - 0, 0, 0, 0, 40, 61,195, 6, 0, 0, 0, 0,152, 61,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,120, 69,195, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,232, 69,195, 6, 0, 0, 0, 0, 8, 69,195, 6, - 0, 0, 0, 0,200, 56,195, 6, 0, 0, 0, 0, 8, 62,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,232, 69,195, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 88, 70,195, 6, 0, 0, 0, 0,120, 69,195, 6, - 0, 0, 0, 0, 8, 62,195, 6, 0, 0, 0, 0,120, 62,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 88, 70,195, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,200, 70,195, 6, 0, 0, 0, 0,232, 69,195, 6, - 0, 0, 0, 0, 24, 58,195, 6, 0, 0, 0, 0,120, 62,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,200, 70,195, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 56, 71,195, 6, 0, 0, 0, 0, 88, 70,195, 6, - 0, 0, 0, 0,104, 59,195, 6, 0, 0, 0, 0,120, 62,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 56, 71,195, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,168, 71,195, 6, 0, 0, 0, 0,200, 70,195, 6, - 0, 0, 0, 0,152, 61,195, 6, 0, 0, 0, 0, 8, 62,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0,168, 71,195, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 24, 72,195, 6, 0, 0, 0, 0, 56, 71,195, 6, - 0, 0, 0, 0, 40, 61,195, 6, 0, 0, 0, 0,120, 62,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 0, 0, 0, 24, 72,195, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 71,195, 6, - 0, 0, 0, 0,200, 56,195, 6, 0, 0, 0, 0,184, 60,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0,136, 72,195, 6, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 88, 76,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,136, 58,195, 6, 0, 0, 0, 0, 56, 57,195, 6, 0, 0, 0, 0,168, 57,195, 6, 0, 0, 0, 0,248, 58,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7, - 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,163,195, 6, 0, 0, 0, 0,104,163,195, 6, - 0, 0, 0, 0,120, 73,195, 6, 0, 0, 0, 0,232, 74,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,120, 73,195, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,232, 74,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 32,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232, 74,195, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 73,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 49,105, 5, 0, 0, 0, 0,184,148,105, 5, + 0, 0, 0, 0,216, 49,105, 5, 0, 0, 0, 0,104,125,105, 5, 0, 0, 0, 0,184,148,105, 5, 0, 0, 0, 0,168,149,105, 5, + 0, 0, 0, 0,168,149,105, 5, 0, 0, 0, 0,168,149,105, 5, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0,104,226,112, 5, + 0, 0, 0, 0,147, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,150,105, 5, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 40,180,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,115, 99,114,101, +101,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 22, 1, +138, 3,211, 1, 0, 0, 0, 0, 1, 0,238, 3, 0, 0, 0, 0, 1, 0, 0, 0,104, 13, 58, 76,215,127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,163,121, 77, +215,127, 0, 0, 40,163,121, 77,215,127, 0, 0, 72, 28, 58, 76,215,127, 0, 0, 40, 25, 58, 76,215,127, 0, 0,200, 26, 58, 76, +215,127, 0, 0,200, 26, 58, 76,215,127, 0, 0, 24, 57, 58, 76,215,127, 0, 0, 8,158,119, 77,215,127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 8, 1, 0, 0,184,227,112, 5, 0, 0, 0, 0,210, 0, 0, 0, + 1, 0, 0, 0,168, 71,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83, 82, 65,110,105,109, 97,116,105,111,110, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,170,112, 5, + 0, 0, 0, 0,152,235,112, 5, 0, 0, 0, 0, 8,236,112, 5, 0, 0, 0, 0, 72,248,112, 5, 0, 0, 0, 0,184,248,112, 5, + 0, 0, 0, 0,216, 61,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,228,115, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232,170,112, 5, 0, 0, 0, 0,211, 0, 0, 0, + 1, 0, 0, 0, 88,171,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88,171,112, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 8,229,112, 5, + 0, 0, 0, 0,232,170,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 2, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0, 8,229,112, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,120,229,112, 5, 0, 0, 0, 0, 88,171,112, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4,222, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120,229,112, 5, + 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,232,229,112, 5, 0, 0, 0, 0, 8,229,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232,229,112, 5, 0, 0, 0, 0,211, 0, 0, 0, + 1, 0, 0, 0, 88,230,112, 5, 0, 0, 0, 0,120,229,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 2, + 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88,230,112, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,200,230,112, 5, + 0, 0, 0, 0,232,229,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,200,230,112, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 56,231,112, 5, 0, 0, 0, 0, 88,230,112, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56,231,112, 5, + 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,168,231,112, 5, 0, 0, 0, 0,200,230,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 24, 4,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168,231,112, 5, 0, 0, 0, 0,211, 0, 0, 0, + 1, 0, 0, 0, 24,232,112, 5, 0, 0, 0, 0, 56,231,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 4, 60, 1, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24,232,112, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,136,232,112, 5, + 0, 0, 0, 0,168,231,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 60, 1, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,136,232,112, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,248,232,112, 5, 0, 0, 0, 0, 24,232,112, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,232,112, 5, + 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,104,233,112, 5, 0, 0, 0, 0,136,232,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 24, 4, 88, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104,233,112, 5, 0, 0, 0, 0,211, 0, 0, 0, + 1, 0, 0, 0,216,233,112, 5, 0, 0, 0, 0,248,232,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 1, 88, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216,233,112, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 72,234,112, 5, + 0, 0, 0, 0,104,233,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 1,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0, 72,234,112, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,184,234,112, 5, 0, 0, 0, 0,216,233,112, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,234,112, 5, + 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 40,235,112, 5, 0, 0, 0, 0, 72,234,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,192, 1, 4, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40,235,112, 5, 0, 0, 0, 0,211, 0, 0, 0, + 1, 0, 0, 0,152,235,112, 5, 0, 0, 0, 0,184,234,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 4, 60, 2, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152,235,112, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 40,235,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 60, 2, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 8,236,112, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,120,236,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 88,171,112, 5, 0, 0, 0, 0, 8,229,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,120,236,112, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,232,236,112, 5, 0, 0, 0, 0, 8,236,112, 5, + 0, 0, 0, 0, 88,171,112, 5, 0, 0, 0, 0,232,229,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,232,236,112, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 88,237,112, 5, 0, 0, 0, 0,120,236,112, 5, + 0, 0, 0, 0, 8,229,112, 5, 0, 0, 0, 0, 88,230,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 88,237,112, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,200,237,112, 5, 0, 0, 0, 0,232,236,112, 5, + 0, 0, 0, 0,232,229,112, 5, 0, 0, 0, 0, 88,230,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,200,237,112, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 56,238,112, 5, 0, 0, 0, 0, 88,237,112, 5, + 0, 0, 0, 0,232,170,112, 5, 0, 0, 0, 0,200,230,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 56,238,112, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,168,238,112, 5, 0, 0, 0, 0,200,237,112, 5, + 0, 0, 0, 0,120,229,112, 5, 0, 0, 0, 0,200,230,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,168,238,112, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 24,239,112, 5, 0, 0, 0, 0, 56,238,112, 5, + 0, 0, 0, 0, 88,230,112, 5, 0, 0, 0, 0, 56,231,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 24,239,112, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,136,239,112, 5, 0, 0, 0, 0,168,238,112, 5, + 0, 0, 0, 0,200,230,112, 5, 0, 0, 0, 0,168,231,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,136,239,112, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,248,239,112, 5, 0, 0, 0, 0, 24,239,112, 5, + 0, 0, 0, 0,120,229,112, 5, 0, 0, 0, 0, 24,232,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,248,239,112, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,104,240,112, 5, 0, 0, 0, 0,136,239,112, 5, + 0, 0, 0, 0,168,231,112, 5, 0, 0, 0, 0, 24,232,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,104,240,112, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,216,240,112, 5, 0, 0, 0, 0,248,239,112, 5, + 0, 0, 0, 0,232,170,112, 5, 0, 0, 0, 0,136,232,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,216,240,112, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 72,241,112, 5, 0, 0, 0, 0,104,240,112, 5, + 0, 0, 0, 0, 56,231,112, 5, 0, 0, 0, 0,248,232,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 72,241,112, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,184,241,112, 5, 0, 0, 0, 0,216,240,112, 5, + 0, 0, 0, 0,200,230,112, 5, 0, 0, 0, 0,248,232,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,184,241,112, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 40,242,112, 5, 0, 0, 0, 0, 72,241,112, 5, + 0, 0, 0, 0,136,232,112, 5, 0, 0, 0, 0,248,232,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 40,242,112, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,152,242,112, 5, 0, 0, 0, 0,184,241,112, 5, + 0, 0, 0, 0,136,232,112, 5, 0, 0, 0, 0,104,233,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,152,242,112, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 8,243,112, 5, 0, 0, 0, 0, 40,242,112, 5, + 0, 0, 0, 0,248,232,112, 5, 0, 0, 0, 0,104,233,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 8,243,112, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,120,243,112, 5, 0, 0, 0, 0,152,242,112, 5, + 0, 0, 0, 0,232,229,112, 5, 0, 0, 0, 0,216,233,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,120,243,112, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,232,243,112, 5, 0, 0, 0, 0, 8,243,112, 5, + 0, 0, 0, 0, 56,231,112, 5, 0, 0, 0, 0,216,233,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,232,243,112, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 88,244,112, 5, 0, 0, 0, 0,120,243,112, 5, + 0, 0, 0, 0,104,233,112, 5, 0, 0, 0, 0,216,233,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 88,244,112, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,200,244,112, 5, 0, 0, 0, 0,232,243,112, 5, + 0, 0, 0, 0,136,232,112, 5, 0, 0, 0, 0, 72,234,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,200,244,112, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 56,245,112, 5, 0, 0, 0, 0, 88,244,112, 5, + 0, 0, 0, 0,104,233,112, 5, 0, 0, 0, 0,184,234,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 56,245,112, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,168,245,112, 5, 0, 0, 0, 0,200,244,112, 5, + 0, 0, 0, 0, 72,234,112, 5, 0, 0, 0, 0,184,234,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,168,245,112, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 24,246,112, 5, 0, 0, 0, 0, 56,245,112, 5, + 0, 0, 0, 0,168,231,112, 5, 0, 0, 0, 0, 40,235,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 24,246,112, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,136,246,112, 5, 0, 0, 0, 0,168,245,112, 5, + 0, 0, 0, 0, 56,231,112, 5, 0, 0, 0, 0, 40,235,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,136,246,112, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,248,246,112, 5, 0, 0, 0, 0, 24,246,112, 5, + 0, 0, 0, 0, 88,230,112, 5, 0, 0, 0, 0,152,235,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,248,246,112, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,104,247,112, 5, 0, 0, 0, 0,136,246,112, 5, + 0, 0, 0, 0, 24,232,112, 5, 0, 0, 0, 0,152,235,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,104,247,112, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,216,247,112, 5, 0, 0, 0, 0,248,246,112, 5, + 0, 0, 0, 0, 40,235,112, 5, 0, 0, 0, 0,152,235,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,216,247,112, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 72,248,112, 5, 0, 0, 0, 0,104,247,112, 5, + 0, 0, 0, 0,232,229,112, 5, 0, 0, 0, 0, 72,234,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 72,248,112, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,247,112, 5, + 0, 0, 0, 0,216,233,112, 5, 0, 0, 0, 0,184,234,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0,184,248,112, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,136,252,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,232,229,112, 5, 0, 0, 0, 0, 88,171,112, 5, 0, 0, 0, 0, 8,229,112, 5, 0, 0, 0, 0, 88,230,112, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0,196, 2, 0, 0,222, 2, 0, 0, 7, 7,241, 4, + 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 71,113, 5, 0, 0, 0, 0, 24, 71,113, 5, + 0, 0, 0, 0,168,249,112, 5, 0, 0, 0, 0, 24,251,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168,249,112, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 24,251,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,128,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,158, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0,158, 68, 0, 0,200, 65, 0, 0,158, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,241, 4, 26, 0,241, 4, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0,196, 2, 0, 0,221, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,251,112, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,249,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0, 129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 2, 0, 0,222, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 88, 76,195, 6, - 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 72, 81,195, 6, 0, 0, 0, 0,136, 72,195, 6, 0, 0, 0, 0,120, 62,195, 6, - 0, 0, 0, 0,104, 59,195, 6, 0, 0, 0, 0,216, 59,195, 6, 0, 0, 0, 0, 24, 58,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 15, 15, 94, 1, 92, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 80,195, 6, 0, 0, 0, 0, 40, 80,195, 6, 0, 0, 0, 0, 72, 77,195, 6, - 0, 0, 0, 0,184, 78,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72, 77,195, 6, 0, 0, 0, 0,215, 0, 0, 0, - 1, 0, 0, 0,184, 78,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,115, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,175, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,174, 67, 0, 0,200, 65, 0,128,174, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 94, 1, 26, 0, 94, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 94, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,136,252,112, 5, + 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 24, 21,113, 5, 0, 0, 0, 0,184,248,112, 5, 0, 0, 0, 0,200,230,112, 5, + 0, 0, 0, 0,168,231,112, 5, 0, 0, 0, 0, 24,232,112, 5, 0, 0, 0, 0,120,229,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 59, 1, 0, 0, 4, 4,216, 0, 60, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 19,113, 5, 0, 0, 0, 0,216, 19,113, 5, 0, 0, 0, 0,120,253,112, 5, + 0, 0, 0, 0,232,254,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,120,253,112, 5, 0, 0, 0, 0,215, 0, 0, 0, + 1, 0, 0, 0,232,254,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0, + 0, 0,208, 65, 98, 39, 38, 54, 0, 0, 88, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 87, 67, 0, 0,200, 65, 0, 0, 87, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,216, 0, 26, 0,216, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0, 34, 1, 0, 0, 59, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,216, 0, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184, 78,195, 6, 0, 0, 0, 0,215, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 77,195, 6, 0, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, - 0, 0, 72, 66, 50, 51, 74,193,154,209,131, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 18, 0, 0, 0, - 65, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, - 0, 0, 0, 2, 4, 0, 0, 4, 8, 0, 94, 1, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 26, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 94, 1, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, 40, 80,195, 6, 0, 0, 0, 0,190, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 72, 81,195, 6, - 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,216,105,195, 6, 0, 0, 0, 0, 88, 76,195, 6, 0, 0, 0, 0,104, 59,195, 6, - 0, 0, 0, 0, 72, 60,195, 6, 0, 0, 0, 0,248, 58,195, 6, 0, 0, 0, 0,216, 59,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 93, 0, 0, 0,233, 3, 0, 0, 4, 4, 94, 1,141, 3, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,104,195, 6, 0, 0, 0, 0,152,104,195, 6, 0, 0, 0, 0, 56, 82,195, 6, - 0, 0, 0, 0,168, 83,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56, 82,195, 6, 0, 0, 0, 0,215, 0, 0, 0, - 1, 0, 0, 0,168, 83,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,175, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,128,174, 67, 0, 0,200, 65, 0,128,174, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 94, 1, 26, 0, 94, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0,208, 3, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 94, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168, 83,195, 6, 0, 0, 0, 0,215, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 82,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,174, 67, 0,128, 92,196, - 0, 0, 0, 0, 0, 0, 0, 0,255,127,166, 67,255,191, 92,196, 0, 0, 0, 0, 77, 1, 0, 0, 94, 1, 0, 0, 0, 0, 0, 0, -114, 3, 0, 0, 0, 0, 0, 0, 82, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 76, 1, 0, 0, 0, 0, 0, 0, -114, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 94, 1,115, 3, 77, 1,115, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 93, 0, 0, 0,207, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 94, 1,115, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 85,195, 6, - 0, 0, 0, 0,248,102,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24, 85,195, 6, 0, 0, 0, 0,213, 0, 0, 0, - 1, 0, 0, 0,184, 86,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232,254,112, 5, 0, 0, 0, 0,215, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,253,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 67, 0, 0, 61,196, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 71, 67, 1, 0,145,195, 0, 0, 0, 0,199, 0, 0, 0,216, 0, 0, 0, 0, 0, 0, 0, + 33, 1, 0, 0, 0, 0, 0, 0, 62, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,198, 0, 0, 0, 0, 0, 0, 0, + 33, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,216, 0, 34, 1,199, 0, 34, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,216, 0, 34, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 0,113, 5, + 0, 0, 0, 0, 56, 18,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88, 0,113, 5, 0, 0, 0, 0,213, 0, 0, 0, + 1, 0, 0, 0,248, 1,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,220,255, 76, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,220,255,199, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,184, 86,195, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 88, 88,195, 6, 0, 0, 0, 0, 24, 85,195, 6, + 88, 1, 0, 0,248, 1,113, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,152, 3,113, 5, 0, 0, 0, 0, 88, 0,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101, 110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101, 110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 76, 1, 61, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255,199, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88, 88,195, 6, 0, 0, 0, 0,213, 0, 0, 0, - 1, 0, 0, 0,248, 89,195, 6, 0, 0, 0, 0,184, 86,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152, 3,113, 5, 0, 0, 0, 0,213, 0, 0, 0, + 1, 0, 0, 0, 56, 5,113, 5, 0, 0, 0, 0,248, 1,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,111,255, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,111,255,199, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,248, 89,195, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,152, 91,195, 6, 0, 0, 0, 0, 88, 88,195, 6, + 88, 1, 0, 0, 56, 5,113, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,216, 6,113, 5, 0, 0, 0, 0,152, 3,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105, 109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105, 109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, 76, 1,203, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254,199, 0,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152, 91,195, 6, 0, 0, 0, 0,213, 0, 0, 0, - 1, 0, 0, 0, 56, 93,195, 6, 0, 0, 0, 0,248, 89,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216, 6,113, 5, 0, 0, 0, 0,213, 0, 0, 0, + 1, 0, 0, 0,120, 8,113, 5, 0, 0, 0, 0, 56, 5,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 58,254, 76, 1, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 58,254,199, 0, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 56, 93,195, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,216, 94,195, 6, 0, 0, 0, 0,152, 91,195, 6, + 88, 1, 0, 0,120, 8,113, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 24, 10,113, 5, 0, 0, 0, 0,216, 6,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111, 116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111, 116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105, 111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254, 76, 1, 0, 0, 20, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254,199, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216, 94,195, 6, 0, 0, 0, 0,213, 0, 0, 0, - 1, 0, 0, 0,120, 96,195, 6, 0, 0, 0, 0, 56, 93,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24, 10,113, 5, 0, 0, 0, 0,213, 0, 0, 0, + 1, 0, 0, 0,184, 11,113, 5, 0, 0, 0, 0,120, 8,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 10,254, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 10,254,199, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,120, 96,195, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 24, 98,195, 6, 0, 0, 0, 0,216, 94,195, 6, + 88, 1, 0, 0,184, 11,113, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 88, 13,113, 5, 0, 0, 0, 0, 24, 10,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101, 114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101, 114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,253, 76, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,253,199, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24, 98,195, 6, 0, 0, 0, 0,213, 0, 0, 0, - 1, 0, 0, 0,184, 99,195, 6, 0, 0, 0, 0,120, 96,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88, 13,113, 5, 0, 0, 0, 0,213, 0, 0, 0, + 1, 0, 0, 0,248, 14,113, 5, 0, 0, 0, 0,184, 11,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,218,253, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,218,253,199, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,184, 99,195, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 88,101,195, 6, 0, 0, 0, 0, 24, 98,195, 6, + 88, 1, 0, 0,248, 14,113, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,152, 16,113, 5, 0, 0, 0, 0, 88, 13,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253, 76, 1, 0, 0, 20, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253,199, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88,101,195, 6, 0, 0, 0, 0,213, 0, 0, 0, - 1, 0, 0, 0,248,102,195, 6, 0, 0, 0, 0,184, 99,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152, 16,113, 5, 0, 0, 0, 0,213, 0, 0, 0, + 1, 0, 0, 0, 56, 18,113, 5, 0, 0, 0, 0,248, 14,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 40,253, 76, 1,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 40,253,199, 0,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,248,102,195, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,101,195, 6, + 88, 1, 0, 0, 56, 18,113, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 16,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97, 107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97, 107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,253, 76, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,253,199, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,152,104,195, 6, 0, 0, 0, 0,179, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,216, 19,113, 5, 0, 0, 0, 0,179, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1008,3033 +357,65 @@ char datatoc_startup_blend[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0,216,105,195, 6, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,104,119,195, 6, 0, 0, 0, 0, 72, 81,195, 6, - 0, 0, 0, 0, 8, 62,195, 6, 0, 0, 0, 0,152, 61,195, 6, 0, 0, 0, 0, 40, 61,195, 6, 0, 0, 0, 0,120, 62,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0,139, 1, 0, 0, 1, 1, 27, 3, -140, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,117,195, 6, 0, 0, 0, 0,184,117,195, 6, - 0, 0, 0, 0,200,106,195, 6, 0, 0, 0, 0,136,112,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,106,195, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 56,108,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 70, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, +160, 0, 0, 0, 24, 21,113, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 8, 26,113, 5, 0, 0, 0, 0,136,252,112, 5, + 0, 0, 0, 0,232,170,112, 5, 0, 0, 0, 0,136,232,112, 5, 0, 0, 0, 0,248,232,112, 5, 0, 0, 0, 0,200,230,112, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 15, 15, 24, 4, + 88, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 24,113, 5, 0, 0, 0, 0,232, 24,113, 5, + 0, 0, 0, 0, 8, 22,113, 5, 0, 0, 0, 0,120, 23,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8, 22,113, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,120, 23,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32,140, 68, 0, 0, 0, 0, 0, 0,208, 65, 39,182,158, 55, 0, 0,131, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 26, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128, 70, 68, 0, 0,200, 65, 0,128, 70, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 27, 3, 26, 0, 27, 3, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 23, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,130, 68, 0, 0,200, 65, 0,224,130, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 24, 4, 26, 0, 24, 4, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56,108,195, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,168,109,195, 6, 0, 0, 0, 0,200,106,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0, -160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, 5, 3, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,114, 1, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,120, 23,113, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 22,113, 5, 0, 0, 0, 0, 0, 0, 64,192, + 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 23, 4, 0, 0, 18, 0, 0, 0, 61, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, + 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0, 24, 4, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0, 26, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 4, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168,109,195, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 24,111,195, 6, 0, 0, 0, 0, 56,108,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0, -160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0,232, 24,113, 5, + 0, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,111,195, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,136,112,195, 6, 0, 0, 0, 0,168,109,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 35, 67, 0,192,108,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0,184,195, 0, 0, 0, 0,163, 0, 0, 0, -180, 0, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -162, 0, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,130, 1,163, 0,112, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,112,195, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,111,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0, 8, 26,113, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,200, 32,113, 5, 0, 0, 0, 0, 24, 21,113, 5, + 0, 0, 0, 0,168,231,112, 5, 0, 0, 0, 0, 40,235,112, 5, 0, 0, 0, 0,152,235,112, 5, 0, 0, 0, 0, 24,232,112, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0, 61, 1, 0, 0, 59, 2, 0, 0, 3, 3,216, 0, +255, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 29,113, 5, 0, 0, 0, 0,216, 29,113, 5, + 0, 0, 0, 0,248, 26,113, 5, 0, 0, 0, 0,104, 28,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248, 26,113, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,104, 28,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,128,244, 67, 0, 0, 0, 0, 0, 0,208, 65, 98, 39, 38, 54, 0, 0, 88, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +215, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 87, 67, 0, 0,200, 65, 0, 0, 87, 67, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,216, 0, 26, 0,216, 0, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0, 34, 2, 0, 0, 59, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104, 28,113, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 26,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0,128,141, 67, 0, 0,244,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 67, 0, 0, 83,195, 0, 0, 0, 0,199, 0, 0, 0, +216, 0, 0, 0, 18, 0, 0, 0,228, 0, 0, 0, 0, 0, 0, 0,198, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +198, 0, 0, 0, 18, 0, 0, 0,228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 18, 2, 0, 0, 2, 0, 3, 3, 0, 0, 12, 4, 6, 0,216, 0,229, 0,199, 0,211, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0, 61, 1, 0, 0, 33, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0,229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 3,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,113,195, 6, 0, 0, 0, 0, 68, 65, 84, 65,112, 3, 0, 0,248,113,195, 6, - 0, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 93,101,230, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 30,133,119, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 65,128,191, 0, 0,128,191, 0, 0, 0, 0, - 0, 0, 0, 0, 72, 1, 77,190, 0, 0, 0, 0,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63, -225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, 90, 38,173,190, -254,221,192,190,152, 9, 52,193, 0, 0,128, 63,223,149, 47, 63, 55, 70, 58, 63,192, 56, 49,188, 0, 0, 0, 0, 87,126,162,190, -228,251,159, 62, 56, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,150, 84, 28,191, 50,247,227, 62, 0, 0, 0, 0,110,101,239, 64, -151, 62,208,192, 77,255,170, 64, 0, 0,128, 63, 42, 6,158, 63, 99, 28,157,191,244,250, 39,191, 8,165, 39,191,211,164,167, 63, - 55,175,154, 63,180,164, 28, 63,149, 84, 28, 63, 39,127,159,188,135,157, 93, 64, 8,108,228,190, 50,247,227,190, 4,213, 27,191, -122,122,186,191,216, 49, 49, 65,152, 9, 52, 65, 25, 25,195, 62,176,249,206, 62,128,238,196,187, 0, 0,192,179, 55, 15,168,189, -201,118,165, 61,152, 15,109, 62, 0, 0,152, 51,211,120, 21,194,144, 5, 2, 66, 6,136,213,193,193,214,159,192,219, 38, 19, 66, -196,173,255,193,154,101,210, 65,173, 40,160, 64,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63, -225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, 90, 38,173,190, -254,221,192,190,152, 9, 52,193, 0, 0,128, 63, 42, 6,158, 63, 99, 28,157,191,244,250, 39,191, 8,165, 39,191,211,164,167, 63, - 55,175,154, 63,180,164, 28, 63,149, 84, 28, 63, 39,127,159,188,135,157, 93, 64, 8,108,228,190, 50,247,227,190, 4,213, 27,191, -122,122,186,191,216, 49, 49, 65,152, 9, 52, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,250,150, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 62,250,150, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,250,150, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,241, 22, 72, 63, 78,162,246,190, 44, 8, 90,190, 3, 35,171,190,214,211,111, 65, -214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 80, 49,183, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 65, - 1, 2, 0, 0,255,255, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 1, 0, 0, 0, 0, 0,128, 63, -190,133, 65, 66,100,212, 90, 66, 31,183,118, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 96, 1, 0, 0,184,117,195, 6, 0, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, -205,204, 76, 62, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,200, 67,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8,128, 0, 0, 0, 12, 66, 0, 0,128, 63, -205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,104,119,195, 6, - 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,184,124,195, 6, 0, 0, 0, 0,216,105,195, 6, 0, 0, 0, 0,184, 60,195, 6, - 0, 0, 0, 0,136, 58,195, 6, 0, 0, 0, 0, 72, 60,195, 6, 0, 0, 0, 0, 40, 61,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0,141, 1, 0, 0,233, 3, 0, 0, 16, 16, 32, 6, 93, 2, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,123,195, 6, 0, 0, 0, 0, 56,123,195, 6, 0, 0, 0, 0, 88,120,195, 6, - 0, 0, 0, 0,200,121,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,120,195, 6, 0, 0, 0, 0,215, 0, 0, 0, - 1, 0, 0, 0,200,121,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 66, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,196, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,224,195, 68, 0, 0,200, 65, 0,224,195, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 32, 6, 26, 0, 32, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0,141, 1, 0, 0,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,121,195, 6, 0, 0, 0, 0,215, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,120,195, 6, 0, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, - 0, 0, 0, 68,128,195,217,195,192,225,108, 68, 96,240,187, 64, 62, 16,253, 67, 15, 6, 0, 0, 32, 6, 0, 0, 18, 0, 0, 0, - 66, 2, 0, 0, 0, 0, 0, 0, 14, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 14, 6, 0, 0, 18, 0, 0, 0, - 66, 2, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,236, 81,184, 61, 10,215, 19, 64, 10, 0, 0, 0, - 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 32, 6, 67, 2, 15, 6, 49, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32, 6, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 1, 0, 0, 56,123,195, 6, 0, 0, 0, 0,191, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 10,215, 19, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 10,206, 97, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,184,124,195, 6, - 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,119,195, 6, 0, 0, 0, 0,200, 56,195, 6, - 0, 0, 0, 0,184, 60,195, 6, 0, 0, 0, 0,152, 61,195, 6, 0, 0, 0, 0, 8, 62,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0,139, 1, 0, 0, 6, 6, 4, 3,140, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,129,195, 6, 0, 0, 0, 0,248,129,195, 6, 0, 0, 0, 0,168,125,195, 6, - 0, 0, 0, 0,136,128,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168,125,195, 6, 0, 0, 0, 0,215, 0, 0, 0, - 1, 0, 0, 0, 24,127,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,215, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 65, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,192, 64, 68, 0, 0,200, 65, 0,192, 64, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 4, 3, 26, 0, 4, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,127,195, 6, 0, 0, 0, 0,215, 0, 0, 0, - 1, 0, 0, 0,136,128,195, 6, 0, 0, 0, 0,168,125,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,128,195, 6, 0, 0, 0, 0,215, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,127,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, - 0, 0,128, 67, 0, 0,129,191, 0,128, 0, 64, 0, 0,100,190, 0,128,156, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 0, 0, 0, 0, 0, 0, -114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 3,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 33, 0, 0,248,129,195, 6, 0, 0, 0, 0,184, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 65, 0, 0, 0, 0,154,153,153, 62, 0, 0, 0, 0, -100, 0, 0, 0,154,153,153, 62,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 8, 1, 0, 0,248,163,195, 6, 0, 0, 0, 0,210, 0, 0, 0, - 1, 0, 0, 0,120,188,196, 6, 0, 0, 0, 0,120, 55,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 82, 68,101,102, 97,117,108,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,165,195, 6, - 0, 0, 0, 0, 24,170,195, 6, 0, 0, 0, 0,136,170,195, 6, 0, 0, 0, 0,248,177,195, 6, 0, 0, 0, 0,104,178,195, 6, - 0, 0, 0, 0,120,156,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,123,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72,165,195, 6, 0, 0, 0, 0,211, 0, 0, 0, - 1, 0, 0, 0,184,165,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,165,195, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 40,166,195, 6, - 0, 0, 0, 0, 72,165,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,146, 4, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 40,166,195, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,152,166,195, 6, 0, 0, 0, 0,184,165,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,146, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152,166,195, 6, - 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 8,167,195, 6, 0, 0, 0, 0, 40,166,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,167,195, 6, 0, 0, 0, 0,211, 0, 0, 0, - 1, 0, 0, 0,120,167,195, 6, 0, 0, 0, 0,152,166,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 4, - 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120,167,195, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,232,167,195, 6, - 0, 0, 0, 0, 8,167,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,104, 4, 1, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,232,167,195, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 88,168,195, 6, 0, 0, 0, 0,120,167,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88,168,195, 6, - 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,200,168,195, 6, 0, 0, 0, 0,232,167,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80, 6,104, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200,168,195, 6, 0, 0, 0, 0,211, 0, 0, 0, - 1, 0, 0, 0, 56,169,195, 6, 0, 0, 0, 0, 88,168,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 6,196, 3, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56,169,195, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,168,169,195, 6, - 0, 0, 0, 0,200,168,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,196, 3, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,168,169,195, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 24,170,195, 6, 0, 0, 0, 0, 56,169,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24,170,195, 6, - 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,169,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80, 6,144, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,170,195, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0,248,170,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,165,195, 6, 0, 0, 0, 0, 40,166,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,170,195, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0,104,171,195, 6, 0, 0, 0, 0,136,170,195, 6, 0, 0, 0, 0,184,165,195, 6, 0, 0, 0, 0, 8,167,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,171,195, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0,216,171,195, 6, 0, 0, 0, 0,248,170,195, 6, 0, 0, 0, 0, 40,166,195, 6, 0, 0, 0, 0,120,167,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,171,195, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0, 72,172,195, 6, 0, 0, 0, 0,104,171,195, 6, 0, 0, 0, 0, 8,167,195, 6, 0, 0, 0, 0,120,167,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,172,195, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0,184,172,195, 6, 0, 0, 0, 0,216,171,195, 6, 0, 0, 0, 0, 72,165,195, 6, 0, 0, 0, 0,232,167,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,172,195, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0, 40,173,195, 6, 0, 0, 0, 0, 72,172,195, 6, 0, 0, 0, 0,152,166,195, 6, 0, 0, 0, 0,232,167,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,173,195, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0,152,173,195, 6, 0, 0, 0, 0,184,172,195, 6, 0, 0, 0, 0, 8,167,195, 6, 0, 0, 0, 0, 88,168,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,173,195, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0, 8,174,195, 6, 0, 0, 0, 0, 40,173,195, 6, 0, 0, 0, 0,120,167,195, 6, 0, 0, 0, 0, 88,168,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,174,195, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0,120,174,195, 6, 0, 0, 0, 0,152,173,195, 6, 0, 0, 0, 0,232,167,195, 6, 0, 0, 0, 0,200,168,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,174,195, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0,232,174,195, 6, 0, 0, 0, 0, 8,174,195, 6, 0, 0, 0, 0, 88,168,195, 6, 0, 0, 0, 0,200,168,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,174,195, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0, 88,175,195, 6, 0, 0, 0, 0,120,174,195, 6, 0, 0, 0, 0,120,167,195, 6, 0, 0, 0, 0, 56,169,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,175,195, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0,200,175,195, 6, 0, 0, 0, 0,232,174,195, 6, 0, 0, 0, 0,152,166,195, 6, 0, 0, 0, 0, 56,169,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,175,195, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0, 56,176,195, 6, 0, 0, 0, 0, 88,175,195, 6, 0, 0, 0, 0,200,168,195, 6, 0, 0, 0, 0, 56,169,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,176,195, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0,168,176,195, 6, 0, 0, 0, 0,200,175,195, 6, 0, 0, 0, 0, 72,165,195, 6, 0, 0, 0, 0,168,169,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,176,195, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0, 24,177,195, 6, 0, 0, 0, 0, 56,176,195, 6, 0, 0, 0, 0, 8,167,195, 6, 0, 0, 0, 0,168,169,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,177,195, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0,136,177,195, 6, 0, 0, 0, 0,168,176,195, 6, 0, 0, 0, 0, 88,168,195, 6, 0, 0, 0, 0, 24,170,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,177,195, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0,248,177,195, 6, 0, 0, 0, 0, 24,177,195, 6, 0, 0, 0, 0,232,167,195, 6, 0, 0, 0, 0, 24,170,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,177,195, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,177,195, 6, 0, 0, 0, 0,168,169,195, 6, 0, 0, 0, 0, 24,170,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,104,178,195, 6, 0, 0, 0, 0,214, 0, 0, 0, - 1, 0, 0, 0, 56,182,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,167,195, 6, 0, 0, 0, 0,184,165,195, 6, - 0, 0, 0, 0, 40,166,195, 6, 0, 0, 0, 0,120,167,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -126, 7, 0, 0,105, 4, 0, 0,146, 4, 0, 0, 7, 7,127, 7, 42, 0, 1, 0, 0, 0, 0, 0, 7, 0, 8, 0, 8, 77,163, 6, - 0, 0, 0, 0,232,187,196, 6, 0, 0, 0, 0,232,187,196, 6, 0, 0, 0, 0, 88,179,195, 6, 0, 0, 0, 0,200,180,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,230, 12, 0, 73,127, 0, 0, 24,234, 12, 0, - 73,127, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,179,195, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,200,180,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,163, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, - 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, - 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -126, 7, 0, 0,105, 4, 0, 0,130, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, - 2, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 79,163, 6, - 0, 0, 0, 0,168,144,231, 0, 73,127, 0, 0,168,144,231, 0, 73,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,184,235, 12, 0, 73,127, 0, 0, 8,246, 12, 0, 73,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,180,195, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 88,179,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,239, 68, 0, 0, 0, 0, 0, 0, 48, 65, 0, 0, 0, 0, - 1,192,237, 68, 0, 0, 0, 0, 0, 0,128, 65,110, 7, 0, 0,127, 7, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, -111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,109, 7, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 2, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, - 10, 0,127, 7, 16, 0,110, 7, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -126, 7, 0, 0,131, 4, 0, 0,146, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 16, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 78,163, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,168,247, 12, 0, 73,127, 0, 0,120, 6, 13, 0, 73,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 56,182,195, 6, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 8,223,195, 6, - 0, 0, 0, 0,104,178,195, 6, 0, 0, 0, 0,232,167,195, 6, 0, 0, 0, 0,200,168,195, 6, 0, 0, 0, 0, 56,169,195, 6, - 0, 0, 0, 0,152,166,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, -195, 3, 0, 0, 4, 4, 46, 1,196, 3, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0,168, 72,163, 6, 0, 0, 0, 0,200,221,195, 6, - 0, 0, 0, 0,200,221,195, 6, 0, 0, 0, 0, 40,183,195, 6, 0, 0, 0, 0,152,184,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 13, 13, 0, 73,127, 0, 0,152, 29, 13, 0, 73,127, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 40,183,195, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,152,184,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,151, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,150, 67, 0, 0,200, 65, 0,128,150, 67, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 46, 1, 26, 0, 46, 1, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 6, 0, 0,126, 7, 0, 0,170, 3, 0, 0, -195, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 1, 26, 0, 4, 0, 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 76,163, 6, 0, 0, 0, 0,104,215,226, 0, - 73,127, 0, 0,104,215,226, 0, 73,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 34, 13, 0, - 73,127, 0, 0, 88, 93,226, 0, 73,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,152,184,195, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,183,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0,128,106,196, 0, 0, 0, 0, 0, 0, 0, 0, 1,128,142, 67, 2,128,106,196, - 0, 0, 0, 0, 29, 1, 0, 0, 46, 1, 0, 0, 0, 0, 0, 0,169, 3, 0, 0, 0, 0, 0, 0, 74, 1, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0, 28, 1, 0, 0, 0, 0, 0, 0,169, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 46, 1,170, 3, 29, 1, -170, 3, 0, 0,248, 81,229, 0, 73,127, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 81, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, -169, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 1,170, 3, 5, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 73,163, 6, 0, 0, 0, 0, 40,189,225, 0, - 73,127, 0, 0,232, 26,225, 0, 73,127, 0, 0, 8,186,195, 6, 0, 0, 0, 0, 40,220,195, 6, 0, 0, 0, 0,248,236, 12, 0, - 73,127, 0, 0, 56,181,226, 0, 73,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 8,186,195, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,168,187,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,184, 74,163, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99, -111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99, -111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 29, 1, 36, 0, 0, 0, 0, 0, - 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168,187,195, 6, 0, 0, 0, 0,213, 0, 0, 0, - 1, 0, 0, 0, 72,189,195, 6, 0, 0, 0, 0, 8,186,195, 6, 0, 0, 0, 0,168, 73, 76, 0, 73,127, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,135,255, 29, 1, 61, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 72,189,195, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232,190,195, 6, 0, 0, 0, 0,168,187,195, 6, - 0, 0, 0, 0, 24, 76, 76, 0, 73,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97, -121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97, -121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, 29, 1, 0, 0, 0, 0, 0, 0, - 4, 0, 2, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,232,190,195, 6, 0, 0, 0, 0,213, 0, 0, 0, - 1, 0, 0, 0,136,192,195, 6, 0, 0, 0, 0, 72,189,195, 6, 0, 0, 0, 0,136, 78, 76, 0, 73,127, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,140,254, 29, 1,203, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,136,192,195, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40,194,195, 6, 0, 0, 0, 0,232,190,195, 6, - 0, 0, 0, 0,248, 80, 76, 0, 73,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110, -116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110, -116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110, -103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, 29, 1, 58, 0, 20, 0, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 40,194,195, 6, 0, 0, 0, 0,213, 0, 0, 0, - 1, 0, 0, 0,200,195,195, 6, 0, 0, 0, 0,136,192,195, 6, 0, 0, 0, 0,104, 83, 76, 0, 73,127, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 34,254, 29, 1, 0, 0, 20, 0, 0, 0, 4, 0, 2, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,200,195,195, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,104,197,195, 6, 0, 0, 0, 0, 40,194,195, 6, - 0, 0, 0, 0, 72,156, 53, 0, 73,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, - 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, - 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,254, 29, 1, 0, 0, 0, 0, 0, 0, - 4, 0, 2, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,104,197,195, 6, 0, 0, 0, 0,213, 0, 0, 0, - 1, 0, 0, 0, 8,199,195, 6, 0, 0, 0, 0,200,195,195, 6, 0, 0, 0, 0,248, 92, 76, 0, 73,127, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,242,253, 29, 1, 0, 0, 0, 0, 0, 0, 4, 0, 2, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 8,199,195, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,168,200,195, 6, 0, 0, 0, 0,104,197,195, 6, - 0, 0, 0, 0,104, 95, 76, 0, 73,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111, -115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111, -115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115, -105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,253, 29, 1, 0, 0, 0, 0, 0, 0, - 4, 0, 2, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168,200,195, 6, 0, 0, 0, 0,213, 0, 0, 0, - 1, 0, 0, 0, 72,202,195, 6, 0, 0, 0, 0, 8,199,195, 6, 0, 0, 0, 0,216, 97, 76, 0, 73,127, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,194,253, 29, 1, 0, 0, 20, 0, 0, 0, 4, 0, 2, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 72,202,195, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232,203,195, 6, 0, 0, 0, 0,168,200,195, 6, - 0, 0, 0, 0, 72,100, 76, 0, 73,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117, -116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117, -116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,253, 29, 1,134, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,232,203,195, 6, 0, 0, 0, 0,213, 0, 0, 0, - 1, 0, 0, 0,136,205,195, 6, 0, 0, 0, 0, 72,202,195, 6, 0, 0, 0, 0, 40,105, 76, 0, 73,127, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 12,253, 29, 1, 0, 0, 0, 0, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,136,205,195, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40,207,195, 6, 0, 0, 0, 0,232,203,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,115, 99,101, -110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,115, 99,101, -110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 41, 1, 61, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 40,207,195, 6, 0, 0, 0, 0,213, 0, 0, 0, - 1, 0, 0, 0,200,208,195, 6, 0, 0, 0, 0,136,205,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 85,110,105,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 28,255, 41, 1, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,200,208,195, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,104,210,195, 6, 0, 0, 0, 0, 40,207,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,107,101,121, -105,110,103, 95,115,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,107,101,121, -105,110,103, 95,115,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,101,121,105,110,103, 32, 83,101,116,115, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191,254, 41, 1, 69, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,104,210,195, 6, 0, 0, 0, 0,213, 0, 0, 0, - 1, 0, 0, 0, 8,212,195, 6, 0, 0, 0, 0,200,208,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 71,114, 97,118,105,116,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,131,254, 41, 1, 36, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 8,212,195, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,168,213,195, 6, 0, 0, 0, 0,104,210,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,115,105,109, -112,108,105,102,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,115,105,109, -112,108,105,102,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,105,109,112,108,105,102,121, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,254, 41, 1, 80, 0, 20, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168,213,195, 6, 0, 0, 0, 0,213, 0, 0, 0, - 1, 0, 0, 0, 72,215,195, 6, 0, 0, 0, 0, 8,212,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95, 99,117,115,116,111,109, 95,112,114,111,112,115, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95, 99,117,115,116,111,109, 95,112,114,111,112,115, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67,117,115,116,111,109, 32, 80,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,223,253, 41, 1, 36, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 72,215,195, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232,216,195, 6, 0, 0, 0, 0,168,213,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95, 99, -111,110,116,101,120,116, 95,116,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95, 99, -111,110,116,101,120,116, 95,116,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,255,187, 0,204, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 5, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,232,216,195, 6, 0, 0, 0, 0,213, 0, 0, 0, - 1, 0, 0, 0,136,218,195, 6, 0, 0, 0, 0, 72,215,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,109, 97,112,112,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,109, 97,112,112,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 77, 97,112,112,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 77,254,187, 0,171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,136,218,195, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40,220,195, 6, 0, 0, 0, 0,232,216,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,105, -110,102,108,117,101,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,105, -110,102,108,117,101,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,110,102,108,117,101,110, 99,101, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,223,252,187, 0, 86, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 40,220,195, 6, 0, 0, 0, 0,213, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,218,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 79, 66, 74, 69, 67, 84, 95, 80, 84, 95, 99,111,110,115,116,114, 97,105,110,116,115, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 79, 66, 74, 69, 67, 84, 95, 80, 84, 95, 99,111,110,115,116,114, 97,105,110,116,115, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 67,111,110,115,116,114, 97,105,110,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,160,255,187, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -248, 0, 0, 0,200,221,195, 6, 0, 0, 0, 0,179, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 40, 97,228, 0, 73,127, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 8,223,195, 6, 0, 0, 0, 0,214, 0, 0, 0, - 1, 0, 0, 0,248,227,195, 6, 0, 0, 0, 0, 56,182,195, 6, 0, 0, 0, 0, 72,165,195, 6, 0, 0, 0, 0,168,169,195, 6, - 0, 0, 0, 0, 24,170,195, 6, 0, 0, 0, 0,232,167,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 79, 6, 0, 0, 0, 0, 0, 0,143, 0, 0, 0, 15, 15, 80, 6,144, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 28,163, 6, - 0, 0, 0, 0,216,226,195, 6, 0, 0, 0, 0,216,226,195, 6, 0, 0, 0, 0,248,223,195, 6, 0, 0, 0, 0,104,225,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 94,226, 0, 73,127, 0, 0,216,249, 12, 0, - 73,127, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248,223,195, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,104,225,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,146, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0,202, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,201, 68, - 0, 0,200, 65, 0,224,201, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, - 10, 0, 80, 6, 26, 0, 80, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 79, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 6, 26, 0, - 6, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 30,163, 6, - 0, 0, 0, 0,120,171,230, 0, 73,127, 0, 0,120,171,230, 0, 73,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,120, 47,225, 0, 73,127, 0, 0,216, 4, 13, 0, 73,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104,225,195, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,248,223,195, 6, 0, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, 88,218,103,194, - 40,147,141, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 79, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 79, 6, 0, 0, 18, 0, 0, 0,117, 0, 0, 0, 0, 0,128, 63, - 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, - 8, 0, 80, 6,118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 79, 6, 0, 0, 26, 0, 0, 0,143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 6,118, 0, - 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 29,163, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 24, 15, 13, 0, 73,127, 0, 0, 40, 27, 13, 0, 73,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0,216,226,195, 6, 0, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,248,227,195, 6, 0, 0, 0, 0,214, 0, 0, 0, - 1, 0, 0, 0,120,156,196, 6, 0, 0, 0, 0, 8,223,195, 6, 0, 0, 0, 0,200,168,195, 6, 0, 0, 0, 0, 88,168,195, 6, - 0, 0, 0, 0,120,167,195, 6, 0, 0, 0, 0, 56,169,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 6, 0, 0, -126, 7, 0, 0,197, 3, 0, 0,103, 4, 0, 0, 3, 3, 46, 1,163, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0,120, 25,163, 6, - 0, 0, 0, 0,200,231,195, 6, 0, 0, 0, 0,200,231,195, 6, 0, 0, 0, 0,232,228,195, 6, 0, 0, 0, 0, 88,230,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 27, 13, 0, 73,127, 0, 0, 40, 88,226, 0, - 73,127, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232,228,195, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 88,230,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0,151, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,150, 67, - 0, 0,200, 65, 0,128,150, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, - 10, 0, 46, 1, 26, 0, 46, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 6, 0, 0, -126, 7, 0, 0, 78, 4, 0, 0,103, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 1, 26, 0, - 8, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 27,163, 6, - 0, 0, 0, 0, 56, 30,231, 0, 73,127, 0, 0, 56, 30,231, 0, 73,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,184, 88,226, 0, 73,127, 0, 0, 88,114,225, 0, 73,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,230,195, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,232,228,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0,244,194, 0, 0, 0, 0, 0, 0, 0, 0, - 0,128,142, 67, 0, 0,242,194, 0, 0, 0,192, 29, 1, 0, 0, 46, 1, 0, 0, 18, 0, 0, 0,136, 0, 0, 0, 0, 0, 0, 0, - 28, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 28, 1, 0, 0, 18, 0, 0, 0,136, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 4, 0, 0, 2, 0, 3, 3, 0, 0, 12, 4, - 6, 0, 46, 1,137, 0, 29, 1,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 6, 0, 0, -126, 7, 0, 0,197, 3, 0, 0, 77, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 1,137, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 26,163, 6, - 0, 0, 0, 0,248, 69,231, 0, 73,127, 0, 0,248, 69,231, 0, 73,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,248,105,228, 0, 73,127, 0, 0, 8,229,225, 0, 73,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,200,231,195, 6, 0, 0, 0, 0,183, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,104, 35,231, 0, 73,127, 0, 0,104, 35,231, 0, 73,127, 0, 0, 40,233,195, 6, 0, 0, 0, 0, 0,115,101, 32, - 83, 99,117,108,112,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, 40,233,195, 6, - 0, 0, 0, 0,237, 0, 0, 0, 1, 0, 0, 0, 42, 11, 0, 0, 42, 11, 0, 0,136,233,195, 6, 0, 0, 0, 0, 68, 65, 84, 65, -160,178, 0, 0,136,233,195, 6, 0, 0, 0, 0,236, 0, 0, 0, 42, 11, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0,104, 38,198, 6, - 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0,104, 38,198, 6, 0, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0,104, 38,198, 6, - 0, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,248, 64,198, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,104, 74,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 8,129,198, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 72, 88,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 88,110,198, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,168, 81,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 56, 60,198, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,200, 67,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 40, 59,198, 6, - 0, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0,104, 38,198, 6, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,232,147,198, 6, - 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,232,147,198, 6, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 40, 59,198, 6, - 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 56, 60,198, 6, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 8,129,198, 6, 0, 0, 0, 0, 30, 0,255,255, 3, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,136,211,194, 6, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,120, 55,195, 6, - 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,248,163,195, 6, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,120,188,196, 6, - 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,136, 95,197, 6, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,248,174,197, 6, - 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 24,246,197, 6, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 88,110,198, 6, - 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,152,208,194, 6, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,248, 64,198, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 24,158,198, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,200,166,198, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,120,175,198, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 40,184,198, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,136,201,198, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 56,210,198, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,232,218,198, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,152,227,198, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 72,236,198, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,248,244,198, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,168,253,198, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 88, 6,199, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 8, 15,199, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,184, 23,199, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,104, 32,199, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 24, 41,199, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,200, 49,199, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,120, 58,199, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 40, 67,199, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,216, 75,199, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,136, 84,199, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 56, 93,199, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,232,101,199, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,152,110,199, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 72,119,199, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,248,127,199, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,168,136,199, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 88,145,199, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 8,154,199, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40, 59,198, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 40, 59,198, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40, 59,198, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 40, 59,198, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40, 59,198, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 40, 59,198, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40, 59,198, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 40, 59,198, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40, 59,198, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 40, 59,198, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40, 59,198, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 40, 59,198, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40, 59,198, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 40, 59,198, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40, 59,198, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 40, 59,198, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40, 59,198, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 40, 59,198, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40, 59,198, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 40, 59,198, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40, 59,198, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 40, 59,198, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 40, 59,198, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 40, 59,198, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 40, 59,198, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 40, 59,198, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 56, 60,198, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 56, 60,198, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 56, 60,198, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 56, 60,198, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 56, 60,198, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 56, 60,198, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 56, 60,198, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 56, 60,198, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 56, 60,198, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 56, 60,198, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 56, 60,198, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 56, 60,198, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 56, 60,198, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 56, 60,198, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 56, 60,198, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 56, 60,198, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 56, 60,198, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 56, 60,198, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 56, 60,198, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 56, 60,198, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 56, 60,198, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 56, 60,198, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 56, 60,198, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 56, 60,198, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 56, 60,198, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 56, 60,198, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 56, 60,198, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 56, 60,198, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 56, 60,198, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 56, 60,198, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 56, 60,198, 6, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 70, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 71, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 72, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 73, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 74, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 75, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 76, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 77, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 78, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 79, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 80, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 81, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 82, 0, 1, 0, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 31, 0, 83, 0, 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 8,129,198, 6, - 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 8,129,198, 6, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 8,129,198, 6, - 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 8,129,198, 6, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 8,129,198, 6, - 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 8,129,198, 6, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 8,129,198, 6, - 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 8,129,198, 6, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 8,129,198, 6, - 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 8,129,198, 6, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 8,129,198, 6, - 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 8,129,198, 6, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 8,129,198, 6, - 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 8,129,198, 6, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 8,129,198, 6, - 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 8,129,198, 6, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 8,129,198, 6, - 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 8,129,198, 6, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 8,129,198, 6, - 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 8,129,198, 6, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 8,129,198, 6, - 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 8,129,198, 6, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 8,129,198, 6, - 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 8,129,198, 6, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 8,129,198, 6, - 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 8,129,198, 6, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 8,129,198, 6, - 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 8,129,198, 6, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 8,129,198, 6, - 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 8,129,198, 6, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 8,129,198, 6, - 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 8,129,198, 6, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 8,129,198, 6, - 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 8,129,198, 6, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 8,129,198, 6, - 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 8,129,198, 6, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 8,129,198, 6, - 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 8,129,198, 6, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 8,129,198, 6, - 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 8,129,198, 6, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 8,129,198, 6, - 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 8,129,198, 6, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 8,129,198, 6, - 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 8,129,198, 6, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 8,129,198, 6, - 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 8,129,198, 6, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 8,129,198, 6, - 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 8,129,198, 6, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 8,129,198, 6, - 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 8,129,198, 6, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 8,129,198, 6, - 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 8,129,198, 6, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 70, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 71, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 72, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 73, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 74, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 75, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 76, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 77, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 78, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 79, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 80, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 81, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 82, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 83, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 84, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 85, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 86, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 87, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 88, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 89, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 90, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 91, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 92, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 93, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 94, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 95, 0, 1, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 31, 0, 96, 0, 1, 0, 0, 0,200, 67,198, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 70, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 71, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 72, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 73, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 74, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 75, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 76, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 77, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 78, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 79, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 80, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 81, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 82, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 83, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 84, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 85, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 86, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 87, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 88, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 89, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 90, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 91, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 92, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 93, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 94, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 95, 0, 1, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 31, 0, 96, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 70, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 71, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 72, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 73, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 74, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 75, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 76, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 77, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 78, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 79, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 80, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 81, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 82, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 83, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 84, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 85, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 86, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 87, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 88, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 89, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 90, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 91, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 92, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 93, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 94, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 95, 0, 1, 0, 0, 0,168, 81,198, 6, 0, 0, 0, 0, 31, 0, 96, 0, 1, 0, 0, 0,168, 81,198, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,136,211,194, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,136,211,194, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,136,211,194, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,136,211,194, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,136,211,194, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,136,211,194, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,136,211,194, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,136,211,194, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,136,211,194, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,136,211,194, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,120, 55,195, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,120, 55,195, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,120, 55,195, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,120, 55,195, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,120, 55,195, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,120, 55,195, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,120, 55,195, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,120, 55,195, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,120, 55,195, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,120, 55,195, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,248,163,195, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,248,163,195, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,248,163,195, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,248,163,195, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,248,163,195, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,248,163,195, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,248,163,195, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,248,163,195, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,248,163,195, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,248,163,195, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,120,188,196, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,120,188,196, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,120,188,196, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,120,188,196, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,120,188,196, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,120,188,196, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,120,188,196, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,120,188,196, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,120,188,196, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,120,188,196, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,136, 95,197, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,136, 95,197, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,136, 95,197, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,136, 95,197, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,136, 95,197, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,136, 95,197, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,136, 95,197, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,136, 95,197, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,136, 95,197, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,136, 95,197, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,248,174,197, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,248,174,197, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,248,174,197, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,248,174,197, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,248,174,197, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,248,174,197, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,248,174,197, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,248,174,197, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,248,174,197, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,248,174,197, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 24,246,197, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 24,246,197, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 24,246,197, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 24,246,197, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 24,246,197, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 24,246,197, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 24,246,197, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 24,246,197, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 24,246,197, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 24,246,197, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 88,110,198, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 88,110,198, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 88,110,198, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 88,110,198, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 88,110,198, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 88,110,198, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 88,110,198, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 88,110,198, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 88,110,198, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 88,110,198, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 88,110,198, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 88,110,198, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 88,110,198, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 88,110,198, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 88,110,198, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 88,110,198, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 88,110,198, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 88,110,198, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 88,110,198, 6, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,152,208,194, 6, - 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,152,208,194, 6, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,152,208,194, 6, - 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,152,208,194, 6, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,152,208,194, 6, - 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,152,208,194, 6, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,152,208,194, 6, - 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,152,208,194, 6, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,152,208,194, 6, - 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,152,208,194, 6, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,152,208,194, 6, - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,248, 64,198, 6, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,248, 64,198, 6, - 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,248, 64,198, 6, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,248, 64,198, 6, - 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,248, 64,198, 6, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,248, 64,198, 6, - 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,248, 64,198, 6, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,248, 64,198, 6, - 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,248, 64,198, 6, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,248, 64,198, 6, - 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,248, 64,198, 6, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,248, 64,198, 6, - 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,248, 64,198, 6, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,248, 64,198, 6, - 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,248, 64,198, 6, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,248, 64,198, 6, - 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,248, 64,198, 6, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,248, 64,198, 6, - 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,248, 64,198, 6, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,248, 64,198, 6, - 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,248, 64,198, 6, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,120,156,196, 6, - 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,227,195, 6, 0, 0, 0, 0,168,169,195, 6, - 0, 0, 0, 0, 8,167,195, 6, 0, 0, 0, 0, 88,168,195, 6, 0, 0, 0, 0, 24,170,195, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 79, 6, 0, 0,145, 0, 0, 0,103, 4, 0, 0, 1, 1, 80, 6,215, 3, 1, 0, 0, 0, 0, 0, - 0, 0, 8, 0,120, 31,163, 6, 0, 0, 0, 0, 56,186,196, 6, 0, 0, 0, 0, 56,186,196, 6, 0, 0, 0, 0,104,157,196, 6, - 0, 0, 0, 0, 8,181,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,106,228, 0, - 73,127, 0, 0,104, 9, 13, 0, 73,127, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104,157,196, 6, 0, 0, 0, 0,215, 0, 0, 0, - 1, 0, 0, 0,216,158,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,108, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0,202, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 6, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,224,201, 68, 0, 0,200, 65, 0,224,201, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 80, 6, 26, 0, 80, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 79, 6, 0, 0,145, 0, 0, 0,170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80, 6, 26, 0, 10, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,216, 41,163, 6, 0, 0, 0, 0,232,105,233, 0, 73,127, 0, 0,232,105,233, 0, 73,127, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,176,229, 0, 73,127, 0, 0,104, 11, 13, 0, 73,127, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216,158,196, 6, 0, 0, 0, 0,215, 0, 0, 0, - 1, 0, 0, 0,136,176,196, 6, 0, 0, 0, 0,104,157,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0, 64, 57,196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 57,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, -228, 2, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, -228, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,229, 2,143, 0,229, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0,131, 1, 0, 0,103, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,160, 0,229, 2, 11, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0,160, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152, 38,163, 6, 0, 0, 0, 0, 40, 93,232, 0, 73,127, 0, 0, 40, 93,232, 0, 73,127, 0, 0, 72,160,196, 6, - 0, 0, 0, 0,232,174,196, 6, 0, 0, 0, 0, 56, 12, 13, 0, 73,127, 0, 0, 88, 96,228, 0, 73,127, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72,160,196, 6, 0, 0, 0, 0,213, 0, 0, 0, - 1, 0, 0, 0,232,161,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,130, 79, 0, 73,127, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 84,111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,233,253,143, 0,255, 1, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,232,161,196, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,136,163,196, 6, 0, 0, 0, 0, 72,160,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111, -111,108,115, 95, 98,114,117,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111, -111,108,115, 95, 98,114,117,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66,114,117,115,104, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,117,254,143, 0,115, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,136,163,196, 6, 0, 0, 0, 0,213, 0, 0, 0, - 1, 0, 0, 0, 40,165,196, 6, 0, 0, 0, 0,232,161,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95,116,111,111,108, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95,116,111,111,108, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 84,111,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 74,254,143, 0, 61, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 40,165,196, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,200,166,196, 6, 0, 0, 0, 0,136,163,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111, -111,108,115, 95, 98,114,117,115,104, 95,115,116,114,111,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111, -111,108,115, 95, 98,114,117,115,104, 95,115,116,114,111,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116,114,111,107,101, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69,254,143, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,200,166,196, 6, 0, 0, 0, 0,213, 0, 0, 0, - 1, 0, 0, 0,104,168,196, 6, 0, 0, 0, 0, 40,165,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95, 99,117,114,118,101, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95, 99,117,114,118,101, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67,117,114,118,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 45,254,143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,104,168,196, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8,170,196, 6, 0, 0, 0, 0,200,166,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111, -111,108,115, 95, 98,114,117,115,104, 95, 97,112,112,101, 97,114, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111, -111,108,115, 95, 98,114,117,115,104, 95, 97,112,112,101, 97,114, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,112,112,101, 97,114, 97,110, 99,101, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,229,253,143, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8,170,196, 6, 0, 0, 0, 0,213, 0, 0, 0, - 1, 0, 0, 0,168,171,196, 6, 0, 0, 0, 0,104,168,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,118,101,114,116,101,120,112, 97,105,110,116, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,118,101,114,116,101,120,112, 97,105,110,116, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 79,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,149,253,143, 0,146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,168,171,196, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 72,173,196, 6, 0, 0, 0, 0, 8,170,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111, -111,108,115, 95, 98,114,117,115,104, 95,116,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111, -111,108,115, 95, 98,114,117,115,104, 95,116,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,101,120,116,117,114,101, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93,254,143, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72,173,196, 6, 0, 0, 0, 0,213, 0, 0, 0, - 1, 0, 0, 0,232,174,196, 6, 0, 0, 0, 0,168,171,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,115, 99,117,108,112,116, 95,111,112,116,105,111,110,115, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,115, 99,117,108,112,116, 95,111,112,116,105,111,110,115, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 79,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 21,254,143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,232,174,196, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,173,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,115, 99, -117,108,112,116, 95,115,121,109,109,101,116,114,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,115, 99, -117,108,112,116, 95,115,121,109,109,101,116,114,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,121,109,109,101,116,114,121, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,253,143, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,176,196, 6, 0, 0, 0, 0,215, 0, 0, 0, - 1, 0, 0, 0,152,179,196, 6, 0, 0, 0, 0,216,158,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0, 0, 90,195, - 0, 0, 0, 0, 0, 0, 0, 0,227,102, 16, 67, 24, 30, 90,195, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, -215, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, -215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,216, 0,143, 0,216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0,171, 0, 0, 0,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,160, 0,216, 0, 12, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,136, 39,163, 6, 0, 0, 0, 0,200,253,232, 0, 73,127, 0, 0,200,253,232, 0, 73,127, 0, 0,248,177,196, 6, - 0, 0, 0, 0,248,177,196, 6, 0, 0, 0, 0,200, 46,228, 0, 73,127, 0, 0, 24,181,229, 0, 73,127, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248,177,196, 6, 0, 0, 0, 0,213, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 40,163, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 79,112,101,114, 97,116,111,114, 0,100,101, 0, 32, 77,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,216,255,144, 0, 16, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,152,179,196, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 8,181,196, 6, 0, 0, 0, 0,136,176,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 67, 0, 96,158,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 96,158,196, - 0,128,142,195,163, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0,213, 3, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0,213, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,180, 0,214, 3,163, 0, -214, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 6, 0, 0, 79, 6, 0, 0,171, 0, 0, 0, -103, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 33,163, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 8,181,196, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,179,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 0, 0, 79, 6, 0, 0,171, 0, 0, 0, -103, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 5,189, 3, 13, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 32,163, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,226,224, 0, - 73,127, 0, 0, 72, 40, 13, 0, 73,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,182,196, 6, 0, 0, 0, 0, 68, 65, 84, 65, -112, 3, 0, 0,120,182,196, 6, 0, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 1, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,188,255,212, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 6,128,191, - 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 11,210, 76,190, 0, 0, 0, 0, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, - 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33,210,111,193, 0, 0,128, 63, 68,239,209, 62, 70,119,105, 63,176, 84, 89,188, - 0, 0, 0, 0, 52,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, - 0, 0, 0, 0, 62, 95, 68, 65, 51,120,173,192,115,208,213, 64, 0, 0,128, 63,180,157,229, 62, 57, 36, 43,191,116,169, 81,191, -184,158, 81,191,118, 90,127, 63,212,251,164, 62,158, 53,185, 62, 35, 44,185, 62,147,180,109,188,194,164,190, 63,218, 72,228,190, - 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 33,171,108, 65, 33,210,111, 65,100,240,191, 62,110,116, 85, 63, 32,185, 70,188, - 0, 0, 80,180,122, 55,119,190, 96, 82,238, 61,227,177, 9, 63, 0, 0,248, 51,197,112,117,194,179,208,216, 65,220,158, 5,194, -231,251,159,192,221, 54,114, 66, 30,247,213,193, 58,221, 3, 66, 25, 4,160, 64, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, - 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33,210,111,193, 0, 0,128, 63,180,157,229, 62, 57, 36, 43,191,116,169, 81,191, -184,158, 81,191,118, 90,127, 63,212,251,164, 62,158, 53,185, 62, 35, 44,185, 62,147,180,109,188,194,164,190, 63,218, 72,228,190, - 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 33,171,108, 65, 33,210,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,182,180, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,114,182,180, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,182,180, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, - 3,236,234,190, 33,210,111, 65, 33,210,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,146,156,164, 58, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 32, 33, 12, 66, 85,152,137, 66,113, 27,126, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 96, 1, 0, 0, 56,186,196, 6, 0, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65,205,204, 76, 62, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,200, 67,198, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 24,128, 0, - 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61, 0, 0,122, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, - 8, 1, 0, 0,120,188,196, 6, 0, 0, 0, 0,210, 0, 0, 0, 1, 0, 0, 0,136, 12,197, 6, 0, 0, 0, 0,248,163,195, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 71, 97,109,101, 32, 76,111,103,105, 99, - 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,189,196, 6, 0, 0, 0, 0,120,195,196, 6, 0, 0, 0, 0,232,195,196, 6, - 0, 0, 0, 0,168,204,196, 6, 0, 0, 0, 0, 24,205,196, 6, 0, 0, 0, 0, 56, 5,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,200,189,196, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 56,190,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56,190,196, 6, - 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,168,190,196, 6, 0, 0, 0, 0,200,189,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168,190,196, 6, 0, 0, 0, 0,211, 0, 0, 0, - 1, 0, 0, 0, 24,191,196, 6, 0, 0, 0, 0, 56,190,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 5, 4, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24,191,196, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,136,191,196, 6, - 0, 0, 0, 0,168,190,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,136,191,196, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,248,191,196, 6, 0, 0, 0, 0, 24,191,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,191,196, 6, - 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,104,192,196, 6, 0, 0, 0, 0,136,191,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,126, 7,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104,192,196, 6, 0, 0, 0, 0,211, 0, 0, 0, - 1, 0, 0, 0,216,192,196, 6, 0, 0, 0, 0,248,191,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 1, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216,192,196, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 72,193,196, 6, - 0, 0, 0, 0,104,192,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 72,193,196, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,184,193,196, 6, 0, 0, 0, 0,216,192,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,193,196, 6, - 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 40,194,196, 6, 0, 0, 0, 0, 72,193,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,126, 7,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40,194,196, 6, 0, 0, 0, 0,211, 0, 0, 0, - 1, 0, 0, 0,152,194,196, 6, 0, 0, 0, 0,184,193,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 5,140, 1, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152,194,196, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 8,195,196, 6, - 0, 0, 0, 0, 40,194,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 5,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 8,195,196, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,120,195,196, 6, 0, 0, 0, 0,152,194,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120,195,196, 6, - 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,195,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 1,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,195,196, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0, 88,196,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,190,196, 6, 0, 0, 0, 0,168,190,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,196,196, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0,200,196,196, 6, 0, 0, 0, 0,232,195,196, 6, 0, 0, 0, 0, 56,190,196, 6, 0, 0, 0, 0,136,191,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,196,196, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0, 56,197,196, 6, 0, 0, 0, 0, 88,196,196, 6, 0, 0, 0, 0,168,190,196, 6, 0, 0, 0, 0,248,191,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,197,196, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0,168,197,196, 6, 0, 0, 0, 0,200,196,196, 6, 0, 0, 0, 0,136,191,196, 6, 0, 0, 0, 0,248,191,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,197,196, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0, 24,198,196, 6, 0, 0, 0, 0, 56,197,196, 6, 0, 0, 0, 0,136,191,196, 6, 0, 0, 0, 0,104,192,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,198,196, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0,136,198,196, 6, 0, 0, 0, 0,168,197,196, 6, 0, 0, 0, 0,104,192,196, 6, 0, 0, 0, 0,216,192,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,198,196, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0,248,198,196, 6, 0, 0, 0, 0, 24,198,196, 6, 0, 0, 0, 0, 24,191,196, 6, 0, 0, 0, 0, 72,193,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,198,196, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0,104,199,196, 6, 0, 0, 0, 0,136,198,196, 6, 0, 0, 0, 0,216,192,196, 6, 0, 0, 0, 0, 72,193,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,199,196, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0,216,199,196, 6, 0, 0, 0, 0,248,198,196, 6, 0, 0, 0, 0,200,189,196, 6, 0, 0, 0, 0,104,192,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,199,196, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0, 72,200,196, 6, 0, 0, 0, 0,104,199,196, 6, 0, 0, 0, 0,200,189,196, 6, 0, 0, 0, 0, 72,193,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,200,196, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0,184,200,196, 6, 0, 0, 0, 0,216,199,196, 6, 0, 0, 0, 0,248,191,196, 6, 0, 0, 0, 0,184,193,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,200,196, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0, 40,201,196, 6, 0, 0, 0, 0, 72,200,196, 6, 0, 0, 0, 0, 24,191,196, 6, 0, 0, 0, 0,184,193,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,201,196, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0,152,201,196, 6, 0, 0, 0, 0,184,200,196, 6, 0, 0, 0, 0,216,192,196, 6, 0, 0, 0, 0,184,193,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,201,196, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0, 8,202,196, 6, 0, 0, 0, 0, 40,201,196, 6, 0, 0, 0, 0, 40,194,196, 6, 0, 0, 0, 0,152,194,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,202,196, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0,120,202,196, 6, 0, 0, 0, 0,152,201,196, 6, 0, 0, 0, 0,248,191,196, 6, 0, 0, 0, 0,152,194,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,202,196, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0,232,202,196, 6, 0, 0, 0, 0, 8,202,196, 6, 0, 0, 0, 0,184,193,196, 6, 0, 0, 0, 0, 40,194,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,202,196, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0, 88,203,196, 6, 0, 0, 0, 0,120,202,196, 6, 0, 0, 0, 0,104,192,196, 6, 0, 0, 0, 0, 8,195,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,203,196, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0,200,203,196, 6, 0, 0, 0, 0,232,202,196, 6, 0, 0, 0, 0, 40,194,196, 6, 0, 0, 0, 0, 8,195,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,203,196, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0, 56,204,196, 6, 0, 0, 0, 0, 88,203,196, 6, 0, 0, 0, 0,136,191,196, 6, 0, 0, 0, 0,120,195,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,204,196, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0,168,204,196, 6, 0, 0, 0, 0,200,203,196, 6, 0, 0, 0, 0,152,194,196, 6, 0, 0, 0, 0,120,195,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,204,196, 6, 0, 0, 0, 0,212, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,204,196, 6, 0, 0, 0, 0, 8,195,196, 6, 0, 0, 0, 0,120,195,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 24,205,196, 6, 0, 0, 0, 0,214, 0, 0, 0, - 1, 0, 0, 0,232,208,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,191,196, 6, 0, 0, 0, 0, 56,190,196, 6, - 0, 0, 0, 0,168,190,196, 6, 0, 0, 0, 0,248,191,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -126, 7, 0, 0,235, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,248, 11,197, 6, 0, 0, 0, 0,248, 11,197, 6, 0, 0, 0, 0, 8,206,196, 6, 0, 0, 0, 0,120,207,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8,206,196, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,120,207,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, - 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, - 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -126, 7, 0, 0,235, 3, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,120,207,196, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8,206,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,238, 68, 0, 0, 0, 0, 0, 0, 0, 64,112, 7, 0, 0,129, 7, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, - 10, 0,129, 7, 2, 0,112, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 5, 4, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,232,208,196, 6, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,120,233,196, 6, - 0, 0, 0, 0, 24,205,196, 6, 0, 0, 0, 0, 72,193,196, 6, 0, 0, 0, 0,216,192,196, 6, 0, 0, 0, 0,184,193,196, 6, - 0, 0, 0, 0, 24,191,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, -139, 1, 0, 0, 4, 4, 94, 1,140, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,232,196, 6, - 0, 0, 0, 0, 56,232,196, 6, 0, 0, 0, 0,216,209,196, 6, 0, 0, 0, 0, 72,211,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,216,209,196, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 72,211,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,175, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,174, 67, 0, 0,200, 65, 0,128,174, 67, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 94, 1, 26, 0, 94, 1, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0,114, 1, 0, 0, -139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 72,211,196, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,209,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128,174, 67, 0, 0, 61,196, 0, 0, 0, 0, 0, 0, 0, 0,255,127,166, 67,255,255,184,195, - 0, 0, 0, 0, 77, 1, 0, 0, 94, 1, 0, 0, 0, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0, 78, 1, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0, 76, 1, 0, 0, 0, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 94, 1,114, 1, 77, 1, -114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, -113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 1,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,212,196, 6, 0, 0, 0, 0,152,230,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,184,212,196, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 88,214,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99, -111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99, -111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 76, 1, 36, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88,214,196, 6, 0, 0, 0, 0,213, 0, 0, 0, - 1, 0, 0, 0,248,215,196, 6, 0, 0, 0, 0,184,212,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,135,255, 76, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,248,215,196, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,152,217,196, 6, 0, 0, 0, 0, 88,214,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97, -121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97, -121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, 76, 1, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152,217,196, 6, 0, 0, 0, 0,213, 0, 0, 0, - 1, 0, 0, 0, 56,219,196, 6, 0, 0, 0, 0,248,215,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,140,254, 76, 1,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0, 56,219,196, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,216,220,196, 6, 0, 0, 0, 0,152,217,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110, -116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110, -116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110, -103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, 76, 1, 58, 0, 20, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216,220,196, 6, 0, 0, 0, 0,213, 0, 0, 0, - 1, 0, 0, 0,120,222,196, 6, 0, 0, 0, 0, 56,219,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 34,254, 76, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,120,222,196, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 24,224,196, 6, 0, 0, 0, 0,216,220,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, - 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, - 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,254, 76, 1, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24,224,196, 6, 0, 0, 0, 0,213, 0, 0, 0, - 1, 0, 0, 0,184,225,196, 6, 0, 0, 0, 0,120,222,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,242,253, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,184,225,196, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 88,227,196, 6, 0, 0, 0, 0, 24,224,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111, -115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111, -115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115, -105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,253, 76, 1, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88,227,196, 6, 0, 0, 0, 0,213, 0, 0, 0, - 1, 0, 0, 0,248,228,196, 6, 0, 0, 0, 0,184,225,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,194,253, 76, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,248,228,196, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,152,230,196, 6, 0, 0, 0, 0, 88,227,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117, -116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117, -116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,253, 76, 1,130, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152,230,196, 6, 0, 0, 0, 0,213, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,228,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 16,253, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -248, 0, 0, 0, 56,232,196, 6, 0, 0, 0, 0,179, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,120,233,196, 6, 0, 0, 0, 0,214, 0, 0, 0, - 1, 0, 0, 0,232,240,196, 6, 0, 0, 0, 0,232,208,196, 6, 0, 0, 0, 0,200,189,196, 6, 0, 0, 0, 0,104,192,196, 6, - 0, 0, 0, 0,216,192,196, 6, 0, 0, 0, 0, 72,193,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 31, 6, 0, 0, 0, 0, 0, 0,139, 1, 0, 0, 17, 17, 32, 6,140, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 88,240,196, 6, 0, 0, 0, 0, 88,240,196, 6, 0, 0, 0, 0,104,234,196, 6, 0, 0, 0, 0,232,238,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104,234,196, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,216,235,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0,196, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,195, 68, - 0, 0,200, 65, 0,224,195, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, - 10, 0, 32, 6, 26, 0, 32, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216,235,196, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,232,238,196, 6, - 0, 0, 0, 0,104,234,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 67, 0, 0,185,195, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 75, 67, 0, 0,185,195, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0, -202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, - 6, 0,220, 0,114, 1,203, 0,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -219, 0, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0,114, 1, - 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,237,196, 6, 0, 0, 0, 0, 72,237,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72,237,196, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 79, 71, 73, - 67, 95, 80, 84, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 79, 71, 73, - 67, 95, 80, 84, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,114,111,112, -101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255, -203, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232,238,196, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,235,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,160, 68, 0, 0, 0, 0, 0, 0,112, 67, 0, 80, 31,195, 0,234,179, 68,224,198,182,194,184,177,165, 67, 51, 5, 0, 0, - 68, 5, 0, 0, 18, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0, 50, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, - 50, 5, 0, 0, 18, 0, 0, 0,113, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70, 0, 0, 0, 63, - 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 68, 5,114, 1, 51, 5, 96, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 5,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 72, 0, 0, 0, 88,240,196, 6, - 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,255, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,232,240,196, 6, - 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,168,247,196, 6, 0, 0, 0, 0,120,233,196, 6, 0, 0, 0, 0, 40,194,196, 6, - 0, 0, 0, 0,152,194,196, 6, 0, 0, 0, 0,248,191,196, 6, 0, 0, 0, 0,184,193,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 65, 5, 0, 0,126, 7, 0, 0,141, 1, 0, 0,233, 3, 0, 0, 9, 9, 62, 2, 93, 2, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,244,196, 6, 0, 0, 0, 0,184,244,196, 6, 0, 0, 0, 0,216,241,196, 6, - 0, 0, 0, 0, 72,243,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216,241,196, 6, 0, 0, 0, 0,215, 0, 0, 0, - 1, 0, 0, 0, 72,243,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0,128, 15, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 2, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 64, 15, 68, 0, 0,200, 65, 0, 64, 15, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 62, 2, 26, 0, 62, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 65, 5, 0, 0,126, 7, 0, 0,141, 1, 0, 0,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72,243,196, 6, 0, 0, 0, 0,215, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,241,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,181, 67, 0, 0, 0, 0, - 0,128,218, 67, 0, 0, 0, 0,131,248, 1, 68, 0, 0, 0, 0, 86, 26, 3, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 2, 0, 0, 0, 0, 0, 0, - 66, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, - 1, 0, 3, 0, 0, 0, 0, 4, 10, 0, 62, 2, 67, 2, 62, 2, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 65, 5, 0, 0,126, 7, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 2, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 2, 0, 0,184,244,196, 6, 0, 0, 0, 0,186, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,168,247,196, 6, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 56, 5,197, 6, - 0, 0, 0, 0,232,240,196, 6, 0, 0, 0, 0, 8,195,196, 6, 0, 0, 0, 0,120,195,196, 6, 0, 0, 0, 0,152,194,196, 6, - 0, 0, 0, 0, 40,194,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0, 63, 5, 0, 0,141, 1, 0, 0, -233, 3, 0, 0, 1, 1,251, 3, 93, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 3,197, 6, - 0, 0, 0, 0,136, 3,197, 6, 0, 0, 0, 0,152,248,196, 6, 0, 0, 0, 0, 88,254,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,152,248,196, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 8,250,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192,126, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,250, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,126, 68, 0, 0,200, 65, 0,128,126, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,251, 3, 26, 0,251, 3, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0, 63, 5, 0, 0,141, 1, 0, 0, -166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 8,250,196, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,120,251,196, 6, 0, 0, 0, 0,152,248,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, - 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, - 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0, 69, 1, 0, 0,167, 1, 0, 0, -233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 67, 2, 0, 0, 5, 0, 3, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,120,251,196, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,232,252,196, 6, 0, 0, 0, 0, 8,250,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, - 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0, -102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0, 63, 5, 0, 0,167, 1, 0, 0, -167, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,232,252,196, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 88,254,196, 6, 0, 0, 0, 0,120,251,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 67, 0, 0,109,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0,109,196, - 0,128,145,195,163, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0,144, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0,144, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,180, 0,145, 2,163, 0, -145, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 5, 0, 0, 63, 5, 0, 0,167, 1, 0, 0, -233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 88,254,196, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,252,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0, 63, 5, 0, 0,167, 1, 0, 0, -233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 3, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,255,196, 6, 0, 0, 0, 0, 68, 65, 84, 65, -112, 3, 0, 0,200,255,196, 6, 0, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 75, 40,139, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18, 3,187, - 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0,128, 0, 0, 0,128, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 75, 40,139, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18, 3,187, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,149, 53,207, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,112,121,107, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,249,195, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 75, 40,139, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18, 3,187, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,207, 3,116, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,207, 3,116, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,207, 3,116, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,149, 53,207, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,221, 57, 80, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,160, 65, 0, 0, 5, 0,251,251, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, - 1, 0, 0, 0, 0, 0,128, 63, 0, 0,180, 66, 0, 0,180, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 96, 1, 0, 0,136, 3,197, 6, 0, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65,205,204, 76, 62, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,200, 67,198, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8,128, 0, - 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61, 0, 0,122, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0, 56, 5,197, 6, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,247,196, 6, - 0, 0, 0, 0,104,192,196, 6, 0, 0, 0, 0,136,191,196, 6, 0, 0, 0, 0,120,195,196, 6, 0, 0, 0, 0, 8,195,196, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0,141, 1, 0, 0,233, 3, 0, 0, 3, 3, 68, 1, - 93, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 9,197, 6, 0, 0, 0, 0, 8, 9,197, 6, - 0, 0, 0, 0, 40, 6,197, 6, 0, 0, 0, 0,152, 7,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40, 6,197, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,152, 7,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,128,244, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,162, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,161, 67, 0, 0,200, 65, 0,128,161, 67, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 68, 1, 26, 0, 68, 1, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0,141, 1, 0, 0,166, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152, 7,197, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 6,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0,128,141, 67, 0, 0,244,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,153, 67, 0, 64, 12,196, 0, 0, 0, 0, 51, 1, 0, 0, - 68, 1, 0, 0, 18, 0, 0, 0, 66, 2, 0, 0, 0, 0, 0, 0, 50, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, - 50, 1, 0, 0, 18, 0, 0, 0, 66, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 18, 6, 0, 0, 2, 0, 3, 3, 0, 0, 12, 4, 6, 0, 68, 1, 67, 2, 51, 1, 49, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, 8, 9,197, 6, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,216, 29,113, 5, 0, 0, 0, 0,183, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4042,818 +423,584 @@ char datatoc_startup_blend[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,104, 10,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 56, 31,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,104, 10,197, 6, 0, 0, 0, 0,237, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, - 14, 0, 0, 0,200, 10,197, 6, 0, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0,200, 10,197, 6, 0, 0, 0, 0,236, 0, 0, 0, - 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,104, 38,198, 6, 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0,104, 38,198, 6, - 0, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0,104, 38,198, 6, 0, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0,104, 38,198, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,248, 64,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,104, 74,198, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 8,129,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 72, 88,198, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 88,110,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,168, 81,198, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 56, 60,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,200, 67,198, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 40, 59,198, 6, 0, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0,104, 38,198, 6, - 0, 0, 0, 0, 83, 78, 0, 0, 8, 1, 0, 0,136, 12,197, 6, 0, 0, 0, 0,210, 0, 0, 0, 1, 0, 0, 0,136, 95,197, 6, - 0, 0, 0, 0,120,188,196, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 77,111, -118,105,101, 32, 84,114, 97, 99,107,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 13,197, 6, 0, 0, 0, 0,168, 18,197, 6, - 0, 0, 0, 0, 24, 19,197, 6, 0, 0, 0, 0,136, 26,197, 6, 0, 0, 0, 0,248, 26,197, 6, 0, 0, 0, 0, 56, 75,197, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,123,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216, 13,197, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 72, 14,197, 6, + 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, 56, 31,113, 5, 0, 0, 0, 0,237, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, + 14, 0, 0, 0,152, 31,113, 5, 0, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0,152, 31,113, 5, 0, 0, 0, 0,236, 0, 0, 0, + 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,120,228,115, 5, 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0,120,228,115, 5, + 0, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0,120,228,115, 5, 0, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0,120,228,115, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 24,255,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,136, 8,116, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 40, 63,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,104, 22,116, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,120, 44,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,200, 15,116, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 88,250,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,232, 1,116, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 72,249,115, 5, 0, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0,120,228,115, 5, + 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,200, 32,113, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 88, 46,113, 5, + 0, 0, 0, 0, 8, 26,113, 5, 0, 0, 0, 0,104,233,112, 5, 0, 0, 0, 0,216,233,112, 5, 0, 0, 0, 0, 56,231,112, 5, + 0, 0, 0, 0,248,232,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 1, 0, 0, 23, 4, 0, 0, 89, 0, 0, 0, +194, 2, 0, 0, 1, 1, 87, 2,106, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 44,113, 5, + 0, 0, 0, 0,168, 44,113, 5, 0, 0, 0, 0,184, 33,113, 5, 0, 0, 0, 0,120, 39,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 72, 14,197, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,184, 14,197, 6, 0, 0, 0, 0,216, 13,197, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,146, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184, 14,197, 6, - 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 40, 15,197, 6, 0, 0, 0, 0, 72, 14,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,126, 7,146, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40, 15,197, 6, 0, 0, 0, 0,211, 0, 0, 0, - 1, 0, 0, 0,152, 15,197, 6, 0, 0, 0, 0,184, 14,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152, 15,197, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 8, 16,197, 6, - 0, 0, 0, 0, 40, 15,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 4, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 8, 16,197, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,120, 16,197, 6, 0, 0, 0, 0,152, 15,197, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,104, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120, 16,197, 6, - 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,232, 16,197, 6, 0, 0, 0, 0, 8, 16,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,124, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232, 16,197, 6, 0, 0, 0, 0,211, 0, 0, 0, - 1, 0, 0, 0, 88, 17,197, 6, 0, 0, 0, 0,120, 16,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,124, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88, 17,197, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,200, 17,197, 6, - 0, 0, 0, 0,232, 16,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 3, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,200, 17,197, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 56, 18,197, 6, 0, 0, 0, 0, 88, 17,197, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,168, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56, 18,197, 6, - 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,168, 18,197, 6, 0, 0, 0, 0,200, 17,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,168, 3,168, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168, 18,197, 6, 0, 0, 0, 0,211, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 18,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 3,104, 4, - 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24, 19,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,136, 19,197, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 14,197, 6, 0, 0, 0, 0,184, 14,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136, 19,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,248, 19,197, 6, - 0, 0, 0, 0, 24, 19,197, 6, 0, 0, 0, 0, 72, 14,197, 6, 0, 0, 0, 0,152, 15,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248, 19,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,104, 20,197, 6, - 0, 0, 0, 0,136, 19,197, 6, 0, 0, 0, 0,184, 14,197, 6, 0, 0, 0, 0, 8, 16,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104, 20,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,216, 20,197, 6, - 0, 0, 0, 0,248, 19,197, 6, 0, 0, 0, 0,152, 15,197, 6, 0, 0, 0, 0, 8, 16,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216, 20,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 72, 21,197, 6, - 0, 0, 0, 0,104, 20,197, 6, 0, 0, 0, 0,216, 13,197, 6, 0, 0, 0, 0, 40, 15,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72, 21,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,184, 21,197, 6, - 0, 0, 0, 0,216, 20,197, 6, 0, 0, 0, 0,216, 13,197, 6, 0, 0, 0, 0,120, 16,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184, 21,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 40, 22,197, 6, - 0, 0, 0, 0, 72, 21,197, 6, 0, 0, 0, 0, 40, 15,197, 6, 0, 0, 0, 0,232, 16,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40, 22,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,152, 22,197, 6, - 0, 0, 0, 0,184, 21,197, 6, 0, 0, 0, 0,120, 16,197, 6, 0, 0, 0, 0,232, 16,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152, 22,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 8, 23,197, 6, - 0, 0, 0, 0, 40, 22,197, 6, 0, 0, 0, 0,120, 16,197, 6, 0, 0, 0, 0, 88, 17,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8, 23,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,120, 23,197, 6, - 0, 0, 0, 0,152, 22,197, 6, 0, 0, 0, 0,152, 15,197, 6, 0, 0, 0, 0, 88, 17,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120, 23,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,232, 23,197, 6, - 0, 0, 0, 0, 8, 23,197, 6, 0, 0, 0, 0, 8, 16,197, 6, 0, 0, 0, 0,200, 17,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232, 23,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 88, 24,197, 6, - 0, 0, 0, 0,120, 23,197, 6, 0, 0, 0, 0,232, 16,197, 6, 0, 0, 0, 0,200, 17,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88, 24,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,200, 24,197, 6, - 0, 0, 0, 0,232, 23,197, 6, 0, 0, 0, 0, 88, 17,197, 6, 0, 0, 0, 0,200, 17,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200, 24,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 56, 25,197, 6, - 0, 0, 0, 0, 88, 24,197, 6, 0, 0, 0, 0, 88, 17,197, 6, 0, 0, 0, 0, 56, 18,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56, 25,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,168, 25,197, 6, - 0, 0, 0, 0,200, 24,197, 6, 0, 0, 0, 0,200, 17,197, 6, 0, 0, 0, 0, 56, 18,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168, 25,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 24, 26,197, 6, - 0, 0, 0, 0, 56, 25,197, 6, 0, 0, 0, 0,152, 15,197, 6, 0, 0, 0, 0,168, 18,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24, 26,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,136, 26,197, 6, - 0, 0, 0, 0,168, 25,197, 6, 0, 0, 0, 0, 8, 16,197, 6, 0, 0, 0, 0,168, 18,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136, 26,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 24, 26,197, 6, 0, 0, 0, 0, 56, 18,197, 6, 0, 0, 0, 0,168, 18,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,248, 26,197, 6, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,200, 30,197, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 15,197, 6, 0, 0, 0, 0, 72, 14,197, 6, 0, 0, 0, 0,184, 14,197, 6, - 0, 0, 0, 0, 8, 16,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,105, 4, 0, 0, -146, 4, 0, 0, 7, 7,127, 7, 42, 0, 1, 0, 0, 0, 0, 0, 7, 0, 8, 0, 8, 77,163, 6, 0, 0, 0, 0,248, 94,197, 6, - 0, 0, 0, 0,248, 94,197, 6, 0, 0, 0, 0,232, 27,197, 6, 0, 0, 0, 0, 88, 29,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,233, 42, 0, 73,127, 0, 0,104,217,224, 0, 73,127, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,232, 27,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 88, 29,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,163, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, + 40, 1, 0, 0,184, 33,113, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 40, 35,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 21, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128, 21, 68, 0, 0,200, 65, 0,128, 21, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 87, 2, 26, 0, 87, 2, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 1, 0, 0, 23, 4, 0, 0, 89, 0, 0, 0, +114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 40, 35,113, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,152, 36,113, 5, 0, 0, 0, 0,184, 33,113, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, + 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, + 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 1, 0, 0,193, 1, 0, 0,115, 0, 0, 0, +194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 80, 2, 0, 0, 5, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,152, 36,113, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 8, 38,113, 5, 0, 0, 0, 0, 40, 35,113, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, + 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0, +102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 1, 0, 0,193, 1, 0, 0,115, 0, 0, 0, +115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 8, 38,113, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,120, 39,113, 5, 0, 0, 0, 0,152, 36,113, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128, 96,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128, 96,196, + 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,147, 3, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,147, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,148, 3,163, 0, +130, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0, 23, 4, 0, 0,115, 0, 0, 0, +194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,120, 39,113, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 38,113, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 1, 0, 0, 23, 4, 0, 0,115, 0, 0, 0, +194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 2, 80, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 40,113, 5, 0, 0, 0, 0, 68, 65, 84, 65, +112, 3, 0, 0,232, 40,113, 5, 0, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,200,167,141, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 13,128,191, + 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 74,215, 76,190, 0, 0, 0, 0, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, + 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, + 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, + 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,178,157,229, 62,209,162,227,190, 48,180, 81,191, +184,158, 81,191,117, 90,127, 63, 13,114, 91, 62, 26, 63,185, 62, 35, 44,185, 62,145,180,109,188,105,147,125, 63,138, 84,228,190, + 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65,214,211,111, 65, 99,240,191, 62,110,116, 85, 63, 64,185, 70,188, + 0, 0, 82,180, 48,221,185,190, 44, 45, 51, 62, 28, 11, 79, 63, 0, 0, 56,179, 67,108,117,194,183,204,216, 65,105,156, 5,194, +212,247,159,192,235, 62,114, 66, 59,254,213,193,158,225, 3, 66, 55, 8,160, 64, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, + 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,178,157,229, 62,209,162,227,190, 48,180, 81,191, +184,158, 81,191,117, 90,127, 63, 13,114, 91, 62, 26, 63,185, 62, 35, 44,185, 62,145,180,109,188,105,147,125, 63,138, 84,228,190, + 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 9,185,108, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,163, 91, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 12,163, 91, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,163, 91, 64, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, + 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,236, 15, 72, 59, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 32, 33, 12, 66, 86,152,137, 66,113, 27,126, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 96, 1, 0, 0,168, 44,113, 5, 0, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 65,205,204, 76, 62, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,232, 1,116, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8,128, 0, + 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0, 88, 46,113, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 8, 55,113, 5, 0, 0, 0, 0,200, 32,113, 5, + 0, 0, 0, 0,136,232,112, 5, 0, 0, 0, 0, 72,234,112, 5, 0, 0, 0, 0,184,234,112, 5, 0, 0, 0, 0,104,233,112, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 89, 0, 0, 0, 3, 1, 0, 0, 2, 2,192, 1, +171, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 53,113, 5, 0, 0, 0, 0, 8, 53,113, 5, + 0, 0, 0, 0, 72, 47,113, 5, 0, 0, 0, 0,152, 51,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72, 47,113, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,184, 48,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 64, 89, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,224, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +191, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,223, 67, 0, 0,200, 65, 0,128,223, 67, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,192, 1, 26, 0,192, 1, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 89, 0, 0, 0,114, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184, 48,113, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 40, 50,113, 5, 0, 0, 0, 0, 72, 47,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 72, 67, 0, 0,112,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,254,194, 0, 0, 0, 0,200, 0, 0, 0, +217, 0, 0, 0, 18, 0, 0, 0,144, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +199, 0, 0, 0, 18, 0, 0, 0,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 10, 6, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,217, 0,145, 0,200, 0,127, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0,115, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0,145, 0, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40, 50,113, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,152, 51,113, 5, 0, 0, 0, 0,184, 48,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0,191, 1, 0, 0,115, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152, 51,113, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 50,113, 5, 0, 0, 0, 0, 0, 0, 16,193, + 0, 0,130, 67, 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, + 17, 0, 0, 0, 18, 0, 0, 0,144, 0, 0, 0, 18, 0, 0, 0,230, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, +230, 0, 0, 0, 18, 0, 0, 0,144, 0, 0, 0,111, 18,131, 58,111, 18,131, 58, 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, + 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,231, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 0, 0,191, 1, 0, 0,115, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,231, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 8, 53,113, 5, + 0, 0, 0, 0,178, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 54,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +112, 0, 0, 0, 72, 54,113, 5, 0, 0, 0, 0, 37, 1, 0, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 8, 55,113, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,216, 61,113, 5, + 0, 0, 0, 0, 88, 46,113, 5, 0, 0, 0, 0, 72,234,112, 5, 0, 0, 0, 0,232,229,112, 5, 0, 0, 0, 0,216,233,112, 5, + 0, 0, 0, 0,184,234,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 5, 1, 0, 0, +194, 2, 0, 0, 12, 12,192, 1,190, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 60,113, 5, + 0, 0, 0, 0, 72, 60,113, 5, 0, 0, 0, 0,248, 55,113, 5, 0, 0, 0, 0,216, 58,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,248, 55,113, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,104, 57,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 94, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,224, 67, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,223, 67, 0, 0,200, 65, 0,128,223, 67, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,192, 1, 26, 0,192, 1, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 5, 1, 0, 0, + 30, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,104, 57,113, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,216, 58,113, 5, 0, 0, 0, 0,248, 55,113, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 67, 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,201,195, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0,163, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 8, 4, 0, 0, 2, 0, 3, 3, 0, 0, 2, 4, 6, 0,200, 0,164, 1,200, 0, +146, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 31, 1, 0, 0, +194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 0,164, 1, 0, 0, 2, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,216, 58,113, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 57,113, 5, + 0, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, 0, 0, 72,194, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, 0, 0,201,195, + 0, 0, 0, 0,231, 0, 0, 0,248, 0, 0, 0, 18, 0, 0, 0,163, 1, 0, 0, 0, 0, 0, 0,230, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,230, 0, 0, 0, 18, 0, 0, 0,163, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,146, 72, + 0, 64, 28, 70, 10,215, 35, 60, 0, 0, 72, 66, 74, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 4, 4, 0,248, 0,164, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 0, 0, 0,191, 1, 0, 0, 31, 1, 0, 0, +194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 0,164, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 72, 1, 0, 0, 72, 60,113, 5, 0, 0, 0, 0, 38, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0,216, 61,113, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 55,113, 5, + 0, 0, 0, 0, 40,235,112, 5, 0, 0, 0, 0, 56,231,112, 5, 0, 0, 0, 0, 88,230,112, 5, 0, 0, 0, 0,152,235,112, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0, 61, 2, 0, 0,194, 2, 0, 0, 1, 1,216, 0, +134, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 69,113, 5, 0, 0, 0, 0,104, 69,113, 5, + 0, 0, 0, 0,200, 62,113, 5, 0, 0, 0, 0, 56, 64,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200, 62,113, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 56, 64,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,102, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,165, 67, 0, 0, 0, 64, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 73, 1, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0,128,164, 67, 0, 0,200, 65, 0,128,164, 67, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 74, 1, 24, 0, 74, 1, 24, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0, 61, 2, 0, 0, 61, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 26, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56, 64,113, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 62,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0, 61, 2, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0,134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 65,113, 5, 0, 0, 0, 0, 68, 65, 84, 65,112, 3, 0, 0,168, 65,113, 5, + 0, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 56,255, 13, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,228,100, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 65,128,191, 0, 0,128,191, 0, 0, 0, 0, + 0, 0, 0, 0, 72, 1, 77,190, 0, 0, 0, 0,221,149, 47, 63, 86,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63, +225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,192, 56, 49,188, 55, 53,101, 63, 52,247,227, 62, 0, 0, 0, 0, 90, 38,173,190, + 0,222,192,190,152, 9, 52,193, 0, 0,128, 63,223,149, 47, 63, 55, 70, 58, 63,160, 56, 49,188, 0, 0, 0, 0, 88,126,162,190, +229,251,159, 62, 55, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,150, 84, 28,191, 51,247,227, 62, 0, 0, 0, 0,110,101,239, 64, +151, 62,208,192, 78,255,170, 64, 0, 0,128, 63, 47,201,194, 63, 61, 73,145,191,244,250, 39,191, 8,165, 39,191,190,164,206, 63, +209, 10,143, 63,180,164, 28, 63,149, 84, 28, 63,224,153,196,188,136,239, 76, 64, 10,108,228,190, 52,247,227,190,125, 21, 64,191, +126,113,172,191,216, 49, 49, 65,152, 9, 52, 65,149, 70,158, 62, 24,234,167, 62,192,214,159,187, 0, 0, 6,181,196,188,181,189, + 71,238,178, 61,127, 45,128, 62, 0, 0,226, 51,168,120, 21,194,107, 5, 2, 66,203,135,213,193,147,214,159,192,177, 38, 19, 66, +124,173,255,193, 96,101,210, 65,128, 40,160, 64,221,149, 47, 63, 86,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63, +225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,192, 56, 49,188, 55, 53,101, 63, 52,247,227, 62, 0, 0, 0, 0, 90, 38,173,190, + 0,222,192,190,152, 9, 52,193, 0, 0,128, 63, 47,201,194, 63, 61, 73,145,191,244,250, 39,191, 8,165, 39,191,190,164,206, 63, +209, 10,143, 63,180,164, 28, 63,149, 84, 28, 63,224,153,196,188,136,239, 76, 64, 10,108,228,190, 52,247,227,190,125, 21, 64,191, +126,113,172,191,216, 49, 49, 65,152, 9, 52, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102,103, 97, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +102,103, 97, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102,103, 97, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,241, 22, 72, 63, 78,162,246,190, 43, 8, 90,190, 2, 35,171,190, 0, 0, 32, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,191,136, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 65, + 1, 2, 0, 0,255,255, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0,128, 63, +190,133, 65, 66, 99,212, 90, 66, 27,183,118, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 96, 1, 0, 0,104, 69,113, 5, 0, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, +205,204, 76, 62, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,232, 1,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 3, 0, 8, 0,128, 0, 0, 0, 12, 66, 0, 0,128, 63, + 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 8, 1, 0, 0,168, 71,113, 5, + 0, 0, 0, 0,210, 0, 0, 0, 1, 0, 0, 0, 40,180,113, 5, 0, 0, 0, 0,184,227,112, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 67,111,109,112,111,115,105,116,105,110,103, 0,103, 46, 48, 48, 49, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,248, 72,113, 5, 0, 0, 0, 0,168, 78,113, 5, 0, 0, 0, 0, 24, 79,113, 5, 0, 0, 0, 0, 72, 88,113, 5, + 0, 0, 0, 0,184, 88,113, 5, 0, 0, 0, 0,232,140,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248, 72,113, 5, + 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,104, 73,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104, 73,113, 5, 0, 0, 0, 0,211, 0, 0, 0, + 1, 0, 0, 0,216, 73,113, 5, 0, 0, 0, 0,248, 72,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216, 73,113, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 72, 74,113, 5, + 0, 0, 0, 0,104, 73,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0, 72, 74,113, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,184, 74,113, 5, 0, 0, 0, 0,216, 73,113, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184, 74,113, 5, + 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 40, 75,113, 5, 0, 0, 0, 0, 72, 74,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40, 75,113, 5, 0, 0, 0, 0,211, 0, 0, 0, + 1, 0, 0, 0,152, 75,113, 5, 0, 0, 0, 0,184, 74,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,234, 3, + 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152, 75,113, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 8, 76,113, 5, + 0, 0, 0, 0, 40, 75,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 92, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0, 8, 76,113, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,120, 76,113, 5, 0, 0, 0, 0,152, 75,113, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 92, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120, 76,113, 5, + 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,232, 76,113, 5, 0, 0, 0, 0, 8, 76,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32, 6,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232, 76,113, 5, 0, 0, 0, 0,211, 0, 0, 0, + 1, 0, 0, 0, 88, 77,113, 5, 0, 0, 0, 0,120, 76,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 1, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88, 77,113, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,200, 77,113, 5, + 0, 0, 0, 0,232, 76,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,200, 77,113, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 56, 78,113, 5, 0, 0, 0, 0, 88, 77,113, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56, 78,113, 5, + 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,168, 78,113, 5, 0, 0, 0, 0,200, 77,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4, 3, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168, 78,113, 5, 0, 0, 0, 0,211, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 78,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24, 79,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,136, 79,113, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 73,113, 5, 0, 0, 0, 0,216, 73,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136, 79,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,248, 79,113, 5, + 0, 0, 0, 0, 24, 79,113, 5, 0, 0, 0, 0,104, 73,113, 5, 0, 0, 0, 0,184, 74,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248, 79,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,104, 80,113, 5, + 0, 0, 0, 0,136, 79,113, 5, 0, 0, 0, 0,216, 73,113, 5, 0, 0, 0, 0, 40, 75,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104, 80,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,216, 80,113, 5, + 0, 0, 0, 0,248, 79,113, 5, 0, 0, 0, 0,184, 74,113, 5, 0, 0, 0, 0, 40, 75,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216, 80,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 72, 81,113, 5, + 0, 0, 0, 0,104, 80,113, 5, 0, 0, 0, 0, 72, 74,113, 5, 0, 0, 0, 0, 8, 76,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72, 81,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,184, 81,113, 5, + 0, 0, 0, 0,216, 80,113, 5, 0, 0, 0, 0,152, 75,113, 5, 0, 0, 0, 0, 8, 76,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184, 81,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 40, 82,113, 5, + 0, 0, 0, 0, 72, 81,113, 5, 0, 0, 0, 0, 40, 75,113, 5, 0, 0, 0, 0,120, 76,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40, 82,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,152, 82,113, 5, + 0, 0, 0, 0,184, 81,113, 5, 0, 0, 0, 0,184, 74,113, 5, 0, 0, 0, 0,120, 76,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152, 82,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 8, 83,113, 5, + 0, 0, 0, 0, 40, 82,113, 5, 0, 0, 0, 0,152, 75,113, 5, 0, 0, 0, 0,120, 76,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8, 83,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,120, 83,113, 5, + 0, 0, 0, 0,152, 82,113, 5, 0, 0, 0, 0, 40, 75,113, 5, 0, 0, 0, 0, 8, 76,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120, 83,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,232, 83,113, 5, + 0, 0, 0, 0, 8, 83,113, 5, 0, 0, 0, 0,184, 74,113, 5, 0, 0, 0, 0,232, 76,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232, 83,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 88, 84,113, 5, + 0, 0, 0, 0,120, 83,113, 5, 0, 0, 0, 0,120, 76,113, 5, 0, 0, 0, 0, 88, 77,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88, 84,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,200, 84,113, 5, + 0, 0, 0, 0,232, 83,113, 5, 0, 0, 0, 0,232, 76,113, 5, 0, 0, 0, 0, 88, 77,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200, 84,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 56, 85,113, 5, + 0, 0, 0, 0, 88, 84,113, 5, 0, 0, 0, 0,232, 76,113, 5, 0, 0, 0, 0,200, 77,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56, 85,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,168, 85,113, 5, + 0, 0, 0, 0,200, 84,113, 5, 0, 0, 0, 0, 88, 77,113, 5, 0, 0, 0, 0,200, 77,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168, 85,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 24, 86,113, 5, + 0, 0, 0, 0, 56, 85,113, 5, 0, 0, 0, 0,248, 72,113, 5, 0, 0, 0, 0, 56, 78,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24, 86,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,136, 86,113, 5, + 0, 0, 0, 0,168, 85,113, 5, 0, 0, 0, 0, 56, 78,113, 5, 0, 0, 0, 0,168, 78,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136, 86,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,248, 86,113, 5, + 0, 0, 0, 0, 24, 86,113, 5, 0, 0, 0, 0, 72, 74,113, 5, 0, 0, 0, 0,168, 78,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248, 86,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,104, 87,113, 5, + 0, 0, 0, 0,136, 86,113, 5, 0, 0, 0, 0,152, 75,113, 5, 0, 0, 0, 0,168, 78,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104, 87,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,216, 87,113, 5, + 0, 0, 0, 0,248, 86,113, 5, 0, 0, 0, 0,200, 77,113, 5, 0, 0, 0, 0, 56, 78,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216, 87,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 72, 88,113, 5, + 0, 0, 0, 0,104, 87,113, 5, 0, 0, 0, 0, 88, 77,113, 5, 0, 0, 0, 0,168, 78,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72, 88,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,216, 87,113, 5, 0, 0, 0, 0,248, 72,113, 5, 0, 0, 0, 0,232, 76,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,184, 88,113, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,136, 92,113, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 74,113, 5, 0, 0, 0, 0,104, 73,113, 5, 0, 0, 0, 0,216, 73,113, 5, + 0, 0, 0, 0, 40, 75,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, + 5, 4, 0, 0, 7, 7,127, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,179,113, 5, + 0, 0, 0, 0,152,179,113, 5, 0, 0, 0, 0,168, 89,113, 5, 0, 0, 0, 0, 24, 91,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,168, 89,113, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 24, 91,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,105, 4, 0, 0, -130, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 26, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 79,163, 6, 0, 0, 0, 0, 0, 0, 0, 0, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, + 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 88, 29,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 27,197, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0,192,239, 68, 0, 0, 0, 0, 0, 0, 48, 65, 0, 0, 0, 0, 1,192,237, 68, 0, 0, 0, 0, - 0, 0,128, 65,110, 7, 0, 0,127, 7, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,109, 7, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 2, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,127, 7, 16, 0,110, 7, - 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,131, 4, 0, 0, -146, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 78,163, 6, 0, 0, 0, 0, 0, 0, 0, 0, + 40, 1, 0, 0, 24, 91,113, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 89,113, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, + 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, + 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0,200, 30,197, 6, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,184, 35,197, 6, 0, 0, 0, 0,248, 26,197, 6, - 0, 0, 0, 0,216, 13,197, 6, 0, 0, 0, 0,120, 16,197, 6, 0, 0, 0, 0,232, 16,197, 6, 0, 0, 0, 0, 40, 15,197, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,123, 0, 0, 0, 15, 15,127, 7, -124, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 28,163, 6, 0, 0, 0, 0,152, 34,197, 6, 0, 0, 0, 0,152, 34,197, 6, - 0, 0, 0, 0,184, 31,197, 6, 0, 0, 0, 0, 40, 33,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 24,113,223, 0, 73,127, 0, 0,216,229, 12, 0, 73,127, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184, 31,197, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 40, 33,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 96,146, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, +160, 0, 0, 0,136, 92,113, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,120, 97,113, 5, 0, 0, 0, 0,184, 88,113, 5, + 0, 0, 0, 0,168, 78,113, 5, 0, 0, 0, 0,152, 75,113, 5, 0, 0, 0, 0, 8, 76,113, 5, 0, 0, 0, 0, 72, 74,113, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 15, 15, 94, 1, + 92, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 96,113, 5, 0, 0, 0, 0, 88, 96,113, 5, + 0, 0, 0, 0,120, 93,113, 5, 0, 0, 0, 0,232, 94,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,120, 93,113, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,232, 94,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,128,115, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,175, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 30,163, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 93, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,174, 67, 0, 0,200, 65, 0,128,174, 67, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 94, 1, 26, 0, 94, 1, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40, 33,197, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 31,197, 6, 0, 0, 0, 0, 0, 0, 64,192, - 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, 88,218,103,194, 40,147,141, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -126, 7, 0, 0, 18, 0, 0, 0, 97, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, - 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,127, 7, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 26, 0, 0, 0,123, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 29,163, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0,152, 34,197, 6, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232, 94,113, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 93,113, 5, 0, 0, 0, 0, 0, 0, 64,192, + 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, 50, 51, 74,193,154,209,131, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 93, 1, 0, 0, 18, 0, 0, 0, 65, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, + 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0, 94, 1, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 26, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 1, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, 88, 96,113, 5, 0, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0,184, 35,197, 6, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,120, 55,197, 6, 0, 0, 0, 0,200, 30,197, 6, - 0, 0, 0, 0,120, 16,197, 6, 0, 0, 0, 0, 88, 17,197, 6, 0, 0, 0, 0,200, 17,197, 6, 0, 0, 0, 0,232, 16,197, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,125, 0, 0, 0,167, 3, 0, 0, 20, 20,127, 7, - 43, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,130,163, 6, 0, 0, 0, 0,248, 49,197, 6, 0, 0, 0, 0, 88, 54,197, 6, - 0, 0, 0, 0,168, 36,197, 6, 0, 0, 0, 0,136, 48,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 56,240, 12, 0, 73,127, 0, 0,168,253, 12, 0, 73,127, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168, 36,197, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 24, 38,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,229, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 0, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,125, 0, 0, 0,150, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,138,163, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24, 38,197, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,136, 39,197, 6, 0, 0, 0, 0,168, 36,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0,128,178, 67, 0, 64, 38,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 38,196, 0, 0, 0, 0,143, 0, 0, 0, -160, 0, 0, 0, 0, 0, 0, 0,152, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, 0,152, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,153, 2,143, 0,153, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0, 15, 1, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,153, 2, 0, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,135,163, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136, 39,197, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,152, 42,197, 6, 0, 0, 0, 0, 24, 38,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0,128,178, 67, 0, 0,240,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0,240,194, 0, 0, 0, 0,143, 0, 0, 0, -160, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,120, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0,151, 0, 0, 0, 14, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,120, 0, 0, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,136,163, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,248, 40,197, 6, 0, 0, 0, 0,248, 40,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248, 40,197, 6, - 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,137,163, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111, -114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111, -114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,112,101,114, 97,116,111,114, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255,143, 0, 16, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152, 42,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,168, 45,197, 6, - 0, 0, 0, 0,136, 39,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0, 64, 68,196, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 15, 67, 0, 64, 68,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 16, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 16, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, - 6, 0,160, 0, 17, 3,143, 0, 17, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,223, 6, 0, 0, -126, 7, 0, 0,151, 0, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 17, 3, - 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,133,163, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 44,197, 6, 0, 0, 0, 0, 8, 44,197, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8, 44,197, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,134,163, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, - 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, - 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97, -115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,255, -143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168, 45,197, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 24, 47,197, 6, 0, 0, 0, 0,152, 42,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 15, 67, 0, 64,116,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 67, 0,192,111,196, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -159, 0, 0, 0, 18, 0, 0, 0,208, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 8, 0, 0, 0, 2, 0, 3, 3, 0, 0, 2, 0, 6, 0,160, 0,209, 3,160, 0,191, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 0, 0,160, 0, 0, 0,151, 0, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,139,163, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24, 47,197, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,136, 48,197, 6, 0, 0, 0, 0,168, 45,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,122, 67, 0, 0, 32,193, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 32,193, 0, 0, 32, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0,128, 0, 0,124,146, 72,255,255,127,127, 0, 0, 0, 0, - 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 0, 0,160, 0, 0, 0,151, 0, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,132,163, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136, 48,197, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 47,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,255, 0, 0,128,127, 0, 0,128,255, 0, 0,128,127, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63, 6, 0, 0, 0, 0, 0, 0, 17, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, - 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, 10, 0, 63, 6, 17, 3, 63, 6, 17, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 0, 0,222, 6, 0, 0,151, 0, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 6, 17, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,131,163, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 1, 0, 0,248, 49,197, 6, - 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 88, 54,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,120, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,200, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,120, 51,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,232, 52,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,146, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,125, 0, 0, 0, -150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,232, 52,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 51,197, 6, - 0, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, 88,218,103,194, 40,147,141, 67, 0, 0, 0, 0, - 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 18, 0, 0, 0,208, 3, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, - 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,127, 7,209, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,151, 0, 0, 0, -103, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7,209, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -208, 0, 0, 0, 88, 54,197, 6, 0, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 49,197, 6, - 0, 0, 0, 0,120, 51,197, 6, 0, 0, 0, 0,232, 52,197, 6, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, - 1, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,120, 55,197, 6, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 56, 75,197, 6, - 0, 0, 0, 0,184, 35,197, 6, 0, 0, 0, 0, 56, 18,197, 6, 0, 0, 0, 0,168, 18,197, 6, 0, 0, 0, 0, 8, 16,197, 6, - 0, 0, 0, 0,200, 17,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,169, 3, 0, 0,126, 7, 0, 0,169, 3, 0, 0, -103, 4, 0, 0, 20, 20,214, 3,191, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,130,163, 6, 0, 0, 0, 0,184, 69,197, 6, - 0, 0, 0, 0, 24, 74,197, 6, 0, 0, 0, 0,104, 56,197, 6, 0, 0, 0, 0, 72, 68,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,254, 12, 0, 73,127, 0, 0,200, 20, 13, 0, 73,127, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,104, 56,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,216, 57,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,212, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,117, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,213, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 64,117, 68, 0, 0,200, 65, 0, 64,117, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 0, 0, 10, 0,214, 3, 26, 0,214, 3, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,169, 3, 0, 0,126, 7, 0, 0,169, 3, 0, 0, -194, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,138,163, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,216, 57,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 72, 59,197, 6, 0, 0, 0, 0,104, 56,197, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0, 0, 52,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0, 52,194, - 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 45, 0,143, 0, - 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,169, 3, 0, 0,169, 3, 0, 0,195, 3, 0, 0, -103, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 5, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,135,163, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 72, 59,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 88, 62,197, 6, 0, 0, 0, 0,216, 57,197, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0, 0,240,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0,240,194, - 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0,120, 0,143, 0, -120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,169, 3, 0, 0,169, 3, 0, 0,195, 3, 0, 0, -103, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,136,163, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 60,197, 6, 0, 0, 0, 0,184, 60,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 88, 1, 0, 0,184, 60,197, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,108, 97,115,116, - 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,108, 97,115,116, - 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,101,119, 32, 83, 99,114,101,101,110, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255,143, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88, 62,197, 6, 0, 0, 0, 0,215, 0, 0, 0, - 1, 0, 0, 0,104, 65,197, 6, 0, 0, 0, 0, 72, 59,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0, 0, 37,195, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0, 37,195, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, -164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, -164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, - 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0,165, 0,143, 0,165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,169, 3, 0, 0,169, 3, 0, 0,195, 3, 0, 0,103, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 72,133,163, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 63,197, 6, - 0, 0, 0, 0,200, 63,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,200, 63,197, 6, 0, 0, 0, 0,213, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,232,255,143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,104, 65,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,216, 66,197, 6, 0, 0, 0, 0, 88, 62,197, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0, 37,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 67, 0, 0, 19,195, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0, 18, 0, 0, 0,164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 8, 4, 0, 0, 2, 0, 3, 3, 0, 0, 2, 4, 6, 0,160, 0,165, 0,160, 0, -147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,169, 3, 0, 0, 72, 4, 0, 0,195, 3, 0, 0, -103, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,165, 0, 0, 0, 2, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,139,163, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,216, 66,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 72, 68,197, 6, 0, 0, 0, 0,104, 65,197, 6, - 0, 0, 0, 0, 0, 0, 32,193, 0,128,117, 68,171,170,126,194, 0, 0, 0, 0, 0, 0, 32,193, 0,128,117, 68, 0, 0, 19,195, - 0, 0, 0, 0, 37, 3, 0, 0, 54, 3, 0, 0, 18, 0, 0, 0,164, 0, 0, 0, 0, 0, 0, 0, 36, 3, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0, 36, 3, 0, 0, 18, 0, 0, 0,164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,146, 72, -255,255,127,127, 10,215, 35, 60, 0, 0, 72, 66, 74, 0, 0, 0, 0, 0, 0, 2, 16, 0, 2, 4, 4, 0, 54, 3,165, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 4, 0, 0,126, 7, 0, 0,195, 3, 0, 0, -103, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 3,165, 0, 0, 0, 7, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,132,163, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 72, 68,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 66,197, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,255, 0, 0,128,127, 0, 0,128,255, - 0, 0,128,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,150, 2, 0, 0, 0, 0, 0, 0,165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 10, 0,150, 2,165, 0,150, 2, -165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,131,163, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 48, 1, 0, 0,184, 69,197, 6, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 24, 74,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,200, 0, 0, 0, 0, 2, 0, 20, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56, 71,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,168, 72,197, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,146, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, - 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, - 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -126, 7, 0, 0,125, 0, 0, 0,150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168, 72,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 56, 71,197, 6, 0, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, 88,218,103,194, - 40,147,141, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -126, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 18, 0, 0, 0,208, 3, 0, 0, 0, 0,128, 63, - 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, - 8, 0,127, 7,209, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -126, 7, 0, 0,151, 0, 0, 0,103, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7,209, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, 24, 74,197, 6, 0, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,184, 69,197, 6, 0, 0, 0, 0, 56, 71,197, 6, 0, 0, 0, 0,168, 72,197, 6, 0, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 63, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 56, 75,197, 6, 0, 0, 0, 0,214, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 55,197, 6, 0, 0, 0, 0, 88, 17,197, 6, 0, 0, 0, 0,152, 15,197, 6, - 0, 0, 0, 0,168, 18,197, 6, 0, 0, 0, 0, 56, 18,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -167, 3, 0, 0,169, 3, 0, 0,103, 4, 0, 0, 20, 20,168, 3,191, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,130,163, 6, - 0, 0, 0, 0,120, 89,197, 6, 0, 0, 0, 0,216, 93,197, 6, 0, 0, 0, 0, 40, 76,197, 6, 0, 0, 0, 0, 8, 88,197, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 21, 13, 0, 73,127, 0, 0,120, 22, 13, 0, - 73,127, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40, 76,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,152, 77,197, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,212, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0,106, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,105, 68, - 0, 0,200, 65, 0,192,105, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 0, 0, - 10, 0,168, 3, 26, 0,168, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -167, 3, 0, 0,169, 3, 0, 0,194, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 3, 26, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,138,163, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152, 77,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 8, 79,197, 6, - 0, 0, 0, 0, 40, 76,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0, 0, 52,194, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 15, 67, 0, 0, 52,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, - 6, 0,160, 0, 45, 0,143, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,195, 3, 0, 0,103, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,135,163, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8, 79,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 24, 82,197, 6, - 0, 0, 0, 0,152, 77,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0, 0,240,194, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 15, 67, 0, 0,240,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, - 6, 0,160, 0,120, 0,143, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,195, 3, 0, 0,103, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,136,163, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 80,197, 6, 0, 0, 0, 0,120, 80,197, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,120, 80,197, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, - 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, - 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,101,119, 32, - 83, 99,114,101,101,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255, -143, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24, 82,197, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 40, 85,197, 6, 0, 0, 0, 0, 8, 79,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0,128,178, 67, 0, 0, 37,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0, 37,195, 0, 0, 0, 0,143, 0, 0, 0, -160, 0, 0, 0, 0, 0, 0, 0,164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -142, 0, 0, 0, 0, 0, 0, 0,164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0,165, 0,143, 0,165, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 3, 0, 0,103, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,133,163, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,136, 83,197, 6, 0, 0, 0, 0,136, 83,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,136, 83,197, 6, - 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,255,143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40, 85,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,152, 86,197, 6, - 0, 0, 0, 0, 24, 82,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64,116,196, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32, 67, 0,192,111,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -159, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0, 18, 0, 0, 0,208, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 8, 0, 0, 0, 2, 0, 3, 3, 0, 0, 2, 0, - 6, 0,160, 0,209, 3,160, 0,191, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,195, 3, 0, 0,103, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,139,163, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152, 86,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 8, 88,197, 6, - 0, 0, 0, 0, 40, 85,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 32,193, 0, 0, 32, 65, 0, 0, 0, 0, - 0, 0,122, 67, 0, 0, 32,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,164, 0, 0, 0, 18, 0, 0, 0, -167, 3, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,167, 3, 0, 0, 18, 0, 0, 0,164, 0, 0, 0, 0, 0,128, 0, - 0, 0,128, 0, 0,124,146, 72,255,255,127,127, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, - 0, 0,168, 3,165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -167, 3, 0, 0,195, 3, 0, 0,103, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 3,165, 0, - 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,132,163, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8, 88,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,152, 86,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,255, - 0, 0,128,127, 0, 0,128,255, 0, 0,128,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 2, 0, 0, 0, 0, 0, 0,165, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, - 10, 0,104, 2,165, 0,104, 2,165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,131,163, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 48, 1, 0, 0,120, 89,197, 6, 0, 0, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,216, 93,197, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,200, 0, 0, - 0, 0, 1, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248, 90,197, 6, 0, 0, 0, 0,215, 0, 0, 0, - 1, 0, 0, 0,104, 92,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,146, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, - 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,125, 0, 0, 0,150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104, 92,197, 6, 0, 0, 0, 0,215, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 90,197, 6, 0, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, - 0, 0, 72, 66, 88,218,103,194, 40,147,141, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 18, 0, 0, 0, -208, 3, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, - 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,127, 7,209, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,151, 0, 0, 0,103, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,127, 7,209, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0,216, 93,197, 6, 0, 0, 0, 0,190, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 89,197, 6, 0, 0, 0, 0,248, 90,197, 6, 0, 0, 0, 0,104, 92,197, 6, - 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 1, 0, 0, 0, 83, 78, 0, 0, 8, 1, 0, 0,136, 95,197, 6, - 0, 0, 0, 0,210, 0, 0, 0, 1, 0, 0, 0,248,174,197, 6, 0, 0, 0, 0,136, 12,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 83, 99,114,105,112,116,105,110,103, 0,103, 46, 48, 48, 49, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,216, 96,197, 6, 0, 0, 0, 0,136,102,197, 6, 0, 0, 0, 0,248,102,197, 6, 0, 0, 0, 0, 40,112,197, 6, - 0, 0, 0, 0,152,112,197, 6, 0, 0, 0, 0,168,167,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216, 96,197, 6, - 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 72, 97,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72, 97,197, 6, 0, 0, 0, 0,211, 0, 0, 0, - 1, 0, 0, 0,184, 97,197, 6, 0, 0, 0, 0,216, 96,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184, 97,197, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 40, 98,197, 6, - 0, 0, 0, 0, 72, 97,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0, 40, 98,197, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,152, 98,197, 6, 0, 0, 0, 0,184, 97,197, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152, 98,197, 6, - 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 8, 99,197, 6, 0, 0, 0, 0, 40, 98,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,168, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8, 99,197, 6, 0, 0, 0, 0,211, 0, 0, 0, - 1, 0, 0, 0,120, 99,197, 6, 0, 0, 0, 0,152, 98,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,168, 3, - 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120, 99,197, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,232, 99,197, 6, - 0, 0, 0, 0, 8, 99,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,168, 3, 0, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,232, 99,197, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 88,100,197, 6, 0, 0, 0, 0,120, 99,197, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88,100,197, 6, - 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,200,100,197, 6, 0, 0, 0, 0,232, 99,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,104, 1, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200,100,197, 6, 0, 0, 0, 0,211, 0, 0, 0, - 1, 0, 0, 0, 56,101,197, 6, 0, 0, 0, 0, 88,100,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,104, 1, - 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56,101,197, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,168,101,197, 6, - 0, 0, 0, 0,200,100,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 2,104, 1, 1, 0, 0, 0, 68, 65, 84, 65, - 32, 0, 0, 0,168,101,197, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 24,102,197, 6, 0, 0, 0, 0, 56,101,197, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,236, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24,102,197, 6, - 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,136,102,197, 6, 0, 0, 0, 0,168,101,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,126, 7,236, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136,102,197, 6, 0, 0, 0, 0,211, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,102,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 2,168, 3, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,102,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,104,103,197, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 97,197, 6, 0, 0, 0, 0,184, 97,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,103,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,216,103,197, 6, - 0, 0, 0, 0,248,102,197, 6, 0, 0, 0, 0, 72, 97,197, 6, 0, 0, 0, 0,152, 98,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,103,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 72,104,197, 6, - 0, 0, 0, 0,104,103,197, 6, 0, 0, 0, 0,184, 97,197, 6, 0, 0, 0, 0, 8, 99,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,104,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,184,104,197, 6, - 0, 0, 0, 0,216,103,197, 6, 0, 0, 0, 0,152, 98,197, 6, 0, 0, 0, 0, 8, 99,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,104,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 40,105,197, 6, - 0, 0, 0, 0, 72,104,197, 6, 0, 0, 0, 0, 8, 99,197, 6, 0, 0, 0, 0,120, 99,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,105,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,152,105,197, 6, - 0, 0, 0, 0,184,104,197, 6, 0, 0, 0, 0, 40, 98,197, 6, 0, 0, 0, 0,232, 99,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,105,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 8,106,197, 6, - 0, 0, 0, 0, 40,105,197, 6, 0, 0, 0, 0,216, 96,197, 6, 0, 0, 0, 0, 88,100,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,106,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,120,106,197, 6, - 0, 0, 0, 0,152,105,197, 6, 0, 0, 0, 0,152, 98,197, 6, 0, 0, 0, 0, 88,100,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,106,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,232,106,197, 6, - 0, 0, 0, 0, 8,106,197, 6, 0, 0, 0, 0,120, 99,197, 6, 0, 0, 0, 0,200,100,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,106,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 88,107,197, 6, - 0, 0, 0, 0,120,106,197, 6, 0, 0, 0, 0,232, 99,197, 6, 0, 0, 0, 0,200,100,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,107,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,200,107,197, 6, - 0, 0, 0, 0,232,106,197, 6, 0, 0, 0, 0, 88,100,197, 6, 0, 0, 0, 0, 56,101,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,107,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 56,108,197, 6, - 0, 0, 0, 0, 88,107,197, 6, 0, 0, 0, 0,200,100,197, 6, 0, 0, 0, 0, 56,101,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,108,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,168,108,197, 6, - 0, 0, 0, 0,200,107,197, 6, 0, 0, 0, 0,232, 99,197, 6, 0, 0, 0, 0,168,101,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,108,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 24,109,197, 6, - 0, 0, 0, 0, 56,108,197, 6, 0, 0, 0, 0,120, 99,197, 6, 0, 0, 0, 0,168,101,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,109,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,136,109,197, 6, - 0, 0, 0, 0,168,108,197, 6, 0, 0, 0, 0, 8, 99,197, 6, 0, 0, 0, 0, 24,102,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,109,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,248,109,197, 6, - 0, 0, 0, 0, 24,109,197, 6, 0, 0, 0, 0, 40, 98,197, 6, 0, 0, 0, 0, 24,102,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,109,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,104,110,197, 6, - 0, 0, 0, 0,136,109,197, 6, 0, 0, 0, 0,168,101,197, 6, 0, 0, 0, 0, 24,102,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,110,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,216,110,197, 6, - 0, 0, 0, 0,248,109,197, 6, 0, 0, 0, 0,152, 98,197, 6, 0, 0, 0, 0,136,102,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,110,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 72,111,197, 6, - 0, 0, 0, 0,104,110,197, 6, 0, 0, 0, 0,120, 99,197, 6, 0, 0, 0, 0,136,102,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,111,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,184,111,197, 6, - 0, 0, 0, 0,216,110,197, 6, 0, 0, 0, 0, 56,101,197, 6, 0, 0, 0, 0,136,102,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,111,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 40,112,197, 6, - 0, 0, 0, 0, 72,111,197, 6, 0, 0, 0, 0, 88,100,197, 6, 0, 0, 0, 0,200,100,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,112,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,184,111,197, 6, 0, 0, 0, 0,216, 96,197, 6, 0, 0, 0, 0,232, 99,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,152,112,197, 6, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,104,116,197, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 98,197, 6, 0, 0, 0, 0, 72, 97,197, 6, 0, 0, 0, 0,184, 97,197, 6, - 0, 0, 0, 0, 8, 99,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,169, 3, 0, 0, - 5, 4, 0, 0, 7, 7,127, 7, 93, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,174,197, 6, - 0, 0, 0, 0,104,174,197, 6, 0, 0, 0, 0,136,113,197, 6, 0, 0, 0, 0,248,114,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,136,113,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,248,114,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, - 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,236, 3, 0, 0, - 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,248,114,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,113,197, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0,192,239, 68, 0, 0, 0, 0, 0, 0, 28, 66, 0, 0, 0, 0, 0,192,237, 68, 0, 0, 0, 0, - 0, 0,134, 66,110, 7, 0, 0,127, 7, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,109, 7, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 2, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,127, 7, 67, 0,110, 7, - 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,169, 3, 0, 0, -235, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0,104,116,197, 6, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,248,140,197, 6, 0, 0, 0, 0,152,112,197, 6, - 0, 0, 0, 0,232, 99,197, 6, 0, 0, 0, 0,168,101,197, 6, 0, 0, 0, 0, 24,102,197, 6, 0, 0, 0, 0, 40, 98,197, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,235, 2, 0, 0, 4, 4,142, 1, -236, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,139,197, 6, 0, 0, 0, 0,184,139,197, 6, - 0, 0, 0, 0, 88,117,197, 6, 0, 0, 0, 0,200,118,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,117,197, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,200,118,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,148, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,199, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -141, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,198, 67, 0, 0,200, 65, 0,128,198, 67, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,142, 1, 26, 0,142, 1, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,126, 7, 0, 0,210, 2, 0, 0,235, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,118,197, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,117,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0,128,198, 67, 0, 0, 61,196, 0, 0, 0, 0, 0, 0, 0, 0,254,127,190, 67,254,127, 52,196, 0, 0, 0, 0,125, 1, 0, 0, -142, 1, 0, 0, 0, 0, 0, 0,209, 2, 0, 0, 0, 0, 0, 0,126, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, -124, 1, 0, 0, 0, 0, 0, 0,209, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,142, 1,210, 2,125, 1,210, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,209, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 1,210, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 56,120,197, 6, 0, 0, 0, 0, 24,138,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56,120,197, 6, - 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,216,121,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0,120, 97,113, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 8,122,113, 5, 0, 0, 0, 0,136, 92,113, 5, + 0, 0, 0, 0,152, 75,113, 5, 0, 0, 0, 0,120, 76,113, 5, 0, 0, 0, 0, 40, 75,113, 5, 0, 0, 0, 0, 8, 76,113, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 93, 0, 0, 0,233, 3, 0, 0, 4, 4, 94, 1, +141, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,120,113, 5, 0, 0, 0, 0,200,120,113, 5, + 0, 0, 0, 0,104, 98,113, 5, 0, 0, 0, 0,216, 99,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104, 98,113, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,216, 99,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,148, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,175, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 93, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,174, 67, 0, 0,200, 65, 0,128,174, 67, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 94, 1, 26, 0, 94, 1, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0,208, 3, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216, 99,113, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 98,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0,128,174, 67, 0,128, 92,196, 0, 0, 0, 0, 0, 0, 0, 0,255,127,166, 67,255,191, 92,196, 0, 0, 0, 0, 77, 1, 0, 0, + 94, 1, 0, 0, 0, 0, 0, 0,114, 3, 0, 0, 0, 0, 0, 0, 82, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 76, 1, 0, 0, 0, 0, 0, 0,114, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 94, 1,115, 3, 77, 1,115, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 93, 0, 0, 0,207, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 1,115, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 72,101,113, 5, 0, 0, 0, 0, 40,119,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72,101,113, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232,102,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255,124, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 76, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216,121,197, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,120,123,197, 6, - 0, 0, 0, 0, 56,120,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,232,102,113, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,136,104,113, 5, + 0, 0, 0, 0, 72,101,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100, 101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, -124, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 76, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,120,123,197, 6, - 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 24,125,197, 6, 0, 0, 0, 0,216,121,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,136,104,113, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40,106,113, 5, 0, 0, 0, 0,232,102,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255,124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24,125,197, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,184,126,197, 6, - 0, 0, 0, 0,120,123,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 40,106,113, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,200,107,113, 5, + 0, 0, 0, 0,136,104,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101, 110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, -124, 1,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 76, 1,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,184,126,197, 6, - 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 88,128,197, 6, 0, 0, 0, 0, 24,125,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,200,107,113, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,104,109,113, 5, 0, 0, 0, 0, 40,106,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105, 110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105, 110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254,124, 1, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, 76, 1, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88,128,197, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,248,129,197, 6, - 0, 0, 0, 0,184,126,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,104,109,113, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8,111,113, 5, + 0, 0, 0, 0,200,107,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112, 108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254, -124, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 76, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248,129,197, 6, - 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,152,131,197, 6, 0, 0, 0, 0, 88,128,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8,111,113, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,168,112,113, 5, 0, 0, 0, 0,104,109,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,254,124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,254, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152,131,197, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 56,133,197, 6, - 0, 0, 0, 0,248,129,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168,112,113, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 72,114,113, 5, + 0, 0, 0, 0, 8,111,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102, 111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,253, -124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56,133,197, 6, - 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,216,134,197, 6, 0, 0, 0, 0,152,131,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72,114,113, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232,115,113, 5, 0, 0, 0, 0,168,112,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101, 115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101, 115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,253,124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,253, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216,134,197, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,120,136,197, 6, - 0, 0, 0, 0, 56,133,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,232,115,113, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,136,117,113, 5, + 0, 0, 0, 0, 72,114,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253, -124, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 76, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,120,136,197, 6, - 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 24,138,197, 6, 0, 0, 0, 0,216,134,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,136,117,113, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40,119,113, 5, 0, 0, 0, 0,232,115,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,253,124, 1,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,253, 76, 1,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24,138,197, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,120,136,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 40,119,113, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,136,117,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,253, -124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,184,139,197, 6, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,200,120,113, 5, 0, 0, 0, 0,179, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4862,77 +1009,77 @@ char datatoc_startup_blend[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,248,140,197, 6, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,136,154,197, 6, - 0, 0, 0, 0,104,116,197, 6, 0, 0, 0, 0, 56,101,197, 6, 0, 0, 0, 0,136,102,197, 6, 0, 0, 0, 0,120, 99,197, 6, - 0, 0, 0, 0,200,100,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0,105, 1, 0, 0, -167, 3, 0, 0, 1, 1,247, 2, 63, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,152,197, 6, - 0, 0, 0, 0,216,152,197, 6, 0, 0, 0, 0,232,141,197, 6, 0, 0, 0, 0,168,147,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 8,122,113, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,152,135,113, 5, + 0, 0, 0, 0,120, 97,113, 5, 0, 0, 0, 0, 56, 78,113, 5, 0, 0, 0, 0,200, 77,113, 5, 0, 0, 0, 0, 88, 77,113, 5, + 0, 0, 0, 0,168, 78,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, +139, 1, 0, 0, 1, 1, 27, 3,140, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,133,113, 5, + 0, 0, 0, 0,232,133,113, 5, 0, 0, 0, 0,248,122,113, 5, 0, 0, 0, 0,184,128,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,232,141,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 88,143,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 61, 68, 0, 0, 0, 0, + 40, 1, 0, 0,248,122,113, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,104,124,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 70, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,246, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128, 61, 68, 0, 0,200, 65, 0,128, 61, 68, - 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,247, 2, 26, 0,247, 2, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0,105, 1, 0, 0, -130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 26, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128, 70, 68, 0, 0,200, 65, 0,128, 70, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 27, 3, 26, 0, 27, 3, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 88,143,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,200,144,197, 6, 0, 0, 0, 0,232,141,197, 6, + 40, 1, 0, 0,104,124,113, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,216,125,113, 5, 0, 0, 0, 0,248,122,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, - 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,249, 2, 0, 0,131, 1, 0, 0, -167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 37, 2, 0, 0, 5, 0, 3, 0, 1, 0, + 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, 5, 3, 0, 0, 26, 0, 0, 0, +139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,114, 1, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,200,144,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 56,146,197, 6, 0, 0, 0, 0, 88,143,197, 6, + 40, 1, 0, 0,216,125,113, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 72,127,113, 5, 0, 0, 0, 0,104,124,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0, -102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0,131, 1, 0, 0, -131, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, +102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0, 56,146,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,168,147,197, 6, 0, 0, 0, 0,200,144,197, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, - 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0, -104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,131, 1, 0, 0, -167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, + 40, 1, 0, 0, 72,127,113, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,184,128,113, 5, 0, 0, 0, 0,216,125,113, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,192,108,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0,184,195, + 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,130, 1,163, 0, +112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0, +139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 40, 1, 0, 0,168,147,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,146,197, 6, + 40, 1, 0, 0,184,128,113, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,127,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0,131, 1, 0, 0, -167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 37, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0, +139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 3,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,149,197, 6, 0, 0, 0, 0, 68, 65, 84, 65, -112, 3, 0, 0, 24,149,197, 6, 0, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 74,141,193, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, - 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,225,215,163,188, 0, 0, 0, 0, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, - 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, - 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, - 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,178,157,229, 62, 30,132, 27,191,222,160, 81,191, -184,158, 81,191,117, 90,127, 63,166,235,149, 62, 9, 46,185, 62, 35, 44,185, 62,145,180,109,188,212, 60,173, 63,129, 63,228,190, - 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, - 0,160, 32,182,252, 5,136,190, 43, 33, 3, 62,235,135, 23, 63, 0, 0, 96, 53,215,104, 25,196,133,132,135, 67, 37, 9,167,195, -136,252, 71,194, 3, 54, 25, 68,158, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, - 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,178,157,229, 62, 30,132, 27,191,222,160, 81,191, -184,158, 81,191,117, 90,127, 63,166,235,149, 62, 9, 46,185, 62, 35, 44,185, 62,145,180,109,188,212, 60,173, 63,129, 63,228,190, - 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,130,113, 5, 0, 0, 0, 0, 68, 65, 84, 65, +112, 3, 0, 0, 40,130,113, 5, 0, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 93,101,230, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 30,133,119, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 65,128,191, + 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 72, 1, 77,190, 0, 0, 0, 0,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, + 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, + 0, 0, 0, 0, 90, 38,173,190,254,221,192,190,152, 9, 52,193, 0, 0,128, 63,223,149, 47, 63, 55, 70, 58, 63,192, 56, 49,188, + 0, 0, 0, 0, 87,126,162,190,228,251,159, 62, 56, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,150, 84, 28,191, 50,247,227, 62, + 0, 0, 0, 0,110,101,239, 64,151, 62,208,192, 77,255,170, 64, 0, 0,128, 63, 42, 6,158, 63, 99, 28,157,191,244,250, 39,191, + 8,165, 39,191,211,164,167, 63, 55,175,154, 63,180,164, 28, 63,149, 84, 28, 63, 39,127,159,188,135,157, 93, 64, 8,108,228,190, + 50,247,227,190, 4,213, 27,191,122,122,186,191,216, 49, 49, 65,152, 9, 52, 65, 25, 25,195, 62,176,249,206, 62,128,238,196,187, + 0, 0,192,179, 55, 15,168,189,201,118,165, 61,152, 15,109, 62, 0, 0,152, 51,211,120, 21,194,144, 5, 2, 66, 6,136,213,193, +193,214,159,192,219, 38, 19, 66,196,173,255,193,154,101,210, 65,173, 40,160, 64,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, + 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, + 0, 0, 0, 0, 90, 38,173,190,254,221,192,190,152, 9, 52,193, 0, 0,128, 63, 42, 6,158, 63, 99, 28,157,191,244,250, 39,191, + 8,165, 39,191,211,164,167, 63, 55,175,154, 63,180,164, 28, 63,149, 84, 28, 63, 39,127,159,188,135,157, 93, 64, 8,108,228,190, + 50,247,227,190, 4,213, 27,191,122,122,186,191,216, 49, 49, 65,152, 9, 52, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4940,281 +1087,119 @@ char datatoc_startup_blend[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 86, 45, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 46, 86, 45, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 86, 45, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, - 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,107,227, 29, 59, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 30, 33, 12, 66, 86,152,137, 66,116, 27,126, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 96, 1, 0, 0,216,152,197, 6, 0, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,250,150, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 62,250,150, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,250,150, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,241, 22, 72, 63, 78,162,246,190, 44, 8, 90,190, + 3, 35,171,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 80, 49,183, 58, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,160, 65, 1, 2, 0, 0,255,255, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, + 1, 0, 0, 0, 0, 0,128, 63,190,133, 65, 66,100,212, 90, 66, 31,183,118, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 96, 1, 0, 0,232,133,113, 5, 0, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 65,205,204, 76, 62, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,200, 67,198, 6, + 0, 0, 0, 0, 0, 0, 32, 65,205,204, 76, 62, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,232, 1,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8,128, 0, - 0, 0, 12, 66, 0, 0,128, 63, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, -160, 0, 0, 0,136,154,197, 6, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,232,160,197, 6, 0, 0, 0, 0,248,140,197, 6, - 0, 0, 0, 0,216, 96,197, 6, 0, 0, 0, 0, 88,100,197, 6, 0, 0, 0, 0,200,100,197, 6, 0, 0, 0, 0,232, 99,197, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0,103, 1, 0, 0, 18, 18,240, 5, -104, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,159,197, 6, 0, 0, 0, 0, 24,159,197, 6, - 0, 0, 0, 0,120,155,197, 6, 0, 0, 0, 0,232,156,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,120,155,197, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,232,156,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,128,160, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232,156,197, 6, - 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,155,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0,224,189, 68, 0, 0, 0, 0, 0, 0, 51, 67, 0, 0, 0, 0, 0,224,187, 68, 0, 0, 0, 0, 0, 0,167, 67,223, 5, 0, 0, -240, 5, 0, 0, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -222, 5, 0, 0, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 2, 2, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,240, 5, 78, 1,223, 5, 78, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 26, 0, 0, 0,103, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 78, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +160, 0, 0, 0,152,135,113, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,232,140,113, 5, 0, 0, 0, 0, 8,122,113, 5, + 0, 0, 0, 0,232, 76,113, 5, 0, 0, 0, 0,184, 74,113, 5, 0, 0, 0, 0,120, 76,113, 5, 0, 0, 0, 0, 88, 77,113, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0,141, 1, 0, 0,233, 3, 0, 0, 16, 16, 32, 6, + 93, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,139,113, 5, 0, 0, 0, 0,104,139,113, 5, + 0, 0, 0, 0,136,136,113, 5, 0, 0, 0, 0,248,137,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,136,113, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,248,137,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,128, 66, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,196, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,195, 68, 0, 0,200, 65, 0,224,195, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 32, 6, 26, 0, 32, 6, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0,141, 1, 0, 0,166, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,158,197, 6, - 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0,200,158,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,200,158,197, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,136, 1, 0, 0, 24,159,197, 6, 0, 0, 0, 0, -194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,158,197, 6, 0, 0, 0, 0, - 88,158,197, 6, 0, 0, 0, 0, 62, 62, 62, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248,137,113, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,136,113, 5, 0, 0, 0, 0, 0, 0, 32,193, + 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68,128,195,217,195,192,225,108, 68, 96,240,187, 64, 62, 16,253, 67, 15, 6, 0, 0, + 32, 6, 0, 0, 18, 0, 0, 0, 66, 2, 0, 0, 0, 0, 0, 0, 14, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 14, 6, 0, 0, 18, 0, 0, 0, 66, 2, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,236, 81,184, 61, + 10,215, 19, 64, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 32, 6, 67, 2, 15, 6, 49, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 1, 0, 0,104,139,113, 5, + 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 19, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 10,206, 97, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0,232,140,113, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,135,113, 5, + 0, 0, 0, 0,248, 72,113, 5, 0, 0, 0, 0,232, 76,113, 5, 0, 0, 0, 0,200, 77,113, 5, 0, 0, 0, 0, 56, 78,113, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0,139, 1, 0, 0, 6, 6, 4, 3, +140, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,146,113, 5, 0, 0, 0, 0, 40,146,113, 5, + 0, 0, 0, 0,216,141,113, 5, 0, 0, 0, 0,184,144,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216,141,113, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 72,143,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,215, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 65, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,112,121,116,104,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 0, 0, 8, 4, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,232,160,197, 6, 0, 0, 0, 0, -214, 0, 0, 0, 1, 0, 0, 0,168,167,197, 6, 0, 0, 0, 0,136,154,197, 6, 0, 0, 0, 0,168,101,197, 6, 0, 0, 0, 0, -120, 99,197, 6, 0, 0, 0, 0, 8, 99,197, 6, 0, 0, 0, 0, 24,102,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -241, 5, 0, 0,126, 7, 0, 0,237, 2, 0, 0,167, 3, 0, 0, 3, 3,142, 1,187, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,184,164,197, 6, 0, 0, 0, 0,184,164,197, 6, 0, 0, 0, 0,216,161,197, 6, 0, 0, 0, 0, - 72,163,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216,161,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, - 72,163,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0,199, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,141, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0,128,198, 67, 0, 0,200, 65, 0,128,198, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, - 4, 0, 12, 0, 10, 0,142, 1, 26, 0,142, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -241, 5, 0, 0,126, 7, 0, 0,237, 2, 0, 0, 6, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -142, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 64, 68, 0, 0,200, 65, 0,192, 64, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 4, 3, 26, 0, 4, 3, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72,163,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,216,161,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0,244,194, 0, 0, 0, 0, - 0, 0, 0, 0, 0,128,190, 67, 0, 0, 15,195, 0, 0, 0, 0,125, 1, 0, 0,142, 1, 0, 0, 18, 0, 0, 0,160, 0, 0, 0, - 0, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 18, 0, 0, 0,160, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 6, 0, 0, 2, 0, 3, 3, - 0, 0, 12, 4, 6, 0,142, 1,161, 0,125, 1,143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -241, 5, 0, 0,126, 7, 0, 0, 7, 3, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -142, 1,161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72,143,113, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,184,144,113, 5, 0, 0, 0, 0,216,141,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,184,164,197, 6, 0, 0, 0, 0,183, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184,144,113, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,143,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 0, 0,129,191, 0,128, 0, 64, 0, 0,100,190, 0,128,156, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,166,197, 6, 0, 0, 0, 0, + 4, 3, 0, 0, 0, 0, 0, 0,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, - 24,166,197, 6, 0, 0, 0, 0,237, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0,120,166,197, 6, 0, 0, 0, 0, - 68, 65, 84, 65,224, 0, 0, 0,120,166,197, 6, 0, 0, 0, 0,236, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -104, 38,198, 6, 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0,104, 38,198, 6, 0, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, -104, 38,198, 6, 0, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, -248, 64,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,104, 74,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 8,129,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 72, 88,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 88,110,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,168, 81,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 56, 60,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,200, 67,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 40, 59,198, 6, 0, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0,104, 38,198, 6, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, -168,167,197, 6, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,160,197, 6, 0, 0, 0, 0, - 88,100,197, 6, 0, 0, 0, 0,152, 98,197, 6, 0, 0, 0, 0,136,102,197, 6, 0, 0, 0, 0, 56,101,197, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0,105, 1, 0, 0,167, 3, 0, 0, 9, 9,248, 2, 63, 2, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,171,197, 6, 0, 0, 0, 0,120,171,197, 6, 0, 0, 0, 0, -152,168,197, 6, 0, 0, 0, 0, 8,170,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152,168,197, 6, 0, 0, 0, 0, -215, 0, 0, 0, 1, 0, 0, 0, 8,170,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 62, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 61, 68, 0, 0,200, 65, 0,192, 61, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,248, 2, 26, 0,248, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0,105, 1, 0, 0,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,248, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8,170,197, 6, 0, 0, 0, 0, -215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,168,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,189, 68, - 0, 0, 0, 0, 0,192, 22, 68,248,150, 23, 68, 8, 41,100, 68, 46,224, 62, 67,233, 15,206, 67, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0, - 0, 0, 0, 0, 36, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, - 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, 10, 0,248, 2, 37, 2,248, 2, 37, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0,131, 1, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,248, 2, 37, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 2, 0, 0,120,171,197, 6, 0, 0, 0, 0, -186, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,231, 1, 0, 0,243, 1, 0, 0,122, 1, 0, 0,124, 1, 0, 0, -231, 1, 0, 0,243, 1, 0, 0, 4, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 8, 1, 0, 0,248,174,197, 6, 0, 0, 0, 0,210, 0, 0, 0, 1, 0, 0, 0, - 24,246,197, 6, 0, 0, 0, 0,136, 95,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 83, 82, 85, 86, 32, 69,100,105,116,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,176,197, 6, 0, 0, 0, 0, - 88,179,197, 6, 0, 0, 0, 0,200,179,197, 6, 0, 0, 0, 0, 40,184,197, 6, 0, 0, 0, 0,152,184,197, 6, 0, 0, 0, 0, -184,228,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72,176,197, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, -184,176,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,184,176,197, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 40,177,197, 6, 0, 0, 0, 0, - 72,176,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, - 40,177,197, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,152,177,197, 6, 0, 0, 0, 0,184,176,197, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152,177,197, 6, 0, 0, 0, 0, -211, 0, 0, 0, 1, 0, 0, 0, 8,178,197, 6, 0, 0, 0, 0, 40,177,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,178,197, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, -120,178,197, 6, 0, 0, 0, 0,152,177,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234, 3, 1, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,120,178,197, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,232,178,197, 6, 0, 0, 0, 0, - 8,178,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -232,178,197, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 88,179,197, 6, 0, 0, 0, 0,120,178,197, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,200, 3,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88,179,197, 6, 0, 0, 0, 0, -211, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,178,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -200, 3, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,179,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, - 56,180,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,176,197, 6, 0, 0, 0, 0, 40,177,197, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,180,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, -168,180,197, 6, 0, 0, 0, 0,200,179,197, 6, 0, 0, 0, 0,184,176,197, 6, 0, 0, 0, 0, 8,178,197, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,180,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, - 24,181,197, 6, 0, 0, 0, 0, 56,180,197, 6, 0, 0, 0, 0, 40,177,197, 6, 0, 0, 0, 0,120,178,197, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,181,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, -136,181,197, 6, 0, 0, 0, 0,168,180,197, 6, 0, 0, 0, 0, 8,178,197, 6, 0, 0, 0, 0,120,178,197, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,181,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, -248,181,197, 6, 0, 0, 0, 0, 24,181,197, 6, 0, 0, 0, 0, 8,178,197, 6, 0, 0, 0, 0,232,178,197, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,181,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, -104,182,197, 6, 0, 0, 0, 0,136,181,197, 6, 0, 0, 0, 0, 72,176,197, 6, 0, 0, 0, 0, 88,179,197, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,182,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, -216,182,197, 6, 0, 0, 0, 0,248,181,197, 6, 0, 0, 0, 0, 72,176,197, 6, 0, 0, 0, 0, 8,178,197, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,182,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, - 72,183,197, 6, 0, 0, 0, 0,104,182,197, 6, 0, 0, 0, 0,232,178,197, 6, 0, 0, 0, 0, 88,179,197, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,183,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, -184,183,197, 6, 0, 0, 0, 0,216,182,197, 6, 0, 0, 0, 0,120,178,197, 6, 0, 0, 0, 0,232,178,197, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,183,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, - 40,184,197, 6, 0, 0, 0, 0, 72,183,197, 6, 0, 0, 0, 0,152,177,197, 6, 0, 0, 0, 0, 88,179,197, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,184,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,184,183,197, 6, 0, 0, 0, 0,152,177,197, 6, 0, 0, 0, 0,120,178,197, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,152,184,197, 6, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, -104,188,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,178,197, 6, 0, 0, 0, 0,184,176,197, 6, 0, 0, 0, 0, - 40,177,197, 6, 0, 0, 0, 0,120,178,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, -235, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -136,245,197, 6, 0, 0, 0, 0,136,245,197, 6, 0, 0, 0, 0,136,185,197, 6, 0, 0, 0, 0,248,186,197, 6, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,136,185,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,248,186,197, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, - 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, - 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, -235, 3, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 33, 0, 0, 40,146,113, 5, + 0, 0, 0, 0,184, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 65, 0, 0, 0, 0, +154,153,153, 62, 0, 0, 0, 0,100, 0, 0, 0,154,153,153, 62,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,248,186,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -136,185,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, - 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, - 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 5, 4, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,160, 0, 0, 0,104,188,197, 6, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,184,228,197, 6, 0, 0, 0, 0, -152,184,197, 6, 0, 0, 0, 0, 72,176,197, 6, 0, 0, 0, 0, 8,178,197, 6, 0, 0, 0, 0,232,178,197, 6, 0, 0, 0, 0, - 88,179,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 3, 0, 0, 0, 0, 0, 0,233, 3, 0, 0, - 6, 6,200, 3,234, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,195,197, 6, 0, 0, 0, 0, - 72,195,197, 6, 0, 0, 0, 0, 88,189,197, 6, 0, 0, 0, 0,216,193,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 88,189,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,200,190,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,215, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,114, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,199, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,113, 68, 0, 0,200, 65, 0,192,113, 68, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,200, 3, 26, 0,200, 3, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -200,190,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,216,193,197, 6, 0, 0, 0, 0, 88,189,197, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 91, 67, 0,192,115,196, 0, 0, 0, 0, 0, 0, 0, 0,254,255, 74, 67,254,255,115,196, 0, 0, 0, 0, -203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0,207, 3, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0,207, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0,208, 3,203, 0,208, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,219, 0, 0, 0, 26, 0, 0, 0,233, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0,208, 3, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 56,192,197, 6, 0, 0, 0, 0, 56,192,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, - 56,192,197, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,255,202, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216,193,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,200,190,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, - 51, 51, 43,191,154,153,213, 63, 51, 51,131,191,154,153, 1, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,236, 2, 0, 0, 0, 0, 0, 0,208, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -220, 0, 0, 0,199, 3, 0, 0, 26, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -236, 2,208, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 33, 0, 0, 72,195,197, 6, 0, 0, 0, 0,184, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 65, 0, 0, 0, 0,154,153,153, 62, 0, 0, 0, 0,100, 0, 0, 0, -154,153,153, 62,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5325,1343 +1310,5378 @@ char datatoc_startup_blend[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,184,228,197, 6, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,104,188,197, 6, 0, 0, 0, 0, 88,179,197, 6, 0, 0, 0, 0,232,178,197, 6, 0, 0, 0, 0, -120,178,197, 6, 0, 0, 0, 0,152,177,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,201, 3, 0, 0,126, 7, 0, 0, - 0, 0, 0, 0,233, 3, 0, 0, 1, 1,182, 3,234, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -216,243,197, 6, 0, 0, 0, 0,216,243,197, 6, 0, 0, 0, 0,168,229,197, 6, 0, 0, 0, 0,168,238,197, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,168,229,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 24,231,197, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,109, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,181, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 64,109, 68, 0, 0,200, 65, - 0, 64,109, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,182, 3, - 26, 0,182, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,201, 3, 0, 0,126, 7, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,182, 3, 26, 0, 0, 0, 1, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 24,231,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 40,234,197, 6, 0, 0, 0, 0, -168,229,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 67, 0, 0, 86,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, - 0, 0, 86,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 87, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, - 88, 3,143, 0, 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,201, 3, 0, 0,104, 4, 0, 0, -146, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 88, 3, 0, 0, 5, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,232,197, 6, 0, 0, 0, 0,136,232,197, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 88, 1, 0, 0,136,232,197, 6, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, - 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 84, -111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233,253,143, 0,255, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40,234,197, 6, 0, 0, 0, 0, -215, 0, 0, 0, 1, 0, 0, 0, 56,237,197, 6, 0, 0, 0, 0, 24,231,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 67, - 0, 0,242,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 91, 90,242,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, - 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, - 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, - 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,201, 3, 0, 0,104, 4, 0, 0, 26, 0, 0, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,160, 0,120, 0, 0, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -152,235,197, 6, 0, 0, 0, 0,152,235,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152,235,197, 6, 0, 0, 0, 0, -213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 79,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255,144, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0, 56,237,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,168,238,197, 6, 0, 0, 0, 0, - 40,234,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,126,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, -255,191,126,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, - 13, 4,163, 0,251, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,126, 7, 0, 0, - 26, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, - 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 1, 0, 0,168,238,197, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 56,237,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,105, 4, 0, 0,126, 7, 0, 0, - 26, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 3,208, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,240,197, 6, 0, 0, 0, 0, - 68, 65, 84, 65,112, 3, 0, 0, 24,240,197, 6, 0, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 72,246,172, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 28, 13,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 74,215, 76,190, 0, 0, 0, 0, 68,239,209, 62, 51,177,205,190, -184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, - 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 95,192, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63, -160, 84, 89,188, 0, 0, 0, 0, 52,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, - 43, 61,228, 62, 0, 0, 0, 0,188,173, 54, 64,136, 95,161,191,147,231,198, 63, 0, 0,128, 63,185,214, 13, 63,208,249,224,190, - 48,180, 81,191,184,158, 81,191,189,188,157, 63,140,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62,241,213,146,188,206,156,122, 63, -138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0,100, 98, 82, 64, 0, 25, 95, 64,121, 92,155, 62,151,198, 44, 63, -192,214, 32,188, 0, 0, 40,180,195, 15,188,190,132, 75, 53, 62,216,125, 81, 63, 0, 0,192,179,115, 77,100,193, 17,173,201, 64, -181,148,248,192,203,247,159,192,233, 74, 87, 65,247, 46,190,192, 88,106,234, 64, 45, 8,160, 64, 68,239,209, 62, 51,177,205,190, -184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, - 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 95,192, 0, 0,128, 63,185,214, 13, 63,208,249,224,190, - 48,180, 81,191,184,158, 81,191,189,188,157, 63,140,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62,241,213,146,188,206,156,122, 63, -138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0,100, 98, 82, 64, 0, 25, 95, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,201,250, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,201,250, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -248,201,250, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190, -237,203,148,190, 3,236,234,190, 0, 25, 95, 64, 0, 25, 95, 64, 0, 0, 0, 0, 0, 0, 0, 0,114,145,245, 58, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 30, 33, 12, 66, 85,152,137, 66,116, 27,126, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 1, 0, 0,216,243,197, 6, 0, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65,205,204, 76, 62, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0, -200, 67,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, - 8, 8,128, 0, 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 83, 78, 0, 0, 8, 1, 0, 0, 24,246,197, 6, 0, 0, 0, 0,210, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -248,174,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 86,105,100,101,111, 32, - 69,100,105,116,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,247,197, 6, 0, 0, 0, 0, 56,252,197, 6, 0, 0, 0, 0, -168,252,197, 6, 0, 0, 0, 0, 24, 4,198, 6, 0, 0, 0, 0,136, 4,198, 6, 0, 0, 0, 0,232, 29,198, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,104,247,197, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,216,247,197, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -216,247,197, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 72,248,197, 6, 0, 0, 0, 0,104,247,197, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72,248,197, 6, 0, 0, 0, 0, -211, 0, 0, 0, 1, 0, 0, 0,184,248,197, 6, 0, 0, 0, 0,216,247,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -240, 4,222, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,248,197, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, - 40,249,197, 6, 0, 0, 0, 0, 72,248,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0, 40,249,197, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,152,249,197, 6, 0, 0, 0, 0, -184,248,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, -152,249,197, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 8,250,197, 6, 0, 0, 0, 0, 40,249,197, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,240, 4,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,250,197, 6, 0, 0, 0, 0, -211, 0, 0, 0, 1, 0, 0, 0,120,250,197, 6, 0, 0, 0, 0,152,249,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -240, 4, 92, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120,250,197, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, -232,250,197, 6, 0, 0, 0, 0, 8,250,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 32, 0, 0, 0,232,250,197, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 88,251,197, 6, 0, 0, 0, 0, -120,250,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 2,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, - 88,251,197, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,200,251,197, 6, 0, 0, 0, 0,232,250,197, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200,251,197, 6, 0, 0, 0, 0, -211, 0, 0, 0, 1, 0, 0, 0, 56,252,197, 6, 0, 0, 0, 0, 88,251,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48, 2, 92, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56,252,197, 6, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,200,251,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 68, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,168,252,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 24,253,197, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,216,247,197, 6, 0, 0, 0, 0, 72,248,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 24,253,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,136,253,197, 6, 0, 0, 0, 0, -168,252,197, 6, 0, 0, 0, 0,216,247,197, 6, 0, 0, 0, 0, 40,249,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,136,253,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,248,253,197, 6, 0, 0, 0, 0, - 24,253,197, 6, 0, 0, 0, 0, 72,248,197, 6, 0, 0, 0, 0,152,249,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,248,253,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,104,254,197, 6, 0, 0, 0, 0, -136,253,197, 6, 0, 0, 0, 0, 40,249,197, 6, 0, 0, 0, 0,152,249,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,104,254,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,216,254,197, 6, 0, 0, 0, 0, -248,253,197, 6, 0, 0, 0, 0,152,249,197, 6, 0, 0, 0, 0, 8,250,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,216,254,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 72,255,197, 6, 0, 0, 0, 0, -104,254,197, 6, 0, 0, 0, 0,104,247,197, 6, 0, 0, 0, 0,120,250,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 72,255,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,184,255,197, 6, 0, 0, 0, 0, -216,254,197, 6, 0, 0, 0, 0, 40,249,197, 6, 0, 0, 0, 0,232,250,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,184,255,197, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 40, 0,198, 6, 0, 0, 0, 0, - 72,255,197, 6, 0, 0, 0, 0,120,250,197, 6, 0, 0, 0, 0, 88,251,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 40, 0,198, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,152, 0,198, 6, 0, 0, 0, 0, -184,255,197, 6, 0, 0, 0, 0, 88,251,197, 6, 0, 0, 0, 0,200,251,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,152, 0,198, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 8, 1,198, 6, 0, 0, 0, 0, - 40, 0,198, 6, 0, 0, 0, 0,232,250,197, 6, 0, 0, 0, 0,200,251,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 8, 1,198, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,120, 1,198, 6, 0, 0, 0, 0, -152, 0,198, 6, 0, 0, 0, 0, 8,250,197, 6, 0, 0, 0, 0, 56,252,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,120, 1,198, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,232, 1,198, 6, 0, 0, 0, 0, - 8, 1,198, 6, 0, 0, 0, 0,184,248,197, 6, 0, 0, 0, 0, 56,252,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,232, 1,198, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 88, 2,198, 6, 0, 0, 0, 0, -120, 1,198, 6, 0, 0, 0, 0,120,250,197, 6, 0, 0, 0, 0, 56,252,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 88, 2,198, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,200, 2,198, 6, 0, 0, 0, 0, -232, 1,198, 6, 0, 0, 0, 0,104,247,197, 6, 0, 0, 0, 0,184,248,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,200, 2,198, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 56, 3,198, 6, 0, 0, 0, 0, - 88, 2,198, 6, 0, 0, 0, 0,152,249,197, 6, 0, 0, 0, 0,232,250,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 56, 3,198, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,168, 3,198, 6, 0, 0, 0, 0, -200, 2,198, 6, 0, 0, 0, 0, 8,250,197, 6, 0, 0, 0, 0,200,251,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,168, 3,198, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 24, 4,198, 6, 0, 0, 0, 0, - 56, 3,198, 6, 0, 0, 0, 0, 40,249,197, 6, 0, 0, 0, 0, 88,251,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0, 24, 4,198, 6, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -168, 3,198, 6, 0, 0, 0, 0, 8,250,197, 6, 0, 0, 0, 0, 88,251,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,160, 0, 0, 0,136, 4,198, 6, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 88, 8,198, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 40,249,197, 6, 0, 0, 0, 0,216,247,197, 6, 0, 0, 0, 0, 72,248,197, 6, 0, 0, 0, 0, -152,249,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0,196, 2, 0, 0,222, 2, 0, 0, - 7, 7,241, 4, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 37,198, 6, 0, 0, 0, 0, -216, 37,198, 6, 0, 0, 0, 0,120, 5,198, 6, 0, 0, 0, 0,232, 6,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -120, 5,198, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,232, 6,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,128,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,158, 68, 0, 0, 0, 0, 0, 0,208, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0,158, 68, 0, 0,200, 65, 0, 0,158, 68, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,241, 4, 26, 0,241, 4, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0,196, 2, 0, 0,221, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -232, 6,198, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 5,198, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0, -112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 2, 0, 0,222, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, - 88, 8,198, 6, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 72, 13,198, 6, 0, 0, 0, 0,136, 4,198, 6, 0, 0, 0, 0, -104,247,197, 6, 0, 0, 0, 0,120,250,197, 6, 0, 0, 0, 0, 56,252,197, 6, 0, 0, 0, 0,184,248,197, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 15, 15,241, 4, 68, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 12,198, 6, 0, 0, 0, 0, 40, 12,198, 6, 0, 0, 0, 0, - 72, 9,198, 6, 0, 0, 0, 0,184, 10,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72, 9,198, 6, 0, 0, 0, 0, -215, 0, 0, 0, 1, 0, 0, 0,184, 10,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,140, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,158, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0, 0,158, 68, 0, 0,200, 65, 0, 0,158, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,241, 4, 26, 0,241, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,241, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184, 10,198, 6, 0, 0, 0, 0, -215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 9,198, 6, 0, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, - 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, - 18, 0, 0, 0, 41, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, - 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,241, 4, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 26, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,241, 4, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, 40, 12,198, 6, 0, 0, 0, 0, -190, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, - 72, 13,198, 6, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 56, 21,198, 6, 0, 0, 0, 0, 88, 8,198, 6, 0, 0, 0, 0, -120,250,197, 6, 0, 0, 0, 0, 88,251,197, 6, 0, 0, 0, 0, 8,250,197, 6, 0, 0, 0, 0, 56,252,197, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 69, 0, 0, 0, 91, 1, 0, 0, 8, 8,241, 4, 23, 1, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 19,198, 6, 0, 0, 0, 0,248, 19,198, 6, 0, 0, 0, 0, - 56, 14,198, 6, 0, 0, 0, 0,136, 18,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56, 14,198, 6, 0, 0, 0, 0, -215, 0, 0, 0, 1, 0, 0, 0,168, 15,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 26, 68, - 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,158, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0, 0,158, 68, 0, 0,200, 65, 0, 0,158, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,241, 4, 26, 0,241, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 69, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,241, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168, 15,198, 6, 0, 0, 0, 0, -215, 0, 0, 0, 1, 0, 0, 0, 24, 17,198, 6, 0, 0, 0, 0, 56, 14,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 67, - 0, 0,125,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 1, 0,125,195, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, - 0, 0, 0, 0,252, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, - 0, 0, 0, 0,252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, - 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0,253, 0,203, 0,253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 21, 4, 0, 0,240, 4, 0, 0, 95, 0, 0, 0, 91, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,220, 0,253, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24, 17,198, 6, 0, 0, 0, 0, -215, 0, 0, 0, 1, 0, 0, 0,136, 18,198, 6, 0, 0, 0, 0,168, 15,198, 6, 0, 0, 0, 0, 0, 0,112,196, 0, 0,112, 68, - 0, 0, 7,196, 0, 0, 7, 68, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 59, 70, 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71, - 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 4, 0, 0, 91, 1, 0, 0, 91, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 7, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136, 18,198, 6, 0, 0, 0, 0, -215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 17,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, - 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, - 18, 0, 0, 0,252, 0, 0, 0, 18, 0, 0, 0, 20, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 20, 4, 0, 0, - 18, 0, 0, 0,252, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 63, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66, -105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0, 21, 4,253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 4, 0, 0, 95, 0, 0, 0, 91, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 21, 4,253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,248, 19,198, 6, 0, 0, 0, 0, -180, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 8, 1, 0, 0, 40,180,113, 5, + 0, 0, 0, 0,210, 0, 0, 0, 1, 0, 0, 0,136,205,114, 5, 0, 0, 0, 0,168, 71,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 68,101,102, 97,117,108,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,120,181,113, 5, 0, 0, 0, 0, 40,187,113, 5, 0, 0, 0, 0,152,187,113, 5, 0, 0, 0, 0, 8,195,113, 5, + 0, 0, 0, 0,120,195,113, 5, 0, 0, 0, 0,136,173,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,172,125, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120,181,113, 5, + 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,232,181,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232,181,113, 5, 0, 0, 0, 0,211, 0, 0, 0, + 1, 0, 0, 0, 88,182,113, 5, 0, 0, 0, 0,120,181,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,211, 1, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88,182,113, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,200,182,113, 5, + 0, 0, 0, 0,232,181,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,138, 3,211, 1, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,200,182,113, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 56,183,113, 5, 0, 0, 0, 0, 88,182,113, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,138, 3, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56,183,113, 5, + 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,168,183,113, 5, 0, 0, 0, 0,200,182,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,184, 1, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168,183,113, 5, 0, 0, 0, 0,211, 0, 0, 0, + 1, 0, 0, 0, 24,184,113, 5, 0, 0, 0, 0, 56,183,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,138, 3,184, 1, + 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24,184,113, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,136,184,113, 5, + 0, 0, 0, 0,168,183,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252, 2, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,136,184,113, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,248,184,113, 5, 0, 0, 0, 0, 24,184,113, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252, 2,184, 1, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,184,113, 5, + 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,104,185,113, 5, 0, 0, 0, 0,136,184,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,252, 2,132, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104,185,113, 5, 0, 0, 0, 0,211, 0, 0, 0, + 1, 0, 0, 0,216,185,113, 5, 0, 0, 0, 0,248,184,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,138, 3,132, 1, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216,185,113, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 72,186,113, 5, + 0, 0, 0, 0,104,185,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0, 72,186,113, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,184,186,113, 5, 0, 0, 0, 0,216,185,113, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252, 2, 60, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,186,113, 5, + 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 40,187,113, 5, 0, 0, 0, 0, 72,186,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40,187,113, 5, 0, 0, 0, 0,211, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,186,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252, 2,140, 1, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,187,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 8,188,113, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,181,113, 5, 0, 0, 0, 0, 88,182,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,188,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,120,188,113, 5, + 0, 0, 0, 0,152,187,113, 5, 0, 0, 0, 0,232,181,113, 5, 0, 0, 0, 0, 56,183,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,188,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,232,188,113, 5, + 0, 0, 0, 0, 8,188,113, 5, 0, 0, 0, 0, 88,182,113, 5, 0, 0, 0, 0,168,183,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,188,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 88,189,113, 5, + 0, 0, 0, 0,120,188,113, 5, 0, 0, 0, 0, 56,183,113, 5, 0, 0, 0, 0,168,183,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,189,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,200,189,113, 5, + 0, 0, 0, 0,232,188,113, 5, 0, 0, 0, 0,120,181,113, 5, 0, 0, 0, 0, 24,184,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,189,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 56,190,113, 5, + 0, 0, 0, 0, 88,189,113, 5, 0, 0, 0, 0,200,182,113, 5, 0, 0, 0, 0, 24,184,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,190,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,168,190,113, 5, + 0, 0, 0, 0,200,189,113, 5, 0, 0, 0, 0, 56,183,113, 5, 0, 0, 0, 0,136,184,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,190,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 24,191,113, 5, + 0, 0, 0, 0, 56,190,113, 5, 0, 0, 0, 0,168,183,113, 5, 0, 0, 0, 0,136,184,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,191,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,136,191,113, 5, + 0, 0, 0, 0,168,190,113, 5, 0, 0, 0, 0, 24,184,113, 5, 0, 0, 0, 0,248,184,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,191,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,248,191,113, 5, + 0, 0, 0, 0, 24,191,113, 5, 0, 0, 0, 0,136,184,113, 5, 0, 0, 0, 0,248,184,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,191,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,104,192,113, 5, + 0, 0, 0, 0,136,191,113, 5, 0, 0, 0, 0,168,183,113, 5, 0, 0, 0, 0,104,185,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,192,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,216,192,113, 5, + 0, 0, 0, 0,248,191,113, 5, 0, 0, 0, 0,200,182,113, 5, 0, 0, 0, 0,104,185,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,192,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 72,193,113, 5, + 0, 0, 0, 0,104,192,113, 5, 0, 0, 0, 0,248,184,113, 5, 0, 0, 0, 0,104,185,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,193,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,184,193,113, 5, + 0, 0, 0, 0,216,192,113, 5, 0, 0, 0, 0,120,181,113, 5, 0, 0, 0, 0,216,185,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,193,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 40,194,113, 5, + 0, 0, 0, 0, 72,193,113, 5, 0, 0, 0, 0, 24,184,113, 5, 0, 0, 0, 0, 72,186,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,194,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,152,194,113, 5, + 0, 0, 0, 0,184,193,113, 5, 0, 0, 0, 0,216,185,113, 5, 0, 0, 0, 0, 72,186,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,194,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 8,195,113, 5, + 0, 0, 0, 0, 40,194,113, 5, 0, 0, 0, 0, 56,183,113, 5, 0, 0, 0, 0,216,185,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,195,113, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,152,194,113, 5, 0, 0, 0, 0,136,184,113, 5, 0, 0, 0, 0, 72,186,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,120,195,113, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 72,199,113, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,183,113, 5, 0, 0, 0, 0,232,181,113, 5, 0, 0, 0, 0, 88,182,113, 5, + 0, 0, 0, 0,168,183,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,138, 3, 0, 0,185, 1, 0, 0, +211, 1, 0, 0, 7, 7,139, 3, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 8, 0, 72, 18, 82, 5, 0, 0, 0, 0,248,204,114, 5, + 0, 0, 0, 0,248,204,114, 5, 0, 0, 0, 0,104,196,113, 5, 0, 0, 0, 0,216,197,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 25, 86, 77,215,127, 0, 0, 40,226,173, 76,215,127, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,104,196,113, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,216,197,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,192,161, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 98, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,138, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128, 98, 68, 0, 0,200, 65, 0,128, 98, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,139, 3, 26, 0,139, 3, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,138, 3, 0, 0,185, 1, 0, 0, +210, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,139, 3, 26, 0, 2, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 20, 82, 5, 0, 0, 0, 0, 24,166,115, 77, +215,127, 0, 0, 24,166,115, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 20,122, 77, +215,127, 0, 0, 88, 50, 58, 76,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,216,197,113, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,196,113, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0,192,239, 68, 0, 0, 0, 0, 0, 0,200, 65, 0, 0, 0, 0, 0,192,168, 68, 0, 0,224, 64, + 0, 0, 16, 65, 70, 5, 0, 0, 87, 5, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0, 69, 5, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0, 87, 5, 2, 0, 70, 5, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,211, 1, 0, 0, +211, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 19, 82, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0, 72,199,113, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 24,240,113, 5, 0, 0, 0, 0,120,195,113, 5, + 0, 0, 0, 0, 24,184,113, 5, 0, 0, 0, 0,248,184,113, 5, 0, 0, 0, 0,104,185,113, 5, 0, 0, 0, 0,200,182,113, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 2, 0, 0,138, 3, 0, 0, 0, 0, 0, 0,131, 1, 0, 0, 4, 4,142, 0, +132, 1, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0,232, 13, 82, 5, 0, 0, 0, 0,216,238,113, 5, 0, 0, 0, 0,216,238,113, 5, + 0, 0, 0, 0, 56,200,113, 5, 0, 0, 0, 0,168,201,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,200, 23, 86, 77,215,127, 0, 0, 24, 31, 58, 76,215,127, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56,200,113, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,168,201,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,148, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 14, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +141, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 13, 67, 0, 0,200, 65, 0, 0, 13, 67, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,142, 0, 26, 0,142, 0, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 2, 0, 0,138, 3, 0, 0,106, 1, 0, 0,131, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 26, 0, 3, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 17, 82, 5, 0, 0, 0, 0,136, 33,111, 77,215,127, 0, 0,136, 33,111, 77, +215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 32, 58, 76,215,127, 0, 0,104,100, 58, 76, +215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168,201,113, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,200,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0,128,178, 67, 0, 0, 61,196, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,250, 66, 1, 0,181,195, 0, 0, 0, 0,125, 0, 0, 0, +142, 0, 0, 0, 0, 0, 0, 0,105, 1, 0, 0, 0, 0, 0, 0, 74, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +124, 0, 0, 0, 0, 0, 0, 0,105, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,142, 0,106, 1,125, 0,106, 1, 0, 0, 56,196, 89, 77, +215,127, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,253, 2, 0, 0,138, 3, 0, 0, 0, 0, 0, 0,105, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 0,106, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 15, 82, 5, 0, 0, 0, 0, 40, 41,111, 77,215,127, 0, 0,184, 74,122, 77, +215,127, 0, 0, 24,203,113, 5, 0, 0, 0, 0, 56,237,113, 5, 0, 0, 0, 0,248, 24,111, 77,215,127, 0, 0,232, 62,111, 77, +215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24,203,113, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,184,204,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 15, 82, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255,125, 0, 36, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,184,204,113, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 88,206,113, 5, + 0, 0, 0, 0, 24,203,113, 5, 0, 0, 0, 0,120, 80,192, 76,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100, +101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, +125, 0, 61, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88,206,113, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,248,207,113, 5, 0, 0, 0, 0,184,204,113, 5, 0, 0, 0, 0, 72, 83,192, 76, +215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255,125, 0, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248,207,113, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,152,209,113, 5, + 0, 0, 0, 0, 88,206,113, 5, 0, 0, 0, 0,184, 86,192, 76,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101, +110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, +125, 0,203, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152,209,113, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 56,211,113, 5, 0, 0, 0, 0,248,207,113, 5, 0, 0, 0, 0, 56, 90,192, 76, +215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105, +110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105, +110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254,125, 0, 58, 0, 20, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, + 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56,211,113, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,216,212,113, 5, + 0, 0, 0, 0,152,209,113, 5, 0, 0, 0, 0, 72, 93,192, 76,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112, +108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254, +125, 0, 0, 0, 20, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216,212,113, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,120,214,113, 5, 0, 0, 0, 0, 56,211,113, 5, 0, 0, 0, 0, 8,221,147, 76, +215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,254,125, 0, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,120,214,113, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 24,216,113, 5, + 0, 0, 0, 0,216,212,113, 5, 0, 0, 0, 0,120,103,192, 76,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102, +111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,253, +125, 0, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24,216,113, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,184,217,113, 5, 0, 0, 0, 0,120,214,113, 5, 0, 0, 0, 0,136,106,192, 76, +215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101, +115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101, +115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,253,125, 0, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, + 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,184,217,113, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 88,219,113, 5, + 0, 0, 0, 0, 24,216,113, 5, 0, 0, 0, 0,248,108,192, 76,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109, +112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253, +125, 0, 0, 0, 20, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88,219,113, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,248,220,113, 5, 0, 0, 0, 0,184,217,113, 5, 0, 0, 0, 0,200,111,192, 76, +215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,253,125, 0,134, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, + 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248,220,113, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,152,222,113, 5, + 0, 0, 0, 0, 88,219,113, 5, 0, 0, 0, 0,248,117,192, 76,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,253, +125, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152,222,113, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 56,224,113, 5, 0, 0, 0, 0,248,220,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,115, 99,101,110,101, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,115, 99,101,110,101, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 41, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56,224,113, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,216,225,113, 5, + 0, 0, 0, 0,152,222,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, + 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, + 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85,110,105,116, +115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,255, + 41, 1, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216,225,113, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,120,227,113, 5, 0, 0, 0, 0, 56,224,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,107,101,121,105,110,103, 95,115,101,116,115, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,107,101,121,105,110,103, 95,115,101,116,115, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,101,121,105,110,103, 32, 83,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191,254, 41, 1, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,120,227,113, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 24,229,113, 5, + 0, 0, 0, 0,216,225,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, + 69, 95, 80, 84, 95,112,104,121,115,105, 99,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, + 69, 95, 80, 84, 95,112,104,121,115,105, 99,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114, 97,118, +105,116,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,131,254, + 41, 1, 36, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24,229,113, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,184,230,113, 5, 0, 0, 0, 0,120,227,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,115,105,109,112,108,105,102,121, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,115,105,109,112,108,105,102,121, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,105,109,112,108,105,102,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,254, 41, 1, 80, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,184,230,113, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 88,232,113, 5, + 0, 0, 0, 0, 24,229,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, + 69, 95, 80, 84, 95, 99,117,115,116,111,109, 95,112,114,111,112,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, + 69, 95, 80, 84, 95, 99,117,115,116,111,109, 95,112,114,111,112,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,117,115,116, +111,109, 32, 80,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,223,253, + 41, 1, 36, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88,232,113, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,248,233,113, 5, 0, 0, 0, 0,184,230,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95, 99,111,110,116,101,120,116, 95,116, +101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95, 99,111,110,116,101,120,116, 95,116, +101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,255,187, 0,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 18, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248,233,113, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,152,235,113, 5, + 0, 0, 0, 0, 88,232,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, + 85, 82, 69, 95, 80, 84, 95,109, 97,112,112,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, + 85, 82, 69, 95, 80, 84, 95,109, 97,112,112,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 97,112,112, +105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,254, +187, 0,171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152,235,113, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 56,237,113, 5, 0, 0, 0, 0,248,233,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,105,110,102,108,117,101,110, 99,101, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,105,110,102,108,117,101,110, 99,101, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,110,102,108,117,101,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,223,252,187, 0, 86, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56,237,113, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,152,235,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 74, 69, + 67, 84, 95, 80, 84, 95, 99,111,110,115,116,114, 97,105,110,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 74, 69, + 67, 84, 95, 80, 84, 95, 99,111,110,115,116,114, 97,105,110,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 98,106,101, + 99,116, 32, 67,111,110,115,116,114, 97,105,110,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,255, +187, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,216,238,113, 5, + 0, 0, 0, 0,179, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, + 0, 0, 0, 0,136, 35, 54, 76,215,127, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 24,240,113, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 8,245,113, 5, + 0, 0, 0, 0, 72,199,113, 5, 0, 0, 0, 0,120,181,113, 5, 0, 0, 0, 0,216,185,113, 5, 0, 0, 0, 0, 72,186,113, 5, + 0, 0, 0, 0, 24,184,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 2, 0, 0, 0, 0, 0, 0, + 59, 0, 0, 0, 15, 15,252, 2, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,225, 81, 5, 0, 0, 0, 0,232,243,113, 5, + 0, 0, 0, 0,232,243,113, 5, 0, 0, 0, 0, 8,241,113, 5, 0, 0, 0, 0,120,242,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 84,111, 77,215,127, 0, 0,120, 5,122, 77,215,127, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 8,241,113, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,120,242,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,146, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 63, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,251, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 62, 68, 0, 0,200, 65, 0,192, 62, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,252, 2, 26, 0,252, 2, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 2, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252, 2, 26, 0, 5, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,227, 81, 5, 0, 0, 0, 0,104, 83,122, 77, +215,127, 0, 0,104, 83,122, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 15,108, 77, +215,127, 0, 0,184, 48, 58, 76,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,120,242,113, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,241,113, 5, + 0, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, 88,218,103,194, 40,147,141, 67, 0, 0, 0, 0, + 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 2, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,251, 2, 0, 0, 18, 0, 0, 0, 33, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, + 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,252, 2, 34, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 2, 0, 0, 26, 0, 0, 0, + 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252, 2, 34, 0, 6, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,226, 81, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,153,109, 77, +215,127, 0, 0, 72,129,111, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +208, 0, 0, 0,232,243,113, 5, 0, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, + 1, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 8,245,113, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,136,173,114, 5, + 0, 0, 0, 0, 24,240,113, 5, 0, 0, 0, 0,248,184,113, 5, 0, 0, 0, 0,136,184,113, 5, 0, 0, 0, 0,168,183,113, 5, + 0, 0, 0, 0,104,185,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 2, 0, 0,138, 3, 0, 0,133, 1, 0, 0, +183, 1, 0, 0, 3, 3,142, 0, 51, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0,184,222, 81, 5, 0, 0, 0, 0,216,248,113, 5, + 0, 0, 0, 0,216,248,113, 5, 0, 0, 0, 0,248,245,113, 5, 0, 0, 0, 0,104,247,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 51, 58, 76,215,127, 0, 0,152,240,120, 77,215,127, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,248,245,113, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,104,247,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 14, 67, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,141, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 13, 67, 0, 0,200, 65, 0, 0, 13, 67, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,142, 0, 26, 0,142, 0, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 2, 0, 0,138, 3, 0, 0,158, 1, 0, 0, +183, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 26, 0, 7, 0, 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,224, 81, 5, 0, 0, 0, 0, 56, 57,108, 77, +215,127, 0, 0, 56, 57,108, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 93, 58, 76, +215,127, 0, 0,152, 83,111, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,104,247,113, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,245,113, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0,244,194, 0, 0, 0, 0, 0, 0,128, 54, 0, 0,250, 66, 0, 0,130,194, + 0, 0,104,194,125, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,124, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,124, 0, 0, 0, 18, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 0, 0, 2, 0, 3, 3, 0, 0, 12, 4, 6, 0,142, 0, 25, 0,125, 0, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253, 2, 0, 0,138, 3, 0, 0,133, 1, 0, 0, +157, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 25, 0, 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,223, 81, 5, 0, 0, 0, 0, 24,125,108, 77, +215,127, 0, 0, 24,125,108, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,156,107, 77, +215,127, 0, 0,168,116, 58, 76,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 24, 1, 0, 0,216,248,113, 5, 0, 0, 0, 0,183, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,152, 89, 77, +215,127, 0, 0, 40,152, 89, 77,215,127, 0, 0, 56,250,113, 5, 0, 0, 0, 0, 0,115,101, 32, 83, 99,117,108,112,116, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, 56,250,113, 5, 0, 0, 0, 0,237, 0, 0, 0, + 1, 0, 0, 0, 42, 11, 0, 0, 42, 11, 0, 0,152,250,113, 5, 0, 0, 0, 0, 68, 65, 84, 65,160,178, 0, 0,152,250,113, 5, + 0, 0, 0, 0,236, 0, 0, 0, 42, 11, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0,120,228,115, 5, 0, 0, 0, 0, 19, 0, 0, 0, + 1, 0, 1, 0,120,228,115, 5, 0, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0,120,228,115, 5, 0, 0, 0, 0, 21, 0, 1, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 24,255,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0,136, 8,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 40, 63,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0,104, 22,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,120, 44,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0,200, 15,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 88,250,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0,232, 1,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 72,249,115, 5, 0, 0, 0, 0, 21, 0, 0, 0, + 1, 0, 1, 0,120,228,115, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 72,249,115, 5, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 30, 0,255,255, 3, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,184,227,112, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,168, 71,113, 5, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0, 40,180,113, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,136,205,114, 5, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,152, 29,115, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 8,109,115, 5, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0, 40,180,115, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,120, 44,116, 5, 0, 0, 0, 0, 30, 0,255,255, + 1, 0, 0, 0,200,224,112, 5, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 24,255,115, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0, 72,249,115, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 72,249,115, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0, 72,249,115, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 72,249,115, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0, 72,249,115, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 72,249,115, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0, 72,249,115, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 72,249,115, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0, 72,249,115, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 72,249,115, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0, 72,249,115, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 72,249,115, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0, 72,249,115, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 72,249,115, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0, 72,249,115, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 72,249,115, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0, 72,249,115, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 72,249,115, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0, 72,249,115, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 72,249,115, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0, 72,249,115, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 72,249,115, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0, 72,249,115, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 72,249,115, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0, 72,249,115, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 72,249,115, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 70, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 71, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 72, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 73, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 74, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 75, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 76, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 77, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 78, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 79, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 80, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 81, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 82, 0, 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 83, 0, + 1, 0, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 70, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 71, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 72, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 73, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 74, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 75, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 76, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 77, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 78, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 79, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 80, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 81, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 82, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 83, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 84, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 85, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 86, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 87, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 88, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 89, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 90, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 91, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 92, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 93, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 94, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 95, 0, + 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 96, 0, 1, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 22, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 24, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 26, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 28, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 30, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 32, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 34, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 36, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 38, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 40, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 42, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 44, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 46, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 48, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 50, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 52, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 54, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 56, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 58, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 60, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 62, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 64, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 66, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 68, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 70, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 71, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 72, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 73, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 74, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 75, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 76, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 77, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 78, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 79, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 80, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 81, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 82, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 83, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 84, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 85, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 86, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 87, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 88, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 89, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 90, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 91, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 92, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 93, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 94, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 95, 0, 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 96, 0, + 1, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 11, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 13, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 15, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 17, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 19, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 21, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 23, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 25, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 27, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 29, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 31, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 33, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 35, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 37, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 39, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 41, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 43, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 45, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 47, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 49, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 51, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 53, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 55, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 57, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 59, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 61, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 63, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 65, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 67, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 69, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 70, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 71, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 72, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 73, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 74, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 75, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 76, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 77, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 78, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 79, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 80, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 81, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 82, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 83, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 84, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 85, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 86, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 87, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 88, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 89, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 90, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 91, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 92, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 93, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 94, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 95, 0, + 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 96, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,184,227,112, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,184,227,112, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,184,227,112, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,184,227,112, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,184,227,112, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,184,227,112, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,184,227,112, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,184,227,112, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,184,227,112, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,184,227,112, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,168, 71,113, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,168, 71,113, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,168, 71,113, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,168, 71,113, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,168, 71,113, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,168, 71,113, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,168, 71,113, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,168, 71,113, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,168, 71,113, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,168, 71,113, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0, 40,180,113, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 40,180,113, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0, 40,180,113, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 40,180,113, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0, 40,180,113, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 40,180,113, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0, 40,180,113, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 40,180,113, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0, 40,180,113, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 40,180,113, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,136,205,114, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,136,205,114, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,136,205,114, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,136,205,114, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,136,205,114, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,136,205,114, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,136,205,114, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,136,205,114, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,136,205,114, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,136,205,114, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,152, 29,115, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,152, 29,115, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,152, 29,115, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,152, 29,115, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,152, 29,115, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,152, 29,115, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,152, 29,115, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,152, 29,115, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,152, 29,115, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,152, 29,115, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0, 8,109,115, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 8,109,115, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0, 8,109,115, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 8,109,115, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0, 8,109,115, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 8,109,115, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0, 8,109,115, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 8,109,115, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0, 8,109,115, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 8,109,115, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0, 40,180,115, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 40,180,115, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0, 40,180,115, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 40,180,115, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0, 40,180,115, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 40,180,115, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0, 40,180,115, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 40,180,115, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0, 40,180,115, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 40,180,115, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0,120, 44,116, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,120, 44,116, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0,120, 44,116, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,120, 44,116, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0,120, 44,116, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,120, 44,116, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0,120, 44,116, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,120, 44,116, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0,120, 44,116, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,120, 44,116, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0,120, 44,116, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,120, 44,116, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0,120, 44,116, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,120, 44,116, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0,120, 44,116, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,120, 44,116, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0,120, 44,116, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,120, 44,116, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0,120, 44,116, 5, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,200,224,112, 5, 0, 0, 0, 0, 31, 0, 1, 0, + 1, 0, 0, 0,200,224,112, 5, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,200,224,112, 5, 0, 0, 0, 0, 31, 0, 3, 0, + 1, 0, 0, 0,200,224,112, 5, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,200,224,112, 5, 0, 0, 0, 0, 31, 0, 5, 0, + 1, 0, 0, 0,200,224,112, 5, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,200,224,112, 5, 0, 0, 0, 0, 31, 0, 7, 0, + 1, 0, 0, 0,200,224,112, 5, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,200,224,112, 5, 0, 0, 0, 0, 31, 0, 9, 0, + 1, 0, 0, 0,200,224,112, 5, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,200,224,112, 5, 0, 0, 0, 0, 31, 0, 0, 0, + 1, 0, 0, 0, 24,255,115, 5, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 24,255,115, 5, 0, 0, 0, 0, 31, 0, 2, 0, + 1, 0, 0, 0, 24,255,115, 5, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 24,255,115, 5, 0, 0, 0, 0, 31, 0, 4, 0, + 1, 0, 0, 0, 24,255,115, 5, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 24,255,115, 5, 0, 0, 0, 0, 31, 0, 6, 0, + 1, 0, 0, 0, 24,255,115, 5, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 24,255,115, 5, 0, 0, 0, 0, 31, 0, 8, 0, + 1, 0, 0, 0, 24,255,115, 5, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 24,255,115, 5, 0, 0, 0, 0, 31, 0, 10, 0, + 1, 0, 0, 0, 24,255,115, 5, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 24,255,115, 5, 0, 0, 0, 0, 31, 0, 12, 0, + 1, 0, 0, 0, 24,255,115, 5, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 24,255,115, 5, 0, 0, 0, 0, 31, 0, 14, 0, + 1, 0, 0, 0, 24,255,115, 5, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 24,255,115, 5, 0, 0, 0, 0, 31, 0, 16, 0, + 1, 0, 0, 0, 24,255,115, 5, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 24,255,115, 5, 0, 0, 0, 0, 31, 0, 18, 0, + 1, 0, 0, 0, 24,255,115, 5, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 24,255,115, 5, 0, 0, 0, 0, 31, 0, 20, 0, + 1, 0, 0, 0, 24,255,115, 5, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,136,173,114, 5, 0, 0, 0, 0,214, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,245,113, 5, 0, 0, 0, 0,216,185,113, 5, 0, 0, 0, 0, 56,183,113, 5, + 0, 0, 0, 0,136,184,113, 5, 0, 0, 0, 0, 72,186,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +251, 2, 0, 0, 61, 0, 0, 0,183, 1, 0, 0, 1, 1,252, 2,123, 1, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0,184,228, 81, 5, + 0, 0, 0, 0, 72,203,114, 5, 0, 0, 0, 0, 72,203,114, 5, 0, 0, 0, 0,120,174,114, 5, 0, 0, 0, 0, 24,198,114, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 73, 58, 76,215,127, 0, 0,136,197,107, 77, +215,127, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,120,174,114, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,232,175,114, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,108, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 63, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 62, 68, + 0, 0,200, 65, 0,192, 62, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, + 10, 0,252, 2, 26, 0,252, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +251, 2, 0, 0, 61, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252, 2, 26, 0, + 9, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,239, 81, 5, + 0, 0, 0, 0,184,230,133, 77,215,127, 0, 0,184,230,133, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,168, 26, 86, 77,215,127, 0, 0,136,224, 89, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232,175,114, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,152,193,114, 5, + 0, 0, 0, 0,120,174,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0,192, 5,196, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 15, 67, 0, 0, 9,195, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,136, 0, 0, 0, 0, 0, 0, 0, +142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,136, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, + 6, 0,160, 0,137, 0,143, 0,137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +159, 0, 0, 0, 47, 1, 0, 0,183, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,137, 0, + 10, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0,160, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,235, 81, 5, + 0, 0, 0, 0,120,213, 85, 77,215,127, 0, 0,120,213, 85, 77,215,127, 0, 0, 88,177,114, 5, 0, 0, 0, 0,248,191,114, 5, + 0, 0, 0, 0, 88,137, 89, 77,215,127, 0, 0,232, 68,111, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88,177,114, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,248,178,114, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 52,196, 76,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, + 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, + 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 98,106,101, + 99,116, 32, 84,111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233,253, +143, 0,255, 1, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248,178,114, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,152,180,114, 5, 0, 0, 0, 0, 88,177,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115, +104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115, +104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66,114,117,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,117,254,143, 0,115, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152,180,114, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 56,182,114, 5, + 0, 0, 0, 0,248,178,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, + 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95,116,111,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, + 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95,116,111,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,111,111,108, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74,254, +143, 0, 61, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56,182,114, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,216,183,114, 5, 0, 0, 0, 0,152,180,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115, +104, 95,115,116,114,111,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115, +104, 95,115,116,114,111,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116,114,111,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69,254,143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216,183,114, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,120,185,114, 5, + 0, 0, 0, 0, 56,182,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, + 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95, 99,117,114,118,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, + 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95, 99,117,114,118,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,117,114,118, +101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45,254, +143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,120,185,114, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 24,187,114, 5, 0, 0, 0, 0,216,183,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115, +104, 95, 97,112,112,101, 97,114, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115, +104, 95, 97,112,112,101, 97,114, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,112,112,101, 97,114, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,229,253,143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24,187,114, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,184,188,114, 5, + 0, 0, 0, 0,120,185,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, + 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,118,101,114,116,101,120,112, 97,105,110,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, + 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,118,101,114,116,101,120,112, 97,105,110,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,112,116,105, +111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,149,253, +143, 0,146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,184,188,114, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 88,190,114, 5, 0, 0, 0, 0, 24,187,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115, +104, 95,116,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115, +104, 95,116,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93,254,143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88,190,114, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,248,191,114, 5, + 0, 0, 0, 0,184,188,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, + 51, 68, 95, 80, 84, 95,115, 99,117,108,112,116, 95,111,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, + 51, 68, 95, 80, 84, 95,115, 99,117,108,112,116, 95,111,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,112,116,105, +111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21,254, +143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248,191,114, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,190,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,115, 99,117,108,112,116, 95,115,121,109, +109,101,116,114,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,115, 99,117,108,112,116, 95,115,121,109, +109,101,116,114,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,121,109,109,101,116,114,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,253,143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152,193,114, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,168,196,114, 5, + 0, 0, 0, 0,232,175,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0, 0, 90,195, 0, 0, 0, 0, 0, 0, 0, 0, +227,102, 16, 67, 24, 30, 90,195, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 0, +142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, + 6, 0,160, 0,216, 0,143, 0,216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +159, 0, 0, 0, 87, 0, 0, 0, 46, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,216, 0, + 11, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,236, 81, 5, + 0, 0, 0, 0,168,163,115, 77,215,127, 0, 0,168,163,115, 77,215,127, 0, 0, 8,195,114, 5, 0, 0, 0, 0, 8,195,114, 5, + 0, 0, 0, 0,248, 95,119, 77,215,127, 0, 0,104,171,107, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8,195,114, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,237, 81, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, + 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, + 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,101,119, 32, + 83, 99,114,101,101,110, 0, 0, 32, 77,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255, +144, 0, 16, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168,196,114, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 24,198,114, 5, 0, 0, 0, 0,152,193,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 52, 67, 0, 96,158,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 96,158,196, 0,128,142,195,163, 0, 0, 0, +180, 0, 0, 0, 0, 0, 0, 0,213, 3, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +162, 0, 0, 0, 0, 0, 0, 0,213, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,180, 0,214, 3,163, 0,214, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 2, 0, 0,251, 2, 0, 0, 87, 0, 0, 0,183, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,230, 81, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,198,114, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,196,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 0, 0,251, 2, 0, 0, 87, 0, 0, 0,183, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 2, 97, 1, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,229, 81, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 74,111, 77,215,127, 0, 0, 72, 73,111, 77, +215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,199,114, 5, 0, 0, 0, 0, 68, 65, 84, 65,112, 3, 0, 0,136,199,114, 5, + 0, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +248,139,239, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,141, 6,128,191, 0, 0,128,191, 0, 0, 0, 0, + 0, 0, 0, 0, 11,210, 76,190, 0, 0, 0, 0, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63, +143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 33,210,111,193, 0, 0,128, 63, 68,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 52,177,205,190, +142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0, 62, 95, 68, 65, + 51,120,173,192,115,208,213, 64, 0, 0,128, 63,178,157,229, 62,229,120, 64,191,114,169, 81,191,184,158, 81,191,117, 90,127, 63, + 6,140,185, 62,157, 53,185, 62, 35, 44,185, 62,145,180,109,188,177,103,214, 63,216, 72,228,190, 42, 61,228,190, 0, 0, 0, 0, + 0, 0, 0, 0, 31,171,108, 65, 33,210,111, 65,190,240,191, 62, 90,116, 85, 63, 16,179, 70,188, 0, 0,224, 50,188,209, 91,190, +250,232,211, 61,156,222,244, 62, 0, 0,152, 51, 85,112,117,194, 78,208,216, 65,159,158, 5,194,159,251,159,192,106, 54,114, 66, +183,246,213,193,252,220, 3, 66,207, 3,160, 64, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63, +143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 33,210,111,193, 0, 0,128, 63,178,157,229, 62,229,120, 64,191,114,169, 81,191,184,158, 81,191,117, 90,127, 63, + 6,140,185, 62,157, 53,185, 62, 35, 44,185, 62,145,180,109,188,177,103,214, 63,216, 72,228,190, 42, 61,228,190, 0, 0, 0, 0, + 0, 0, 0, 0, 31,171,108, 65, 33,210,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,208, 89, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 11,208, 89, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,208, 89, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 33,210,111, 65, + 33,210,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,243,103, 70, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 0, 0,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 32, 33, 12, 66, 85,152,137, 66,113, 27,126, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 96, 1, 0, 0, 72,203,114, 5, 0, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, +205,204, 76, 62, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,232, 1,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 24,128, 0, 0, 0, 12, 66, 0, 0,128, 63, +205,204,204, 61, 0, 0,122, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 8, 1, 0, 0,136,205,114, 5, + 0, 0, 0, 0,210, 0, 0, 0, 1, 0, 0, 0,104,207, 85, 77,215,127, 0, 0, 40,180,113, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 71, 97,109,101, 32, 76,111,103,105, 99, 0, 46, 48, 48, 49, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,216,206,114, 5, 0, 0, 0, 0,136,212,114, 5, 0, 0, 0, 0,248,212,114, 5, 0, 0, 0, 0,184,221,114, 5, + 0, 0, 0, 0, 40,222,114, 5, 0, 0, 0, 0, 72, 22,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216,206,114, 5, + 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 72,207,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72,207,114, 5, 0, 0, 0, 0,211, 0, 0, 0, + 1, 0, 0, 0,184,207,114, 5, 0, 0, 0, 0,216,206,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,207,114, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 40,208,114, 5, + 0, 0, 0, 0, 72,207,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0, 40,208,114, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,152,208,114, 5, 0, 0, 0, 0,184,207,114, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152,208,114, 5, + 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 8,209,114, 5, 0, 0, 0, 0, 40,208,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,209,114, 5, 0, 0, 0, 0,211, 0, 0, 0, + 1, 0, 0, 0,120,209,114, 5, 0, 0, 0, 0,152,208,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,234, 3, + 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120,209,114, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,232,209,114, 5, + 0, 0, 0, 0, 8,209,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,232,209,114, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 88,210,114, 5, 0, 0, 0, 0,120,209,114, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88,210,114, 5, + 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,200,210,114, 5, 0, 0, 0, 0,232,209,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200,210,114, 5, 0, 0, 0, 0,211, 0, 0, 0, + 1, 0, 0, 0, 56,211,114, 5, 0, 0, 0, 0, 88,210,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,140, 1, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56,211,114, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,168,211,114, 5, + 0, 0, 0, 0,200,210,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 5,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,168,211,114, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 24,212,114, 5, 0, 0, 0, 0, 56,211,114, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 5,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24,212,114, 5, + 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,136,212,114, 5, 0, 0, 0, 0,168,211,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 1,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136,212,114, 5, 0, 0, 0, 0,211, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,212,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1,234, 3, + 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,212,114, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,104,213,114, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,207,114, 5, 0, 0, 0, 0,184,207,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,213,114, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,216,213,114, 5, + 0, 0, 0, 0,248,212,114, 5, 0, 0, 0, 0, 72,207,114, 5, 0, 0, 0, 0,152,208,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,213,114, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 72,214,114, 5, + 0, 0, 0, 0,104,213,114, 5, 0, 0, 0, 0,184,207,114, 5, 0, 0, 0, 0, 8,209,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,214,114, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,184,214,114, 5, + 0, 0, 0, 0,216,213,114, 5, 0, 0, 0, 0,152,208,114, 5, 0, 0, 0, 0, 8,209,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,214,114, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 40,215,114, 5, + 0, 0, 0, 0, 72,214,114, 5, 0, 0, 0, 0,152,208,114, 5, 0, 0, 0, 0,120,209,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,215,114, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,152,215,114, 5, + 0, 0, 0, 0,184,214,114, 5, 0, 0, 0, 0,120,209,114, 5, 0, 0, 0, 0,232,209,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,215,114, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 8,216,114, 5, + 0, 0, 0, 0, 40,215,114, 5, 0, 0, 0, 0, 40,208,114, 5, 0, 0, 0, 0, 88,210,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,216,114, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,120,216,114, 5, + 0, 0, 0, 0,152,215,114, 5, 0, 0, 0, 0,232,209,114, 5, 0, 0, 0, 0, 88,210,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,216,114, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,232,216,114, 5, + 0, 0, 0, 0, 8,216,114, 5, 0, 0, 0, 0,216,206,114, 5, 0, 0, 0, 0,120,209,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,216,114, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 88,217,114, 5, + 0, 0, 0, 0,120,216,114, 5, 0, 0, 0, 0,216,206,114, 5, 0, 0, 0, 0, 88,210,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,217,114, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,200,217,114, 5, + 0, 0, 0, 0,232,216,114, 5, 0, 0, 0, 0, 8,209,114, 5, 0, 0, 0, 0,200,210,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,217,114, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 56,218,114, 5, + 0, 0, 0, 0, 88,217,114, 5, 0, 0, 0, 0, 40,208,114, 5, 0, 0, 0, 0,200,210,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,218,114, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,168,218,114, 5, + 0, 0, 0, 0,200,217,114, 5, 0, 0, 0, 0,232,209,114, 5, 0, 0, 0, 0,200,210,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,218,114, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 24,219,114, 5, + 0, 0, 0, 0, 56,218,114, 5, 0, 0, 0, 0, 56,211,114, 5, 0, 0, 0, 0,168,211,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,219,114, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,136,219,114, 5, + 0, 0, 0, 0,168,218,114, 5, 0, 0, 0, 0, 8,209,114, 5, 0, 0, 0, 0,168,211,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,219,114, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,248,219,114, 5, + 0, 0, 0, 0, 24,219,114, 5, 0, 0, 0, 0,200,210,114, 5, 0, 0, 0, 0, 56,211,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,219,114, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,104,220,114, 5, + 0, 0, 0, 0,136,219,114, 5, 0, 0, 0, 0,120,209,114, 5, 0, 0, 0, 0, 24,212,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,220,114, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,216,220,114, 5, + 0, 0, 0, 0,248,219,114, 5, 0, 0, 0, 0, 56,211,114, 5, 0, 0, 0, 0, 24,212,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,220,114, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 72,221,114, 5, + 0, 0, 0, 0,104,220,114, 5, 0, 0, 0, 0,152,208,114, 5, 0, 0, 0, 0,136,212,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,221,114, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,184,221,114, 5, + 0, 0, 0, 0,216,220,114, 5, 0, 0, 0, 0,168,211,114, 5, 0, 0, 0, 0,136,212,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,221,114, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 72,221,114, 5, 0, 0, 0, 0, 24,212,114, 5, 0, 0, 0, 0,136,212,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 40,222,114, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,248,225,114, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,208,114, 5, 0, 0, 0, 0, 72,207,114, 5, 0, 0, 0, 0,184,207,114, 5, + 0, 0, 0, 0, 8,209,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, + 5, 4, 0, 0, 7, 7,127, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 29,115, 5, + 0, 0, 0, 0, 8, 29,115, 5, 0, 0, 0, 0, 24,223,114, 5, 0, 0, 0, 0,136,224,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 24,223,114, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,136,224,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, + 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,136,224,114, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,223,114, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,238, 68, 0, 0, 0, 0, + 0, 0, 0, 64,112, 7, 0, 0,129, 7, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, + 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0,248,225,114, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,136,250,114, 5, 0, 0, 0, 0, 40,222,114, 5, + 0, 0, 0, 0, 88,210,114, 5, 0, 0, 0, 0,232,209,114, 5, 0, 0, 0, 0,200,210,114, 5, 0, 0, 0, 0, 40,208,114, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,139, 1, 0, 0, 4, 4, 94, 1, +140, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,249,114, 5, 0, 0, 0, 0, 72,249,114, 5, + 0, 0, 0, 0,232,226,114, 5, 0, 0, 0, 0, 88,228,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232,226,114, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 88,228,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,148, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,175, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 93, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,174, 67, 0, 0,200, 65, 0,128,174, 67, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 94, 1, 26, 0, 94, 1, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0,114, 1, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,228,114, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,226,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0,128,174, 67, 0, 0, 61,196, 0, 0, 0, 0, 0, 0, 0, 0,255,127,166, 67,255,255,184,195, 0, 0, 0, 0, 77, 1, 0, 0, + 94, 1, 0, 0, 0, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0, 78, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 76, 1, 0, 0, 0, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0, 94, 1,114, 1, 77, 1,114, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 1,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,200,229,114, 5, 0, 0, 0, 0,168,247,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,200,229,114, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,104,231,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, 76, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,104,231,114, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8,233,114, 5, + 0, 0, 0, 0,200,229,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100, +101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, + 76, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8,233,114, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,168,234,114, 5, 0, 0, 0, 0,104,231,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168,234,114, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 72,236,114, 5, + 0, 0, 0, 0, 8,233,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101, +110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, + 76, 1,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72,236,114, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232,237,114, 5, 0, 0, 0, 0,168,234,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105, +110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105, +110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, 76, 1, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,232,237,114, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,136,239,114, 5, + 0, 0, 0, 0, 72,236,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112, +108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254, + 76, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,136,239,114, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40,241,114, 5, 0, 0, 0, 0,232,237,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,254, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 40,241,114, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,200,242,114, 5, + 0, 0, 0, 0,136,239,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102, +111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,253, + 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,200,242,114, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,104,244,114, 5, 0, 0, 0, 0, 40,241,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101, +115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101, +115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,253, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,104,244,114, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8,246,114, 5, + 0, 0, 0, 0,200,242,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109, +112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253, + 76, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8,246,114, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,168,247,114, 5, 0, 0, 0, 0,104,244,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,253, 76, 1,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168,247,114, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 8,246,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,253, + 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 72,249,114, 5, + 0, 0, 0, 0,179, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,136,250,114, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,248, 1,115, 5, + 0, 0, 0, 0,248,225,114, 5, 0, 0, 0, 0,216,206,114, 5, 0, 0, 0, 0,120,209,114, 5, 0, 0, 0, 0,232,209,114, 5, + 0, 0, 0, 0, 88,210,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, +139, 1, 0, 0, 17, 17, 32, 6,140, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 1,115, 5, + 0, 0, 0, 0,104, 1,115, 5, 0, 0, 0, 0,120,251,114, 5, 0, 0, 0, 0,248,255,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,120,251,114, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,232,252,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,196, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,195, 68, 0, 0,200, 65, 0,224,195, 68, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 32, 6, 26, 0, 32, 6, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,232,252,114, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,248,255,114, 5, 0, 0, 0, 0,120,251,114, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 67, 0, 0,185,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0, 0,185,195, + 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0,114, 1,203, 0, +114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,219, 0, 0, 0, 26, 0, 0, 0, +139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0,114, 1, 0, 0, 4, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,254,114, 5, 0, 0, 0, 0, 88,254,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0, 88,254,114, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 79, 71, 73, 67, 95, 80, 84, 95,112,114,111, +112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 79, 71, 73, 67, 95, 80, 84, 95,112,114,111, +112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,114,111,112,101,114,116,105,101,115, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,203, 0, 36, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248,255,114, 5, 0, 0, 0, 0,215, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,252,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 68, 0, 0, 0, 0, + 0, 0,112, 67, 0, 80, 31,195, 0,234,179, 68,224,198,182,194,184,177,165, 67, 51, 5, 0, 0, 68, 5, 0, 0, 18, 0, 0, 0, +113, 1, 0, 0, 0, 0, 0, 0, 50, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 50, 5, 0, 0, 18, 0, 0, 0, +113, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70, 0, 0, 0, 63, 72,225,154, 63, 10, 0, 0, 0, + 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 68, 5,114, 1, 51, 5, 96, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,220, 0, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 5,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 72, 0, 0, 0,104, 1,115, 5, 0, 0, 0, 0,192, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,248, 1,115, 5, 0, 0, 0, 0,214, 0, 0, 0, + 1, 0, 0, 0,184, 8,115, 5, 0, 0, 0, 0,136,250,114, 5, 0, 0, 0, 0, 56,211,114, 5, 0, 0, 0, 0,168,211,114, 5, + 0, 0, 0, 0, 8,209,114, 5, 0, 0, 0, 0,200,210,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 5, 0, 0, +126, 7, 0, 0,141, 1, 0, 0,233, 3, 0, 0, 9, 9, 62, 2, 93, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,200, 5,115, 5, 0, 0, 0, 0,200, 5,115, 5, 0, 0, 0, 0,232, 2,115, 5, 0, 0, 0, 0, 88, 4,115, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232, 2,115, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 88, 4,115, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0,128, 15, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 64, 15, 68, + 0, 0,200, 65, 0, 64, 15, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, + 10, 0, 62, 2, 26, 0, 62, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 5, 0, 0, +126, 7, 0, 0,141, 1, 0, 0,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 2, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88, 4,115, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,232, 2,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,181, 67, 0, 0, 0, 0, 0,128,218, 67, 0, 0, 0, 0, +131,248, 1, 68, 0, 0, 0, 0, 86, 26, 3, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 2, 0, 0, 0, 0, 0, 0, 66, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, + 10, 0, 62, 2, 67, 2, 62, 2, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 5, 0, 0, +126, 7, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 2, 67, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,160, 2, 0, 0,200, 5,115, 5, 0, 0, 0, 0,186, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0,184, 8,115, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 72, 22,115, 5, 0, 0, 0, 0,248, 1,115, 5, + 0, 0, 0, 0, 24,212,114, 5, 0, 0, 0, 0,136,212,114, 5, 0, 0, 0, 0,168,211,114, 5, 0, 0, 0, 0, 56,211,114, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0, 63, 5, 0, 0,141, 1, 0, 0,233, 3, 0, 0, 1, 1,251, 3, + 93, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 20,115, 5, 0, 0, 0, 0,152, 20,115, 5, + 0, 0, 0, 0,168, 9,115, 5, 0, 0, 0, 0,104, 15,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168, 9,115, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 24, 11,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192,126, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +250, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,126, 68, 0, 0,200, 65, 0,128,126, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,251, 3, 26, 0,251, 3, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0, 63, 5, 0, 0,141, 1, 0, 0,166, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24, 11,115, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,136, 12,115, 5, 0, 0, 0, 0,168, 9,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0, +160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0, 69, 1, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 67, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136, 12,115, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,248, 13,115, 5, 0, 0, 0, 0, 24, 11,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0, +160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0, 63, 5, 0, 0,167, 1, 0, 0,167, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248, 13,115, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,104, 15,115, 5, 0, 0, 0, 0,136, 12,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 52, 67, 0, 0,109,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0,109,196, 0,128,145,195,163, 0, 0, 0, +180, 0, 0, 0, 0, 0, 0, 0,144, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +162, 0, 0, 0, 0, 0, 0, 0,144, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,180, 0,145, 2,163, 0,145, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 5, 0, 0, 63, 5, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104, 15,115, 5, + 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 13,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0, 63, 5, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,251, 3, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 16,115, 5, 0, 0, 0, 0, 68, 65, 84, 65,112, 3, 0, 0,216, 16,115, 5, + 0, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 75, 40,139, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18, 3,187, 0, 0, 0, 0, 0, 0, 0,128, + 0, 0, 0,128, 0, 0, 0,128, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 75, 40,139, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18, 3,187, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,149, 53,207, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +112,121,107, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,249,195, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 75, 40,139, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 18, 3,187, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,207, 3,116, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +207, 3,116, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,207, 3,116, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,149, 53,207, 65, +214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,221, 57, 80, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 65, + 0, 0, 5, 0,251,251, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 1, 0, 0, 0, 0, 0,128, 63, + 0, 0,180, 66, 0, 0,180, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 96, 1, 0, 0,152, 20,115, 5, 0, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, +205,204, 76, 62, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,232, 1,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8,128, 0, 0, 0, 12, 66, 0, 0,128, 63, +205,204,204, 61, 0, 0,122, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 72, 22,115, 5, + 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 8,115, 5, 0, 0, 0, 0,120,209,114, 5, + 0, 0, 0, 0,152,208,114, 5, 0, 0, 0, 0,136,212,114, 5, 0, 0, 0, 0, 24,212,114, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0,141, 1, 0, 0,233, 3, 0, 0, 3, 3, 68, 1, 93, 2, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 26,115, 5, 0, 0, 0, 0, 24, 26,115, 5, 0, 0, 0, 0, 56, 23,115, 5, + 0, 0, 0, 0,168, 24,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56, 23,115, 5, 0, 0, 0, 0,215, 0, 0, 0, + 1, 0, 0, 0,168, 24,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,162, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,128,161, 67, 0, 0,200, 65, 0,128,161, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 68, 1, 26, 0, 68, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0,141, 1, 0, 0,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168, 24,115, 5, 0, 0, 0, 0,215, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 23,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0,244,194, + 0, 0, 0, 0, 0, 0, 0, 0, 0,128,153, 67, 0, 64, 12,196, 0, 0, 0, 0, 51, 1, 0, 0, 68, 1, 0, 0, 18, 0, 0, 0, + 66, 2, 0, 0, 0, 0, 0, 0, 50, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 50, 1, 0, 0, 18, 0, 0, 0, + 66, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 6, 0, 0, + 2, 0, 3, 3, 0, 0, 12, 4, 6, 0, 68, 1, 67, 2, 51, 1, 49, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 1, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, 24, 26,115, 5, 0, 0, 0, 0,183, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 27,115, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, + 16, 0, 0, 0,120, 27,115, 5, 0, 0, 0, 0,237, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0,216, 27,115, 5, + 0, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0,216, 27,115, 5, 0, 0, 0, 0,236, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0,120,228,115, 5, 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0,120,228,115, 5, 0, 0, 0, 0, 20, 0, 0, 0, + 1, 0, 1, 0,120,228,115, 5, 0, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 24,255,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,136, 8,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 40, 63,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,104, 22,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0,120, 44,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,200, 15,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 88,250,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,232, 1,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 72,249,115, 5, 0, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0,120,228,115, 5, 0, 0, 0, 0, 83, 78, 0, 0, + 8, 1, 0, 0,104,207, 85, 77,215,127, 0, 0,210, 0, 0, 0, 1, 0, 0, 0,152, 29,115, 5, 0, 0, 0, 0,136,205,114, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 77,111,116,105,111,110, 32, 84,114, 97, + 99,107,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, - 56, 21,198, 6, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,232, 29,198, 6, 0, 0, 0, 0, 72, 13,198, 6, 0, 0, 0, 0, - 88,251,197, 6, 0, 0, 0, 0, 40,249,197, 6, 0, 0, 0, 0,232,250,197, 6, 0, 0, 0, 0,200,251,197, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 2, 0, 0, 93, 1, 0, 0,194, 2, 0, 0, 2, 2, 48, 2,102, 1, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 27,198, 6, 0, 0, 0, 0,232, 27,198, 6, 0, 0, 0, 0, - 40, 22,198, 6, 0, 0, 0, 0,120, 26,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40, 22,198, 6, 0, 0, 0, 0, -215, 0, 0, 0, 1, 0, 0, 0,152, 23,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 89, 68, - 0, 0, 0, 0, 0, 0,208, 65,154,216, 65, 55, 0, 0, 12, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 2, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 11, 68, 0, 0,200, 65, 0,192, 11, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 48, 2, 26, 0, 48, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 2, 0, 0, 93, 1, 0, 0,118, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,151, 84, 77,215,127, 0, 0, 24, 29, 58, 76,215,127, 0, 0,248, 75, 84, 77, +215,127, 0, 0,184, 25, 86, 77,215,127, 0, 0,184,166,109, 77,215,127, 0, 0, 24,130,111, 77,215,127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,176,172,125, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,248,151, 84, 77,215,127, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,232,100,122, 77,215,127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232,100,122, 77, +215,127, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 88, 20, 86, 77,215,127, 0, 0,248,151, 84, 77,215,127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,211, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88, 20, 86, 77,215,127, 0, 0,211, 0, 0, 0, + 1, 0, 0, 0, 40,207,133, 77,215,127, 0, 0,232,100,122, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,138, 3,211, 1, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40,207,133, 77,215,127, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 24,187, 85, 77, +215,127, 0, 0, 88, 20, 86, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,138, 3, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0, 24,187, 85, 77,215,127, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,136,234, 57, 76,215,127, 0, 0, 40,207,133, 77, +215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136,234, 57, 76, +215,127, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,200, 99,117, 77,215,127, 0, 0, 24,187, 85, 77,215,127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,138, 3,184, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200, 99,117, 77,215,127, 0, 0,211, 0, 0, 0, + 1, 0, 0, 0, 24,176,133, 77,215,127, 0, 0,136,234, 57, 76,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24,176,133, 77,215,127, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,104,141,107, 77, +215,127, 0, 0,200, 99,117, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,138, 3, 84, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,104,141,107, 77,215,127, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,200, 98, 58, 76,215,127, 0, 0, 24,176,133, 77, +215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 1, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200, 98, 58, 76, +215,127, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,248,229, 85, 77,215,127, 0, 0,104,141,107, 77,215,127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,138, 3, 76, 1, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,229, 85, 77,215,127, 0, 0,211, 0, 0, 0, + 1, 0, 0, 0, 24, 29, 58, 76,215,127, 0, 0,200, 98, 58, 76,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180, 1, 76, 1, + 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24, 29, 58, 76,215,127, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,248,229, 85, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180, 1,184, 1, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,248, 75, 84, 77,215,127, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,104, 10, 86, 77,215,127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 88, 20, 86, 77,215,127, 0, 0,232,100,122, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,104, 10, 86, 77,215,127, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 8,198,133, 77,215,127, 0, 0,248, 75, 84, 77, +215,127, 0, 0, 24,187, 85, 77,215,127, 0, 0,232,100,122, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 8,198,133, 77,215,127, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 72,179, 85, 77,215,127, 0, 0,104, 10, 86, 77, +215,127, 0, 0,136,234, 57, 76,215,127, 0, 0, 88, 20, 86, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 72,179, 85, 77,215,127, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 40, 16,108, 77,215,127, 0, 0, 8,198,133, 77, +215,127, 0, 0,136,234, 57, 76,215,127, 0, 0, 24,187, 85, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 40, 16,108, 77,215,127, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,136,236, 85, 77,215,127, 0, 0, 72,179, 85, 77, +215,127, 0, 0,248,151, 84, 77,215,127, 0, 0, 40,207,133, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,136,236, 85, 77,215,127, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,104, 1, 86, 77,215,127, 0, 0, 40, 16,108, 77, +215,127, 0, 0,248,151, 84, 77,215,127, 0, 0,200, 99,117, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,104, 1, 86, 77,215,127, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 72,179, 89, 77,215,127, 0, 0,136,236, 85, 77, +215,127, 0, 0, 24,176,133, 77,215,127, 0, 0, 40,207,133, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 72,179, 89, 77,215,127, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,152, 58, 58, 76,215,127, 0, 0,104, 1, 86, 77, +215,127, 0, 0,200, 99,117, 77,215,127, 0, 0, 24,176,133, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,152, 58, 58, 76,215,127, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 40, 97, 58, 76,215,127, 0, 0, 72,179, 89, 77, +215,127, 0, 0,104,141,107, 77,215,127, 0, 0,200, 99,117, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 40, 97, 58, 76,215,127, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 72,105, 58, 76,215,127, 0, 0,152, 58, 58, 76, +215,127, 0, 0, 24,187, 85, 77,215,127, 0, 0,104,141,107, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 72,105, 58, 76,215,127, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 88,194, 89, 77,215,127, 0, 0, 40, 97, 58, 76, +215,127, 0, 0,136,234, 57, 76,215,127, 0, 0,200, 98, 58, 76,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 88,194, 89, 77,215,127, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 40,189, 89, 77,215,127, 0, 0, 72,105, 58, 76, +215,127, 0, 0,200, 98, 58, 76,215,127, 0, 0, 24,176,133, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 40,189, 89, 77,215,127, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 40, 19,108, 77,215,127, 0, 0, 88,194, 89, 77, +215,127, 0, 0,200, 98, 58, 76,215,127, 0, 0,104,141,107, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 40, 19,108, 77,215,127, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,152, 4,122, 77,215,127, 0, 0, 40,189, 89, 77, +215,127, 0, 0,248,229, 85, 77,215,127, 0, 0,104,141,107, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,152, 4,122, 77,215,127, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 88,104,119, 77,215,127, 0, 0, 40, 19,108, 77, +215,127, 0, 0,200, 98, 58, 76,215,127, 0, 0,248,229, 85, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0, 88,104,119, 77,215,127, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,232,227, 85, 77,215,127, 0, 0,152, 4,122, 77, +215,127, 0, 0, 24, 29, 58, 76,215,127, 0, 0, 24,187, 85, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,232,227, 85, 77,215,127, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,184, 25, 86, 77,215,127, 0, 0, 88,104,119, 77, +215,127, 0, 0,136,234, 57, 76,215,127, 0, 0, 24, 29, 58, 76,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 0, 0, 0,184, 25, 86, 77,215,127, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,227, 85, 77, +215,127, 0, 0, 24, 29, 58, 76,215,127, 0, 0,248,229, 85, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0,184,166,109, 77,215,127, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,232,187, 85, 77,215,127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 24,187, 85, 77,215,127, 0, 0,232,100,122, 77,215,127, 0, 0, 88, 20, 86, 77,215,127, 0, 0,136,234, 57, 76, +215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,138, 3, 0, 0,185, 1, 0, 0,211, 1, 0, 0, 7, 7,139, 3, + 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 8, 0, 72, 18, 82, 5, 0, 0, 0, 0,200,104,119, 77,215,127, 0, 0,200,104,119, 77, +215,127, 0, 0,136, 7, 86, 77,215,127, 0, 0, 24,235, 85, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 88,198,107, 77,215,127, 0, 0, 72, 88, 58, 76,215,127, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136, 7, 86, 77, +215,127, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 24,235, 85, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,192,161, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 98, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +138, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128, 98, 68, 0, 0,200, 65, 0,128, 98, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,139, 3, 26, 0,139, 3, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,138, 3, 0, 0,185, 1, 0, 0,210, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,139, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 20, 82, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152, 23,198, 6, 0, 0, 0, 0, -215, 0, 0, 0, 1, 0, 0, 0, 8, 25,198, 6, 0, 0, 0, 0, 40, 22,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, - 0, 0,112,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,157,195, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, - 18, 0, 0, 0, 75, 1, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, - 18, 0, 0, 0, 75, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 10, 6, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,217, 0, 76, 1,200, 0, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0,119, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 76, 1, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,235, 85, 77, +215,127, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 7, 86, 77,215,127, 0, 0, 0, 0, 0, 0, + 0,192,239, 68, 0, 0, 0, 0, 0, 0,200, 65, 0, 0, 0, 0, 0,192,168, 68, 0, 0,224, 64, 0, 0, 16, 65, 70, 5, 0, 0, + 87, 5, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 69, 5, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0, 87, 5, 2, 0, 70, 5, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,211, 1, 0, 0,211, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 19, 82, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,232,187, 85, 77, +215,127, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,104,138, 89, 77,215,127, 0, 0,184,166,109, 77,215,127, 0, 0,248,151, 84, 77, +215,127, 0, 0,200, 99,117, 77,215,127, 0, 0, 24,176,133, 77,215,127, 0, 0, 40,207,133, 77,215,127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,138, 3, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 15, 15,139, 3, 84, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0,184,225, 81, 5, 0, 0, 0, 0,216, 55,122, 77,215,127, 0, 0,216, 55,122, 77,215,127, 0, 0,248, 56,122, 77, +215,127, 0, 0,168,131,119, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,244, 85, 77, +215,127, 0, 0,184, 71,119, 77,215,127, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248, 56,122, 77,215,127, 0, 0,215, 0, 0, 0, + 1, 0, 0, 0,168,131,119, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 98, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0,192, 98, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,138, 3, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,128, 98, 68, 0, 0,200, 65, 0,128, 98, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,139, 3, 26, 0,139, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,138, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,139, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,200,227, 81, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8, 25,198, 6, 0, 0, 0, 0, -215, 0, 0, 0, 1, 0, 0, 0,120, 26,198, 6, 0, 0, 0, 0,152, 23,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168,131,119, 77,215,127, 0, 0,215, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 56,122, 77,215,127, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, + 0, 0, 72, 66, 88,218,103,194, 40,147,141, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,138, 3, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,138, 3, 0, 0, 18, 0, 0, 0, + 57, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, + 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,139, 3, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,138, 3, 0, 0, 26, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,139, 3, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,216,226, 81, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0,216, 55,122, 77,215,127, 0, 0,190, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 47, 2, 0, 0, 47, 2, 0, 0,119, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,104,138, 89, 77, +215,127, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,136,124,119, 77,215,127, 0, 0,232,187, 85, 77,215,127, 0, 0,200, 99,117, 77, +215,127, 0, 0,104,141,107, 77,215,127, 0, 0,200, 98, 58, 76,215,127, 0, 0, 24,176,133, 77,215,127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,138, 3, 0, 0, 85, 0, 0, 0, 75, 1, 0, 0, 20, 20,139, 3,247, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0,136, 71, 82, 5, 0, 0, 0, 0, 40,221, 85, 77,215,127, 0, 0, 24, 17,108, 77,215,127, 0, 0,216, 14,122, 77, +215,127, 0, 0,200, 6,122, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,111, 58, 76, +215,127, 0, 0, 56, 91,122, 77,215,127, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216, 14,122, 77,215,127, 0, 0,215, 0, 0, 0, + 1, 0, 0, 0,136,196,121, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,229, 67, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0,192, 98, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,138, 3, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,128, 98, 68, 0, 0,200, 65, 0,128, 98, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 0, 0, 10, 0,139, 3, 26, 0,139, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,138, 3, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,139, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 24, 80, 82, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,196,121, 77,215,127, 0, 0,215, 0, 0, 0, + 1, 0, 0, 0,184,150, 89, 77,215,127, 0, 0,216, 14,122, 77,215,127, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0, 0,202,194, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0,202,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, +100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, +100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,101, 0,143, 0,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0,231, 0, 0, 0, 75, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,160, 0,101, 0, 0, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,216, 76, 82, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184,150, 89, 77,215,127, 0, 0,215, 0, 0, 0, + 1, 0, 0, 0, 8,243, 57, 76,215,127, 0, 0,136,196,121, 77,215,127, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0, 0,240,194, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0,240,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, +119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, +119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0,111, 0, 0, 0,230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,160, 0,120, 0, 0, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,200, 77, 82, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,102,122, 77, +215,127, 0, 0, 40,102,122, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 40,102,122, 77,215,127, 0, 0,213, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 78, 82, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 78,101,119, 32, 83, 99,114,101,101,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,216,255,143, 0, 16, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 8,243, 57, 76,215,127, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 88,193,107, 77,215,127, 0, 0,184,150, 89, 77, +215,127, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0, 0, 93,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0, 93,195, + 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,221, 0,143, 0, +221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,235, 2, 0, 0,138, 3, 0, 0,111, 0, 0, 0, + 75, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,221, 0, 0, 0, 4, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 74, 82, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 12,108, 77,215,127, 0, 0,120, 12,108, 77,215,127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 88, 1, 0, 0,120, 12,108, 77,215,127, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,120, 75, 82, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,103,112,101,110, + 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,103,112,101,110, + 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105, +108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,255,143, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,193,107, 77,215,127, 0, 0,215, 0, 0, 0, + 1, 0, 0, 0,168,226,121, 77,215,127, 0, 0, 8,243, 57, 76,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0, 93,195, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 67, 0, 0, 75,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0, 18, 0, 0, 0, +220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 8, 0, 0, 0, + 2, 0, 3, 3, 0, 0, 2, 0, 6, 0,160, 0,221, 0,160, 0,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,160, 0, 0, 0,160, 0, 0, 0,111, 0, 0, 0, 75, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 8, 81, 82, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168,226,121, 77,215,127, 0, 0,215, 0, 0, 0, + 1, 0, 0, 0,200, 6,122, 77,215,127, 0, 0, 88,193,107, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 32,193, + 0, 0, 32, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 32,193, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 0, 0, 0,128, 0, 0,124,146, 72,255,255,127,127, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,160, 0, 0, 0,160, 0, 0, 0,111, 0, 0, 0, 75, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,152, 73, 82, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200, 6,122, 77,215,127, 0, 0,215, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,226,121, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128,255, 0, 0,128,127, 0, 0,128,255, 0, 0,128,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 2, 0, 0, 0, 0, 0, 0, +221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, + 1, 0, 3, 0, 0, 0, 0, 4, 10, 0, 75, 2,221, 0, 75, 2,221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,160, 0, 0, 0,234, 2, 0, 0,111, 0, 0, 0, 75, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 75, 2,221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,168, 72, 82, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 1, 0, 0, 40,221, 85, 77,215,127, 0, 0,196, 0, 0, 0, + 1, 0, 0, 0, 24, 17,108, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 17,200, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248, 8, 86, 77, +215,127, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,168,165,107, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 96,146, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 98, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +138, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128, 98, 68, 0, 0,200, 65, 0,128, 98, 68, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,139, 3, 26, 0,139, 3, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,138, 3, 0, 0, 85, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,139, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,227, 81, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168,165,107, 77, +215,127, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 8, 86, 77,215,127, 0, 0, 0, 0, 64,192, + 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, 88,218,103,194, 40,147,141, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,138, 3, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, +138, 3, 0, 0, 18, 0, 0, 0,220, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, + 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,139, 3,221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,138, 3, 0, 0,111, 0, 0, 0, 75, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,139, 3,221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,226, 81, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, 24, 17,108, 77, +215,127, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,221, 85, 77,215,127, 0, 0,248, 8, 86, 77, +215,127, 0, 0,168,165,107, 77,215,127, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, +160, 0, 0, 0,136,124,119, 77,215,127, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 24,130,111, 77,215,127, 0, 0,104,138, 89, 77, +215,127, 0, 0,248,229, 85, 77,215,127, 0, 0, 24, 29, 58, 76,215,127, 0, 0,136,234, 57, 76,215,127, 0, 0,200, 98, 58, 76, +215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,181, 1, 0, 0,138, 3, 0, 0, 77, 1, 0, 0,183, 1, 0, 0, 20, 20,214, 1, +107, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 71, 82, 5, 0, 0, 0, 0,216,135, 89, 77,215,127, 0, 0,184,110,119, 77, +215,127, 0, 0,200,144,121, 77,215,127, 0, 0,104, 90,111, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,200,190, 85, 77,215,127, 0, 0, 8,131,111, 77,215,127, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,144,121, 77, +215,127, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 56, 54,122, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,212, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,235, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +213, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,234, 67, 0, 0,200, 65, 0,128,234, 67, 0, 0,200, 65, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 0, 0, 10, 0,214, 1, 26, 0,214, 1, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,181, 1, 0, 0,138, 3, 0, 0, 77, 1, 0, 0,102, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 80, 82, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56, 54,122, 77, +215,127, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,232,133,119, 77,215,127, 0, 0,200,144,121, 77,215,127, 0, 0, 0, 0, 0, 0, + 0,128,178, 67, 0, 0,194,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0,194,194, 0, 0, 0, 0,143, 0, 0, 0, +160, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +142, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 97, 0,143, 0, 97, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,181, 1, 0, 0,181, 1, 0, 0,103, 1, 0, 0,183, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 76, 82, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232,133,119, 77, +215,127, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,136,121, 58, 76,215,127, 0, 0, 56, 54,122, 77,215,127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,181, 1, 0, 0,181, 1, 0, 0,103, 1, 0, 0,183, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 77, 82, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,121, 58, 76, +215,127, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,184,157,107, 77,215,127, 0, 0,232,133,119, 77,215,127, 0, 0, 0, 0, 0, 0, + 0,128,178, 67, 0, 0,194,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0,194,194, 0, 0, 0, 0,143, 0, 0, 0, +160, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +142, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 97, 0,143, 0, 97, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,181, 1, 0, 0,181, 1, 0, 0,103, 1, 0, 0,183, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 74, 82, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 72,204, 89, 77,215,127, 0, 0, 72,204, 89, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72,204, 89, 77, +215,127, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 75, 82, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,255,143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 35, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184,157,107, 77,215,127, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,136, 98,111, 77, +215,127, 0, 0,136,121, 58, 76,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0,194,194, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 67, 0, 0,124,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +159, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0, 18, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 8, 4, 0, 0, 2, 0, 3, 3, 0, 0, 2, 4, + 6, 0,160, 0, 81, 0,160, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,181, 1, 0, 0, + 84, 2, 0, 0,103, 1, 0, 0,183, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 81, 0, + 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 81, 82, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136, 98,111, 77,215,127, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,104, 90,111, 77, +215,127, 0, 0,184,157,107, 77,215,127, 0, 0, 0, 0, 32,193, 0, 0,235, 67, 0, 0, 36,194, 0, 0, 0, 0, 0, 0, 32,193, + 0, 0,235, 67, 0, 0,124,194, 0, 0, 0, 0, 37, 1, 0, 0, 54, 1, 0, 0, 18, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, + 36, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 36, 1, 0, 0, 18, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,124,146, 72,255,255,127,127, 10,215, 35, 60, 0, 0, 72, 66, 74, 0, 0, 0, 0, 0, 0, 2, 16, 0, 2, 4, + 4, 0, 54, 1, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 2, 0, 0, +138, 3, 0, 0,103, 1, 0, 0,183, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 1, 81, 0, + 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 73, 82, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104, 90,111, 77,215,127, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,136, 98,111, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,255, + 0, 0,128,127, 0, 0,128,255, 0, 0,128,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, + 10, 0,150, 0, 97, 0,150, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 72, 82, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 48, 1, 0, 0,216,135, 89, 77,215,127, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,184,110,119, 77, +215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,200, 0, 0, + 0, 0, 2, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,235, 57, 76,215,127, 0, 0,215, 0, 0, 0, + 1, 0, 0, 0,216,188, 85, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,146, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,235, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,213, 1, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,128,234, 67, 0, 0,200, 65, 0,128,234, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,214, 1, 26, 0,214, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,181, 1, 0, 0,138, 3, 0, 0, 61, 1, 0, 0, 86, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,214, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,200,227, 81, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216,188, 85, 77,215,127, 0, 0,215, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,235, 57, 76,215,127, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, + 0, 0, 72, 66, 88,218,103,194, 40,147,141, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,213, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,213, 1, 0, 0, 18, 0, 0, 0, + 96, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, + 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,214, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,181, 1, 0, 0,138, 3, 0, 0, 87, 1, 0, 0,183, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,214, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,216,226, 81, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0,184,110,119, 77,215,127, 0, 0,190, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,135, 89, 77,215,127, 0, 0,200,235, 57, 76,215,127, 0, 0,216,188, 85, 77, +215,127, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 24,130,111, 77, +215,127, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,124,119, 77,215,127, 0, 0,104,141,107, 77, +215,127, 0, 0, 24,187, 85, 77,215,127, 0, 0, 24, 29, 58, 76,215,127, 0, 0,248,229, 85, 77,215,127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,179, 1, 0, 0, 77, 1, 0, 0,183, 1, 0, 0, 20, 20,180, 1,107, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0,136, 71, 82, 5, 0, 0, 0, 0,216,141,107, 77,215,127, 0, 0,248,242, 85, 77,215,127, 0, 0,184, 71, 58, 76, +215,127, 0, 0, 72, 70,119, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 23,122, 77, +215,127, 0, 0, 88,135,119, 77,215,127, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184, 71, 58, 76,215,127, 0, 0,215, 0, 0, 0, + 1, 0, 0, 0, 56, 60, 58, 76,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,212, 67, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0,218, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,128,217, 67, 0, 0,200, 65, 0,128,217, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 0, 0, 10, 0,180, 1, 26, 0,180, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,179, 1, 0, 0, 77, 1, 0, 0,102, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,180, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 24, 80, 82, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56, 60, 58, 76,215,127, 0, 0,215, 0, 0, 0, + 1, 0, 0, 0, 56, 37, 58, 76,215,127, 0, 0,184, 71, 58, 76,215,127, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0, 0,194,194, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0,194,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, + 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, + 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 97, 0,143, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,103, 1, 0, 0,183, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,216, 76, 82, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56, 37, 58, 76,215,127, 0, 0,215, 0, 0, 0, + 1, 0, 0, 0, 72, 78, 54, 76,215,127, 0, 0, 56, 60, 58, 76,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,103, 1, 0, 0,183, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,200, 77, 82, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72, 78, 54, 76,215,127, 0, 0,215, 0, 0, 0, + 1, 0, 0, 0, 8, 22,122, 77,215,127, 0, 0, 56, 37, 58, 76,215,127, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0, 0,194,194, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0,194,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, + 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, + 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 97, 0,143, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,103, 1, 0, 0,183, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,136, 74, 82, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 75,111, 77, +215,127, 0, 0,200, 75,111, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,200, 75,111, 77,215,127, 0, 0,213, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 75, 82, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,232,255,143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 8, 22,122, 77,215,127, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,120, 16,122, 77,215,127, 0, 0, 72, 78, 54, 76, +215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,103, 1, 0, 0, +183, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 81, 82, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,120, 16,122, 77,215,127, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 72, 70,119, 77,215,127, 0, 0, 8, 22,122, 77, +215,127, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 32,193, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 32,193, + 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 80, 0, 0, 0, 18, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 18, 0, 0, 0,179, 1, 0, 0, 18, 0, 0, 0, 80, 0, 0, 0, 0, 0,128, 0, 0, 0,128, 0, 0,124,146, 72, +255,255,127,127, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,180, 1, 81, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,179, 1, 0, 0,103, 1, 0, 0, +183, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180, 1, 81, 0, 0, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 73, 82, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 72, 70,119, 77,215,127, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 16,122, 77, +215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,255, 0, 0,128,127, 0, 0,128,255, + 0, 0,128,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,116, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 10, 0,116, 0, 97, 0,116, 0, + 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 72, 82, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 48, 1, 0, 0,216,141,107, 77,215,127, 0, 0,196, 0, 0, 0, 1, 0, 0, 0,216,246,121, 77,215,127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,200, 0, 0, 0, 0, 1, 0, 20, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,177,107, 77,215,127, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,248, 66,111, 77, +215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 2, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0,218, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,217, 67, + 0, 0,200, 65, 0,128,217, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 0, 0, + 10, 0,180, 1, 26, 0,180, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +179, 1, 0, 0, 61, 1, 0, 0, 86, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180, 1, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 55, 82, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248, 66,111, 77,215,127, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,136,177,107, 77,215,127, 0, 0, 0, 0, 0, 0, 0,128,217, 67, 0, 0, 0, 0, 0, 0,192, 66,128,171,223, 63, + 84,160,216, 67, 0, 0, 0, 0, 0, 0,192, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, + 10, 0,180, 1, 97, 0,180, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +179, 1, 0, 0, 87, 1, 0, 0,183, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180, 1, 97, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 53, 82, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,160, 2, 0, 0,216,246,121, 77,215,127, 0, 0,186, 0, 0, 0, 1, 0, 0, 0,248,242, 85, 77, +215,127, 0, 0,216,141,107, 77,215,127, 0, 0,136,177,107, 77,215,127, 0, 0,248, 66,111, 77,215,127, 0, 0, 9, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0, 40,250, 85, 77,215,127, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,104,241,120, 77,215,127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,146, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,218, 67, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,217, 67, 0, 0,200, 65, 0,128,217, 67, + 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,180, 1, 26, 0,180, 1, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,179, 1, 0, 0, 61, 1, 0, 0, + 86, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,227, 81, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 40, 1, 0, 0,104,241,120, 77,215,127, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,250, 85, 77, +215,127, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66, 88,218,103,194, 40,147,141, 67, 0, 0, 0, 0, + 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,179, 1, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0,179, 1, 0, 0, 18, 0, 0, 0, 96, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, + 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,180, 1, 97, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,179, 1, 0, 0, 87, 1, 0, 0, +183, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,226, 81, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +208, 0, 0, 0,248,242, 85, 77,215,127, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,246,121, 77, +215,127, 0, 0, 40,250, 85, 77,215,127, 0, 0,104,241,120, 77,215,127, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, + 1, 0, 0, 0, 83, 78, 0, 0, 8, 1, 0, 0,152, 29,115, 5, 0, 0, 0, 0,210, 0, 0, 0, 1, 0, 0, 0, 8,109,115, 5, + 0, 0, 0, 0,104,207, 85, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 83, 99, +114,105,112,116,105,110,103, 0,103, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 30,115, 5, 0, 0, 0, 0,152, 36,115, 5, + 0, 0, 0, 0, 8, 37,115, 5, 0, 0, 0, 0, 56, 46,115, 5, 0, 0, 0, 0,168, 46,115, 5, 0, 0, 0, 0,184,101,115, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232, 30,115, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 88, 31,115, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0, 88, 31,115, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,200, 31,115, 5, 0, 0, 0, 0,232, 30,115, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200, 31,115, 5, + 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 56, 32,115, 5, 0, 0, 0, 0, 88, 31,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56, 32,115, 5, 0, 0, 0, 0,211, 0, 0, 0, + 1, 0, 0, 0,168, 32,115, 5, 0, 0, 0, 0,200, 31,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168, 32,115, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 24, 33,115, 5, + 0, 0, 0, 0, 56, 32,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 3, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0, 24, 33,115, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,136, 33,115, 5, 0, 0, 0, 0,168, 32,115, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,168, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136, 33,115, 5, + 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,248, 33,115, 5, 0, 0, 0, 0, 24, 33,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,240, 5,168, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248, 33,115, 5, 0, 0, 0, 0,211, 0, 0, 0, + 1, 0, 0, 0,104, 34,115, 5, 0, 0, 0, 0,136, 33,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104, 34,115, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,216, 34,115, 5, + 0, 0, 0, 0,248, 33,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 1, 1, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,216, 34,115, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 72, 35,115, 5, 0, 0, 0, 0,104, 34,115, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,104, 1, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72, 35,115, 5, + 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,184, 35,115, 5, 0, 0, 0, 0,216, 34,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,248, 2,104, 1, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184, 35,115, 5, 0, 0, 0, 0,211, 0, 0, 0, + 1, 0, 0, 0, 40, 36,115, 5, 0, 0, 0, 0, 72, 35,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,236, 2, + 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40, 36,115, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,152, 36,115, 5, + 0, 0, 0, 0,184, 35,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,236, 2, 0, 0, 0, 0, 68, 65, 84, 65, + 32, 0, 0, 0,152, 36,115, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 36,115, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 2,168, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8, 37,115, 5, + 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,120, 37,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 31,115, 5, + 0, 0, 0, 0,200, 31,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120, 37,115, 5, + 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,232, 37,115, 5, 0, 0, 0, 0, 8, 37,115, 5, 0, 0, 0, 0, 88, 31,115, 5, + 0, 0, 0, 0,168, 32,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232, 37,115, 5, + 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 88, 38,115, 5, 0, 0, 0, 0,120, 37,115, 5, 0, 0, 0, 0,200, 31,115, 5, + 0, 0, 0, 0, 24, 33,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88, 38,115, 5, + 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,200, 38,115, 5, 0, 0, 0, 0,232, 37,115, 5, 0, 0, 0, 0,168, 32,115, 5, + 0, 0, 0, 0, 24, 33,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200, 38,115, 5, + 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 56, 39,115, 5, 0, 0, 0, 0, 88, 38,115, 5, 0, 0, 0, 0, 24, 33,115, 5, + 0, 0, 0, 0,136, 33,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56, 39,115, 5, + 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,168, 39,115, 5, 0, 0, 0, 0,200, 38,115, 5, 0, 0, 0, 0, 56, 32,115, 5, + 0, 0, 0, 0,248, 33,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168, 39,115, 5, + 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 24, 40,115, 5, 0, 0, 0, 0, 56, 39,115, 5, 0, 0, 0, 0,232, 30,115, 5, + 0, 0, 0, 0,104, 34,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24, 40,115, 5, + 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,136, 40,115, 5, 0, 0, 0, 0,168, 39,115, 5, 0, 0, 0, 0,168, 32,115, 5, + 0, 0, 0, 0,104, 34,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136, 40,115, 5, + 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,248, 40,115, 5, 0, 0, 0, 0, 24, 40,115, 5, 0, 0, 0, 0,136, 33,115, 5, + 0, 0, 0, 0,216, 34,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248, 40,115, 5, + 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,104, 41,115, 5, 0, 0, 0, 0,136, 40,115, 5, 0, 0, 0, 0,248, 33,115, 5, + 0, 0, 0, 0,216, 34,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104, 41,115, 5, + 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,216, 41,115, 5, 0, 0, 0, 0,248, 40,115, 5, 0, 0, 0, 0,104, 34,115, 5, + 0, 0, 0, 0, 72, 35,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216, 41,115, 5, + 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 72, 42,115, 5, 0, 0, 0, 0,104, 41,115, 5, 0, 0, 0, 0,216, 34,115, 5, + 0, 0, 0, 0, 72, 35,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72, 42,115, 5, + 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,184, 42,115, 5, 0, 0, 0, 0,216, 41,115, 5, 0, 0, 0, 0,248, 33,115, 5, + 0, 0, 0, 0,184, 35,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184, 42,115, 5, + 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 40, 43,115, 5, 0, 0, 0, 0, 72, 42,115, 5, 0, 0, 0, 0,136, 33,115, 5, + 0, 0, 0, 0,184, 35,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40, 43,115, 5, + 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,152, 43,115, 5, 0, 0, 0, 0,184, 42,115, 5, 0, 0, 0, 0, 24, 33,115, 5, + 0, 0, 0, 0, 40, 36,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152, 43,115, 5, + 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 8, 44,115, 5, 0, 0, 0, 0, 40, 43,115, 5, 0, 0, 0, 0, 56, 32,115, 5, + 0, 0, 0, 0, 40, 36,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8, 44,115, 5, + 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,120, 44,115, 5, 0, 0, 0, 0,152, 43,115, 5, 0, 0, 0, 0,184, 35,115, 5, + 0, 0, 0, 0, 40, 36,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120, 44,115, 5, + 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,232, 44,115, 5, 0, 0, 0, 0, 8, 44,115, 5, 0, 0, 0, 0,168, 32,115, 5, + 0, 0, 0, 0,152, 36,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232, 44,115, 5, + 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 88, 45,115, 5, 0, 0, 0, 0,120, 44,115, 5, 0, 0, 0, 0,136, 33,115, 5, + 0, 0, 0, 0,152, 36,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88, 45,115, 5, + 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,200, 45,115, 5, 0, 0, 0, 0,232, 44,115, 5, 0, 0, 0, 0, 72, 35,115, 5, + 0, 0, 0, 0,152, 36,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200, 45,115, 5, + 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 56, 46,115, 5, 0, 0, 0, 0, 88, 45,115, 5, 0, 0, 0, 0,104, 34,115, 5, + 0, 0, 0, 0,216, 34,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56, 46,115, 5, + 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 45,115, 5, 0, 0, 0, 0,232, 30,115, 5, + 0, 0, 0, 0,248, 33,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,168, 46,115, 5, + 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,120, 50,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 32,115, 5, + 0, 0, 0, 0, 88, 31,115, 5, 0, 0, 0, 0,200, 31,115, 5, 0, 0, 0, 0, 24, 33,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,169, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7, 93, 0, 1, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,108,115, 5, 0, 0, 0, 0,120,108,115, 5, 0, 0, 0, 0,152, 47,115, 5, + 0, 0, 0, 0, 8, 49,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152, 47,115, 5, 0, 0, 0, 0,215, 0, 0, 0, + 1, 0, 0, 0, 8, 49,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,148, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,236, 3, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8, 49,115, 5, 0, 0, 0, 0,215, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 47,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,239, 68, 0, 0, 0, 0, + 0, 0, 28, 66, 0, 0, 0, 0, 0,192,237, 68, 0, 0, 0, 0, 0, 0,134, 66,110, 7, 0, 0,127, 7, 0, 0, 0, 0, 0, 0, + 66, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,109, 7, 0, 0, 0, 0, 0, 0, + 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 2, 0, 0, + 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,127, 7, 67, 0,110, 7, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,169, 3, 0, 0,235, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,127, 7, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,120, 50,115, 5, 0, 0, 0, 0,214, 0, 0, 0, + 1, 0, 0, 0, 8, 75,115, 5, 0, 0, 0, 0,168, 46,115, 5, 0, 0, 0, 0,248, 33,115, 5, 0, 0, 0, 0,184, 35,115, 5, + 0, 0, 0, 0, 40, 36,115, 5, 0, 0, 0, 0, 56, 32,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0, +126, 7, 0, 0, 0, 0, 0, 0,235, 2, 0, 0, 4, 4,142, 1,236, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,200, 73,115, 5, 0, 0, 0, 0,200, 73,115, 5, 0, 0, 0, 0,104, 51,115, 5, 0, 0, 0, 0,216, 52,115, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104, 51,115, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,216, 52,115, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0,199, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,141, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,198, 67, + 0, 0,200, 65, 0,128,198, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, + 10, 0,142, 1, 26, 0,142, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0, +126, 7, 0, 0,210, 2, 0, 0,235, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 1, 26, 0, + 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216, 52,115, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,104, 51,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,198, 67, 0, 0, 61,196, 0, 0, 0, 0, 0, 0, 0, 0, +254,127,190, 67,254,127, 52,196, 0, 0, 0, 0,125, 1, 0, 0,142, 1, 0, 0, 0, 0, 0, 0,209, 2, 0, 0, 0, 0, 0, 0, +126, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0,209, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, + 6, 0,142, 1,210, 2,125, 1,210, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0, +126, 7, 0, 0, 0, 0, 0, 0,209, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 1,210, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 54,115, 5, 0, 0, 0, 0, 40, 72,115, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72, 54,115, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232, 55,115, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, + 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, + 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116, +101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255, +124, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,232, 55,115, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,136, 57,115, 5, 0, 0, 0, 0, 72, 54,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255,124, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,136, 57,115, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40, 59,115, 5, + 0, 0, 0, 0,232, 55,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101, +114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, +124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 40, 59,115, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,200, 60,115, 5, 0, 0, 0, 0,136, 57,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254,124, 1,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,200, 60,115, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,104, 62,115, 5, + 0, 0, 0, 0, 40, 59,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, + 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, +124, 1, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,104, 62,115, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8, 64,115, 5, 0, 0, 0, 0,200, 60,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117, +114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117, +114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254,124, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8, 64,115, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,168, 65,115, 5, + 0, 0, 0, 0,104, 62,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100, +105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,254, +124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168, 65,115, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 72, 67,115, 5, 0, 0, 0, 0, 8, 64,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99, +101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99, +101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,253,124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72, 67,115, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232, 68,115, 5, + 0, 0, 0, 0,168, 65,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, + 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,253, +124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,232, 68,115, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,136, 70,115, 5, 0, 0, 0, 0, 72, 67,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253,124, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,136, 70,115, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40, 72,115, 5, + 0, 0, 0, 0,232, 68,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, + 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112, +117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,253, +124, 1,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 40, 72,115, 5, + 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 70,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,253,124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,200, 73,115, 5, 0, 0, 0, 0,179, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0, +160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 8, 75,115, 5, + 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,152, 88,115, 5, 0, 0, 0, 0,120, 50,115, 5, 0, 0, 0, 0, 72, 35,115, 5, + 0, 0, 0, 0,152, 36,115, 5, 0, 0, 0, 0,136, 33,115, 5, 0, 0, 0, 0,216, 34,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0,105, 1, 0, 0,167, 3, 0, 0, 1, 1,247, 2, 63, 2, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 86,115, 5, 0, 0, 0, 0,232, 86,115, 5, 0, 0, 0, 0,248, 75,115, 5, + 0, 0, 0, 0,184, 81,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248, 75,115, 5, 0, 0, 0, 0,215, 0, 0, 0, + 1, 0, 0, 0,104, 77,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68, 0, 0, 0, 0, + 0, 0,208, 65, 0, 0, 0, 0, 0,192, 61, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,246, 2, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0,128, 61, 68, 0, 0,200, 65, 0,128, 61, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,247, 2, 26, 0,247, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0,105, 1, 0, 0,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,247, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104, 77,115, 5, 0, 0, 0, 0,215, 0, 0, 0, + 1, 0, 0, 0,216, 78,115, 5, 0, 0, 0, 0,248, 75,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, + 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, + 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,249, 2, 0, 0,249, 2, 0, 0,131, 1, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 37, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216, 78,115, 5, 0, 0, 0, 0,215, 0, 0, 0, + 1, 0, 0, 0, 72, 80,115, 5, 0, 0, 0, 0,104, 77,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, + 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, +119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, +119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0,131, 1, 0, 0,131, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72, 80,115, 5, 0, 0, 0, 0,215, 0, 0, 0, + 1, 0, 0, 0,184, 81,115, 5, 0, 0, 0, 0,216, 78,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, +121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, +121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, + 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,131, 1, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184, 81,115, 5, 0, 0, 0, 0,215, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 80,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0,131, 1, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,247, 2, 37, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 40, 83,115, 5, 0, 0, 0, 0, 68, 65, 84, 65,112, 3, 0, 0, 40, 83,115, 5, 0, 0, 0, 0,173, 0, 0, 0, + 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74,141,193, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,225,215,163,188, + 0, 0, 0, 0, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, + 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, + 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, + 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,248,209,213, 64, + 0, 0,128, 63,178,157,229, 62, 30,132, 27,191,222,160, 81,191,184,158, 81,191,117, 90,127, 63,166,235,149, 62, 9, 46,185, 62, + 35, 44,185, 62,145,180,109,188,212, 60,173, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, +214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,160, 32,182,252, 5,136,190, 43, 33, 3, 62,235,135, 23, 63, + 0, 0, 96, 53,215,104, 25,196,133,132,135, 67, 37, 9,167,195,136,252, 71,194, 3, 54, 25, 68,158, 87,135,195,205,209,166, 67, +151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, + 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, + 0, 0,128, 63,178,157,229, 62, 30,132, 27,191,222,160, 81,191,184,158, 81,191,117, 90,127, 63,166,235,149, 62, 9, 46,185, 62, + 35, 44,185, 62,145,180,109,188,212, 60,173, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65, +214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 46, 86, 45, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 86, 45, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 86, 45, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, + 0, 0, 0, 0,107,227, 29, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,255,255, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 30, 33, 12, 66, 86,152,137, 66, +116, 27,126, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 1, 0, 0,232, 86,115, 5, + 0, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65,205,204, 76, 62, 2, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,232, 1,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8,128, 0, 0, 0, 12, 66, 0, 0,128, 63, 10,215, 35, 60, 0, 0,250, 67, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, + 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,152, 88,115, 5, 0, 0, 0, 0,214, 0, 0, 0, + 1, 0, 0, 0,248, 94,115, 5, 0, 0, 0, 0, 8, 75,115, 5, 0, 0, 0, 0,232, 30,115, 5, 0, 0, 0, 0,104, 34,115, 5, + 0, 0, 0, 0,216, 34,115, 5, 0, 0, 0, 0,248, 33,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +239, 5, 0, 0, 0, 0, 0, 0,103, 1, 0, 0, 18, 18,240, 5,104, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 40, 93,115, 5, 0, 0, 0, 0, 40, 93,115, 5, 0, 0, 0, 0,136, 89,115, 5, 0, 0, 0, 0,248, 90,115, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136, 89,115, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,248, 90,115, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,160, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, + 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, + 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, + 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, + 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248, 90,115, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,136, 89,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,189, 68, 0, 0, 0, 0, 0, 0, 51, 67, 0, 0, 0, 0, + 0,224,187, 68, 0, 0, 0, 0, 0, 0,167, 67,223, 5, 0, 0,240, 5, 0, 0, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 5, 0, 0, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 2, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, + 10, 0,240, 5, 78, 1,223, 5, 78, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +239, 5, 0, 0, 26, 0, 0, 0,103, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 78, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104, 92,115, 5, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,216, 92,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,216, 92,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,136, 1, 0, 0, 40, 93,115, 5, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,104, 92,115, 5, 0, 0, 0, 0,104, 92,115, 5, 0, 0, 0, 0, 62, 62, 62, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,121,116,104,111,110, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 0, 0, 8, 4, 0, 0, + 68, 65, 84, 65,160, 0, 0, 0,248, 94,115, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,184,101,115, 5, 0, 0, 0, 0, +152, 88,115, 5, 0, 0, 0, 0,184, 35,115, 5, 0, 0, 0, 0,136, 33,115, 5, 0, 0, 0, 0, 24, 33,115, 5, 0, 0, 0, 0, + 40, 36,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,126, 7, 0, 0,237, 2, 0, 0,167, 3, 0, 0, + 3, 3,142, 1,187, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 98,115, 5, 0, 0, 0, 0, +200, 98,115, 5, 0, 0, 0, 0,232, 95,115, 5, 0, 0, 0, 0, 88, 97,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +232, 95,115, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 88, 97,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,199, 67, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,141, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,198, 67, 0, 0,200, 65, 0,128,198, 67, 0, 0,200, 65, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,142, 1, 26, 0,142, 1, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,126, 7, 0, 0,237, 2, 0, 0, 6, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, + 88, 97,115, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 95,115, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0,128,141, 67, 0, 0,244,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,190, 67, 0, 0, 15,195, 0, 0, 0, 0, +125, 1, 0, 0,142, 1, 0, 0, 18, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0,124, 1, 0, 0, 18, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 18, 6, 0, 0, 2, 0, 3, 3, 0, 0, 12, 4, 6, 0,142, 1,161, 0,125, 1,143, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,126, 7, 0, 0, 7, 3, 0, 0,167, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 1,161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, +200, 98,115, 5, 0, 0, 0, 0,183, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 40,100,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, 40,100,115, 5, 0, 0, 0, 0,237, 0, 0, 0, 1, 0, 0, 0, + 14, 0, 0, 0, 14, 0, 0, 0,136,100,115, 5, 0, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0,136,100,115, 5, 0, 0, 0, 0, +236, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,120,228,115, 5, 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, +120,228,115, 5, 0, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0,120,228,115, 5, 0, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0, +120,228,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 24,255,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, +136, 8,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 40, 63,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, +104, 22,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,120, 44,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, +200, 15,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 88,250,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, +232, 1,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 72,249,115, 5, 0, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0, +120,228,115, 5, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,184,101,115, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,248, 94,115, 5, 0, 0, 0, 0,104, 34,115, 5, 0, 0, 0, 0,168, 32,115, 5, 0, 0, 0, 0, +152, 36,115, 5, 0, 0, 0, 0, 72, 35,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0, +105, 1, 0, 0,167, 3, 0, 0, 9, 9,248, 2, 63, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +136,105,115, 5, 0, 0, 0, 0,136,105,115, 5, 0, 0, 0, 0,168,102,115, 5, 0, 0, 0, 0, 24,104,115, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,168,102,115, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 24,104,115, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 62, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 61, 68, 0, 0,200, 65, + 0,192, 61, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,248, 2, + 26, 0,248, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0, +105, 1, 0, 0,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 2, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 24,104,115, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +168,102,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,189, 68, 0, 0, 0, 0, 0,192, 22, 68,248,150, 23, 68, 8, 41,100, 68, + 46,224, 62, 67,233, 15,206, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0, 0, 0, 0, 0, 36, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, 10, 0,248, 2, + 37, 2,248, 2, 37, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0, +131, 1, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 2, 37, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,160, 2, 0, 0,136,105,115, 5, 0, 0, 0, 0,186, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, + 0, 0, 0, 0, 12, 0, 7, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61, +231, 1, 0, 0,243, 1, 0, 0,122, 1, 0, 0,124, 1, 0, 0,231, 1, 0, 0,243, 1, 0, 0, 4, 0, 0, 0,124, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 8, 1, 0, 0, + 8,109,115, 5, 0, 0, 0, 0,210, 0, 0, 0, 1, 0, 0, 0, 40,180,115, 5, 0, 0, 0, 0,152, 29,115, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 85, 86, 32, 69,100,105,116,105,110,103, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 88,110,115, 5, 0, 0, 0, 0,104,113,115, 5, 0, 0, 0, 0,216,113,115, 5, 0, 0, 0, 0, + 56,118,115, 5, 0, 0, 0, 0,168,118,115, 5, 0, 0, 0, 0,200,162,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,120,228,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 88,110,115, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,200,110,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200,110,115, 5, 0, 0, 0, 0, +211, 0, 0, 0, 1, 0, 0, 0, 56,111,115, 5, 0, 0, 0, 0, 88,110,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56,111,115, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, +168,111,115, 5, 0, 0, 0, 0,200,110,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,168,111,115, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 24,112,115, 5, 0, 0, 0, 0, + 56,111,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 24,112,115, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,136,112,115, 5, 0, 0, 0, 0,168,111,115, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136,112,115, 5, 0, 0, 0, 0, +211, 0, 0, 0, 1, 0, 0, 0,248,112,115, 5, 0, 0, 0, 0, 24,112,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +126, 7,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,112,115, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, +104,113,115, 5, 0, 0, 0, 0,136,112,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 3,234, 3, 1, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,104,113,115, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +248,112,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 3, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +216,113,115, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 72,114,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +200,110,115, 5, 0, 0, 0, 0, 56,111,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 72,114,115, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,184,114,115, 5, 0, 0, 0, 0,216,113,115, 5, 0, 0, 0, 0, +200,110,115, 5, 0, 0, 0, 0, 24,112,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +184,114,115, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 40,115,115, 5, 0, 0, 0, 0, 72,114,115, 5, 0, 0, 0, 0, + 56,111,115, 5, 0, 0, 0, 0,136,112,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 40,115,115, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,152,115,115, 5, 0, 0, 0, 0,184,114,115, 5, 0, 0, 0, 0, + 24,112,115, 5, 0, 0, 0, 0,136,112,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +152,115,115, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 8,116,115, 5, 0, 0, 0, 0, 40,115,115, 5, 0, 0, 0, 0, + 24,112,115, 5, 0, 0, 0, 0,248,112,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 8,116,115, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,120,116,115, 5, 0, 0, 0, 0,152,115,115, 5, 0, 0, 0, 0, + 88,110,115, 5, 0, 0, 0, 0,104,113,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +120,116,115, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,232,116,115, 5, 0, 0, 0, 0, 8,116,115, 5, 0, 0, 0, 0, + 88,110,115, 5, 0, 0, 0, 0, 24,112,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +232,116,115, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 88,117,115, 5, 0, 0, 0, 0,120,116,115, 5, 0, 0, 0, 0, +248,112,115, 5, 0, 0, 0, 0,104,113,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 88,117,115, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,200,117,115, 5, 0, 0, 0, 0,232,116,115, 5, 0, 0, 0, 0, +136,112,115, 5, 0, 0, 0, 0,248,112,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +200,117,115, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 56,118,115, 5, 0, 0, 0, 0, 88,117,115, 5, 0, 0, 0, 0, +168,111,115, 5, 0, 0, 0, 0,104,113,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 56,118,115, 5, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,117,115, 5, 0, 0, 0, 0, +168,111,115, 5, 0, 0, 0, 0,136,112,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, +168,118,115, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,120,122,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24,112,115, 5, 0, 0, 0, 0,200,110,115, 5, 0, 0, 0, 0, 56,111,115, 5, 0, 0, 0, 0,136,112,115, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7, 27, 0, 1, 0, + 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,179,115, 5, 0, 0, 0, 0,152,179,115, 5, 0, 0, 0, 0, +152,119,115, 5, 0, 0, 0, 0, 8,121,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152,119,115, 5, 0, 0, 0, 0, +215, 0, 0, 0, 1, 0, 0, 0, 8,121,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,148, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8,121,115, 5, 0, 0, 0, 0, +215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,119,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, + 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, + 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, + 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,120,122,115, 5, 0, 0, 0, 0, +214, 0, 0, 0, 1, 0, 0, 0,200,162,115, 5, 0, 0, 0, 0,168,118,115, 5, 0, 0, 0, 0, 88,110,115, 5, 0, 0, 0, 0, + 24,112,115, 5, 0, 0, 0, 0,248,112,115, 5, 0, 0, 0, 0,104,113,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,199, 3, 0, 0, 0, 0, 0, 0,233, 3, 0, 0, 6, 6,200, 3,234, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 88,129,115, 5, 0, 0, 0, 0, 88,129,115, 5, 0, 0, 0, 0,104,123,115, 5, 0, 0, 0, 0, +232,127,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104,123,115, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, +216,124,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,215, 67, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0,114, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,192,113, 68, 0, 0,200, 65, 0,192,113, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 0, 10, 0,200, 3, 26, 0,200, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,199, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +200, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216,124,115, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, +232,127,115, 5, 0, 0, 0, 0,104,123,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 67, 0,192,115,196, 0, 0, 0, 0, + 0, 0, 0, 0,254,255, 74, 67,254,255,115,196, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0,207, 3, 0, 0, + 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0,207, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, + 18, 0, 0, 4, 6, 0,220, 0,208, 3,203, 0,208, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,219, 0, 0, 0, 26, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +220, 0,208, 3, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,126,115, 5, 0, 0, 0, 0, + 72,126,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72,126,115, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,152,255,202, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, +232,127,115, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,124,115, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 51, 51, 43,191,154,153,213, 63, 51, 51,131,191,154,153, 1, 64, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,236, 2, 0, 0, 0, 0, 0, 0,208, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 0,199, 3, 0, 0, 26, 0, 0, 0,233, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,236, 2,208, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 33, 0, 0, + 88,129,115, 5, 0, 0, 0, 0,184, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 65, + 0, 0, 0, 0,154,153,153, 62, 0, 0, 0, 0,100, 0, 0, 0,154,153,153, 62,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, +200,162,115, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,122,115, 5, 0, 0, 0, 0, +104,113,115, 5, 0, 0, 0, 0,248,112,115, 5, 0, 0, 0, 0,136,112,115, 5, 0, 0, 0, 0,168,111,115, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,201, 3, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,233, 3, 0, 0, 1, 1,182, 3,234, 3, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,177,115, 5, 0, 0, 0, 0,232,177,115, 5, 0, 0, 0, 0, +184,163,115, 5, 0, 0, 0, 0,184,172,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184,163,115, 5, 0, 0, 0, 0, +215, 0, 0, 0, 1, 0, 0, 0, 40,165,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,109, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,181, 3, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 64,109, 68, 0, 0,200, 65, 0, 64,109, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,182, 3, 26, 0,182, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,201, 3, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,182, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40,165,115, 5, 0, 0, 0, 0, +215, 0, 0, 0, 1, 0, 0, 0, 56,168,115, 5, 0, 0, 0, 0,184,163,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 67, + 0, 0, 86,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0, 86,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, + 0, 0, 0, 0, 87, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 0, 0, 0, 0, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, 88, 3,143, 0, 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,201, 3, 0, 0,104, 4, 0, 0,146, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 88, 3, 0, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +152,166,115, 5, 0, 0, 0, 0,152,166,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152,166,115, 5, 0, 0, 0, 0, +213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111, +100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,111, 98,106,101, 99,116,109,111, +100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 84,111,111,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233,253,143, 0,255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 56,168,115, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 72,171,115, 5, 0, 0, 0, 0, + 40,165,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 67, 0, 0,242,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, + 91, 90,242,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, +120, 0,143, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,201, 3, 0, 0,104, 4, 0, 0, + 26, 0, 0, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,120, 0, 0, 0, 6, 0, + 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,169,115, 5, 0, 0, 0, 0,168,169,115, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 88, 1, 0, 0,168,169,115, 5, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, + 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,112,101,114, 97,116,111,114, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255,144, 0, 16, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72,171,115, 5, 0, 0, 0, 0, +215, 0, 0, 0, 1, 0, 0, 0,184,172,115, 5, 0, 0, 0, 0, 56,168,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, + 0,128,126,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67,255,191,126,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, + 18, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, + 18, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, + 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, 13, 4,163, 0,251, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,126, 7, 0, 0, 26, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,120, 26,198, 6, 0, 0, 0, 0, -215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 25,198, 6, 0, 0, 0, 0, 0, 0, 16,193, 0, 0,130, 67, - 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, - 18, 0, 0, 0, 75, 1, 0, 0, 18, 0, 0, 0, 86, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 86, 1, 0, 0, - 18, 0, 0, 0, 75, 1, 0, 0,111, 18,131, 58,111, 18,131, 58, 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0, -105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 87, 1, 76, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 0, 0, 47, 2, 0, 0,119, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 87, 1, 76, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184,172,115, 5, 0, 0, 0, 0, +215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,171,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,232, 27,198, 6, 0, 0, 0, 0, -178, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,105, 4, 0, 0,126, 7, 0, 0, 26, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 22, 3,208, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 29,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,112, 0, 0, 0, - 40, 29,198, 6, 0, 0, 0, 0, 37, 1, 0, 0, 1, 0, 0, 0,104, 38,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 40,174,115, 5, 0, 0, 0, 0, 68, 65, 84, 65,112, 3, 0, 0, 40,174,115, 5, 0, 0, 0, 0, +173, 0, 0, 0, 1, 0, 0, 0, 72,246,172, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 13,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, + 74,215, 76,190, 0, 0, 0, 0, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, + 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 25, 95,192, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,160, 84, 89,188, 0, 0, 0, 0, 52,177,205,190,142, 74, 70, 62, +166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,188,173, 54, 64,136, 95,161,191, +147,231,198, 63, 0, 0,128, 63,185,214, 13, 63,208,249,224,190, 48,180, 81,191,184,158, 81,191,189,188,157, 63,140,225, 88, 62, + 26, 63,185, 62, 35, 44,185, 62,241,213,146,188,206,156,122, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, +100, 98, 82, 64, 0, 25, 95, 64,121, 92,155, 62,151,198, 44, 63,192,214, 32,188, 0, 0, 40,180,195, 15,188,190,132, 75, 53, 62, +216,125, 81, 63, 0, 0,192,179,115, 77,100,193, 17,173,201, 64,181,148,248,192,203,247,159,192,233, 74, 87, 65,247, 46,190,192, + 88,106,234, 64, 45, 8,160, 64, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, + 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 25, 95,192, 0, 0,128, 63,185,214, 13, 63,208,249,224,190, 48,180, 81,191,184,158, 81,191,189,188,157, 63,140,225, 88, 62, + 26, 63,185, 62, 35, 44,185, 62,241,213,146,188,206,156,122, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, +100, 98, 82, 64, 0, 25, 95, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,160, 0, 0, 0,232, 29,198, 6, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 56, 21,198, 6, 0, 0, 0, 0,200,251,197, 6, 0, 0, 0, 0,232,250,197, 6, 0, 0, 0, 0,152,249,197, 6, 0, 0, 0, 0, - 8,250,197, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 2, 0, 0,240, 4, 0, 0, 93, 1, 0, 0,194, 2, 0, 0, - 8, 8,192, 2,102, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 36,198, 6, 0, 0, 0, 0, -152, 36,198, 6, 0, 0, 0, 0,216, 30,198, 6, 0, 0, 0, 0, 40, 35,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -216, 30,198, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 72, 32,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,245, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 48, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,191, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 47, 68, 0, 0,200, 65, 0,192, 47, 68, 0, 0,200, 65, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,192, 2, 26, 0,192, 2, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 2, 0, 0,240, 4, 0, 0, 93, 1, 0, 0,118, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 72, 32,198, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,184, 33,198, 6, 0, 0, 0, 0,216, 30,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,248,201,250, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,201,250, 62, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,201,250, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 0, 25, 95, 64, 0, 25, 95, 64, + 0, 0, 0, 0, 0, 0, 0, 0,114,145,245, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, +255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 30, 33, 12, 66, + 85,152,137, 66,116, 27,126, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 1, 0, 0, +232,177,115, 5, 0, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65,205,204, 76, 62, + 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,232, 1,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0,240, 4, 0, 0,119, 1, 0, 0,194, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, -184, 33,198, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 40, 35,198, 6, 0, 0, 0, 0, 72, 32,198, 6, 0, 0, 0, 0, - 0, 0,240,195, 0, 0,240, 67, 0, 0,135,195, 0, 0,135, 67,238, 33,143,196,238, 33,143, 68, 0, 0, 7,196, 0, 0, 7, 68, + 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8,128, 0, 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61, + 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, + 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,191, 2, 0, 0, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 59, 70, 0,128, 59, 70, -172,197, 39, 55, 0, 80,195, 71, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 4, 0, 0,192, 2, 76, 1,192, 2, 76, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 2, 0, 0,240, 4, 0, 0,119, 1, 0, 0,194, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 2, 76, 1, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, - 40, 35,198, 6, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 33,198, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, - 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0, 18, 0, 0, 0,201, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 18, 0, 0, 0,201, 2, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0, 0, 0, 32, 65, 0, 0, 0, 63, 0,124,146, 72, 0, 0, 0, 66, - 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0,202, 2, 76, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, -152, 36,198, 6, 0, 0, 0, 0,180, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 83, 67, 0, 0,216, 11, 0, 0,104, 38,198, 6, 0, 0, 0, 0,171, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 83, 99,101,110,101, 0, -116, 97,103,101, 0, 97,105,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,136, 50,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, -248, 64,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 51,198, 6, 0, 0, 0, 0, 56, 52,198, 6, 0, 0, 0, 0, - 88, 51,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -168, 52,198, 6, 0, 0, 0, 0,136, 4,230, 0, 73,127, 0, 0, 17, 2, 24, 0, 90, 90, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,192, 0, 0, 0, 68,172, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0,100, 0, 0, 0, - 0, 0, 1, 0, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, - 32, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 6, 0, 50, 0,141, 0,128, 7, 56, 4, 8, 0, 8, 0, 24, 0, 17, 0, 0, 0, - 90, 0, 1, 0, 81, 0, 0, 0, 23, 0, 33, 0, 2, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 8, 0, 24, 0, 10, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 56,198, 6, 0, 0, 0, 0,136, 56,198, 6, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 1, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 5, 0, 2, 0, 1, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 47,116,109,112, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 31, 5, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,205,204, 76, 63,205,204, 76, 63,205,204, 76, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 16, 0, 0, 0,128, 63, 0, 0,128, 63, -173, 2, 95, 0,154,153,217, 63, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 66, 76, 69, 78, 68, 69, 82, 95, 82, 69, 78, 68, 69, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68,172, 0, 0, 0, 0,128, 63,102,166,171, 67, 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,128,155,194, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128,230, 81, 0, 73,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,183,159, 6, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, - 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0,205,204,204, 61,154,153,153, 62,205,204, 76, 62,219, 15, 73, 63,102,102,102, 63, - 0, 0, 0, 64,154,153, 25, 63, 0, 0, 64, 65,102,102,166, 63, 0, 0, 0, 65, 0, 0,160, 65, 6, 0, 0, 0, 0, 0,192, 64, - 0, 0,128, 63, 0, 0, 0, 0,205,204, 28, 65, 0, 0, 0, 0, 32, 0, 0, 0, 32, 0, 1, 0,128, 0, 5, 0,218, 0, 0, 0, - 60, 0, 5, 0, 1, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,195,245, 28,193, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,128, 0, 0, 0,136, 50,198, 6, 0, 0, 0, 0, - 9, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88, 51,198, 6, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0, -200, 51,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,216, 2,222, 1, -104, 74,198, 6, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200, 51,198, 6, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0, - 56, 52,198, 6, 0, 0, 0, 0, 88, 51,198, 6, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 4, 0, 0,173, 3, 35, 3, -168, 81,198, 6, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56, 52,198, 6, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,200, 51,198, 6, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0,161, 0, 65, 2, -200, 67,198, 6, 0, 0, 0, 0, 68, 65, 84, 65,232, 1, 0, 0,168, 52,198, 6, 0, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0, -216, 54,198, 6, 0, 0, 0, 0, 88, 55,198, 6, 0, 0, 0, 0,216, 55,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 1, 0, 1, 0,205,204, 76, 63, 0, 0,180, 66, 9, 0, 1, 0, 0, 0,128, 63,111, 18,131, 58,205,204,204, 61, - 0, 0, 1, 0, 32, 0, 32, 0, 32, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 80, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 5, 0, 5, 0,255,255, - 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, - 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, - 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, - 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 10,215, 35, 60,205,204,204, 61, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 0,205,204,204, 61,205,204,204, 61, -102,102,166, 63, 0, 0,192, 63, 0, 0,240, 65, 72,225,122, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 67, 2, 0, 3, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 35, 0, 0, 0,204,197,121, 63, 0, 0, 0, 63, 35, 0, 0, 0,204,197,121, 63, - 0, 0, 0, 63, 17, 0, 0, 0, 68, 65, 84, 65, 56, 0, 0, 0,216, 54,198, 6, 0, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, -152,227,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 1, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 0, 0, 0, - 88, 55,198, 6, 0, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -200,200,255,128, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,216, 55,198, 6, 0, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0, -136, 84,199, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,100,100,128, 1, 0, 0, 0,128, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 0, 0,155, 9, 25, 67,190, 23,237, 64, 75, 1,147, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65,120, 0, 0, 0,136, 56,198, 6, 0, 0, 0, 0,149, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 76, 97,121,101,114, 0,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 15, 0, 0, 0, 0, 0, -255,127, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 67, 65, 0, 0,200, 0, 0, 0, 40, 59,198, 6, 0, 0, 0, 0, - 22, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 65, 67, 97,109,101,114, 97, 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 8, 1, 0, 0, 40,180,115, 5, 0, 0, 0, 0, +210, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,109,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 86,105,100,101,111, 32, 69,100,105,116,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 63,205,204,204, 61, 0, 0,200, 66, 0, 0, 12, 66,161, 14,234, 64, - 0, 0, 0, 63, 0, 0, 0, 66, 0, 0,144, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0, 16, 2, 0, 0, 56, 60,198, 6, 0, 0, 0, 0, - 36, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 76, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +120,181,115, 5, 0, 0, 0, 0, 72,186,115, 5, 0, 0, 0, 0,184,186,115, 5, 0, 0, 0, 0, 40,194,115, 5, 0, 0, 0, 0, +152,194,115, 5, 0, 0, 0, 0,248,219,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +120,228,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,247,255,239, 65, 0, 0,150, 66, -154,153, 25, 62, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,152, 62,198, 6, 0, 0, 0, 0, 2, 0, 0, 0, 46, 26,128, 63, - 25, 4,240, 65, 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64,205,204, 76, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 64, 11, 3, 0, 1, 0, 0, 0, 0, 2, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, -111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120,181,115, 5, 0, 0, 0, 0, +211, 0, 0, 0, 1, 0, 0, 0,232,181,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232,181,115, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, + 88,182,115, 5, 0, 0, 0, 0,120,181,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 2, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 88,182,115, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,200,182,115, 5, 0, 0, 0, 0, +232,181,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4,222, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +200,182,115, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 56,183,115, 5, 0, 0, 0, 0, 88,182,115, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56,183,115, 5, 0, 0, 0, 0, +211, 0, 0, 0, 1, 0, 0, 0,168,183,115, 5, 0, 0, 0, 0,200,182,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168,183,115, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, + 24,184,115, 5, 0, 0, 0, 0, 56,183,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4,195, 2, 1, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0, 24,184,115, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,136,184,115, 5, 0, 0, 0, 0, +168,183,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 92, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, +136,184,115, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,248,184,115, 5, 0, 0, 0, 0, 24,184,115, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,184,115, 5, 0, 0, 0, 0, +211, 0, 0, 0, 1, 0, 0, 0,104,185,115, 5, 0, 0, 0, 0,136,184,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 2,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104,185,115, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, +216,185,115, 5, 0, 0, 0, 0,248,184,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 1, 0, 0, 0, 0, + 68, 65, 84, 65, 32, 0, 0, 0,216,185,115, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 72,186,115, 5, 0, 0, 0, 0, +104,185,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 2, 92, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, + 72,186,115, 5, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,185,115, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 68, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,186,115, 5, 0, 0, 0, 0, +212, 0, 0, 0, 1, 0, 0, 0, 40,187,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,181,115, 5, 0, 0, 0, 0, + 88,182,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,187,115, 5, 0, 0, 0, 0, +212, 0, 0, 0, 1, 0, 0, 0,152,187,115, 5, 0, 0, 0, 0,184,186,115, 5, 0, 0, 0, 0,232,181,115, 5, 0, 0, 0, 0, + 56,183,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,187,115, 5, 0, 0, 0, 0, +212, 0, 0, 0, 1, 0, 0, 0, 8,188,115, 5, 0, 0, 0, 0, 40,187,115, 5, 0, 0, 0, 0, 88,182,115, 5, 0, 0, 0, 0, +168,183,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,188,115, 5, 0, 0, 0, 0, +212, 0, 0, 0, 1, 0, 0, 0,120,188,115, 5, 0, 0, 0, 0,152,187,115, 5, 0, 0, 0, 0, 56,183,115, 5, 0, 0, 0, 0, +168,183,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,188,115, 5, 0, 0, 0, 0, +212, 0, 0, 0, 1, 0, 0, 0,232,188,115, 5, 0, 0, 0, 0, 8,188,115, 5, 0, 0, 0, 0,168,183,115, 5, 0, 0, 0, 0, + 24,184,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,188,115, 5, 0, 0, 0, 0, +212, 0, 0, 0, 1, 0, 0, 0, 88,189,115, 5, 0, 0, 0, 0,120,188,115, 5, 0, 0, 0, 0,120,181,115, 5, 0, 0, 0, 0, +136,184,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,189,115, 5, 0, 0, 0, 0, +212, 0, 0, 0, 1, 0, 0, 0,200,189,115, 5, 0, 0, 0, 0,232,188,115, 5, 0, 0, 0, 0, 56,183,115, 5, 0, 0, 0, 0, +248,184,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,189,115, 5, 0, 0, 0, 0, +212, 0, 0, 0, 1, 0, 0, 0, 56,190,115, 5, 0, 0, 0, 0, 88,189,115, 5, 0, 0, 0, 0,136,184,115, 5, 0, 0, 0, 0, +104,185,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,190,115, 5, 0, 0, 0, 0, +212, 0, 0, 0, 1, 0, 0, 0,168,190,115, 5, 0, 0, 0, 0,200,189,115, 5, 0, 0, 0, 0,104,185,115, 5, 0, 0, 0, 0, +216,185,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,190,115, 5, 0, 0, 0, 0, +212, 0, 0, 0, 1, 0, 0, 0, 24,191,115, 5, 0, 0, 0, 0, 56,190,115, 5, 0, 0, 0, 0,248,184,115, 5, 0, 0, 0, 0, +216,185,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,191,115, 5, 0, 0, 0, 0, +212, 0, 0, 0, 1, 0, 0, 0,136,191,115, 5, 0, 0, 0, 0,168,190,115, 5, 0, 0, 0, 0, 24,184,115, 5, 0, 0, 0, 0, + 72,186,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,191,115, 5, 0, 0, 0, 0, +212, 0, 0, 0, 1, 0, 0, 0,248,191,115, 5, 0, 0, 0, 0, 24,191,115, 5, 0, 0, 0, 0,200,182,115, 5, 0, 0, 0, 0, + 72,186,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,191,115, 5, 0, 0, 0, 0, +212, 0, 0, 0, 1, 0, 0, 0,104,192,115, 5, 0, 0, 0, 0,136,191,115, 5, 0, 0, 0, 0,136,184,115, 5, 0, 0, 0, 0, + 72,186,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,192,115, 5, 0, 0, 0, 0, +212, 0, 0, 0, 1, 0, 0, 0,216,192,115, 5, 0, 0, 0, 0,248,191,115, 5, 0, 0, 0, 0,120,181,115, 5, 0, 0, 0, 0, +200,182,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,192,115, 5, 0, 0, 0, 0, +212, 0, 0, 0, 1, 0, 0, 0, 72,193,115, 5, 0, 0, 0, 0,104,192,115, 5, 0, 0, 0, 0,168,183,115, 5, 0, 0, 0, 0, +248,184,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,193,115, 5, 0, 0, 0, 0, +212, 0, 0, 0, 1, 0, 0, 0,184,193,115, 5, 0, 0, 0, 0,216,192,115, 5, 0, 0, 0, 0, 24,184,115, 5, 0, 0, 0, 0, +216,185,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,193,115, 5, 0, 0, 0, 0, +212, 0, 0, 0, 1, 0, 0, 0, 40,194,115, 5, 0, 0, 0, 0, 72,193,115, 5, 0, 0, 0, 0, 56,183,115, 5, 0, 0, 0, 0, +104,185,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,194,115, 5, 0, 0, 0, 0, +212, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,193,115, 5, 0, 0, 0, 0, 24,184,115, 5, 0, 0, 0, 0, +104,185,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,152,194,115, 5, 0, 0, 0, 0, +214, 0, 0, 0, 1, 0, 0, 0,104,198,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,183,115, 5, 0, 0, 0, 0, +232,181,115, 5, 0, 0, 0, 0, 88,182,115, 5, 0, 0, 0, 0,168,183,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,240, 4, 0, 0,196, 2, 0, 0,222, 2, 0, 0, 7, 7,241, 4, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,232,227,115, 5, 0, 0, 0, 0,232,227,115, 5, 0, 0, 0, 0,136,195,115, 5, 0, 0, 0, 0, +248,196,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,195,115, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, +248,196,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,148, 68, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 32,158, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0,158, 68, 0, 0,200, 65, 0, 0,158, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 0, 10, 0,241, 4, 26, 0,241, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,240, 4, 0, 0,196, 2, 0, 0,221, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +241, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248,196,115, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,136,195,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, + 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, + 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,222, 2, 0, 0,222, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,104,198,115, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, + 88,203,115, 5, 0, 0, 0, 0,152,194,115, 5, 0, 0, 0, 0,120,181,115, 5, 0, 0, 0, 0,136,184,115, 5, 0, 0, 0, 0, + 72,186,115, 5, 0, 0, 0, 0,200,182,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, + 0, 0, 0, 0, 67, 0, 0, 0, 15, 15,241, 4, 68, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 56,202,115, 5, 0, 0, 0, 0, 56,202,115, 5, 0, 0, 0, 0, 88,199,115, 5, 0, 0, 0, 0,200,200,115, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 88,199,115, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,200,200,115, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,140, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,158, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0,158, 68, 0, 0,200, 65, + 0, 0,158, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,241, 4, + 26, 0,241, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 4, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,200,200,115, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 88,199,115, 5, 0, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, + 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 18, 0, 0, 0, 41, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, + 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,241, 4, + 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, + 26, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 4, 42, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,208, 0, 0, 0, 56,202,115, 5, 0, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,136, 64,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, -152, 62,198, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 2, 0, 1, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63, - 40, 64,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 31, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 88,203,115, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, + 72,211,115, 5, 0, 0, 0, 0,104,198,115, 5, 0, 0, 0, 0,136,184,115, 5, 0, 0, 0, 0,104,185,115, 5, 0, 0, 0, 0, + 24,184,115, 5, 0, 0, 0, 0, 72,186,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, + 69, 0, 0, 0, 91, 1, 0, 0, 8, 8,241, 4, 23, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8,210,115, 5, 0, 0, 0, 0, 8,210,115, 5, 0, 0, 0, 0, 72,204,115, 5, 0, 0, 0, 0,152,208,115, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 72,204,115, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,184,205,115, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 26, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,158, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0,158, 68, 0, 0,200, 65, + 0, 0,158, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,241, 4, + 26, 0,241, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, + 69, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 4, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,184,205,115, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 40,207,115, 5, 0, 0, 0, 0, + 72,204,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 67, 0, 0,125,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, + 1, 0,125,195, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0,252, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0,252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0, +253, 0,203, 0,253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 4, 0, 0,240, 4, 0, 0, + 95, 0, 0, 0, 91, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0,253, 0, 0, 0, 4, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 40,207,115, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,152,208,115, 5, 0, 0, 0, 0, +184,205,115, 5, 0, 0, 0, 0, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0,112,196, 0, 0,112, 68, + 0, 0, 7,196, 0, 0, 7, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,128, 59, 70, 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 4, 0, 0, + 91, 1, 0, 0, 91, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 7, 0, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,152,208,115, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 40,207,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, + 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,252, 0, 0, 0, 18, 0, 0, 0, 20, 4, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 20, 4, 0, 0, 18, 0, 0, 0,252, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 63, + 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0, 21, 4, +253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 4, 0, 0, + 95, 0, 0, 0, 91, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 4,253, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,240, 0, 0, 0, 8,210,115, 5, 0, 0, 0, 0,180, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 40, 64,198, 6, 0, 0, 0, 0, -117, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 68, 65, 84, 65, 40, 0, 0, 0,136, 64,198, 6, 0, 0, 0, 0, 12, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 87, 79, 0, 0, 24, 2, 0, 0,248, 64,198, 6, 0, 0, 0, 0,142, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 87,111,114,108,100, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 72,211,115, 5, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, +248,219,115, 5, 0, 0, 0, 0, 88,203,115, 5, 0, 0, 0, 0,104,185,115, 5, 0, 0, 0, 0, 56,183,115, 5, 0, 0, 0, 0, +248,184,115, 5, 0, 0, 0, 0,216,185,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 2, 0, 0, + 93, 1, 0, 0,194, 2, 0, 0, 2, 2, 48, 2,102, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +248,217,115, 5, 0, 0, 0, 0,248,217,115, 5, 0, 0, 0, 0, 56,212,115, 5, 0, 0, 0, 0,136,216,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 56,212,115, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,168,213,115, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 89, 68, 0, 0, 0, 0, 0, 0,208, 65,154,216, 65, 55, 0, 0, 12, 68, + 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 11, 68, 0, 0,200, 65, + 0,192, 11, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 48, 2, + 26, 0, 48, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 2, 0, 0, + 93, 1, 0, 0,118, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 2, 26, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -114, 99, 80, 61,114, 99, 80, 61,114, 99, 80, 61,199, 54, 36, 60,199, 54, 36, 60,199, 54, 36, 60, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, -205,204, 28, 65, 0, 0, 0, 0, 0, 0, 32, 0,128, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 64, - 0, 0,200, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, - 0, 0,112, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 61, - 0, 0, 5, 0, 0, 0, 0, 0, 10,215,163, 59, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,168,213,115, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 24,215,115, 5, 0, 0, 0, 0, + 56,212,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,112,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, + 0, 0,157,195, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 10, 6, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,217, 0, + 76, 1,200, 0, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0, +119, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 76, 1, 0, 0, 2, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0, 24,215,115, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,136,216,115, 5, 0, 0, 0, 0, +168,213,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 2, 0, 0, 47, 2, 0, 0, +119, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, + 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65, 40, 1, 0, 0,136,216,115, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24,215,115, 5, 0, 0, 0, 0, 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, 0, 0,160, 64, 0, 0, 0, 0, 0, 0,122, 67, + 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0, 18, 0, 0, 0, 86, 1, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 86, 1, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0,111, 18,131, 58,111, 18,131, 58, + 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 87, 1, + 76, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,217, 0, 0, 0, 47, 2, 0, 0, +119, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 1, 76, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,240, 0, 0, 0,248,217,115, 5, 0, 0, 0, 0,178, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 88, 67,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88, 67,198, 6, 0, 0, 0, 0, - 12, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0,200, 67,198, 6, 0, 0, 0, 0, -129, 0, 0, 0, 1, 0, 0, 0,104, 74,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 67, 97,109,101,114, 97, 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, + 56,219,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,112, 0, 0, 0, 56,219,115, 5, 0, 0, 0, 0, 37, 1, 0, 0, 1, 0, 0, 0, +120,228,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,248,219,115, 5, 0, 0, 0, 0, +214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,211,115, 5, 0, 0, 0, 0,216,185,115, 5, 0, 0, 0, 0, +248,184,115, 5, 0, 0, 0, 0,168,183,115, 5, 0, 0, 0, 0, 24,184,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 49, 2, 0, 0,240, 4, 0, 0, 93, 1, 0, 0,194, 2, 0, 0, 8, 8,192, 2,102, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,168,226,115, 5, 0, 0, 0, 0,168,226,115, 5, 0, 0, 0, 0,232,220,115, 5, 0, 0, 0, 0, + 56,225,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232,220,115, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, + 88,222,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,245, 67, 0, 0, 0, 0, 0, 0,208, 65, + 0, 0, 0, 0, 0, 0, 48, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0,192, 47, 68, 0, 0,200, 65, 0,192, 47, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, + 4, 0, 12, 0, 10, 0,192, 2, 26, 0,192, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 49, 2, 0, 0,240, 4, 0, 0, 93, 1, 0, 0,118, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +192, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,222,115, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, +200,223,115, 5, 0, 0, 0, 0,232,220,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 59,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, - 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +240, 4, 0, 0,240, 4, 0, 0,119, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,223,115, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, + 56,225,115, 5, 0, 0, 0, 0, 88,222,115, 5, 0, 0, 0, 0, 0, 0,240,195, 0, 0,240, 67, 0, 0,135,195, 0, 0,135, 67, +238, 33,143,196,238, 33,143, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 2, 0, 0, 0, 0, 0, 0, 75, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 59, 70, 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71, 0, 0, 0, 0, 0, 0, 6, 0, + 0, 0, 0, 4, 0, 0,192, 2, 76, 1,192, 2, 76, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 49, 2, 0, 0,240, 4, 0, 0,119, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +192, 2, 76, 1, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56,225,115, 5, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,200,223,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, + 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0, + 18, 0, 0, 0,201, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,201, 2, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0, + 0, 0, 32, 65, 0, 0, 0, 63, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 8, 0,202, 2, 76, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,168,226,115, 5, 0, 0, 0, 0,180, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,110,101,239, 64,150, 62,208,192, 78,255,170, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 42,254,141, 63,192, 57, 49, 60, 34,159, 80, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,222,149, 47, 63, 53, 70, 58, 63,222, 56, 49,188, 0, 0, 0, 0, 86,126,162,190,227,251,159, 62, - 55, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,149, 84, 28,191, 51,247,227, 62, 0, 0, 0, 0,110,101,239, 64,150, 62,208,192, - 78,255,170, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 1, 0,128, 63, 1, 0,128, 51, 1, 0, 0,179, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0,128, 63, - 1, 0,128, 51, 0, 0, 0, 0, 2, 0, 0,179, 2, 0, 0,167, 1, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 53, 1, 0, 0, 41, - 1, 0,128,168, 0, 0,128, 63,221,149, 47, 63, 86,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62, -149, 84, 28,191, 0, 0, 0, 0,192, 56, 49,188, 55, 53,101, 63, 52,247,227, 62, 0, 0, 0, 0, 90, 38,173,190, 0,222,192,190, -152, 9, 52,193, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63, -187,225, 16, 63, 0, 0,128, 63,205,204,204, 62,237, 54, 32, 63, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 1, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 0, 0,216, 11, 0, 0,120,228,115, 5, 0, 0, 0, 0, +171, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 83, 99,101,110,101, 0,116, 97,103,101, 0, 97,105,110, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,240,115, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,232, 1,116, 5, 0, 0, 0, 0, 24,255,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +104,241,115, 5, 0, 0, 0, 0, 72,242,115, 5, 0, 0, 0, 0,104,241,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,242,115, 5, 0, 0, 0, 0,200,240, 89, 77,215,127, 0, 0, + 17, 2, 24, 0, 90, 90, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 73,198, 6, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 0, 0, 0, 68,172, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0,100, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 6, 0, 50, 0, +141, 0,128, 7, 56, 4, 8, 0, 8, 0, 24, 0, 17, 0, 0, 0, 90, 0, 1, 0, 81, 0, 0, 0, 23, 0, 33, 0, 2, 0, 0, 0, + 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 8, 0, 24, 0, 10, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +152,246,115, 5, 0, 0, 0, 0,152,246,115, 5, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 1, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 5, 0, 2, 0, 1, 0, 1, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47,116,109,112, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0, -136, 73,198, 6, 0, 0, 0, 0,132, 0, 0, 0, 1, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,205,204, 76, 62, 10,215,163, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0,104, 74,198, 6, 0, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0, -168, 81,198, 6, 0, 0, 0, 0,200, 67,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 79, 66, 67,117, 98,101, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 5, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 76, 63,205,204, 76, 63, +205,204, 76, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, 0, 16, 0, 0, 0,128, 63, 0, 0,128, 63,173, 2, 95, 0,154,153,217, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 1, 0,180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 76, 69, 78, 68, 69, 82, 95, + 82, 69, 78, 68, 69, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,172, 0, 0, 0, 0,128, 63, +102,166,171, 67, 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,171,112, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,177,107, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 56, 87, 78, 5, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 1, 0,180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0,205,204,204, 61, +154,153,153, 62,205,204, 76, 62,219, 15, 73, 63,102,102,102, 63, 0, 0, 0, 64,154,153, 25, 63, 0, 0, 64, 65,102,102,166, 63, + 0, 0, 0, 65, 0, 0,160, 65, 6, 0, 0, 0, 0, 0,192, 64, 0, 0,128, 63, 0, 0, 0, 0,205,204, 28, 65, 0, 0, 0, 0, + 32, 0, 0, 0, 32, 0, 1, 0,128, 0, 5, 0,218, 0, 0, 0, 60, 0, 5, 0, 1, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 64, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195,245, 28,193, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 65, 84, 65,128, 0, 0, 0,152,240,115, 5, 0, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +104,241,115, 5, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0,216,241,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 46, 1,176, 0,136, 8,116, 5, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +216,241,115, 5, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0, 72,242,115, 5, 0, 0, 0, 0,104,241,115, 5, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 0, 0, 0, 4, 0, 0,134, 1, 54, 1,200, 15,116, 5, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, + 72,242,115, 5, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,241,115, 5, 0, 0, 0, 0, + 1, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 66, 0,217, 0,232, 1,116, 5, 0, 0, 0, 0, 68, 65, 84, 65,232, 1, 0, 0, +184,242,115, 5, 0, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0,232,244,115, 5, 0, 0, 0, 0,104,245,115, 5, 0, 0, 0, 0, +232,245,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 0, 0,205,204, 76, 63, 0, 0,180, 66, + 9, 0, 1, 0, 0, 0,128, 63,111, 18,131, 58,205,204,204, 61, 0, 0, 1, 0, 32, 0, 32, 0, 32, 0, 1, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 80, 0, 0, 2, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 5, 0, 5, 0,255,255, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, + 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, + 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, + 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 10,215, 35, 60,205,204,204, 61, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0,250, 0,205,204,204, 61,205,204,204, 61,102,102,166, 63, 0, 0,192, 63, 0, 0,240, 65, 72,225,122, 63, +205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 67, 2, 0, 3, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 35, 0, 0, 0, +204,197,121, 63, 0, 0, 0, 63, 35, 0, 0, 0,204,197,121, 63, 0, 0, 0, 63, 17, 0, 0, 0, 68, 65, 84, 65, 56, 0, 0, 0, +232,244,115, 5, 0, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +255,255,255,128, 1, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 0, 0, 0,104,245,115, 5, 0, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0, + 8,161,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,200,255,128, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, +232,245,115, 5, 0, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +255,100,100,128, 1, 0, 0, 0,128, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,155, 9, 25, 67,190, 23,237, 64, + 75, 1,147, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,128, 0, 0, 0,152,246,115, 5, 0, 0, 0, 0, +149, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 76, 97, +121,101,114, 0,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,255,255, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,127, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 65, 0, 0,200, 0, 0, 0, 72,249,115, 5, 0, 0, 0, 0, 22, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 67, 65, 67, 97,109,101,114, 97, 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 0, 0, 0, 0, 63,205,204,204, 61, 0, 0,200, 66, 0, 0, 12, 66,161, 14,234, 64, 0, 0, 0, 63, 0, 0, 0, 66, + 0, 0,144, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0, 16, 2, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 36, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 76, 65, 76, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,247,255,239, 65, 0, 0,150, 66,154,153, 25, 62, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63,184,252,115, 5, 0, 0, 0, 0, 2, 0, 0, 0, 46, 26,128, 63, 25, 4,240, 65, 0, 0, 52, 66, + 0, 0,128, 63, 0, 0, 64, 64,205,204, 76, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 11, 3, 0, 1, 0, 0, 0, + 0, 2, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +168,254,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,184,252,115, 5, 0, 0, 0, 0, +119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67, + 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63, 72,254,115, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 72,254,115, 5, 0, 0, 0, 0,117, 1, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, +168,254,115, 5, 0, 0, 0, 0, 12, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 0, 0, 24, 2, 0, 0, + 24,255,115, 5, 0, 0, 0, 0,142, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 87,111,114,108,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114, 99, 80, 61,114, 99, 80, 61, +114, 99, 80, 61,199, 54, 36, 60,199, 54, 36, 60,199, 54, 36, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 28, 65, 0, 0, 0, 0, + 0, 0, 32, 0,128, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 64, 0, 0,200, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0,112, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 61, 0, 0, 5, 0, 0, 0, 0, 0, + 10,215,163, 59, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 1,116, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120, 1,116, 5, 0, 0, 0, 0, 12, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0,232, 1,116, 5, 0, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0, +136, 8,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 79, 66, 67, 97,109,101,114, 97, 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,104,112,223, 0, 73,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 8,129,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 72,249,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 40, 80,198, 6, 0, 0, 0, 0,120, 80,198, 6, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +110,101,239, 64,150, 62,208,192, 78,255,170, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 42,254,141, 63,192, 57, 49, 60, 34,159, 80, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +222,149, 47, 63, 53, 70, 58, 63,222, 56, 49,188, 0, 0, 0, 0, 86,126,162,190,227,251,159, 62, 55, 53,101, 63, 0, 0, 0, 0, + 7,165, 39, 63,149, 84, 28,191, 51,247,227, 62, 0, 0, 0, 0,110,101,239, 64,150, 62,208,192, 78,255,170, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 1, 0,128, 63, 1, 0,128, 51, 1, 0, 0,179, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0,128, 63, 1, 0,128, 51, 0, 0, 0, 0, + 2, 0, 0,179, 2, 0, 0,167, 1, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 53, 1, 0, 0, 41, 1, 0,128,168, 0, 0,128, 63, +221,149, 47, 63, 86,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0, +192, 56, 49,188, 55, 53,101, 63, 52,247,227, 62, 0, 0, 0, 0, 90, 38,173,190, 0,222,192,190,152, 9, 52,193, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 0, 0, 7, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63, -205,204,204, 62,229,208, 34, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 5, 0, 1, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,187,225, 16, 63, 0, 0,128, 63, +205,204,204, 62,237, 54, 32, 63, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 2, 0, 1, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 80,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 63,225, 0, 73,127, 0, 0, -248, 81,225, 0, 73,127, 0, 0, 25, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 7,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0, 40, 80,198, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,120, 80,198, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0,200, 80,198, 6, 0, 0, 0, 0,132, 0, 0, 0, - 1, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61, -205,204, 76, 62, 10,215,163, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 79, 66, 0, 0, -112, 5, 0, 0,168, 81,198, 6, 0, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 74,198, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 76, 97,109,112, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0,168, 7,116, 5, 0, 0, 0, 0, +132, 0, 0, 0, 1, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, +205,204,204, 61,205,204, 76, 62, 10,215,163, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 79, 66, 0, 0,112, 5, 0, 0,136, 8,116, 5, 0, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0,200, 15,116, 5, 0, 0, 0, 0, +232, 1,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 67,117, 98,101, 0,112, +104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 60,198, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, + 24, 23, 86, 77,215,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 40, 63,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154,112,130, 64,183,178,128, 63,112,236,188, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,229,123, 38, 63, - 87, 43, 98, 61,229,229,238, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54,236,148,190, 25,134,116, 63,236, 13, 98,189, - 0, 0, 0, 0,221,102, 69,191, 57,174, 76,190, 34,194, 26, 63, 0, 0, 0, 0, 37,255, 16, 63,241,161, 95, 62,164,111, 75, 63, - 0, 0, 0, 0,154,112,130, 64,183,178,128, 63,112,236,188, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 72, 14,116, 5, 0, 0, 0, 0,152, 14,116, 5, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 1, 0,128, 50, 0, 0, 0,179, - 0, 0, 0, 0, 1, 0,128, 50, 1, 0,128, 63, 1, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 1, 0, 0, 39, 1, 0, 0, 52, 1, 0,128, 39, 0, 0,128, 63, 54,236,148,190,221,102, 69,191, 38,255, 16, 63, - 0, 0, 0, 0, 24,134,116, 63, 57,174, 76,190,239,161, 95, 62, 0, 0, 0, 0,237, 13, 98,189, 35,194, 26, 63,166,111, 75, 63, - 0, 0, 0, 0,209, 19, 13, 63,241, 65,102,190, 10, 10,231,192, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, - 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, - 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,229,208, 34, 62, 0, 0, 0, 0, -143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 0, 0, 7, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, +100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,229,208, 34, 62, + 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,232, 14,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 27, 86, 77,215,127, 0, 0, 40, 41, 86, 77,215,127, 0, 0, + 25, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,104, 87,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0,104, 87,198, 6, 0, 0, 0, 0,132, 0, 0, 0, 1, 0, 0, 0, 0,192, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0, 72, 14,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,152, 14,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0,232, 14,116, 5, 0, 0, 0, 0,132, 0, 0, 0, 1, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,205,204, 76, 62, 10,215,163, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 77, 65, 0, 0,128, 3, 0, 0, 72, 88,198, 6, - 0, 0, 0, 0, 39, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 90, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 77, 97,116,101,114,105, 97,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0,200, 15,116, 5, + 0, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 8,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 76, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,205,204, 76, 63,205,204, 76, 63,205,204, 76, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 63, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 10,215, 35, 60, 0, 0, 0, 0, 0, 0, 8, 0, 1, 0, 50, 0,205,204, 76, 62, 0, 0,128, 63, 0, 0,128, 63, -205,204, 76, 62, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, - 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 2, 0, 50, 0, 0, 6, 0, 0,128, 63, 0, 0,128, 63, - 18, 0, 18, 0, 10,215,163, 59, 10,215,163, 59, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 4, 0, 67, 0, 64, 3, 67, 0, 64, 3, - 1, 0, 4, 0, 12, 0, 4, 0, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0,128, 64, 0, 0, 0, 63,205,204,204, 61, - 0, 0, 0, 63,205,204,204, 61,205,204,204, 61, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 24, 92,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 93,198, 6, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63,111,148, 26, 63,111,148, 26, 63,111,148, 26, 63,205,204, 76, 61,205,204,204, 61,102,102,166, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 24, 92,198, 6, 0, 0, 0, 0, 25, 0, 0, 0, - 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,110,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 40, 0, 0, 0,152, 93,198, 6, 0, 0, 0, 0, 12, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, 53, 0, 53, 0, 8, 94,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 0, 16, 0, 0, 8, 94,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 2, 2, 51, 2, 2, 2, 51, 6, 6, 6,153, 6, 6, 6,153, 6, 6, 6,153, 4, 4, 4,102, 3, 3, 3,102, - 2, 2, 2, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 51, 8, 8, 8,153, - 11, 11, 11,204, 13, 13, 13,255, 12, 12, 12,255, 12, 12, 12,255, 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, - 9, 9, 9,255, 9, 9, 9,255, 4, 4, 4,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 51, 10, 10, 10,153, 18, 18, 18,255, 20, 20, 20,255, - 22, 22, 22,255, 23, 23, 23,255, 22, 22, 22,255, 20, 20, 20,255, 19, 19, 19,255, 16, 16, 16,255, 14, 14, 14,255, 11, 11, 11,255, - 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7,102, 19, 19, 19,204, 27, 27, 27,255, 31, 31, 31,255, 32, 32, 32,255, - 33, 33, 33,255, 33, 33, 33,255, 31, 31, 31,255, 30, 30, 30,255, 27, 27, 27,255, 25, 25, 25,255, 22, 22, 22,255, 19, 19, 19,255, - 16, 16, 16,255, 12, 12, 12,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 4, 4, 4,102, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,153, 29, 29, 29,255, 37, 37, 37,255, 40, 40, 40,255, 42, 42, 42,255, 42, 42, 42,255, - 43, 43, 43,255, 41, 41, 41,255, 40, 40, 40,255, 38, 38, 38,255, 36, 36, 36,255, 33, 33, 33,255, 30, 30, 30,255, 27, 27, 27,255, - 24, 24, 24,255, 20, 20, 20,255, 16, 16, 16,255, 12, 12, 12,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 7, 7, 7,153, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 13, 13, 13,102, 37, 37, 37,255, 44, 44, 44,255, 48, 48, 48,255, 50, 50, 50,255, 51, 51, 51,255, 51, 51, 51,255, - 50, 50, 50,255, 49, 49, 49,255, 48, 48, 48,255, 45, 45, 45,255, 43, 43, 43,255, 41, 41, 41,255, 37, 37, 37,255, 34, 34, 34,255, - 31, 31, 31,255, 28, 28, 28,255, 24, 24, 24,255, 20, 20, 20,255, 15, 15, 15,255, 11, 11, 11,255, 10, 10, 10,255, 11, 11, 11,255, - 7, 7, 7,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 13, 13, 13,102, 41, 41, 41,255, 50, 50, 50,255, 54, 54, 54,255, 57, 57, 57,255, 58, 58, 58,255, 59, 59, 59,255, 59, 59, 59,255, - 58, 58, 58,255, 57, 57, 57,255, 55, 55, 55,255, 53, 53, 53,255, 51, 51, 51,255, 48, 48, 48,255, 45, 45, 45,255, 41, 41, 41,255, - 38, 38, 38,255, 35, 35, 35,255, 31, 31, 31,255, 27, 27, 27,255, 23, 23, 23,255, 17, 17, 17,255, 12, 12, 12,255, 11, 11, 11,255, - 11, 11, 11,255, 5, 5, 5,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 36, 36, 36,204, 53, 53, 53,255, 59, 59, 59,255, 63, 63, 63,255, 65, 65, 65,255, 66, 66, 66,255, 66, 66, 66,255, 66, 66, 66,255, - 65, 65, 65,255, 64, 64, 64,255, 62, 62, 62,255, 60, 60, 60,255, 57, 57, 57,255, 54, 54, 54,255, 51, 51, 51,255, 48, 48, 48,255, - 44, 44, 44,255, 41, 41, 41,255, 37, 37, 37,255, 33, 33, 33,255, 29, 29, 29,255, 24, 24, 24,255, 19, 19, 19,255, 13, 13, 13,255, - 11, 11, 11,255, 12, 12, 12,255, 3, 3, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 19, 19,102, - 56, 56, 56,255, 64, 64, 64,255, 68, 68, 68,255, 71, 71, 71,255, 73, 73, 73,255, 74, 74, 74,255, 74, 74, 74,255, 73, 73, 73,255, - 72, 72, 72,255, 71, 71, 71,255, 69, 69, 69,255, 67, 67, 67,255, 64, 64, 64,255, 61, 61, 61,255, 58, 58, 58,255, 54, 54, 54,255, - 50, 50, 50,255, 47, 47, 47,255, 43, 43, 43,255, 39, 39, 39,255, 34, 34, 34,255, 30, 30, 30,255, 25, 25, 25,255, 19, 19, 19,255, - 13, 13, 13,255, 12, 12, 12,255, 10, 10, 10,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, 54,255, - 66, 66, 66,255, 72, 72, 72,255, 77, 77, 77,255, 79, 79, 79,255, 81, 81, 81,255, 81, 81, 81,255, 81, 81, 81,255, 80, 80, 80,255, - 79, 79, 79,255, 77, 77, 77,255, 75, 75, 75,255, 73, 73, 73,255, 70, 70, 70,255, 67, 67, 67,255, 63, 63, 63,255, 60, 60, 60,255, - 56, 56, 56,255, 52, 52, 52,255, 49, 49, 49,255, 44, 44, 44,255, 40, 40, 40,255, 35, 35, 35,255, 30, 30, 30,255, 24, 24, 24,255, - 18, 18, 18,255, 12, 12, 12,255, 12, 12, 12,255, 6, 6, 6,102, 0, 0, 0, 0, 0, 0, 0, 0, 22, 22, 22,102, 67, 67, 67,255, - 76, 76, 76,255, 81, 81, 81,255, 84, 84, 84,255, 87, 87, 87,255, 88, 88, 88,255, 88, 88, 88,255, 88, 88, 88,255, 87, 87, 87,255, - 86, 86, 86,255, 84, 84, 84,255, 82, 82, 82,255, 79, 79, 79,255, 76, 76, 76,255, 73, 73, 73,255, 69, 69, 69,255, 65, 65, 65,255, - 62, 62, 62,255, 58, 58, 58,255, 54, 54, 54,255, 49, 49, 49,255, 45, 45, 45,255, 40, 40, 40,255, 35, 35, 35,255, 29, 29, 29,255, - 23, 23, 23,255, 16, 16, 16,255, 12, 12, 12,255, 12, 12, 12,204, 0, 0, 0, 0, 0, 0, 0, 0, 49, 49, 49,204, 76, 76, 76,255, - 84, 84, 84,255, 89, 89, 89,255, 92, 92, 92,255, 94, 94, 94,255, 95, 95, 95,255, 95, 95, 95,255, 95, 95, 95,255, 94, 94, 94,255, - 93, 93, 93,255, 91, 91, 91,255, 88, 88, 88,255, 85, 85, 85,255, 82, 82, 82,255, 79, 79, 79,255, 75, 75, 75,255, 71, 71, 71,255, - 67, 67, 67,255, 63, 63, 63,255, 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255, 45, 45, 45,255, 40, 40, 40,255, 34, 34, 34,255, - 28, 28, 28,255, 21, 21, 21,255, 13, 13, 13,255, 14, 14, 14,255, 0, 0, 0, 0, 14, 14, 14,102, 70, 70, 70,255, 85, 85, 85,255, - 92, 92, 92,255, 97, 97, 97,255,100,100,100,255,102,102,102,255,102,102,102,255,103,103,103,255,102,102,102,255,101,101,101,255, - 99, 99, 99,255, 97, 97, 97,255, 94, 94, 94,255, 91, 91, 91,255, 88, 88, 88,255, 84, 84, 84,255, 81, 81, 81,255, 77, 77, 77,255, - 72, 72, 72,255, 68, 68, 68,255, 64, 64, 64,255, 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255, 44, 44, 44,255, 39, 39, 39,255, - 32, 32, 32,255, 25, 25, 25,255, 17, 17, 17,255, 13, 13, 13,255, 7, 7, 7,102, 24, 24, 24,102, 80, 80, 80,255, 93, 93, 93,255, -100,100,100,255,104,104,104,255,107,107,107,255,109,109,109,255,109,109,109,255,109,109,109,255,109,109,109,255,107,107,107,255, -106,106,106,255,103,103,103,255,100,100,100,255, 97, 97, 97,255, 94, 94, 94,255, 90, 90, 90,255, 86, 86, 86,255, 82, 82, 82,255, - 77, 77, 77,255, 73, 73, 73,255, 69, 69, 69,255, 64, 64, 64,255, 59, 59, 59,255, 54, 54, 54,255, 49, 49, 49,255, 43, 43, 43,255, - 36, 36, 36,255, 29, 29, 29,255, 21, 21, 21,255, 14, 14, 14,255, 10, 10, 10,153, 29, 29, 29,102, 89, 89, 89,255,100,100,100,255, -107,107,107,255,112,112,112,255,114,114,114,255,116,116,116,255,116,116,116,255,116,116,116,255,115,115,115,255,114,114,114,255, -112,112,112,255,110,110,110,255,107,107,107,255,104,104,104,255,100,100,100,255, 96, 96, 96,255, 92, 92, 92,255, 87, 87, 87,255, - 83, 83, 83,255, 78, 78, 78,255, 73, 73, 73,255, 68, 68, 68,255, 63, 63, 63,255, 58, 58, 58,255, 52, 52, 52,255, 46, 46, 46,255, - 40, 40, 40,255, 33, 33, 33,255, 24, 24, 24,255, 17, 17, 17,255, 13, 13, 13,204, 46, 46, 46,153, 95, 95, 95,255,107,107,107,255, -114,114,114,255,118,118,118,255,121,121,121,255,122,122,122,255,123,123,123,255,123,123,123,255,122,122,122,255,122,122,122,255, -120,120,120,255,118,118,118,255,114,114,114,255,110,110,110,255,106,106,106,255,101,101,101,255, 97, 97, 97,255, 92, 92, 92,255, - 87, 87, 87,255, 83, 83, 83,255, 78, 78, 78,255, 73, 73, 73,255, 68, 68, 68,255, 62, 62, 62,255, 56, 56, 56,255, 50, 50, 50,255, - 44, 44, 44,255, 36, 36, 36,255, 28, 28, 28,255, 19, 19, 19,255, 12, 12, 12,204, 47, 47, 47,153,101,101,101,255,113,113,113,255, -120,120,120,255,125,125,125,255,127,127,127,255,129,129,129,255,130,130,130,255,130,130,130,255,131,131,131,255,131,131,131,255, -131,131,131,255,129,129,129,255,125,125,125,255,120,120,120,255,113,113,113,255,108,108,108,255,103,103,103,255, 97, 97, 97,255, - 92, 92, 92,255, 87, 87, 87,255, 82, 82, 82,255, 77, 77, 77,255, 72, 72, 72,255, 66, 66, 66,255, 60, 60, 60,255, 54, 54, 54,255, - 47, 47, 47,255, 39, 39, 39,255, 31, 31, 31,255, 22, 22, 22,255, 12, 12, 12,204, 48, 48, 48,153,106,106,106,255,118,118,118,255, -126,126,126,255,131,131,131,255,134,134,134,255,135,135,135,255,137,137,137,255,138,138,138,255,142,142,142,255,147,147,147,255, -149,149,149,255,148,148,148,255,142,142,142,255,133,133,133,255,124,124,124,255,115,115,115,255,108,108,108,255,102,102,102,255, - 97, 97, 97,255, 92, 92, 92,255, 87, 87, 87,255, 81, 81, 81,255, 75, 75, 75,255, 69, 69, 69,255, 63, 63, 63,255, 57, 57, 57,255, - 49, 49, 49,255, 42, 42, 42,255, 33, 33, 33,255, 24, 24, 24,255, 9, 9, 9,153, 32, 32, 32,102,109,109,109,255,123,123,123,255, -131,131,131,255,136,136,136,255,140,140,140,255,142,142,142,255,144,144,144,255,148,148,148,255,156,156,156,255,168,168,168,255, -176,176,176,255,177,177,177,255,168,168,168,255,153,153,153,255,137,137,137,255,124,124,124,255,114,114,114,255,107,107,107,255, -101,101,101,255, 96, 96, 96,255, 90, 90, 90,255, 85, 85, 85,255, 79, 79, 79,255, 72, 72, 72,255, 66, 66, 66,255, 59, 59, 59,255, - 52, 52, 52,255, 44, 44, 44,255, 35, 35, 35,255, 26, 26, 26,255, 10, 10, 10,153, 17, 17, 17, 51,110,110,110,255,127,127,127,255, -136,136,136,255,142,142,142,255,145,145,145,255,148,148,148,255,151,151,151,255,159,159,159,255,174,174,174,255,195,195,195,255, -212,212,212,255,216,216,216,255,204,204,204,255,179,179,179,255,154,154,154,255,135,135,135,255,121,121,121,255,112,112,112,255, -106,106,106,255, 99, 99, 99,255, 94, 94, 94,255, 88, 88, 88,255, 82, 82, 82,255, 76, 76, 76,255, 69, 69, 69,255, 62, 62, 62,255, - 54, 54, 54,255, 46, 46, 46,255, 37, 37, 37,255, 26, 26, 26,255, 6, 6, 6,102, 0, 0, 0, 0,107,107,107,255,130,130,130,255, -140,140,140,255,146,146,146,255,150,150,150,255,153,153,153,255,158,158,158,255,169,169,169,255,191,191,191,255,219,219,219,255, -246,246,246,255,254,254,254,255,237,237,237,255,204,204,204,255,170,170,170,255,145,145,145,255,127,127,127,255,117,117,117,255, -110,110,110,255,103,103,103,255, 97, 97, 97,255, 91, 91, 91,255, 85, 85, 85,255, 78, 78, 78,255, 71, 71, 71,255, 64, 64, 64,255, - 55, 55, 55,255, 47, 47, 47,255, 37, 37, 37,255, 25, 25, 25,255, 3, 3, 3, 51, 0, 0, 0, 0, 65, 65, 65,153,129,129,129,255, -142,142,142,255,149,149,149,255,154,154,154,255,158,158,158,255,163,163,163,255,176,176,176,255,199,199,199,255,232,232,232,255, -255,255,255,255,255,255,255,255,255,255,255,255,220,220,220,255,181,181,181,255,151,151,151,255,132,132,132,255,121,121,121,255, -113,113,113,255,106,106,106,255,100,100,100,255, 94, 94, 94,255, 87, 87, 87,255, 80, 80, 80,255, 73, 73, 73,255, 65, 65, 65,255, - 57, 57, 57,255, 48, 48, 48,255, 38, 38, 38,255, 16, 16, 16,153, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 51,127,127,127,255, -143,143,143,255,152,152,152,255,157,157,157,255,161,161,161,255,165,165,165,255,177,177,177,255,198,198,198,255,227,227,227,255, -253,253,253,255,255,255,255,255,250,250,250,255,217,217,217,255,181,181,181,255,153,153,153,255,135,135,135,255,124,124,124,255, -117,117,117,255,110,110,110,255,103,103,103,255, 96, 96, 96,255, 89, 89, 89,255, 82, 82, 82,255, 74, 74, 74,255, 66, 66, 66,255, - 57, 57, 57,255, 48, 48, 48,255, 35, 35, 35,255, 10, 10, 10,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 93, 93,204, -141,141,141,255,153,153,153,255,159,159,159,255,163,163,163,255,167,167,167,255,174,174,174,255,188,188,188,255,209,209,209,255, -228,228,228,255,234,234,234,255,224,224,224,255,200,200,200,255,173,173,173,255,151,151,151,255,136,136,136,255,127,127,127,255, -119,119,119,255,112,112,112,255,105,105,105,255, 98, 98, 98,255, 90, 90, 90,255, 83, 83, 83,255, 75, 75, 75,255, 66, 66, 66,255, - 57, 57, 57,255, 46, 46, 46,255, 24, 24, 24,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 20, 20, 51, -134,134,134,255,151,151,151,255,160,160,160,255,164,164,164,255,167,167,167,255,171,171,171,255,178,178,178,255,189,189,189,255, -200,200,200,255,202,202,202,255,195,195,195,255,180,180,180,255,163,163,163,255,148,148,148,255,137,137,137,255,129,129,129,255, -121,121,121,255,114,114,114,255,107,107,107,255, 99, 99, 99,255, 91, 91, 91,255, 83, 83, 83,255, 74, 74, 74,255, 65, 65, 65,255, - 55, 55, 55,255, 41, 41, 41,255, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 49, 49, 49,102,145,145,145,255,157,157,157,255,164,164,164,255,167,167,167,255,170,170,170,255,172,172,172,255,176,176,176,255, -180,180,180,255,179,179,179,255,174,174,174,255,165,165,165,255,155,155,155,255,145,145,145,255,137,137,137,255,130,130,130,255, -122,122,122,255,115,115,115,255,107,107,107,255, 99, 99, 99,255, 91, 91, 91,255, 82, 82, 82,255, 73, 73, 73,255, 63, 63, 63,255, - 50, 50, 50,255, 22, 22, 22,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 78, 78, 78,153,149,149,149,255,160,160,160,255,166,166,166,255,168,168,168,255,169,169,169,255,170,170,170,255, -169,169,169,255,167,167,167,255,164,164,164,255,158,158,158,255,151,151,151,255,144,144,144,255,137,137,137,255,130,130,130,255, -123,123,123,255,115,115,115,255,106,106,106,255, 98, 98, 98,255, 89, 89, 89,255, 80, 80, 80,255, 70, 70, 70,255, 58, 58, 58,255, - 27, 27, 27,153, 3, 3, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80,153,150,150,150,255,160,160,160,255,165,165,165,255,167,167,167,255,167,167,167,255, -166,166,166,255,163,163,163,255,160,160,160,255,155,155,155,255,149,149,149,255,143,143,143,255,137,137,137,255,129,129,129,255, -121,121,121,255,113,113,113,255,105,105,105,255, 96, 96, 96,255, 86, 86, 86,255, 76, 76, 76,255, 63, 63, 63,255, 38, 38, 38,204, - 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, 78,153,147,147,147,255,157,157,157,255,161,161,161,255,163,163,163,255, -162,162,162,255,160,160,160,255,157,157,157,255,152,152,152,255,147,147,147,255,141,141,141,255,135,135,135,255,127,127,127,255, -119,119,119,255,110,110,110,255,101,101,101,255, 91, 91, 91,255, 80, 80, 80,255, 66, 66, 66,255, 32, 32, 32,153, 7, 7, 7, 51, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,134,134,134,255,148,148,148,255,154,154,154,255, -155,155,155,255,154,154,154,255,152,152,152,255,147,147,147,255,142,142,142,255,136,136,136,255,130,130,130,255,122,122,122,255, -114,114,114,255,104,104,104,255, 93, 93, 93,255, 81, 81, 81,255, 54, 54, 54,204, 22, 22, 22,102, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 73, 73,153,103,103,103,204, -137,137,137,255,140,140,140,255,140,140,140,255,137,137,137,255,133,133,133,255,127,127,127,255,120,120,120,255,113,113,113,255, -102,102,102,255, 91, 91, 91,255, 64, 64, 64,204, 28, 28, 28,102, 6, 6, 6, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,250,115, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 46, 46, 46,102, 72, 72, 72,153, 72, 72, 72,153, 92, 92, 92,204, 88, 88, 88,204, 81, 81, 81,204, 54, 54, 54,153, - 35, 35, 35,102, 16, 16, 16, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 0, 0,168, 1, 0, 0, 88,110,198, 6, - 0, 0, 0, 0, 33, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0,160, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 64, 0, 0, 0, 64, - 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 7, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 8, 0, 0, 0, 1, 0, 1, 0, 3, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204,204, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154,112,130, 64,183,178,128, 63,112,236,188, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,229,123, 38, 63, 87, 43, 98, 61,229,229,238, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54,236,148,190, 25,134,116, 63,236, 13, 98,189, 0, 0, 0, 0,221,102, 69,191, + 57,174, 76,190, 34,194, 26, 63, 0, 0, 0, 0, 37,255, 16, 63,241,161, 95, 62,164,111, 75, 63, 0, 0, 0, 0,154,112,130, 64, +183,178,128, 63,112,236,188, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 1, 0,128, 50, 0, 0, 0,179, 0, 0, 0, 0, 1, 0,128, 50, + 1, 0,128, 63, 1, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 39, + 1, 0, 0, 52, 1, 0,128, 39, 0, 0,128, 63, 54,236,148,190,221,102, 69,191, 38,255, 16, 63, 0, 0, 0, 0, 24,134,116, 63, + 57,174, 76,190,239,161, 95, 62, 0, 0, 0, 0,237, 13, 98,189, 35,194, 26, 63,166,111, 75, 63, 0, 0, 0, 0,209, 19, 13, 63, +241, 65,102,190, 10, 10,231,192, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, + 0, 0, 68, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, + 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,229,208, 34, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 21,116, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +152, 0, 0, 0,136, 21,116, 5, 0, 0, 0, 0,132, 0, 0, 0, 1, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,205,204, 76, 62, 10,215,163, 60, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 77, 65, 0, 0,128, 3, 0, 0,104, 22,116, 5, 0, 0, 0, 0, 39, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 77, 65, 77, 97,116,101,114,105, 97,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,112,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,112,198, 6, - 0, 0, 0, 0, 12, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 16, 0, 15, 0,184,112,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0,184,112,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 0, 0,232, 4, 0, 0, 8,129,198, 6, 0, 0, 0, 0, 50, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0,205,204, 76, 63,205,204, 76, 63,205,204, 76, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 10,215, 35, 60, + 0, 0, 0, 0, 0, 0, 8, 0, 1, 0, 50, 0,205,204, 76, 62, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 2, 0, 50, 0, 0, 6, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 18, 0, 10,215,163, 59, + 10,215,163, 59, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 4, 0, 67, 0, 64, 3, 67, 0, 64, 3, 1, 0, 4, 0, 12, 0, 4, 0, + 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0,128, 64, 0, 0, 0, 63,205,204,204, 61, 0, 0, 0, 63,205,204,204, 61, +205,204,204, 61, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 56, 26,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 27,116, 5, 0, 0, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, +111,148, 26, 63,111,148, 26, 63,111,148, 26, 63,205,204, 76, 61,205,204,204, 61,102,102,166, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 56, 26,116, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 44,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 40, 0, 0, 0,184, 27,116, 5, + 0, 0, 0, 0, 12, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, + 53, 0, 53, 0, 40, 28,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0, 40, 28,116, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 51, + 2, 2, 2, 51, 6, 6, 6,153, 6, 6, 6,153, 6, 6, 6,153, 4, 4, 4,102, 3, 3, 3,102, 2, 2, 2, 51, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 51, 8, 8, 8,153, 11, 11, 11,204, 13, 13, 13,255, + 12, 12, 12,255, 12, 12, 12,255, 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, + 4, 4, 4,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 51, 10, 10, 10,153, 18, 18, 18,255, 20, 20, 20,255, 22, 22, 22,255, 23, 23, 23,255, + 22, 22, 22,255, 20, 20, 20,255, 19, 19, 19,255, 16, 16, 16,255, 14, 14, 14,255, 11, 11, 11,255, 10, 10, 10,255, 9, 9, 9,255, + 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 7,102, 19, 19, 19,204, 27, 27, 27,255, 31, 31, 31,255, 32, 32, 32,255, 33, 33, 33,255, 33, 33, 33,255, + 31, 31, 31,255, 30, 30, 30,255, 27, 27, 27,255, 25, 25, 25,255, 22, 22, 22,255, 19, 19, 19,255, 16, 16, 16,255, 12, 12, 12,255, + 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 4, 4, 4,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 13, 13, 13,153, 29, 29, 29,255, 37, 37, 37,255, 40, 40, 40,255, 42, 42, 42,255, 42, 42, 42,255, 43, 43, 43,255, 41, 41, 41,255, + 40, 40, 40,255, 38, 38, 38,255, 36, 36, 36,255, 33, 33, 33,255, 30, 30, 30,255, 27, 27, 27,255, 24, 24, 24,255, 20, 20, 20,255, + 16, 16, 16,255, 12, 12, 12,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 7, 7, 7,153, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,102, + 37, 37, 37,255, 44, 44, 44,255, 48, 48, 48,255, 50, 50, 50,255, 51, 51, 51,255, 51, 51, 51,255, 50, 50, 50,255, 49, 49, 49,255, + 48, 48, 48,255, 45, 45, 45,255, 43, 43, 43,255, 41, 41, 41,255, 37, 37, 37,255, 34, 34, 34,255, 31, 31, 31,255, 28, 28, 28,255, + 24, 24, 24,255, 20, 20, 20,255, 15, 15, 15,255, 11, 11, 11,255, 10, 10, 10,255, 11, 11, 11,255, 7, 7, 7,153, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,102, 41, 41, 41,255, + 50, 50, 50,255, 54, 54, 54,255, 57, 57, 57,255, 58, 58, 58,255, 59, 59, 59,255, 59, 59, 59,255, 58, 58, 58,255, 57, 57, 57,255, + 55, 55, 55,255, 53, 53, 53,255, 51, 51, 51,255, 48, 48, 48,255, 45, 45, 45,255, 41, 41, 41,255, 38, 38, 38,255, 35, 35, 35,255, + 31, 31, 31,255, 27, 27, 27,255, 23, 23, 23,255, 17, 17, 17,255, 12, 12, 12,255, 11, 11, 11,255, 11, 11, 11,255, 5, 5, 5,102, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 36,204, 53, 53, 53,255, + 59, 59, 59,255, 63, 63, 63,255, 65, 65, 65,255, 66, 66, 66,255, 66, 66, 66,255, 66, 66, 66,255, 65, 65, 65,255, 64, 64, 64,255, + 62, 62, 62,255, 60, 60, 60,255, 57, 57, 57,255, 54, 54, 54,255, 51, 51, 51,255, 48, 48, 48,255, 44, 44, 44,255, 41, 41, 41,255, + 37, 37, 37,255, 33, 33, 33,255, 29, 29, 29,255, 24, 24, 24,255, 19, 19, 19,255, 13, 13, 13,255, 11, 11, 11,255, 12, 12, 12,255, + 3, 3, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 19, 19,102, 56, 56, 56,255, 64, 64, 64,255, + 68, 68, 68,255, 71, 71, 71,255, 73, 73, 73,255, 74, 74, 74,255, 74, 74, 74,255, 73, 73, 73,255, 72, 72, 72,255, 71, 71, 71,255, + 69, 69, 69,255, 67, 67, 67,255, 64, 64, 64,255, 61, 61, 61,255, 58, 58, 58,255, 54, 54, 54,255, 50, 50, 50,255, 47, 47, 47,255, + 43, 43, 43,255, 39, 39, 39,255, 34, 34, 34,255, 30, 30, 30,255, 25, 25, 25,255, 19, 19, 19,255, 13, 13, 13,255, 12, 12, 12,255, + 10, 10, 10,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, 54,255, 66, 66, 66,255, 72, 72, 72,255, + 77, 77, 77,255, 79, 79, 79,255, 81, 81, 81,255, 81, 81, 81,255, 81, 81, 81,255, 80, 80, 80,255, 79, 79, 79,255, 77, 77, 77,255, + 75, 75, 75,255, 73, 73, 73,255, 70, 70, 70,255, 67, 67, 67,255, 63, 63, 63,255, 60, 60, 60,255, 56, 56, 56,255, 52, 52, 52,255, + 49, 49, 49,255, 44, 44, 44,255, 40, 40, 40,255, 35, 35, 35,255, 30, 30, 30,255, 24, 24, 24,255, 18, 18, 18,255, 12, 12, 12,255, + 12, 12, 12,255, 6, 6, 6,102, 0, 0, 0, 0, 0, 0, 0, 0, 22, 22, 22,102, 67, 67, 67,255, 76, 76, 76,255, 81, 81, 81,255, + 84, 84, 84,255, 87, 87, 87,255, 88, 88, 88,255, 88, 88, 88,255, 88, 88, 88,255, 87, 87, 87,255, 86, 86, 86,255, 84, 84, 84,255, + 82, 82, 82,255, 79, 79, 79,255, 76, 76, 76,255, 73, 73, 73,255, 69, 69, 69,255, 65, 65, 65,255, 62, 62, 62,255, 58, 58, 58,255, + 54, 54, 54,255, 49, 49, 49,255, 45, 45, 45,255, 40, 40, 40,255, 35, 35, 35,255, 29, 29, 29,255, 23, 23, 23,255, 16, 16, 16,255, + 12, 12, 12,255, 12, 12, 12,204, 0, 0, 0, 0, 0, 0, 0, 0, 49, 49, 49,204, 76, 76, 76,255, 84, 84, 84,255, 89, 89, 89,255, + 92, 92, 92,255, 94, 94, 94,255, 95, 95, 95,255, 95, 95, 95,255, 95, 95, 95,255, 94, 94, 94,255, 93, 93, 93,255, 91, 91, 91,255, + 88, 88, 88,255, 85, 85, 85,255, 82, 82, 82,255, 79, 79, 79,255, 75, 75, 75,255, 71, 71, 71,255, 67, 67, 67,255, 63, 63, 63,255, + 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255, 45, 45, 45,255, 40, 40, 40,255, 34, 34, 34,255, 28, 28, 28,255, 21, 21, 21,255, + 13, 13, 13,255, 14, 14, 14,255, 0, 0, 0, 0, 14, 14, 14,102, 70, 70, 70,255, 85, 85, 85,255, 92, 92, 92,255, 97, 97, 97,255, +100,100,100,255,102,102,102,255,102,102,102,255,103,103,103,255,102,102,102,255,101,101,101,255, 99, 99, 99,255, 97, 97, 97,255, + 94, 94, 94,255, 91, 91, 91,255, 88, 88, 88,255, 84, 84, 84,255, 81, 81, 81,255, 77, 77, 77,255, 72, 72, 72,255, 68, 68, 68,255, + 64, 64, 64,255, 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255, 44, 44, 44,255, 39, 39, 39,255, 32, 32, 32,255, 25, 25, 25,255, + 17, 17, 17,255, 13, 13, 13,255, 7, 7, 7,102, 24, 24, 24,102, 80, 80, 80,255, 93, 93, 93,255,100,100,100,255,104,104,104,255, +107,107,107,255,109,109,109,255,109,109,109,255,109,109,109,255,109,109,109,255,107,107,107,255,106,106,106,255,103,103,103,255, +100,100,100,255, 97, 97, 97,255, 94, 94, 94,255, 90, 90, 90,255, 86, 86, 86,255, 82, 82, 82,255, 77, 77, 77,255, 73, 73, 73,255, + 69, 69, 69,255, 64, 64, 64,255, 59, 59, 59,255, 54, 54, 54,255, 49, 49, 49,255, 43, 43, 43,255, 36, 36, 36,255, 29, 29, 29,255, + 21, 21, 21,255, 14, 14, 14,255, 10, 10, 10,153, 29, 29, 29,102, 89, 89, 89,255,100,100,100,255,107,107,107,255,112,112,112,255, +114,114,114,255,116,116,116,255,116,116,116,255,116,116,116,255,115,115,115,255,114,114,114,255,112,112,112,255,110,110,110,255, +107,107,107,255,104,104,104,255,100,100,100,255, 96, 96, 96,255, 92, 92, 92,255, 87, 87, 87,255, 83, 83, 83,255, 78, 78, 78,255, + 73, 73, 73,255, 68, 68, 68,255, 63, 63, 63,255, 58, 58, 58,255, 52, 52, 52,255, 46, 46, 46,255, 40, 40, 40,255, 33, 33, 33,255, + 24, 24, 24,255, 17, 17, 17,255, 13, 13, 13,204, 46, 46, 46,153, 95, 95, 95,255,107,107,107,255,114,114,114,255,118,118,118,255, +121,121,121,255,122,122,122,255,123,123,123,255,123,123,123,255,122,122,122,255,122,122,122,255,120,120,120,255,118,118,118,255, +114,114,114,255,110,110,110,255,106,106,106,255,101,101,101,255, 97, 97, 97,255, 92, 92, 92,255, 87, 87, 87,255, 83, 83, 83,255, + 78, 78, 78,255, 73, 73, 73,255, 68, 68, 68,255, 62, 62, 62,255, 56, 56, 56,255, 50, 50, 50,255, 44, 44, 44,255, 36, 36, 36,255, + 28, 28, 28,255, 19, 19, 19,255, 12, 12, 12,204, 47, 47, 47,153,101,101,101,255,113,113,113,255,120,120,120,255,125,125,125,255, +127,127,127,255,129,129,129,255,130,130,130,255,130,130,130,255,131,131,131,255,131,131,131,255,131,131,131,255,129,129,129,255, +125,125,125,255,120,120,120,255,113,113,113,255,108,108,108,255,103,103,103,255, 97, 97, 97,255, 92, 92, 92,255, 87, 87, 87,255, + 82, 82, 82,255, 77, 77, 77,255, 72, 72, 72,255, 66, 66, 66,255, 60, 60, 60,255, 54, 54, 54,255, 47, 47, 47,255, 39, 39, 39,255, + 31, 31, 31,255, 22, 22, 22,255, 12, 12, 12,204, 48, 48, 48,153,106,106,106,255,118,118,118,255,126,126,126,255,131,131,131,255, +134,134,134,255,135,135,135,255,137,137,137,255,138,138,138,255,142,142,142,255,147,147,147,255,149,149,149,255,148,148,148,255, +142,142,142,255,133,133,133,255,124,124,124,255,115,115,115,255,108,108,108,255,102,102,102,255, 97, 97, 97,255, 92, 92, 92,255, + 87, 87, 87,255, 81, 81, 81,255, 75, 75, 75,255, 69, 69, 69,255, 63, 63, 63,255, 57, 57, 57,255, 49, 49, 49,255, 42, 42, 42,255, + 33, 33, 33,255, 24, 24, 24,255, 9, 9, 9,153, 32, 32, 32,102,109,109,109,255,123,123,123,255,131,131,131,255,136,136,136,255, +140,140,140,255,142,142,142,255,144,144,144,255,148,148,148,255,156,156,156,255,168,168,168,255,176,176,176,255,177,177,177,255, +168,168,168,255,153,153,153,255,137,137,137,255,124,124,124,255,114,114,114,255,107,107,107,255,101,101,101,255, 96, 96, 96,255, + 90, 90, 90,255, 85, 85, 85,255, 79, 79, 79,255, 72, 72, 72,255, 66, 66, 66,255, 59, 59, 59,255, 52, 52, 52,255, 44, 44, 44,255, + 35, 35, 35,255, 26, 26, 26,255, 10, 10, 10,153, 17, 17, 17, 51,110,110,110,255,127,127,127,255,136,136,136,255,142,142,142,255, +145,145,145,255,148,148,148,255,151,151,151,255,159,159,159,255,174,174,174,255,195,195,195,255,212,212,212,255,216,216,216,255, +204,204,204,255,179,179,179,255,154,154,154,255,135,135,135,255,121,121,121,255,112,112,112,255,106,106,106,255, 99, 99, 99,255, + 94, 94, 94,255, 88, 88, 88,255, 82, 82, 82,255, 76, 76, 76,255, 69, 69, 69,255, 62, 62, 62,255, 54, 54, 54,255, 46, 46, 46,255, + 37, 37, 37,255, 26, 26, 26,255, 6, 6, 6,102, 0, 0, 0, 0,107,107,107,255,130,130,130,255,140,140,140,255,146,146,146,255, +150,150,150,255,153,153,153,255,158,158,158,255,169,169,169,255,191,191,191,255,219,219,219,255,246,246,246,255,254,254,254,255, +237,237,237,255,204,204,204,255,170,170,170,255,145,145,145,255,127,127,127,255,117,117,117,255,110,110,110,255,103,103,103,255, + 97, 97, 97,255, 91, 91, 91,255, 85, 85, 85,255, 78, 78, 78,255, 71, 71, 71,255, 64, 64, 64,255, 55, 55, 55,255, 47, 47, 47,255, + 37, 37, 37,255, 25, 25, 25,255, 3, 3, 3, 51, 0, 0, 0, 0, 65, 65, 65,153,129,129,129,255,142,142,142,255,149,149,149,255, +154,154,154,255,158,158,158,255,163,163,163,255,176,176,176,255,199,199,199,255,232,232,232,255,255,255,255,255,255,255,255,255, +255,255,255,255,220,220,220,255,181,181,181,255,151,151,151,255,132,132,132,255,121,121,121,255,113,113,113,255,106,106,106,255, +100,100,100,255, 94, 94, 94,255, 87, 87, 87,255, 80, 80, 80,255, 73, 73, 73,255, 65, 65, 65,255, 57, 57, 57,255, 48, 48, 48,255, + 38, 38, 38,255, 16, 16, 16,153, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 51,127,127,127,255,143,143,143,255,152,152,152,255, +157,157,157,255,161,161,161,255,165,165,165,255,177,177,177,255,198,198,198,255,227,227,227,255,253,253,253,255,255,255,255,255, +250,250,250,255,217,217,217,255,181,181,181,255,153,153,153,255,135,135,135,255,124,124,124,255,117,117,117,255,110,110,110,255, +103,103,103,255, 96, 96, 96,255, 89, 89, 89,255, 82, 82, 82,255, 74, 74, 74,255, 66, 66, 66,255, 57, 57, 57,255, 48, 48, 48,255, + 35, 35, 35,255, 10, 10, 10,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 93, 93,204,141,141,141,255,153,153,153,255, +159,159,159,255,163,163,163,255,167,167,167,255,174,174,174,255,188,188,188,255,209,209,209,255,228,228,228,255,234,234,234,255, +224,224,224,255,200,200,200,255,173,173,173,255,151,151,151,255,136,136,136,255,127,127,127,255,119,119,119,255,112,112,112,255, +105,105,105,255, 98, 98, 98,255, 90, 90, 90,255, 83, 83, 83,255, 75, 75, 75,255, 66, 66, 66,255, 57, 57, 57,255, 46, 46, 46,255, + 24, 24, 24,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 20, 20, 51,134,134,134,255,151,151,151,255, +160,160,160,255,164,164,164,255,167,167,167,255,171,171,171,255,178,178,178,255,189,189,189,255,200,200,200,255,202,202,202,255, +195,195,195,255,180,180,180,255,163,163,163,255,148,148,148,255,137,137,137,255,129,129,129,255,121,121,121,255,114,114,114,255, +107,107,107,255, 99, 99, 99,255, 91, 91, 91,255, 83, 83, 83,255, 74, 74, 74,255, 65, 65, 65,255, 55, 55, 55,255, 41, 41, 41,255, + 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 49, 49,102,145,145,145,255, +157,157,157,255,164,164,164,255,167,167,167,255,170,170,170,255,172,172,172,255,176,176,176,255,180,180,180,255,179,179,179,255, +174,174,174,255,165,165,165,255,155,155,155,255,145,145,145,255,137,137,137,255,130,130,130,255,122,122,122,255,115,115,115,255, +107,107,107,255, 99, 99, 99,255, 91, 91, 91,255, 82, 82, 82,255, 73, 73, 73,255, 63, 63, 63,255, 50, 50, 50,255, 22, 22, 22,153, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, 78,153, +149,149,149,255,160,160,160,255,166,166,166,255,168,168,168,255,169,169,169,255,170,170,170,255,169,169,169,255,167,167,167,255, +164,164,164,255,158,158,158,255,151,151,151,255,144,144,144,255,137,137,137,255,130,130,130,255,123,123,123,255,115,115,115,255, +106,106,106,255, 98, 98, 98,255, 89, 89, 89,255, 80, 80, 80,255, 70, 70, 70,255, 58, 58, 58,255, 27, 27, 27,153, 3, 3, 3, 51, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 80, 80,153,150,150,150,255,160,160,160,255,165,165,165,255,167,167,167,255,167,167,167,255,166,166,166,255,163,163,163,255, +160,160,160,255,155,155,155,255,149,149,149,255,143,143,143,255,137,137,137,255,129,129,129,255,121,121,121,255,113,113,113,255, +105,105,105,255, 96, 96, 96,255, 86, 86, 86,255, 76, 76, 76,255, 63, 63, 63,255, 38, 38, 38,204, 7, 7, 7, 51, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 78, 78, 78,153,147,147,147,255,157,157,157,255,161,161,161,255,163,163,163,255,162,162,162,255,160,160,160,255, +157,157,157,255,152,152,152,255,147,147,147,255,141,141,141,255,135,135,135,255,127,127,127,255,119,119,119,255,110,110,110,255, +101,101,101,255, 91, 91, 91,255, 80, 80, 80,255, 66, 66, 66,255, 32, 32, 32,153, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,134,134,134,255,148,148,148,255,154,154,154,255,155,155,155,255,154,154,154,255, +152,152,152,255,147,147,147,255,142,142,142,255,136,136,136,255,130,130,130,255,122,122,122,255,114,114,114,255,104,104,104,255, + 93, 93, 93,255, 81, 81, 81,255, 54, 54, 54,204, 22, 22, 22,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 73, 73,153,103,103,103,204,137,137,137,255,140,140,140,255, +140,140,140,255,137,137,137,255,133,133,133,255,127,127,127,255,120,120,120,255,113,113,113,255,102,102,102,255, 91, 91, 91,255, + 64, 64, 64,204, 28, 28, 28,102, 6, 6, 6, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46,102, + 72, 72, 72,153, 72, 72, 72,153, 92, 92, 92,204, 88, 88, 88,204, 81, 81, 81,204, 54, 54, 54,153, 35, 35, 35,102, 16, 16, 16, 51, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 0, 0,168, 1, 0, 0,120, 44,116, 5, 0, 0, 0, 0, 33, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 77, 69, 67,117, 98,101, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 84, 69, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,134,198, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,147,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,143,198, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,143,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,136,198, 6, 0, 0, 0, 0, 24,140,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,128, 62, 0, 0,160, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, + 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 64, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 7, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 8, 0, 0, 0, 1, 0, 1, 0, 3, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0,205,204,204, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,136,134,198, 6, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,137,198, 6, 0, 0, 0, 0,255,255,255,255, -255,255,255,255,255,255,255,255, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,104, 46,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104, 46,116, 5, 0, 0, 0, 0, 12, 0, 0, 0, + 1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 16, 0, 15, 0,216, 46,116, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0,216, 46,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,145,198, 6, 0, 0, 0, 0,255,255,255,255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 77, 69, 0, 0,232, 4, 0, 0, 40, 63,116, 5, 0, 0, 0, 0, 50, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 67,117, + 98,101, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 68,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,200, 80,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 77,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,248, 70,116, 5, 0, 0, 0, 0, 56, 74,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 68,116, 5, + 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 71,116, 5, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,248,140,198, 6, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 2, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 51, 0, 0, 0,180, 0, 0, 0, 0, 4, 0,128, 63, - 4, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 67, 0, 30, 0, 6, 0, 1, 0, 1, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0, 56,134,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 72, 88,198, 6, 0, 0, 0, 0, 68, 65, 84, 65, 8, 2, 0, 0,136,134,198, 6, 0, 0, 0, 0,124, 1, 0, 0, - 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,216,136,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,216,136,198, 6, 0, 0, 0, 0, 56, 0, 0, 0, - 8, 0, 0, 0, 0, 0,128, 63,255,255,127, 63, 0, 0,128,191,230, 73,230, 73, 26,182, 1, 0, 0, 0,128, 63, 0, 0,128,191, - 0, 0,128,191,230, 73, 26,182, 26,182, 1, 0, 1, 0,128,191,253,255,127,191, 0, 0,128,191, 26,182, 26,182, 26,182, 1, 0, -250,255,127,191, 3, 0,128, 63, 0, 0,128,191, 26,182,230, 73, 26,182, 1, 0, 4, 0,128, 63,247,255,127, 63, 0, 0,128, 63, -230, 73,230, 73,230, 73, 1, 0,245,255,127, 63, 5, 0,128,191, 0, 0,128, 63,230, 73, 26,182,230, 73, 1, 0, 3, 0,128,191, -250,255,127,191, 0, 0,128, 63, 26,182, 26,182,230, 73, 1, 0,255,255,127,191, 0, 0,128, 63, 0, 0,128, 63, 26,182,230, 73, -230, 73, 1, 0, 68, 65, 84, 65, 8, 2, 0, 0,200,137,198, 6, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,140,198, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65,144, 0, 0, 0, 24,140,198, 6, 0, 0, 0, 0, 53, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 35, 0, - 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 35, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, - 5, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, - 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65, 8, 2, 0, 0,248,140,198, 6, 0, 0, 0, 0,124, 1, 0, 0, - 5, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67,111,108, 0, 32, 70, 97, 99,101, 45, 86,101,114,116,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 72,143,198, 6, 0, 0, 0, 0, 26, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 71,111,110, 32, 70, 97, 99,101, 45, 86,101,114,116,101,120, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,143,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, 72,143,198, 6, 0, 0, 0, 0, 62, 0, 0, 0, - 24, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255, 68, 65, 84, 65,192, 0, 0, 0,248,143,198, 6, 0, 0, 0, 0, 59, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0, + 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 78,116, 5, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0, + 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 75,116, 5, + 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0, 5, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, + 24, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 51, 0, 0, 0,180, 0, 0, 0, 0, 4, 0,128, 63, 4, 0,128, 63, 0, 0,128, 63, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 67, 0, 30, 0, 6, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0, 88, 68,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,104, 22,116, 5, + 0, 0, 0, 0, 68, 65, 84, 65, 8, 2, 0, 0,168, 68,116, 5, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 70,116, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,248, 70,116, 5, 0, 0, 0, 0, 56, 0, 0, 0, 8, 0, 0, 0, 0, 0,128, 63, +255,255,127, 63, 0, 0,128,191,230, 73,230, 73, 26,182, 1, 0, 0, 0,128, 63, 0, 0,128,191, 0, 0,128,191,230, 73, 26,182, + 26,182, 1, 0, 1, 0,128,191,253,255,127,191, 0, 0,128,191, 26,182, 26,182, 26,182, 1, 0,250,255,127,191, 3, 0,128, 63, + 0, 0,128,191, 26,182,230, 73, 26,182, 1, 0, 4, 0,128, 63,247,255,127, 63, 0, 0,128, 63,230, 73,230, 73,230, 73, 1, 0, +245,255,127, 63, 5, 0,128,191, 0, 0,128, 63,230, 73, 26,182,230, 73, 1, 0, 3, 0,128,191,250,255,127,191, 0, 0,128, 63, + 26,182, 26,182,230, 73, 1, 0,255,255,127,191, 0, 0,128, 63, 0, 0,128, 63, 26,182,230, 73,230, 73, 1, 0, 68, 65, 84, 65, + 8, 2, 0, 0,232, 71,116, 5, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 74,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, +144, 0, 0, 0, 56, 74,116, 5, 0, 0, 0, 0, 53, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 35, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, + 6, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, + 4, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 35, 0, 68, 65, 84, 65, 8, 2, 0, 0, 24, 75,116, 5, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 71,111,110, + 32, 70, 97, 99,101, 45, 86,101,114,116,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 77,116, 5, + 0, 0, 0, 0, 26, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 78, 71,111,110, 32, 70, 97, 99,101, 45, 86,101,114,116,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,232,217, 21, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,192, 0, 0, 0,104, 77,116, 5, 0, 0, 0, 0, 59, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 9, 0, 0, 0, 7, 0, 0, 0, 11, 0, 0, 0, 6, 0, 0, 0, 10, 0, 0, 0, 5, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 10, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 11, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 9, 0, 0, 0, 68, 65, 84, 65, - 8, 2, 0, 0, 8,145,198, 6, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8, 2, 0, 0,120, 78,116, 5, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 71,111,110, 32, 70, 97, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,147,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 80,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6675,15 +6695,15 @@ char datatoc_startup_blend[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 72, 0, 0, 0, 88,147,198, 6, 0, 0, 0, 0, 58, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, + 72, 0, 0, 0,200, 80,116, 5, 0, 0, 0, 0, 58, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 8, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 12, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 16, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 66, 82, 0, 0, - 88, 6, 0, 0,232,147,198, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0, 24,158,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, + 88, 6, 0, 0, 88, 81,116, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 65,100,100, 0,104, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0, 8,156,198, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,120, 89,116, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -6729,7 +6749,7 @@ char datatoc_startup_blend[] = { 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,128,148,198, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,240, 81,116, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -6740,25 +6760,25 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0, 8,156,198, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 64, 1, 0, 0,120, 89,116, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, - 46,189,194, 61,152,157,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46,189,194, 61, 8, 91,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,152,157,198, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 8, 91,116, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, - 88, 6, 0, 0, 24,158,198, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,200,166,198, 6, 0, 0, 0, 0,232,147,198, 6, + 88, 6, 0, 0,136, 91,116, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 88, 81,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,108,111, 98, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0,184,164,198, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 40, 98,116, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -6804,7 +6824,7 @@ char datatoc_startup_blend[] = { 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, - 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0,176,158,198, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0, 32, 92,116, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -6815,25 +6835,25 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0,184,164,198, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 64, 1, 0, 0, 40, 98,116, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191, -114, 97,255,186, 72,166,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +114, 97,255,186,184, 99,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 72,166,198, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,184, 99,116, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, - 88, 6, 0, 0,200,166,198, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,120,175,198, 6, 0, 0, 0, 0, 24,158,198, 6, + 88, 6, 0, 0, 56,100,116, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0,136, 91,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,108,117,114, 0, 46, 48, 48, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0,104,173,198, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,216,106,116, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -6879,7 +6899,7 @@ char datatoc_startup_blend[] = { 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 96,167,198, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,208,100,116, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -6890,25 +6910,25 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0,104,173,198, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 64, 1, 0, 0,216,106,116, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, - 46,189,194, 61,248,174,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46,189,194, 61,104,108,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,248,174,198, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,104,108,116, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, - 88, 6, 0, 0,120,175,198, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0, 40,184,198, 6, 0, 0, 0, 0,200,166,198, 6, + 88, 6, 0, 0,232,108,116, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 56,100,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,114,117,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0, 24,182,198, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,136,115,116, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -6954,7 +6974,7 @@ char datatoc_startup_blend[] = { 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, - 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0, 16,176,198, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0,128,109,116, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -6965,25 +6985,25 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0, 24,182,198, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 64, 1, 0, 0,136,115,116, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191, -114, 97,255,186,168,183,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +114, 97,255,186, 24,117,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,168,183,198, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 24,117,116, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, - 88, 6, 0, 0, 40,184,198, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,216,192,198, 6, 0, 0, 0, 0,120,175,198, 6, + 88, 6, 0, 0,152,117,116, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0, 72,126,116, 5, 0, 0, 0, 0,232,108,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,108, 97,121, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0,200,190,198, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 56,124,116, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -7029,7 +7049,7 @@ char datatoc_startup_blend[] = { 4, 4, 4, 8, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, - 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0,192,184,198, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0, 48,118,116, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -7040,25 +7060,25 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0,200,190,198, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 64, 1, 0, 0, 56,124,116, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191, -114, 97,255,186, 88,192,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +114, 97,255,186,200,125,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 88,192,198, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,200,125,116, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, - 88, 6, 0, 0,216,192,198, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,136,201,198, 6, 0, 0, 0, 0, 40,184,198, 6, + 88, 6, 0, 0, 72,126,116, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0,152,117,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,108, 97,121, 32, 83,116,114,105,112, 115, 0, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0,120,199,198, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,232,132,116, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -7104,7 +7124,7 @@ char datatoc_startup_blend[] = { 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0,160,119, 78, 63, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, - 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0,112,193,198, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0,224,126,116, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -7115,25 +7135,25 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0,120,199,198, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 64, 1, 0, 0,232,132,116, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191, -114, 97,255,186, 8,201,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +114, 97,255,186,120,134,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 8,201,198, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,120,134,116, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, - 88, 6, 0, 0,136,201,198, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0, 56,210,198, 6, 0, 0, 0, 0,216,192,198, 6, + 88, 6, 0, 0,248,134,116, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 72,126,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,108,111,110,101, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0, 40,208,198, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,152,141,116, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -7179,7 +7199,7 @@ char datatoc_startup_blend[] = { 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 32,202,198, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,144,135,116, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -7190,25 +7210,25 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0, 40,208,198, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 64, 1, 0, 0,152,141,116, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, - 46,189,194, 61,184,209,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46,189,194, 61, 40,143,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,184,209,198, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 40,143,116, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, - 88, 6, 0, 0, 56,210,198, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,232,218,198, 6, 0, 0, 0, 0,136,201,198, 6, + 88, 6, 0, 0,168,143,116, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0,248,134,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,114,101, 97,115,101, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0,216,216,198, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 72,150,116, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -7254,7 +7274,7 @@ char datatoc_startup_blend[] = { 4, 6, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, - 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0,208,210,198, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0, 64,144,116, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -7265,25 +7285,25 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0,216,216,198, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 64, 1, 0, 0, 72,150,116, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,228, 97,175,190, 50,131,112, 63,218,243,127,191, - 10,183,157,188,104,218,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10,183,157,188,216,151,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,104,218,198, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,216,151,116, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215, 35, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, - 88, 6, 0, 0,232,218,198, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,152,227,198, 6, 0, 0, 0, 0, 56,210,198, 6, + 88, 6, 0, 0, 88,152,116, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0,168,143,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 68, 97,114,107,101,110, 0, 48, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0,136,225,198, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,248,158,116, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -7329,7 +7349,7 @@ char datatoc_startup_blend[] = { 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,128,219,198, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,240,152,116, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -7340,25 +7360,25 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0,136,225,198, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 64, 1, 0, 0,248,158,116, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, - 46,189,194, 61, 24,227,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46,189,194, 61,136,160,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 24,227,198, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,136,160,116, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, - 88, 6, 0, 0,152,227,198, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0, 72,236,198, 6, 0, 0, 0, 0,232,218,198, 6, + 88, 6, 0, 0, 8,161,116, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 88,152,116, 5, 0, 0, 0, 0, 0, 20, 1,160,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 68,114, 97,119, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0, 56,234,198, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,168,167,116, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -7404,7 +7424,7 @@ char datatoc_startup_blend[] = { 0, 4, 0, 8, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, - 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0, 48,228,198, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0,160,161,116, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -7415,25 +7435,25 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0, 56,234,198, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 64, 1, 0, 0,168,167,116, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191, -114, 97,255,186,200,235,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +114, 97,255,186, 56,169,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,200,235,198, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 56,169,116, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, - 88, 6, 0, 0, 72,236,198, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,248,244,198, 6, 0, 0, 0, 0,152,227,198, 6, + 88, 6, 0, 0,184,169,116, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 8,161,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 70,105,108,108, 47, 68,101,101,112,101, 110, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0,232,242,198, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 88,176,116, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -7479,7 +7499,7 @@ char datatoc_startup_blend[] = { 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 20,174,199, 62, - 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0,224,236,198, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0, 80,170,116, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -7490,25 +7510,25 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0,232,242,198, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 64, 1, 0, 0, 88,176,116, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191, -114, 97,255,186,120,244,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +114, 97,255,186,232,177,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,120,244,198, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,232,177,116, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, - 88, 6, 0, 0,248,244,198, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,168,253,198, 6, 0, 0, 0, 0, 72,236,198, 6, + 88, 6, 0, 0,104,178,116, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0,184,169,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 70,108, 97,116,116,101,110, 47, 67,111, 110,116,114, 97,115,116, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0,152,251,198, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 8,185,116, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -7554,7 +7574,7 @@ char datatoc_startup_blend[] = { 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 20,174,199, 62, - 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0,144,245,198, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0, 0,179,116, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -7565,25 +7585,25 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0,152,251,198, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 64, 1, 0, 0, 8,185,116, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191, -114, 97,255,186, 40,253,198, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +114, 97,255,186,152,186,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 40,253,198, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,152,186,116, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, - 88, 6, 0, 0,168,253,198, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0, 88, 6,199, 6, 0, 0, 0, 0,248,244,198, 6, + 88, 6, 0, 0, 24,187,116, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0,104,178,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 71,114, 97, 98, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0, 72, 4,199, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,184,193,116, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -7629,7 +7649,7 @@ char datatoc_startup_blend[] = { 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 64,254,198, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,176,187,116, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -7640,25 +7660,25 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0, 72, 4,199, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 64, 1, 0, 0,184,193,116, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191, -114, 97,255,186,216, 5,199, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +114, 97,255,186, 72,195,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,216, 5,199, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 72,195,116, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, - 88, 6, 0, 0, 88, 6,199, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0, 8, 15,199, 6, 0, 0, 0, 0,168,253,198, 6, + 88, 6, 0, 0,200,195,116, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 24,187,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 73,110,102,108, 97,116,101, 47, 68,101, 102,108, 97,116,101, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0,248, 12,199, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,104,202,116, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -7704,7 +7724,7 @@ char datatoc_startup_blend[] = { 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0, 64, 63, 0, 0, 64, 63, 0, 0, 64, 63, - 0, 0,128, 62, 0, 0,128, 62, 0, 0,128, 62, 68, 65, 84, 65, 56, 1, 0, 0,240, 6,199, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0,128, 62, 0, 0,128, 62, 0, 0,128, 62, 68, 65, 84, 65, 56, 1, 0, 0, 96,196,116, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -7715,25 +7735,25 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0,248, 12,199, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 64, 1, 0, 0,104,202,116, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191, -114, 97,255,186,136, 14,199, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +114, 97,255,186,248,203,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,136, 14,199, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,248,203,116, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, - 88, 6, 0, 0, 8, 15,199, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,184, 23,199, 6, 0, 0, 0, 0, 88, 6,199, 6, + 88, 6, 0, 0,120,204,116, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0,200,195,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 76, 97,121,101,114, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0,168, 21,199, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 24,211,116, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -7779,7 +7799,7 @@ char datatoc_startup_blend[] = { 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,160, 15,199, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 16,205,116, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -7790,25 +7810,25 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0,168, 21,199, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 64, 1, 0, 0, 24,211,116, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191, -114, 97,255,186, 56, 23,199, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +114, 97,255,186,168,212,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 56, 23,199, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,168,212,116, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, - 88, 6, 0, 0,184, 23,199, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,104, 32,199, 6, 0, 0, 0, 0, 8, 15,199, 6, + 88, 6, 0, 0, 40,213,116, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0,120,204,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 76,105,103,104,116,101,110, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0, 88, 30,199, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,200,219,116, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -7854,7 +7874,7 @@ char datatoc_startup_blend[] = { 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 80, 24,199, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,192,213,116, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -7865,25 +7885,25 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0, 88, 30,199, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 64, 1, 0, 0,200,219,116, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, - 46,189,194, 61,232, 31,199, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46,189,194, 61, 88,221,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,232, 31,199, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 88,221,116, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, - 88, 6, 0, 0,104, 32,199, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0, 24, 41,199, 6, 0, 0, 0, 0,184, 23,199, 6, + 88, 6, 0, 0,216,221,116, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 40,213,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 77,105,120, 0,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0, 8, 39,199, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,120,228,116, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -7929,7 +7949,7 @@ char datatoc_startup_blend[] = { 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 0, 33,199, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,112,222,116, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -7940,25 +7960,25 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0, 8, 39,199, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 64, 1, 0, 0,120,228,116, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, - 46,189,194, 61,152, 40,199, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46,189,194, 61, 8,230,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,152, 40,199, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 8,230,116, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, - 88, 6, 0, 0, 24, 41,199, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,200, 49,199, 6, 0, 0, 0, 0,104, 32,199, 6, + 88, 6, 0, 0,136,230,116, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0,216,221,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 77,117,108,116,105,112,108,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0,184, 47,199, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 40,237,116, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -8004,7 +8024,7 @@ char datatoc_startup_blend[] = { 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,176, 41,199, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 32,231,116, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -8015,25 +8035,25 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0,184, 47,199, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 64, 1, 0, 0, 40,237,116, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, - 46,189,194, 61, 72, 49,199, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46,189,194, 61,184,238,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 72, 49,199, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,184,238,116, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, - 88, 6, 0, 0,200, 49,199, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,120, 58,199, 6, 0, 0, 0, 0, 24, 41,199, 6, + 88, 6, 0, 0, 56,239,116, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0,136,230,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 78,117,100,103,101, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0,104, 56,199, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,216,245,116, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -8079,7 +8099,7 @@ char datatoc_startup_blend[] = { 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 96, 50,199, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,208,239,116, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -8090,25 +8110,25 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0,104, 56,199, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 64, 1, 0, 0,216,245,116, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191, -114, 97,255,186,248, 57,199, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +114, 97,255,186,104,247,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,248, 57,199, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,104,247,116, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, - 88, 6, 0, 0,120, 58,199, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0, 40, 67,199, 6, 0, 0, 0, 0,200, 49,199, 6, + 88, 6, 0, 0,232,247,116, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 56,239,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 80,105,110, 99,104, 47, 77, 97,103,110, 105,102,121, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0, 24, 65,199, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,136,254,116, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -8154,7 +8174,7 @@ char datatoc_startup_blend[] = { 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0, 64, 63, 0, 0, 64, 63, 0, 0, 64, 63, - 0, 0,128, 62, 0, 0,128, 62, 0, 0,128, 62, 68, 65, 84, 65, 56, 1, 0, 0, 16, 59,199, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0,128, 62, 0, 0,128, 62, 0, 0,128, 62, 68, 65, 84, 65, 56, 1, 0, 0,128,248,116, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -8165,25 +8185,25 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0, 24, 65,199, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 64, 1, 0, 0,136,254,116, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191, -114, 97,255,186,168, 66,199, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +114, 97,255,186, 24, 0,117, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,168, 66,199, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 24, 0,117, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, - 88, 6, 0, 0, 40, 67,199, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,216, 75,199, 6, 0, 0, 0, 0,120, 58,199, 6, + 88, 6, 0, 0,152, 0,117, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0,232,247,116, 5, 0, 0, 0, 0,253, 21,192, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 80,111,108,105,115,104, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0,200, 73,199, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 56, 7,117, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -8229,7 +8249,7 @@ char datatoc_startup_blend[] = { 4, 4, 4, 1, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 20,174,199, 62, - 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0,192, 67,199, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0, 48, 1,117, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -8240,25 +8260,25 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0,200, 73,199, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 64, 1, 0, 0, 56, 7,117, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191, -114, 97,255,186, 88, 75,199, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +114, 97,255,186,200, 8,117, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 88, 75,199, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,200, 8,117, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, - 88, 6, 0, 0,216, 75,199, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,136, 84,199, 6, 0, 0, 0, 0, 40, 67,199, 6, + 88, 6, 0, 0, 72, 9,117, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0,152, 0,117, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83, 99,114, 97,112,101, 47, 80,101, 97, 107,115, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0,120, 82,199, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,232, 15,117, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -8304,7 +8324,7 @@ char datatoc_startup_blend[] = { 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 20,174,199, 62, - 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0,112, 76,199, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0,224, 9,117, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -8315,25 +8335,25 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0,120, 82,199, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 64, 1, 0, 0,232, 15,117, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191, -114, 97,255,186, 8, 84,199, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +114, 97,255,186,120, 17,117, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 8, 84,199, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,120, 17,117, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, - 88, 6, 0, 0,136, 84,199, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0, 56, 93,199, 6, 0, 0, 0, 0,216, 75,199, 6, + 88, 6, 0, 0,248, 17,117, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 72, 9,117, 5, 0, 0, 0, 0,168,205,210, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83, 99,117,108,112,116, 68,114, 97,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0, 40, 91,199, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,152, 24,117, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -8379,7 +8399,7 @@ char datatoc_startup_blend[] = { 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0,160,119, 78, 63, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, - 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0, 32, 85,199, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0,144, 18,117, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -8390,25 +8410,25 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0, 40, 91,199, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 64, 1, 0, 0,152, 24,117, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191, -114, 97,255,186,184, 92,199, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +114, 97,255,186, 40, 26,117, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,184, 92,199, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 40, 26,117, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, - 88, 6, 0, 0, 56, 93,199, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,232,101,199, 6, 0, 0, 0, 0,136, 84,199, 6, + 88, 6, 0, 0,168, 26,117, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0,248, 17,117, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,109,101, 97,114, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0,216, 99,199, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 72, 33,117, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -8454,7 +8474,7 @@ char datatoc_startup_blend[] = { 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,208, 93,199, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 64, 27,117, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -8465,25 +8485,25 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0,216, 99,199, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 64, 1, 0, 0, 72, 33,117, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, - 46,189,194, 61,104,101,199, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46,189,194, 61,216, 34,117, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,104,101,199, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,216, 34,117, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, - 88, 6, 0, 0,232,101,199, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,152,110,199, 6, 0, 0, 0, 0, 56, 93,199, 6, + 88, 6, 0, 0, 88, 35,117, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0,168, 26,117, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,109,111,111,116,104, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0,136,108,199, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,248, 41,117, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -8529,7 +8549,7 @@ char datatoc_startup_blend[] = { 4, 4, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0, 64, 63, 0, 0, 64, 63, 0, 0, 64, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,128,102,199, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,240, 35,117, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -8540,25 +8560,25 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0,136,108,199, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 64, 1, 0, 0,248, 41,117, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191, -114, 97,255,186, 24,110,199, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +114, 97,255,186,136, 43,117, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 24,110,199, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,136, 43,117, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, - 88, 6, 0, 0,152,110,199, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0, 72,119,199, 6, 0, 0, 0, 0,232,101,199, 6, + 88, 6, 0, 0, 8, 44,117, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 88, 35,117, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,110, 97,107,101, 32, 72,111,111,107, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0, 56,117,199, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,168, 50,117, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -8604,7 +8624,7 @@ char datatoc_startup_blend[] = { 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 48,111,199, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,160, 44,117, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -8615,25 +8635,25 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0, 56,117,199, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 64, 1, 0, 0,168, 50,117, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191, -114, 97,255,186,200,118,199, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +114, 97,255,186, 56, 52,117, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,200,118,199, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 56, 52,117, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, - 88, 6, 0, 0, 72,119,199, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,248,127,199, 6, 0, 0, 0, 0,152,110,199, 6, + 88, 6, 0, 0,184, 52,117, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 8, 44,117, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,111,102,116,101,110, 0, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0,232,125,199, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 88, 59,117, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -8679,7 +8699,7 @@ char datatoc_startup_blend[] = { 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,224,119,199, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 80, 53,117, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -8690,25 +8710,25 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0,232,125,199, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 64, 1, 0, 0, 88, 59,117, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, - 46,189,194, 61,120,127,199, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46,189,194, 61,232, 60,117, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,120,127,199, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,232, 60,117, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, - 88, 6, 0, 0,248,127,199, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,168,136,199, 6, 0, 0, 0, 0, 72,119,199, 6, + 88, 6, 0, 0,104, 61,117, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0,184, 52,117, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,117, 98,116,114, 97, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0,152,134,199, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 8, 68,117, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -8754,7 +8774,7 @@ char datatoc_startup_blend[] = { 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,144,128,199, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 0, 62,117, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -8765,25 +8785,25 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0,152,134,199, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 64, 1, 0, 0, 8, 68,117, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, - 46,189,194, 61, 40,136,199, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46,189,194, 61,152, 69,117, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 40,136,199, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,152, 69,117, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, - 88, 6, 0, 0,168,136,199, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0, 88,145,199, 6, 0, 0, 0, 0,248,127,199, 6, + 88, 6, 0, 0, 24, 70,117, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0,104, 61,117, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 84,101,120, 68,114, 97,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0, 72,143,199, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,184, 76,117, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -8829,7 +8849,7 @@ char datatoc_startup_blend[] = { 4, 4, 0, 8, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0, 64,137,199, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0,176, 70,117, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -8840,25 +8860,25 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0, 72,143,199, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 64, 1, 0, 0,184, 76,117, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191, -114, 97,255,186,216,144,199, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +114, 97,255,186, 72, 78,117, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,216,144,199, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 72, 78,117, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, - 88, 6, 0, 0, 88,145,199, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0, 8,154,199, 6, 0, 0, 0, 0,168,136,199, 6, + 88, 6, 0, 0,200, 78,117, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0,120, 87,117, 5, 0, 0, 0, 0, 24, 70,117, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 84,104,117,109, 98, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0,248,151,199, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,104, 85,117, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -8904,7 +8924,7 @@ char datatoc_startup_blend[] = { 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,240,145,199, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 96, 79,117, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -8915,25 +8935,25 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0,248,151,199, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 64, 1, 0, 0,104, 85,117, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191, -114, 97,255,186,136,153,199, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +114, 97,255,186,248, 86,117, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,136,153,199, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,248, 86,117, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, - 88, 6, 0, 0, 8,154,199, 6, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,145,199, 6, + 88, 6, 0, 0,120, 87,117, 5, 0, 0, 0, 0,123, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 78,117, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 84,119,105,115,116, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0,168,160,199, 6, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 24, 94,117, 5, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, @@ -8979,7 +8999,7 @@ char datatoc_startup_blend[] = { 0, 0, 0, 1, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,160,154,199, 6, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 16, 88,117, 5, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, @@ -8990,20 +9010,20 @@ char datatoc_startup_blend[] = { 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, - 64, 1, 0, 0,168,160,199, 6, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 64, 1, 0, 0, 24, 94,117, 5, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191, -114, 97,255,186, 56,162,199, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +114, 97,255,186,168, 95,117, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, - 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 56,162,199, 6, + 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,168, 95,117, 5, 0, 0, 0, 0,117, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 85, 83, 69, 82, -112, 38, 0, 0, 0,182, 22, 5, 0, 0, 0, 0,209, 0, 0, 0, 1, 0, 0, 0, 1, 8, 17, 1, 63, 6, 0, 0, 5, 0, 0, 0, +112, 38, 0, 0,224, 49,217, 4, 0, 0, 0, 0,209, 0, 0, 0, 1, 0, 0, 0, 1, 8, 17, 1, 63, 6, 0, 0, 5, 0, 0, 0, 47,116,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -9270,9 +9290,9 @@ char datatoc_startup_blend[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 35, 0, 0, 0, 2, 0, 94, 1, 8, 0, 0, 0, 3, 0, 0, 0, 56, 52, 39, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 8, 0, 0, 2, 0, 0, 0, 68,172, 0, 0, 36, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 72, 0, 0, 0, 0, 0, 64, 0, - 5, 0, 2, 0,120,201,199, 6, 0, 0, 0, 0,120,201,199, 6, 0, 0, 0, 0,248,176,199, 6, 0, 0, 0, 0,248,176,199, 6, - 0, 0, 0, 0,104,243,199, 6, 0, 0, 0, 0,104,243,199, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,154,198, 6, 0, 0, 0, 0,200,242,199, 6, + 5, 0, 2, 0,232,134,117, 5, 0, 0, 0, 0,232,134,117, 5, 0, 0, 0, 0,104,110,117, 5, 0, 0, 0, 0,104,110,117, 5, + 0, 0, 0, 0,216,176,117, 5, 0, 0, 0, 0,216,176,117, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 87,116, 5, 0, 0, 0, 0, 56,176,117, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 1, 0, 2, 0, 25, 0, 0, 0, 20, 0, 20, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204, 76, 63, @@ -9311,7 +9331,7 @@ char datatoc_startup_blend[] = { 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, - 0, 0, 0, 0, 68, 65, 84, 65,168, 36, 0, 0,120,201,199, 6, 0, 0, 0, 0,206, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65,168, 36, 0, 0,232,134,117, 5, 0, 0, 0, 0,206, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,101,102, 97,117,108,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255, 255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,100,100,100,255, 25, 25, 25,255, 0, 0, 0,255, @@ -9605,39 +9625,39 @@ char datatoc_startup_blend[] = { 28, 67, 11,255, 52, 98, 43,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,136,154,198, 6, 0, 0, 0, 0,207, 0, 0, 0, 1, 0, 0, 0, 40,155,198, 6, + 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,248, 87,116, 5, 0, 0, 0, 0,207, 0, 0, 0, 1, 0, 0, 0,152, 88,116, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95, 51,100,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0, 40,155,198, 6, 0, 0, 0, 0,207, 0, 0, 0, - 1, 0, 0, 0,104,238,199, 6, 0, 0, 0, 0,136,154,198, 6, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95,102, 98,120, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,152, 88,116, 5, 0, 0, 0, 0,207, 0, 0, 0, + 1, 0, 0, 0,216,171,117, 5, 0, 0, 0, 0,248, 87,116, 5, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95,102, 98,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,104,238,199, 6, - 0, 0, 0, 0,207, 0, 0, 0, 1, 0, 0, 0, 8,239,199, 6, 0, 0, 0, 0, 40,155,198, 6, 0, 0, 0, 0,105,111, 95, 97, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,216,171,117, 5, + 0, 0, 0, 0,207, 0, 0, 0, 1, 0, 0, 0,120,172,117, 5, 0, 0, 0, 0,152, 88,116, 5, 0, 0, 0, 0,105,111, 95, 97, 110,105,109, 95, 98,118,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 80, 0, 0, 0, 8,239,199, 6, 0, 0, 0, 0,207, 0, 0, 0, 1, 0, 0, 0,168,239,199, 6, 0, 0, 0, 0,104,238,199, 6, + 80, 0, 0, 0,120,172,117, 5, 0, 0, 0, 0,207, 0, 0, 0, 1, 0, 0, 0, 24,173,117, 5, 0, 0, 0, 0,216,171,117, 5, 0, 0, 0, 0,105,111, 95,109,101,115,104, 95,112,108,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,168,239,199, 6, 0, 0, 0, 0,207, 0, 0, 0, 1, 0, 0, 0, 72,240,199, 6, - 0, 0, 0, 0, 8,239,199, 6, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95,111, 98,106, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0, 24,173,117, 5, 0, 0, 0, 0,207, 0, 0, 0, 1, 0, 0, 0,184,173,117, 5, + 0, 0, 0, 0,120,172,117, 5, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95,111, 98,106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0, 72,240,199, 6, 0, 0, 0, 0,207, 0, 0, 0, - 1, 0, 0, 0,232,240,199, 6, 0, 0, 0, 0,168,239,199, 6, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95,120, 51,100, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,184,173,117, 5, 0, 0, 0, 0,207, 0, 0, 0, + 1, 0, 0, 0, 88,174,117, 5, 0, 0, 0, 0, 24,173,117, 5, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95,120, 51,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,232,240,199, 6, - 0, 0, 0, 0,207, 0, 0, 0, 1, 0, 0, 0,136,241,199, 6, 0, 0, 0, 0, 72,240,199, 6, 0, 0, 0, 0,105,111, 95,109, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0, 88,174,117, 5, + 0, 0, 0, 0,207, 0, 0, 0, 1, 0, 0, 0,248,174,117, 5, 0, 0, 0, 0,184,173,117, 5, 0, 0, 0, 0,105,111, 95,109, 101,115,104, 95,115,116,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, - 80, 0, 0, 0,136,241,199, 6, 0, 0, 0, 0,207, 0, 0, 0, 1, 0, 0, 0, 40,242,199, 6, 0, 0, 0, 0,232,240,199, 6, + 80, 0, 0, 0,248,174,117, 5, 0, 0, 0, 0,207, 0, 0, 0, 1, 0, 0, 0,152,175,117, 5, 0, 0, 0, 0, 88,174,117, 5, 0, 0, 0, 0,105,111, 95,109,101,115,104, 95,117,118, 95,108, 97,121,111,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0, 40,242,199, 6, 0, 0, 0, 0,207, 0, 0, 0, 1, 0, 0, 0,200,242,199, 6, - 0, 0, 0, 0,136,241,199, 6, 0, 0, 0, 0,105,111, 95, 99,117,114,118,101, 95,115,118,103, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,152,175,117, 5, 0, 0, 0, 0,207, 0, 0, 0, 1, 0, 0, 0, 56,176,117, 5, + 0, 0, 0, 0,248,174,117, 5, 0, 0, 0, 0,105,111, 95, 99,117,114,118,101, 95,115,118,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,200,242,199, 6, 0, 0, 0, 0,207, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,242,199, 6, 0, 0, 0, 0, 99,121, 99,108,101,115, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0, 56,176,117, 5, 0, 0, 0, 0,207, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,175,117, 5, 0, 0, 0, 0, 99,121, 99,108,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,232, 0, 0, 0,104,243,199, 6, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,232, 0, 0, 0,216,176,117, 5, 0, 0, 0, 0,199, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,101,102, 97, 117,108,116, 32, 83,116,121,108,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, @@ -9645,8 +9665,8 @@ char datatoc_startup_blend[] = { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,255,255, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 11, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,255,255, 0, 0,154,153, 25, 62, 0, 0,128, 63, 0, 0, 11, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 0, 0,128, 63, - 0, 0, 0, 0, 8, 0, 5, 0, 5, 0, 8, 0, 2, 0, 8, 0, 4, 0, 0, 0, 68, 78, 65, 49,156, 4, 1, 0, 24, 9,236, 0, - 73,127, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 83, 68, 78, 65, 78, 65, 77, 69, 58, 13, 0, 0, 42,110,101,120,116, 0, 42,112, + 0, 0, 0, 0, 8, 0, 5, 0, 5, 0, 8, 0, 2, 0, 8, 0, 4, 0, 0, 0, 68, 78, 65, 49,188, 4, 1, 0,120,183,137, 77, +215,127, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 83, 68, 78, 65, 78, 65, 77, 69, 59, 13, 0, 0, 42,110,101,120,116, 0, 42,112, 114,101,118, 0, 42,100, 97,116, 97, 0, 42,102,105,114,115,116, 0, 42,108, 97,115,116, 0,120, 0,121, 0,122, 0,120,109,105, 110, 0,120,109, 97,120, 0,121,109,105,110, 0,121,109, 97,120, 0, 42,112,111,105,110,116,101,114, 0,103,114,111,117,112, 0, 118, 97,108, 0,118, 97,108, 50, 0,116,121,112,101, 0,115,117, 98,116,121,112,101, 0,102,108, 97,103, 0,110, 97,109,101, 91, @@ -10037,465 +10057,465 @@ char datatoc_startup_blend[] = { 122,101, 0,109,117,120, 95,114, 97,116,101, 0,109,105,120,114, 97,116,101, 0,109, 97,105,110, 0,115,112,101,101,100, 95,111, 102, 95,115,111,117,110,100, 0,100,111,112,112,108,101,114, 95,102, 97, 99,116,111,114, 0,100,105,115,116, 97,110, 99,101, 95, 109,111,100,101,108, 0, 42,109, 97,116, 95,111,118,101,114,114,105,100,101, 0, 42,108,105,103,104,116, 95,111,118,101,114,114, -105,100,101, 0,108, 97,121, 95,122,109, 97,115,107, 0,108, 97,121,102,108, 97,103, 0,112, 97,115,115,102,108, 97,103, 0,112, - 97,115,115, 95,120,111,114, 0,105,109,116,121,112,101, 0,112,108, 97,110,101,115, 0,113,117, 97,108,105,116,121, 0, 99,111, -109,112,114,101,115,115, 0,101,120,114, 95, 99,111,100,101, 99, 0, 99,105,110,101,111,110, 95,102,108, 97,103, 0, 99,105,110, -101,111,110, 95,119,104,105,116,101, 0, 99,105,110,101,111,110, 95, 98,108, 97, 99,107, 0, 99,105,110,101,111,110, 95,103, 97, -109,109, 97, 0,106,112, 50, 95,102,108, 97,103, 0,105,109, 95,102,111,114,109, 97,116, 0, 42, 97,118,105, 99,111,100,101, 99, -100, 97,116, 97, 0, 42,113,116, 99,111,100,101, 99,100, 97,116, 97, 0,113,116, 99,111,100,101, 99,115,101,116,116,105,110,103, -115, 0,102,102, 99,111,100,101, 99,100, 97,116, 97, 0,115,117, 98,102,114, 97,109,101, 0,112,115,102,114, 97, 0,112,101,102, -114, 97, 0,105,109, 97,103,101,115, 0,102,114, 97,109, 97,112,116,111, 0,116,104,114,101, 97,100,115, 0,102,114, 97,109,101, -108,101,110, 0, 98,108,117,114,102, 97, 99, 0,101,100,103,101, 82, 0,101,100,103,101, 71, 0,101,100,103,101, 66, 0,102,117, -108,108,115, 99,114,101,101,110, 0,120,112,108, 97,121, 0,121,112,108, 97,121, 0,102,114,101,113,112,108, 97,121, 0, 97,116, -116,114,105, 98, 0,102,114, 97,109,101, 95,115,116,101,112, 0,115,116,101,114,101,111,109,111,100,101, 0,100,105,109,101,110, -115,105,111,110,115,112,114,101,115,101,116, 0,109, 97,120,105,109,115,105,122,101, 0,120,115, 99,104, 0,121,115, 99,104, 0, -120,112, 97,114,116,115, 0,121,112, 97,114,116,115, 0,115,117, 98,105,109,116,121,112,101, 0,100,105,115,112,108, 97,121,109, -111,100,101, 0,115, 99,101,109,111,100,101, 0,114, 97,121,116,114, 97, 99,101, 95,111,112,116,105,111,110,115, 0,114, 97,121, -116,114, 97, 99,101, 95,115,116,114,117, 99,116,117,114,101, 0,111, 99,114,101,115, 0,112, 97,100, 52, 0, 97,108,112,104, 97, -109,111,100,101, 0,111,115, 97, 0,102,114,115, 95,115,101, 99, 0,101,100,103,101,105,110,116, 0,115, 97,102,101,116,121, 0, - 98,111,114,100,101,114, 0,100,105,115,112,114,101, 99,116, 0,108, 97,121,101,114,115, 0, 97, 99,116,108, 97,121, 0,109, 98, -108,117,114, 95,115, 97,109,112,108,101,115, 0,120, 97,115,112, 0,121, 97,115,112, 0,102,114,115, 95,115,101, 99, 95, 98, 97, -115,101, 0,103, 97,117,115,115, 0, 99,111,108,111,114, 95,109,103,116, 95,102,108, 97,103, 0,112,111,115,116,103, 97,109,109, - 97, 0,112,111,115,116,104,117,101, 0,112,111,115,116,115, 97,116, 0,100,105,116,104,101,114, 95,105,110,116,101,110,115,105, -116,121, 0, 98, 97,107,101, 95,111,115, 97, 0, 98, 97,107,101, 95,102,105,108,116,101,114, 0, 98, 97,107,101, 95,109,111,100, -101, 0, 98, 97,107,101, 95,102,108, 97,103, 0, 98, 97,107,101, 95,110,111,114,109, 97,108, 95,115,112, 97, 99,101, 0, 98, 97, -107,101, 95,113,117, 97,100, 95,115,112,108,105,116, 0, 98, 97,107,101, 95,109, 97,120,100,105,115,116, 0, 98, 97,107,101, 95, - 98,105, 97,115,100,105,115,116, 0, 98, 97,107,101, 95,112, 97,100, 0,112,105, 99, 91, 49, 48, 50, 52, 93, 0,115,116, 97,109, -112, 0,115,116, 97,109,112, 95,102,111,110,116, 95,105,100, 0,115,116, 97,109,112, 95,117,100, 97,116, 97, 91, 55, 54, 56, 93, - 0,102,103, 95,115,116, 97,109,112, 91, 52, 93, 0, 98,103, 95,115,116, 97,109,112, 91, 52, 93, 0,115,101,113, 95,112,114,101, -118, 95,116,121,112,101, 0,115,101,113, 95,114,101,110,100, 95,116,121,112,101, 0,115,101,113, 95,102,108, 97,103, 0,112, 97, -100, 53, 91, 53, 93, 0,115,105,109,112,108,105,102,121, 95,102,108, 97,103, 0,115,105,109,112,108,105,102,121, 95,115,117, 98, -115,117,114,102, 0,115,105,109,112,108,105,102,121, 95,115,104, 97,100,111,119,115, 97,109,112,108,101,115, 0,115,105,109,112, -108,105,102,121, 95,112, 97,114,116,105, 99,108,101,115, 0,115,105,109,112,108,105,102,121, 95, 97,111,115,115,115, 0, 99,105, -110,101,111,110,119,104,105,116,101, 0, 99,105,110,101,111,110, 98,108, 97, 99,107, 0, 99,105,110,101,111,110,103, 97,109,109, - 97, 0,106,112, 50, 95,112,114,101,115,101,116, 0,106,112, 50, 95,100,101,112,116,104, 0,114,112, 97,100, 51, 0,100,111,109, -101,114,101,115, 0,100,111,109,101,109,111,100,101, 0,100,111,109,101, 97,110,103,108,101, 0,100,111,109,101,116,105,108,116, - 0,100,111,109,101,114,101,115, 98,117,102, 0, 42,100,111,109,101,116,101,120,116, 0,101,110,103,105,110,101, 91, 51, 50, 93, - 0,110, 97,109,101, 91, 51, 50, 93, 0,112, 97,114,116,105, 99,108,101, 95,112,101,114, 99, 0,115,117, 98,115,117,114,102, 95, -109, 97,120, 0,115,104, 97,100, 98,117,102,115, 97,109,112,108,101, 95,109, 97,120, 0, 97,111, 95,101,114,114,111,114, 0,116, -105,108,116, 0,114,101,115, 98,117,102, 0, 42,119, 97,114,112,116,101,120,116, 0, 99,111,108, 91, 51, 93, 0, 99,101,108,108, -115,105,122,101, 0, 99,101,108,108,104,101,105,103,104,116, 0, 97,103,101,110,116,109, 97,120,115,108,111,112,101, 0, 97,103, -101,110,116,109, 97,120, 99,108,105,109, 98, 0, 97,103,101,110,116,104,101,105,103,104,116, 0, 97,103,101,110,116,114, 97,100, -105,117,115, 0,101,100,103,101,109, 97,120,108,101,110, 0,101,100,103,101,109, 97,120,101,114,114,111,114, 0,114,101,103,105, -111,110,109,105,110,115,105,122,101, 0,114,101,103,105,111,110,109,101,114,103,101,115,105,122,101, 0,118,101,114,116,115,112, -101,114,112,111,108,121, 0,100,101,116, 97,105,108,115, 97,109,112,108,101,100,105,115,116, 0,100,101,116, 97,105,108,115, 97, -109,112,108,101,109, 97,120,101,114,114,111,114, 0,102,114, 97,109,105,110,103, 0,112,108, 97,121,101,114,102,108, 97,103, 0, -114,116, 49, 0,114,116, 50, 0, 97, 97,115, 97,109,112,108,101,115, 0,112, 97,100, 52, 91, 51, 93, 0,100,111,109,101, 0,115, -116,101,114,101,111,102,108, 97,103, 0,101,121,101,115,101,112, 97,114, 97,116,105,111,110, 0,114,101, 99, 97,115,116, 68, 97, -116, 97, 0,109, 97,116,109,111,100,101, 0,101,120,105,116,107,101,121, 0,111, 98,115,116, 97, 99,108,101, 83,105,109,117,108, - 97,116,105,111,110, 0,108,101,118,101,108, 72,101,105,103,104,116, 0, 42, 99, 97,109,101,114, 97, 0, 42,112, 97,105,110,116, - 95, 99,117,114,115,111,114, 0,112, 97,105,110,116, 95, 99,117,114,115,111,114, 95, 99,111,108, 91, 52, 93, 0,112, 97,105,110, -116, 0,115,101, 97,109, 95, 98,108,101,101,100, 0,110,111,114,109, 97,108, 95, 97,110,103,108,101, 0,115, 99,114,101,101,110, - 95,103,114, 97, 98, 95,115,105,122,101, 91, 50, 93, 0, 42,112, 97,105,110,116, 99,117,114,115,111,114, 0,105,110,118,101,114, -116, 0,116,111,116,114,101,107,101,121, 0,116,111,116, 97,100,100,107,101,121, 0, 98,114,117,115,104,116,121,112,101, 0, 98, -114,117,115,104, 91, 55, 93, 0,101,109,105,116,116,101,114,100,105,115,116, 0,115,101,108,101, 99,116,109,111,100,101, 0,101, -100,105,116,116,121,112,101, 0,100,114, 97,119, 95,115,116,101,112, 0,102, 97,100,101, 95,102,114, 97,109,101,115, 0,114, 97, -100,105, 97,108, 95,115,121,109,109, 91, 51, 93, 0,108, 97,115,116, 95,120, 0,108, 97,115,116, 95,121, 0,108, 97,115,116, 95, - 97,110,103,108,101, 0,100,114, 97,119, 95, 97,110, 99,104,111,114,101,100, 0, 97,110, 99,104,111,114,101,100, 95,115,105,122, -101, 0, 97,110, 99,104,111,114,101,100, 95,108,111, 99, 97,116,105,111,110, 91, 51, 93, 0, 97,110, 99,104,111,114,101,100, 95, -105,110,105,116,105, 97,108, 95,109,111,117,115,101, 91, 50, 93, 0,100,114, 97,119, 95,112,114,101,115,115,117,114,101, 0,112, -114,101,115,115,117,114,101, 95,118, 97,108,117,101, 0,115,112,101, 99,105, 97,108, 95,114,111,116, 97,116,105,111,110, 0, 42, -118,112, 97,105,110,116, 95,112,114,101,118, 0, 42,119,112, 97,105,110,116, 95,112,114,101,118, 0,109, 97,116, 91, 51, 93, 91, - 51, 93, 0,117,110,112,114,111,106,101, 99,116,101,100, 95,114, 97,100,105,117,115, 0, 42,118,112, 97,105,110,116, 0, 42,119, -112, 97,105,110,116, 0, 42,117,118,115, 99,117,108,112,116, 0,118,103,114,111,117,112, 95,119,101,105,103,104,116, 0, 99,111, -114,110,101,114,116,121,112,101, 0,101,100,105,116, 98,117,116,102,108, 97,103, 0,106,111,105,110,116,114,105,108,105,109,105, -116, 0,100,101,103,114, 0,116,117,114,110, 0,101,120,116,114, 95,111,102,102,115, 0,100,111,117, 98,108,105,109,105,116, 0, -110,111,114,109, 97,108,115,105,122,101, 0, 97,117,116,111,109,101,114,103,101, 0,115,101,103,109,101,110,116,115, 0,114,105, -110,103,115, 0,118,101,114,116,105, 99,101,115, 0,117,110,119,114, 97,112,112,101,114, 0,117,118, 99, 97,108, 99, 95,114, 97, -100,105,117,115, 0,117,118, 99, 97,108, 99, 95, 99,117, 98,101,115,105,122,101, 0,117,118, 99, 97,108, 99, 95,109, 97,114,103, -105,110, 0,117,118, 99, 97,108, 99, 95,109, 97,112,100,105,114, 0,117,118, 99, 97,108, 99, 95,109, 97,112, 97,108,105,103,110, - 0,117,118, 99, 97,108, 99, 95,102,108, 97,103, 0,117,118, 95,102,108, 97,103, 0,117,118, 95,115,101,108,101, 99,116,109,111, -100,101, 0,117,118, 95,115,117, 98,115,117,114,102, 95,108,101,118,101,108, 0,103,112,101,110, 99,105,108, 95,102,108, 97,103, -115, 0, 97,117,116,111,105,107, 95, 99,104, 97,105,110,108,101,110, 0,105,109, 97,112, 97,105,110,116, 0,112, 97,114,116,105, - 99,108,101, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 95,115,105,122,101, 0,115,101,108,101, 99,116, 95,116,104,114, -101,115,104, 0, 99,108,101, 97,110, 95,116,104,114,101,115,104, 0, 97,117,116,111,107,101,121, 95,109,111,100,101, 0, 97,117, -116,111,107,101,121, 95,102,108, 97,103, 0,109,117,108,116,105,114,101,115, 95,115,117, 98,100,105,118, 95,116,121,112,101, 0, -112, 97,100, 50, 91, 53, 93, 0,115,107,103,101,110, 95,114,101,115,111,108,117,116,105,111,110, 0,115,107,103,101,110, 95,116, -104,114,101,115,104,111,108,100, 95,105,110,116,101,114,110, 97,108, 0,115,107,103,101,110, 95,116,104,114,101,115,104,111,108, -100, 95,101,120,116,101,114,110, 97,108, 0,115,107,103,101,110, 95,108,101,110,103,116,104, 95,114, 97,116,105,111, 0,115,107, -103,101,110, 95,108,101,110,103,116,104, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, 97,110,103,108,101, 95,108,105,109, -105,116, 0,115,107,103,101,110, 95, 99,111,114,114,101,108, 97,116,105,111,110, 95,108,105,109,105,116, 0,115,107,103,101,110, - 95,115,121,109,109,101,116,114,121, 95,108,105,109,105,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95, 97, -110,103,108,101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,108,101,110,103,116, -104, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,100,105,115,116, 97,110, 99,101, - 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,111,112,116,105,111,110,115, 0,115,107,103,101,110, 95,112,111,115,116, -112,114,111, 0,115,107,103,101,110, 95,112,111,115,116,112,114,111, 95,112, 97,115,115,101,115, 0,115,107,103,101,110, 95,115, -117, 98,100,105,118,105,115,105,111,110,115, 91, 51, 93, 0,115,107,103,101,110, 95,109,117,108,116,105, 95,108,101,118,101,108, - 0, 42,115,107,103,101,110, 95,116,101,109,112,108, 97,116,101, 0, 98,111,110,101, 95,115,107,101,116, 99,104,105,110,103, 0, - 98,111,110,101, 95,115,107,101,116, 99,104,105,110,103, 95, 99,111,110,118,101,114,116, 0,115,107,103,101,110, 95,115,117, 98, -100,105,118,105,115,105,111,110, 95,110,117,109, 98,101,114, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,111, -112,116,105,111,110,115, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,114,111,108,108, 0,115,107,103,101,110, - 95,115,105,100,101, 95,115,116,114,105,110,103, 91, 56, 93, 0,115,107,103,101,110, 95,110,117,109, 95,115,116,114,105,110,103, - 91, 56, 93, 0,101,100,103,101, 95,109,111,100,101, 0,101,100,103,101, 95,109,111,100,101, 95,108,105,118,101, 95,117,110,119, -114, 97,112, 0,115,110, 97,112, 95,109,111,100,101, 0,115,110, 97,112, 95,102,108, 97,103, 0,115,110, 97,112, 95,116, 97,114, -103,101,116, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 0,112,114,111,112, 95,109,111,100,101, 0,112,114,111,112,111, -114,116,105,111,110, 97,108, 95,111, 98,106,101, 99,116,115, 0,112, 97,100, 91, 53, 93, 0, 97,117,116,111, 95,110,111,114,109, - 97,108,105,122,101, 0,109,117,108,116,105,112, 97,105,110,116, 0,117,115,101, 95,117,118, 95,115, 99,117,108,112,116, 0,117, -118, 95,115, 99,117,108,112,116, 95,115,101,116,116,105,110,103,115, 0,117,118, 95,115, 99,117,108,112,116, 95,116,111,111,108, - 0,117,118, 95,114,101,108, 97,120, 95,109,101,116,104,111,100, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,115,101, -116,116,105,110,103,115, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,117,110,105,102,105,101,100, 95,115,105,122,101, - 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,117,110,105,102,105,101,100, 95,117,110,112,114,111,106,101, 99,116,101, -100, 95,114, 97,100,105,117,115, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,117,110,105,102,105,101,100, 95, 97,108, -112,104, 97, 0,117,110,105,102,105,101,100, 95,112, 97,105,110,116, 95,115,101,116,116,105,110,103,115, 0,116,111,116,111, 98, -106, 0,116,111,116,108, 97,109,112, 0,116,111,116,111, 98,106,115,101,108, 0,116,111,116, 99,117,114,118,101, 0,116,111,116, -109,101,115,104, 0,116,111,116, 97,114,109, 97,116,117,114,101, 0,115, 99, 97,108,101, 95,108,101,110,103,116,104, 0,115,121, -115,116,101,109, 0,115,121,115,116,101,109, 95,114,111,116, 97,116,105,111,110, 0,103,114, 97,118,105,116,121, 91, 51, 93, 0, -113,117,105, 99,107, 95, 99, 97, 99,104,101, 95,115,116,101,112, 0, 42,119,111,114,108,100, 0, 42,115,101,116, 0, 98, 97,115, -101, 0, 42, 98, 97,115, 97, 99,116, 0, 42,111, 98,101,100,105,116, 0, 99,117,114,115,111,114, 91, 51, 93, 0,116,119, 99,101, -110,116, 91, 51, 93, 0,116,119,109,105,110, 91, 51, 93, 0,116,119,109, 97,120, 91, 51, 93, 0,108, 97,121, 97, 99,116, 0,108, - 97,121, 95,117,112,100, 97,116,101,100, 0, 42,101,100, 0, 42,116,111,111,108,115,101,116,116,105,110,103,115, 0, 42,115,116, - 97,116,115, 0, 97,117,100,105,111, 0,116,114, 97,110,115,102,111,114,109, 95,115,112, 97, 99,101,115, 0, 42,115,111,117,110, -100, 95,115, 99,101,110,101, 0, 42,115,111,117,110,100, 95,115, 99,101,110,101, 95,104, 97,110,100,108,101, 0, 42,115,111,117, -110,100, 95,115, 99,114,117, 98, 95,104, 97,110,100,108,101, 0, 42,115,112,101, 97,107,101,114, 95,104, 97,110,100,108,101,115, - 0, 42,102,112,115, 95,105,110,102,111, 0, 42,116,104,101, 68, 97,103, 0,100, 97,103,105,115,118, 97,108,105,100, 0,100, 97, -103,102,108, 97,103,115, 0, 97, 99,116,105,118,101, 95,107,101,121,105,110,103,115,101,116, 0,107,101,121,105,110,103,115,101, -116,115, 0,103,109, 0,117,110,105,116, 0,112,104,121,115,105, 99,115, 95,115,101,116,116,105,110,103,115, 0, 42, 99,108,105, -112, 0, 99,117,115,116,111,109,100, 97,116, 97, 95,109, 97,115,107, 95,109,111,100, 97,108, 0, 99,117,115,101,114, 0, 98,108, -101,110,100, 0,118,105,101,119, 0,119,105,110,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109, 97,116, 91, 52, 93, - 91, 52, 93, 0,118,105,101,119,105,110,118, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,109, 97,116, 91, 52, 93, 91, 52, 93, 0, -112,101,114,115,105,110,118, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109, 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0,112,101, -114,115,109, 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0, 99,108,105,112, 91, 54, 93, 91, 52, 93, 0, 99,108,105,112, 95,108,111, - 99, 97,108, 91, 54, 93, 91, 52, 93, 0, 42, 99,108,105,112, 98, 98, 0, 42,108,111, 99, 97,108,118,100, 0, 42,114,105, 0, 42, -114,101,110,100,101,114, 95,101,110,103,105,110,101, 0, 42,100,101,112,116,104,115, 0, 42,115,109,115, 0, 42,115,109,111,111, -116,104, 95,116,105,109,101,114, 0,116,119,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,113,117, 97,116, 91, 52, 93, - 0,122,102, 97, 99, 0, 99, 97,109,100,120, 0, 99, 97,109,100,121, 0,112,105,120,115,105,122,101, 0, 99, 97,109,122,111,111, -109, 0,105,115, 95,112,101,114,115,112, 0,112,101,114,115,112, 0,118,105,101,119,108,111, 99,107, 0,116,119,100,114, 97,119, -102,108, 97,103, 0,114,102,108, 97,103, 0,108,118,105,101,119,113,117, 97,116, 91, 52, 93, 0,108,112,101,114,115,112, 0,108, -118,105,101,119, 0,103,114,105,100,118,105,101,119, 0,116,119, 97,110,103,108,101, 91, 51, 93, 0,114,111,116, 95, 97,110,103, -108,101, 0,114,111,116, 95, 97,120,105,115, 91, 51, 93, 0,114,101,103,105,111,110, 98, 97,115,101, 0,115,112, 97, 99,101,116, -121,112,101, 0, 98,108,111, 99,107,115, 99, 97,108,101, 0, 98,108,111, 99,107,104, 97,110,100,108,101,114, 91, 56, 93, 0, 98, -117,110,100,108,101, 95,115,105,122,101, 0, 98,117,110,100,108,101, 95,100,114, 97,119,116,121,112,101, 0,108, 97,121, 95,117, -115,101,100, 0, 42,111, 98, 95, 99,101,110,116,114,101, 0, 98,103,112,105, 99, 98, 97,115,101, 0, 42, 98,103,112,105, 99, 0, -111, 98, 95, 99,101,110,116,114,101, 95, 98,111,110,101, 91, 54, 52, 93, 0,100,114, 97,119,116,121,112,101, 0,111, 98, 95, 99, -101,110,116,114,101, 95, 99,117,114,115,111,114, 0,115, 99,101,110,101,108,111, 99,107, 0, 97,114,111,117,110,100, 0,103,114, -105,100, 0,110,101, 97,114, 0,102, 97,114, 0,109,111,100,101,115,101,108,101, 99,116, 0,103,114,105,100,108,105,110,101,115, - 0,103,114,105,100,115,117, 98,100,105,118, 0,103,114,105,100,102,108, 97,103, 0,116,119,116,121,112,101, 0,116,119,109,111, -100,101, 0,116,119,102,108, 97,103, 0,112, 97,100, 50, 91, 50, 93, 0, 97,102,116,101,114,100,114, 97,119, 95,116,114, 97,110, -115,112, 0, 97,102,116,101,114,100,114, 97,119, 95,120,114, 97,121, 0, 97,102,116,101,114,100,114, 97,119, 95,120,114, 97,121, -116,114, 97,110,115,112, 0,122, 98,117,102, 0,120,114, 97,121, 0,112, 97,100, 51, 91, 50, 93, 0, 42,112,114,111,112,101,114, -116,105,101,115, 95,115,116,111,114, 97,103,101, 0,118,101,114,116, 0,104,111,114, 0,109, 97,115,107, 0,109,105,110, 91, 50, - 93, 0,109, 97,120, 91, 50, 93, 0,109,105,110,122,111,111,109, 0,109, 97,120,122,111,111,109, 0,115, 99,114,111,108,108, 0, -115, 99,114,111,108,108, 95,117,105, 0,107,101,101,112,116,111,116, 0,107,101,101,112,122,111,111,109, 0,107,101,101,112,111, -102,115, 0, 97,108,105,103,110, 0,119,105,110,120, 0,119,105,110,121, 0,111,108,100,119,105,110,120, 0,111,108,100,119,105, -110,121, 0, 42,116, 97, 98, 95,111,102,102,115,101,116, 0,116, 97, 98, 95,110,117,109, 0,116, 97, 98, 95, 99,117,114, 0,114, -112,116, 95,109, 97,115,107, 0,118, 50,100, 0, 42, 97,100,115, 0,103,104,111,115,116, 67,117,114,118,101,115, 0, 97,117,116, -111,115,110, 97,112, 0, 99,117,114,115,111,114, 86, 97,108, 0,109, 97,105,110, 98, 0,109, 97,105,110, 98,111, 0,109, 97,105, -110, 98,117,115,101,114, 0,114,101, 95, 97,108,105,103,110, 0,112,114,101,118,105,101,119, 0,116,101,120,116,117,114,101, 95, - 99,111,110,116,101,120,116, 0,112, 97,116,104,102,108, 97,103, 0,100, 97,116, 97,105, 99,111,110, 0, 42,112,105,110,105,100, - 0, 42,116,101,120,117,115,101,114, 0,114,101,110,100,101,114, 95,115,105,122,101, 0, 99,104, 97,110,115,104,111,119,110, 0, -122,101, 98,114, 97, 0,122,111,111,109, 0,116,105,116,108,101, 91, 51, 50, 93, 0,100,105,114, 91, 49, 48, 53, 54, 93, 0,102, -105,108,101, 91, 50, 53, 54, 93, 0,114,101,110, 97,109,101,102,105,108,101, 91, 50, 53, 54, 93, 0,114,101,110, 97,109,101,101, -100,105,116, 91, 50, 53, 54, 93, 0,102,105,108,116,101,114, 95,103,108,111, 98, 91, 54, 52, 93, 0, 97, 99,116,105,118,101, 95, -102,105,108,101, 0,115,101,108, 95,102,105,114,115,116, 0,115,101,108, 95,108, 97,115,116, 0,115,111,114,116, 0,100,105,115, -112,108, 97,121, 0,102, 95,102,112, 0,102,112, 95,115,116,114, 91, 56, 93, 0,115, 99,114,111,108,108, 95,111,102,102,115,101, -116, 0, 42,112, 97,114, 97,109,115, 0, 42,102,105,108,101,115, 0, 42,102,111,108,100,101,114,115, 95,112,114,101,118, 0, 42, -102,111,108,100,101,114,115, 95,110,101,120,116, 0, 42,111,112, 0, 42,115,109,111,111,116,104,115, 99,114,111,108,108, 95,116, -105,109,101,114, 0, 42,108, 97,121,111,117,116, 0,114,101, 99,101,110,116,110,114, 0, 98,111,111,107,109, 97,114,107,110,114, - 0,115,121,115,116,101,109,110,114, 0,116,114,101,101, 0, 42,116,114,101,101,115,116,111,114,101, 0,115,101, 97,114, 99,104, - 95,115,116,114,105,110,103, 91, 51, 50, 93, 0,115,101, 97,114, 99,104, 95,116,115,101, 0,111,117,116,108,105,110,101,118,105, -115, 0,115,116,111,114,101,102,108, 97,103, 0,115,101, 97,114, 99,104, 95,102,108, 97,103,115, 0, 42, 99,117,109, 97,112, 0, -115, 99,111,112,101,115, 0,115, 97,109,112,108,101, 95,108,105,110,101, 95,104,105,115,116, 0, 99,117,114,115,111,114, 91, 50, - 93, 0, 99,101,110,116,120, 0, 99,101,110,116,121, 0, 99,117,114,116,105,108,101, 0,108,111, 99,107, 0,112,105,110, 0,100, -116, 95,117,118, 0,115,116,105, 99,107,121, 0,100,116, 95,117,118,115,116,114,101,116, 99,104, 0, 42,116,101,120,116, 0,116, -111,112, 0,118,105,101,119,108,105,110,101,115, 0,109,101,110,117,110,114, 0,108,104,101,105,103,104,116, 0, 99,119,105,100, -116,104, 0,108,105,110,101,110,114,115, 95,116,111,116, 0,108,101,102,116, 0,115,104,111,119,108,105,110,101,110,114,115, 0, -116, 97, 98,110,117,109, 98,101,114, 0,115,104,111,119,115,121,110,116, 97,120, 0,108,105,110,101, 95,104,108,105,103,104,116, - 0,111,118,101,114,119,114,105,116,101, 0,108,105,118,101, 95,101,100,105,116, 0,112,105,120, 95,112,101,114, 95,108,105,110, -101, 0,116,120,116,115, 99,114,111,108,108, 0,116,120,116, 98, 97,114, 0,119,111,114,100,119,114, 97,112, 0,100,111,112,108, -117,103,105,110,115, 0,102,105,110,100,115,116,114, 91, 50, 53, 54, 93, 0,114,101,112,108, 97, 99,101,115,116,114, 91, 50, 53, - 54, 93, 0,109, 97,114,103,105,110, 95, 99,111,108,117,109,110, 0, 42,100,114, 97,119, 99, 97, 99,104,101, 0, 42,112,121, 95, -100,114, 97,119, 0, 42,112,121, 95,101,118,101,110,116, 0, 42,112,121, 95, 98,117,116,116,111,110, 0, 42,112,121, 95, 98,114, -111,119,115,101,114, 99, 97,108,108, 98, 97, 99,107, 0, 42,112,121, 95,103,108,111, 98, 97,108,100,105, 99,116, 0,108, 97,115, -116,115,112, 97, 99,101, 0,115, 99,114,105,112,116,110, 97,109,101, 91, 49, 48, 50, 52, 93, 0,115, 99,114,105,112,116, 97,114, -103, 91, 50, 53, 54, 93, 0, 42,115, 99,114,105,112,116, 0, 42, 98,117,116, 95,114,101,102,115, 0, 42, 97,114,114, 97,121, 0, - 99, 97, 99,104,101,115, 0, 99, 97, 99,104,101, 95,100,105,115,112,108, 97,121, 0, 42,105,100, 0, 97,115,112,101, 99,116, 0, -112, 97,100,102, 0,109,120, 0,109,121, 0, 42,101,100,105,116,116,114,101,101, 0,116,114,101,101,116,121,112,101, 0,116,101, -120,102,114,111,109, 0,115,104, 97,100,101,114,102,114,111,109, 0,108,105,110,107,100,114, 97,103, 0,108,101,110, 95, 97,108, -108,111, 99, 0, 99,117,114,115,111,114, 0,115, 99,114,111,108,108, 98, 97, 99,107, 0,104,105,115,116,111,114,121, 0,112,114, -111,109,112,116, 91, 50, 53, 54, 93, 0,108, 97,110,103,117, 97,103,101, 91, 51, 50, 93, 0,115,101,108, 95,115,116, 97,114,116, - 0,115,101,108, 95,101,110,100, 0,102,105,108,116,101,114, 91, 54, 52, 93, 0,120,108,111, 99,107,111,102, 0,121,108,111, 99, -107,111,102, 0,117,115,101,114, 0,112, 97,116,104, 95,108,101,110,103,116,104, 0,108,111, 99, 91, 50, 93, 0,115,116, 97, 98, -109, 97,116, 91, 52, 93, 91, 52, 93, 0,117,110,105,115,116, 97, 98,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,116,112, -114,111, 99, 95,102,108, 97,103, 0, 42,100,114, 97,119, 95, 99,111,110,116,101,120,116, 0,102,105,108,101,110, 97,109,101, 91, - 49, 48, 50, 52, 93, 0, 98,108,102, 95,105,100, 0,117,105,102,111,110,116, 95,105,100, 0,114, 95,116,111, 95,108, 0,112,111, -105,110,116,115, 0,107,101,114,110,105,110,103, 0,105,116, 97,108,105, 99, 0, 98,111,108,100, 0,115,104, 97,100,111,119, 0, -115,104, 97,100,120, 0,115,104, 97,100,121, 0,115,104, 97,100,111,119, 97,108,112,104, 97, 0,115,104, 97,100,111,119, 99,111, -108,111,114, 0,112, 97,110,101,108,116,105,116,108,101, 0,103,114,111,117,112,108, 97, 98,101,108, 0,119,105,100,103,101,116, -108, 97, 98,101,108, 0,119,105,100,103,101,116, 0,112, 97,110,101,108,122,111,111,109, 0,109,105,110,108, 97, 98,101,108, 99, -104, 97,114,115, 0,109,105,110,119,105,100,103,101,116, 99,104, 97,114,115, 0, 99,111,108,117,109,110,115,112, 97, 99,101, 0, -116,101,109,112,108, 97,116,101,115,112, 97, 99,101, 0, 98,111,120,115,112, 97, 99,101, 0, 98,117,116,116,111,110,115,112, 97, - 99,101,120, 0, 98,117,116,116,111,110,115,112, 97, 99,101,121, 0,112, 97,110,101,108,115,112, 97, 99,101, 0,112, 97,110,101, -108,111,117,116,101,114, 0,111,117,116,108,105,110,101, 91, 52, 93, 0,105,110,110,101,114, 91, 52, 93, 0,105,110,110,101,114, - 95,115,101,108, 91, 52, 93, 0,105,116,101,109, 91, 52, 93, 0,116,101,120,116, 91, 52, 93, 0,116,101,120,116, 95,115,101,108, - 91, 52, 93, 0,115,104, 97,100,101,100, 0,115,104, 97,100,101,116,111,112, 0,115,104, 97,100,101,100,111,119,110, 0, 97,108, -112,104, 97, 95, 99,104,101, 99,107, 0,105,110,110,101,114, 95, 97,110,105,109, 91, 52, 93, 0,105,110,110,101,114, 95, 97,110, -105,109, 95,115,101,108, 91, 52, 93, 0,105,110,110,101,114, 95,107,101,121, 91, 52, 93, 0,105,110,110,101,114, 95,107,101,121, - 95,115,101,108, 91, 52, 93, 0,105,110,110,101,114, 95,100,114,105,118,101,110, 91, 52, 93, 0,105,110,110,101,114, 95,100,114, -105,118,101,110, 95,115,101,108, 91, 52, 93, 0,104,101, 97,100,101,114, 91, 52, 93, 0,115,104,111,119, 95,104,101, 97,100,101, -114, 0,119, 99,111,108, 95,114,101,103,117,108, 97,114, 0,119, 99,111,108, 95,116,111,111,108, 0,119, 99,111,108, 95,116,101, -120,116, 0,119, 99,111,108, 95,114, 97,100,105,111, 0,119, 99,111,108, 95,111,112,116,105,111,110, 0,119, 99,111,108, 95,116, -111,103,103,108,101, 0,119, 99,111,108, 95,110,117,109, 0,119, 99,111,108, 95,110,117,109,115,108,105,100,101,114, 0,119, 99, -111,108, 95,109,101,110,117, 0,119, 99,111,108, 95,112,117,108,108,100,111,119,110, 0,119, 99,111,108, 95,109,101,110,117, 95, - 98, 97, 99,107, 0,119, 99,111,108, 95,109,101,110,117, 95,105,116,101,109, 0,119, 99,111,108, 95,116,111,111,108,116,105,112, - 0,119, 99,111,108, 95, 98,111,120, 0,119, 99,111,108, 95,115, 99,114,111,108,108, 0,119, 99,111,108, 95,112,114,111,103,114, -101,115,115, 0,119, 99,111,108, 95,108,105,115,116, 95,105,116,101,109, 0,119, 99,111,108, 95,115,116, 97,116,101, 0,112, 97, -110,101,108, 0,105, 99,111,110,102,105,108,101, 91, 50, 53, 54, 93, 0,105, 99,111,110, 95, 97,108,112,104, 97, 0, 98, 97, 99, -107, 91, 52, 93, 0,116,105,116,108,101, 91, 52, 93, 0,116,101,120,116, 95,104,105, 91, 52, 93, 0,104,101, 97,100,101,114, 95, -116,105,116,108,101, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,101,120,116, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116, -101,120,116, 95,104,105, 91, 52, 93, 0, 98,117,116,116,111,110, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,105,116,108,101, - 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,101,120,116, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,101,120,116, 95,104, -105, 91, 52, 93, 0,108,105,115,116, 91, 52, 93, 0,108,105,115,116, 95,116,105,116,108,101, 91, 52, 93, 0,108,105,115,116, 95, -116,101,120,116, 91, 52, 93, 0,108,105,115,116, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,112, 97,110,101,108, 91, 52, 93, - 0,112, 97,110,101,108, 95,116,105,116,108,101, 91, 52, 93, 0,112, 97,110,101,108, 95,116,101,120,116, 91, 52, 93, 0,112, 97, -110,101,108, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,115,104, 97,100,101, 49, 91, 52, 93, 0,115,104, 97,100,101, 50, 91, - 52, 93, 0,104,105,108,105,116,101, 91, 52, 93, 0,103,114,105,100, 91, 52, 93, 0,119,105,114,101, 91, 52, 93, 0,115,101,108, -101, 99,116, 91, 52, 93, 0,108, 97,109,112, 91, 52, 93, 0,115,112,101, 97,107,101,114, 91, 52, 93, 0,101,109,112,116,121, 91, - 52, 93, 0, 99, 97,109,101,114, 97, 91, 52, 93, 0,112, 97,100, 91, 56, 93, 0, 97, 99,116,105,118,101, 91, 52, 93, 0,103,114, -111,117,112, 91, 52, 93, 0,103,114,111,117,112, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,116,114, 97,110,115,102,111,114,109, - 91, 52, 93, 0,118,101,114,116,101,120, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,101,108,101, 99,116, 91, 52, 93, 0,101, -100,103,101, 91, 52, 93, 0,101,100,103,101, 95,115,101,108,101, 99,116, 91, 52, 93, 0,101,100,103,101, 95,115,101, 97,109, 91, - 52, 93, 0,101,100,103,101, 95,115,104, 97,114,112, 91, 52, 93, 0,101,100,103,101, 95,102, 97, 99,101,115,101,108, 91, 52, 93, - 0,101,100,103,101, 95, 99,114,101, 97,115,101, 91, 52, 93, 0,102, 97, 99,101, 91, 52, 93, 0,102, 97, 99,101, 95,115,101,108, -101, 99,116, 91, 52, 93, 0,102, 97, 99,101, 95,100,111,116, 91, 52, 93, 0,101,120,116,114, 97, 95,101,100,103,101, 95,108,101, -110, 91, 52, 93, 0,101,120,116,114, 97, 95,102, 97, 99,101, 95, 97,110,103,108,101, 91, 52, 93, 0,101,120,116,114, 97, 95,102, - 97, 99,101, 95, 97,114,101, 97, 91, 52, 93, 0,112, 97,100, 51, 91, 52, 93, 0,110,111,114,109, 97,108, 91, 52, 93, 0,118,101, -114,116,101,120, 95,110,111,114,109, 97,108, 91, 52, 93, 0, 98,111,110,101, 95,115,111,108,105,100, 91, 52, 93, 0, 98,111,110, -101, 95,112,111,115,101, 91, 52, 93, 0,115,116,114,105,112, 91, 52, 93, 0,115,116,114,105,112, 95,115,101,108,101, 99,116, 91, - 52, 93, 0, 99,102,114, 97,109,101, 91, 52, 93, 0,110,117,114, 98, 95,117,108,105,110,101, 91, 52, 93, 0,110,117,114, 98, 95, -118,108,105,110,101, 91, 52, 93, 0, 97, 99,116, 95,115,112,108,105,110,101, 91, 52, 93, 0,110,117,114, 98, 95,115,101,108, 95, -117,108,105,110,101, 91, 52, 93, 0,110,117,114, 98, 95,115,101,108, 95,118,108,105,110,101, 91, 52, 93, 0,108, 97,115,116,115, -101,108, 95,112,111,105,110,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,102,114,101,101, 91, 52, 93, 0,104, 97,110,100,108, -101, 95, 97,117,116,111, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95, - 97,108,105,103,110, 91, 52, 93, 0,104, 97,110,100,108,101, 95, 97,117,116,111, 95, 99,108, 97,109,112,101,100, 91, 52, 93, 0, -104, 97,110,100,108,101, 95,115,101,108, 95,102,114,101,101, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95, 97,117, -116,111, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95,118,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95, -115,101,108, 95, 97,108,105,103,110, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95, 97,117,116,111, 95, 99,108, 97, -109,112,101,100, 91, 52, 93, 0,100,115, 95, 99,104, 97,110,110,101,108, 91, 52, 93, 0,100,115, 95,115,117, 98, 99,104, 97,110, -110,101,108, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,111,117,116,112,117,116, 91, 52, 93, 0, 99,111,110,115,111,108,101, - 95,105,110,112,117,116, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,105,110,102,111, 91, 52, 93, 0, 99,111,110,115,111,108, -101, 95,101,114,114,111,114, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95, 99,117,114,115,111,114, 91, 52, 93, 0,118,101,114, -116,101,120, 95,115,105,122,101, 0,111,117,116,108,105,110,101, 95,119,105,100,116,104, 0,102, 97, 99,101,100,111,116, 95,115, -105,122,101, 0,110,111,111,100,108,101, 95, 99,117,114,118,105,110,103, 0,115,121,110,116, 97,120,108, 91, 52, 93, 0,115,121, -110,116, 97,120,110, 91, 52, 93, 0,115,121,110,116, 97,120, 98, 91, 52, 93, 0,115,121,110,116, 97,120,118, 91, 52, 93, 0,115, -121,110,116, 97,120, 99, 91, 52, 93, 0,109,111,118,105,101, 91, 52, 93, 0,109,111,118,105,101, 99,108,105,112, 91, 52, 93, 0, -105,109, 97,103,101, 91, 52, 93, 0,115, 99,101,110,101, 91, 52, 93, 0, 97,117,100,105,111, 91, 52, 93, 0,101,102,102,101, 99, -116, 91, 52, 93, 0,112,108,117,103,105,110, 91, 52, 93, 0,116,114, 97,110,115,105,116,105,111,110, 91, 52, 93, 0,109,101,116, - 97, 91, 52, 93, 0,101,100,105,116,109,101,115,104, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118, -101,114,116,101,120, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 95,115,101,108,101, 99,116, 91, 52, 93, - 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 95,115,105,122,101, 0,109, 97,114,107,101,114, 95,111,117,116,108,105, -110,101, 91, 52, 93, 0,109, 97,114,107,101,114, 91, 52, 93, 0, 97, 99,116, 95,109, 97,114,107,101,114, 91, 52, 93, 0,115,101, -108, 95,109, 97,114,107,101,114, 91, 52, 93, 0,100,105,115, 95,109, 97,114,107,101,114, 91, 52, 93, 0,108,111, 99,107, 95,109, - 97,114,107,101,114, 91, 52, 93, 0, 98,117,110,100,108,101, 95,115,111,108,105,100, 91, 52, 93, 0,112, 97,116,104, 95, 98,101, -102,111,114,101, 91, 52, 93, 0,112, 97,116,104, 95, 97,102,116,101,114, 91, 52, 93, 0, 99, 97,109,101,114, 97, 95,112, 97,116, -104, 91, 52, 93, 0,104,112, 97,100, 91, 55, 93, 0,112,114,101,118,105,101,119, 95, 98, 97, 99,107, 91, 52, 93, 0,112,114,101, -118,105,101,119, 95,115,116,105,116, 99,104, 95,102, 97, 99,101, 91, 52, 93, 0,112,114,101,118,105,101,119, 95,115,116,105,116, - 99,104, 95,101,100,103,101, 91, 52, 93, 0,112,114,101,118,105,101,119, 95,115,116,105,116, 99,104, 95,118,101,114,116, 91, 52, - 93, 0,112,114,101,118,105,101,119, 95,115,116,105,116, 99,104, 95,115,116,105,116, 99,104, 97, 98,108,101, 91, 52, 93, 0,112, -114,101,118,105,101,119, 95,115,116,105,116, 99,104, 95,117,110,115,116,105,116, 99,104, 97, 98,108,101, 91, 52, 93, 0,112,114, -101,118,105,101,119, 95,115,116,105,116, 99,104, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,109, 97,116, 99,104, 91, 52, 93, 0, -115,101,108,101, 99,116,101,100, 95,104,105,103,104,108,105,103,104,116, 91, 52, 93, 0,115,111,108,105,100, 91, 52, 93, 0,116, -117,105, 0,116, 98,117,116,115, 0,116,118, 51,100, 0,116,102,105,108,101, 0,116,105,112,111, 0,116,105,110,102,111, 0,116, - 97, 99,116, 0,116,110,108, 97, 0,116,115,101,113, 0,116,105,109, 97, 0,116,101,120,116, 0,116,111,111,112,115, 0,116,116, -105,109,101, 0,116,110,111,100,101, 0,116,108,111,103,105, 99, 0,116,117,115,101,114,112,114,101,102, 0,116, 99,111,110,115, -111,108,101, 0,116, 99,108,105,112, 0,116, 97,114,109, 91, 50, 48, 93, 0, 97, 99,116,105,118,101, 95,116,104,101,109,101, 95, - 97,114,101, 97, 0,109,111,100,117,108,101, 91, 54, 52, 93, 0,115,112,101, 99, 91, 52, 93, 0,100,117,112,102,108, 97,103, 0, -115, 97,118,101,116,105,109,101, 0,116,101,109,112,100,105,114, 91, 55, 54, 56, 93, 0,102,111,110,116,100,105,114, 91, 55, 54, - 56, 93, 0,114,101,110,100,101,114,100,105,114, 91, 49, 48, 50, 52, 93, 0,116,101,120,116,117,100,105,114, 91, 55, 54, 56, 93, - 0,112,108,117,103,116,101,120,100,105,114, 91, 55, 54, 56, 93, 0,112,108,117,103,115,101,113,100,105,114, 91, 55, 54, 56, 93, - 0,112,121,116,104,111,110,100,105,114, 91, 55, 54, 56, 93, 0,115,111,117,110,100,100,105,114, 91, 55, 54, 56, 93, 0,105,109, - 97,103,101, 95,101,100,105,116,111,114, 91, 49, 48, 50, 52, 93, 0, 97,110,105,109, 95,112,108, 97,121,101,114, 91, 49, 48, 50, - 52, 93, 0, 97,110,105,109, 95,112,108, 97,121,101,114, 95,112,114,101,115,101,116, 0,118, 50,100, 95,109,105,110, 95,103,114, -105,100,115,105,122,101, 0,116,105,109,101, 99,111,100,101, 95,115,116,121,108,101, 0,118,101,114,115,105,111,110,115, 0,100, - 98,108, 95, 99,108,105, 99,107, 95,116,105,109,101, 0,103, 97,109,101,102,108, 97,103,115, 0,119,104,101,101,108,108,105,110, -101,115, 99,114,111,108,108, 0,117,105,102,108, 97,103, 0,108, 97,110,103,117, 97,103,101, 0,117,115,101,114,112,114,101,102, - 0,118,105,101,119,122,111,111,109, 0,109,105,120, 98,117,102,115,105,122,101, 0, 97,117,100,105,111,100,101,118,105, 99,101, - 0, 97,117,100,105,111,114, 97,116,101, 0, 97,117,100,105,111,102,111,114,109, 97,116, 0, 97,117,100,105,111, 99,104, 97,110, -110,101,108,115, 0,100,112,105, 0,101,110, 99,111,100,105,110,103, 0,116,114, 97,110,115,111,112,116,115, 0,109,101,110,117, -116,104,114,101,115,104,111,108,100, 49, 0,109,101,110,117,116,104,114,101,115,104,111,108,100, 50, 0,116,104,101,109,101,115, - 0,117,105,102,111,110,116,115, 0,117,105,115,116,121,108,101,115, 0,107,101,121,109, 97,112,115, 0,117,115,101,114, 95,107, -101,121,109, 97,112,115, 0, 97,100,100,111,110,115, 0,107,101,121, 99,111,110,102,105,103,115,116,114, 91, 54, 52, 93, 0,117, -110,100,111,115,116,101,112,115, 0,117,110,100,111,109,101,109,111,114,121, 0,103,112, 95,109, 97,110,104, 97,116,116,101,110, -100,105,115,116, 0,103,112, 95,101,117, 99,108,105,100,101, 97,110,100,105,115,116, 0,103,112, 95,101,114, 97,115,101,114, 0, -103,112, 95,115,101,116,116,105,110,103,115, 0,116, 98, 95,108,101,102,116,109,111,117,115,101, 0,116, 98, 95,114,105,103,104, -116,109,111,117,115,101, 0,108,105,103,104,116, 91, 51, 93, 0,116,119, 95,104,111,116,115,112,111,116, 0,116,119, 95,102,108, - 97,103, 0,116,119, 95,104, 97,110,100,108,101,115,105,122,101, 0,116,119, 95,115,105,122,101, 0,116,101,120,116,105,109,101, -111,117,116, 0,116,101,120, 99,111,108,108,101, 99,116,114, 97,116,101, 0,119,109,100,114, 97,119,109,101,116,104,111,100, 0, -100,114, 97,103,116,104,114,101,115,104,111,108,100, 0,109,101,109, 99, 97, 99,104,101,108,105,109,105,116, 0,112,114,101,102, -101,116, 99,104,102,114, 97,109,101,115, 0,102,114, 97,109,101,115,101,114,118,101,114,112,111,114,116, 0,112, 97,100, 95,114, -111,116, 95, 97,110,103,108,101, 0,111, 98, 99,101,110,116,101,114, 95,100,105, 97, 0,114,118,105,115,105,122,101, 0,114,118, -105, 98,114,105,103,104,116, 0,114,101, 99,101,110,116, 95,102,105,108,101,115, 0,115,109,111,111,116,104, 95,118,105,101,119, -116,120, 0,103,108,114,101,115,108,105,109,105,116, 0, 99,117,114,115,115,105,122,101, 0, 99,111,108,111,114, 95,112,105, 99, -107,101,114, 95,116,121,112,101, 0,105,112,111, 95,110,101,119, 0,107,101,121,104, 97,110,100,108,101,115, 95,110,101,119, 0, -115, 99,114, 99, 97,115,116,102,112,115, 0,115, 99,114, 99, 97,115,116,119, 97,105,116, 0,119,105,100,103,101,116, 95,117,110, -105,116, 0, 97,110,105,115,111,116,114,111,112,105, 99, 95,102,105,108,116,101,114, 0,117,115,101, 95, 49, 54, 98,105,116, 95, -116,101,120,116,117,114,101,115, 0,112, 97,100, 56, 0,110,100,111,102, 95,115,101,110,115,105,116,105,118,105,116,121, 0,110, -100,111,102, 95,102,108, 97,103, 0,103,108, 97,108,112,104, 97, 99,108,105,112, 0,116,101,120,116, 95,114,101,110,100,101,114, - 0,112, 97,100, 57, 0, 99,111, 98, 97, 95,119,101,105,103,104,116, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,111, -118,101,114,108, 97,121, 95, 99,111,108, 91, 51, 93, 0,116,119,101, 97,107, 95,116,104,114,101,115,104,111,108,100, 0, 97,117, -116,104,111,114, 91, 56, 48, 93, 0, 99,111,109,112,117,116,101, 95,100,101,118,105, 99,101, 95,116,121,112,101, 0, 99,111,109, -112,117,116,101, 95,100,101,118,105, 99,101, 95,105,100, 0,102, 99,117, 95,105,110, 97, 99,116,105,118,101, 95, 97,108,112,104, - 97, 0,118,101,114,116, 98, 97,115,101, 0,101,100,103,101, 98, 97,115,101, 0, 97,114,101, 97, 98, 97,115,101, 0, 42,110,101, -119,115, 99,101,110,101, 0,114,101,100,114, 97,119,115, 95,102,108, 97,103, 0,102,117,108,108, 0,116,101,109,112, 0,119,105, -110,105,100, 0,100,111, 95,100,114, 97,119, 0,100,111, 95,114,101,102,114,101,115,104, 0,100,111, 95,100,114, 97,119, 95,103, -101,115,116,117,114,101, 0,100,111, 95,100,114, 97,119, 95,112, 97,105,110,116, 99,117,114,115,111,114, 0,100,111, 95,100,114, - 97,119, 95,100,114, 97,103, 0,115,119, 97,112, 0,109, 97,105,110,119,105,110, 0,115,117, 98,119,105,110, 97, 99,116,105,118, -101, 0, 42, 97,110,105,109,116,105,109,101,114, 0, 42, 99,111,110,116,101,120,116, 0,104, 97,110,100,108,101,114, 91, 56, 93, - 0, 42,110,101,119,118, 0,118,101, 99, 0, 42,118, 49, 0, 42,118, 50, 0, 42,116,121,112,101, 0,112, 97,110,101,108,110, 97, -109,101, 91, 54, 52, 93, 0,116, 97, 98,110, 97,109,101, 91, 54, 52, 93, 0,100,114, 97,119,110, 97,109,101, 91, 54, 52, 93, 0, -111,102,115,120, 0,111,102,115,121, 0,115,105,122,101,120, 0,115,105,122,101,121, 0,108, 97, 98,101,108,111,102,115, 0,114, -117,110,116,105,109,101, 95,102,108, 97,103, 0, 99,111,110,116,114,111,108, 0,115,110, 97,112, 0,115,111,114,116,111,114,100, -101,114, 0, 42,112, 97,110,101,108,116, 97, 98, 0, 42, 97, 99,116,105,118,101,100, 97,116, 97, 0,108,105,115,116, 95,115, 99, -114,111,108,108, 0,108,105,115,116, 95,115,105,122,101, 0,108,105,115,116, 95,108, 97,115,116, 95,108,101,110, 0,108,105,115, -116, 95,103,114,105,112, 95,115,105,122,101, 0,108,105,115,116, 95,115,101, 97,114, 99,104, 91, 54, 52, 93, 0, 42,118, 51, 0, - 42,118, 52, 0, 42,102,117,108,108, 0, 98,117,116,115,112, 97, 99,101,116,121,112,101, 0,104,101, 97,100,101,114,116,121,112, -101, 0,115,112, 97, 99,101,100, 97,116, 97, 0,104, 97,110,100,108,101,114,115, 0, 97, 99,116,105,111,110,122,111,110,101,115, - 0,119,105,110,114, 99,116, 0,100,114, 97,119,114, 99,116, 0,115,119,105,110,105,100, 0,114,101,103,105,111,110,116,121,112, -101, 0, 97,108,105,103,110,109,101,110,116, 0,100,111, 95,100,114, 97,119, 95,111,118,101,114,108, 97,121, 0,117,105, 98,108, -111, 99,107,115, 0,112, 97,110,101,108,115, 0, 42,104,101, 97,100,101,114,115,116,114, 0, 42,114,101,103,105,111,110,100, 97, -116, 97, 0,115,117, 98,118,115,116,114, 91, 52, 93, 0,115,117, 98,118,101,114,115,105,111,110, 0,112, 97,100,115, 0,109,105, -110,118,101,114,115,105,111,110, 0,109,105,110,115,117, 98,118,101,114,115,105,111,110, 0,119,105,110,112,111,115, 0, 42, 99, -117,114,115, 99,114,101,101,110, 0, 42, 99,117,114,115, 99,101,110,101, 0,102,105,108,101,102,108, 97,103,115, 0,103,108,111, - 98, 97,108,102, 0,114,101,118,105,115,105,111,110, 0,110, 97,109,101, 91, 50, 53, 54, 93, 0,111,114,105,103, 95,119,105,100, -116,104, 0,111,114,105,103, 95,104,101,105,103,104,116, 0, 98,111,116,116,111,109, 0,114,105,103,104,116, 0,120,111,102,115, - 0,121,111,102,115, 0,108,105,102,116, 91, 51, 93, 0,103, 97,109,109, 97, 91, 51, 93, 0,103, 97,105,110, 91, 51, 93, 0,100, -105,114, 91, 55, 54, 56, 93, 0,116, 99, 0, 98,117,105,108,100, 95,115,105,122,101, 95,102,108, 97,103,115, 0, 98,117,105,108, -100, 95,116, 99, 95,102,108, 97,103,115, 0,100,111,110,101, 0,115,116, 97,114,116,115,116,105,108,108, 0,101,110,100,115,116, -105,108,108, 0, 42,115,116,114,105,112,100, 97,116, 97, 0, 42, 99,114,111,112, 0, 42,116,114, 97,110,115,102,111,114,109, 0, - 42, 99,111,108,111,114, 95, 98, 97,108, 97,110, 99,101, 0, 42,105,110,115,116, 97,110, 99,101, 95,112,114,105,118, 97,116,101, - 95,100, 97,116, 97, 0, 42, 42, 99,117,114,114,101,110,116, 95,112,114,105,118, 97,116,101, 95,100, 97,116, 97, 0, 42,116,109, -112, 0,115,116, 97,114,116,111,102,115, 0,101,110,100,111,102,115, 0,109, 97, 99,104,105,110,101, 0,115,116, 97,114,116,100, -105,115,112, 0,101,110,100,100,105,115,112, 0,115, 97,116, 0,109,117,108, 0,104, 97,110,100,115,105,122,101, 0, 97,110,105, -109, 95,112,114,101,115,101,101,107, 0,115,116,114,101, 97,109,105,110,100,101,120, 0,109,117,108,116,105, 99, 97,109, 95,115, -111,117,114, 99,101, 0, 99,108,105,112, 95,102,108, 97,103, 0, 42,115,116,114,105,112, 0, 42,115, 99,101,110,101, 95, 99, 97, -109,101,114, 97, 0,101,102,102,101, 99,116, 95,102, 97,100,101,114, 0,115,112,101,101,100, 95,102, 97,100,101,114, 0, 42,115, -101,113, 49, 0, 42,115,101,113, 50, 0, 42,115,101,113, 51, 0,115,101,113, 98, 97,115,101, 0, 42,115,111,117,110,100, 0, 42, -115, 99,101,110,101, 95,115,111,117,110,100, 0,112,105,116, 99,104, 0,112, 97,110, 0,115,116,114,111, 98,101, 0, 42,101,102, -102,101, 99,116,100, 97,116, 97, 0, 97,110,105,109, 95,115,116, 97,114,116,111,102,115, 0, 97,110,105,109, 95,101,110,100,111, -102,115, 0, 98,108,101,110,100, 95,109,111,100,101, 0, 98,108,101,110,100, 95,111,112, 97, 99,105,116,121, 0, 42,111,108,100, - 98, 97,115,101,112, 0, 42,112, 97,114,115,101,113, 0, 42,115,101,113, 98, 97,115,101,112, 0,109,101,116, 97,115,116, 97, 99, -107, 0, 42, 97, 99,116, 95,115,101,113, 0, 97, 99,116, 95,105,109, 97,103,101,100,105,114, 91, 49, 48, 50, 52, 93, 0, 97, 99, -116, 95,115,111,117,110,100,100,105,114, 91, 49, 48, 50, 52, 93, 0,111,118,101,114, 95,111,102,115, 0,111,118,101,114, 95, 99, -102,114, 97, 0,111,118,101,114, 95,102,108, 97,103, 0,111,118,101,114, 95, 98,111,114,100,101,114, 0,101,100,103,101, 87,105, -100,116,104, 0,102,111,114,119, 97,114,100, 0,119,105,112,101,116,121,112,101, 0,102, 77,105,110,105, 0,102, 67,108, 97,109, -112, 0,102, 66,111,111,115,116, 0,100, 68,105,115,116, 0,100, 81,117, 97,108,105,116,121, 0, 98, 78,111, 67,111,109,112, 0, - 83, 99, 97,108,101,120, 73,110,105, 0, 83, 99, 97,108,101,121, 73,110,105, 0,120, 73,110,105, 0,121, 73,110,105, 0,114,111, -116, 73,110,105, 0,105,110,116,101,114,112,111,108, 97,116,105,111,110, 0,117,110,105,102,111,114,109, 95,115, 99, 97,108,101, - 0, 42,102,114, 97,109,101, 77, 97,112, 0,103,108,111, 98, 97,108, 83,112,101,101,100, 0,108, 97,115,116, 86, 97,108,105,100, - 70,114, 97,109,101, 0, 98,117,116,116,121,112,101, 0,117,115,101,114,106,105,116, 0,115,116, 97, 0,116,111,116,112, 97,114, -116, 0,110,111,114,109,102, 97, 99, 0,111, 98,102, 97, 99, 0,114, 97,110,100,102, 97, 99, 0,116,101,120,102, 97, 99, 0,114, - 97,110,100,108,105,102,101, 0,102,111,114, 99,101, 91, 51, 93, 0,118,101, 99,116,115,105,122,101, 0,109, 97,120,108,101,110, - 0,100,101,102,118,101, 99, 91, 51, 93, 0,109,117,108,116, 91, 52, 93, 0,108,105,102,101, 91, 52, 93, 0, 99,104,105,108,100, - 91, 52, 93, 0,109, 97,116, 91, 52, 93, 0,116,101,120,109, 97,112, 0, 99,117,114,109,117,108,116, 0,115,116, 97,116,105, 99, -115,116,101,112, 0,111,109, 97,116, 0,116,105,109,101,116,101,120, 0,115,112,101,101,100,116,101,120, 0,102,108, 97,103, 50, -110,101,103, 0,118,101,114,116,103,114,111,117,112, 95,118, 0,118,103,114,111,117,112,110, 97,109,101, 91, 54, 52, 93, 0,118, -103,114,111,117,112,110, 97,109,101, 95,118, 91, 54, 52, 93, 0, 42,107,101,121,115, 0,109,105,110,102, 97, 99, 0,110,114, 0, -117,115,101,100, 0,117,115,101,100,101,108,101,109, 0, 42,112,111,105,110, 0,114,101,115,101,116,100,105,115,116, 0,108, 97, -115,116,118, 97,108, 0, 42,109, 97, 0,107,101,121, 0,113,117, 97,108, 0,113,117, 97,108, 50, 0,116, 97,114,103,101,116, 78, - 97,109,101, 91, 54, 52, 93, 0,116,111,103,103,108,101, 78, 97,109,101, 91, 54, 52, 93, 0,118, 97,108,117,101, 91, 54, 52, 93, - 0,109, 97,120,118, 97,108,117,101, 91, 54, 52, 93, 0,100,101,108, 97,121, 0,100,117,114, 97,116,105,111,110, 0,109, 97,116, -101,114,105, 97,108, 78, 97,109,101, 91, 54, 52, 93, 0,100, 97,109,112,116,105,109,101,114, 0,112,114,111,112,110, 97,109,101, - 91, 54, 52, 93, 0,109, 97,116,110, 97,109,101, 91, 54, 52, 93, 0, 97,120,105,115,102,108, 97,103, 0,112,111,115,101, 99,104, - 97,110,110,101,108, 91, 54, 52, 93, 0, 99,111,110,115,116,114, 97,105,110,116, 91, 54, 52, 93, 0, 42,102,114,111,109, 79, 98, -106,101, 99,116, 0,115,117, 98,106,101, 99,116, 91, 54, 52, 93, 0, 98,111,100,121, 91, 54, 52, 93, 0,111,116,121,112,101, 0, -112,117,108,115,101, 0,102,114,101,113, 0,116,111,116,108,105,110,107,115, 0, 42, 42,108,105,110,107,115, 0,116, 97,112, 0, -106,111,121,105,110,100,101,120, 0, 97,120,105,115, 95,115,105,110,103,108,101, 0, 97,120,105,115,102, 0, 98,117,116,116,111, -110, 0,104, 97,116, 0,104, 97,116,102, 0,112,114,101, 99,105,115,105,111,110, 0,115,116,114, 91, 49, 50, 56, 93, 0, 42,109, -121,110,101,119, 0,105,110,112,117,116,115, 0,116,111,116,115,108,105,110,107,115, 0, 42, 42,115,108,105,110,107,115, 0,118, - 97,108,111, 0,115,116, 97,116,101, 95,109, 97,115,107, 0, 42, 97, 99,116, 0,102,114, 97,109,101, 80,114,111,112, 91, 54, 52, - 93, 0, 98,108,101,110,100,105,110, 0,112,114,105,111,114,105,116,121, 0,101,110,100, 95,114,101,115,101,116, 0,115,116,114, -105,100,101, 97,120,105,115, 0,115,116,114,105,100,101,108,101,110,103,116,104, 0,108, 97,121,101,114, 95,119,101,105,103,104, -116, 0,109,105,110, 95,103, 97,105,110, 0,109, 97,120, 95,103, 97,105,110, 0,114,101,102,101,114,101,110, 99,101, 95,100,105, -115,116, 97,110, 99,101, 0,109, 97,120, 95,100,105,115,116, 97,110, 99,101, 0,114,111,108,108,111,102,102, 95,102, 97, 99,116, -111,114, 0, 99,111,110,101, 95,105,110,110,101,114, 95, 97,110,103,108,101, 0, 99,111,110,101, 95,111,117,116,101,114, 95, 97, -110,103,108,101, 0, 99,111,110,101, 95,111,117,116,101,114, 95,103, 97,105,110, 0,115,110,100,110,114, 0,115,111,117,110,100, - 51, 68, 0,112, 97,100, 54, 91, 49, 93, 0, 42,109,101, 0,108,105,110, 86,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,110, -103, 86,101,108,111, 99,105,116,121, 91, 51, 93, 0,108,111, 99, 97,108,102,108, 97,103, 0,100,121,110, 95,111,112,101,114, 97, -116,105,111,110, 0,102,111,114, 99,101,108,111, 99, 91, 51, 93, 0,102,111,114, 99,101,114,111,116, 91, 51, 93, 0,112, 97,100, - 49, 91, 51, 93, 0,108,105,110,101, 97,114,118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,110,103,117,108, 97,114,118,101, -108,111, 99,105,116,121, 91, 51, 93, 0, 42,114,101,102,101,114,101,110, 99,101, 0,109,105,110, 0,109, 97,120, 0,114,111,116, -100, 97,109,112, 0,109,105,110,108,111, 99, 91, 51, 93, 0,109, 97,120,108,111, 99, 91, 51, 93, 0,109,105,110,114,111,116, 91, - 51, 93, 0,109, 97,120,114,111,116, 91, 51, 93, 0,109, 97,116,112,114,111,112, 91, 54, 52, 93, 0, 98,117,116,115,116, 97, 0, - 98,117,116,101,110,100, 0,100,105,115,116,114,105, 98,117,116,105,111,110, 0,105,110,116, 95, 97,114,103, 95, 49, 0,105,110, -116, 95, 97,114,103, 95, 50, 0,102,108,111, 97,116, 95, 97,114,103, 95, 49, 0,102,108,111, 97,116, 95, 97,114,103, 95, 50, 0, -116,111, 80,114,111,112, 78, 97,109,101, 91, 54, 52, 93, 0, 42,116,111, 79, 98,106,101, 99,116, 0, 98,111,100,121, 84,121,112, -101, 0,102,105,108,101,110, 97,109,101, 91, 54, 52, 93, 0,108,111, 97,100, 97,110,105,110, 97,109,101, 91, 54, 52, 93, 0,105, -110,116, 95, 97,114,103, 0,102,108,111, 97,116, 95, 97,114,103, 0,105,110,102,108,117,101,110, 99,101, 0, 42,115,117, 98,116, - 97,114,103,101,116, 0,102, 97, 99,105,110,103, 97,120,105,115, 0,118,101,108,111, 99,105,116,121, 0, 97, 99, 99,101,108,101, -114, 97,116,105,111,110, 0,116,117,114,110,115,112,101,101,100, 0,117,112,100, 97,116,101, 84,105,109,101, 0, 42,110, 97,118, -109,101,115,104, 0,103,111, 0, 42,110,101,119,112, 97, 99,107,101,100,102,105,108,101, 0, 97,116,116,101,110,117, 97,116,105, -111,110, 0,100,105,115,116, 97,110, 99,101, 0, 42, 99, 97, 99,104,101, 0, 42,119, 97,118,101,102,111,114,109, 0, 42,112,108, - 97,121, 98, 97, 99,107, 95,104, 97,110,100,108,101, 0, 42,108, 97,109,112,114,101,110, 0,103,111, 98,106,101, 99,116, 0,100, -117,112,108,105, 95,111,102,115, 91, 51, 93, 0, 42,112,114,111,112, 0, 99,104,105,108,100, 98, 97,115,101, 0,114,111,108,108, - 0,104,101, 97,100, 91, 51, 93, 0,116, 97,105,108, 91, 51, 93, 0, 98,111,110,101, 95,109, 97,116, 91, 51, 93, 91, 51, 93, 0, - 97,114,109, 95,104,101, 97,100, 91, 51, 93, 0, 97,114,109, 95,116, 97,105,108, 91, 51, 93, 0, 97,114,109, 95,109, 97,116, 91, - 52, 93, 91, 52, 93, 0, 97,114,109, 95,114,111,108,108, 0,120,119,105,100,116,104, 0,122,119,105,100,116,104, 0,101, 97,115, -101, 49, 0,101, 97,115,101, 50, 0,114, 97,100, 95,104,101, 97,100, 0,114, 97,100, 95,116, 97,105,108, 0,112, 97,100, 91, 49, - 93, 0, 98,111,110,101, 98, 97,115,101, 0, 99,104, 97,105,110, 98, 97,115,101, 0, 42,101,100, 98,111, 0, 42, 97, 99,116, 95, - 98,111,110,101, 0, 42, 97, 99,116, 95,101,100, 98,111,110,101, 0, 42,115,107,101,116, 99,104, 0,103,101,118,101,114,116,100, -101,102,111,114,109,101,114, 0,108, 97,121,101,114, 95,117,115,101,100, 0,108, 97,121,101,114, 95,112,114,111,116,101, 99,116, -101,100, 0,103,104,111,115,116,101,112, 0,103,104,111,115,116,115,105,122,101, 0,103,104,111,115,116,116,121,112,101, 0,112, - 97,116,104,115,105,122,101, 0,103,104,111,115,116,115,102, 0,103,104,111,115,116,101,102, 0,112, 97,116,104,115,102, 0,112, - 97,116,104,101,102, 0,112, 97,116,104, 98, 99, 0,112, 97,116,104, 97, 99, 0, 42,112,111,105,110,116,115, 0,115,116, 97,114, -116, 95,102,114, 97,109,101, 0,101,110,100, 95,102,114, 97,109,101, 0,103,104,111,115,116, 95,115,102, 0,103,104,111,115,116, - 95,101,102, 0,103,104,111,115,116, 95, 98, 99, 0,103,104,111,115,116, 95, 97, 99, 0,103,104,111,115,116, 95,116,121,112,101, - 0,103,104,111,115,116, 95,115,116,101,112, 0,103,104,111,115,116, 95,102,108, 97,103, 0,112, 97,116,104, 95,116,121,112,101, - 0,112, 97,116,104, 95,115,116,101,112, 0,112, 97,116,104, 95,118,105,101,119,102,108, 97,103, 0,112, 97,116,104, 95, 98, 97, -107,101,102,108, 97,103, 0,112, 97,116,104, 95,115,102, 0,112, 97,116,104, 95,101,102, 0,112, 97,116,104, 95, 98, 99, 0,112, - 97,116,104, 95, 97, 99, 0,105,107,102,108, 97,103, 0, 97,103,114,112, 95,105,110,100,101,120, 0, 99,111,110,115,116,102,108, - 97,103, 0,115,101,108,101, 99,116,102,108, 97,103, 0,112, 97,100, 48, 91, 54, 93, 0, 42, 98,111,110,101, 0, 42, 99,104,105, -108,100, 0,105,107,116,114,101,101, 0,115,105,107,116,114,101,101, 0, 42, 99,117,115,116,111,109, 0, 42, 99,117,115,116,111, -109, 95,116,120, 0,101,117,108, 91, 51, 93, 0, 99,104, 97,110, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95, -109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,104,101, 97,100, 91, 51, 93, 0,112,111,115,101, 95,116, 97,105,108, - 91, 51, 93, 0,108,105,109,105,116,109,105,110, 91, 51, 93, 0,108,105,109,105,116,109, 97,120, 91, 51, 93, 0,115,116,105,102, -102,110,101,115,115, 91, 51, 93, 0,105,107,115,116,114,101,116, 99,104, 0,105,107,114,111,116,119,101,105,103,104,116, 0,105, -107,108,105,110,119,101,105,103,104,116, 0, 42,116,101,109,112, 0, 99,104, 97,110, 98, 97,115,101, 0, 42, 99,104, 97,110,104, - 97,115,104, 0,112,114,111,120,121, 95,108, 97,121,101,114, 0,115,116,114,105,100,101, 95,111,102,102,115,101,116, 91, 51, 93, - 0, 99,121, 99,108,105, 99, 95,111,102,102,115,101,116, 91, 51, 93, 0, 97,103,114,111,117,112,115, 0, 97, 99,116,105,118,101, - 95,103,114,111,117,112, 0,105,107,115,111,108,118,101,114, 0, 42,105,107,100, 97,116, 97, 0, 42,105,107,112, 97,114, 97,109, - 0,112,114,111,120,121, 95, 97, 99,116, 95, 98,111,110,101, 91, 54, 52, 93, 0,110,117,109,105,116,101,114, 0,110,117,109,115, -116,101,112, 0,109,105,110,115,116,101,112, 0,109, 97,120,115,116,101,112, 0,115,111,108,118,101,114, 0,102,101,101,100, 98, - 97, 99,107, 0,109, 97,120,118,101,108, 0,100, 97,109,112,109, 97,120, 0,100, 97,109,112,101,112,115, 0, 99,104, 97,110,110, -101,108,115, 0, 99,117,115,116,111,109, 67,111,108, 0, 99,115, 0, 99,117,114,118,101,115, 0,103,114,111,117,112,115, 0, 97, - 99,116,105,118,101, 95,109, 97,114,107,101,114, 0,105,100,114,111,111,116, 0, 42,115,111,117,114, 99,101, 0, 42,102,105,108, -116,101,114, 95,103,114,112, 0,115,101, 97,114, 99,104,115,116,114, 91, 54, 52, 93, 0,102,105,108,116,101,114,102,108, 97,103, - 0,114,101,110, 97,109,101, 73,110,100,101,120, 0, 97,100,115, 0,116,105,109,101,115,108,105,100,101, 0, 42,103,114,112, 0, -110, 97,109,101, 91, 51, 48, 93, 0,111,119,110,115,112, 97, 99,101, 0,116, 97,114,115,112, 97, 99,101, 0,101,110,102,111,114, - 99,101, 0,104,101, 97,100,116, 97,105,108, 0,108,105,110, 95,101,114,114,111,114, 0,114,111,116, 95,101,114,114,111,114, 0, - 42,116, 97,114, 0,109, 97,116,114,105,120, 91, 52, 93, 91, 52, 93, 0,115,112, 97, 99,101, 0,114,111,116, 79,114,100,101,114, - 0,116, 97,114,110,117,109, 0,116, 97,114,103,101,116,115, 0,105,116,101,114, 97,116,105,111,110,115, 0,114,111,111,116, 98, -111,110,101, 0,109, 97,120, 95,114,111,111,116, 98,111,110,101, 0, 42,112,111,108,101,116, 97,114, 0,112,111,108,101,115,117, - 98,116, 97,114,103,101,116, 91, 54, 52, 93, 0,112,111,108,101, 97,110,103,108,101, 0,111,114,105,101,110,116,119,101,105,103, -104,116, 0,103,114, 97, 98,116, 97,114,103,101,116, 91, 51, 93, 0,110,117,109,112,111,105,110,116,115, 0, 99,104, 97,105,110, -108,101,110, 0,120,122, 83, 99, 97,108,101, 77,111,100,101, 0,114,101,115,101,114,118,101,100, 49, 0,114,101,115,101,114,118, -101,100, 50, 0,109,105,110,109, 97,120,102,108, 97,103, 0,115,116,117, 99,107, 0, 99, 97, 99,104,101, 91, 51, 93, 0,108,111, - 99,107,102,108, 97,103, 0,102,111,108,108,111,119,102,108, 97,103, 0,118,111,108,109,111,100,101, 0,112,108, 97,110,101, 0, -111,114,103,108,101,110,103,116,104, 0, 98,117,108,103,101, 0,112,105,118, 88, 0,112,105,118, 89, 0,112,105,118, 90, 0, 97, -120, 88, 0, 97,120, 89, 0, 97,120, 90, 0,109,105,110, 76,105,109,105,116, 91, 54, 93, 0,109, 97,120, 76,105,109,105,116, 91, - 54, 93, 0,101,120,116,114, 97, 70,122, 0,105,110,118,109, 97,116, 91, 52, 93, 91, 52, 93, 0,102,114,111,109, 0,116,111, 0, -109, 97,112, 91, 51, 93, 0,101,120,112,111, 0,102,114,111,109, 95,109,105,110, 91, 51, 93, 0,102,114,111,109, 95,109, 97,120, - 91, 51, 93, 0,116,111, 95,109,105,110, 91, 51, 93, 0,116,111, 95,109, 97,120, 91, 51, 93, 0,114,111,116, 65,120,105,115, 0, -122,109,105,110, 0,122,109, 97,120, 0,112, 97,100, 91, 57, 93, 0,116,114, 97, 99,107, 91, 54, 52, 93, 0,111, 98,106,101, 99, -116, 91, 54, 52, 93, 0, 42,100,101,112,116,104, 95,111, 98, 0, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,110,111, 95,114, -111,116, 95, 97,120,105,115, 0,115,116,114,105,100,101, 95, 97,120,105,115, 0, 99,117,114,109,111,100, 0, 97, 99,116,115,116, - 97,114,116, 0, 97, 99,116,101,110,100, 0, 97, 99,116,111,102,102,115, 0,115,116,114,105,100,101,108,101,110, 0, 98,108,101, -110,100,111,117,116, 0,115,116,114,105,100,101, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,111,102,102,115, 95, 98,111,110, -101, 91, 51, 50, 93, 0,104, 97,115,105,110,112,117,116, 0,104, 97,115,111,117,116,112,117,116, 0,100, 97,116, 97,116,121,112, -101, 0,115,111, 99,107,101,116,116,121,112,101, 0,105,115, 95, 99,111,112,121, 0,101,120,116,101,114,110, 97,108, 0, 42,110, -101,119, 95,115,111, 99,107, 0, 42,115,116,111,114, 97,103,101, 0,108,105,109,105,116, 0,115,116,114,117, 99,116, 95,116,121, -112,101, 0,108,111, 99,120, 0,108,111, 99,121, 0, 42,100,101,102, 97,117,108,116, 95,118, 97,108,117,101, 0,115,116, 97, 99, -107, 95,105,110,100,101,120, 0,115,116, 97, 99,107, 95,116,121,112,101, 0,111,119,110, 95,105,110,100,101,120, 0,116,111, 95, -105,110,100,101,120, 0, 42,103,114,111,117,112,115,111, 99,107, 0, 42,108,105,110,107, 0,110,115, 0, 42,114,101, 99,116, 0, -120,115,105,122,101, 0,121,115,105,122,101, 0, 42,110,101,119, 95,110,111,100,101, 0,108, 97,115,116,121, 0,111,117,116,112, -117,116,115, 0,109,105,110,105,119,105,100,116,104, 0,117,112,100, 97,116,101, 0,108, 97, 98,101,108, 91, 54, 52, 93, 0, 99, -117,115,116,111,109, 49, 0, 99,117,115,116,111,109, 50, 0, 99,117,115,116,111,109, 51, 0, 99,117,115,116,111,109, 52, 0,110, -101,101,100, 95,101,120,101, 99, 0,101,120,101, 99, 0, 42,116,104,114,101, 97,100,100, 97,116, 97, 0,116,111,116,114, 0, 98, -117,116,114, 0,112,114,118,114, 0, 42, 98,108,111, 99,107, 0, 42,116,121,112,101,105,110,102,111, 0, 42,102,114,111,109,110, -111,100,101, 0, 42,116,111,110,111,100,101, 0, 42,102,114,111,109,115,111, 99,107, 0, 42,116,111,115,111, 99,107, 0,110,111, -100,101,115, 0,108,105,110,107,115, 0,105,110,105,116, 0, 99,117,114, 95,105,110,100,101,120, 0,110,111,100,101,116,121,112, -101, 0, 42,101,120,101, 99,100, 97,116, 97, 0, 40, 42,112,114,111,103,114,101,115,115, 41, 40, 41, 0, 40, 42,115,116, 97,116, -115, 95,100,114, 97,119, 41, 40, 41, 0, 40, 42,116,101,115,116, 95, 98,114,101, 97,107, 41, 40, 41, 0, 42,116, 98,104, 0, 42, -112,114,104, 0, 42,115,100,104, 0,118, 97,108,117,101, 91, 51, 93, 0,118, 97,108,117,101, 91, 52, 93, 0, 99,121, 99,108,105, - 99, 0,109,111,118,105,101, 0,115, 97,109,112,108,101,115, 0,109, 97,120,115,112,101,101,100, 0,109,105,110,115,112,101,101, +105,100,101, 0,108, 97,121, 95,122,109, 97,115,107, 0,108, 97,121, 95,101,120, 99,108,117,100,101, 0,108, 97,121,102,108, 97, +103, 0,112, 97,115,115,102,108, 97,103, 0,112, 97,115,115, 95,120,111,114, 0,115, 97,109,112,108,101,115, 0,105,109,116,121, +112,101, 0,112,108, 97,110,101,115, 0,113,117, 97,108,105,116,121, 0, 99,111,109,112,114,101,115,115, 0,101,120,114, 95, 99, +111,100,101, 99, 0, 99,105,110,101,111,110, 95,102,108, 97,103, 0, 99,105,110,101,111,110, 95,119,104,105,116,101, 0, 99,105, +110,101,111,110, 95, 98,108, 97, 99,107, 0, 99,105,110,101,111,110, 95,103, 97,109,109, 97, 0,106,112, 50, 95,102,108, 97,103, + 0,105,109, 95,102,111,114,109, 97,116, 0, 42, 97,118,105, 99,111,100,101, 99,100, 97,116, 97, 0, 42,113,116, 99,111,100,101, + 99,100, 97,116, 97, 0,113,116, 99,111,100,101, 99,115,101,116,116,105,110,103,115, 0,102,102, 99,111,100,101, 99,100, 97,116, + 97, 0,115,117, 98,102,114, 97,109,101, 0,112,115,102,114, 97, 0,112,101,102,114, 97, 0,105,109, 97,103,101,115, 0,102,114, + 97,109, 97,112,116,111, 0,116,104,114,101, 97,100,115, 0,102,114, 97,109,101,108,101,110, 0, 98,108,117,114,102, 97, 99, 0, +101,100,103,101, 82, 0,101,100,103,101, 71, 0,101,100,103,101, 66, 0,102,117,108,108,115, 99,114,101,101,110, 0,120,112,108, + 97,121, 0,121,112,108, 97,121, 0,102,114,101,113,112,108, 97,121, 0, 97,116,116,114,105, 98, 0,102,114, 97,109,101, 95,115, +116,101,112, 0,115,116,101,114,101,111,109,111,100,101, 0,100,105,109,101,110,115,105,111,110,115,112,114,101,115,101,116, 0, +109, 97,120,105,109,115,105,122,101, 0,120,115, 99,104, 0,121,115, 99,104, 0,120,112, 97,114,116,115, 0,121,112, 97,114,116, +115, 0,115,117, 98,105,109,116,121,112,101, 0,100,105,115,112,108, 97,121,109,111,100,101, 0,115, 99,101,109,111,100,101, 0, +114, 97,121,116,114, 97, 99,101, 95,111,112,116,105,111,110,115, 0,114, 97,121,116,114, 97, 99,101, 95,115,116,114,117, 99,116, +117,114,101, 0,111, 99,114,101,115, 0,112, 97,100, 52, 0, 97,108,112,104, 97,109,111,100,101, 0,111,115, 97, 0,102,114,115, + 95,115,101, 99, 0,101,100,103,101,105,110,116, 0,115, 97,102,101,116,121, 0, 98,111,114,100,101,114, 0,100,105,115,112,114, +101, 99,116, 0,108, 97,121,101,114,115, 0, 97, 99,116,108, 97,121, 0,109, 98,108,117,114, 95,115, 97,109,112,108,101,115, 0, +120, 97,115,112, 0,121, 97,115,112, 0,102,114,115, 95,115,101, 99, 95, 98, 97,115,101, 0,103, 97,117,115,115, 0, 99,111,108, +111,114, 95,109,103,116, 95,102,108, 97,103, 0,112,111,115,116,103, 97,109,109, 97, 0,112,111,115,116,104,117,101, 0,112,111, +115,116,115, 97,116, 0,100,105,116,104,101,114, 95,105,110,116,101,110,115,105,116,121, 0, 98, 97,107,101, 95,111,115, 97, 0, + 98, 97,107,101, 95,102,105,108,116,101,114, 0, 98, 97,107,101, 95,109,111,100,101, 0, 98, 97,107,101, 95,102,108, 97,103, 0, + 98, 97,107,101, 95,110,111,114,109, 97,108, 95,115,112, 97, 99,101, 0, 98, 97,107,101, 95,113,117, 97,100, 95,115,112,108,105, +116, 0, 98, 97,107,101, 95,109, 97,120,100,105,115,116, 0, 98, 97,107,101, 95, 98,105, 97,115,100,105,115,116, 0, 98, 97,107, +101, 95,112, 97,100, 0,112,105, 99, 91, 49, 48, 50, 52, 93, 0,115,116, 97,109,112, 0,115,116, 97,109,112, 95,102,111,110,116, + 95,105,100, 0,115,116, 97,109,112, 95,117,100, 97,116, 97, 91, 55, 54, 56, 93, 0,102,103, 95,115,116, 97,109,112, 91, 52, 93, + 0, 98,103, 95,115,116, 97,109,112, 91, 52, 93, 0,115,101,113, 95,112,114,101,118, 95,116,121,112,101, 0,115,101,113, 95,114, +101,110,100, 95,116,121,112,101, 0,115,101,113, 95,102,108, 97,103, 0,112, 97,100, 53, 91, 53, 93, 0,115,105,109,112,108,105, +102,121, 95,102,108, 97,103, 0,115,105,109,112,108,105,102,121, 95,115,117, 98,115,117,114,102, 0,115,105,109,112,108,105,102, +121, 95,115,104, 97,100,111,119,115, 97,109,112,108,101,115, 0,115,105,109,112,108,105,102,121, 95,112, 97,114,116,105, 99,108, +101,115, 0,115,105,109,112,108,105,102,121, 95, 97,111,115,115,115, 0, 99,105,110,101,111,110,119,104,105,116,101, 0, 99,105, +110,101,111,110, 98,108, 97, 99,107, 0, 99,105,110,101,111,110,103, 97,109,109, 97, 0,106,112, 50, 95,112,114,101,115,101,116, + 0,106,112, 50, 95,100,101,112,116,104, 0,114,112, 97,100, 51, 0,100,111,109,101,114,101,115, 0,100,111,109,101,109,111,100, +101, 0,100,111,109,101, 97,110,103,108,101, 0,100,111,109,101,116,105,108,116, 0,100,111,109,101,114,101,115, 98,117,102, 0, + 42,100,111,109,101,116,101,120,116, 0,101,110,103,105,110,101, 91, 51, 50, 93, 0,110, 97,109,101, 91, 51, 50, 93, 0,112, 97, +114,116,105, 99,108,101, 95,112,101,114, 99, 0,115,117, 98,115,117,114,102, 95,109, 97,120, 0,115,104, 97,100, 98,117,102,115, + 97,109,112,108,101, 95,109, 97,120, 0, 97,111, 95,101,114,114,111,114, 0,116,105,108,116, 0,114,101,115, 98,117,102, 0, 42, +119, 97,114,112,116,101,120,116, 0, 99,111,108, 91, 51, 93, 0, 99,101,108,108,115,105,122,101, 0, 99,101,108,108,104,101,105, +103,104,116, 0, 97,103,101,110,116,109, 97,120,115,108,111,112,101, 0, 97,103,101,110,116,109, 97,120, 99,108,105,109, 98, 0, + 97,103,101,110,116,104,101,105,103,104,116, 0, 97,103,101,110,116,114, 97,100,105,117,115, 0,101,100,103,101,109, 97,120,108, +101,110, 0,101,100,103,101,109, 97,120,101,114,114,111,114, 0,114,101,103,105,111,110,109,105,110,115,105,122,101, 0,114,101, +103,105,111,110,109,101,114,103,101,115,105,122,101, 0,118,101,114,116,115,112,101,114,112,111,108,121, 0,100,101,116, 97,105, +108,115, 97,109,112,108,101,100,105,115,116, 0,100,101,116, 97,105,108,115, 97,109,112,108,101,109, 97,120,101,114,114,111,114, + 0,102,114, 97,109,105,110,103, 0,112,108, 97,121,101,114,102,108, 97,103, 0,114,116, 49, 0,114,116, 50, 0, 97, 97,115, 97, +109,112,108,101,115, 0,112, 97,100, 52, 91, 51, 93, 0,100,111,109,101, 0,115,116,101,114,101,111,102,108, 97,103, 0,101,121, +101,115,101,112, 97,114, 97,116,105,111,110, 0,114,101, 99, 97,115,116, 68, 97,116, 97, 0,109, 97,116,109,111,100,101, 0,101, +120,105,116,107,101,121, 0,111, 98,115,116, 97, 99,108,101, 83,105,109,117,108, 97,116,105,111,110, 0,108,101,118,101,108, 72, +101,105,103,104,116, 0, 42, 99, 97,109,101,114, 97, 0, 42,112, 97,105,110,116, 95, 99,117,114,115,111,114, 0,112, 97,105,110, +116, 95, 99,117,114,115,111,114, 95, 99,111,108, 91, 52, 93, 0,112, 97,105,110,116, 0,115,101, 97,109, 95, 98,108,101,101,100, + 0,110,111,114,109, 97,108, 95, 97,110,103,108,101, 0,115, 99,114,101,101,110, 95,103,114, 97, 98, 95,115,105,122,101, 91, 50, + 93, 0, 42,112, 97,105,110,116, 99,117,114,115,111,114, 0,105,110,118,101,114,116, 0,116,111,116,114,101,107,101,121, 0,116, +111,116, 97,100,100,107,101,121, 0, 98,114,117,115,104,116,121,112,101, 0, 98,114,117,115,104, 91, 55, 93, 0,101,109,105,116, +116,101,114,100,105,115,116, 0,115,101,108,101, 99,116,109,111,100,101, 0,101,100,105,116,116,121,112,101, 0,100,114, 97,119, + 95,115,116,101,112, 0,102, 97,100,101, 95,102,114, 97,109,101,115, 0,114, 97,100,105, 97,108, 95,115,121,109,109, 91, 51, 93, + 0,108, 97,115,116, 95,120, 0,108, 97,115,116, 95,121, 0,108, 97,115,116, 95, 97,110,103,108,101, 0,100,114, 97,119, 95, 97, +110, 99,104,111,114,101,100, 0, 97,110, 99,104,111,114,101,100, 95,115,105,122,101, 0, 97,110, 99,104,111,114,101,100, 95,108, +111, 99, 97,116,105,111,110, 91, 51, 93, 0, 97,110, 99,104,111,114,101,100, 95,105,110,105,116,105, 97,108, 95,109,111,117,115, +101, 91, 50, 93, 0,100,114, 97,119, 95,112,114,101,115,115,117,114,101, 0,112,114,101,115,115,117,114,101, 95,118, 97,108,117, +101, 0,115,112,101, 99,105, 97,108, 95,114,111,116, 97,116,105,111,110, 0, 42,118,112, 97,105,110,116, 95,112,114,101,118, 0, + 42,119,112, 97,105,110,116, 95,112,114,101,118, 0,109, 97,116, 91, 51, 93, 91, 51, 93, 0,117,110,112,114,111,106,101, 99,116, +101,100, 95,114, 97,100,105,117,115, 0, 42,118,112, 97,105,110,116, 0, 42,119,112, 97,105,110,116, 0, 42,117,118,115, 99,117, +108,112,116, 0,118,103,114,111,117,112, 95,119,101,105,103,104,116, 0, 99,111,114,110,101,114,116,121,112,101, 0,106,111,105, +110,116,114,105,108,105,109,105,116, 0,100,101,103,114, 0,116,117,114,110, 0,101,120,116,114, 95,111,102,102,115, 0,100,111, +117, 98,108,105,109,105,116, 0,110,111,114,109, 97,108,115,105,122,101, 0, 97,117,116,111,109,101,114,103,101, 0,115,101,103, +109,101,110,116,115, 0,114,105,110,103,115, 0,118,101,114,116,105, 99,101,115, 0,117,110,119,114, 97,112,112,101,114, 0,117, +118, 99, 97,108, 99, 95,114, 97,100,105,117,115, 0,117,118, 99, 97,108, 99, 95, 99,117, 98,101,115,105,122,101, 0,117,118, 99, + 97,108, 99, 95,109, 97,114,103,105,110, 0,117,118, 99, 97,108, 99, 95,109, 97,112,100,105,114, 0,117,118, 99, 97,108, 99, 95, +109, 97,112, 97,108,105,103,110, 0,117,118, 99, 97,108, 99, 95,102,108, 97,103, 0,117,118, 95,102,108, 97,103, 0,117,118, 95, +115,101,108,101, 99,116,109,111,100,101, 0,117,118, 95,115,117, 98,115,117,114,102, 95,108,101,118,101,108, 0,103,112,101,110, + 99,105,108, 95,102,108, 97,103,115, 0, 97,117,116,111,105,107, 95, 99,104, 97,105,110,108,101,110, 0,105,109, 97,112, 97,105, +110,116, 0,112, 97,114,116,105, 99,108,101, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 95,115,105,122,101, 0,115,101, +108,101, 99,116, 95,116,104,114,101,115,104, 0, 99,108,101, 97,110, 95,116,104,114,101,115,104, 0, 97,117,116,111,107,101,121, + 95,109,111,100,101, 0, 97,117,116,111,107,101,121, 95,102,108, 97,103, 0,109,117,108,116,105,114,101,115, 95,115,117, 98,100, +105,118, 95,116,121,112,101, 0,112, 97,100, 50, 91, 53, 93, 0,115,107,103,101,110, 95,114,101,115,111,108,117,116,105,111,110, + 0,115,107,103,101,110, 95,116,104,114,101,115,104,111,108,100, 95,105,110,116,101,114,110, 97,108, 0,115,107,103,101,110, 95, +116,104,114,101,115,104,111,108,100, 95,101,120,116,101,114,110, 97,108, 0,115,107,103,101,110, 95,108,101,110,103,116,104, 95, +114, 97,116,105,111, 0,115,107,103,101,110, 95,108,101,110,103,116,104, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, 97, +110,103,108,101, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, 99,111,114,114,101,108, 97,116,105,111,110, 95,108,105,109, +105,116, 0,115,107,103,101,110, 95,115,121,109,109,101,116,114,121, 95,108,105,109,105,116, 0,115,107,103,101,110, 95,114,101, +116, 97,114,103,101,116, 95, 97,110,103,108,101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103, +101,116, 95,108,101,110,103,116,104, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95, +100,105,115,116, 97,110, 99,101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,111,112,116,105,111,110,115, 0,115,107, +103,101,110, 95,112,111,115,116,112,114,111, 0,115,107,103,101,110, 95,112,111,115,116,112,114,111, 95,112, 97,115,115,101,115, + 0,115,107,103,101,110, 95,115,117, 98,100,105,118,105,115,105,111,110,115, 91, 51, 93, 0,115,107,103,101,110, 95,109,117,108, +116,105, 95,108,101,118,101,108, 0, 42,115,107,103,101,110, 95,116,101,109,112,108, 97,116,101, 0, 98,111,110,101, 95,115,107, +101,116, 99,104,105,110,103, 0, 98,111,110,101, 95,115,107,101,116, 99,104,105,110,103, 95, 99,111,110,118,101,114,116, 0,115, +107,103,101,110, 95,115,117, 98,100,105,118,105,115,105,111,110, 95,110,117,109, 98,101,114, 0,115,107,103,101,110, 95,114,101, +116, 97,114,103,101,116, 95,111,112,116,105,111,110,115, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,114,111, +108,108, 0,115,107,103,101,110, 95,115,105,100,101, 95,115,116,114,105,110,103, 91, 56, 93, 0,115,107,103,101,110, 95,110,117, +109, 95,115,116,114,105,110,103, 91, 56, 93, 0,101,100,103,101, 95,109,111,100,101, 0,101,100,103,101, 95,109,111,100,101, 95, +108,105,118,101, 95,117,110,119,114, 97,112, 0,115,110, 97,112, 95,109,111,100,101, 0,115,110, 97,112, 95,102,108, 97,103, 0, +115,110, 97,112, 95,116, 97,114,103,101,116, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 0,112,114,111,112, 95,109,111, +100,101, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 95,111, 98,106,101, 99,116,115, 0,112, 97,100, 91, 53, 93, 0, 97, +117,116,111, 95,110,111,114,109, 97,108,105,122,101, 0,109,117,108,116,105,112, 97,105,110,116, 0,117,115,101, 95,117,118, 95, +115, 99,117,108,112,116, 0,117,118, 95,115, 99,117,108,112,116, 95,115,101,116,116,105,110,103,115, 0,117,118, 95,115, 99,117, +108,112,116, 95,116,111,111,108, 0,117,118, 95,114,101,108, 97,120, 95,109,101,116,104,111,100, 0,115, 99,117,108,112,116, 95, +112, 97,105,110,116, 95,115,101,116,116,105,110,103,115, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,117,110,105,102, +105,101,100, 95,115,105,122,101, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,117,110,105,102,105,101,100, 95,117,110, +112,114,111,106,101, 99,116,101,100, 95,114, 97,100,105,117,115, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,117,110, +105,102,105,101,100, 95, 97,108,112,104, 97, 0,117,110,105,102,105,101,100, 95,112, 97,105,110,116, 95,115,101,116,116,105,110, +103,115, 0,116,111,116,111, 98,106, 0,116,111,116,108, 97,109,112, 0,116,111,116,111, 98,106,115,101,108, 0,116,111,116, 99, +117,114,118,101, 0,116,111,116,109,101,115,104, 0,116,111,116, 97,114,109, 97,116,117,114,101, 0,115, 99, 97,108,101, 95,108, +101,110,103,116,104, 0,115,121,115,116,101,109, 0,115,121,115,116,101,109, 95,114,111,116, 97,116,105,111,110, 0,103,114, 97, +118,105,116,121, 91, 51, 93, 0,113,117,105, 99,107, 95, 99, 97, 99,104,101, 95,115,116,101,112, 0, 42,119,111,114,108,100, 0, + 42,115,101,116, 0, 98, 97,115,101, 0, 42, 98, 97,115, 97, 99,116, 0, 42,111, 98,101,100,105,116, 0, 99,117,114,115,111,114, + 91, 51, 93, 0,116,119, 99,101,110,116, 91, 51, 93, 0,116,119,109,105,110, 91, 51, 93, 0,116,119,109, 97,120, 91, 51, 93, 0, +108, 97,121, 97, 99,116, 0,108, 97,121, 95,117,112,100, 97,116,101,100, 0, 42,101,100, 0, 42,116,111,111,108,115,101,116,116, +105,110,103,115, 0, 42,115,116, 97,116,115, 0, 97,117,100,105,111, 0,116,114, 97,110,115,102,111,114,109, 95,115,112, 97, 99, +101,115, 0, 42,115,111,117,110,100, 95,115, 99,101,110,101, 0, 42,115,111,117,110,100, 95,115, 99,101,110,101, 95,104, 97,110, +100,108,101, 0, 42,115,111,117,110,100, 95,115, 99,114,117, 98, 95,104, 97,110,100,108,101, 0, 42,115,112,101, 97,107,101,114, + 95,104, 97,110,100,108,101,115, 0, 42,102,112,115, 95,105,110,102,111, 0, 42,116,104,101, 68, 97,103, 0,100, 97,103,105,115, +118, 97,108,105,100, 0,100, 97,103,102,108, 97,103,115, 0, 97, 99,116,105,118,101, 95,107,101,121,105,110,103,115,101,116, 0, +107,101,121,105,110,103,115,101,116,115, 0,103,109, 0,117,110,105,116, 0,112,104,121,115,105, 99,115, 95,115,101,116,116,105, +110,103,115, 0, 42, 99,108,105,112, 0, 99,117,115,116,111,109,100, 97,116, 97, 95,109, 97,115,107, 95,109,111,100, 97,108, 0, + 99,117,115,101,114, 0, 98,108,101,110,100, 0,118,105,101,119, 0,119,105,110,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105, +101,119,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,105,110,118, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,109, 97, +116, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,105,110,118, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109, 97,116,111, 98, 91, + 52, 93, 91, 52, 93, 0,112,101,114,115,109, 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0, 99,108,105,112, 91, 54, 93, 91, 52, 93, + 0, 99,108,105,112, 95,108,111, 99, 97,108, 91, 54, 93, 91, 52, 93, 0, 42, 99,108,105,112, 98, 98, 0, 42,108,111, 99, 97,108, +118,100, 0, 42,114,105, 0, 42,114,101,110,100,101,114, 95,101,110,103,105,110,101, 0, 42,100,101,112,116,104,115, 0, 42,115, +109,115, 0, 42,115,109,111,111,116,104, 95,116,105,109,101,114, 0,116,119,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101, +119,113,117, 97,116, 91, 52, 93, 0,122,102, 97, 99, 0, 99, 97,109,100,120, 0, 99, 97,109,100,121, 0,112,105,120,115,105,122, +101, 0, 99, 97,109,122,111,111,109, 0,105,115, 95,112,101,114,115,112, 0,112,101,114,115,112, 0,118,105,101,119,108,111, 99, +107, 0,116,119,100,114, 97,119,102,108, 97,103, 0,114,102,108, 97,103, 0,108,118,105,101,119,113,117, 97,116, 91, 52, 93, 0, +108,112,101,114,115,112, 0,108,118,105,101,119, 0,103,114,105,100,118,105,101,119, 0,116,119, 97,110,103,108,101, 91, 51, 93, + 0,114,111,116, 95, 97,110,103,108,101, 0,114,111,116, 95, 97,120,105,115, 91, 51, 93, 0,114,101,103,105,111,110, 98, 97,115, +101, 0,115,112, 97, 99,101,116,121,112,101, 0, 98,108,111, 99,107,115, 99, 97,108,101, 0, 98,108,111, 99,107,104, 97,110,100, +108,101,114, 91, 56, 93, 0, 98,117,110,100,108,101, 95,115,105,122,101, 0, 98,117,110,100,108,101, 95,100,114, 97,119,116,121, +112,101, 0,108, 97,121, 95,117,115,101,100, 0, 42,111, 98, 95, 99,101,110,116,114,101, 0, 98,103,112,105, 99, 98, 97,115,101, + 0, 42, 98,103,112,105, 99, 0,111, 98, 95, 99,101,110,116,114,101, 95, 98,111,110,101, 91, 54, 52, 93, 0,100,114, 97,119,116, +121,112,101, 0,111, 98, 95, 99,101,110,116,114,101, 95, 99,117,114,115,111,114, 0,115, 99,101,110,101,108,111, 99,107, 0, 97, +114,111,117,110,100, 0,103,114,105,100, 0,110,101, 97,114, 0,102, 97,114, 0,109,111,100,101,115,101,108,101, 99,116, 0,103, +114,105,100,108,105,110,101,115, 0,103,114,105,100,115,117, 98,100,105,118, 0,103,114,105,100,102,108, 97,103, 0,116,119,116, +121,112,101, 0,116,119,109,111,100,101, 0,116,119,102,108, 97,103, 0,112, 97,100, 50, 91, 50, 93, 0, 97,102,116,101,114,100, +114, 97,119, 95,116,114, 97,110,115,112, 0, 97,102,116,101,114,100,114, 97,119, 95,120,114, 97,121, 0, 97,102,116,101,114,100, +114, 97,119, 95,120,114, 97,121,116,114, 97,110,115,112, 0,122, 98,117,102, 0,120,114, 97,121, 0,112, 97,100, 51, 91, 50, 93, + 0, 42,112,114,111,112,101,114,116,105,101,115, 95,115,116,111,114, 97,103,101, 0,118,101,114,116, 0,104,111,114, 0,109, 97, +115,107, 0,109,105,110, 91, 50, 93, 0,109, 97,120, 91, 50, 93, 0,109,105,110,122,111,111,109, 0,109, 97,120,122,111,111,109, + 0,115, 99,114,111,108,108, 0,115, 99,114,111,108,108, 95,117,105, 0,107,101,101,112,116,111,116, 0,107,101,101,112,122,111, +111,109, 0,107,101,101,112,111,102,115, 0, 97,108,105,103,110, 0,119,105,110,120, 0,119,105,110,121, 0,111,108,100,119,105, +110,120, 0,111,108,100,119,105,110,121, 0, 42,116, 97, 98, 95,111,102,102,115,101,116, 0,116, 97, 98, 95,110,117,109, 0,116, + 97, 98, 95, 99,117,114, 0,114,112,116, 95,109, 97,115,107, 0,118, 50,100, 0, 42, 97,100,115, 0,103,104,111,115,116, 67,117, +114,118,101,115, 0, 97,117,116,111,115,110, 97,112, 0, 99,117,114,115,111,114, 86, 97,108, 0,109, 97,105,110, 98, 0,109, 97, +105,110, 98,111, 0,109, 97,105,110, 98,117,115,101,114, 0,114,101, 95, 97,108,105,103,110, 0,112,114,101,118,105,101,119, 0, +116,101,120,116,117,114,101, 95, 99,111,110,116,101,120,116, 0,112, 97,116,104,102,108, 97,103, 0,100, 97,116, 97,105, 99,111, +110, 0, 42,112,105,110,105,100, 0, 42,116,101,120,117,115,101,114, 0,114,101,110,100,101,114, 95,115,105,122,101, 0, 99,104, + 97,110,115,104,111,119,110, 0,122,101, 98,114, 97, 0,122,111,111,109, 0,116,105,116,108,101, 91, 51, 50, 93, 0,100,105,114, + 91, 49, 48, 53, 54, 93, 0,102,105,108,101, 91, 50, 53, 54, 93, 0,114,101,110, 97,109,101,102,105,108,101, 91, 50, 53, 54, 93, + 0,114,101,110, 97,109,101,101,100,105,116, 91, 50, 53, 54, 93, 0,102,105,108,116,101,114, 95,103,108,111, 98, 91, 54, 52, 93, + 0, 97, 99,116,105,118,101, 95,102,105,108,101, 0,115,101,108, 95,102,105,114,115,116, 0,115,101,108, 95,108, 97,115,116, 0, +115,111,114,116, 0,100,105,115,112,108, 97,121, 0,102, 95,102,112, 0,102,112, 95,115,116,114, 91, 56, 93, 0,115, 99,114,111, +108,108, 95,111,102,102,115,101,116, 0, 42,112, 97,114, 97,109,115, 0, 42,102,105,108,101,115, 0, 42,102,111,108,100,101,114, +115, 95,112,114,101,118, 0, 42,102,111,108,100,101,114,115, 95,110,101,120,116, 0, 42,111,112, 0, 42,115,109,111,111,116,104, +115, 99,114,111,108,108, 95,116,105,109,101,114, 0, 42,108, 97,121,111,117,116, 0,114,101, 99,101,110,116,110,114, 0, 98,111, +111,107,109, 97,114,107,110,114, 0,115,121,115,116,101,109,110,114, 0,116,114,101,101, 0, 42,116,114,101,101,115,116,111,114, +101, 0,115,101, 97,114, 99,104, 95,115,116,114,105,110,103, 91, 51, 50, 93, 0,115,101, 97,114, 99,104, 95,116,115,101, 0,111, +117,116,108,105,110,101,118,105,115, 0,115,116,111,114,101,102,108, 97,103, 0,115,101, 97,114, 99,104, 95,102,108, 97,103,115, + 0, 42, 99,117,109, 97,112, 0,115, 99,111,112,101,115, 0,115, 97,109,112,108,101, 95,108,105,110,101, 95,104,105,115,116, 0, + 99,117,114,115,111,114, 91, 50, 93, 0, 99,101,110,116,120, 0, 99,101,110,116,121, 0, 99,117,114,116,105,108,101, 0,108,111, + 99,107, 0,112,105,110, 0,100,116, 95,117,118, 0,115,116,105, 99,107,121, 0,100,116, 95,117,118,115,116,114,101,116, 99,104, + 0, 42,116,101,120,116, 0,116,111,112, 0,118,105,101,119,108,105,110,101,115, 0,109,101,110,117,110,114, 0,108,104,101,105, +103,104,116, 0, 99,119,105,100,116,104, 0,108,105,110,101,110,114,115, 95,116,111,116, 0,108,101,102,116, 0,115,104,111,119, +108,105,110,101,110,114,115, 0,116, 97, 98,110,117,109, 98,101,114, 0,115,104,111,119,115,121,110,116, 97,120, 0,108,105,110, +101, 95,104,108,105,103,104,116, 0,111,118,101,114,119,114,105,116,101, 0,108,105,118,101, 95,101,100,105,116, 0,112,105,120, + 95,112,101,114, 95,108,105,110,101, 0,116,120,116,115, 99,114,111,108,108, 0,116,120,116, 98, 97,114, 0,119,111,114,100,119, +114, 97,112, 0,100,111,112,108,117,103,105,110,115, 0,102,105,110,100,115,116,114, 91, 50, 53, 54, 93, 0,114,101,112,108, 97, + 99,101,115,116,114, 91, 50, 53, 54, 93, 0,109, 97,114,103,105,110, 95, 99,111,108,117,109,110, 0, 42,100,114, 97,119, 99, 97, + 99,104,101, 0, 42,112,121, 95,100,114, 97,119, 0, 42,112,121, 95,101,118,101,110,116, 0, 42,112,121, 95, 98,117,116,116,111, +110, 0, 42,112,121, 95, 98,114,111,119,115,101,114, 99, 97,108,108, 98, 97, 99,107, 0, 42,112,121, 95,103,108,111, 98, 97,108, +100,105, 99,116, 0,108, 97,115,116,115,112, 97, 99,101, 0,115, 99,114,105,112,116,110, 97,109,101, 91, 49, 48, 50, 52, 93, 0, +115, 99,114,105,112,116, 97,114,103, 91, 50, 53, 54, 93, 0, 42,115, 99,114,105,112,116, 0, 42, 98,117,116, 95,114,101,102,115, + 0, 42, 97,114,114, 97,121, 0, 99, 97, 99,104,101,115, 0, 99, 97, 99,104,101, 95,100,105,115,112,108, 97,121, 0, 42,105,100, + 0, 97,115,112,101, 99,116, 0,112, 97,100,102, 0,109,120, 0,109,121, 0, 42,101,100,105,116,116,114,101,101, 0,116,114,101, +101,116,121,112,101, 0,116,101,120,102,114,111,109, 0,115,104, 97,100,101,114,102,114,111,109, 0,108,105,110,107,100,114, 97, +103, 0,108,101,110, 95, 97,108,108,111, 99, 0, 99,117,114,115,111,114, 0,115, 99,114,111,108,108, 98, 97, 99,107, 0,104,105, +115,116,111,114,121, 0,112,114,111,109,112,116, 91, 50, 53, 54, 93, 0,108, 97,110,103,117, 97,103,101, 91, 51, 50, 93, 0,115, +101,108, 95,115,116, 97,114,116, 0,115,101,108, 95,101,110,100, 0,102,105,108,116,101,114, 91, 54, 52, 93, 0,120,108,111, 99, +107,111,102, 0,121,108,111, 99,107,111,102, 0,117,115,101,114, 0,112, 97,116,104, 95,108,101,110,103,116,104, 0,108,111, 99, + 91, 50, 93, 0,115,116, 97, 98,109, 97,116, 91, 52, 93, 91, 52, 93, 0,117,110,105,115,116, 97, 98,109, 97,116, 91, 52, 93, 91, + 52, 93, 0,112,111,115,116,112,114,111, 99, 95,102,108, 97,103, 0, 42,100,114, 97,119, 95, 99,111,110,116,101,120,116, 0,102, +105,108,101,110, 97,109,101, 91, 49, 48, 50, 52, 93, 0, 98,108,102, 95,105,100, 0,117,105,102,111,110,116, 95,105,100, 0,114, + 95,116,111, 95,108, 0,112,111,105,110,116,115, 0,107,101,114,110,105,110,103, 0,105,116, 97,108,105, 99, 0, 98,111,108,100, + 0,115,104, 97,100,111,119, 0,115,104, 97,100,120, 0,115,104, 97,100,121, 0,115,104, 97,100,111,119, 97,108,112,104, 97, 0, +115,104, 97,100,111,119, 99,111,108,111,114, 0,112, 97,110,101,108,116,105,116,108,101, 0,103,114,111,117,112,108, 97, 98,101, +108, 0,119,105,100,103,101,116,108, 97, 98,101,108, 0,119,105,100,103,101,116, 0,112, 97,110,101,108,122,111,111,109, 0,109, +105,110,108, 97, 98,101,108, 99,104, 97,114,115, 0,109,105,110,119,105,100,103,101,116, 99,104, 97,114,115, 0, 99,111,108,117, +109,110,115,112, 97, 99,101, 0,116,101,109,112,108, 97,116,101,115,112, 97, 99,101, 0, 98,111,120,115,112, 97, 99,101, 0, 98, +117,116,116,111,110,115,112, 97, 99,101,120, 0, 98,117,116,116,111,110,115,112, 97, 99,101,121, 0,112, 97,110,101,108,115,112, + 97, 99,101, 0,112, 97,110,101,108,111,117,116,101,114, 0,111,117,116,108,105,110,101, 91, 52, 93, 0,105,110,110,101,114, 91, + 52, 93, 0,105,110,110,101,114, 95,115,101,108, 91, 52, 93, 0,105,116,101,109, 91, 52, 93, 0,116,101,120,116, 91, 52, 93, 0, +116,101,120,116, 95,115,101,108, 91, 52, 93, 0,115,104, 97,100,101,100, 0,115,104, 97,100,101,116,111,112, 0,115,104, 97,100, +101,100,111,119,110, 0, 97,108,112,104, 97, 95, 99,104,101, 99,107, 0,105,110,110,101,114, 95, 97,110,105,109, 91, 52, 93, 0, +105,110,110,101,114, 95, 97,110,105,109, 95,115,101,108, 91, 52, 93, 0,105,110,110,101,114, 95,107,101,121, 91, 52, 93, 0,105, +110,110,101,114, 95,107,101,121, 95,115,101,108, 91, 52, 93, 0,105,110,110,101,114, 95,100,114,105,118,101,110, 91, 52, 93, 0, +105,110,110,101,114, 95,100,114,105,118,101,110, 95,115,101,108, 91, 52, 93, 0,104,101, 97,100,101,114, 91, 52, 93, 0,115,104, +111,119, 95,104,101, 97,100,101,114, 0,119, 99,111,108, 95,114,101,103,117,108, 97,114, 0,119, 99,111,108, 95,116,111,111,108, + 0,119, 99,111,108, 95,116,101,120,116, 0,119, 99,111,108, 95,114, 97,100,105,111, 0,119, 99,111,108, 95,111,112,116,105,111, +110, 0,119, 99,111,108, 95,116,111,103,103,108,101, 0,119, 99,111,108, 95,110,117,109, 0,119, 99,111,108, 95,110,117,109,115, +108,105,100,101,114, 0,119, 99,111,108, 95,109,101,110,117, 0,119, 99,111,108, 95,112,117,108,108,100,111,119,110, 0,119, 99, +111,108, 95,109,101,110,117, 95, 98, 97, 99,107, 0,119, 99,111,108, 95,109,101,110,117, 95,105,116,101,109, 0,119, 99,111,108, + 95,116,111,111,108,116,105,112, 0,119, 99,111,108, 95, 98,111,120, 0,119, 99,111,108, 95,115, 99,114,111,108,108, 0,119, 99, +111,108, 95,112,114,111,103,114,101,115,115, 0,119, 99,111,108, 95,108,105,115,116, 95,105,116,101,109, 0,119, 99,111,108, 95, +115,116, 97,116,101, 0,112, 97,110,101,108, 0,105, 99,111,110,102,105,108,101, 91, 50, 53, 54, 93, 0,105, 99,111,110, 95, 97, +108,112,104, 97, 0, 98, 97, 99,107, 91, 52, 93, 0,116,105,116,108,101, 91, 52, 93, 0,116,101,120,116, 95,104,105, 91, 52, 93, + 0,104,101, 97,100,101,114, 95,116,105,116,108,101, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,101,120,116, 91, 52, 93, 0, +104,101, 97,100,101,114, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0, 98,117,116,116,111,110, 91, 52, 93, 0, 98,117,116,116, +111,110, 95,116,105,116,108,101, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,101,120,116, 91, 52, 93, 0, 98,117,116,116,111, +110, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,108,105,115,116, 91, 52, 93, 0,108,105,115,116, 95,116,105,116,108,101, 91, + 52, 93, 0,108,105,115,116, 95,116,101,120,116, 91, 52, 93, 0,108,105,115,116, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0, +112, 97,110,101,108, 91, 52, 93, 0,112, 97,110,101,108, 95,116,105,116,108,101, 91, 52, 93, 0,112, 97,110,101,108, 95,116,101, +120,116, 91, 52, 93, 0,112, 97,110,101,108, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,115,104, 97,100,101, 49, 91, 52, 93, + 0,115,104, 97,100,101, 50, 91, 52, 93, 0,104,105,108,105,116,101, 91, 52, 93, 0,103,114,105,100, 91, 52, 93, 0,119,105,114, +101, 91, 52, 93, 0,115,101,108,101, 99,116, 91, 52, 93, 0,108, 97,109,112, 91, 52, 93, 0,115,112,101, 97,107,101,114, 91, 52, + 93, 0,101,109,112,116,121, 91, 52, 93, 0, 99, 97,109,101,114, 97, 91, 52, 93, 0,112, 97,100, 91, 56, 93, 0, 97, 99,116,105, +118,101, 91, 52, 93, 0,103,114,111,117,112, 91, 52, 93, 0,103,114,111,117,112, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,116, +114, 97,110,115,102,111,114,109, 91, 52, 93, 0,118,101,114,116,101,120, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,101,108, +101, 99,116, 91, 52, 93, 0,101,100,103,101, 91, 52, 93, 0,101,100,103,101, 95,115,101,108,101, 99,116, 91, 52, 93, 0,101,100, +103,101, 95,115,101, 97,109, 91, 52, 93, 0,101,100,103,101, 95,115,104, 97,114,112, 91, 52, 93, 0,101,100,103,101, 95,102, 97, + 99,101,115,101,108, 91, 52, 93, 0,101,100,103,101, 95, 99,114,101, 97,115,101, 91, 52, 93, 0,102, 97, 99,101, 91, 52, 93, 0, +102, 97, 99,101, 95,115,101,108,101, 99,116, 91, 52, 93, 0,102, 97, 99,101, 95,100,111,116, 91, 52, 93, 0,101,120,116,114, 97, + 95,101,100,103,101, 95,108,101,110, 91, 52, 93, 0,101,120,116,114, 97, 95,102, 97, 99,101, 95, 97,110,103,108,101, 91, 52, 93, + 0,101,120,116,114, 97, 95,102, 97, 99,101, 95, 97,114,101, 97, 91, 52, 93, 0,112, 97,100, 51, 91, 52, 93, 0,110,111,114,109, + 97,108, 91, 52, 93, 0,118,101,114,116,101,120, 95,110,111,114,109, 97,108, 91, 52, 93, 0, 98,111,110,101, 95,115,111,108,105, +100, 91, 52, 93, 0, 98,111,110,101, 95,112,111,115,101, 91, 52, 93, 0,115,116,114,105,112, 91, 52, 93, 0,115,116,114,105,112, + 95,115,101,108,101, 99,116, 91, 52, 93, 0, 99,102,114, 97,109,101, 91, 52, 93, 0,110,117,114, 98, 95,117,108,105,110,101, 91, + 52, 93, 0,110,117,114, 98, 95,118,108,105,110,101, 91, 52, 93, 0, 97, 99,116, 95,115,112,108,105,110,101, 91, 52, 93, 0,110, +117,114, 98, 95,115,101,108, 95,117,108,105,110,101, 91, 52, 93, 0,110,117,114, 98, 95,115,101,108, 95,118,108,105,110,101, 91, + 52, 93, 0,108, 97,115,116,115,101,108, 95,112,111,105,110,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,102,114,101,101, 91, + 52, 93, 0,104, 97,110,100,108,101, 95, 97,117,116,111, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101, 99,116, 91, 52, 93, + 0,104, 97,110,100,108,101, 95, 97,108,105,103,110, 91, 52, 93, 0,104, 97,110,100,108,101, 95, 97,117,116,111, 95, 99,108, 97, +109,112,101,100, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95,102,114,101,101, 91, 52, 93, 0,104, 97,110,100,108, +101, 95,115,101,108, 95, 97,117,116,111, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95,118,101, 99,116, 91, 52, 93, + 0,104, 97,110,100,108,101, 95,115,101,108, 95, 97,108,105,103,110, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95, + 97,117,116,111, 95, 99,108, 97,109,112,101,100, 91, 52, 93, 0,100,115, 95, 99,104, 97,110,110,101,108, 91, 52, 93, 0,100,115, + 95,115,117, 98, 99,104, 97,110,110,101,108, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,111,117,116,112,117,116, 91, 52, 93, + 0, 99,111,110,115,111,108,101, 95,105,110,112,117,116, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,105,110,102,111, 91, 52, + 93, 0, 99,111,110,115,111,108,101, 95,101,114,114,111,114, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95, 99,117,114,115,111, +114, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,105,122,101, 0,111,117,116,108,105,110,101, 95,119,105,100,116,104, 0,102, + 97, 99,101,100,111,116, 95,115,105,122,101, 0,110,111,111,100,108,101, 95, 99,117,114,118,105,110,103, 0,115,121,110,116, 97, +120,108, 91, 52, 93, 0,115,121,110,116, 97,120,110, 91, 52, 93, 0,115,121,110,116, 97,120, 98, 91, 52, 93, 0,115,121,110,116, + 97,120,118, 91, 52, 93, 0,115,121,110,116, 97,120, 99, 91, 52, 93, 0,109,111,118,105,101, 91, 52, 93, 0,109,111,118,105,101, + 99,108,105,112, 91, 52, 93, 0,105,109, 97,103,101, 91, 52, 93, 0,115, 99,101,110,101, 91, 52, 93, 0, 97,117,100,105,111, 91, + 52, 93, 0,101,102,102,101, 99,116, 91, 52, 93, 0,112,108,117,103,105,110, 91, 52, 93, 0,116,114, 97,110,115,105,116,105,111, +110, 91, 52, 93, 0,109,101,116, 97, 91, 52, 93, 0,101,100,105,116,109,101,115,104, 95, 97, 99,116,105,118,101, 91, 52, 93, 0, +104, 97,110,100,108,101, 95,118,101,114,116,101,120, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 95,115, +101,108,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 95,115,105,122,101, 0,109, 97,114,107, +101,114, 95,111,117,116,108,105,110,101, 91, 52, 93, 0,109, 97,114,107,101,114, 91, 52, 93, 0, 97, 99,116, 95,109, 97,114,107, +101,114, 91, 52, 93, 0,115,101,108, 95,109, 97,114,107,101,114, 91, 52, 93, 0,100,105,115, 95,109, 97,114,107,101,114, 91, 52, + 93, 0,108,111, 99,107, 95,109, 97,114,107,101,114, 91, 52, 93, 0, 98,117,110,100,108,101, 95,115,111,108,105,100, 91, 52, 93, + 0,112, 97,116,104, 95, 98,101,102,111,114,101, 91, 52, 93, 0,112, 97,116,104, 95, 97,102,116,101,114, 91, 52, 93, 0, 99, 97, +109,101,114, 97, 95,112, 97,116,104, 91, 52, 93, 0,104,112, 97,100, 91, 55, 93, 0,112,114,101,118,105,101,119, 95, 98, 97, 99, +107, 91, 52, 93, 0,112,114,101,118,105,101,119, 95,115,116,105,116, 99,104, 95,102, 97, 99,101, 91, 52, 93, 0,112,114,101,118, +105,101,119, 95,115,116,105,116, 99,104, 95,101,100,103,101, 91, 52, 93, 0,112,114,101,118,105,101,119, 95,115,116,105,116, 99, +104, 95,118,101,114,116, 91, 52, 93, 0,112,114,101,118,105,101,119, 95,115,116,105,116, 99,104, 95,115,116,105,116, 99,104, 97, + 98,108,101, 91, 52, 93, 0,112,114,101,118,105,101,119, 95,115,116,105,116, 99,104, 95,117,110,115,116,105,116, 99,104, 97, 98, +108,101, 91, 52, 93, 0,112,114,101,118,105,101,119, 95,115,116,105,116, 99,104, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,109, + 97,116, 99,104, 91, 52, 93, 0,115,101,108,101, 99,116,101,100, 95,104,105,103,104,108,105,103,104,116, 91, 52, 93, 0,115,111, +108,105,100, 91, 52, 93, 0,116,117,105, 0,116, 98,117,116,115, 0,116,118, 51,100, 0,116,102,105,108,101, 0,116,105,112,111, + 0,116,105,110,102,111, 0,116, 97, 99,116, 0,116,110,108, 97, 0,116,115,101,113, 0,116,105,109, 97, 0,116,101,120,116, 0, +116,111,111,112,115, 0,116,116,105,109,101, 0,116,110,111,100,101, 0,116,108,111,103,105, 99, 0,116,117,115,101,114,112,114, +101,102, 0,116, 99,111,110,115,111,108,101, 0,116, 99,108,105,112, 0,116, 97,114,109, 91, 50, 48, 93, 0, 97, 99,116,105,118, +101, 95,116,104,101,109,101, 95, 97,114,101, 97, 0,109,111,100,117,108,101, 91, 54, 52, 93, 0,115,112,101, 99, 91, 52, 93, 0, +100,117,112,102,108, 97,103, 0,115, 97,118,101,116,105,109,101, 0,116,101,109,112,100,105,114, 91, 55, 54, 56, 93, 0,102,111, +110,116,100,105,114, 91, 55, 54, 56, 93, 0,114,101,110,100,101,114,100,105,114, 91, 49, 48, 50, 52, 93, 0,116,101,120,116,117, +100,105,114, 91, 55, 54, 56, 93, 0,112,108,117,103,116,101,120,100,105,114, 91, 55, 54, 56, 93, 0,112,108,117,103,115,101,113, +100,105,114, 91, 55, 54, 56, 93, 0,112,121,116,104,111,110,100,105,114, 91, 55, 54, 56, 93, 0,115,111,117,110,100,100,105,114, + 91, 55, 54, 56, 93, 0,105,109, 97,103,101, 95,101,100,105,116,111,114, 91, 49, 48, 50, 52, 93, 0, 97,110,105,109, 95,112,108, + 97,121,101,114, 91, 49, 48, 50, 52, 93, 0, 97,110,105,109, 95,112,108, 97,121,101,114, 95,112,114,101,115,101,116, 0,118, 50, +100, 95,109,105,110, 95,103,114,105,100,115,105,122,101, 0,116,105,109,101, 99,111,100,101, 95,115,116,121,108,101, 0,118,101, +114,115,105,111,110,115, 0,100, 98,108, 95, 99,108,105, 99,107, 95,116,105,109,101, 0,103, 97,109,101,102,108, 97,103,115, 0, +119,104,101,101,108,108,105,110,101,115, 99,114,111,108,108, 0,117,105,102,108, 97,103, 0,108, 97,110,103,117, 97,103,101, 0, +117,115,101,114,112,114,101,102, 0,118,105,101,119,122,111,111,109, 0,109,105,120, 98,117,102,115,105,122,101, 0, 97,117,100, +105,111,100,101,118,105, 99,101, 0, 97,117,100,105,111,114, 97,116,101, 0, 97,117,100,105,111,102,111,114,109, 97,116, 0, 97, +117,100,105,111, 99,104, 97,110,110,101,108,115, 0,100,112,105, 0,101,110, 99,111,100,105,110,103, 0,116,114, 97,110,115,111, +112,116,115, 0,109,101,110,117,116,104,114,101,115,104,111,108,100, 49, 0,109,101,110,117,116,104,114,101,115,104,111,108,100, + 50, 0,116,104,101,109,101,115, 0,117,105,102,111,110,116,115, 0,117,105,115,116,121,108,101,115, 0,107,101,121,109, 97,112, +115, 0,117,115,101,114, 95,107,101,121,109, 97,112,115, 0, 97,100,100,111,110,115, 0,107,101,121, 99,111,110,102,105,103,115, +116,114, 91, 54, 52, 93, 0,117,110,100,111,115,116,101,112,115, 0,117,110,100,111,109,101,109,111,114,121, 0,103,112, 95,109, + 97,110,104, 97,116,116,101,110,100,105,115,116, 0,103,112, 95,101,117, 99,108,105,100,101, 97,110,100,105,115,116, 0,103,112, + 95,101,114, 97,115,101,114, 0,103,112, 95,115,101,116,116,105,110,103,115, 0,116, 98, 95,108,101,102,116,109,111,117,115,101, + 0,116, 98, 95,114,105,103,104,116,109,111,117,115,101, 0,108,105,103,104,116, 91, 51, 93, 0,116,119, 95,104,111,116,115,112, +111,116, 0,116,119, 95,102,108, 97,103, 0,116,119, 95,104, 97,110,100,108,101,115,105,122,101, 0,116,119, 95,115,105,122,101, + 0,116,101,120,116,105,109,101,111,117,116, 0,116,101,120, 99,111,108,108,101, 99,116,114, 97,116,101, 0,119,109,100,114, 97, +119,109,101,116,104,111,100, 0,100,114, 97,103,116,104,114,101,115,104,111,108,100, 0,109,101,109, 99, 97, 99,104,101,108,105, +109,105,116, 0,112,114,101,102,101,116, 99,104,102,114, 97,109,101,115, 0,102,114, 97,109,101,115,101,114,118,101,114,112,111, +114,116, 0,112, 97,100, 95,114,111,116, 95, 97,110,103,108,101, 0,111, 98, 99,101,110,116,101,114, 95,100,105, 97, 0,114,118, +105,115,105,122,101, 0,114,118,105, 98,114,105,103,104,116, 0,114,101, 99,101,110,116, 95,102,105,108,101,115, 0,115,109,111, +111,116,104, 95,118,105,101,119,116,120, 0,103,108,114,101,115,108,105,109,105,116, 0, 99,117,114,115,115,105,122,101, 0, 99, +111,108,111,114, 95,112,105, 99,107,101,114, 95,116,121,112,101, 0,105,112,111, 95,110,101,119, 0,107,101,121,104, 97,110,100, +108,101,115, 95,110,101,119, 0,115, 99,114, 99, 97,115,116,102,112,115, 0,115, 99,114, 99, 97,115,116,119, 97,105,116, 0,119, +105,100,103,101,116, 95,117,110,105,116, 0, 97,110,105,115,111,116,114,111,112,105, 99, 95,102,105,108,116,101,114, 0,117,115, +101, 95, 49, 54, 98,105,116, 95,116,101,120,116,117,114,101,115, 0,112, 97,100, 56, 0,110,100,111,102, 95,115,101,110,115,105, +116,105,118,105,116,121, 0,110,100,111,102, 95,102,108, 97,103, 0,103,108, 97,108,112,104, 97, 99,108,105,112, 0,116,101,120, +116, 95,114,101,110,100,101,114, 0,112, 97,100, 57, 0, 99,111, 98, 97, 95,119,101,105,103,104,116, 0,115, 99,117,108,112,116, + 95,112, 97,105,110,116, 95,111,118,101,114,108, 97,121, 95, 99,111,108, 91, 51, 93, 0,116,119,101, 97,107, 95,116,104,114,101, +115,104,111,108,100, 0, 97,117,116,104,111,114, 91, 56, 48, 93, 0, 99,111,109,112,117,116,101, 95,100,101,118,105, 99,101, 95, +116,121,112,101, 0, 99,111,109,112,117,116,101, 95,100,101,118,105, 99,101, 95,105,100, 0,102, 99,117, 95,105,110, 97, 99,116, +105,118,101, 95, 97,108,112,104, 97, 0,118,101,114,116, 98, 97,115,101, 0,101,100,103,101, 98, 97,115,101, 0, 97,114,101, 97, + 98, 97,115,101, 0, 42,110,101,119,115, 99,101,110,101, 0,114,101,100,114, 97,119,115, 95,102,108, 97,103, 0,102,117,108,108, + 0,116,101,109,112, 0,119,105,110,105,100, 0,100,111, 95,100,114, 97,119, 0,100,111, 95,114,101,102,114,101,115,104, 0,100, +111, 95,100,114, 97,119, 95,103,101,115,116,117,114,101, 0,100,111, 95,100,114, 97,119, 95,112, 97,105,110,116, 99,117,114,115, +111,114, 0,100,111, 95,100,114, 97,119, 95,100,114, 97,103, 0,115,119, 97,112, 0,109, 97,105,110,119,105,110, 0,115,117, 98, +119,105,110, 97, 99,116,105,118,101, 0, 42, 97,110,105,109,116,105,109,101,114, 0, 42, 99,111,110,116,101,120,116, 0,104, 97, +110,100,108,101,114, 91, 56, 93, 0, 42,110,101,119,118, 0,118,101, 99, 0, 42,118, 49, 0, 42,118, 50, 0, 42,116,121,112,101, + 0,112, 97,110,101,108,110, 97,109,101, 91, 54, 52, 93, 0,116, 97, 98,110, 97,109,101, 91, 54, 52, 93, 0,100,114, 97,119,110, + 97,109,101, 91, 54, 52, 93, 0,111,102,115,120, 0,111,102,115,121, 0,115,105,122,101,120, 0,115,105,122,101,121, 0,108, 97, + 98,101,108,111,102,115, 0,114,117,110,116,105,109,101, 95,102,108, 97,103, 0, 99,111,110,116,114,111,108, 0,115,110, 97,112, + 0,115,111,114,116,111,114,100,101,114, 0, 42,112, 97,110,101,108,116, 97, 98, 0, 42, 97, 99,116,105,118,101,100, 97,116, 97, + 0,108,105,115,116, 95,115, 99,114,111,108,108, 0,108,105,115,116, 95,115,105,122,101, 0,108,105,115,116, 95,108, 97,115,116, + 95,108,101,110, 0,108,105,115,116, 95,103,114,105,112, 95,115,105,122,101, 0,108,105,115,116, 95,115,101, 97,114, 99,104, 91, + 54, 52, 93, 0, 42,118, 51, 0, 42,118, 52, 0, 42,102,117,108,108, 0, 98,117,116,115,112, 97, 99,101,116,121,112,101, 0,104, +101, 97,100,101,114,116,121,112,101, 0,115,112, 97, 99,101,100, 97,116, 97, 0,104, 97,110,100,108,101,114,115, 0, 97, 99,116, +105,111,110,122,111,110,101,115, 0,119,105,110,114, 99,116, 0,100,114, 97,119,114, 99,116, 0,115,119,105,110,105,100, 0,114, +101,103,105,111,110,116,121,112,101, 0, 97,108,105,103,110,109,101,110,116, 0,100,111, 95,100,114, 97,119, 95,111,118,101,114, +108, 97,121, 0,117,105, 98,108,111, 99,107,115, 0,112, 97,110,101,108,115, 0, 42,104,101, 97,100,101,114,115,116,114, 0, 42, +114,101,103,105,111,110,100, 97,116, 97, 0,115,117, 98,118,115,116,114, 91, 52, 93, 0,115,117, 98,118,101,114,115,105,111,110, + 0,112, 97,100,115, 0,109,105,110,118,101,114,115,105,111,110, 0,109,105,110,115,117, 98,118,101,114,115,105,111,110, 0,119, +105,110,112,111,115, 0, 42, 99,117,114,115, 99,114,101,101,110, 0, 42, 99,117,114,115, 99,101,110,101, 0,102,105,108,101,102, +108, 97,103,115, 0,103,108,111, 98, 97,108,102, 0,114,101,118,105,115,105,111,110, 0,110, 97,109,101, 91, 50, 53, 54, 93, 0, +111,114,105,103, 95,119,105,100,116,104, 0,111,114,105,103, 95,104,101,105,103,104,116, 0, 98,111,116,116,111,109, 0,114,105, +103,104,116, 0,120,111,102,115, 0,121,111,102,115, 0,108,105,102,116, 91, 51, 93, 0,103, 97,109,109, 97, 91, 51, 93, 0,103, + 97,105,110, 91, 51, 93, 0,100,105,114, 91, 55, 54, 56, 93, 0,116, 99, 0, 98,117,105,108,100, 95,115,105,122,101, 95,102,108, + 97,103,115, 0, 98,117,105,108,100, 95,116, 99, 95,102,108, 97,103,115, 0,100,111,110,101, 0,115,116, 97,114,116,115,116,105, +108,108, 0,101,110,100,115,116,105,108,108, 0, 42,115,116,114,105,112,100, 97,116, 97, 0, 42, 99,114,111,112, 0, 42,116,114, + 97,110,115,102,111,114,109, 0, 42, 99,111,108,111,114, 95, 98, 97,108, 97,110, 99,101, 0, 42,105,110,115,116, 97,110, 99,101, + 95,112,114,105,118, 97,116,101, 95,100, 97,116, 97, 0, 42, 42, 99,117,114,114,101,110,116, 95,112,114,105,118, 97,116,101, 95, +100, 97,116, 97, 0, 42,116,109,112, 0,115,116, 97,114,116,111,102,115, 0,101,110,100,111,102,115, 0,109, 97, 99,104,105,110, +101, 0,115,116, 97,114,116,100,105,115,112, 0,101,110,100,100,105,115,112, 0,115, 97,116, 0,109,117,108, 0,104, 97,110,100, +115,105,122,101, 0, 97,110,105,109, 95,112,114,101,115,101,101,107, 0,115,116,114,101, 97,109,105,110,100,101,120, 0,109,117, +108,116,105, 99, 97,109, 95,115,111,117,114, 99,101, 0, 99,108,105,112, 95,102,108, 97,103, 0, 42,115,116,114,105,112, 0, 42, +115, 99,101,110,101, 95, 99, 97,109,101,114, 97, 0,101,102,102,101, 99,116, 95,102, 97,100,101,114, 0,115,112,101,101,100, 95, +102, 97,100,101,114, 0, 42,115,101,113, 49, 0, 42,115,101,113, 50, 0, 42,115,101,113, 51, 0,115,101,113, 98, 97,115,101, 0, + 42,115,111,117,110,100, 0, 42,115, 99,101,110,101, 95,115,111,117,110,100, 0,112,105,116, 99,104, 0,112, 97,110, 0,115,116, +114,111, 98,101, 0, 42,101,102,102,101, 99,116,100, 97,116, 97, 0, 97,110,105,109, 95,115,116, 97,114,116,111,102,115, 0, 97, +110,105,109, 95,101,110,100,111,102,115, 0, 98,108,101,110,100, 95,109,111,100,101, 0, 98,108,101,110,100, 95,111,112, 97, 99, +105,116,121, 0, 42,111,108,100, 98, 97,115,101,112, 0, 42,112, 97,114,115,101,113, 0, 42,115,101,113, 98, 97,115,101,112, 0, +109,101,116, 97,115,116, 97, 99,107, 0, 42, 97, 99,116, 95,115,101,113, 0, 97, 99,116, 95,105,109, 97,103,101,100,105,114, 91, + 49, 48, 50, 52, 93, 0, 97, 99,116, 95,115,111,117,110,100,100,105,114, 91, 49, 48, 50, 52, 93, 0,111,118,101,114, 95,111,102, +115, 0,111,118,101,114, 95, 99,102,114, 97, 0,111,118,101,114, 95,102,108, 97,103, 0,111,118,101,114, 95, 98,111,114,100,101, +114, 0,101,100,103,101, 87,105,100,116,104, 0,102,111,114,119, 97,114,100, 0,119,105,112,101,116,121,112,101, 0,102, 77,105, +110,105, 0,102, 67,108, 97,109,112, 0,102, 66,111,111,115,116, 0,100, 68,105,115,116, 0,100, 81,117, 97,108,105,116,121, 0, + 98, 78,111, 67,111,109,112, 0, 83, 99, 97,108,101,120, 73,110,105, 0, 83, 99, 97,108,101,121, 73,110,105, 0,120, 73,110,105, + 0,121, 73,110,105, 0,114,111,116, 73,110,105, 0,105,110,116,101,114,112,111,108, 97,116,105,111,110, 0,117,110,105,102,111, +114,109, 95,115, 99, 97,108,101, 0, 42,102,114, 97,109,101, 77, 97,112, 0,103,108,111, 98, 97,108, 83,112,101,101,100, 0,108, + 97,115,116, 86, 97,108,105,100, 70,114, 97,109,101, 0, 98,117,116,116,121,112,101, 0,117,115,101,114,106,105,116, 0,115,116, + 97, 0,116,111,116,112, 97,114,116, 0,110,111,114,109,102, 97, 99, 0,111, 98,102, 97, 99, 0,114, 97,110,100,102, 97, 99, 0, +116,101,120,102, 97, 99, 0,114, 97,110,100,108,105,102,101, 0,102,111,114, 99,101, 91, 51, 93, 0,118,101, 99,116,115,105,122, +101, 0,109, 97,120,108,101,110, 0,100,101,102,118,101, 99, 91, 51, 93, 0,109,117,108,116, 91, 52, 93, 0,108,105,102,101, 91, + 52, 93, 0, 99,104,105,108,100, 91, 52, 93, 0,109, 97,116, 91, 52, 93, 0,116,101,120,109, 97,112, 0, 99,117,114,109,117,108, +116, 0,115,116, 97,116,105, 99,115,116,101,112, 0,111,109, 97,116, 0,116,105,109,101,116,101,120, 0,115,112,101,101,100,116, +101,120, 0,102,108, 97,103, 50,110,101,103, 0,118,101,114,116,103,114,111,117,112, 95,118, 0,118,103,114,111,117,112,110, 97, +109,101, 91, 54, 52, 93, 0,118,103,114,111,117,112,110, 97,109,101, 95,118, 91, 54, 52, 93, 0, 42,107,101,121,115, 0,109,105, +110,102, 97, 99, 0,110,114, 0,117,115,101,100, 0,117,115,101,100,101,108,101,109, 0, 42,112,111,105,110, 0,114,101,115,101, +116,100,105,115,116, 0,108, 97,115,116,118, 97,108, 0, 42,109, 97, 0,107,101,121, 0,113,117, 97,108, 0,113,117, 97,108, 50, + 0,116, 97,114,103,101,116, 78, 97,109,101, 91, 54, 52, 93, 0,116,111,103,103,108,101, 78, 97,109,101, 91, 54, 52, 93, 0,118, + 97,108,117,101, 91, 54, 52, 93, 0,109, 97,120,118, 97,108,117,101, 91, 54, 52, 93, 0,100,101,108, 97,121, 0,100,117,114, 97, +116,105,111,110, 0,109, 97,116,101,114,105, 97,108, 78, 97,109,101, 91, 54, 52, 93, 0,100, 97,109,112,116,105,109,101,114, 0, +112,114,111,112,110, 97,109,101, 91, 54, 52, 93, 0,109, 97,116,110, 97,109,101, 91, 54, 52, 93, 0, 97,120,105,115,102,108, 97, +103, 0,112,111,115,101, 99,104, 97,110,110,101,108, 91, 54, 52, 93, 0, 99,111,110,115,116,114, 97,105,110,116, 91, 54, 52, 93, + 0, 42,102,114,111,109, 79, 98,106,101, 99,116, 0,115,117, 98,106,101, 99,116, 91, 54, 52, 93, 0, 98,111,100,121, 91, 54, 52, + 93, 0,111,116,121,112,101, 0,112,117,108,115,101, 0,102,114,101,113, 0,116,111,116,108,105,110,107,115, 0, 42, 42,108,105, +110,107,115, 0,116, 97,112, 0,106,111,121,105,110,100,101,120, 0, 97,120,105,115, 95,115,105,110,103,108,101, 0, 97,120,105, +115,102, 0, 98,117,116,116,111,110, 0,104, 97,116, 0,104, 97,116,102, 0,112,114,101, 99,105,115,105,111,110, 0,115,116,114, + 91, 49, 50, 56, 93, 0, 42,109,121,110,101,119, 0,105,110,112,117,116,115, 0,116,111,116,115,108,105,110,107,115, 0, 42, 42, +115,108,105,110,107,115, 0,118, 97,108,111, 0,115,116, 97,116,101, 95,109, 97,115,107, 0, 42, 97, 99,116, 0,102,114, 97,109, +101, 80,114,111,112, 91, 54, 52, 93, 0, 98,108,101,110,100,105,110, 0,112,114,105,111,114,105,116,121, 0,101,110,100, 95,114, +101,115,101,116, 0,115,116,114,105,100,101, 97,120,105,115, 0,115,116,114,105,100,101,108,101,110,103,116,104, 0,108, 97,121, +101,114, 95,119,101,105,103,104,116, 0,109,105,110, 95,103, 97,105,110, 0,109, 97,120, 95,103, 97,105,110, 0,114,101,102,101, +114,101,110, 99,101, 95,100,105,115,116, 97,110, 99,101, 0,109, 97,120, 95,100,105,115,116, 97,110, 99,101, 0,114,111,108,108, +111,102,102, 95,102, 97, 99,116,111,114, 0, 99,111,110,101, 95,105,110,110,101,114, 95, 97,110,103,108,101, 0, 99,111,110,101, + 95,111,117,116,101,114, 95, 97,110,103,108,101, 0, 99,111,110,101, 95,111,117,116,101,114, 95,103, 97,105,110, 0,115,110,100, +110,114, 0,115,111,117,110,100, 51, 68, 0,112, 97,100, 54, 91, 49, 93, 0, 42,109,101, 0,108,105,110, 86,101,108,111, 99,105, +116,121, 91, 51, 93, 0, 97,110,103, 86,101,108,111, 99,105,116,121, 91, 51, 93, 0,108,111, 99, 97,108,102,108, 97,103, 0,100, +121,110, 95,111,112,101,114, 97,116,105,111,110, 0,102,111,114, 99,101,108,111, 99, 91, 51, 93, 0,102,111,114, 99,101,114,111, +116, 91, 51, 93, 0,112, 97,100, 49, 91, 51, 93, 0,108,105,110,101, 97,114,118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97, +110,103,117,108, 97,114,118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 42,114,101,102,101,114,101,110, 99,101, 0,109,105,110, + 0,109, 97,120, 0,114,111,116,100, 97,109,112, 0,109,105,110,108,111, 99, 91, 51, 93, 0,109, 97,120,108,111, 99, 91, 51, 93, + 0,109,105,110,114,111,116, 91, 51, 93, 0,109, 97,120,114,111,116, 91, 51, 93, 0,109, 97,116,112,114,111,112, 91, 54, 52, 93, + 0, 98,117,116,115,116, 97, 0, 98,117,116,101,110,100, 0,100,105,115,116,114,105, 98,117,116,105,111,110, 0,105,110,116, 95, + 97,114,103, 95, 49, 0,105,110,116, 95, 97,114,103, 95, 50, 0,102,108,111, 97,116, 95, 97,114,103, 95, 49, 0,102,108,111, 97, +116, 95, 97,114,103, 95, 50, 0,116,111, 80,114,111,112, 78, 97,109,101, 91, 54, 52, 93, 0, 42,116,111, 79, 98,106,101, 99,116, + 0, 98,111,100,121, 84,121,112,101, 0,102,105,108,101,110, 97,109,101, 91, 54, 52, 93, 0,108,111, 97,100, 97,110,105,110, 97, +109,101, 91, 54, 52, 93, 0,105,110,116, 95, 97,114,103, 0,102,108,111, 97,116, 95, 97,114,103, 0,105,110,102,108,117,101,110, + 99,101, 0, 42,115,117, 98,116, 97,114,103,101,116, 0,102, 97, 99,105,110,103, 97,120,105,115, 0,118,101,108,111, 99,105,116, +121, 0, 97, 99, 99,101,108,101,114, 97,116,105,111,110, 0,116,117,114,110,115,112,101,101,100, 0,117,112,100, 97,116,101, 84, +105,109,101, 0, 42,110, 97,118,109,101,115,104, 0,103,111, 0, 42,110,101,119,112, 97, 99,107,101,100,102,105,108,101, 0, 97, +116,116,101,110,117, 97,116,105,111,110, 0,100,105,115,116, 97,110, 99,101, 0, 42, 99, 97, 99,104,101, 0, 42,119, 97,118,101, +102,111,114,109, 0, 42,112,108, 97,121, 98, 97, 99,107, 95,104, 97,110,100,108,101, 0, 42,108, 97,109,112,114,101,110, 0,103, +111, 98,106,101, 99,116, 0,100,117,112,108,105, 95,111,102,115, 91, 51, 93, 0, 42,112,114,111,112, 0, 99,104,105,108,100, 98, + 97,115,101, 0,114,111,108,108, 0,104,101, 97,100, 91, 51, 93, 0,116, 97,105,108, 91, 51, 93, 0, 98,111,110,101, 95,109, 97, +116, 91, 51, 93, 91, 51, 93, 0, 97,114,109, 95,104,101, 97,100, 91, 51, 93, 0, 97,114,109, 95,116, 97,105,108, 91, 51, 93, 0, + 97,114,109, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 97,114,109, 95,114,111,108,108, 0,120,119,105,100,116,104, 0,122,119, +105,100,116,104, 0,101, 97,115,101, 49, 0,101, 97,115,101, 50, 0,114, 97,100, 95,104,101, 97,100, 0,114, 97,100, 95,116, 97, +105,108, 0,112, 97,100, 91, 49, 93, 0, 98,111,110,101, 98, 97,115,101, 0, 99,104, 97,105,110, 98, 97,115,101, 0, 42,101,100, + 98,111, 0, 42, 97, 99,116, 95, 98,111,110,101, 0, 42, 97, 99,116, 95,101,100, 98,111,110,101, 0, 42,115,107,101,116, 99,104, + 0,103,101,118,101,114,116,100,101,102,111,114,109,101,114, 0,108, 97,121,101,114, 95,117,115,101,100, 0,108, 97,121,101,114, + 95,112,114,111,116,101, 99,116,101,100, 0,103,104,111,115,116,101,112, 0,103,104,111,115,116,115,105,122,101, 0,103,104,111, +115,116,116,121,112,101, 0,112, 97,116,104,115,105,122,101, 0,103,104,111,115,116,115,102, 0,103,104,111,115,116,101,102, 0, +112, 97,116,104,115,102, 0,112, 97,116,104,101,102, 0,112, 97,116,104, 98, 99, 0,112, 97,116,104, 97, 99, 0, 42,112,111,105, +110,116,115, 0,115,116, 97,114,116, 95,102,114, 97,109,101, 0,101,110,100, 95,102,114, 97,109,101, 0,103,104,111,115,116, 95, +115,102, 0,103,104,111,115,116, 95,101,102, 0,103,104,111,115,116, 95, 98, 99, 0,103,104,111,115,116, 95, 97, 99, 0,103,104, +111,115,116, 95,116,121,112,101, 0,103,104,111,115,116, 95,115,116,101,112, 0,103,104,111,115,116, 95,102,108, 97,103, 0,112, + 97,116,104, 95,116,121,112,101, 0,112, 97,116,104, 95,115,116,101,112, 0,112, 97,116,104, 95,118,105,101,119,102,108, 97,103, + 0,112, 97,116,104, 95, 98, 97,107,101,102,108, 97,103, 0,112, 97,116,104, 95,115,102, 0,112, 97,116,104, 95,101,102, 0,112, + 97,116,104, 95, 98, 99, 0,112, 97,116,104, 95, 97, 99, 0,105,107,102,108, 97,103, 0, 97,103,114,112, 95,105,110,100,101,120, + 0, 99,111,110,115,116,102,108, 97,103, 0,115,101,108,101, 99,116,102,108, 97,103, 0,112, 97,100, 48, 91, 54, 93, 0, 42, 98, +111,110,101, 0, 42, 99,104,105,108,100, 0,105,107,116,114,101,101, 0,115,105,107,116,114,101,101, 0, 42, 99,117,115,116,111, +109, 0, 42, 99,117,115,116,111,109, 95,116,120, 0,101,117,108, 91, 51, 93, 0, 99,104, 97,110, 95,109, 97,116, 91, 52, 93, 91, + 52, 93, 0,112,111,115,101, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,104,101, 97,100, 91, 51, 93, 0,112, +111,115,101, 95,116, 97,105,108, 91, 51, 93, 0,108,105,109,105,116,109,105,110, 91, 51, 93, 0,108,105,109,105,116,109, 97,120, + 91, 51, 93, 0,115,116,105,102,102,110,101,115,115, 91, 51, 93, 0,105,107,115,116,114,101,116, 99,104, 0,105,107,114,111,116, +119,101,105,103,104,116, 0,105,107,108,105,110,119,101,105,103,104,116, 0, 42,116,101,109,112, 0, 99,104, 97,110, 98, 97,115, +101, 0, 42, 99,104, 97,110,104, 97,115,104, 0,112,114,111,120,121, 95,108, 97,121,101,114, 0,115,116,114,105,100,101, 95,111, +102,102,115,101,116, 91, 51, 93, 0, 99,121, 99,108,105, 99, 95,111,102,102,115,101,116, 91, 51, 93, 0, 97,103,114,111,117,112, +115, 0, 97, 99,116,105,118,101, 95,103,114,111,117,112, 0,105,107,115,111,108,118,101,114, 0, 42,105,107,100, 97,116, 97, 0, + 42,105,107,112, 97,114, 97,109, 0,112,114,111,120,121, 95, 97, 99,116, 95, 98,111,110,101, 91, 54, 52, 93, 0,110,117,109,105, +116,101,114, 0,110,117,109,115,116,101,112, 0,109,105,110,115,116,101,112, 0,109, 97,120,115,116,101,112, 0,115,111,108,118, +101,114, 0,102,101,101,100, 98, 97, 99,107, 0,109, 97,120,118,101,108, 0,100, 97,109,112,109, 97,120, 0,100, 97,109,112,101, +112,115, 0, 99,104, 97,110,110,101,108,115, 0, 99,117,115,116,111,109, 67,111,108, 0, 99,115, 0, 99,117,114,118,101,115, 0, +103,114,111,117,112,115, 0, 97, 99,116,105,118,101, 95,109, 97,114,107,101,114, 0,105,100,114,111,111,116, 0, 42,115,111,117, +114, 99,101, 0, 42,102,105,108,116,101,114, 95,103,114,112, 0,115,101, 97,114, 99,104,115,116,114, 91, 54, 52, 93, 0,102,105, +108,116,101,114,102,108, 97,103, 0,114,101,110, 97,109,101, 73,110,100,101,120, 0, 97,100,115, 0,116,105,109,101,115,108,105, +100,101, 0, 42,103,114,112, 0,110, 97,109,101, 91, 51, 48, 93, 0,111,119,110,115,112, 97, 99,101, 0,116, 97,114,115,112, 97, + 99,101, 0,101,110,102,111,114, 99,101, 0,104,101, 97,100,116, 97,105,108, 0,108,105,110, 95,101,114,114,111,114, 0,114,111, +116, 95,101,114,114,111,114, 0, 42,116, 97,114, 0,109, 97,116,114,105,120, 91, 52, 93, 91, 52, 93, 0,115,112, 97, 99,101, 0, +114,111,116, 79,114,100,101,114, 0,116, 97,114,110,117,109, 0,116, 97,114,103,101,116,115, 0,105,116,101,114, 97,116,105,111, +110,115, 0,114,111,111,116, 98,111,110,101, 0,109, 97,120, 95,114,111,111,116, 98,111,110,101, 0, 42,112,111,108,101,116, 97, +114, 0,112,111,108,101,115,117, 98,116, 97,114,103,101,116, 91, 54, 52, 93, 0,112,111,108,101, 97,110,103,108,101, 0,111,114, +105,101,110,116,119,101,105,103,104,116, 0,103,114, 97, 98,116, 97,114,103,101,116, 91, 51, 93, 0,110,117,109,112,111,105,110, +116,115, 0, 99,104, 97,105,110,108,101,110, 0,120,122, 83, 99, 97,108,101, 77,111,100,101, 0,114,101,115,101,114,118,101,100, + 49, 0,114,101,115,101,114,118,101,100, 50, 0,109,105,110,109, 97,120,102,108, 97,103, 0,115,116,117, 99,107, 0, 99, 97, 99, +104,101, 91, 51, 93, 0,108,111, 99,107,102,108, 97,103, 0,102,111,108,108,111,119,102,108, 97,103, 0,118,111,108,109,111,100, +101, 0,112,108, 97,110,101, 0,111,114,103,108,101,110,103,116,104, 0, 98,117,108,103,101, 0,112,105,118, 88, 0,112,105,118, + 89, 0,112,105,118, 90, 0, 97,120, 88, 0, 97,120, 89, 0, 97,120, 90, 0,109,105,110, 76,105,109,105,116, 91, 54, 93, 0,109, + 97,120, 76,105,109,105,116, 91, 54, 93, 0,101,120,116,114, 97, 70,122, 0,105,110,118,109, 97,116, 91, 52, 93, 91, 52, 93, 0, +102,114,111,109, 0,116,111, 0,109, 97,112, 91, 51, 93, 0,101,120,112,111, 0,102,114,111,109, 95,109,105,110, 91, 51, 93, 0, +102,114,111,109, 95,109, 97,120, 91, 51, 93, 0,116,111, 95,109,105,110, 91, 51, 93, 0,116,111, 95,109, 97,120, 91, 51, 93, 0, +114,111,116, 65,120,105,115, 0,122,109,105,110, 0,122,109, 97,120, 0,112, 97,100, 91, 57, 93, 0,116,114, 97, 99,107, 91, 54, + 52, 93, 0,111, 98,106,101, 99,116, 91, 54, 52, 93, 0, 42,100,101,112,116,104, 95,111, 98, 0, 99,104, 97,110,110,101,108, 91, + 51, 50, 93, 0,110,111, 95,114,111,116, 95, 97,120,105,115, 0,115,116,114,105,100,101, 95, 97,120,105,115, 0, 99,117,114,109, +111,100, 0, 97, 99,116,115,116, 97,114,116, 0, 97, 99,116,101,110,100, 0, 97, 99,116,111,102,102,115, 0,115,116,114,105,100, +101,108,101,110, 0, 98,108,101,110,100,111,117,116, 0,115,116,114,105,100,101, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0, +111,102,102,115, 95, 98,111,110,101, 91, 51, 50, 93, 0,104, 97,115,105,110,112,117,116, 0,104, 97,115,111,117,116,112,117,116, + 0,100, 97,116, 97,116,121,112,101, 0,115,111, 99,107,101,116,116,121,112,101, 0,105,115, 95, 99,111,112,121, 0,101,120,116, +101,114,110, 97,108, 0, 42,110,101,119, 95,115,111, 99,107, 0, 42,115,116,111,114, 97,103,101, 0,108,105,109,105,116, 0,115, +116,114,117, 99,116, 95,116,121,112,101, 0,108,111, 99,120, 0,108,111, 99,121, 0, 42,100,101,102, 97,117,108,116, 95,118, 97, +108,117,101, 0,115,116, 97, 99,107, 95,105,110,100,101,120, 0,115,116, 97, 99,107, 95,116,121,112,101, 0,111,119,110, 95,105, +110,100,101,120, 0,116,111, 95,105,110,100,101,120, 0, 42,103,114,111,117,112,115,111, 99,107, 0, 42,108,105,110,107, 0,110, +115, 0, 42,114,101, 99,116, 0,120,115,105,122,101, 0,121,115,105,122,101, 0, 42,110,101,119, 95,110,111,100,101, 0,108, 97, +115,116,121, 0,111,117,116,112,117,116,115, 0,109,105,110,105,119,105,100,116,104, 0,117,112,100, 97,116,101, 0,108, 97, 98, +101,108, 91, 54, 52, 93, 0, 99,117,115,116,111,109, 49, 0, 99,117,115,116,111,109, 50, 0, 99,117,115,116,111,109, 51, 0, 99, +117,115,116,111,109, 52, 0,110,101,101,100, 95,101,120,101, 99, 0,101,120,101, 99, 0, 42,116,104,114,101, 97,100,100, 97,116, + 97, 0,116,111,116,114, 0, 98,117,116,114, 0,112,114,118,114, 0, 42, 98,108,111, 99,107, 0, 42,116,121,112,101,105,110,102, +111, 0, 42,102,114,111,109,110,111,100,101, 0, 42,116,111,110,111,100,101, 0, 42,102,114,111,109,115,111, 99,107, 0, 42,116, +111,115,111, 99,107, 0,110,111,100,101,115, 0,108,105,110,107,115, 0,105,110,105,116, 0, 99,117,114, 95,105,110,100,101,120, + 0,110,111,100,101,116,121,112,101, 0, 42,101,120,101, 99,100, 97,116, 97, 0, 40, 42,112,114,111,103,114,101,115,115, 41, 40, + 41, 0, 40, 42,115,116, 97,116,115, 95,100,114, 97,119, 41, 40, 41, 0, 40, 42,116,101,115,116, 95, 98,114,101, 97,107, 41, 40, + 41, 0, 42,116, 98,104, 0, 42,112,114,104, 0, 42,115,100,104, 0,118, 97,108,117,101, 91, 51, 93, 0,118, 97,108,117,101, 91, + 52, 93, 0, 99,121, 99,108,105, 99, 0,109,111,118,105,101, 0,109, 97,120,115,112,101,101,100, 0,109,105,110,115,112,101,101, 100, 0, 99,117,114,118,101,100, 0,112,101,114, 99,101,110,116,120, 0,112,101,114, 99,101,110,116,121, 0, 98,111,107,101,104, 0,103, 97,109,109, 97, 0,105,109, 97,103,101, 95,105,110, 95,119,105,100,116,104, 0,105,109, 97,103,101, 95,105,110, 95,104, 101,105,103,104,116, 0, 99,101,110,116,101,114, 95,120, 0, 99,101,110,116,101,114, 95,121, 0,115,112,105,110, 0,119,114, 97, @@ -10624,1113 +10644,1114 @@ char datatoc_startup_blend[] = { 115,116, 97,116,101, 0, 42, 99,117,114,115,119,105,110, 0, 42,116,119,101, 97,107, 0,100,114, 97,119,109,101,116,104,111,100, 0,100,114, 97,119,102, 97,105,108, 0, 42,100,114, 97,119,100, 97,116, 97, 0,109,111,100, 97,108,104, 97,110,100,108,101,114, 115, 0,115,117, 98,119,105,110,100,111,119,115, 0,103,101,115,116,117,114,101, 0,105,100,110, 97,109,101, 91, 54, 52, 93, 0, -112,114,111,112,118, 97,108,117,101, 0,115,104,105,102,116, 0, 99,116,114,108, 0, 97,108,116, 0,111,115,107,101,121, 0,107, -101,121,109,111,100,105,102,105,101,114, 0,109, 97,112,116,121,112,101, 0, 42,112,116,114, 0, 42,114,101,109,111,118,101, 95, -105,116,101,109, 0, 42, 97,100,100, 95,105,116,101,109, 0,105,116,101,109,115, 0,100,105,102,102, 95,105,116,101,109,115, 0, -115,112, 97, 99,101,105,100, 0,114,101,103,105,111,110,105,100, 0,107,109,105, 95,105,100, 0, 40, 42,112,111,108,108, 41, 40, - 41, 0, 42,109,111,100, 97,108, 95,105,116,101,109,115, 0, 98, 97,115,101,110, 97,109,101, 91, 54, 52, 93, 0, 97, 99,116,107, -101,121,109, 97,112, 0, 42, 99,117,115,116,111,109,100, 97,116, 97, 0, 42,112,121, 95,105,110,115,116, 97,110, 99,101, 0, 42, -114,101,112,111,114,116,115, 0,109, 97, 99,114,111, 0, 42,111,112,109, 0, 42,101,100, 97,116, 97, 0, 42, 99,111,101,102,102, -105, 99,105,101,110,116,115, 0, 97,114,114, 97,121,115,105,122,101, 0,112,111,108,121, 95,111,114,100,101,114, 0, 97,109,112, -108,105,116,117,100,101, 0,112,104, 97,115,101, 95,109,117,108,116,105,112,108,105,101,114, 0,112,104, 97,115,101, 95,111,102, -102,115,101,116, 0,118, 97,108,117,101, 95,111,102,102,115,101,116, 0,109,105,100,118, 97,108, 0, 98,101,102,111,114,101, 95, -109,111,100,101, 0, 97,102,116,101,114, 95,109,111,100,101, 0, 98,101,102,111,114,101, 95, 99,121, 99,108,101,115, 0, 97,102, -116,101,114, 95, 99,121, 99,108,101,115, 0,114,101, 99,116, 0,112,104, 97,115,101, 0,109,111,100,105,102,105, 99, 97,116,105, -111,110, 0,115,116,101,112, 95,115,105,122,101, 0, 42,114,110, 97, 95,112, 97,116,104, 0,112, 99,104, 97,110, 95,110, 97,109, -101, 91, 51, 50, 93, 0,116,114, 97,110,115, 67,104, 97,110, 0,105,100,116,121,112,101, 0,116, 97,114,103,101,116,115, 91, 56, - 93, 0,110,117,109, 95,116, 97,114,103,101,116,115, 0,118, 97,114,105, 97, 98,108,101,115, 0,101,120,112,114,101,115,115,105, -111,110, 91, 50, 53, 54, 93, 0, 42,101,120,112,114, 95, 99,111,109,112, 0,118,101, 99, 91, 50, 93, 0, 42,102,112,116, 0, 97, -114,114, 97,121, 95,105,110,100,101,120, 0, 99,111,108,111,114, 95,109,111,100,101, 0, 99,111,108,111,114, 91, 51, 93, 0,102, -114,111,109, 91, 49, 50, 56, 93, 0,116,111, 91, 49, 50, 56, 93, 0,109, 97,112,112,105,110,103,115, 0,115,116,114,105,112,115, - 0, 42,114,101,109, 97,112, 0,102, 99,117,114,118,101,115, 0,115,116,114,105,112, 95,116,105,109,101, 0, 98,108,101,110,100, -109,111,100,101, 0,101,120,116,101,110,100,109,111,100,101, 0, 42,115,112,101, 97,107,101,114, 95,104, 97,110,100,108,101, 0, -103,114,111,117,112, 91, 54, 52, 93, 0,103,114,111,117,112,109,111,100,101, 0,107,101,121,105,110,103,102,108, 97,103, 0,112, - 97,116,104,115, 0,100,101,115, 99,114,105,112,116,105,111,110, 91, 50, 52, 48, 93, 0,116,121,112,101,105,110,102,111, 91, 54, - 52, 93, 0, 97, 99,116,105,118,101, 95,112, 97,116,104, 0, 42,116,109,112, 97, 99,116, 0,110,108, 97, 95,116,114, 97, 99,107, -115, 0, 42, 97, 99,116,115,116,114,105,112, 0,100,114,105,118,101,114,115, 0,111,118,101,114,114,105,100,101,115, 0, 97, 99, -116, 95, 98,108,101,110,100,109,111,100,101, 0, 97, 99,116, 95,101,120,116,101,110,100,109,111,100,101, 0, 97, 99,116, 95,105, -110,102,108,117,101,110, 99,101, 0,114,117,108,101, 0,111,112,116,105,111,110,115, 0,102,101, 97,114, 95,102, 97, 99,116,111, -114, 0,115,105,103,110, 97,108, 95,105,100, 0,108,111,111,107, 95, 97,104,101, 97,100, 0,111,108,111, 99, 91, 51, 93, 0,113, -117,101,117,101, 95,115,105,122,101, 0,119, 97,110,100,101,114, 0,102,108,101,101, 95,100,105,115,116, 97,110, 99,101, 0,104, -101, 97,108,116,104, 0,115,116, 97,116,101, 95,105,100, 0,114,117,108,101,115, 0, 99,111,110,100,105,116,105,111,110,115, 0, - 97, 99,116,105,111,110,115, 0,114,117,108,101,115,101,116, 95,116,121,112,101, 0,114,117,108,101, 95,102,117,122,122,105,110, -101,115,115, 0,108, 97,115,116, 95,115,116, 97,116,101, 95,105,100, 0,108, 97,110,100,105,110,103, 95,115,109,111,111,116,104, -110,101,115,115, 0, 98, 97,110,107,105,110,103, 0, 97,103,103,114,101,115,115,105,111,110, 0, 97,105,114, 95,109,105,110, 95, -115,112,101,101,100, 0, 97,105,114, 95,109, 97,120, 95,115,112,101,101,100, 0, 97,105,114, 95,109, 97,120, 95, 97, 99, 99, 0, - 97,105,114, 95,109, 97,120, 95, 97,118,101, 0, 97,105,114, 95,112,101,114,115,111,110, 97,108, 95,115,112, 97, 99,101, 0,108, - 97,110,100, 95,106,117,109,112, 95,115,112,101,101,100, 0,108, 97,110,100, 95,109, 97,120, 95,115,112,101,101,100, 0,108, 97, -110,100, 95,109, 97,120, 95, 97, 99, 99, 0,108, 97,110,100, 95,109, 97,120, 95, 97,118,101, 0,108, 97,110,100, 95,112,101,114, -115,111,110, 97,108, 95,115,112, 97, 99,101, 0,108, 97,110,100, 95,115,116,105, 99,107, 95,102,111,114, 99,101, 0,115,116, 97, -116,101,115, 0, 42,115,109,100, 0, 42,102,108,117,105,100, 95,103,114,111,117,112, 0, 42, 99,111,108,108, 95,103,114,111,117, -112, 0, 42,119,116, 0, 42,116,101,120, 95,119,116, 0, 42,116,101,120, 95,115,104, 97,100,111,119, 0, 42,115,104, 97,100,111, -119, 0,112, 48, 91, 51, 93, 0,112, 49, 91, 51, 93, 0,100,120, 0,111,109,101,103, 97, 0,116,101,109,112, 65,109, 98, 0, 98, -101,116, 97, 0,114,101,115, 91, 51, 93, 0, 97,109,112,108,105,102,121, 0,109, 97,120,114,101,115, 0,118,105,101,119,115,101, -116,116,105,110,103,115, 0,110,111,105,115,101, 0,100,105,115,115, 95,112,101,114, 99,101,110,116, 0,100,105,115,115, 95,115, -112,101,101,100, 0,114,101,115, 95,119,116, 91, 51, 93, 0,100,120, 95,119,116, 0,118, 51,100,110,117,109, 0, 99, 97, 99,104, -101, 95, 99,111,109,112, 0, 99, 97, 99,104,101, 95,104,105,103,104, 95, 99,111,109,112, 0, 42,112,111,105,110,116, 95, 99, 97, - 99,104,101, 91, 50, 93, 0,112,116, 99, 97, 99,104,101,115, 91, 50, 93, 0, 98,111,114,100,101,114, 95, 99,111,108,108,105,115, -105,111,110,115, 0,116,105,109,101, 95,115, 99, 97,108,101, 0,118,111,114,116,105, 99,105,116,121, 0,118,101,108,111, 99,105, -116,121, 91, 50, 93, 0,118,101,108, 95,109,117,108,116,105, 0,118,103,114,112, 95,104,101, 97,116, 95,115, 99, 97,108,101, 91, - 50, 93, 0,118,103,114,111,117,112, 95,102,108,111,119, 0,118,103,114,111,117,112, 95,100,101,110,115,105,116,121, 0,118,103, -114,111,117,112, 95,104,101, 97,116, 0, 42,112,111,105,110,116,115, 95,111,108,100, 0, 42,118,101,108, 0,109, 97,116, 95,111, -108,100, 91, 52, 93, 91, 52, 93, 0,118,111,108,117,109,101, 95,109, 97,120, 0,118,111,108,117,109,101, 95,109,105,110, 0,100, -105,115,116, 97,110, 99,101, 95,109, 97,120, 0,100,105,115,116, 97,110, 99,101, 95,114,101,102,101,114,101,110, 99,101, 0, 99, -111,110,101, 95, 97,110,103,108,101, 95,111,117,116,101,114, 0, 99,111,110,101, 95, 97,110,103,108,101, 95,105,110,110,101,114, - 0, 99,111,110,101, 95,118,111,108,117,109,101, 95,111,117,116,101,114, 0,114,101,110,100,101,114, 95,102,108, 97,103, 0, 98, -117,105,108,100, 95,115,105,122,101, 95,102,108, 97,103, 0, 98,117,105,108,100, 95,116, 99, 95,102,108, 97,103, 0,108, 97,115, -116,115,105,122,101, 91, 50, 93, 0,116,114, 97, 99,107,105,110,103, 0, 42,116,114, 97, 99,107,105,110,103, 95, 99,111,110,116, -101,120,116, 0,112,114,111,120,121, 0,116,114, 97, 99,107, 95,112,114,101,118,105,101,119, 95,104,101,105,103,104,116, 0, 42, -116,114, 97, 99,107, 95,112,114,101,118,105,101,119, 0,116,114, 97, 99,107, 95,112,111,115, 91, 50, 93, 0,116,114, 97, 99,107, - 95,100,105,115, 97, 98,108,101,100, 0, 42,109, 97,114,107,101,114, 0,115,108,105,100,101, 95,115, 99, 97,108,101, 91, 50, 93, - 0,101,114,114,111,114, 0, 42,105,110,116,114,105,110,115,105, 99,115, 0,115,101,110,115,111,114, 95,119,105,100,116,104, 0, -112,105,120,101,108, 95, 97,115,112,101, 99,116, 0,102,111, 99, 97,108, 0,117,110,105,116,115, 0,112,114,105,110, 99,105,112, - 97,108, 91, 50, 93, 0,107, 49, 0,107, 50, 0,107, 51, 0,112,111,115, 91, 50, 93, 0,112, 97,116, 95,109,105,110, 91, 50, 93, - 0,112, 97,116, 95,109, 97,120, 91, 50, 93, 0,115,101, 97,114, 99,104, 95,109,105,110, 91, 50, 93, 0,115,101, 97,114, 99,104, - 95,109, 97,120, 91, 50, 93, 0,109, 97,114,107,101,114,115,110,114, 0,108, 97,115,116, 95,109, 97,114,107,101,114, 0, 42,109, - 97,114,107,101,114,115, 0, 98,117,110,100,108,101, 95,112,111,115, 91, 51, 93, 0,112, 97,116, 95,102,108, 97,103, 0,115,101, - 97,114, 99,104, 95,102,108, 97,103, 0,102,114, 97,109,101,115, 95,108,105,109,105,116, 0,112, 97,116,116,101,114,110, 95,109, - 97,116, 99,104, 0,116,114, 97, 99,107,101,114, 0,112,121,114, 97,109,105,100, 95,108,101,118,101,108,115, 0,109,105,110,105, -109,117,109, 95, 99,111,114,114,101,108, 97,116,105,111,110, 0,100,101,102, 97,117,108,116, 95,116,114, 97, 99,107,101,114, 0, -100,101,102, 97,117,108,116, 95,112,121,114, 97,109,105,100, 95,108,101,118,101,108,115, 0,100,101,102, 97,117,108,116, 95,109, -105,110,105,109,117,109, 95, 99,111,114,114,101,108, 97,116,105,111,110, 0,100,101,102, 97,117,108,116, 95,112, 97,116,116,101, -114,110, 95,115,105,122,101, 0,100,101,102, 97,117,108,116, 95,115,101, 97,114, 99,104, 95,115,105,122,101, 0,100,101,102, 97, -117,108,116, 95,102,114, 97,109,101,115, 95,108,105,109,105,116, 0,100,101,102, 97,117,108,116, 95,109, 97,114,103,105,110, 0, -100,101,102, 97,117,108,116, 95,112, 97,116,116,101,114,110, 95,109, 97,116, 99,104, 0,100,101,102, 97,117,108,116, 95,102,108, - 97,103, 0,109,111,116,105,111,110, 95,102,108, 97,103, 0,107,101,121,102,114, 97,109,101, 49, 0,107,101,121,102,114, 97,109, -101, 50, 0,114,101,102,105,110,101, 95, 99, 97,109,101,114, 97, 95,105,110,116,114,105,110,115,105, 99,115, 0, 99,108,101, 97, -110, 95,102,114, 97,109,101,115, 0, 99,108,101, 97,110, 95, 97, 99,116,105,111,110, 0, 99,108,101, 97,110, 95,101,114,114,111, -114, 0,111, 98,106,101, 99,116, 95,100,105,115,116, 97,110, 99,101, 0,116,111,116, 95,116,114, 97, 99,107, 0, 97, 99,116, 95, -116,114, 97, 99,107, 0,109, 97,120,115, 99, 97,108,101, 0, 42,114,111,116, 95,116,114, 97, 99,107, 0,108,111, 99,105,110,102, - 0,115, 99, 97,108,101,105,110,102, 0,114,111,116,105,110,102, 0, 42,115, 99, 97,108,101,105, 98,117,102, 0,108, 97,115,116, - 95, 99, 97,109,101,114, 97, 0, 99, 97,109,110,114, 0, 42, 99, 97,109,101,114, 97,115, 0,116,114, 97, 99,107,115, 0,114,101, - 99,111,110,115,116,114,117, 99,116,105,111,110, 0,109,101,115,115, 97,103,101, 91, 50, 53, 54, 93, 0,115,101,116,116,105,110, -103,115, 0, 99, 97,109,101,114, 97, 0,115,116, 97, 98,105,108,105,122, 97,116,105,111,110, 0, 42, 97, 99,116, 95,116,114, 97, - 99,107, 0,111, 98,106,101, 99,116,115, 0,111, 98,106,101, 99,116,110,114, 0,116,111,116, 95,111, 98,106,101, 99,116, 0, 42, - 98,114,117,115,104, 95,103,114,111,117,112, 0, 99,117,114,114,101,110,116, 95,102,114, 97,109,101, 0,100,105,115,112, 95,116, -121,112,101, 0,105,109, 97,103,101, 95,102,105,108,101,102,111,114,109, 97,116, 0,101,102,102,101, 99,116, 95,117,105, 0,112, -114,101,118,105,101,119, 95,105,100, 0,105,110,105,116, 95, 99,111,108,111,114, 95,116,121,112,101, 0,112, 97,100, 95,115, 0, -105,109, 97,103,101, 95,114,101,115,111,108,117,116,105,111,110, 0,115,117, 98,115,116,101,112,115, 0,105,110,105,116, 95, 99, -111,108,111,114, 91, 52, 93, 0, 42,105,110,105,116, 95,116,101,120,116,117,114,101, 0,105,110,105,116, 95,108, 97,121,101,114, -110, 97,109,101, 91, 54, 52, 93, 0,100,114,121, 95,115,112,101,101,100, 0, 99,111,108,111,114, 95,100,114,121, 95,116,104,114, -101,115,104,111,108,100, 0,100,101,112,116,104, 95, 99,108, 97,109,112, 0,100,105,115,112, 95,102, 97, 99,116,111,114, 0,115, -112,114,101, 97,100, 95,115,112,101,101,100, 0, 99,111,108,111,114, 95,115,112,114,101, 97,100, 95,115,112,101,101,100, 0,115, -104,114,105,110,107, 95,115,112,101,101,100, 0,100,114,105,112, 95,118,101,108, 0,100,114,105,112, 95, 97, 99, 99, 0,105,110, -102,108,117,101,110, 99,101, 95,115, 99, 97,108,101, 0,114, 97,100,105,117,115, 95,115, 99, 97,108,101, 0,119, 97,118,101, 95, -100, 97,109,112,105,110,103, 0,119, 97,118,101, 95,115,112,101,101,100, 0,119, 97,118,101, 95,116,105,109,101,115, 99, 97,108, -101, 0,119, 97,118,101, 95,115,112,114,105,110,103, 0,105,109, 97,103,101, 95,111,117,116,112,117,116, 95,112, 97,116,104, 91, - 49, 48, 50, 52, 93, 0,111,117,116,112,117,116, 95,110, 97,109,101, 91, 54, 52, 93, 0,111,117,116,112,117,116, 95,110, 97,109, -101, 50, 91, 54, 52, 93, 0, 42,112,109,100, 0,115,117,114,102, 97, 99,101,115, 0, 97, 99,116,105,118,101, 95,115,117,114, 0, -101,114,114,111,114, 91, 54, 52, 93, 0, 99,111,108,108,105,115,105,111,110, 0,119,101,116,110,101,115,115, 0,112, 97,114,116, -105, 99,108,101, 95,114, 97,100,105,117,115, 0,112, 97,114,116,105, 99,108,101, 95,115,109,111,111,116,104, 0,112, 97,105,110, -116, 95,100,105,115,116, 97,110, 99,101, 0, 42,112, 97,105,110,116, 95,114, 97,109,112, 0, 42,118,101,108, 95,114, 97,109,112, - 0,112,114,111,120,105,109,105,116,121, 95,102, 97,108,108,111,102,102, 0,114, 97,121, 95,100,105,114, 0,119, 97,118,101, 95, -102, 97, 99,116,111,114, 0,119, 97,118,101, 95, 99,108, 97,109,112, 0,109, 97,120, 95,118,101,108,111, 99,105,116,121, 0,115, -109,117,100,103,101, 95,115,116,114,101,110,103,116,104, 0, 0, 84, 89, 80, 69, 16, 2, 0, 0, 99,104, 97,114, 0,117, 99,104, - 97,114, 0,115,104,111,114,116, 0,117,115,104,111,114,116, 0,105,110,116, 0,108,111,110,103, 0,117,108,111,110,103, 0,102, -108,111, 97,116, 0,100,111,117, 98,108,101, 0,105,110,116, 54, 52, 95,116, 0,117,105,110,116, 54, 52, 95,116, 0,118,111,105, -100, 0, 76,105,110,107, 0, 76,105,110,107, 68, 97,116, 97, 0, 76,105,115,116, 66, 97,115,101, 0,118,101, 99, 50,115, 0,118, -101, 99, 50,102, 0,118,101, 99, 51,102, 0,114, 99,116,105, 0,114, 99,116,102, 0, 73, 68, 80,114,111,112,101,114,116,121, 68, - 97,116, 97, 0, 73, 68, 80,114,111,112,101,114,116,121, 0, 73, 68, 0, 76,105, 98,114, 97,114,121, 0, 70,105,108,101, 68, 97, -116, 97, 0, 80,114,101,118,105,101,119, 73,109, 97,103,101, 0, 73,112,111, 68,114,105,118,101,114, 0, 79, 98,106,101, 99,116, - 0, 73,112,111, 67,117,114,118,101, 0, 66, 80,111,105,110,116, 0, 66,101,122, 84,114,105,112,108,101, 0, 73,112,111, 0, 75, -101,121, 66,108,111, 99,107, 0, 75,101,121, 0, 65,110,105,109, 68, 97,116, 97, 0, 84,101,120,116, 76,105,110,101, 0, 84,101, -120,116, 77, 97,114,107,101,114, 0, 84,101,120,116, 0, 80, 97, 99,107,101,100, 70,105,108,101, 0, 67, 97,109,101,114, 97, 0, - 73,109, 97,103,101, 85,115,101,114, 0, 83, 99,101,110,101, 0, 73,109, 97,103,101, 0, 71, 80, 85, 84,101,120,116,117,114,101, - 0, 97,110,105,109, 0, 82,101,110,100,101,114, 82,101,115,117,108,116, 0, 77, 84,101,120, 0, 84,101,120, 0, 80,108,117,103, -105,110, 84,101,120, 0, 67, 66, 68, 97,116, 97, 0, 67,111,108,111,114, 66, 97,110,100, 0, 69,110,118, 77, 97,112, 0, 73,109, - 66,117,102, 0, 80,111,105,110,116, 68,101,110,115,105,116,121, 0, 67,117,114,118,101, 77, 97,112,112,105,110,103, 0, 86,111, -120,101,108, 68, 97,116, 97, 0, 79, 99,101, 97,110, 84,101,120, 0, 98, 78,111,100,101, 84,114,101,101, 0, 84,101,120, 77, 97, -112,112,105,110,103, 0, 67,111,108,111,114, 77, 97,112,112,105,110,103, 0, 76, 97,109,112, 0, 86,111,108,117,109,101, 83,101, -116,116,105,110,103,115, 0, 71, 97,109,101, 83,101,116,116,105,110,103,115, 0, 77, 97,116,101,114,105, 97,108, 0, 71,114,111, -117,112, 0, 86, 70,111,110,116, 0, 86, 70,111,110,116, 68, 97,116, 97, 0, 77,101,116, 97, 69,108,101,109, 0, 66,111,117,110, -100, 66,111,120, 0, 77,101,116, 97, 66, 97,108,108, 0, 78,117,114, 98, 0, 67,104, 97,114, 73,110,102,111, 0, 84,101,120,116, - 66,111,120, 0, 69,100,105,116, 78,117,114, 98, 0, 71, 72, 97,115,104, 0, 67,117,114,118,101, 0, 80, 97,116,104, 0, 83,101, -108, 66,111,120, 0, 69,100,105,116, 70,111,110,116, 0, 77,101,115,104, 0, 77, 83,101,108,101, 99,116, 0, 77, 80,111,108,121, - 0, 77, 84,101,120, 80,111,108,121, 0, 77, 76,111,111,112, 0, 77, 76,111,111,112, 85, 86, 0, 77, 76,111,111,112, 67,111,108, - 0, 77, 70, 97, 99,101, 0, 77, 84, 70, 97, 99,101, 0, 84, 70, 97, 99,101, 0, 77, 86,101,114,116, 0, 77, 69,100,103,101, 0, - 77, 68,101,102,111,114,109, 86,101,114,116, 0, 77, 67,111,108, 0, 77, 83,116,105, 99,107,121, 0, 66, 77, 69,100,105,116, 77, -101,115,104, 0, 67,117,115,116,111,109, 68, 97,116, 97, 0, 77,117,108,116,105,114,101,115, 0, 77, 68,101,102,111,114,109, 87, -101,105,103,104,116, 0, 77, 70,108,111, 97,116, 80,114,111,112,101,114,116,121, 0, 77, 73,110,116, 80,114,111,112,101,114,116, -121, 0, 77, 83,116,114,105,110,103, 80,114,111,112,101,114,116,121, 0, 79,114,105,103, 83,112, 97, 99,101, 70, 97, 99,101, 0, - 79,114,105,103, 83,112, 97, 99,101, 76,111,111,112, 0, 77, 68,105,115,112,115, 0, 77,117,108,116,105,114,101,115, 67,111,108, - 0, 77,117,108,116,105,114,101,115, 67,111,108, 70, 97, 99,101, 0, 77,117,108,116,105,114,101,115, 70, 97, 99,101, 0, 77,117, -108,116,105,114,101,115, 69,100,103,101, 0, 77,117,108,116,105,114,101,115, 76,101,118,101,108, 0, 77, 82,101, 99, 97,115,116, - 0, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77, 97,112,112,105,110,103, 73,110,102,111, 77,111,100,105,102,105,101, -114, 68, 97,116, 97, 0, 83,117, 98,115,117,114,102, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 76, 97,116,116,105, 99, -101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,117,114,118,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, - 66,117,105,108,100, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77, 97,115,107, 77,111,100,105,102,105,101,114, 68, 97, -116, 97, 0, 65,114,114, 97,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77,105,114,114,111,114, 77,111,100,105,102, -105,101,114, 68, 97,116, 97, 0, 69,100,103,101, 83,112,108,105,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66,101, -118,101,108, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, 77,101,115,104, 77,111,100,105,102,105,101,114, 68, 97,116, - 97, 0, 83,109,111,107,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,107,101, 68,111,109, 97,105,110, 83, -101,116,116,105,110,103,115, 0, 83,109,111,107,101, 70,108,111,119, 83,101,116,116,105,110,103,115, 0, 83,109,111,107,101, 67, -111,108,108, 83,101,116,116,105,110,103,115, 0, 68,105,115,112,108, 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, - 0, 85, 86, 80,114,111,106,101, 99,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,101, 99,105,109, 97,116,101, 77, -111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,111,116,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67, - 97,115,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87, 97,118,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, - 0, 65,114,109, 97,116,117,114,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 72,111,111,107, 77,111,100,105,102,105, -101,114, 68, 97,116, 97, 0, 83,111,102,116, 98,111,100,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111,116, -104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111,116,104, 0, 67,108,111,116,104, 83,105,109, 83,101,116,116, -105,110,103,115, 0, 67,108,111,116,104, 67,111,108,108, 83,101,116,116,105,110,103,115, 0, 80,111,105,110,116, 67, 97, 99,104, -101, 0, 67,111,108,108,105,115,105,111,110, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, 86, 72, 84,114,101,101, 0, - 83,117,114,102, 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,101,114,105,118,101,100, 77,101,115,104, 0, - 66, 86, 72, 84,114,101,101, 70,114,111,109, 77,101,115,104, 0, 66,111,111,108,101, 97,110, 77,111,100,105,102,105,101,114, 68, - 97,116, 97, 0, 77, 68,101,102, 73,110,102,108,117,101,110, 99,101, 0, 77, 68,101,102, 67,101,108,108, 0, 77,101,115,104, 68, -101,102,111,114,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,101,109, - 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,101,109, 0, 80, 97,114,116, -105, 99,108,101, 73,110,115,116, 97,110, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 69,120,112,108,111,100,101, - 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77,117,108,116,105,114,101,115, 77,111,100,105,102,105,101,114, 68, 97,116, - 97, 0, 70,108,117,105,100,115,105,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 70,108,117,105,100,115,105,109, 83, -101,116,116,105,110,103,115, 0, 83,104,114,105,110,107,119,114, 97,112, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83, -105,109,112,108,101, 68,101,102,111,114,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,104, 97,112,101, 75,101,121, - 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,111,108,105,100,105,102,121, 77,111,100,105,102,105,101,114, 68, 97,116, - 97, 0, 83, 99,114,101,119, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 79, 99,101, 97,110, 77,111,100,105,102,105,101, -114, 68, 97,116, 97, 0, 79, 99,101, 97,110, 0, 79, 99,101, 97,110, 67, 97, 99,104,101, 0, 87, 97,114,112, 77,111,100,105,102, -105,101,114, 68, 97,116, 97, 0, 87,101,105,103,104,116, 86, 71, 69,100,105,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, - 0, 87,101,105,103,104,116, 86, 71, 77,105,120, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87,101,105,103,104,116, 86, - 71, 80,114,111,120,105,109,105,116,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,121,110, 97,109,105, 99, 80, 97, -105,110,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,121,110, 97,109,105, 99, 80, 97,105,110,116, 67, 97,110,118, - 97,115, 83,101,116,116,105,110,103,115, 0, 68,121,110, 97,109,105, 99, 80, 97,105,110,116, 66,114,117,115,104, 83,101,116,116, -105,110,103,115, 0, 82,101,109,101,115,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 69,100,105,116, 76, 97,116,116, - 0, 76, 97,116,116,105, 99,101, 0, 98, 68,101,102,111,114,109, 71,114,111,117,112, 0, 83, 99,117,108,112,116, 83,101,115,115, -105,111,110, 0, 98, 65, 99,116,105,111,110, 0, 98, 80,111,115,101, 0, 98, 71, 80,100, 97,116, 97, 0, 98, 65,110,105,109, 86, -105,122, 83,101,116,116,105,110,103,115, 0, 98, 77,111,116,105,111,110, 80, 97,116,104, 0, 66,117,108,108,101,116, 83,111,102, -116, 66,111,100,121, 0, 80, 97,114,116, 68,101,102,108,101, 99,116, 0, 83,111,102,116, 66,111,100,121, 0, 79, 98, 72,111,111, -107, 0, 68,117,112,108,105, 79, 98,106,101, 99,116, 0, 82, 78, 71, 0, 69,102,102,101, 99,116,111,114, 87,101,105,103,104,116, -115, 0, 80, 84, 67, 97, 99,104,101, 69,120,116,114, 97, 0, 80, 84, 67, 97, 99,104,101, 77,101,109, 0, 80, 84, 67, 97, 99,104, -101, 69,100,105,116, 0, 83, 66, 86,101,114,116,101,120, 0, 66,111,100,121, 80,111,105,110,116, 0, 66,111,100,121, 83,112,114, -105,110,103, 0, 83, 66, 83, 99,114, 97,116, 99,104, 0, 70,108,117,105,100, 86,101,114,116,101,120, 86,101,108,111, 99,105,116, -121, 0, 87,111,114,108,100, 0, 66, 97,115,101, 0, 65,118,105, 67,111,100,101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,116, -105,109,101, 67,111,100,101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,116,105,109,101, 67,111,100,101, 99, 83,101,116,116,105, -110,103,115, 0, 70, 70, 77,112,101,103, 67,111,100,101, 99, 68, 97,116, 97, 0, 65,117,100,105,111, 68, 97,116, 97, 0, 83, 99, -101,110,101, 82,101,110,100,101,114, 76, 97,121,101,114, 0, 73,109, 97,103,101, 70,111,114,109, 97,116, 68, 97,116, 97, 0, 82, -101,110,100,101,114, 68, 97,116, 97, 0, 82,101,110,100,101,114, 80,114,111,102,105,108,101, 0, 71, 97,109,101, 68,111,109,101, - 0, 71, 97,109,101, 70,114, 97,109,105,110,103, 0, 82,101, 99, 97,115,116, 68, 97,116, 97, 0, 71, 97,109,101, 68, 97,116, 97, - 0, 84,105,109,101, 77, 97,114,107,101,114, 0, 80, 97,105,110,116, 0, 66,114,117,115,104, 0, 73,109, 97,103,101, 80, 97,105, -110,116, 83,101,116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 66,114,117,115,104, 68, 97,116, 97, 0, 80, 97,114, -116,105, 99,108,101, 69,100,105,116, 83,101,116,116,105,110,103,115, 0, 83, 99,117,108,112,116, 0, 85,118, 83, 99,117,108,112, -116, 0, 86, 80, 97,105,110,116, 0, 84,114, 97,110,115,102,111,114,109, 79,114,105,101,110,116, 97,116,105,111,110, 0, 85,110, -105,102,105,101,100, 80, 97,105,110,116, 83,101,116,116,105,110,103,115, 0, 84,111,111,108, 83,101,116,116,105,110,103,115, 0, - 98, 83,116, 97,116,115, 0, 85,110,105,116, 83,101,116,116,105,110,103,115, 0, 80,104,121,115,105, 99,115, 83,101,116,116,105, -110,103,115, 0, 69,100,105,116,105,110,103, 0, 83, 99,101,110,101, 83,116, 97,116,115, 0, 68, 97,103, 70,111,114,101,115,116, - 0, 77,111,118,105,101, 67,108,105,112, 0, 66, 71,112,105, 99, 0, 77,111,118,105,101, 67,108,105,112, 85,115,101,114, 0, 82, -101,103,105,111,110, 86,105,101,119, 51, 68, 0, 82,101,110,100,101,114, 73,110,102,111, 0, 82,101,110,100,101,114, 69,110,103, -105,110,101, 0, 86,105,101,119, 68,101,112,116,104,115, 0, 83,109,111,111,116,104, 86,105,101,119, 83,116,111,114,101, 0,119, -109, 84,105,109,101,114, 0, 86,105,101,119, 51, 68, 0, 83,112, 97, 99,101, 76,105,110,107, 0, 86,105,101,119, 50, 68, 0, 83, -112, 97, 99,101, 73,110,102,111, 0, 83,112, 97, 99,101, 73,112,111, 0, 98, 68,111,112,101, 83,104,101,101,116, 0, 83,112, 97, - 99,101, 66,117,116,115, 0, 83,112, 97, 99,101, 83,101,113, 0, 70,105,108,101, 83,101,108,101, 99,116, 80, 97,114, 97,109,115, - 0, 83,112, 97, 99,101, 70,105,108,101, 0, 70,105,108,101, 76,105,115,116, 0,119,109, 79,112,101,114, 97,116,111,114, 0, 70, -105,108,101, 76, 97,121,111,117,116, 0, 83,112, 97, 99,101, 79,111,112,115, 0, 84,114,101,101, 83,116,111,114,101, 0, 84,114, -101,101, 83,116,111,114,101, 69,108,101,109, 0, 83,112, 97, 99,101, 73,109, 97,103,101, 0, 83, 99,111,112,101,115, 0, 72,105, -115,116,111,103,114, 97,109, 0, 83,112, 97, 99,101, 78,108, 97, 0, 83,112, 97, 99,101, 84,101,120,116, 0, 83, 99,114,105,112, -116, 0, 83,112, 97, 99,101, 83, 99,114,105,112,116, 0, 83,112, 97, 99,101, 84,105,109,101, 67, 97, 99,104,101, 0, 83,112, 97, - 99,101, 84,105,109,101, 0, 83,112, 97, 99,101, 78,111,100,101, 0, 83,112, 97, 99,101, 76,111,103,105, 99, 0, 67,111,110,115, -111,108,101, 76,105,110,101, 0, 83,112, 97, 99,101, 67,111,110,115,111,108,101, 0, 83,112, 97, 99,101, 85,115,101,114, 80,114, -101,102, 0, 83,112, 97, 99,101, 67,108,105,112, 0, 77,111,118,105,101, 67,108,105,112, 83, 99,111,112,101,115, 0,117,105, 70, -111,110,116, 0,117,105, 70,111,110,116, 83,116,121,108,101, 0,117,105, 83,116,121,108,101, 0,117,105, 87,105,100,103,101,116, - 67,111,108,111,114,115, 0,117,105, 87,105,100,103,101,116, 83,116, 97,116,101, 67,111,108,111,114,115, 0,117,105, 80, 97,110, -101,108, 67,111,108,111,114,115, 0, 84,104,101,109,101, 85, 73, 0, 84,104,101,109,101, 83,112, 97, 99,101, 0, 84,104,101,109, -101, 87,105,114,101, 67,111,108,111,114, 0, 98, 84,104,101,109,101, 0, 98, 65,100,100,111,110, 0, 83,111,108,105,100, 76,105, -103,104,116, 0, 85,115,101,114, 68,101,102, 0, 98, 83, 99,114,101,101,110, 0, 83, 99,114, 86,101,114,116, 0, 83, 99,114, 69, -100,103,101, 0, 80, 97,110,101,108, 0, 80, 97,110,101,108, 84,121,112,101, 0,117,105, 76, 97,121,111,117,116, 0, 83, 99,114, - 65,114,101, 97, 0, 83,112, 97, 99,101, 84,121,112,101, 0, 65, 82,101,103,105,111,110, 0, 65, 82,101,103,105,111,110, 84,121, -112,101, 0, 70,105,108,101, 71,108,111, 98, 97,108, 0, 83,116,114,105,112, 69,108,101,109, 0, 83,116,114,105,112, 67,114,111, -112, 0, 83,116,114,105,112, 84,114, 97,110,115,102,111,114,109, 0, 83,116,114,105,112, 67,111,108,111,114, 66, 97,108, 97,110, - 99,101, 0, 83,116,114,105,112, 80,114,111,120,121, 0, 83,116,114,105,112, 0, 80,108,117,103,105,110, 83,101,113, 0, 83,101, -113,117,101,110, 99,101, 0, 98, 83,111,117,110,100, 0, 77,101,116, 97, 83,116, 97, 99,107, 0, 87,105,112,101, 86, 97,114,115, - 0, 71,108,111,119, 86, 97,114,115, 0, 84,114, 97,110,115,102,111,114,109, 86, 97,114,115, 0, 83,111,108,105,100, 67,111,108, -111,114, 86, 97,114,115, 0, 83,112,101,101,100, 67,111,110,116,114,111,108, 86, 97,114,115, 0, 69,102,102,101, 99,116, 0, 66, -117,105,108,100, 69,102,102, 0, 80, 97,114,116, 69,102,102, 0, 80, 97,114,116,105, 99,108,101, 0, 87, 97,118,101, 69,102,102, - 0, 98, 80,114,111,112,101,114,116,121, 0, 98, 78,101, 97,114, 83,101,110,115,111,114, 0, 98, 77,111,117,115,101, 83,101,110, -115,111,114, 0, 98, 84,111,117, 99,104, 83,101,110,115,111,114, 0, 98, 75,101,121, 98,111, 97,114,100, 83,101,110,115,111,114, - 0, 98, 80,114,111,112,101,114,116,121, 83,101,110,115,111,114, 0, 98, 65, 99,116,117, 97,116,111,114, 83,101,110,115,111,114, - 0, 98, 68,101,108, 97,121, 83,101,110,115,111,114, 0, 98, 67,111,108,108,105,115,105,111,110, 83,101,110,115,111,114, 0, 98, - 82, 97,100, 97,114, 83,101,110,115,111,114, 0, 98, 82, 97,110,100,111,109, 83,101,110,115,111,114, 0, 98, 82, 97,121, 83,101, -110,115,111,114, 0, 98, 65,114,109, 97,116,117,114,101, 83,101,110,115,111,114, 0, 98, 77,101,115,115, 97,103,101, 83,101,110, -115,111,114, 0, 98, 83,101,110,115,111,114, 0, 98, 67,111,110,116,114,111,108,108,101,114, 0, 98, 74,111,121,115,116,105, 99, -107, 83,101,110,115,111,114, 0, 98, 69,120,112,114,101,115,115,105,111,110, 67,111,110,116, 0, 98, 80,121,116,104,111,110, 67, -111,110,116, 0, 98, 65, 99,116,117, 97,116,111,114, 0, 98, 65,100,100, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, - 0, 98, 65, 99,116,105,111,110, 65, 99,116,117, 97,116,111,114, 0, 83,111,117,110,100, 51, 68, 0, 98, 83,111,117,110,100, 65, - 99,116,117, 97,116,111,114, 0, 98, 69,100,105,116, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 83, 99,101, -110,101, 65, 99,116,117, 97,116,111,114, 0, 98, 80,114,111,112,101,114,116,121, 65, 99,116,117, 97,116,111,114, 0, 98, 79, 98, -106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 73,112,111, 65, 99,116,117, 97,116,111,114, 0, 98, 67, 97,109,101,114, - 97, 65, 99,116,117, 97,116,111,114, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 65, 99,116,117, 97,116,111,114, 0, 98, 71, -114,111,117,112, 65, 99,116,117, 97,116,111,114, 0, 98, 82, 97,110,100,111,109, 65, 99,116,117, 97,116,111,114, 0, 98, 77,101, -115,115, 97,103,101, 65, 99,116,117, 97,116,111,114, 0, 98, 71, 97,109,101, 65, 99,116,117, 97,116,111,114, 0, 98, 86,105,115, -105, 98,105,108,105,116,121, 65, 99,116,117, 97,116,111,114, 0, 98, 84,119,111, 68, 70,105,108,116,101,114, 65, 99,116,117, 97, -116,111,114, 0, 98, 80, 97,114,101,110,116, 65, 99,116,117, 97,116,111,114, 0, 98, 83,116, 97,116,101, 65, 99,116,117, 97,116, -111,114, 0, 98, 65,114,109, 97,116,117,114,101, 65, 99,116,117, 97,116,111,114, 0, 98, 83,116,101,101,114,105,110,103, 65, 99, -116,117, 97,116,111,114, 0, 71,114,111,117,112, 79, 98,106,101, 99,116, 0, 66,111,110,101, 0, 98, 65,114,109, 97,116,117,114, -101, 0, 98, 77,111,116,105,111,110, 80, 97,116,104, 86,101,114,116, 0, 98, 80,111,115,101, 67,104, 97,110,110,101,108, 0, 98, - 73, 75, 80, 97,114, 97,109, 0, 98, 73,116, 97,115, 99, 0, 98, 65, 99,116,105,111,110, 71,114,111,117,112, 0, 83,112, 97, 99, -101, 65, 99,116,105,111,110, 0, 98, 65, 99,116,105,111,110, 67,104, 97,110,110,101,108, 0, 98, 67,111,110,115,116,114, 97,105, -110,116, 67,104, 97,110,110,101,108, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,111,110,115,116,114, 97,105,110, -116, 84, 97,114,103,101,116, 0, 98, 80,121,116,104,111,110, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 75,105,110,101,109, - 97,116,105, 99, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,112,108,105,110,101, 73, 75, 67,111,110,115,116,114, 97,105, -110,116, 0, 98, 84,114, 97, 99,107, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82,111,116, 97,116,101, 76,105,107, -101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 97,116,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110, -116, 0, 98, 83,105,122,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83, 97,109,101, 86,111,108,117,109, -101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97,110,115, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, - 0, 98, 77,105,110, 77, 97,120, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 65, 99,116,105,111,110, 67,111,110,115,116,114, - 97,105,110,116, 0, 98, 76,111, 99,107, 84,114, 97, 99,107, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 68, 97,109,112, 84, -114, 97, 99,107, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 70,111,108,108,111,119, 80, 97,116,104, 67,111,110,115,116,114, - 97,105,110,116, 0, 98, 83,116,114,101,116, 99,104, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82,105,103,105,100, - 66,111,100,121, 74,111,105,110,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,108, 97,109,112, 84,111, 67,111,110,115, -116,114, 97,105,110,116, 0, 98, 67,104,105,108,100, 79,102, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97,110,115, -102,111,114,109, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 80,105,118,111,116, 67,111,110,115,116,114, 97,105,110,116, 0, - 98, 76,111, 99, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82,111,116, 76,105,109,105,116, 67,111,110, -115,116,114, 97,105,110,116, 0, 98, 83,105,122,101, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 68,105, -115,116, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,104,114,105,110,107,119,114, 97,112, 67,111,110, -115,116,114, 97,105,110,116, 0, 98, 70,111,108,108,111,119, 84,114, 97, 99,107, 67,111,110,115,116,114, 97,105,110,116, 0, 98, - 67, 97,109,101,114, 97, 83,111,108,118,101,114, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 79, 98,106,101, 99,116, 83,111, -108,118,101,114, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 65, 99,116,105,111,110, 77,111,100,105,102,105,101,114, 0, 98, - 65, 99,116,105,111,110, 83,116,114,105,112, 0, 98, 78,111,100,101, 83,116, 97, 99,107, 0, 98, 78,111,100,101, 83,111, 99,107, -101,116, 0, 98, 78,111,100,101, 76,105,110,107, 0, 98, 78,111,100,101, 80,114,101,118,105,101,119, 0, 98, 78,111,100,101, 0, -117,105, 66,108,111, 99,107, 0, 98, 78,111,100,101, 84,121,112,101, 0, 98, 78,111,100,101, 84,114,101,101, 69,120,101, 99, 0, - 98, 78,111,100,101, 83,111, 99,107,101,116, 86, 97,108,117,101, 73,110,116, 0, 98, 78,111,100,101, 83,111, 99,107,101,116, 86, - 97,108,117,101, 70,108,111, 97,116, 0, 98, 78,111,100,101, 83,111, 99,107,101,116, 86, 97,108,117,101, 66,111,111,108,101, 97, -110, 0, 98, 78,111,100,101, 83,111, 99,107,101,116, 86, 97,108,117,101, 86,101, 99,116,111,114, 0, 98, 78,111,100,101, 83,111, - 99,107,101,116, 86, 97,108,117,101, 82, 71, 66, 65, 0, 78,111,100,101, 73,109, 97,103,101, 65,110,105,109, 0, 78,111,100,101, - 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 68, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 66,105,108, 97,116, -101,114, 97,108, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 72,117,101, 83, 97,116, 0, 78,111,100,101, 73,109, 97,103, -101, 70,105,108,101, 0, 78,111,100,101, 73,109, 97,103,101, 77,117,108,116,105, 70,105,108,101, 0, 78,111,100,101, 73,109, 97, -103,101, 77,117,108,116,105, 70,105,108,101, 83,111, 99,107,101,116, 0, 78,111,100,101, 67,104,114,111,109, 97, 0, 78,111,100, -101, 84,119,111, 88, 89,115, 0, 78,111,100,101, 84,119,111, 70,108,111, 97,116,115, 0, 78,111,100,101, 71,101,111,109,101,116, -114,121, 0, 78,111,100,101, 86,101,114,116,101,120, 67,111,108, 0, 78,111,100,101, 68,101,102,111, 99,117,115, 0, 78,111,100, -101, 83, 99,114,105,112,116, 68,105, 99,116, 0, 78,111,100,101, 71,108, 97,114,101, 0, 78,111,100,101, 84,111,110,101,109, 97, -112, 0, 78,111,100,101, 76,101,110,115, 68,105,115,116, 0, 78,111,100,101, 67,111,108,111,114, 66, 97,108, 97,110, 99,101, 0, - 78,111,100,101, 67,111,108,111,114,115,112,105,108,108, 0, 78,111,100,101, 84,101,120, 66, 97,115,101, 0, 78,111,100,101, 84, -101,120, 83,107,121, 0, 78,111,100,101, 84,101,120, 73,109, 97,103,101, 0, 78,111,100,101, 84,101,120, 67,104,101, 99,107,101, -114, 0, 78,111,100,101, 84,101,120, 69,110,118,105,114,111,110,109,101,110,116, 0, 78,111,100,101, 84,101,120, 71,114, 97,100, -105,101,110,116, 0, 78,111,100,101, 84,101,120, 78,111,105,115,101, 0, 78,111,100,101, 84,101,120, 86,111,114,111,110,111,105, - 0, 78,111,100,101, 84,101,120, 77,117,115,103,114, 97,118,101, 0, 78,111,100,101, 84,101,120, 87, 97,118,101, 0, 78,111,100, -101, 84,101,120, 77, 97,103,105, 99, 0, 78,111,100,101, 83,104, 97,100,101,114, 65,116,116,114,105, 98,117,116,101, 0, 84,101, -120, 78,111,100,101, 79,117,116,112,117,116, 0, 67,117,114,118,101, 77, 97,112, 80,111,105,110,116, 0, 67,117,114,118,101, 77, - 97,112, 0, 66,114,117,115,104, 67,108,111,110,101, 0, 67,117,115,116,111,109, 68, 97,116, 97, 76, 97,121,101,114, 0, 67,117, -115,116,111,109, 68, 97,116, 97, 69,120,116,101,114,110, 97,108, 0, 72, 97,105,114, 75,101,121, 0, 80, 97,114,116,105, 99,108, -101, 75,101,121, 0, 66,111,105,100, 80, 97,114,116,105, 99,108,101, 0, 66,111,105,100, 68, 97,116, 97, 0, 80, 97,114,116,105, - 99,108,101, 83,112,114,105,110,103, 0, 67,104,105,108,100, 80, 97,114,116,105, 99,108,101, 0, 80, 97,114,116,105, 99,108,101, - 84, 97,114,103,101,116, 0, 80, 97,114,116,105, 99,108,101, 68,117,112,108,105, 87,101,105,103,104,116, 0, 80, 97,114,116,105, - 99,108,101, 68, 97,116, 97, 0, 83, 80, 72, 70,108,117,105,100, 83,101,116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108, -101, 83,101,116,116,105,110,103,115, 0, 66,111,105,100, 83,101,116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 67, - 97, 99,104,101, 75,101,121, 0, 75, 68, 84,114,101,101, 0, 80, 97,114,116,105, 99,108,101, 68,114, 97,119, 68, 97,116, 97, 0, - 76,105,110,107, 78,111,100,101, 0, 98, 71, 80, 68,115,112,111,105,110,116, 0, 98, 71, 80, 68,115,116,114,111,107,101, 0, 98, - 71, 80, 68,102,114, 97,109,101, 0, 98, 71, 80, 68,108, 97,121,101,114, 0, 82,101,112,111,114,116, 76,105,115,116, 0,119,109, - 87,105,110,100,111,119, 77, 97,110, 97,103,101,114, 0,119,109, 87,105,110,100,111,119, 0,119,109, 75,101,121, 67,111,110,102, -105,103, 0,119,109, 69,118,101,110,116, 0,119,109, 83,117, 98, 87,105,110,100,111,119, 0,119,109, 71,101,115,116,117,114,101, - 0,119,109, 75,101,121, 77, 97,112, 73,116,101,109, 0, 80,111,105,110,116,101,114, 82, 78, 65, 0,119,109, 75,101,121, 77, 97, -112, 68,105,102,102, 73,116,101,109, 0,119,109, 75,101,121, 77, 97,112, 0,119,109, 79,112,101,114, 97,116,111,114, 84,121,112, -101, 0, 70, 77,111,100,105,102,105,101,114, 0, 70, 77,111,100, 95, 71,101,110,101,114, 97,116,111,114, 0, 70, 77,111,100, 95, - 70,117,110, 99,116,105,111,110, 71,101,110,101,114, 97,116,111,114, 0, 70, 67, 77, 95, 69,110,118,101,108,111,112,101, 68, 97, -116, 97, 0, 70, 77,111,100, 95, 69,110,118,101,108,111,112,101, 0, 70, 77,111,100, 95, 67,121, 99,108,101,115, 0, 70, 77,111, -100, 95, 80,121,116,104,111,110, 0, 70, 77,111,100, 95, 76,105,109,105,116,115, 0, 70, 77,111,100, 95, 78,111,105,115,101, 0, - 70, 77,111,100, 95, 83,116,101,112,112,101,100, 0, 68,114,105,118,101,114, 84, 97,114,103,101,116, 0, 68,114,105,118,101,114, - 86, 97,114, 0, 67,104, 97,110,110,101,108, 68,114,105,118,101,114, 0, 70, 80,111,105,110,116, 0, 70, 67,117,114,118,101, 0, - 65,110,105,109, 77, 97,112, 80, 97,105,114, 0, 65,110,105,109, 77, 97,112,112,101,114, 0, 78,108, 97, 83,116,114,105,112, 0, - 78,108, 97, 84,114, 97, 99,107, 0, 75, 83, 95, 80, 97,116,104, 0, 75,101,121,105,110,103, 83,101,116, 0, 65,110,105,109, 79, -118,101,114,114,105,100,101, 0, 73,100, 65,100,116, 84,101,109,112,108, 97,116,101, 0, 66,111,105,100, 82,117,108,101, 0, 66, -111,105,100, 82,117,108,101, 71,111, 97,108, 65,118,111,105,100, 0, 66,111,105,100, 82,117,108,101, 65,118,111,105,100, 67,111, -108,108,105,115,105,111,110, 0, 66,111,105,100, 82,117,108,101, 70,111,108,108,111,119, 76,101, 97,100,101,114, 0, 66,111,105, -100, 82,117,108,101, 65,118,101,114, 97,103,101, 83,112,101,101,100, 0, 66,111,105,100, 82,117,108,101, 70,105,103,104,116, 0, - 66,111,105,100, 83,116, 97,116,101, 0, 70, 76, 85, 73, 68, 95, 51, 68, 0, 87, 84, 85, 82, 66, 85, 76, 69, 78, 67, 69, 0, 83, -112,101, 97,107,101,114, 0, 77,111,118,105,101, 67,108,105,112, 80,114,111,120,121, 0, 77,111,118,105,101, 67,108,105,112, 67, - 97, 99,104,101, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, - 84,114, 97, 99,107, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 77, 97,114,107,101,114, 0, 77,111,118,105,101, 82, -101, 99,111,110,115,116,114,117, 99,116,101,100, 67, 97,109,101,114, 97, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, - 67, 97,109,101,114, 97, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 83,101,116,116,105,110,103,115, 0, 77,111,118, -105,101, 84,114, 97, 99,107,105,110,103, 83,116, 97, 98,105,108,105,122, 97,116,105,111,110, 0, 77,111,118,105,101, 84,114, 97, - 99,107,105,110,103, 82,101, 99,111,110,115,116,114,117, 99,116,105,111,110, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110, -103, 79, 98,106,101, 99,116, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 83,116, 97,116,115, 0, 68,121,110, 97,109, -105, 99, 80, 97,105,110,116, 83,117,114,102, 97, 99,101, 0, 80, 97,105,110,116, 83,117,114,102, 97, 99,101, 68, 97,116, 97, 0, - 84, 76, 69, 78, 1, 0, 1, 0, 2, 0, 2, 0, 4, 0, 4, 0, 4, 0, 4, 0, 8, 0, 8, 0, 8, 0, 0, 0, 16, 0, 24, 0, - 16, 0, 4, 0, 8, 0, 12, 0, 16, 0, 16, 0, 32, 0,128, 0,120, 0,152, 8, 0, 0, 40, 0,144, 0,112, 5,112, 0, 36, 0, - 56, 0,160, 0,192, 0,224, 0, 96, 0, 40, 0, 48, 0,224, 0, 16, 0,200, 0, 40, 0,216, 11, 48, 5, 0, 0, 0, 0, 0, 0, - 56, 1,168, 1,216, 4, 24, 0, 8, 3,200, 0, 0, 0,104, 0, 64, 1, 56, 4, 80, 0, 24, 1,144, 0, 56, 3, 16, 2, 88, 0, - 16, 0,128, 3,152, 0,136, 4, 0, 0,104, 0,104, 0, 0, 1, 80, 0, 8, 0, 16, 0, 32, 0, 0, 0, 8, 2, 0, 0, 0, 0, - 0, 0,232, 4, 8, 0, 12, 0, 16, 0, 8, 0, 12, 0, 4, 0, 20, 0, 48, 0, 64, 0, 20, 0, 12, 0, 16, 0, 4, 0, 8, 0, - 0, 0,176, 0,144, 1, 8, 0, 4, 0, 4, 0, 0, 1, 32, 0, 8, 0, 24, 0, 16, 0, 64, 0, 24, 0, 12, 0, 64, 0, 4, 0, -112, 0,200, 0,136, 0,192, 0,192, 0,128, 0,192, 0,192, 0,128, 0,120, 0,200, 0,120, 0,144, 0, 16, 1, 56, 0,192, 0, - 24, 1, 40, 1,120, 0,184, 0,200, 0, 64, 1,200, 0, 88, 1,112, 0,168, 0, 0, 0,152, 0, 48, 0, 40, 5,192, 0, 0, 0, -152, 0, 0, 0, 0, 0,128, 0, 8, 0, 8, 0,112, 1,144, 0,152, 2,136, 0,192, 0,120, 0,128, 0,224, 4,208, 0,200, 0, -112, 0,208, 0,144, 0, 16, 5, 0, 0, 0, 0, 48, 1,104, 1,160, 1,104, 1,136, 0,104, 0,112, 0,128, 0, 16, 0, 96, 1, - 88, 0, 0, 0,200, 0,216, 0,152, 0, 48, 0, 24, 0,120, 0,152, 0,216, 1, 0, 1,184, 0, 0, 0, 72, 0, 32, 0,176, 0, - 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 12, 0, 24, 2, 40, 0,184, 0,152, 0, 64, 0, 72, 0, 32, 0,120, 0, 24, 0, 56, 9, - 64, 0, 24, 0, 16, 0, 56, 0,168, 0, 96, 0, 24, 0, 88, 6, 48, 0, 16, 0,168, 0, 96, 0, 24, 0, 56, 0,120, 0, 16, 0, -232, 1, 32, 0, 8, 0, 24, 0, 80, 8, 0, 0, 0, 0,192, 8,104, 0, 8, 0,112, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 96, 1, 56, 0,144, 0, 64, 0,240, 0,112, 0,248, 0,240, 0,160, 7,104, 0, 0, 0,168, 0, 0, 0, 24, 1, 16, 0, 16, 0, - 40, 33,128, 16, 24, 16,216, 0,160, 2,168, 5, 64, 0, 24, 0,208, 0, 48, 1, 72, 0, 40, 0,136, 1,104, 0, 48, 1, 56, 0, - 24, 4, 32, 0,232, 0, 32, 0, 32, 0, 8, 0, 80, 3,224, 1, 16, 0,168, 36, 80, 0, 56, 0,112, 38, 8, 1, 32, 0, 40, 0, - 88, 1, 0, 0, 0, 0,160, 0, 0, 0, 40, 1, 0, 0, 48, 4, 8, 1, 16, 0, 8, 0, 44, 0, 16, 4, 72, 3,200, 4, 80, 1, -208, 4, 32, 0, 12, 0, 24, 0, 32, 0, 16, 0, 24, 0, 24, 0, 32, 0,136, 1, 0, 0, 64, 0, 96, 0, 80, 0, 8, 0, 80, 0, -136, 0,200, 0, 72, 0, 8, 0,136, 0, 76, 0, 72, 0,204, 0,136, 0,136, 0,128, 0,136, 0, 92, 0,128, 0, 80, 0,112, 0, - 16, 0,168, 0, 32, 0, 72, 0,120, 0, 24, 0,144, 0,112, 0,148, 0, 32, 0,128, 0, 88, 0, 88, 0,208, 0,140, 0, 4, 0, - 24, 0, 16, 0, 8, 0,160, 0, 48, 0, 40, 0, 72, 1, 0, 1, 16, 0, 32, 2, 4, 0, 40, 0,120, 0, 72, 1,120, 0, 56, 0, -120, 0,160, 0,112, 0,184, 0, 24, 0, 88, 0, 80, 0, 80, 0, 80, 0, 8, 0, 72, 0,104, 0,104, 0, 80, 0, 80, 0, 24, 0, - 88, 0,104, 0, 16, 0,144, 0,128, 0, 88, 0, 28, 0, 28, 0, 28, 0, 88, 0, 24, 0,160, 0, 16, 0,152, 0, 72, 0,168, 0, - 48, 0,208, 0, 56, 0, 16, 0, 88, 1, 0, 0, 0, 0, 0, 0, 16, 0, 16, 0, 4, 0, 24, 0, 16, 0, 16, 0, 40, 0, 28, 0, - 12, 0, 12, 0, 32, 4, 40, 4, 32, 0, 44, 0, 24, 0, 8, 0,128, 0, 64, 0, 32, 0, 16, 0, 32, 0, 32, 0, 8, 0, 96, 0, - 20, 0,200, 3,216, 3,208, 3,200, 3,208, 3,208, 3,200, 3,208, 3,208, 3,208, 3,208, 3, 64, 0, 64, 0, 12, 0, 56, 0, - 24, 0,104, 0, 0, 4, 24, 0, 56, 0, 56, 0, 20, 0, 16, 0, 64, 0, 40, 0, 32, 0,192, 0, 60, 0, 16, 3,104, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 16, 0, 32, 0, 40, 0,192, 0, 40, 0, 88, 1, 0, 1,168, 0, 0, 0, 0, 0, 0, 0,120, 0, 0, 0, - 32, 0,136, 0, 0, 0,120, 0, 24, 0, 24, 0, 16, 0, 24, 0, 8, 0, 16, 0, 24, 0, 20, 0, 20, 0, 56, 0, 24, 2, 40, 1, - 16, 0,104, 0, 0, 1, 40, 0,208, 0,104, 0,112, 0,216, 1, 32, 0,128, 0, 56, 0, 80, 0, 64, 0,104, 0, 72, 0, 64, 0, -128, 0, 0, 0, 0, 0,184, 0, 8, 3, 0, 0,248, 0,192, 0, 16, 0, 72, 0, 48, 0, 64, 0, 56, 0, 24, 0,128, 0, 0, 1, - 16, 6, 0, 0, 83, 84, 82, 67,207, 1, 0, 0, 12, 0, 2, 0, 12, 0, 0, 0, 12, 0, 1, 0, 13, 0, 3, 0, 13, 0, 0, 0, - 13, 0, 1, 0, 11, 0, 2, 0, 14, 0, 2, 0, 11, 0, 3, 0, 11, 0, 4, 0, 15, 0, 2, 0, 2, 0, 5, 0, 2, 0, 6, 0, - 16, 0, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0, 17, 0, 3, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 18, 0, 4, 0, - 4, 0, 8, 0, 4, 0, 9, 0, 4, 0, 10, 0, 4, 0, 11, 0, 19, 0, 4, 0, 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, - 7, 0, 11, 0, 20, 0, 4, 0, 11, 0, 12, 0, 14, 0, 13, 0, 4, 0, 14, 0, 4, 0, 15, 0, 21, 0, 10, 0, 21, 0, 0, 0, - 21, 0, 1, 0, 0, 0, 16, 0, 0, 0, 17, 0, 2, 0, 18, 0, 0, 0, 19, 0, 4, 0, 20, 0, 20, 0, 21, 0, 4, 0, 22, 0, - 4, 0, 23, 0, 22, 0, 11, 0, 11, 0, 0, 0, 11, 0, 1, 0, 22, 0, 24, 0, 23, 0, 25, 0, 0, 0, 26, 0, 2, 0, 27, 0, - 2, 0, 28, 0, 2, 0, 18, 0, 4, 0, 29, 0, 4, 0, 30, 0, 21, 0, 31, 0, 23, 0, 8, 0, 22, 0, 32, 0, 22, 0, 33, 0, - 24, 0, 34, 0, 0, 0, 35, 0, 0, 0, 36, 0, 4, 0, 37, 0, 4, 0, 27, 0, 23, 0, 38, 0, 25, 0, 5, 0, 4, 0, 39, 0, - 4, 0, 40, 0, 2, 0, 41, 0, 2, 0, 42, 0, 4, 0, 43, 0, 26, 0, 6, 0, 27, 0, 44, 0, 2, 0, 45, 0, 2, 0, 46, 0, - 2, 0, 16, 0, 2, 0, 18, 0, 0, 0, 47, 0, 28, 0, 21, 0, 28, 0, 0, 0, 28, 0, 1, 0, 29, 0, 48, 0, 30, 0, 49, 0, - 19, 0, 50, 0, 19, 0, 51, 0, 2, 0, 45, 0, 2, 0, 46, 0, 2, 0, 52, 0, 2, 0, 53, 0, 2, 0, 54, 0, 2, 0, 55, 0, - 2, 0, 18, 0, 2, 0, 56, 0, 7, 0, 10, 0, 7, 0, 11, 0, 4, 0, 57, 0, 7, 0, 58, 0, 7, 0, 59, 0, 7, 0, 60, 0, - 26, 0, 61, 0, 31, 0, 7, 0, 22, 0, 32, 0, 14, 0, 62, 0, 19, 0, 63, 0, 2, 0, 45, 0, 2, 0, 64, 0, 2, 0, 65, 0, - 2, 0, 27, 0, 32, 0, 16, 0, 32, 0, 0, 0, 32, 0, 1, 0, 7, 0, 66, 0, 7, 0, 60, 0, 2, 0, 16, 0, 2, 0, 67, 0, - 2, 0, 68, 0, 2, 0, 18, 0, 4, 0, 69, 0, 4, 0, 70, 0, 11, 0, 2, 0, 7, 0, 71, 0, 0, 0, 19, 0, 0, 0, 72, 0, - 7, 0, 73, 0, 7, 0, 74, 0, 33, 0, 15, 0, 22, 0, 32, 0, 34, 0, 75, 0, 32, 0, 76, 0, 0, 0, 77, 0, 4, 0, 78, 0, - 4, 0, 27, 0, 14, 0, 79, 0, 31, 0, 80, 0, 22, 0, 81, 0, 2, 0, 16, 0, 2, 0, 82, 0, 2, 0, 83, 0, 2, 0, 18, 0, - 7, 0, 84, 0, 4, 0, 85, 0, 35, 0, 6, 0, 35, 0, 0, 0, 35, 0, 1, 0, 0, 0, 86, 0, 0, 0, 87, 0, 4, 0, 22, 0, - 4, 0, 88, 0, 36, 0, 10, 0, 36, 0, 0, 0, 36, 0, 1, 0, 4, 0, 89, 0, 4, 0, 90, 0, 4, 0, 91, 0, 4, 0, 67, 0, - 4, 0, 13, 0, 4, 0, 92, 0, 0, 0, 93, 0, 0, 0, 94, 0, 37, 0, 15, 0, 22, 0, 32, 0, 0, 0, 95, 0, 4, 0, 92, 0, - 4, 0, 96, 0, 14, 0, 97, 0, 35, 0, 98, 0, 35, 0, 99, 0, 4, 0,100, 0, 4, 0,101, 0, 14, 0,102, 0, 0, 0,103, 0, - 4, 0,104, 0, 4, 0,105, 0, 11, 0,106, 0, 8, 0,107, 0, 38, 0, 3, 0, 4, 0,108, 0, 4, 0,109, 0, 11, 0, 2, 0, - 39, 0, 20, 0, 22, 0, 32, 0, 34, 0, 75, 0, 0, 0, 16, 0, 0, 0,110, 0, 2, 0, 18, 0, 7, 0,111, 0, 7, 0,112, 0, - 7, 0,113, 0, 7, 0,114, 0, 7, 0,115, 0, 7, 0,116, 0, 7, 0,117, 0, 7, 0,118, 0, 7, 0,119, 0, 7, 0,120, 0, - 7, 0,121, 0, 31, 0, 80, 0, 27, 0,122, 0, 0, 0,123, 0, 0, 0,124, 0, 40, 0, 14, 0, 41, 0,125, 0, 4, 0,126, 0, - 4, 0,127, 0, 4, 0,128, 0, 4, 0,129, 0, 0, 0,130, 0, 0, 0,131, 0, 0, 0,132, 0, 0, 0, 27, 0, 2, 0,133, 0, - 2, 0,134, 0, 2, 0,135, 0, 2, 0, 18, 0, 4, 0, 30, 0, 42, 0, 33, 0, 22, 0, 32, 0, 0, 0, 35, 0, 14, 0,136, 0, - 43, 0,137, 0, 44, 0,138, 0, 45, 0,139, 0, 45, 0,140, 0, 2, 0,141, 0, 2, 0,142, 0, 2, 0,132, 0, 2, 0, 18, 0, - 2, 0,143, 0, 2, 0, 16, 0, 4, 0,144, 0, 2, 0,145, 0, 2, 0,146, 0, 2, 0,147, 0, 2, 0,148, 0, 2, 0,149, 0, - 2, 0,150, 0, 4, 0,151, 0, 4, 0,152, 0, 38, 0,153, 0, 25, 0,154, 0, 7, 0,155, 0, 4, 0,156, 0, 2, 0,157, 0, - 2, 0,158, 0, 2, 0,159, 0, 0, 0,160, 0, 0, 0,161, 0, 7, 0,162, 0, 7, 0,163, 0, 46, 0, 65, 0, 2, 0,164, 0, - 2, 0,165, 0, 2, 0,166, 0, 2, 0,167, 0, 27, 0,168, 0, 47, 0,169, 0, 0, 0,170, 0, 0, 0,171, 0, 0, 0,172, 0, - 0, 0,173, 0, 0, 0,174, 0, 7, 0,175, 0, 7, 0,176, 0, 7, 0,177, 0, 2, 0,178, 0, 2, 0,179, 0, 2, 0,180, 0, - 2, 0,181, 0, 2, 0,182, 0, 2, 0,183, 0, 0, 0,184, 0, 0, 0,124, 0, 7, 0,185, 0, 7, 0,186, 0, 7, 0,187, 0, - 7, 0,188, 0, 7, 0,189, 0, 7, 0, 56, 0, 7, 0,190, 0, 7, 0,191, 0, 7, 0,192, 0, 7, 0,193, 0, 7, 0,194, 0, - 7, 0,195, 0, 7, 0,196, 0, 7, 0,197, 0, 7, 0,198, 0, 7, 0,199, 0, 7, 0,200, 0, 7, 0,201, 0, 7, 0,202, 0, - 7, 0,203, 0, 7, 0,204, 0, 7, 0,205, 0, 7, 0,206, 0, 7, 0,207, 0, 7, 0,208, 0, 7, 0,209, 0, 7, 0,210, 0, - 7, 0,211, 0, 7, 0,212, 0, 7, 0,213, 0, 7, 0,214, 0, 7, 0,215, 0, 7, 0,216, 0, 7, 0,217, 0, 7, 0,218, 0, - 7, 0,219, 0, 7, 0,220, 0, 7, 0,221, 0, 7, 0,222, 0, 7, 0,223, 0, 7, 0,224, 0, 7, 0,225, 0, 7, 0,226, 0, - 48, 0, 15, 0, 0, 0, 35, 0, 11, 0,227, 0, 0, 0,228, 0, 0, 0,229, 0, 4, 0,230, 0, 4, 0,231, 0, 11, 0,232, 0, - 7, 0,233, 0, 7, 0,234, 0, 7, 0,235, 0, 4, 0,236, 0, 11, 0,237, 0, 11, 0,238, 0, 4, 0,239, 0, 4, 0, 27, 0, - 49, 0, 6, 0, 7, 0,185, 0, 7, 0,186, 0, 7, 0,187, 0, 7, 0,240, 0, 7, 0, 66, 0, 4, 0, 63, 0, 50, 0, 5, 0, - 2, 0, 18, 0, 2, 0, 37, 0, 2, 0, 63, 0, 2, 0,241, 0, 49, 0,235, 0, 51, 0, 17, 0, 27, 0,168, 0, 42, 0,242, 0, - 52, 0,243, 0, 7, 0,244, 0, 7, 0,245, 0, 2, 0, 16, 0, 2, 0,246, 0, 7, 0,112, 0, 7, 0,113, 0, 7, 0,247, 0, - 4, 0,248, 0, 2, 0,249, 0, 2, 0,250, 0, 4, 0,132, 0, 4, 0,144, 0, 2, 0,251, 0, 2, 0,252, 0, 53, 0, 25, 0, - 2, 0, 18, 0, 2, 0,253, 0, 7, 0,254, 0, 7, 0,255, 0, 2, 0,143, 0, 2, 0, 0, 1, 4, 0, 1, 1, 4, 0, 2, 1, - 27, 0,168, 0, 4, 0, 3, 1, 2, 0, 4, 1, 2, 0, 5, 1, 11, 0, 6, 1, 7, 0, 7, 1, 7, 0, 8, 1, 2, 0, 9, 1, - 2, 0, 10, 1, 2, 0, 11, 1, 2, 0, 12, 1, 7, 0, 13, 1, 7, 0, 14, 1, 7, 0, 15, 1, 7, 0, 16, 1, 50, 0, 17, 1, - 54, 0, 18, 1, 55, 0, 13, 0, 4, 0, 19, 1, 4, 0, 20, 1, 2, 0, 21, 1, 2, 0, 18, 0, 2, 0, 22, 1, 2, 0, 23, 1, - 27, 0,168, 0, 7, 0, 24, 1, 4, 0, 25, 1, 0, 0, 26, 1, 7, 0, 27, 1, 4, 0, 28, 1, 4, 0,132, 0, 56, 0, 4, 0, - 27, 0,168, 0, 0, 0, 29, 1, 4, 0, 30, 1, 4, 0, 27, 0, 47, 0, 64, 0, 22, 0, 32, 0, 34, 0, 75, 0, 7, 0, 31, 1, - 7, 0, 32, 1, 7, 0, 33, 1, 7, 0, 34, 1, 7, 0, 35, 1, 7, 0, 36, 1, 7, 0, 37, 1, 7, 0, 38, 1, 7, 0, 39, 1, - 7, 0, 30, 0, 7, 0, 40, 1, 7, 0, 41, 1, 7, 0, 42, 1, 7, 0, 43, 1, 7, 0, 44, 1, 7, 0, 45, 1, 7, 0, 46, 1, - 7, 0, 47, 1, 7, 0, 48, 1, 7, 0, 49, 1, 7, 0, 50, 1, 7, 0, 51, 1, 2, 0, 52, 1, 2, 0, 53, 1, 2, 0, 54, 1, - 2, 0, 55, 1, 2, 0, 56, 1, 2, 0, 57, 1, 2, 0, 58, 1, 2, 0, 18, 0, 2, 0, 16, 0, 2, 0,246, 0, 7, 0, 59, 1, - 7, 0, 60, 1, 7, 0, 61, 1, 7, 0, 62, 1, 4, 0, 63, 1, 4, 0, 64, 1, 2, 0, 65, 1, 2, 0, 66, 1, 2, 0, 22, 1, - 2, 0,130, 0, 4, 0, 22, 0, 4, 0,127, 0, 4, 0,128, 0, 4, 0,129, 0, 7, 0, 67, 1, 7, 0, 68, 1, 7, 0, 67, 0, - 40, 0, 69, 1, 57, 0, 70, 1, 31, 0, 80, 0, 42, 0,242, 0, 48, 0, 71, 1, 50, 0, 17, 1, 51, 0, 72, 1, 25, 0,154, 0, - 53, 0, 73, 1, 55, 0, 74, 1, 56, 0, 75, 1, 0, 0, 76, 1, 0, 0,124, 0, 58, 0, 13, 0, 7, 0, 77, 1, 7, 0, 78, 1, - 7, 0,176, 0, 4, 0, 18, 0, 0, 0,171, 0, 0, 0,172, 0, 0, 0,173, 0, 0, 0,174, 0, 4, 0, 27, 0, 7, 0, 79, 1, - 7, 0, 80, 1, 7, 0, 81, 1, 27, 0, 44, 0, 59, 0, 9, 0, 50, 0, 82, 1, 7, 0, 33, 1, 7, 0, 34, 1, 7, 0, 35, 1, - 4, 0, 18, 0, 7, 0, 83, 1, 7, 0, 84, 1, 4, 0, 85, 1, 4, 0, 86, 1, 60, 0, 74, 0, 22, 0, 32, 0, 34, 0, 75, 0, - 2, 0, 16, 0, 2, 0, 18, 0, 4, 0, 87, 1, 2, 0,179, 0, 2, 0, 88, 1, 7, 0,185, 0, 7, 0,186, 0, 7, 0,187, 0, - 7, 0,188, 0, 7, 0, 89, 1, 7, 0, 90, 1, 7, 0, 91, 1, 7, 0, 92, 1, 7, 0, 93, 1, 7, 0, 94, 1, 7, 0, 95, 1, - 7, 0, 96, 1, 7, 0, 97, 1, 7, 0, 98, 1, 7, 0, 99, 1, 54, 0,100, 1, 2, 0,253, 0, 2, 0, 30, 0, 7, 0,112, 0, - 7, 0,113, 0, 7, 0,101, 1, 7, 0,102, 1, 7, 0,103, 1, 7, 0,104, 1, 7, 0,105, 1, 2, 0,106, 1, 2, 0,107, 1, - 2, 0,108, 1, 2, 0,109, 1, 0, 0,110, 1, 0, 0,111, 1, 2, 0,112, 1, 2, 0,113, 1, 2, 0,114, 1, 2, 0,115, 1, - 2, 0,116, 1, 7, 0,117, 1, 7, 0,118, 1, 7, 0,119, 1, 7, 0,120, 1, 2, 0,121, 1, 2, 0, 67, 0, 2, 0,122, 1, - 2, 0,123, 1, 2, 0,124, 1, 2, 0,125, 1, 7, 0,126, 1, 7, 0,127, 1, 7, 0,128, 1, 7, 0,129, 1, 7, 0,130, 1, - 7, 0,131, 1, 7, 0,132, 1, 7, 0,133, 1, 7, 0,134, 1, 7, 0,135, 1, 7, 0,136, 1, 7, 0,137, 1, 2, 0,138, 1, - 0, 0,139, 1, 31, 0, 80, 0, 46, 0,140, 1, 2, 0,141, 1, 2, 0, 76, 1, 0, 0,142, 1, 25, 0,154, 0, 57, 0, 70, 1, - 61, 0, 18, 0, 7, 0,143, 1, 7, 0,144, 1, 7, 0,145, 1, 7, 0,146, 1, 7, 0,147, 1, 7, 0,148, 1, 7, 0,149, 1, - 7, 0,150, 1, 7, 0,151, 1, 7, 0,152, 1, 2, 0,153, 1, 2, 0,154, 1, 2, 0,155, 1, 2, 0,156, 1, 7, 0,157, 1, - 7, 0,158, 1, 7, 0,159, 1, 7, 0,160, 1, 62, 0, 4, 0, 4, 0, 18, 0, 4, 0,161, 1, 4, 0,162, 1, 4, 0, 67, 0, - 63, 0,126, 0, 22, 0, 32, 0, 34, 0, 75, 0, 2, 0,163, 1, 2, 0, 18, 0, 7, 0,185, 0, 7, 0,186, 0, 7, 0,187, 0, - 7, 0,164, 1, 7, 0,165, 1, 7, 0,166, 1, 7, 0,167, 1, 7, 0,168, 1, 7, 0,169, 1, 7, 0,170, 1, 7, 0,171, 1, - 7, 0,172, 1, 7, 0,173, 1, 7, 0,174, 1, 7, 0,175, 1, 7, 0,176, 1, 7, 0,177, 1, 7, 0,178, 1, 7, 0,179, 1, - 7, 0,180, 1, 7, 0,181, 1, 7, 0,182, 1, 7, 0,183, 1, 61, 0,184, 1, 62, 0,185, 1, 7, 0,186, 1, 7, 0,187, 1, - 7, 0,188, 1, 7, 0,189, 1, 7, 0,190, 1, 7, 0,191, 1, 7, 0,192, 1, 2, 0,193, 1, 2, 0,194, 1, 2, 0,195, 1, - 0, 0,196, 1, 0, 0,197, 1, 7, 0,198, 1, 7, 0,199, 1, 2, 0,200, 1, 2, 0,201, 1, 7, 0,202, 1, 7, 0,203, 1, - 7, 0,204, 1, 7, 0,205, 1, 2, 0,206, 1, 2, 0,207, 1, 4, 0, 87, 1, 4, 0,208, 1, 2, 0,209, 1, 2, 0,210, 1, - 2, 0,211, 1, 2, 0,212, 1, 7, 0,213, 1, 7, 0,214, 1, 7, 0,215, 1, 7, 0,216, 1, 7, 0,217, 1, 7, 0,218, 1, - 7, 0,219, 1, 7, 0,220, 1, 7, 0,221, 1, 7, 0,222, 1, 0, 0,223, 1, 7, 0,224, 1, 7, 0,225, 1, 7, 0,226, 1, - 4, 0,227, 1, 0, 0,228, 1, 0, 0,122, 1, 0, 0,229, 1, 0, 0, 76, 1, 2, 0,230, 1, 2, 0,231, 1, 2, 0,141, 1, - 2, 0,232, 1, 2, 0,233, 1, 2, 0,234, 1, 7, 0,235, 1, 7, 0,236, 1, 7, 0,237, 1, 7, 0,238, 1, 7, 0,239, 1, - 2, 0,164, 0, 2, 0,165, 0, 50, 0,240, 1, 50, 0,241, 1, 0, 0,242, 1, 0, 0,243, 1, 0, 0,244, 1, 0, 0,245, 1, - 2, 0,246, 1, 2, 0,247, 1, 7, 0,248, 1, 7, 0,249, 1, 46, 0,140, 1, 57, 0, 70, 1, 31, 0, 80, 0, 64, 0,250, 1, - 25, 0,154, 0, 7, 0,251, 1, 7, 0,252, 1, 7, 0,253, 1, 7, 0,254, 1, 7, 0,255, 1, 2, 0, 0, 2, 2, 0, 30, 0, - 7, 0, 1, 2, 7, 0, 2, 2, 7, 0, 3, 2, 7, 0, 4, 2, 7, 0, 5, 2, 7, 0, 6, 2, 7, 0, 7, 2, 7, 0, 8, 2, - 7, 0, 9, 2, 2, 0, 10, 2, 2, 0, 11, 2, 4, 0, 12, 2, 2, 0, 13, 2, 2, 0, 14, 2, 14, 0, 15, 2, 65, 0, 4, 0, - 22, 0, 32, 0, 0, 0, 35, 0, 66, 0, 2, 0, 38, 0,153, 0, 67, 0, 20, 0, 67, 0, 0, 0, 67, 0, 1, 0, 68, 0, 16, 2, - 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 17, 2, 2, 0, 18, 2, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 7, 0, 19, 2, - 7, 0, 20, 2, 7, 0, 21, 2, 7, 0, 22, 2, 7, 0, 23, 2, 7, 0, 24, 2, 7, 0, 25, 2, 7, 0, 22, 0, 7, 0, 26, 2, - 7, 0, 27, 2, 69, 0, 20, 0, 22, 0, 32, 0, 34, 0, 75, 0, 68, 0, 16, 2, 14, 0, 28, 2, 14, 0, 29, 2, 14, 0, 30, 2, - 31, 0, 80, 0, 63, 0, 31, 2, 0, 0, 18, 0, 0, 0, 32, 2, 2, 0, 33, 2, 2, 0,178, 0, 2, 0, 27, 0, 7, 0, 77, 1, - 7, 0,176, 0, 7, 0, 78, 1, 7, 0, 34, 2, 7, 0, 35, 2, 7, 0, 36, 2, 67, 0, 37, 2, 30, 0, 11, 0, 7, 0, 38, 2, - 7, 0, 39, 2, 7, 0, 40, 2, 7, 0,255, 0, 2, 0, 54, 0, 0, 0, 41, 2, 0, 0, 42, 2, 0, 0, 43, 2, 0, 0, 44, 2, - 0, 0, 45, 2, 0, 0, 46, 2, 29, 0, 7, 0, 7, 0, 47, 2, 7, 0, 39, 2, 7, 0, 40, 2, 2, 0, 43, 2, 2, 0, 46, 2, - 7, 0,255, 0, 7, 0, 27, 0, 70, 0, 21, 0, 70, 0, 0, 0, 70, 0, 1, 0, 2, 0, 16, 0, 2, 0, 48, 2, 2, 0, 46, 2, - 2, 0, 18, 0, 2, 0, 49, 2, 2, 0, 50, 2, 2, 0, 51, 2, 2, 0, 52, 2, 2, 0, 53, 2, 2, 0, 54, 2, 2, 0, 55, 2, - 2, 0, 56, 2, 7, 0, 57, 2, 7, 0, 58, 2, 29, 0, 48, 0, 30, 0, 49, 0, 2, 0, 59, 2, 2, 0, 60, 2, 4, 0, 61, 2, - 71, 0, 5, 0, 2, 0, 62, 2, 2, 0, 48, 2, 0, 0, 18, 0, 0, 0, 27, 0, 2, 0, 30, 0, 72, 0, 4, 0, 7, 0, 5, 0, - 7, 0, 6, 0, 7, 0, 63, 2, 7, 0, 64, 2, 73, 0, 4, 0, 14, 0, 65, 2, 74, 0, 66, 2, 4, 0, 67, 2, 0, 0, 94, 0, - 75, 0, 68, 0, 22, 0, 32, 0, 34, 0, 75, 0, 68, 0, 16, 2, 14, 0, 68, 2, 14, 0, 29, 2, 73, 0, 69, 2, 27, 0, 70, 2, - 27, 0, 71, 2, 27, 0, 72, 2, 31, 0, 80, 0, 76, 0, 73, 2, 33, 0, 74, 2, 63, 0, 31, 2, 14, 0, 75, 2, 7, 0, 77, 1, - 7, 0,176, 0, 7, 0, 78, 1, 2, 0, 16, 0, 2, 0,178, 0, 2, 0, 76, 2, 2, 0, 77, 2, 7, 0, 78, 2, 7, 0, 79, 2, - 4, 0, 80, 2, 2, 0, 27, 0, 2, 0, 33, 2, 2, 0, 18, 0, 2, 0, 81, 2, 7, 0, 82, 2, 7, 0, 83, 2, 7, 0, 84, 2, - 2, 0, 51, 2, 2, 0, 52, 2, 2, 0, 85, 2, 2, 0, 86, 2, 4, 0, 87, 2, 11, 0, 88, 2, 2, 0, 22, 0, 2, 0, 97, 0, - 2, 0, 66, 0, 2, 0, 89, 2, 7, 0, 90, 2, 7, 0, 91, 2, 7, 0, 92, 2, 7, 0, 93, 2, 7, 0, 94, 2, 7, 0, 95, 2, - 7, 0, 96, 2, 7, 0, 97, 2, 7, 0, 98, 2, 7, 0, 99, 2, 0, 0,100, 2, 77, 0,101, 2, 78, 0,102, 2, 0, 0,103, 2, - 65, 0,104, 2, 65, 0,105, 2, 65, 0,106, 2, 65, 0,107, 2, 4, 0,108, 2, 7, 0, 84, 0, 4, 0,109, 2, 4, 0,110, 2, - 72, 0,111, 2, 4, 0,112, 2, 4, 0,113, 2, 71, 0,114, 2, 71, 0,115, 2, 79, 0, 47, 0, 22, 0, 32, 0, 34, 0, 75, 0, - 68, 0, 16, 2, 31, 0, 80, 0, 33, 0, 74, 2, 63, 0, 31, 2, 80, 0,116, 2, 81, 0,117, 2, 82, 0,118, 2, 83, 0,119, 2, - 84, 0,120, 2, 85, 0,121, 2, 86, 0,122, 2, 87, 0,123, 2, 88, 0,124, 2, 89, 0,125, 2, 90, 0,126, 2, 91, 0,127, 2, - 92, 0,128, 2, 93, 0,129, 2, 79, 0,130, 2, 94, 0,131, 2, 95, 0,132, 2, 95, 0,133, 2, 95, 0,134, 2, 95, 0,135, 2, - 95, 0,136, 2, 4, 0, 53, 0, 4, 0,137, 2, 4, 0,138, 2, 4, 0,139, 2, 4, 0,140, 2, 4, 0,141, 2, 4, 0,142, 2, - 7, 0, 77, 1, 7, 0,176, 0, 7, 0, 78, 1, 2, 0,178, 0, 2, 0, 76, 2, 2, 0,143, 2, 2, 0, 18, 0, 2, 0,144, 2, - 2, 0,145, 2, 0, 0,146, 2, 0, 0,147, 2, 2, 0, 33, 2, 96, 0,148, 2, 88, 0, 8, 0, 11, 0,149, 2, 7, 0,150, 2, - 4, 0,151, 2, 0, 0, 18, 0, 0, 0,152, 2, 2, 0, 87, 1, 2, 0,153, 2, 2, 0,154, 2, 86, 0, 7, 0, 4, 0,155, 2, - 4, 0,156, 2, 4, 0,157, 2, 4, 0,158, 2, 2, 0, 48, 2, 0, 0,159, 2, 0, 0, 18, 0, 90, 0, 5, 0, 4, 0,155, 2, - 4, 0,156, 2, 0, 0,160, 2, 0, 0,161, 2, 2, 0, 18, 0, 97, 0, 2, 0, 4, 0,162, 2, 7, 0, 40, 2, 91, 0, 3, 0, - 97, 0,163, 2, 4, 0,164, 2, 4, 0, 18, 0, 89, 0, 4, 0, 7, 0,165, 2, 2, 0,166, 2, 0, 0, 18, 0, 0, 0,161, 2, - 92, 0, 4, 0, 0, 0,240, 0, 0, 0,185, 0, 0, 0,186, 0, 0, 0,187, 0, 81, 0, 5, 0, 4, 0,167, 2, 4, 0,141, 2, - 2, 0, 48, 2, 0, 0, 18, 0, 0, 0, 27, 0, 83, 0, 2, 0, 4, 0,168, 2, 4, 0,169, 2, 82, 0, 6, 0, 42, 0,149, 2, - 0, 0, 18, 0, 0, 0,152, 2, 2, 0, 87, 1, 2, 0,153, 2, 2, 0,154, 2, 84, 0, 2, 0, 7, 0,170, 2, 4, 0, 18, 0, - 85, 0, 4, 0, 0, 0,185, 0, 0, 0,186, 0, 0, 0,187, 0, 0, 0,240, 0, 93, 0, 1, 0, 7, 0,171, 2, 80, 0, 2, 0, - 4, 0, 14, 2, 4, 0, 16, 0, 87, 0, 7, 0, 7, 0,150, 2, 42, 0,149, 2, 0, 0, 18, 0, 0, 0,152, 2, 2, 0, 87, 1, - 2, 0,153, 2, 2, 0,154, 2, 98, 0, 1, 0, 7, 0,172, 2, 99, 0, 1, 0, 4, 0,173, 2,100, 0, 1, 0, 0, 0,174, 2, -101, 0, 1, 0, 7, 0,150, 2,102, 0, 1, 0, 7, 0,170, 2,103, 0, 4, 0, 4, 0,175, 2, 4, 0,176, 2, 7, 0,177, 2, - 4, 0,178, 2,104, 0, 4, 0, 7, 0,240, 0, 7, 0,185, 0, 7, 0,186, 0, 7, 0,187, 0,105, 0, 1, 0,104, 0,151, 2, -106, 0, 5, 0, 4, 0,179, 2, 4, 0,180, 2, 0, 0, 18, 0, 0, 0, 48, 2, 0, 0,181, 2,107, 0, 2, 0, 4, 0,182, 2, - 4, 0,180, 2,108, 0, 10, 0,108, 0, 0, 0,108, 0, 1, 0,106, 0,183, 2,105, 0,184, 2,107, 0,185, 2, 4, 0, 53, 0, - 4, 0,138, 2, 4, 0,137, 2, 4, 0, 27, 0, 89, 0,186, 2, 96, 0, 14, 0, 14, 0,187, 2, 89, 0,186, 2, 0, 0,188, 2, - 0, 0,189, 2, 0, 0,190, 2, 0, 0,191, 2, 0, 0,192, 2, 0, 0,193, 2, 0, 0,194, 2, 0, 0, 18, 0, 95, 0,132, 2, - 95, 0,134, 2, 2, 0,195, 2, 0, 0,196, 2,109, 0, 1, 0, 4, 0,173, 2,110, 0, 9, 0,110, 0, 0, 0,110, 0, 1, 0, - 4, 0, 16, 0, 4, 0, 87, 1, 4, 0,197, 2, 4, 0, 27, 0, 0, 0, 19, 0, 41, 0,125, 0, 0, 0,198, 2,111, 0, 6, 0, -110, 0,199, 2, 47, 0,200, 2, 27, 0,201, 2, 0, 0,202, 2, 4, 0,203, 2, 4, 0,204, 2,112, 0, 7, 0,110, 0,199, 2, - 2, 0,205, 2, 2, 0,187, 2, 2, 0,206, 2, 2, 0, 92, 0, 11, 0,207, 2, 11, 0,208, 2,113, 0, 5, 0,110, 0,199, 2, - 27, 0,168, 0, 0, 0, 19, 0, 7, 0,209, 2, 0, 0, 94, 0,114, 0, 5, 0,110, 0,199, 2, 27, 0,168, 0, 0, 0, 19, 0, - 2, 0,210, 2, 0, 0,211, 2,115, 0, 5, 0,110, 0,199, 2, 7, 0, 90, 0, 7, 0,212, 2, 4, 0,213, 2, 4, 0,214, 2, -116, 0, 5, 0,110, 0,199, 2, 27, 0,215, 2, 0, 0, 72, 0, 4, 0, 87, 1, 4, 0, 18, 0,117, 0, 13, 0,110, 0,199, 2, - 27, 0,216, 2, 27, 0,217, 2, 27, 0,218, 2, 27, 0,219, 2, 7, 0,220, 2, 7, 0,221, 2, 7, 0,212, 2, 7, 0,222, 2, - 4, 0,223, 2, 4, 0,224, 2, 4, 0, 92, 0, 4, 0,225, 2,118, 0, 5, 0,110, 0,199, 2, 2, 0,226, 2, 2, 0, 18, 0, - 7, 0,227, 2, 27, 0,228, 2,119, 0, 3, 0,110, 0,199, 2, 7, 0,229, 2, 4, 0, 92, 0,120, 0, 10, 0,110, 0,199, 2, - 7, 0,230, 2, 4, 0,231, 2, 4, 0, 27, 0, 2, 0, 92, 0, 2, 0,232, 2, 2, 0,233, 2, 2, 0,234, 2, 7, 0,235, 2, - 0, 0,236, 2,121, 0, 3, 0,110, 0,199, 2, 7, 0, 27, 0, 4, 0, 16, 0,122, 0, 6, 0,110, 0,199, 2,123, 0,237, 2, -124, 0,238, 2,125, 0,239, 2, 7, 0,240, 2, 4, 0, 16, 0,126, 0, 11, 0,110, 0,199, 2, 47, 0,200, 2, 27, 0,201, 2, - 0, 0,202, 2, 4, 0,203, 2, 4, 0,204, 2, 7, 0,209, 2, 4, 0,241, 2, 0, 0,236, 2, 7, 0,242, 2, 4, 0, 27, 0, -127, 0, 12, 0,110, 0,199, 2, 27, 0,243, 2, 42, 0,244, 2, 4, 0, 92, 0, 4, 0,245, 2, 7, 0,246, 2, 7, 0,247, 2, - 7, 0,248, 2, 7, 0,249, 2, 0, 0,202, 2, 4, 0,203, 2, 4, 0, 27, 0,128, 0, 3, 0,110, 0,199, 2, 7, 0,250, 2, - 4, 0,251, 2,129, 0, 5, 0,110, 0,199, 2, 7, 0,252, 2, 0, 0,236, 2, 2, 0, 18, 0, 2, 0,253, 2,130, 0, 8, 0, -110, 0,199, 2, 27, 0,168, 0, 7, 0,252, 2, 7, 0,255, 0, 7, 0,108, 0, 0, 0,236, 2, 2, 0, 18, 0, 2, 0, 16, 0, -131, 0, 21, 0,110, 0,199, 2, 47, 0,200, 2, 27, 0,201, 2, 0, 0,202, 2, 4, 0,203, 2, 4, 0,204, 2, 27, 0,254, 2, - 0, 0,236, 2, 2, 0, 18, 0, 2, 0, 27, 0, 7, 0,255, 2, 7, 0, 0, 3, 7, 0, 1, 3, 7, 0, 82, 2, 7, 0, 2, 3, - 7, 0, 3, 3, 7, 0, 4, 3, 7, 0, 5, 3, 7, 0, 6, 3, 7, 0, 7, 3, 7, 0, 67, 0,132, 0, 7, 0,110, 0,199, 2, - 2, 0, 8, 3, 2, 0, 9, 3, 4, 0, 30, 0, 27, 0,168, 0, 7, 0, 10, 3, 0, 0,236, 2,133, 0, 10, 0,110, 0,199, 2, - 27, 0,168, 0, 0, 0, 11, 3, 7, 0, 12, 3, 7, 0, 13, 3, 7, 0, 5, 3, 4, 0, 14, 3, 4, 0, 15, 3, 7, 0, 16, 3, - 0, 0, 19, 0,134, 0, 1, 0,110, 0,199, 2,135, 0, 7, 0,110, 0,199, 2, 41, 0,125, 0,136, 0, 17, 3,137, 0, 18, 3, -138, 0, 19, 3,139, 0, 20, 3, 14, 0, 21, 3,140, 0, 13, 0,110, 0,199, 2, 89, 0, 22, 3, 89, 0, 23, 3, 89, 0, 24, 3, - 89, 0, 25, 3, 89, 0, 26, 3, 89, 0, 27, 3, 86, 0, 28, 3, 4, 0, 29, 3, 4, 0, 30, 3, 7, 0, 31, 3, 7, 0, 32, 3, -141, 0, 33, 3,142, 0, 7, 0,110, 0,199, 2, 89, 0, 22, 3, 89, 0, 34, 3,143, 0, 35, 3,144, 0, 33, 3, 4, 0, 36, 3, - 4, 0, 29, 3,145, 0, 4, 0,110, 0,199, 2, 27, 0,168, 0, 4, 0, 37, 3, 4, 0, 27, 0,146, 0, 2, 0, 4, 0, 38, 3, - 7, 0, 40, 2,147, 0, 2, 0, 4, 0,128, 0, 4, 0, 39, 3,148, 0, 24, 0,110, 0,199, 2, 27, 0,168, 0, 0, 0,236, 2, - 2, 0, 40, 3, 2, 0, 18, 0, 2, 0, 87, 1, 2, 0, 27, 0,146, 0, 41, 3, 4, 0, 42, 3, 7, 0, 43, 3, 4, 0, 53, 0, - 4, 0, 44, 3,147, 0, 45, 3,146, 0, 46, 3, 4, 0, 47, 3, 4, 0, 48, 3, 4, 0, 49, 3, 4, 0, 39, 3, 7, 0, 50, 3, - 7, 0, 51, 3, 7, 0, 52, 3, 7, 0, 53, 3, 7, 0, 54, 3, 11, 0, 55, 3,149, 0, 8, 0,110, 0,199, 2,150, 0, 56, 3, -143, 0, 35, 3, 4, 0, 57, 3, 4, 0, 58, 3, 4, 0, 59, 3, 2, 0, 18, 0, 2, 0, 56, 0,151, 0, 8, 0,110, 0,199, 2, - 27, 0, 44, 0, 2, 0, 3, 1, 2, 0, 18, 0, 2, 0,226, 2, 2, 0, 56, 0, 7, 0, 60, 3, 7, 0, 61, 3,152, 0, 6, 0, -110, 0,199, 2, 4, 0, 62, 3, 2, 0, 18, 0, 2, 0, 63, 3, 7, 0, 64, 3, 0, 0,170, 0,153, 0, 8, 0,110, 0,199, 2, - 0, 0, 65, 3, 0, 0, 66, 3, 0, 0,193, 2, 0, 0, 67, 3, 0, 0, 68, 3, 0, 0, 92, 0, 0, 0,181, 2,154, 0, 3, 0, -110, 0,199, 2,155, 0, 69, 3,139, 0, 20, 3,156, 0, 10, 0,110, 0,199, 2, 27, 0, 70, 3, 27, 0, 71, 3, 0, 0, 72, 3, - 7, 0, 73, 3, 2, 0, 74, 3, 2, 0, 75, 3, 0, 0, 76, 3, 0, 0, 77, 3, 0, 0,211, 2,157, 0, 9, 0,110, 0,199, 2, - 27, 0, 78, 3, 0, 0, 72, 3, 7, 0, 79, 3, 7, 0, 80, 3, 0, 0, 87, 1, 0, 0,226, 2, 0, 0, 81, 3, 0, 0, 27, 0, -158, 0, 1, 0,110, 0,199, 2,159, 0, 11, 0,110, 0,199, 2, 0, 0,236, 2, 7, 0,128, 0, 7, 0, 82, 3, 7, 0, 83, 3, - 7, 0, 84, 3, 7, 0, 85, 3, 7, 0, 86, 3, 4, 0, 18, 0, 2, 0, 87, 3, 2, 0, 88, 3,160, 0, 9, 0,110, 0,199, 2, - 27, 0, 89, 3, 4, 0, 90, 3, 4, 0, 91, 3, 4, 0, 92, 3, 7, 0, 93, 3, 7, 0, 94, 3, 2, 0,226, 2, 2, 0, 18, 0, -161, 0, 29, 0,110, 0,199, 2,162, 0, 95, 3,163, 0, 96, 3, 4, 0, 97, 3, 4, 0, 98, 3, 7, 0, 99, 3, 7, 0, 4, 3, - 7, 0,100, 3, 7, 0,250, 0, 7, 0,101, 3, 7, 0,102, 3, 7, 0,103, 3, 7, 0,104, 3, 7, 0,105, 3, 7, 0,240, 2, - 4, 0,106, 3, 4, 0,107, 3, 0, 0,108, 3, 0, 0,109, 3, 0, 0,110, 3, 0, 0,111, 3, 0, 0, 18, 0, 0, 0,112, 3, - 2, 0,113, 3, 2, 0,114, 3, 4, 0,214, 2, 7, 0,108, 0, 7, 0,115, 3, 4, 0, 27, 0,164, 0, 15, 0,110, 0,199, 2, - 47, 0,200, 2, 27, 0,201, 2, 0, 0,202, 2, 4, 0,203, 2, 4, 0,204, 2, 27, 0,116, 3, 27, 0,117, 3, 54, 0,100, 1, - 0, 0,236, 2, 7, 0,209, 2, 7, 0,118, 3, 0, 0, 18, 0, 0, 0,253, 0, 0, 0,211, 2,165, 0, 16, 0,110, 0,199, 2, - 0, 0,236, 2, 2, 0,119, 3, 2, 0,253, 0, 7, 0,120, 3, 54, 0,121, 3, 7, 0,122, 3, 7, 0,123, 3, 7, 0,124, 3, - 0, 0,125, 3, 4, 0,126, 3, 47, 0,127, 3, 27, 0,128, 3, 4, 0,129, 3, 0, 0,130, 3, 4, 0,131, 3,166, 0, 16, 0, -110, 0,199, 2, 0, 0,132, 3, 0, 0,133, 3, 7, 0,134, 3, 7, 0,135, 3, 0, 0,136, 3, 0, 0,137, 3, 0, 0,138, 3, - 7, 0,124, 3, 0, 0,125, 3, 4, 0,126, 3, 47, 0,127, 3, 27, 0,128, 3, 4, 0,129, 3, 0, 0,130, 3, 4, 0,131, 3, -167, 0, 16, 0,110, 0,199, 2, 0, 0,236, 2, 4, 0,139, 3, 4, 0,140, 3, 27, 0,141, 3, 7, 0,124, 3, 0, 0,125, 3, - 4, 0,126, 3, 47, 0,127, 3, 27, 0,128, 3, 4, 0,129, 3, 0, 0,130, 3, 7, 0,142, 3, 7, 0,143, 3, 2, 0,253, 0, - 2, 0,144, 3,168, 0, 5, 0,110, 0,199, 2,169, 0,145, 3,170, 0,146, 3, 4, 0, 16, 0, 4, 0, 27, 0,171, 0, 8, 0, -110, 0,199, 2, 7, 0,147, 3, 7, 0,148, 3, 7, 0,149, 3, 0, 0,250, 0, 0, 0, 18, 0, 0, 0, 87, 1, 0, 0, 27, 0, -172, 0, 3, 0,173, 0,150, 3, 4, 0, 67, 2, 0, 0, 94, 0,173, 0, 29, 0, 22, 0, 32, 0, 34, 0, 75, 0, 2, 0, 49, 2, - 2, 0, 50, 2, 2, 0,151, 3, 2, 0, 18, 0, 2, 0,152, 3, 2, 0,153, 3, 2, 0,154, 3, 2, 0, 30, 0, 0, 0,155, 3, - 0, 0,156, 3, 0, 0,157, 3, 0, 0,247, 1, 4, 0, 27, 0, 7, 0,158, 3, 7, 0,159, 3, 7, 0,160, 3, 7, 0,161, 3, - 7, 0,162, 3, 7, 0,163, 3, 29, 0,164, 3, 31, 0, 80, 0, 33, 0, 74, 2, 91, 0,127, 2, 0, 0, 72, 0, 7, 0,165, 3, - 7, 0,166, 3,172, 0,167, 3,174, 0, 5, 0,174, 0, 0, 0,174, 0, 1, 0, 0, 0, 19, 0, 0, 0, 18, 0, 0, 0,124, 0, - 68, 0, 3, 0, 7, 0,168, 3, 4, 0, 18, 0, 4, 0, 27, 0, 27, 0,128, 0, 22, 0, 32, 0, 34, 0, 75, 0,175, 0,169, 3, - 2, 0, 16, 0, 2, 0,170, 3, 4, 0,171, 3, 4, 0,172, 3, 4, 0,173, 3, 0, 0,174, 3, 27, 0, 38, 0, 27, 0,175, 3, - 27, 0,176, 3, 27, 0,177, 3, 27, 0,178, 3, 31, 0, 80, 0, 68, 0, 16, 2,176, 0,179, 3,176, 0,180, 3,177, 0,181, 3, - 11, 0, 2, 0,178, 0,182, 3,179, 0,183, 3,180, 0,184, 3, 14, 0,185, 3, 14, 0,186, 3, 14, 0, 29, 2, 14, 0,187, 3, - 14, 0,188, 3, 4, 0, 87, 1, 4, 0,189, 3, 63, 0, 31, 2, 0, 0,190, 3, 4, 0, 33, 2, 4, 0,191, 3, 7, 0, 77, 1, - 7, 0,192, 3, 7, 0,193, 3, 7, 0,176, 0, 7, 0,194, 3, 7, 0,195, 3, 7, 0, 78, 1, 7, 0,196, 3, 7, 0, 19, 2, - 7, 0,197, 3, 7, 0,198, 3, 7, 0,199, 3, 7, 0,200, 3, 7, 0,201, 3, 7, 0,202, 3, 7, 0, 12, 3, 7, 0,203, 3, - 7, 0,244, 0, 7, 0,204, 3, 4, 0,205, 3, 4, 0,206, 3, 2, 0, 18, 0, 2, 0,207, 3, 2, 0,208, 3, 2, 0,209, 3, - 2, 0,210, 3, 2, 0,211, 3, 2, 0,212, 3, 2, 0,213, 3, 2, 0,214, 3, 0, 0,215, 3, 0, 0,216, 3, 4, 0,217, 3, - 4, 0,218, 3, 4, 0,219, 3, 4, 0,220, 3, 7, 0,221, 3, 7, 0, 84, 0, 7, 0,222, 3, 7, 0,223, 3, 7, 0,224, 3, - 7, 0,225, 3, 7, 0,226, 3, 7, 0,220, 0, 7, 0,227, 3, 7, 0,228, 3, 7, 0,229, 3, 7, 0,230, 3, 7, 0,231, 3, - 2, 0,232, 3, 0, 0,233, 3, 0, 0,234, 3, 0, 0,235, 3, 0, 0,236, 3, 0, 0,110, 0, 0, 0,237, 3, 7, 0,238, 3, - 7, 0,239, 3, 14, 0,240, 3, 14, 0,241, 3, 14, 0,242, 3, 14, 0,243, 3, 7, 0,244, 3, 2, 0, 14, 2, 2, 0,245, 3, - 7, 0,151, 2, 4, 0,246, 3, 4, 0,247, 3,181, 0,248, 3, 2, 0,249, 3, 2, 0,251, 0, 7, 0,250, 3, 14, 0,251, 3, - 14, 0,252, 3, 14, 0,253, 3, 14, 0,254, 3,182, 0, 73, 1,183, 0,255, 3, 64, 0, 0, 4, 0, 0, 1, 4, 0, 0, 2, 4, - 2, 0, 67, 2, 7, 0,143, 2,155, 0, 3, 4,143, 0, 4, 4,143, 0, 5, 4, 10, 0, 6, 4, 10, 0, 7, 4, 4, 0, 8, 4, - 4, 0, 9, 4, 14, 0, 10, 4, 14, 0, 11, 4, 14, 0, 12, 4, 7, 0, 13, 4,184, 0, 14, 0,184, 0, 0, 0,184, 0, 1, 0, - 27, 0, 38, 0, 7, 0, 12, 3, 7, 0, 79, 1, 7, 0, 13, 3, 7, 0, 5, 3, 0, 0, 19, 0, 4, 0, 14, 3, 4, 0, 15, 3, - 4, 0, 14, 4, 2, 0, 16, 0, 2, 0, 15, 4, 7, 0, 16, 3,185, 0, 12, 0,185, 0, 0, 0,185, 0, 1, 0, 27, 0, 44, 0, - 4, 0, 16, 4, 4, 0, 14, 2, 7, 0, 79, 1, 7, 0, 17, 4, 7, 0, 18, 4, 7, 0,170, 2, 2, 0, 16, 0, 0, 0, 19, 4, - 0, 0, 20, 4,182, 0, 40, 0, 4, 0, 18, 0, 2, 0, 21, 4, 2, 0, 22, 4, 2, 0, 5, 3, 2, 0, 23, 4, 2, 0, 24, 4, - 2, 0, 25, 4, 2, 0, 26, 4, 2, 0, 27, 4, 7, 0, 28, 4, 7, 0, 29, 4, 7, 0, 30, 4, 7, 0, 31, 4, 7, 0, 32, 4, - 7, 0, 33, 4, 7, 0, 34, 4, 7, 0, 35, 4, 7, 0, 36, 4, 7, 0, 37, 4, 7, 0, 38, 4, 7, 0, 39, 4, 7, 0, 40, 4, - 7, 0, 41, 4, 7, 0, 42, 4, 7, 0, 43, 4, 7, 0, 44, 4, 7, 0, 45, 4, 7, 0, 46, 4, 7, 0, 47, 4, 7, 0, 48, 4, - 7, 0, 49, 4, 7, 0, 50, 4, 7, 0, 51, 4, 7, 0, 52, 4, 7, 0, 53, 4, 7, 0, 54, 4, 47, 0,169, 0,186, 0, 55, 4, - 7, 0, 56, 4, 4, 0,214, 2,187, 0, 5, 0, 64, 0,250, 1, 7, 0, 57, 4, 7, 0, 58, 4, 2, 0, 18, 0, 2, 0, 59, 4, -188, 0, 5, 0,188, 0, 0, 0,188, 0, 1, 0, 4, 0, 16, 0, 4, 0, 60, 4, 11, 0, 2, 0,189, 0, 9, 0,189, 0, 0, 0, -189, 0, 1, 0, 4, 0, 61, 4, 4, 0, 62, 4, 4, 0, 63, 4, 4, 0, 18, 0, 11, 0, 64, 4, 11, 0, 65, 4, 14, 0, 66, 4, -139, 0, 23, 0,139, 0, 0, 0,139, 0, 1, 0, 4, 0, 18, 0, 4, 0, 67, 4, 4, 0, 68, 4, 4, 0, 69, 4, 4, 0, 70, 4, - 4, 0, 71, 4, 4, 0, 72, 4, 4, 0, 73, 4, 4, 0, 27, 0, 4, 0, 62, 4, 4, 0, 14, 2, 2, 0, 74, 4, 2, 0, 56, 0, - 0, 0, 19, 0, 0, 0, 75, 4, 0, 0, 76, 4, 0, 0, 77, 4, 0, 0, 78, 4, 14, 0, 79, 4,190, 0, 80, 4, 11, 0, 81, 4, -191, 0, 1, 0, 7, 0, 47, 2,181, 0, 30, 0, 4, 0, 18, 0, 7, 0, 82, 4, 7, 0, 83, 4, 7, 0, 84, 4, 4, 0, 85, 4, - 4, 0, 86, 4, 4, 0, 87, 4, 4, 0, 88, 4, 7, 0, 89, 4, 7, 0, 90, 4, 7, 0, 91, 4, 7, 0, 92, 4, 7, 0, 93, 4, - 7, 0, 94, 4, 7, 0, 95, 4, 7, 0, 96, 4, 7, 0, 97, 4, 7, 0, 98, 4, 7, 0, 99, 4, 7, 0,100, 4, 7, 0,101, 4, - 7, 0,102, 4, 7, 0,103, 4, 7, 0,104, 4, 7, 0,105, 4, 7, 0,106, 4, 4, 0,107, 4, 4, 0,108, 4, 7, 0,109, 4, - 7, 0,227, 3,183, 0, 54, 0, 4, 0, 62, 4, 4, 0,110, 4,192, 0,111, 4,193, 0,112, 4, 0, 0, 27, 0, 0, 0,113, 4, - 2, 0,114, 4, 7, 0,115, 4, 0, 0,116, 4, 7, 0,117, 4, 7, 0,118, 4, 7, 0,119, 4, 7, 0,120, 4, 7, 0,121, 4, - 7, 0,122, 4, 7, 0,123, 4, 7, 0,124, 4, 7, 0,125, 4, 2, 0,126, 4, 0, 0,127, 4, 2, 0,128, 4, 7, 0,129, 4, - 7, 0,130, 4, 0, 0,131, 4, 4, 0,129, 0, 4, 0,132, 4, 4, 0,133, 4, 2, 0,134, 4, 2, 0,135, 4,191, 0,136, 4, - 4, 0,137, 4, 4, 0, 82, 0, 7, 0,138, 4, 7, 0,139, 4, 7, 0,140, 4, 7, 0,141, 4, 2, 0,142, 4, 2, 0,143, 4, - 2, 0,144, 4, 2, 0,145, 4, 2, 0,146, 4, 2, 0,147, 4, 2, 0,148, 4, 2, 0,149, 4,194, 0,150, 4, 7, 0,151, 4, - 7, 0,152, 4,139, 0,153, 4, 14, 0, 21, 3,187, 0,154, 4, 7, 0,155, 4, 7, 0,156, 4, 7, 0,157, 4, 4, 0,158, 4, -195, 0, 1, 0, 7, 0,159, 4,155, 0, 52, 0,154, 0,160, 4, 2, 0, 16, 0, 2, 0,161, 4, 2, 0,162, 4, 2, 0,163, 4, - 7, 0,164, 4, 2, 0,165, 4, 2, 0,166, 4, 7, 0,167, 4, 2, 0,168, 4, 2, 0,169, 4, 7, 0,170, 4, 7, 0,171, 4, - 7, 0,172, 4, 4, 0,173, 4, 4, 0,174, 4, 4, 0,175, 4, 4, 0, 27, 0, 7, 0,176, 4, 4, 0,177, 4, 7, 0,178, 4, - 7, 0,179, 4, 7, 0,180, 4, 79, 0,181, 4, 79, 0,182, 4, 0, 0,183, 4, 7, 0,184, 4, 7, 0,185, 4, 31, 0, 80, 0, - 2, 0,186, 4, 0, 0,187, 4, 0, 0,188, 4, 7, 0,189, 4, 4, 0,190, 4, 7, 0,191, 4, 7, 0,192, 4, 4, 0,193, 4, - 4, 0, 18, 0, 7, 0,194, 4, 7, 0,195, 4, 7, 0,196, 4,195, 0,197, 4, 4, 0, 53, 0, 7, 0,198, 4, 7, 0,199, 4, - 7, 0,200, 4, 7, 0,201, 4, 7, 0,202, 4, 7, 0,203, 4, 7, 0,204, 4, 4, 0,205, 4, 7, 0,206, 4,196, 0, 78, 0, - 22, 0, 32, 0, 34, 0, 75, 0, 2, 0,179, 0, 2, 0, 88, 1, 2, 0,122, 1, 2, 0,207, 4, 7, 0,208, 4, 7, 0,209, 4, - 7, 0,210, 4, 7, 0,211, 4, 7, 0,212, 4, 7, 0,213, 4, 7, 0,170, 1, 7, 0,172, 1, 7, 0,171, 1, 7, 0, 30, 0, - 4, 0,214, 4, 7, 0,215, 4, 7, 0,216, 4, 7, 0,217, 4, 7, 0,218, 4, 7, 0,219, 4, 7, 0,220, 4, 7, 0,221, 4, - 2, 0,222, 4, 2, 0, 87, 1, 2, 0,223, 4, 2, 0,224, 4, 2, 0,225, 4, 2, 0,226, 4, 2, 0,227, 4, 2, 0,228, 4, - 7, 0,229, 4, 7, 0,230, 4, 7, 0,231, 4, 7, 0,232, 4, 7, 0,233, 4, 7, 0,234, 4, 7, 0,235, 4, 7, 0,236, 4, - 7, 0,237, 4, 7, 0,238, 4, 7, 0,239, 4, 7, 0,240, 4, 2, 0,241, 4, 2, 0,242, 4, 2, 0,243, 4, 2, 0,244, 4, - 7, 0,245, 4, 7, 0,246, 4, 7, 0,247, 4, 7, 0,248, 4, 2, 0,249, 4, 2, 0,250, 4, 2, 0,251, 4, 2, 0,252, 4, - 7, 0,253, 4, 7, 0,254, 4, 7, 0,255, 4, 7, 0, 0, 5, 7, 0, 1, 5, 7, 0, 2, 5, 7, 0, 3, 5, 2, 0, 4, 5, - 2, 0, 5, 5, 2, 0, 6, 5, 2, 0, 7, 5, 2, 0, 8, 5, 2, 0, 18, 0, 7, 0, 9, 5, 7, 0, 10, 5, 31, 0, 80, 0, - 46, 0,140, 1, 2, 0,141, 1, 2, 0, 76, 1, 2, 0,181, 2, 25, 0,154, 0, 57, 0, 70, 1,197, 0, 8, 0,197, 0, 0, 0, -197, 0, 1, 0, 4, 0,205, 3, 4, 0, 11, 5, 4, 0, 18, 0, 2, 0, 12, 5, 2, 0, 13, 5, 27, 0,168, 0,198, 0, 13, 0, - 11, 0, 14, 5, 11, 0, 15, 5, 4, 0, 16, 5, 4, 0, 17, 5, 4, 0, 18, 5, 4, 0, 19, 5, 4, 0, 20, 5, 4, 0, 21, 5, - 4, 0, 22, 5, 4, 0, 23, 5, 4, 0, 24, 5, 4, 0, 27, 0, 0, 0, 25, 5,199, 0, 5, 0, 11, 0, 26, 5, 11, 0, 27, 5, - 4, 0, 28, 5, 4, 0, 30, 0, 0, 0, 29, 5,200, 0, 17, 0, 4, 0, 30, 5, 4, 0, 31, 5, 4, 0, 32, 5, 4, 0, 33, 5, - 4, 0, 34, 5, 4, 0, 35, 5, 4, 0, 36, 5, 4, 0, 37, 5, 4, 0, 38, 5, 4, 0, 39, 5, 4, 0, 40, 5, 4, 0, 41, 5, - 2, 0, 42, 5, 2, 0, 43, 5, 4, 0, 44, 5, 4, 0, 45, 5, 4, 0, 67, 0,201, 0, 17, 0, 4, 0, 16, 0, 4, 0, 32, 5, - 4, 0, 46, 5, 4, 0, 47, 5, 4, 0, 48, 5, 4, 0, 49, 5, 4, 0, 50, 5, 4, 0, 51, 5, 7, 0, 52, 5, 4, 0, 53, 5, - 4, 0, 92, 0, 4, 0, 54, 5, 4, 0, 55, 5, 4, 0, 56, 5, 4, 0, 57, 5, 4, 0, 58, 5, 21, 0, 31, 0,202, 0, 9, 0, - 4, 0, 59, 5, 7, 0, 60, 5, 7, 0, 61, 5, 7, 0, 62, 5, 4, 0, 63, 5, 2, 0, 18, 0, 2, 0, 27, 0, 7, 0, 84, 4, - 7, 0, 30, 0,203, 0, 11, 0,203, 0, 0, 0,203, 0, 1, 0, 0, 0, 19, 0, 63, 0, 64, 5, 64, 0, 65, 5, 4, 0,205, 3, - 4, 0, 66, 5, 4, 0, 67, 5, 4, 0, 27, 0, 4, 0, 68, 5, 4, 0, 69, 5,204, 0, 13, 0, 0, 0, 70, 5, 0, 0,250, 0, - 0, 0, 71, 5, 0, 0, 18, 0, 0, 0, 72, 5, 0, 0, 73, 5, 0, 0, 74, 5, 0, 0, 75, 5, 2, 0, 76, 5, 2, 0, 77, 5, - 7, 0, 78, 5, 0, 0, 79, 5, 0, 0,124, 0,205, 0,106, 0,204, 0, 80, 5,198, 0, 81, 5,199, 0, 82, 5,200, 0, 83, 5, -201, 0, 84, 5, 4, 0, 36, 3, 4, 0,129, 0, 4, 0,132, 4, 7, 0, 85, 5, 4, 0, 86, 5, 4, 0, 87, 5, 4, 0, 88, 5, - 4, 0, 89, 5, 2, 0, 18, 0, 2, 0, 90, 5, 7, 0, 91, 5, 7, 0, 92, 5, 7, 0, 93, 5, 7, 0, 94, 5, 7, 0, 95, 5, - 2, 0, 96, 5, 2, 0, 97, 5, 2, 0, 98, 5, 2, 0, 99, 5, 2, 0,250, 0, 2, 0,100, 5, 4, 0,101, 5, 2, 0,102, 5, - 2, 0,103, 5, 2, 0,109, 1, 2, 0,108, 0, 2, 0,104, 5, 2, 0,105, 5, 2, 0,106, 5, 2, 0,107, 5, 2, 0,108, 5, - 2, 0, 71, 5, 2, 0, 70, 5, 2, 0,109, 5, 2, 0, 72, 5, 2, 0,110, 5, 4, 0,111, 5, 4, 0, 87, 1, 4, 0,112, 5, - 2, 0,113, 5, 2, 0, 67, 0, 2, 0,114, 5, 2, 0,115, 5, 2, 0,116, 5, 2, 0,117, 5, 2, 0,118, 5, 2, 0,119, 5, - 19, 0,120, 5, 19, 0,121, 5, 18, 0,122, 5, 14, 0,123, 5, 2, 0,124, 5, 2, 0,125, 5, 7, 0,126, 5, 7, 0,127, 5, - 7, 0,128, 5, 7, 0,129, 5, 4, 0,130, 5, 7, 0,131, 5, 7, 0,132, 5, 7, 0,133, 5, 7, 0,134, 5, 2, 0,135, 5, - 2, 0,136, 5, 2, 0,137, 5, 2, 0,138, 5, 2, 0,139, 5, 2, 0,140, 5, 7, 0,141, 5, 7, 0,142, 5, 7, 0,143, 5, - 0, 0,144, 5, 4, 0,145, 5, 2, 0,146, 5, 2, 0,247, 1, 0, 0,147, 5, 7, 0,148, 5, 7, 0,149, 5, 0, 0,150, 5, - 0, 0,151, 5, 0, 0,152, 5, 0, 0,153, 5, 4, 0,154, 5, 2, 0,155, 5, 2, 0,156, 5, 7, 0,157, 5, 7, 0,158, 5, - 2, 0,159, 5, 2, 0,160, 5, 7, 0,161, 5, 2, 0,162, 5, 2, 0,163, 5, 4, 0,164, 5, 2, 0,165, 5, 2, 0,166, 5, - 2, 0,167, 5, 2, 0,168, 5, 7, 0,169, 5, 7, 0, 30, 0, 37, 0,170, 5, 0, 0,171, 5,206, 0, 9, 0,206, 0, 0, 0, -206, 0, 1, 0, 0, 0,172, 5, 2, 0,173, 5, 2, 0,174, 5, 2, 0,175, 5, 2, 0, 67, 0, 7, 0,176, 5, 7, 0, 30, 0, -207, 0, 7, 0, 2, 0,231, 2, 2, 0, 87, 1, 2, 0, 94, 3, 2, 0,177, 5, 7, 0,178, 5, 7, 0, 30, 0, 37, 0,179, 5, -208, 0, 5, 0, 7, 0,180, 5, 0, 0, 16, 0, 0, 0, 67, 0, 0, 0, 30, 0, 0, 0,247, 1,209, 0, 15, 0, 7, 0,181, 5, - 7, 0,182, 5, 7, 0,183, 5, 7, 0,184, 5, 7, 0,185, 5, 7, 0,186, 5, 7, 0,187, 5, 7, 0,188, 5, 7, 0,189, 5, - 7, 0,190, 5, 4, 0,191, 5, 7, 0,192, 5, 7, 0,193, 5, 2, 0, 67, 0, 2, 0, 30, 0,210, 0, 32, 0,208, 0,194, 5, - 2, 0,195, 5, 2, 0, 97, 5, 2, 0, 98, 5, 2, 0, 99, 5, 2, 0,250, 0, 2, 0,100, 5, 2, 0,196, 5, 2, 0,197, 5, - 2, 0,198, 5, 2, 0,199, 5,207, 0,200, 5, 2, 0,201, 5, 2, 0,102, 5, 7, 0,202, 5,209, 0,203, 5, 7, 0,220, 4, - 7, 0,221, 4, 4, 0, 18, 0, 2, 0, 87, 1, 2, 0,204, 5, 2, 0,223, 4, 2, 0,224, 4, 2, 0,205, 5, 2, 0, 27, 0, - 2, 0,225, 4, 2, 0,226, 4, 2, 0,227, 4, 2, 0,228, 4, 2, 0,206, 5, 2, 0, 67, 0, 7, 0,207, 5,211, 0, 6, 0, -211, 0, 0, 0,211, 0, 1, 0, 4, 0, 61, 4, 0, 0, 19, 0, 4, 0, 18, 0, 27, 0,208, 5,212, 0, 4, 0,213, 0,146, 3, - 11, 0,209, 5, 0, 0,210, 5, 4, 0, 92, 0,214, 0, 8, 0,212, 0,211, 5, 2, 0, 18, 0, 2, 0, 27, 0, 2, 0,212, 5, - 2, 0,213, 5, 2, 0,214, 5, 4, 0, 67, 0, 11, 0,215, 5,215, 0, 6, 0, 2, 0,108, 0, 2, 0, 67, 4, 2, 0,216, 5, - 2, 0,225, 2, 4, 0, 18, 0, 7, 0,209, 2,216, 0, 14, 0, 2, 0, 18, 0, 2, 0,217, 5, 2, 0,218, 5, 2, 0,219, 5, -215, 0,220, 5, 11, 0,215, 5, 7, 0,221, 5, 7, 0, 56, 0, 4, 0,222, 5, 4, 0,223, 5, 4, 0,224, 5, 4, 0,225, 5, - 41, 0,125, 0, 27, 0,168, 0,217, 0, 14, 0,212, 0,211, 5, 4, 0, 92, 0, 4, 0,226, 5, 7, 0,227, 5, 7, 0,228, 5, - 7, 0,229, 5, 4, 0,230, 5, 4, 0,231, 5, 7, 0,232, 5, 7, 0,233, 5, 4, 0,234, 5, 7, 0,235, 5, 7, 0,236, 5, - 4, 0, 27, 0,218, 0, 1, 0,212, 0,211, 5,219, 0, 7, 0,212, 0,211, 5, 2, 0, 18, 0, 2, 0, 27, 0, 4, 0, 37, 0, - 4, 0,237, 5, 91, 0,238, 5, 11, 0,215, 5,220, 0, 5, 0,220, 0, 0, 0,220, 0, 1, 0, 0, 0, 19, 0, 7, 0,239, 5, - 4, 0, 27, 0,221, 0, 4, 0, 4, 0,108, 0, 7, 0,240, 5, 7, 0,178, 1, 4, 0, 18, 0,222, 0, 85, 0,219, 0,241, 5, -219, 0,242, 5,217, 0,169, 3,218, 0,243, 5, 7, 0,244, 5, 2, 0,245, 5, 2, 0,246, 5, 7, 0,247, 5, 7, 0,248, 5, - 2, 0, 67, 4, 2, 0,249, 5, 7, 0,250, 5, 7, 0,251, 5, 7, 0,252, 5, 2, 0,253, 5, 2, 0,222, 5, 2, 0,254, 5, - 2, 0,255, 5, 2, 0, 0, 6, 2, 0, 1, 6, 7, 0, 2, 6, 7, 0, 3, 6, 7, 0, 4, 6, 2, 0, 5, 6, 2, 0, 6, 6, - 2, 0, 7, 6, 2, 0, 8, 6, 2, 0, 9, 6, 2, 0, 10, 6, 2, 0, 11, 6, 2, 0, 12, 6,214, 0, 13, 6,216, 0, 14, 6, - 7, 0, 15, 6, 7, 0, 16, 6, 7, 0, 17, 6, 2, 0, 18, 6, 2, 0, 19, 6, 0, 0, 20, 6, 0, 0, 21, 6, 2, 0, 22, 6, - 7, 0, 23, 6, 7, 0, 24, 6, 7, 0, 25, 6, 7, 0, 26, 6, 7, 0, 27, 6, 7, 0, 28, 6, 7, 0, 29, 6, 7, 0, 30, 6, - 7, 0, 31, 6, 7, 0, 32, 6, 2, 0, 33, 6, 0, 0, 34, 6, 0, 0, 35, 6, 0, 0, 36, 6, 0, 0, 37, 6, 27, 0, 38, 6, - 0, 0, 39, 6, 0, 0, 40, 6, 0, 0, 41, 6, 0, 0, 42, 6, 0, 0, 43, 6, 0, 0, 44, 6, 0, 0, 45, 6, 0, 0, 46, 6, - 0, 0, 47, 6, 0, 0, 48, 6, 2, 0, 49, 6, 2, 0, 50, 6, 2, 0, 51, 6, 2, 0, 52, 6, 0, 0, 53, 6, 0, 0, 54, 6, - 0, 0, 55, 6, 0, 0, 56, 6, 4, 0, 57, 6, 4, 0, 58, 6, 4, 0, 59, 6, 4, 0, 60, 6, 2, 0, 61, 6, 2, 0, 67, 0, - 4, 0, 62, 6, 7, 0, 63, 6, 7, 0, 64, 6,221, 0, 65, 6,223, 0, 8, 0, 4, 0, 66, 6, 4, 0, 67, 6, 4, 0, 68, 6, - 4, 0, 69, 6, 4, 0, 70, 6, 4, 0, 71, 6, 4, 0, 53, 0, 4, 0,138, 2,224, 0, 4, 0, 7, 0, 72, 6, 0, 0, 73, 6, - 0, 0, 74, 6, 2, 0, 18, 0,225, 0, 4, 0, 7, 0, 75, 6, 4, 0, 18, 0, 4, 0, 76, 6, 4, 0, 56, 0, 41, 0, 46, 0, - 22, 0, 32, 0, 34, 0, 75, 0, 27, 0,208, 5,196, 0, 77, 6, 41, 0, 78, 6, 14, 0, 79, 6,197, 0, 80, 6, 27, 0, 81, 6, - 7, 0, 82, 6, 7, 0, 83, 6, 7, 0, 84, 6, 7, 0, 85, 6, 4, 0,205, 3, 4, 0, 86, 6, 4, 0, 87, 6, 2, 0, 18, 0, - 2, 0, 76, 1, 57, 0, 70, 1,226, 0, 88, 6,222, 0, 89, 6,227, 0, 90, 6,205, 0,185, 0,202, 0, 91, 6, 14, 0,102, 0, - 14, 0, 92, 6, 11, 0, 93, 6, 11, 0, 94, 6, 11, 0, 95, 6, 11, 0, 96, 6, 11, 0, 97, 6,228, 0, 98, 6, 2, 0, 99, 6, - 2, 0,100, 6, 2, 0,251, 0, 2, 0,206, 3, 4, 0,216, 3, 4, 0,101, 6, 14, 0,102, 6,208, 0,194, 5,210, 0,103, 6, -224, 0,104, 6,178, 0,182, 3,225, 0,105, 6,229, 0,106, 6, 10, 0, 7, 4, 10, 0,107, 6,230, 0, 14, 0,230, 0, 0, 0, -230, 0, 1, 0, 42, 0,242, 0, 40, 0, 69, 1,229, 0,106, 6,231, 0,108, 6, 7, 0, 97, 2, 7, 0, 98, 2, 7, 0,108, 0, - 7, 0,109, 6, 2, 0,110, 6, 2, 0, 18, 0, 2, 0,143, 0, 2, 0, 27, 0,232, 0, 39, 0, 7, 0,111, 6, 7, 0,112, 6, - 7, 0,113, 6, 7, 0,114, 6, 7, 0,115, 6, 7, 0,116, 6, 7, 0,117, 6, 7, 0,118, 6, 7, 0,119, 6, 68, 0,120, 6, -178, 0,182, 3,232, 0,121, 6,233, 0,122, 6,234, 0,123, 6,235, 0,124, 6,236, 0,125, 6,237, 0,126, 6, 7, 0,127, 6, - 7, 0,128, 6, 7, 0, 94, 1, 7, 0,129, 6, 7, 0,130, 6, 7, 0,131, 6, 7, 0,132, 6, 7, 0,175, 0, 7, 0,133, 6, - 0, 0,134, 6, 0, 0,135, 6, 0, 0,110, 6, 0, 0,136, 6, 2, 0,137, 6, 2, 0,138, 6, 7, 0,139, 6, 2, 0,140, 6, - 2, 0,141, 6, 7, 0,142, 6, 7, 0,143, 6, 7, 0,144, 6, 7, 0,145, 6,238, 0, 51, 0,239, 0, 0, 0,239, 0, 1, 0, - 14, 0,146, 6, 4, 0,147, 6, 7, 0,148, 6, 2, 0,149, 6, 7, 0,128, 6, 7, 0, 94, 1, 7, 0,150, 6, 2, 0,151, 6, - 0, 0,211, 2, 4, 0,152, 6, 2, 0,135, 6, 2, 0,110, 6, 27, 0,208, 5, 27, 0,153, 6, 14, 0,154, 6,230, 0,155, 6, -238, 0,121, 6, 0, 0,156, 6, 4, 0,205, 3, 4, 0, 86, 6, 2, 0,157, 6, 2, 0,158, 6, 2, 0,159, 6, 2, 0,160, 6, - 2, 0, 18, 0, 2, 0, 32, 2, 7, 0,114, 0, 7, 0,161, 6, 7, 0,162, 6, 7, 0,163, 6, 7, 0,175, 0, 7, 0, 82, 6, - 2, 0,164, 6, 2, 0,165, 6, 2, 0,166, 6, 0, 0,167, 6, 0, 0,168, 6, 0, 0,169, 6, 0, 0,170, 6, 0, 0,171, 6, - 14, 0,172, 6, 14, 0,173, 6, 14, 0,174, 6, 2, 0,175, 6, 2, 0,152, 2, 2, 0,176, 6, 0, 0,177, 6, 11, 0,178, 6, -178, 0,182, 3,240, 0, 24, 0, 19, 0, 37, 0, 19, 0, 63, 0, 18, 0,179, 6, 18, 0,180, 6, 18, 0,181, 6, 7, 0,182, 6, - 7, 0,183, 6, 7, 0,184, 6, 7, 0,185, 6, 2, 0,186, 6, 2, 0,187, 6, 2, 0,188, 6, 2, 0,189, 6, 2, 0,190, 6, - 2, 0, 18, 0, 2, 0,191, 6, 2, 0,192, 6, 2, 0,193, 6, 2, 0,194, 6, 2, 0,195, 6, 2, 0,160, 6, 7, 0,196, 6, - 4, 0,197, 6, 4, 0,198, 6,239, 0, 6, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,146, 6, 4, 0,147, 6, 7, 0,148, 6, - 2, 0,149, 6,241, 0, 8, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,146, 6, 4, 0,147, 6, 7, 0,148, 6, 2, 0,149, 6, - 0, 0,199, 6, 0, 0,124, 0,242, 0, 14, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,146, 6, 4, 0,147, 6, 7, 0,148, 6, - 2, 0,149, 6,240, 0,200, 6,243, 0,201, 6, 14, 0,202, 6, 2, 0, 87, 1, 2, 0,203, 6, 4, 0, 18, 0, 7, 0,204, 6, - 4, 0,160, 6,244, 0, 21, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,146, 6, 4, 0,147, 6, 7, 0,148, 6, 2, 0,149, 6, -240, 0,200, 6, 2, 0,205, 6, 2, 0,206, 6, 2, 0,207, 6, 2, 0,208, 6, 2, 0,191, 6, 2, 0,209, 6, 2, 0,210, 6, - 0, 0, 18, 0, 0, 0, 27, 0, 11, 0, 73, 2, 4, 0,211, 6, 4, 0,212, 6, 22, 0,213, 6, 11, 0,214, 6,245, 0, 18, 0, -239, 0, 0, 0,239, 0, 1, 0, 14, 0,146, 6, 4, 0,147, 6, 7, 0,148, 6, 2, 0,149, 6,240, 0,200, 6, 7, 0, 97, 2, - 7, 0, 98, 2, 2, 0,205, 6, 2, 0,215, 6, 2, 0,216, 6, 2, 0,217, 6, 4, 0, 18, 0, 7, 0,218, 6, 4, 0,110, 6, - 4, 0, 27, 0,178, 0,182, 3,246, 0, 16, 0, 0, 0,219, 6, 0, 0,220, 6, 0, 0,221, 6, 0, 0,222, 6, 0, 0,223, 6, - 0, 0,224, 6, 4, 0,225, 6, 4, 0,226, 6, 4, 0,227, 6, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0,228, 6, 2, 0,229, 6, - 2, 0,190, 1, 2, 0,230, 6, 0, 0,231, 6,247, 0, 16, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,146, 6, 4, 0,147, 6, - 4, 0,232, 6,246, 0,233, 6,248, 0,234, 6, 14, 0,235, 6, 14, 0,236, 6,249, 0,237, 6,237, 0,238, 6,250, 0,239, 6, - 2, 0,240, 6, 2, 0,241, 6, 2, 0,242, 6, 2, 0, 30, 0,251, 0, 15, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,146, 6, - 4, 0,147, 6, 7, 0,148, 6, 2, 0,149, 6,240, 0,200, 6, 14, 0,243, 6,252, 0,244, 6, 0, 0,245, 6,253, 0,246, 6, - 2, 0, 18, 0, 2, 0,247, 6, 2, 0,248, 6, 2, 0,249, 6,254, 0, 25, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,146, 6, - 4, 0,147, 6, 4, 0, 18, 0, 42, 0,244, 2, 40, 0, 69, 1, 54, 0,250, 6,255, 0,251, 6, 0, 1,252, 6,178, 0,182, 3, - 7, 0,253, 6, 7, 0, 97, 2, 7, 0, 98, 2, 7, 0,218, 6, 7, 0,254, 6, 7, 0,255, 6, 2, 0, 0, 7, 2, 0, 27, 0, - 2, 0, 1, 7, 2, 0, 2, 7, 0, 0, 3, 7, 0, 0, 4, 7, 0, 0, 5, 7, 0, 0,160, 6, 1, 1, 11, 0,239, 0, 0, 0, -239, 0, 1, 0, 14, 0,146, 6, 4, 0,147, 6, 7, 0,148, 6, 2, 0,149, 6, 2, 0,203, 6, 2, 0, 18, 0, 4, 0, 27, 0, -243, 0,201, 6,240, 0,200, 6, 2, 1, 31, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,146, 6, 4, 0,147, 6, 7, 0,148, 6, - 2, 0,149, 6, 37, 0, 6, 7, 4, 0, 7, 7, 4, 0, 8, 7, 2, 0, 92, 0, 2, 0, 9, 7, 2, 0, 10, 7, 0, 0, 11, 7, - 0, 0, 12, 7, 4, 0, 13, 7, 4, 0, 14, 7, 4, 0, 15, 7, 2, 0, 16, 7, 2, 0, 17, 7, 2, 0, 18, 7, 2, 0, 19, 7, - 7, 0, 20, 7, 18, 0, 21, 7, 18, 0, 22, 7, 4, 0, 23, 7, 4, 0, 24, 7, 0, 0, 25, 7, 0, 0, 26, 7, 2, 0, 27, 7, - 0, 0,211, 2, 11, 0, 28, 7, 3, 1, 10, 0, 22, 0, 32, 0, 11, 0, 29, 7, 11, 0, 30, 7, 11, 0, 31, 7, 11, 0, 32, 7, - 11, 0, 33, 7, 4, 0, 92, 0, 4, 0, 34, 7, 0, 0, 35, 7, 0, 0, 36, 7, 4, 1, 10, 0,239, 0, 0, 0,239, 0, 1, 0, - 14, 0,146, 6, 4, 0,147, 6, 7, 0,148, 6, 3, 1, 37, 7, 2, 0, 92, 0, 2, 0, 9, 7, 4, 0, 67, 0, 11, 0, 38, 7, - 5, 1, 3, 0, 5, 1, 0, 0, 5, 1, 1, 0, 7, 0, 39, 7, 6, 1, 9, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,146, 6, - 4, 0,147, 6, 7, 0,148, 6,240, 0,200, 6, 14, 0, 40, 7, 4, 0, 41, 7, 4, 0, 18, 0, 7, 1, 27, 0,239, 0, 0, 0, -239, 0, 1, 0, 14, 0,146, 6, 4, 0,147, 6, 7, 0,148, 6, 2, 0,149, 6,240, 0,200, 6, 22, 0, 42, 7, 22, 0, 81, 0, - 2, 0, 18, 0, 2, 0, 67, 0, 7, 0, 43, 7, 7, 0, 97, 2, 7, 0, 98, 2, 7, 0,218, 6, 7, 0, 44, 7, 7, 0, 45, 7, - 7, 0, 46, 7, 57, 0, 70, 1, 57, 0, 47, 7, 4, 0, 48, 7, 2, 0, 49, 7, 2, 0, 50, 7, 2, 0,251, 0, 2, 0, 86, 1, - 14, 0, 51, 7,178, 0,182, 3, 8, 1, 10, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,146, 6, 4, 0,147, 6, 7, 0,148, 6, - 2, 0,149, 6, 2, 0, 18, 0, 2, 0,214, 3, 4, 0, 27, 0,178, 0,182, 3, 9, 1, 7, 0, 9, 1, 0, 0, 9, 1, 1, 0, - 4, 0, 52, 7, 4, 0, 22, 0, 0, 0, 86, 0, 4, 0, 53, 7, 4, 0, 16, 0, 10, 1, 14, 0,239, 0, 0, 0,239, 0, 1, 0, - 14, 0,146, 6, 4, 0,147, 6, 7, 0,148, 6, 2, 0,149, 6, 4, 0, 10, 7, 4, 0, 27, 0, 14, 0, 54, 7, 14, 0, 55, 7, - 0, 0, 56, 7, 0, 0, 57, 7, 4, 0, 58, 7, 4, 0, 59, 7, 11, 1, 6, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,146, 6, - 4, 0,147, 6, 4, 0, 27, 0, 0, 0, 60, 7, 12, 1, 25, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,146, 6, 4, 0,147, 6, - 7, 0, 97, 2, 7, 0, 98, 2, 7, 0, 61, 7, 7, 0, 62, 7, 7, 0,218, 6,231, 0, 63, 7,229, 0,106, 6, 13, 1,251, 6, - 4, 0, 18, 0, 2, 0, 87, 1, 2, 0,110, 6, 4, 0, 64, 7, 7, 0, 65, 7, 7, 0,148, 3, 7, 0, 94, 3, 4, 0, 27, 0, - 7, 0, 66, 7, 7, 0, 67, 7, 4, 0, 68, 7, 4, 0, 30, 0, 11, 0, 69, 7, 14, 1, 7, 0, 14, 1, 0, 0, 14, 1, 1, 0, - 0, 0, 70, 7, 2, 0, 71, 7, 2, 0, 72, 7, 2, 0, 73, 7, 2, 0, 27, 0, 15, 1, 12, 0, 2, 0, 72, 7, 2, 0, 74, 7, - 2, 0, 75, 7, 0, 0,211, 2, 2, 0, 76, 7, 2, 0, 77, 7, 2, 0, 78, 7, 2, 0, 79, 7, 2, 0, 80, 7, 2, 0,191, 6, - 7, 0, 81, 7, 7, 0, 82, 7, 16, 1, 18, 0, 16, 1, 0, 0, 16, 1, 1, 0, 0, 0, 19, 0, 15, 1, 83, 7, 15, 1, 84, 7, - 15, 1, 85, 7, 15, 1, 86, 7, 7, 0, 87, 7, 2, 0, 88, 7, 2, 0, 89, 7, 2, 0, 90, 7, 2, 0, 91, 7, 2, 0, 92, 7, - 2, 0, 93, 7, 2, 0, 94, 7, 2, 0, 95, 7, 2, 0, 96, 7, 2, 0, 27, 0, 17, 1, 10, 0, 0, 0, 97, 7, 0, 0, 98, 7, - 0, 0, 99, 7, 0, 0,100, 7, 0, 0,101, 7, 0, 0,102, 7, 2, 0,103, 7, 2, 0,104, 7, 2, 0,105, 7, 2, 0,106, 7, - 18, 1, 8, 0, 0, 0,107, 7, 0, 0,108, 7, 0, 0,109, 7, 0, 0,110, 7, 0, 0,111, 7, 0, 0,112, 7, 7, 0,109, 6, - 7, 0, 27, 0, 19, 1, 3, 0, 0, 0,113, 7, 2, 0,114, 7, 2, 0, 27, 0, 20, 1, 22, 0, 17, 1,115, 7, 17, 1,116, 7, - 17, 1,117, 7, 17, 1,118, 7, 17, 1,119, 7, 17, 1,120, 7, 17, 1,121, 7, 17, 1,122, 7, 17, 1,123, 7, 17, 1,124, 7, - 17, 1,125, 7, 17, 1,126, 7, 17, 1,127, 7, 17, 1,128, 7, 17, 1,129, 7, 17, 1,130, 7, 17, 1,131, 7, 18, 1,132, 7, - 19, 1,133, 7, 0, 0,134, 7, 7, 0,135, 7, 7, 0, 27, 0, 21, 1,122, 0, 0, 0,136, 7, 0, 0,137, 7, 0, 0,101, 7, - 0, 0,138, 7, 0, 0,113, 7, 0, 0,139, 7, 0, 0,140, 7, 0, 0,141, 7, 0, 0,142, 7, 0, 0,143, 7, 0, 0,144, 7, - 0, 0,145, 7, 0, 0,146, 7, 0, 0,147, 7, 0, 0,148, 7, 0, 0,149, 7, 0, 0,150, 7, 0, 0,151, 7, 0, 0,152, 7, - 0, 0,153, 7, 0, 0,154, 7, 0, 0,155, 7, 0, 0,156, 7, 0, 0,157, 7, 0, 0,158, 7, 0, 0,159, 7, 0, 0,160, 7, - 0, 0,161, 7, 0, 0,162, 7, 0, 0,163, 7, 0, 0,164, 7, 0, 0,165, 7, 0, 0,166, 7, 0, 0,167, 7, 0, 0,168, 7, - 0, 0,169, 7, 0, 0,170, 7, 0, 0,171, 7, 0, 0,172, 7, 0, 0,173, 7, 0, 0,174, 7, 0, 0,175, 7, 0, 0,176, 7, - 0, 0,177, 7, 0, 0,178, 7, 0, 0,179, 7, 0, 0,180, 7, 0, 0,181, 7, 0, 0,182, 7, 0, 0,183, 7, 0, 0,184, 7, - 0, 0,185, 7, 0, 0,186, 7, 0, 0,187, 7, 0, 0,188, 7, 0, 0,189, 7, 0, 0,190, 7, 0, 0,191, 7, 0, 0,192, 7, - 0, 0,193, 7, 0, 0,194, 7, 0, 0,195, 7, 0, 0,196, 7, 0, 0,197, 7, 0, 0,198, 7, 0, 0,199, 7, 0, 0,200, 7, - 0, 0,201, 7, 0, 0,202, 7, 0, 0,203, 7, 0, 0,204, 7, 0, 0,205, 7, 0, 0,206, 7, 0, 0,207, 7, 0, 0,208, 7, - 0, 0,209, 7, 0, 0,210, 7, 0, 0,211, 7, 0, 0,212, 7, 0, 0,213, 7, 0, 0,214, 7, 0, 0,215, 7, 0, 0,216, 7, - 0, 0,217, 7, 0, 0,218, 7, 0, 0,219, 7, 0, 0,220, 7, 0, 0,221, 7, 0, 0,222, 7, 0, 0,223, 7, 0, 0,224, 7, - 0, 0,225, 7, 0, 0,226, 7, 0, 0,227, 7, 0, 0,228, 7, 0, 0,229, 7, 0, 0,230, 7, 0, 0,231, 7, 0, 0,232, 7, - 0, 0,233, 7, 0, 0,234, 7, 0, 0,235, 7, 0, 0,236, 7, 0, 0,237, 7, 0, 0,238, 7, 0, 0,239, 7, 0, 0,240, 7, - 0, 0,241, 7, 0, 0,242, 7, 0, 0,243, 7, 0, 0,244, 7, 0, 0,245, 7, 0, 0,246, 7, 0, 0,247, 7, 0, 0,248, 7, - 0, 0,249, 7, 0, 0,250, 7, 0, 0,251, 7, 0, 0,252, 7, 0, 0,253, 7, 0, 0,254, 7, 0, 0,255, 7, 22, 1, 5, 0, - 0, 0, 0, 8, 0, 0,159, 7, 0, 0,165, 7, 2, 0, 18, 0, 2, 0, 27, 0, 23, 1, 24, 0, 23, 1, 0, 0, 23, 1, 1, 0, - 0, 0,172, 5, 20, 1, 1, 8, 21, 1, 2, 8, 21, 1, 3, 8, 21, 1, 4, 8, 21, 1, 5, 8, 21, 1, 6, 8, 21, 1, 7, 8, - 21, 1, 8, 8, 21, 1, 9, 8, 21, 1, 10, 8, 21, 1, 11, 8, 21, 1, 12, 8, 21, 1, 13, 8, 21, 1, 14, 8, 21, 1, 15, 8, - 21, 1, 16, 8, 21, 1, 17, 8, 21, 1, 18, 8, 22, 1, 19, 8, 4, 0, 20, 8, 4, 0, 27, 0, 24, 1, 3, 0, 24, 1, 0, 0, - 24, 1, 1, 0, 0, 0, 21, 8, 25, 1, 5, 0, 4, 0, 18, 0, 4, 0, 27, 0, 7, 0,151, 2, 7, 0, 22, 8, 7, 0, 47, 2, - 26, 1, 95, 0, 4, 0, 18, 0, 4, 0, 23, 8, 4, 0, 24, 8, 0, 0, 25, 8, 0, 0, 26, 8, 0, 0, 27, 8, 0, 0, 28, 8, - 0, 0, 29, 8, 0, 0, 30, 8, 0, 0, 31, 8, 0, 0, 32, 8, 0, 0, 33, 8, 0, 0, 34, 8, 4, 0, 35, 8, 2, 0, 36, 8, - 2, 0, 37, 8, 2, 0, 38, 8, 2, 0, 39, 8, 4, 0, 40, 8, 4, 0, 41, 8, 4, 0, 42, 8, 4, 0, 43, 8, 2, 0, 44, 8, - 2, 0, 45, 8, 4, 0, 46, 8, 4, 0, 47, 8, 4, 0, 48, 8, 4, 0, 49, 8, 4, 0, 50, 8, 4, 0, 54, 7, 4, 0, 51, 8, - 2, 0, 52, 8, 2, 0, 53, 8, 2, 0, 54, 8, 2, 0, 55, 8, 14, 0, 56, 8, 14, 0, 57, 8, 14, 0, 58, 8, 14, 0, 59, 8, - 14, 0, 60, 8, 14, 0, 61, 8, 0, 0, 62, 8, 2, 0, 63, 8, 2, 0, 64, 8, 2, 0, 65, 8, 2, 0, 66, 8, 2, 0, 67, 8, - 2, 0, 68, 8, 2, 0, 69, 8, 2, 0, 70, 8, 25, 1, 71, 8, 2, 0, 72, 8, 2, 0, 73, 8, 2, 0, 74, 8, 2, 0, 75, 8, - 2, 0, 76, 8, 2, 0, 77, 8, 2, 0, 78, 8, 2, 0, 79, 8, 4, 0, 80, 8, 4, 0, 81, 8, 2, 0, 82, 8, 2, 0, 83, 8, - 2, 0, 84, 8, 2, 0, 85, 8, 2, 0, 86, 8, 2, 0, 87, 8, 2, 0, 88, 8, 2, 0, 89, 8, 2, 0, 90, 8, 2, 0, 91, 8, - 2, 0, 92, 8, 2, 0, 93, 8, 2, 0, 94, 8, 2, 0, 95, 8, 2, 0, 96, 8, 2, 0, 97, 8, 2, 0, 98, 8, 2, 0, 99, 8, - 7, 0,100, 8, 4, 0,101, 8, 7, 0,102, 8, 2, 0, 18, 6, 2, 0, 19, 6, 2, 0,103, 8, 2, 0,104, 8, 50, 0,105, 8, - 7, 0,106, 8, 2, 0,107, 8, 2, 0,247, 1, 0, 0,108, 8, 4, 0,109, 8, 4, 0,110, 8, 7, 0,111, 8, 7, 0, 27, 0, - 27, 1, 24, 0, 22, 0, 32, 0, 14, 0,112, 8, 14, 0,113, 8, 14, 0,114, 8, 14, 0,146, 6, 41, 0,125, 0, 41, 0,115, 8, - 4, 0,116, 8, 4, 0, 67, 0, 2, 0,117, 8, 2, 0,118, 8, 2, 0,119, 8, 2, 0,120, 8, 2, 0,121, 8, 2, 0,122, 8, - 2, 0,123, 8, 2, 0,124, 8, 2, 0,125, 8, 2, 0,126, 8, 2, 0,127, 8, 2, 0, 27, 0,237, 0,128, 8, 11, 0,129, 8, - 2, 0,130, 8, 28, 1, 5, 0, 28, 1, 0, 0, 28, 1, 1, 0, 28, 1,131, 8, 15, 0,132, 8, 4, 0, 18, 0, 29, 1, 7, 0, - 29, 1, 0, 0, 29, 1, 1, 0, 28, 1,133, 8, 28, 1,134, 8, 2, 0,121, 5, 2, 0, 18, 0, 4, 0, 27, 0, 30, 1, 25, 0, - 30, 1, 0, 0, 30, 1, 1, 0, 31, 1,135, 8, 32, 1,239, 6, 0, 0,136, 8, 0, 0,137, 8, 0, 0,138, 8, 2, 0,139, 8, - 2, 0,140, 8, 2, 0,141, 8, 2, 0,142, 8, 2, 0,143, 8, 2, 0, 27, 0, 2, 0, 18, 0, 2, 0,144, 8, 2, 0,145, 8, - 2, 0,146, 8, 4, 0,147, 8, 30, 1,148, 8, 11, 0,149, 8, 4, 0,150, 8, 4, 0,151, 8, 4, 0,152, 8, 4, 0,153, 8, - 0, 0,154, 8, 33, 1, 22, 0, 33, 1, 0, 0, 33, 1, 1, 0, 28, 1,133, 8, 28, 1,134, 8, 28, 1,155, 8, 28, 1,156, 8, - 27, 1,157, 8, 18, 0, 51, 0, 0, 0,147, 6, 0, 0,158, 8, 2, 0,192, 6, 2, 0,193, 6, 2, 0,159, 8, 2, 0, 27, 0, - 2, 0,121, 8, 2, 0, 53, 7, 2, 0, 18, 0, 34, 1,135, 8, 14, 0,160, 8, 14, 0,146, 6, 14, 0,161, 8, 14, 0,162, 8, - 35, 1, 24, 0, 35, 1, 0, 0, 35, 1, 1, 0,240, 0,200, 6, 18, 0,163, 8, 18, 0,164, 8, 2, 0,192, 6, 2, 0,193, 6, - 2, 0,165, 8, 2, 0,166, 8, 2, 0,167, 8, 2, 0, 18, 0, 7, 0, 93, 2, 2, 0,141, 8, 2, 0,142, 8, 2, 0,120, 8, - 2, 0,168, 8, 2, 0,125, 8, 2, 0, 86, 1, 36, 1,135, 8, 14, 0,169, 8, 14, 0,170, 8, 14, 0,161, 8, 0, 0,171, 8, - 11, 0,172, 8, 37, 1, 14, 0, 0, 0,173, 8, 2, 0,174, 8, 2, 0,175, 8, 2, 0,176, 8, 2, 0,177, 8, 2, 0,110, 5, - 2, 0,178, 8, 27, 1,179, 8, 41, 0,180, 8, 4, 0,181, 8, 4, 0,182, 8, 4, 0,183, 8, 4, 0, 27, 0, 0, 0, 70, 7, - 38, 1, 3, 0, 0, 0,184, 8, 4, 0,185, 8, 4, 0,186, 8, 39, 1, 4, 0, 4, 0, 7, 7, 4, 0,187, 8, 4, 0, 13, 7, - 4, 0,188, 8, 40, 1, 2, 0, 4, 0,189, 8, 4, 0,190, 8, 41, 1, 5, 0, 7, 0,191, 8, 7, 0,192, 8, 7, 0,193, 8, - 4, 0, 18, 0, 4, 0, 27, 0, 42, 1, 7, 0, 0, 0,194, 8, 0, 0,221, 6, 44, 0,138, 0, 2, 0,195, 8, 2, 0, 72, 5, - 2, 0,196, 8, 2, 0,197, 8, 43, 1, 12, 0, 43, 1, 0, 0, 43, 1, 1, 0, 4, 0, 28, 0, 4, 0,198, 8, 4, 0,199, 8, - 4, 0,200, 8, 38, 1,201, 8, 0, 0,194, 8, 42, 1,176, 3, 39, 1,202, 8, 40, 1,203, 8, 41, 1,204, 8, 44, 1, 12, 0, - 0, 0, 35, 0, 11, 0,227, 0, 0, 0,228, 0, 4, 0,231, 0, 4, 0,239, 0, 11, 0,232, 0, 7, 0,234, 0, 7, 0,235, 0, - 11, 0,205, 8, 11, 0,206, 8, 11, 0,236, 0, 11, 0,238, 0, 45, 1, 50, 0, 45, 1, 0, 0, 45, 1, 1, 0, 11, 0,207, 8, - 11, 0, 25, 0, 0, 0, 19, 0, 4, 0, 18, 0, 4, 0, 16, 0, 4, 0, 22, 0, 4, 0, 90, 0, 4, 0,208, 8, 4, 0,209, 8, - 4, 0,199, 8, 4, 0,200, 8, 4, 0,210, 8, 4, 0,250, 0, 4, 0,211, 8, 4, 0,212, 8, 7, 0,213, 8, 7, 0,214, 8, - 7, 0,215, 8, 2, 0,216, 8, 2, 0,217, 8, 4, 0,218, 8, 4, 0,219, 8, 43, 1,220, 8, 31, 0, 80, 0, 41, 0,125, 0, - 27, 0,221, 8, 44, 0,138, 0,229, 0,106, 6, 7, 0,222, 8, 7, 0,223, 8, 44, 1, 71, 1, 45, 1,224, 8, 45, 1,225, 8, - 45, 1,226, 8, 14, 0,227, 8, 46, 1,228, 8, 11, 0,229, 8, 7, 0, 84, 4, 7, 0,230, 8, 7, 0,231, 8, 7, 0,232, 8, - 11, 0,233, 8, 4, 0,234, 8, 4, 0,235, 8, 4, 0,236, 8, 7, 0,237, 8, 4, 0,129, 0, 4, 0, 27, 0, 47, 1, 4, 0, - 47, 1, 0, 0, 47, 1, 1, 0, 14, 0,238, 8, 45, 1,239, 8,226, 0, 11, 0, 14, 0,240, 8, 14, 0,227, 8, 14, 0,241, 8, - 45, 1,242, 8, 0, 0,243, 8, 0, 0,244, 8, 4, 0,245, 8, 4, 0,246, 8, 4, 0,247, 8, 4, 0, 27, 0, 19, 0,248, 8, - 48, 1, 4, 0, 7, 0,249, 8, 7, 0, 94, 3, 2, 0,250, 8, 2, 0,251, 8, 49, 1, 6, 0, 7, 0,252, 8, 7, 0,253, 8, - 7, 0,254, 8, 7, 0,255, 8, 4, 0, 0, 9, 4, 0, 1, 9, 50, 1, 8, 0, 7, 0, 2, 9, 7, 0, 3, 9, 7, 0, 4, 9, - 7, 0, 5, 9, 7, 0, 6, 9, 4, 0,250, 2, 4, 0, 7, 9, 4, 0, 8, 9, 51, 1, 2, 0, 7, 0,180, 5, 7, 0, 27, 0, - 52, 1, 5, 0, 7, 0, 9, 9, 7, 0, 10, 9, 4, 0, 92, 0, 4, 0,212, 2, 4, 0, 11, 9, 53, 1, 6, 0, 53, 1, 0, 0, - 53, 1, 1, 0, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 12, 9, 2, 0, 56, 0, 54, 1, 8, 0, 54, 1, 0, 0, 54, 1, 1, 0, - 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 12, 9, 2, 0, 56, 0, 7, 0, 22, 0, 7, 0,129, 0, 55, 1, 45, 0, 55, 1, 0, 0, - 55, 1, 1, 0, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 12, 9, 2, 0,246, 0, 2, 0,126, 4, 2, 0, 13, 9, 7, 0, 14, 9, - 7, 0, 91, 0, 7, 0, 7, 3, 4, 0, 15, 9, 4, 0, 82, 0, 4, 0,214, 2, 7, 0, 16, 9, 7, 0, 17, 9, 7, 0, 18, 9, - 7, 0, 19, 9, 7, 0, 20, 9, 7, 0, 21, 9, 7, 0, 4, 3, 7, 0, 68, 1, 7, 0, 22, 9, 7, 0, 23, 9, 7, 0, 27, 0, - 7, 0, 24, 9, 7, 0, 25, 9, 7, 0, 26, 9, 2, 0, 27, 9, 2, 0, 28, 9, 2, 0, 29, 9, 2, 0, 30, 9, 2, 0, 31, 9, - 2, 0, 32, 9, 2, 0, 33, 9, 2, 0, 34, 9, 2, 0, 32, 2, 2, 0, 35, 9, 2, 0, 29, 2, 2, 0, 36, 9, 0, 0, 37, 9, - 0, 0, 38, 9, 7, 0,244, 0, 56, 1, 39, 9, 64, 0,250, 1, 57, 1, 16, 0, 57, 1, 0, 0, 57, 1, 1, 0, 2, 0, 16, 0, - 2, 0, 18, 0, 2, 0, 12, 9, 2, 0,246, 0, 7, 0,255, 2, 7, 0, 0, 3, 7, 0, 1, 3, 7, 0, 82, 2, 7, 0, 2, 3, - 7, 0, 3, 3, 7, 0, 40, 9, 7, 0, 4, 3, 7, 0, 6, 3, 7, 0, 7, 3,253, 0, 5, 0, 2, 0, 16, 0, 2, 0, 41, 9, - 2, 0, 18, 0, 2, 0, 42, 9, 22, 0, 42, 7,252, 0, 3, 0, 4, 0, 69, 0, 4, 0, 43, 9,253, 0, 2, 0, 58, 1, 7, 0, - 58, 1, 0, 0, 58, 1, 1, 0, 0, 0, 19, 0, 2, 0, 16, 0, 2, 0, 18, 0, 4, 0, 21, 0, 11, 0, 44, 9, 59, 1, 5, 0, - 0, 0, 19, 0, 7, 0, 94, 1, 7, 0, 45, 9, 4, 0, 46, 9, 4, 0, 27, 0, 60, 1, 4, 0, 2, 0, 16, 0, 2, 0, 18, 0, - 2, 0, 67, 0, 2, 0, 30, 0, 61, 1, 4, 0, 0, 0, 19, 0, 63, 0, 47, 9, 7, 0, 94, 1, 7, 0, 27, 0, 62, 1, 6, 0, - 2, 0, 48, 9, 2, 0, 49, 9, 2, 0, 16, 0, 2, 0, 50, 9, 0, 0, 51, 9, 0, 0, 52, 9, 63, 1, 5, 0, 4, 0, 16, 0, - 4, 0, 27, 0, 0, 0, 19, 0, 0, 0, 53, 9, 0, 0, 54, 9, 64, 1, 3, 0, 4, 0, 16, 0, 4, 0, 27, 0, 0, 0, 19, 0, - 65, 1, 4, 0, 2, 0, 55, 9, 2, 0, 56, 9, 2, 0, 18, 0, 2, 0, 27, 0, 66, 1, 6, 0, 0, 0, 19, 0, 0, 0, 57, 9, - 2, 0, 58, 9, 2, 0, 4, 3, 2, 0, 87, 1, 2, 0, 30, 0, 67, 1, 5, 0, 0, 0, 19, 0, 7, 0, 94, 3, 7, 0,217, 4, - 2, 0, 18, 0, 2, 0,226, 2, 68, 1, 3, 0, 0, 0, 19, 0, 4, 0,214, 2, 4, 0, 55, 9, 69, 1, 7, 0, 0, 0, 19, 0, - 7, 0,217, 4, 0, 0, 59, 9, 0, 0, 60, 9, 2, 0, 87, 1, 2, 0, 67, 0, 4, 0, 61, 9, 70, 1, 4, 0, 0, 0, 62, 9, - 0, 0, 63, 9, 4, 0, 16, 0, 7, 0,230, 2, 71, 1, 3, 0, 27, 0, 64, 9, 0, 0, 65, 9, 0, 0, 66, 9, 72, 1, 18, 0, - 72, 1, 0, 0, 72, 1, 1, 0, 2, 0, 16, 0, 2, 0, 67, 9, 2, 0, 18, 0, 2, 0, 68, 9, 2, 0, 69, 9, 2, 0, 70, 9, - 2, 0, 67, 0, 2, 0, 30, 0, 0, 0, 19, 0, 11, 0, 2, 0, 73, 1, 71, 9, 27, 0, 44, 0, 2, 0,216, 5, 2, 0,176, 2, - 2, 0, 72, 9, 2, 0, 27, 0, 74, 1, 11, 0, 0, 0, 19, 0, 0, 0, 16, 0, 0, 0, 73, 9, 2, 0, 18, 0, 2, 0,226, 2, - 2, 0, 74, 9, 4, 0, 75, 9, 4, 0, 76, 9, 4, 0, 77, 9, 4, 0, 78, 9, 4, 0, 79, 9, 75, 1, 1, 0, 0, 0, 80, 9, - 76, 1, 4, 0, 37, 0, 6, 7, 0, 0, 21, 8, 4, 0, 87, 1, 4, 0, 18, 0, 73, 1, 18, 0, 73, 1, 0, 0, 73, 1, 1, 0, - 73, 1, 81, 9, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 82, 9, 2, 0, 70, 9, 2, 0, 67, 9, 2, 0, 83, 9, 2, 0, 30, 0, - 2, 0,247, 1, 0, 0, 19, 0, 11, 0, 2, 0, 77, 1, 71, 9, 72, 1, 84, 9, 2, 0, 14, 0, 2, 0, 85, 9, 4, 0, 86, 9, - 78, 1, 3, 0, 4, 0,240, 2, 4, 0, 27, 0, 27, 0, 44, 0, 79, 1, 15, 0,176, 0, 87, 9, 2, 0, 16, 0, 2, 0, 18, 0, - 7, 0, 14, 9, 7, 0, 91, 0, 0, 0, 19, 0, 0, 0, 88, 9, 2, 0, 89, 9, 2, 0, 90, 9, 2, 0,134, 0, 2, 0, 91, 9, - 2, 0, 92, 9, 2, 0, 27, 0, 7, 0, 93, 9, 7, 0, 94, 9, 80, 1, 8, 0, 7, 0, 95, 9, 7, 0, 96, 9, 7, 0, 97, 9, - 7, 0, 98, 9, 7, 0, 99, 9, 7, 0,100, 9, 7, 0,101, 9, 7, 0,102, 9, 81, 1, 13, 0, 2, 0, 18, 0, 2, 0,103, 9, - 4, 0, 67, 0, 4, 0, 30, 0, 2, 0,177, 6, 7, 0, 84, 4, 7, 0,230, 8, 46, 1,228, 8, 80, 1,104, 9, 2, 0, 16, 0, - 2, 0,115, 5, 2, 0,216, 3, 2, 0,105, 9, 82, 1, 11, 0, 4, 0,240, 2, 2, 0, 16, 0, 2, 0, 18, 0, 27, 0, 44, 0, - 79, 0,106, 9, 0, 0, 19, 0, 7, 0,107, 9, 7, 0,108, 9, 7, 0,222, 3, 2, 0,109, 9, 2, 0,110, 9, 83, 1, 5, 0, - 2, 0, 16, 0, 2, 0, 67, 0, 4, 0, 27, 0, 41, 0,125, 0, 27, 0,208, 5, 84, 1, 5, 0, 4, 0, 27, 0, 4, 0, 16, 0, - 0, 0, 19, 0, 0, 0, 53, 9, 27, 0, 44, 0, 85, 1, 13, 0, 2, 0, 18, 0, 2, 0, 16, 0, 2, 0, 67, 9, 2, 0,223, 3, - 7, 0,111, 9, 7, 0,112, 9, 7, 0, 86, 1, 7, 0,113, 9, 7, 0,192, 3, 7, 0,196, 3, 7, 0,114, 9, 7, 0,115, 9, - 27, 0,116, 9, 86, 1, 10, 0, 2, 0, 18, 0, 2, 0, 16, 0, 7, 0, 14, 9, 7, 0, 91, 0, 0, 0, 19, 0, 0, 0, 88, 9, - 2, 0, 67, 0, 2, 0, 30, 0, 2, 0,247, 1, 2, 0,115, 5, 87, 1, 8, 0, 27, 0, 44, 0, 7, 0, 1, 3, 7, 0,117, 9, - 7, 0,118, 9, 7, 0,223, 3, 2, 0, 67, 0, 2, 0,226, 2, 7, 0, 30, 0, 88, 1, 12, 0, 2, 0, 16, 0, 2, 0, 87, 1, - 2, 0, 18, 0, 2, 0, 4, 3, 2, 0,240, 2, 2, 0,119, 9, 4, 0, 27, 0, 7, 0,120, 9, 7, 0,121, 9, 7, 0,122, 9, - 7, 0,123, 9, 0, 0,124, 9, 89, 1, 9, 0, 2, 0, 18, 0, 2, 0, 16, 0, 4, 0, 14, 9, 4, 0, 91, 0, 0, 0, 19, 0, - 2, 0, 86, 1, 2, 0, 63, 0, 2, 0,125, 9, 2, 0,126, 9, 90, 1, 7, 0, 4, 0,214, 2, 4, 0,127, 9, 4, 0,128, 9, - 4, 0,129, 9, 7, 0,130, 9, 7, 0,131, 9, 0, 0, 59, 9, 91, 1, 7, 0, 0, 0,132, 9, 27, 0,133, 9, 0, 0, 65, 9, - 2, 0,134, 9, 2, 0, 67, 0, 4, 0, 30, 0, 0, 0, 66, 9, 92, 1, 6, 0, 2, 0, 18, 0, 2, 0, 16, 0, 4, 0, 14, 9, - 4, 0, 91, 0, 0, 0,135, 9, 0, 0,136, 9, 93, 1, 1, 0, 4, 0, 18, 0, 94, 1, 6, 0, 0, 0, 94, 0, 2, 0, 16, 0, - 2, 0, 18, 0, 4, 0,137, 9, 7, 0,138, 9, 37, 0, 6, 7, 95, 1, 4, 0, 0, 0,181, 2, 2, 0, 18, 0, 4, 0, 16, 0, - 27, 0, 44, 0, 96, 1, 2, 0, 4, 0, 16, 0, 4, 0,181, 6, 97, 1, 8, 0, 0, 0, 62, 9, 0, 0, 63, 9, 4, 0, 16, 0, - 7, 0, 40, 2, 7, 0,139, 9, 7, 0, 27, 0, 27, 0, 70, 3, 27, 0,140, 9, 98, 1, 11, 0, 0, 0, 54, 6, 0, 0, 18, 0, - 2, 0,141, 9, 4, 0, 16, 0, 7, 0, 94, 1, 7, 0,142, 9, 7, 0,143, 9, 7, 0,144, 9, 4, 0,145, 9, 27, 0, 70, 3, - 27, 0,146, 9, 77, 1, 10, 0, 77, 1, 0, 0, 77, 1, 1, 0, 77, 1, 81, 9, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 67, 9, - 2, 0,147, 9, 0, 0, 19, 0, 11, 0, 2, 0, 27, 0, 44, 0, 46, 1, 17, 0, 22, 0, 32, 0, 0, 0, 35, 0, 38, 0,153, 0, - 11, 0,227, 0, 38, 0,148, 9, 31, 0, 80, 0, 7, 0, 84, 4, 7, 0,149, 9, 7, 0,230, 8, 7, 0, 95, 9, 7, 0, 96, 9, - 7, 0,150, 9, 4, 0, 92, 0, 4, 0, 27, 0, 11, 0,151, 9, 11, 0,152, 9, 11, 0,153, 9, 99, 1, 6, 0, 99, 1, 0, 0, - 99, 1, 1, 0, 27, 0, 44, 0, 11, 0,154, 9, 2, 0,251, 0, 0, 0,211, 2, 64, 0, 4, 0, 22, 0, 32, 0, 14, 0,155, 9, - 4, 0,134, 0, 7, 0,156, 9,100, 1, 28, 0,100, 1, 0, 0,100, 1, 1, 0, 21, 0,157, 9,100, 1, 38, 0, 14, 0,158, 9, - 0, 0, 19, 0, 7, 0,159, 9, 7, 0,160, 9, 7, 0,161, 9, 7, 0,162, 9, 4, 0, 18, 0, 7, 0,163, 9, 7, 0,164, 9, - 7, 0,165, 9, 7, 0,166, 9, 7, 0, 94, 1, 7, 0, 40, 2, 7, 0,167, 9, 7, 0,212, 2, 7, 0,168, 9, 7, 0,169, 9, - 7, 0,170, 9, 7, 0,171, 9, 7, 0,172, 9, 7, 0,176, 0, 4, 0,134, 0, 2, 0,254, 5, 2, 0,173, 9,101, 1, 27, 0, - 22, 0, 32, 0, 34, 0, 75, 0, 14, 0,174, 9, 14, 0,175, 9, 14, 0,176, 9,100, 1,177, 9, 11, 0,178, 9, 11, 0,179, 9, - 4, 0, 18, 0, 4, 0,157, 6, 4, 0,180, 9, 4, 0, 27, 0, 2, 0, 8, 3, 2, 0,211, 6, 4, 0,181, 9, 4, 0,134, 0, - 4, 0,182, 9, 2, 0,183, 9, 2, 0,184, 9, 2, 0,185, 9, 2, 0,186, 9, 4, 0,187, 9, 4, 0,188, 9, 4, 0,189, 9, - 4, 0,190, 9, 4, 0,191, 9, 4, 0,192, 9,102, 1, 2, 0, 7, 0,165, 2, 4, 0, 18, 0,180, 0, 5, 0,102, 1,193, 9, - 4, 0,212, 2, 4, 0,194, 9, 4, 0,195, 9, 4, 0, 18, 0,179, 0, 16, 0, 4, 0,196, 9, 4, 0,197, 9, 4, 0,198, 9, - 4, 0,199, 9, 2, 0,200, 9, 2, 0,201, 9, 2, 0,202, 9, 2, 0,251, 0, 2, 0,203, 9, 2, 0,204, 9, 2, 0,205, 9, - 2, 0,206, 9, 4, 0,207, 9, 4, 0,208, 9, 4, 0,209, 9, 4, 0,210, 9,103, 1, 40, 0,103, 1, 0, 0,103, 1, 1, 0, - 21, 0,157, 9, 14, 0,251, 3, 0, 0, 19, 0, 2, 0, 18, 0, 2, 0,211, 9, 2, 0,209, 3, 2, 0,212, 9, 0, 0,213, 9, - 0, 0,214, 9, 0, 0,215, 9,100, 1,216, 9,103, 1, 38, 0,103, 1,217, 9, 14, 0,218, 9, 14, 0,219, 9,180, 0,184, 3, - 27, 0,220, 9,103, 1,221, 9, 7, 0, 77, 1, 7, 0,176, 0, 7, 0,222, 9, 7, 0, 19, 2, 7, 0,198, 3, 7, 0,200, 3, - 2, 0,232, 3, 2, 0, 27, 0, 7, 0,223, 9, 7, 0,224, 9, 7, 0,203, 3, 7, 0,225, 9, 7, 0,226, 9, 7, 0,227, 9, - 7, 0,228, 9, 7, 0,229, 9, 7, 0,230, 9, 7, 0,231, 9, 7, 0,232, 9, 11, 0,233, 9,177, 0, 16, 0, 14, 0,234, 9, - 74, 0,235, 9, 2, 0, 18, 0, 2, 0, 27, 0, 4, 0,236, 9, 4, 0, 67, 0, 7, 0, 84, 0, 7, 0,237, 9, 7, 0,238, 9, - 14, 0,239, 9, 4, 0,240, 9, 4, 0,241, 9, 11, 0,242, 9, 11, 0,243, 9,179, 0,183, 3, 0, 0,244, 9,104, 1, 1, 0, - 4, 0,241, 9,105, 1, 12, 0, 4, 0,241, 9, 7, 0, 79, 9, 2, 0,245, 9, 2, 0,246, 9, 7, 0,247, 9, 7, 0,248, 9, - 2, 0,249, 9, 2, 0, 18, 0, 7, 0,250, 9, 7, 0,251, 9, 7, 0,252, 9, 7, 0,253, 9,106, 1, 7, 0,106, 1, 0, 0, -106, 1, 1, 0, 14, 0,254, 9, 4, 0, 18, 0, 4, 0,255, 9, 0, 0, 19, 0, 22, 1, 0, 10,176, 0, 9, 0, 22, 0, 32, 0, - 14, 0, 1, 10, 14, 0,234, 9, 14, 0, 2, 10, 14, 0,102, 0, 4, 0, 18, 0, 4, 0, 3, 10, 4, 0, 4, 10, 4, 0, 27, 0, -243, 0, 8, 0, 22, 0, 5, 10, 14, 0,234, 9, 64, 0, 6, 10, 0, 0, 7, 10, 4, 0, 8, 10, 4, 0, 18, 0, 4, 0, 9, 10, - 4, 0, 27, 0,107, 1, 13, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,146, 6, 4, 0,147, 6, 7, 0,148, 6, 2, 0,149, 6, -240, 0,200, 6,176, 0,179, 3,243, 0, 10, 10, 0, 0, 87, 1, 0, 0,203, 6, 2, 0, 18, 0, 7, 0, 11, 10,108, 1, 8, 0, -108, 1, 0, 0,108, 1, 1, 0,106, 1, 12, 10, 31, 0, 80, 0, 14, 0,185, 3, 4, 0, 18, 0, 0, 0, 19, 0, 4, 0,118, 8, -109, 1, 5, 0,109, 1, 0, 0,109, 1, 1, 0, 31, 0, 80, 0, 2, 0, 18, 0, 0, 0, 13, 10,110, 1, 14, 0,110, 1, 0, 0, -110, 1, 1, 0, 11, 0, 2, 0, 2, 0, 16, 0, 2, 0, 18, 0, 0, 0, 14, 10, 0, 0, 15, 10, 0, 0, 19, 0, 2, 0, 27, 0, - 7, 0, 16, 10, 7, 0, 17, 10, 31, 0, 80, 0, 7, 0, 18, 10, 7, 0, 19, 10,111, 1, 9, 0,111, 1, 0, 0,111, 1, 1, 0, - 27, 0, 20, 10, 0, 0, 11, 3, 7, 0, 21, 10, 2, 0, 22, 10, 2, 0, 18, 0, 2, 0, 16, 0, 2, 0, 23, 10,112, 1, 7, 0, - 37, 0, 6, 7, 21, 0,157, 9, 4, 0, 18, 0, 4, 0, 24, 10, 14, 0, 25, 10, 27, 0, 20, 10, 0, 0, 11, 3,113, 1, 15, 0, - 27, 0, 20, 10, 2, 0, 26, 10, 2, 0, 18, 0, 2, 0, 27, 10, 2, 0, 28, 10, 0, 0, 11, 3, 27, 0, 29, 10, 0, 0, 30, 10, - 7, 0, 31, 10, 7, 0, 40, 2, 7, 0, 32, 10, 7, 0, 33, 10, 2, 0, 16, 0, 2, 0, 87, 1, 7, 0, 94, 1,114, 1, 6, 0, - 27, 0, 20, 10, 7, 0,193, 9, 2, 0, 34, 10, 2, 0, 35, 10, 2, 0, 18, 0, 2, 0, 36, 10,115, 1, 6, 0, 27, 0, 20, 10, - 4, 0, 37, 10, 4, 0, 38, 10, 4, 0, 92, 0, 4, 0, 27, 0, 0, 0, 11, 3,116, 1, 4, 0, 27, 0, 20, 10, 4, 0, 18, 0, - 4, 0, 37, 10, 0, 0, 11, 3,117, 1, 4, 0, 27, 0, 20, 10, 4, 0, 18, 0, 4, 0, 37, 10, 0, 0, 11, 3,118, 1, 4, 0, - 27, 0, 20, 10, 4, 0, 18, 0, 4, 0, 37, 10, 0, 0, 11, 3,119, 1, 2, 0, 4, 0, 18, 0, 7, 0, 84, 4,120, 1, 2, 0, - 27, 0, 20, 10, 0, 0, 11, 3,121, 1, 10, 0, 27, 0, 20, 10, 4, 0, 39, 10, 7, 0,128, 0, 4, 0, 18, 0, 2, 0, 4, 7, - 2, 0, 40, 10, 2, 0, 67, 0, 2, 0, 30, 0, 7, 0, 41, 10, 0, 0, 11, 3,122, 1, 10, 0, 27, 0, 20, 10, 2, 0, 16, 0, - 2, 0,134, 4, 4, 0, 90, 0, 4, 0, 91, 0, 7, 0,117, 9, 7, 0,118, 9, 4, 0, 27, 0,176, 0, 87, 9, 0, 0, 11, 3, -123, 1, 4, 0, 27, 0, 20, 10, 4, 0,210, 3, 4, 0, 42, 10, 0, 0, 11, 3,124, 1, 4, 0, 27, 0, 20, 10, 4, 0,210, 3, - 4, 0, 27, 0, 0, 0, 11, 3,125, 1, 6, 0, 27, 0, 20, 10, 7, 0,128, 0, 7, 0, 82, 3, 4, 0, 43, 10, 2, 0,210, 3, - 2, 0,211, 3,126, 1, 6, 0, 27, 0, 20, 10, 4, 0, 44, 10, 4, 0, 45, 10, 7, 0, 46, 10, 7, 0, 47, 10, 0, 0, 11, 3, -127, 1, 16, 0, 27, 0, 20, 10, 27, 0,217, 9, 4, 0, 16, 0, 7, 0, 48, 10, 7, 0, 49, 10, 7, 0, 50, 10, 7, 0, 51, 10, - 7, 0, 52, 10, 7, 0, 53, 10, 7, 0, 54, 10, 7, 0, 55, 10, 7, 0, 56, 10, 2, 0, 18, 0, 2, 0, 27, 0, 2, 0, 67, 0, - 2, 0, 30, 0,128, 1, 3, 0, 27, 0, 20, 10, 4, 0, 18, 0, 4, 0, 32, 2,129, 1, 5, 0, 27, 0, 20, 10, 4, 0, 18, 0, - 4, 0, 27, 0, 7, 0, 57, 10, 0, 0, 11, 3,130, 1, 10, 0, 27, 0, 20, 10, 0, 0, 11, 3, 2, 0, 58, 10, 2, 0, 59, 10, - 0, 0, 60, 10, 0, 0, 61, 10, 7, 0, 62, 10, 7, 0, 63, 10, 7, 0, 64, 10, 7, 0, 65, 10,131, 1, 5, 0, 27, 0, 20, 10, - 0, 0, 11, 3, 7, 0,220, 2, 2, 0, 66, 10, 2, 0, 18, 0,132, 1, 8, 0, 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, - 7, 0, 11, 0, 7, 0, 67, 10, 7, 0, 68, 10, 2, 0, 18, 0, 2, 0, 32, 2,133, 1, 8, 0, 7, 0, 8, 0, 7, 0, 9, 0, - 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 67, 10, 7, 0, 68, 10, 2, 0, 18, 0, 2, 0, 32, 2,134, 1, 8, 0, 7, 0, 8, 0, - 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 67, 10, 7, 0, 68, 10, 2, 0, 18, 0, 2, 0, 32, 2,135, 1, 7, 0, - 27, 0, 20, 10, 0, 0, 11, 3, 7, 0, 94, 1, 7, 0,103, 1, 2, 0, 18, 0, 2, 0, 87, 1, 4, 0, 27, 0,136, 1, 5, 0, - 27, 0, 70, 3, 7, 0, 94, 1, 2, 0, 74, 3, 0, 0, 76, 3, 0, 0, 69, 10,137, 1, 7, 0,229, 0,106, 6, 0, 0, 70, 10, - 4, 0, 18, 0, 4, 0, 27, 0, 0, 0, 71, 10, 27, 0,208, 5, 27, 0, 72, 10,138, 1, 3, 0,229, 0,106, 6, 4, 0, 18, 0, - 4, 0, 27, 0,139, 1, 6, 0,229, 0,106, 6, 4, 0, 18, 0, 4, 0, 27, 0, 0, 0, 71, 10, 7, 0, 57, 10, 27, 0,208, 5, -140, 1, 10, 0,140, 1, 0, 0,140, 1, 1, 0, 2, 0, 16, 0, 2, 0, 18, 0, 0, 0, 73, 10, 7, 0, 31, 1, 7, 0, 32, 1, - 2, 0,254, 9, 2, 0, 74, 10, 27, 0, 44, 0,141, 1, 22, 0,141, 1, 0, 0,141, 1, 1, 0, 2, 0, 18, 0, 2, 0, 87, 1, - 2, 0, 75, 10, 2, 0, 76, 10, 31, 0, 80, 0,176, 0, 87, 9, 27, 0,168, 0, 7, 0, 90, 0, 7, 0, 91, 0, 7, 0, 77, 10, - 7, 0, 78, 10, 7, 0, 79, 10, 7, 0, 80, 10, 7, 0,253, 2, 7, 0,148, 3, 7, 0, 89, 9, 7, 0, 81, 10, 0, 0, 82, 10, - 0, 0, 83, 10, 14, 0,188, 3,142, 1, 11, 0, 7, 0, 47, 2, 7, 0,117, 9, 7, 0,118, 9, 11, 0, 2, 0, 2, 0, 84, 10, - 2, 0, 85, 10, 2, 0, 86, 10, 2, 0, 87, 10, 2, 0, 88, 10, 2, 0, 89, 10, 2, 0,181, 2,143, 1, 21, 0,143, 1, 0, 0, -143, 1, 1, 0,143, 1, 90, 10, 0, 0, 19, 0, 11, 0, 91, 10, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 92, 10, 2, 0, 93, 10, - 7, 0, 94, 10, 7, 0, 95, 10, 11, 0, 96, 10, 2, 0, 97, 10, 2, 0, 98, 10, 4, 0,247, 1, 11, 0,151, 9, 4, 0, 99, 10, - 4, 0,100, 10,143, 1,101, 10,144, 1,102, 10,142, 1,103, 10,145, 1, 4, 0, 0, 0,104, 10, 2, 0,105, 10, 2, 0,106, 10, - 4, 0, 27, 0,146, 1, 37, 0,146, 1, 0, 0,146, 1, 1, 0,146, 1,107, 10, 0, 0, 19, 0, 2, 0, 16, 0, 2, 0, 18, 0, - 2, 0,198, 8, 2, 0,176, 2, 2, 0,108, 10, 2, 0, 9, 7, 2, 0, 97, 10, 2, 0, 41, 9, 14, 0, 82, 9, 14, 0,109, 10, -146, 1, 38, 0, 22, 0, 42, 7, 11, 0, 91, 10, 7, 0, 94, 10, 7, 0, 95, 10, 7, 0, 82, 2, 7, 0, 1, 3, 7, 0,110, 10, - 4, 0,111, 10, 0, 0,112, 10, 2, 0,113, 10, 2, 0,114, 10, 7, 0,115, 10, 7, 0,116, 10, 2, 0,117, 10, 2, 0,118, 10, - 11, 0,119, 10, 19, 0,120, 10, 19, 0,121, 10, 19, 0,122, 10,145, 1,154, 0,147, 1,123, 10,148, 1,124, 10,144, 1, 8, 0, -144, 1, 0, 0,144, 1, 1, 0,146, 1,125, 10,146, 1,126, 10,143, 1,127, 10,143, 1,128, 10, 4, 0, 18, 0, 4, 0, 27, 0, - 57, 0, 20, 0, 22, 0, 32, 0, 34, 0, 75, 0,178, 0,182, 3, 14, 0,129, 10, 14, 0,130, 10, 4, 0, 16, 0, 4, 0,131, 10, - 4, 0,132, 10, 4, 0, 18, 0, 4, 0,111, 10, 4, 0,133, 10, 14, 0, 82, 9, 14, 0,109, 10,149, 1,134, 10, 11, 0,135, 10, - 11, 0,136, 10, 4, 0,137, 10, 11, 0,138, 10, 11, 0,139, 10, 11, 0,140, 10,150, 1, 4, 0, 4, 0, 17, 0, 4, 0,230, 2, - 4, 0,117, 9, 4, 0,118, 9,151, 1, 4, 0, 4, 0, 17, 0, 7, 0,230, 2, 7, 0,117, 9, 7, 0,118, 9,152, 1, 2, 0, - 0, 0,230, 2, 0, 0, 86, 1,153, 1, 4, 0, 4, 0, 17, 0, 7, 0,141, 10, 7, 0,117, 9, 7, 0,118, 9,154, 1, 1, 0, - 7, 0,142, 10,155, 1, 6, 0, 4, 0,127, 0, 4, 0,129, 0, 4, 0, 41, 9, 0, 0,143, 10, 0, 0,144, 10, 2, 0, 27, 0, -156, 1, 16, 0, 2, 0,141, 8, 2, 0,142, 8, 2, 0,145, 10, 2, 0,146, 10, 2, 0,147, 10, 2, 0, 68, 0, 2, 0, 43, 7, - 2, 0,148, 10, 7, 0,252, 2, 7, 0,149, 10, 7, 0,150, 10, 2, 0,109, 1, 0, 0,151, 10, 0, 0,152, 10, 4, 0,153, 10, - 4, 0,154, 10,157, 1, 9, 0, 7, 0,155, 10, 7, 0,156, 10, 7, 0,150, 9, 7, 0, 94, 3, 7, 0,157, 10, 7, 0,218, 6, - 2, 0, 92, 3, 0, 0,158, 10, 0, 0, 27, 0,158, 1, 4, 0, 7, 0,159, 10, 7, 0,160, 10, 2, 0, 92, 3, 2, 0, 27, 0, -159, 1, 3, 0, 7, 0,161, 10, 7, 0,213, 8, 7, 0, 14, 0,160, 1, 4, 0, 0, 0, 35, 0,204, 0, 80, 5, 4, 0,129, 0, - 4, 0,132, 4,161, 1, 6, 0, 0, 0,162, 10,204, 0,163, 10, 4, 0,129, 0, 4, 0,132, 4, 4, 0,164, 10, 4, 0, 27, 0, -162, 1, 4, 0, 2, 0,165, 10, 2, 0,166, 10, 4, 0, 30, 0,204, 0,163, 10,163, 1, 9, 0, 7, 0,167, 10, 7, 0,168, 10, - 7, 0,169, 10, 7, 0, 93, 2, 7, 0,170, 10, 7, 0,171, 10, 7, 0,172, 10, 2, 0,173, 10, 2, 0,174, 10,164, 1, 8, 0, - 2, 0,175, 10, 2, 0,176, 10, 2, 0,177, 10, 2, 0,178, 10, 7, 0,179, 10, 7, 0,180, 10, 7, 0,181, 10, 7, 0,182, 10, -165, 1, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0,166, 1, 2, 0, 0, 0,170, 0, 0, 0,183, 10,167, 1, 1, 0, 0, 0, 19, 0, -168, 1, 12, 0, 0, 0,184, 10, 0, 0,185, 10, 0, 0,209, 6, 0, 0,186, 10, 2, 0,145, 10, 2, 0,187, 10, 7, 0,188, 10, - 7, 0,189, 10, 7, 0,190, 10, 7, 0,148, 3, 7, 0,191, 10, 7, 0,192, 10,169, 1, 2, 0, 11, 0,193, 10, 11, 0,194, 10, -170, 1, 13, 0, 0, 0, 72, 5, 0, 0, 16, 0, 0, 0, 92, 3, 0, 0, 94, 3, 0, 0,185, 10, 0, 0,108, 0, 0, 0,181, 2, - 7, 0,195, 10, 7, 0,196, 10, 7, 0,147, 3, 7, 0,197, 10, 7, 0,198, 10, 7, 0,192, 10,171, 1, 8, 0, 7, 0, 48, 9, - 7, 0,128, 0, 7, 0,152, 10, 7, 0,172, 2, 7, 0,199, 10, 7, 0,240, 0, 7, 0,200, 10, 4, 0, 16, 0,172, 1, 4, 0, - 2, 0,201, 10, 2, 0,202, 10, 2, 0,203, 10, 2, 0, 27, 0,173, 1, 8, 0, 7, 0,204, 10, 7, 0,220, 2, 7, 0,205, 10, - 7, 0,191, 8, 7, 0,192, 8, 7, 0,193, 8, 7, 0,206, 10, 7, 0,207, 10,174, 1, 6, 0, 2, 0,208, 10, 2, 0,209, 10, - 7, 0,210, 10, 7, 0,211, 10, 7, 0,212, 10, 7, 0,213, 10,175, 1, 2, 0, 58, 0,214, 10, 59, 0,215, 10,176, 1, 3, 0, -175, 1, 79, 6, 7, 0,216, 10, 7, 0,217, 10,177, 1, 3, 0,175, 1, 79, 6, 4, 0,218, 10, 4, 0, 27, 0,178, 1, 1, 0, -175, 1, 79, 6,179, 1, 3, 0,175, 1, 79, 6, 4, 0,218, 10, 4, 0,219, 10,180, 1, 3, 0,175, 1, 79, 6, 4, 0,220, 10, - 4, 0, 27, 0,181, 1, 1, 0,175, 1, 79, 6,182, 1, 3, 0,175, 1, 79, 6, 4, 0,221, 10, 4, 0, 27, 0,183, 1, 3, 0, -175, 1, 79, 6, 4, 0,222, 10, 4, 0, 27, 0,184, 1, 3, 0,175, 1, 79, 6, 4, 0,223, 10, 4, 0, 27, 0,185, 1, 3, 0, -175, 1, 79, 6, 4, 0,250, 0, 4, 0, 27, 0,186, 1, 1, 0, 0, 0, 19, 0,187, 1, 1, 0, 0, 0, 19, 0,188, 1, 4, 0, - 7, 0, 5, 0, 7, 0, 6, 0, 2, 0, 18, 0, 2, 0,224, 10,189, 1, 10, 0, 2, 0, 62, 4, 2, 0, 18, 0, 7, 0,217, 4, - 7, 0,225, 10, 7, 0,226, 10, 7, 0,227, 10, 7, 0,228, 10,188, 1,229, 10,188, 1,230, 10,188, 1,231, 10, 54, 0, 11, 0, - 4, 0, 18, 0, 4, 0, 63, 0, 4, 0,232, 10, 4, 0,233, 10, 19, 0,234, 10, 19, 0,235, 10,189, 1,236, 10, 7, 0,237, 10, - 7, 0,238, 10, 7, 0,239, 10, 7, 0,240, 10, 0, 1, 10, 0, 4, 0,254, 9, 4, 0,241, 10, 7, 0,242, 10, 7, 0,243, 10, - 7, 0,244, 10, 7, 0,245, 10, 7, 0, 9, 0, 7, 0, 11, 0, 4, 0, 87, 1, 4, 0, 1, 3,255, 0, 18, 0, 4, 0,132, 0, - 4, 0,246, 10, 4, 0,247, 10, 7, 0,248, 10, 4, 0,249, 10, 7, 0,250, 10, 7, 0,251, 10, 4, 0,252, 10, 7, 0,253, 10, - 4, 0,254, 10, 7, 0,255, 10, 0, 1, 0, 11, 7, 0, 1, 11, 7, 0, 2, 11, 7, 0, 3, 11, 7, 0, 4, 11, 4, 0, 5, 11, - 4, 0, 27, 0,190, 1, 4, 0, 42, 0,244, 2, 7, 0, 6, 11, 7, 0,178, 1, 7, 0, 27, 0,213, 0, 34, 0, 22, 0, 32, 0, -190, 1, 7, 11, 54, 0,229, 10, 46, 0, 8, 11, 52, 0, 9, 11, 25, 0,154, 0, 0, 0, 10, 11, 7, 0, 11, 11, 2, 0,109, 6, - 2, 0, 12, 11, 4, 0,108, 0, 4, 0, 18, 0, 7, 0, 13, 11, 4, 0, 90, 2, 4, 0, 14, 11, 7, 0, 15, 11, 7, 0, 16, 11, - 7, 0, 17, 11, 7, 0,178, 1, 4, 0, 18, 11, 7, 0, 19, 11, 0, 0, 20, 11, 0, 0, 21, 11, 0, 0, 22, 11, 0, 0, 23, 11, - 7, 0, 24, 11, 7, 0, 25, 11, 7, 0, 26, 11, 7, 0, 1, 3, 7, 0, 27, 11, 4, 0, 28, 11, 7, 0,240, 5, 7, 0, 29, 11, - 7, 0, 30, 11,191, 1, 10, 0, 4, 0, 16, 0, 4, 0,128, 0, 4, 0, 18, 0, 4, 0, 15, 4, 4, 0, 31, 11, 4, 0, 32, 11, - 4, 0, 33, 11, 4, 0, 70, 0, 0, 0, 19, 0, 11, 0, 2, 0,192, 1, 1, 0, 0, 0, 70, 7, 95, 0, 8, 0,191, 1, 34, 11, - 4, 0, 35, 11, 4, 0, 36, 11, 4, 0, 37, 11, 4, 0, 38, 11, 4, 0, 30, 0, 11, 0, 39, 11,192, 1, 40, 11,193, 1, 5, 0, - 7, 0,165, 2, 7, 0,240, 2, 7, 0, 40, 2, 2, 0,147, 2, 2, 0, 27, 0,194, 1, 5, 0, 7, 0,165, 2, 7, 0,159, 4, - 7, 0, 41, 11, 7, 0, 42, 11, 7, 0,240, 2,195, 1, 5, 0, 27, 0, 43, 11,196, 1, 21, 0, 7, 0, 75, 6, 7, 0, 44, 11, - 7, 0, 56, 0,197, 1, 3, 0, 7, 0, 45, 11, 4, 0, 46, 11, 4, 0, 47, 11,198, 1, 7, 0, 4, 0, 48, 11, 4, 0, 49, 11, - 4, 0, 50, 11, 7, 0, 51, 11, 7, 0, 52, 11, 7, 0, 53, 11, 7, 0, 56, 0,199, 1, 8, 0,199, 1, 0, 0,199, 1, 1, 0, - 27, 0, 44, 0, 4, 0, 3, 1, 2, 0, 18, 0, 2, 0, 87, 1, 7, 0,240, 2, 7, 0, 56, 9,200, 1, 7, 0,200, 1, 0, 0, -200, 1, 1, 0, 27, 0, 44, 0, 2, 0,225, 2, 2, 0, 18, 0, 2, 0, 14, 2, 2, 0, 56, 0,201, 1, 17, 0,194, 1, 8, 4, -194, 1, 54, 11,193, 1, 55, 11,194, 1, 39, 9,195, 1, 56, 11, 4, 0, 82, 0, 7, 0,240, 2, 7, 0, 7, 3, 7, 0, 57, 11, - 4, 0, 48, 11, 4, 0, 58, 11, 7, 0, 52, 11, 7, 0, 53, 11, 7, 0,108, 0, 4, 0, 59, 11, 2, 0, 18, 0, 2, 0, 60, 11, -202, 1, 15, 0, 7, 0,255, 0, 7, 0, 61, 11, 7, 0, 45, 11, 7, 0, 62, 11, 7, 0, 63, 11, 7, 0, 64, 11, 7, 0, 65, 11, - 7, 0, 66, 11, 7, 0, 67, 11, 7, 0, 68, 11, 7, 0, 69, 11, 7, 0, 70, 11, 7, 0, 71, 11, 4, 0, 18, 0, 4, 0, 72, 11, -203, 1,128, 0, 22, 0, 32, 0, 34, 0, 75, 0,204, 1, 73, 11,202, 1, 74, 11,187, 0,154, 4, 4, 0, 18, 0, 4, 0, 56, 0, - 2, 0, 16, 0, 2, 0, 58, 10, 2, 0, 75, 11, 2, 0,122, 1, 2, 0, 76, 11, 2, 0,232, 3, 2, 0, 77, 11, 2, 0, 78, 11, - 2, 0, 79, 11, 2, 0, 80, 11, 2, 0, 81, 11, 2, 0, 82, 11, 2, 0, 83, 11, 2, 0, 84, 11, 2, 0, 85, 11, 2, 0,224, 5, - 2, 0, 86, 11, 2, 0, 87, 11, 2, 0, 88, 11, 2, 0, 89, 11, 2, 0, 90, 11, 2, 0, 29, 2, 2, 0, 32, 9, 2, 0, 7, 9, - 2, 0, 91, 11, 2, 0, 92, 11, 2, 0, 25, 4, 2, 0, 26, 4, 2, 0, 93, 11, 2, 0, 94, 11, 2, 0, 95, 11, 2, 0, 96, 11, - 7, 0, 97, 11, 7, 0, 98, 11, 7, 0, 99, 11, 7, 0,100, 11, 7, 0,101, 11, 7, 0,102, 11, 7, 0,103, 11, 2, 0,154, 5, - 2, 0,104, 11, 7, 0,105, 11, 7, 0,106, 11, 7, 0,107, 11, 7, 0, 14, 9, 7, 0, 91, 0, 7, 0, 7, 3, 7, 0, 20, 9, - 7, 0,108, 11, 7, 0,109, 11, 7, 0,110, 11, 7, 0,111, 11, 7, 0,112, 11, 7, 0,113, 11, 4, 0, 15, 9, 4, 0, 13, 9, - 4, 0,114, 11, 4, 0,115, 11, 2, 0,116, 11, 2, 0,117, 11, 7, 0, 16, 9, 7, 0, 17, 9, 7, 0, 18, 9, 7, 0,118, 11, - 7, 0,119, 11, 7, 0,120, 11, 7, 0,121, 11, 7, 0,122, 11, 7, 0,123, 11, 7, 0,124, 11, 7, 0,125, 11, 7, 0,126, 11, - 7, 0,222, 3, 7, 0,108, 0, 7, 0,127, 11, 7, 0,128, 11, 7, 0,129, 11, 7, 0,130, 11, 7, 0,214, 0, 7, 0,131, 11, - 4, 0,132, 11, 4, 0,133, 11, 7, 0,134, 11, 7, 0,135, 11, 7, 0,136, 11, 7, 0,137, 11, 7, 0,138, 11, 7, 0,213, 0, - 7, 0,139, 11, 7, 0, 52, 4, 7, 0, 50, 4, 7, 0, 51, 4, 7, 0,140, 11, 7, 0,141, 11, 7, 0,142, 11, 7, 0,143, 11, - 7, 0,144, 11, 7, 0,145, 11, 7, 0,146, 11, 7, 0,147, 11, 7, 0,148, 11, 7, 0,149, 11, 7, 0,150, 11, 7, 0,151, 11, - 7, 0,152, 11, 7, 0,153, 11, 7, 0,154, 11, 7, 0,155, 11, 7, 0,156, 11, 7, 0,157, 11, 4, 0,158, 11, 4, 0,159, 11, - 46, 0,140, 1, 64, 0, 0, 4, 14, 0,160, 11, 64, 0,161, 11, 27, 0,162, 11, 27, 0,163, 11, 31, 0, 80, 0,182, 0, 73, 1, -182, 0,164, 11,150, 0, 52, 0,150, 0, 0, 0,150, 0, 1, 0,203, 1,165, 11,201, 1,166, 11,198, 1,217, 9,190, 0, 80, 4, - 11, 0, 81, 4,205, 1,167, 11,205, 1,168, 11, 14, 0,169, 11, 14, 0,170, 11,135, 0,171, 11,143, 0,172, 11,143, 0,173, 11, - 27, 0,174, 11, 27, 0,175, 11, 27, 0, 38, 0, 14, 0, 25, 10, 0, 0, 19, 0, 7, 0,244, 0, 7, 0, 36, 3, 7, 0,176, 11, - 7, 0,177, 11, 4, 0,214, 2, 4, 0,178, 11, 4, 0, 18, 0, 4, 0, 15, 9, 4, 0,179, 11, 4, 0,180, 11, 4, 0,181, 11, - 4, 0,182, 11, 2, 0,251, 0, 2, 0,183, 11, 2, 0,184, 11, 2, 0,185, 11, 0, 0,186, 11, 2, 0,187, 11, 2, 0,188, 11, - 2, 0,189, 11, 11, 0,190, 11,139, 0,153, 4, 14, 0, 21, 3, 14, 0,191, 11,197, 1,192, 11, 4, 0,193, 11, 4, 0,194, 11, -206, 1,195, 11,141, 0, 33, 3,207, 1,196, 11, 7, 0,197, 11, 7, 0,198, 11, 7, 0,199, 11,137, 0, 38, 0,208, 1,151, 9, - 7, 0,123, 4, 7, 0,200, 11, 7, 0,201, 11, 7, 0, 75, 6, 7, 0,236, 3, 7, 0,222, 3, 7, 0,202, 11, 7, 0, 92, 2, - 7, 0,203, 11, 7, 0,204, 11, 7, 0,205, 11, 7, 0,206, 11, 7, 0,207, 11, 7, 0,208, 11, 7, 0,124, 4, 7, 0,209, 11, - 7, 0,210, 11, 7, 0,211, 11, 7, 0,125, 4, 7, 0,121, 4, 7, 0,122, 4, 7, 0,212, 11, 7, 0,213, 11, 7, 0,214, 11, - 4, 0,215, 11, 4, 0, 92, 0, 4, 0,216, 11, 4, 0,217, 11, 2, 0,218, 11, 2, 0,219, 11, 2, 0,220, 11, 2, 0,221, 11, - 2, 0,222, 11, 2, 0,223, 11, 2, 0,224, 11, 2, 0, 27, 0,187, 0,154, 4,138, 0, 11, 0,208, 1,225, 11, 7, 0,226, 11, - 7, 0,227, 11, 7, 0,251, 1, 7, 0,228, 11, 7, 0,229, 11, 7, 0,230, 11, 4, 0, 92, 0, 2, 0,231, 11, 2, 0,232, 11, - 64, 0,250, 1,209, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 7, 0,233, 11,210, 1, 6, 0,210, 1, 0, 0, -210, 1, 1, 0,209, 1,193, 9, 4, 0, 1, 1, 2, 0,234, 11, 2, 0, 18, 0,211, 1, 5, 0,211, 1, 0, 0,211, 1, 1, 0, - 14, 0,235, 11, 4, 0,236, 11, 4, 0, 18, 0,212, 1, 9, 0,212, 1, 0, 0,212, 1, 1, 0, 14, 0,127, 0,211, 1,237, 11, - 4, 0, 18, 0, 2, 0,234, 11, 2, 0,238, 11, 7, 0, 93, 0, 0, 0,239, 11,178, 0, 6, 0, 22, 0, 32, 0, 14, 0,123, 5, - 4, 0, 18, 0, 2, 0,240, 11, 2, 0,241, 11, 11, 0,242, 11,213, 1, 6, 0, 14, 0,243, 11, 4, 0,244, 11, 4, 0,245, 11, - 4, 0, 18, 0, 4, 0, 27, 0,237, 0,246, 11,214, 1, 19, 0, 22, 0, 32, 0,215, 1,247, 11,215, 1,248, 11, 14, 0,249, 11, - 4, 0,250, 11, 2, 0,251, 11, 2, 0,252, 11, 14, 0,253, 11, 14, 0,254, 11,213, 1,255, 11, 14, 0, 0, 12, 14, 0, 1, 12, - 14, 0, 2, 12, 14, 0, 3, 12,216, 1, 4, 12,216, 1, 5, 12,216, 1, 6, 12, 14, 0, 7, 12,237, 0, 8, 12,215, 1, 32, 0, -215, 1, 0, 0,215, 1, 1, 0, 11, 0, 9, 12, 4, 0,119, 8, 2, 0, 10, 12, 2, 0, 27, 0, 27, 1, 11, 12, 27, 1, 12, 12, - 0, 0, 13, 12, 2, 0, 14, 12, 2, 0, 15, 12, 2, 0,141, 8, 2, 0,142, 8, 2, 0, 16, 12, 2, 0, 17, 12, 2, 0, 15, 4, - 2, 0, 53, 7, 2, 0, 18, 12, 2, 0, 19, 12, 2, 0, 20, 12, 2, 0, 30, 0,217, 1, 21, 12,218, 1, 22, 12,219, 1, 23, 12, - 4, 0, 24, 12, 4, 0, 25, 12, 11, 0, 26, 12, 14, 0,254, 11, 14, 0,161, 8, 14, 0, 27, 12, 14, 0, 28, 12, 14, 0, 29, 12, -220, 1, 17, 0,220, 1, 0, 0,220, 1, 1, 0, 0, 0, 30, 12, 21, 0, 31, 0, 2, 0, 31, 12, 2, 0, 16, 0, 2, 0, 14, 0, - 2, 0, 32, 12, 2, 0, 33, 12, 2, 0, 34, 12, 2, 0, 35, 12, 2, 0, 36, 12, 2, 0, 18, 0, 2, 0, 37, 12, 2, 0, 32, 0, - 2, 0, 27, 0,221, 1, 38, 12,222, 1, 4, 0,222, 1, 0, 0,222, 1, 1, 0,220, 1, 39, 12,220, 1, 40, 12,223, 1, 11, 0, -223, 1, 0, 0,223, 1, 1, 0, 14, 0, 41, 12, 14, 0, 42, 12, 0, 0, 30, 12, 2, 0, 43, 12, 2, 0, 44, 12, 2, 0, 18, 0, - 2, 0, 45, 12, 4, 0, 46, 12, 11, 0, 47, 12,216, 1, 7, 0,216, 1, 0, 0,216, 1, 1, 0, 0, 0, 30, 12, 0, 0, 48, 12, - 14, 0, 59, 8, 4, 0, 49, 12, 4, 0, 18, 0,249, 0, 14, 0,249, 0, 0, 0,249, 0, 1, 0, 0, 0, 30, 12, 21, 0, 31, 0, -224, 1,135, 8, 11, 0, 50, 12, 11, 0, 51, 12,221, 1, 38, 12,213, 1, 52, 12, 14, 0, 53, 12,249, 0, 54, 12, 32, 1,239, 6, - 2, 0, 18, 0, 2, 0, 86, 1,225, 1, 12, 0,225, 1, 0, 0,225, 1, 1, 0, 11, 0, 2, 0, 11, 0, 55, 12, 0, 0, 19, 0, - 2, 0, 16, 0, 2, 0, 18, 0, 7, 0,139, 9, 7, 0,129, 0, 7, 0,132, 4, 7, 0, 89, 9, 7, 0, 81, 10,226, 1, 5, 0, - 7, 0, 56, 12, 4, 0, 57, 12, 4, 0, 58, 12, 4, 0, 87, 1, 4, 0, 18, 0,227, 1, 6, 0, 7, 0, 59, 12, 7, 0, 60, 12, - 7, 0, 61, 12, 7, 0, 62, 12, 4, 0, 16, 0, 4, 0, 18, 0,228, 1, 5, 0, 7, 0,117, 9, 7, 0,118, 9, 7, 0,240, 2, - 2, 0, 43, 2, 2, 0, 44, 2,229, 1, 5, 0,228, 1, 2, 0, 4, 0, 53, 0, 7, 0, 63, 12, 7, 0,117, 9, 7, 0,118, 9, -230, 1, 4, 0, 2, 0, 64, 12, 2, 0, 65, 12, 2, 0, 66, 12, 2, 0, 67, 12,231, 1, 2, 0, 37, 0, 37, 7, 21, 0,157, 9, -232, 1, 3, 0, 19, 0, 68, 12, 4, 0, 18, 0, 4, 0, 27, 0,233, 1, 6, 0, 7, 0,108, 0, 7, 0,209, 2, 7, 0, 69, 12, - 7, 0, 27, 0, 2, 0,250, 0, 2, 0, 70, 12,234, 1, 5, 0, 7, 0, 71, 12, 7, 0,128, 0, 7, 0,194, 9, 7, 0,195, 9, - 4, 0, 18, 0,235, 1, 6, 0, 22, 0, 42, 7, 0, 0, 72, 12, 0, 0, 73, 12, 2, 0, 74, 12, 2, 0, 18, 0, 4, 0, 75, 12, -236, 1, 7, 0,236, 1, 0, 0,236, 1, 1, 0, 0, 0, 19, 0,235, 1, 76, 12, 2, 0, 77, 12, 2, 0, 16, 0, 7, 0, 60, 0, -237, 1, 7, 0, 14, 0, 78, 12, 0, 0, 79, 12, 11, 0, 80, 12, 7, 0, 60, 0, 7, 0,139, 9, 4, 0, 16, 0, 4, 0, 18, 0, -238, 1, 3, 0, 7, 0, 81, 12, 4, 0, 18, 0, 4, 0, 27, 0,239, 1, 15, 0,239, 1, 0, 0,239, 1, 1, 0,106, 1, 12, 10, -237, 1, 61, 0, 14, 0,188, 3, 30, 0, 49, 0,238, 1, 82, 12, 4, 0, 53, 0, 7, 0, 60, 0, 2, 0, 18, 0, 2, 0, 22, 1, - 4, 0, 83, 12, 0, 0, 72, 12, 4, 0, 84, 12, 7, 0, 85, 12,240, 1, 2, 0, 0, 0, 86, 12, 0, 0, 87, 12,241, 1, 4, 0, -241, 1, 0, 0,241, 1, 1, 0,176, 0, 70, 3, 14, 0, 88, 12,242, 1, 25, 0,242, 1, 0, 0,242, 1, 1, 0, 14, 0, 89, 12, -176, 0, 87, 9,241, 1, 90, 12, 14, 0, 91, 12, 14, 0,188, 3, 0, 0, 19, 0, 7, 0,139, 9, 7, 0, 92, 12, 7, 0, 90, 0, - 7, 0, 91, 0, 7, 0, 77, 10, 7, 0, 78, 10, 7, 0,253, 2, 7, 0,148, 3, 7, 0, 89, 9, 7, 0, 81, 10, 2, 0, 93, 12, - 2, 0, 94, 12, 2, 0, 67, 0, 2, 0, 16, 0, 11, 0, 95, 12, 4, 0, 18, 0, 4, 0, 30, 0,243, 1, 6, 0,243, 1, 0, 0, -243, 1, 1, 0, 14, 0, 89, 12, 4, 0, 18, 0, 4, 0, 14, 2, 0, 0, 19, 0,244, 1, 11, 0,244, 1, 0, 0,244, 1, 1, 0, - 22, 0, 42, 7, 0, 0, 96, 12, 4, 0, 75, 12, 2, 0, 97, 12, 2, 0, 27, 0, 0, 0, 72, 12, 4, 0, 83, 12, 2, 0, 18, 0, - 2, 0, 98, 12,245, 1, 10, 0,245, 1, 0, 0,245, 1, 1, 0, 14, 0, 99, 12, 0, 0, 30, 12, 0, 0, 19, 0, 0, 0,100, 12, - 0, 0,101, 12, 2, 0, 18, 0, 2, 0, 98, 12, 4, 0,102, 12,246, 1, 5, 0,246, 1, 0, 0,246, 1, 1, 0, 0, 0, 72, 12, - 4, 0, 83, 12, 7, 0,230, 2, 34, 0, 12, 0,176, 0,179, 3,176, 0,103, 12,241, 1, 90, 12, 14, 0,104, 12,242, 1,105, 12, - 14, 0,106, 12, 14, 0,107, 12, 4, 0, 18, 0, 4, 0,251, 0, 2, 0,108, 12, 2, 0,109, 12, 7, 0,110, 12,247, 1, 2, 0, - 22, 0, 32, 0, 34, 0, 75, 0,248, 1, 5, 0,248, 1, 0, 0,248, 1, 1, 0, 4, 0, 16, 0, 4, 0, 18, 0, 0, 0,172, 5, -249, 1, 6, 0,248, 1,111, 12, 27, 0, 44, 0, 4, 0,112, 12, 7, 0,113, 12, 4, 0,114, 12, 4, 0,254, 9,250, 1, 3, 0, -248, 1,111, 12, 4, 0,112, 12, 7, 0,115, 12,251, 1, 8, 0,248, 1,111, 12, 27, 0, 44, 0, 7, 0, 77, 1, 7, 0,116, 12, - 7, 0, 36, 3, 7, 0,150, 9, 4, 0,112, 12, 4, 0,117, 12,252, 1, 5, 0,248, 1,111, 12, 7, 0,118, 12, 7, 0,176, 2, - 7, 0, 3, 3, 7, 0, 56, 0,253, 1, 3, 0,248, 1,111, 12, 7, 0,150, 9, 7, 0,119, 12,196, 1, 4, 0, 7, 0,120, 12, - 7, 0,128, 11, 2, 0,121, 12, 2, 0, 87, 1,254, 1, 14, 0,254, 1, 0, 0,254, 1, 1, 0, 14, 0,122, 12, 14, 0,123, 12, - 14, 0,124, 12, 0, 0,172, 5, 4, 0, 32, 0, 4, 0, 18, 0, 4, 0,125, 12, 7, 0,126, 12, 4, 0,114, 12, 4, 0,254, 9, - 7, 0, 84, 4, 7, 0, 5, 3,204, 1, 23, 0, 4, 0,112, 12, 4, 0,127, 12, 7, 0,128, 12, 7, 0, 1, 3, 7, 0,129, 12, - 7, 0,230, 8, 7, 0,120, 12, 7, 0,130, 12, 7, 0,209, 2, 7, 0,248, 10, 7, 0,217, 4, 7, 0,131, 12, 7, 0,132, 12, - 7, 0,133, 12, 7, 0,134, 12, 7, 0,135, 12, 7, 0,136, 12, 7, 0,137, 12, 7, 0,138, 12, 7, 0,139, 12, 7, 0,140, 12, - 7, 0,141, 12, 14, 0,142, 12,123, 0, 40, 0,122, 0,143, 12,255, 1, 74, 11, 64, 0,144, 12, 64, 0,161, 11, 64, 0,145, 12, - 0, 2,146, 12, 43, 0,169, 0, 43, 0,147, 12, 43, 0,148, 12, 7, 0,149, 12, 7, 0,150, 12, 7, 0,151, 12, 7, 0,152, 12, - 7, 0,153, 12, 7, 0,118, 8, 7, 0,154, 12, 7, 0,178, 1, 7, 0,155, 12, 4, 0,156, 12, 4, 0,157, 12, 4, 0,158, 12, - 4, 0, 92, 0, 4, 0, 27, 0, 4, 0,159, 12, 2, 0,160, 12, 2, 0,161, 12, 4, 0,162, 12, 7, 0,209, 2, 4, 0,163, 12, - 7, 0,164, 12, 4, 0,165, 12, 4, 0,166, 12, 4, 0,167, 12,139, 0,168, 12, 14, 0,169, 12,187, 0,154, 4, 4, 0,170, 12, - 7, 0,171, 12, 7, 0,172, 12, 4, 0, 30, 0,124, 0, 12, 0,122, 0,143, 12,150, 0, 56, 3, 7, 0,143, 1, 7, 0,118, 8, - 7, 0,173, 12, 7, 0,174, 12, 7, 0,175, 12, 2, 0,176, 12, 2, 0,177, 12, 2, 0,178, 12, 2, 0, 16, 0, 4, 0, 92, 0, -125, 0, 13, 0,122, 0,143, 12,141, 0, 33, 3,143, 0, 35, 3, 7, 0,193, 9, 7, 0,179, 12, 7, 0,180, 12, 7, 0, 79, 1, - 7, 0,181, 12, 4, 0, 34, 10, 4, 0, 29, 3, 2, 0, 16, 0, 2, 0, 27, 0, 4, 0, 30, 0, 1, 2, 15, 0, 22, 0, 32, 0, - 34, 0, 75, 0, 46, 1,228, 8, 7, 0,182, 12, 7, 0,183, 12, 7, 0,184, 12, 7, 0,185, 12, 7, 0,149, 9, 7, 0,186, 12, - 7, 0,187, 12, 7, 0,188, 12, 7, 0, 84, 4, 7, 0,230, 8, 2, 0, 18, 0, 2, 0,113, 9,231, 0, 3, 0, 4, 0,126, 0, - 2, 0,215, 6, 2, 0,189, 12, 2, 2, 5, 0, 0, 0,194, 8, 2, 0,195, 8, 2, 0, 72, 5, 2, 0,190, 12, 2, 0,191, 12, -229, 0, 16, 0, 22, 0, 32, 0, 34, 0, 75, 0, 0, 0, 35, 0, 4, 0,143, 0, 4, 0,144, 0, 4, 0,192, 12, 7, 0,162, 0, - 7, 0,163, 0, 44, 0,138, 0, 3, 2,151, 9,178, 0,182, 3, 4, 2,193, 12, 11, 0,194, 12, 2, 2,195, 12, 4, 0, 18, 0, - 4, 0, 22, 0, 13, 1, 10, 0, 4, 0,132, 0, 4, 0,196, 12, 52, 0,197, 12, 7, 0,198, 12, 2, 0,199, 12, 0, 0,181, 2, - 4, 0,126, 0, 5, 2,175, 3, 6, 2,200, 12, 7, 0,201, 12, 7, 2, 3, 0, 4, 0,126, 0, 7, 0,202, 12, 7, 0, 79, 1, - 8, 2, 11, 0, 11, 0,203, 12, 7, 0,204, 12, 7, 0,205, 12, 7, 0, 27, 0, 7, 0,206, 12, 2, 0,207, 12, 2, 0, 67, 0, - 7, 0,208, 12, 7, 0,209, 12, 7, 0,210, 12, 7, 0,211, 12, 6, 2, 3, 0, 7, 0,212, 12, 4, 0,126, 0, 4, 0, 18, 0, - 5, 2, 24, 0, 5, 2, 0, 0, 5, 2, 1, 0, 0, 0, 19, 0, 7, 0,213, 12, 7, 0,214, 12, 7, 0,215, 12, 7, 0,216, 12, - 7, 0, 6, 11, 4, 0,217, 12, 4, 0,218, 12, 6, 2,219, 12, 7, 0,220, 12, 7, 0,202, 12, 4, 0, 18, 0, 4, 0,221, 12, - 4, 0,222, 12, 7, 0, 85, 12, 2, 0,223, 12, 2, 0,227, 3, 2, 0,224, 12, 2, 0,225, 12, 2, 0,226, 12, 2, 0, 30, 0, - 7, 0,227, 12, 9, 2, 22, 0, 4, 0, 18, 0, 2, 0,228, 12, 2, 0,229, 12, 7, 0,230, 12, 2, 0,231, 12, 2, 0,232, 12, - 2, 0,233, 12, 2, 0,234, 12, 2, 0,235, 12, 2, 0,236, 12, 2, 0,237, 12, 2, 0, 3, 3, 4, 0,238, 12, 4, 0,239, 12, - 2, 0,240, 12, 2, 0, 30, 0, 7, 0, 94, 1, 4, 0,241, 12, 4, 0,242, 12, 7, 0,243, 12, 7, 0,244, 12, 4, 0,247, 1, - 10, 2, 12, 0, 4, 0, 18, 0, 4, 0,245, 12, 4, 0,246, 12, 7, 0,247, 12, 5, 2,248, 12, 7, 0,249, 12, 7, 0,250, 12, - 7, 0,251, 12, 4, 0,190, 1, 4, 0,132, 0, 7, 0,148, 3, 52, 0,252, 12, 11, 2, 5, 0, 4, 0, 18, 0, 7, 0,202, 12, - 4, 0,253, 12, 4, 0,254, 12, 7, 2,255, 12, 12, 2, 7, 0, 12, 2, 0, 0, 12, 2, 1, 0, 0, 0, 19, 0, 4, 0, 18, 0, - 7, 0,148, 3, 14, 0, 0, 13, 11, 2, 1, 13, 13, 2, 1, 0, 0, 0, 2, 13, 4, 2, 10, 0, 9, 2, 3, 13, 8, 2, 4, 13, - 14, 0, 0, 13, 11, 2, 1, 13, 10, 2, 5, 13, 5, 2, 6, 13, 14, 0, 7, 13, 4, 0, 8, 13, 4, 0, 9, 13, 13, 2, 90, 6, - 14, 2, 48, 0, 14, 2, 0, 0, 14, 2, 1, 0,169, 0,145, 3, 15, 2, 2, 0, 64, 0, 10, 13,187, 0,154, 4,139, 0,153, 4, - 14, 0, 21, 3, 4, 0, 11, 13, 0, 0, 19, 0, 2, 0,163, 10, 2, 0, 16, 0, 2, 0, 12, 13, 2, 0, 13, 13, 2, 0, 14, 13, - 2, 0, 15, 13, 2, 0, 16, 13, 2, 0, 17, 13, 4, 0, 92, 0, 4, 0,186, 3, 4, 0, 18, 13, 4, 0, 19, 13, 4, 0,194, 9, - 4, 0,195, 9, 4, 0, 27, 0, 7, 0, 20, 13, 47, 0, 21, 13, 0, 0, 22, 13, 4, 0, 23, 13, 4, 0,162, 12, 7, 0, 24, 13, - 7, 0, 25, 13, 7, 0, 26, 13, 7, 0, 27, 13, 7, 0, 28, 13, 7, 0, 29, 13, 7, 0, 30, 13, 7, 0, 31, 13, 7, 0, 32, 13, - 7, 0, 33, 13, 7, 0, 34, 13, 7, 0, 35, 13, 7, 0, 36, 13, 7, 0, 37, 13, 0, 0,202, 2, 0, 0, 38, 13, 0, 0, 39, 13, - 0, 0, 40, 13,169, 0, 7, 0,168, 0, 41, 13,143, 0, 35, 3, 14, 0, 42, 13, 2, 0, 43, 13, 2, 0, 92, 0, 4, 0, 27, 0, - 0, 0, 44, 13,170, 0, 24, 0,168, 0, 41, 13,143, 0, 35, 3,150, 0, 56, 3, 63, 0, 26, 2, 4, 0, 92, 0, 4, 0, 45, 13, - 7, 0,185, 0, 7, 0,186, 0, 7, 0,187, 0, 7, 0,178, 1, 7, 0, 46, 13, 7, 0, 47, 13, 7, 0, 48, 13, 7, 0, 49, 13, - 50, 0, 50, 13, 50, 0, 51, 13, 2, 0, 52, 13, 2, 0,223, 10, 2, 0, 53, 13, 2, 0, 27, 0, 7, 0, 54, 13, 7, 0, 55, 13, - 7, 0, 56, 13, 7, 0, 57, 13, 69, 78, 68, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +112,114,111,112,118, 97,108,117,101, 95,115,116,114, 91, 54, 52, 93, 0,112,114,111,112,118, 97,108,117,101, 0,115,104,105,102, +116, 0, 99,116,114,108, 0, 97,108,116, 0,111,115,107,101,121, 0,107,101,121,109,111,100,105,102,105,101,114, 0,109, 97,112, +116,121,112,101, 0, 42,112,116,114, 0, 42,114,101,109,111,118,101, 95,105,116,101,109, 0, 42, 97,100,100, 95,105,116,101,109, + 0,105,116,101,109,115, 0,100,105,102,102, 95,105,116,101,109,115, 0,115,112, 97, 99,101,105,100, 0,114,101,103,105,111,110, +105,100, 0,107,109,105, 95,105,100, 0, 40, 42,112,111,108,108, 41, 40, 41, 0, 42,109,111,100, 97,108, 95,105,116,101,109,115, + 0, 98, 97,115,101,110, 97,109,101, 91, 54, 52, 93, 0, 97, 99,116,107,101,121,109, 97,112, 0, 42, 99,117,115,116,111,109,100, + 97,116, 97, 0, 42,112,121, 95,105,110,115,116, 97,110, 99,101, 0, 42,114,101,112,111,114,116,115, 0,109, 97, 99,114,111, 0, + 42,111,112,109, 0, 42,101,100, 97,116, 97, 0, 42, 99,111,101,102,102,105, 99,105,101,110,116,115, 0, 97,114,114, 97,121,115, +105,122,101, 0,112,111,108,121, 95,111,114,100,101,114, 0, 97,109,112,108,105,116,117,100,101, 0,112,104, 97,115,101, 95,109, +117,108,116,105,112,108,105,101,114, 0,112,104, 97,115,101, 95,111,102,102,115,101,116, 0,118, 97,108,117,101, 95,111,102,102, +115,101,116, 0,109,105,100,118, 97,108, 0, 98,101,102,111,114,101, 95,109,111,100,101, 0, 97,102,116,101,114, 95,109,111,100, +101, 0, 98,101,102,111,114,101, 95, 99,121, 99,108,101,115, 0, 97,102,116,101,114, 95, 99,121, 99,108,101,115, 0,114,101, 99, +116, 0,112,104, 97,115,101, 0,109,111,100,105,102,105, 99, 97,116,105,111,110, 0,115,116,101,112, 95,115,105,122,101, 0, 42, +114,110, 97, 95,112, 97,116,104, 0,112, 99,104, 97,110, 95,110, 97,109,101, 91, 51, 50, 93, 0,116,114, 97,110,115, 67,104, 97, +110, 0,105,100,116,121,112,101, 0,116, 97,114,103,101,116,115, 91, 56, 93, 0,110,117,109, 95,116, 97,114,103,101,116,115, 0, +118, 97,114,105, 97, 98,108,101,115, 0,101,120,112,114,101,115,115,105,111,110, 91, 50, 53, 54, 93, 0, 42,101,120,112,114, 95, + 99,111,109,112, 0,118,101, 99, 91, 50, 93, 0, 42,102,112,116, 0, 97,114,114, 97,121, 95,105,110,100,101,120, 0, 99,111,108, +111,114, 95,109,111,100,101, 0, 99,111,108,111,114, 91, 51, 93, 0,102,114,111,109, 91, 49, 50, 56, 93, 0,116,111, 91, 49, 50, + 56, 93, 0,109, 97,112,112,105,110,103,115, 0,115,116,114,105,112,115, 0, 42,114,101,109, 97,112, 0,102, 99,117,114,118,101, +115, 0,115,116,114,105,112, 95,116,105,109,101, 0, 98,108,101,110,100,109,111,100,101, 0,101,120,116,101,110,100,109,111,100, +101, 0, 42,115,112,101, 97,107,101,114, 95,104, 97,110,100,108,101, 0,103,114,111,117,112, 91, 54, 52, 93, 0,103,114,111,117, +112,109,111,100,101, 0,107,101,121,105,110,103,102,108, 97,103, 0,112, 97,116,104,115, 0,100,101,115, 99,114,105,112,116,105, +111,110, 91, 50, 52, 48, 93, 0,116,121,112,101,105,110,102,111, 91, 54, 52, 93, 0, 97, 99,116,105,118,101, 95,112, 97,116,104, + 0, 42,116,109,112, 97, 99,116, 0,110,108, 97, 95,116,114, 97, 99,107,115, 0, 42, 97, 99,116,115,116,114,105,112, 0,100,114, +105,118,101,114,115, 0,111,118,101,114,114,105,100,101,115, 0, 97, 99,116, 95, 98,108,101,110,100,109,111,100,101, 0, 97, 99, +116, 95,101,120,116,101,110,100,109,111,100,101, 0, 97, 99,116, 95,105,110,102,108,117,101,110, 99,101, 0,114,117,108,101, 0, +111,112,116,105,111,110,115, 0,102,101, 97,114, 95,102, 97, 99,116,111,114, 0,115,105,103,110, 97,108, 95,105,100, 0,108,111, +111,107, 95, 97,104,101, 97,100, 0,111,108,111, 99, 91, 51, 93, 0,113,117,101,117,101, 95,115,105,122,101, 0,119, 97,110,100, +101,114, 0,102,108,101,101, 95,100,105,115,116, 97,110, 99,101, 0,104,101, 97,108,116,104, 0,115,116, 97,116,101, 95,105,100, + 0,114,117,108,101,115, 0, 99,111,110,100,105,116,105,111,110,115, 0, 97, 99,116,105,111,110,115, 0,114,117,108,101,115,101, +116, 95,116,121,112,101, 0,114,117,108,101, 95,102,117,122,122,105,110,101,115,115, 0,108, 97,115,116, 95,115,116, 97,116,101, + 95,105,100, 0,108, 97,110,100,105,110,103, 95,115,109,111,111,116,104,110,101,115,115, 0, 98, 97,110,107,105,110,103, 0, 97, +103,103,114,101,115,115,105,111,110, 0, 97,105,114, 95,109,105,110, 95,115,112,101,101,100, 0, 97,105,114, 95,109, 97,120, 95, +115,112,101,101,100, 0, 97,105,114, 95,109, 97,120, 95, 97, 99, 99, 0, 97,105,114, 95,109, 97,120, 95, 97,118,101, 0, 97,105, +114, 95,112,101,114,115,111,110, 97,108, 95,115,112, 97, 99,101, 0,108, 97,110,100, 95,106,117,109,112, 95,115,112,101,101,100, + 0,108, 97,110,100, 95,109, 97,120, 95,115,112,101,101,100, 0,108, 97,110,100, 95,109, 97,120, 95, 97, 99, 99, 0,108, 97,110, +100, 95,109, 97,120, 95, 97,118,101, 0,108, 97,110,100, 95,112,101,114,115,111,110, 97,108, 95,115,112, 97, 99,101, 0,108, 97, +110,100, 95,115,116,105, 99,107, 95,102,111,114, 99,101, 0,115,116, 97,116,101,115, 0, 42,115,109,100, 0, 42,102,108,117,105, +100, 95,103,114,111,117,112, 0, 42, 99,111,108,108, 95,103,114,111,117,112, 0, 42,119,116, 0, 42,116,101,120, 95,119,116, 0, + 42,116,101,120, 95,115,104, 97,100,111,119, 0, 42,115,104, 97,100,111,119, 0,112, 48, 91, 51, 93, 0,112, 49, 91, 51, 93, 0, +100,120, 0,111,109,101,103, 97, 0,116,101,109,112, 65,109, 98, 0, 98,101,116, 97, 0,114,101,115, 91, 51, 93, 0, 97,109,112, +108,105,102,121, 0,109, 97,120,114,101,115, 0,118,105,101,119,115,101,116,116,105,110,103,115, 0,110,111,105,115,101, 0,100, +105,115,115, 95,112,101,114, 99,101,110,116, 0,100,105,115,115, 95,115,112,101,101,100, 0,114,101,115, 95,119,116, 91, 51, 93, + 0,100,120, 95,119,116, 0,118, 51,100,110,117,109, 0, 99, 97, 99,104,101, 95, 99,111,109,112, 0, 99, 97, 99,104,101, 95,104, +105,103,104, 95, 99,111,109,112, 0, 42,112,111,105,110,116, 95, 99, 97, 99,104,101, 91, 50, 93, 0,112,116, 99, 97, 99,104,101, +115, 91, 50, 93, 0, 98,111,114,100,101,114, 95, 99,111,108,108,105,115,105,111,110,115, 0,116,105,109,101, 95,115, 99, 97,108, +101, 0,118,111,114,116,105, 99,105,116,121, 0,118,101,108,111, 99,105,116,121, 91, 50, 93, 0,118,101,108, 95,109,117,108,116, +105, 0,118,103,114,112, 95,104,101, 97,116, 95,115, 99, 97,108,101, 91, 50, 93, 0,118,103,114,111,117,112, 95,102,108,111,119, + 0,118,103,114,111,117,112, 95,100,101,110,115,105,116,121, 0,118,103,114,111,117,112, 95,104,101, 97,116, 0, 42,112,111,105, +110,116,115, 95,111,108,100, 0, 42,118,101,108, 0,109, 97,116, 95,111,108,100, 91, 52, 93, 91, 52, 93, 0,118,111,108,117,109, +101, 95,109, 97,120, 0,118,111,108,117,109,101, 95,109,105,110, 0,100,105,115,116, 97,110, 99,101, 95,109, 97,120, 0,100,105, +115,116, 97,110, 99,101, 95,114,101,102,101,114,101,110, 99,101, 0, 99,111,110,101, 95, 97,110,103,108,101, 95,111,117,116,101, +114, 0, 99,111,110,101, 95, 97,110,103,108,101, 95,105,110,110,101,114, 0, 99,111,110,101, 95,118,111,108,117,109,101, 95,111, +117,116,101,114, 0,114,101,110,100,101,114, 95,102,108, 97,103, 0, 98,117,105,108,100, 95,115,105,122,101, 95,102,108, 97,103, + 0, 98,117,105,108,100, 95,116, 99, 95,102,108, 97,103, 0,108, 97,115,116,115,105,122,101, 91, 50, 93, 0,116,114, 97, 99,107, +105,110,103, 0, 42,116,114, 97, 99,107,105,110,103, 95, 99,111,110,116,101,120,116, 0,112,114,111,120,121, 0,116,114, 97, 99, +107, 95,112,114,101,118,105,101,119, 95,104,101,105,103,104,116, 0, 42,116,114, 97, 99,107, 95,112,114,101,118,105,101,119, 0, +116,114, 97, 99,107, 95,112,111,115, 91, 50, 93, 0,116,114, 97, 99,107, 95,100,105,115, 97, 98,108,101,100, 0, 42,109, 97,114, +107,101,114, 0,115,108,105,100,101, 95,115, 99, 97,108,101, 91, 50, 93, 0,101,114,114,111,114, 0, 42,105,110,116,114,105,110, +115,105, 99,115, 0,115,101,110,115,111,114, 95,119,105,100,116,104, 0,112,105,120,101,108, 95, 97,115,112,101, 99,116, 0,102, +111, 99, 97,108, 0,117,110,105,116,115, 0,112,114,105,110, 99,105,112, 97,108, 91, 50, 93, 0,107, 49, 0,107, 50, 0,107, 51, + 0,112,111,115, 91, 50, 93, 0,112, 97,116, 95,109,105,110, 91, 50, 93, 0,112, 97,116, 95,109, 97,120, 91, 50, 93, 0,115,101, + 97,114, 99,104, 95,109,105,110, 91, 50, 93, 0,115,101, 97,114, 99,104, 95,109, 97,120, 91, 50, 93, 0,109, 97,114,107,101,114, +115,110,114, 0,108, 97,115,116, 95,109, 97,114,107,101,114, 0, 42,109, 97,114,107,101,114,115, 0, 98,117,110,100,108,101, 95, +112,111,115, 91, 51, 93, 0,112, 97,116, 95,102,108, 97,103, 0,115,101, 97,114, 99,104, 95,102,108, 97,103, 0,102,114, 97,109, +101,115, 95,108,105,109,105,116, 0,112, 97,116,116,101,114,110, 95,109, 97,116, 99,104, 0,116,114, 97, 99,107,101,114, 0,112, +121,114, 97,109,105,100, 95,108,101,118,101,108,115, 0,109,105,110,105,109,117,109, 95, 99,111,114,114,101,108, 97,116,105,111, +110, 0,100,101,102, 97,117,108,116, 95,116,114, 97, 99,107,101,114, 0,100,101,102, 97,117,108,116, 95,112,121,114, 97,109,105, +100, 95,108,101,118,101,108,115, 0,100,101,102, 97,117,108,116, 95,109,105,110,105,109,117,109, 95, 99,111,114,114,101,108, 97, +116,105,111,110, 0,100,101,102, 97,117,108,116, 95,112, 97,116,116,101,114,110, 95,115,105,122,101, 0,100,101,102, 97,117,108, +116, 95,115,101, 97,114, 99,104, 95,115,105,122,101, 0,100,101,102, 97,117,108,116, 95,102,114, 97,109,101,115, 95,108,105,109, +105,116, 0,100,101,102, 97,117,108,116, 95,109, 97,114,103,105,110, 0,100,101,102, 97,117,108,116, 95,112, 97,116,116,101,114, +110, 95,109, 97,116, 99,104, 0,100,101,102, 97,117,108,116, 95,102,108, 97,103, 0,109,111,116,105,111,110, 95,102,108, 97,103, + 0,107,101,121,102,114, 97,109,101, 49, 0,107,101,121,102,114, 97,109,101, 50, 0,114,101,102,105,110,101, 95, 99, 97,109,101, +114, 97, 95,105,110,116,114,105,110,115,105, 99,115, 0, 99,108,101, 97,110, 95,102,114, 97,109,101,115, 0, 99,108,101, 97,110, + 95, 97, 99,116,105,111,110, 0, 99,108,101, 97,110, 95,101,114,114,111,114, 0,111, 98,106,101, 99,116, 95,100,105,115,116, 97, +110, 99,101, 0,116,111,116, 95,116,114, 97, 99,107, 0, 97, 99,116, 95,116,114, 97, 99,107, 0,109, 97,120,115, 99, 97,108,101, + 0, 42,114,111,116, 95,116,114, 97, 99,107, 0,108,111, 99,105,110,102, 0,115, 99, 97,108,101,105,110,102, 0,114,111,116,105, +110,102, 0, 42,115, 99, 97,108,101,105, 98,117,102, 0,108, 97,115,116, 95, 99, 97,109,101,114, 97, 0, 99, 97,109,110,114, 0, + 42, 99, 97,109,101,114, 97,115, 0,116,114, 97, 99,107,115, 0,114,101, 99,111,110,115,116,114,117, 99,116,105,111,110, 0,109, +101,115,115, 97,103,101, 91, 50, 53, 54, 93, 0,115,101,116,116,105,110,103,115, 0, 99, 97,109,101,114, 97, 0,115,116, 97, 98, +105,108,105,122, 97,116,105,111,110, 0, 42, 97, 99,116, 95,116,114, 97, 99,107, 0,111, 98,106,101, 99,116,115, 0,111, 98,106, +101, 99,116,110,114, 0,116,111,116, 95,111, 98,106,101, 99,116, 0, 42, 98,114,117,115,104, 95,103,114,111,117,112, 0, 99,117, +114,114,101,110,116, 95,102,114, 97,109,101, 0,100,105,115,112, 95,116,121,112,101, 0,105,109, 97,103,101, 95,102,105,108,101, +102,111,114,109, 97,116, 0,101,102,102,101, 99,116, 95,117,105, 0,112,114,101,118,105,101,119, 95,105,100, 0,105,110,105,116, + 95, 99,111,108,111,114, 95,116,121,112,101, 0,112, 97,100, 95,115, 0,105,109, 97,103,101, 95,114,101,115,111,108,117,116,105, +111,110, 0,115,117, 98,115,116,101,112,115, 0,105,110,105,116, 95, 99,111,108,111,114, 91, 52, 93, 0, 42,105,110,105,116, 95, +116,101,120,116,117,114,101, 0,105,110,105,116, 95,108, 97,121,101,114,110, 97,109,101, 91, 54, 52, 93, 0,100,114,121, 95,115, +112,101,101,100, 0, 99,111,108,111,114, 95,100,114,121, 95,116,104,114,101,115,104,111,108,100, 0,100,101,112,116,104, 95, 99, +108, 97,109,112, 0,100,105,115,112, 95,102, 97, 99,116,111,114, 0,115,112,114,101, 97,100, 95,115,112,101,101,100, 0, 99,111, +108,111,114, 95,115,112,114,101, 97,100, 95,115,112,101,101,100, 0,115,104,114,105,110,107, 95,115,112,101,101,100, 0,100,114, +105,112, 95,118,101,108, 0,100,114,105,112, 95, 97, 99, 99, 0,105,110,102,108,117,101,110, 99,101, 95,115, 99, 97,108,101, 0, +114, 97,100,105,117,115, 95,115, 99, 97,108,101, 0,119, 97,118,101, 95,100, 97,109,112,105,110,103, 0,119, 97,118,101, 95,115, +112,101,101,100, 0,119, 97,118,101, 95,116,105,109,101,115, 99, 97,108,101, 0,119, 97,118,101, 95,115,112,114,105,110,103, 0, +105,109, 97,103,101, 95,111,117,116,112,117,116, 95,112, 97,116,104, 91, 49, 48, 50, 52, 93, 0,111,117,116,112,117,116, 95,110, + 97,109,101, 91, 54, 52, 93, 0,111,117,116,112,117,116, 95,110, 97,109,101, 50, 91, 54, 52, 93, 0, 42,112,109,100, 0,115,117, +114,102, 97, 99,101,115, 0, 97, 99,116,105,118,101, 95,115,117,114, 0,101,114,114,111,114, 91, 54, 52, 93, 0, 99,111,108,108, +105,115,105,111,110, 0,119,101,116,110,101,115,115, 0,112, 97,114,116,105, 99,108,101, 95,114, 97,100,105,117,115, 0,112, 97, +114,116,105, 99,108,101, 95,115,109,111,111,116,104, 0,112, 97,105,110,116, 95,100,105,115,116, 97,110, 99,101, 0, 42,112, 97, +105,110,116, 95,114, 97,109,112, 0, 42,118,101,108, 95,114, 97,109,112, 0,112,114,111,120,105,109,105,116,121, 95,102, 97,108, +108,111,102,102, 0,114, 97,121, 95,100,105,114, 0,119, 97,118,101, 95,102, 97, 99,116,111,114, 0,119, 97,118,101, 95, 99,108, + 97,109,112, 0,109, 97,120, 95,118,101,108,111, 99,105,116,121, 0,115,109,117,100,103,101, 95,115,116,114,101,110,103,116,104, + 0, 0, 0, 0, 84, 89, 80, 69, 16, 2, 0, 0, 99,104, 97,114, 0,117, 99,104, 97,114, 0,115,104,111,114,116, 0,117,115,104, +111,114,116, 0,105,110,116, 0,108,111,110,103, 0,117,108,111,110,103, 0,102,108,111, 97,116, 0,100,111,117, 98,108,101, 0, +105,110,116, 54, 52, 95,116, 0,117,105,110,116, 54, 52, 95,116, 0,118,111,105,100, 0, 76,105,110,107, 0, 76,105,110,107, 68, + 97,116, 97, 0, 76,105,115,116, 66, 97,115,101, 0,118,101, 99, 50,115, 0,118,101, 99, 50,102, 0,118,101, 99, 51,102, 0,114, + 99,116,105, 0,114, 99,116,102, 0, 73, 68, 80,114,111,112,101,114,116,121, 68, 97,116, 97, 0, 73, 68, 80,114,111,112,101,114, +116,121, 0, 73, 68, 0, 76,105, 98,114, 97,114,121, 0, 70,105,108,101, 68, 97,116, 97, 0, 80,114,101,118,105,101,119, 73,109, + 97,103,101, 0, 73,112,111, 68,114,105,118,101,114, 0, 79, 98,106,101, 99,116, 0, 73,112,111, 67,117,114,118,101, 0, 66, 80, +111,105,110,116, 0, 66,101,122, 84,114,105,112,108,101, 0, 73,112,111, 0, 75,101,121, 66,108,111, 99,107, 0, 75,101,121, 0, + 65,110,105,109, 68, 97,116, 97, 0, 84,101,120,116, 76,105,110,101, 0, 84,101,120,116, 77, 97,114,107,101,114, 0, 84,101,120, +116, 0, 80, 97, 99,107,101,100, 70,105,108,101, 0, 67, 97,109,101,114, 97, 0, 73,109, 97,103,101, 85,115,101,114, 0, 83, 99, +101,110,101, 0, 73,109, 97,103,101, 0, 71, 80, 85, 84,101,120,116,117,114,101, 0, 97,110,105,109, 0, 82,101,110,100,101,114, + 82,101,115,117,108,116, 0, 77, 84,101,120, 0, 84,101,120, 0, 80,108,117,103,105,110, 84,101,120, 0, 67, 66, 68, 97,116, 97, + 0, 67,111,108,111,114, 66, 97,110,100, 0, 69,110,118, 77, 97,112, 0, 73,109, 66,117,102, 0, 80,111,105,110,116, 68,101,110, +115,105,116,121, 0, 67,117,114,118,101, 77, 97,112,112,105,110,103, 0, 86,111,120,101,108, 68, 97,116, 97, 0, 79, 99,101, 97, +110, 84,101,120, 0, 98, 78,111,100,101, 84,114,101,101, 0, 84,101,120, 77, 97,112,112,105,110,103, 0, 67,111,108,111,114, 77, + 97,112,112,105,110,103, 0, 76, 97,109,112, 0, 86,111,108,117,109,101, 83,101,116,116,105,110,103,115, 0, 71, 97,109,101, 83, +101,116,116,105,110,103,115, 0, 77, 97,116,101,114,105, 97,108, 0, 71,114,111,117,112, 0, 86, 70,111,110,116, 0, 86, 70,111, +110,116, 68, 97,116, 97, 0, 77,101,116, 97, 69,108,101,109, 0, 66,111,117,110,100, 66,111,120, 0, 77,101,116, 97, 66, 97,108, +108, 0, 78,117,114, 98, 0, 67,104, 97,114, 73,110,102,111, 0, 84,101,120,116, 66,111,120, 0, 69,100,105,116, 78,117,114, 98, + 0, 71, 72, 97,115,104, 0, 67,117,114,118,101, 0, 80, 97,116,104, 0, 83,101,108, 66,111,120, 0, 69,100,105,116, 70,111,110, +116, 0, 77,101,115,104, 0, 77, 83,101,108,101, 99,116, 0, 77, 80,111,108,121, 0, 77, 84,101,120, 80,111,108,121, 0, 77, 76, +111,111,112, 0, 77, 76,111,111,112, 85, 86, 0, 77, 76,111,111,112, 67,111,108, 0, 77, 70, 97, 99,101, 0, 77, 84, 70, 97, 99, +101, 0, 84, 70, 97, 99,101, 0, 77, 86,101,114,116, 0, 77, 69,100,103,101, 0, 77, 68,101,102,111,114,109, 86,101,114,116, 0, + 77, 67,111,108, 0, 77, 83,116,105, 99,107,121, 0, 66, 77, 69,100,105,116, 77,101,115,104, 0, 67,117,115,116,111,109, 68, 97, +116, 97, 0, 77,117,108,116,105,114,101,115, 0, 77, 68,101,102,111,114,109, 87,101,105,103,104,116, 0, 77, 70,108,111, 97,116, + 80,114,111,112,101,114,116,121, 0, 77, 73,110,116, 80,114,111,112,101,114,116,121, 0, 77, 83,116,114,105,110,103, 80,114,111, +112,101,114,116,121, 0, 79,114,105,103, 83,112, 97, 99,101, 70, 97, 99,101, 0, 79,114,105,103, 83,112, 97, 99,101, 76,111,111, +112, 0, 77, 68,105,115,112,115, 0, 77,117,108,116,105,114,101,115, 67,111,108, 0, 77,117,108,116,105,114,101,115, 67,111,108, + 70, 97, 99,101, 0, 77,117,108,116,105,114,101,115, 70, 97, 99,101, 0, 77,117,108,116,105,114,101,115, 69,100,103,101, 0, 77, +117,108,116,105,114,101,115, 76,101,118,101,108, 0, 77, 82,101, 99, 97,115,116, 0, 77,111,100,105,102,105,101,114, 68, 97,116, + 97, 0, 77, 97,112,112,105,110,103, 73,110,102,111, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,117, 98,115,117,114, +102, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 76, 97,116,116,105, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, + 97, 0, 67,117,114,118,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66,117,105,108,100, 77,111,100,105,102,105,101, +114, 68, 97,116, 97, 0, 77, 97,115,107, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 65,114,114, 97,121, 77,111,100,105, +102,105,101,114, 68, 97,116, 97, 0, 77,105,114,114,111,114, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 69,100,103,101, + 83,112,108,105,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66,101,118,101,108, 77,111,100,105,102,105,101,114, 68, + 97,116, 97, 0, 66, 77,101,115,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,107,101, 77,111,100,105,102, +105,101,114, 68, 97,116, 97, 0, 83,109,111,107,101, 68,111,109, 97,105,110, 83,101,116,116,105,110,103,115, 0, 83,109,111,107, +101, 70,108,111,119, 83,101,116,116,105,110,103,115, 0, 83,109,111,107,101, 67,111,108,108, 83,101,116,116,105,110,103,115, 0, + 68,105,115,112,108, 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 85, 86, 80,114,111,106,101, 99,116, 77,111, +100,105,102,105,101,114, 68, 97,116, 97, 0, 68,101, 99,105,109, 97,116,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, + 83,109,111,111,116,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67, 97,115,116, 77,111,100,105,102,105,101,114, 68, + 97,116, 97, 0, 87, 97,118,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 65,114,109, 97,116,117,114,101, 77,111,100, +105,102,105,101,114, 68, 97,116, 97, 0, 72,111,111,107, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,111,102,116, 98, +111,100,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111,116,104, 77,111,100,105,102,105,101,114, 68, 97,116, + 97, 0, 67,108,111,116,104, 0, 67,108,111,116,104, 83,105,109, 83,101,116,116,105,110,103,115, 0, 67,108,111,116,104, 67,111, +108,108, 83,101,116,116,105,110,103,115, 0, 80,111,105,110,116, 67, 97, 99,104,101, 0, 67,111,108,108,105,115,105,111,110, 77, +111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, 86, 72, 84,114,101,101, 0, 83,117,114,102, 97, 99,101, 77,111,100,105,102, +105,101,114, 68, 97,116, 97, 0, 68,101,114,105,118,101,100, 77,101,115,104, 0, 66, 86, 72, 84,114,101,101, 70,114,111,109, 77, +101,115,104, 0, 66,111,111,108,101, 97,110, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77, 68,101,102, 73,110,102,108, +117,101,110, 99,101, 0, 77, 68,101,102, 67,101,108,108, 0, 77,101,115,104, 68,101,102,111,114,109, 77,111,100,105,102,105,101, +114, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,101,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, + 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,101,109, 0, 80, 97,114,116,105, 99,108,101, 73,110,115,116, 97,110, 99,101, + 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 69,120,112,108,111,100,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, + 0, 77,117,108,116,105,114,101,115, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 70,108,117,105,100,115,105,109, 77,111, +100,105,102,105,101,114, 68, 97,116, 97, 0, 70,108,117,105,100,115,105,109, 83,101,116,116,105,110,103,115, 0, 83,104,114,105, +110,107,119,114, 97,112, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,105,109,112,108,101, 68,101,102,111,114,109, 77, +111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,104, 97,112,101, 75,101,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, + 0, 83,111,108,105,100,105,102,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83, 99,114,101,119, 77,111,100,105,102, +105,101,114, 68, 97,116, 97, 0, 79, 99,101, 97,110, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 79, 99,101, 97,110, 0, + 79, 99,101, 97,110, 67, 97, 99,104,101, 0, 87, 97,114,112, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87,101,105,103, +104,116, 86, 71, 69,100,105,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87,101,105,103,104,116, 86, 71, 77,105,120, + 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87,101,105,103,104,116, 86, 71, 80,114,111,120,105,109,105,116,121, 77,111, +100,105,102,105,101,114, 68, 97,116, 97, 0, 68,121,110, 97,109,105, 99, 80, 97,105,110,116, 77,111,100,105,102,105,101,114, 68, + 97,116, 97, 0, 68,121,110, 97,109,105, 99, 80, 97,105,110,116, 67, 97,110,118, 97,115, 83,101,116,116,105,110,103,115, 0, 68, +121,110, 97,109,105, 99, 80, 97,105,110,116, 66,114,117,115,104, 83,101,116,116,105,110,103,115, 0, 82,101,109,101,115,104, 77, +111,100,105,102,105,101,114, 68, 97,116, 97, 0, 69,100,105,116, 76, 97,116,116, 0, 76, 97,116,116,105, 99,101, 0, 98, 68,101, +102,111,114,109, 71,114,111,117,112, 0, 83, 99,117,108,112,116, 83,101,115,115,105,111,110, 0, 98, 65, 99,116,105,111,110, 0, + 98, 80,111,115,101, 0, 98, 71, 80,100, 97,116, 97, 0, 98, 65,110,105,109, 86,105,122, 83,101,116,116,105,110,103,115, 0, 98, + 77,111,116,105,111,110, 80, 97,116,104, 0, 66,117,108,108,101,116, 83,111,102,116, 66,111,100,121, 0, 80, 97,114,116, 68,101, +102,108,101, 99,116, 0, 83,111,102,116, 66,111,100,121, 0, 79, 98, 72,111,111,107, 0, 68,117,112,108,105, 79, 98,106,101, 99, +116, 0, 82, 78, 71, 0, 69,102,102,101, 99,116,111,114, 87,101,105,103,104,116,115, 0, 80, 84, 67, 97, 99,104,101, 69,120,116, +114, 97, 0, 80, 84, 67, 97, 99,104,101, 77,101,109, 0, 80, 84, 67, 97, 99,104,101, 69,100,105,116, 0, 83, 66, 86,101,114,116, +101,120, 0, 66,111,100,121, 80,111,105,110,116, 0, 66,111,100,121, 83,112,114,105,110,103, 0, 83, 66, 83, 99,114, 97,116, 99, +104, 0, 70,108,117,105,100, 86,101,114,116,101,120, 86,101,108,111, 99,105,116,121, 0, 87,111,114,108,100, 0, 66, 97,115,101, + 0, 65,118,105, 67,111,100,101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,116,105,109,101, 67,111,100,101, 99, 68, 97,116, 97, + 0, 81,117,105, 99,107,116,105,109,101, 67,111,100,101, 99, 83,101,116,116,105,110,103,115, 0, 70, 70, 77,112,101,103, 67,111, +100,101, 99, 68, 97,116, 97, 0, 65,117,100,105,111, 68, 97,116, 97, 0, 83, 99,101,110,101, 82,101,110,100,101,114, 76, 97,121, +101,114, 0, 73,109, 97,103,101, 70,111,114,109, 97,116, 68, 97,116, 97, 0, 82,101,110,100,101,114, 68, 97,116, 97, 0, 82,101, +110,100,101,114, 80,114,111,102,105,108,101, 0, 71, 97,109,101, 68,111,109,101, 0, 71, 97,109,101, 70,114, 97,109,105,110,103, + 0, 82,101, 99, 97,115,116, 68, 97,116, 97, 0, 71, 97,109,101, 68, 97,116, 97, 0, 84,105,109,101, 77, 97,114,107,101,114, 0, + 80, 97,105,110,116, 0, 66,114,117,115,104, 0, 73,109, 97,103,101, 80, 97,105,110,116, 83,101,116,116,105,110,103,115, 0, 80, + 97,114,116,105, 99,108,101, 66,114,117,115,104, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 69,100,105,116, 83,101,116, +116,105,110,103,115, 0, 83, 99,117,108,112,116, 0, 85,118, 83, 99,117,108,112,116, 0, 86, 80, 97,105,110,116, 0, 84,114, 97, +110,115,102,111,114,109, 79,114,105,101,110,116, 97,116,105,111,110, 0, 85,110,105,102,105,101,100, 80, 97,105,110,116, 83,101, +116,116,105,110,103,115, 0, 84,111,111,108, 83,101,116,116,105,110,103,115, 0, 98, 83,116, 97,116,115, 0, 85,110,105,116, 83, +101,116,116,105,110,103,115, 0, 80,104,121,115,105, 99,115, 83,101,116,116,105,110,103,115, 0, 69,100,105,116,105,110,103, 0, + 83, 99,101,110,101, 83,116, 97,116,115, 0, 68, 97,103, 70,111,114,101,115,116, 0, 77,111,118,105,101, 67,108,105,112, 0, 66, + 71,112,105, 99, 0, 77,111,118,105,101, 67,108,105,112, 85,115,101,114, 0, 82,101,103,105,111,110, 86,105,101,119, 51, 68, 0, + 82,101,110,100,101,114, 73,110,102,111, 0, 82,101,110,100,101,114, 69,110,103,105,110,101, 0, 86,105,101,119, 68,101,112,116, +104,115, 0, 83,109,111,111,116,104, 86,105,101,119, 83,116,111,114,101, 0,119,109, 84,105,109,101,114, 0, 86,105,101,119, 51, + 68, 0, 83,112, 97, 99,101, 76,105,110,107, 0, 86,105,101,119, 50, 68, 0, 83,112, 97, 99,101, 73,110,102,111, 0, 83,112, 97, + 99,101, 73,112,111, 0, 98, 68,111,112,101, 83,104,101,101,116, 0, 83,112, 97, 99,101, 66,117,116,115, 0, 83,112, 97, 99,101, + 83,101,113, 0, 70,105,108,101, 83,101,108,101, 99,116, 80, 97,114, 97,109,115, 0, 83,112, 97, 99,101, 70,105,108,101, 0, 70, +105,108,101, 76,105,115,116, 0,119,109, 79,112,101,114, 97,116,111,114, 0, 70,105,108,101, 76, 97,121,111,117,116, 0, 83,112, + 97, 99,101, 79,111,112,115, 0, 84,114,101,101, 83,116,111,114,101, 0, 84,114,101,101, 83,116,111,114,101, 69,108,101,109, 0, + 83,112, 97, 99,101, 73,109, 97,103,101, 0, 83, 99,111,112,101,115, 0, 72,105,115,116,111,103,114, 97,109, 0, 83,112, 97, 99, +101, 78,108, 97, 0, 83,112, 97, 99,101, 84,101,120,116, 0, 83, 99,114,105,112,116, 0, 83,112, 97, 99,101, 83, 99,114,105,112, +116, 0, 83,112, 97, 99,101, 84,105,109,101, 67, 97, 99,104,101, 0, 83,112, 97, 99,101, 84,105,109,101, 0, 83,112, 97, 99,101, + 78,111,100,101, 0, 83,112, 97, 99,101, 76,111,103,105, 99, 0, 67,111,110,115,111,108,101, 76,105,110,101, 0, 83,112, 97, 99, +101, 67,111,110,115,111,108,101, 0, 83,112, 97, 99,101, 85,115,101,114, 80,114,101,102, 0, 83,112, 97, 99,101, 67,108,105,112, + 0, 77,111,118,105,101, 67,108,105,112, 83, 99,111,112,101,115, 0,117,105, 70,111,110,116, 0,117,105, 70,111,110,116, 83,116, +121,108,101, 0,117,105, 83,116,121,108,101, 0,117,105, 87,105,100,103,101,116, 67,111,108,111,114,115, 0,117,105, 87,105,100, +103,101,116, 83,116, 97,116,101, 67,111,108,111,114,115, 0,117,105, 80, 97,110,101,108, 67,111,108,111,114,115, 0, 84,104,101, +109,101, 85, 73, 0, 84,104,101,109,101, 83,112, 97, 99,101, 0, 84,104,101,109,101, 87,105,114,101, 67,111,108,111,114, 0, 98, + 84,104,101,109,101, 0, 98, 65,100,100,111,110, 0, 83,111,108,105,100, 76,105,103,104,116, 0, 85,115,101,114, 68,101,102, 0, + 98, 83, 99,114,101,101,110, 0, 83, 99,114, 86,101,114,116, 0, 83, 99,114, 69,100,103,101, 0, 80, 97,110,101,108, 0, 80, 97, +110,101,108, 84,121,112,101, 0,117,105, 76, 97,121,111,117,116, 0, 83, 99,114, 65,114,101, 97, 0, 83,112, 97, 99,101, 84,121, +112,101, 0, 65, 82,101,103,105,111,110, 0, 65, 82,101,103,105,111,110, 84,121,112,101, 0, 70,105,108,101, 71,108,111, 98, 97, +108, 0, 83,116,114,105,112, 69,108,101,109, 0, 83,116,114,105,112, 67,114,111,112, 0, 83,116,114,105,112, 84,114, 97,110,115, +102,111,114,109, 0, 83,116,114,105,112, 67,111,108,111,114, 66, 97,108, 97,110, 99,101, 0, 83,116,114,105,112, 80,114,111,120, +121, 0, 83,116,114,105,112, 0, 80,108,117,103,105,110, 83,101,113, 0, 83,101,113,117,101,110, 99,101, 0, 98, 83,111,117,110, +100, 0, 77,101,116, 97, 83,116, 97, 99,107, 0, 87,105,112,101, 86, 97,114,115, 0, 71,108,111,119, 86, 97,114,115, 0, 84,114, + 97,110,115,102,111,114,109, 86, 97,114,115, 0, 83,111,108,105,100, 67,111,108,111,114, 86, 97,114,115, 0, 83,112,101,101,100, + 67,111,110,116,114,111,108, 86, 97,114,115, 0, 69,102,102,101, 99,116, 0, 66,117,105,108,100, 69,102,102, 0, 80, 97,114,116, + 69,102,102, 0, 80, 97,114,116,105, 99,108,101, 0, 87, 97,118,101, 69,102,102, 0, 98, 80,114,111,112,101,114,116,121, 0, 98, + 78,101, 97,114, 83,101,110,115,111,114, 0, 98, 77,111,117,115,101, 83,101,110,115,111,114, 0, 98, 84,111,117, 99,104, 83,101, +110,115,111,114, 0, 98, 75,101,121, 98,111, 97,114,100, 83,101,110,115,111,114, 0, 98, 80,114,111,112,101,114,116,121, 83,101, +110,115,111,114, 0, 98, 65, 99,116,117, 97,116,111,114, 83,101,110,115,111,114, 0, 98, 68,101,108, 97,121, 83,101,110,115,111, +114, 0, 98, 67,111,108,108,105,115,105,111,110, 83,101,110,115,111,114, 0, 98, 82, 97,100, 97,114, 83,101,110,115,111,114, 0, + 98, 82, 97,110,100,111,109, 83,101,110,115,111,114, 0, 98, 82, 97,121, 83,101,110,115,111,114, 0, 98, 65,114,109, 97,116,117, +114,101, 83,101,110,115,111,114, 0, 98, 77,101,115,115, 97,103,101, 83,101,110,115,111,114, 0, 98, 83,101,110,115,111,114, 0, + 98, 67,111,110,116,114,111,108,108,101,114, 0, 98, 74,111,121,115,116,105, 99,107, 83,101,110,115,111,114, 0, 98, 69,120,112, +114,101,115,115,105,111,110, 67,111,110,116, 0, 98, 80,121,116,104,111,110, 67,111,110,116, 0, 98, 65, 99,116,117, 97,116,111, +114, 0, 98, 65,100,100, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 65, 99,116,105,111,110, 65, 99,116,117, + 97,116,111,114, 0, 83,111,117,110,100, 51, 68, 0, 98, 83,111,117,110,100, 65, 99,116,117, 97,116,111,114, 0, 98, 69,100,105, +116, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 83, 99,101,110,101, 65, 99,116,117, 97,116,111,114, 0, 98, + 80,114,111,112,101,114,116,121, 65, 99,116,117, 97,116,111,114, 0, 98, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, + 0, 98, 73,112,111, 65, 99,116,117, 97,116,111,114, 0, 98, 67, 97,109,101,114, 97, 65, 99,116,117, 97,116,111,114, 0, 98, 67, +111,110,115,116,114, 97,105,110,116, 65, 99,116,117, 97,116,111,114, 0, 98, 71,114,111,117,112, 65, 99,116,117, 97,116,111,114, + 0, 98, 82, 97,110,100,111,109, 65, 99,116,117, 97,116,111,114, 0, 98, 77,101,115,115, 97,103,101, 65, 99,116,117, 97,116,111, +114, 0, 98, 71, 97,109,101, 65, 99,116,117, 97,116,111,114, 0, 98, 86,105,115,105, 98,105,108,105,116,121, 65, 99,116,117, 97, +116,111,114, 0, 98, 84,119,111, 68, 70,105,108,116,101,114, 65, 99,116,117, 97,116,111,114, 0, 98, 80, 97,114,101,110,116, 65, + 99,116,117, 97,116,111,114, 0, 98, 83,116, 97,116,101, 65, 99,116,117, 97,116,111,114, 0, 98, 65,114,109, 97,116,117,114,101, + 65, 99,116,117, 97,116,111,114, 0, 98, 83,116,101,101,114,105,110,103, 65, 99,116,117, 97,116,111,114, 0, 71,114,111,117,112, + 79, 98,106,101, 99,116, 0, 66,111,110,101, 0, 98, 65,114,109, 97,116,117,114,101, 0, 98, 77,111,116,105,111,110, 80, 97,116, +104, 86,101,114,116, 0, 98, 80,111,115,101, 67,104, 97,110,110,101,108, 0, 98, 73, 75, 80, 97,114, 97,109, 0, 98, 73,116, 97, +115, 99, 0, 98, 65, 99,116,105,111,110, 71,114,111,117,112, 0, 83,112, 97, 99,101, 65, 99,116,105,111,110, 0, 98, 65, 99,116, +105,111,110, 67,104, 97,110,110,101,108, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 67,104, 97,110,110,101,108, 0, 98, 67, +111,110,115,116,114, 97,105,110,116, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 84, 97,114,103,101,116, 0, 98, 80,121,116, +104,111,110, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 75,105,110,101,109, 97,116,105, 99, 67,111,110,115,116,114, 97,105, +110,116, 0, 98, 83,112,108,105,110,101, 73, 75, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97, 99,107, 84,111, 67, +111,110,115,116,114, 97,105,110,116, 0, 98, 82,111,116, 97,116,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, + 98, 76,111, 99, 97,116,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,105,122,101, 76,105,107,101, 67, +111,110,115,116,114, 97,105,110,116, 0, 98, 83, 97,109,101, 86,111,108,117,109,101, 67,111,110,115,116,114, 97,105,110,116, 0, + 98, 84,114, 97,110,115, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 77,105,110, 77, 97,120, 67,111,110,115, +116,114, 97,105,110,116, 0, 98, 65, 99,116,105,111,110, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99,107, 84,114, + 97, 99,107, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 68, 97,109,112, 84,114, 97, 99,107, 67,111,110,115,116,114, 97,105, +110,116, 0, 98, 70,111,108,108,111,119, 80, 97,116,104, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,116,114,101,116, 99, +104, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82,105,103,105,100, 66,111,100,121, 74,111,105,110,116, 67,111,110, +115,116,114, 97,105,110,116, 0, 98, 67,108, 97,109,112, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,104,105,108, +100, 79,102, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97,110,115,102,111,114,109, 67,111,110,115,116,114, 97,105, +110,116, 0, 98, 80,105,118,111,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 76,105,109,105,116, 67,111,110, +115,116,114, 97,105,110,116, 0, 98, 82,111,116, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,105,122, +101, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 68,105,115,116, 76,105,109,105,116, 67,111,110,115,116, +114, 97,105,110,116, 0, 98, 83,104,114,105,110,107,119,114, 97,112, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 70,111,108, +108,111,119, 84,114, 97, 99,107, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67, 97,109,101,114, 97, 83,111,108,118,101,114, + 67,111,110,115,116,114, 97,105,110,116, 0, 98, 79, 98,106,101, 99,116, 83,111,108,118,101,114, 67,111,110,115,116,114, 97,105, +110,116, 0, 98, 65, 99,116,105,111,110, 77,111,100,105,102,105,101,114, 0, 98, 65, 99,116,105,111,110, 83,116,114,105,112, 0, + 98, 78,111,100,101, 83,116, 97, 99,107, 0, 98, 78,111,100,101, 83,111, 99,107,101,116, 0, 98, 78,111,100,101, 76,105,110,107, + 0, 98, 78,111,100,101, 80,114,101,118,105,101,119, 0, 98, 78,111,100,101, 0,117,105, 66,108,111, 99,107, 0, 98, 78,111,100, +101, 84,121,112,101, 0, 98, 78,111,100,101, 84,114,101,101, 69,120,101, 99, 0, 98, 78,111,100,101, 83,111, 99,107,101,116, 86, + 97,108,117,101, 73,110,116, 0, 98, 78,111,100,101, 83,111, 99,107,101,116, 86, 97,108,117,101, 70,108,111, 97,116, 0, 98, 78, +111,100,101, 83,111, 99,107,101,116, 86, 97,108,117,101, 66,111,111,108,101, 97,110, 0, 98, 78,111,100,101, 83,111, 99,107,101, +116, 86, 97,108,117,101, 86,101, 99,116,111,114, 0, 98, 78,111,100,101, 83,111, 99,107,101,116, 86, 97,108,117,101, 82, 71, 66, + 65, 0, 78,111,100,101, 73,109, 97,103,101, 65,110,105,109, 0, 78,111,100,101, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100, +101, 68, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 66,105,108, 97,116,101,114, 97,108, 66,108,117,114, 68, 97,116, 97, + 0, 78,111,100,101, 72,117,101, 83, 97,116, 0, 78,111,100,101, 73,109, 97,103,101, 70,105,108,101, 0, 78,111,100,101, 73,109, + 97,103,101, 77,117,108,116,105, 70,105,108,101, 0, 78,111,100,101, 73,109, 97,103,101, 77,117,108,116,105, 70,105,108,101, 83, +111, 99,107,101,116, 0, 78,111,100,101, 67,104,114,111,109, 97, 0, 78,111,100,101, 84,119,111, 88, 89,115, 0, 78,111,100,101, + 84,119,111, 70,108,111, 97,116,115, 0, 78,111,100,101, 71,101,111,109,101,116,114,121, 0, 78,111,100,101, 86,101,114,116,101, +120, 67,111,108, 0, 78,111,100,101, 68,101,102,111, 99,117,115, 0, 78,111,100,101, 83, 99,114,105,112,116, 68,105, 99,116, 0, + 78,111,100,101, 71,108, 97,114,101, 0, 78,111,100,101, 84,111,110,101,109, 97,112, 0, 78,111,100,101, 76,101,110,115, 68,105, +115,116, 0, 78,111,100,101, 67,111,108,111,114, 66, 97,108, 97,110, 99,101, 0, 78,111,100,101, 67,111,108,111,114,115,112,105, +108,108, 0, 78,111,100,101, 84,101,120, 66, 97,115,101, 0, 78,111,100,101, 84,101,120, 83,107,121, 0, 78,111,100,101, 84,101, +120, 73,109, 97,103,101, 0, 78,111,100,101, 84,101,120, 67,104,101, 99,107,101,114, 0, 78,111,100,101, 84,101,120, 69,110,118, +105,114,111,110,109,101,110,116, 0, 78,111,100,101, 84,101,120, 71,114, 97,100,105,101,110,116, 0, 78,111,100,101, 84,101,120, + 78,111,105,115,101, 0, 78,111,100,101, 84,101,120, 86,111,114,111,110,111,105, 0, 78,111,100,101, 84,101,120, 77,117,115,103, +114, 97,118,101, 0, 78,111,100,101, 84,101,120, 87, 97,118,101, 0, 78,111,100,101, 84,101,120, 77, 97,103,105, 99, 0, 78,111, +100,101, 83,104, 97,100,101,114, 65,116,116,114,105, 98,117,116,101, 0, 84,101,120, 78,111,100,101, 79,117,116,112,117,116, 0, + 67,117,114,118,101, 77, 97,112, 80,111,105,110,116, 0, 67,117,114,118,101, 77, 97,112, 0, 66,114,117,115,104, 67,108,111,110, +101, 0, 67,117,115,116,111,109, 68, 97,116, 97, 76, 97,121,101,114, 0, 67,117,115,116,111,109, 68, 97,116, 97, 69,120,116,101, +114,110, 97,108, 0, 72, 97,105,114, 75,101,121, 0, 80, 97,114,116,105, 99,108,101, 75,101,121, 0, 66,111,105,100, 80, 97,114, +116,105, 99,108,101, 0, 66,111,105,100, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,112,114,105,110,103, 0, 67,104, +105,108,100, 80, 97,114,116,105, 99,108,101, 0, 80, 97,114,116,105, 99,108,101, 84, 97,114,103,101,116, 0, 80, 97,114,116,105, + 99,108,101, 68,117,112,108,105, 87,101,105,103,104,116, 0, 80, 97,114,116,105, 99,108,101, 68, 97,116, 97, 0, 83, 80, 72, 70, +108,117,105,100, 83,101,116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 83,101,116,116,105,110,103,115, 0, 66,111, +105,100, 83,101,116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 67, 97, 99,104,101, 75,101,121, 0, 75, 68, 84,114, +101,101, 0, 80, 97,114,116,105, 99,108,101, 68,114, 97,119, 68, 97,116, 97, 0, 76,105,110,107, 78,111,100,101, 0, 98, 71, 80, + 68,115,112,111,105,110,116, 0, 98, 71, 80, 68,115,116,114,111,107,101, 0, 98, 71, 80, 68,102,114, 97,109,101, 0, 98, 71, 80, + 68,108, 97,121,101,114, 0, 82,101,112,111,114,116, 76,105,115,116, 0,119,109, 87,105,110,100,111,119, 77, 97,110, 97,103,101, +114, 0,119,109, 87,105,110,100,111,119, 0,119,109, 75,101,121, 67,111,110,102,105,103, 0,119,109, 69,118,101,110,116, 0,119, +109, 83,117, 98, 87,105,110,100,111,119, 0,119,109, 71,101,115,116,117,114,101, 0,119,109, 75,101,121, 77, 97,112, 73,116,101, +109, 0, 80,111,105,110,116,101,114, 82, 78, 65, 0,119,109, 75,101,121, 77, 97,112, 68,105,102,102, 73,116,101,109, 0,119,109, + 75,101,121, 77, 97,112, 0,119,109, 79,112,101,114, 97,116,111,114, 84,121,112,101, 0, 70, 77,111,100,105,102,105,101,114, 0, + 70, 77,111,100, 95, 71,101,110,101,114, 97,116,111,114, 0, 70, 77,111,100, 95, 70,117,110, 99,116,105,111,110, 71,101,110,101, +114, 97,116,111,114, 0, 70, 67, 77, 95, 69,110,118,101,108,111,112,101, 68, 97,116, 97, 0, 70, 77,111,100, 95, 69,110,118,101, +108,111,112,101, 0, 70, 77,111,100, 95, 67,121, 99,108,101,115, 0, 70, 77,111,100, 95, 80,121,116,104,111,110, 0, 70, 77,111, +100, 95, 76,105,109,105,116,115, 0, 70, 77,111,100, 95, 78,111,105,115,101, 0, 70, 77,111,100, 95, 83,116,101,112,112,101,100, + 0, 68,114,105,118,101,114, 84, 97,114,103,101,116, 0, 68,114,105,118,101,114, 86, 97,114, 0, 67,104, 97,110,110,101,108, 68, +114,105,118,101,114, 0, 70, 80,111,105,110,116, 0, 70, 67,117,114,118,101, 0, 65,110,105,109, 77, 97,112, 80, 97,105,114, 0, + 65,110,105,109, 77, 97,112,112,101,114, 0, 78,108, 97, 83,116,114,105,112, 0, 78,108, 97, 84,114, 97, 99,107, 0, 75, 83, 95, + 80, 97,116,104, 0, 75,101,121,105,110,103, 83,101,116, 0, 65,110,105,109, 79,118,101,114,114,105,100,101, 0, 73,100, 65,100, +116, 84,101,109,112,108, 97,116,101, 0, 66,111,105,100, 82,117,108,101, 0, 66,111,105,100, 82,117,108,101, 71,111, 97,108, 65, +118,111,105,100, 0, 66,111,105,100, 82,117,108,101, 65,118,111,105,100, 67,111,108,108,105,115,105,111,110, 0, 66,111,105,100, + 82,117,108,101, 70,111,108,108,111,119, 76,101, 97,100,101,114, 0, 66,111,105,100, 82,117,108,101, 65,118,101,114, 97,103,101, + 83,112,101,101,100, 0, 66,111,105,100, 82,117,108,101, 70,105,103,104,116, 0, 66,111,105,100, 83,116, 97,116,101, 0, 70, 76, + 85, 73, 68, 95, 51, 68, 0, 87, 84, 85, 82, 66, 85, 76, 69, 78, 67, 69, 0, 83,112,101, 97,107,101,114, 0, 77,111,118,105,101, + 67,108,105,112, 80,114,111,120,121, 0, 77,111,118,105,101, 67,108,105,112, 67, 97, 99,104,101, 0, 77,111,118,105,101, 84,114, + 97, 99,107,105,110,103, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 84,114, 97, 99,107, 0, 77,111,118,105,101, 84, +114, 97, 99,107,105,110,103, 77, 97,114,107,101,114, 0, 77,111,118,105,101, 82,101, 99,111,110,115,116,114,117, 99,116,101,100, + 67, 97,109,101,114, 97, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 67, 97,109,101,114, 97, 0, 77,111,118,105,101, + 84,114, 97, 99,107,105,110,103, 83,101,116,116,105,110,103,115, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 83,116, + 97, 98,105,108,105,122, 97,116,105,111,110, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 82,101, 99,111,110,115,116, +114,117, 99,116,105,111,110, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 79, 98,106,101, 99,116, 0, 77,111,118,105, +101, 84,114, 97, 99,107,105,110,103, 83,116, 97,116,115, 0, 68,121,110, 97,109,105, 99, 80, 97,105,110,116, 83,117,114,102, 97, + 99,101, 0, 80, 97,105,110,116, 83,117,114,102, 97, 99,101, 68, 97,116, 97, 0, 84, 76, 69, 78, 1, 0, 1, 0, 2, 0, 2, 0, + 4, 0, 4, 0, 4, 0, 4, 0, 8, 0, 8, 0, 8, 0, 0, 0, 16, 0, 24, 0, 16, 0, 4, 0, 8, 0, 12, 0, 16, 0, 16, 0, + 32, 0,128, 0,120, 0,152, 8, 0, 0, 40, 0,144, 0,112, 5,112, 0, 36, 0, 56, 0,160, 0,192, 0,224, 0, 96, 0, 40, 0, + 48, 0,224, 0, 16, 0,200, 0, 40, 0,216, 11, 48, 5, 0, 0, 0, 0, 0, 0, 56, 1,168, 1,216, 4, 24, 0, 8, 3,200, 0, + 0, 0,104, 0, 64, 1, 56, 4, 80, 0, 24, 1,144, 0, 56, 3, 16, 2, 88, 0, 16, 0,128, 3,152, 0,136, 4, 0, 0,104, 0, +104, 0, 0, 1, 80, 0, 8, 0, 16, 0, 32, 0, 0, 0, 8, 2, 0, 0, 0, 0, 0, 0,232, 4, 8, 0, 12, 0, 16, 0, 8, 0, + 12, 0, 4, 0, 20, 0, 48, 0, 64, 0, 20, 0, 12, 0, 16, 0, 4, 0, 8, 0, 0, 0,176, 0,144, 1, 8, 0, 4, 0, 4, 0, + 0, 1, 32, 0, 8, 0, 24, 0, 16, 0, 64, 0, 24, 0, 12, 0, 64, 0, 4, 0,112, 0,200, 0,136, 0,192, 0,192, 0,128, 0, +192, 0,192, 0,128, 0,120, 0,200, 0,120, 0,144, 0, 16, 1, 56, 0,192, 0, 24, 1, 40, 1,120, 0,184, 0,200, 0, 64, 1, +200, 0, 88, 1,112, 0,168, 0, 0, 0,152, 0, 48, 0, 40, 5,192, 0, 0, 0,152, 0, 0, 0, 0, 0,128, 0, 8, 0, 8, 0, +112, 1,144, 0,152, 2,136, 0,192, 0,120, 0,128, 0,224, 4,208, 0,200, 0,112, 0,208, 0,144, 0, 16, 5, 0, 0, 0, 0, + 48, 1,104, 1,160, 1,104, 1,136, 0,104, 0,112, 0,128, 0, 16, 0, 96, 1, 88, 0, 0, 0,200, 0,216, 0,152, 0, 48, 0, + 24, 0,120, 0,152, 0,216, 1, 0, 1,184, 0, 0, 0, 72, 0, 32, 0,176, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 12, 0, + 24, 2, 40, 0,184, 0,152, 0, 64, 0, 72, 0, 32, 0,128, 0, 24, 0, 56, 9, 64, 0, 24, 0, 16, 0, 56, 0,168, 0, 96, 0, + 24, 0, 88, 6, 48, 0, 16, 0,168, 0, 96, 0, 24, 0, 56, 0,120, 0, 16, 0,232, 1, 32, 0, 8, 0, 24, 0, 80, 8, 0, 0, + 0, 0,192, 8,104, 0, 8, 0,112, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 1, 56, 0,144, 0, 64, 0,240, 0,112, 0, +248, 0,240, 0,160, 7,104, 0, 0, 0,168, 0, 0, 0, 24, 1, 16, 0, 16, 0, 40, 33,128, 16, 24, 16,216, 0,160, 2,168, 5, + 64, 0, 24, 0,208, 0, 48, 1, 72, 0, 40, 0,136, 1,104, 0, 48, 1, 56, 0, 24, 4, 32, 0,232, 0, 32, 0, 32, 0, 8, 0, + 80, 3,224, 1, 16, 0,168, 36, 80, 0, 56, 0,112, 38, 8, 1, 32, 0, 40, 0, 88, 1, 0, 0, 0, 0,160, 0, 0, 0, 40, 1, + 0, 0, 48, 4, 8, 1, 16, 0, 8, 0, 44, 0, 16, 4, 72, 3,200, 4, 80, 1,208, 4, 32, 0, 12, 0, 24, 0, 32, 0, 16, 0, + 24, 0, 24, 0, 32, 0,136, 1, 0, 0, 64, 0, 96, 0, 80, 0, 8, 0, 80, 0,136, 0,200, 0, 72, 0, 8, 0,136, 0, 76, 0, + 72, 0,204, 0,136, 0,136, 0,128, 0,136, 0, 92, 0,128, 0, 80, 0,112, 0, 16, 0,168, 0, 32, 0, 72, 0,120, 0, 24, 0, +144, 0,112, 0,148, 0, 32, 0,128, 0, 88, 0, 88, 0,208, 0,140, 0, 4, 0, 24, 0, 16, 0, 8, 0,160, 0, 48, 0, 40, 0, + 72, 1, 0, 1, 16, 0, 32, 2, 4, 0, 40, 0,120, 0, 72, 1,120, 0, 56, 0,120, 0,160, 0,112, 0,184, 0, 24, 0, 88, 0, + 80, 0, 80, 0, 80, 0, 8, 0, 72, 0,104, 0,104, 0, 80, 0, 80, 0, 24, 0, 88, 0,104, 0, 16, 0,144, 0,128, 0, 88, 0, + 28, 0, 28, 0, 28, 0, 88, 0, 24, 0,160, 0, 16, 0,152, 0, 72, 0,168, 0, 48, 0,208, 0, 56, 0, 16, 0, 88, 1, 0, 0, + 0, 0, 0, 0, 16, 0, 16, 0, 4, 0, 24, 0, 16, 0, 16, 0, 40, 0, 28, 0, 12, 0, 12, 0, 32, 4, 40, 4, 32, 0, 44, 0, + 24, 0, 8, 0,128, 0, 64, 0, 32, 0, 16, 0, 32, 0, 32, 0, 8, 0, 96, 0, 20, 0,200, 3,216, 3,208, 3,200, 3,208, 3, +208, 3,200, 3,208, 3,208, 3,208, 3,208, 3, 64, 0, 64, 0, 12, 0, 56, 0, 24, 0,104, 0, 0, 4, 24, 0, 56, 0, 56, 0, + 20, 0, 16, 0, 64, 0, 40, 0, 32, 0,192, 0, 60, 0, 16, 3,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 32, 0, 40, 0, +192, 0, 40, 0, 88, 1, 0, 1,168, 0, 0, 0, 0, 0, 0, 0,184, 0, 0, 0, 32, 0,136, 0, 0, 0,120, 0, 24, 0, 24, 0, + 16, 0, 24, 0, 8, 0, 16, 0, 24, 0, 20, 0, 20, 0, 56, 0, 24, 2, 40, 1, 16, 0,104, 0, 0, 1, 40, 0,208, 0,104, 0, +112, 0,216, 1, 32, 0,128, 0, 56, 0, 80, 0, 64, 0,104, 0, 72, 0, 64, 0,128, 0, 0, 0, 0, 0,184, 0, 8, 3, 0, 0, +248, 0,192, 0, 16, 0, 72, 0, 48, 0, 64, 0, 56, 0, 24, 0,128, 0, 0, 1, 16, 6, 0, 0, 83, 84, 82, 67,207, 1, 0, 0, + 12, 0, 2, 0, 12, 0, 0, 0, 12, 0, 1, 0, 13, 0, 3, 0, 13, 0, 0, 0, 13, 0, 1, 0, 11, 0, 2, 0, 14, 0, 2, 0, + 11, 0, 3, 0, 11, 0, 4, 0, 15, 0, 2, 0, 2, 0, 5, 0, 2, 0, 6, 0, 16, 0, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0, + 17, 0, 3, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 18, 0, 4, 0, 4, 0, 8, 0, 4, 0, 9, 0, 4, 0, 10, 0, + 4, 0, 11, 0, 19, 0, 4, 0, 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 20, 0, 4, 0, 11, 0, 12, 0, + 14, 0, 13, 0, 4, 0, 14, 0, 4, 0, 15, 0, 21, 0, 10, 0, 21, 0, 0, 0, 21, 0, 1, 0, 0, 0, 16, 0, 0, 0, 17, 0, + 2, 0, 18, 0, 0, 0, 19, 0, 4, 0, 20, 0, 20, 0, 21, 0, 4, 0, 22, 0, 4, 0, 23, 0, 22, 0, 11, 0, 11, 0, 0, 0, + 11, 0, 1, 0, 22, 0, 24, 0, 23, 0, 25, 0, 0, 0, 26, 0, 2, 0, 27, 0, 2, 0, 28, 0, 2, 0, 18, 0, 4, 0, 29, 0, + 4, 0, 30, 0, 21, 0, 31, 0, 23, 0, 8, 0, 22, 0, 32, 0, 22, 0, 33, 0, 24, 0, 34, 0, 0, 0, 35, 0, 0, 0, 36, 0, + 4, 0, 37, 0, 4, 0, 27, 0, 23, 0, 38, 0, 25, 0, 5, 0, 4, 0, 39, 0, 4, 0, 40, 0, 2, 0, 41, 0, 2, 0, 42, 0, + 4, 0, 43, 0, 26, 0, 6, 0, 27, 0, 44, 0, 2, 0, 45, 0, 2, 0, 46, 0, 2, 0, 16, 0, 2, 0, 18, 0, 0, 0, 47, 0, + 28, 0, 21, 0, 28, 0, 0, 0, 28, 0, 1, 0, 29, 0, 48, 0, 30, 0, 49, 0, 19, 0, 50, 0, 19, 0, 51, 0, 2, 0, 45, 0, + 2, 0, 46, 0, 2, 0, 52, 0, 2, 0, 53, 0, 2, 0, 54, 0, 2, 0, 55, 0, 2, 0, 18, 0, 2, 0, 56, 0, 7, 0, 10, 0, + 7, 0, 11, 0, 4, 0, 57, 0, 7, 0, 58, 0, 7, 0, 59, 0, 7, 0, 60, 0, 26, 0, 61, 0, 31, 0, 7, 0, 22, 0, 32, 0, + 14, 0, 62, 0, 19, 0, 63, 0, 2, 0, 45, 0, 2, 0, 64, 0, 2, 0, 65, 0, 2, 0, 27, 0, 32, 0, 16, 0, 32, 0, 0, 0, + 32, 0, 1, 0, 7, 0, 66, 0, 7, 0, 60, 0, 2, 0, 16, 0, 2, 0, 67, 0, 2, 0, 68, 0, 2, 0, 18, 0, 4, 0, 69, 0, + 4, 0, 70, 0, 11, 0, 2, 0, 7, 0, 71, 0, 0, 0, 19, 0, 0, 0, 72, 0, 7, 0, 73, 0, 7, 0, 74, 0, 33, 0, 15, 0, + 22, 0, 32, 0, 34, 0, 75, 0, 32, 0, 76, 0, 0, 0, 77, 0, 4, 0, 78, 0, 4, 0, 27, 0, 14, 0, 79, 0, 31, 0, 80, 0, + 22, 0, 81, 0, 2, 0, 16, 0, 2, 0, 82, 0, 2, 0, 83, 0, 2, 0, 18, 0, 7, 0, 84, 0, 4, 0, 85, 0, 35, 0, 6, 0, + 35, 0, 0, 0, 35, 0, 1, 0, 0, 0, 86, 0, 0, 0, 87, 0, 4, 0, 22, 0, 4, 0, 88, 0, 36, 0, 10, 0, 36, 0, 0, 0, + 36, 0, 1, 0, 4, 0, 89, 0, 4, 0, 90, 0, 4, 0, 91, 0, 4, 0, 67, 0, 4, 0, 13, 0, 4, 0, 92, 0, 0, 0, 93, 0, + 0, 0, 94, 0, 37, 0, 15, 0, 22, 0, 32, 0, 0, 0, 95, 0, 4, 0, 92, 0, 4, 0, 96, 0, 14, 0, 97, 0, 35, 0, 98, 0, + 35, 0, 99, 0, 4, 0,100, 0, 4, 0,101, 0, 14, 0,102, 0, 0, 0,103, 0, 4, 0,104, 0, 4, 0,105, 0, 11, 0,106, 0, + 8, 0,107, 0, 38, 0, 3, 0, 4, 0,108, 0, 4, 0,109, 0, 11, 0, 2, 0, 39, 0, 20, 0, 22, 0, 32, 0, 34, 0, 75, 0, + 0, 0, 16, 0, 0, 0,110, 0, 2, 0, 18, 0, 7, 0,111, 0, 7, 0,112, 0, 7, 0,113, 0, 7, 0,114, 0, 7, 0,115, 0, + 7, 0,116, 0, 7, 0,117, 0, 7, 0,118, 0, 7, 0,119, 0, 7, 0,120, 0, 7, 0,121, 0, 31, 0, 80, 0, 27, 0,122, 0, + 0, 0,123, 0, 0, 0,124, 0, 40, 0, 14, 0, 41, 0,125, 0, 4, 0,126, 0, 4, 0,127, 0, 4, 0,128, 0, 4, 0,129, 0, + 0, 0,130, 0, 0, 0,131, 0, 0, 0,132, 0, 0, 0, 27, 0, 2, 0,133, 0, 2, 0,134, 0, 2, 0,135, 0, 2, 0, 18, 0, + 4, 0, 30, 0, 42, 0, 33, 0, 22, 0, 32, 0, 0, 0, 35, 0, 14, 0,136, 0, 43, 0,137, 0, 44, 0,138, 0, 45, 0,139, 0, + 45, 0,140, 0, 2, 0,141, 0, 2, 0,142, 0, 2, 0,132, 0, 2, 0, 18, 0, 2, 0,143, 0, 2, 0, 16, 0, 4, 0,144, 0, + 2, 0,145, 0, 2, 0,146, 0, 2, 0,147, 0, 2, 0,148, 0, 2, 0,149, 0, 2, 0,150, 0, 4, 0,151, 0, 4, 0,152, 0, + 38, 0,153, 0, 25, 0,154, 0, 7, 0,155, 0, 4, 0,156, 0, 2, 0,157, 0, 2, 0,158, 0, 2, 0,159, 0, 0, 0,160, 0, + 0, 0,161, 0, 7, 0,162, 0, 7, 0,163, 0, 46, 0, 65, 0, 2, 0,164, 0, 2, 0,165, 0, 2, 0,166, 0, 2, 0,167, 0, + 27, 0,168, 0, 47, 0,169, 0, 0, 0,170, 0, 0, 0,171, 0, 0, 0,172, 0, 0, 0,173, 0, 0, 0,174, 0, 7, 0,175, 0, + 7, 0,176, 0, 7, 0,177, 0, 2, 0,178, 0, 2, 0,179, 0, 2, 0,180, 0, 2, 0,181, 0, 2, 0,182, 0, 2, 0,183, 0, + 0, 0,184, 0, 0, 0,124, 0, 7, 0,185, 0, 7, 0,186, 0, 7, 0,187, 0, 7, 0,188, 0, 7, 0,189, 0, 7, 0, 56, 0, + 7, 0,190, 0, 7, 0,191, 0, 7, 0,192, 0, 7, 0,193, 0, 7, 0,194, 0, 7, 0,195, 0, 7, 0,196, 0, 7, 0,197, 0, + 7, 0,198, 0, 7, 0,199, 0, 7, 0,200, 0, 7, 0,201, 0, 7, 0,202, 0, 7, 0,203, 0, 7, 0,204, 0, 7, 0,205, 0, + 7, 0,206, 0, 7, 0,207, 0, 7, 0,208, 0, 7, 0,209, 0, 7, 0,210, 0, 7, 0,211, 0, 7, 0,212, 0, 7, 0,213, 0, + 7, 0,214, 0, 7, 0,215, 0, 7, 0,216, 0, 7, 0,217, 0, 7, 0,218, 0, 7, 0,219, 0, 7, 0,220, 0, 7, 0,221, 0, + 7, 0,222, 0, 7, 0,223, 0, 7, 0,224, 0, 7, 0,225, 0, 7, 0,226, 0, 48, 0, 15, 0, 0, 0, 35, 0, 11, 0,227, 0, + 0, 0,228, 0, 0, 0,229, 0, 4, 0,230, 0, 4, 0,231, 0, 11, 0,232, 0, 7, 0,233, 0, 7, 0,234, 0, 7, 0,235, 0, + 4, 0,236, 0, 11, 0,237, 0, 11, 0,238, 0, 4, 0,239, 0, 4, 0, 27, 0, 49, 0, 6, 0, 7, 0,185, 0, 7, 0,186, 0, + 7, 0,187, 0, 7, 0,240, 0, 7, 0, 66, 0, 4, 0, 63, 0, 50, 0, 5, 0, 2, 0, 18, 0, 2, 0, 37, 0, 2, 0, 63, 0, + 2, 0,241, 0, 49, 0,235, 0, 51, 0, 17, 0, 27, 0,168, 0, 42, 0,242, 0, 52, 0,243, 0, 7, 0,244, 0, 7, 0,245, 0, + 2, 0, 16, 0, 2, 0,246, 0, 7, 0,112, 0, 7, 0,113, 0, 7, 0,247, 0, 4, 0,248, 0, 2, 0,249, 0, 2, 0,250, 0, + 4, 0,132, 0, 4, 0,144, 0, 2, 0,251, 0, 2, 0,252, 0, 53, 0, 25, 0, 2, 0, 18, 0, 2, 0,253, 0, 7, 0,254, 0, + 7, 0,255, 0, 2, 0,143, 0, 2, 0, 0, 1, 4, 0, 1, 1, 4, 0, 2, 1, 27, 0,168, 0, 4, 0, 3, 1, 2, 0, 4, 1, + 2, 0, 5, 1, 11, 0, 6, 1, 7, 0, 7, 1, 7, 0, 8, 1, 2, 0, 9, 1, 2, 0, 10, 1, 2, 0, 11, 1, 2, 0, 12, 1, + 7, 0, 13, 1, 7, 0, 14, 1, 7, 0, 15, 1, 7, 0, 16, 1, 50, 0, 17, 1, 54, 0, 18, 1, 55, 0, 13, 0, 4, 0, 19, 1, + 4, 0, 20, 1, 2, 0, 21, 1, 2, 0, 18, 0, 2, 0, 22, 1, 2, 0, 23, 1, 27, 0,168, 0, 7, 0, 24, 1, 4, 0, 25, 1, + 0, 0, 26, 1, 7, 0, 27, 1, 4, 0, 28, 1, 4, 0,132, 0, 56, 0, 4, 0, 27, 0,168, 0, 0, 0, 29, 1, 4, 0, 30, 1, + 4, 0, 27, 0, 47, 0, 64, 0, 22, 0, 32, 0, 34, 0, 75, 0, 7, 0, 31, 1, 7, 0, 32, 1, 7, 0, 33, 1, 7, 0, 34, 1, + 7, 0, 35, 1, 7, 0, 36, 1, 7, 0, 37, 1, 7, 0, 38, 1, 7, 0, 39, 1, 7, 0, 30, 0, 7, 0, 40, 1, 7, 0, 41, 1, + 7, 0, 42, 1, 7, 0, 43, 1, 7, 0, 44, 1, 7, 0, 45, 1, 7, 0, 46, 1, 7, 0, 47, 1, 7, 0, 48, 1, 7, 0, 49, 1, + 7, 0, 50, 1, 7, 0, 51, 1, 2, 0, 52, 1, 2, 0, 53, 1, 2, 0, 54, 1, 2, 0, 55, 1, 2, 0, 56, 1, 2, 0, 57, 1, + 2, 0, 58, 1, 2, 0, 18, 0, 2, 0, 16, 0, 2, 0,246, 0, 7, 0, 59, 1, 7, 0, 60, 1, 7, 0, 61, 1, 7, 0, 62, 1, + 4, 0, 63, 1, 4, 0, 64, 1, 2, 0, 65, 1, 2, 0, 66, 1, 2, 0, 22, 1, 2, 0,130, 0, 4, 0, 22, 0, 4, 0,127, 0, + 4, 0,128, 0, 4, 0,129, 0, 7, 0, 67, 1, 7, 0, 68, 1, 7, 0, 67, 0, 40, 0, 69, 1, 57, 0, 70, 1, 31, 0, 80, 0, + 42, 0,242, 0, 48, 0, 71, 1, 50, 0, 17, 1, 51, 0, 72, 1, 25, 0,154, 0, 53, 0, 73, 1, 55, 0, 74, 1, 56, 0, 75, 1, + 0, 0, 76, 1, 0, 0,124, 0, 58, 0, 13, 0, 7, 0, 77, 1, 7, 0, 78, 1, 7, 0,176, 0, 4, 0, 18, 0, 0, 0,171, 0, + 0, 0,172, 0, 0, 0,173, 0, 0, 0,174, 0, 4, 0, 27, 0, 7, 0, 79, 1, 7, 0, 80, 1, 7, 0, 81, 1, 27, 0, 44, 0, + 59, 0, 9, 0, 50, 0, 82, 1, 7, 0, 33, 1, 7, 0, 34, 1, 7, 0, 35, 1, 4, 0, 18, 0, 7, 0, 83, 1, 7, 0, 84, 1, + 4, 0, 85, 1, 4, 0, 86, 1, 60, 0, 74, 0, 22, 0, 32, 0, 34, 0, 75, 0, 2, 0, 16, 0, 2, 0, 18, 0, 4, 0, 87, 1, + 2, 0,179, 0, 2, 0, 88, 1, 7, 0,185, 0, 7, 0,186, 0, 7, 0,187, 0, 7, 0,188, 0, 7, 0, 89, 1, 7, 0, 90, 1, + 7, 0, 91, 1, 7, 0, 92, 1, 7, 0, 93, 1, 7, 0, 94, 1, 7, 0, 95, 1, 7, 0, 96, 1, 7, 0, 97, 1, 7, 0, 98, 1, + 7, 0, 99, 1, 54, 0,100, 1, 2, 0,253, 0, 2, 0, 30, 0, 7, 0,112, 0, 7, 0,113, 0, 7, 0,101, 1, 7, 0,102, 1, + 7, 0,103, 1, 7, 0,104, 1, 7, 0,105, 1, 2, 0,106, 1, 2, 0,107, 1, 2, 0,108, 1, 2, 0,109, 1, 0, 0,110, 1, + 0, 0,111, 1, 2, 0,112, 1, 2, 0,113, 1, 2, 0,114, 1, 2, 0,115, 1, 2, 0,116, 1, 7, 0,117, 1, 7, 0,118, 1, + 7, 0,119, 1, 7, 0,120, 1, 2, 0,121, 1, 2, 0, 67, 0, 2, 0,122, 1, 2, 0,123, 1, 2, 0,124, 1, 2, 0,125, 1, + 7, 0,126, 1, 7, 0,127, 1, 7, 0,128, 1, 7, 0,129, 1, 7, 0,130, 1, 7, 0,131, 1, 7, 0,132, 1, 7, 0,133, 1, + 7, 0,134, 1, 7, 0,135, 1, 7, 0,136, 1, 7, 0,137, 1, 2, 0,138, 1, 0, 0,139, 1, 31, 0, 80, 0, 46, 0,140, 1, + 2, 0,141, 1, 2, 0, 76, 1, 0, 0,142, 1, 25, 0,154, 0, 57, 0, 70, 1, 61, 0, 18, 0, 7, 0,143, 1, 7, 0,144, 1, + 7, 0,145, 1, 7, 0,146, 1, 7, 0,147, 1, 7, 0,148, 1, 7, 0,149, 1, 7, 0,150, 1, 7, 0,151, 1, 7, 0,152, 1, + 2, 0,153, 1, 2, 0,154, 1, 2, 0,155, 1, 2, 0,156, 1, 7, 0,157, 1, 7, 0,158, 1, 7, 0,159, 1, 7, 0,160, 1, + 62, 0, 4, 0, 4, 0, 18, 0, 4, 0,161, 1, 4, 0,162, 1, 4, 0, 67, 0, 63, 0,126, 0, 22, 0, 32, 0, 34, 0, 75, 0, + 2, 0,163, 1, 2, 0, 18, 0, 7, 0,185, 0, 7, 0,186, 0, 7, 0,187, 0, 7, 0,164, 1, 7, 0,165, 1, 7, 0,166, 1, + 7, 0,167, 1, 7, 0,168, 1, 7, 0,169, 1, 7, 0,170, 1, 7, 0,171, 1, 7, 0,172, 1, 7, 0,173, 1, 7, 0,174, 1, + 7, 0,175, 1, 7, 0,176, 1, 7, 0,177, 1, 7, 0,178, 1, 7, 0,179, 1, 7, 0,180, 1, 7, 0,181, 1, 7, 0,182, 1, + 7, 0,183, 1, 61, 0,184, 1, 62, 0,185, 1, 7, 0,186, 1, 7, 0,187, 1, 7, 0,188, 1, 7, 0,189, 1, 7, 0,190, 1, + 7, 0,191, 1, 7, 0,192, 1, 2, 0,193, 1, 2, 0,194, 1, 2, 0,195, 1, 0, 0,196, 1, 0, 0,197, 1, 7, 0,198, 1, + 7, 0,199, 1, 2, 0,200, 1, 2, 0,201, 1, 7, 0,202, 1, 7, 0,203, 1, 7, 0,204, 1, 7, 0,205, 1, 2, 0,206, 1, + 2, 0,207, 1, 4, 0, 87, 1, 4, 0,208, 1, 2, 0,209, 1, 2, 0,210, 1, 2, 0,211, 1, 2, 0,212, 1, 7, 0,213, 1, + 7, 0,214, 1, 7, 0,215, 1, 7, 0,216, 1, 7, 0,217, 1, 7, 0,218, 1, 7, 0,219, 1, 7, 0,220, 1, 7, 0,221, 1, + 7, 0,222, 1, 0, 0,223, 1, 7, 0,224, 1, 7, 0,225, 1, 7, 0,226, 1, 4, 0,227, 1, 0, 0,228, 1, 0, 0,122, 1, + 0, 0,229, 1, 0, 0, 76, 1, 2, 0,230, 1, 2, 0,231, 1, 2, 0,141, 1, 2, 0,232, 1, 2, 0,233, 1, 2, 0,234, 1, + 7, 0,235, 1, 7, 0,236, 1, 7, 0,237, 1, 7, 0,238, 1, 7, 0,239, 1, 2, 0,164, 0, 2, 0,165, 0, 50, 0,240, 1, + 50, 0,241, 1, 0, 0,242, 1, 0, 0,243, 1, 0, 0,244, 1, 0, 0,245, 1, 2, 0,246, 1, 2, 0,247, 1, 7, 0,248, 1, + 7, 0,249, 1, 46, 0,140, 1, 57, 0, 70, 1, 31, 0, 80, 0, 64, 0,250, 1, 25, 0,154, 0, 7, 0,251, 1, 7, 0,252, 1, + 7, 0,253, 1, 7, 0,254, 1, 7, 0,255, 1, 2, 0, 0, 2, 2, 0, 30, 0, 7, 0, 1, 2, 7, 0, 2, 2, 7, 0, 3, 2, + 7, 0, 4, 2, 7, 0, 5, 2, 7, 0, 6, 2, 7, 0, 7, 2, 7, 0, 8, 2, 7, 0, 9, 2, 2, 0, 10, 2, 2, 0, 11, 2, + 4, 0, 12, 2, 2, 0, 13, 2, 2, 0, 14, 2, 14, 0, 15, 2, 65, 0, 4, 0, 22, 0, 32, 0, 0, 0, 35, 0, 66, 0, 2, 0, + 38, 0,153, 0, 67, 0, 20, 0, 67, 0, 0, 0, 67, 0, 1, 0, 68, 0, 16, 2, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 17, 2, + 2, 0, 18, 2, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 7, 0, 19, 2, 7, 0, 20, 2, 7, 0, 21, 2, 7, 0, 22, 2, + 7, 0, 23, 2, 7, 0, 24, 2, 7, 0, 25, 2, 7, 0, 22, 0, 7, 0, 26, 2, 7, 0, 27, 2, 69, 0, 20, 0, 22, 0, 32, 0, + 34, 0, 75, 0, 68, 0, 16, 2, 14, 0, 28, 2, 14, 0, 29, 2, 14, 0, 30, 2, 31, 0, 80, 0, 63, 0, 31, 2, 0, 0, 18, 0, + 0, 0, 32, 2, 2, 0, 33, 2, 2, 0,178, 0, 2, 0, 27, 0, 7, 0, 77, 1, 7, 0,176, 0, 7, 0, 78, 1, 7, 0, 34, 2, + 7, 0, 35, 2, 7, 0, 36, 2, 67, 0, 37, 2, 30, 0, 11, 0, 7, 0, 38, 2, 7, 0, 39, 2, 7, 0, 40, 2, 7, 0,255, 0, + 2, 0, 54, 0, 0, 0, 41, 2, 0, 0, 42, 2, 0, 0, 43, 2, 0, 0, 44, 2, 0, 0, 45, 2, 0, 0, 46, 2, 29, 0, 7, 0, + 7, 0, 47, 2, 7, 0, 39, 2, 7, 0, 40, 2, 2, 0, 43, 2, 2, 0, 46, 2, 7, 0,255, 0, 7, 0, 27, 0, 70, 0, 21, 0, + 70, 0, 0, 0, 70, 0, 1, 0, 2, 0, 16, 0, 2, 0, 48, 2, 2, 0, 46, 2, 2, 0, 18, 0, 2, 0, 49, 2, 2, 0, 50, 2, + 2, 0, 51, 2, 2, 0, 52, 2, 2, 0, 53, 2, 2, 0, 54, 2, 2, 0, 55, 2, 2, 0, 56, 2, 7, 0, 57, 2, 7, 0, 58, 2, + 29, 0, 48, 0, 30, 0, 49, 0, 2, 0, 59, 2, 2, 0, 60, 2, 4, 0, 61, 2, 71, 0, 5, 0, 2, 0, 62, 2, 2, 0, 48, 2, + 0, 0, 18, 0, 0, 0, 27, 0, 2, 0, 30, 0, 72, 0, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 63, 2, 7, 0, 64, 2, + 73, 0, 4, 0, 14, 0, 65, 2, 74, 0, 66, 2, 4, 0, 67, 2, 0, 0, 94, 0, 75, 0, 68, 0, 22, 0, 32, 0, 34, 0, 75, 0, + 68, 0, 16, 2, 14, 0, 68, 2, 14, 0, 29, 2, 73, 0, 69, 2, 27, 0, 70, 2, 27, 0, 71, 2, 27, 0, 72, 2, 31, 0, 80, 0, + 76, 0, 73, 2, 33, 0, 74, 2, 63, 0, 31, 2, 14, 0, 75, 2, 7, 0, 77, 1, 7, 0,176, 0, 7, 0, 78, 1, 2, 0, 16, 0, + 2, 0,178, 0, 2, 0, 76, 2, 2, 0, 77, 2, 7, 0, 78, 2, 7, 0, 79, 2, 4, 0, 80, 2, 2, 0, 27, 0, 2, 0, 33, 2, + 2, 0, 18, 0, 2, 0, 81, 2, 7, 0, 82, 2, 7, 0, 83, 2, 7, 0, 84, 2, 2, 0, 51, 2, 2, 0, 52, 2, 2, 0, 85, 2, + 2, 0, 86, 2, 4, 0, 87, 2, 11, 0, 88, 2, 2, 0, 22, 0, 2, 0, 97, 0, 2, 0, 66, 0, 2, 0, 89, 2, 7, 0, 90, 2, + 7, 0, 91, 2, 7, 0, 92, 2, 7, 0, 93, 2, 7, 0, 94, 2, 7, 0, 95, 2, 7, 0, 96, 2, 7, 0, 97, 2, 7, 0, 98, 2, + 7, 0, 99, 2, 0, 0,100, 2, 77, 0,101, 2, 78, 0,102, 2, 0, 0,103, 2, 65, 0,104, 2, 65, 0,105, 2, 65, 0,106, 2, + 65, 0,107, 2, 4, 0,108, 2, 7, 0, 84, 0, 4, 0,109, 2, 4, 0,110, 2, 72, 0,111, 2, 4, 0,112, 2, 4, 0,113, 2, + 71, 0,114, 2, 71, 0,115, 2, 79, 0, 47, 0, 22, 0, 32, 0, 34, 0, 75, 0, 68, 0, 16, 2, 31, 0, 80, 0, 33, 0, 74, 2, + 63, 0, 31, 2, 80, 0,116, 2, 81, 0,117, 2, 82, 0,118, 2, 83, 0,119, 2, 84, 0,120, 2, 85, 0,121, 2, 86, 0,122, 2, + 87, 0,123, 2, 88, 0,124, 2, 89, 0,125, 2, 90, 0,126, 2, 91, 0,127, 2, 92, 0,128, 2, 93, 0,129, 2, 79, 0,130, 2, + 94, 0,131, 2, 95, 0,132, 2, 95, 0,133, 2, 95, 0,134, 2, 95, 0,135, 2, 95, 0,136, 2, 4, 0, 53, 0, 4, 0,137, 2, + 4, 0,138, 2, 4, 0,139, 2, 4, 0,140, 2, 4, 0,141, 2, 4, 0,142, 2, 7, 0, 77, 1, 7, 0,176, 0, 7, 0, 78, 1, + 2, 0,178, 0, 2, 0, 76, 2, 2, 0,143, 2, 2, 0, 18, 0, 2, 0,144, 2, 2, 0,145, 2, 0, 0,146, 2, 0, 0,147, 2, + 2, 0, 33, 2, 96, 0,148, 2, 88, 0, 8, 0, 11, 0,149, 2, 7, 0,150, 2, 4, 0,151, 2, 0, 0, 18, 0, 0, 0,152, 2, + 2, 0, 87, 1, 2, 0,153, 2, 2, 0,154, 2, 86, 0, 7, 0, 4, 0,155, 2, 4, 0,156, 2, 4, 0,157, 2, 4, 0,158, 2, + 2, 0, 48, 2, 0, 0,159, 2, 0, 0, 18, 0, 90, 0, 5, 0, 4, 0,155, 2, 4, 0,156, 2, 0, 0,160, 2, 0, 0,161, 2, + 2, 0, 18, 0, 97, 0, 2, 0, 4, 0,162, 2, 7, 0, 40, 2, 91, 0, 3, 0, 97, 0,163, 2, 4, 0,164, 2, 4, 0, 18, 0, + 89, 0, 4, 0, 7, 0,165, 2, 2, 0,166, 2, 0, 0, 18, 0, 0, 0,161, 2, 92, 0, 4, 0, 0, 0,240, 0, 0, 0,185, 0, + 0, 0,186, 0, 0, 0,187, 0, 81, 0, 5, 0, 4, 0,167, 2, 4, 0,141, 2, 2, 0, 48, 2, 0, 0, 18, 0, 0, 0, 27, 0, + 83, 0, 2, 0, 4, 0,168, 2, 4, 0,169, 2, 82, 0, 6, 0, 42, 0,149, 2, 0, 0, 18, 0, 0, 0,152, 2, 2, 0, 87, 1, + 2, 0,153, 2, 2, 0,154, 2, 84, 0, 2, 0, 7, 0,170, 2, 4, 0, 18, 0, 85, 0, 4, 0, 0, 0,185, 0, 0, 0,186, 0, + 0, 0,187, 0, 0, 0,240, 0, 93, 0, 1, 0, 7, 0,171, 2, 80, 0, 2, 0, 4, 0, 14, 2, 4, 0, 16, 0, 87, 0, 7, 0, + 7, 0,150, 2, 42, 0,149, 2, 0, 0, 18, 0, 0, 0,152, 2, 2, 0, 87, 1, 2, 0,153, 2, 2, 0,154, 2, 98, 0, 1, 0, + 7, 0,172, 2, 99, 0, 1, 0, 4, 0,173, 2,100, 0, 1, 0, 0, 0,174, 2,101, 0, 1, 0, 7, 0,150, 2,102, 0, 1, 0, + 7, 0,170, 2,103, 0, 4, 0, 4, 0,175, 2, 4, 0,176, 2, 7, 0,177, 2, 4, 0,178, 2,104, 0, 4, 0, 7, 0,240, 0, + 7, 0,185, 0, 7, 0,186, 0, 7, 0,187, 0,105, 0, 1, 0,104, 0,151, 2,106, 0, 5, 0, 4, 0,179, 2, 4, 0,180, 2, + 0, 0, 18, 0, 0, 0, 48, 2, 0, 0,181, 2,107, 0, 2, 0, 4, 0,182, 2, 4, 0,180, 2,108, 0, 10, 0,108, 0, 0, 0, +108, 0, 1, 0,106, 0,183, 2,105, 0,184, 2,107, 0,185, 2, 4, 0, 53, 0, 4, 0,138, 2, 4, 0,137, 2, 4, 0, 27, 0, + 89, 0,186, 2, 96, 0, 14, 0, 14, 0,187, 2, 89, 0,186, 2, 0, 0,188, 2, 0, 0,189, 2, 0, 0,190, 2, 0, 0,191, 2, + 0, 0,192, 2, 0, 0,193, 2, 0, 0,194, 2, 0, 0, 18, 0, 95, 0,132, 2, 95, 0,134, 2, 2, 0,195, 2, 0, 0,196, 2, +109, 0, 1, 0, 4, 0,173, 2,110, 0, 9, 0,110, 0, 0, 0,110, 0, 1, 0, 4, 0, 16, 0, 4, 0, 87, 1, 4, 0,197, 2, + 4, 0, 27, 0, 0, 0, 19, 0, 41, 0,125, 0, 0, 0,198, 2,111, 0, 6, 0,110, 0,199, 2, 47, 0,200, 2, 27, 0,201, 2, + 0, 0,202, 2, 4, 0,203, 2, 4, 0,204, 2,112, 0, 7, 0,110, 0,199, 2, 2, 0,205, 2, 2, 0,187, 2, 2, 0,206, 2, + 2, 0, 92, 0, 11, 0,207, 2, 11, 0,208, 2,113, 0, 5, 0,110, 0,199, 2, 27, 0,168, 0, 0, 0, 19, 0, 7, 0,209, 2, + 0, 0, 94, 0,114, 0, 5, 0,110, 0,199, 2, 27, 0,168, 0, 0, 0, 19, 0, 2, 0,210, 2, 0, 0,211, 2,115, 0, 5, 0, +110, 0,199, 2, 7, 0, 90, 0, 7, 0,212, 2, 4, 0,213, 2, 4, 0,214, 2,116, 0, 5, 0,110, 0,199, 2, 27, 0,215, 2, + 0, 0, 72, 0, 4, 0, 87, 1, 4, 0, 18, 0,117, 0, 13, 0,110, 0,199, 2, 27, 0,216, 2, 27, 0,217, 2, 27, 0,218, 2, + 27, 0,219, 2, 7, 0,220, 2, 7, 0,221, 2, 7, 0,212, 2, 7, 0,222, 2, 4, 0,223, 2, 4, 0,224, 2, 4, 0, 92, 0, + 4, 0,225, 2,118, 0, 5, 0,110, 0,199, 2, 2, 0,226, 2, 2, 0, 18, 0, 7, 0,227, 2, 27, 0,228, 2,119, 0, 3, 0, +110, 0,199, 2, 7, 0,229, 2, 4, 0, 92, 0,120, 0, 10, 0,110, 0,199, 2, 7, 0,230, 2, 4, 0,231, 2, 4, 0, 27, 0, + 2, 0, 92, 0, 2, 0,232, 2, 2, 0,233, 2, 2, 0,234, 2, 7, 0,235, 2, 0, 0,236, 2,121, 0, 3, 0,110, 0,199, 2, + 7, 0, 27, 0, 4, 0, 16, 0,122, 0, 6, 0,110, 0,199, 2,123, 0,237, 2,124, 0,238, 2,125, 0,239, 2, 7, 0,240, 2, + 4, 0, 16, 0,126, 0, 11, 0,110, 0,199, 2, 47, 0,200, 2, 27, 0,201, 2, 0, 0,202, 2, 4, 0,203, 2, 4, 0,204, 2, + 7, 0,209, 2, 4, 0,241, 2, 0, 0,236, 2, 7, 0,242, 2, 4, 0, 27, 0,127, 0, 12, 0,110, 0,199, 2, 27, 0,243, 2, + 42, 0,244, 2, 4, 0, 92, 0, 4, 0,245, 2, 7, 0,246, 2, 7, 0,247, 2, 7, 0,248, 2, 7, 0,249, 2, 0, 0,202, 2, + 4, 0,203, 2, 4, 0, 27, 0,128, 0, 3, 0,110, 0,199, 2, 7, 0,250, 2, 4, 0,251, 2,129, 0, 5, 0,110, 0,199, 2, + 7, 0,252, 2, 0, 0,236, 2, 2, 0, 18, 0, 2, 0,253, 2,130, 0, 8, 0,110, 0,199, 2, 27, 0,168, 0, 7, 0,252, 2, + 7, 0,255, 0, 7, 0,108, 0, 0, 0,236, 2, 2, 0, 18, 0, 2, 0, 16, 0,131, 0, 21, 0,110, 0,199, 2, 47, 0,200, 2, + 27, 0,201, 2, 0, 0,202, 2, 4, 0,203, 2, 4, 0,204, 2, 27, 0,254, 2, 0, 0,236, 2, 2, 0, 18, 0, 2, 0, 27, 0, + 7, 0,255, 2, 7, 0, 0, 3, 7, 0, 1, 3, 7, 0, 82, 2, 7, 0, 2, 3, 7, 0, 3, 3, 7, 0, 4, 3, 7, 0, 5, 3, + 7, 0, 6, 3, 7, 0, 7, 3, 7, 0, 67, 0,132, 0, 7, 0,110, 0,199, 2, 2, 0, 8, 3, 2, 0, 9, 3, 4, 0, 30, 0, + 27, 0,168, 0, 7, 0, 10, 3, 0, 0,236, 2,133, 0, 10, 0,110, 0,199, 2, 27, 0,168, 0, 0, 0, 11, 3, 7, 0, 12, 3, + 7, 0, 13, 3, 7, 0, 5, 3, 4, 0, 14, 3, 4, 0, 15, 3, 7, 0, 16, 3, 0, 0, 19, 0,134, 0, 1, 0,110, 0,199, 2, +135, 0, 7, 0,110, 0,199, 2, 41, 0,125, 0,136, 0, 17, 3,137, 0, 18, 3,138, 0, 19, 3,139, 0, 20, 3, 14, 0, 21, 3, +140, 0, 13, 0,110, 0,199, 2, 89, 0, 22, 3, 89, 0, 23, 3, 89, 0, 24, 3, 89, 0, 25, 3, 89, 0, 26, 3, 89, 0, 27, 3, + 86, 0, 28, 3, 4, 0, 29, 3, 4, 0, 30, 3, 7, 0, 31, 3, 7, 0, 32, 3,141, 0, 33, 3,142, 0, 7, 0,110, 0,199, 2, + 89, 0, 22, 3, 89, 0, 34, 3,143, 0, 35, 3,144, 0, 33, 3, 4, 0, 36, 3, 4, 0, 29, 3,145, 0, 4, 0,110, 0,199, 2, + 27, 0,168, 0, 4, 0, 37, 3, 4, 0, 27, 0,146, 0, 2, 0, 4, 0, 38, 3, 7, 0, 40, 2,147, 0, 2, 0, 4, 0,128, 0, + 4, 0, 39, 3,148, 0, 24, 0,110, 0,199, 2, 27, 0,168, 0, 0, 0,236, 2, 2, 0, 40, 3, 2, 0, 18, 0, 2, 0, 87, 1, + 2, 0, 27, 0,146, 0, 41, 3, 4, 0, 42, 3, 7, 0, 43, 3, 4, 0, 53, 0, 4, 0, 44, 3,147, 0, 45, 3,146, 0, 46, 3, + 4, 0, 47, 3, 4, 0, 48, 3, 4, 0, 49, 3, 4, 0, 39, 3, 7, 0, 50, 3, 7, 0, 51, 3, 7, 0, 52, 3, 7, 0, 53, 3, + 7, 0, 54, 3, 11, 0, 55, 3,149, 0, 8, 0,110, 0,199, 2,150, 0, 56, 3,143, 0, 35, 3, 4, 0, 57, 3, 4, 0, 58, 3, + 4, 0, 59, 3, 2, 0, 18, 0, 2, 0, 56, 0,151, 0, 8, 0,110, 0,199, 2, 27, 0, 44, 0, 2, 0, 3, 1, 2, 0, 18, 0, + 2, 0,226, 2, 2, 0, 56, 0, 7, 0, 60, 3, 7, 0, 61, 3,152, 0, 6, 0,110, 0,199, 2, 4, 0, 62, 3, 2, 0, 18, 0, + 2, 0, 63, 3, 7, 0, 64, 3, 0, 0,170, 0,153, 0, 8, 0,110, 0,199, 2, 0, 0, 65, 3, 0, 0, 66, 3, 0, 0,193, 2, + 0, 0, 67, 3, 0, 0, 68, 3, 0, 0, 92, 0, 0, 0,181, 2,154, 0, 3, 0,110, 0,199, 2,155, 0, 69, 3,139, 0, 20, 3, +156, 0, 10, 0,110, 0,199, 2, 27, 0, 70, 3, 27, 0, 71, 3, 0, 0, 72, 3, 7, 0, 73, 3, 2, 0, 74, 3, 2, 0, 75, 3, + 0, 0, 76, 3, 0, 0, 77, 3, 0, 0,211, 2,157, 0, 9, 0,110, 0,199, 2, 27, 0, 78, 3, 0, 0, 72, 3, 7, 0, 79, 3, + 7, 0, 80, 3, 0, 0, 87, 1, 0, 0,226, 2, 0, 0, 81, 3, 0, 0, 27, 0,158, 0, 1, 0,110, 0,199, 2,159, 0, 11, 0, +110, 0,199, 2, 0, 0,236, 2, 7, 0,128, 0, 7, 0, 82, 3, 7, 0, 83, 3, 7, 0, 84, 3, 7, 0, 85, 3, 7, 0, 86, 3, + 4, 0, 18, 0, 2, 0, 87, 3, 2, 0, 88, 3,160, 0, 9, 0,110, 0,199, 2, 27, 0, 89, 3, 4, 0, 90, 3, 4, 0, 91, 3, + 4, 0, 92, 3, 7, 0, 93, 3, 7, 0, 94, 3, 2, 0,226, 2, 2, 0, 18, 0,161, 0, 29, 0,110, 0,199, 2,162, 0, 95, 3, +163, 0, 96, 3, 4, 0, 97, 3, 4, 0, 98, 3, 7, 0, 99, 3, 7, 0, 4, 3, 7, 0,100, 3, 7, 0,250, 0, 7, 0,101, 3, + 7, 0,102, 3, 7, 0,103, 3, 7, 0,104, 3, 7, 0,105, 3, 7, 0,240, 2, 4, 0,106, 3, 4, 0,107, 3, 0, 0,108, 3, + 0, 0,109, 3, 0, 0,110, 3, 0, 0,111, 3, 0, 0, 18, 0, 0, 0,112, 3, 2, 0,113, 3, 2, 0,114, 3, 4, 0,214, 2, + 7, 0,108, 0, 7, 0,115, 3, 4, 0, 27, 0,164, 0, 15, 0,110, 0,199, 2, 47, 0,200, 2, 27, 0,201, 2, 0, 0,202, 2, + 4, 0,203, 2, 4, 0,204, 2, 27, 0,116, 3, 27, 0,117, 3, 54, 0,100, 1, 0, 0,236, 2, 7, 0,209, 2, 7, 0,118, 3, + 0, 0, 18, 0, 0, 0,253, 0, 0, 0,211, 2,165, 0, 16, 0,110, 0,199, 2, 0, 0,236, 2, 2, 0,119, 3, 2, 0,253, 0, + 7, 0,120, 3, 54, 0,121, 3, 7, 0,122, 3, 7, 0,123, 3, 7, 0,124, 3, 0, 0,125, 3, 4, 0,126, 3, 47, 0,127, 3, + 27, 0,128, 3, 4, 0,129, 3, 0, 0,130, 3, 4, 0,131, 3,166, 0, 16, 0,110, 0,199, 2, 0, 0,132, 3, 0, 0,133, 3, + 7, 0,134, 3, 7, 0,135, 3, 0, 0,136, 3, 0, 0,137, 3, 0, 0,138, 3, 7, 0,124, 3, 0, 0,125, 3, 4, 0,126, 3, + 47, 0,127, 3, 27, 0,128, 3, 4, 0,129, 3, 0, 0,130, 3, 4, 0,131, 3,167, 0, 16, 0,110, 0,199, 2, 0, 0,236, 2, + 4, 0,139, 3, 4, 0,140, 3, 27, 0,141, 3, 7, 0,124, 3, 0, 0,125, 3, 4, 0,126, 3, 47, 0,127, 3, 27, 0,128, 3, + 4, 0,129, 3, 0, 0,130, 3, 7, 0,142, 3, 7, 0,143, 3, 2, 0,253, 0, 2, 0,144, 3,168, 0, 5, 0,110, 0,199, 2, +169, 0,145, 3,170, 0,146, 3, 4, 0, 16, 0, 4, 0, 27, 0,171, 0, 8, 0,110, 0,199, 2, 7, 0,147, 3, 7, 0,148, 3, + 7, 0,149, 3, 0, 0,250, 0, 0, 0, 18, 0, 0, 0, 87, 1, 0, 0, 27, 0,172, 0, 3, 0,173, 0,150, 3, 4, 0, 67, 2, + 0, 0, 94, 0,173, 0, 29, 0, 22, 0, 32, 0, 34, 0, 75, 0, 2, 0, 49, 2, 2, 0, 50, 2, 2, 0,151, 3, 2, 0, 18, 0, + 2, 0,152, 3, 2, 0,153, 3, 2, 0,154, 3, 2, 0, 30, 0, 0, 0,155, 3, 0, 0,156, 3, 0, 0,157, 3, 0, 0,247, 1, + 4, 0, 27, 0, 7, 0,158, 3, 7, 0,159, 3, 7, 0,160, 3, 7, 0,161, 3, 7, 0,162, 3, 7, 0,163, 3, 29, 0,164, 3, + 31, 0, 80, 0, 33, 0, 74, 2, 91, 0,127, 2, 0, 0, 72, 0, 7, 0,165, 3, 7, 0,166, 3,172, 0,167, 3,174, 0, 5, 0, +174, 0, 0, 0,174, 0, 1, 0, 0, 0, 19, 0, 0, 0, 18, 0, 0, 0,124, 0, 68, 0, 3, 0, 7, 0,168, 3, 4, 0, 18, 0, + 4, 0, 27, 0, 27, 0,128, 0, 22, 0, 32, 0, 34, 0, 75, 0,175, 0,169, 3, 2, 0, 16, 0, 2, 0,170, 3, 4, 0,171, 3, + 4, 0,172, 3, 4, 0,173, 3, 0, 0,174, 3, 27, 0, 38, 0, 27, 0,175, 3, 27, 0,176, 3, 27, 0,177, 3, 27, 0,178, 3, + 31, 0, 80, 0, 68, 0, 16, 2,176, 0,179, 3,176, 0,180, 3,177, 0,181, 3, 11, 0, 2, 0,178, 0,182, 3,179, 0,183, 3, +180, 0,184, 3, 14, 0,185, 3, 14, 0,186, 3, 14, 0, 29, 2, 14, 0,187, 3, 14, 0,188, 3, 4, 0, 87, 1, 4, 0,189, 3, + 63, 0, 31, 2, 0, 0,190, 3, 4, 0, 33, 2, 4, 0,191, 3, 7, 0, 77, 1, 7, 0,192, 3, 7, 0,193, 3, 7, 0,176, 0, + 7, 0,194, 3, 7, 0,195, 3, 7, 0, 78, 1, 7, 0,196, 3, 7, 0, 19, 2, 7, 0,197, 3, 7, 0,198, 3, 7, 0,199, 3, + 7, 0,200, 3, 7, 0,201, 3, 7, 0,202, 3, 7, 0, 12, 3, 7, 0,203, 3, 7, 0,244, 0, 7, 0,204, 3, 4, 0,205, 3, + 4, 0,206, 3, 2, 0, 18, 0, 2, 0,207, 3, 2, 0,208, 3, 2, 0,209, 3, 2, 0,210, 3, 2, 0,211, 3, 2, 0,212, 3, + 2, 0,213, 3, 2, 0,214, 3, 0, 0,215, 3, 0, 0,216, 3, 4, 0,217, 3, 4, 0,218, 3, 4, 0,219, 3, 4, 0,220, 3, + 7, 0,221, 3, 7, 0, 84, 0, 7, 0,222, 3, 7, 0,223, 3, 7, 0,224, 3, 7, 0,225, 3, 7, 0,226, 3, 7, 0,220, 0, + 7, 0,227, 3, 7, 0,228, 3, 7, 0,229, 3, 7, 0,230, 3, 7, 0,231, 3, 2, 0,232, 3, 0, 0,233, 3, 0, 0,234, 3, + 0, 0,235, 3, 0, 0,236, 3, 0, 0,110, 0, 0, 0,237, 3, 7, 0,238, 3, 7, 0,239, 3, 14, 0,240, 3, 14, 0,241, 3, + 14, 0,242, 3, 14, 0,243, 3, 7, 0,244, 3, 2, 0, 14, 2, 2, 0,245, 3, 7, 0,151, 2, 4, 0,246, 3, 4, 0,247, 3, +181, 0,248, 3, 2, 0,249, 3, 2, 0,251, 0, 7, 0,250, 3, 14, 0,251, 3, 14, 0,252, 3, 14, 0,253, 3, 14, 0,254, 3, +182, 0, 73, 1,183, 0,255, 3, 64, 0, 0, 4, 0, 0, 1, 4, 0, 0, 2, 4, 2, 0, 67, 2, 7, 0,143, 2,155, 0, 3, 4, +143, 0, 4, 4,143, 0, 5, 4, 10, 0, 6, 4, 10, 0, 7, 4, 4, 0, 8, 4, 4, 0, 9, 4, 14, 0, 10, 4, 14, 0, 11, 4, + 14, 0, 12, 4, 7, 0, 13, 4,184, 0, 14, 0,184, 0, 0, 0,184, 0, 1, 0, 27, 0, 38, 0, 7, 0, 12, 3, 7, 0, 79, 1, + 7, 0, 13, 3, 7, 0, 5, 3, 0, 0, 19, 0, 4, 0, 14, 3, 4, 0, 15, 3, 4, 0, 14, 4, 2, 0, 16, 0, 2, 0, 15, 4, + 7, 0, 16, 3,185, 0, 12, 0,185, 0, 0, 0,185, 0, 1, 0, 27, 0, 44, 0, 4, 0, 16, 4, 4, 0, 14, 2, 7, 0, 79, 1, + 7, 0, 17, 4, 7, 0, 18, 4, 7, 0,170, 2, 2, 0, 16, 0, 0, 0, 19, 4, 0, 0, 20, 4,182, 0, 40, 0, 4, 0, 18, 0, + 2, 0, 21, 4, 2, 0, 22, 4, 2, 0, 5, 3, 2, 0, 23, 4, 2, 0, 24, 4, 2, 0, 25, 4, 2, 0, 26, 4, 2, 0, 27, 4, + 7, 0, 28, 4, 7, 0, 29, 4, 7, 0, 30, 4, 7, 0, 31, 4, 7, 0, 32, 4, 7, 0, 33, 4, 7, 0, 34, 4, 7, 0, 35, 4, + 7, 0, 36, 4, 7, 0, 37, 4, 7, 0, 38, 4, 7, 0, 39, 4, 7, 0, 40, 4, 7, 0, 41, 4, 7, 0, 42, 4, 7, 0, 43, 4, + 7, 0, 44, 4, 7, 0, 45, 4, 7, 0, 46, 4, 7, 0, 47, 4, 7, 0, 48, 4, 7, 0, 49, 4, 7, 0, 50, 4, 7, 0, 51, 4, + 7, 0, 52, 4, 7, 0, 53, 4, 7, 0, 54, 4, 47, 0,169, 0,186, 0, 55, 4, 7, 0, 56, 4, 4, 0,214, 2,187, 0, 5, 0, + 64, 0,250, 1, 7, 0, 57, 4, 7, 0, 58, 4, 2, 0, 18, 0, 2, 0, 59, 4,188, 0, 5, 0,188, 0, 0, 0,188, 0, 1, 0, + 4, 0, 16, 0, 4, 0, 60, 4, 11, 0, 2, 0,189, 0, 9, 0,189, 0, 0, 0,189, 0, 1, 0, 4, 0, 61, 4, 4, 0, 62, 4, + 4, 0, 63, 4, 4, 0, 18, 0, 11, 0, 64, 4, 11, 0, 65, 4, 14, 0, 66, 4,139, 0, 23, 0,139, 0, 0, 0,139, 0, 1, 0, + 4, 0, 18, 0, 4, 0, 67, 4, 4, 0, 68, 4, 4, 0, 69, 4, 4, 0, 70, 4, 4, 0, 71, 4, 4, 0, 72, 4, 4, 0, 73, 4, + 4, 0, 27, 0, 4, 0, 62, 4, 4, 0, 14, 2, 2, 0, 74, 4, 2, 0, 56, 0, 0, 0, 19, 0, 0, 0, 75, 4, 0, 0, 76, 4, + 0, 0, 77, 4, 0, 0, 78, 4, 14, 0, 79, 4,190, 0, 80, 4, 11, 0, 81, 4,191, 0, 1, 0, 7, 0, 47, 2,181, 0, 30, 0, + 4, 0, 18, 0, 7, 0, 82, 4, 7, 0, 83, 4, 7, 0, 84, 4, 4, 0, 85, 4, 4, 0, 86, 4, 4, 0, 87, 4, 4, 0, 88, 4, + 7, 0, 89, 4, 7, 0, 90, 4, 7, 0, 91, 4, 7, 0, 92, 4, 7, 0, 93, 4, 7, 0, 94, 4, 7, 0, 95, 4, 7, 0, 96, 4, + 7, 0, 97, 4, 7, 0, 98, 4, 7, 0, 99, 4, 7, 0,100, 4, 7, 0,101, 4, 7, 0,102, 4, 7, 0,103, 4, 7, 0,104, 4, + 7, 0,105, 4, 7, 0,106, 4, 4, 0,107, 4, 4, 0,108, 4, 7, 0,109, 4, 7, 0,227, 3,183, 0, 54, 0, 4, 0, 62, 4, + 4, 0,110, 4,192, 0,111, 4,193, 0,112, 4, 0, 0, 27, 0, 0, 0,113, 4, 2, 0,114, 4, 7, 0,115, 4, 0, 0,116, 4, + 7, 0,117, 4, 7, 0,118, 4, 7, 0,119, 4, 7, 0,120, 4, 7, 0,121, 4, 7, 0,122, 4, 7, 0,123, 4, 7, 0,124, 4, + 7, 0,125, 4, 2, 0,126, 4, 0, 0,127, 4, 2, 0,128, 4, 7, 0,129, 4, 7, 0,130, 4, 0, 0,131, 4, 4, 0,129, 0, + 4, 0,132, 4, 4, 0,133, 4, 2, 0,134, 4, 2, 0,135, 4,191, 0,136, 4, 4, 0,137, 4, 4, 0, 82, 0, 7, 0,138, 4, + 7, 0,139, 4, 7, 0,140, 4, 7, 0,141, 4, 2, 0,142, 4, 2, 0,143, 4, 2, 0,144, 4, 2, 0,145, 4, 2, 0,146, 4, + 2, 0,147, 4, 2, 0,148, 4, 2, 0,149, 4,194, 0,150, 4, 7, 0,151, 4, 7, 0,152, 4,139, 0,153, 4, 14, 0, 21, 3, +187, 0,154, 4, 7, 0,155, 4, 7, 0,156, 4, 7, 0,157, 4, 4, 0,158, 4,195, 0, 1, 0, 7, 0,159, 4,155, 0, 52, 0, +154, 0,160, 4, 2, 0, 16, 0, 2, 0,161, 4, 2, 0,162, 4, 2, 0,163, 4, 7, 0,164, 4, 2, 0,165, 4, 2, 0,166, 4, + 7, 0,167, 4, 2, 0,168, 4, 2, 0,169, 4, 7, 0,170, 4, 7, 0,171, 4, 7, 0,172, 4, 4, 0,173, 4, 4, 0,174, 4, + 4, 0,175, 4, 4, 0, 27, 0, 7, 0,176, 4, 4, 0,177, 4, 7, 0,178, 4, 7, 0,179, 4, 7, 0,180, 4, 79, 0,181, 4, + 79, 0,182, 4, 0, 0,183, 4, 7, 0,184, 4, 7, 0,185, 4, 31, 0, 80, 0, 2, 0,186, 4, 0, 0,187, 4, 0, 0,188, 4, + 7, 0,189, 4, 4, 0,190, 4, 7, 0,191, 4, 7, 0,192, 4, 4, 0,193, 4, 4, 0, 18, 0, 7, 0,194, 4, 7, 0,195, 4, + 7, 0,196, 4,195, 0,197, 4, 4, 0, 53, 0, 7, 0,198, 4, 7, 0,199, 4, 7, 0,200, 4, 7, 0,201, 4, 7, 0,202, 4, + 7, 0,203, 4, 7, 0,204, 4, 4, 0,205, 4, 7, 0,206, 4,196, 0, 78, 0, 22, 0, 32, 0, 34, 0, 75, 0, 2, 0,179, 0, + 2, 0, 88, 1, 2, 0,122, 1, 2, 0,207, 4, 7, 0,208, 4, 7, 0,209, 4, 7, 0,210, 4, 7, 0,211, 4, 7, 0,212, 4, + 7, 0,213, 4, 7, 0,170, 1, 7, 0,172, 1, 7, 0,171, 1, 7, 0, 30, 0, 4, 0,214, 4, 7, 0,215, 4, 7, 0,216, 4, + 7, 0,217, 4, 7, 0,218, 4, 7, 0,219, 4, 7, 0,220, 4, 7, 0,221, 4, 2, 0,222, 4, 2, 0, 87, 1, 2, 0,223, 4, + 2, 0,224, 4, 2, 0,225, 4, 2, 0,226, 4, 2, 0,227, 4, 2, 0,228, 4, 7, 0,229, 4, 7, 0,230, 4, 7, 0,231, 4, + 7, 0,232, 4, 7, 0,233, 4, 7, 0,234, 4, 7, 0,235, 4, 7, 0,236, 4, 7, 0,237, 4, 7, 0,238, 4, 7, 0,239, 4, + 7, 0,240, 4, 2, 0,241, 4, 2, 0,242, 4, 2, 0,243, 4, 2, 0,244, 4, 7, 0,245, 4, 7, 0,246, 4, 7, 0,247, 4, + 7, 0,248, 4, 2, 0,249, 4, 2, 0,250, 4, 2, 0,251, 4, 2, 0,252, 4, 7, 0,253, 4, 7, 0,254, 4, 7, 0,255, 4, + 7, 0, 0, 5, 7, 0, 1, 5, 7, 0, 2, 5, 7, 0, 3, 5, 2, 0, 4, 5, 2, 0, 5, 5, 2, 0, 6, 5, 2, 0, 7, 5, + 2, 0, 8, 5, 2, 0, 18, 0, 7, 0, 9, 5, 7, 0, 10, 5, 31, 0, 80, 0, 46, 0,140, 1, 2, 0,141, 1, 2, 0, 76, 1, + 2, 0,181, 2, 25, 0,154, 0, 57, 0, 70, 1,197, 0, 8, 0,197, 0, 0, 0,197, 0, 1, 0, 4, 0,205, 3, 4, 0, 11, 5, + 4, 0, 18, 0, 2, 0, 12, 5, 2, 0, 13, 5, 27, 0,168, 0,198, 0, 13, 0, 11, 0, 14, 5, 11, 0, 15, 5, 4, 0, 16, 5, + 4, 0, 17, 5, 4, 0, 18, 5, 4, 0, 19, 5, 4, 0, 20, 5, 4, 0, 21, 5, 4, 0, 22, 5, 4, 0, 23, 5, 4, 0, 24, 5, + 4, 0, 27, 0, 0, 0, 25, 5,199, 0, 5, 0, 11, 0, 26, 5, 11, 0, 27, 5, 4, 0, 28, 5, 4, 0, 30, 0, 0, 0, 29, 5, +200, 0, 17, 0, 4, 0, 30, 5, 4, 0, 31, 5, 4, 0, 32, 5, 4, 0, 33, 5, 4, 0, 34, 5, 4, 0, 35, 5, 4, 0, 36, 5, + 4, 0, 37, 5, 4, 0, 38, 5, 4, 0, 39, 5, 4, 0, 40, 5, 4, 0, 41, 5, 2, 0, 42, 5, 2, 0, 43, 5, 4, 0, 44, 5, + 4, 0, 45, 5, 4, 0, 67, 0,201, 0, 17, 0, 4, 0, 16, 0, 4, 0, 32, 5, 4, 0, 46, 5, 4, 0, 47, 5, 4, 0, 48, 5, + 4, 0, 49, 5, 4, 0, 50, 5, 4, 0, 51, 5, 7, 0, 52, 5, 4, 0, 53, 5, 4, 0, 92, 0, 4, 0, 54, 5, 4, 0, 55, 5, + 4, 0, 56, 5, 4, 0, 57, 5, 4, 0, 58, 5, 21, 0, 31, 0,202, 0, 9, 0, 4, 0, 59, 5, 7, 0, 60, 5, 7, 0, 61, 5, + 7, 0, 62, 5, 4, 0, 63, 5, 2, 0, 18, 0, 2, 0, 27, 0, 7, 0, 84, 4, 7, 0, 30, 0,203, 0, 13, 0,203, 0, 0, 0, +203, 0, 1, 0, 0, 0, 19, 0, 63, 0, 64, 5, 64, 0, 65, 5, 4, 0,205, 3, 4, 0, 66, 5, 4, 0, 67, 5, 4, 0, 68, 5, + 4, 0, 69, 5, 4, 0, 70, 5, 4, 0, 71, 5, 4, 0, 27, 0,204, 0, 13, 0, 0, 0, 72, 5, 0, 0,250, 0, 0, 0, 73, 5, + 0, 0, 18, 0, 0, 0, 74, 5, 0, 0, 75, 5, 0, 0, 76, 5, 0, 0, 77, 5, 2, 0, 78, 5, 2, 0, 79, 5, 7, 0, 80, 5, + 0, 0, 81, 5, 0, 0,124, 0,205, 0,106, 0,204, 0, 82, 5,198, 0, 83, 5,199, 0, 84, 5,200, 0, 85, 5,201, 0, 86, 5, + 4, 0, 36, 3, 4, 0,129, 0, 4, 0,132, 4, 7, 0, 87, 5, 4, 0, 88, 5, 4, 0, 89, 5, 4, 0, 90, 5, 4, 0, 91, 5, + 2, 0, 18, 0, 2, 0, 92, 5, 7, 0, 93, 5, 7, 0, 94, 5, 7, 0, 95, 5, 7, 0, 96, 5, 7, 0, 97, 5, 2, 0, 98, 5, + 2, 0, 99, 5, 2, 0,100, 5, 2, 0,101, 5, 2, 0,250, 0, 2, 0,102, 5, 4, 0,103, 5, 2, 0,104, 5, 2, 0,105, 5, + 2, 0,109, 1, 2, 0,108, 0, 2, 0,106, 5, 2, 0,107, 5, 2, 0,108, 5, 2, 0,109, 5, 2, 0,110, 5, 2, 0, 73, 5, + 2, 0, 72, 5, 2, 0,111, 5, 2, 0, 74, 5, 2, 0,112, 5, 4, 0,113, 5, 4, 0, 87, 1, 4, 0,114, 5, 2, 0,115, 5, + 2, 0, 67, 0, 2, 0,116, 5, 2, 0,117, 5, 2, 0,118, 5, 2, 0,119, 5, 2, 0,120, 5, 2, 0,121, 5, 19, 0,122, 5, + 19, 0,123, 5, 18, 0,124, 5, 14, 0,125, 5, 2, 0,126, 5, 2, 0,127, 5, 7, 0,128, 5, 7, 0,129, 5, 7, 0,130, 5, + 7, 0,131, 5, 4, 0,132, 5, 7, 0,133, 5, 7, 0,134, 5, 7, 0,135, 5, 7, 0,136, 5, 2, 0,137, 5, 2, 0,138, 5, + 2, 0,139, 5, 2, 0,140, 5, 2, 0,141, 5, 2, 0,142, 5, 7, 0,143, 5, 7, 0,144, 5, 7, 0,145, 5, 0, 0,146, 5, + 4, 0,147, 5, 2, 0,148, 5, 2, 0,247, 1, 0, 0,149, 5, 7, 0,150, 5, 7, 0,151, 5, 0, 0,152, 5, 0, 0,153, 5, + 0, 0,154, 5, 0, 0,155, 5, 4, 0,156, 5, 2, 0,157, 5, 2, 0,158, 5, 7, 0,159, 5, 7, 0,160, 5, 2, 0,161, 5, + 2, 0,162, 5, 7, 0,163, 5, 2, 0,164, 5, 2, 0,165, 5, 4, 0,166, 5, 2, 0,167, 5, 2, 0,168, 5, 2, 0,169, 5, + 2, 0,170, 5, 7, 0,171, 5, 7, 0, 30, 0, 37, 0,172, 5, 0, 0,173, 5,206, 0, 9, 0,206, 0, 0, 0,206, 0, 1, 0, + 0, 0,174, 5, 2, 0,175, 5, 2, 0,176, 5, 2, 0,177, 5, 2, 0, 67, 0, 7, 0,178, 5, 7, 0, 30, 0,207, 0, 7, 0, + 2, 0,231, 2, 2, 0, 87, 1, 2, 0, 94, 3, 2, 0,179, 5, 7, 0,180, 5, 7, 0, 30, 0, 37, 0,181, 5,208, 0, 5, 0, + 7, 0,182, 5, 0, 0, 16, 0, 0, 0, 67, 0, 0, 0, 30, 0, 0, 0,247, 1,209, 0, 15, 0, 7, 0,183, 5, 7, 0,184, 5, + 7, 0,185, 5, 7, 0,186, 5, 7, 0,187, 5, 7, 0,188, 5, 7, 0,189, 5, 7, 0,190, 5, 7, 0,191, 5, 7, 0,192, 5, + 4, 0,193, 5, 7, 0,194, 5, 7, 0,195, 5, 2, 0, 67, 0, 2, 0, 30, 0,210, 0, 32, 0,208, 0,196, 5, 2, 0,197, 5, + 2, 0, 99, 5, 2, 0,100, 5, 2, 0,101, 5, 2, 0,250, 0, 2, 0,102, 5, 2, 0,198, 5, 2, 0,199, 5, 2, 0,200, 5, + 2, 0,201, 5,207, 0,202, 5, 2, 0,203, 5, 2, 0,104, 5, 7, 0,204, 5,209, 0,205, 5, 7, 0,220, 4, 7, 0,221, 4, + 4, 0, 18, 0, 2, 0, 87, 1, 2, 0,206, 5, 2, 0,223, 4, 2, 0,224, 4, 2, 0,207, 5, 2, 0, 27, 0, 2, 0,225, 4, + 2, 0,226, 4, 2, 0,227, 4, 2, 0,228, 4, 2, 0,208, 5, 2, 0, 67, 0, 7, 0,209, 5,211, 0, 6, 0,211, 0, 0, 0, +211, 0, 1, 0, 4, 0, 61, 4, 0, 0, 19, 0, 4, 0, 18, 0, 27, 0,210, 5,212, 0, 4, 0,213, 0,146, 3, 11, 0,211, 5, + 0, 0,212, 5, 4, 0, 92, 0,214, 0, 8, 0,212, 0,213, 5, 2, 0, 18, 0, 2, 0, 27, 0, 2, 0,214, 5, 2, 0,215, 5, + 2, 0,216, 5, 4, 0, 67, 0, 11, 0,217, 5,215, 0, 6, 0, 2, 0,108, 0, 2, 0, 67, 4, 2, 0,218, 5, 2, 0,225, 2, + 4, 0, 18, 0, 7, 0,209, 2,216, 0, 14, 0, 2, 0, 18, 0, 2, 0,219, 5, 2, 0,220, 5, 2, 0,221, 5,215, 0,222, 5, + 11, 0,217, 5, 7, 0,223, 5, 7, 0, 56, 0, 4, 0,224, 5, 4, 0,225, 5, 4, 0,226, 5, 4, 0,227, 5, 41, 0,125, 0, + 27, 0,168, 0,217, 0, 14, 0,212, 0,213, 5, 4, 0, 92, 0, 4, 0,228, 5, 7, 0,229, 5, 7, 0,230, 5, 7, 0,231, 5, + 4, 0,232, 5, 4, 0,233, 5, 7, 0,234, 5, 7, 0,235, 5, 4, 0,236, 5, 7, 0,237, 5, 7, 0,238, 5, 4, 0, 27, 0, +218, 0, 1, 0,212, 0,213, 5,219, 0, 7, 0,212, 0,213, 5, 2, 0, 18, 0, 2, 0, 27, 0, 4, 0, 37, 0, 4, 0,239, 5, + 91, 0,240, 5, 11, 0,217, 5,220, 0, 5, 0,220, 0, 0, 0,220, 0, 1, 0, 0, 0, 19, 0, 7, 0,241, 5, 4, 0, 27, 0, +221, 0, 4, 0, 4, 0,108, 0, 7, 0,242, 5, 7, 0,178, 1, 4, 0, 18, 0,222, 0, 85, 0,219, 0,243, 5,219, 0,244, 5, +217, 0,169, 3,218, 0,245, 5, 7, 0,246, 5, 2, 0,247, 5, 2, 0,247, 1, 7, 0,248, 5, 7, 0,249, 5, 2, 0, 67, 4, + 2, 0,250, 5, 7, 0,251, 5, 7, 0,252, 5, 7, 0,253, 5, 2, 0,254, 5, 2, 0,224, 5, 2, 0,255, 5, 2, 0, 0, 6, + 2, 0, 1, 6, 2, 0, 2, 6, 7, 0, 3, 6, 7, 0, 4, 6, 7, 0, 5, 6, 2, 0, 6, 6, 2, 0, 7, 6, 2, 0, 8, 6, + 2, 0, 9, 6, 2, 0, 10, 6, 2, 0, 11, 6, 2, 0, 12, 6, 2, 0, 13, 6,214, 0, 14, 6,216, 0, 15, 6, 7, 0, 16, 6, + 7, 0, 17, 6, 7, 0, 18, 6, 2, 0, 19, 6, 2, 0, 20, 6, 0, 0, 21, 6, 0, 0, 22, 6, 2, 0, 23, 6, 7, 0, 24, 6, + 7, 0, 25, 6, 7, 0, 26, 6, 7, 0, 27, 6, 7, 0, 28, 6, 7, 0, 29, 6, 7, 0, 30, 6, 7, 0, 31, 6, 7, 0, 32, 6, + 7, 0, 33, 6, 2, 0, 34, 6, 0, 0, 35, 6, 0, 0, 36, 6, 0, 0, 37, 6, 0, 0, 38, 6, 27, 0, 39, 6, 0, 0, 40, 6, + 0, 0, 41, 6, 0, 0, 42, 6, 0, 0, 43, 6, 0, 0, 44, 6, 0, 0, 45, 6, 0, 0, 46, 6, 0, 0, 47, 6, 0, 0, 48, 6, + 0, 0, 49, 6, 2, 0, 50, 6, 2, 0, 51, 6, 2, 0, 52, 6, 2, 0, 53, 6, 0, 0, 54, 6, 0, 0, 55, 6, 0, 0, 56, 6, + 0, 0, 57, 6, 4, 0, 58, 6, 4, 0, 59, 6, 4, 0, 60, 6, 4, 0, 61, 6, 2, 0, 62, 6, 2, 0, 67, 0, 4, 0, 63, 6, + 7, 0, 64, 6, 7, 0, 65, 6,221, 0, 66, 6,223, 0, 8, 0, 4, 0, 67, 6, 4, 0, 68, 6, 4, 0, 69, 6, 4, 0, 70, 6, + 4, 0, 71, 6, 4, 0, 72, 6, 4, 0, 53, 0, 4, 0,138, 2,224, 0, 4, 0, 7, 0, 73, 6, 0, 0, 74, 6, 0, 0, 75, 6, + 2, 0, 18, 0,225, 0, 4, 0, 7, 0, 76, 6, 4, 0, 18, 0, 4, 0, 77, 6, 4, 0, 56, 0, 41, 0, 46, 0, 22, 0, 32, 0, + 34, 0, 75, 0, 27, 0,210, 5,196, 0, 78, 6, 41, 0, 79, 6, 14, 0, 80, 6,197, 0, 81, 6, 27, 0, 82, 6, 7, 0, 83, 6, + 7, 0, 84, 6, 7, 0, 85, 6, 7, 0, 86, 6, 4, 0,205, 3, 4, 0, 87, 6, 4, 0, 88, 6, 2, 0, 18, 0, 2, 0, 76, 1, + 57, 0, 70, 1,226, 0, 89, 6,222, 0, 90, 6,227, 0, 91, 6,205, 0,185, 0,202, 0, 92, 6, 14, 0,102, 0, 14, 0, 93, 6, + 11, 0, 94, 6, 11, 0, 95, 6, 11, 0, 96, 6, 11, 0, 97, 6, 11, 0, 98, 6,228, 0, 99, 6, 2, 0,100, 6, 2, 0,101, 6, + 2, 0,251, 0, 2, 0,206, 3, 4, 0,216, 3, 4, 0,102, 6, 14, 0,103, 6,208, 0,196, 5,210, 0,104, 6,224, 0,105, 6, +178, 0,182, 3,225, 0,106, 6,229, 0,107, 6, 10, 0, 7, 4, 10, 0,108, 6,230, 0, 14, 0,230, 0, 0, 0,230, 0, 1, 0, + 42, 0,242, 0, 40, 0, 69, 1,229, 0,107, 6,231, 0,109, 6, 7, 0, 97, 2, 7, 0, 98, 2, 7, 0,108, 0, 7, 0,110, 6, + 2, 0,111, 6, 2, 0, 18, 0, 2, 0,143, 0, 2, 0, 27, 0,232, 0, 39, 0, 7, 0,112, 6, 7, 0,113, 6, 7, 0,114, 6, + 7, 0,115, 6, 7, 0,116, 6, 7, 0,117, 6, 7, 0,118, 6, 7, 0,119, 6, 7, 0,120, 6, 68, 0,121, 6,178, 0,182, 3, +232, 0,122, 6,233, 0,123, 6,234, 0,124, 6,235, 0,125, 6,236, 0,126, 6,237, 0,127, 6, 7, 0,128, 6, 7, 0,129, 6, + 7, 0, 94, 1, 7, 0,130, 6, 7, 0,131, 6, 7, 0,132, 6, 7, 0,133, 6, 7, 0,175, 0, 7, 0,134, 6, 0, 0,135, 6, + 0, 0,136, 6, 0, 0,111, 6, 0, 0,137, 6, 2, 0,138, 6, 2, 0,139, 6, 7, 0,140, 6, 2, 0,141, 6, 2, 0,142, 6, + 7, 0,143, 6, 7, 0,144, 6, 7, 0,145, 6, 7, 0,146, 6,238, 0, 51, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,147, 6, + 4, 0,148, 6, 7, 0,149, 6, 2, 0,150, 6, 7, 0,129, 6, 7, 0, 94, 1, 7, 0,151, 6, 2, 0,152, 6, 0, 0,211, 2, + 4, 0,153, 6, 2, 0,136, 6, 2, 0,111, 6, 27, 0,210, 5, 27, 0,154, 6, 14, 0,155, 6,230, 0,156, 6,238, 0,122, 6, + 0, 0,157, 6, 4, 0,205, 3, 4, 0, 87, 6, 2, 0,158, 6, 2, 0,159, 6, 2, 0,160, 6, 2, 0,161, 6, 2, 0, 18, 0, + 2, 0, 32, 2, 7, 0,114, 0, 7, 0,162, 6, 7, 0,163, 6, 7, 0,164, 6, 7, 0,175, 0, 7, 0, 83, 6, 2, 0,165, 6, + 2, 0,166, 6, 2, 0,167, 6, 0, 0,168, 6, 0, 0,169, 6, 0, 0,170, 6, 0, 0,171, 6, 0, 0,172, 6, 14, 0,173, 6, + 14, 0,174, 6, 14, 0,175, 6, 2, 0,176, 6, 2, 0,152, 2, 2, 0,177, 6, 0, 0,178, 6, 11, 0,179, 6,178, 0,182, 3, +240, 0, 24, 0, 19, 0, 37, 0, 19, 0, 63, 0, 18, 0,180, 6, 18, 0,181, 6, 18, 0,182, 6, 7, 0,183, 6, 7, 0,184, 6, + 7, 0,185, 6, 7, 0,186, 6, 2, 0,187, 6, 2, 0,188, 6, 2, 0,189, 6, 2, 0,190, 6, 2, 0,191, 6, 2, 0, 18, 0, + 2, 0,192, 6, 2, 0,193, 6, 2, 0,194, 6, 2, 0,195, 6, 2, 0,196, 6, 2, 0,161, 6, 7, 0,197, 6, 4, 0,198, 6, + 4, 0,199, 6,239, 0, 6, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,147, 6, 4, 0,148, 6, 7, 0,149, 6, 2, 0,150, 6, +241, 0, 8, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,147, 6, 4, 0,148, 6, 7, 0,149, 6, 2, 0,150, 6, 0, 0,200, 6, + 0, 0,124, 0,242, 0, 14, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,147, 6, 4, 0,148, 6, 7, 0,149, 6, 2, 0,150, 6, +240, 0,201, 6,243, 0,202, 6, 14, 0,203, 6, 2, 0, 87, 1, 2, 0,204, 6, 4, 0, 18, 0, 7, 0,205, 6, 4, 0,161, 6, +244, 0, 21, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,147, 6, 4, 0,148, 6, 7, 0,149, 6, 2, 0,150, 6,240, 0,201, 6, + 2, 0,206, 6, 2, 0,207, 6, 2, 0,208, 6, 2, 0,209, 6, 2, 0,192, 6, 2, 0,210, 6, 2, 0,211, 6, 0, 0, 18, 0, + 0, 0, 27, 0, 11, 0, 73, 2, 4, 0,212, 6, 4, 0,213, 6, 22, 0,214, 6, 11, 0,215, 6,245, 0, 18, 0,239, 0, 0, 0, +239, 0, 1, 0, 14, 0,147, 6, 4, 0,148, 6, 7, 0,149, 6, 2, 0,150, 6,240, 0,201, 6, 7, 0, 97, 2, 7, 0, 98, 2, + 2, 0,206, 6, 2, 0,216, 6, 2, 0,217, 6, 2, 0,218, 6, 4, 0, 18, 0, 7, 0,219, 6, 4, 0,111, 6, 4, 0, 27, 0, +178, 0,182, 3,246, 0, 16, 0, 0, 0,220, 6, 0, 0,221, 6, 0, 0,222, 6, 0, 0,223, 6, 0, 0,224, 6, 0, 0,225, 6, + 4, 0,226, 6, 4, 0,227, 6, 4, 0,228, 6, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0,229, 6, 2, 0,230, 6, 2, 0,190, 1, + 2, 0,231, 6, 0, 0,232, 6,247, 0, 16, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,147, 6, 4, 0,148, 6, 4, 0,233, 6, +246, 0,234, 6,248, 0,235, 6, 14, 0,236, 6, 14, 0,237, 6,249, 0,238, 6,237, 0,239, 6,250, 0,240, 6, 2, 0,241, 6, + 2, 0,242, 6, 2, 0,243, 6, 2, 0, 30, 0,251, 0, 15, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,147, 6, 4, 0,148, 6, + 7, 0,149, 6, 2, 0,150, 6,240, 0,201, 6, 14, 0,244, 6,252, 0,245, 6, 0, 0,246, 6,253, 0,247, 6, 2, 0, 18, 0, + 2, 0,248, 6, 2, 0,249, 6, 2, 0,250, 6,254, 0, 25, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,147, 6, 4, 0,148, 6, + 4, 0, 18, 0, 42, 0,244, 2, 40, 0, 69, 1, 54, 0,251, 6,255, 0,252, 6, 0, 1,253, 6,178, 0,182, 3, 7, 0,254, 6, + 7, 0, 97, 2, 7, 0, 98, 2, 7, 0,219, 6, 7, 0,255, 6, 7, 0, 0, 7, 2, 0, 1, 7, 2, 0, 27, 0, 2, 0, 2, 7, + 2, 0, 3, 7, 0, 0, 4, 7, 0, 0, 5, 7, 0, 0, 6, 7, 0, 0,161, 6, 1, 1, 11, 0,239, 0, 0, 0,239, 0, 1, 0, + 14, 0,147, 6, 4, 0,148, 6, 7, 0,149, 6, 2, 0,150, 6, 2, 0,204, 6, 2, 0, 18, 0, 4, 0, 27, 0,243, 0,202, 6, +240, 0,201, 6, 2, 1, 31, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,147, 6, 4, 0,148, 6, 7, 0,149, 6, 2, 0,150, 6, + 37, 0, 7, 7, 4, 0, 8, 7, 4, 0, 9, 7, 2, 0, 92, 0, 2, 0, 10, 7, 2, 0, 11, 7, 0, 0, 12, 7, 0, 0, 13, 7, + 4, 0, 14, 7, 4, 0, 15, 7, 4, 0, 16, 7, 2, 0, 17, 7, 2, 0, 18, 7, 2, 0, 19, 7, 2, 0, 20, 7, 7, 0, 21, 7, + 18, 0, 22, 7, 18, 0, 23, 7, 4, 0, 24, 7, 4, 0, 25, 7, 0, 0, 26, 7, 0, 0, 27, 7, 2, 0, 28, 7, 0, 0,211, 2, + 11, 0, 29, 7, 3, 1, 10, 0, 22, 0, 32, 0, 11, 0, 30, 7, 11, 0, 31, 7, 11, 0, 32, 7, 11, 0, 33, 7, 11, 0, 34, 7, + 4, 0, 92, 0, 4, 0, 35, 7, 0, 0, 36, 7, 0, 0, 37, 7, 4, 1, 10, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,147, 6, + 4, 0,148, 6, 7, 0,149, 6, 3, 1, 38, 7, 2, 0, 92, 0, 2, 0, 10, 7, 4, 0, 67, 0, 11, 0, 39, 7, 5, 1, 3, 0, + 5, 1, 0, 0, 5, 1, 1, 0, 7, 0, 40, 7, 6, 1, 9, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,147, 6, 4, 0,148, 6, + 7, 0,149, 6,240, 0,201, 6, 14, 0, 41, 7, 4, 0, 42, 7, 4, 0, 18, 0, 7, 1, 27, 0,239, 0, 0, 0,239, 0, 1, 0, + 14, 0,147, 6, 4, 0,148, 6, 7, 0,149, 6, 2, 0,150, 6,240, 0,201, 6, 22, 0, 43, 7, 22, 0, 81, 0, 2, 0, 18, 0, + 2, 0, 67, 0, 7, 0, 44, 7, 7, 0, 97, 2, 7, 0, 98, 2, 7, 0,219, 6, 7, 0, 45, 7, 7, 0, 46, 7, 7, 0, 47, 7, + 57, 0, 70, 1, 57, 0, 48, 7, 4, 0, 49, 7, 2, 0, 50, 7, 2, 0, 51, 7, 2, 0,251, 0, 2, 0, 86, 1, 14, 0, 52, 7, +178, 0,182, 3, 8, 1, 10, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,147, 6, 4, 0,148, 6, 7, 0,149, 6, 2, 0,150, 6, + 2, 0, 18, 0, 2, 0,214, 3, 4, 0, 27, 0,178, 0,182, 3, 9, 1, 7, 0, 9, 1, 0, 0, 9, 1, 1, 0, 4, 0, 53, 7, + 4, 0, 22, 0, 0, 0, 86, 0, 4, 0, 54, 7, 4, 0, 16, 0, 10, 1, 14, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,147, 6, + 4, 0,148, 6, 7, 0,149, 6, 2, 0,150, 6, 4, 0, 11, 7, 4, 0, 27, 0, 14, 0, 55, 7, 14, 0, 56, 7, 0, 0, 57, 7, + 0, 0, 58, 7, 4, 0, 59, 7, 4, 0, 60, 7, 11, 1, 6, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,147, 6, 4, 0,148, 6, + 4, 0, 27, 0, 0, 0, 61, 7, 12, 1, 25, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,147, 6, 4, 0,148, 6, 7, 0, 97, 2, + 7, 0, 98, 2, 7, 0, 62, 7, 7, 0, 63, 7, 7, 0,219, 6,231, 0, 64, 7,229, 0,107, 6, 13, 1,252, 6, 4, 0, 18, 0, + 2, 0, 87, 1, 2, 0,111, 6, 4, 0, 65, 7, 7, 0, 66, 7, 7, 0,148, 3, 7, 0, 94, 3, 4, 0, 27, 0, 7, 0, 67, 7, + 7, 0, 68, 7, 4, 0, 69, 7, 4, 0, 30, 0, 11, 0, 70, 7, 14, 1, 7, 0, 14, 1, 0, 0, 14, 1, 1, 0, 0, 0, 71, 7, + 2, 0, 72, 7, 2, 0, 73, 7, 2, 0, 74, 7, 2, 0, 27, 0, 15, 1, 12, 0, 2, 0, 73, 7, 2, 0, 75, 7, 2, 0, 76, 7, + 0, 0,211, 2, 2, 0, 77, 7, 2, 0, 78, 7, 2, 0, 79, 7, 2, 0, 80, 7, 2, 0, 81, 7, 2, 0,192, 6, 7, 0, 82, 7, + 7, 0, 83, 7, 16, 1, 18, 0, 16, 1, 0, 0, 16, 1, 1, 0, 0, 0, 19, 0, 15, 1, 84, 7, 15, 1, 85, 7, 15, 1, 86, 7, + 15, 1, 87, 7, 7, 0, 88, 7, 2, 0, 89, 7, 2, 0, 90, 7, 2, 0, 91, 7, 2, 0, 92, 7, 2, 0, 93, 7, 2, 0, 94, 7, + 2, 0, 95, 7, 2, 0, 96, 7, 2, 0, 97, 7, 2, 0, 27, 0, 17, 1, 10, 0, 0, 0, 98, 7, 0, 0, 99, 7, 0, 0,100, 7, + 0, 0,101, 7, 0, 0,102, 7, 0, 0,103, 7, 2, 0,104, 7, 2, 0,105, 7, 2, 0,106, 7, 2, 0,107, 7, 18, 1, 8, 0, + 0, 0,108, 7, 0, 0,109, 7, 0, 0,110, 7, 0, 0,111, 7, 0, 0,112, 7, 0, 0,113, 7, 7, 0,110, 6, 7, 0, 27, 0, + 19, 1, 3, 0, 0, 0,114, 7, 2, 0,115, 7, 2, 0, 27, 0, 20, 1, 22, 0, 17, 1,116, 7, 17, 1,117, 7, 17, 1,118, 7, + 17, 1,119, 7, 17, 1,120, 7, 17, 1,121, 7, 17, 1,122, 7, 17, 1,123, 7, 17, 1,124, 7, 17, 1,125, 7, 17, 1,126, 7, + 17, 1,127, 7, 17, 1,128, 7, 17, 1,129, 7, 17, 1,130, 7, 17, 1,131, 7, 17, 1,132, 7, 18, 1,133, 7, 19, 1,134, 7, + 0, 0,135, 7, 7, 0,136, 7, 7, 0, 27, 0, 21, 1,122, 0, 0, 0,137, 7, 0, 0,138, 7, 0, 0,102, 7, 0, 0,139, 7, + 0, 0,114, 7, 0, 0,140, 7, 0, 0,141, 7, 0, 0,142, 7, 0, 0,143, 7, 0, 0,144, 7, 0, 0,145, 7, 0, 0,146, 7, + 0, 0,147, 7, 0, 0,148, 7, 0, 0,149, 7, 0, 0,150, 7, 0, 0,151, 7, 0, 0,152, 7, 0, 0,153, 7, 0, 0,154, 7, + 0, 0,155, 7, 0, 0,156, 7, 0, 0,157, 7, 0, 0,158, 7, 0, 0,159, 7, 0, 0,160, 7, 0, 0,161, 7, 0, 0,162, 7, + 0, 0,163, 7, 0, 0,164, 7, 0, 0,165, 7, 0, 0,166, 7, 0, 0,167, 7, 0, 0,168, 7, 0, 0,169, 7, 0, 0,170, 7, + 0, 0,171, 7, 0, 0,172, 7, 0, 0,173, 7, 0, 0,174, 7, 0, 0,175, 7, 0, 0,176, 7, 0, 0,177, 7, 0, 0,178, 7, + 0, 0,179, 7, 0, 0,180, 7, 0, 0,181, 7, 0, 0,182, 7, 0, 0,183, 7, 0, 0,184, 7, 0, 0,185, 7, 0, 0,186, 7, + 0, 0,187, 7, 0, 0,188, 7, 0, 0,189, 7, 0, 0,190, 7, 0, 0,191, 7, 0, 0,192, 7, 0, 0,193, 7, 0, 0,194, 7, + 0, 0,195, 7, 0, 0,196, 7, 0, 0,197, 7, 0, 0,198, 7, 0, 0,199, 7, 0, 0,200, 7, 0, 0,201, 7, 0, 0,202, 7, + 0, 0,203, 7, 0, 0,204, 7, 0, 0,205, 7, 0, 0,206, 7, 0, 0,207, 7, 0, 0,208, 7, 0, 0,209, 7, 0, 0,210, 7, + 0, 0,211, 7, 0, 0,212, 7, 0, 0,213, 7, 0, 0,214, 7, 0, 0,215, 7, 0, 0,216, 7, 0, 0,217, 7, 0, 0,218, 7, + 0, 0,219, 7, 0, 0,220, 7, 0, 0,221, 7, 0, 0,222, 7, 0, 0,223, 7, 0, 0,224, 7, 0, 0,225, 7, 0, 0,226, 7, + 0, 0,227, 7, 0, 0,228, 7, 0, 0,229, 7, 0, 0,230, 7, 0, 0,231, 7, 0, 0,232, 7, 0, 0,233, 7, 0, 0,234, 7, + 0, 0,235, 7, 0, 0,236, 7, 0, 0,237, 7, 0, 0,238, 7, 0, 0,239, 7, 0, 0,240, 7, 0, 0,241, 7, 0, 0,242, 7, + 0, 0,243, 7, 0, 0,244, 7, 0, 0,245, 7, 0, 0,246, 7, 0, 0,247, 7, 0, 0,248, 7, 0, 0,249, 7, 0, 0,250, 7, + 0, 0,251, 7, 0, 0,252, 7, 0, 0,253, 7, 0, 0,254, 7, 0, 0,255, 7, 0, 0, 0, 8, 22, 1, 5, 0, 0, 0, 1, 8, + 0, 0,160, 7, 0, 0,166, 7, 2, 0, 18, 0, 2, 0, 27, 0, 23, 1, 24, 0, 23, 1, 0, 0, 23, 1, 1, 0, 0, 0,174, 5, + 20, 1, 2, 8, 21, 1, 3, 8, 21, 1, 4, 8, 21, 1, 5, 8, 21, 1, 6, 8, 21, 1, 7, 8, 21, 1, 8, 8, 21, 1, 9, 8, + 21, 1, 10, 8, 21, 1, 11, 8, 21, 1, 12, 8, 21, 1, 13, 8, 21, 1, 14, 8, 21, 1, 15, 8, 21, 1, 16, 8, 21, 1, 17, 8, + 21, 1, 18, 8, 21, 1, 19, 8, 22, 1, 20, 8, 4, 0, 21, 8, 4, 0, 27, 0, 24, 1, 3, 0, 24, 1, 0, 0, 24, 1, 1, 0, + 0, 0, 22, 8, 25, 1, 5, 0, 4, 0, 18, 0, 4, 0, 27, 0, 7, 0,151, 2, 7, 0, 23, 8, 7, 0, 47, 2, 26, 1, 95, 0, + 4, 0, 18, 0, 4, 0, 24, 8, 4, 0, 25, 8, 0, 0, 26, 8, 0, 0, 27, 8, 0, 0, 28, 8, 0, 0, 29, 8, 0, 0, 30, 8, + 0, 0, 31, 8, 0, 0, 32, 8, 0, 0, 33, 8, 0, 0, 34, 8, 0, 0, 35, 8, 4, 0, 36, 8, 2, 0, 37, 8, 2, 0, 38, 8, + 2, 0, 39, 8, 2, 0, 40, 8, 4, 0, 41, 8, 4, 0, 42, 8, 4, 0, 43, 8, 4, 0, 44, 8, 2, 0, 45, 8, 2, 0, 46, 8, + 4, 0, 47, 8, 4, 0, 48, 8, 4, 0, 49, 8, 4, 0, 50, 8, 4, 0, 51, 8, 4, 0, 55, 7, 4, 0, 52, 8, 2, 0, 53, 8, + 2, 0, 54, 8, 2, 0, 55, 8, 2, 0, 56, 8, 14, 0, 57, 8, 14, 0, 58, 8, 14, 0, 59, 8, 14, 0, 60, 8, 14, 0, 61, 8, + 14, 0, 62, 8, 0, 0, 63, 8, 2, 0, 64, 8, 2, 0, 65, 8, 2, 0, 66, 8, 2, 0, 67, 8, 2, 0, 68, 8, 2, 0, 69, 8, + 2, 0, 70, 8, 2, 0, 71, 8, 25, 1, 72, 8, 2, 0, 73, 8, 2, 0, 74, 8, 2, 0, 75, 8, 2, 0, 76, 8, 2, 0, 77, 8, + 2, 0, 78, 8, 2, 0, 79, 8, 2, 0, 80, 8, 4, 0, 81, 8, 4, 0, 82, 8, 2, 0, 83, 8, 2, 0, 84, 8, 2, 0, 85, 8, + 2, 0, 86, 8, 2, 0, 87, 8, 2, 0, 88, 8, 2, 0, 89, 8, 2, 0, 90, 8, 2, 0, 91, 8, 2, 0, 92, 8, 2, 0, 93, 8, + 2, 0, 94, 8, 2, 0, 95, 8, 2, 0, 96, 8, 2, 0, 97, 8, 2, 0, 98, 8, 2, 0, 99, 8, 2, 0,100, 8, 7, 0,101, 8, + 4, 0,102, 8, 7, 0,103, 8, 2, 0, 19, 6, 2, 0, 20, 6, 2, 0,104, 8, 2, 0,105, 8, 50, 0,106, 8, 7, 0,107, 8, + 2, 0,108, 8, 2, 0,247, 1, 0, 0,109, 8, 4, 0,110, 8, 4, 0,111, 8, 7, 0,112, 8, 7, 0, 27, 0, 27, 1, 24, 0, + 22, 0, 32, 0, 14, 0,113, 8, 14, 0,114, 8, 14, 0,115, 8, 14, 0,147, 6, 41, 0,125, 0, 41, 0,116, 8, 4, 0,117, 8, + 4, 0, 67, 0, 2, 0,118, 8, 2, 0,119, 8, 2, 0,120, 8, 2, 0,121, 8, 2, 0,122, 8, 2, 0,123, 8, 2, 0,124, 8, + 2, 0,125, 8, 2, 0,126, 8, 2, 0,127, 8, 2, 0,128, 8, 2, 0, 27, 0,237, 0,129, 8, 11, 0,130, 8, 2, 0,131, 8, + 28, 1, 5, 0, 28, 1, 0, 0, 28, 1, 1, 0, 28, 1,132, 8, 15, 0,133, 8, 4, 0, 18, 0, 29, 1, 7, 0, 29, 1, 0, 0, + 29, 1, 1, 0, 28, 1,134, 8, 28, 1,135, 8, 2, 0,123, 5, 2, 0, 18, 0, 4, 0, 27, 0, 30, 1, 25, 0, 30, 1, 0, 0, + 30, 1, 1, 0, 31, 1,136, 8, 32, 1,240, 6, 0, 0,137, 8, 0, 0,138, 8, 0, 0,139, 8, 2, 0,140, 8, 2, 0,141, 8, + 2, 0,142, 8, 2, 0,143, 8, 2, 0,144, 8, 2, 0, 27, 0, 2, 0, 18, 0, 2, 0,145, 8, 2, 0,146, 8, 2, 0,147, 8, + 4, 0,148, 8, 30, 1,149, 8, 11, 0,150, 8, 4, 0,151, 8, 4, 0,152, 8, 4, 0,153, 8, 4, 0,154, 8, 0, 0,155, 8, + 33, 1, 22, 0, 33, 1, 0, 0, 33, 1, 1, 0, 28, 1,134, 8, 28, 1,135, 8, 28, 1,156, 8, 28, 1,157, 8, 27, 1,158, 8, + 18, 0, 51, 0, 0, 0,148, 6, 0, 0,159, 8, 2, 0,193, 6, 2, 0,194, 6, 2, 0,160, 8, 2, 0, 27, 0, 2, 0,122, 8, + 2, 0, 54, 7, 2, 0, 18, 0, 34, 1,136, 8, 14, 0,161, 8, 14, 0,147, 6, 14, 0,162, 8, 14, 0,163, 8, 35, 1, 24, 0, + 35, 1, 0, 0, 35, 1, 1, 0,240, 0,201, 6, 18, 0,164, 8, 18, 0,165, 8, 2, 0,193, 6, 2, 0,194, 6, 2, 0,166, 8, + 2, 0,167, 8, 2, 0,168, 8, 2, 0, 18, 0, 7, 0, 93, 2, 2, 0,142, 8, 2, 0,143, 8, 2, 0,121, 8, 2, 0,169, 8, + 2, 0,126, 8, 2, 0, 86, 1, 36, 1,136, 8, 14, 0,170, 8, 14, 0,171, 8, 14, 0,162, 8, 0, 0,172, 8, 11, 0,173, 8, + 37, 1, 14, 0, 0, 0,174, 8, 2, 0,175, 8, 2, 0,176, 8, 2, 0,177, 8, 2, 0,178, 8, 2, 0,112, 5, 2, 0,179, 8, + 27, 1,180, 8, 41, 0,181, 8, 4, 0,182, 8, 4, 0,183, 8, 4, 0,184, 8, 4, 0, 27, 0, 0, 0, 71, 7, 38, 1, 3, 0, + 0, 0,185, 8, 4, 0,186, 8, 4, 0,187, 8, 39, 1, 4, 0, 4, 0, 8, 7, 4, 0,188, 8, 4, 0, 14, 7, 4, 0,189, 8, + 40, 1, 2, 0, 4, 0,190, 8, 4, 0,191, 8, 41, 1, 5, 0, 7, 0,192, 8, 7, 0,193, 8, 7, 0,194, 8, 4, 0, 18, 0, + 4, 0, 27, 0, 42, 1, 7, 0, 0, 0,195, 8, 0, 0,222, 6, 44, 0,138, 0, 2, 0,196, 8, 2, 0, 74, 5, 2, 0,197, 8, + 2, 0,198, 8, 43, 1, 12, 0, 43, 1, 0, 0, 43, 1, 1, 0, 4, 0, 28, 0, 4, 0,199, 8, 4, 0,200, 8, 4, 0,201, 8, + 38, 1,202, 8, 0, 0,195, 8, 42, 1,176, 3, 39, 1,203, 8, 40, 1,204, 8, 41, 1,205, 8, 44, 1, 12, 0, 0, 0, 35, 0, + 11, 0,227, 0, 0, 0,228, 0, 4, 0,231, 0, 4, 0,239, 0, 11, 0,232, 0, 7, 0,234, 0, 7, 0,235, 0, 11, 0,206, 8, + 11, 0,207, 8, 11, 0,236, 0, 11, 0,238, 0, 45, 1, 50, 0, 45, 1, 0, 0, 45, 1, 1, 0, 11, 0,208, 8, 11, 0, 25, 0, + 0, 0, 19, 0, 4, 0, 18, 0, 4, 0, 16, 0, 4, 0, 22, 0, 4, 0, 90, 0, 4, 0,209, 8, 4, 0,210, 8, 4, 0,200, 8, + 4, 0,201, 8, 4, 0,211, 8, 4, 0,250, 0, 4, 0,212, 8, 4, 0,213, 8, 7, 0,214, 8, 7, 0,215, 8, 7, 0,216, 8, + 2, 0,217, 8, 2, 0,218, 8, 4, 0,219, 8, 4, 0,220, 8, 43, 1,221, 8, 31, 0, 80, 0, 41, 0,125, 0, 27, 0,222, 8, + 44, 0,138, 0,229, 0,107, 6, 7, 0,223, 8, 7, 0,224, 8, 44, 1, 71, 1, 45, 1,225, 8, 45, 1,226, 8, 45, 1,227, 8, + 14, 0,228, 8, 46, 1,229, 8, 11, 0,230, 8, 7, 0, 84, 4, 7, 0,231, 8, 7, 0,232, 8, 7, 0,233, 8, 11, 0,234, 8, + 4, 0,235, 8, 4, 0,236, 8, 4, 0,237, 8, 7, 0,238, 8, 4, 0,129, 0, 4, 0, 27, 0, 47, 1, 4, 0, 47, 1, 0, 0, + 47, 1, 1, 0, 14, 0,239, 8, 45, 1,240, 8,226, 0, 11, 0, 14, 0,241, 8, 14, 0,228, 8, 14, 0,242, 8, 45, 1,243, 8, + 0, 0,244, 8, 0, 0,245, 8, 4, 0,246, 8, 4, 0,247, 8, 4, 0,248, 8, 4, 0, 27, 0, 19, 0,249, 8, 48, 1, 4, 0, + 7, 0,250, 8, 7, 0, 94, 3, 2, 0,251, 8, 2, 0,252, 8, 49, 1, 6, 0, 7, 0,253, 8, 7, 0,254, 8, 7, 0,255, 8, + 7, 0, 0, 9, 4, 0, 1, 9, 4, 0, 2, 9, 50, 1, 8, 0, 7, 0, 3, 9, 7, 0, 4, 9, 7, 0, 5, 9, 7, 0, 6, 9, + 7, 0, 7, 9, 4, 0,250, 2, 4, 0, 8, 9, 4, 0, 9, 9, 51, 1, 2, 0, 7, 0,182, 5, 7, 0, 27, 0, 52, 1, 5, 0, + 7, 0, 10, 9, 7, 0, 11, 9, 4, 0, 92, 0, 4, 0,212, 2, 4, 0, 12, 9, 53, 1, 6, 0, 53, 1, 0, 0, 53, 1, 1, 0, + 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 13, 9, 2, 0, 56, 0, 54, 1, 8, 0, 54, 1, 0, 0, 54, 1, 1, 0, 2, 0, 16, 0, + 2, 0, 18, 0, 2, 0, 13, 9, 2, 0, 56, 0, 7, 0, 22, 0, 7, 0,129, 0, 55, 1, 45, 0, 55, 1, 0, 0, 55, 1, 1, 0, + 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 13, 9, 2, 0,246, 0, 2, 0,126, 4, 2, 0, 14, 9, 7, 0, 15, 9, 7, 0, 91, 0, + 7, 0, 7, 3, 4, 0, 16, 9, 4, 0, 82, 0, 4, 0,214, 2, 7, 0, 17, 9, 7, 0, 18, 9, 7, 0, 19, 9, 7, 0, 20, 9, + 7, 0, 21, 9, 7, 0, 22, 9, 7, 0, 4, 3, 7, 0, 68, 1, 7, 0, 23, 9, 7, 0, 24, 9, 7, 0, 27, 0, 7, 0, 25, 9, + 7, 0, 26, 9, 7, 0, 27, 9, 2, 0, 28, 9, 2, 0, 29, 9, 2, 0, 30, 9, 2, 0, 31, 9, 2, 0, 32, 9, 2, 0, 33, 9, + 2, 0, 34, 9, 2, 0, 35, 9, 2, 0, 32, 2, 2, 0, 36, 9, 2, 0, 29, 2, 2, 0, 37, 9, 0, 0, 38, 9, 0, 0, 39, 9, + 7, 0,244, 0, 56, 1, 40, 9, 64, 0,250, 1, 57, 1, 16, 0, 57, 1, 0, 0, 57, 1, 1, 0, 2, 0, 16, 0, 2, 0, 18, 0, + 2, 0, 13, 9, 2, 0,246, 0, 7, 0,255, 2, 7, 0, 0, 3, 7, 0, 1, 3, 7, 0, 82, 2, 7, 0, 2, 3, 7, 0, 3, 3, + 7, 0, 41, 9, 7, 0, 4, 3, 7, 0, 6, 3, 7, 0, 7, 3,253, 0, 5, 0, 2, 0, 16, 0, 2, 0, 42, 9, 2, 0, 18, 0, + 2, 0, 43, 9, 22, 0, 43, 7,252, 0, 3, 0, 4, 0, 69, 0, 4, 0, 44, 9,253, 0, 2, 0, 58, 1, 7, 0, 58, 1, 0, 0, + 58, 1, 1, 0, 0, 0, 19, 0, 2, 0, 16, 0, 2, 0, 18, 0, 4, 0, 21, 0, 11, 0, 45, 9, 59, 1, 5, 0, 0, 0, 19, 0, + 7, 0, 94, 1, 7, 0, 46, 9, 4, 0, 47, 9, 4, 0, 27, 0, 60, 1, 4, 0, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 67, 0, + 2, 0, 30, 0, 61, 1, 4, 0, 0, 0, 19, 0, 63, 0, 48, 9, 7, 0, 94, 1, 7, 0, 27, 0, 62, 1, 6, 0, 2, 0, 49, 9, + 2, 0, 50, 9, 2, 0, 16, 0, 2, 0, 51, 9, 0, 0, 52, 9, 0, 0, 53, 9, 63, 1, 5, 0, 4, 0, 16, 0, 4, 0, 27, 0, + 0, 0, 19, 0, 0, 0, 54, 9, 0, 0, 55, 9, 64, 1, 3, 0, 4, 0, 16, 0, 4, 0, 27, 0, 0, 0, 19, 0, 65, 1, 4, 0, + 2, 0, 56, 9, 2, 0, 57, 9, 2, 0, 18, 0, 2, 0, 27, 0, 66, 1, 6, 0, 0, 0, 19, 0, 0, 0, 58, 9, 2, 0, 59, 9, + 2, 0, 4, 3, 2, 0, 87, 1, 2, 0, 30, 0, 67, 1, 5, 0, 0, 0, 19, 0, 7, 0, 94, 3, 7, 0,217, 4, 2, 0, 18, 0, + 2, 0,226, 2, 68, 1, 3, 0, 0, 0, 19, 0, 4, 0,214, 2, 4, 0, 56, 9, 69, 1, 7, 0, 0, 0, 19, 0, 7, 0,217, 4, + 0, 0, 60, 9, 0, 0, 61, 9, 2, 0, 87, 1, 2, 0, 67, 0, 4, 0, 62, 9, 70, 1, 4, 0, 0, 0, 63, 9, 0, 0, 64, 9, + 4, 0, 16, 0, 7, 0,230, 2, 71, 1, 3, 0, 27, 0, 65, 9, 0, 0, 66, 9, 0, 0, 67, 9, 72, 1, 18, 0, 72, 1, 0, 0, + 72, 1, 1, 0, 2, 0, 16, 0, 2, 0, 68, 9, 2, 0, 18, 0, 2, 0, 69, 9, 2, 0, 70, 9, 2, 0, 71, 9, 2, 0, 67, 0, + 2, 0, 30, 0, 0, 0, 19, 0, 11, 0, 2, 0, 73, 1, 72, 9, 27, 0, 44, 0, 2, 0,218, 5, 2, 0,176, 2, 2, 0, 73, 9, + 2, 0, 27, 0, 74, 1, 11, 0, 0, 0, 19, 0, 0, 0, 16, 0, 0, 0, 74, 9, 2, 0, 18, 0, 2, 0,226, 2, 2, 0, 75, 9, + 4, 0, 76, 9, 4, 0, 77, 9, 4, 0, 78, 9, 4, 0, 79, 9, 4, 0, 80, 9, 75, 1, 1, 0, 0, 0, 81, 9, 76, 1, 4, 0, + 37, 0, 7, 7, 0, 0, 22, 8, 4, 0, 87, 1, 4, 0, 18, 0, 73, 1, 18, 0, 73, 1, 0, 0, 73, 1, 1, 0, 73, 1, 82, 9, + 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 83, 9, 2, 0, 71, 9, 2, 0, 68, 9, 2, 0, 84, 9, 2, 0, 30, 0, 2, 0,247, 1, + 0, 0, 19, 0, 11, 0, 2, 0, 77, 1, 72, 9, 72, 1, 85, 9, 2, 0, 14, 0, 2, 0, 86, 9, 4, 0, 87, 9, 78, 1, 3, 0, + 4, 0,240, 2, 4, 0, 27, 0, 27, 0, 44, 0, 79, 1, 15, 0,176, 0, 88, 9, 2, 0, 16, 0, 2, 0, 18, 0, 7, 0, 15, 9, + 7, 0, 91, 0, 0, 0, 19, 0, 0, 0, 89, 9, 2, 0, 90, 9, 2, 0, 91, 9, 2, 0,134, 0, 2, 0, 92, 9, 2, 0, 93, 9, + 2, 0, 27, 0, 7, 0, 94, 9, 7, 0, 95, 9, 80, 1, 8, 0, 7, 0, 96, 9, 7, 0, 97, 9, 7, 0, 98, 9, 7, 0, 99, 9, + 7, 0,100, 9, 7, 0,101, 9, 7, 0,102, 9, 7, 0,103, 9, 81, 1, 13, 0, 2, 0, 18, 0, 2, 0,104, 9, 4, 0, 67, 0, + 4, 0, 30, 0, 2, 0,178, 6, 7, 0, 84, 4, 7, 0,231, 8, 46, 1,229, 8, 80, 1,105, 9, 2, 0, 16, 0, 2, 0,117, 5, + 2, 0,216, 3, 2, 0,106, 9, 82, 1, 11, 0, 4, 0,240, 2, 2, 0, 16, 0, 2, 0, 18, 0, 27, 0, 44, 0, 79, 0,107, 9, + 0, 0, 19, 0, 7, 0,108, 9, 7, 0,109, 9, 7, 0,222, 3, 2, 0,110, 9, 2, 0,111, 9, 83, 1, 5, 0, 2, 0, 16, 0, + 2, 0, 67, 0, 4, 0, 27, 0, 41, 0,125, 0, 27, 0,210, 5, 84, 1, 5, 0, 4, 0, 27, 0, 4, 0, 16, 0, 0, 0, 19, 0, + 0, 0, 54, 9, 27, 0, 44, 0, 85, 1, 13, 0, 2, 0, 18, 0, 2, 0, 16, 0, 2, 0, 68, 9, 2, 0,223, 3, 7, 0,112, 9, + 7, 0,113, 9, 7, 0, 86, 1, 7, 0,114, 9, 7, 0,192, 3, 7, 0,196, 3, 7, 0,115, 9, 7, 0,116, 9, 27, 0,117, 9, + 86, 1, 10, 0, 2, 0, 18, 0, 2, 0, 16, 0, 7, 0, 15, 9, 7, 0, 91, 0, 0, 0, 19, 0, 0, 0, 89, 9, 2, 0, 67, 0, + 2, 0, 30, 0, 2, 0,247, 1, 2, 0,117, 5, 87, 1, 8, 0, 27, 0, 44, 0, 7, 0, 1, 3, 7, 0,118, 9, 7, 0,119, 9, + 7, 0,223, 3, 2, 0, 67, 0, 2, 0,226, 2, 7, 0, 30, 0, 88, 1, 12, 0, 2, 0, 16, 0, 2, 0, 87, 1, 2, 0, 18, 0, + 2, 0, 4, 3, 2, 0,240, 2, 2, 0,120, 9, 4, 0, 27, 0, 7, 0,121, 9, 7, 0,122, 9, 7, 0,123, 9, 7, 0,124, 9, + 0, 0,125, 9, 89, 1, 9, 0, 2, 0, 18, 0, 2, 0, 16, 0, 4, 0, 15, 9, 4, 0, 91, 0, 0, 0, 19, 0, 2, 0, 86, 1, + 2, 0, 63, 0, 2, 0,126, 9, 2, 0,127, 9, 90, 1, 7, 0, 4, 0,214, 2, 4, 0,128, 9, 4, 0,129, 9, 4, 0,130, 9, + 7, 0,131, 9, 7, 0,132, 9, 0, 0, 60, 9, 91, 1, 7, 0, 0, 0,133, 9, 27, 0,134, 9, 0, 0, 66, 9, 2, 0,135, 9, + 2, 0, 67, 0, 4, 0, 30, 0, 0, 0, 67, 9, 92, 1, 6, 0, 2, 0, 18, 0, 2, 0, 16, 0, 4, 0, 15, 9, 4, 0, 91, 0, + 0, 0,136, 9, 0, 0,137, 9, 93, 1, 1, 0, 4, 0, 18, 0, 94, 1, 6, 0, 0, 0, 94, 0, 2, 0, 16, 0, 2, 0, 18, 0, + 4, 0,138, 9, 7, 0,139, 9, 37, 0, 7, 7, 95, 1, 4, 0, 0, 0,181, 2, 2, 0, 18, 0, 4, 0, 16, 0, 27, 0, 44, 0, + 96, 1, 2, 0, 4, 0, 16, 0, 4, 0,182, 6, 97, 1, 8, 0, 0, 0, 63, 9, 0, 0, 64, 9, 4, 0, 16, 0, 7, 0, 40, 2, + 7, 0,140, 9, 7, 0, 27, 0, 27, 0, 70, 3, 27, 0,141, 9, 98, 1, 11, 0, 0, 0, 55, 6, 0, 0, 18, 0, 2, 0,142, 9, + 4, 0, 16, 0, 7, 0, 94, 1, 7, 0,143, 9, 7, 0,144, 9, 7, 0,145, 9, 4, 0,146, 9, 27, 0, 70, 3, 27, 0,147, 9, + 77, 1, 10, 0, 77, 1, 0, 0, 77, 1, 1, 0, 77, 1, 82, 9, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 68, 9, 2, 0,148, 9, + 0, 0, 19, 0, 11, 0, 2, 0, 27, 0, 44, 0, 46, 1, 17, 0, 22, 0, 32, 0, 0, 0, 35, 0, 38, 0,153, 0, 11, 0,227, 0, + 38, 0,149, 9, 31, 0, 80, 0, 7, 0, 84, 4, 7, 0,150, 9, 7, 0,231, 8, 7, 0, 96, 9, 7, 0, 97, 9, 7, 0,151, 9, + 4, 0, 92, 0, 4, 0, 27, 0, 11, 0,152, 9, 11, 0,153, 9, 11, 0,154, 9, 99, 1, 6, 0, 99, 1, 0, 0, 99, 1, 1, 0, + 27, 0, 44, 0, 11, 0,155, 9, 2, 0,251, 0, 0, 0,211, 2, 64, 0, 4, 0, 22, 0, 32, 0, 14, 0,156, 9, 4, 0,134, 0, + 7, 0,157, 9,100, 1, 28, 0,100, 1, 0, 0,100, 1, 1, 0, 21, 0,158, 9,100, 1, 38, 0, 14, 0,159, 9, 0, 0, 19, 0, + 7, 0,160, 9, 7, 0,161, 9, 7, 0,162, 9, 7, 0,163, 9, 4, 0, 18, 0, 7, 0,164, 9, 7, 0,165, 9, 7, 0,166, 9, + 7, 0,167, 9, 7, 0, 94, 1, 7, 0, 40, 2, 7, 0,168, 9, 7, 0,212, 2, 7, 0,169, 9, 7, 0,170, 9, 7, 0,171, 9, + 7, 0,172, 9, 7, 0,173, 9, 7, 0,176, 0, 4, 0,134, 0, 2, 0,255, 5, 2, 0,174, 9,101, 1, 27, 0, 22, 0, 32, 0, + 34, 0, 75, 0, 14, 0,175, 9, 14, 0,176, 9, 14, 0,177, 9,100, 1,178, 9, 11, 0,179, 9, 11, 0,180, 9, 4, 0, 18, 0, + 4, 0,158, 6, 4, 0,181, 9, 4, 0, 27, 0, 2, 0, 8, 3, 2, 0,212, 6, 4, 0,182, 9, 4, 0,134, 0, 4, 0,183, 9, + 2, 0,184, 9, 2, 0,185, 9, 2, 0,186, 9, 2, 0,187, 9, 4, 0,188, 9, 4, 0,189, 9, 4, 0,190, 9, 4, 0,191, 9, + 4, 0,192, 9, 4, 0,193, 9,102, 1, 2, 0, 7, 0,165, 2, 4, 0, 18, 0,180, 0, 5, 0,102, 1,194, 9, 4, 0,212, 2, + 4, 0,195, 9, 4, 0,196, 9, 4, 0, 18, 0,179, 0, 16, 0, 4, 0,197, 9, 4, 0,198, 9, 4, 0,199, 9, 4, 0,200, 9, + 2, 0,201, 9, 2, 0,202, 9, 2, 0,203, 9, 2, 0,251, 0, 2, 0,204, 9, 2, 0,205, 9, 2, 0,206, 9, 2, 0,207, 9, + 4, 0,208, 9, 4, 0,209, 9, 4, 0,210, 9, 4, 0,211, 9,103, 1, 40, 0,103, 1, 0, 0,103, 1, 1, 0, 21, 0,158, 9, + 14, 0,251, 3, 0, 0, 19, 0, 2, 0, 18, 0, 2, 0,212, 9, 2, 0,209, 3, 2, 0,213, 9, 0, 0,214, 9, 0, 0,215, 9, + 0, 0,216, 9,100, 1,217, 9,103, 1, 38, 0,103, 1,218, 9, 14, 0,219, 9, 14, 0,220, 9,180, 0,184, 3, 27, 0,221, 9, +103, 1,222, 9, 7, 0, 77, 1, 7, 0,176, 0, 7, 0,223, 9, 7, 0, 19, 2, 7, 0,198, 3, 7, 0,200, 3, 2, 0,232, 3, + 2, 0, 27, 0, 7, 0,224, 9, 7, 0,225, 9, 7, 0,203, 3, 7, 0,226, 9, 7, 0,227, 9, 7, 0,228, 9, 7, 0,229, 9, + 7, 0,230, 9, 7, 0,231, 9, 7, 0,232, 9, 7, 0,233, 9, 11, 0,234, 9,177, 0, 16, 0, 14, 0,235, 9, 74, 0,236, 9, + 2, 0, 18, 0, 2, 0, 27, 0, 4, 0,237, 9, 4, 0, 67, 0, 7, 0, 84, 0, 7, 0,238, 9, 7, 0,239, 9, 14, 0,240, 9, + 4, 0,241, 9, 4, 0,242, 9, 11, 0,243, 9, 11, 0,244, 9,179, 0,183, 3, 0, 0,245, 9,104, 1, 1, 0, 4, 0,242, 9, +105, 1, 12, 0, 4, 0,242, 9, 7, 0, 80, 9, 2, 0,246, 9, 2, 0,247, 9, 7, 0,248, 9, 7, 0,249, 9, 2, 0,250, 9, + 2, 0, 18, 0, 7, 0,251, 9, 7, 0,252, 9, 7, 0,253, 9, 7, 0,254, 9,106, 1, 7, 0,106, 1, 0, 0,106, 1, 1, 0, + 14, 0,255, 9, 4, 0, 18, 0, 4, 0, 0, 10, 0, 0, 19, 0, 22, 1, 1, 10,176, 0, 9, 0, 22, 0, 32, 0, 14, 0, 2, 10, + 14, 0,235, 9, 14, 0, 3, 10, 14, 0,102, 0, 4, 0, 18, 0, 4, 0, 4, 10, 4, 0, 5, 10, 4, 0, 27, 0,243, 0, 8, 0, + 22, 0, 6, 10, 14, 0,235, 9, 64, 0, 7, 10, 0, 0, 8, 10, 4, 0, 9, 10, 4, 0, 18, 0, 4, 0, 10, 10, 4, 0, 27, 0, +107, 1, 13, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,147, 6, 4, 0,148, 6, 7, 0,149, 6, 2, 0,150, 6,240, 0,201, 6, +176, 0,179, 3,243, 0, 11, 10, 0, 0, 87, 1, 0, 0,204, 6, 2, 0, 18, 0, 7, 0, 12, 10,108, 1, 8, 0,108, 1, 0, 0, +108, 1, 1, 0,106, 1, 13, 10, 31, 0, 80, 0, 14, 0,185, 3, 4, 0, 18, 0, 0, 0, 19, 0, 4, 0,119, 8,109, 1, 5, 0, +109, 1, 0, 0,109, 1, 1, 0, 31, 0, 80, 0, 2, 0, 18, 0, 0, 0, 14, 10,110, 1, 14, 0,110, 1, 0, 0,110, 1, 1, 0, + 11, 0, 2, 0, 2, 0, 16, 0, 2, 0, 18, 0, 0, 0, 15, 10, 0, 0, 16, 10, 0, 0, 19, 0, 2, 0, 27, 0, 7, 0, 17, 10, + 7, 0, 18, 10, 31, 0, 80, 0, 7, 0, 19, 10, 7, 0, 20, 10,111, 1, 9, 0,111, 1, 0, 0,111, 1, 1, 0, 27, 0, 21, 10, + 0, 0, 11, 3, 7, 0, 22, 10, 2, 0, 23, 10, 2, 0, 18, 0, 2, 0, 16, 0, 2, 0, 24, 10,112, 1, 7, 0, 37, 0, 7, 7, + 21, 0,158, 9, 4, 0, 18, 0, 4, 0, 25, 10, 14, 0, 26, 10, 27, 0, 21, 10, 0, 0, 11, 3,113, 1, 15, 0, 27, 0, 21, 10, + 2, 0, 27, 10, 2, 0, 18, 0, 2, 0, 28, 10, 2, 0, 29, 10, 0, 0, 11, 3, 27, 0, 30, 10, 0, 0, 31, 10, 7, 0, 32, 10, + 7, 0, 40, 2, 7, 0, 33, 10, 7, 0, 34, 10, 2, 0, 16, 0, 2, 0, 87, 1, 7, 0, 94, 1,114, 1, 6, 0, 27, 0, 21, 10, + 7, 0,194, 9, 2, 0, 35, 10, 2, 0, 36, 10, 2, 0, 18, 0, 2, 0, 37, 10,115, 1, 6, 0, 27, 0, 21, 10, 4, 0, 38, 10, + 4, 0, 39, 10, 4, 0, 92, 0, 4, 0, 27, 0, 0, 0, 11, 3,116, 1, 4, 0, 27, 0, 21, 10, 4, 0, 18, 0, 4, 0, 38, 10, + 0, 0, 11, 3,117, 1, 4, 0, 27, 0, 21, 10, 4, 0, 18, 0, 4, 0, 38, 10, 0, 0, 11, 3,118, 1, 4, 0, 27, 0, 21, 10, + 4, 0, 18, 0, 4, 0, 38, 10, 0, 0, 11, 3,119, 1, 2, 0, 4, 0, 18, 0, 7, 0, 84, 4,120, 1, 2, 0, 27, 0, 21, 10, + 0, 0, 11, 3,121, 1, 10, 0, 27, 0, 21, 10, 4, 0, 40, 10, 7, 0,128, 0, 4, 0, 18, 0, 2, 0, 5, 7, 2, 0, 41, 10, + 2, 0, 67, 0, 2, 0, 30, 0, 7, 0, 42, 10, 0, 0, 11, 3,122, 1, 10, 0, 27, 0, 21, 10, 2, 0, 16, 0, 2, 0,134, 4, + 4, 0, 90, 0, 4, 0, 91, 0, 7, 0,118, 9, 7, 0,119, 9, 4, 0, 27, 0,176, 0, 88, 9, 0, 0, 11, 3,123, 1, 4, 0, + 27, 0, 21, 10, 4, 0,210, 3, 4, 0, 43, 10, 0, 0, 11, 3,124, 1, 4, 0, 27, 0, 21, 10, 4, 0,210, 3, 4, 0, 27, 0, + 0, 0, 11, 3,125, 1, 6, 0, 27, 0, 21, 10, 7, 0,128, 0, 7, 0, 82, 3, 4, 0, 44, 10, 2, 0,210, 3, 2, 0,211, 3, +126, 1, 6, 0, 27, 0, 21, 10, 4, 0, 45, 10, 4, 0, 46, 10, 7, 0, 47, 10, 7, 0, 48, 10, 0, 0, 11, 3,127, 1, 16, 0, + 27, 0, 21, 10, 27, 0,218, 9, 4, 0, 16, 0, 7, 0, 49, 10, 7, 0, 50, 10, 7, 0, 51, 10, 7, 0, 52, 10, 7, 0, 53, 10, + 7, 0, 54, 10, 7, 0, 55, 10, 7, 0, 56, 10, 7, 0, 57, 10, 2, 0, 18, 0, 2, 0, 27, 0, 2, 0, 67, 0, 2, 0, 30, 0, +128, 1, 3, 0, 27, 0, 21, 10, 4, 0, 18, 0, 4, 0, 32, 2,129, 1, 5, 0, 27, 0, 21, 10, 4, 0, 18, 0, 4, 0, 27, 0, + 7, 0, 58, 10, 0, 0, 11, 3,130, 1, 10, 0, 27, 0, 21, 10, 0, 0, 11, 3, 2, 0, 59, 10, 2, 0, 60, 10, 0, 0, 61, 10, + 0, 0, 62, 10, 7, 0, 63, 10, 7, 0, 64, 10, 7, 0, 65, 10, 7, 0, 66, 10,131, 1, 5, 0, 27, 0, 21, 10, 0, 0, 11, 3, + 7, 0,220, 2, 2, 0, 67, 10, 2, 0, 18, 0,132, 1, 8, 0, 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, + 7, 0, 68, 10, 7, 0, 69, 10, 2, 0, 18, 0, 2, 0, 32, 2,133, 1, 8, 0, 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, + 7, 0, 11, 0, 7, 0, 68, 10, 7, 0, 69, 10, 2, 0, 18, 0, 2, 0, 32, 2,134, 1, 8, 0, 7, 0, 8, 0, 7, 0, 9, 0, + 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 68, 10, 7, 0, 69, 10, 2, 0, 18, 0, 2, 0, 32, 2,135, 1, 7, 0, 27, 0, 21, 10, + 0, 0, 11, 3, 7, 0, 94, 1, 7, 0,103, 1, 2, 0, 18, 0, 2, 0, 87, 1, 4, 0, 27, 0,136, 1, 5, 0, 27, 0, 70, 3, + 7, 0, 94, 1, 2, 0, 74, 3, 0, 0, 76, 3, 0, 0, 70, 10,137, 1, 7, 0,229, 0,107, 6, 0, 0, 71, 10, 4, 0, 18, 0, + 4, 0, 27, 0, 0, 0, 72, 10, 27, 0,210, 5, 27, 0, 73, 10,138, 1, 3, 0,229, 0,107, 6, 4, 0, 18, 0, 4, 0, 27, 0, +139, 1, 6, 0,229, 0,107, 6, 4, 0, 18, 0, 4, 0, 27, 0, 0, 0, 72, 10, 7, 0, 58, 10, 27, 0,210, 5,140, 1, 10, 0, +140, 1, 0, 0,140, 1, 1, 0, 2, 0, 16, 0, 2, 0, 18, 0, 0, 0, 74, 10, 7, 0, 31, 1, 7, 0, 32, 1, 2, 0,255, 9, + 2, 0, 75, 10, 27, 0, 44, 0,141, 1, 22, 0,141, 1, 0, 0,141, 1, 1, 0, 2, 0, 18, 0, 2, 0, 87, 1, 2, 0, 76, 10, + 2, 0, 77, 10, 31, 0, 80, 0,176, 0, 88, 9, 27, 0,168, 0, 7, 0, 90, 0, 7, 0, 91, 0, 7, 0, 78, 10, 7, 0, 79, 10, + 7, 0, 80, 10, 7, 0, 81, 10, 7, 0,253, 2, 7, 0,148, 3, 7, 0, 90, 9, 7, 0, 82, 10, 0, 0, 83, 10, 0, 0, 84, 10, + 14, 0,188, 3,142, 1, 11, 0, 7, 0, 47, 2, 7, 0,118, 9, 7, 0,119, 9, 11, 0, 2, 0, 2, 0, 85, 10, 2, 0, 86, 10, + 2, 0, 87, 10, 2, 0, 88, 10, 2, 0, 89, 10, 2, 0, 90, 10, 2, 0,181, 2,143, 1, 21, 0,143, 1, 0, 0,143, 1, 1, 0, +143, 1, 91, 10, 0, 0, 19, 0, 11, 0, 92, 10, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 93, 10, 2, 0, 94, 10, 7, 0, 95, 10, + 7, 0, 96, 10, 11, 0, 97, 10, 2, 0, 98, 10, 2, 0, 99, 10, 4, 0,247, 1, 11, 0,152, 9, 4, 0,100, 10, 4, 0,101, 10, +143, 1,102, 10,144, 1,103, 10,142, 1,104, 10,145, 1, 4, 0, 0, 0,105, 10, 2, 0,106, 10, 2, 0,107, 10, 4, 0, 27, 0, +146, 1, 37, 0,146, 1, 0, 0,146, 1, 1, 0,146, 1,108, 10, 0, 0, 19, 0, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0,199, 8, + 2, 0,176, 2, 2, 0,109, 10, 2, 0, 10, 7, 2, 0, 98, 10, 2, 0, 42, 9, 14, 0, 83, 9, 14, 0,110, 10,146, 1, 38, 0, + 22, 0, 43, 7, 11, 0, 92, 10, 7, 0, 95, 10, 7, 0, 96, 10, 7, 0, 82, 2, 7, 0, 1, 3, 7, 0,111, 10, 4, 0,112, 10, + 0, 0,113, 10, 2, 0,114, 10, 2, 0,115, 10, 7, 0,116, 10, 7, 0,117, 10, 2, 0,118, 10, 2, 0,119, 10, 11, 0,120, 10, + 19, 0,121, 10, 19, 0,122, 10, 19, 0,123, 10,145, 1,154, 0,147, 1,124, 10,148, 1,125, 10,144, 1, 8, 0,144, 1, 0, 0, +144, 1, 1, 0,146, 1,126, 10,146, 1,127, 10,143, 1,128, 10,143, 1,129, 10, 4, 0, 18, 0, 4, 0, 27, 0, 57, 0, 20, 0, + 22, 0, 32, 0, 34, 0, 75, 0,178, 0,182, 3, 14, 0,130, 10, 14, 0,131, 10, 4, 0, 16, 0, 4, 0,132, 10, 4, 0,133, 10, + 4, 0, 18, 0, 4, 0,112, 10, 4, 0,134, 10, 14, 0, 83, 9, 14, 0,110, 10,149, 1,135, 10, 11, 0,136, 10, 11, 0,137, 10, + 4, 0,138, 10, 11, 0,139, 10, 11, 0,140, 10, 11, 0,141, 10,150, 1, 4, 0, 4, 0, 17, 0, 4, 0,230, 2, 4, 0,118, 9, + 4, 0,119, 9,151, 1, 4, 0, 4, 0, 17, 0, 7, 0,230, 2, 7, 0,118, 9, 7, 0,119, 9,152, 1, 2, 0, 0, 0,230, 2, + 0, 0, 86, 1,153, 1, 4, 0, 4, 0, 17, 0, 7, 0,142, 10, 7, 0,118, 9, 7, 0,119, 9,154, 1, 1, 0, 7, 0,143, 10, +155, 1, 6, 0, 4, 0,127, 0, 4, 0,129, 0, 4, 0, 42, 9, 0, 0,144, 10, 0, 0,145, 10, 2, 0, 27, 0,156, 1, 16, 0, + 2, 0,142, 8, 2, 0,143, 8, 2, 0, 71, 5, 2, 0,146, 10, 2, 0,147, 10, 2, 0, 68, 0, 2, 0, 44, 7, 2, 0,148, 10, + 7, 0,252, 2, 7, 0,149, 10, 7, 0,150, 10, 2, 0,109, 1, 0, 0,151, 10, 0, 0,152, 10, 4, 0,153, 10, 4, 0,154, 10, +157, 1, 9, 0, 7, 0,155, 10, 7, 0,156, 10, 7, 0,151, 9, 7, 0, 94, 3, 7, 0,157, 10, 7, 0,219, 6, 2, 0, 92, 3, + 0, 0,158, 10, 0, 0, 27, 0,158, 1, 4, 0, 7, 0,159, 10, 7, 0,160, 10, 2, 0, 92, 3, 2, 0, 27, 0,159, 1, 3, 0, + 7, 0,161, 10, 7, 0,214, 8, 7, 0, 14, 0,160, 1, 4, 0, 0, 0, 35, 0,204, 0, 82, 5, 4, 0,129, 0, 4, 0,132, 4, +161, 1, 6, 0, 0, 0,162, 10,204, 0,163, 10, 4, 0,129, 0, 4, 0,132, 4, 4, 0,164, 10, 4, 0, 27, 0,162, 1, 4, 0, + 2, 0,165, 10, 2, 0,166, 10, 4, 0, 30, 0,204, 0,163, 10,163, 1, 9, 0, 7, 0,167, 10, 7, 0,168, 10, 7, 0,169, 10, + 7, 0, 93, 2, 7, 0,170, 10, 7, 0,171, 10, 7, 0,172, 10, 2, 0,173, 10, 2, 0,174, 10,164, 1, 8, 0, 2, 0,175, 10, + 2, 0,176, 10, 2, 0,177, 10, 2, 0,178, 10, 7, 0,179, 10, 7, 0,180, 10, 7, 0,181, 10, 7, 0,182, 10,165, 1, 2, 0, + 7, 0, 5, 0, 7, 0, 6, 0,166, 1, 2, 0, 0, 0,170, 0, 0, 0,183, 10,167, 1, 1, 0, 0, 0, 19, 0,168, 1, 12, 0, + 0, 0,184, 10, 0, 0,185, 10, 0, 0,210, 6, 0, 0,186, 10, 2, 0, 71, 5, 2, 0,187, 10, 7, 0,188, 10, 7, 0,189, 10, + 7, 0,190, 10, 7, 0,148, 3, 7, 0,191, 10, 7, 0,192, 10,169, 1, 2, 0, 11, 0,193, 10, 11, 0,194, 10,170, 1, 13, 0, + 0, 0, 74, 5, 0, 0, 16, 0, 0, 0, 92, 3, 0, 0, 94, 3, 0, 0,185, 10, 0, 0,108, 0, 0, 0,181, 2, 7, 0,195, 10, + 7, 0,196, 10, 7, 0,147, 3, 7, 0,197, 10, 7, 0,198, 10, 7, 0,192, 10,171, 1, 8, 0, 7, 0, 49, 9, 7, 0,128, 0, + 7, 0,152, 10, 7, 0,172, 2, 7, 0,199, 10, 7, 0,240, 0, 7, 0,200, 10, 4, 0, 16, 0,172, 1, 4, 0, 2, 0,201, 10, + 2, 0,202, 10, 2, 0,203, 10, 2, 0, 27, 0,173, 1, 8, 0, 7, 0,204, 10, 7, 0,220, 2, 7, 0,205, 10, 7, 0,192, 8, + 7, 0,193, 8, 7, 0,194, 8, 7, 0,206, 10, 7, 0,207, 10,174, 1, 6, 0, 2, 0,208, 10, 2, 0,209, 10, 7, 0,210, 10, + 7, 0,211, 10, 7, 0,212, 10, 7, 0,213, 10,175, 1, 2, 0, 58, 0,214, 10, 59, 0,215, 10,176, 1, 3, 0,175, 1, 80, 6, + 7, 0,216, 10, 7, 0,217, 10,177, 1, 3, 0,175, 1, 80, 6, 4, 0,218, 10, 4, 0, 27, 0,178, 1, 1, 0,175, 1, 80, 6, +179, 1, 3, 0,175, 1, 80, 6, 4, 0,218, 10, 4, 0,219, 10,180, 1, 3, 0,175, 1, 80, 6, 4, 0,220, 10, 4, 0, 27, 0, +181, 1, 1, 0,175, 1, 80, 6,182, 1, 3, 0,175, 1, 80, 6, 4, 0,221, 10, 4, 0, 27, 0,183, 1, 3, 0,175, 1, 80, 6, + 4, 0,222, 10, 4, 0, 27, 0,184, 1, 3, 0,175, 1, 80, 6, 4, 0,223, 10, 4, 0, 27, 0,185, 1, 3, 0,175, 1, 80, 6, + 4, 0,250, 0, 4, 0, 27, 0,186, 1, 1, 0, 0, 0, 19, 0,187, 1, 1, 0, 0, 0, 19, 0,188, 1, 4, 0, 7, 0, 5, 0, + 7, 0, 6, 0, 2, 0, 18, 0, 2, 0,224, 10,189, 1, 10, 0, 2, 0, 62, 4, 2, 0, 18, 0, 7, 0,217, 4, 7, 0,225, 10, + 7, 0,226, 10, 7, 0,227, 10, 7, 0,228, 10,188, 1,229, 10,188, 1,230, 10,188, 1,231, 10, 54, 0, 11, 0, 4, 0, 18, 0, + 4, 0, 63, 0, 4, 0,232, 10, 4, 0,233, 10, 19, 0,234, 10, 19, 0,235, 10,189, 1,236, 10, 7, 0,237, 10, 7, 0,238, 10, + 7, 0,239, 10, 7, 0,240, 10, 0, 1, 10, 0, 4, 0,255, 9, 4, 0,241, 10, 7, 0,242, 10, 7, 0,243, 10, 7, 0,244, 10, + 7, 0,245, 10, 7, 0, 9, 0, 7, 0, 11, 0, 4, 0, 87, 1, 4, 0, 1, 3,255, 0, 18, 0, 4, 0,132, 0, 4, 0,246, 10, + 4, 0,247, 10, 7, 0,248, 10, 4, 0,249, 10, 7, 0,250, 10, 7, 0,251, 10, 4, 0,252, 10, 7, 0,253, 10, 4, 0,254, 10, + 7, 0,255, 10, 0, 1, 0, 11, 7, 0, 1, 11, 7, 0, 2, 11, 7, 0, 3, 11, 7, 0, 4, 11, 4, 0, 5, 11, 4, 0, 27, 0, +190, 1, 4, 0, 42, 0,244, 2, 7, 0, 6, 11, 7, 0,178, 1, 7, 0, 27, 0,213, 0, 34, 0, 22, 0, 32, 0,190, 1, 7, 11, + 54, 0,229, 10, 46, 0, 8, 11, 52, 0, 9, 11, 25, 0,154, 0, 0, 0, 10, 11, 7, 0, 11, 11, 2, 0,110, 6, 2, 0, 12, 11, + 4, 0,108, 0, 4, 0, 18, 0, 7, 0, 13, 11, 4, 0, 90, 2, 4, 0, 14, 11, 7, 0, 15, 11, 7, 0, 16, 11, 7, 0, 17, 11, + 7, 0,178, 1, 4, 0, 18, 11, 7, 0, 19, 11, 0, 0, 20, 11, 0, 0, 21, 11, 0, 0, 22, 11, 0, 0, 23, 11, 7, 0, 24, 11, + 7, 0, 25, 11, 7, 0, 26, 11, 7, 0, 1, 3, 7, 0, 27, 11, 4, 0, 28, 11, 7, 0,242, 5, 7, 0, 29, 11, 7, 0, 30, 11, +191, 1, 10, 0, 4, 0, 16, 0, 4, 0,128, 0, 4, 0, 18, 0, 4, 0, 15, 4, 4, 0, 31, 11, 4, 0, 32, 11, 4, 0, 33, 11, + 4, 0, 70, 0, 0, 0, 19, 0, 11, 0, 2, 0,192, 1, 1, 0, 0, 0, 71, 7, 95, 0, 8, 0,191, 1, 34, 11, 4, 0, 35, 11, + 4, 0, 36, 11, 4, 0, 37, 11, 4, 0, 38, 11, 4, 0, 30, 0, 11, 0, 39, 11,192, 1, 40, 11,193, 1, 5, 0, 7, 0,165, 2, + 7, 0,240, 2, 7, 0, 40, 2, 2, 0,147, 2, 2, 0, 27, 0,194, 1, 5, 0, 7, 0,165, 2, 7, 0,159, 4, 7, 0, 41, 11, + 7, 0, 42, 11, 7, 0,240, 2,195, 1, 5, 0, 27, 0, 43, 11,196, 1, 21, 0, 7, 0, 76, 6, 7, 0, 44, 11, 7, 0, 56, 0, +197, 1, 3, 0, 7, 0, 45, 11, 4, 0, 46, 11, 4, 0, 47, 11,198, 1, 7, 0, 4, 0, 48, 11, 4, 0, 49, 11, 4, 0, 50, 11, + 7, 0, 51, 11, 7, 0, 52, 11, 7, 0, 53, 11, 7, 0, 56, 0,199, 1, 8, 0,199, 1, 0, 0,199, 1, 1, 0, 27, 0, 44, 0, + 4, 0, 3, 1, 2, 0, 18, 0, 2, 0, 87, 1, 7, 0,240, 2, 7, 0, 57, 9,200, 1, 7, 0,200, 1, 0, 0,200, 1, 1, 0, + 27, 0, 44, 0, 2, 0,225, 2, 2, 0, 18, 0, 2, 0, 14, 2, 2, 0, 56, 0,201, 1, 17, 0,194, 1, 8, 4,194, 1, 54, 11, +193, 1, 55, 11,194, 1, 40, 9,195, 1, 56, 11, 4, 0, 82, 0, 7, 0,240, 2, 7, 0, 7, 3, 7, 0, 57, 11, 4, 0, 48, 11, + 4, 0, 58, 11, 7, 0, 52, 11, 7, 0, 53, 11, 7, 0,108, 0, 4, 0, 59, 11, 2, 0, 18, 0, 2, 0, 60, 11,202, 1, 15, 0, + 7, 0,255, 0, 7, 0, 61, 11, 7, 0, 45, 11, 7, 0, 62, 11, 7, 0, 63, 11, 7, 0, 64, 11, 7, 0, 65, 11, 7, 0, 66, 11, + 7, 0, 67, 11, 7, 0, 68, 11, 7, 0, 69, 11, 7, 0, 70, 11, 7, 0, 71, 11, 4, 0, 18, 0, 4, 0, 72, 11,203, 1,128, 0, + 22, 0, 32, 0, 34, 0, 75, 0,204, 1, 73, 11,202, 1, 74, 11,187, 0,154, 4, 4, 0, 18, 0, 4, 0, 56, 0, 2, 0, 16, 0, + 2, 0, 59, 10, 2, 0, 75, 11, 2, 0,122, 1, 2, 0, 76, 11, 2, 0,232, 3, 2, 0, 77, 11, 2, 0, 78, 11, 2, 0, 79, 11, + 2, 0, 80, 11, 2, 0, 81, 11, 2, 0, 82, 11, 2, 0, 83, 11, 2, 0, 84, 11, 2, 0, 85, 11, 2, 0,226, 5, 2, 0, 86, 11, + 2, 0, 87, 11, 2, 0, 88, 11, 2, 0, 89, 11, 2, 0, 90, 11, 2, 0, 29, 2, 2, 0, 33, 9, 2, 0, 8, 9, 2, 0, 91, 11, + 2, 0, 92, 11, 2, 0, 25, 4, 2, 0, 26, 4, 2, 0, 93, 11, 2, 0, 94, 11, 2, 0, 95, 11, 2, 0, 96, 11, 7, 0, 97, 11, + 7, 0, 98, 11, 7, 0, 99, 11, 7, 0,100, 11, 7, 0,101, 11, 7, 0,102, 11, 7, 0,103, 11, 2, 0,156, 5, 2, 0,104, 11, + 7, 0,105, 11, 7, 0,106, 11, 7, 0,107, 11, 7, 0, 15, 9, 7, 0, 91, 0, 7, 0, 7, 3, 7, 0, 21, 9, 7, 0,108, 11, + 7, 0,109, 11, 7, 0,110, 11, 7, 0,111, 11, 7, 0,112, 11, 7, 0,113, 11, 4, 0, 16, 9, 4, 0, 14, 9, 4, 0,114, 11, + 4, 0,115, 11, 2, 0,116, 11, 2, 0,117, 11, 7, 0, 17, 9, 7, 0, 18, 9, 7, 0, 19, 9, 7, 0,118, 11, 7, 0,119, 11, + 7, 0,120, 11, 7, 0,121, 11, 7, 0,122, 11, 7, 0,123, 11, 7, 0,124, 11, 7, 0,125, 11, 7, 0,126, 11, 7, 0,222, 3, + 7, 0,108, 0, 7, 0,127, 11, 7, 0,128, 11, 7, 0,129, 11, 7, 0,130, 11, 7, 0,214, 0, 7, 0,131, 11, 4, 0,132, 11, + 4, 0,133, 11, 7, 0,134, 11, 7, 0,135, 11, 7, 0,136, 11, 7, 0,137, 11, 7, 0,138, 11, 7, 0,213, 0, 7, 0,139, 11, + 7, 0, 52, 4, 7, 0, 50, 4, 7, 0, 51, 4, 7, 0,140, 11, 7, 0,141, 11, 7, 0,142, 11, 7, 0,143, 11, 7, 0,144, 11, + 7, 0,145, 11, 7, 0,146, 11, 7, 0,147, 11, 7, 0,148, 11, 7, 0,149, 11, 7, 0,150, 11, 7, 0,151, 11, 7, 0,152, 11, + 7, 0,153, 11, 7, 0,154, 11, 7, 0,155, 11, 7, 0,156, 11, 7, 0,157, 11, 4, 0,158, 11, 4, 0,159, 11, 46, 0,140, 1, + 64, 0, 0, 4, 14, 0,160, 11, 64, 0,161, 11, 27, 0,162, 11, 27, 0,163, 11, 31, 0, 80, 0,182, 0, 73, 1,182, 0,164, 11, +150, 0, 52, 0,150, 0, 0, 0,150, 0, 1, 0,203, 1,165, 11,201, 1,166, 11,198, 1,218, 9,190, 0, 80, 4, 11, 0, 81, 4, +205, 1,167, 11,205, 1,168, 11, 14, 0,169, 11, 14, 0,170, 11,135, 0,171, 11,143, 0,172, 11,143, 0,173, 11, 27, 0,174, 11, + 27, 0,175, 11, 27, 0, 38, 0, 14, 0, 26, 10, 0, 0, 19, 0, 7, 0,244, 0, 7, 0, 36, 3, 7, 0,176, 11, 7, 0,177, 11, + 4, 0,214, 2, 4, 0,178, 11, 4, 0, 18, 0, 4, 0, 16, 9, 4, 0,179, 11, 4, 0,180, 11, 4, 0,181, 11, 4, 0,182, 11, + 2, 0,251, 0, 2, 0,183, 11, 2, 0,184, 11, 2, 0,185, 11, 0, 0,186, 11, 2, 0,187, 11, 2, 0,188, 11, 2, 0,189, 11, + 11, 0,190, 11,139, 0,153, 4, 14, 0, 21, 3, 14, 0,191, 11,197, 1,192, 11, 4, 0,193, 11, 4, 0,194, 11,206, 1,195, 11, +141, 0, 33, 3,207, 1,196, 11, 7, 0,197, 11, 7, 0,198, 11, 7, 0,199, 11,137, 0, 38, 0,208, 1,152, 9, 7, 0,123, 4, + 7, 0,200, 11, 7, 0,201, 11, 7, 0, 76, 6, 7, 0,236, 3, 7, 0,222, 3, 7, 0,202, 11, 7, 0, 92, 2, 7, 0,203, 11, + 7, 0,204, 11, 7, 0,205, 11, 7, 0,206, 11, 7, 0,207, 11, 7, 0,208, 11, 7, 0,124, 4, 7, 0,209, 11, 7, 0,210, 11, + 7, 0,211, 11, 7, 0,125, 4, 7, 0,121, 4, 7, 0,122, 4, 7, 0,212, 11, 7, 0,213, 11, 7, 0,214, 11, 4, 0,215, 11, + 4, 0, 92, 0, 4, 0,216, 11, 4, 0,217, 11, 2, 0,218, 11, 2, 0,219, 11, 2, 0,220, 11, 2, 0,221, 11, 2, 0,222, 11, + 2, 0,223, 11, 2, 0,224, 11, 2, 0, 27, 0,187, 0,154, 4,138, 0, 11, 0,208, 1,225, 11, 7, 0,226, 11, 7, 0,227, 11, + 7, 0,251, 1, 7, 0,228, 11, 7, 0,229, 11, 7, 0,230, 11, 4, 0, 92, 0, 2, 0,231, 11, 2, 0,232, 11, 64, 0,250, 1, +209, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 7, 0,233, 11,210, 1, 6, 0,210, 1, 0, 0,210, 1, 1, 0, +209, 1,194, 9, 4, 0, 1, 1, 2, 0,234, 11, 2, 0, 18, 0,211, 1, 5, 0,211, 1, 0, 0,211, 1, 1, 0, 14, 0,235, 11, + 4, 0,236, 11, 4, 0, 18, 0,212, 1, 9, 0,212, 1, 0, 0,212, 1, 1, 0, 14, 0,127, 0,211, 1,237, 11, 4, 0, 18, 0, + 2, 0,234, 11, 2, 0,238, 11, 7, 0, 93, 0, 0, 0,239, 11,178, 0, 6, 0, 22, 0, 32, 0, 14, 0,125, 5, 4, 0, 18, 0, + 2, 0,240, 11, 2, 0,241, 11, 11, 0,242, 11,213, 1, 6, 0, 14, 0,243, 11, 4, 0,244, 11, 4, 0,245, 11, 4, 0, 18, 0, + 4, 0, 27, 0,237, 0,246, 11,214, 1, 19, 0, 22, 0, 32, 0,215, 1,247, 11,215, 1,248, 11, 14, 0,249, 11, 4, 0,250, 11, + 2, 0,251, 11, 2, 0,252, 11, 14, 0,253, 11, 14, 0,254, 11,213, 1,255, 11, 14, 0, 0, 12, 14, 0, 1, 12, 14, 0, 2, 12, + 14, 0, 3, 12,216, 1, 4, 12,216, 1, 5, 12,216, 1, 6, 12, 14, 0, 7, 12,237, 0, 8, 12,215, 1, 32, 0,215, 1, 0, 0, +215, 1, 1, 0, 11, 0, 9, 12, 4, 0,120, 8, 2, 0, 10, 12, 2, 0, 27, 0, 27, 1, 11, 12, 27, 1, 12, 12, 0, 0, 13, 12, + 2, 0, 14, 12, 2, 0, 15, 12, 2, 0,142, 8, 2, 0,143, 8, 2, 0, 16, 12, 2, 0, 17, 12, 2, 0, 15, 4, 2, 0, 54, 7, + 2, 0, 18, 12, 2, 0, 19, 12, 2, 0, 20, 12, 2, 0, 30, 0,217, 1, 21, 12,218, 1, 22, 12,219, 1, 23, 12, 4, 0, 24, 12, + 4, 0, 25, 12, 11, 0, 26, 12, 14, 0,254, 11, 14, 0,162, 8, 14, 0, 27, 12, 14, 0, 28, 12, 14, 0, 29, 12,220, 1, 18, 0, +220, 1, 0, 0,220, 1, 1, 0, 0, 0, 30, 12, 21, 0, 31, 0, 0, 0, 31, 12, 2, 0, 32, 12, 2, 0, 16, 0, 2, 0, 14, 0, + 2, 0, 33, 12, 2, 0, 34, 12, 2, 0, 35, 12, 2, 0, 36, 12, 2, 0, 37, 12, 2, 0, 18, 0, 2, 0, 38, 12, 2, 0, 32, 0, + 2, 0, 27, 0,221, 1, 39, 12,222, 1, 4, 0,222, 1, 0, 0,222, 1, 1, 0,220, 1, 40, 12,220, 1, 41, 12,223, 1, 11, 0, +223, 1, 0, 0,223, 1, 1, 0, 14, 0, 42, 12, 14, 0, 43, 12, 0, 0, 30, 12, 2, 0, 44, 12, 2, 0, 45, 12, 2, 0, 18, 0, + 2, 0, 46, 12, 4, 0, 47, 12, 11, 0, 48, 12,216, 1, 7, 0,216, 1, 0, 0,216, 1, 1, 0, 0, 0, 30, 12, 0, 0, 49, 12, + 14, 0, 60, 8, 4, 0, 50, 12, 4, 0, 18, 0,249, 0, 14, 0,249, 0, 0, 0,249, 0, 1, 0, 0, 0, 30, 12, 21, 0, 31, 0, +224, 1,136, 8, 11, 0, 51, 12, 11, 0, 52, 12,221, 1, 39, 12,213, 1, 53, 12, 14, 0, 54, 12,249, 0, 55, 12, 32, 1,240, 6, + 2, 0, 18, 0, 2, 0, 86, 1,225, 1, 12, 0,225, 1, 0, 0,225, 1, 1, 0, 11, 0, 2, 0, 11, 0, 56, 12, 0, 0, 19, 0, + 2, 0, 16, 0, 2, 0, 18, 0, 7, 0,140, 9, 7, 0,129, 0, 7, 0,132, 4, 7, 0, 90, 9, 7, 0, 82, 10,226, 1, 5, 0, + 7, 0, 57, 12, 4, 0, 58, 12, 4, 0, 59, 12, 4, 0, 87, 1, 4, 0, 18, 0,227, 1, 6, 0, 7, 0, 60, 12, 7, 0, 61, 12, + 7, 0, 62, 12, 7, 0, 63, 12, 4, 0, 16, 0, 4, 0, 18, 0,228, 1, 5, 0, 7, 0,118, 9, 7, 0,119, 9, 7, 0,240, 2, + 2, 0, 43, 2, 2, 0, 44, 2,229, 1, 5, 0,228, 1, 2, 0, 4, 0, 53, 0, 7, 0, 64, 12, 7, 0,118, 9, 7, 0,119, 9, +230, 1, 4, 0, 2, 0, 65, 12, 2, 0, 66, 12, 2, 0, 67, 12, 2, 0, 68, 12,231, 1, 2, 0, 37, 0, 38, 7, 21, 0,158, 9, +232, 1, 3, 0, 19, 0, 69, 12, 4, 0, 18, 0, 4, 0, 27, 0,233, 1, 6, 0, 7, 0,108, 0, 7, 0,209, 2, 7, 0, 70, 12, + 7, 0, 27, 0, 2, 0,250, 0, 2, 0, 71, 12,234, 1, 5, 0, 7, 0, 72, 12, 7, 0,128, 0, 7, 0,195, 9, 7, 0,196, 9, + 4, 0, 18, 0,235, 1, 6, 0, 22, 0, 43, 7, 0, 0, 73, 12, 0, 0, 74, 12, 2, 0, 75, 12, 2, 0, 18, 0, 4, 0, 76, 12, +236, 1, 7, 0,236, 1, 0, 0,236, 1, 1, 0, 0, 0, 19, 0,235, 1, 77, 12, 2, 0, 78, 12, 2, 0, 16, 0, 7, 0, 60, 0, +237, 1, 7, 0, 14, 0, 79, 12, 0, 0, 80, 12, 11, 0, 81, 12, 7, 0, 60, 0, 7, 0,140, 9, 4, 0, 16, 0, 4, 0, 18, 0, +238, 1, 3, 0, 7, 0, 82, 12, 4, 0, 18, 0, 4, 0, 27, 0,239, 1, 15, 0,239, 1, 0, 0,239, 1, 1, 0,106, 1, 13, 10, +237, 1, 61, 0, 14, 0,188, 3, 30, 0, 49, 0,238, 1, 83, 12, 4, 0, 53, 0, 7, 0, 60, 0, 2, 0, 18, 0, 2, 0, 22, 1, + 4, 0, 84, 12, 0, 0, 73, 12, 4, 0, 85, 12, 7, 0, 86, 12,240, 1, 2, 0, 0, 0, 87, 12, 0, 0, 88, 12,241, 1, 4, 0, +241, 1, 0, 0,241, 1, 1, 0,176, 0, 70, 3, 14, 0, 89, 12,242, 1, 25, 0,242, 1, 0, 0,242, 1, 1, 0, 14, 0, 90, 12, +176, 0, 88, 9,241, 1, 91, 12, 14, 0, 92, 12, 14, 0,188, 3, 0, 0, 19, 0, 7, 0,140, 9, 7, 0, 93, 12, 7, 0, 90, 0, + 7, 0, 91, 0, 7, 0, 78, 10, 7, 0, 79, 10, 7, 0,253, 2, 7, 0,148, 3, 7, 0, 90, 9, 7, 0, 82, 10, 2, 0, 94, 12, + 2, 0, 95, 12, 2, 0, 67, 0, 2, 0, 16, 0, 11, 0, 96, 12, 4, 0, 18, 0, 4, 0, 30, 0,243, 1, 6, 0,243, 1, 0, 0, +243, 1, 1, 0, 14, 0, 90, 12, 4, 0, 18, 0, 4, 0, 14, 2, 0, 0, 19, 0,244, 1, 11, 0,244, 1, 0, 0,244, 1, 1, 0, + 22, 0, 43, 7, 0, 0, 97, 12, 4, 0, 76, 12, 2, 0, 98, 12, 2, 0, 27, 0, 0, 0, 73, 12, 4, 0, 84, 12, 2, 0, 18, 0, + 2, 0, 99, 12,245, 1, 10, 0,245, 1, 0, 0,245, 1, 1, 0, 14, 0,100, 12, 0, 0, 30, 12, 0, 0, 19, 0, 0, 0,101, 12, + 0, 0,102, 12, 2, 0, 18, 0, 2, 0, 99, 12, 4, 0,103, 12,246, 1, 5, 0,246, 1, 0, 0,246, 1, 1, 0, 0, 0, 73, 12, + 4, 0, 84, 12, 7, 0,230, 2, 34, 0, 12, 0,176, 0,179, 3,176, 0,104, 12,241, 1, 91, 12, 14, 0,105, 12,242, 1,106, 12, + 14, 0,107, 12, 14, 0,108, 12, 4, 0, 18, 0, 4, 0,251, 0, 2, 0,109, 12, 2, 0,110, 12, 7, 0,111, 12,247, 1, 2, 0, + 22, 0, 32, 0, 34, 0, 75, 0,248, 1, 5, 0,248, 1, 0, 0,248, 1, 1, 0, 4, 0, 16, 0, 4, 0, 18, 0, 0, 0,174, 5, +249, 1, 6, 0,248, 1,112, 12, 27, 0, 44, 0, 4, 0,113, 12, 7, 0,114, 12, 4, 0,115, 12, 4, 0,255, 9,250, 1, 3, 0, +248, 1,112, 12, 4, 0,113, 12, 7, 0,116, 12,251, 1, 8, 0,248, 1,112, 12, 27, 0, 44, 0, 7, 0, 77, 1, 7, 0,117, 12, + 7, 0, 36, 3, 7, 0,151, 9, 4, 0,113, 12, 4, 0,118, 12,252, 1, 5, 0,248, 1,112, 12, 7, 0,119, 12, 7, 0,176, 2, + 7, 0, 3, 3, 7, 0, 56, 0,253, 1, 3, 0,248, 1,112, 12, 7, 0,151, 9, 7, 0,120, 12,196, 1, 4, 0, 7, 0,121, 12, + 7, 0,128, 11, 2, 0,122, 12, 2, 0, 87, 1,254, 1, 14, 0,254, 1, 0, 0,254, 1, 1, 0, 14, 0,123, 12, 14, 0,124, 12, + 14, 0,125, 12, 0, 0,174, 5, 4, 0, 32, 0, 4, 0, 18, 0, 4, 0,126, 12, 7, 0,127, 12, 4, 0,115, 12, 4, 0,255, 9, + 7, 0, 84, 4, 7, 0, 5, 3,204, 1, 23, 0, 4, 0,113, 12, 4, 0,128, 12, 7, 0,129, 12, 7, 0, 1, 3, 7, 0,130, 12, + 7, 0,231, 8, 7, 0,121, 12, 7, 0,131, 12, 7, 0,209, 2, 7, 0,248, 10, 7, 0,217, 4, 7, 0,132, 12, 7, 0,133, 12, + 7, 0,134, 12, 7, 0,135, 12, 7, 0,136, 12, 7, 0,137, 12, 7, 0,138, 12, 7, 0,139, 12, 7, 0,140, 12, 7, 0,141, 12, + 7, 0,142, 12, 14, 0,143, 12,123, 0, 40, 0,122, 0,144, 12,255, 1, 74, 11, 64, 0,145, 12, 64, 0,161, 11, 64, 0,146, 12, + 0, 2,147, 12, 43, 0,169, 0, 43, 0,148, 12, 43, 0,149, 12, 7, 0,150, 12, 7, 0,151, 12, 7, 0,152, 12, 7, 0,153, 12, + 7, 0,154, 12, 7, 0,119, 8, 7, 0,155, 12, 7, 0,178, 1, 7, 0,156, 12, 4, 0,157, 12, 4, 0,158, 12, 4, 0,159, 12, + 4, 0, 92, 0, 4, 0, 27, 0, 4, 0,160, 12, 2, 0,161, 12, 2, 0,162, 12, 4, 0,163, 12, 7, 0,209, 2, 4, 0,164, 12, + 7, 0,165, 12, 4, 0,166, 12, 4, 0,167, 12, 4, 0,168, 12,139, 0,169, 12, 14, 0,170, 12,187, 0,154, 4, 4, 0,171, 12, + 7, 0,172, 12, 7, 0,173, 12, 4, 0, 30, 0,124, 0, 12, 0,122, 0,144, 12,150, 0, 56, 3, 7, 0,143, 1, 7, 0,119, 8, + 7, 0,174, 12, 7, 0,175, 12, 7, 0,176, 12, 2, 0,177, 12, 2, 0,178, 12, 2, 0,179, 12, 2, 0, 16, 0, 4, 0, 92, 0, +125, 0, 13, 0,122, 0,144, 12,141, 0, 33, 3,143, 0, 35, 3, 7, 0,194, 9, 7, 0,180, 12, 7, 0,181, 12, 7, 0, 79, 1, + 7, 0,182, 12, 4, 0, 35, 10, 4, 0, 29, 3, 2, 0, 16, 0, 2, 0, 27, 0, 4, 0, 30, 0, 1, 2, 15, 0, 22, 0, 32, 0, + 34, 0, 75, 0, 46, 1,229, 8, 7, 0,183, 12, 7, 0,184, 12, 7, 0,185, 12, 7, 0,186, 12, 7, 0,150, 9, 7, 0,187, 12, + 7, 0,188, 12, 7, 0,189, 12, 7, 0, 84, 4, 7, 0,231, 8, 2, 0, 18, 0, 2, 0,114, 9,231, 0, 3, 0, 4, 0,126, 0, + 2, 0,216, 6, 2, 0,190, 12, 2, 2, 5, 0, 0, 0,195, 8, 2, 0,196, 8, 2, 0, 74, 5, 2, 0,191, 12, 2, 0,192, 12, +229, 0, 16, 0, 22, 0, 32, 0, 34, 0, 75, 0, 0, 0, 35, 0, 4, 0,143, 0, 4, 0,144, 0, 4, 0,193, 12, 7, 0,162, 0, + 7, 0,163, 0, 44, 0,138, 0, 3, 2,152, 9,178, 0,182, 3, 4, 2,194, 12, 11, 0,195, 12, 2, 2,196, 12, 4, 0, 18, 0, + 4, 0, 22, 0, 13, 1, 10, 0, 4, 0,132, 0, 4, 0,197, 12, 52, 0,198, 12, 7, 0,199, 12, 2, 0,200, 12, 0, 0,181, 2, + 4, 0,126, 0, 5, 2,175, 3, 6, 2,201, 12, 7, 0,202, 12, 7, 2, 3, 0, 4, 0,126, 0, 7, 0,203, 12, 7, 0, 79, 1, + 8, 2, 11, 0, 11, 0,204, 12, 7, 0,205, 12, 7, 0,206, 12, 7, 0, 27, 0, 7, 0,207, 12, 2, 0,208, 12, 2, 0, 67, 0, + 7, 0,209, 12, 7, 0,210, 12, 7, 0,211, 12, 7, 0,212, 12, 6, 2, 3, 0, 7, 0,213, 12, 4, 0,126, 0, 4, 0, 18, 0, + 5, 2, 24, 0, 5, 2, 0, 0, 5, 2, 1, 0, 0, 0, 19, 0, 7, 0,214, 12, 7, 0,215, 12, 7, 0,216, 12, 7, 0,217, 12, + 7, 0, 6, 11, 4, 0,218, 12, 4, 0,219, 12, 6, 2,220, 12, 7, 0,221, 12, 7, 0,203, 12, 4, 0, 18, 0, 4, 0,222, 12, + 4, 0,223, 12, 7, 0, 86, 12, 2, 0,224, 12, 2, 0,227, 3, 2, 0,225, 12, 2, 0,226, 12, 2, 0,227, 12, 2, 0, 30, 0, + 7, 0,228, 12, 9, 2, 22, 0, 4, 0, 18, 0, 2, 0,229, 12, 2, 0,230, 12, 7, 0,231, 12, 2, 0,232, 12, 2, 0,233, 12, + 2, 0,234, 12, 2, 0,235, 12, 2, 0,236, 12, 2, 0,237, 12, 2, 0,238, 12, 2, 0, 3, 3, 4, 0,239, 12, 4, 0,240, 12, + 2, 0,241, 12, 2, 0, 30, 0, 7, 0, 94, 1, 4, 0,242, 12, 4, 0,243, 12, 7, 0,244, 12, 7, 0,245, 12, 4, 0,247, 1, + 10, 2, 12, 0, 4, 0, 18, 0, 4, 0,246, 12, 4, 0,247, 12, 7, 0,248, 12, 5, 2,249, 12, 7, 0,250, 12, 7, 0,251, 12, + 7, 0,252, 12, 4, 0,190, 1, 4, 0,132, 0, 7, 0,148, 3, 52, 0,253, 12, 11, 2, 5, 0, 4, 0, 18, 0, 7, 0,203, 12, + 4, 0,254, 12, 4, 0,255, 12, 7, 2, 0, 13, 12, 2, 7, 0, 12, 2, 0, 0, 12, 2, 1, 0, 0, 0, 19, 0, 4, 0, 18, 0, + 7, 0,148, 3, 14, 0, 1, 13, 11, 2, 2, 13, 13, 2, 1, 0, 0, 0, 3, 13, 4, 2, 10, 0, 9, 2, 4, 13, 8, 2, 5, 13, + 14, 0, 1, 13, 11, 2, 2, 13, 10, 2, 6, 13, 5, 2, 7, 13, 14, 0, 8, 13, 4, 0, 9, 13, 4, 0, 10, 13, 13, 2, 91, 6, + 14, 2, 48, 0, 14, 2, 0, 0, 14, 2, 1, 0,169, 0,145, 3, 15, 2, 2, 0, 64, 0, 11, 13,187, 0,154, 4,139, 0,153, 4, + 14, 0, 21, 3, 4, 0, 12, 13, 0, 0, 19, 0, 2, 0,163, 10, 2, 0, 16, 0, 2, 0, 13, 13, 2, 0, 14, 13, 2, 0, 15, 13, + 2, 0, 16, 13, 2, 0, 17, 13, 2, 0, 18, 13, 4, 0, 92, 0, 4, 0,186, 3, 4, 0, 19, 13, 4, 0, 20, 13, 4, 0,195, 9, + 4, 0,196, 9, 4, 0, 27, 0, 7, 0, 21, 13, 47, 0, 22, 13, 0, 0, 23, 13, 4, 0, 24, 13, 4, 0,163, 12, 7, 0, 25, 13, + 7, 0, 26, 13, 7, 0, 27, 13, 7, 0, 28, 13, 7, 0, 29, 13, 7, 0, 30, 13, 7, 0, 31, 13, 7, 0, 32, 13, 7, 0, 33, 13, + 7, 0, 34, 13, 7, 0, 35, 13, 7, 0, 36, 13, 7, 0, 37, 13, 7, 0, 38, 13, 0, 0,202, 2, 0, 0, 39, 13, 0, 0, 40, 13, + 0, 0, 41, 13,169, 0, 7, 0,168, 0, 42, 13,143, 0, 35, 3, 14, 0, 43, 13, 2, 0, 44, 13, 2, 0, 92, 0, 4, 0, 27, 0, + 0, 0, 45, 13,170, 0, 24, 0,168, 0, 42, 13,143, 0, 35, 3,150, 0, 56, 3, 63, 0, 26, 2, 4, 0, 92, 0, 4, 0, 46, 13, + 7, 0,185, 0, 7, 0,186, 0, 7, 0,187, 0, 7, 0,178, 1, 7, 0, 47, 13, 7, 0, 48, 13, 7, 0, 49, 13, 7, 0, 50, 13, + 50, 0, 51, 13, 50, 0, 52, 13, 2, 0, 53, 13, 2, 0,223, 10, 2, 0, 54, 13, 2, 0, 27, 0, 7, 0, 55, 13, 7, 0, 56, 13, + 7, 0, 57, 13, 7, 0, 58, 13, 69, 78, 68, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; diff --git a/source/blender/editors/gpencil/gpencil_edit.c b/source/blender/editors/gpencil/gpencil_edit.c index d48cfaab63c..5f31a273d1a 100644 --- a/source/blender/editors/gpencil/gpencil_edit.c +++ b/source/blender/editors/gpencil/gpencil_edit.c @@ -534,7 +534,7 @@ static void gp_stroke_to_bezier (bContext *C, bGPDlayer *gpl, bGPDstroke *gps, C } /* must calculate handles or else we crash */ - calchandlesNurb(nu); + BKE_nurb_handles_calc(nu); /* add nurb to curve */ BLI_addtail(&cu->nurb, nu); diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c index c366de6fa43..303ca89b168 100644 --- a/source/blender/editors/gpencil/gpencil_paint.c +++ b/source/blender/editors/gpencil/gpencil_paint.c @@ -1611,7 +1611,7 @@ static int gpencil_draw_exec (bContext *C, wmOperator *op) /* loop over the stroke RNA elements recorded (i.e. progress of mouse movement), * setting the relevant values in context at each step, then applying */ - RNA_BEGIN(op->ptr, itemptr, "stroke") { + RNA_BEGIN (op->ptr, itemptr, "stroke") { float mousef[2]; //printf("\t\tGP - stroke elem\n"); diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h index a9affbcd342..391286a2a88 100644 --- a/source/blender/editors/include/ED_anim_api.h +++ b/source/blender/editors/include/ED_anim_api.h @@ -366,7 +366,7 @@ typedef struct bAnimChannelType { /* drawing */ /* get RGB color that is used to draw the majority of the backdrop */ - void (*get_backdrop_color)(bAnimContext *ac, bAnimListElem *ale, float *color); + void (*get_backdrop_color)(bAnimContext *ac, bAnimListElem *ale, float r_color[3]); /* draw backdrop strip for channel */ void (*draw_backdrop)(bAnimContext *ac, bAnimListElem *ale, float yminc, float ymaxc); /* get depth of indention (relative to the depth channel is nested at) */ diff --git a/source/blender/editors/include/ED_curve.h b/source/blender/editors/include/ED_curve.h index 50e43c46de5..73ff8e9304d 100644 --- a/source/blender/editors/include/ED_curve.h +++ b/source/blender/editors/include/ED_curve.h @@ -63,7 +63,7 @@ void load_editNurb (struct Object *obedit); void make_editNurb (struct Object *obedit); void free_editNurb (struct Object *obedit); -void free_curve_editNurb (struct Curve *cu); +void BKE_curve_editNurb_free (struct Curve *cu); int mouse_nurb (struct bContext *C, const int mval[2], int extend); diff --git a/source/blender/editors/include/ED_keyframing.h b/source/blender/editors/include/ED_keyframing.h index a70be6dfb54..afb14191797 100644 --- a/source/blender/editors/include/ED_keyframing.h +++ b/source/blender/editors/include/ED_keyframing.h @@ -323,7 +323,7 @@ int ED_autokeyframe_pchan(struct bContext *C, struct Scene *scene, struct Object #define ANIM_KS_SCALING_ID "Scaling" #define ANIM_KS_LOC_ROT_SCALE_ID "LocRotScale" #define ANIM_KS_AVAILABLE_ID "Available" -#define ANIM_KS_WHOLE_CHARACTER_ID "Whole Character" +#define ANIM_KS_WHOLE_CHARACTER_ID "WholeCharacter" #ifdef __cplusplus } diff --git a/source/blender/editors/include/ED_mesh.h b/source/blender/editors/include/ED_mesh.h index 10137a5a259..71d37d5c6ea 100644 --- a/source/blender/editors/include/ED_mesh.h +++ b/source/blender/editors/include/ED_mesh.h @@ -71,7 +71,7 @@ struct Material; struct Object; struct rcti; -intptr_t mesh_octree_table(struct Object *ob, struct BMEditMesh *em, float *co, char mode); +intptr_t mesh_octree_table(struct Object *ob, struct BMEditMesh *em, const float co[3], char mode); int mesh_mirrtopo_table(struct Object *ob, char mode); /* editmesh_utils.c */ @@ -114,12 +114,8 @@ void EDBM_selectmode_set(struct BMEditMesh *em); void EDBM_selectmode_convert(struct BMEditMesh *em, short oldmode, short selectmode); void undo_push_mesh(struct bContext *C, const char *name); -int EDBM_editselection_active_get(struct BMEditMesh *em, struct BMEditSelection *ese); -void EDBM_editselection_center(float *center, struct BMEditSelection *ese); -void EDBM_editselection_plane(struct BMEditMesh *em, float *plane, struct BMEditSelection *ese); -void EDBM_editselection_normal(float *normal, struct BMEditSelection *ese); int EDBM_vert_color_check(struct BMEditMesh *em); -void EDBM_editselection_validate(struct BMEditMesh *em); + void EDBM_mesh_hide(struct BMEditMesh *em, int swap); void EDBM_mesh_reveal(struct BMEditMesh *em); @@ -143,7 +139,7 @@ struct MTexPoly *EDBM_mtexpoly_active_get(struct BMEditMesh *em, struct BMFace * void EDBM_uv_vert_map_free(struct UvVertMap *vmap); struct UvMapVert *EDBM_uv_vert_map_at_index(struct UvVertMap *vmap, unsigned int v); -struct UvVertMap *EDBM_uv_vert_map_create(struct BMEditMesh *em, int selected, int do_face_idx_array, float *limit); +struct UvVertMap *EDBM_uv_vert_map_create(struct BMEditMesh *em, int selected, int do_face_idx_array, const float limit[2]); void EDBM_data_layer_add(struct BMEditMesh *em, struct CustomData *data, int type, const char *name); void EDBM_data_layer_free(struct BMEditMesh *em, struct CustomData *data, int type); @@ -162,7 +158,7 @@ extern unsigned int bm_vertoffs, bm_solidoffs, bm_wireoffs; int mouse_mesh(struct bContext *C, const int mval[2], short extend); -struct BMVert *editbmesh_get_x_mirror_vert(struct Object *ob, struct BMEditMesh *em, struct BMVert *eve, float *co, int index); +struct BMVert *editbmesh_get_x_mirror_vert(struct Object *ob, struct BMEditMesh *em, struct BMVert *eve, const float co[3], int index); int mesh_get_x_mirror_vert(struct Object *ob, int index); int *mesh_get_x_mirror_faces(struct Object *ob, struct BMEditMesh *em); @@ -192,7 +188,7 @@ int paintface_mouse_select(struct bContext *C, struct Object *ob, const int mval int do_paintface_box_select(struct ViewContext *vc, struct rcti *rect, int select, int extend); void paintface_deselect_all_visible(struct Object *ob, int action, short flush_flags); void paintface_select_linked(struct bContext *C, struct Object *ob, int mval[2], int mode); -int paintface_minmax(struct Object *ob, float *min, float *max); +int paintface_minmax(struct Object *ob, float r_min[3], float r_max[3]); void paintface_hide(struct Object *ob, const int unselected); void paintface_reveal(struct Object *ob); diff --git a/source/blender/editors/include/ED_render.h b/source/blender/editors/include/ED_render.h index 73bbd5ffef8..5392ef86ba7 100644 --- a/source/blender/editors/include/ED_render.h +++ b/source/blender/editors/include/ED_render.h @@ -37,6 +37,7 @@ struct MTex; struct Render; struct RenderInfo; struct Scene; +struct ScrArea; /* render_ops.c */ @@ -46,6 +47,7 @@ void ED_operatortypes_render(void); void ED_render_id_flush_update(struct Main *bmain, struct ID *id); void ED_render_engine_changed(struct Main *bmain); +void ED_render_engine_area_exit(struct ScrArea *sa); void ED_render_scene_update(struct Main *bmain, struct Scene *scene, int updated); /* render_preview.c */ diff --git a/source/blender/editors/include/ED_uvedit.h b/source/blender/editors/include/ED_uvedit.h index dfdbb1969cf..2427ed1a333 100644 --- a/source/blender/editors/include/ED_uvedit.h +++ b/source/blender/editors/include/ED_uvedit.h @@ -51,27 +51,28 @@ void ED_operatortypes_uvedit(void); void ED_keymap_uvedit(struct wmKeyConfig *keyconf); void ED_uvedit_assign_image(struct Main *bmain, struct Scene *scene, struct Object *obedit, struct Image *ima, struct Image *previma); -int ED_uvedit_minmax(struct Scene *scene, struct Image *ima, struct Object *obedit, float *min, float *max); +int ED_uvedit_minmax(struct Scene *scene, struct Image *ima, struct Object *obedit, float min[2], float max[2]); -int ED_object_get_active_image(struct Object *ob, int mat_nr, struct Image **ima, struct ImageUser **iuser, struct bNode **node); +int ED_object_get_active_image(struct Object *ob, int mat_nr, struct Image **ima, struct ImageUser **iuser, struct bNode **node); void ED_object_assign_active_image(struct Main *bmain, struct Object *ob, int mat_nr, struct Image *ima); int ED_uvedit_test(struct Object *obedit); /* visibility and selection */ -int uvedit_face_visible(struct Scene *scene, struct Image *ima, struct BMFace *efa, struct MTexPoly *tf); -int uvedit_face_selected(struct Scene *scene, struct BMEditMesh *em, struct BMFace *efa); -int uvedit_edge_selected(struct BMEditMesh *em, struct Scene *scene, struct BMLoop *l); -int uvedit_uv_selected(struct BMEditMesh *em, struct Scene *scene, struct BMLoop *l); +int uvedit_face_visible_test(struct Scene *scene, struct Image *ima, struct BMFace *efa, struct MTexPoly *tf); +int uvedit_face_select_test(struct Scene *scene, struct BMEditMesh *em, struct BMFace *efa); +int uvedit_edge_select_test(struct BMEditMesh *em, struct Scene *scene, struct BMLoop *l); +int uvedit_uv_select_test(struct BMEditMesh *em, struct Scene *scene, struct BMLoop *l); -int uvedit_face_select(struct Scene *scene, struct BMEditMesh *em, struct BMFace *efa); -int uvedit_face_deselect(struct Scene *scene, struct BMEditMesh *em, struct BMFace *efa); -void uvedit_edge_select(struct BMEditMesh *em, struct Scene *scene, struct BMLoop *l); -void uvedit_edge_deselect(struct BMEditMesh *em, struct Scene *scene, struct BMLoop *l); -void uvedit_uv_select(struct BMEditMesh *em, struct Scene *scene, struct BMLoop *l); -void uvedit_uv_deselect(struct BMEditMesh *em, struct Scene *scene, struct BMLoop *l); +int uvedit_face_select_enable(struct Scene *scene, struct BMEditMesh *em, struct BMFace *efa, const short do_history); +int uvedit_face_select_disable(struct Scene *scene, struct BMEditMesh *em, struct BMFace *efa); +void uvedit_edge_select_enable(struct BMEditMesh *em, struct Scene *scene, struct BMLoop *l, const short do_history); +void uvedit_edge_select_disable(struct BMEditMesh *em, struct Scene *scene, struct BMLoop *l); +void uvedit_uv_select_enable(struct BMEditMesh *em, struct Scene *scene, struct BMLoop *l, const short do_history); +void uvedit_uv_select_disable(struct BMEditMesh *em, struct Scene *scene, struct BMLoop *l); -int ED_uvedit_nearest_uv(struct Scene *scene, struct Object *obedit, struct Image *ima, float co[2], float uv[2]); +int ED_uvedit_nearest_uv(struct Scene *scene, struct Object *obedit, struct Image *ima, + const float co[2], float r_uv[2]); /* uvedit_unwrap_ops.c */ void ED_uvedit_live_unwrap_begin(struct Scene *scene, struct Object *obedit); diff --git a/source/blender/editors/include/ED_view3d.h b/source/blender/editors/include/ED_view3d.h index f886c01039e..4b614085f8e 100644 --- a/source/blender/editors/include/ED_view3d.h +++ b/source/blender/editors/include/ED_view3d.h @@ -269,8 +269,6 @@ void view3d_get_transformation(const struct ARegion *ar, struct RegionView3D *rv /* XXX should move to BLI_math */ int edge_inside_circle(short centx, short centy, short rad, short x1, short y1, short x2, short y2); -int lasso_inside(int mcords[][2], short moves, int sx, int sy); -int lasso_inside_edge(int mcords[][2], short moves, int x0, int y0, int x1, int y1); /* get 3d region from context, also if mouse is in header or toolbar */ struct RegionView3D *ED_view3d_context_rv3d(struct bContext *C); diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index cdb2472706c..d262c650e1c 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -322,10 +322,22 @@ uiPopupMenu *uiPupMenuBegin(struct bContext *C, const char *title, int icon); void uiPupMenuEnd(struct bContext *C, struct uiPopupMenu *head); struct uiLayout *uiPupMenuLayout(uiPopupMenu *head); -void uiPupMenuOkee(struct bContext *C, const char *opname, const char *str, ...); +void uiPupMenuOkee(struct bContext *C, const char *opname, const char *str, ...) +#ifdef __GNUC__ +__attribute__ ((format (printf, 3, 4))) +#endif +; void uiPupMenuSaveOver(struct bContext *C, struct wmOperator *op, const char *filename); -void uiPupMenuNotice(struct bContext *C, const char *str, ...); -void uiPupMenuError(struct bContext *C, const char *str, ...); +void uiPupMenuNotice(struct bContext *C, const char *str, ...) +#ifdef __GNUC__ +__attribute__ ((format (printf, 2, 3))) +#endif +; +void uiPupMenuError(struct bContext *C, const char *str, ...) +#ifdef __GNUC__ +__attribute__ ((format (printf, 2, 3))) +#endif +; void uiPupMenuReports(struct bContext *C, struct ReportList *reports); void uiPupMenuInvoke(struct bContext *C, const char *idname); /* popup registered menu */ diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index a7ff1565c3d..42005c0888c 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -781,9 +781,8 @@ static void ui_add_smart_controller(bContext *C, uiBut *from, uiBut *to) act_to = (bActuator *)(to->poin); /* (1) get the object */ - CTX_DATA_BEGIN(C, Object *, ob_iter, selected_editable_objects) { - for (sens_iter = ob_iter->sensors.first; sens_iter; sens_iter = sens_iter->next) - { + CTX_DATA_BEGIN (C, Object *, ob_iter, selected_editable_objects) { + for (sens_iter = ob_iter->sensors.first; sens_iter; sens_iter = sens_iter->next) { if (&(sens_iter->links) == sens_from_links) { ob = ob_iter; break; @@ -1564,8 +1563,7 @@ static int ui_textedit_copypaste(uiBut *but, uiHandleButtonData *data, int paste len = strlen(str); } - for (y = 0; y < strlen(buf); y++) - { + for (y = 0; y < strlen(buf); y++) { /* add contents of buffer */ if (len + 1 < data->maxlen) { for (x = data->maxlen; x > but->pos; x--) diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index 67e295503c2..31bc9497ab5 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -1265,7 +1265,7 @@ static void rna_search_cb(const struct bContext *C, void *arg_but, const char *s const int skip_filter = !but->changed; /* build a temporary list of relevant items first */ - RNA_PROP_BEGIN(&but->rnasearchpoin, itemptr, but->rnasearchprop) { + RNA_PROP_BEGIN (&but->rnasearchpoin, itemptr, but->rnasearchprop) { if (flag & PROP_ID_SELF_CHECK) if (itemptr.data == but->rnapoin.id.data) continue; @@ -1333,7 +1333,7 @@ static void search_id_collection(StructRNA *ptype, PointerRNA *ptr, PropertyRNA *prop = NULL; - RNA_STRUCT_BEGIN(ptr, iprop) { + RNA_STRUCT_BEGIN (ptr, iprop) { /* if it's a collection and has same pointer type, we've got it */ if (RNA_property_type(iprop) == PROP_COLLECTION) { srna = RNA_property_pointer_type(ptr, iprop); diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index d0f760d16fb..bafd85e9451 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -2362,7 +2362,7 @@ void uiTemplateList(uiLayout *layout, bContext *C, PointerRNA *ptr, const char * if (ptr->data && prop) { /* create list items */ - RNA_PROP_BEGIN(ptr, itemptr, prop) { + RNA_PROP_BEGIN (ptr, itemptr, prop) { /* create button */ if (!(i % 9)) row = uiLayoutRow(col, 0); @@ -2384,7 +2384,7 @@ void uiTemplateList(uiLayout *layout, bContext *C, PointerRNA *ptr, const char * if (ptr->data && prop) { /* create list items */ - RNA_PROP_BEGIN(ptr, itemptr, prop) { + RNA_PROP_BEGIN (ptr, itemptr, prop) { found = (activei == i); if (found) { @@ -2446,7 +2446,7 @@ void uiTemplateList(uiLayout *layout, bContext *C, PointerRNA *ptr, const char * if (ptr->data && prop) { /* create list items */ - RNA_PROP_BEGIN(ptr, itemptr, prop) { + RNA_PROP_BEGIN (ptr, itemptr, prop) { if (i >= pa->list_scroll && i < pa->list_scroll + items) list_item_row(C, col, ptr, &itemptr, i, rnaicon, activeptr, activeprop, prop_list); @@ -2703,7 +2703,7 @@ static void template_keymap_item_properties(uiLayout *layout, const char *title, flow = uiLayoutColumnFlow(layout, 2, 0); - RNA_STRUCT_BEGIN(ptr, prop) { + RNA_STRUCT_BEGIN (ptr, prop) { int flag = RNA_property_flag(prop); if (flag & PROP_HIDDEN) diff --git a/source/blender/editors/interface/interface_utils.c b/source/blender/editors/interface/interface_utils.c index c903040a6b9..9220491a60c 100644 --- a/source/blender/editors/interface/interface_utils.c +++ b/source/blender/editors/interface/interface_utils.c @@ -139,7 +139,7 @@ int uiDefAutoButsRNA(uiLayout *layout, PointerRNA *ptr, int (*check_prop)(Pointe assert(ELEM3(label_align, '\0', 'H', 'V')); - RNA_STRUCT_BEGIN(ptr, prop) { + RNA_STRUCT_BEGIN (ptr, prop) { flag = RNA_property_flag(prop); if (flag & PROP_HIDDEN || (check_prop && check_prop(ptr, prop) == FALSE)) continue; diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c index 4c6819f44b1..fe7a4e85418 100644 --- a/source/blender/editors/interface/interface_widgets.c +++ b/source/blender/editors/interface/interface_widgets.c @@ -1047,9 +1047,8 @@ static void ui_text_label_rightclip(uiFontStyle *fstyle, uiBut *but, rcti *rect) /* chop off the leading text, starting from the right */ while (but->strwidth > okwidth && cp2 > but->drawstr) { - int bytes = BLI_str_utf8_size(cp2); - if (bytes < 0) - bytes = 1; + char *prev_utf8 = BLI_str_find_prev_char_utf8(but->drawstr, cp2); + int bytes = cp2 - prev_utf8; /* shift the text after and including cp2 back by 1 char, +1 to include null terminator */ memmove(cp2 - bytes, cp2, strlen(cp2) + 1); @@ -1061,8 +1060,7 @@ static void ui_text_label_rightclip(uiFontStyle *fstyle, uiBut *but, rcti *rect) /* after the leading text is gone, chop off the : and following space, with ofs */ - while ((but->strwidth > okwidth) && (but->ofs < 2)) - { + while ((but->strwidth > okwidth) && (but->ofs < 2)) { ui_text_clip_give_next_off(but); but->strwidth = BLF_width(fstyle->uifont_id, but->drawstr + but->ofs); if (but->strwidth < 10) break; @@ -2233,8 +2231,8 @@ int ui_link_bezier_points(rcti *rect, float coord_array[][2], int resol) vec[2][0] = vec[3][0] - dist; vec[2][1] = vec[3][1]; - forward_diff_bezier(vec[0][0], vec[1][0], vec[2][0], vec[3][0], coord_array[0], resol, sizeof(float) * 2); - forward_diff_bezier(vec[0][1], vec[1][1], vec[2][1], vec[3][1], coord_array[0] + 1, resol, sizeof(float) * 2); + BKE_curve_forward_diff_bezier(vec[0][0], vec[1][0], vec[2][0], vec[3][0], coord_array[0], resol, sizeof(float) * 2); + BKE_curve_forward_diff_bezier(vec[0][1], vec[1][1], vec[2][1], vec[3][1], coord_array[0] + 1, resol, sizeof(float) * 2); return 1; } @@ -3264,7 +3262,8 @@ void ui_draw_menu_back(uiStyle *UNUSED(style), uiBlock *block, rcti *rect) } } -uiWidgetColors *ui_tooltip_get_theme(void) { +uiWidgetColors *ui_tooltip_get_theme(void) +{ uiWidgetType *wt = widget_type(UI_WTYPE_TOOLTIP); return wt->wcol_theme; } diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c index 5e754fe3619..26b0d13e10b 100644 --- a/source/blender/editors/interface/resources.c +++ b/source/blender/editors/interface/resources.c @@ -1154,8 +1154,7 @@ void UI_ThemeClearColor(int colorid) void UI_make_axis_color(const unsigned char src_col[3], unsigned char dst_col[3], const char axis) { - switch (axis) - { + switch (axis) { case 'X': dst_col[0] = src_col[0] > 219 ? 255 : src_col[0] + 36; dst_col[1] = src_col[1] < 26 ? 0 : src_col[1] - 26; diff --git a/source/blender/editors/mesh/editface.c b/source/blender/editors/mesh/editface.c index 294a39eddf8..cfc9e11879e 100644 --- a/source/blender/editors/mesh/editface.c +++ b/source/blender/editors/mesh/editface.c @@ -400,14 +400,14 @@ void paintface_deselect_all_visible(Object *ob, int action, short flush_flags) } } -int paintface_minmax(Object *ob, float *min, float *max) +int paintface_minmax(Object *ob, float r_min[3], float r_max[3]) { Mesh *me; MPoly *mp; MTexPoly *tf; MLoop *ml; MVert *mvert; - int a, b, ok = 0; + int a, b, ok = FALSE; float vec[3], bmat[3][3]; me = get_mesh(ob); @@ -427,10 +427,10 @@ int paintface_minmax(Object *ob, float *min, float *max) copy_v3_v3(vec, (mvert[ml->v].co)); mul_m3_v3(bmat, vec); add_v3_v3v3(vec, vec, ob->obmat[3]); - DO_MINMAX(vec, min, max); + DO_MINMAX(vec, r_min, r_max); } - ok = 1; + ok = TRUE; } return ok; diff --git a/source/blender/editors/mesh/editmesh_bvh.c b/source/blender/editors/mesh/editmesh_bvh.c index 6155ad1be1c..6d740812f27 100644 --- a/source/blender/editors/mesh/editmesh_bvh.c +++ b/source/blender/editors/mesh/editmesh_bvh.c @@ -239,7 +239,8 @@ static void raycallback(void *userdata, int index, const BVHTreeRay *ray, BVHTre } } -BMFace *BMBVH_RayCast(BMBVHTree *tree, float *co, float *dir, float *hitout, float *cagehit) +BMFace *BMBVH_RayCast(BMBVHTree *tree, const float co[3], const float dir[3], + float r_hitout[3], float r_cagehit[3]) { BVHTreeRayHit hit; @@ -250,10 +251,9 @@ BMFace *BMBVH_RayCast(BMBVHTree *tree, float *co, float *dir, float *hitout, flo BLI_bvhtree_ray_cast(tree->tree, co, dir, 0.0f, &hit, raycallback, tree); if (hit.dist != FLT_MAX && hit.index != -1) { - if (hitout) { + if (r_hitout) { if (tree->flag & BMBVH_RETURN_ORIG) { BMVert *v1, *v2, *v3; - float co[3]; int i; v1 = tree->em->looptris[hit.index][0]->v; @@ -261,17 +261,17 @@ BMFace *BMBVH_RayCast(BMBVHTree *tree, float *co, float *dir, float *hitout, flo v3 = tree->em->looptris[hit.index][2]->v; for (i = 0; i < 3; i++) { - co[i] = v1->co[i] + ((v2->co[i] - v1->co[i]) * tree->uv[0]) + - ((v3->co[i] - v1->co[i]) * tree->uv[1]); + r_hitout[i] = v1->co[i] + ((v2->co[i] - v1->co[i]) * tree->uv[0]) + + ((v3->co[i] - v1->co[i]) * tree->uv[1]); } - copy_v3_v3(hitout, co); } else { - copy_v3_v3(hitout, hit.co); + copy_v3_v3(r_hitout, hit.co); } - if (cagehit) - copy_v3_v3(cagehit, hit.co); + if (r_cagehit) { + copy_v3_v3(r_cagehit, hit.co); + } } return tree->em->looptris[hit.index][0]->f; diff --git a/source/blender/editors/mesh/editmesh_bvh.h b/source/blender/editors/mesh/editmesh_bvh.h index e2b45062e41..6512f054c1b 100644 --- a/source/blender/editors/mesh/editmesh_bvh.h +++ b/source/blender/editors/mesh/editmesh_bvh.h @@ -50,13 +50,12 @@ struct BMBVHTree *BMBVH_NewBVH(struct BMEditMesh *em, int flag, struct Scene *sc void BMBVH_FreeBVH(struct BMBVHTree *tree); struct BVHTree *BMBVH_BVHTree(struct BMBVHTree *tree); -struct BMFace *BMBVH_RayCast(struct BMBVHTree *tree, float *co, float *dir, float *hitout, float *cagehit); +struct BMFace *BMBVH_RayCast(struct BMBVHTree *tree, const float co[3], const float dir[3], + float r_hitout[3], float r_cagehit[3]); int BMBVH_EdgeVisible(struct BMBVHTree *tree, struct BMEdge *e, struct ARegion *ar, struct View3D *v3d, struct Object *obedit); -#define BM_SEARCH_MAXDIST 0.4f - /*find a vert closest to co in a sphere of radius maxdist*/ struct BMVert *BMBVH_FindClosestVert(struct BMBVHTree *tree, float *co, float maxdist); diff --git a/source/blender/editors/mesh/editmesh_knife.c b/source/blender/editors/mesh/editmesh_knife.c index 0ace06b1a1a..6f33fcd05b7 100644 --- a/source/blender/editors/mesh/editmesh_knife.c +++ b/source/blender/editors/mesh/editmesh_knife.c @@ -277,7 +277,7 @@ static void knife_add_to_vert_edges(KnifeTool_OpData *kcd, KnifeEdge *kfe) knife_append_list(kcd, &kfe->v2->edges, kfe); } -static KnifeVert *new_knife_vert(KnifeTool_OpData *kcd, float *co, float *cageco) +static KnifeVert *new_knife_vert(KnifeTool_OpData *kcd, const float co[3], float *cageco) { KnifeVert *kfv = BLI_mempool_calloc(kcd->kverts); @@ -2721,10 +2721,6 @@ static void knifetool_exit(bContext *C, wmOperator *op) WM_cursor_restore(CTX_wm_window(C)); - /* remember setting for later */ - RNA_boolean_set(op->ptr, "use_occlude_geometry", !kcd->cut_through); - WM_operator_last_properties_store(op); /* XXX - this is clunky but modal ops wont do this automatic */ - /* deactivate the extra drawing stuff in 3D-View */ ED_region_draw_cb_exit(kcd->ar->type, kcd->draw_handle); @@ -2746,6 +2742,9 @@ static void knifetool_exit(bContext *C, wmOperator *op) if (kcd->cagecos) MEM_freeN(kcd->cagecos); + if (kcd->linehits) + MEM_freeN(kcd->linehits); + /* destroy kcd itself */ MEM_freeN(kcd); op->customdata = NULL; diff --git a/source/blender/editors/mesh/editmesh_loopcut.c b/source/blender/editors/mesh/editmesh_loopcut.c index d7201394855..beb5345ca9b 100644 --- a/source/blender/editors/mesh/editmesh_loopcut.c +++ b/source/blender/editors/mesh/editmesh_loopcut.c @@ -240,7 +240,7 @@ static void edgering_sel(tringselOpData *lcd, int previewlines, int select) edgering_find_order(lasteed, eed, lastv1, v); lastv1 = v[0][0]; - BLI_array_growitems(edges, previewlines); + BLI_array_grow_items(edges, previewlines); for (i = 1; i <= previewlines; i++) { co[0][0] = (v[0][1]->co[0] - v[0][0]->co[0]) * (i / ((float)previewlines + 1)) + v[0][0]->co[0]; @@ -265,7 +265,7 @@ static void edgering_sel(tringselOpData *lcd, int previewlines, int select) edgering_find_order(lasteed, startedge, lastv1, v); - BLI_array_growitems(edges, previewlines); + BLI_array_grow_items(edges, previewlines); for (i = 1; i <= previewlines; i++) { if (!v[0][0] || !v[0][1] || !v[1][0] || !v[1][1]) @@ -337,9 +337,9 @@ static void ringsel_finish(bContext *C, wmOperator *op) /* sets as active, useful for other tools */ if (em->selectmode & SCE_SELECT_VERTEX) - EDBM_editselection_store(em, &lcd->eed->v1->head); /* low priority TODO, get vertrex close to mouse */ + BM_select_history_store(em->bm, lcd->eed->v1); /* low priority TODO, get vertrex close to mouse */ if (em->selectmode & SCE_SELECT_EDGE) - EDBM_editselection_store(em, &lcd->eed->head); + BM_select_history_store(em->bm, lcd->eed); EDBM_selectmode_flush(lcd->em); WM_event_add_notifier(C, NC_GEOM | ND_SELECT, lcd->ob->data); diff --git a/source/blender/editors/mesh/editmesh_rip.c b/source/blender/editors/mesh/editmesh_rip.c index 15e77458e5e..b74e8797d72 100644 --- a/source/blender/editors/mesh/editmesh_rip.c +++ b/source/blender/editors/mesh/editmesh_rip.c @@ -56,7 +56,8 @@ #include "mesh_intern.h" /* helper to find edge for edge_rip */ -static float edbm_rip_rip_edgedist(ARegion *ar, float mat[][4], float *co1, float *co2, const float mvalf[2]) +static float edbm_rip_rip_edgedist(ARegion *ar, float mat[][4], + const float co1[3], const float co2[2], const float mvalf[2]) { float vec1[3], vec2[3]; @@ -111,9 +112,9 @@ static float edbm_rip_edge_side_measure(BMEdge *e, BMLoop *e_l, score = len_v2v2(e_v1_co, e_v2_co); if (dist_to_line_segment_v2(fmval_tweak, e_v1_co, e_v2_co) > - dist_to_line_segment_v2(fmval, e_v1_co, e_v2_co)) + dist_to_line_segment_v2(fmval, e_v1_co, e_v2_co)) { - return score; + return score; } else { return -score; @@ -262,7 +263,7 @@ static EdgeLoopPair *edbm_ripsel_looptag_helper(BMesh *bm) uid_start = uid; uid = uid_end + bm->totedge; - BLI_array_growone(eloop_pairs); + BLI_array_grow_one(eloop_pairs); lp = &eloop_pairs[BLI_array_count(eloop_pairs) - 1]; BM_edge_loop_pair(e_last, &lp->l_a, &lp->l_b); /* no need to check, we know this will be true */ @@ -276,7 +277,7 @@ static EdgeLoopPair *edbm_ripsel_looptag_helper(BMesh *bm) } /* null terminate */ - BLI_array_growone(eloop_pairs); + BLI_array_grow_one(eloop_pairs); lp = &eloop_pairs[BLI_array_count(eloop_pairs) - 1]; lp->l_a = lp->l_b = NULL; @@ -347,7 +348,7 @@ static int edbm_rip_call_edgesplit(BMEditMesh *em, wmOperator *op) BMOperator bmop; if (!EDBM_op_init(em, &bmop, op, "edgesplit edges=%he verts=%hv use_verts=%b", - BM_ELEM_TAG, BM_ELEM_SELECT, TRUE)) { + BM_ELEM_TAG, BM_ELEM_SELECT, TRUE)) { return FALSE; } BMO_op_exec(em->bm, &bmop); @@ -384,7 +385,7 @@ static int edbm_rip_invoke__vert(bContext *C, wmOperator *op, wmEvent *event) ED_view3d_ob_project_mat_get(rv3d, obedit, projectMat); /* find selected vert - same some time and check history first */ - if (EDBM_editselection_active_get(em, &ese) && ese.htype == BM_VERT) { + if (BM_select_history_active_get(em->bm, &ese) && ese.htype == BM_VERT) { v = (BMVert *)ese.ele; } else { @@ -450,7 +451,7 @@ static int edbm_rip_invoke__vert(bContext *C, wmOperator *op, wmEvent *event) int vi_best = 0; if (ese.ele) { - EDBM_editselection_remove(em, &ese.ele->head); + BM_select_history_remove(em->bm, ese.ele); } dist = FLT_MAX; @@ -480,7 +481,7 @@ static int edbm_rip_invoke__vert(bContext *C, wmOperator *op, wmEvent *event) BM_vert_select_set(bm, v, TRUE); if (ese.ele) { - EDBM_editselection_store(em, &v->head); + BM_select_history_store(em->bm, v); } /* splice all others back together */ @@ -573,7 +574,7 @@ static int edbm_rip_invoke__vert(bContext *C, wmOperator *op, wmEvent *event) if (v_best) { BM_vert_select_set(bm, v_best, TRUE); if (ese.ele) { - EDBM_editselection_store(em, &v_best->head); + BM_select_history_store(em->bm, v_best); } } } diff --git a/source/blender/editors/mesh/editmesh_select.c b/source/blender/editors/mesh/editmesh_select.c index 6c3984f0979..32e70e798fe 100644 --- a/source/blender/editors/mesh/editmesh_select.c +++ b/source/blender/editors/mesh/editmesh_select.c @@ -1049,10 +1049,10 @@ static void mouse_mesh_loop(bContext *C, int mval[2], short extend, short ring) /* TODO: would be nice if the edge vertex chosen here * was the one closer to the selection pointer, instead * of arbitrarily selecting the first one */ - EDBM_editselection_store(em, &eed->v1->head); + BM_select_history_store(em->bm, eed->v1); } else if (em->selectmode & SCE_SELECT_EDGE) { - EDBM_editselection_store(em, &eed->head); + BM_select_history_store(em->bm, eed); } /* TODO: would be nice if the nearest face that * belongs to the selected edge could be set to @@ -1364,7 +1364,7 @@ static int mouse_mesh_shortest_path(bContext *C, int mval[2]) e_act = (BMEdge *)ese->ele; if (e_act != e) { if (edgetag_shortest_path(vc.scene, em, e_act, e)) { - EDBM_editselection_remove(em, &e_act->head); + BM_select_history_remove(em->bm, e_act); path = 1; } } @@ -1379,9 +1379,9 @@ static int mouse_mesh_shortest_path(bContext *C, int mval[2]) /* even if this is selected it may not be in the selection list */ if (edgetag_context_check(vc.scene, em, e) == 0) - EDBM_editselection_remove(em, &e->head); + BM_select_history_remove(em->bm, e); else - EDBM_editselection_store(em, &e->head); + BM_select_history_store(em->bm, e); /* force drawmode for mesh */ switch (CTX_data_tool_settings(C)->edge_mode) { @@ -1476,31 +1476,31 @@ int mouse_mesh(bContext *C, const int mval[2], short extend) BM_active_face_set(vc.em->bm, efa); if (!BM_elem_flag_test(efa, BM_ELEM_SELECT)) { - EDBM_editselection_store(vc.em, &efa->head); + BM_select_history_store(vc.em->bm, efa); BM_face_select_set(vc.em->bm, efa, TRUE); } else if (extend) { - EDBM_editselection_remove(vc.em, &efa->head); + BM_select_history_remove(vc.em->bm, efa); BM_face_select_set(vc.em->bm, efa, FALSE); } } else if (eed) { if (!BM_elem_flag_test(eed, BM_ELEM_SELECT)) { - EDBM_editselection_store(vc.em, &eed->head); + BM_select_history_store(vc.em->bm, eed); BM_edge_select_set(vc.em->bm, eed, TRUE); } else if (extend) { - EDBM_editselection_remove(vc.em, &eed->head); + BM_select_history_remove(vc.em->bm, eed); BM_edge_select_set(vc.em->bm, eed, FALSE); } } else if (eve) { if (!BM_elem_flag_test(eve, BM_ELEM_SELECT)) { - EDBM_editselection_store(vc.em, &eve->head); + BM_select_history_store(vc.em->bm, eve); BM_vert_select_set(vc.em->bm, eve, TRUE); } else if (extend) { - EDBM_editselection_remove(vc.em, &eve->head); + BM_select_history_remove(vc.em->bm, eve); BM_vert_select_set(vc.em->bm, eve, FALSE); } } @@ -1512,7 +1512,7 @@ int mouse_mesh(bContext *C, const int mval[2], short extend) vc.obedit->actcol = efa->mat_nr + 1; vc.em->mat_nr = efa->mat_nr; - WM_event_add_notifier(C, NC_MATERIAL|ND_SHADING, NULL); + WM_event_add_notifier(C, NC_MATERIAL | ND_SHADING, NULL); } @@ -2307,7 +2307,7 @@ static int edbm_select_linked_flat_faces_exec(bContext *C, wmOperator *op) BLI_array_empty(stack); i = 1; - BLI_array_growone(stack); + BLI_array_grow_one(stack); stack[i - 1] = f; while (i) { @@ -2330,7 +2330,7 @@ static int edbm_select_linked_flat_faces_exec(bContext *C, wmOperator *op) /* invalidate: edge too sharp */ if (angle < sharp) { - BLI_array_growone(stack); + BLI_array_grow_one(stack); stack[i] = l2->f; i++; } diff --git a/source/blender/editors/mesh/editmesh_slide.c b/source/blender/editors/mesh/editmesh_slide.c index 44f7c388a74..a82f34a4649 100644 --- a/source/blender/editors/mesh/editmesh_slide.c +++ b/source/blender/editors/mesh/editmesh_slide.c @@ -88,7 +88,7 @@ typedef struct VertexSlideOp { int disk_edges; /* Edges */ - BMEdge** edge_frame; + BMEdge **edge_frame; /* Slide Frame Endpoints */ float (*vtx_frame)[3]; @@ -194,7 +194,7 @@ static void vtx_slide_confirm(bContext *C, wmOperator *op) { VertexSlideOp *vso = op->customdata; BMEditMesh *em = BMEdit_FromObject(vso->obj); - BMesh* bm = em->bm; + BMesh *bm = em->bm; /* Select new edge */ BM_edge_select_set(bm, vso->sel_edge, TRUE); @@ -204,7 +204,7 @@ static void vtx_slide_confirm(bContext *C, wmOperator *op) if (vso->snap_n_merge) { float other_d; - BMVert* other = BM_edge_other_vert(vso->sel_edge, vso->start_vtx); + BMVert *other = BM_edge_other_vert(vso->sel_edge, vso->start_vtx); other_d = len_v3v3(vso->interp, other->co); /* Only snap if within threshold */ @@ -216,13 +216,13 @@ static void vtx_slide_confirm(bContext *C, wmOperator *op) } else { /* Store in historty if not merging */ - EDBM_editselection_store(em, &vso->start_vtx->head); + BM_select_history_store(em->bm, vso->start_vtx); } } else { /* Store edit selection of the active vertex, allows other * ops to run without reselecting */ - EDBM_editselection_store(em, &vso->start_vtx->head); + BM_select_history_store(em->bm, vso->start_vtx); } EDBM_selectmode_flush(em); @@ -339,12 +339,12 @@ static void vtx_slide_draw(const bContext *C, ARegion *UNUSED(ar), void *arg) } } -static BMEdge* vtx_slide_nrst_in_frame(VertexSlideOp *vso, const float mval[2]) +static BMEdge *vtx_slide_nrst_in_frame(VertexSlideOp *vso, const float mval[2]) { - BMEdge* cl_edge = NULL; + BMEdge *cl_edge = NULL; if (vso->disk_edges > 0) { int i = 0; - BMEdge* edge = NULL; + BMEdge *edge = NULL; float v1_proj[3], v2_proj[3]; float dist = 0; @@ -481,7 +481,7 @@ static int vtx_slide_set_frame(VertexSlideOp *vso) { BMEdge *edge; float (*vtx_frame)[3] = NULL; - BMEdge** edge_frame = NULL; + BMEdge **edge_frame = NULL; BMVert *curr_vert = NULL; BLI_array_declare(vtx_frame); BLI_array_declare(edge_frame); @@ -505,7 +505,7 @@ static int vtx_slide_set_frame(VertexSlideOp *vso) BM_ITER_ELEM_INDEX (edge, &iter, sel_vtx, BM_EDGES_OF_VERT, idx) { curr_vert = BM_edge_other_vert(edge, sel_vtx); if (curr_vert) { - BLI_array_growone(vtx_frame); + BLI_array_grow_one(vtx_frame); copy_v3_v3(vtx_frame[idx], curr_vert->co); @@ -664,8 +664,8 @@ static int edbm_vertex_slide_exec(bContext *C, wmOperator *op) BM_edge_select_set(bm, vso->sel_edge, TRUE); BM_vert_select_set(bm, vso->start_vtx, TRUE); - EDBM_editselection_store(em, &vso->sel_edge->head); - EDBM_editselection_store(em, &vso->start_vtx->head); + BM_select_history_store(em->bm, vso->sel_edge); + BM_select_history_store(em->bm, vso->start_vtx); ese = (BMEditSelection *)em->bm->selected.last; } distance_t = vso->distance; diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c index 005947ce49b..7eae8b4d67e 100644 --- a/source/blender/editors/mesh/editmesh_tools.c +++ b/source/blender/editors/mesh/editmesh_tools.c @@ -927,7 +927,9 @@ static int edbm_delete_exec(bContext *C, wmOperator *op) //"Erase Only Faces"; if (!EDBM_op_callf(em, op, "del geom=%hf context=%i", BM_ELEM_SELECT, DEL_ONLYFACES)) + { return OPERATOR_CANCELLED; + } } EDBM_flag_disable_all(em, BM_ELEM_SELECT); @@ -1021,8 +1023,7 @@ static int edbm_add_edge_face__smooth_get(BMesh *bm) unsigned int vote_on_smooth[2] = {0, 0}; BM_ITER_MESH (e, &iter, bm, BM_EDGES_OF_MESH) { - if (BM_elem_flag_test(e, BM_ELEM_SELECT) && e->l) - { + if (BM_elem_flag_test(e, BM_ELEM_SELECT) && e->l) { vote_on_smooth[BM_elem_flag_test_bool(e->l->f, BM_ELEM_SMOOTH)]++; } } @@ -3639,22 +3640,6 @@ static int vergxco(const void *v1, const void *v2) return (x2->org_idx < 0) - (x1->org_idx < 0); } -#if 0 /* Unused */ -struct facesort { - uintptr_t x; - struct EditFace *efa; -}; - -static int vergface(const void *v1, const void *v2) -{ - const struct facesort *x1 = v1, *x2 = v2; - - if (x1->x > x2->x) return 1; - else if (x1->x < x2->x) return -1; - return 0; -} -#endif - static void xsortvert_flag__doSetX(void *userData, BMVert *UNUSED(eve), int x, int UNUSED(y), int index) { xvertsort *sortblock = userData; @@ -4091,7 +4076,7 @@ static int edbm_bevel_exec(bContext *C, wmOperator *op) BMEdge *eed; BMOperator bmop; float factor = RNA_float_get(op->ptr, "percent") /*, dfac */ /* UNUSED */, df, s; - int i, recursion = RNA_int_get(op->ptr, "recursion"); + int i, recursion = 1; /* RNA_int_get(op->ptr, "recursion"); */ /* temp removed, see comment below */ const int use_even = RNA_boolean_get(op->ptr, "use_even"); const int use_dist = RNA_boolean_get(op->ptr, "use_dist"); float *w = NULL, ftot; @@ -4168,7 +4153,8 @@ void MESH_OT_bevel(wmOperatorType *ot) ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; RNA_def_float(ot->srna, "percent", 0.5f, -FLT_MAX, FLT_MAX, "Percentage", "", 0.0f, 1.0f); - RNA_def_int(ot->srna, "recursion", 1, 1, 50, "Recursion Level", "Recursion Level", 1, 8); +// XXX, disabled for 2.63 release, needs to work much better without overlap before we can give to users. +// RNA_def_int(ot->srna, "recursion", 1, 1, 50, "Recursion Level", "Recursion Level", 1, 8); RNA_def_boolean(ot->srna, "use_even", FALSE, "Even", "Calculate evenly spaced bevel"); RNA_def_boolean(ot->srna, "use_dist", FALSE, "Distance", "Interpret the percent in blender units"); @@ -4279,3 +4265,4 @@ void MESH_OT_inset(wmOperatorType *ot) RNA_def_boolean(ot->srna, "use_outset", FALSE, "Outset", "Outset rather than inset"); RNA_def_boolean(ot->srna, "use_select_inset", TRUE, "Select Outer", "Select the new inset faces"); } + diff --git a/source/blender/editors/mesh/editmesh_utils.c b/source/blender/editors/mesh/editmesh_utils.c index 074c37850f7..2ebeb9ca224 100644 --- a/source/blender/editors/mesh/editmesh_utils.c +++ b/source/blender/editors/mesh/editmesh_utils.c @@ -465,39 +465,6 @@ void EDBM_select_less(BMEditMesh *em) EDBM_selectmode_flush(em); } -int EDBM_editselection_active_get(BMEditMesh *em, BMEditSelection *ese) -{ - BMEditSelection *ese_last = em->bm->selected.last; - BMFace *efa = BM_active_face_get(em->bm, FALSE); - - ese->next = ese->prev = NULL; - - if (ese_last) { - if (ese_last->htype == BM_FACE) { /* if there is an active face, use it over the last selected face */ - if (efa) { - ese->ele = (BMElem *)efa; - } - else { - ese->ele = ese_last->ele; - } - ese->htype = BM_FACE; - } - else { - ese->ele = ese_last->ele; - ese->htype = ese_last->htype; - } - } - else if (efa) { /* no */ - ese->ele = (BMElem *)efa; - ese->htype = BM_FACE; - } - else { - ese->ele = NULL; - return 0; - } - return 1; -} - void EDBM_flag_disable_all(BMEditMesh *em, const char hflag) { BM_mesh_elem_hflag_disable_all(em->bm, BM_VERT | BM_EDGE | BM_FACE, hflag, FALSE); @@ -600,7 +567,7 @@ void undo_push_mesh(bContext *C, const char *name) } /* write comment here */ -UvVertMap *EDBM_uv_vert_map_create(BMEditMesh *em, int selected, int do_face_idx_array, float *limit) +UvVertMap *EDBM_uv_vert_map_create(BMEditMesh *em, int selected, int do_face_idx_array, const float limit[2]) { BMVert *ev; BMFace *efa; @@ -1272,43 +1239,3 @@ void EDBM_update_generic(bContext *C, BMEditMesh *em, const short do_tessface) BMEdit_RecalcTessellation(em); } } - -/* * Selection History ***************************************************** */ -/* these wrap equivalent bmesh functions. I'm in two minds of it we should - * just use the bm functions directly; on the one hand, there's no real - * need (at the moment) to wrap them, but on the other hand having these - * wrapped avoids a confusing mess of mixing BM_ and EDBM_ namespaces. */ - -void EDBM_editselection_center(float *center, BMEditSelection *ese) -{ - BM_editselection_center(center, ese); -} - -void EDBM_editselection_normal(float *normal, BMEditSelection *ese) -{ - BM_editselection_normal(normal, ese); -} - -/* Calculate a plane that is rightangles to the edge/vert/faces normal - * also make the plane run along an axis that is related to the geometry, - * because this is used for the manipulators Y axis. */ -void EDBM_editselection_plane(BMEditMesh *em, float *plane, BMEditSelection *ese) -{ - BM_editselection_plane(em->bm, plane, ese); -} - -void EDBM_editselection_remove(BMEditMesh *em, BMHeader *ele) -{ - BM_select_history_remove(em->bm, (BMElem *)ele); -} - -void EDBM_editselection_store(BMEditMesh *em, BMHeader *ele) -{ - BM_select_history_store(em->bm, (BMElem *)ele); -} - -void EDBM_editselection_validate(BMEditMesh *em) -{ - BM_select_history_validate(em->bm); -} -/* end select history */ diff --git a/source/blender/editors/mesh/mesh_intern.h b/source/blender/editors/mesh/mesh_intern.h index 27b1cb6ad54..b6403f33bc9 100644 --- a/source/blender/editors/mesh/mesh_intern.h +++ b/source/blender/editors/mesh/mesh_intern.h @@ -78,9 +78,6 @@ int EDBM_op_finish(struct BMEditMesh *em, struct BMOperator *bmop, struct wmOperator *op, const int report); void EDBM_flag_disable_all(struct BMEditMesh *em, const char hflag); -void EDBM_editselection_store(struct BMEditMesh *em, struct BMHeader *ele); -void EDBM_editselection_validate(struct BMEditMesh *em); -void EDBM_editselection_remove(struct BMEditMesh *em, struct BMHeader *ele); void EDBM_stats_update(struct BMEditMesh *em); /* TODO, move to math_geometry.c */ @@ -109,7 +106,7 @@ void MESH_OT_duplicate(struct wmOperatorType *ot); extern int EM_view3d_poll(struct bContext *C); -struct wmKeyMap* knifetool_modal_keymap(struct wmKeyConfig *keyconf); +struct wmKeyMap *knifetool_modal_keymap(struct wmKeyConfig *keyconf); /* ******************* knifetool.c */ diff --git a/source/blender/editors/mesh/mesh_navmesh.c b/source/blender/editors/mesh/mesh_navmesh.c index 71aaacb7e49..43cd89af3ac 100644 --- a/source/blender/editors/mesh/mesh_navmesh.c +++ b/source/blender/editors/mesh/mesh_navmesh.c @@ -430,7 +430,7 @@ static int navmesh_create_exec(bContext *C, wmOperator *op) LinkNode *obs = NULL; Base *navmeshBase = NULL; - CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) { + CTX_DATA_BEGIN (C, Base *, base, selected_editable_bases) { if (base->object->type == OB_MESH) { if (base->object->body_type == OB_BODY_TYPE_NAVMESH) { if (!navmeshBase || base == scene->basact) { diff --git a/source/blender/editors/mesh/meshtools.c b/source/blender/editors/mesh/meshtools.c index 7c02f26dbdc..d8e9dea598c 100644 --- a/source/blender/editors/mesh/meshtools.c +++ b/source/blender/editors/mesh/meshtools.c @@ -122,7 +122,7 @@ int join_mesh_exec(bContext *C, wmOperator *op) } /* count & check */ - CTX_DATA_BEGIN(C, Base *, base, selected_editable_bases) { + CTX_DATA_BEGIN (C, Base *, base, selected_editable_bases) { if (base->object->type == OB_MESH) { me = base->object->data; @@ -198,8 +198,7 @@ int join_mesh_exec(bContext *C, wmOperator *op) } /* first pass over objects - copying materials and vertexgroups across */ - CTX_DATA_BEGIN(C, Base *, base, selected_editable_bases) - { + CTX_DATA_BEGIN (C, Base *, base, selected_editable_bases) { /* only act if a mesh, and not the one we're joining to */ if ((ob != base->object) && (base->object->type == OB_MESH)) { me = base->object->data; @@ -299,8 +298,7 @@ int join_mesh_exec(bContext *C, wmOperator *op) /* inverse transform for all selected meshes in this object */ invert_m4_m4(imat, ob->obmat); - CTX_DATA_BEGIN(C, Base *, base, selected_editable_bases) - { + CTX_DATA_BEGIN (C, Base *, base, selected_editable_bases) { /* only join if this is a mesh */ if (base->object->type == OB_MESH) { me = base->object->data; @@ -569,7 +567,7 @@ int join_mesh_shapes_exec(bContext *C, wmOperator *op) KeyBlock *kb; int ok = 0, nonequal_verts = 0; - CTX_DATA_BEGIN(C, Base *, base, selected_editable_bases) { + CTX_DATA_BEGIN (C, Base *, base, selected_editable_bases) { if (base->object == ob) continue; if (base->object->type == OB_MESH) { @@ -601,8 +599,7 @@ int join_mesh_shapes_exec(bContext *C, wmOperator *op) } /* now ready to add new keys from selected meshes */ - CTX_DATA_BEGIN(C, Base *, base, selected_editable_bases) - { + CTX_DATA_BEGIN (C, Base *, base, selected_editable_bases) { if (base->object == ob) continue; if (base->object->type == OB_MESH) { @@ -641,7 +638,7 @@ typedef struct MocNode { intptr_t index[MOC_NODE_RES]; } MocNode; -static int mesh_octree_get_base_offs(float *co, float *offs, float *div) +static int mesh_octree_get_base_offs(const float co[3], const float offs[3], const float div[3]) { int vx, vy, vz; @@ -736,7 +733,7 @@ static void mesh_octree_add_nodes(MocNode **basetable, float *co, float *offs, f } -static intptr_t mesh_octree_find_index(MocNode **bt, MVert *mvert, float *co) +static intptr_t mesh_octree_find_index(MocNode **bt, MVert *mvert, const float co[3]) { float *vec; int a; @@ -773,7 +770,7 @@ static struct { /* mode is 's' start, or 'e' end, or 'u' use */ /* if end, ob can be NULL */ -intptr_t mesh_octree_table(Object *ob, BMEditMesh *em, float *co, char mode) +intptr_t mesh_octree_table(Object *ob, BMEditMesh *em, const float co[3], char mode) { MocNode **bt; @@ -920,7 +917,7 @@ int mesh_get_x_mirror_vert(Object *ob, int index) return 0; } -static BMVert *editbmesh_get_x_mirror_vert_spacial(Object *ob, BMEditMesh *em, float *co) +static BMVert *editbmesh_get_x_mirror_vert_spacial(Object *ob, BMEditMesh *em, const float co[3]) { float vec[3]; intptr_t poinval; @@ -928,9 +925,10 @@ static BMVert *editbmesh_get_x_mirror_vert_spacial(Object *ob, BMEditMesh *em, f /* ignore nan verts */ if (!finite(co[0]) || !finite(co[1]) || - !finite(co[2]) - ) + !finite(co[2])) + { return NULL; + } vec[0] = -co[0]; vec[1] = co[1]; @@ -971,7 +969,7 @@ static BMVert *editbmesh_get_x_mirror_vert_topo(Object *ob, struct BMEditMesh *e return NULL; } -BMVert *editbmesh_get_x_mirror_vert(Object *ob, struct BMEditMesh *em, BMVert *eve, float *co, int index) +BMVert *editbmesh_get_x_mirror_vert(Object *ob, struct BMEditMesh *em, BMVert *eve, const float co[3], int index) { if (((Mesh *)ob->data)->editflag & ME_EDIT_MIRROR_TOPO) { return editbmesh_get_x_mirror_vert_topo(ob, em, eve, index); @@ -1016,7 +1014,7 @@ static float *editmesh_get_mirror_uv(BMEditMesh *em, int axis, float *uv, float BMFace *efa; BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { - poly_uv_center(em, efa, cent); + uv_poly_center(em, efa, cent); if ( (fabs(cent[0] - cent_vec[0]) < 0.001) && (fabs(cent[1] - cent_vec[1]) < 0.001) ) { BMIter liter; diff --git a/source/blender/editors/metaball/mball_edit.c b/source/blender/editors/metaball/mball_edit.c index 713009d2a19..1407d38ed0f 100644 --- a/source/blender/editors/metaball/mball_edit.c +++ b/source/blender/editors/metaball/mball_edit.c @@ -111,7 +111,7 @@ MetaElem *add_metaball_primitive(bContext *C, float mat[4][4], int type, int UNU ml= ml->next; } - ml= add_metaball_element(mball, type); + ml= BKE_metaball_element_add(mball, type); copy_v3_v3(&ml->x, mat[3]); ml->flag |= SELECT; diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c index 3717591e412..fcce65c9326 100644 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@ -111,8 +111,8 @@ void ED_object_location_from_view(bContext *C, float *loc) { - View3D *v3d= CTX_wm_view3d(C); - Scene *scene= CTX_data_scene(C); + View3D *v3d = CTX_wm_view3d(C); + Scene *scene = CTX_data_scene(C); float *cursor; cursor = give_cursor(scene, v3d); @@ -122,11 +122,11 @@ void ED_object_location_from_view(bContext *C, float *loc) void ED_object_rotation_from_view(bContext *C, float *rot) { - RegionView3D *rv3d= CTX_wm_region_view3d(C); + RegionView3D *rv3d = CTX_wm_region_view3d(C); if (rv3d) { float quat[4]; copy_qt_qt(quat, rv3d->viewquat); - quat[0]= -quat[0]; + quat[0] = -quat[0]; quat_to_eul(rot, quat); } else { @@ -136,8 +136,8 @@ void ED_object_rotation_from_view(bContext *C, float *rot) void ED_object_base_init_transform(bContext *C, Base *base, float *loc, float *rot) { - Object *ob= base->object; - Scene *scene= CTX_data_scene(C); + Object *ob = base->object; + Scene *scene = CTX_data_scene(C); if (!scene) return; @@ -195,19 +195,19 @@ void ED_object_add_generic_props(wmOperatorType *ot, int do_editmode) if (do_editmode) { prop = RNA_def_boolean(ot->srna, "enter_editmode", 0, "Enter Editmode", - "Enter editmode when adding this object"); - RNA_def_property_flag(prop, PROP_HIDDEN|PROP_SKIP_SAVE); + "Enter editmode when adding this object"); + RNA_def_property_flag(prop, PROP_HIDDEN | PROP_SKIP_SAVE); } prop = 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); + "Location for the newly added object", -FLT_MAX, FLT_MAX); RNA_def_property_flag(prop, PROP_SKIP_SAVE); prop = RNA_def_float_rotation(ot->srna, "rotation", 3, NULL, -FLT_MAX, FLT_MAX, "Rotation", - "Rotation for the newly added object", (float)-M_PI * 2.0f, (float)M_PI * 2.0f); + "Rotation for the newly added object", (float)-M_PI * 2.0f, (float)M_PI * 2.0f); RNA_def_property_flag(prop, PROP_SKIP_SAVE); prop = RNA_def_boolean_layer_member(ot->srna, "layers", 20, NULL, "Layer", ""); - RNA_def_property_flag(prop, PROP_HIDDEN|PROP_SKIP_SAVE); + RNA_def_property_flag(prop, PROP_HIDDEN | PROP_SKIP_SAVE); } static void object_add_generic_invoke_options(bContext *C, wmOperator *op) @@ -229,14 +229,14 @@ static void object_add_generic_invoke_options(bContext *C, wmOperator *op) int a, values[20], layer; if (v3d) { - layer = (v3d->scenelock && !v3d->localvd)? scene->layact: v3d->layact; + layer = (v3d->scenelock && !v3d->localvd) ? scene->layact : v3d->layact; } else { layer = scene->layact; } - for (a=0; a<20; a++) { - values[a]= (layer & (1<ptr, "layers", values); @@ -250,7 +250,7 @@ int ED_object_add_generic_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(ev } int ED_object_add_generic_get_opts(bContext *C, wmOperator *op, float *loc, - float *rot, int *enter_editmode, unsigned int *layer, int *is_view_aligned) + float *rot, int *enter_editmode, unsigned int *layer, int *is_view_aligned) { View3D *v3d = CTX_wm_view3d(C); int a, layer_values[20]; @@ -263,8 +263,8 @@ int ED_object_add_generic_get_opts(bContext *C, wmOperator *op, float *loc, if (RNA_struct_property_is_set(op->ptr, "layers")) { RNA_boolean_get_array(op->ptr, "layers", layer_values); - *layer= 0; - for (a=0; a<20; a++) { + *layer = 0; + for (a = 0; a < 20; a++) { if (layer_values[a]) *layer |= (1 << a); else @@ -314,18 +314,18 @@ int ED_object_add_generic_get_opts(bContext *C, wmOperator *op, float *loc, /* for object add primitive operators */ /* do not call undo push in this function (users of this function have to) */ Object *ED_object_add_type(bContext *C, int type, float *loc, float *rot, - int enter_editmode, unsigned int layer) + int enter_editmode, unsigned int layer) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); Object *ob; /* for as long scene has editmode... */ if (CTX_data_edit_object(C)) - ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR|EM_DO_UNDO); /* freedata, and undo */ + ED_object_exit_editmode(C, EM_FREEDATA | EM_FREEUNDO | EM_WAITCURSOR | EM_DO_UNDO); /* freedata, and undo */ /* deselects all, sets scene->basact */ - ob= add_object(scene, type); + ob = add_object(scene, type); BASACT->lay = ob->lay = layer; /* editor level activate, notifiers */ ED_base_object_activate(C, BASACT); @@ -342,7 +342,7 @@ Object *ED_object_add_type(bContext *C, int type, float *loc, float *rot, if (enter_editmode) ED_object_enter_editmode(C, EM_IGNORE_LAYER); - WM_event_add_notifier(C, NC_SCENE|ND_LAYER_CONTENT, scene); + WM_event_add_notifier(C, NC_SCENE | ND_LAYER_CONTENT, scene); return ob; } @@ -376,7 +376,7 @@ void OBJECT_OT_add(wmOperatorType *ot) ot->poll = ED_operator_objectmode; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; RNA_def_enum(ot->srna, "type", object_type_items, 0, "Type", ""); @@ -414,23 +414,23 @@ static Object *effector_add_type(bContext *C, wmOperator *op, int type) if (!ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL)) return NULL; - if (type==PFIELD_GUIDE) { - ob= ED_object_add_type(C, OB_CURVE, loc, rot, FALSE, layer); + if (type == PFIELD_GUIDE) { + ob = ED_object_add_type(C, OB_CURVE, loc, rot, FALSE, layer); rename_id(&ob->id, "CurveGuide"); - ((Curve*)ob->data)->flag |= CU_PATH|CU_3D; + ((Curve *)ob->data)->flag |= CU_PATH | CU_3D; ED_object_enter_editmode(C, 0); ED_object_new_primitive_matrix(C, ob, loc, rot, mat); - BLI_addtail(object_editcurve_get(ob), add_nurbs_primitive(C, mat, CU_NURBS|CU_PRIM_PATH, 1)); + BLI_addtail(object_editcurve_get(ob), add_nurbs_primitive(C, mat, CU_NURBS | CU_PRIM_PATH, 1)); if (!enter_editmode) ED_object_exit_editmode(C, EM_FREEDATA); } else { - ob= ED_object_add_type(C, OB_EMPTY, loc, rot, FALSE, layer); + ob = ED_object_add_type(C, OB_EMPTY, loc, rot, FALSE, layer); rename_id(&ob->id, "Field"); - switch(type) { + switch (type) { case PFIELD_WIND: case PFIELD_VORTEX: ob->empty_drawtype = OB_SINGLE_ARROW; @@ -438,7 +438,7 @@ static Object *effector_add_type(bContext *C, wmOperator *op, int type) } } - ob->pd= object_add_collision_fields(type); + ob->pd = object_add_collision_fields(type); DAG_scene_sort(CTX_data_main(C), CTX_data_scene(C)); @@ -468,7 +468,7 @@ void OBJECT_OT_effector_add(wmOperatorType *ot) ot->poll = ED_operator_objectmode; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; ot->prop = RNA_def_enum(ot->srna, "type", field_type_items, 0, "Type", ""); @@ -480,7 +480,7 @@ void OBJECT_OT_effector_add(wmOperatorType *ot) static int object_camera_add_exec(bContext *C, wmOperator *op) { View3D *v3d = CTX_wm_view3d(C); - Scene *scene= CTX_data_scene(C); + Scene *scene = CTX_data_scene(C); Object *ob; int enter_editmode; unsigned int layer; @@ -494,12 +494,12 @@ static int object_camera_add_exec(bContext *C, wmOperator *op) if (!ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL)) return OPERATOR_CANCELLED; - ob= ED_object_add_type(C, OB_CAMERA, loc, rot, FALSE, layer); + ob = ED_object_add_type(C, OB_CAMERA, loc, rot, FALSE, layer); if (v3d) { if (v3d->camera == NULL) v3d->camera = ob; - if (v3d->scenelock && scene->camera==NULL) { + if (v3d->scenelock && scene->camera == NULL) { scene->camera = ob; } } @@ -521,12 +521,12 @@ void OBJECT_OT_camera_add(wmOperatorType *ot) ot->poll = ED_operator_objectmode; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; ED_object_add_generic_props(ot, TRUE); /* hide this for cameras, default */ - prop= RNA_struct_type_find_property(ot->srna, "view_align"); + prop = RNA_struct_type_find_property(ot->srna, "view_align"); RNA_def_property_flag(prop, PROP_HIDDEN); } @@ -535,9 +535,9 @@ void OBJECT_OT_camera_add(wmOperatorType *ot) /* ***************** add primitives *************** */ static int object_metaball_add_exec(bContext *C, wmOperator *op) { - Object *obedit= CTX_data_edit_object(C); + Object *obedit = CTX_data_edit_object(C); /*MetaElem *elem;*/ /*UNUSED*/ - int newob= 0; + int newob = 0; int enter_editmode; unsigned int layer; float loc[3], rot[3]; @@ -548,8 +548,8 @@ static int object_metaball_add_exec(bContext *C, wmOperator *op) if (!ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL)) return OPERATOR_CANCELLED; - if (obedit==NULL || obedit->type!=OB_MBALL) { - obedit= ED_object_add_type(C, OB_MBALL, loc, rot, TRUE, layer); + if (obedit == NULL || obedit->type != OB_MBALL) { + obedit = ED_object_add_type(C, OB_MBALL, loc, rot, TRUE, layer); newob = 1; } else DAG_id_tag_update(&obedit->id, OB_RECALC_DATA); @@ -563,21 +563,21 @@ static int object_metaball_add_exec(bContext *C, wmOperator *op) ED_object_exit_editmode(C, EM_FREEDATA); } - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, obedit); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, obedit); return OPERATOR_FINISHED; } static int object_metaball_add_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event)) { - Object *obedit= CTX_data_edit_object(C); + Object *obedit = CTX_data_edit_object(C); uiPopupMenu *pup; uiLayout *layout; object_add_generic_invoke_options(C, op); - pup= uiPupMenuBegin(C, op->type->name, ICON_NONE); - layout= uiPupMenuLayout(pup); + pup = uiPupMenuBegin(C, op->type->name, ICON_NONE); + layout = uiPupMenuLayout(pup); if (!obedit || obedit->type == OB_MBALL) uiItemsEnumO(layout, op->type->idname, "type"); else @@ -600,7 +600,7 @@ void OBJECT_OT_metaball_add(wmOperatorType *ot) ot->poll = ED_operator_scene_editable; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; RNA_def_enum(ot->srna, "type", metaelem_type_items, 0, "Primitive", ""); ED_object_add_generic_props(ot, TRUE); @@ -608,7 +608,7 @@ void OBJECT_OT_metaball_add(wmOperatorType *ot) static int object_add_text_exec(bContext *C, wmOperator *op) { - Object *obedit= CTX_data_edit_object(C); + Object *obedit = CTX_data_edit_object(C); int enter_editmode; unsigned int layer; float loc[3], rot[3]; @@ -617,12 +617,12 @@ static int object_add_text_exec(bContext *C, wmOperator *op) if (!ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL)) return OPERATOR_CANCELLED; - if (obedit && obedit->type==OB_FONT) + if (obedit && obedit->type == OB_FONT) return OPERATOR_CANCELLED; - obedit= ED_object_add_type(C, OB_FONT, loc, rot, enter_editmode, layer); + obedit = ED_object_add_type(C, OB_FONT, loc, rot, enter_editmode, layer); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, obedit); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, obedit); return OPERATOR_FINISHED; } @@ -640,16 +640,16 @@ void OBJECT_OT_text_add(wmOperatorType *ot) ot->poll = ED_operator_objectmode; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; ED_object_add_generic_props(ot, TRUE); } static int object_armature_add_exec(bContext *C, wmOperator *op) { - Object *obedit= CTX_data_edit_object(C); - View3D *v3d= CTX_wm_view3d(C); - RegionView3D *rv3d= CTX_wm_region_view3d(C); - int newob= 0; + Object *obedit = CTX_data_edit_object(C); + View3D *v3d = CTX_wm_view3d(C); + RegionView3D *rv3d = CTX_wm_region_view3d(C); + int newob = 0; int enter_editmode; unsigned int layer; float loc[3], rot[3]; @@ -658,14 +658,14 @@ static int object_armature_add_exec(bContext *C, wmOperator *op) if (!ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL)) return OPERATOR_CANCELLED; - if ((obedit==NULL) || (obedit->type != OB_ARMATURE)) { - obedit= ED_object_add_type(C, OB_ARMATURE, loc, rot, TRUE, layer); + if ((obedit == NULL) || (obedit->type != OB_ARMATURE)) { + obedit = ED_object_add_type(C, OB_ARMATURE, loc, rot, TRUE, layer); ED_object_enter_editmode(C, 0); newob = 1; } else DAG_id_tag_update(&obedit->id, OB_RECALC_DATA); - if (obedit==NULL) { + if (obedit == NULL) { BKE_report(op->reports, RPT_ERROR, "Cannot create editmode armature"); return OPERATOR_CANCELLED; } @@ -677,7 +677,7 @@ static int object_armature_add_exec(bContext *C, wmOperator *op) if (newob && !enter_editmode) ED_object_exit_editmode(C, EM_FREEDATA); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, obedit); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, obedit); return OPERATOR_FINISHED; } @@ -695,7 +695,7 @@ void OBJECT_OT_armature_add(wmOperatorType *ot) ot->poll = ED_operator_objectmode; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; ED_object_add_generic_props(ot, TRUE); } @@ -714,10 +714,10 @@ static const char *get_lamp_defname(int type) static int object_lamp_add_exec(bContext *C, wmOperator *op) { - Scene *scene= CTX_data_scene(C); + Scene *scene = CTX_data_scene(C); Object *ob; Lamp *la; - int type= RNA_enum_get(op->ptr, "type"); + int type = RNA_enum_get(op->ptr, "type"); int enter_editmode; unsigned int layer; float loc[3], rot[3]; @@ -726,16 +726,16 @@ static int object_lamp_add_exec(bContext *C, wmOperator *op) if (!ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL)) return OPERATOR_CANCELLED; - ob= ED_object_add_type(C, OB_LAMP, loc, rot, FALSE, layer); - la= (Lamp*)ob->data; + ob = ED_object_add_type(C, OB_LAMP, loc, rot, FALSE, layer); + la = (Lamp *)ob->data; - la->type= type; + la->type = type; rename_id(&ob->id, get_lamp_defname(type)); rename_id(&la->id, get_lamp_defname(type)); if (scene_use_new_shading_nodes(scene)) { ED_node_shader_default(scene, &la->id); - la->use_nodes= 1; + la->use_nodes = 1; } return OPERATOR_FINISHED; @@ -762,7 +762,7 @@ void OBJECT_OT_lamp_add(wmOperatorType *ot) ot->poll = ED_operator_objectmode; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ ot->prop = RNA_def_enum(ot->srna, "type", lamp_type_items, 0, "Type", ""); @@ -772,7 +772,7 @@ void OBJECT_OT_lamp_add(wmOperatorType *ot) static int group_instance_add_exec(bContext *C, wmOperator *op) { - Group *group= BLI_findlink(&CTX_data_main(C)->group, RNA_enum_get(op->ptr, "group")); + Group *group = BLI_findlink(&CTX_data_main(C)->group, RNA_enum_get(op->ptr, "group")); int enter_editmode; unsigned int layer; @@ -783,18 +783,18 @@ static int group_instance_add_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; if (group) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); - Object *ob= ED_object_add_type(C, OB_EMPTY, loc, rot, FALSE, layer); - rename_id(&ob->id, group->id.name+2); - ob->dup_group= group; + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); + Object *ob = ED_object_add_type(C, OB_EMPTY, loc, rot, FALSE, layer); + rename_id(&ob->id, group->id.name + 2); + ob->dup_group = group; ob->transflag |= OB_DUPLIGROUP; id_lib_extern(&group->id); /* works without this except if you try render right after, see: 22027 */ DAG_scene_sort(bmain, scene); - WM_event_add_notifier(C, NC_SCENE|ND_OB_ACTIVE, CTX_data_scene(C)); + WM_event_add_notifier(C, NC_SCENE | ND_OB_ACTIVE, CTX_data_scene(C)); return OPERATOR_FINISHED; } @@ -814,7 +814,7 @@ static int object_speaker_add_exec(bContext *C, wmOperator *op) if (!ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL)) return OPERATOR_CANCELLED; - ob= ED_object_add_type(C, OB_SPEAKER, loc, rot, FALSE, layer); + ob = ED_object_add_type(C, OB_SPEAKER, loc, rot, FALSE, layer); /* to make it easier to start using this immediately in NLA, a default sound clip is created * ready to be moved around to retime the sound and/or make new sound clips @@ -834,7 +834,7 @@ static int object_speaker_add_exec(bContext *C, wmOperator *op) strcpy(nlt->name, "SoundTrack"); BKE_nlastrip_validate_name(adt, strip); - WM_event_add_notifier(C, NC_ANIMATION|ND_NLA|NA_EDITED, NULL); + WM_event_add_notifier(C, NC_ANIMATION | ND_NLA | NA_EDITED, NULL); } return OPERATOR_FINISHED; @@ -852,7 +852,7 @@ void OBJECT_OT_speaker_add(wmOperatorType *ot) ot->poll = ED_operator_objectmode; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; ED_object_add_generic_props(ot, TRUE); } @@ -874,10 +874,10 @@ void OBJECT_OT_group_instance_add(wmOperatorType *ot) ot->poll = ED_operator_objectmode; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ - prop= RNA_def_enum(ot->srna, "group", DummyRNA_NULL_items, 0, "Group", ""); + prop = RNA_def_enum(ot->srna, "group", DummyRNA_NULL_items, 0, "Group", ""); RNA_def_enum_funcs(prop, RNA_group_itemf); ot->prop = prop; ED_object_add_generic_props(ot, FALSE); @@ -892,21 +892,21 @@ void ED_base_object_free_and_unlink(Main *bmain, Scene *scene, Base *base) DAG_id_type_tag(bmain, ID_OB); BLI_remlink(&scene->base, base); free_libblock_us(&bmain->object, base->object); - if (scene->basact==base) scene->basact= NULL; + if (scene->basact == base) scene->basact = NULL; MEM_freeN(base); } static int object_delete_exec(bContext *C, wmOperator *op) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); - const short use_global= RNA_boolean_get(op->ptr, "use_global"); + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); + const short use_global = RNA_boolean_get(op->ptr, "use_global"); /* int islamp= 0; */ /* UNUSED */ if (CTX_data_edit_object(C)) return OPERATOR_CANCELLED; - CTX_DATA_BEGIN(C, Base*, base, selected_bases) { + CTX_DATA_BEGIN (C, Base *, base, selected_bases) { /* if (base->object->type==OB_LAMP) islamp= 1; */ @@ -920,9 +920,9 @@ static int object_delete_exec(bContext *C, wmOperator *op) Scene *scene_iter; Base *base_other; - for (scene_iter= bmain->scene.first; scene_iter; scene_iter= scene_iter->id.next) { + for (scene_iter = bmain->scene.first; scene_iter; scene_iter = scene_iter->id.next) { if (scene_iter != scene && !(scene_iter->id.lib)) { - base_other= object_in_scene(base->object, scene_iter); + base_other = object_in_scene(base->object, scene_iter); if (base_other) { ED_base_object_free_and_unlink(bmain, scene_iter, base_other); } @@ -937,8 +937,8 @@ static int object_delete_exec(bContext *C, wmOperator *op) DAG_scene_sort(bmain, scene); DAG_ids_flush_update(bmain, 0); - WM_event_add_notifier(C, NC_SCENE|ND_OB_ACTIVE, scene); - WM_event_add_notifier(C, NC_SCENE|ND_LAYER_CONTENT, scene); + WM_event_add_notifier(C, NC_SCENE | ND_OB_ACTIVE, scene); + WM_event_add_notifier(C, NC_SCENE | ND_LAYER_CONTENT, scene); return OPERATOR_FINISHED; } @@ -956,7 +956,7 @@ void OBJECT_OT_delete(wmOperatorType *ot) ot->poll = ED_operator_objectmode; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; RNA_def_boolean(ot->srna, "use_global", 0, "Delete Globally", "Remove object from all scenes"); } @@ -966,81 +966,81 @@ void OBJECT_OT_delete(wmOperatorType *ot) /* after copying objects, copied data should get new pointers */ static void copy_object_set_idnew(bContext *C, int dupflag) { - Main *bmain= CTX_data_main(C); + Main *bmain = CTX_data_main(C); Material *ma, *mao; ID *id; int a; /* XXX check object pointers */ - CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) { + CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects) { object_relink(ob); } CTX_DATA_END; /* materials */ - if ( dupflag & USER_DUP_MAT) { - mao= bmain->mat.first; + if (dupflag & USER_DUP_MAT) { + mao = bmain->mat.first; while (mao) { if (mao->id.newid) { - ma= (Material *)mao->id.newid; + ma = (Material *)mao->id.newid; if (dupflag & USER_DUP_TEX) { - for (a=0; amtex[a]) { - id= (ID *)ma->mtex[a]->tex; + id = (ID *)ma->mtex[a]->tex; if (id) { ID_NEW_US(ma->mtex[a]->tex) - else ma->mtex[a]->tex= copy_texture(ma->mtex[a]->tex); + else ma->mtex[a]->tex = copy_texture(ma->mtex[a]->tex); id->us--; } } } } #if 0 // XXX old animation system - id= (ID *)ma->ipo; + id = (ID *)ma->ipo; if (id) { ID_NEW_US(ma->ipo) - else ma->ipo= copy_ipo(ma->ipo); + else ma->ipo = copy_ipo(ma->ipo); id->us--; } #endif // XXX old animation system } - mao= mao->id.next; + mao = mao->id.next; } } #if 0 // XXX old animation system - /* lamps */ - if ( dupflag & USER_DUP_IPO) { - Lamp *la= bmain->lamp.first; + /* lamps */ + if (dupflag & USER_DUP_IPO) { + Lamp *la = bmain->lamp.first; while (la) { if (la->id.newid) { - Lamp *lan= (Lamp *)la->id.newid; - id= (ID *)lan->ipo; + Lamp *lan = (Lamp *)la->id.newid; + id = (ID *)lan->ipo; if (id) { ID_NEW_US(lan->ipo) - else lan->ipo= copy_ipo(lan->ipo); + else lan->ipo = copy_ipo(lan->ipo); id->us--; } } - la= la->id.next; + la = la->id.next; } } /* ipos */ - ipo= bmain->ipo.first; + ipo = bmain->ipo.first; while (ipo) { - if (ipo->id.lib==NULL && ipo->id.newid) { - Ipo *ipon= (Ipo *)ipo->id.newid; + if (ipo->id.lib == NULL && ipo->id.newid) { + Ipo *ipon = (Ipo *)ipo->id.newid; IpoCurve *icu; - for (icu= ipon->curve.first; icu; icu= icu->next) { + for (icu = ipon->curve.first; icu; icu = icu->next) { if (icu->driver) { ID_NEW(icu->driver->ob); } } } - ipo= ipo->id.next; + ipo = ipo->id.next; } #endif // XXX old animation system @@ -1057,42 +1057,42 @@ static void make_object_duplilist_real(bContext *C, Scene *scene, Base *base, { ListBase *lb; DupliObject *dob; - GHash *dupli_gh= NULL, *parent_gh= NULL; + GHash *dupli_gh = NULL, *parent_gh = NULL; if (!(base->object->transflag & OB_DUPLI)) return; - lb= object_duplilist(scene, base->object); + lb = object_duplilist(scene, base->object); if (use_hierarchy || use_base_parent) { - dupli_gh= BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp, "make_object_duplilist_real dupli_gh"); - parent_gh= BLI_ghash_new(BLI_ghashutil_pairhash, BLI_ghashutil_paircmp, "make_object_duplilist_real parent_gh"); + dupli_gh = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp, "make_object_duplilist_real dupli_gh"); + parent_gh = BLI_ghash_new(BLI_ghashutil_pairhash, BLI_ghashutil_paircmp, "make_object_duplilist_real parent_gh"); } - for (dob= lb->first; dob; dob= dob->next) { + for (dob = lb->first; dob; dob = dob->next) { Base *basen; - Object *ob= copy_object(dob->ob); + Object *ob = copy_object(dob->ob); /* font duplis can have a totcol without material, we get them from parent * should be implemented better... */ - if (ob->mat==NULL) ob->totcol= 0; + if (ob->mat == NULL) ob->totcol = 0; - basen= MEM_dupallocN(base); - basen->flag &= ~(OB_FROMDUPLI|OB_FROMGROUP); - ob->flag= basen->flag; - basen->lay= base->lay; - BLI_addhead(&scene->base, basen); /* addhead: othwise eternal loop */ - basen->object= ob; + basen = MEM_dupallocN(base); + basen->flag &= ~(OB_FROMDUPLI | OB_FROMGROUP); + ob->flag = basen->flag; + basen->lay = base->lay; + BLI_addhead(&scene->base, basen); /* addhead: othwise eternal loop */ + basen->object = ob; /* make sure apply works */ BKE_free_animdata(&ob->id); ob->adt = NULL; - ob->parent= NULL; - ob->constraints.first= ob->constraints.last= NULL; - ob->disp.first= ob->disp.last= NULL; + ob->parent = NULL; + ob->constraints.first = ob->constraints.last = NULL; + ob->disp.first = ob->disp.last = NULL; ob->transflag &= ~OB_DUPLI; - ob->lay= base->lay; + ob->lay = base->lay; copy_m4_m4(ob->obmat, dob->mat); object_apply_mat4(ob, ob->obmat, FALSE, FALSE); @@ -1104,13 +1104,13 @@ static void make_object_duplilist_real(bContext *C, Scene *scene, Base *base, } if (use_hierarchy) { - for (dob= lb->first; dob; dob= dob->next) { + for (dob = lb->first; dob; dob = dob->next) { /* original parents */ - Object *ob_src= dob->ob; - Object *ob_src_par= ob_src->parent; + Object *ob_src = dob->ob; + Object *ob_src_par = ob_src->parent; - Object *ob_dst= BLI_ghash_lookup(dupli_gh, dob); - Object *ob_dst_par= NULL; + Object *ob_dst = BLI_ghash_lookup(dupli_gh, dob); + Object *ob_dst_par = NULL; /* find parent that was also made real */ if (ob_src_par) { @@ -1121,19 +1121,19 @@ static void make_object_duplilist_real(bContext *C, Scene *scene, Base *base, if (ob_dst_par) { /* allow for all possible parent types */ - ob_dst->partype= ob_src->partype; + ob_dst->partype = ob_src->partype; BLI_strncpy(ob_dst->parsubstr, ob_src->parsubstr, sizeof(ob_dst->parsubstr)); - ob_dst->par1= ob_src->par1; - ob_dst->par2= ob_src->par2; - ob_dst->par3= ob_src->par3; + ob_dst->par1 = ob_src->par1; + ob_dst->par2 = ob_src->par2; + ob_dst->par3 = ob_src->par3; copy_m4_m4(ob_dst->parentinv, ob_src->parentinv); - ob_dst->parent= ob_dst_par; + ob_dst->parent = ob_dst_par; } else if (use_base_parent) { - ob_dst->parent= base->object; - ob_dst->partype= PAROBJECT; + ob_dst->parent = base->object; + ob_dst->partype = PAROBJECT; } if (ob_dst->parent) { @@ -1151,12 +1151,12 @@ static void make_object_duplilist_real(bContext *C, Scene *scene, Base *base, else if (use_base_parent) { /* since we are ignoring the internal hierarchy - parent all to the * base object */ - for (dob= lb->first; dob; dob= dob->next) { + for (dob = lb->first; dob; dob = dob->next) { /* original parents */ - Object *ob_dst= BLI_ghash_lookup(dupli_gh, dob); + Object *ob_dst = BLI_ghash_lookup(dupli_gh, dob); - ob_dst->parent= base->object; - ob_dst->partype= PAROBJECT; + ob_dst->parent = base->object; + ob_dst->partype = PAROBJECT; /* similer to the code above, see comments */ invert_m4_m4(ob_dst->parentinv, dob->mat); @@ -1181,26 +1181,26 @@ static void make_object_duplilist_real(bContext *C, Scene *scene, Base *base, static int object_duplicates_make_real_exec(bContext *C, wmOperator *op) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); - const short use_base_parent= RNA_boolean_get(op->ptr, "use_base_parent"); - const short use_hierarchy= RNA_boolean_get(op->ptr, "use_hierarchy"); + const short use_base_parent = RNA_boolean_get(op->ptr, "use_base_parent"); + const short use_hierarchy = RNA_boolean_get(op->ptr, "use_hierarchy"); clear_id_newpoins(); - CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) { + CTX_DATA_BEGIN (C, Base *, base, selected_editable_bases) { make_object_duplilist_real(C, scene, base, use_base_parent, use_hierarchy); /* dependencies were changed */ - WM_event_add_notifier(C, NC_OBJECT|ND_PARENT, base->object); + WM_event_add_notifier(C, NC_OBJECT | ND_PARENT, base->object); } CTX_DATA_END; DAG_scene_sort(bmain, scene); DAG_ids_flush_update(bmain, 0); WM_event_add_notifier(C, NC_SCENE, scene); - WM_main_add_notifier(NC_OBJECT|ND_DRAW, NULL); + WM_main_add_notifier(NC_OBJECT | ND_DRAW, NULL); return OPERATOR_FINISHED; } @@ -1219,7 +1219,7 @@ void OBJECT_OT_duplicates_make_real(wmOperatorType *ot) ot->poll = ED_operator_objectmode; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; RNA_def_boolean(ot->srna, "use_base_parent", 0, "Parent", "Parent newly created objects to the original duplicator"); RNA_def_boolean(ot->srna, "use_hierarchy", 0, "Keep Hierarchy", "Maintain parent child relationships"); @@ -1227,15 +1227,16 @@ void OBJECT_OT_duplicates_make_real(wmOperatorType *ot) /**************************** Convert **************************/ -static EnumPropertyItem convert_target_items[]= { +static EnumPropertyItem convert_target_items[] = { {OB_CURVE, "CURVE", ICON_OUTLINER_OB_CURVE, "Curve from Mesh/Text", ""}, {OB_MESH, "MESH", ICON_OUTLINER_OB_MESH, "Mesh from Curve/Meta/Surf/Text", ""}, - {0, NULL, 0, NULL, NULL}}; + {0, NULL, 0, NULL, NULL} +}; static void curvetomesh(Scene *scene, Object *ob) { if (ob->disp.first == NULL) - makeDispListCurveTypes(scene, ob, 0); /* force creation */ + makeDispListCurveTypes(scene, ob, 0); /* force creation */ nurbs_to_mesh(ob); /* also does users */ @@ -1245,8 +1246,8 @@ static void curvetomesh(Scene *scene, Object *ob) static int convert_poll(bContext *C) { - Object *obact= CTX_data_active_object(C); - Scene *scene= CTX_data_scene(C); + Object *obact = CTX_data_active_object(C); + Scene *scene = CTX_data_scene(C); return (!scene->id.lib && obact && scene->obedit != obact && (obact->flag & SELECT) && !(obact->id.lib)); } @@ -1258,16 +1259,16 @@ static Base *duplibase_for_convert(Scene *scene, Base *base, Object *ob) Base *basen; if (ob == NULL) { - ob= base->object; + ob = base->object; } - obn= copy_object(ob); - obn->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME; + obn = copy_object(ob); + obn->recalc |= OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME; - basen= MEM_mallocN(sizeof(Base), "duplibase"); - *basen= *base; - BLI_addhead(&scene->base, basen); /* addhead: otherwise eternal loop */ - basen->object= obn; + basen = MEM_mallocN(sizeof(Base), "duplibase"); + *basen = *base; + BLI_addhead(&scene->base, basen); /* addhead: otherwise eternal loop */ + basen->object = obn; basen->flag |= SELECT; obn->flag |= SELECT; base->flag &= ~SELECT; @@ -1278,24 +1279,24 @@ static Base *duplibase_for_convert(Scene *scene, Base *base, Object *ob) static int convert_exec(bContext *C, wmOperator *op) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); - Base *basen=NULL, *basact=NULL, *basedel=NULL; - Object *ob, *ob1, *newob, *obact= CTX_data_active_object(C); + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); + Base *basen = NULL, *basact = NULL, *basedel = NULL; + Object *ob, *ob1, *newob, *obact = CTX_data_active_object(C); DerivedMesh *dm; Curve *cu; Nurb *nu; MetaBall *mb; Mesh *me; - const short target= RNA_enum_get(op->ptr, "target"); - const short keep_original= RNA_boolean_get(op->ptr, "keep_original"); - int a, mballConverted= 0; + const short target = RNA_enum_get(op->ptr, "target"); + const short keep_original = RNA_boolean_get(op->ptr, "keep_original"); + int a, mballConverted = 0; /* don't forget multiple users! */ /* reset flags */ - CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) { - ob= base->object; + CTX_DATA_BEGIN (C, Base *, base, selected_editable_bases) { + ob = base->object; ob->flag &= ~OB_DONE; /* flag data thats not been edited (only needed for !keep_original) */ @@ -1305,8 +1306,8 @@ static int convert_exec(bContext *C, wmOperator *op) } CTX_DATA_END; - CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) { - ob= base->object; + CTX_DATA_BEGIN (C, Base *, base, selected_editable_bases) { + ob = base->object; if (ob->flag & OB_DONE || !IS_TAGGED(ob->data)) { if (ob->type != target) { @@ -1319,23 +1320,23 @@ static int convert_exec(bContext *C, wmOperator *op) /* When 2 objects with linked data are selected, converting both * would keep modifiers on all but the converted object [#26003] */ if (ob->type == OB_MESH) { - object_free_modifiers(ob); /* after derivedmesh calls! */ + object_free_modifiers(ob); /* after derivedmesh calls! */ } } } - else if (ob->type==OB_MESH && target == OB_CURVE) { + else if (ob->type == OB_MESH && target == OB_CURVE) { ob->flag |= OB_DONE; if (keep_original) { - basen= duplibase_for_convert(scene, base, NULL); - newob= basen->object; + basen = duplibase_for_convert(scene, base, NULL); + newob = basen->object; /* decrement original mesh's usage count */ - me= newob->data; + me = newob->data; me->id.us--; /* make a new copy of the mesh */ - newob->data= copy_mesh(me); + newob->data = copy_mesh(me); } else { newob = ob; @@ -1343,33 +1344,33 @@ static int convert_exec(bContext *C, wmOperator *op) mesh_to_curve(scene, newob); - if (newob->type==OB_CURVE) - object_free_modifiers(newob); /* after derivedmesh calls! */ + if (newob->type == OB_CURVE) + object_free_modifiers(newob); /* after derivedmesh calls! */ } - else if (ob->type==OB_MESH && ob->modifiers.first) { /* converting a mesh with no modifiers causes a segfault */ + else if (ob->type == OB_MESH && ob->modifiers.first) { /* converting a mesh with no modifiers causes a segfault */ ob->flag |= OB_DONE; if (keep_original) { - basen= duplibase_for_convert(scene, base, NULL); - newob= basen->object; + basen = duplibase_for_convert(scene, base, NULL); + newob = basen->object; /* decrement original mesh's usage count */ - me= newob->data; + me = newob->data; me->id.us--; /* make a new copy of the mesh */ - newob->data= copy_mesh(me); + newob->data = copy_mesh(me); } else { newob = ob; - ob->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME; + ob->recalc |= OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME; } /* make new mesh data from the original copy */ /* note: get the mesh from the original, not from the copy in some * cases this doesnt give correct results (when MDEF is used for eg) */ - dm= mesh_get_derived_final(scene, newob, CD_MASK_MESH); + dm = mesh_get_derived_final(scene, newob, CD_MASK_MESH); /* dm= mesh_create_derived_no_deform(ob1, NULL); this was called original (instead of get_derived). man o man why! (ton) */ DM_to_mesh(dm, newob->data, newob); @@ -1377,64 +1378,64 @@ static int convert_exec(bContext *C, wmOperator *op) /* re-tessellation is called by DM_to_mesh */ dm->release(dm); - object_free_modifiers(newob); /* after derivedmesh calls! */ + object_free_modifiers(newob); /* after derivedmesh calls! */ } - else if (ob->type==OB_FONT) { + else if (ob->type == OB_FONT) { ob->flag |= OB_DONE; if (keep_original) { - basen= duplibase_for_convert(scene, base, NULL); - newob= basen->object; + basen = duplibase_for_convert(scene, base, NULL); + newob = basen->object; /* decrement original curve's usage count */ ((Curve *)newob->data)->id.us--; /* make a new copy of the curve */ - newob->data= copy_curve(ob->data); + newob->data = BKE_curve_copy(ob->data); } else { - newob= ob; + newob = ob; } - cu= newob->data; + cu = newob->data; if (!newob->disp.first) makeDispListCurveTypes(scene, newob, 0); - newob->type= OB_CURVE; - cu->type= OB_CURVE; + newob->type = OB_CURVE; + cu->type = OB_CURVE; if (cu->vfont) { cu->vfont->id.us--; - cu->vfont= NULL; + cu->vfont = NULL; } if (cu->vfontb) { cu->vfontb->id.us--; - cu->vfontb= NULL; + cu->vfontb = NULL; } if (cu->vfonti) { cu->vfonti->id.us--; - cu->vfonti= NULL; + cu->vfonti = NULL; } if (cu->vfontbi) { cu->vfontbi->id.us--; - cu->vfontbi= NULL; + cu->vfontbi = NULL; } if (!keep_original) { /* other users */ - if (cu->id.us>1) { - for (ob1= bmain->object.first; ob1; ob1=ob1->id.next) { - if (ob1->data==ob->data) { - ob1->type= OB_CURVE; - ob1->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME; + if (cu->id.us > 1) { + for (ob1 = bmain->object.first; ob1; ob1 = ob1->id.next) { + if (ob1->data == ob->data) { + ob1->type = OB_CURVE; + ob1->recalc |= OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME; } } } } - for (nu=cu->nurb.first; nu; nu=nu->next) - nu->charidx= 0; + for (nu = cu->nurb.first; nu; nu = nu->next) + nu->charidx = 0; if (target == OB_MESH) { curvetomesh(scene, newob); @@ -1448,17 +1449,17 @@ static int convert_exec(bContext *C, wmOperator *op) if (target == OB_MESH) { if (keep_original) { - basen= duplibase_for_convert(scene, base, NULL); - newob= basen->object; + basen = duplibase_for_convert(scene, base, NULL); + newob = basen->object; /* decrement original curve's usage count */ ((Curve *)newob->data)->id.us--; /* make a new copy of the curve */ - newob->data= copy_curve(ob->data); + newob->data = BKE_curve_copy(ob->data); } else { - newob= ob; + newob = ob; /* meshes doesn't use displist */ freedisplist(&newob->disp); @@ -1467,13 +1468,13 @@ static int convert_exec(bContext *C, wmOperator *op) curvetomesh(scene, newob); } } - else if (ob->type==OB_MBALL && target == OB_MESH) { + else if (ob->type == OB_MBALL && target == OB_MESH) { Object *baseob; base->flag &= ~SELECT; ob->flag &= ~SELECT; - baseob= find_basis_mball(scene, ob); + baseob = BKE_metaball_basis_find(scene, ob); if (ob != baseob) { /* if motherball is converting it would be marked as done later */ @@ -1487,29 +1488,29 @@ static int convert_exec(bContext *C, wmOperator *op) if (!(baseob->flag & OB_DONE)) { baseob->flag |= OB_DONE; - basen= duplibase_for_convert(scene, base, baseob); - newob= basen->object; + basen = duplibase_for_convert(scene, base, baseob); + newob = basen->object; - mb= newob->data; + mb = newob->data; mb->id.us--; - newob->data= add_mesh("Mesh"); - newob->type= OB_MESH; + newob->data = add_mesh("Mesh"); + newob->type = OB_MESH; - me= newob->data; - me->totcol= mb->totcol; + me = newob->data; + me->totcol = mb->totcol; if (newob->totcol) { - me->mat= MEM_dupallocN(mb->mat); - for (a=0; atotcol; a++) id_us_plus((ID *)me->mat[a]); + me->mat = MEM_dupallocN(mb->mat); + for (a = 0; a < newob->totcol; a++) id_us_plus((ID *)me->mat[a]); } mball_to_mesh(&baseob->disp, newob->data); if (obact->type == OB_MBALL) { - basact= basen; + basact = basen; } - mballConverted= 1; + mballConverted = 1; } } else { @@ -1522,10 +1523,10 @@ static int convert_exec(bContext *C, wmOperator *op) if (basen) { if (ob == obact) { /* store new active base to update BASACT */ - basact= basen; + basact = basen; } - basen= NULL; + basen = NULL; } if (!keep_original && (ob->flag & OB_DONE)) { @@ -1545,11 +1546,11 @@ static int convert_exec(bContext *C, wmOperator *op) if (!keep_original) { if (mballConverted) { - Base *base= scene->base.first, *tmpbase; + Base *base = scene->base.first, *tmpbase; while (base) { - ob= base->object; - tmpbase= base; - base= base->next; + ob = base->object; + tmpbase = base; + base = base->next; if (ob->type == OB_MBALL) { ED_base_object_free_and_unlink(bmain, scene, tmpbase); @@ -1567,16 +1568,16 @@ static int convert_exec(bContext *C, wmOperator *op) if (basact) { /* active base was changed */ ED_base_object_activate(C, basact); - BASACT= basact; + BASACT = basact; } else if (BASACT->object->flag & OB_DONE) { - WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, BASACT->object); - WM_event_add_notifier(C, NC_OBJECT|ND_DATA, BASACT->object); + WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, BASACT->object); + WM_event_add_notifier(C, NC_OBJECT | ND_DATA, BASACT->object); } DAG_scene_sort(bmain, scene); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, scene); - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, scene); + WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, scene); return OPERATOR_FINISHED; } @@ -1595,7 +1596,7 @@ void OBJECT_OT_convert(wmOperatorType *ot) ot->poll = convert_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ ot->prop = RNA_def_enum(ot->srna, "target", convert_target_items, OB_MESH, "Target", "Type of object to convert to"); @@ -1614,28 +1615,28 @@ void OBJECT_OT_convert(wmOperatorType *ot) /* leaves selection of base/object unaltered */ static Base *object_add_duplicate_internal(Main *bmain, Scene *scene, Base *base, int dupflag) { - Base *basen= NULL; + Base *basen = NULL; Material ***matarar; Object *ob, *obn; ID *id; int a, didit; - ob= base->object; + ob = base->object; if (ob->mode & OB_MODE_POSE) { ; /* nothing? */ } else { - obn= copy_object(ob); - obn->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME; + obn = copy_object(ob); + obn->recalc |= OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME; - basen= MEM_mallocN(sizeof(Base), "duplibase"); - *basen= *base; - BLI_addhead(&scene->base, basen); /* addhead: prevent eternal loop */ - basen->object= obn; + basen = MEM_mallocN(sizeof(Base), "duplibase"); + *basen = *base; + BLI_addhead(&scene->base, basen); /* addhead: prevent eternal loop */ + basen->object = obn; if (basen->flag & OB_FROMGROUP) { Group *group; - for (group= bmain->group.first; group; group= group->id.next) { + for (group = bmain->group.first; group; group = group->id.next) { if (object_in_group(ob, group)) add_to_group(group, obn, scene, basen); } @@ -1647,11 +1648,11 @@ static Base *object_add_duplicate_internal(Main *bmain, Scene *scene, Base *base } if (dupflag & USER_DUP_MAT) { - for (a=0; atotcol; a++) { - id= (ID *)obn->mat[a]; + for (a = 0; a < obn->totcol; a++) { + id = (ID *)obn->mat[a]; if (id) { ID_NEW_US(obn->mat[a]) - else obn->mat[a]= copy_material(obn->mat[a]); + else obn->mat[a] = copy_material(obn->mat[a]); id->us--; if (dupflag & USER_DUP_ACT) { @@ -1662,11 +1663,11 @@ static Base *object_add_duplicate_internal(Main *bmain, Scene *scene, Base *base } if (dupflag & USER_DUP_PSYS) { ParticleSystem *psys; - for (psys=obn->particlesystem.first; psys; psys=psys->next) { - id= (ID*) psys->part; + for (psys = obn->particlesystem.first; psys; psys = psys->next) { + id = (ID *) psys->part; if (id) { ID_NEW_US(psys->part) - else psys->part= psys_copy_settings(psys->part); + else psys->part = psys_copy_settings(psys->part); if (dupflag & USER_DUP_ACT) { BKE_copy_animdata_id_action(&psys->part->id); @@ -1677,71 +1678,71 @@ static Base *object_add_duplicate_internal(Main *bmain, Scene *scene, Base *base } } - id= obn->data; - didit= 0; + id = obn->data; + didit = 0; - switch(obn->type) { + switch (obn->type) { case OB_MESH: if (dupflag & USER_DUP_MESH) { - ID_NEW_US2( obn->data ) + ID_NEW_US2(obn->data) else { - obn->data= copy_mesh(obn->data); + obn->data = copy_mesh(obn->data); if (obn->fluidsimSettings) { obn->fluidsimSettings->orgMesh = (Mesh *)obn->data; } - didit= 1; + didit = 1; } id->us--; } break; case OB_CURVE: if (dupflag & USER_DUP_CURVE) { - ID_NEW_US2(obn->data ) + ID_NEW_US2(obn->data) else { - obn->data= copy_curve(obn->data); - didit= 1; + obn->data = BKE_curve_copy(obn->data); + didit = 1; } id->us--; } break; case OB_SURF: if (dupflag & USER_DUP_SURF) { - ID_NEW_US2( obn->data ) + ID_NEW_US2(obn->data) else { - obn->data= copy_curve(obn->data); - didit= 1; + obn->data = BKE_curve_copy(obn->data); + didit = 1; } id->us--; } break; case OB_FONT: if (dupflag & USER_DUP_FONT) { - ID_NEW_US2( obn->data ) + ID_NEW_US2(obn->data) else { - obn->data= copy_curve(obn->data); - didit= 1; + obn->data = BKE_curve_copy(obn->data); + didit = 1; } id->us--; } break; case OB_MBALL: if (dupflag & USER_DUP_MBALL) { - ID_NEW_US2(obn->data ) + ID_NEW_US2(obn->data) else { - obn->data= copy_mball(obn->data); - didit= 1; + obn->data = BKE_metaball_copy(obn->data); + didit = 1; } id->us--; } break; case OB_LAMP: if (dupflag & USER_DUP_LAMP) { - ID_NEW_US2(obn->data ) + ID_NEW_US2(obn->data) else { - obn->data= copy_lamp(obn->data); - didit= 1; + obn->data = copy_lamp(obn->data); + didit = 1; } id->us--; } @@ -1751,44 +1752,44 @@ static Base *object_add_duplicate_internal(Main *bmain, Scene *scene, Base *base obn->recalc |= OB_RECALC_DATA; if (obn->pose) obn->pose->flag |= POSE_RECALC; - if (dupflag & USER_DUP_ARM) { - ID_NEW_US2(obn->data ) - else { - obn->data= copy_armature(obn->data); - armature_rebuild_pose(obn, obn->data); - didit= 1; - } - id->us--; + if (dupflag & USER_DUP_ARM) { + ID_NEW_US2(obn->data) + else { + obn->data = copy_armature(obn->data); + armature_rebuild_pose(obn, obn->data); + didit = 1; } + id->us--; + } - break; + break; case OB_LATTICE: - if (dupflag!=0) { - ID_NEW_US2(obn->data ) + if (dupflag != 0) { + ID_NEW_US2(obn->data) else { - obn->data= copy_lattice(obn->data); - didit= 1; + obn->data = copy_lattice(obn->data); + didit = 1; } id->us--; } break; case OB_CAMERA: - if (dupflag!=0) { - ID_NEW_US2(obn->data ) + if (dupflag != 0) { + ID_NEW_US2(obn->data) else { - obn->data= copy_camera(obn->data); - didit= 1; + obn->data = copy_camera(obn->data); + didit = 1; } id->us--; } break; case OB_SPEAKER: - if (dupflag!=0) { - ID_NEW_US2(obn->data ) + if (dupflag != 0) { + ID_NEW_US2(obn->data) else { - obn->data= copy_speaker(obn->data); - didit= 1; + obn->data = copy_speaker(obn->data); + didit = 1; } id->us--; } @@ -1805,13 +1806,13 @@ static Base *object_add_duplicate_internal(Main *bmain, Scene *scene, Base *base BKE_copy_animdata_id_action((ID *)obn->data); if (key) { - BKE_copy_animdata_id_action((ID*)key); + BKE_copy_animdata_id_action((ID *)key); } /* Update the duplicated action in the action actuators */ for (act = obn->actuators.first; act; act = act->next) { if (act->type == ACT_ACTION) { - bActionActuator* actact = (bActionActuator*) act->data; + bActionActuator *actact = (bActionActuator *) act->data; if (ob->adt && actact->act == ob->adt->action) { actact->act = obn->adt->action; } @@ -1820,13 +1821,13 @@ static Base *object_add_duplicate_internal(Main *bmain, Scene *scene, Base *base } if (dupflag & USER_DUP_MAT) { - matarar= give_matarar(obn); + matarar = give_matarar(obn); if (matarar) { - for (a=0; atotcol; a++) { - id= (ID *)(*matarar)[a]; + for (a = 0; a < obn->totcol; a++) { + id = (ID *)(*matarar)[a]; if (id) { - ID_NEW_US( (*matarar)[a] ) - else (*matarar)[a]= copy_material((*matarar)[a]); + ID_NEW_US( (*matarar)[a]) + else (*matarar)[a] = copy_material((*matarar)[a]); id->us--; } @@ -1847,14 +1848,14 @@ Base *ED_object_add_duplicate(Main *bmain, Scene *scene, Base *base, int dupflag Object *ob; clear_id_newpoins(); - clear_sca_new_poins(); /* sensor/contr/act */ + clear_sca_new_poins(); /* sensor/contr/act */ - basen= object_add_duplicate_internal(bmain, scene, base, dupflag); + basen = object_add_duplicate_internal(bmain, scene, base, dupflag); if (basen == NULL) { return NULL; } - ob= basen->object; + ob = basen->object; /* link own references to the newly duplicated data [#26816] */ object_relink(ob); @@ -1871,16 +1872,16 @@ Base *ED_object_add_duplicate(Main *bmain, Scene *scene, Base *base, int dupflag /* contextual operator dupli */ static int duplicate_exec(bContext *C, wmOperator *op) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); - int linked= RNA_boolean_get(op->ptr, "linked"); - int dupflag= (linked)? 0: U.dupflag; + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); + int linked = RNA_boolean_get(op->ptr, "linked"); + int dupflag = (linked) ? 0 : U.dupflag; clear_id_newpoins(); - clear_sca_new_poins(); /* sensor/contr/act */ + clear_sca_new_poins(); /* sensor/contr/act */ - CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) { - Base *basen= object_add_duplicate_internal(bmain, scene, base, dupflag); + CTX_DATA_BEGIN (C, Base *, base, selected_editable_bases) { + Base *basen = object_add_duplicate_internal(bmain, scene, base, dupflag); /* note that this is safe to do with this context iterator, * the list is made in advance */ @@ -1891,7 +1892,7 @@ static int duplicate_exec(bContext *C, wmOperator *op) } /* new object becomes active */ - if (BASACT==base) + if (BASACT == base) ED_base_object_activate(C, basen); if (basen->object->data) { @@ -1905,7 +1906,7 @@ static int duplicate_exec(bContext *C, wmOperator *op) DAG_scene_sort(bmain, scene); DAG_ids_flush_update(bmain, 0); - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); + WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, scene); return OPERATOR_FINISHED; } @@ -1924,11 +1925,11 @@ void OBJECT_OT_duplicate(wmOperatorType *ot) ot->poll = ED_operator_objectmode; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* to give to transform */ RNA_def_boolean(ot->srna, "linked", 0, "Linked", "Duplicate object but not object data, linking to the original data"); - prop= RNA_def_enum(ot->srna, "mode", transform_mode_types, TFM_TRANSLATION, "Mode", ""); + prop = RNA_def_enum(ot->srna, "mode", transform_mode_types, TFM_TRANSLATION, "Mode", ""); RNA_def_property_flag(prop, PROP_HIDDEN); } @@ -1937,36 +1938,36 @@ void OBJECT_OT_duplicate(wmOperatorType *ot) static int add_named_exec(bContext *C, wmOperator *op) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); Base *basen, *base; Object *ob; - int linked= RNA_boolean_get(op->ptr, "linked"); - int dupflag= (linked)? 0: U.dupflag; - char name[MAX_ID_NAME-2]; + int linked = RNA_boolean_get(op->ptr, "linked"); + int dupflag = (linked) ? 0 : U.dupflag; + char name[MAX_ID_NAME - 2]; /* find object, create fake base */ RNA_string_get(op->ptr, "name", name); - ob= (Object *)find_id("OB", name); - if (ob==NULL) + ob = (Object *)find_id("OB", name); + if (ob == NULL) return OPERATOR_CANCELLED; - base= MEM_callocN(sizeof(Base), "duplibase"); - base->object= ob; - base->flag= ob->flag; + base = MEM_callocN(sizeof(Base), "duplibase"); + base->object = ob; + base->flag = ob->flag; /* prepare dupli */ clear_id_newpoins(); - clear_sca_new_poins(); /* sensor/contr/act */ + clear_sca_new_poins(); /* sensor/contr/act */ - basen= object_add_duplicate_internal(bmain, scene, base, dupflag); + basen = object_add_duplicate_internal(bmain, scene, base, dupflag); if (basen == NULL) { MEM_freeN(base); return OPERATOR_CANCELLED; } - basen->lay= basen->object->lay= scene->lay; + basen->lay = basen->object->lay = scene->lay; ED_object_location_from_view(C, basen->object->loc); ED_base_object_activate(C, basen); @@ -1978,7 +1979,7 @@ static int add_named_exec(bContext *C, wmOperator *op) MEM_freeN(base); - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); + WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, scene); return OPERATOR_FINISHED; } @@ -1995,10 +1996,10 @@ void OBJECT_OT_add_named(wmOperatorType *ot) ot->poll = ED_operator_objectmode; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; RNA_def_boolean(ot->srna, "linked", 0, "Linked", "Duplicate object but not object data, linking to the original data"); - RNA_def_string(ot->srna, "name", "Cube", MAX_ID_NAME-2, "Name", "Object name to add"); + RNA_def_string(ot->srna, "name", "Cube", MAX_ID_NAME - 2, "Name", "Object name to add"); } @@ -2006,7 +2007,7 @@ void OBJECT_OT_add_named(wmOperatorType *ot) /**************************** Join *************************/ static int join_poll(bContext *C) { - Object *ob= CTX_data_active_object(C); + Object *ob = CTX_data_active_object(C); if (!ob || ob->id.lib) return 0; @@ -2019,8 +2020,8 @@ static int join_poll(bContext *C) static int join_exec(bContext *C, wmOperator *op) { - Scene *scene= CTX_data_scene(C); - Object *ob= CTX_data_active_object(C); + Scene *scene = CTX_data_scene(C); + Object *ob = CTX_data_active_object(C); if (scene->obedit) { BKE_report(op->reports, RPT_ERROR, "This data does not support joining in editmode"); @@ -2053,13 +2054,13 @@ void OBJECT_OT_join(wmOperatorType *ot) ot->poll = join_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } /**************************** Join as Shape Key*************************/ static int join_shapes_poll(bContext *C) { - Object *ob= CTX_data_active_object(C); + Object *ob = CTX_data_active_object(C); if (!ob || ob->id.lib) return 0; @@ -2072,8 +2073,8 @@ static int join_shapes_poll(bContext *C) static int join_shapes_exec(bContext *C, wmOperator *op) { - Scene *scene= CTX_data_scene(C); - Object *ob= CTX_data_active_object(C); + Scene *scene = CTX_data_scene(C); + Object *ob = CTX_data_active_object(C); if (scene->obedit) { BKE_report(op->reports, RPT_ERROR, "This data does not support joining in editmode"); @@ -2102,5 +2103,5 @@ void OBJECT_OT_join_shapes(wmOperatorType *ot) ot->poll = join_shapes_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } diff --git a/source/blender/editors/object/object_bake.c b/source/blender/editors/object/object_bake.c index 1f012c6f0be..9e8381a72c6 100644 --- a/source/blender/editors/object/object_bake.c +++ b/source/blender/editors/object/object_bake.c @@ -115,9 +115,9 @@ typedef void (*MPassKnownData)(DerivedMesh *lores_dm, DerivedMesh *hires_dm, con const int face_index, const int lvl, const float st[2], float tangmat[3][3], const int x, const int y); -typedef void* (*MInitBakeData)(MultiresBakeRender *bkr, Image* ima); -typedef void (*MApplyBakeData)(void *bake_data); -typedef void (*MFreeBakeData)(void *bake_data); +typedef void * (*MInitBakeData)(MultiresBakeRender *bkr, Image *ima); +typedef void (*MApplyBakeData)(void *bake_data); +typedef void (*MFreeBakeData)(void *bake_data); typedef struct { MVert *mvert; @@ -157,25 +157,25 @@ typedef struct { static void multiresbake_get_normal(const MResolvePixelData *data, float norm[], const int face_num, const int vert_index) { - unsigned int indices[]= {data->mface[face_num].v1, data->mface[face_num].v2, - data->mface[face_num].v3, data->mface[face_num].v4}; - const int smoothnormal= (data->mface[face_num].flag & ME_SMOOTH); + unsigned int indices[] = {data->mface[face_num].v1, data->mface[face_num].v2, + data->mface[face_num].v3, data->mface[face_num].v4}; + const int smoothnormal = (data->mface[face_num].flag & ME_SMOOTH); if (!smoothnormal) { /* flat */ if (data->precomputed_normals) { - copy_v3_v3(norm, &data->precomputed_normals[3*face_num]); + copy_v3_v3(norm, &data->precomputed_normals[3 * face_num]); } else { float nor[3]; float *p0, *p1, *p2; - const int iGetNrVerts= data->mface[face_num].v4!=0 ? 4 : 3; + const int iGetNrVerts = data->mface[face_num].v4 != 0 ? 4 : 3; - p0= data->mvert[indices[0]].co; - p1= data->mvert[indices[1]].co; - p2= data->mvert[indices[2]].co; + p0 = data->mvert[indices[0]].co; + p1 = data->mvert[indices[1]].co; + p2 = data->mvert[indices[2]].co; - if (iGetNrVerts==4) { - float *p3= data->mvert[indices[3]].co; + if (iGetNrVerts == 4) { + float *p3 = data->mvert[indices[3]].co; normal_quad_v3(nor, p0, p1, p2, p3); } else { @@ -186,7 +186,7 @@ static void multiresbake_get_normal(const MResolvePixelData *data, float norm[], } } else { - short *no= data->mvert[indices[vert_index]].no; + short *no = data->mvert[indices[vert_index]].no; normal_short_to_float_v3(norm, no); normalize_v3(norm); @@ -198,15 +198,15 @@ static void init_bake_rast(MBakeRast *bake_rast, const ImBuf *ibuf, const MResol memset(bake_rast, 0, sizeof(MBakeRast)); bake_rast->texels = ibuf->userdata; - bake_rast->w= ibuf->x; - bake_rast->h= ibuf->y; - bake_rast->data= data; - bake_rast->flush_pixel= flush_pixel; + bake_rast->w = ibuf->x; + bake_rast->h = ibuf->y; + bake_rast->data = data; + bake_rast->flush_pixel = flush_pixel; } static void flush_pixel(const MResolvePixelData *data, const int x, const int y) { - float st[2]= {(x+0.5f)/data->w, (y+0.5f)/data->h}; + float st[2] = {(x + 0.5f) / data->w, (y + 0.5f) / data->h}; float *st0, *st1, *st2; float *tang0, *tang1, *tang2; float no0[3], no1[3], no2[3]; @@ -214,37 +214,37 @@ static void flush_pixel(const MResolvePixelData *data, const int x, const int y) float u, v, w, sign; int r; - const int i0= data->i0; - const int i1= data->i1; - const int i2= data->i2; + const int i0 = data->i0; + const int i1 = data->i1; + const int i2 = data->i2; - st0= data->mtface[data->face_index].uv[i0]; - st1= data->mtface[data->face_index].uv[i1]; - st2= data->mtface[data->face_index].uv[i2]; + st0 = data->mtface[data->face_index].uv[i0]; + st1 = data->mtface[data->face_index].uv[i1]; + st2 = data->mtface[data->face_index].uv[i2]; - tang0= data->pvtangent + data->face_index*16 + i0*4; - tang1= data->pvtangent + data->face_index*16 + i1*4; - tang2= data->pvtangent + data->face_index*16 + i2*4; + tang0 = data->pvtangent + data->face_index * 16 + i0 * 4; + tang1 = data->pvtangent + data->face_index * 16 + i1 * 4; + tang2 = data->pvtangent + data->face_index * 16 + i2 * 4; - multiresbake_get_normal(data, no0, data->face_index, i0); /* can optimize these 3 into one call */ + multiresbake_get_normal(data, no0, data->face_index, i0); /* can optimize these 3 into one call */ multiresbake_get_normal(data, no1, data->face_index, i1); multiresbake_get_normal(data, no2, data->face_index, i2); resolve_tri_uv(fUV, st, st0, st1, st2); - u= fUV[0]; - v= fUV[1]; - w= 1-u-v; + u = fUV[0]; + v = fUV[1]; + w = 1 - u - v; /* the sign is the same at all face vertices for any non degenerate face. * Just in case we clamp the interpolated value though. */ - sign= (tang0[3]*u + tang1[3]*v + tang2[3]*w)<0 ? (-1.0f) : 1.0f; + sign = (tang0[3] * u + tang1[3] * v + tang2[3] * w) < 0 ? (-1.0f) : 1.0f; /* this sequence of math is designed specifically as is with great care * to be compatible with our shader. Please don't change without good reason. */ - for (r= 0; r<3; r++) { - from_tang[0][r]= tang0[r]*u + tang1[r]*v + tang2[r]*w; - from_tang[2][r]= no0[r]*u + no1[r]*v + no2[r]*w; + for (r = 0; r < 3; r++) { + from_tang[0][r] = tang0[r] * u + tang1[r] * v + tang2[r] * w; + from_tang[2][r] = no0[r] * u + no1[r] * v + no2[r] * w; } cross_v3_v3v3(from_tang[1], from_tang[2], from_tang[0]); /* B = sign * cross(N, T) */ @@ -258,13 +258,13 @@ static void flush_pixel(const MResolvePixelData *data, const int x, const int y) static void set_rast_triangle(const MBakeRast *bake_rast, const int x, const int y) { - const int w= bake_rast->w; - const int h= bake_rast->h; + const int w = bake_rast->w; + const int h = bake_rast->h; - if (x>=0 && x=0 && ytexels[y*w+x])==0) { + if (x >= 0 && x < w && y >= 0 && y < h) { + if ((bake_rast->texels[y * w + x]) == 0) { flush_pixel(bake_rast->data, x, y); - bake_rast->texels[y*w+x]= FILTER_MASK_USED; + bake_rast->texels[y * w + x] = FILTER_MASK_USED; } } } @@ -274,35 +274,35 @@ static void rasterize_half(const MBakeRast *bake_rast, const float s0_l, const float t0_l, const float s1_l, const float t1_l, const int y0_in, const int y1_in, const int is_mid_right) { - const int s_stable= fabsf(t1_s-t0_s)>FLT_EPSILON ? 1 : 0; - const int l_stable= fabsf(t1_l-t0_l)>FLT_EPSILON ? 1 : 0; - const int w= bake_rast->w; - const int h= bake_rast->h; + const int s_stable = fabsf(t1_s - t0_s) > FLT_EPSILON ? 1 : 0; + const int l_stable = fabsf(t1_l - t0_l) > FLT_EPSILON ? 1 : 0; + const int w = bake_rast->w; + const int h = bake_rast->h; int y, y0, y1; - if (y1_in<=0 || y0_in>=h) + if (y1_in <= 0 || y0_in >= h) return; - y0= y0_in<0 ? 0 : y0_in; - y1= y1_in>=h ? h : y1_in; + y0 = y0_in < 0 ? 0 : y0_in; + y1 = y1_in >= h ? h : y1_in; - for (y= y0; y0 && iXl=w?w:iXr; + if (iXr > 0 && iXl < w) { + iXl = iXl < 0 ? 0 : iXl; + iXr = iXr >= w ? w : iXr; - for (x= iXl; xw; - const int h= bake_rast->h; - float slo= st0_in[0]*w - 0.5f; - float tlo= st0_in[1]*h - 0.5f; - float smi= st1_in[0]*w - 0.5f; - float tmi= st1_in[1]*h - 0.5f; - float shi= st2_in[0]*w - 0.5f; - float thi= st2_in[1]*h - 0.5f; - int is_mid_right= 0, ylo, yhi, yhi_beg; + const int w = bake_rast->w; + const int h = bake_rast->h; + float slo = st0_in[0] * w - 0.5f; + float tlo = st0_in[1] * h - 0.5f; + float smi = st1_in[0] * w - 0.5f; + float tmi = st1_in[1] * h - 0.5f; + float shi = st2_in[0] * w - 0.5f; + float thi = st2_in[1] * h - 0.5f; + int is_mid_right = 0, ylo, yhi, yhi_beg; /* skip degenerates */ - if ((slo==smi && tlo==tmi) || (slo==shi && tlo==thi) || (smi==shi && tmi==thi)) + if ((slo == smi && tlo == tmi) || (slo == shi && tlo == thi) || (smi == shi && tmi == thi)) return; /* sort by T */ - if (tlo>tmi && tlo>thi) { + if (tlo > tmi && tlo > thi) { SWAP(float, shi, slo); SWAP(float, thi, tlo); } - else if (tmi>thi) { + else if (tmi > thi) { SWAP(float, shi, smi); SWAP(float, thi, tmi); } - if (tlo>tmi) { + if (tlo > tmi) { SWAP(float, slo, smi); SWAP(float, tlo, tmi); } /* check if mid point is to the left or to the right of the lo-hi edge */ - is_mid_right= (-(shi-slo)*(tmi-thi) + (thi-tlo)*(smi-shi))>0 ? 1 : 0; - ylo= (int) ceilf(tlo); - yhi_beg= (int) ceilf(tmi); - yhi= (int) ceilf(thi); + is_mid_right = (-(shi - slo) * (tmi - thi) + (thi - tlo) * (smi - shi)) > 0 ? 1 : 0; + ylo = (int) ceilf(tlo); + yhi_beg = (int) ceilf(tmi); + yhi = (int) ceilf(thi); /*if (fTmi>ceilf(fTlo))*/ rasterize_half(bake_rast, slo, tlo, smi, tmi, slo, tlo, shi, thi, ylo, yhi_beg, is_mid_right); @@ -360,69 +360,69 @@ static int multiresbake_test_break(MultiresBakeRender *bkr) return G.afbreek; } -static void do_multires_bake(MultiresBakeRender *bkr, Image* ima, MPassKnownData passKnownData, +static void do_multires_bake(MultiresBakeRender *bkr, Image *ima, MPassKnownData passKnownData, MInitBakeData initBakeData, MApplyBakeData applyBakeData, MFreeBakeData freeBakeData) { - DerivedMesh *dm= bkr->lores_dm; - ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL); - const int lvl= bkr->lvl; - const int tot_face= dm->getNumTessFaces(dm); - MVert *mvert= dm->getVertArray(dm); - MFace *mface= dm->getTessFaceArray(dm); - MTFace *mtface= dm->getTessFaceDataArray(dm, CD_MTFACE); - float *pvtangent= NULL; + DerivedMesh *dm = bkr->lores_dm; + ImBuf *ibuf = BKE_image_get_ibuf(ima, NULL); + const int lvl = bkr->lvl; + const int tot_face = dm->getNumTessFaces(dm); + MVert *mvert = dm->getVertArray(dm); + MFace *mface = dm->getTessFaceArray(dm); + MTFace *mtface = dm->getTessFaceDataArray(dm, CD_MTFACE); + float *pvtangent = NULL; if (CustomData_get_layer_index(&dm->faceData, CD_TANGENT) == -1) DM_add_tangent_layer(dm); - pvtangent= DM_get_tessface_data_layer(dm, CD_TANGENT); + pvtangent = DM_get_tessface_data_layer(dm, CD_TANGENT); if (tot_face > 0) { /* sanity check */ - int f= 0; + int f = 0; MBakeRast bake_rast; - MResolvePixelData data={NULL}; + MResolvePixelData data = {NULL}; - data.mface= mface; - data.mvert= mvert; - data.mtface= mtface; - data.pvtangent= pvtangent; - data.precomputed_normals= dm->getTessFaceDataArray(dm, CD_NORMAL); /* don't strictly need this */ - data.w= ibuf->x; - data.h= ibuf->y; - data.lores_dm= dm; - data.hires_dm= bkr->hires_dm; - data.lvl= lvl; - data.pass_data= passKnownData; + data.mface = mface; + data.mvert = mvert; + data.mtface = mtface; + data.pvtangent = pvtangent; + data.precomputed_normals = dm->getTessFaceDataArray(dm, CD_NORMAL); /* don't strictly need this */ + data.w = ibuf->x; + data.h = ibuf->y; + data.lores_dm = dm; + data.hires_dm = bkr->hires_dm; + data.lvl = lvl; + data.pass_data = passKnownData; if (initBakeData) - data.bake_data= initBakeData(bkr, ima); + data.bake_data = initBakeData(bkr, ima); init_bake_rast(&bake_rast, ibuf, &data, flush_pixel); - for (f= 0; ftpage!=ima) + if (mtfate->tpage != ima) continue; - data.face_index= f; + data.face_index = f; /* might support other forms of diagonal splits later on such as * split by shortest diagonal.*/ - verts[0][0]=0; - verts[1][0]=1; - verts[2][0]=2; + verts[0][0] = 0; + verts[1][0] = 1; + verts[2][0] = 2; - verts[0][1]=0; - verts[1][1]=2; - verts[2][1]=3; + verts[0][1] = 0; + verts[1][1] = 2; + verts[2][1] = 3; - nr_tris= mface[f].v4!=0 ? 2 : 1; - for (t= 0; tbaked_faces++; if (bkr->do_update) - *bkr->do_update= 1; + *bkr->do_update = 1; if (bkr->progress) - *bkr->progress= ((float)bkr->baked_objects + (float)bkr->baked_faces / tot_face) / bkr->tot_obj; + *bkr->progress = ((float)bkr->baked_objects + (float)bkr->baked_faces / tot_face) / bkr->tot_obj; } if (applyBakeData) @@ -452,13 +452,13 @@ static void interp_bilinear_quad_data(float data[4][3], float u, float v, float float vec[3]; copy_v3_v3(res, data[0]); - mul_v3_fl(res, (1-u)*(1-v)); + mul_v3_fl(res, (1 - u) * (1 - v)); copy_v3_v3(vec, data[1]); - mul_v3_fl(vec, u*(1-v)); add_v3_v3(res, vec); + mul_v3_fl(vec, u * (1 - v)); add_v3_v3(res, vec); copy_v3_v3(vec, data[2]); - mul_v3_fl(vec, u*v); add_v3_v3(res, vec); + mul_v3_fl(vec, u * v); add_v3_v3(res, vec); copy_v3_v3(vec, data[3]); - mul_v3_fl(vec, (1-u)*v); add_v3_v3(res, vec); + mul_v3_fl(vec, (1 - u) * v); add_v3_v3(res, vec); } static void interp_barycentric_tri_data(float data[3][3], float u, float v, float res[3]) @@ -470,7 +470,7 @@ static void interp_barycentric_tri_data(float data[3][3], float u, float v, floa copy_v3_v3(vec, data[1]); mul_v3_fl(vec, v); add_v3_v3(res, vec); copy_v3_v3(vec, data[2]); - mul_v3_fl(vec, 1.0f-u-v); add_v3_v3(res, vec); + mul_v3_fl(vec, 1.0f - u - v); add_v3_v3(res, vec); } /* mode = 0: interpolate normals, @@ -481,14 +481,14 @@ static void interp_bilinear_grid(DMGridData *grid, int grid_size, float crn_x, f float u, v; float data[4][3]; - x0= (int) crn_x; - x1= x0>=(grid_size-1) ? (grid_size-1) : (x0+1); + x0 = (int) crn_x; + x1 = x0 >= (grid_size - 1) ? (grid_size - 1) : (x0 + 1); - y0= (int) crn_y; - y1= y0>=(grid_size-1) ? (grid_size-1) : (y0+1); + y0 = (int) crn_y; + y1 = y0 >= (grid_size - 1) ? (grid_size - 1) : (y0 + 1); - u= crn_x-x0; - v= crn_y-y0; + u = crn_x - x0; + v = crn_y - y0; if (mode == 0) { copy_v3_v3(data[0], grid[y0 * grid_size + x0].no); @@ -516,30 +516,30 @@ static void get_ccgdm_data(DerivedMesh *lodm, DerivedMesh *hidm, const int *orig lodm->getTessFace(lodm, face_index, &mface); - grid_size= hidm->getGridSize(hidm); - grid_data= hidm->getGridData(hidm); - grid_offset= hidm->getGridOffset(hidm); + grid_size = hidm->getGridSize(hidm); + grid_data = hidm->getGridData(hidm); + grid_offset = hidm->getGridOffset(hidm); - face_side= (grid_size<<1)-1; + face_side = (grid_size << 1) - 1; - if (lvl==0) { - g_index= grid_offset[face_index]; - S= mdisp_rot_face_to_crn(mface.v4 ? 4 : 3, face_side, u*(face_side-1), v*(face_side-1), &crn_x, &crn_y); + if (lvl == 0) { + g_index = grid_offset[face_index]; + S = mdisp_rot_face_to_crn(mface.v4 ? 4 : 3, face_side, u * (face_side - 1), v * (face_side - 1), &crn_x, &crn_y); } else { - int side= (1 << (lvl-1)) + 1; - int grid_index= origindex[face_index]; - int loc_offs= face_index % (1<<(2*lvl)); - int cell_index= loc_offs % ((side-1)*(side-1)); - int cell_side= grid_size / (side-1); - int row= cell_index / (side-1); - int col= cell_index % (side-1); + int side = (1 << (lvl - 1)) + 1; + int grid_index = origindex[face_index]; + int loc_offs = face_index % (1 << (2 * lvl)); + int cell_index = loc_offs % ((side - 1) * (side - 1)); + int cell_side = grid_size / (side - 1); + int row = cell_index / (side - 1); + int col = cell_index % (side - 1); - S= face_index / (1<<(2*(lvl-1))) - grid_offset[grid_index]; - g_index= grid_offset[grid_index]; + S = face_index / (1 << (2 * (lvl - 1))) - grid_offset[grid_index]; + g_index = grid_offset[grid_index]; - crn_y= (row * cell_side) + u * cell_side; - crn_x= (col * cell_side) + v * cell_side; + crn_y = (row * cell_side) + u * cell_side; + crn_x = (col * cell_side) + v * cell_side; } CLAMP(crn_x, 0.0f, grid_size); @@ -597,95 +597,95 @@ static void interp_barycentric_mface(DerivedMesh *dm, MFace *mface, const float static void *init_heights_data(MultiresBakeRender *bkr, Image *ima) { MHeightBakeData *height_data; - ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL); - DerivedMesh *lodm= bkr->lores_dm; + ImBuf *ibuf = BKE_image_get_ibuf(ima, NULL); + DerivedMesh *lodm = bkr->lores_dm; - height_data= MEM_callocN(sizeof(MHeightBakeData), "MultiresBake heightData"); + height_data = MEM_callocN(sizeof(MHeightBakeData), "MultiresBake heightData"); - height_data->ima= ima; - height_data->heights= MEM_callocN(sizeof(float)*ibuf->x*ibuf->y, "MultiresBake heights"); - height_data->height_max= -FLT_MAX; - height_data->height_min= FLT_MAX; + height_data->ima = ima; + height_data->heights = MEM_callocN(sizeof(float) * ibuf->x * ibuf->y, "MultiresBake heights"); + height_data->height_max = -FLT_MAX; + height_data->height_min = FLT_MAX; if (!bkr->use_lores_mesh) { - SubsurfModifierData smd= {{NULL}}; - int ss_lvl= bkr->tot_lvl - bkr->lvl; + SubsurfModifierData smd = {{NULL}}; + int ss_lvl = bkr->tot_lvl - bkr->lvl; CLAMP(ss_lvl, 0, 6); - smd.levels= smd.renderLevels= ss_lvl; - smd.flags|= eSubsurfModifierFlag_SubsurfUv; + smd.levels = smd.renderLevels = ss_lvl; + smd.flags |= eSubsurfModifierFlag_SubsurfUv; if (bkr->simple) - smd.subdivType= ME_SIMPLE_SUBSURF; + smd.subdivType = ME_SIMPLE_SUBSURF; - height_data->ssdm= subsurf_make_derived_from_derived(bkr->lores_dm, &smd, 0, NULL, 0, 0, 0); + height_data->ssdm = subsurf_make_derived_from_derived(bkr->lores_dm, &smd, 0, NULL, 0, 0, 0); } - height_data->origindex= lodm->getTessFaceDataArray(lodm, CD_ORIGINDEX); + height_data->origindex = lodm->getTessFaceDataArray(lodm, CD_ORIGINDEX); - return (void*)height_data; + return (void *)height_data; } static void *init_normal_data(MultiresBakeRender *bkr, Image *UNUSED(ima)) { MNormalBakeData *normal_data; - DerivedMesh *lodm= bkr->lores_dm; + DerivedMesh *lodm = bkr->lores_dm; - normal_data= MEM_callocN(sizeof(MNormalBakeData), "MultiresBake normalData"); + normal_data = MEM_callocN(sizeof(MNormalBakeData), "MultiresBake normalData"); - normal_data->origindex= lodm->getTessFaceDataArray(lodm, CD_ORIGINDEX); + normal_data->origindex = lodm->getTessFaceDataArray(lodm, CD_ORIGINDEX); - return (void*)normal_data; + return (void *)normal_data; } static void free_normal_data(void *bake_data) { - MNormalBakeData *normal_data= (MNormalBakeData*)bake_data; + MNormalBakeData *normal_data = (MNormalBakeData *)bake_data; MEM_freeN(normal_data); } static void apply_heights_data(void *bake_data) { - MHeightBakeData *height_data= (MHeightBakeData*)bake_data; - ImBuf *ibuf= BKE_image_get_ibuf(height_data->ima, NULL); + MHeightBakeData *height_data = (MHeightBakeData *)bake_data; + ImBuf *ibuf = BKE_image_get_ibuf(height_data->ima, NULL); int x, y, i; - float height, *heights= height_data->heights; - float min= height_data->height_min, max= height_data->height_max; + float height, *heights = height_data->heights; + float min = height_data->height_min, max = height_data->height_max; - for (x= 0; xx; x++) { - for (y =0; yy; y++) { - i= ibuf->x*y + x; + for (x = 0; x < ibuf->x; x++) { + for (y = 0; y < ibuf->y; y++) { + i = ibuf->x * y + x; - if (((char*)ibuf->userdata)[i] != FILTER_MASK_USED) + if (((char *)ibuf->userdata)[i] != FILTER_MASK_USED) continue; if (ibuf->rect_float) { - float *rrgbf= ibuf->rect_float + i*4; + float *rrgbf = ibuf->rect_float + i * 4; - if (max-min > 1e-5f) height= (heights[i]-min)/(max-min); - else height= 0; + if (max - min > 1e-5f) height = (heights[i] - min) / (max - min); + else height = 0; - rrgbf[0]=rrgbf[1]=rrgbf[2]= height; + rrgbf[0] = rrgbf[1] = rrgbf[2] = height; } else { - char *rrgb= (char*)ibuf->rect + i*4; + char *rrgb = (char *)ibuf->rect + i * 4; - if (max-min > 1e-5f) height= (heights[i]-min)/(max-min); - else height= 0; + if (max - min > 1e-5f) height = (heights[i] - min) / (max - min); + else height = 0; - rrgb[0]=rrgb[1]=rrgb[2]= FTOCHAR(height); + rrgb[0] = rrgb[1] = rrgb[2] = FTOCHAR(height); } } } - ibuf->userflags= IB_RECT_INVALID; + ibuf->userflags = IB_RECT_INVALID; } static void free_heights_data(void *bake_data) { - MHeightBakeData *height_data= (MHeightBakeData*)bake_data; + MHeightBakeData *height_data = (MHeightBakeData *)bake_data; if (height_data->ssdm) height_data->ssdm->release(height_data->ssdm); @@ -704,23 +704,23 @@ static void apply_heights_callback(DerivedMesh *lores_dm, DerivedMesh *hires_dm, const int face_index, const int lvl, const float st[2], float UNUSED(tangmat[3][3]), const int x, const int y) { - MTFace *mtface= CustomData_get_layer(&lores_dm->faceData, CD_MTFACE); + MTFace *mtface = CustomData_get_layer(&lores_dm->faceData, CD_MTFACE); MFace mface; - Image *ima= mtface[face_index].tpage; - ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL); - MHeightBakeData *height_data= (MHeightBakeData*)bake_data; + Image *ima = mtface[face_index].tpage; + ImBuf *ibuf = BKE_image_get_ibuf(ima, NULL); + MHeightBakeData *height_data = (MHeightBakeData *)bake_data; float uv[2], *st0, *st1, *st2, *st3; - int pixel= ibuf->x*y + x; + int pixel = ibuf->x * y + x; float vec[3], p0[3], p1[3], n[3], len; lores_dm->getTessFace(lores_dm, face_index, &mface); - st0= mtface[face_index].uv[0]; - st1= mtface[face_index].uv[1]; - st2= mtface[face_index].uv[2]; + st0 = mtface[face_index].uv[0]; + st1 = mtface[face_index].uv[1]; + st2 = mtface[face_index].uv[2]; if (mface.v4) { - st3= mtface[face_index].uv[3]; + st3 = mtface[face_index].uv[3]; resolve_quad_uv(uv, st, st0, st1, st2, st3); } else @@ -748,21 +748,21 @@ static void apply_heights_callback(DerivedMesh *lores_dm, DerivedMesh *hires_dm, } sub_v3_v3v3(vec, p1, p0); - len= dot_v3v3(n, vec); + len = dot_v3v3(n, vec); - height_data->heights[pixel]= len; - if (lenheight_min) height_data->height_min= len; - if (len>height_data->height_max) height_data->height_max= len; + height_data->heights[pixel] = len; + if (len < height_data->height_min) height_data->height_min = len; + if (len > height_data->height_max) height_data->height_max = len; if (ibuf->rect_float) { - float *rrgbf= ibuf->rect_float + pixel*4; - rrgbf[3]= 1.0f; + float *rrgbf = ibuf->rect_float + pixel * 4; + rrgbf[3] = 1.0f; - ibuf->userflags= IB_RECT_INVALID; + ibuf->userflags = IB_RECT_INVALID; } else { - char *rrgb= (char*)ibuf->rect + pixel*4; - rrgb[3]= 255; + char *rrgb = (char *)ibuf->rect + pixel * 4; + rrgb[3] = 255; } } @@ -775,23 +775,23 @@ static void apply_tangmat_callback(DerivedMesh *lores_dm, DerivedMesh *hires_dm, const int face_index, const int lvl, const float st[2], float tangmat[3][3], const int x, const int y) { - MTFace *mtface= CustomData_get_layer(&lores_dm->faceData, CD_MTFACE); + MTFace *mtface = CustomData_get_layer(&lores_dm->faceData, CD_MTFACE); MFace mface; - Image *ima= mtface[face_index].tpage; - ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL); - MNormalBakeData *normal_data= (MNormalBakeData*)bake_data; + Image *ima = mtface[face_index].tpage; + ImBuf *ibuf = BKE_image_get_ibuf(ima, NULL); + MNormalBakeData *normal_data = (MNormalBakeData *)bake_data; float uv[2], *st0, *st1, *st2, *st3; - int pixel= ibuf->x*y + x; - float n[3], vec[3], tmp[3]= {0.5, 0.5, 0.5}; + int pixel = ibuf->x * y + x; + float n[3], vec[3], tmp[3] = {0.5, 0.5, 0.5}; lores_dm->getTessFace(lores_dm, face_index, &mface); - st0= mtface[face_index].uv[0]; - st1= mtface[face_index].uv[1]; - st2= mtface[face_index].uv[2]; + st0 = mtface[face_index].uv[0]; + st1 = mtface[face_index].uv[1]; + st2 = mtface[face_index].uv[2]; if (mface.v4) { - st3= mtface[face_index].uv[3]; + st3 = mtface[face_index].uv[3]; resolve_quad_uv(uv, st, st0, st1, st2, st3); } else @@ -808,61 +808,61 @@ static void apply_tangmat_callback(DerivedMesh *lores_dm, DerivedMesh *hires_dm, add_v3_v3(vec, tmp); if (ibuf->rect_float) { - float *rrgbf= ibuf->rect_float + pixel*4; - rrgbf[0]= vec[0]; - rrgbf[1]= vec[1]; - rrgbf[2]= vec[2]; - rrgbf[3]= 1.0f; + float *rrgbf = ibuf->rect_float + pixel * 4; + rrgbf[0] = vec[0]; + rrgbf[1] = vec[1]; + rrgbf[2] = vec[2]; + rrgbf[3] = 1.0f; - ibuf->userflags= IB_RECT_INVALID; + ibuf->userflags = IB_RECT_INVALID; } else { - unsigned char *rrgb= (unsigned char *)ibuf->rect + pixel*4; + unsigned char *rrgb = (unsigned char *)ibuf->rect + pixel * 4; rgb_float_to_uchar(rrgb, vec); - rrgb[3]= 255; + rrgb[3] = 255; } } static void count_images(MultiresBakeRender *bkr) { int a, totface; - DerivedMesh *dm= bkr->lores_dm; - MTFace *mtface= CustomData_get_layer(&dm->faceData, CD_MTFACE); + DerivedMesh *dm = bkr->lores_dm; + MTFace *mtface = CustomData_get_layer(&dm->faceData, CD_MTFACE); - bkr->image.first= bkr->image.last= NULL; - bkr->tot_image= 0; + bkr->image.first = bkr->image.last = NULL; + bkr->tot_image = 0; - totface= dm->getNumTessFaces(dm); + totface = dm->getNumTessFaces(dm); - for (a= 0; aid.flag&= ~LIB_DOIT; + for (a = 0; a < totface; a++) + mtface[a].tpage->id.flag &= ~LIB_DOIT; - for (a= 0; aid.flag&LIB_DOIT)==0) { - LinkData *data= BLI_genericNodeN(ima); + for (a = 0; a < totface; a++) { + Image *ima = mtface[a].tpage; + if ((ima->id.flag & LIB_DOIT) == 0) { + LinkData *data = BLI_genericNodeN(ima); BLI_addtail(&bkr->image, data); bkr->tot_image++; - ima->id.flag|= LIB_DOIT; + ima->id.flag |= LIB_DOIT; } } - for (a= 0; aid.flag&= ~LIB_DOIT; + for (a = 0; a < totface; a++) + mtface[a].tpage->id.flag &= ~LIB_DOIT; } static void bake_images(MultiresBakeRender *bkr) { LinkData *link; - for (link= bkr->image.first; link; link= link->next) { - Image *ima= (Image*)link->data; - ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL); + for (link = bkr->image.first; link; link = link->next) { + Image *ima = (Image *)link->data; + ImBuf *ibuf = BKE_image_get_ibuf(ima, NULL); - if (ibuf->x>0 && ibuf->y>0) { - ibuf->userdata= MEM_callocN(ibuf->y*ibuf->x, "MultiresBake imbuf mask"); + if (ibuf->x > 0 && ibuf->y > 0) { + ibuf->userdata = MEM_callocN(ibuf->y * ibuf->x, "MultiresBake imbuf mask"); - switch(bkr->mode) { + switch (bkr->mode) { case RE_BAKE_NORMALS: do_multires_bake(bkr, ima, apply_tangmat_callback, init_normal_data, NULL, free_normal_data); break; @@ -873,7 +873,7 @@ static void bake_images(MultiresBakeRender *bkr) } } - ima->id.flag|= LIB_DOIT; + ima->id.flag |= LIB_DOIT; } } @@ -881,28 +881,28 @@ static void finish_images(MultiresBakeRender *bkr) { LinkData *link; - for (link= bkr->image.first; link; link= link->next) { - Image *ima= (Image*)link->data; - ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL); + for (link = bkr->image.first; link; link = link->next) { + Image *ima = (Image *)link->data; + ImBuf *ibuf = BKE_image_get_ibuf(ima, NULL); - if (ibuf->x<=0 || ibuf->y<=0) + if (ibuf->x <= 0 || ibuf->y <= 0) continue; RE_bake_ibuf_filter(ibuf, (char *)ibuf->userdata, bkr->bake_filter); - ibuf->userflags|= IB_BITMAPDIRTY; + ibuf->userflags |= IB_BITMAPDIRTY; if (ibuf->rect_float) - ibuf->userflags|= IB_RECT_INVALID; + ibuf->userflags |= IB_RECT_INVALID; if (ibuf->mipmap[0]) { - ibuf->userflags|= IB_MIPMAP_INVALID; + ibuf->userflags |= IB_MIPMAP_INVALID; imb_freemipmapImBuf(ibuf); } if (ibuf->userdata) { MEM_freeN(ibuf->userdata); - ibuf->userdata= NULL; + ibuf->userdata = NULL; } } } @@ -916,38 +916,38 @@ static void multiresbake_start(MultiresBakeRender *bkr) static int multiresbake_check(bContext *C, wmOperator *op) { - Scene *scene= CTX_data_scene(C); + Scene *scene = CTX_data_scene(C); Object *ob; Mesh *me; MultiresModifierData *mmd; - int ok= 1, a; + int ok = 1, a; - CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) { - ob= base->object; + CTX_DATA_BEGIN (C, Base *, base, selected_editable_bases) { + ob = base->object; if (ob->type != OB_MESH) { BKE_report(op->reports, RPT_ERROR, "Basking of multires data only works with active object which is a mesh"); - ok= 0; + ok = 0; break; } - me= (Mesh*)ob->data; - mmd= get_multires_modifier(scene, ob, 0); + me = (Mesh *)ob->data; + mmd = get_multires_modifier(scene, ob, 0); /* Multi-resolution should be and be last in the stack */ if (ok && mmd) { ModifierData *md; - ok= mmd->totlvl>0; + ok = mmd->totlvl > 0; - for (md = (ModifierData*)mmd->modifier.next; md && ok; md = md->next) { + for (md = (ModifierData *)mmd->modifier.next; md && ok; md = md->next) { if (modifier_isEnabled(scene, md, eModifierMode_Realtime)) { - ok= 0; + ok = 0; } } } - else ok= 0; + else ok = 0; if (!ok) { BKE_report(op->reports, RPT_ERROR, "Multires data baking requires multi-resolution object"); @@ -958,7 +958,7 @@ static int multiresbake_check(bContext *C, wmOperator *op) if (!me->mtpoly) { BKE_report(op->reports, RPT_ERROR, "Mesh should be unwrapped before multires data baking"); - ok= 0; + ok = 0; } else { a = me->totpoly; @@ -968,22 +968,22 @@ static int multiresbake_check(bContext *C, wmOperator *op) if (!ima) { BKE_report(op->reports, RPT_ERROR, "You should have active texture to use multires baker"); - ok= 0; + ok = 0; } else { - ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL); + ImBuf *ibuf = BKE_image_get_ibuf(ima, NULL); if (!ibuf) { BKE_report(op->reports, RPT_ERROR, "Baking should happend to image with image buffer"); - ok= 0; + ok = 0; } else { - if (ibuf->rect==NULL && ibuf->rect_float==NULL) - ok= 0; + if (ibuf->rect == NULL && ibuf->rect_float == NULL) + ok = 0; - if (ibuf->rect_float && !(ibuf->channels==0 || ibuf->channels==4)) - ok= 0; + if (ibuf->rect_float && !(ibuf->channels == 0 || ibuf->channels == 4)) + ok = 0; if (!ok) BKE_report(op->reports, RPT_ERROR, "Baking to unsupported image type"); @@ -1003,23 +1003,23 @@ static int multiresbake_check(bContext *C, wmOperator *op) static DerivedMesh *multiresbake_create_loresdm(Scene *scene, Object *ob, int *lvl) { DerivedMesh *dm; - MultiresModifierData *mmd= get_multires_modifier(scene, ob, 0); - Mesh *me= (Mesh*)ob->data; + MultiresModifierData *mmd = get_multires_modifier(scene, ob, 0); + Mesh *me = (Mesh *)ob->data; - *lvl= mmd->lvl; + *lvl = mmd->lvl; - if (*lvl==0) { - DerivedMesh *tmp_dm= CDDM_from_mesh(me, ob); - dm= CDDM_copy(tmp_dm); + if (*lvl == 0) { + DerivedMesh *tmp_dm = CDDM_from_mesh(me, ob); + dm = CDDM_copy(tmp_dm); tmp_dm->release(tmp_dm); } else { - MultiresModifierData tmp_mmd= *mmd; - DerivedMesh *cddm= CDDM_from_mesh(me, ob); + MultiresModifierData tmp_mmd = *mmd; + DerivedMesh *cddm = CDDM_from_mesh(me, ob); - tmp_mmd.lvl= *lvl; - tmp_mmd.sculptlvl= *lvl; - dm= multires_dm_create_from_derived(&tmp_mmd, 1, cddm, ob, 0); + tmp_mmd.lvl = *lvl; + tmp_mmd.sculptlvl = *lvl; + dm = multires_dm_create_from_derived(&tmp_mmd, 1, cddm, ob, 0); cddm->release(cddm); } @@ -1028,18 +1028,18 @@ static DerivedMesh *multiresbake_create_loresdm(Scene *scene, Object *ob, int *l static DerivedMesh *multiresbake_create_hiresdm(Scene *scene, Object *ob, int *lvl, int *simple) { - Mesh *me= (Mesh*)ob->data; - MultiresModifierData *mmd= get_multires_modifier(scene, ob, 0); - MultiresModifierData tmp_mmd= *mmd; - DerivedMesh *cddm= CDDM_from_mesh(me, ob); + Mesh *me = (Mesh *)ob->data; + MultiresModifierData *mmd = get_multires_modifier(scene, ob, 0); + MultiresModifierData tmp_mmd = *mmd; + DerivedMesh *cddm = CDDM_from_mesh(me, ob); DerivedMesh *dm; - *lvl= mmd->totlvl; - *simple= mmd->simple; + *lvl = mmd->totlvl; + *simple = mmd->simple; - tmp_mmd.lvl= mmd->totlvl; - tmp_mmd.sculptlvl= mmd->totlvl; - dm= multires_dm_create_from_derived(&tmp_mmd, 1, cddm, ob, 0); + tmp_mmd.lvl = mmd->totlvl; + tmp_mmd.sculptlvl = mmd->totlvl; + dm = multires_dm_create_from_derived(&tmp_mmd, 1, cddm, ob, 0); cddm->release(cddm); return dm; @@ -1048,67 +1048,67 @@ static DerivedMesh *multiresbake_create_hiresdm(Scene *scene, Object *ob, int *l static void clear_images(MTFace *mtface, int totface) { int a; - const float vec_alpha[4]= {0.0f, 0.0f, 0.0f, 0.0f}; - const float vec_solid[4]= {0.0f, 0.0f, 0.0f, 1.0f}; + const float vec_alpha[4] = {0.0f, 0.0f, 0.0f, 0.0f}; + const float vec_solid[4] = {0.0f, 0.0f, 0.0f, 1.0f}; - for (a= 0; aid.flag&= ~LIB_DOIT; + for (a = 0; a < totface; a++) + mtface[a].tpage->id.flag &= ~LIB_DOIT; - for (a= 0; aid.flag&LIB_DOIT)==0) { - ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL); + if ((ima->id.flag & LIB_DOIT) == 0) { + ImBuf *ibuf = BKE_image_get_ibuf(ima, NULL); IMB_rectfill(ibuf, (ibuf->planes == R_IMF_PLANES_RGBA) ? vec_alpha : vec_solid); - ima->id.flag|= LIB_DOIT; + ima->id.flag |= LIB_DOIT; } } - for (a= 0; aid.flag&= ~LIB_DOIT; + for (a = 0; a < totface; a++) + mtface[a].tpage->id.flag &= ~LIB_DOIT; } static int multiresbake_image_exec_locked(bContext *C, wmOperator *op) { Object *ob; - Scene *scene= CTX_data_scene(C); - int objects_baked= 0; + Scene *scene = CTX_data_scene(C); + int objects_baked = 0; if (!multiresbake_check(C, op)) return OPERATOR_CANCELLED; - if (scene->r.bake_flag&R_BAKE_CLEAR) { /* clear images */ - CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) { + if (scene->r.bake_flag & R_BAKE_CLEAR) { /* clear images */ + CTX_DATA_BEGIN (C, Base *, base, selected_editable_bases) { Mesh *me; - ob= base->object; - me= (Mesh*)ob->data; + ob = base->object; + me = (Mesh *)ob->data; clear_images(me->mtface, me->totface); } CTX_DATA_END; } - CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) { - MultiresBakeRender bkr= {0}; + CTX_DATA_BEGIN (C, Base *, base, selected_editable_bases) { + MultiresBakeRender bkr = {0}; - ob= base->object; + ob = base->object; multires_force_update(ob); /* copy data stored in job descriptor */ - bkr.bake_filter= scene->r.bake_filter; - bkr.mode= scene->r.bake_mode; - bkr.use_lores_mesh= scene->r.bake_flag&R_BAKE_LORES_MESH; + bkr.bake_filter = scene->r.bake_filter; + bkr.mode = scene->r.bake_mode; + bkr.use_lores_mesh = scene->r.bake_flag & R_BAKE_LORES_MESH; /* create low-resolution DM (to bake to) and hi-resolution DM (to bake from) */ - bkr.lores_dm= multiresbake_create_loresdm(scene, ob, &bkr.lvl); + bkr.lores_dm = multiresbake_create_loresdm(scene, ob, &bkr.lvl); if (!bkr.lores_dm) continue; - bkr.hires_dm= multiresbake_create_hiresdm(scene, ob, &bkr.tot_lvl, &bkr.simple); + bkr.hires_dm = multiresbake_create_hiresdm(scene, ob, &bkr.tot_lvl, &bkr.simple); multiresbake_start(&bkr); @@ -1130,20 +1130,20 @@ static int multiresbake_image_exec_locked(bContext *C, wmOperator *op) /* Multiresbake adopted for job-system executing */ static void init_multiresbake_job(bContext *C, MultiresBakeJob *bkj) { - Scene *scene= CTX_data_scene(C); + Scene *scene = CTX_data_scene(C); Object *ob; /* backup scene settings, so their changing in UI would take no effect on baker */ - bkj->bake_filter= scene->r.bake_filter; - bkj->mode= scene->r.bake_mode; - bkj->use_lores_mesh= scene->r.bake_flag&R_BAKE_LORES_MESH; - bkj->bake_clear= scene->r.bake_flag&R_BAKE_CLEAR; + bkj->bake_filter = scene->r.bake_filter; + bkj->mode = scene->r.bake_mode; + bkj->use_lores_mesh = scene->r.bake_flag & R_BAKE_LORES_MESH; + bkj->bake_clear = scene->r.bake_flag & R_BAKE_CLEAR; - CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) { + CTX_DATA_BEGIN (C, Base *, base, selected_editable_bases) { MultiresBakerJobData *data; DerivedMesh *lores_dm; int lvl; - ob= base->object; + ob = base->object; multires_force_update(ob); @@ -1151,7 +1151,7 @@ static void init_multiresbake_job(bContext *C, MultiresBakeJob *bkj) if (!lores_dm) continue; - data= MEM_callocN(sizeof(MultiresBakerJobData), "multiresBaker derivedMesh_data"); + data = MEM_callocN(sizeof(MultiresBakerJobData), "multiresBaker derivedMesh_data"); data->lores_dm = lores_dm; data->lvl = lvl; data->hires_dm = multiresbake_create_hiresdm(scene, ob, &data->tot_lvl, &data->simple); @@ -1164,42 +1164,42 @@ static void init_multiresbake_job(bContext *C, MultiresBakeJob *bkj) static void multiresbake_startjob(void *bkv, short *stop, short *do_update, float *progress) { MultiresBakerJobData *data; - MultiresBakeJob *bkj= bkv; - int baked_objects= 0, tot_obj; + MultiresBakeJob *bkj = bkv; + int baked_objects = 0, tot_obj; - tot_obj= BLI_countlist(&bkj->data); + tot_obj = BLI_countlist(&bkj->data); if (bkj->bake_clear) { /* clear images */ - for (data= bkj->data.first; data; data= data->next) { - DerivedMesh *dm= data->lores_dm; - MTFace *mtface= CustomData_get_layer(&dm->faceData, CD_MTFACE); + for (data = bkj->data.first; data; data = data->next) { + DerivedMesh *dm = data->lores_dm; + MTFace *mtface = CustomData_get_layer(&dm->faceData, CD_MTFACE); clear_images(mtface, dm->getNumTessFaces(dm)); } } - for (data= bkj->data.first; data; data= data->next) { - MultiresBakeRender bkr= {0}; + for (data = bkj->data.first; data; data = data->next) { + MultiresBakeRender bkr = {0}; /* copy data stored in job descriptor */ - bkr.bake_filter= bkj->bake_filter; - bkr.mode= bkj->mode; - bkr.use_lores_mesh= bkj->use_lores_mesh; + bkr.bake_filter = bkj->bake_filter; + bkr.mode = bkj->mode; + bkr.use_lores_mesh = bkj->use_lores_mesh; /* create low-resolution DM (to bake to) and hi-resolution DM (to bake from) */ - bkr.lores_dm= data->lores_dm; - bkr.hires_dm= data->hires_dm; - bkr.tot_lvl= data->tot_lvl; - bkr.lvl= data->lvl; - bkr.simple= data->simple; + bkr.lores_dm = data->lores_dm; + bkr.hires_dm = data->hires_dm; + bkr.tot_lvl = data->tot_lvl; + bkr.lvl = data->lvl; + bkr.simple = data->simple; /* needed for proper progress bar */ - bkr.tot_obj= tot_obj; - bkr.baked_objects= baked_objects; + bkr.tot_obj = tot_obj; + bkr.baked_objects = baked_objects; - bkr.stop= stop; - bkr.do_update= do_update; - bkr.progress= progress; + bkr.stop = stop; + bkr.do_update = do_update; + bkr.progress = progress; multiresbake_start(&bkr); @@ -1211,16 +1211,16 @@ static void multiresbake_startjob(void *bkv, short *stop, short *do_update, floa static void multiresbake_freejob(void *bkv) { - MultiresBakeJob *bkj= bkv; + MultiresBakeJob *bkj = bkv; MultiresBakerJobData *data, *next; - data= bkj->data.first; + data = bkj->data.first; while (data) { - next= data->next; + next = data->next; data->lores_dm->release(data->lores_dm); data->hires_dm->release(data->hires_dm); MEM_freeN(data); - data= next; + data = next; } MEM_freeN(bkj); @@ -1228,14 +1228,14 @@ static void multiresbake_freejob(void *bkv) static int multiresbake_image_exec(bContext *C, wmOperator *op) { - Scene *scene= CTX_data_scene(C); + Scene *scene = CTX_data_scene(C); MultiresBakeJob *bkr; wmJob *steve; if (!multiresbake_check(C, op)) return OPERATOR_CANCELLED; - bkr= MEM_callocN(sizeof(MultiresBakeJob), "MultiresBakeJob data"); + bkr = MEM_callocN(sizeof(MultiresBakeJob), "MultiresBakeJob data"); init_multiresbake_job(C, bkr); if (!bkr->data.first) { @@ -1244,12 +1244,12 @@ static int multiresbake_image_exec(bContext *C, wmOperator *op) } /* setup job */ - steve= WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), scene, "Multires Bake", WM_JOB_EXCL_RENDER|WM_JOB_PRIORITY|WM_JOB_PROGRESS); + steve = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), scene, "Multires Bake", WM_JOB_EXCL_RENDER | WM_JOB_PRIORITY | WM_JOB_PROGRESS); WM_jobs_customdata(steve, bkr, multiresbake_freejob); WM_jobs_timer(steve, 0.2, NC_IMAGE, 0); /* TODO - only draw bake image, can we enforce this */ WM_jobs_callbacks(steve, multiresbake_startjob, NULL, NULL, NULL); - G.afbreek= 0; + G.afbreek = 0; WM_jobs_start(CTX_wm_manager(C), steve); WM_cursor_wait(0); @@ -1294,12 +1294,12 @@ typedef struct BakeRender { /* use by exec and invoke */ static int test_bake_internal(bContext *C, ReportList *reports) { - Scene *scene= CTX_data_scene(C); + Scene *scene = CTX_data_scene(C); - if ((scene->r.bake_flag & R_BAKE_TO_ACTIVE) && CTX_data_active_object(C)==NULL) { + if ((scene->r.bake_flag & R_BAKE_TO_ACTIVE) && CTX_data_active_object(C) == NULL) { BKE_report(reports, RPT_ERROR, "No active object"); } - else if (scene->r.bake_mode==RE_BAKE_AO && scene->world==NULL) { + else if (scene->r.bake_mode == RE_BAKE_AO && scene->world == NULL) { BKE_report(reports, RPT_ERROR, "No world set up"); } else { @@ -1311,23 +1311,23 @@ static int test_bake_internal(bContext *C, ReportList *reports) static void init_bake_internal(BakeRender *bkr, bContext *C) { - Scene *scene= CTX_data_scene(C); + Scene *scene = CTX_data_scene(C); /* get editmode results */ ED_object_exit_editmode(C, 0); /* 0 = does not exit editmode */ - bkr->sa= BKE_screen_find_big_area(CTX_wm_screen(C), SPACE_IMAGE, 10); /* can be NULL */ - bkr->main= CTX_data_main(C); - bkr->scene= scene; - bkr->actob= (scene->r.bake_flag & R_BAKE_TO_ACTIVE) ? OBACT : NULL; - bkr->re= RE_NewRender("_Bake View_"); + bkr->sa = BKE_screen_find_big_area(CTX_wm_screen(C), SPACE_IMAGE, 10); /* can be NULL */ + bkr->main = CTX_data_main(C); + bkr->scene = scene; + bkr->actob = (scene->r.bake_flag & R_BAKE_TO_ACTIVE) ? OBACT : NULL; + bkr->re = RE_NewRender("_Bake View_"); - if (scene->r.bake_mode==RE_BAKE_AO) { + if (scene->r.bake_mode == RE_BAKE_AO) { /* If raytracing or AO is disabled, switch it on temporarily for baking. */ bkr->prev_wo_amb_occ = (scene->world->mode & WO_AMB_OCC) != 0; scene->world->mode |= WO_AMB_OCC; } - if (scene->r.bake_mode==RE_BAKE_AO || bkr->actob) { + if (scene->r.bake_mode == RE_BAKE_AO || bkr->actob) { bkr->prev_r_raytrace = (scene->r.mode & R_RAYTRACE) != 0; scene->r.mode |= R_RAYTRACE; } @@ -1338,20 +1338,20 @@ static void finish_bake_internal(BakeRender *bkr) RE_Database_Free(bkr->re); /* restore raytrace and AO */ - if (bkr->scene->r.bake_mode==RE_BAKE_AO) + if (bkr->scene->r.bake_mode == RE_BAKE_AO) if (bkr->prev_wo_amb_occ == 0) bkr->scene->world->mode &= ~WO_AMB_OCC; - if (bkr->scene->r.bake_mode==RE_BAKE_AO || bkr->actob) + if (bkr->scene->r.bake_mode == RE_BAKE_AO || bkr->actob) if (bkr->prev_r_raytrace == 0) bkr->scene->r.mode &= ~R_RAYTRACE; - if (bkr->result==BAKE_RESULT_OK) { + if (bkr->result == BAKE_RESULT_OK) { Image *ima; /* force OpenGL reload and mipmap recalc */ - for (ima= G.main->image.first; ima; ima= ima->id.next) { - if (ima->ok==IMA_OK_LOADED) { - ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL); + for (ima = G.main->image.first; ima; ima = ima->id.next) { + if (ima->ok == IMA_OK_LOADED) { + ImBuf *ibuf = BKE_image_get_ibuf(ima, NULL); if (ibuf) { if (ibuf->userflags & IB_BITMAPDIRTY) { GPU_free_image(ima); @@ -1361,7 +1361,7 @@ static void finish_bake_internal(BakeRender *bkr) /* freed when baking is done, but if its canceled we need to free here */ if (ibuf->userdata) { MEM_freeN(ibuf->userdata); - ibuf->userdata= NULL; + ibuf->userdata = NULL; } } } @@ -1371,52 +1371,52 @@ static void finish_bake_internal(BakeRender *bkr) static void *do_bake_render(void *bake_v) { - BakeRender *bkr= bake_v; + BakeRender *bkr = bake_v; - bkr->result= RE_bake_shade_all_selected(bkr->re, bkr->scene->r.bake_mode, bkr->actob, NULL, bkr->progress); - bkr->ready= 1; + bkr->result = RE_bake_shade_all_selected(bkr->re, bkr->scene->r.bake_mode, bkr->actob, NULL, bkr->progress); + bkr->ready = 1; return NULL; } static void bake_startjob(void *bkv, short *stop, short *do_update, float *progress) { - BakeRender *bkr= bkv; - Scene *scene= bkr->scene; - Main *bmain= bkr->main; + BakeRender *bkr = bkv; + Scene *scene = bkr->scene; + Main *bmain = bkr->main; - bkr->stop= stop; - bkr->do_update= do_update; - bkr->progress= progress; + bkr->stop = stop; + bkr->do_update = do_update; + bkr->progress = progress; RE_test_break_cb(bkr->re, NULL, thread_break); - G.afbreek= 0; /* blender_test_break uses this global */ + G.afbreek = 0; /* blender_test_break uses this global */ RE_Database_Baking(bkr->re, bmain, scene, scene->lay, scene->r.bake_mode, bkr->actob); /* baking itself is threaded, cannot use test_break in threads. we also update optional imagewindow */ - bkr->result= RE_bake_shade_all_selected(bkr->re, scene->r.bake_mode, bkr->actob, bkr->do_update, bkr->progress); + bkr->result = RE_bake_shade_all_selected(bkr->re, scene->r.bake_mode, bkr->actob, bkr->do_update, bkr->progress); } static void bake_update(void *bkv) { - BakeRender *bkr= bkv; + BakeRender *bkr = bkv; - if (bkr->sa && bkr->sa->spacetype==SPACE_IMAGE) { /* in case the user changed while baking */ - SpaceImage *sima= bkr->sa->spacedata.first; + if (bkr->sa && bkr->sa->spacetype == SPACE_IMAGE) { /* in case the user changed while baking */ + SpaceImage *sima = bkr->sa->spacedata.first; if (sima) - sima->image= RE_bake_shade_get_image(); + sima->image = RE_bake_shade_get_image(); } } static void bake_freejob(void *bkv) { - BakeRender *bkr= bkv; + BakeRender *bkr = bkv; finish_bake_internal(bkr); - if (bkr->result==BAKE_RESULT_NO_OBJECTS) + if (bkr->result == BAKE_RESULT_NO_OBJECTS) BKE_report(bkr->reports, RPT_ERROR, "No objects or images found to bake to"); - else if (bkr->result==BAKE_RESULT_FEEDBACK_LOOP) + else if (bkr->result == BAKE_RESULT_FEEDBACK_LOOP) BKE_report(bkr->reports, RPT_WARNING, "Feedback loop detected"); MEM_freeN(bkr); @@ -1427,8 +1427,8 @@ static void bake_freejob(void *bkv) static int objects_bake_render_modal(bContext *C, wmOperator *UNUSED(op), wmEvent *event) { /* no running blender, remove handler and pass through */ - if (0==WM_jobs_test(CTX_wm_manager(C), CTX_data_scene(C))) - return OPERATOR_FINISHED|OPERATOR_PASS_THROUGH; + if (0 == WM_jobs_test(CTX_wm_manager(C), CTX_data_scene(C))) + return OPERATOR_FINISHED | OPERATOR_PASS_THROUGH; /* running render */ switch (event->type) { @@ -1441,7 +1441,7 @@ static int objects_bake_render_modal(bContext *C, wmOperator *UNUSED(op), wmEven static int is_multires_bake(Scene *scene) { - if ( ELEM(scene->r.bake_mode, RE_BAKE_NORMALS, RE_BAKE_DISPLACEMENT)) + if (ELEM(scene->r.bake_mode, RE_BAKE_NORMALS, RE_BAKE_DISPLACEMENT)) return scene->r.bake_flag & R_BAKE_MULTIRES; return 0; @@ -1449,34 +1449,34 @@ static int is_multires_bake(Scene *scene) static int objects_bake_render_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(_event)) { - Scene *scene= CTX_data_scene(C); - int result= OPERATOR_CANCELLED; + Scene *scene = CTX_data_scene(C); + int result = OPERATOR_CANCELLED; if (is_multires_bake(scene)) { - result= multiresbake_image_exec(C, op); + result = multiresbake_image_exec(C, op); } else { /* only one render job at a time */ if (WM_jobs_test(CTX_wm_manager(C), scene)) return OPERATOR_CANCELLED; - if (test_bake_internal(C, op->reports)==0) { + if (test_bake_internal(C, op->reports) == 0) { return OPERATOR_CANCELLED; } else { - BakeRender *bkr= MEM_callocN(sizeof(BakeRender), "render bake"); + BakeRender *bkr = MEM_callocN(sizeof(BakeRender), "render bake"); wmJob *steve; init_bake_internal(bkr, C); - bkr->reports= op->reports; + bkr->reports = op->reports; /* setup job */ - steve= WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), scene, "Texture Bake", WM_JOB_EXCL_RENDER|WM_JOB_PRIORITY|WM_JOB_PROGRESS); + steve = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), scene, "Texture Bake", WM_JOB_EXCL_RENDER | WM_JOB_PRIORITY | WM_JOB_PROGRESS); WM_jobs_customdata(steve, bkr, bake_freejob); WM_jobs_timer(steve, 0.2, NC_IMAGE, 0); /* TODO - only draw bake image, can we enforce this */ WM_jobs_callbacks(steve, bake_startjob, NULL, bake_update, NULL); - G.afbreek= 0; + G.afbreek = 0; G.rendering = 1; WM_jobs_start(CTX_wm_manager(C), steve); @@ -1487,10 +1487,10 @@ static int objects_bake_render_invoke(bContext *C, wmOperator *op, wmEvent *UNUS WM_event_add_modal_handler(C, op); } - result= OPERATOR_RUNNING_MODAL; + result = OPERATOR_RUNNING_MODAL; } - WM_event_add_notifier(C, NC_SCENE|ND_RENDER_RESULT, scene); + WM_event_add_notifier(C, NC_SCENE | ND_RENDER_RESULT, scene); return result; } @@ -1498,35 +1498,35 @@ static int objects_bake_render_invoke(bContext *C, wmOperator *op, wmEvent *UNUS static int bake_image_exec(bContext *C, wmOperator *op) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); - int result= OPERATOR_CANCELLED; + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); + int result = OPERATOR_CANCELLED; if (is_multires_bake(scene)) { - result= multiresbake_image_exec_locked(C, op); + result = multiresbake_image_exec_locked(C, op); } else { - if (test_bake_internal(C, op->reports)==0) { + if (test_bake_internal(C, op->reports) == 0) { return OPERATOR_CANCELLED; } else { ListBase threads; - BakeRender bkr= {NULL}; + BakeRender bkr = {NULL}; init_bake_internal(&bkr, C); - bkr.reports= op->reports; + bkr.reports = op->reports; RE_test_break_cb(bkr.re, NULL, thread_break); - G.afbreek= 0; /* blender_test_break uses this global */ + G.afbreek = 0; /* blender_test_break uses this global */ - RE_Database_Baking(bkr.re, bmain, scene, scene->lay, scene->r.bake_mode, (scene->r.bake_flag & R_BAKE_TO_ACTIVE)? OBACT: NULL); + RE_Database_Baking(bkr.re, bmain, scene, scene->lay, scene->r.bake_mode, (scene->r.bake_flag & R_BAKE_TO_ACTIVE) ? OBACT : NULL); /* baking itself is threaded, cannot use test_break in threads */ BLI_init_threads(&threads, do_bake_render, 1); - bkr.ready= 0; + bkr.ready = 0; BLI_insert_thread(&threads, &bkr); - while (bkr.ready==0) { + while (bkr.ready == 0) { PIL_sleep_ms(50); if (bkr.ready) break; @@ -1537,18 +1537,18 @@ static int bake_image_exec(bContext *C, wmOperator *op) } BLI_end_threads(&threads); - if (bkr.result==BAKE_RESULT_NO_OBJECTS) + if (bkr.result == BAKE_RESULT_NO_OBJECTS) BKE_report(op->reports, RPT_ERROR, "No valid images found to bake to"); - else if (bkr.result==BAKE_RESULT_FEEDBACK_LOOP) + else if (bkr.result == BAKE_RESULT_FEEDBACK_LOOP) BKE_report(op->reports, RPT_ERROR, "Feedback loop detected"); finish_bake_internal(&bkr); - result= OPERATOR_FINISHED; + result = OPERATOR_FINISHED; } } - WM_event_add_notifier(C, NC_SCENE|ND_RENDER_RESULT, scene); + WM_event_add_notifier(C, NC_SCENE | ND_RENDER_RESULT, scene); return result; } diff --git a/source/blender/editors/object/object_constraint.c b/source/blender/editors/object/object_constraint.c index ec3567454df..a865b1d015d 100644 --- a/source/blender/editors/object/object_constraint.c +++ b/source/blender/editors/object/object_constraint.c @@ -81,7 +81,7 @@ /* -------------- Get Active Constraint Data ---------------------- */ /* if object in posemode, active bone constraints, else object constraints */ -ListBase *get_active_constraints (Object *ob) +ListBase *get_active_constraints(Object *ob) { if (ob == NULL) return NULL; @@ -100,10 +100,10 @@ ListBase *get_active_constraints (Object *ob) } /* Find the list that a given constraint belongs to, and/or also get the posechannel this is from (if applicable) */ -ListBase *get_constraint_lb (Object *ob, bConstraint *con, bPoseChannel **pchan_r) +ListBase *get_constraint_lb(Object *ob, bConstraint *con, bPoseChannel **pchan_r) { if (pchan_r) - *pchan_r= NULL; + *pchan_r = NULL; if (ELEM(NULL, ob, con)) return NULL; @@ -120,11 +120,11 @@ ListBase *get_constraint_lb (Object *ob, bConstraint *con, bPoseChannel **pchan_ /* try each bone in order * NOTE: it's not possible to directly look up the active bone yet, so this will have to do */ - for (pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next) { + for (pchan = ob->pose->chanbase.first; pchan; pchan = pchan->next) { if ((BLI_findindex(&pchan->constraints, con) != -1)) { if (pchan_r) - *pchan_r= pchan; + *pchan_r = pchan; return &pchan->constraints; } @@ -136,7 +136,7 @@ ListBase *get_constraint_lb (Object *ob, bConstraint *con, bPoseChannel **pchan_ } /* single constraint */ -bConstraint *get_active_constraint (Object *ob) +bConstraint *get_active_constraint(Object *ob) { return constraints_get_active(get_active_constraints(ob)); } @@ -146,25 +146,25 @@ bConstraint *get_active_constraint (Object *ob) /* ------------- PyConstraints ------------------ */ /* this callback sets the text-file to be used for selected menu item */ -static void validate_pyconstraint_cb (void *arg1, void *arg2) +static void validate_pyconstraint_cb(void *arg1, void *arg2) { bPythonConstraint *data = arg1; - Text *text= NULL; + Text *text = NULL; int index = *((int *)arg2); int i; /* exception for no script */ if (index) { /* innovative use of a for...loop to search */ - for (text=G.main->text.first, i=1; text && index!=i; i++, text=text->id.next); + for (text = G.main->text.first, i = 1; text && index != i; i++, text = text->id.next) ; } data->text = text; } /* this returns a string for the list of usable pyconstraint script names */ -static char *buildmenu_pyconstraints (Text *con_text, int *pyconindex) +static char *buildmenu_pyconstraints(Text *con_text, int *pyconindex) { - DynStr *pupds= BLI_dynstr_new(); + DynStr *pupds = BLI_dynstr_new(); Text *text; char *str; char buf[64]; @@ -176,16 +176,16 @@ static char *buildmenu_pyconstraints (Text *con_text, int *pyconindex) /* init active-index first */ if (con_text == NULL) - *pyconindex= 0; + *pyconindex = 0; /* loop through markers, adding them */ - for (text=G.main->text.first, i=1; text; i++, text=text->id.next) { + for (text = G.main->text.first, i = 1; text; i++, text = text->id.next) { /* this is important to ensure that right script is shown as active */ if (text == con_text) *pyconindex = i; /* only include valid pyconstraint scripts */ if (BPY_is_pyconstraint(text)) { - BLI_dynstr_append(pupds, text->id.name+2); + BLI_dynstr_append(pupds, text->id.name + 2); sprintf(buf, "%%x%d", i); BLI_dynstr_append(pupds, buf); @@ -196,7 +196,7 @@ static char *buildmenu_pyconstraints (Text *con_text, int *pyconindex) } /* convert to normal MEM_malloc'd string */ - str= BLI_dynstr_get_cstring(pupds); + str = BLI_dynstr_get_cstring(pupds); BLI_dynstr_free(pupds); return str; @@ -205,14 +205,14 @@ static char *buildmenu_pyconstraints (Text *con_text, int *pyconindex) #if 0 // UNUSED, until pyconstraints are added back. /* this callback gets called when the 'refresh' button of a pyconstraint gets pressed */ -static void update_pyconstraint_cb (void *arg1, void *arg2) +static void update_pyconstraint_cb(void *arg1, void *arg2) { #ifndef WITH_PYTHON (void)arg1; /* unused */ (void)arg2; /* unused */ #else - Object *owner= (Object *)arg1; - bConstraint *con= (bConstraint *)arg2; + Object *owner = (Object *)arg1; + bConstraint *con = (bConstraint *)arg2; if (owner && con) BPY_pyconstraint_update(owner, con); #endif @@ -220,30 +220,30 @@ static void update_pyconstraint_cb (void *arg1, void *arg2) #endif // UNUSED /* helper function for add_constriant - sets the last target for the active constraint */ -static void set_constraint_nth_target (bConstraint *con, Object *target, const char subtarget[], int index) +static void set_constraint_nth_target(bConstraint *con, Object *target, const char subtarget[], int index) { - bConstraintTypeInfo *cti= constraint_get_typeinfo(con); + bConstraintTypeInfo *cti = constraint_get_typeinfo(con); ListBase targets = {NULL, NULL}; bConstraintTarget *ct; int num_targets, i; if (cti && cti->get_constraint_targets) { cti->get_constraint_targets(con, &targets); - num_targets= BLI_countlist(&targets); + num_targets = BLI_countlist(&targets); if (index < 0) { if (abs(index) < num_targets) - index= num_targets - abs(index); + index = num_targets - abs(index); else - index= num_targets - 1; + index = num_targets - 1; } else if (index >= num_targets) { - index= num_targets - 1; + index = num_targets - 1; } - for (ct=targets.first, i=0; ct; ct= ct->next, i++) { + for (ct = targets.first, i = 0; ct; ct = ct->next, i++) { if (i == index) { - ct->tar= target; + ct->tar = target; BLI_strncpy(ct->subtarget, subtarget, sizeof(ct->subtarget)); break; } @@ -259,13 +259,13 @@ static void set_constraint_nth_target (bConstraint *con, Object *target, const c /* checks validity of object pointers, and NULLs, * if Bone doesnt exist it sets the CONSTRAINT_DISABLE flag. */ -static void test_constraints (Object *owner, bPoseChannel *pchan) +static void test_constraints(Object *owner, bPoseChannel *pchan) { bConstraint *curcon; - ListBase *conlist= NULL; + ListBase *conlist = NULL; int type; - if (owner==NULL) return; + if (owner == NULL) return; /* Check parents */ if (pchan) { @@ -293,8 +293,8 @@ static void test_constraints (Object *owner, bPoseChannel *pchan) /* Check all constraints - is constraint valid? */ if (conlist) { - for (curcon = conlist->first; curcon; curcon=curcon->next) { - bConstraintTypeInfo *cti= constraint_get_typeinfo(curcon); + for (curcon = conlist->first; curcon; curcon = curcon->next) { + bConstraintTypeInfo *cti = constraint_get_typeinfo(curcon); ListBase targets = {NULL, NULL}; bConstraintTarget *ct; @@ -339,7 +339,7 @@ static void test_constraints (Object *owner, bPoseChannel *pchan) bPivotConstraint *data = curcon->data; /* target doesn't have to exist, but if it is non-null, it must exist! */ - if (data->tar && exist_object(data->tar)==0) { + if (data->tar && exist_object(data->tar) == 0) { data->tar = NULL; curcon->flag |= CONSTRAINT_DISABLE; } @@ -363,26 +363,26 @@ static void test_constraints (Object *owner, bPoseChannel *pchan) bFollowPathConstraint *data = curcon->data; /* don't allow track/up axes to be the same */ - if (data->upflag==data->trackflag) + if (data->upflag == data->trackflag) curcon->flag |= CONSTRAINT_DISABLE; - if (data->upflag+3==data->trackflag) + if (data->upflag + 3 == data->trackflag) curcon->flag |= CONSTRAINT_DISABLE; } else if (curcon->type == CONSTRAINT_TYPE_TRACKTO) { bTrackToConstraint *data = curcon->data; /* don't allow track/up axes to be the same */ - if (data->reserved2==data->reserved1) + if (data->reserved2 == data->reserved1) curcon->flag |= CONSTRAINT_DISABLE; - if (data->reserved2+3==data->reserved1) + if (data->reserved2 + 3 == data->reserved1) curcon->flag |= CONSTRAINT_DISABLE; } else if (curcon->type == CONSTRAINT_TYPE_LOCKTRACK) { bLockTrackConstraint *data = curcon->data; - if (data->lockflag==data->trackflag) + if (data->lockflag == data->trackflag) curcon->flag |= CONSTRAINT_DISABLE; - if (data->lockflag+3==data->trackflag) + if (data->lockflag + 3 == data->trackflag) curcon->flag |= CONSTRAINT_DISABLE; } else if (curcon->type == CONSTRAINT_TYPE_SPLINEIK) { @@ -391,7 +391,7 @@ static void test_constraints (Object *owner, bPoseChannel *pchan) /* if the number of points does not match the amount required by the chain length, * free the points array and request a rebind... */ - if ((data->points == NULL) || (data->numpoints != data->chainlen+1)) { + if ((data->points == NULL) || (data->numpoints != data->chainlen + 1)) { /* free the points array */ if (data->points) { MEM_freeN(data->points); @@ -405,15 +405,15 @@ static void test_constraints (Object *owner, bPoseChannel *pchan) else if (curcon->type == CONSTRAINT_TYPE_FOLLOWTRACK) { bFollowTrackConstraint *data = curcon->data; - if ((data->flag&CAMERASOLVER_ACTIVECLIP)==0) { + if ((data->flag & CAMERASOLVER_ACTIVECLIP) == 0) { if (data->clip != NULL && data->track[0]) { - MovieTracking *tracking= &data->clip->tracking; + MovieTracking *tracking = &data->clip->tracking; MovieTrackingObject *tracking_object; if (data->object[0]) - tracking_object= BKE_tracking_named_object(tracking, data->object); + tracking_object = BKE_tracking_named_object(tracking, data->object); else - tracking_object= BKE_tracking_get_camera_object(tracking); + tracking_object = BKE_tracking_get_camera_object(tracking); if (!tracking_object) { curcon->flag |= CONSTRAINT_DISABLE; @@ -429,13 +429,13 @@ static void test_constraints (Object *owner, bPoseChannel *pchan) else if (curcon->type == CONSTRAINT_TYPE_CAMERASOLVER) { bCameraSolverConstraint *data = curcon->data; - if ((data->flag&CAMERASOLVER_ACTIVECLIP)==0 && data->clip == NULL) + if ((data->flag & CAMERASOLVER_ACTIVECLIP) == 0 && data->clip == NULL) curcon->flag |= CONSTRAINT_DISABLE; } else if (curcon->type == CONSTRAINT_TYPE_OBJECTSOLVER) { bObjectSolverConstraint *data = curcon->data; - if ((data->flag&CAMERASOLVER_ACTIVECLIP)==0 && data->clip == NULL) + if ((data->flag & CAMERASOLVER_ACTIVECLIP) == 0 && data->clip == NULL) curcon->flag |= CONSTRAINT_DISABLE; } @@ -444,7 +444,7 @@ static void test_constraints (Object *owner, bPoseChannel *pchan) cti->get_constraint_targets(curcon, &targets); /* disable and clear constraints targets that are incorrect */ - for (ct= targets.first; ct; ct= ct->next) { + for (ct = targets.first; ct; ct = ct->next) { /* general validity checks (for those constraints that need this) */ if (exist_object(ct->tar) == 0) { /* object doesn't exist, but constraint requires target */ @@ -475,11 +475,11 @@ static void test_constraints (Object *owner, bPoseChannel *pchan) if (ELEM3(curcon->type, CONSTRAINT_TYPE_FOLLOWPATH, CONSTRAINT_TYPE_CLAMPTO, CONSTRAINT_TYPE_SPLINEIK)) { if (ct->tar) { if (ct->tar->type != OB_CURVE) { - ct->tar= NULL; + ct->tar = NULL; curcon->flag |= CONSTRAINT_DISABLE; } else { - Curve *cu= ct->tar->data; + Curve *cu = ct->tar->data; /* auto-set 'Path' setting on curve so this works */ cu->flag |= CU_PATH; @@ -496,15 +496,15 @@ static void test_constraints (Object *owner, bPoseChannel *pchan) } } -void object_test_constraints (Object *owner) +void object_test_constraints(Object *owner) { if (owner->constraints.first) test_constraints(owner, NULL); - if (owner->type==OB_ARMATURE && owner->pose) { + if (owner->type == OB_ARMATURE && owner->pose) { bPoseChannel *pchan; - for (pchan= owner->pose->chanbase.first; pchan; pchan= pchan->next) { + for (pchan = owner->pose->chanbase.first; pchan; pchan = pchan->next) { if (pchan->constraints.first) test_constraints(owner, pchan); } @@ -514,8 +514,8 @@ void object_test_constraints (Object *owner) /************************ generic functions for operators using constraint names and data context *********************/ -#define EDIT_CONSTRAINT_OWNER_OBJECT 0 -#define EDIT_CONSTRAINT_OWNER_BONE 1 +#define EDIT_CONSTRAINT_OWNER_OBJECT 0 +#define EDIT_CONSTRAINT_OWNER_BONE 1 static EnumPropertyItem constraint_owner_items[] = { {EDIT_CONSTRAINT_OWNER_OBJECT, "OBJECT", 0, "Object", "Edit a constraint on the active object"}, @@ -525,11 +525,11 @@ static EnumPropertyItem constraint_owner_items[] = { static int edit_constraint_poll_generic(bContext *C, StructRNA *rna_type) { - PointerRNA ptr= CTX_data_pointer_get_type(C, "constraint", rna_type); - Object *ob= (ptr.id.data) ? ptr.id.data : ED_object_active_context(C); + PointerRNA ptr = CTX_data_pointer_get_type(C, "constraint", rna_type); + Object *ob = (ptr.id.data) ? ptr.id.data : ED_object_active_context(C); if (!ob || ob->id.lib) return 0; - if (ptr.id.data && ((ID*)ptr.id.data)->lib) return 0; + if (ptr.id.data && ((ID *)ptr.id.data)->lib) return 0; return 1; } @@ -547,8 +547,8 @@ static void edit_constraint_properties(wmOperatorType *ot) static int edit_constraint_invoke_properties(bContext *C, wmOperator *op) { - PointerRNA ptr= CTX_data_pointer_get_type(C, "constraint", &RNA_Constraint); - Object *ob= (ptr.id.data)?ptr.id.data:ED_object_active_context(C); + PointerRNA ptr = CTX_data_pointer_get_type(C, "constraint", &RNA_Constraint); + Object *ob = (ptr.id.data) ? ptr.id.data : ED_object_active_context(C); bConstraint *con; ListBase *list; @@ -577,7 +577,7 @@ static bConstraint *edit_constraint_property_get(wmOperator *op, Object *ob, int char constraint_name[MAX_NAME]; int owner = RNA_enum_get(op->ptr, "owner"); bConstraint *con; - ListBase *list=NULL; + ListBase *list = NULL; RNA_string_get(op->ptr, "constraint", constraint_name); @@ -585,7 +585,7 @@ static bConstraint *edit_constraint_property_get(wmOperator *op, Object *ob, int list = &ob->constraints; } else if (owner == EDIT_CONSTRAINT_OWNER_BONE) { - bPoseChannel *pchan= get_active_posechannel(ob); + bPoseChannel *pchan = get_active_posechannel(ob); if (pchan) list = &pchan->constraints; else { @@ -615,11 +615,11 @@ static bConstraint *edit_constraint_property_get(wmOperator *op, Object *ob, int /* ---------- Distance-Dependent Constraints ---------- */ /* StretchTo, Limit Distance */ -static int stretchto_reset_exec (bContext *C, wmOperator *op) +static int stretchto_reset_exec(bContext *C, wmOperator *op) { Object *ob = ED_object_active_context(C); bConstraint *con = edit_constraint_property_get(op, ob, CONSTRAINT_TYPE_STRETCHTO); - bStretchToConstraint *data= (con) ? (bStretchToConstraint *)con->data : NULL; + bStretchToConstraint *data = (con) ? (bStretchToConstraint *)con->data : NULL; /* despite 3 layers of checks, we may still not be able to find a constraint */ if (data == NULL) @@ -629,7 +629,7 @@ static int stretchto_reset_exec (bContext *C, wmOperator *op) data->orglength = 0.0f; ED_object_constraint_update(ob); - WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT, NULL); + WM_event_add_notifier(C, NC_OBJECT | ND_CONSTRAINT, NULL); return OPERATOR_FINISHED; } @@ -641,7 +641,7 @@ static int stretchto_reset_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(e return OPERATOR_CANCELLED; } -void CONSTRAINT_OT_stretchto_reset (wmOperatorType *ot) +void CONSTRAINT_OT_stretchto_reset(wmOperatorType *ot) { /* identifiers */ ot->name = "Reset Original Length"; @@ -653,16 +653,16 @@ void CONSTRAINT_OT_stretchto_reset (wmOperatorType *ot) ot->poll = edit_constraint_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; edit_constraint_properties(ot); } -static int limitdistance_reset_exec (bContext *C, wmOperator *op) +static int limitdistance_reset_exec(bContext *C, wmOperator *op) { Object *ob = ED_object_active_context(C); bConstraint *con = edit_constraint_property_get(op, ob, CONSTRAINT_TYPE_DISTLIMIT); - bDistLimitConstraint *data= (con) ? (bDistLimitConstraint *)con->data : NULL; + bDistLimitConstraint *data = (con) ? (bDistLimitConstraint *)con->data : NULL; /* despite 3 layers of checks, we may still not be able to find a constraint */ if (data == NULL) @@ -672,7 +672,7 @@ static int limitdistance_reset_exec (bContext *C, wmOperator *op) data->dist = 0.0f; ED_object_constraint_update(ob); - WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT, NULL); + WM_event_add_notifier(C, NC_OBJECT | ND_CONSTRAINT, NULL); return OPERATOR_FINISHED; } @@ -684,7 +684,7 @@ static int limitdistance_reset_invoke(bContext *C, wmOperator *op, wmEvent *UNUS return OPERATOR_CANCELLED; } -void CONSTRAINT_OT_limitdistance_reset (wmOperatorType *ot) +void CONSTRAINT_OT_limitdistance_reset(wmOperatorType *ot) { /* identifiers */ ot->name = "Reset Distance"; @@ -696,16 +696,16 @@ void CONSTRAINT_OT_limitdistance_reset (wmOperatorType *ot) ot->poll = edit_constraint_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; edit_constraint_properties(ot); } /* ------------- Child-Of Constraint ------------------ */ -static void child_get_inverse_matrix (Scene *scene, Object *ob, bConstraint *con, float invmat[4][4]) +static void child_get_inverse_matrix(Scene *scene, Object *ob, bConstraint *con, float invmat[4][4]) { bConstraint *lastcon = NULL; - bPoseChannel *pchan= NULL; + bPoseChannel *pchan = NULL; /* nullify inverse matrix first */ unit_m4(invmat); @@ -713,13 +713,13 @@ static void child_get_inverse_matrix (Scene *scene, Object *ob, bConstraint *con /* try to find a pose channel - assume that this is the constraint owner */ // TODO: get from context instead? if (ob && ob->pose) - pchan= get_active_posechannel(ob); + pchan = get_active_posechannel(ob); /* calculate/set inverse matrix: - * We just calculate all transform-stack eval up to but not including this constraint. - * This is because inverse should just inverse correct for just the constraint's influence - * when it gets applied; that is, at the time of application, we don't know anything about - * what follows. + * We just calculate all transform-stack eval up to but not including this constraint. + * This is because inverse should just inverse correct for just the constraint's influence + * when it gets applied; that is, at the time of application, we don't know anything about + * what follows. */ if (pchan) { float imat[4][4], tmat[4][4]; @@ -781,23 +781,23 @@ static void child_get_inverse_matrix (Scene *scene, Object *ob, bConstraint *con } /* ChildOf Constraint - set inverse callback */ -static int childof_set_inverse_exec (bContext *C, wmOperator *op) +static int childof_set_inverse_exec(bContext *C, wmOperator *op) { - Scene *scene= CTX_data_scene(C); + Scene *scene = CTX_data_scene(C); Object *ob = ED_object_active_context(C); bConstraint *con = edit_constraint_property_get(op, ob, CONSTRAINT_TYPE_CHILDOF); - bChildOfConstraint *data= (con) ? (bChildOfConstraint *)con->data : NULL; + bChildOfConstraint *data = (con) ? (bChildOfConstraint *)con->data : NULL; /* despite 3 layers of checks, we may still not be able to find a constraint */ if (data == NULL) { - printf("DEBUG: Child-Of Set Inverse - object = '%s'\n", (ob)? ob->id.name+2 : ""); + printf("DEBUG: Child-Of Set Inverse - object = '%s'\n", (ob) ? ob->id.name + 2 : ""); BKE_report(op->reports, RPT_ERROR, "Couldn't find constraint data for Child-Of Set Inverse"); return OPERATOR_CANCELLED; } child_get_inverse_matrix(scene, ob, con, data->invmat); - WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_CONSTRAINT, ob); return OPERATOR_FINISHED; } @@ -810,7 +810,7 @@ static int childof_set_inverse_invoke(bContext *C, wmOperator *op, wmEvent *UNUS return OPERATOR_CANCELLED; } -void CONSTRAINT_OT_childof_set_inverse (wmOperatorType *ot) +void CONSTRAINT_OT_childof_set_inverse(wmOperatorType *ot) { /* identifiers */ ot->name = "Set Inverse"; @@ -822,18 +822,18 @@ void CONSTRAINT_OT_childof_set_inverse (wmOperatorType *ot) ot->poll = edit_constraint_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; edit_constraint_properties(ot); } /* ChildOf Constraint - clear inverse callback */ -static int childof_clear_inverse_exec (bContext *C, wmOperator *op) +static int childof_clear_inverse_exec(bContext *C, wmOperator *op) { Object *ob = ED_object_active_context(C); bConstraint *con = edit_constraint_property_get(op, ob, CONSTRAINT_TYPE_CHILDOF); - bChildOfConstraint *data= (con) ? (bChildOfConstraint *)con->data : NULL; + bChildOfConstraint *data = (con) ? (bChildOfConstraint *)con->data : NULL; - if (data==NULL) { + if (data == NULL) { BKE_report(op->reports, RPT_ERROR, "Childof constraint not found"); return OPERATOR_CANCELLED; } @@ -841,7 +841,7 @@ static int childof_clear_inverse_exec (bContext *C, wmOperator *op) /* simply clear the matrix */ unit_m4(data->invmat); - WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_CONSTRAINT, ob); return OPERATOR_FINISHED; } @@ -854,7 +854,7 @@ static int childof_clear_inverse_invoke(bContext *C, wmOperator *op, wmEvent *UN return OPERATOR_CANCELLED; } -void CONSTRAINT_OT_childof_clear_inverse (wmOperatorType *ot) +void CONSTRAINT_OT_childof_clear_inverse(wmOperatorType *ot) { /* identifiers */ ot->name = "Clear Inverse"; @@ -866,29 +866,29 @@ void CONSTRAINT_OT_childof_clear_inverse (wmOperatorType *ot) ot->poll = edit_constraint_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; edit_constraint_properties(ot); } /* ------------- Object Solver Constraint ------------------ */ -static int objectsolver_set_inverse_exec (bContext *C, wmOperator *op) +static int objectsolver_set_inverse_exec(bContext *C, wmOperator *op) { - Scene *scene= CTX_data_scene(C); + Scene *scene = CTX_data_scene(C); Object *ob = ED_object_active_context(C); bConstraint *con = edit_constraint_property_get(op, ob, CONSTRAINT_TYPE_OBJECTSOLVER); - bObjectSolverConstraint *data= (con) ? (bObjectSolverConstraint *)con->data : NULL; + bObjectSolverConstraint *data = (con) ? (bObjectSolverConstraint *)con->data : NULL; /* despite 3 layers of checks, we may still not be able to find a constraint */ if (data == NULL) { - printf("DEBUG: Child-Of Set Inverse - object = '%s'\n", (ob)? ob->id.name+2 : ""); + printf("DEBUG: Child-Of Set Inverse - object = '%s'\n", (ob) ? ob->id.name + 2 : ""); BKE_report(op->reports, RPT_ERROR, "Couldn't find constraint data for Child-Of Set Inverse"); return OPERATOR_CANCELLED; } child_get_inverse_matrix(scene, ob, con, data->invmat); - WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_CONSTRAINT, ob); return OPERATOR_FINISHED; } @@ -901,7 +901,7 @@ static int objectsolver_set_inverse_invoke(bContext *C, wmOperator *op, wmEvent return OPERATOR_CANCELLED; } -void CONSTRAINT_OT_objectsolver_set_inverse (wmOperatorType *ot) +void CONSTRAINT_OT_objectsolver_set_inverse(wmOperatorType *ot) { /* identifiers */ ot->name = "Set Inverse"; @@ -913,17 +913,17 @@ void CONSTRAINT_OT_objectsolver_set_inverse (wmOperatorType *ot) ot->poll = edit_constraint_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; edit_constraint_properties(ot); } -static int objectsolver_clear_inverse_exec (bContext *C, wmOperator *op) +static int objectsolver_clear_inverse_exec(bContext *C, wmOperator *op) { Object *ob = ED_object_active_context(C); bConstraint *con = edit_constraint_property_get(op, ob, CONSTRAINT_TYPE_OBJECTSOLVER); - bObjectSolverConstraint *data= (con) ? (bObjectSolverConstraint *)con->data : NULL; + bObjectSolverConstraint *data = (con) ? (bObjectSolverConstraint *)con->data : NULL; - if (data==NULL) { + if (data == NULL) { BKE_report(op->reports, RPT_ERROR, "Childof constraint not found"); return OPERATOR_CANCELLED; } @@ -931,7 +931,7 @@ static int objectsolver_clear_inverse_exec (bContext *C, wmOperator *op) /* simply clear the matrix */ unit_m4(data->invmat); - WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_CONSTRAINT, ob); return OPERATOR_FINISHED; } @@ -944,7 +944,7 @@ static int objectsolver_clear_inverse_invoke(bContext *C, wmOperator *op, wmEven return OPERATOR_CANCELLED; } -void CONSTRAINT_OT_objectsolver_clear_inverse (wmOperatorType *ot) +void CONSTRAINT_OT_objectsolver_clear_inverse(wmOperatorType *ot) { /* identifiers */ ot->name = "Clear Inverse"; @@ -956,7 +956,7 @@ void CONSTRAINT_OT_objectsolver_clear_inverse (wmOperatorType *ot) ot->poll = edit_constraint_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; edit_constraint_properties(ot); } @@ -981,7 +981,7 @@ void ED_object_constraint_update(Object *ob) object_test_constraints(ob); - if (ob->type==OB_ARMATURE) DAG_id_tag_update(&ob->id, OB_RECALC_DATA|OB_RECALC_OB); + if (ob->type == OB_ARMATURE) DAG_id_tag_update(&ob->id, OB_RECALC_DATA | OB_RECALC_OB); else DAG_id_tag_update(&ob->id, OB_RECALC_OB); } @@ -989,23 +989,23 @@ void ED_object_constraint_dependency_update(Main *bmain, Scene *scene, Object *o { ED_object_constraint_update(ob); - if (ob->pose) ob->pose->flag |= POSE_RECALC; // checks & sorts pose channels + if (ob->pose) ob->pose->flag |= POSE_RECALC; // checks & sorts pose channels DAG_scene_sort(bmain, scene); } static int constraint_poll(bContext *C) { - PointerRNA ptr= CTX_data_pointer_get_type(C, "constraint", &RNA_Constraint); + PointerRNA ptr = CTX_data_pointer_get_type(C, "constraint", &RNA_Constraint); return (ptr.id.data && ptr.data); } -static int constraint_delete_exec (bContext *C, wmOperator *UNUSED(op)) +static int constraint_delete_exec(bContext *C, wmOperator *UNUSED(op)) { - PointerRNA ptr= CTX_data_pointer_get_type(C, "constraint", &RNA_Constraint); - Object *ob= ptr.id.data; - bConstraint *con= ptr.data; + PointerRNA ptr = CTX_data_pointer_get_type(C, "constraint", &RNA_Constraint); + Object *ob = ptr.id.data; + bConstraint *con = ptr.data; ListBase *lb = get_constraint_lb(ob, con, NULL); - const short is_ik= ELEM(con->type, CONSTRAINT_TYPE_KINEMATIC, CONSTRAINT_TYPE_SPLINEIK); + const short is_ik = ELEM(con->type, CONSTRAINT_TYPE_KINEMATIC, CONSTRAINT_TYPE_SPLINEIK); /* free the constraint */ if (remove_constraint(lb, con)) { @@ -1020,7 +1020,7 @@ static int constraint_delete_exec (bContext *C, wmOperator *UNUSED(op)) } /* notifiers */ - WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT|NA_REMOVED, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_CONSTRAINT | NA_REMOVED, ob); return OPERATOR_FINISHED; } @@ -1030,7 +1030,7 @@ static int constraint_delete_exec (bContext *C, wmOperator *UNUSED(op)) } } -void CONSTRAINT_OT_delete (wmOperatorType *ot) +void CONSTRAINT_OT_delete(wmOperatorType *ot) { /* identifiers */ ot->name = "Delete Constraint"; @@ -1042,23 +1042,23 @@ void CONSTRAINT_OT_delete (wmOperatorType *ot) ot->poll = constraint_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } -static int constraint_move_down_exec (bContext *C, wmOperator *op) +static int constraint_move_down_exec(bContext *C, wmOperator *op) { Object *ob = ED_object_active_context(C); bConstraint *con = edit_constraint_property_get(op, ob, 0); if (con && con->next) { - ListBase *conlist= get_constraint_lb(ob, con, NULL); - bConstraint *nextCon= con->next; + ListBase *conlist = get_constraint_lb(ob, con, NULL); + bConstraint *nextCon = con->next; /* insert the nominated constraint after the one that used to be after it */ BLI_remlink(conlist, con); BLI_insertlinkafter(conlist, nextCon, con); - WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_CONSTRAINT, ob); return OPERATOR_FINISHED; } @@ -1075,7 +1075,7 @@ static int constraint_move_down_invoke(bContext *C, wmOperator *op, wmEvent *UNU } -void CONSTRAINT_OT_move_down (wmOperatorType *ot) +void CONSTRAINT_OT_move_down(wmOperatorType *ot) { /* identifiers */ ot->name = "Move Constraint Down"; @@ -1088,25 +1088,25 @@ void CONSTRAINT_OT_move_down (wmOperatorType *ot) ot->poll = edit_constraint_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; edit_constraint_properties(ot); } -static int constraint_move_up_exec (bContext *C, wmOperator *op) +static int constraint_move_up_exec(bContext *C, wmOperator *op) { Object *ob = ED_object_active_context(C); bConstraint *con = edit_constraint_property_get(op, ob, 0); if (con && con->prev) { - ListBase *conlist= get_constraint_lb(ob, con, NULL); - bConstraint *prevCon= con->prev; + ListBase *conlist = get_constraint_lb(ob, con, NULL); + bConstraint *prevCon = con->prev; /* insert the nominated constraint before the one that used to be before it */ BLI_remlink(conlist, con); BLI_insertlinkbefore(conlist, prevCon, con); - WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_CONSTRAINT, ob); return OPERATOR_FINISHED; } @@ -1122,7 +1122,7 @@ static int constraint_move_up_invoke(bContext *C, wmOperator *op, wmEvent *UNUSE return OPERATOR_CANCELLED; } -void CONSTRAINT_OT_move_up (wmOperatorType *ot) +void CONSTRAINT_OT_move_up(wmOperatorType *ot) { /* identifiers */ ot->name = "Move Constraint Up"; @@ -1135,7 +1135,7 @@ void CONSTRAINT_OT_move_up (wmOperatorType *ot) ot->poll = edit_constraint_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; edit_constraint_properties(ot); } @@ -1145,26 +1145,25 @@ void CONSTRAINT_OT_move_up (wmOperatorType *ot) static int pose_constraints_clear_exec(bContext *C, wmOperator *UNUSED(op)) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); - Object *ob= object_pose_armature_get(CTX_data_active_object(C)); + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); + Object *ob = object_pose_armature_get(CTX_data_active_object(C)); /* free constraints for all selected bones */ - CTX_DATA_BEGIN(C, bPoseChannel*, pchan, selected_pose_bones) - { + CTX_DATA_BEGIN (C, bPoseChannel *, pchan, selected_pose_bones) { free_constraints(&pchan->constraints); - pchan->constflag &= ~(PCHAN_HAS_IK|PCHAN_HAS_SPLINEIK|PCHAN_HAS_CONST); + pchan->constflag &= ~(PCHAN_HAS_IK | PCHAN_HAS_SPLINEIK | PCHAN_HAS_CONST); } CTX_DATA_END; /* force depsgraph to get recalculated since relationships removed */ - DAG_scene_sort(bmain, scene); /* sort order of objects */ + DAG_scene_sort(bmain, scene); /* sort order of objects */ /* note, calling BIK_clear_data() isn't needed here */ /* do updates */ DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_CONSTRAINT, ob); return OPERATOR_FINISHED; } @@ -1184,22 +1183,21 @@ void POSE_OT_constraints_clear(wmOperatorType *ot) static int object_constraints_clear_exec(bContext *C, wmOperator *UNUSED(op)) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); /* do freeing */ - CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) - { + CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects) { free_constraints(&ob->constraints); DAG_id_tag_update(&ob->id, OB_RECALC_OB); } CTX_DATA_END; /* force depsgraph to get recalculated since relationships removed */ - DAG_scene_sort(bmain, scene); /* sort order of objects */ + DAG_scene_sort(bmain, scene); /* sort order of objects */ /* do updates */ - WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT, NULL); + WM_event_add_notifier(C, NC_OBJECT | ND_CONSTRAINT, NULL); return OPERATOR_FINISHED; } @@ -1220,7 +1218,7 @@ void OBJECT_OT_constraints_clear(wmOperatorType *ot) static int pose_constraint_copy_exec(bContext *C, wmOperator *op) { - Main *bmain= CTX_data_main(C); + Main *bmain = CTX_data_main(C); Scene *scene = CTX_data_scene(C); bPoseChannel *pchan = CTX_data_active_pose_bone(C); @@ -1231,8 +1229,7 @@ static int pose_constraint_copy_exec(bContext *C, wmOperator *op) } /* copy all constraints from active posebone to all selected posebones */ - CTX_DATA_BEGIN(C, bPoseChannel*, chan, selected_pose_bones) - { + CTX_DATA_BEGIN (C, bPoseChannel *, chan, selected_pose_bones) { /* if we're not handling the object we're copying from, copy all constraints over */ if (pchan != chan) { copy_constraints(&chan->constraints, &pchan->constraints, TRUE); @@ -1243,9 +1240,9 @@ static int pose_constraint_copy_exec(bContext *C, wmOperator *op) CTX_DATA_END; /* force depsgraph to get recalculated since new relationships added */ - DAG_scene_sort(bmain, scene); /* sort order of objects/bones */ + DAG_scene_sort(bmain, scene); /* sort order of objects/bones */ - WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT, NULL); + WM_event_add_notifier(C, NC_OBJECT | ND_CONSTRAINT, NULL); return OPERATOR_FINISHED; } @@ -1262,18 +1259,17 @@ void POSE_OT_constraints_copy(wmOperatorType *ot) ot->poll = ED_operator_posemode; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int object_constraint_copy_exec(bContext *C, wmOperator *UNUSED(op)) { - Main *bmain= CTX_data_main(C); + Main *bmain = CTX_data_main(C); Scene *scene = CTX_data_scene(C); Object *obact = ED_object_active_context(C); /* copy all constraints from active object to all selected objects */ - CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) - { + CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects) { /* if we're not handling the object we're copying from, copy all constraints over */ if (obact != ob) { copy_constraints(&ob->constraints, &obact->constraints, TRUE); @@ -1283,10 +1279,10 @@ static int object_constraint_copy_exec(bContext *C, wmOperator *UNUSED(op)) CTX_DATA_END; /* force depsgraph to get recalculated since new relationships added */ - DAG_scene_sort(bmain, scene); /* sort order of objects */ + DAG_scene_sort(bmain, scene); /* sort order of objects */ /* notifiers for updates */ - WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT|NA_ADDED, NULL); + WM_event_add_notifier(C, NC_OBJECT | ND_CONSTRAINT | NA_ADDED, NULL); return OPERATOR_FINISHED; } @@ -1303,7 +1299,7 @@ void OBJECT_OT_constraints_copy(wmOperatorType *ot) ot->poll = ED_operator_object_active_editable; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } /************************ add constraint operators *********************/ @@ -1311,25 +1307,25 @@ void OBJECT_OT_constraints_copy(wmOperatorType *ot) /* get the Object and/or PoseChannel to use as target */ static short get_new_constraint_target(bContext *C, int con_type, Object **tar_ob, bPoseChannel **tar_pchan, short add) { - Object *obact= ED_object_active_context(C); - bPoseChannel *pchanact= get_active_posechannel(obact); - short only_curve= 0, only_mesh= 0, only_ob= 0; - short found= 0; + Object *obact = ED_object_active_context(C); + bPoseChannel *pchanact = get_active_posechannel(obact); + short only_curve = 0, only_mesh = 0, only_ob = 0; + short found = 0; /* clear tar_ob and tar_pchan fields before use * - assume for now that both always exist... */ - *tar_ob= NULL; - *tar_pchan= NULL; + *tar_ob = NULL; + *tar_pchan = NULL; /* check if constraint type doesn't requires a target * - if so, no need to get any targets */ switch (con_type) { /* no-target constraints --------------------------- */ - /* null constraint - shouldn't even be added! */ + /* null constraint - shouldn't even be added! */ case CONSTRAINT_TYPE_NULL: - /* limit constraints - no targets needed */ + /* limit constraints - no targets needed */ case CONSTRAINT_TYPE_LOCLIMIT: case CONSTRAINT_TYPE_ROTLIMIT: case CONSTRAINT_TYPE_SIZELIMIT: @@ -1338,38 +1334,37 @@ static short get_new_constraint_target(bContext *C, int con_type, Object **tar_o /* restricted target-type constraints -------------- */ /* NOTE: for these, we cannot try to add a target object if no valid ones are found, since that doesn't work */ - /* curve-based constraints - set the only_curve and only_ob flags */ + /* curve-based constraints - set the only_curve and only_ob flags */ case CONSTRAINT_TYPE_CLAMPTO: case CONSTRAINT_TYPE_FOLLOWPATH: case CONSTRAINT_TYPE_SPLINEIK: - only_curve= 1; - only_ob= 1; - add= 0; + only_curve = 1; + only_ob = 1; + add = 0; break; - /* mesh only? */ + /* mesh only? */ case CONSTRAINT_TYPE_SHRINKWRAP: - only_mesh= 1; - only_ob= 1; - add= 0; + only_mesh = 1; + only_ob = 1; + add = 0; break; - /* object only - add here is ok? */ + /* object only - add here is ok? */ case CONSTRAINT_TYPE_RIGIDBODYJOINT: - only_ob= 1; + only_ob = 1; break; } /* if the active Object is Armature, and we can search for bones, do so... */ if ((obact->type == OB_ARMATURE) && (only_ob == 0)) { /* search in list of selected Pose-Channels for target */ - CTX_DATA_BEGIN(C, bPoseChannel*, pchan, selected_pose_bones) - { + CTX_DATA_BEGIN (C, bPoseChannel *, pchan, selected_pose_bones) { /* just use the first one that we encounter, as long as it is not the active one */ if (pchan != pchanact) { - *tar_ob= obact; - *tar_pchan= pchan; - found= 1; + *tar_ob = obact; + *tar_pchan = pchan; + found = 1; break; } @@ -1380,23 +1375,22 @@ static short get_new_constraint_target(bContext *C, int con_type, Object **tar_o /* if not yet found, try selected Objects... */ if (found == 0) { /* search in selected objects context */ - CTX_DATA_BEGIN(C, Object*, ob, selected_objects) - { + CTX_DATA_BEGIN (C, Object *, ob, selected_objects) { /* just use the first object we encounter (that isn't the active object) * and which fulfills the criteria for the object-target that we've got */ if ( (ob != obact) && - ((!only_curve) || (ob->type == OB_CURVE)) && - ((!only_mesh) || (ob->type == OB_MESH)) ) + ((!only_curve) || (ob->type == OB_CURVE)) && + ((!only_mesh) || (ob->type == OB_MESH)) ) { /* set target */ - *tar_ob= ob; - found= 1; + *tar_ob = ob; + found = 1; /* perform some special operations on the target */ if (only_curve) { /* Curve-Path option must be enabled for follow-path constraints to be able to work */ - Curve *cu= (Curve *)ob->data; + Curve *cu = (Curve *)ob->data; cu->flag |= CU_PATH; } @@ -1408,17 +1402,17 @@ static short get_new_constraint_target(bContext *C, int con_type, Object **tar_o /* if still not found, add a new empty to act as a target (if allowed) */ if ((found == 0) && (add)) { - Scene *scene= CTX_data_scene(C); - Base *base= BASACT, *newbase=NULL; + Scene *scene = CTX_data_scene(C); + Base *base = BASACT, *newbase = NULL; Object *obt; /* add new target object */ - obt= add_object(scene, OB_EMPTY); + obt = add_object(scene, OB_EMPTY); /* set layers OK */ - newbase= BASACT; - newbase->lay= base->lay; - obt->lay= newbase->lay; + newbase = BASACT; + newbase->lay = base->lay; + obt->lay = newbase->lay; /* transform cent to global coords for loc */ if (pchanact) { @@ -1435,12 +1429,12 @@ static short get_new_constraint_target(bContext *C, int con_type, Object **tar_o } /* restore, add_object sets active */ - BASACT= base; + BASACT = base; base->flag |= SELECT; /* make our new target the new object */ - *tar_ob= obt; - found= 1; + *tar_ob = obt; + found = 1; } /* return whether there's any target */ @@ -1450,16 +1444,16 @@ static short get_new_constraint_target(bContext *C, int con_type, Object **tar_o /* used by add constraint operators to add the constraint required */ static int constraint_add_exec(bContext *C, wmOperator *op, Object *ob, ListBase *list, int type, short setTarget) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); bPoseChannel *pchan; bConstraint *con; if (list == &ob->constraints) { - pchan= NULL; + pchan = NULL; } else { - pchan= get_active_posechannel(ob); + pchan = get_active_posechannel(ob); /* ensure not to confuse object/pose adding */ if (pchan == NULL) { @@ -1494,8 +1488,8 @@ static int constraint_add_exec(bContext *C, wmOperator *op, Object *ob, ListBase * - apart from the buttons-window add buttons, we shouldn't add in this way */ if (setTarget) { - Object *tar_ob= NULL; - bPoseChannel *tar_pchan= NULL; + Object *tar_ob = NULL; + bPoseChannel *tar_pchan = NULL; /* get the target objects, adding them as need be */ if (get_new_constraint_target(C, type, &tar_ob, &tar_pchan, 1)) { @@ -1515,7 +1509,7 @@ static int constraint_add_exec(bContext *C, wmOperator *op, Object *ob, ListBase { #ifdef WITH_PYTHON char *menustr; - int scriptint= 0; + int scriptint = 0; /* popup a list of usable scripts */ menustr = buildmenu_pyconstraints(NULL, &scriptint); // XXX scriptint = pupmenu(menustr); @@ -1545,17 +1539,17 @@ static int constraint_add_exec(bContext *C, wmOperator *op, Object *ob, ListBase /* force depsgraph to get recalculated since new relationships added */ - DAG_scene_sort(bmain, scene); /* sort order of objects */ + DAG_scene_sort(bmain, scene); /* sort order of objects */ - if ((ob->type==OB_ARMATURE) && (pchan)) { - ob->pose->flag |= POSE_RECALC; /* sort pose channels */ - DAG_id_tag_update(&ob->id, OB_RECALC_DATA|OB_RECALC_OB); + if ((ob->type == OB_ARMATURE) && (pchan)) { + ob->pose->flag |= POSE_RECALC; /* sort pose channels */ + DAG_id_tag_update(&ob->id, OB_RECALC_DATA | OB_RECALC_OB); } else DAG_id_tag_update(&ob->id, OB_RECALC_DATA); /* notifiers for updates */ - WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT|NA_ADDED, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_CONSTRAINT | NA_ADDED, ob); return OPERATOR_FINISHED; } @@ -1565,9 +1559,9 @@ static int constraint_add_exec(bContext *C, wmOperator *op, Object *ob, ListBase /* dummy operator callback */ static int object_constraint_add_exec(bContext *C, wmOperator *op) { - Object *ob=ED_object_active_context(C); - int type= RNA_enum_get(op->ptr, "type"); - short with_targets= 0; + Object *ob = ED_object_active_context(C); + int type = RNA_enum_get(op->ptr, "type"); + short with_targets = 0; if (!ob) { BKE_report(op->reports, RPT_ERROR, "No active object to add constraint to"); @@ -1578,7 +1572,7 @@ static int object_constraint_add_exec(bContext *C, wmOperator *op) * operator name included 'with_targets', since the menu doesn't allow multiple properties */ if (strstr(op->idname, "with_targets")) - with_targets= 1; + with_targets = 1; return constraint_add_exec(C, op, ob, &ob->constraints, type, with_targets); } @@ -1586,9 +1580,9 @@ static int object_constraint_add_exec(bContext *C, wmOperator *op) /* dummy operator callback */ static int pose_constraint_add_exec(bContext *C, wmOperator *op) { - Object *ob= object_pose_armature_get(ED_object_active_context(C)); - int type= RNA_enum_get(op->ptr, "type"); - short with_targets= 0; + Object *ob = object_pose_armature_get(ED_object_active_context(C)); + int type = RNA_enum_get(op->ptr, "type"); + short with_targets = 0; if (!ob) { BKE_report(op->reports, RPT_ERROR, "No active object to add constraint to"); @@ -1599,7 +1593,7 @@ static int pose_constraint_add_exec(bContext *C, wmOperator *op) * operator name included 'with_targets', since the menu doesn't allow multiple properties */ if (strstr(op->idname, "with_targets")) - with_targets= 1; + with_targets = 1; return constraint_add_exec(C, op, ob, get_active_constraints(ob), type, with_targets); } @@ -1619,7 +1613,7 @@ void OBJECT_OT_constraint_add(wmOperatorType *ot) ot->poll = ED_operator_object_active_editable; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ ot->prop = RNA_def_enum(ot->srna, "type", constraint_type_items, 0, "Type", ""); @@ -1638,7 +1632,7 @@ void OBJECT_OT_constraint_add_with_targets(wmOperatorType *ot) ot->poll = ED_operator_object_active_editable; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ ot->prop = RNA_def_enum(ot->srna, "type", constraint_type_items, 0, "Type", ""); @@ -1657,7 +1651,7 @@ void POSE_OT_constraint_add(wmOperatorType *ot) ot->poll = ED_operator_posemode; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ ot->prop = RNA_def_enum(ot->srna, "type", constraint_type_items, 0, "Type", ""); @@ -1676,7 +1670,7 @@ void POSE_OT_constraint_add_with_targets(wmOperatorType *ot) ot->poll = ED_operator_posemode; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ ot->prop = RNA_def_enum(ot->srna, "type", constraint_type_items, 0, "Type", ""); @@ -1689,14 +1683,14 @@ void POSE_OT_constraint_add_with_targets(wmOperatorType *ot) /* present menu with options + validation for targets to use */ static int pose_ik_add_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(evt)) { - Object *ob= object_pose_armature_get(CTX_data_active_object(C)); - bPoseChannel *pchan= get_active_posechannel(ob); - bConstraint *con= NULL; + Object *ob = object_pose_armature_get(CTX_data_active_object(C)); + bPoseChannel *pchan = get_active_posechannel(ob); + bConstraint *con = NULL; uiPopupMenu *pup; uiLayout *layout; - Object *tar_ob= NULL; - bPoseChannel *tar_pchan= NULL; + Object *tar_ob = NULL; + bPoseChannel *tar_pchan = NULL; /* must have active bone */ if (ELEM(NULL, ob, pchan)) { @@ -1705,8 +1699,8 @@ static int pose_ik_add_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(evt)) } /* bone must not have any constraints already */ - for (con= pchan->constraints.first; con; con= con->next) { - if (con->type==CONSTRAINT_TYPE_KINEMATIC) break; + for (con = pchan->constraints.first; con; con = con->next) { + if (con->type == CONSTRAINT_TYPE_KINEMATIC) break; } if (con) { BKE_report(op->reports, RPT_ERROR, "Bone already has IK Constraint"); @@ -1714,8 +1708,8 @@ static int pose_ik_add_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(evt)) } /* prepare popup menu to choose targetting options */ - pup= uiPupMenuBegin(C, "Add IK", ICON_NONE); - layout= uiPupMenuLayout(pup); + pup = uiPupMenuBegin(C, "Add IK", ICON_NONE); + layout = uiPupMenuLayout(pup); /* the type of targets we'll set determines the menu entries to show... */ if (get_new_constraint_target(C, CONSTRAINT_TYPE_KINEMATIC, &tar_ob, &tar_pchan, 0)) { @@ -1742,8 +1736,8 @@ static int pose_ik_add_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(evt)) /* call constraint_add_exec() to add the IK constraint */ static int pose_ik_add_exec(bContext *C, wmOperator *op) { - Object *ob= CTX_data_active_object(C); - int with_targets= RNA_boolean_get(op->ptr, "with_targets"); + Object *ob = CTX_data_active_object(C); + int with_targets = RNA_boolean_get(op->ptr, "with_targets"); /* add the constraint - all necessary checks should have been done by the invoke() callback already... */ return constraint_add_exec(C, op, ob, get_active_constraints(ob), CONSTRAINT_TYPE_KINEMATIC, with_targets); @@ -1762,7 +1756,7 @@ void POSE_OT_ik_add(wmOperatorType *ot) ot->poll = ED_operator_posemode; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ RNA_def_boolean(ot->srna, "with_targets", 1, "With Targets", "Assign IK Constraint with targets derived from the select bones/objects"); @@ -1773,21 +1767,20 @@ void POSE_OT_ik_add(wmOperatorType *ot) /* remove IK constraints from selected bones */ static int pose_ik_clear_exec(bContext *C, wmOperator *UNUSED(op)) { - Object *ob= object_pose_armature_get(CTX_data_active_object(C)); + Object *ob = object_pose_armature_get(CTX_data_active_object(C)); /* only remove IK Constraints */ - CTX_DATA_BEGIN(C, bPoseChannel*, pchan, selected_pose_bones) - { + CTX_DATA_BEGIN (C, bPoseChannel *, pchan, selected_pose_bones) { bConstraint *con, *next; // TODO: should we be checking if these contraints were local before we try and remove them? - for (con= pchan->constraints.first; con; con= next) { - next= con->next; - if (con->type==CONSTRAINT_TYPE_KINEMATIC) { + for (con = pchan->constraints.first; con; con = next) { + next = con->next; + if (con->type == CONSTRAINT_TYPE_KINEMATIC) { remove_constraint(&pchan->constraints, con); } } - pchan->constflag &= ~(PCHAN_HAS_IK|PCHAN_HAS_TARGET); + pchan->constflag &= ~(PCHAN_HAS_IK | PCHAN_HAS_TARGET); } CTX_DATA_END; @@ -1795,7 +1788,7 @@ static int pose_ik_clear_exec(bContext *C, wmOperator *UNUSED(op)) DAG_id_tag_update(&ob->id, OB_RECALC_DATA); /* note, notifier might evolve */ - WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT|NA_REMOVED, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_CONSTRAINT | NA_REMOVED, ob); return OPERATOR_FINISHED; } @@ -1812,6 +1805,6 @@ void POSE_OT_ik_clear(wmOperatorType *ot) ot->poll = ED_operator_posemode; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c index 2fbc2966bc8..d5385d00c8a 100644 --- a/source/blender/editors/object/object_edit.c +++ b/source/blender/editors/object/object_edit.c @@ -101,7 +101,7 @@ #include "WM_api.h" #include "WM_types.h" -#include "object_intern.h" // own include +#include "object_intern.h" // own include /* ************* XXX **************** */ static void error(const char *UNUSED(arg)) {} @@ -109,7 +109,8 @@ static void waitcursor(int UNUSED(val)) {} static int pupmenu(const char *UNUSED(msg)) {return 0;} /* port over here */ -static void error_libdata(void) {} +static void error_libdata(void) { +} Object *ED_object_context(bContext *C) { @@ -120,10 +121,10 @@ Object *ED_object_context(bContext *C) * note: context can be NULL when called from a enum with PROP_ENUM_NO_CONTEXT */ Object *ED_object_active_context(bContext *C) { - Object *ob= NULL; + Object *ob = NULL; if (C) { - ob= ED_object_context(C); - if (!ob) ob= CTX_data_active_object(C); + ob = ED_object_context(C); + if (!ob) ob = CTX_data_active_object(C); } return ob; } @@ -132,15 +133,15 @@ Object *ED_object_active_context(bContext *C) /* ********* clear/set restrict view *********/ static int object_hide_view_clear_exec(bContext *C, wmOperator *UNUSED(op)) { - Main *bmain= CTX_data_main(C); - ScrArea *sa= CTX_wm_area(C); - View3D *v3d= sa->spacedata.first; - Scene *scene= CTX_data_scene(C); + Main *bmain = CTX_data_main(C); + ScrArea *sa = CTX_wm_area(C); + View3D *v3d = sa->spacedata.first; + Scene *scene = CTX_data_scene(C); Base *base; int changed = 0; /* XXX need a context loop to handle such cases */ - for (base = FIRSTBASE; base; base=base->next) { + for (base = FIRSTBASE; base; base = base->next) { if ((base->lay & v3d->lay) && base->object->restrictflag & OB_RESTRICT_VIEW) { base->flag |= SELECT; base->object->flag = base->flag; @@ -151,7 +152,7 @@ static int object_hide_view_clear_exec(bContext *C, wmOperator *UNUSED(op)) if (changed) { DAG_id_type_tag(bmain, ID_OB); DAG_scene_sort(bmain, scene); - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); + WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, scene); } return OPERATOR_FINISHED; @@ -170,24 +171,24 @@ void OBJECT_OT_hide_view_clear(wmOperatorType *ot) ot->poll = ED_operator_view3d_active; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int object_hide_view_set_exec(bContext *C, wmOperator *op) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); short changed = 0; - const int unselected= RNA_boolean_get(op->ptr, "unselected"); + const int unselected = RNA_boolean_get(op->ptr, "unselected"); - CTX_DATA_BEGIN(C, Base*, base, visible_bases) { + CTX_DATA_BEGIN (C, Base *, base, visible_bases) { if (!unselected) { if (base->flag & SELECT) { base->flag &= ~SELECT; base->object->flag = base->flag; base->object->restrictflag |= OB_RESTRICT_VIEW; changed = 1; - if (base==BASACT) { + if (base == BASACT) { ED_base_object_activate(C, NULL); } } @@ -205,7 +206,7 @@ static int object_hide_view_set_exec(bContext *C, wmOperator *op) DAG_id_type_tag(bmain, ID_OB); DAG_scene_sort(bmain, scene); - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, CTX_data_scene(C)); + WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, CTX_data_scene(C)); } @@ -224,7 +225,7 @@ void OBJECT_OT_hide_view_set(wmOperatorType *ot) ot->poll = ED_operator_view3d_active; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; RNA_def_boolean(ot->srna, "unselected", 0, "Unselected", "Hide unselected rather than selected objects"); @@ -233,19 +234,19 @@ void OBJECT_OT_hide_view_set(wmOperatorType *ot) /* 99% same as above except no need for scene refreshing (TODO, update render preview) */ static int object_hide_render_clear_exec(bContext *C, wmOperator *UNUSED(op)) { - short changed= 0; + short changed = 0; /* XXX need a context loop to handle such cases */ - CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) { + CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects) { if (ob->restrictflag & OB_RESTRICT_RENDER) { ob->restrictflag &= ~OB_RESTRICT_RENDER; - changed= 1; + changed = 1; } } CTX_DATA_END; if (changed) - WM_event_add_notifier(C, NC_SPACE|ND_SPACE_OUTLINER, NULL); + WM_event_add_notifier(C, NC_SPACE | ND_SPACE_OUTLINER, NULL); return OPERATOR_FINISHED; } @@ -263,14 +264,14 @@ void OBJECT_OT_hide_render_clear(wmOperatorType *ot) ot->poll = ED_operator_view3d_active; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int object_hide_render_set_exec(bContext *C, wmOperator *op) { - const int unselected= RNA_boolean_get(op->ptr, "unselected"); + const int unselected = RNA_boolean_get(op->ptr, "unselected"); - CTX_DATA_BEGIN(C, Base*, base, visible_bases) { + CTX_DATA_BEGIN (C, Base *, base, visible_bases) { if (!unselected) { if (base->flag & SELECT) { base->object->restrictflag |= OB_RESTRICT_RENDER; @@ -283,7 +284,7 @@ static int object_hide_render_set_exec(bContext *C, wmOperator *op) } } CTX_DATA_END; - WM_event_add_notifier(C, NC_SPACE|ND_SPACE_OUTLINER, NULL); + WM_event_add_notifier(C, NC_SPACE | ND_SPACE_OUTLINER, NULL); return OPERATOR_FINISHED; } @@ -299,7 +300,7 @@ void OBJECT_OT_hide_render_set(wmOperatorType *ot) ot->poll = ED_operator_view3d_active; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; RNA_def_boolean(ot->srna, "unselected", 0, "Unselected", "Hide unselected rather than selected objects"); } @@ -310,19 +311,19 @@ void ED_object_exit_editmode(bContext *C, int flag) { /* Note! only in exceptional cases should 'EM_DO_UNDO' NOT be in the flag */ - Scene *scene= CTX_data_scene(C); - Object *obedit= CTX_data_edit_object(C); + Scene *scene = CTX_data_scene(C); + Object *obedit = CTX_data_edit_object(C); int freedata = flag & EM_FREEDATA; - if (obedit==NULL) return; + if (obedit == NULL) return; if (flag & EM_WAITCURSOR) waitcursor(1); - if (obedit->type==OB_MESH) { - Mesh *me= obedit->data; + if (obedit->type == OB_MESH) { + Mesh *me = obedit->data; // if (EM_texFaceCheck()) - if (me->edit_btmesh->bm->totvert>MESH_MAX_VERTS) { + if (me->edit_btmesh->bm->totvert > MESH_MAX_VERTS) { error("Too many vertices"); return; } @@ -332,14 +333,14 @@ void ED_object_exit_editmode(bContext *C, int flag) if (freedata) { EDBM_mesh_free(me->edit_btmesh); MEM_freeN(me->edit_btmesh); - me->edit_btmesh= NULL; + me->edit_btmesh = NULL; } if (obedit->restore_mode & OB_MODE_WEIGHT_PAINT) { mesh_octree_table(NULL, NULL, NULL, 'e'); mesh_mirrtopo_table(NULL, 'e'); } } - else if (obedit->type==OB_ARMATURE) { + else if (obedit->type == OB_ARMATURE) { ED_armature_from_edit(obedit); if (freedata) ED_armature_edit_free(obedit); @@ -348,15 +349,15 @@ void ED_object_exit_editmode(bContext *C, int flag) load_editNurb(obedit); if (freedata) free_editNurb(obedit); } - else if (obedit->type==OB_FONT && freedata) { + else if (obedit->type == OB_FONT && freedata) { load_editText(obedit); if (freedata) free_editText(obedit); } - else if (obedit->type==OB_LATTICE) { + else if (obedit->type == OB_LATTICE) { load_editLatt(obedit); if (freedata) free_editLatt(obedit); } - else if (obedit->type==OB_MBALL) { + else if (obedit->type == OB_MBALL) { load_editMball(obedit); if (freedata) free_editMball(obedit); } @@ -367,11 +368,11 @@ void ED_object_exit_editmode(bContext *C, int flag) PTCacheID *pid; /* for example; displist make is different in editmode */ - scene->obedit= NULL; // XXX for context + scene->obedit = NULL; // XXX for context /* flag object caches as outdated */ BKE_ptcache_ids_from_object(&pidlist, obedit, NULL, 0); - for (pid=pidlist.first; pid; pid=pid->next) { + for (pid = pidlist.first; pid; pid = pid->next) { if (pid->type != PTCACHE_TYPE_PARTICLES) /* particles don't need reset on geometry change */ pid->cache->flag |= PTCACHE_OUTDATED; } @@ -380,14 +381,14 @@ void ED_object_exit_editmode(bContext *C, int flag) BKE_ptcache_object_reset(scene, obedit, PTCACHE_RESET_OUTDATED); /* also flush ob recalc, doesn't take much overhead, but used for particles */ - DAG_id_tag_update(&obedit->id, OB_RECALC_OB|OB_RECALC_DATA); + DAG_id_tag_update(&obedit->id, OB_RECALC_OB | OB_RECALC_DATA); if (flag & EM_DO_UNDO) ED_undo_push(C, "Editmode"); if (flag & EM_WAITCURSOR) waitcursor(0); - WM_event_add_notifier(C, NC_SCENE|ND_MODE|NS_MODE_OBJECT, scene); + WM_event_add_notifier(C, NC_SCENE | ND_MODE | NS_MODE_OBJECT, scene); obedit->mode &= ~OB_MODE_EDIT; } @@ -396,27 +397,27 @@ void ED_object_exit_editmode(bContext *C, int flag) void ED_object_enter_editmode(bContext *C, int flag) { - Scene *scene= CTX_data_scene(C); - Base *base= NULL; + Scene *scene = CTX_data_scene(C); + Base *base = NULL; Object *ob; - ScrArea *sa= CTX_wm_area(C); - View3D *v3d= NULL; - int ok= 0; + ScrArea *sa = CTX_wm_area(C); + View3D *v3d = NULL; + int ok = 0; if (scene->id.lib) return; - if (sa && sa->spacetype==SPACE_VIEW3D) - v3d= sa->spacedata.first; + if (sa && sa->spacetype == SPACE_VIEW3D) + v3d = sa->spacedata.first; - if ((flag & EM_IGNORE_LAYER)==0) { - base= CTX_data_active_base(C); /* active layer checked here for view3d */ + if ((flag & EM_IGNORE_LAYER) == 0) { + base = CTX_data_active_base(C); /* active layer checked here for view3d */ - if (base==NULL) return; - else if (v3d && (base->lay & v3d->lay)==0) return; - else if (!v3d && (base->lay & scene->lay)==0) return; + if (base == NULL) return; + else if (v3d && (base->lay & v3d->lay) == 0) return; + else if (!v3d && (base->lay & scene->lay) == 0) return; } else { - base= scene->basact; + base = scene->basact; } if (ELEM3(NULL, base, base->object, base->object->data)) return; @@ -434,14 +435,14 @@ void ED_object_enter_editmode(bContext *C, int flag) /* note, when switching scenes the object can have editmode data but * not be scene->obedit: bug 22954, this avoids calling self eternally */ - if ((ob->restore_mode & OB_MODE_EDIT)==0) + if ((ob->restore_mode & OB_MODE_EDIT) == 0) ED_object_toggle_modes(C, ob->mode); - ob->mode= OB_MODE_EDIT; + ob->mode = OB_MODE_EDIT; - if (ob->type==OB_MESH) { + if (ob->type == OB_MESH) { BMEditMesh *em; - ok= 1; + ok = 1; scene->obedit = ob; /* context sees this */ EDBM_mesh_make(CTX_data_tool_settings(C), scene, ob); @@ -455,10 +456,10 @@ void ED_object_enter_editmode(bContext *C, int flag) BM_mesh_select_mode_flush(em->bm); } - WM_event_add_notifier(C, NC_SCENE|ND_MODE|NS_EDITMODE_MESH, scene); + WM_event_add_notifier(C, NC_SCENE | ND_MODE | NS_EDITMODE_MESH, scene); } - else if (ob->type==OB_ARMATURE) { - bArmature *arm= base->object->data; + else if (ob->type == OB_ARMATURE) { + bArmature *arm = base->object->data; if (!arm) return; /* * The function object_data_is_libdata make a problem here, the @@ -472,50 +473,50 @@ void ED_object_enter_editmode(bContext *C, int flag) error_libdata(); return; } - ok=1; - scene->obedit= ob; + ok = 1; + scene->obedit = ob; ED_armature_to_edit(ob); /* to ensure all goes in restposition and without striding */ - DAG_id_tag_update(&ob->id, OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME); // XXX: should this be OB_RECALC_DATA? + DAG_id_tag_update(&ob->id, OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME); // XXX: should this be OB_RECALC_DATA? - WM_event_add_notifier(C, NC_SCENE|ND_MODE|NS_EDITMODE_ARMATURE, scene); + WM_event_add_notifier(C, NC_SCENE | ND_MODE | NS_EDITMODE_ARMATURE, scene); } - else if (ob->type==OB_FONT) { - scene->obedit= ob; // XXX for context - ok= 1; + else if (ob->type == OB_FONT) { + scene->obedit = ob; // XXX for context + ok = 1; make_editText(ob); - WM_event_add_notifier(C, NC_SCENE|ND_MODE|NS_EDITMODE_TEXT, scene); + WM_event_add_notifier(C, NC_SCENE | ND_MODE | NS_EDITMODE_TEXT, scene); } - else if (ob->type==OB_MBALL) { - scene->obedit= ob; // XXX for context - ok= 1; + else if (ob->type == OB_MBALL) { + scene->obedit = ob; // XXX for context + ok = 1; make_editMball(ob); - WM_event_add_notifier(C, NC_SCENE|ND_MODE|NS_EDITMODE_MBALL, scene); + WM_event_add_notifier(C, NC_SCENE | ND_MODE | NS_EDITMODE_MBALL, scene); } - else if (ob->type==OB_LATTICE) { - scene->obedit= ob; // XXX for context - ok= 1; + else if (ob->type == OB_LATTICE) { + scene->obedit = ob; // XXX for context + ok = 1; make_editLatt(ob); - WM_event_add_notifier(C, NC_SCENE|ND_MODE|NS_EDITMODE_LATTICE, scene); + WM_event_add_notifier(C, NC_SCENE | ND_MODE | NS_EDITMODE_LATTICE, scene); } - else if (ob->type==OB_SURF || ob->type==OB_CURVE) { - ok= 1; - scene->obedit= ob; // XXX for context + else if (ob->type == OB_SURF || ob->type == OB_CURVE) { + ok = 1; + scene->obedit = ob; // XXX for context make_editNurb(ob); - WM_event_add_notifier(C, NC_SCENE|ND_MODE|NS_EDITMODE_CURVE, scene); + WM_event_add_notifier(C, NC_SCENE | ND_MODE | NS_EDITMODE_CURVE, scene); } if (ok) { DAG_id_tag_update(&ob->id, OB_RECALC_DATA); } else { - scene->obedit= NULL; // XXX for context + scene->obedit = NULL; // XXX for context ob->mode &= ~OB_MODE_EDIT; - WM_event_add_notifier(C, NC_SCENE|ND_MODE|NS_MODE_OBJECT, scene); + WM_event_add_notifier(C, NC_SCENE | ND_MODE | NS_MODE_OBJECT, scene); } if (flag & EM_DO_UNDO) ED_undo_push(C, "Enter Editmode"); @@ -529,7 +530,7 @@ static int editmode_toggle_exec(bContext *C, wmOperator *UNUSED(op)) if (!CTX_data_edit_object(C)) ED_object_enter_editmode(C, EM_WAITCURSOR); else - ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR); /* had EM_DO_UNDO but op flag calls undo too [#24685] */ + ED_object_exit_editmode(C, EM_FREEDATA | EM_FREEUNDO | EM_WAITCURSOR); /* had EM_DO_UNDO but op flag calls undo too [#24685] */ ED_space_image_uv_sculpt_update(CTX_wm_manager(C), toolsettings); @@ -567,18 +568,18 @@ void OBJECT_OT_editmode_toggle(wmOperatorType *ot) ot->poll = editmode_toggle_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } /* *************************** */ static int posemode_exec(bContext *C, wmOperator *UNUSED(op)) { - Base *base= CTX_data_active_base(C); + Base *base = CTX_data_active_base(C); - if (base->object->type==OB_ARMATURE) { - if (base->object==CTX_data_edit_object(C)) { - ED_object_exit_editmode(C, EM_FREEDATA|EM_DO_UNDO); + if (base->object->type == OB_ARMATURE) { + if (base->object == CTX_data_edit_object(C)) { + ED_object_exit_editmode(C, EM_FREEDATA | EM_DO_UNDO); ED_armature_enter_posemode(C, base); } else if (base->object->mode & OB_MODE_POSE) @@ -604,7 +605,7 @@ void OBJECT_OT_posemode_toggle(wmOperatorType *ot) ot->poll = ED_operator_object_active_editable; /* flag */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static void copymenu_properties(Scene *scene, View3D *v3d, Object *ob) @@ -612,53 +613,53 @@ static void copymenu_properties(Scene *scene, View3D *v3d, Object *ob) //XXX no longer used - to be removed - replaced by game_properties_copy_exec bProperty *prop; Base *base; - int nr, tot=0; + int nr, tot = 0; char *str; - prop= ob->prop.first; + prop = ob->prop.first; while (prop) { tot++; - prop= prop->next; + prop = prop->next; } - str= MEM_callocN(50 + 33*tot, "copymenu prop"); + str = MEM_callocN(50 + 33 * tot, "copymenu prop"); if (tot) strcpy(str, "Copy Property %t|Replace All|Merge All|%l"); else strcpy(str, "Copy Property %t|Clear All (no properties on active)"); - tot= 0; - prop= ob->prop.first; + tot = 0; + prop = ob->prop.first; while (prop) { tot++; strcat(str, "|"); strcat(str, prop->name); - prop= prop->next; + prop = prop->next; } - nr= pupmenu(str); + nr = pupmenu(str); - if ( nr==1 || nr==2 ) { - for (base= FIRSTBASE; base; base= base->next) { - if ((base != BASACT) &&(TESTBASELIB(v3d, base))) { - if (nr==1) { /* replace */ - copy_properties( &base->object->prop, &ob->prop ); + if (nr == 1 || nr == 2) { + for (base = FIRSTBASE; base; base = base->next) { + if ((base != BASACT) && (TESTBASELIB(v3d, base))) { + if (nr == 1) { /* replace */ + copy_properties(&base->object->prop, &ob->prop); } else { - for (prop = ob->prop.first; prop; prop= prop->next ) { + for (prop = ob->prop.first; prop; prop = prop->next) { set_ob_property(base->object, prop); } } } } } - else if (nr>0) { - prop = BLI_findlink(&ob->prop, nr-4); /* account for first 3 menu items & menu index starting at 1*/ + else if (nr > 0) { + prop = BLI_findlink(&ob->prop, nr - 4); /* account for first 3 menu items & menu index starting at 1*/ if (prop) { - for (base= FIRSTBASE; base; base= base->next) { - if ((base != BASACT) &&(TESTBASELIB(v3d, base))) { + for (base = FIRSTBASE; base; base = base->next) { + if ((base != BASACT) && (TESTBASELIB(v3d, base))) { set_ob_property(base->object, prop); } } @@ -673,7 +674,7 @@ static void copymenu_logicbricks(Scene *scene, View3D *v3d, Object *ob) //XXX no longer used - to be removed - replaced by logicbricks_copy_exec Base *base; - for (base= FIRSTBASE; base; base= base->next) { + for (base = FIRSTBASE; base; base = base->next) { if (base->object != ob) { if (TESTBASELIB(v3d, base)) { @@ -692,12 +693,12 @@ static void copymenu_logicbricks(Scene *scene, View3D *v3d, Object *ob) set_sca_new_poins_ob(base->object); /* some menu settings */ - base->object->scavisflag= ob->scavisflag; - base->object->scaflag= ob->scaflag; + base->object->scavisflag = ob->scavisflag; + base->object->scaflag = ob->scaflag; /* set the initial state */ - base->object->state= ob->state; - base->object->init_state= ob->init_state; + base->object->state = ob->state; + base->object->init_state = ob->init_state; } } } @@ -706,49 +707,49 @@ static void copymenu_logicbricks(Scene *scene, View3D *v3d, Object *ob) /* both pointers should exist */ static void copy_texture_space(Object *to, Object *ob) { - float *poin1= NULL, *poin2= NULL; - short texflag= 0; + float *poin1 = NULL, *poin2 = NULL; + short texflag = 0; - if (ob->type==OB_MESH) { - texflag= ((Mesh *)ob->data)->texflag; - poin2= ((Mesh *)ob->data)->loc; + if (ob->type == OB_MESH) { + texflag = ((Mesh *)ob->data)->texflag; + poin2 = ((Mesh *)ob->data)->loc; } else if (ELEM3(ob->type, OB_CURVE, OB_SURF, OB_FONT)) { - texflag= ((Curve *)ob->data)->texflag; - poin2= ((Curve *)ob->data)->loc; + texflag = ((Curve *)ob->data)->texflag; + poin2 = ((Curve *)ob->data)->loc; } - else if (ob->type==OB_MBALL) { - texflag= ((MetaBall *)ob->data)->texflag; - poin2= ((MetaBall *)ob->data)->loc; + else if (ob->type == OB_MBALL) { + texflag = ((MetaBall *)ob->data)->texflag; + poin2 = ((MetaBall *)ob->data)->loc; } else return; - if (to->type==OB_MESH) { - ((Mesh *)to->data)->texflag= texflag; - poin1= ((Mesh *)to->data)->loc; + if (to->type == OB_MESH) { + ((Mesh *)to->data)->texflag = texflag; + poin1 = ((Mesh *)to->data)->loc; } else if (ELEM3(to->type, OB_CURVE, OB_SURF, OB_FONT)) { - ((Curve *)to->data)->texflag= texflag; - poin1= ((Curve *)to->data)->loc; + ((Curve *)to->data)->texflag = texflag; + poin1 = ((Curve *)to->data)->loc; } - else if (to->type==OB_MBALL) { - ((MetaBall *)to->data)->texflag= texflag; - poin1= ((MetaBall *)to->data)->loc; + else if (to->type == OB_MBALL) { + ((MetaBall *)to->data)->texflag = texflag; + poin1 = ((MetaBall *)to->data)->loc; } else return; - memcpy(poin1, poin2, 9*sizeof(float)); /* this was noted in DNA_mesh, curve, mball */ + memcpy(poin1, poin2, 9 * sizeof(float)); /* this was noted in DNA_mesh, curve, mball */ - if (to->type==OB_MESH) { + if (to->type == OB_MESH) { /* pass */ } else if (to->type == OB_MBALL) { - tex_space_mball(to); + BKE_metaball_tex_space_calc(to); } else { - tex_space_curve(to->data); + BKE_curve_tex_space_calc(to->data); } } @@ -760,125 +761,125 @@ static void copy_attr(Main *bmain, Scene *scene, View3D *v3d, short event) Base *base; Curve *cu, *cu1; Nurb *nu; - int do_scene_sort= 0; + int do_scene_sort = 0; if (scene->id.lib) return; - if (!(ob=OBACT)) return; + if (!(ob = OBACT)) return; if (scene->obedit) { // XXX get from context /* obedit_copymenu(); */ return; } - if (event==9) { + if (event == 9) { copymenu_properties(scene, v3d, ob); return; } - else if (event==10) { + else if (event == 10) { copymenu_logicbricks(scene, v3d, ob); return; } - else if (event==24) { + else if (event == 24) { /* moved to object_link_modifiers */ /* copymenu_modifiers(bmain, scene, v3d, ob); */ return; } - for (base= FIRSTBASE; base; base= base->next) { + for (base = FIRSTBASE; base; base = base->next) { if (base != BASACT) { if (TESTBASELIB(v3d, base)) { base->object->recalc |= OB_RECALC_OB; - if (event==1) { /* loc */ + if (event == 1) { /* loc */ copy_v3_v3(base->object->loc, ob->loc); copy_v3_v3(base->object->dloc, ob->dloc); } - else if (event==2) { /* rot */ + else if (event == 2) { /* rot */ copy_v3_v3(base->object->rot, ob->rot); copy_v3_v3(base->object->drot, ob->drot); copy_qt_qt(base->object->quat, ob->quat); copy_qt_qt(base->object->dquat, ob->dquat); } - else if (event==3) { /* size */ + else if (event == 3) { /* size */ copy_v3_v3(base->object->size, ob->size); copy_v3_v3(base->object->dscale, ob->dscale); } - else if (event==4) { /* drawtype */ - base->object->dt= ob->dt; - base->object->dtx= ob->dtx; - base->object->empty_drawtype= ob->empty_drawtype; - base->object->empty_drawsize= ob->empty_drawsize; + else if (event == 4) { /* drawtype */ + base->object->dt = ob->dt; + base->object->dtx = ob->dtx; + base->object->empty_drawtype = ob->empty_drawtype; + base->object->empty_drawsize = ob->empty_drawsize; } - else if (event==5) { /* time offs */ - base->object->sf= ob->sf; + else if (event == 5) { /* time offs */ + base->object->sf = ob->sf; } - else if (event==6) { /* dupli */ - base->object->dupon= ob->dupon; - base->object->dupoff= ob->dupoff; - base->object->dupsta= ob->dupsta; - base->object->dupend= ob->dupend; + else if (event == 6) { /* dupli */ + base->object->dupon = ob->dupon; + base->object->dupoff = ob->dupoff; + base->object->dupsta = ob->dupsta; + base->object->dupend = ob->dupend; base->object->transflag &= ~OB_DUPLI; base->object->transflag |= (ob->transflag & OB_DUPLI); - base->object->dup_group= ob->dup_group; + base->object->dup_group = ob->dup_group; if (ob->dup_group) id_lib_extern(&ob->dup_group->id); } - else if (event==7) { /* mass */ - base->object->mass= ob->mass; + else if (event == 7) { /* mass */ + base->object->mass = ob->mass; } - else if (event==8) { /* damping */ - base->object->damping= ob->damping; - base->object->rdamping= ob->rdamping; + else if (event == 8) { /* damping */ + base->object->damping = ob->damping; + base->object->rdamping = ob->rdamping; } - else if (event==11) { /* all physical attributes */ + else if (event == 11) { /* all physical attributes */ base->object->gameflag = ob->gameflag; base->object->inertia = ob->inertia; base->object->formfactor = ob->formfactor; - base->object->damping= ob->damping; - base->object->rdamping= ob->rdamping; - base->object->min_vel= ob->min_vel; - base->object->max_vel= ob->max_vel; + base->object->damping = ob->damping; + base->object->rdamping = ob->rdamping; + base->object->min_vel = ob->min_vel; + base->object->max_vel = ob->max_vel; if (ob->gameflag & OB_BOUNDS) { base->object->collision_boundtype = ob->collision_boundtype; } - base->object->margin= ob->margin; - base->object->bsoft= copy_bulletsoftbody(ob->bsoft); + base->object->margin = ob->margin; + base->object->bsoft = copy_bulletsoftbody(ob->bsoft); } - else if (event==17) { /* tex space */ + else if (event == 17) { /* tex space */ copy_texture_space(base->object, ob); } - else if (event==18) { /* font settings */ + else if (event == 18) { /* font settings */ - if (base->object->type==ob->type) { - cu= ob->data; - cu1= base->object->data; - - cu1->spacemode= cu->spacemode; - cu1->spacing= cu->spacing; - cu1->linedist= cu->linedist; - cu1->shear= cu->shear; - cu1->fsize= cu->fsize; - cu1->xof= cu->xof; - cu1->yof= cu->yof; - cu1->textoncurve= cu->textoncurve; - cu1->wordspace= cu->wordspace; - cu1->ulpos= cu->ulpos; - cu1->ulheight= cu->ulheight; + if (base->object->type == ob->type) { + cu = ob->data; + cu1 = base->object->data; + + cu1->spacemode = cu->spacemode; + cu1->spacing = cu->spacing; + cu1->linedist = cu->linedist; + cu1->shear = cu->shear; + cu1->fsize = cu->fsize; + cu1->xof = cu->xof; + cu1->yof = cu->yof; + cu1->textoncurve = cu->textoncurve; + cu1->wordspace = cu->wordspace; + cu1->ulpos = cu->ulpos; + cu1->ulheight = cu->ulheight; if (cu1->vfont) cu1->vfont->id.us--; - cu1->vfont= cu->vfont; + cu1->vfont = cu->vfont; id_us_plus((ID *)cu1->vfont); if (cu1->vfontb) cu1->vfontb->id.us--; - cu1->vfontb= cu->vfontb; + cu1->vfontb = cu->vfontb; id_us_plus((ID *)cu1->vfontb); if (cu1->vfonti) cu1->vfonti->id.us--; - cu1->vfonti= cu->vfonti; + cu1->vfonti = cu->vfonti; id_us_plus((ID *)cu1->vfonti); if (cu1->vfontbi) cu1->vfontbi->id.us--; - cu1->vfontbi= cu->vfontbi; + cu1->vfontbi = cu->vfontbi; id_us_plus((ID *)cu1->vfontbi); BKE_text_to_curve(bmain, scene, base->object, 0); /* needed? */ @@ -889,43 +890,43 @@ static void copy_attr(Main *bmain, Scene *scene, View3D *v3d, short event) base->object->recalc |= OB_RECALC_DATA; } } - else if (event==19) { /* bevel settings */ + else if (event == 19) { /* bevel settings */ if (ELEM(base->object->type, OB_CURVE, OB_FONT)) { - cu= ob->data; - cu1= base->object->data; + cu = ob->data; + cu1 = base->object->data; - cu1->bevobj= cu->bevobj; - cu1->taperobj= cu->taperobj; - cu1->width= cu->width; - cu1->bevresol= cu->bevresol; - cu1->ext1= cu->ext1; - cu1->ext2= cu->ext2; + cu1->bevobj = cu->bevobj; + cu1->taperobj = cu->taperobj; + cu1->width = cu->width; + cu1->bevresol = cu->bevresol; + cu1->ext1 = cu->ext1; + cu1->ext2 = cu->ext2; base->object->recalc |= OB_RECALC_DATA; } } - else if (event==25) { /* curve resolution */ + else if (event == 25) { /* curve resolution */ if (ELEM(base->object->type, OB_CURVE, OB_FONT)) { - cu= ob->data; - cu1= base->object->data; + cu = ob->data; + cu1 = base->object->data; - cu1->resolu= cu->resolu; - cu1->resolu_ren= cu->resolu_ren; + cu1->resolu = cu->resolu; + cu1->resolu_ren = cu->resolu_ren; - nu= cu1->nurb.first; + nu = cu1->nurb.first; while (nu) { - nu->resolu= cu1->resolu; - nu= nu->next; + nu->resolu = cu1->resolu; + nu = nu->next; } base->object->recalc |= OB_RECALC_DATA; } } - else if (event==21) { - if (base->object->type==OB_MESH) { + else if (event == 21) { + if (base->object->type == OB_MESH) { ModifierData *md = modifiers_findByType(ob, eModifierType_Subsurf); if (md) { @@ -941,42 +942,42 @@ static void copy_attr(Main *bmain, Scene *scene, View3D *v3d, short event) } } } - else if (event==22) { + else if (event == 22) { /* Copy the constraint channels over */ copy_constraints(&base->object->constraints, &ob->constraints, TRUE); - do_scene_sort= 1; + do_scene_sort = 1; } - else if (event==23) { - base->object->softflag= ob->softflag; + else if (event == 23) { + base->object->softflag = ob->softflag; if (base->object->soft) sbFree(base->object->soft); - base->object->soft= copy_softbody(ob->soft); + base->object->soft = copy_softbody(ob->soft); if (!modifiers_findByType(base->object, eModifierType_Softbody)) { BLI_addhead(&base->object->modifiers, modifier_new(eModifierType_Softbody)); } } - else if (event==26) { + else if (event == 26) { #if 0 // XXX old animation system copy_nlastrips(&base->object->nlastrips, &ob->nlastrips); #endif // XXX old animation system } - else if (event==27) { /* autosmooth */ - if (base->object->type==OB_MESH) { - Mesh *me= ob->data; - Mesh *cme= base->object->data; - cme->smoothresh= me->smoothresh; + else if (event == 27) { /* autosmooth */ + if (base->object->type == OB_MESH) { + Mesh *me = ob->data; + Mesh *cme = base->object->data; + cme->smoothresh = me->smoothresh; if (me->flag & ME_AUTOSMOOTH) cme->flag |= ME_AUTOSMOOTH; else cme->flag &= ~ME_AUTOSMOOTH; } } - else if (event==28) { /* UV orco */ + else if (event == 28) { /* UV orco */ if (ELEM(base->object->type, OB_CURVE, OB_SURF)) { - cu= ob->data; - cu1= base->object->data; + cu = ob->data; + cu1 = base->object->data; if (cu->flag & CU_UV_ORCO) cu1->flag |= CU_UV_ORCO; @@ -984,13 +985,13 @@ static void copy_attr(Main *bmain, Scene *scene, View3D *v3d, short event) cu1->flag &= ~CU_UV_ORCO; } } - else if (event==29) { /* protected bits */ - base->object->protectflag= ob->protectflag; + else if (event == 29) { /* protected bits */ + base->object->protectflag = ob->protectflag; } - else if (event==30) { /* index object */ - base->object->index= ob->index; + else if (event == 30) { /* index object */ + base->object->index = ob->index; } - else if (event==31) { /* object color */ + else if (event == 31) { /* object color */ copy_v4_v4(base->object->col, ob->col); } } @@ -1003,13 +1004,13 @@ static void copy_attr(Main *bmain, Scene *scene, View3D *v3d, short event) DAG_ids_flush_update(bmain, 0); } -static void UNUSED_FUNCTION(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; char str[512]; - if (!(ob=OBACT)) return; + if (!(ob = OBACT)) return; if (scene->obedit) { // XXX get from context // if (ob->type == OB_MESH) @@ -1028,8 +1029,8 @@ static void UNUSED_FUNCTION(copy_attr_menu)(Main *bmain, Scene *scene, View3D *v "Time Offset%x5|Dupli%x6|Object Color%x31|%l|Mass%x7|Damping%x8|All Physical Attributes%x11|Properties%x9|" "Logic Bricks%x10|Protected Transform%x29|%l"); - strcat (str, "|Object Constraints%x22"); - strcat (str, "|NLA Strips%x26"); + strcat(str, "|Object Constraints%x22"); + strcat(str, "|NLA Strips%x26"); // XXX if (OB_TYPE_SUPPORT_MATERIAL(ob->type)) { // strcat(str, "|Texture Space%x17"); @@ -1039,10 +1040,10 @@ static void UNUSED_FUNCTION(copy_attr_menu)(Main *bmain, Scene *scene, View3D *v if (ob->type == OB_CURVE) strcat(str, "|Bevel Settings%x19|UV Orco%x28"); if ((ob->type == OB_FONT) || (ob->type == OB_CURVE)) { - strcat(str, "|Curve Resolution%x25"); + strcat(str, "|Curve Resolution%x25"); } - if (ob->type==OB_MESH) { + if (ob->type == OB_MESH) { strcat(str, "|Subsurf Settings%x21|AutoSmooth%x27"); } @@ -1050,12 +1051,12 @@ static void UNUSED_FUNCTION(copy_attr_menu)(Main *bmain, Scene *scene, View3D *v strcat(str, "|Pass Index%x30"); - if (ob->type==OB_MESH || ob->type==OB_CURVE || ob->type==OB_LATTICE || ob->type==OB_SURF) { + if (ob->type == OB_MESH || ob->type == OB_CURVE || ob->type == OB_LATTICE || ob->type == OB_SURF) { strcat(str, "|Modifiers ...%x24"); } - event= pupmenu(str); - if (event<= 0) return; + event = pupmenu(str); + if (event <= 0) return; copy_attr(bmain, scene, v3d, event); } @@ -1074,7 +1075,7 @@ static int forcefield_toggle_exec(bContext *C, wmOperator *UNUSED(op)) else ob->pd->forcefield = 0; - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, NULL); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, NULL); return OPERATOR_FINISHED; } @@ -1092,7 +1093,7 @@ void OBJECT_OT_forcefield_toggle(wmOperatorType *ot) ot->poll = ED_operator_object_active_editable; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } /* ********************************************** */ @@ -1108,8 +1109,7 @@ void ED_objects_recalculate_paths(bContext *C, Scene *scene) ListBase targets = {NULL, NULL}; /* loop over objects in scene */ - CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) - { + CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects) { /* set flag to force recalc, then grab the relevant bones to target */ ob->avs.recalc |= ANIMVIZ_RECALC_PATHS; animviz_get_object_motionpaths(ob, &targets); @@ -1124,12 +1124,12 @@ void ED_objects_recalculate_paths(bContext *C, Scene *scene) /* For the object with pose/action: create path curves for selected bones * This recalculates the WHOLE path within the pchan->pathsf and pchan->pathef range */ -static int object_calculate_paths_exec (bContext *C, wmOperator *op) +static int object_calculate_paths_exec(bContext *C, wmOperator *op) { - Scene *scene= CTX_data_scene(C); + Scene *scene = CTX_data_scene(C); /* set up path data for bones being calculated */ - CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) + CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects) { /* verify makes sure that the selected bone has a bone with the appropriate settings */ animviz_verify_motionpaths(op->reports, scene, ob, NULL); @@ -1141,12 +1141,12 @@ static int object_calculate_paths_exec (bContext *C, wmOperator *op) ED_objects_recalculate_paths(C, scene); /* notifiers for updates */ - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL); + WM_event_add_notifier(C, NC_OBJECT | ND_POSE, NULL); return OPERATOR_FINISHED; } -void OBJECT_OT_paths_calculate (wmOperatorType *ot) +void OBJECT_OT_paths_calculate(wmOperatorType *ot) { /* identifiers */ ot->name = "Calculate Object Paths"; @@ -1158,7 +1158,7 @@ void OBJECT_OT_paths_calculate (wmOperatorType *ot) ot->poll = ED_operator_object_active_editable; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } /* --------- */ @@ -1167,11 +1167,11 @@ void OBJECT_OT_paths_calculate (wmOperatorType *ot) void ED_objects_clear_paths(bContext *C) { /* loop over objects in scene */ - CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) + CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects) { if (ob->mpath) { animviz_free_motionpath(ob->mpath); - ob->mpath= NULL; + ob->mpath = NULL; ob->avs.path_bakeflag &= ~MOTIONPATH_BAKE_HAS_PATHS; } } @@ -1179,18 +1179,18 @@ void ED_objects_clear_paths(bContext *C) } /* operator callback for this */ -static int object_clear_paths_exec (bContext *C, wmOperator *UNUSED(op)) +static int object_clear_paths_exec(bContext *C, wmOperator *UNUSED(op)) { /* use the backend function for this */ ED_objects_clear_paths(C); /* notifiers for updates */ - WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL); + WM_event_add_notifier(C, NC_OBJECT | ND_POSE, NULL); return OPERATOR_FINISHED; } -void OBJECT_OT_paths_clear (wmOperatorType *ot) +void OBJECT_OT_paths_clear(wmOperatorType *ot) { /* identifiers */ ot->name = "Clear Object Paths"; @@ -1202,7 +1202,7 @@ void OBJECT_OT_paths_clear (wmOperatorType *ot) ot->poll = ED_operator_object_active_editable; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } @@ -1212,36 +1212,36 @@ static int shade_smooth_exec(bContext *C, wmOperator *op) { Curve *cu; Nurb *nu; - int clear= (strcmp(op->idname, "OBJECT_OT_shade_flat") == 0); - int done= 0; + int clear = (strcmp(op->idname, "OBJECT_OT_shade_flat") == 0); + int done = 0; - CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) { + CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects) { - if (ob->type==OB_MESH) { + if (ob->type == OB_MESH) { mesh_set_smooth_flag(ob, !clear); DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob); - done= 1; + done = 1; } else if (ELEM(ob->type, OB_SURF, OB_CURVE)) { - cu= ob->data; + cu = ob->data; - for (nu=cu->nurb.first; nu; nu=nu->next) { + for (nu = cu->nurb.first; nu; nu = nu->next) { if (!clear) nu->flag |= ME_SMOOTH; else nu->flag &= ~ME_SMOOTH; } DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob); - done= 1; + done = 1; } } CTX_DATA_END; - return (done)? OPERATOR_FINISHED: OPERATOR_CANCELLED; + return (done) ? OPERATOR_FINISHED : OPERATOR_CANCELLED; } static int shade_poll(bContext *C) @@ -1261,7 +1261,7 @@ void OBJECT_OT_shade_flat(wmOperatorType *ot) ot->exec = shade_smooth_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } void OBJECT_OT_shade_smooth(wmOperatorType *ot) @@ -1276,12 +1276,12 @@ void OBJECT_OT_shade_smooth(wmOperatorType *ot) ot->exec = shade_smooth_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } /* ********************** */ -static void UNUSED_FUNCTION(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; @@ -1291,42 +1291,42 @@ static void UNUSED_FUNCTION(image_aspect)(Scene *scene, View3D *v3d) float x, y, space; int a, b, done; - if (scene->obedit) return; // XXX get from context + if (scene->obedit) return; // XXX get from context if (scene->id.lib) return; - for (base= FIRSTBASE; base; base= base->next) { + for (base = FIRSTBASE; base; base = base->next) { if (TESTBASELIB(v3d, base)) { - ob= base->object; - done= 0; + ob = base->object; + done = 0; - for (a=1; a<=ob->totcol; a++) { - ma= give_current_material(ob, a); + for (a = 1; a <= ob->totcol; a++) { + ma = give_current_material(ob, a); if (ma) { - for (b=0; bmtex[b] && ma->mtex[b]->tex) { - tex= ma->mtex[b]->tex; - if (tex->type==TEX_IMAGE && tex->ima) { - ImBuf *ibuf= BKE_image_get_ibuf(tex->ima, NULL); + tex = ma->mtex[b]->tex; + if (tex->type == TEX_IMAGE && tex->ima) { + ImBuf *ibuf = BKE_image_get_ibuf(tex->ima, NULL); /* texturespace */ - space= 1.0; - if (ob->type==OB_MESH) { + space = 1.0; + if (ob->type == OB_MESH) { float size[3]; mesh_get_texspace(ob->data, NULL, NULL, size); - space= size[0]/size[1]; + space = size[0] / size[1]; } else if (ELEM3(ob->type, OB_CURVE, OB_FONT, OB_SURF)) { - Curve *cu= ob->data; - space= cu->size[0]/cu->size[1]; + Curve *cu = ob->data; + space = cu->size[0] / cu->size[1]; } - x= ibuf->x/space; - y= ibuf->y; + x = ibuf->x / space; + y = ibuf->y; - if (x>y) ob->size[0]= ob->size[1]*x/y; - else ob->size[1]= ob->size[0]*y/x; + if (x > y) ob->size[0] = ob->size[1] * x / y; + else ob->size[1] = ob->size[0] * y / x; - done= 1; + done = 1; DAG_id_tag_update(&ob->id, OB_RECALC_OB); } } @@ -1344,30 +1344,32 @@ static void UNUSED_FUNCTION(image_aspect)(Scene *scene, View3D *v3d) static EnumPropertyItem *object_mode_set_itemsf(bContext *C, PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), int *free) { EnumPropertyItem *input = object_mode_items; - EnumPropertyItem *item= NULL; + EnumPropertyItem *item = NULL; Object *ob; - int totitem= 0; + int totitem = 0; if (!C) /* needed for docs */ return object_mode_items; + + ob = CTX_data_active_object(C); while (ob && input->identifier) { - if ((input->value == OB_MODE_EDIT && ((ob->type == OB_MESH) || (ob->type == OB_ARMATURE) || - (ob->type == OB_CURVE) || (ob->type == OB_SURF) || - (ob->type == OB_FONT) || (ob->type == OB_MBALL) || (ob->type == OB_LATTICE))) || - (input->value == OB_MODE_POSE && (ob->type == OB_ARMATURE)) || - (input->value == OB_MODE_PARTICLE_EDIT && ob->particlesystem.first) || - ((input->value == OB_MODE_SCULPT || input->value == OB_MODE_VERTEX_PAINT || - input->value == OB_MODE_WEIGHT_PAINT || input->value == OB_MODE_TEXTURE_PAINT) && (ob->type == OB_MESH)) || - (input->value == OB_MODE_OBJECT)) + if ((input->value == OB_MODE_EDIT && OB_TYPE_SUPPORT_EDITMODE(ob->type)) || + (input->value == OB_MODE_POSE && (ob->type == OB_ARMATURE)) || + (input->value == OB_MODE_PARTICLE_EDIT && ob->particlesystem.first) || + ((input->value == OB_MODE_SCULPT || input->value == OB_MODE_VERTEX_PAINT || + input->value == OB_MODE_WEIGHT_PAINT || input->value == OB_MODE_TEXTURE_PAINT) && (ob->type == OB_MESH)) || + (input->value == OB_MODE_OBJECT)) + { RNA_enum_item_add(&item, &totitem, input); + } ++input; } RNA_enum_item_end(&item, &totitem); - *free= 1; + *free = 1; return item; } @@ -1401,24 +1403,24 @@ static int object_mode_set_compat(bContext *UNUSED(C), wmOperator *op, Object *o if (mode == OB_MODE_OBJECT) return 1; - switch(ob->type) { - case OB_MESH: - if (mode & (OB_MODE_EDIT|OB_MODE_SCULPT|OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT|OB_MODE_PARTICLE_EDIT)) - return 1; - return 0; - case OB_CURVE: - case OB_SURF: - case OB_FONT: - case OB_MBALL: - if (mode & (OB_MODE_EDIT)) - return 1; - return 0; - case OB_LATTICE: - if (mode & (OB_MODE_EDIT|OB_MODE_WEIGHT_PAINT)) - return 1; - case OB_ARMATURE: - if (mode & (OB_MODE_EDIT|OB_MODE_POSE)) - return 1; + switch (ob->type) { + case OB_MESH: + if (mode & (OB_MODE_EDIT | OB_MODE_SCULPT | OB_MODE_VERTEX_PAINT | OB_MODE_WEIGHT_PAINT | OB_MODE_TEXTURE_PAINT | OB_MODE_PARTICLE_EDIT)) + return 1; + return 0; + case OB_CURVE: + case OB_SURF: + case OB_FONT: + case OB_MBALL: + if (mode & (OB_MODE_EDIT)) + return 1; + return 0; + case OB_LATTICE: + if (mode & (OB_MODE_EDIT | OB_MODE_WEIGHT_PAINT)) + return 1; + case OB_ARMATURE: + if (mode & (OB_MODE_EDIT | OB_MODE_POSE)) + return 1; } } @@ -1427,7 +1429,7 @@ static int object_mode_set_compat(bContext *UNUSED(C), wmOperator *op, Object *o static int object_mode_set_exec(bContext *C, wmOperator *op) { - Object *ob= CTX_data_active_object(C); + Object *ob = CTX_data_active_object(C); ObjectMode mode = RNA_enum_get(op->ptr, "mode"); ObjectMode restore_mode = (ob) ? ob->mode : OB_MODE_OBJECT; int toggle = RNA_boolean_get(op->ptr, "toggle"); @@ -1474,7 +1476,7 @@ void OBJECT_OT_mode_set(wmOperatorType *ot) /* flags */ ot->flag = 0; /* no register/undo here, leave it to operators being called */ - prop= RNA_def_enum(ot->srna, "mode", object_mode_items, OB_MODE_OBJECT, "Mode", ""); + prop = RNA_def_enum(ot->srna, "mode", object_mode_items, OB_MODE_OBJECT, "Mode", ""); RNA_def_enum_funcs(prop, object_mode_set_itemsf); RNA_def_boolean(ot->srna, "toggle", 0, "Toggle", ""); @@ -1504,12 +1506,12 @@ void ED_object_toggle_modes(bContext *C, int mode) static int game_property_new(bContext *C, wmOperator *op) { - Object *ob= CTX_data_active_object(C); + Object *ob = CTX_data_active_object(C); bProperty *prop; char name[MAX_NAME]; - int type= RNA_enum_get(op->ptr, "type"); + int type = RNA_enum_get(op->ptr, "type"); - prop= new_property(type); + prop = new_property(type); BLI_addtail(&ob->prop, prop); RNA_string_get(op->ptr, "name", name); @@ -1536,7 +1538,7 @@ void OBJECT_OT_game_property_new(wmOperatorType *ot) ot->poll = ED_operator_object_active_editable; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; RNA_def_enum(ot->srna, "type", gameproperty_type_items, GPROP_FLOAT, "Type", "Type of game property to add"); RNA_def_string(ot->srna, "name", "", MAX_NAME, "Name", "Name of the game property to add"); @@ -1544,14 +1546,14 @@ void OBJECT_OT_game_property_new(wmOperatorType *ot) static int game_property_remove(bContext *C, wmOperator *op) { - Object *ob= CTX_data_active_object(C); + Object *ob = CTX_data_active_object(C); bProperty *prop; - int index= RNA_int_get(op->ptr, "index"); + int index = RNA_int_get(op->ptr, "index"); if (!ob) return OPERATOR_CANCELLED; - prop= BLI_findlink(&ob->prop, index); + prop = BLI_findlink(&ob->prop, index); if (prop) { BLI_remlink(&ob->prop, prop); @@ -1577,16 +1579,16 @@ void OBJECT_OT_game_property_remove(wmOperatorType *ot) ot->poll = ED_operator_object_active_editable; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; RNA_def_int(ot->srna, "index", 0, 0, INT_MAX, "Index", "Property index to remove ", 0, INT_MAX); } -#define COPY_PROPERTIES_REPLACE 1 -#define COPY_PROPERTIES_MERGE 2 -#define COPY_PROPERTIES_COPY 3 +#define COPY_PROPERTIES_REPLACE 1 +#define COPY_PROPERTIES_MERGE 2 +#define COPY_PROPERTIES_COPY 3 -static EnumPropertyItem game_properties_copy_operations[] ={ +static EnumPropertyItem game_properties_copy_operations[] = { {COPY_PROPERTIES_REPLACE, "REPLACE", 0, "Replace Properties", ""}, {COPY_PROPERTIES_MERGE, "MERGE", 0, "Merge Properties", ""}, {COPY_PROPERTIES_COPY, "COPY", 0, "Copy a Property", ""}, @@ -1597,40 +1599,40 @@ static EnumPropertyItem gameprops_items[]= { static EnumPropertyItem *gameprops_itemf(bContext *C, PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), int *free) { - Object *ob= ED_object_active_context(C); + Object *ob = ED_object_active_context(C); EnumPropertyItem tmp = {0, "", 0, "", ""}; - EnumPropertyItem *item= NULL; + EnumPropertyItem *item = NULL; bProperty *prop; - int a, totitem= 0; + int a, totitem = 0; if (!ob) return gameprops_items; - for (a=1, prop= ob->prop.first; prop; prop=prop->next, a++) { - tmp.value= a; - tmp.identifier= prop->name; - tmp.name= prop->name; + for (a = 1, prop = ob->prop.first; prop; prop = prop->next, a++) { + tmp.value = a; + tmp.identifier = prop->name; + tmp.name = prop->name; RNA_enum_item_add(&item, &totitem, &tmp); } RNA_enum_item_end(&item, &totitem); - *free= 1; + *free = 1; return item; } static int game_property_copy_exec(bContext *C, wmOperator *op) { - Object *ob=ED_object_active_context(C); + Object *ob = ED_object_active_context(C); bProperty *prop; int type = RNA_enum_get(op->ptr, "operation"); - int propid= RNA_enum_get(op->ptr, "property"); + int propid = RNA_enum_get(op->ptr, "property"); if (propid > 0) { /* copy */ - prop = BLI_findlink(&ob->prop, propid-1); + prop = BLI_findlink(&ob->prop, propid - 1); if (prop) { - CTX_DATA_BEGIN(C, Object*, ob_iter, selected_editable_objects) { + CTX_DATA_BEGIN (C, Object *, ob_iter, selected_editable_objects) { if (ob != ob_iter) set_ob_property(ob_iter, prop); } CTX_DATA_END; @@ -1638,14 +1640,14 @@ static int game_property_copy_exec(bContext *C, wmOperator *op) } else { - CTX_DATA_BEGIN(C, Object*, ob_iter, selected_editable_objects) { + CTX_DATA_BEGIN (C, Object *, ob_iter, selected_editable_objects) { if (ob != ob_iter) { if (type == COPY_PROPERTIES_REPLACE) copy_properties(&ob_iter->prop, &ob->prop); /* merge - the default when calling with no argument */ else - for (prop = ob->prop.first; prop; prop= prop->next) + for (prop = ob->prop.first; prop; prop = prop->next) set_ob_property(ob_iter, prop); } } @@ -1667,17 +1669,17 @@ void OBJECT_OT_game_property_copy(wmOperatorType *ot) ot->poll = ED_operator_object_active_editable; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; RNA_def_enum(ot->srna, "operation", game_properties_copy_operations, 3, "Operation", ""); - prop=RNA_def_enum(ot->srna, "property", gameprops_items, 0, "Property", "Properties to copy"); + prop = RNA_def_enum(ot->srna, "property", gameprops_items, 0, "Property", "Properties to copy"); RNA_def_enum_funcs(prop, gameprops_itemf); ot->prop = prop; } static int game_property_clear_exec(bContext *C, wmOperator *UNUSED(op)) { - CTX_DATA_BEGIN(C, Object*, ob_iter, selected_editable_objects) { + CTX_DATA_BEGIN (C, Object *, ob_iter, selected_editable_objects) { free_properties(&ob_iter->prop); } CTX_DATA_END; @@ -1696,16 +1698,16 @@ void OBJECT_OT_game_property_clear(wmOperatorType *ot) ot->poll = ED_operator_object_active_editable; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } /************************ Copy Logic Bricks ***********************/ static int logicbricks_copy_exec(bContext *C, wmOperator *UNUSED(op)) { - Object *ob=ED_object_active_context(C); + Object *ob = ED_object_active_context(C); - CTX_DATA_BEGIN(C, Object*, ob_iter, selected_editable_objects) { + CTX_DATA_BEGIN (C, Object *, ob_iter, selected_editable_objects) { if (ob != ob_iter) { /* first: free all logic */ free_sensors(&ob_iter->sensors); @@ -1722,16 +1724,16 @@ static int logicbricks_copy_exec(bContext *C, wmOperator *UNUSED(op)) set_sca_new_poins_ob(ob_iter); /* some menu settings */ - ob_iter->scavisflag= ob->scavisflag; - ob_iter->scaflag= ob->scaflag; + ob_iter->scavisflag = ob->scavisflag; + ob_iter->scaflag = ob->scaflag; /* set the initial state */ - ob_iter->state= ob->state; - ob_iter->init_state= ob->init_state; + ob_iter->state = ob->state; + ob_iter->init_state = ob->init_state; - if (ob_iter->totcol==ob->totcol) { - ob_iter->actcol= ob->actcol; - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob_iter); + if (ob_iter->totcol == ob->totcol) { + ob_iter->actcol = ob->actcol; + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob_iter); } } } @@ -1754,14 +1756,14 @@ void OBJECT_OT_logic_bricks_copy(wmOperatorType *ot) ot->poll = ED_operator_object_active_editable; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int game_physics_copy_exec(bContext *C, wmOperator *UNUSED(op)) { - Object *ob=ED_object_active_context(C); + Object *ob = ED_object_active_context(C); - CTX_DATA_BEGIN(C, Object*, ob_iter, selected_editable_objects) { + CTX_DATA_BEGIN (C, Object *, ob_iter, selected_editable_objects) { if (ob != ob_iter) { ob_iter->gameflag = ob->gameflag; ob_iter->gameflag2 = ob->gameflag2; @@ -1781,7 +1783,7 @@ static int game_physics_copy_exec(bContext *C, wmOperator *UNUSED(op)) ob_iter->bsoft = copy_bulletsoftbody(ob->bsoft); if (ob->restrictflag & OB_RESTRICT_RENDER) ob_iter->restrictflag |= OB_RESTRICT_RENDER; - else + else ob_iter->restrictflag &= ~OB_RESTRICT_RENDER; } } @@ -1802,5 +1804,5 @@ void OBJECT_OT_game_physics_copy(struct wmOperatorType *ot) ot->poll = ED_operator_object_active_editable; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } diff --git a/source/blender/editors/object/object_group.c b/source/blender/editors/object/object_group.c index 3867b1e34cb..702671d8d9b 100644 --- a/source/blender/editors/object/object_group.c +++ b/source/blender/editors/object/object_group.c @@ -61,9 +61,9 @@ static int objects_add_active_exec(bContext *C, wmOperator *op) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); - Object *ob= OBACT; + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); + Object *ob = OBACT; Group *group; int ok = 0, cycle = 0; @@ -72,10 +72,10 @@ static int objects_add_active_exec(bContext *C, wmOperator *op) /* linking to same group requires its own loop so we can avoid * looking up the active objects groups each time */ - for (group= bmain->group.first; group; group=group->id.next) { + for (group = bmain->group.first; group; group = group->id.next) { if (object_in_group(ob, group)) { /* Assign groups to selected objects */ - CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) { + CTX_DATA_BEGIN (C, Base *, base, selected_editable_bases) { if (base->object->dup_group != group) add_to_group(group, base->object, scene, base); else @@ -91,7 +91,7 @@ static int objects_add_active_exec(bContext *C, wmOperator *op) BKE_report(op->reports, RPT_WARNING, "Skipped some groups because of cycle detected"); DAG_scene_sort(bmain, scene); - WM_event_add_notifier(C, NC_GROUP|NA_EDITED, NULL); + WM_event_add_notifier(C, NC_GROUP | NA_EDITED, NULL); return OPERATOR_FINISHED; } @@ -108,14 +108,14 @@ void GROUP_OT_objects_add_active(wmOperatorType *ot) ot->poll = ED_operator_objectmode; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int objects_remove_active_exec(bContext *C, wmOperator *op) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); - Object *ob= OBACT; + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); + Object *ob = OBACT; Group *group; int ok = 0; @@ -124,10 +124,10 @@ static int objects_remove_active_exec(bContext *C, wmOperator *op) /* linking to same group requires its own loop so we can avoid * looking up the active objects groups each time */ - for (group= bmain->group.first; group; group=group->id.next) { + for (group = bmain->group.first; group; group = group->id.next) { if (object_in_group(ob, group)) { /* Assign groups to selected objects */ - CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) { + CTX_DATA_BEGIN (C, Base *, base, selected_editable_bases) { rem_from_group(group, base->object, scene, base); ok = 1; } @@ -138,7 +138,7 @@ static int objects_remove_active_exec(bContext *C, wmOperator *op) if (!ok) BKE_report(op->reports, RPT_ERROR, "Active Object contains no groups"); DAG_scene_sort(bmain, scene); - WM_event_add_notifier(C, NC_GROUP|NA_EDITED, NULL); + WM_event_add_notifier(C, NC_GROUP | NA_EDITED, NULL); return OPERATOR_FINISHED; } @@ -155,16 +155,16 @@ void GROUP_OT_objects_remove_active(wmOperatorType *ot) ot->poll = ED_operator_objectmode; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int group_objects_remove_exec(bContext *C, wmOperator *UNUSED(op)) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); - Group *group= NULL; + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); + Group *group = NULL; - CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) { + CTX_DATA_BEGIN (C, Base *, base, selected_editable_bases) { group = NULL; while ((group = find_group(base->object, group))) rem_from_group(group, base->object, scene, base); @@ -172,7 +172,7 @@ static int group_objects_remove_exec(bContext *C, wmOperator *UNUSED(op)) CTX_DATA_END; DAG_scene_sort(bmain, scene); - WM_event_add_notifier(C, NC_GROUP|NA_EDITED, NULL); + WM_event_add_notifier(C, NC_GROUP | NA_EDITED, NULL); return OPERATOR_FINISHED; } @@ -189,27 +189,27 @@ void GROUP_OT_objects_remove(wmOperatorType *ot) ot->poll = ED_operator_objectmode; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int group_create_exec(bContext *C, wmOperator *op) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); - Group *group= NULL; - char name[MAX_ID_NAME-2]; /* id name */ + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); + Group *group = NULL; + char name[MAX_ID_NAME - 2]; /* id name */ RNA_string_get(op->ptr, "name", name); - group= add_group(name); + group = add_group(name); - CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) { + CTX_DATA_BEGIN (C, Base *, base, selected_editable_bases) { add_to_group(group, base->object, scene, base); } CTX_DATA_END; DAG_scene_sort(bmain, scene); - WM_event_add_notifier(C, NC_GROUP|NA_EDITED, NULL); + WM_event_add_notifier(C, NC_GROUP | NA_EDITED, NULL); return OPERATOR_FINISHED; } @@ -226,26 +226,26 @@ void GROUP_OT_create(wmOperatorType *ot) ot->poll = ED_operator_objectmode; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; - RNA_def_string(ot->srna, "name", "Group", MAX_ID_NAME-2, "Name", "Name of the new group"); + RNA_def_string(ot->srna, "name", "Group", MAX_ID_NAME - 2, "Name", "Name of the new group"); } /****************** properties window operators *********************/ static int group_add_exec(bContext *C, wmOperator *UNUSED(op)) { - Scene *scene= CTX_data_scene(C); - Object *ob= ED_object_context(C); + Scene *scene = CTX_data_scene(C); + Object *ob = ED_object_context(C); Group *group; if (ob == NULL) return OPERATOR_CANCELLED; - group= add_group("Group"); + group = add_group("Group"); add_to_group(group, ob, scene, NULL); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob); return OPERATOR_FINISHED; } @@ -261,21 +261,21 @@ void OBJECT_OT_group_add(wmOperatorType *ot) ot->exec = group_add_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int group_link_exec(bContext *C, wmOperator *op) { - Scene *scene= CTX_data_scene(C); - Object *ob= ED_object_context(C); - Group *group= BLI_findlink(&CTX_data_main(C)->group, RNA_enum_get(op->ptr, "group")); + Scene *scene = CTX_data_scene(C); + Object *ob = ED_object_context(C); + Group *group = BLI_findlink(&CTX_data_main(C)->group, RNA_enum_get(op->ptr, "group")); if (ELEM(NULL, ob, group)) return OPERATOR_CANCELLED; add_to_group(group, ob, scene, NULL); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob); return OPERATOR_FINISHED; } @@ -294,26 +294,26 @@ void OBJECT_OT_group_link(wmOperatorType *ot) ot->invoke = WM_enum_search_invoke; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ - prop= RNA_def_enum(ot->srna, "group", DummyRNA_NULL_items, 0, "Group", ""); + prop = RNA_def_enum(ot->srna, "group", DummyRNA_NULL_items, 0, "Group", ""); RNA_def_enum_funcs(prop, RNA_group_local_itemf); ot->prop = prop; } static int group_remove_exec(bContext *C, wmOperator *UNUSED(op)) { - Scene *scene= CTX_data_scene(C); - Object *ob= ED_object_context(C); - Group *group= CTX_data_pointer_get_type(C, "group", &RNA_Group).data; + Scene *scene = CTX_data_scene(C); + Object *ob = ED_object_context(C); + Group *group = CTX_data_pointer_get_type(C, "group", &RNA_Group).data; if (!ob || !group) return OPERATOR_CANCELLED; rem_from_group(group, ob, scene, NULL); /* base will be used if found */ - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob); return OPERATOR_FINISHED; } @@ -328,6 +328,6 @@ void OBJECT_OT_group_remove(wmOperatorType *ot) ot->exec = group_remove_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } diff --git a/source/blender/editors/object/object_hook.c b/source/blender/editors/object/object_hook.c index ef428b5b1b7..4ffc3e8c19f 100644 --- a/source/blender/editors/object/object_hook.c +++ b/source/blender/editors/object/object_hook.c @@ -76,27 +76,27 @@ static int return_editmesh_indexar(BMEditMesh *em, int *tot, int **indexar, floa { BMVert *eve; BMIter iter; - int *index, nr, totvert=0; + int *index, nr, totvert = 0; BM_ITER_MESH (eve, &iter, em->bm, BM_VERTS_OF_MESH) { if (BM_elem_flag_test(eve, BM_ELEM_SELECT)) totvert++; } - if (totvert==0) return 0; + if (totvert == 0) return 0; - *indexar= index= MEM_mallocN(4*totvert, "hook indexar"); - *tot= totvert; - nr= 0; + *indexar = index = MEM_mallocN(4 * totvert, "hook indexar"); + *tot = totvert; + nr = 0; zero_v3(cent); BM_ITER_MESH (eve, &iter, em->bm, BM_VERTS_OF_MESH) { if (BM_elem_flag_test(eve, BM_ELEM_SELECT)) { - *index= nr; index++; + *index = nr; index++; add_v3_v3(cent, eve->co); } nr++; } - mul_v3_fl(cent, 1.0f/(float)totvert); + mul_v3_fl(cent, 1.0f / (float)totvert); return totvert; } @@ -106,8 +106,8 @@ static int return_editmesh_vgroup(Object *obedit, BMEditMesh *em, char *name, fl zero_v3(cent); if (obedit->actdef) { - const int defgrp_index= obedit->actdef-1; - int totvert=0; + const int defgrp_index = obedit->actdef - 1; + int totvert = 0; MDeformVert *dvert; BMVert *eve; @@ -115,7 +115,7 @@ static int return_editmesh_vgroup(Object *obedit, BMEditMesh *em, char *name, fl /* find the vertices */ BM_ITER_MESH (eve, &iter, em->bm, BM_VERTS_OF_MESH) { - dvert= CustomData_bmesh_get(&em->bm->vdata, eve->head.data, CD_MDEFORMVERT); + dvert = CustomData_bmesh_get(&em->bm->vdata, eve->head.data, CD_MDEFORMVERT); if (dvert) { if (defvert_find_weight(dvert, defgrp_index) > 0.0f) { @@ -127,7 +127,7 @@ static int return_editmesh_vgroup(Object *obedit, BMEditMesh *em, char *name, fl if (totvert) { bDeformGroup *dg = BLI_findlink(&obedit->defbase, defgrp_index); BLI_strncpy(name, dg->name, sizeof(dg->name)); - mul_v3_fl(cent, 1.0f/(float)totvert); + mul_v3_fl(cent, 1.0f / (float)totvert); return 1; } } @@ -137,19 +137,19 @@ static int return_editmesh_vgroup(Object *obedit, BMEditMesh *em, char *name, fl static void select_editbmesh_hook(Object *ob, HookModifierData *hmd) { - Mesh *me= ob->data; - BMEditMesh *em= me->edit_btmesh; + Mesh *me = ob->data; + BMEditMesh *em = me->edit_btmesh; BMVert *eve; BMIter iter; - int index=0, nr=0; + int index = 0, nr = 0; if (hmd->indexar == NULL) return; BM_ITER_MESH (eve, &iter, em->bm, BM_VERTS_OF_MESH) { - if (nr==hmd->indexar[index]) { + if (nr == hmd->indexar[index]) { BM_vert_select_set(em->bm, eve, TRUE); - if (index < hmd->totindex-1) index++; + if (index < hmd->totindex - 1) index++; } nr++; @@ -161,31 +161,31 @@ static void select_editbmesh_hook(Object *ob, HookModifierData *hmd) static int return_editlattice_indexar(Lattice *editlatt, int *tot, int **indexar, float *cent) { BPoint *bp; - int *index, nr, totvert=0, a; + int *index, nr, totvert = 0, a; /* count */ - a= editlatt->pntsu*editlatt->pntsv*editlatt->pntsw; - bp= editlatt->def; + a = editlatt->pntsu * editlatt->pntsv * editlatt->pntsw; + bp = editlatt->def; while (a--) { if (bp->f1 & SELECT) { - if (bp->hide==0) totvert++; + if (bp->hide == 0) totvert++; } bp++; } - if (totvert==0) return 0; + if (totvert == 0) return 0; - *indexar= index= MEM_mallocN(4*totvert, "hook indexar"); - *tot= totvert; - nr= 0; + *indexar = index = MEM_mallocN(4 * totvert, "hook indexar"); + *tot = totvert; + nr = 0; zero_v3(cent); - a= editlatt->pntsu*editlatt->pntsv*editlatt->pntsw; - bp= editlatt->def; + a = editlatt->pntsu * editlatt->pntsv * editlatt->pntsw; + bp = editlatt->def; while (a--) { if (bp->f1 & SELECT) { - if (bp->hide==0) { - *index= nr; index++; + if (bp->hide == 0) { + *index = nr; index++; add_v3_v3(cent, bp->vec); } } @@ -193,25 +193,25 @@ static int return_editlattice_indexar(Lattice *editlatt, int *tot, int **indexar nr++; } - mul_v3_fl(cent, 1.0f/(float)totvert); + mul_v3_fl(cent, 1.0f / (float)totvert); return totvert; } static void select_editlattice_hook(Object *obedit, HookModifierData *hmd) { - Lattice *lt= obedit->data, *editlt; + Lattice *lt = obedit->data, *editlt; BPoint *bp; - int index=0, nr=0, a; + int index = 0, nr = 0, a; - editlt= lt->editlatt->latt; + editlt = lt->editlatt->latt; /* count */ - a= editlt->pntsu*editlt->pntsv*editlt->pntsw; - bp= editlt->def; + a = editlt->pntsu * editlt->pntsv * editlt->pntsw; + bp = editlt->def; while (a--) { - if (hmd->indexar[index]==nr) { + if (hmd->indexar[index] == nr) { bp->f1 |= SELECT; - if (index < hmd->totindex-1) index++; + if (index < hmd->totindex - 1) index++; } nr++; bp++; @@ -220,16 +220,16 @@ static void select_editlattice_hook(Object *obedit, HookModifierData *hmd) static int return_editcurve_indexar(Object *obedit, int *tot, int **indexar, float *cent) { - ListBase *editnurb= object_editcurve_get(obedit); + ListBase *editnurb = object_editcurve_get(obedit); Nurb *nu; BPoint *bp; BezTriple *bezt; - int *index, a, nr, totvert=0; + int *index, a, nr, totvert = 0; - for (nu= editnurb->first; nu; nu= nu->next) { + for (nu = editnurb->first; nu; nu = nu->next) { if (nu->type == CU_BEZIER) { - bezt= nu->bezt; - a= nu->pntsu; + bezt = nu->bezt; + a = nu->pntsu; while (a--) { if (bezt->f1 & SELECT) totvert++; if (bezt->f2 & SELECT) totvert++; @@ -238,38 +238,38 @@ static int return_editcurve_indexar(Object *obedit, int *tot, int **indexar, flo } } else { - bp= nu->bp; - a= nu->pntsu*nu->pntsv; + bp = nu->bp; + a = nu->pntsu * nu->pntsv; while (a--) { if (bp->f1 & SELECT) totvert++; bp++; } } } - if (totvert==0) return 0; + if (totvert == 0) return 0; - *indexar= index= MEM_mallocN(4*totvert, "hook indexar"); - *tot= totvert; - nr= 0; + *indexar = index = MEM_mallocN(4 * totvert, "hook indexar"); + *tot = totvert; + nr = 0; zero_v3(cent); - for (nu= editnurb->first; nu; nu= nu->next) { + for (nu = editnurb->first; nu; nu = nu->next) { if (nu->type == CU_BEZIER) { - bezt= nu->bezt; - a= nu->pntsu; + bezt = nu->bezt; + a = nu->pntsu; while (a--) { if (bezt->f1 & SELECT) { - *index= nr; index++; + *index = nr; index++; add_v3_v3(cent, bezt->vec[0]); } nr++; if (bezt->f2 & SELECT) { - *index= nr; index++; + *index = nr; index++; add_v3_v3(cent, bezt->vec[1]); } nr++; if (bezt->f3 & SELECT) { - *index= nr; index++; + *index = nr; index++; add_v3_v3(cent, bezt->vec[2]); } nr++; @@ -277,11 +277,11 @@ static int return_editcurve_indexar(Object *obedit, int *tot, int **indexar, flo } } else { - bp= nu->bp; - a= nu->pntsu*nu->pntsv; + bp = nu->bp; + a = nu->pntsu * nu->pntsv; while (a--) { if (bp->f1 & SELECT) { - *index= nr; index++; + *index = nr; index++; add_v3_v3(cent, bp->vec); } nr++; @@ -290,21 +290,21 @@ static int return_editcurve_indexar(Object *obedit, int *tot, int **indexar, flo } } - mul_v3_fl(cent, 1.0f/(float)totvert); + mul_v3_fl(cent, 1.0f / (float)totvert); return totvert; } static int object_hook_index_array(Scene *scene, Object *obedit, int *tot, int **indexar, char *name, float *cent_r) { - *indexar= NULL; - *tot= 0; - name[0]= 0; + *indexar = NULL; + *tot = 0; + name[0] = 0; - switch(obedit->type) { + switch (obedit->type) { case OB_MESH: { - Mesh *me= obedit->data; + Mesh *me = obedit->data; BMEditMesh *em; @@ -314,7 +314,7 @@ static int object_hook_index_array(Scene *scene, Object *obedit, int *tot, int * em = me->edit_btmesh; /* check selected vertices first */ - if ( return_editmesh_indexar(em, tot, indexar, cent_r)) { + if (return_editmesh_indexar(em, tot, indexar, cent_r)) { return 1; } else { @@ -327,7 +327,7 @@ static int object_hook_index_array(Scene *scene, Object *obedit, int *tot, int * return return_editcurve_indexar(obedit, tot, indexar, cent_r); case OB_LATTICE: { - Lattice *lt= obedit->data; + Lattice *lt = obedit->data; return return_editlattice_indexar(lt->editlatt->latt, tot, indexar, cent_r); } default: @@ -337,30 +337,30 @@ static int object_hook_index_array(Scene *scene, Object *obedit, int *tot, int * static void select_editcurve_hook(Object *obedit, HookModifierData *hmd) { - ListBase *editnurb= object_editcurve_get(obedit); + ListBase *editnurb = object_editcurve_get(obedit); Nurb *nu; BPoint *bp; BezTriple *bezt; - int index=0, a, nr=0; + int index = 0, a, nr = 0; - for (nu= editnurb->first; nu; nu= nu->next) { + for (nu = editnurb->first; nu; nu = nu->next) { if (nu->type == CU_BEZIER) { - bezt= nu->bezt; - a= nu->pntsu; + bezt = nu->bezt; + a = nu->pntsu; while (a--) { if (nr == hmd->indexar[index]) { bezt->f1 |= SELECT; - if (indextotindex-1) index++; + if (index < hmd->totindex - 1) index++; } nr++; if (nr == hmd->indexar[index]) { bezt->f2 |= SELECT; - if (indextotindex-1) index++; + if (index < hmd->totindex - 1) index++; } nr++; if (nr == hmd->indexar[index]) { bezt->f3 |= SELECT; - if (indextotindex-1) index++; + if (index < hmd->totindex - 1) index++; } nr++; @@ -368,12 +368,12 @@ static void select_editcurve_hook(Object *obedit, HookModifierData *hmd) } } else { - bp= nu->bp; - a= nu->pntsu*nu->pntsv; + bp = nu->bp; + a = nu->pntsu * nu->pntsv; while (a--) { if (nr == hmd->indexar[index]) { bp->f1 |= SELECT; - if (indextotindex-1) index++; + if (index < hmd->totindex - 1) index++; } nr++; bp++; @@ -387,17 +387,17 @@ static void object_hook_select(Object *ob, HookModifierData *hmd) if (hmd->indexar == NULL) return; - if (ob->type==OB_MESH) select_editbmesh_hook(ob, hmd); - else if (ob->type==OB_LATTICE) select_editlattice_hook(ob, hmd); - else if (ob->type==OB_CURVE) select_editcurve_hook(ob, hmd); - else if (ob->type==OB_SURF) select_editcurve_hook(ob, hmd); + if (ob->type == OB_MESH) select_editbmesh_hook(ob, hmd); + else if (ob->type == OB_LATTICE) select_editlattice_hook(ob, hmd); + else if (ob->type == OB_CURVE) select_editcurve_hook(ob, hmd); + else if (ob->type == OB_SURF) select_editcurve_hook(ob, hmd); } /* special poll operators for hook operators */ // TODO: check for properties window modifier context too as alternative? static int hook_op_edit_poll(bContext *C) { - Object *obedit= CTX_data_edit_object(C); + Object *obedit = CTX_data_edit_object(C); if (obedit) { if (ED_operator_editmesh(C)) return 1; @@ -414,7 +414,7 @@ static Object *add_hook_object_new(Scene *scene, Object *obedit) Base *base, *basedit; Object *ob; - ob= add_object(scene, OB_EMPTY); + ob = add_object(scene, OB_EMPTY); basedit = object_in_scene(obedit, scene); base = object_in_scene(ob, scene); @@ -429,7 +429,7 @@ static Object *add_hook_object_new(Scene *scene, Object *obedit) static void add_hook_object(Main *bmain, Scene *scene, Object *obedit, Object *ob, int mode) { - ModifierData *md=NULL; + ModifierData *md = NULL; HookModifierData *hmd = NULL; float cent[3]; int tot, ok, *indexar; @@ -437,9 +437,9 @@ static void add_hook_object(Main *bmain, Scene *scene, Object *obedit, Object *o ok = object_hook_index_array(scene, obedit, &tot, &indexar, name, cent); - if (!ok) return; // XXX error("Requires selected vertices or active Vertex Group"); + if (!ok) return; // XXX error("Requires selected vertices or active Vertex Group"); - if (mode==OBJECT_ADDHOOK_NEWOB && !ob) { + if (mode == OBJECT_ADDHOOK_NEWOB && !ob) { ob = add_hook_object_new(scene, obedit); @@ -448,19 +448,19 @@ static void add_hook_object(Main *bmain, Scene *scene, Object *obedit, Object *o } md = obedit->modifiers.first; - while (md && modifierType_getInfo(md->type)->type==eModifierTypeType_OnlyDeform) { + while (md && modifierType_getInfo(md->type)->type == eModifierTypeType_OnlyDeform) { md = md->next; } - hmd = (HookModifierData*) modifier_new(eModifierType_Hook); + hmd = (HookModifierData *) modifier_new(eModifierType_Hook); BLI_insertlinkbefore(&obedit->modifiers, md, hmd); - BLI_snprintf(hmd->modifier.name, sizeof(hmd->modifier.name), "Hook-%s", ob->id.name+2); - modifier_unique_name(&obedit->modifiers, (ModifierData*)hmd); + BLI_snprintf(hmd->modifier.name, sizeof(hmd->modifier.name), "Hook-%s", ob->id.name + 2); + modifier_unique_name(&obedit->modifiers, (ModifierData *)hmd); - hmd->object= ob; - hmd->indexar= indexar; + hmd->object = ob; + hmd->indexar = indexar; copy_v3_v3(hmd->cent, cent); - hmd->totindex= tot; + hmd->totindex = tot; BLI_strncpy(hmd->name, name, sizeof(hmd->name)); /* matrix calculus */ @@ -478,13 +478,12 @@ static void add_hook_object(Main *bmain, Scene *scene, Object *obedit, Object *o static int object_add_hook_selob_exec(bContext *C, wmOperator *op) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); Object *obedit = CTX_data_edit_object(C); - Object *obsel=NULL; + Object *obsel = NULL; - CTX_DATA_BEGIN(C, Object*, ob, selected_objects) - { + CTX_DATA_BEGIN (C, Object *, ob, selected_objects) { if (ob != obedit) { obsel = ob; break; @@ -499,7 +498,7 @@ static int object_add_hook_selob_exec(bContext *C, wmOperator *op) add_hook_object(bmain, scene, obedit, obsel, OBJECT_ADDHOOK_SELOB); - WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, obedit); + WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, obedit); return OPERATOR_FINISHED; } @@ -515,19 +514,19 @@ void OBJECT_OT_hook_add_selobj(wmOperatorType *ot) ot->poll = hook_op_edit_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int object_add_hook_newob_exec(bContext *C, wmOperator *UNUSED(op)) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); Object *obedit = CTX_data_edit_object(C); add_hook_object(bmain, scene, obedit, NULL, OBJECT_ADDHOOK_NEWOB); - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene); - WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, obedit); + WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, scene); + WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, obedit); return OPERATOR_FINISHED; } @@ -543,14 +542,14 @@ void OBJECT_OT_hook_add_newobj(wmOperatorType *ot) ot->poll = hook_op_edit_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int object_hook_remove_exec(bContext *C, wmOperator *op) { - int num= RNA_enum_get(op->ptr, "modifier"); - Object *ob=NULL; - HookModifierData *hmd=NULL; + int num = RNA_enum_get(op->ptr, "modifier"); + Object *ob = NULL; + HookModifierData *hmd = NULL; ob = CTX_data_edit_object(C); hmd = (HookModifierData *)BLI_findlink(&ob->modifiers, num); @@ -566,7 +565,7 @@ static int object_hook_remove_exec(bContext *C, wmOperator *op) modifier_free((ModifierData *)hmd); DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob); return OPERATOR_FINISHED; } @@ -575,25 +574,25 @@ static EnumPropertyItem *hook_mod_itemf(bContext *C, PointerRNA *UNUSED(ptr), Pr { Object *ob = CTX_data_edit_object(C); EnumPropertyItem tmp = {0, "", 0, "", ""}; - EnumPropertyItem *item= NULL; + EnumPropertyItem *item = NULL; ModifierData *md = NULL; - int a, totitem= 0; + int a, totitem = 0; if (!ob) return DummyRNA_NULL_items; - for (a=0, md=ob->modifiers.first; md; md= md->next, a++) { - if (md->type==eModifierType_Hook) { - tmp.value= a; + for (a = 0, md = ob->modifiers.first; md; md = md->next, a++) { + if (md->type == eModifierType_Hook) { + tmp.value = a; tmp.icon = ICON_HOOK; - tmp.identifier= md->name; - tmp.name= md->name; + tmp.identifier = md->name; + tmp.name = md->name; RNA_enum_item_add(&item, &totitem, &tmp); } } RNA_enum_item_end(&item, &totitem); - *free= 1; + *free = 1; return item; } @@ -615,26 +614,26 @@ void OBJECT_OT_hook_remove(wmOperatorType *ot) /* flags */ /* this operator removes modifier which isn't stored in local undo stack, * so redoing it from redo panel gives totally weird results */ - ot->flag = /*OPTYPE_REGISTER|*/OPTYPE_UNDO; + ot->flag = /*OPTYPE_REGISTER|*/ OPTYPE_UNDO; /* properties */ - prop= RNA_def_enum(ot->srna, "modifier", DummyRNA_NULL_items, 0, "Modifier", "Modifier number to remove"); + prop = RNA_def_enum(ot->srna, "modifier", DummyRNA_NULL_items, 0, "Modifier", "Modifier number to remove"); RNA_def_enum_funcs(prop, hook_mod_itemf); ot->prop = prop; } static int object_hook_reset_exec(bContext *C, wmOperator *op) { - PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_HookModifier); - int num= RNA_enum_get(op->ptr, "modifier"); - Object *ob=NULL; - HookModifierData *hmd=NULL; + PointerRNA ptr = CTX_data_pointer_get_type(C, "modifier", &RNA_HookModifier); + int num = RNA_enum_get(op->ptr, "modifier"); + Object *ob = NULL; + HookModifierData *hmd = NULL; - if (ptr.data) { /* if modifier context is available, use that */ + if (ptr.data) { /* if modifier context is available, use that */ ob = ptr.id.data; - hmd= ptr.data; + hmd = ptr.data; } - else { /* use the provided property */ + else { /* use the provided property */ ob = CTX_data_edit_object(C); hmd = (HookModifierData *)BLI_findlink(&ob->modifiers, num); } @@ -645,7 +644,7 @@ static int object_hook_reset_exec(bContext *C, wmOperator *op) /* reset functionality */ if (hmd->object) { - bPoseChannel *pchan= get_pose_channel(hmd->object->pose, hmd->subtarget); + bPoseChannel *pchan = get_pose_channel(hmd->object->pose, hmd->subtarget); if (hmd->subtarget[0] && pchan) { float imat[4][4], mat[4][4]; @@ -663,7 +662,7 @@ static int object_hook_reset_exec(bContext *C, wmOperator *op) } DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob); return OPERATOR_FINISHED; } @@ -682,27 +681,27 @@ void OBJECT_OT_hook_reset(wmOperatorType *ot) ot->poll = hook_op_edit_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ - prop= RNA_def_enum(ot->srna, "modifier", DummyRNA_NULL_items, 0, "Modifier", "Modifier number to assign to"); + prop = RNA_def_enum(ot->srna, "modifier", DummyRNA_NULL_items, 0, "Modifier", "Modifier number to assign to"); RNA_def_enum_funcs(prop, hook_mod_itemf); } static int object_hook_recenter_exec(bContext *C, wmOperator *op) { - PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_HookModifier); - int num= RNA_enum_get(op->ptr, "modifier"); - Object *ob=NULL; - HookModifierData *hmd=NULL; + PointerRNA ptr = CTX_data_pointer_get_type(C, "modifier", &RNA_HookModifier); + int num = RNA_enum_get(op->ptr, "modifier"); + Object *ob = NULL; + HookModifierData *hmd = NULL; Scene *scene = CTX_data_scene(C); float bmat[3][3], imat[3][3]; - if (ptr.data) { /* if modifier context is available, use that */ + if (ptr.data) { /* if modifier context is available, use that */ ob = ptr.id.data; - hmd= ptr.data; + hmd = ptr.data; } - else { /* use the provided property */ + else { /* use the provided property */ ob = CTX_data_edit_object(C); hmd = (HookModifierData *)BLI_findlink(&ob->modifiers, num); } @@ -719,7 +718,7 @@ static int object_hook_recenter_exec(bContext *C, wmOperator *op) mul_m3_v3(imat, hmd->cent); DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob); return OPERATOR_FINISHED; } @@ -738,29 +737,29 @@ void OBJECT_OT_hook_recenter(wmOperatorType *ot) ot->poll = hook_op_edit_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ - prop= RNA_def_enum(ot->srna, "modifier", DummyRNA_NULL_items, 0, "Modifier", "Modifier number to assign to"); + prop = RNA_def_enum(ot->srna, "modifier", DummyRNA_NULL_items, 0, "Modifier", "Modifier number to assign to"); RNA_def_enum_funcs(prop, hook_mod_itemf); } static int object_hook_assign_exec(bContext *C, wmOperator *op) { - Scene *scene= CTX_data_scene(C); - PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_HookModifier); - int num= RNA_enum_get(op->ptr, "modifier"); - Object *ob=NULL; - HookModifierData *hmd=NULL; + Scene *scene = CTX_data_scene(C); + PointerRNA ptr = CTX_data_pointer_get_type(C, "modifier", &RNA_HookModifier); + int num = RNA_enum_get(op->ptr, "modifier"); + Object *ob = NULL; + HookModifierData *hmd = NULL; float cent[3]; char name[MAX_NAME]; int *indexar, tot; - if (ptr.data) { /* if modifier context is available, use that */ + if (ptr.data) { /* if modifier context is available, use that */ ob = ptr.id.data; - hmd= ptr.data; + hmd = ptr.data; } - else { /* use the provided property */ + else { /* use the provided property */ ob = CTX_data_edit_object(C); hmd = (HookModifierData *)BLI_findlink(&ob->modifiers, num); } @@ -779,11 +778,11 @@ static int object_hook_assign_exec(bContext *C, wmOperator *op) MEM_freeN(hmd->indexar); copy_v3_v3(hmd->cent, cent); - hmd->indexar= indexar; - hmd->totindex= tot; + hmd->indexar = indexar; + hmd->totindex = tot; DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob); return OPERATOR_FINISHED; } @@ -804,25 +803,25 @@ void OBJECT_OT_hook_assign(wmOperatorType *ot) /* flags */ /* this operator changes data stored in modifier which doesn't get pushed to undo stack, * so redoing it from redo panel gives totally weird results */ - ot->flag = /*OPTYPE_REGISTER|*/OPTYPE_UNDO; + ot->flag = /*OPTYPE_REGISTER|*/ OPTYPE_UNDO; /* properties */ - prop= RNA_def_enum(ot->srna, "modifier", DummyRNA_NULL_items, 0, "Modifier", "Modifier number to assign to"); + prop = RNA_def_enum(ot->srna, "modifier", DummyRNA_NULL_items, 0, "Modifier", "Modifier number to assign to"); RNA_def_enum_funcs(prop, hook_mod_itemf); } static int object_hook_select_exec(bContext *C, wmOperator *op) { - PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_HookModifier); - int num= RNA_enum_get(op->ptr, "modifier"); - Object *ob=NULL; - HookModifierData *hmd=NULL; + PointerRNA ptr = CTX_data_pointer_get_type(C, "modifier", &RNA_HookModifier); + int num = RNA_enum_get(op->ptr, "modifier"); + Object *ob = NULL; + HookModifierData *hmd = NULL; - if (ptr.data) { /* if modifier context is available, use that */ + if (ptr.data) { /* if modifier context is available, use that */ ob = ptr.id.data; - hmd= ptr.data; + hmd = ptr.data; } - else { /* use the provided property */ + else { /* use the provided property */ ob = CTX_data_edit_object(C); hmd = (HookModifierData *)BLI_findlink(&ob->modifiers, num); } @@ -834,7 +833,7 @@ static int object_hook_select_exec(bContext *C, wmOperator *op) /* select functionality */ object_hook_select(ob, hmd); - WM_event_add_notifier(C, NC_GEOM|ND_SELECT, ob->data); + WM_event_add_notifier(C, NC_GEOM | ND_SELECT, ob->data); return OPERATOR_FINISHED; } @@ -853,10 +852,10 @@ void OBJECT_OT_hook_select(wmOperatorType *ot) ot->poll = hook_op_edit_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ - prop= RNA_def_enum(ot->srna, "modifier", DummyRNA_NULL_items, 0, "Modifier", "Modifier number to remove"); + prop = RNA_def_enum(ot->srna, "modifier", DummyRNA_NULL_items, 0, "Modifier", "Modifier number to remove"); RNA_def_enum_funcs(prop, hook_mod_itemf); } diff --git a/source/blender/editors/object/object_intern.h b/source/blender/editors/object/object_intern.h index b1738a960ce..ee9d776ea3b 100644 --- a/source/blender/editors/object/object_intern.h +++ b/source/blender/editors/object/object_intern.h @@ -185,7 +185,7 @@ void CONSTRAINT_OT_limitdistance_reset(struct wmOperatorType *ot); void CONSTRAINT_OT_childof_set_inverse(struct wmOperatorType *ot); void CONSTRAINT_OT_childof_clear_inverse(struct wmOperatorType *ot); void CONSTRAINT_OT_objectsolver_set_inverse(struct wmOperatorType *ot); -void CONSTRAINT_OT_objectsolver_clear_inverse (struct wmOperatorType *ot); +void CONSTRAINT_OT_objectsolver_clear_inverse(struct wmOperatorType *ot); /* object_vgroup.c */ void OBJECT_OT_vertex_group_add(struct wmOperatorType *ot); diff --git a/source/blender/editors/object/object_lattice.c b/source/blender/editors/object/object_lattice.c index 4ba62541c60..648f530881a 100644 --- a/source/blender/editors/object/object_lattice.c +++ b/source/blender/editors/object/object_lattice.c @@ -68,45 +68,45 @@ void free_editLatt(Object *ob) { - Lattice *lt= ob->data; + Lattice *lt = ob->data; if (lt->editlatt) { - Lattice *editlt= lt->editlatt->latt; + Lattice *editlt = lt->editlatt->latt; if (editlt->def) MEM_freeN(editlt->def); if (editlt->dvert) - free_dverts(editlt->dvert, editlt->pntsu*editlt->pntsv*editlt->pntsw); + free_dverts(editlt->dvert, editlt->pntsu * editlt->pntsv * editlt->pntsw); MEM_freeN(editlt); MEM_freeN(lt->editlatt); - lt->editlatt= NULL; + lt->editlatt = NULL; } } void make_editLatt(Object *obedit) { - Lattice *lt= obedit->data; + Lattice *lt = obedit->data; KeyBlock *actkey; free_editLatt(obedit); - actkey= ob_get_keyblock(obedit); + actkey = ob_get_keyblock(obedit); if (actkey) key_to_latt(actkey, lt); - lt->editlatt= MEM_callocN(sizeof(EditLatt), "editlatt"); - lt->editlatt->latt= MEM_dupallocN(lt); - lt->editlatt->latt->def= MEM_dupallocN(lt->def); + lt->editlatt = MEM_callocN(sizeof(EditLatt), "editlatt"); + lt->editlatt->latt = MEM_dupallocN(lt); + lt->editlatt->latt->def = MEM_dupallocN(lt->def); if (lt->dvert) { - int tot= lt->pntsu*lt->pntsv*lt->pntsw; - lt->editlatt->latt->dvert = MEM_mallocN (sizeof (MDeformVert)*tot, "Lattice MDeformVert"); + int tot = lt->pntsu * lt->pntsv * lt->pntsw; + lt->editlatt->latt->dvert = MEM_mallocN(sizeof (MDeformVert) * tot, "Lattice MDeformVert"); copy_dverts(lt->editlatt->latt->dvert, lt->dvert, tot); } - if (lt->key) lt->editlatt->shapenr= obedit->shapenr; + if (lt->key) lt->editlatt->shapenr = obedit->shapenr; } void load_editLatt(Object *obedit) @@ -117,52 +117,52 @@ void load_editLatt(Object *obedit) float *fp; int tot; - lt= obedit->data; - editlt= lt->editlatt->latt; + lt = obedit->data; + editlt = lt->editlatt->latt; if (lt->editlatt->shapenr) { - actkey= BLI_findlink(<->key->block, lt->editlatt->shapenr-1); + actkey = BLI_findlink(<->key->block, lt->editlatt->shapenr - 1); /* active key: vertices */ - tot= editlt->pntsu*editlt->pntsv*editlt->pntsw; + tot = editlt->pntsu * editlt->pntsv * editlt->pntsw; if (actkey->data) MEM_freeN(actkey->data); - fp=actkey->data= MEM_callocN(lt->key->elemsize*tot, "actkey->data"); - actkey->totelem= tot; + fp = actkey->data = MEM_callocN(lt->key->elemsize * tot, "actkey->data"); + actkey->totelem = tot; - bp= editlt->def; + bp = editlt->def; while (tot--) { copy_v3_v3(fp, bp->vec); - fp+= 3; + fp += 3; bp++; } } else { MEM_freeN(lt->def); - lt->def= MEM_dupallocN(editlt->def); + lt->def = MEM_dupallocN(editlt->def); - lt->flag= editlt->flag; + lt->flag = editlt->flag; - lt->pntsu= editlt->pntsu; - lt->pntsv= editlt->pntsv; - lt->pntsw= editlt->pntsw; + lt->pntsu = editlt->pntsu; + lt->pntsv = editlt->pntsv; + lt->pntsw = editlt->pntsw; - lt->typeu= editlt->typeu; - lt->typev= editlt->typev; - lt->typew= editlt->typew; + lt->typeu = editlt->typeu; + lt->typev = editlt->typev; + lt->typew = editlt->typew; } if (lt->dvert) { - free_dverts(lt->dvert, lt->pntsu*lt->pntsv*lt->pntsw); - lt->dvert= NULL; + free_dverts(lt->dvert, lt->pntsu * lt->pntsv * lt->pntsw); + lt->dvert = NULL; } if (editlt->dvert) { - tot= lt->pntsu*lt->pntsv*lt->pntsw; + tot = lt->pntsu * lt->pntsv * lt->pntsw; - lt->dvert = MEM_mallocN (sizeof (MDeformVert)*tot, "Lattice MDeformVert"); + lt->dvert = MEM_mallocN(sizeof (MDeformVert) * tot, "Lattice MDeformVert"); copy_dverts(lt->dvert, editlt->dvert, tot); } } @@ -171,17 +171,17 @@ void load_editLatt(Object *obedit) void ED_setflagsLatt(Object *obedit, int flag) { - Lattice *lt= obedit->data; + Lattice *lt = obedit->data; BPoint *bp; int a; - bp= lt->editlatt->latt->def; + bp = lt->editlatt->latt->def; - a= lt->editlatt->latt->pntsu*lt->editlatt->latt->pntsv*lt->editlatt->latt->pntsw; + a = lt->editlatt->latt->pntsu * lt->editlatt->latt->pntsv * lt->editlatt->latt->pntsw; while (a--) { - if (bp->hide==0) { - bp->f1= flag; + if (bp->hide == 0) { + bp->f1 = flag; } bp++; } @@ -189,8 +189,8 @@ void ED_setflagsLatt(Object *obedit, int flag) static int lattice_select_all_exec(bContext *C, wmOperator *op) { - Object *obedit= CTX_data_edit_object(C); - Lattice *lt= obedit->data; + Object *obedit = CTX_data_edit_object(C); + Lattice *lt = obedit->data; BPoint *bp; int a; int action = RNA_enum_get(op->ptr, "action"); @@ -198,11 +198,11 @@ static int lattice_select_all_exec(bContext *C, wmOperator *op) if (action == SEL_TOGGLE) { action = SEL_SELECT; - bp= lt->editlatt->latt->def; - a= lt->editlatt->latt->pntsu*lt->editlatt->latt->pntsv*lt->editlatt->latt->pntsw; + bp = lt->editlatt->latt->def; + a = lt->editlatt->latt->pntsu * lt->editlatt->latt->pntsv * lt->editlatt->latt->pntsw; while (a--) { - if (bp->hide==0) { + if (bp->hide == 0) { if (bp->f1) { action = SEL_DESELECT; break; @@ -213,26 +213,26 @@ static int lattice_select_all_exec(bContext *C, wmOperator *op) } switch (action) { - case SEL_SELECT: - ED_setflagsLatt(obedit, 1); - break; - case SEL_DESELECT: - ED_setflagsLatt(obedit, 0); - break; - case SEL_INVERT: - bp= lt->editlatt->latt->def; - a= lt->editlatt->latt->pntsu*lt->editlatt->latt->pntsv*lt->editlatt->latt->pntsw; + case SEL_SELECT: + ED_setflagsLatt(obedit, 1); + break; + case SEL_DESELECT: + ED_setflagsLatt(obedit, 0); + break; + case SEL_INVERT: + bp = lt->editlatt->latt->def; + a = lt->editlatt->latt->pntsu * lt->editlatt->latt->pntsv * lt->editlatt->latt->pntsw; - while (a--) { - if (bp->hide==0) { - bp->f1 ^= 1; + while (a--) { + if (bp->hide == 0) { + bp->f1 ^= 1; + } + bp++; } - bp++; - } - break; + break; } - WM_event_add_notifier(C, NC_GEOM|ND_SELECT, obedit->data); + WM_event_add_notifier(C, NC_GEOM | ND_SELECT, obedit->data); return OPERATOR_FINISHED; } @@ -249,7 +249,7 @@ void LATTICE_OT_select_all(wmOperatorType *ot) ot->poll = ED_operator_editlattice; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; WM_operator_properties_select_all(ot); } @@ -260,27 +260,27 @@ static int make_regular_poll(bContext *C) if (ED_operator_editlattice(C)) return 1; - ob= CTX_data_active_object(C); - return (ob && ob->type==OB_LATTICE); + ob = CTX_data_active_object(C); + return (ob && ob->type == OB_LATTICE); } static int make_regular_exec(bContext *C, wmOperator *UNUSED(op)) { - Object *ob= CTX_data_edit_object(C); + Object *ob = CTX_data_edit_object(C); Lattice *lt; if (ob) { - lt= ob->data; + lt = ob->data; resizelattice(lt->editlatt->latt, lt->pntsu, lt->pntsv, lt->pntsw, NULL); } else { - ob= CTX_data_active_object(C); - lt= ob->data; + ob = CTX_data_active_object(C); + lt = ob->data; resizelattice(lt, lt->pntsu, lt->pntsv, lt->pntsw, NULL); } DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data); + WM_event_add_notifier(C, NC_GEOM | ND_DATA, ob->data); return OPERATOR_FINISHED; } @@ -297,7 +297,7 @@ void LATTICE_OT_make_regular(wmOperatorType *ot) ot->poll = make_regular_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } /****************************** Mouse Selection *************************/ @@ -305,12 +305,12 @@ void LATTICE_OT_make_regular(wmOperatorType *ot) static void findnearestLattvert__doClosest(void *userData, BPoint *bp, int x, int y) { struct { BPoint *bp; short dist, select; int mval[2]; } *data = userData; - float temp = abs(data->mval[0]-x) + abs(data->mval[1]-y); + float temp = abs(data->mval[0] - x) + abs(data->mval[1] - y); - if ((bp->f1 & SELECT)==data->select) + if ((bp->f1 & SELECT) == data->select) temp += 5; - if (tempdist) { + if (temp < data->dist) { data->dist = temp; data->bp = bp; @@ -319,15 +319,15 @@ static void findnearestLattvert__doClosest(void *userData, BPoint *bp, int x, in static BPoint *findnearestLattvert(ViewContext *vc, const int mval[2], int sel) { - /* sel==1: selected gets a disadvantage */ - /* in nurb and bezt or bp the nearest is written */ - /* return 0 1 2: handlepunt */ + /* sel==1: selected gets a disadvantage */ + /* in nurb and bezt or bp the nearest is written */ + /* return 0 1 2: handlepunt */ struct { BPoint *bp; short dist, select; int mval[2]; } data = {NULL}; data.dist = 100; data.select = sel; - data.mval[0]= mval[0]; - data.mval[1]= mval[1]; + data.mval[0] = mval[0]; + data.mval[1] = mval[1]; ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d); lattice_foreachScreenVert(vc, findnearestLattvert__doClosest, &data); @@ -338,20 +338,20 @@ static BPoint *findnearestLattvert(ViewContext *vc, const int mval[2], int sel) int mouse_lattice(bContext *C, const int mval[2], int extend) { ViewContext vc; - BPoint *bp= NULL; + BPoint *bp = NULL; view3d_set_viewcontext(C, &vc); - bp= findnearestLattvert(&vc, mval, 1); + bp = findnearestLattvert(&vc, mval, 1); if (bp) { - if (extend==0) { + if (extend == 0) { ED_setflagsLatt(vc.obedit, 0); bp->f1 |= SELECT; } else - bp->f1 ^= SELECT; /* swap */ + bp->f1 ^= SELECT; /* swap */ - WM_event_add_notifier(C, NC_GEOM|ND_SELECT, vc.obedit->data); + WM_event_add_notifier(C, NC_GEOM | ND_SELECT, vc.obedit->data); return 1; } @@ -368,29 +368,29 @@ typedef struct UndoLattice { static void undoLatt_to_editLatt(void *data, void *edata, void *UNUSED(obdata)) { - UndoLattice *ult= (UndoLattice*)data; - EditLatt *editlatt= (EditLatt *)edata; - int a= editlatt->latt->pntsu*editlatt->latt->pntsv*editlatt->latt->pntsw; + UndoLattice *ult = (UndoLattice *)data; + EditLatt *editlatt = (EditLatt *)edata; + int a = editlatt->latt->pntsu * editlatt->latt->pntsv * editlatt->latt->pntsw; - memcpy(editlatt->latt->def, ult->def, a*sizeof(BPoint)); + memcpy(editlatt->latt->def, ult->def, a * sizeof(BPoint)); } static void *editLatt_to_undoLatt(void *edata, void *UNUSED(obdata)) { - UndoLattice *ult= MEM_callocN(sizeof(UndoLattice), "UndoLattice"); - EditLatt *editlatt= (EditLatt *)edata; + UndoLattice *ult = MEM_callocN(sizeof(UndoLattice), "UndoLattice"); + EditLatt *editlatt = (EditLatt *)edata; - ult->def= MEM_dupallocN(editlatt->latt->def); - ult->pntsu= editlatt->latt->pntsu; - ult->pntsv= editlatt->latt->pntsv; - ult->pntsw= editlatt->latt->pntsw; + ult->def = MEM_dupallocN(editlatt->latt->def); + ult->pntsu = editlatt->latt->pntsu; + ult->pntsv = editlatt->latt->pntsv; + ult->pntsw = editlatt->latt->pntsw; return ult; } static void free_undoLatt(void *data) { - UndoLattice *ult= (UndoLattice*)data; + UndoLattice *ult = (UndoLattice *)data; if (ult->def) MEM_freeN(ult->def); MEM_freeN(ult); @@ -398,20 +398,20 @@ static void free_undoLatt(void *data) static int validate_undoLatt(void *data, void *edata) { - UndoLattice *ult= (UndoLattice*)data; - EditLatt *editlatt= (EditLatt *)edata; + UndoLattice *ult = (UndoLattice *)data; + EditLatt *editlatt = (EditLatt *)edata; return (ult->pntsu == editlatt->latt->pntsu && - ult->pntsv == editlatt->latt->pntsv && - ult->pntsw == editlatt->latt->pntsw); + ult->pntsv == editlatt->latt->pntsv && + ult->pntsw == editlatt->latt->pntsw); } static void *get_editlatt(bContext *C) { - Object *obedit= CTX_data_edit_object(C); + Object *obedit = CTX_data_edit_object(C); - if (obedit && obedit->type==OB_LATTICE) { - Lattice *lt= obedit->data; + if (obedit && obedit->type == OB_LATTICE) { + Lattice *lt = obedit->data; return lt->editlatt; } diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c index cd2fa4f93b6..f2d682cd0cb 100644 --- a/source/blender/editors/object/object_modifier.c +++ b/source/blender/editors/object/object_modifier.c @@ -87,16 +87,16 @@ ModifierData *ED_object_modifier_add(ReportList *reports, Main *bmain, Scene *scene, Object *ob, const char *name, int type) { - ModifierData *md=NULL, *new_md=NULL; + ModifierData *md = NULL, *new_md = NULL; ModifierTypeInfo *mti = modifierType_getInfo(type); /* only geometry objects should be able to get modifiers [#25291] */ if (!ELEM5(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_LATTICE)) { - BKE_reportf(reports, RPT_WARNING, "Modifiers cannot be added to Object '%s'", ob->id.name+2); + BKE_reportf(reports, RPT_WARNING, "Modifiers cannot be added to Object '%s'", ob->id.name + 2); return NULL; } - if (mti->flags&eModifierTypeFlag_Single) { + if (mti->flags & eModifierTypeFlag_Single) { if (modifiers_findByType(ob, type)) { BKE_report(reports, RPT_WARNING, "Only one modifier of this type allowed"); return NULL; @@ -111,12 +111,12 @@ ModifierData *ED_object_modifier_add(ReportList *reports, Main *bmain, Scene *sc } else { /* get new modifier data to add */ - new_md= modifier_new(type); + new_md = modifier_new(type); - if (mti->flags&eModifierTypeFlag_RequiresOriginalData) { + if (mti->flags & eModifierTypeFlag_RequiresOriginalData) { md = ob->modifiers.first; - while (md && modifierType_getInfo(md->type)->type==eModifierTypeType_OnlyDeform) + while (md && modifierType_getInfo(md->type)->type == eModifierTypeType_OnlyDeform) md = md->next; BLI_insertlinkbefore(&ob->modifiers, md, new_md); @@ -134,15 +134,15 @@ ModifierData *ED_object_modifier_add(ReportList *reports, Main *bmain, Scene *sc /* special cases */ if (type == eModifierType_Softbody) { if (!ob->soft) { - ob->soft= sbNew(scene); - ob->softflag |= OB_SB_GOAL|OB_SB_EDGES; + ob->soft = sbNew(scene); + ob->softflag |= OB_SB_GOAL | OB_SB_EDGES; } } else if (type == eModifierType_Collision) { if (!ob->pd) - ob->pd= object_add_collision_fields(0); + ob->pd = object_add_collision_fields(0); - ob->pd->deflect= 1; + ob->pd->deflect = 1; DAG_scene_sort(bmain, scene); } else if (type == eModifierType_Surface) @@ -164,8 +164,8 @@ static int object_modifier_remove(Object *ob, ModifierData *md, int *sort_depsgr /* It seems on rapid delete it is possible to * get called twice on same modifier, so make * sure it is in list. */ - for (obmd=ob->modifiers.first; obmd; obmd=obmd->next) - if (obmd==md) + for (obmd = ob->modifiers.first; obmd; obmd = obmd->next) + if (obmd == md) break; if (!obmd) @@ -173,22 +173,22 @@ static int object_modifier_remove(Object *ob, ModifierData *md, int *sort_depsgr /* special cases */ if (md->type == eModifierType_ParticleSystem) { - ParticleSystemModifierData *psmd=(ParticleSystemModifierData*)md; + ParticleSystemModifierData *psmd = (ParticleSystemModifierData *)md; BLI_remlink(&ob->particlesystem, psmd->psys); psys_free(ob, psmd->psys); - psmd->psys= NULL; + psmd->psys = NULL; } else if (md->type == eModifierType_Softbody) { if (ob->soft) { sbFree(ob->soft); - ob->soft= NULL; - ob->softflag= 0; + ob->soft = NULL; + ob->softflag = 0; } } else if (md->type == eModifierType_Collision) { if (ob->pd) - ob->pd->deflect= 0; + ob->pd->deflect = 0; *sort_depsgraph = 1; } @@ -202,13 +202,13 @@ static int object_modifier_remove(Object *ob, ModifierData *md, int *sort_depsgr ob->dt = OB_TEXTURE; } else if (md->type == eModifierType_Multires) { - int ok= 1; + int ok = 1; ModifierData *tmpmd; /* ensure MDISPS CustomData layer isn't used by another multires modifiers */ - for (tmpmd= ob->modifiers.first; tmpmd; tmpmd= tmpmd->next) - if (tmpmd!=md && tmpmd->type == eModifierType_Multires) { - ok= 0; + for (tmpmd = ob->modifiers.first; tmpmd; tmpmd = tmpmd->next) + if (tmpmd != md && tmpmd->type == eModifierType_Multires) { + ok = 0; break; } @@ -218,7 +218,7 @@ static int object_modifier_remove(Object *ob, ModifierData *md, int *sort_depsgr } if (ELEM(md->type, eModifierType_Softbody, eModifierType_Cloth) && - ob->particlesystem.first == NULL) { + ob->particlesystem.first == NULL) { ob->mode &= ~OB_MODE_PARTICLE_EDIT; } @@ -233,7 +233,7 @@ int ED_object_modifier_remove(ReportList *reports, Main *bmain, Scene *scene, Ob int sort_depsgraph = 0; int ok; - ok= object_modifier_remove(ob, md, &sort_depsgraph); + ok = object_modifier_remove(ob, md, &sort_depsgraph); if (!ok) { BKE_reportf(reports, RPT_ERROR, "Modifier '%s' not in object '%s'", ob->id.name, md->name); @@ -260,11 +260,11 @@ void ED_object_modifier_clear(Main *bmain, Scene *scene, Object *ob) while (md) { ModifierData *next_md; - next_md= md->next; + next_md = md->next; object_modifier_remove(ob, md, &sort_depsgraph); - md= next_md; + md = next_md; } DAG_id_tag_update(&ob->id, OB_RECALC_DATA); @@ -279,10 +279,10 @@ int ED_object_modifier_move_up(ReportList *reports, Object *ob, ModifierData *md if (md->prev) { ModifierTypeInfo *mti = modifierType_getInfo(md->type); - if (mti->type!=eModifierTypeType_OnlyDeform) { + if (mti->type != eModifierTypeType_OnlyDeform) { ModifierTypeInfo *nmti = modifierType_getInfo(md->prev->type); - if (nmti->flags&eModifierTypeFlag_RequiresOriginalData) { + if (nmti->flags & eModifierTypeFlag_RequiresOriginalData) { BKE_report(reports, RPT_WARNING, "Cannot move above a modifier requiring original data"); return 0; } @@ -300,10 +300,10 @@ int ED_object_modifier_move_down(ReportList *reports, Object *ob, ModifierData * if (md->next) { ModifierTypeInfo *mti = modifierType_getInfo(md->type); - if (mti->flags&eModifierTypeFlag_RequiresOriginalData) { + if (mti->flags & eModifierTypeFlag_RequiresOriginalData) { ModifierTypeInfo *nmti = modifierType_getInfo(md->next->type); - if (nmti->type!=eModifierTypeType_OnlyDeform) { + if (nmti->type != eModifierTypeType_OnlyDeform) { BKE_report(reports, RPT_WARNING, "Cannot move beyond a non-deforming modifier"); return 0; } @@ -326,72 +326,72 @@ int ED_object_modifier_convert(ReportList *UNUSED(reports), Main *bmain, Scene * MVert *mvert; MEdge *medge; int a, k, kmax; - int totvert=0, totedge=0, cvert=0; - int totpart=0, totchild=0; + int totvert = 0, totedge = 0, cvert = 0; + int totpart = 0, totchild = 0; if (md->type != eModifierType_ParticleSystem) return 0; if (ob && ob->mode & OB_MODE_PARTICLE_EDIT) return 0; - psys=((ParticleSystemModifierData *)md)->psys; - part= psys->part; + psys = ((ParticleSystemModifierData *)md)->psys; + part = psys->part; if (part->ren_as != PART_DRAW_PATH || psys->pathcache == NULL) return 0; - totpart= psys->totcached; - totchild= psys->totchildcache; + totpart = psys->totcached; + totchild = psys->totchildcache; - if (totchild && (part->draw&PART_DRAW_PARENT)==0) - totpart= 0; + if (totchild && (part->draw & PART_DRAW_PARENT) == 0) + totpart = 0; /* count */ - cache= psys->pathcache; - for (a=0; apathcache; + for (a = 0; a < totpart; a++) { + key = cache[a]; if (key->steps > 0) { - totvert+= key->steps+1; - totedge+= key->steps; + totvert += key->steps + 1; + totedge += key->steps; } } - cache= psys->childcache; - for (a=0; achildcache; + for (a = 0; a < totchild; a++) { + key = cache[a]; if (key->steps > 0) { - totvert+= key->steps+1; - totedge+= key->steps; + totvert += key->steps + 1; + totedge += key->steps; } } - if (totvert==0) return 0; + if (totvert == 0) return 0; /* add new mesh */ - obn= add_object(scene, OB_MESH); - me= obn->data; + obn = add_object(scene, OB_MESH); + me = obn->data; - me->totvert= totvert; - me->totedge= totedge; + me->totvert = totvert; + me->totedge = totedge; - me->mvert= CustomData_add_layer(&me->vdata, CD_MVERT, CD_CALLOC, NULL, totvert); - me->medge= CustomData_add_layer(&me->edata, CD_MEDGE, CD_CALLOC, NULL, totedge); - me->mface= CustomData_add_layer(&me->fdata, CD_MFACE, CD_CALLOC, NULL, 0); + me->mvert = CustomData_add_layer(&me->vdata, CD_MVERT, CD_CALLOC, NULL, totvert); + me->medge = CustomData_add_layer(&me->edata, CD_MEDGE, CD_CALLOC, NULL, totedge); + me->mface = CustomData_add_layer(&me->fdata, CD_MFACE, CD_CALLOC, NULL, 0); - mvert= me->mvert; - medge= me->medge; + mvert = me->mvert; + medge = me->medge; /* copy coordinates */ - cache= psys->pathcache; - for (a=0; asteps; - for (k=0; k<=kmax; k++,key++,cvert++,mvert++) { - copy_v3_v3(mvert->co,key->co); + cache = psys->pathcache; + for (a = 0; a < totpart; a++) { + key = cache[a]; + kmax = key->steps; + for (k = 0; k <= kmax; k++, key++, cvert++, mvert++) { + copy_v3_v3(mvert->co, key->co); if (k) { - medge->v1= cvert-1; - medge->v2= cvert; - medge->flag= ME_EDGEDRAW|ME_EDGERENDER|ME_LOOSEEDGE; + medge->v1 = cvert - 1; + medge->v2 = cvert; + medge->flag = ME_EDGEDRAW | ME_EDGERENDER | ME_LOOSEEDGE; medge++; } else { @@ -401,16 +401,16 @@ int ED_object_modifier_convert(ReportList *UNUSED(reports), Main *bmain, Scene * } } - cache=psys->childcache; - for (a=0; asteps; - for (k=0; k<=kmax; k++,key++,cvert++,mvert++) { - copy_v3_v3(mvert->co,key->co); + cache = psys->childcache; + for (a = 0; a < totchild; a++) { + key = cache[a]; + kmax = key->steps; + for (k = 0; k <= kmax; k++, key++, cvert++, mvert++) { + copy_v3_v3(mvert->co, key->co); if (k) { - medge->v1=cvert-1; - medge->v2=cvert; - medge->flag= ME_EDGEDRAW|ME_EDGERENDER|ME_LOOSEEDGE; + medge->v1 = cvert - 1; + medge->v2 = cvert; + medge->flag = ME_EDGEDRAW | ME_EDGERENDER | ME_LOOSEEDGE; medge++; } else { @@ -427,9 +427,9 @@ int ED_object_modifier_convert(ReportList *UNUSED(reports), Main *bmain, Scene * static int modifier_apply_shape(ReportList *reports, Scene *scene, Object *ob, ModifierData *md) { - ModifierTypeInfo *mti= modifierType_getInfo(md->type); + ModifierTypeInfo *mti = modifierType_getInfo(md->type); - md->scene= scene; + md->scene = scene; if (mti->isDisabled && mti->isDisabled(md, 0)) { BKE_report(reports, RPT_ERROR, "Modifier is disabled, skipping apply"); @@ -447,10 +447,10 @@ static int modifier_apply_shape(ReportList *reports, Scene *scene, Object *ob, M * and then predominantly stated in comments in a half dozen headers. */ - if (ob->type==OB_MESH) { + if (ob->type == OB_MESH) { DerivedMesh *dm; - Mesh *me= ob->data; - Key *key=me->key; + Mesh *me = ob->data; + Key *key = me->key; KeyBlock *kb; if (!modifier_sameTopology(md) || mti->type == eModifierTypeType_NonGeometrical) { @@ -465,15 +465,15 @@ static int modifier_apply_shape(ReportList *reports, Scene *scene, Object *ob, M } if (key == NULL) { - key= me->key= add_key((ID *)me); - key->type= KEY_RELATIVE; + key = me->key = add_key((ID *)me); + key->type = KEY_RELATIVE; /* if that was the first key block added, then it was the basis. * Initialize it with the mesh, and add another for the modifier */ - kb= add_keyblock(key, NULL); + kb = add_keyblock(key, NULL); mesh_to_key(me, kb); } - kb= add_keyblock(key, md->name); + kb = add_keyblock(key, md->name); DM_to_meshkey(dm, me, kb); dm->release(dm); @@ -487,19 +487,19 @@ static int modifier_apply_shape(ReportList *reports, Scene *scene, Object *ob, M static int modifier_apply_obdata(ReportList *reports, Scene *scene, Object *ob, ModifierData *md) { - ModifierTypeInfo *mti= modifierType_getInfo(md->type); + ModifierTypeInfo *mti = modifierType_getInfo(md->type); - md->scene= scene; + md->scene = scene; if (mti->isDisabled && mti->isDisabled(md, 0)) { BKE_report(reports, RPT_ERROR, "Modifier is disabled, skipping apply"); return 0; } - if (ob->type==OB_MESH) { + if (ob->type == OB_MESH) { DerivedMesh *dm; Mesh *me = ob->data; - MultiresModifierData *mmd= find_multires_modifier_before(scene, md); + MultiresModifierData *mmd = find_multires_modifier_before(scene, md); if (me->key && mti->type != eModifierTypeType_NonGeometrical) { BKE_report(reports, RPT_ERROR, "Modifier cannot be applied to Mesh with Shape Keys"); @@ -510,8 +510,8 @@ static int modifier_apply_obdata(ReportList *reports, Scene *scene, Object *ob, if (md->type == eModifierType_Multires) multires_force_update(ob); - if (mmd && mmd->totlvl && mti->type==eModifierTypeType_OnlyDeform) { - if (!multiresModifier_reshapeFromDeformMod (scene, mmd, ob, md)) { + if (mmd && mmd->totlvl && mti->type == eModifierTypeType_OnlyDeform) { + if (!multiresModifier_reshapeFromDeformMod(scene, mmd, ob, md)) { BKE_report(reports, RPT_ERROR, "Multires modifier returned error, skipping apply"); return 0; } @@ -544,9 +544,9 @@ static int modifier_apply_obdata(ReportList *reports, Scene *scene, Object *ob, cu = ob->data; BKE_report(reports, RPT_INFO, "Applied modifier only changed CV points, not tessellated/bevel vertices"); - vertexCos = curve_getVertexCos(cu, &cu->nurb, &numVerts); + vertexCos = BKE_curve_vertexCos_get(cu, &cu->nurb, &numVerts); mti->deformVerts(md, ob, NULL, vertexCos, numVerts, 0, 0); - curve_applyVertexCos(cu, &cu->nurb, vertexCos); + BK_curve_vertexCos_apply(cu, &cu->nurb, vertexCos); MEM_freeN(vertexCos); @@ -562,7 +562,7 @@ static int modifier_apply_obdata(ReportList *reports, Scene *scene, Object *ob, ParticleSystem *psys = ob->particlesystem.first; - for (; psys; psys=psys->next) { + for (; psys; psys = psys->next) { if (psys->part->type != PART_HAIR) continue; @@ -582,27 +582,27 @@ int ED_object_modifier_apply(ReportList *reports, Scene *scene, Object *ob, Modi BKE_report(reports, RPT_ERROR, "Modifiers cannot be applied in editmode"); return 0; } - else if (((ID*) ob->data)->us>1) { + else if (((ID *) ob->data)->us > 1) { BKE_report(reports, RPT_ERROR, "Modifiers cannot be applied to multi-user data"); return 0; } - if (md!=ob->modifiers.first) + if (md != ob->modifiers.first) BKE_report(reports, RPT_INFO, "Applied modifier was not first, result may not be as expected"); /* allow apply of a not-realtime modifier, by first re-enabling realtime. */ - prev_mode= md->mode; + prev_mode = md->mode; md->mode |= eModifierMode_Realtime; if (mode == MODIFIER_APPLY_SHAPE) { if (!modifier_apply_shape(reports, scene, ob, md)) { - md->mode= prev_mode; + md->mode = prev_mode; return 0; } } else { if (!modifier_apply_obdata(reports, scene, ob, md)) { - md->mode= prev_mode; + md->mode = prev_mode; return 0; } } @@ -629,34 +629,34 @@ int ED_object_modifier_copy(ReportList *UNUSED(reports), Object *ob, ModifierDat static int modifier_add_exec(bContext *C, wmOperator *op) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); Object *ob = ED_object_active_context(C); - int type= RNA_enum_get(op->ptr, "type"); + int type = RNA_enum_get(op->ptr, "type"); if (!ED_object_modifier_add(op->reports, bmain, scene, ob, NULL, type)) return OPERATOR_CANCELLED; - WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob); return OPERATOR_FINISHED; } static EnumPropertyItem *modifier_add_itemf(bContext *C, PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), int *free) { - Object *ob= ED_object_active_context(C); - EnumPropertyItem *item= NULL, *md_item, *group_item= NULL; + Object *ob = ED_object_active_context(C); + EnumPropertyItem *item = NULL, *md_item, *group_item = NULL; ModifierTypeInfo *mti; - int totitem= 0, a; + int totitem = 0, a; if (!ob) return modifier_type_items; - for (a=0; modifier_type_items[a].identifier; a++) { - md_item= &modifier_type_items[a]; + for (a = 0; modifier_type_items[a].identifier; a++) { + md_item = &modifier_type_items[a]; if (md_item->identifier[0]) { - mti= modifierType_getInfo(md_item->value); + mti = modifierType_getInfo(md_item->value); if (mti->flags & eModifierTypeFlag_NoUserAdd) continue; @@ -665,22 +665,22 @@ static EnumPropertyItem *modifier_add_itemf(bContext *C, PointerRNA *UNUSED(ptr) continue; } else { - group_item= md_item; - md_item= NULL; + group_item = md_item; + md_item = NULL; continue; } if (group_item) { RNA_enum_item_add(&item, &totitem, group_item); - group_item= NULL; + group_item = NULL; } RNA_enum_item_add(&item, &totitem, md_item); } RNA_enum_item_end(&item, &totitem); - *free= 1; + *free = 1; return item; } @@ -700,10 +700,10 @@ void OBJECT_OT_modifier_add(wmOperatorType *ot) ot->poll = ED_operator_object_active_editable; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ - prop= RNA_def_enum(ot->srna, "type", modifier_type_items, eModifierType_Subsurf, "Type", ""); + prop = RNA_def_enum(ot->srna, "type", modifier_type_items, eModifierType_Subsurf, "Type", ""); RNA_def_enum_funcs(prop, modifier_add_itemf); ot->prop = prop; } @@ -712,12 +712,12 @@ void OBJECT_OT_modifier_add(wmOperatorType *ot) static int edit_modifier_poll_generic(bContext *C, StructRNA *rna_type, int obtype_flag) { - PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", rna_type); - Object *ob= (ptr.id.data)?ptr.id.data:ED_object_active_context(C); + PointerRNA ptr = CTX_data_pointer_get_type(C, "modifier", rna_type); + Object *ob = (ptr.id.data) ? ptr.id.data : ED_object_active_context(C); if (!ob || ob->id.lib) return 0; - if (obtype_flag && ((1<type) & obtype_flag)==0) return 0; - if (ptr.id.data && ((ID*)ptr.id.data)->lib) return 0; + if (obtype_flag && ((1 << ob->type) & obtype_flag) == 0) return 0; + if (ptr.id.data && ((ID *)ptr.id.data)->lib) return 0; return 1; } @@ -734,7 +734,7 @@ static void edit_modifier_properties(wmOperatorType *ot) static int edit_modifier_invoke_properties(bContext *C, wmOperator *op) { - PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", &RNA_Modifier); + PointerRNA ptr = CTX_data_pointer_get_type(C, "modifier", &RNA_Modifier); ModifierData *md; if (RNA_struct_property_is_set(op->ptr, "modifier")) @@ -767,8 +767,8 @@ static ModifierData *edit_modifier_property_get(wmOperator *op, Object *ob, int static int modifier_remove_exec(bContext *C, wmOperator *op) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); Object *ob = ED_object_active_context(C); ModifierData *md = edit_modifier_property_get(op, ob, 0); int mode_orig = ob ? ob->mode : 0; @@ -776,13 +776,13 @@ static int modifier_remove_exec(bContext *C, wmOperator *op) if (!ob || !md || !ED_object_modifier_remove(op->reports, bmain, scene, ob, md)) return OPERATOR_CANCELLED; - WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob); /* if cloth/softbody was removed, particle mode could be cleared */ if (mode_orig & OB_MODE_PARTICLE_EDIT) - if ((ob->mode & OB_MODE_PARTICLE_EDIT)==0) - if (scene->basact && scene->basact->object==ob) - WM_event_add_notifier(C, NC_SCENE|ND_MODE|NS_MODE_OBJECT, NULL); + if ((ob->mode & OB_MODE_PARTICLE_EDIT) == 0) + if (scene->basact && scene->basact->object == ob) + WM_event_add_notifier(C, NC_SCENE | ND_MODE | NS_MODE_OBJECT, NULL); return OPERATOR_FINISHED; } @@ -806,7 +806,7 @@ void OBJECT_OT_modifier_remove(wmOperatorType *ot) ot->poll = edit_modifier_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; edit_modifier_properties(ot); } @@ -821,7 +821,7 @@ static int modifier_move_up_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob); return OPERATOR_FINISHED; } @@ -845,7 +845,7 @@ void OBJECT_OT_modifier_move_up(wmOperatorType *ot) ot->poll = edit_modifier_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; edit_modifier_properties(ot); } @@ -860,7 +860,7 @@ static int modifier_move_down_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob); return OPERATOR_FINISHED; } @@ -884,7 +884,7 @@ void OBJECT_OT_modifier_move_down(wmOperatorType *ot) ot->poll = edit_modifier_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; edit_modifier_properties(ot); } @@ -892,17 +892,17 @@ void OBJECT_OT_modifier_move_down(wmOperatorType *ot) static int modifier_apply_exec(bContext *C, wmOperator *op) { - Scene *scene= CTX_data_scene(C); + Scene *scene = CTX_data_scene(C); Object *ob = ED_object_active_context(C); ModifierData *md = edit_modifier_property_get(op, ob, 0); - int apply_as= RNA_enum_get(op->ptr, "apply_as"); + int apply_as = RNA_enum_get(op->ptr, "apply_as"); if (!ob || !md || !ED_object_modifier_apply(op->reports, scene, ob, md, apply_as)) { return OPERATOR_CANCELLED; } DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob); return OPERATOR_FINISHED; } @@ -931,7 +931,7 @@ void OBJECT_OT_modifier_apply(wmOperatorType *ot) ot->poll = edit_modifier_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; RNA_def_enum(ot->srna, "apply_as", modifier_apply_as_items, MODIFIER_APPLY_DATA, "Apply as", "How to apply the modifier to the geometry"); edit_modifier_properties(ot); @@ -941,8 +941,8 @@ void OBJECT_OT_modifier_apply(wmOperatorType *ot) static int modifier_convert_exec(bContext *C, wmOperator *op) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); Object *ob = ED_object_active_context(C); ModifierData *md = edit_modifier_property_get(op, ob, 0); @@ -950,7 +950,7 @@ static int modifier_convert_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob); return OPERATOR_FINISHED; } @@ -974,7 +974,7 @@ void OBJECT_OT_modifier_convert(wmOperatorType *ot) ot->poll = edit_modifier_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; edit_modifier_properties(ot); } @@ -989,7 +989,7 @@ static int modifier_copy_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob); return OPERATOR_FINISHED; } @@ -1013,7 +1013,7 @@ void OBJECT_OT_modifier_copy(wmOperatorType *ot) ot->poll = edit_modifier_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; edit_modifier_properties(ot); } @@ -1021,7 +1021,7 @@ void OBJECT_OT_modifier_copy(wmOperatorType *ot) static int multires_poll(bContext *C) { - return edit_modifier_poll_generic(C, &RNA_MultiresModifier, (1<exec = multires_higher_levels_delete_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; edit_modifier_properties(ot); } @@ -1075,7 +1075,7 @@ static int multires_subdivide_exec(bContext *C, wmOperator *op) multiresModifier_subdivide(mmd, ob, 0, mmd->simple); DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob); return OPERATOR_FINISHED; } @@ -1099,7 +1099,7 @@ void OBJECT_OT_multires_subdivide(wmOperatorType *ot) ot->exec = multires_subdivide_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; edit_modifier_properties(ot); } @@ -1107,21 +1107,21 @@ void OBJECT_OT_multires_subdivide(wmOperatorType *ot) static int multires_reshape_exec(bContext *C, wmOperator *op) { - Object *ob= ED_object_active_context(C), *secondob= NULL; - Scene *scene= CTX_data_scene(C); + Object *ob = ED_object_active_context(C), *secondob = NULL; + Scene *scene = CTX_data_scene(C); MultiresModifierData *mmd = (MultiresModifierData *)edit_modifier_property_get(op, ob, eModifierType_Multires); if (!mmd) return OPERATOR_CANCELLED; - if (mmd->lvl==0) { + if (mmd->lvl == 0) { BKE_report(op->reports, RPT_ERROR, "Reshape can work only with higher levels of subdivisions"); return OPERATOR_CANCELLED; } - CTX_DATA_BEGIN(C, Object*, selob, selected_editable_objects) { + CTX_DATA_BEGIN (C, Object *, selob, selected_editable_objects) { if (selob->type == OB_MESH && selob != ob) { - secondob= selob; + secondob = selob; break; } } @@ -1138,7 +1138,7 @@ static int multires_reshape_exec(bContext *C, wmOperator *op) } DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob); return OPERATOR_FINISHED; } @@ -1162,7 +1162,7 @@ void OBJECT_OT_multires_reshape(wmOperatorType *ot) ot->exec = multires_reshape_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; edit_modifier_properties(ot); } @@ -1173,9 +1173,9 @@ void OBJECT_OT_multires_reshape(wmOperatorType *ot) static int multires_external_save_exec(bContext *C, wmOperator *op) { Object *ob = ED_object_active_context(C); - Mesh *me= (ob)? ob->data: op->customdata; + Mesh *me = (ob) ? ob->data : op->customdata; char path[FILE_MAX]; - int relative= RNA_boolean_get(op->ptr, "relative_path"); + int relative = RNA_boolean_get(op->ptr, "relative_path"); if (!me) return OPERATOR_CANCELLED; @@ -1198,7 +1198,7 @@ static int multires_external_save_invoke(bContext *C, wmOperator *op, wmEvent *U { Object *ob = ED_object_active_context(C); MultiresModifierData *mmd; - Mesh *me= ob->data; + Mesh *me = ob->data; char path[FILE_MAX]; if (!edit_modifier_invoke_properties(C, op)) @@ -1215,9 +1215,9 @@ static int multires_external_save_invoke(bContext *C, wmOperator *op, wmEvent *U if (RNA_struct_property_is_set(op->ptr, "filepath")) return multires_external_save_exec(C, op); - op->customdata= me; + op->customdata = me; - BLI_snprintf(path, sizeof(path), "//%s.btx", me->id.name+2); + BLI_snprintf(path, sizeof(path), "//%s.btx", me->id.name + 2); RNA_string_set(op->ptr, "filepath", path); WM_event_add_fileselect(C, op); @@ -1237,9 +1237,9 @@ void OBJECT_OT_multires_external_save(wmOperatorType *ot) ot->poll = multires_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; - WM_operator_properties_filesel(ot, FOLDERFILE|BTXFILE, FILE_SPECIAL, FILE_SAVE, WM_FILESEL_FILEPATH|WM_FILESEL_RELPATH, FILE_DEFAULTDISPLAY); + WM_operator_properties_filesel(ot, FOLDERFILE | BTXFILE, FILE_SPECIAL, FILE_SAVE, WM_FILESEL_FILEPATH | WM_FILESEL_RELPATH, FILE_DEFAULTDISPLAY); edit_modifier_properties(ot); } @@ -1248,7 +1248,7 @@ void OBJECT_OT_multires_external_save(wmOperatorType *ot) static int multires_external_pack_exec(bContext *C, wmOperator *UNUSED(op)) { Object *ob = ED_object_active_context(C); - Mesh *me= ob->data; + Mesh *me = ob->data; if (!CustomData_external_test(&me->ldata, CD_MDISPS)) return OPERATOR_CANCELLED; @@ -1269,7 +1269,7 @@ void OBJECT_OT_multires_external_pack(wmOperatorType *ot) ot->exec = multires_external_pack_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } /********************* multires apply base ***********************/ @@ -1284,7 +1284,7 @@ static int multires_base_apply_exec(bContext *C, wmOperator *op) multiresModifier_base_apply(mmd, ob); DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob); return OPERATOR_FINISHED; } @@ -1309,7 +1309,7 @@ void OBJECT_OT_multires_base_apply(wmOperatorType *ot) ot->exec = multires_base_apply_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; edit_modifier_properties(ot); } @@ -1318,12 +1318,12 @@ void OBJECT_OT_multires_base_apply(wmOperatorType *ot) static int meshdeform_poll(bContext *C) { - return edit_modifier_poll_generic(C, &RNA_MeshDeformModifier, (1<bindinfluences) MEM_freeN(mmd->bindinfluences); if (mmd->bindoffsets) MEM_freeN(mmd->bindoffsets); if (mmd->dynverts) MEM_freeN(mmd->dynverts); - if (mmd->bindweights) MEM_freeN(mmd->bindweights); /* deprecated */ - if (mmd->bindcos) MEM_freeN(mmd->bindcos); /* deprecated */ + if (mmd->bindweights) MEM_freeN(mmd->bindweights); /* deprecated */ + if (mmd->bindcos) MEM_freeN(mmd->bindcos); /* deprecated */ - mmd->bindcagecos= NULL; - mmd->dyngrid= NULL; - mmd->dyninfluences= NULL; - mmd->bindoffsets= NULL; - mmd->dynverts= NULL; - mmd->bindweights= NULL; /* deprecated */ - mmd->bindcos= NULL; /* deprecated */ - mmd->totvert= 0; - mmd->totcagevert= 0; - mmd->totinfluence= 0; + mmd->bindcagecos = NULL; + mmd->dyngrid = NULL; + mmd->dyninfluences = NULL; + mmd->bindinfluences = NULL; + mmd->bindoffsets = NULL; + mmd->dynverts = NULL; + mmd->bindweights = NULL; /* deprecated */ + mmd->bindcos = NULL; /* deprecated */ + mmd->totvert = 0; + mmd->totcagevert = 0; + mmd->totinfluence = 0; DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob); } else { DerivedMesh *dm; - int mode= mmd->modifier.mode; + int mode = mmd->modifier.mode; /* force modifier to run, it will call binding routine */ - mmd->bindfunc= mesh_deform_bind; + mmd->bindfunc = mesh_deform_bind; mmd->modifier.mode |= eModifierMode_Realtime; if (ob->type == OB_MESH) { - dm= mesh_create_derived_view(scene, ob, 0); + dm = mesh_create_derived_view(scene, ob, 0); dm->release(dm); } else if (ob->type == OB_LATTICE) { lattice_calc_modifiers(scene, ob); } - else if (ob->type==OB_MBALL) { + else if (ob->type == OB_MBALL) { makeDispListMBall(scene, ob); } else if (ELEM3(ob->type, OB_CURVE, OB_SURF, OB_FONT)) { makeDispListCurveTypes(scene, ob, 0); } - mmd->bindfunc= NULL; - mmd->modifier.mode= mode; + mmd->bindfunc = NULL; + mmd->modifier.mode = mode; } return OPERATOR_FINISHED; @@ -1404,7 +1405,7 @@ void OBJECT_OT_meshdeform_bind(wmOperatorType *ot) ot->exec = meshdeform_bind_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; edit_modifier_properties(ot); } @@ -1426,7 +1427,7 @@ static int explode_refresh_exec(bContext *C, wmOperator *op) emd->flag |= eExplodeFlag_CalcFaces; DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob); return OPERATOR_FINISHED; } @@ -1451,7 +1452,7 @@ void OBJECT_OT_explode_refresh(wmOperatorType *ot) ot->exec = explode_refresh_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; edit_modifier_properties(ot); } @@ -1475,11 +1476,11 @@ static void init_ocean_modifier_bake(struct Ocean *oc, struct OceanModifierData do_normals = (omd->flag & MOD_OCEAN_GENERATE_NORMALS); do_jacobian = (omd->flag & MOD_OCEAN_GENERATE_FOAM); - BKE_init_ocean(oc, omd->resolution*omd->resolution, omd->resolution*omd->resolution, omd->spatial_size, omd->spatial_size, - omd->wind_velocity, omd->smallest_wave, 1.0, omd->wave_direction, omd->damp, omd->wave_alignment, - omd->depth, omd->time, - do_heightfield, do_chop, do_normals, do_jacobian, - omd->seed); + BKE_init_ocean(oc, omd->resolution * omd->resolution, omd->resolution * omd->resolution, omd->spatial_size, omd->spatial_size, + omd->wind_velocity, omd->smallest_wave, 1.0, omd->wave_direction, omd->damp, omd->wave_alignment, + omd->depth, omd->time, + do_heightfield, do_chop, do_normals, do_jacobian, + omd->seed); } typedef struct OceanBakeJob { @@ -1495,7 +1496,7 @@ typedef struct OceanBakeJob { static void oceanbake_free(void *customdata) { - OceanBakeJob *oj= customdata; + OceanBakeJob *oj = customdata; MEM_freeN(oj); } @@ -1514,34 +1515,34 @@ static int oceanbake_breakjob(void *UNUSED(customdata)) /* called by oceanbake, wmJob sends notifier */ static void oceanbake_update(void *customdata, float progress, int *cancel) { - OceanBakeJob *oj= customdata; + OceanBakeJob *oj = customdata; if (oceanbake_breakjob(oj)) *cancel = 1; - *(oj->do_update)= 1; - *(oj->progress)= progress; + *(oj->do_update) = 1; + *(oj->progress) = progress; } static void oceanbake_startjob(void *customdata, short *stop, short *do_update, float *progress) { - OceanBakeJob *oj= customdata; + OceanBakeJob *oj = customdata; - oj->stop= stop; + oj->stop = stop; oj->do_update = do_update; oj->progress = progress; - G.afbreek= 0; /* XXX shared with render - replace with job 'stop' switch */ + G.afbreek = 0; /* XXX shared with render - replace with job 'stop' switch */ BKE_bake_ocean(oj->ocean, oj->och, oceanbake_update, (void *)oj); - *do_update= 1; + *do_update = 1; *stop = 0; } static void oceanbake_endjob(void *customdata) { - OceanBakeJob *oj= customdata; + OceanBakeJob *oj = customdata; if (oj->ocean) { BKE_free_ocean(oj->ocean); @@ -1559,8 +1560,8 @@ static int ocean_bake_exec(bContext *C, wmOperator *op) Scene *scene = CTX_data_scene(C); OceanCache *och; struct Ocean *ocean; - int f, cfra, i=0; - int free= RNA_boolean_get(op->ptr, "free"); + int f, cfra, i = 0; + int free = RNA_boolean_get(op->ptr, "free"); wmJob *steve; OceanBakeJob *oj; @@ -1571,7 +1572,7 @@ static int ocean_bake_exec(bContext *C, wmOperator *op) if (free) { omd->refresh |= MOD_OCEAN_REFRESH_CLEAR_CACHE; DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob); return OPERATOR_FINISHED; } @@ -1579,12 +1580,12 @@ static int ocean_bake_exec(bContext *C, wmOperator *op) omd->bakestart, omd->bakeend, omd->wave_scale, omd->chop_amount, omd->foam_coverage, omd->foam_fade, omd->resolution); - och->time = MEM_mallocN(och->duration*sizeof(float), "foam bake time"); + och->time = MEM_mallocN(och->duration * sizeof(float), "foam bake time"); cfra = scene->r.cfra; /* precalculate time variable before baking */ - for (f=omd->bakestart; f<=omd->bakeend; f++) { + for (f = omd->bakestart; f <= omd->bakeend; f++) { /* from physics_fluid.c: * * XXX: This can't be used due to an anim sys optimization that ignores recalc object animation, @@ -1613,7 +1614,7 @@ static int ocean_bake_exec(bContext *C, wmOperator *op) init_ocean_modifier_bake(ocean, omd); #if 0 - BKE_bake_ocean(ocean, och); + BKE_bake_ocean(ocean, och); omd->oceancache = och; omd->cached = TRUE; @@ -1621,7 +1622,7 @@ static int ocean_bake_exec(bContext *C, wmOperator *op) scene->r.cfra = cfra; DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob); #endif /* job stuff */ @@ -1629,14 +1630,14 @@ static int ocean_bake_exec(bContext *C, wmOperator *op) scene->r.cfra = cfra; /* setup job */ - steve= WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), scene, "Ocean Simulation", WM_JOB_PROGRESS); - oj= MEM_callocN(sizeof(OceanBakeJob), "ocean bake job"); + steve = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), scene, "Ocean Simulation", WM_JOB_PROGRESS); + oj = MEM_callocN(sizeof(OceanBakeJob), "ocean bake job"); oj->ocean = ocean; oj->och = och; oj->omd = omd; WM_jobs_customdata(steve, oj, oceanbake_free); - WM_jobs_timer(steve, 0.1, NC_OBJECT|ND_MODIFIER, NC_OBJECT|ND_MODIFIER); + WM_jobs_timer(steve, 0.1, NC_OBJECT | ND_MODIFIER, NC_OBJECT | ND_MODIFIER); WM_jobs_callbacks(steve, oceanbake_startjob, NULL, NULL, oceanbake_endjob); WM_jobs_start(CTX_wm_manager(C), steve); @@ -1666,7 +1667,7 @@ void OBJECT_OT_ocean_bake(wmOperatorType *ot) ot->exec = ocean_bake_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; edit_modifier_properties(ot); RNA_def_boolean(ot->srna, "free", FALSE, "Free", "Free the bake, rather than generating it"); diff --git a/source/blender/editors/object/object_ops.c b/source/blender/editors/object/object_ops.c index 138cbad0a68..4cd18d91249 100644 --- a/source/blender/editors/object/object_ops.c +++ b/source/blender/editors/object/object_ops.c @@ -222,7 +222,7 @@ void ED_operatormacros_object(void) wmOperatorType *ot; wmOperatorTypeMacro *otmacro; - ot = WM_operatortype_append_macro("OBJECT_OT_duplicate_move", "Duplicate Objects", OPTYPE_UNDO|OPTYPE_REGISTER); + ot = WM_operatortype_append_macro("OBJECT_OT_duplicate_move", "Duplicate Objects", OPTYPE_UNDO | OPTYPE_REGISTER); if (ot) { ot->description = "Duplicate selected objects and move them"; WM_operatortype_macro_define(ot, "OBJECT_OT_duplicate"); @@ -231,7 +231,7 @@ void ED_operatormacros_object(void) } /* grr, should be able to pass options on... */ - ot = WM_operatortype_append_macro("OBJECT_OT_duplicate_move_linked", "Duplicate Linked", OPTYPE_UNDO|OPTYPE_REGISTER); + ot = WM_operatortype_append_macro("OBJECT_OT_duplicate_move_linked", "Duplicate Linked", OPTYPE_UNDO | OPTYPE_REGISTER); if (ot) { ot->description = "Duplicate selected objects and move them"; otmacro = WM_operatortype_macro_define(ot, "OBJECT_OT_duplicate"); @@ -241,10 +241,10 @@ void ED_operatormacros_object(void) } /* XXX */ - ot = WM_operatortype_append_macro("OBJECT_OT_add_named_cursor", "Add named object at cursor", OPTYPE_UNDO|OPTYPE_REGISTER); + ot = WM_operatortype_append_macro("OBJECT_OT_add_named_cursor", "Add named object at cursor", OPTYPE_UNDO | OPTYPE_REGISTER); if (ot) { ot->description = "Add named object at cursor"; - RNA_def_string(ot->srna, "name", "Cube", MAX_ID_NAME-2, "Name", "Object name to add"); + RNA_def_string(ot->srna, "name", "Cube", MAX_ID_NAME - 2, "Name", "Object name to add"); WM_operatortype_macro_define(ot, "VIEW3D_OT_cursor3d"); WM_operatortype_macro_define(ot, "OBJECT_OT_add_named"); @@ -253,7 +253,7 @@ void ED_operatormacros_object(void) static int object_mode_poll(bContext *C) { - Object *ob= CTX_data_active_object(C); + Object *ob = CTX_data_active_object(C); return (!ob || ob->mode == OB_MODE_OBJECT); } @@ -283,7 +283,7 @@ void ED_keymap_object(wmKeyConfig *keyconf) RNA_enum_set(kmi->ptr, "mode", OB_MODE_WEIGHT_PAINT); RNA_boolean_set(kmi->ptr, "toggle", TRUE); - WM_keymap_add_item(keymap, "OBJECT_OT_origin_set", CKEY, KM_PRESS, KM_ALT|KM_SHIFT|KM_CTRL, 0); + WM_keymap_add_item(keymap, "OBJECT_OT_origin_set", CKEY, KM_PRESS, KM_ALT | KM_SHIFT | KM_CTRL, 0); /* Object Mode ---------------------------------------------------------------- */ /* Note: this keymap gets disabled in non-objectmode, */ @@ -302,7 +302,7 @@ void ED_keymap_object(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "OBJECT_OT_select_linked", LKEY, KM_PRESS, KM_SHIFT, 0); WM_keymap_add_item(keymap, "OBJECT_OT_select_grouped", GKEY, KM_PRESS, KM_SHIFT, 0); - WM_keymap_add_item(keymap, "OBJECT_OT_select_mirror", MKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0); + WM_keymap_add_item(keymap, "OBJECT_OT_select_mirror", MKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0); kmi = WM_keymap_add_item(keymap, "OBJECT_OT_select_hierarchy", LEFTBRACKETKEY, KM_PRESS, 0, 0); RNA_enum_set_identifier(kmi->ptr, "direction", "PARENT"); @@ -321,13 +321,13 @@ void ED_keymap_object(wmKeyConfig *keyconf) RNA_boolean_set(kmi->ptr, "extend", TRUE); WM_keymap_verify_item(keymap, "OBJECT_OT_parent_set", PKEY, KM_PRESS, KM_CTRL, 0); - WM_keymap_verify_item(keymap, "OBJECT_OT_parent_no_inverse_set", PKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0); + WM_keymap_verify_item(keymap, "OBJECT_OT_parent_no_inverse_set", PKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0); WM_keymap_verify_item(keymap, "OBJECT_OT_parent_clear", PKEY, KM_PRESS, KM_ALT, 0); WM_keymap_verify_item(keymap, "OBJECT_OT_track_set", TKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_verify_item(keymap, "OBJECT_OT_track_clear", TKEY, KM_PRESS, KM_ALT, 0); - WM_keymap_verify_item(keymap, "OBJECT_OT_constraint_add_with_targets", CKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0); - WM_keymap_verify_item(keymap, "OBJECT_OT_constraints_clear", CKEY, KM_PRESS, KM_CTRL|KM_ALT, 0); + WM_keymap_verify_item(keymap, "OBJECT_OT_constraint_add_with_targets", CKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0); + WM_keymap_verify_item(keymap, "OBJECT_OT_constraints_clear", CKEY, KM_PRESS, KM_CTRL | KM_ALT, 0); WM_keymap_verify_item(keymap, "OBJECT_OT_location_clear", GKEY, KM_PRESS, KM_ALT, 0); WM_keymap_verify_item(keymap, "OBJECT_OT_rotation_clear", RKEY, KM_PRESS, KM_ALT, 0); @@ -342,13 +342,13 @@ void ED_keymap_object(wmKeyConfig *keyconf) RNA_boolean_set(kmi->ptr, "unselected", TRUE); /* same as above but for rendering */ - WM_keymap_add_item(keymap, "OBJECT_OT_hide_render_clear", HKEY, KM_PRESS, KM_ALT|KM_CTRL, 0); + WM_keymap_add_item(keymap, "OBJECT_OT_hide_render_clear", HKEY, KM_PRESS, KM_ALT | KM_CTRL, 0); WM_keymap_add_item(keymap, "OBJECT_OT_hide_render_set", HKEY, KM_PRESS, KM_CTRL, 0); /* conflicts, removing */ #if 0 - kmi = WM_keymap_add_item(keymap, "OBJECT_OT_hide_render_set", HKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0) - RNA_boolean_set(kmi->ptr, "unselected", TRUE); + kmi = WM_keymap_add_item(keymap, "OBJECT_OT_hide_render_set", HKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0) + RNA_boolean_set(kmi->ptr, "unselected", TRUE); #endif WM_keymap_add_item(keymap, "OBJECT_OT_move_to_layer", MKEY, KM_PRESS, 0, 0); @@ -366,7 +366,7 @@ void ED_keymap_object(wmKeyConfig *keyconf) WM_keymap_add_menu(keymap, "INFO_MT_add", AKEY, KM_PRESS, KM_SHIFT, 0); - WM_keymap_add_item(keymap, "OBJECT_OT_duplicates_make_real", AKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0); + WM_keymap_add_item(keymap, "OBJECT_OT_duplicates_make_real", AKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0); WM_keymap_add_menu(keymap, "VIEW3D_MT_object_apply", AKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_menu(keymap, "VIEW3D_MT_make_single_user", UKEY, KM_PRESS, 0, 0); @@ -377,23 +377,23 @@ void ED_keymap_object(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "OBJECT_OT_join", JKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "OBJECT_OT_convert", CKEY, KM_PRESS, KM_ALT, 0); - WM_keymap_add_item(keymap, "OBJECT_OT_proxy_make", PKEY, KM_PRESS, KM_CTRL|KM_ALT, 0); + WM_keymap_add_item(keymap, "OBJECT_OT_proxy_make", PKEY, KM_PRESS, KM_CTRL | KM_ALT, 0); WM_keymap_add_item(keymap, "OBJECT_OT_make_local", LKEY, KM_PRESS, 0, 0); // XXX this should probably be in screen instead... here for testing purposes in the meantime... - Aligorith WM_keymap_verify_item(keymap, "ANIM_OT_keyframe_insert_menu", IKEY, KM_PRESS, 0, 0); WM_keymap_verify_item(keymap, "ANIM_OT_keyframe_delete_v3d", IKEY, KM_PRESS, KM_ALT, 0); - WM_keymap_verify_item(keymap, "ANIM_OT_keying_set_active_set", IKEY, KM_PRESS, KM_CTRL|KM_SHIFT|KM_ALT, 0); + WM_keymap_verify_item(keymap, "ANIM_OT_keying_set_active_set", IKEY, KM_PRESS, KM_CTRL | KM_SHIFT | KM_ALT, 0); WM_keymap_verify_item(keymap, "GROUP_OT_create", GKEY, KM_PRESS, KM_CTRL, 0); - WM_keymap_verify_item(keymap, "GROUP_OT_objects_remove", GKEY, KM_PRESS, KM_CTRL|KM_ALT, 0); - WM_keymap_verify_item(keymap, "GROUP_OT_objects_add_active", GKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0); - WM_keymap_verify_item(keymap, "GROUP_OT_objects_remove_active", GKEY, KM_PRESS, KM_SHIFT|KM_ALT, 0); + WM_keymap_verify_item(keymap, "GROUP_OT_objects_remove", GKEY, KM_PRESS, KM_CTRL | KM_ALT, 0); + WM_keymap_verify_item(keymap, "GROUP_OT_objects_add_active", GKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0); + WM_keymap_verify_item(keymap, "GROUP_OT_objects_remove_active", GKEY, KM_PRESS, KM_SHIFT | KM_ALT, 0); WM_keymap_add_menu(keymap, "VIEW3D_MT_object_specials", WKEY, KM_PRESS, 0, 0); - for (i=0; i<=5; i++) { - kmi = WM_keymap_add_item(keymap, "OBJECT_OT_subdivision_set", ZEROKEY+i, KM_PRESS, KM_CTRL, 0); + for (i = 0; i <= 5; i++) { + kmi = WM_keymap_add_item(keymap, "OBJECT_OT_subdivision_set", ZEROKEY + i, KM_PRESS, KM_CTRL, 0); RNA_int_set(kmi->ptr, "level", i); } diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c index a666f04034b..077ae2830a9 100644 --- a/source/blender/editors/object/object_relations.c +++ b/source/blender/editors/object/object_relations.c @@ -110,9 +110,9 @@ static int vertex_parent_set_poll(bContext *C) static int vertex_parent_set_exec(bContext *C, wmOperator *op) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); - Object *obedit= CTX_data_edit_object(C); + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); + Object *obedit = CTX_data_edit_object(C); BMVert *eve; BMIter iter; Curve *cu; @@ -120,18 +120,18 @@ static int vertex_parent_set_exec(bContext *C, wmOperator *op) BezTriple *bezt; BPoint *bp; Object *par; - int a, v1=0, v2=0, v3=0, v4=0, nr=1; + int a, v1 = 0, v2 = 0, v3 = 0, v4 = 0, nr = 1; /* we need 1 to 3 selected vertices */ - if (obedit->type==OB_MESH) { - Mesh *me= obedit->data; + if (obedit->type == OB_MESH) { + Mesh *me = obedit->data; BMEditMesh *em; EDBM_mesh_load(obedit); EDBM_mesh_make(scene->toolsettings, scene, obedit); - em= me->edit_btmesh; + em = me->edit_btmesh; /* derivedMesh might be needed for solving parenting, * so re-create it here */ @@ -139,31 +139,31 @@ static int vertex_parent_set_exec(bContext *C, wmOperator *op) BM_ITER_MESH (eve, &iter, em->bm, BM_VERTS_OF_MESH) { if (BM_elem_flag_test(eve, BM_ELEM_SELECT)) { - if (v1==0) v1= nr; - else if (v2==0) v2= nr; - else if (v3==0) v3= nr; - else if (v4==0) v4= nr; + if (v1 == 0) v1 = nr; + else if (v2 == 0) v2 = nr; + else if (v3 == 0) v3 = nr; + else if (v4 == 0) v4 = nr; else break; } nr++; } } else if (ELEM(obedit->type, OB_SURF, OB_CURVE)) { - ListBase *editnurb= object_editcurve_get(obedit); + ListBase *editnurb = object_editcurve_get(obedit); - cu= obedit->data; + cu = obedit->data; - nu= editnurb->first; + nu = editnurb->first; while (nu) { if (nu->type == CU_BEZIER) { - bezt= nu->bezt; - a= nu->pntsu; + bezt = nu->bezt; + a = nu->pntsu; while (a--) { if (BEZSELECTED_HIDDENHANDLES(cu, bezt)) { - if (v1==0) v1= nr; - else if (v2==0) v2= nr; - else if (v3==0) v3= nr; - else if (v4==0) v4= nr; + if (v1 == 0) v1 = nr; + else if (v2 == 0) v2 = nr; + else if (v3 == 0) v3 = nr; + else if (v4 == 0) v4 = nr; else break; } nr++; @@ -171,34 +171,34 @@ static int vertex_parent_set_exec(bContext *C, wmOperator *op) } } else { - bp= nu->bp; - a= nu->pntsu*nu->pntsv; + bp = nu->bp; + a = nu->pntsu * nu->pntsv; while (a--) { if (bp->f1 & SELECT) { - if (v1==0) v1= nr; - else if (v2==0) v2= nr; - else if (v3==0) v3= nr; - else if (v4==0) v4= nr; + if (v1 == 0) v1 = nr; + else if (v2 == 0) v2 = nr; + else if (v3 == 0) v3 = nr; + else if (v4 == 0) v4 = nr; else break; } nr++; bp++; } } - nu= nu->next; + nu = nu->next; } } - else if (obedit->type==OB_LATTICE) { - Lattice *lt= obedit->data; + else if (obedit->type == OB_LATTICE) { + Lattice *lt = obedit->data; - a= lt->editlatt->latt->pntsu*lt->editlatt->latt->pntsv*lt->editlatt->latt->pntsw; - bp= lt->editlatt->latt->def; + a = lt->editlatt->latt->pntsu * lt->editlatt->latt->pntsv * lt->editlatt->latt->pntsw; + bp = lt->editlatt->latt->def; while (a--) { if (bp->f1 & SELECT) { - if (v1==0) v1= nr; - else if (v2==0) v2= nr; - else if (v3==0) v3= nr; - else if (v4==0) v4= nr; + if (v1 == 0) v1 = nr; + else if (v2 == 0) v2 = nr; + else if (v3 == 0) v3 = nr; + else if (v4 == 0) v4 = nr; else break; } nr++; @@ -206,19 +206,19 @@ static int vertex_parent_set_exec(bContext *C, wmOperator *op) } } - if (v4 || !((v1 && v2==0 && v3==0) || (v1 && v2 && v3)) ) { + if (v4 || !((v1 && v2 == 0 && v3 == 0) || (v1 && v2 && v3)) ) { BKE_report(op->reports, RPT_ERROR, "Select either 1 or 3 vertices to parent to"); return OPERATOR_CANCELLED; } - CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) { + CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects) { if (ob != obedit) { - ob->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME; - par= obedit->parent; + ob->recalc |= OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME; + par = obedit->parent; while (par) { - if (par==ob) break; - par= par->parent; + if (par == ob) break; + par = par->parent; } if (par) { BKE_report(op->reports, RPT_ERROR, "Loop in parents"); @@ -226,20 +226,20 @@ static int vertex_parent_set_exec(bContext *C, wmOperator *op) else { Object workob; - ob->parent= BASACT->object; + ob->parent = BASACT->object; if (v3) { - ob->partype= PARVERT3; - ob->par1= v1-1; - ob->par2= v2-1; - ob->par3= v3-1; + ob->partype = PARVERT3; + ob->par1 = v1 - 1; + ob->par2 = v2 - 1; + ob->par3 = v3 - 1; /* inverse parent matrix */ what_does_parent(scene, ob, &workob); invert_m4_m4(ob->parentinv, workob.obmat); } else { - ob->partype= PARVERT1; - ob->par1= v1-1; + ob->partype = PARVERT1; + ob->par1 = v1 - 1; /* inverse parent matrix */ what_does_parent(scene, ob, &workob); @@ -270,16 +270,16 @@ void OBJECT_OT_vertex_parent_set(wmOperatorType *ot) ot->exec = vertex_parent_set_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } /********************** Make Proxy Operator *************************/ /* set the object to proxify */ -static int make_proxy_invoke (bContext *C, wmOperator *op, wmEvent *evt) +static int make_proxy_invoke(bContext *C, wmOperator *op, wmEvent *evt) { - Scene *scene= CTX_data_scene(C); - Object *ob= ED_object_active_context(C); + Scene *scene = CTX_data_scene(C); + Object *ob = ED_object_active_context(C); /* sanity checks */ if (!scene || scene->id.lib || !ob) @@ -294,8 +294,8 @@ static int make_proxy_invoke (bContext *C, wmOperator *op, wmEvent *evt) } else if (ob->id.lib) { - uiPopupMenu *pup= uiPupMenuBegin(C, "OK?", ICON_QUESTION); - uiLayout *layout= uiPupMenuLayout(pup); + uiPopupMenu *pup = uiPupMenuBegin(C, "OK?", ICON_QUESTION); + uiLayout *layout = uiPupMenuLayout(pup); /* create operator menu item with relevant properties filled in */ uiItemFullO_ptr(layout, op->type, op->type->name, ICON_NONE, NULL, WM_OP_EXEC_REGION_WIN, UI_ITEM_O_RETURN_PROPS); @@ -312,41 +312,41 @@ static int make_proxy_invoke (bContext *C, wmOperator *op, wmEvent *evt) return OPERATOR_CANCELLED; } -static int make_proxy_exec (bContext *C, wmOperator *op) +static int make_proxy_exec(bContext *C, wmOperator *op) { - Main *bmain= CTX_data_main(C); - Object *ob, *gob= ED_object_active_context(C); + Main *bmain = CTX_data_main(C); + Object *ob, *gob = ED_object_active_context(C); GroupObject *go; - Scene *scene= CTX_data_scene(C); + Scene *scene = CTX_data_scene(C); if (gob->dup_group != NULL) { - go= BLI_findlink(&gob->dup_group->gobject, RNA_enum_get(op->ptr, "object")); - ob= go->ob; + go = BLI_findlink(&gob->dup_group->gobject, RNA_enum_get(op->ptr, "object")); + ob = go->ob; } else { - ob= gob; + ob = gob; gob = NULL; } if (ob) { Object *newob; - Base *newbase, *oldbase= BASACT; - char name[MAX_ID_NAME+4]; + Base *newbase, *oldbase = BASACT; + char name[MAX_ID_NAME + 4]; /* Add new object for the proxy */ - newob= add_object(scene, OB_EMPTY); + newob = add_object(scene, OB_EMPTY); - BLI_snprintf(name, sizeof(name), "%s_proxy", ((ID *)(gob ? gob : ob))->name+2); + BLI_snprintf(name, sizeof(name), "%s_proxy", ((ID *)(gob ? gob : ob))->name + 2); rename_id(&newob->id, name); /* set layers OK */ - newbase= BASACT; /* add_object sets active... */ - newbase->lay= oldbase->lay; - newob->lay= newbase->lay; + newbase = BASACT; /* add_object sets active... */ + newbase->lay = oldbase->lay; + newob->lay = newbase->lay; /* remove base, leave user count of object, it gets linked in object_make_proxy */ - if (gob==NULL) { + if (gob == NULL) { BLI_remlink(&scene->base, oldbase); MEM_freeN(oldbase); } @@ -355,8 +355,8 @@ static int make_proxy_exec (bContext *C, wmOperator *op) /* depsgraph flushes are needed for the new data */ DAG_scene_sort(bmain, scene); - DAG_id_tag_update(&newob->id, OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, newob); + DAG_id_tag_update(&newob->id, OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, newob); } else { BKE_report(op->reports, RPT_ERROR, "No object to make proxy for"); @@ -369,29 +369,29 @@ static int make_proxy_exec (bContext *C, wmOperator *op) /* Generic itemf's for operators that take library args */ static EnumPropertyItem *proxy_group_object_itemf(bContext *C, PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), int *free) { - EnumPropertyItem item_tmp= {0}, *item= NULL; - int totitem= 0; - int i= 0; - Object *ob= ED_object_active_context(C); + EnumPropertyItem item_tmp = {0}, *item = NULL; + int totitem = 0; + int i = 0; + Object *ob = ED_object_active_context(C); GroupObject *go; if (!ob || !ob->dup_group) return DummyRNA_DEFAULT_items; /* find the object to affect */ - for (go= ob->dup_group->gobject.first; go; go= go->next) { - item_tmp.identifier= item_tmp.name= go->ob->id.name+2; - item_tmp.value= i++; + for (go = ob->dup_group->gobject.first; go; go = go->next) { + item_tmp.identifier = item_tmp.name = go->ob->id.name + 2; + item_tmp.value = i++; RNA_enum_item_add(&item, &totitem, &item_tmp); } RNA_enum_item_end(&item, &totitem); - *free= 1; + *free = 1; return item; } -void OBJECT_OT_proxy_make (wmOperatorType *ot) +void OBJECT_OT_proxy_make(wmOperatorType *ot) { PropertyRNA *prop; @@ -406,10 +406,10 @@ void OBJECT_OT_proxy_make (wmOperatorType *ot) ot->poll = ED_operator_object_active; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ - prop= RNA_def_enum(ot->srna, "object", DummyRNA_DEFAULT_items, 0, "Proxy Object", "Name of lib-linked/grouped object to make a proxy for"); /* XXX, relies on hard coded ID at the moment */ + prop = RNA_def_enum(ot->srna, "object", DummyRNA_DEFAULT_items, 0, "Proxy Object", "Name of lib-linked/grouped object to make a proxy for"); /* XXX, relies on hard coded ID at the moment */ RNA_def_enum_funcs(prop, proxy_group_object_itemf); ot->prop = prop; } @@ -425,32 +425,31 @@ EnumPropertyItem prop_clear_parent_types[] = { void ED_object_parent_clear(bContext *C, int type) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); - CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) - { + CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects) { if (ob->parent == NULL) continue; if (type == 0) { - ob->parent= NULL; + ob->parent = NULL; } else if (type == 1) { - ob->parent= NULL; + ob->parent = NULL; object_apply_mat4(ob, ob->obmat, TRUE, FALSE); } else if (type == 2) unit_m4(ob->parentinv); - ob->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME; + ob->recalc |= OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME; } CTX_DATA_END; DAG_scene_sort(bmain, scene); DAG_ids_flush_update(bmain, 0); - WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, NULL); - WM_event_add_notifier(C, NC_OBJECT|ND_PARENT, NULL); + WM_event_add_notifier(C, NC_OBJECT | ND_TRANSFORM, NULL); + WM_event_add_notifier(C, NC_OBJECT | ND_PARENT, NULL); } /* note, poll should check for editable scene */ @@ -475,7 +474,7 @@ void OBJECT_OT_parent_clear(wmOperatorType *ot) ot->poll = ED_operator_object_active_editable; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; ot->prop = RNA_def_enum(ot->srna, "type", prop_clear_parent_types, 0, "Type", ""); } @@ -485,15 +484,15 @@ void OBJECT_OT_parent_clear(wmOperatorType *ot) void ED_object_parent(Object *ob, Object *par, int type, const char *substr) { if (!par || BKE_object_parent_loop_check(par, ob)) { - ob->parent= NULL; - ob->partype= PAROBJECT; - ob->parsubstr[0]= 0; + ob->parent = NULL; + ob->partype = PAROBJECT; + ob->parsubstr[0] = 0; return; } /* this could use some more checks */ - ob->parent= par; + ob->parent = par; ob->partype &= ~PARTYPE; ob->partype |= type; BLI_strncpy(ob->parsubstr, substr, sizeof(ob->parsubstr)); @@ -518,20 +517,20 @@ EnumPropertyItem prop_make_parent_types[] = { int ED_object_parent_set(ReportList *reports, Main *bmain, Scene *scene, Object *ob, Object *par, int partype) { - bPoseChannel *pchan= NULL; - int pararm= ELEM4(partype, PAR_ARMATURE, PAR_ARMATURE_NAME, PAR_ARMATURE_ENVELOPE, PAR_ARMATURE_AUTO); + bPoseChannel *pchan = NULL; + int pararm = ELEM4(partype, PAR_ARMATURE, PAR_ARMATURE_NAME, PAR_ARMATURE_ENVELOPE, PAR_ARMATURE_AUTO); par->recalc |= OB_RECALC_OB; /* preconditions */ - if (partype==PAR_FOLLOW || partype==PAR_PATH_CONST) { - if (par->type!=OB_CURVE) + if (partype == PAR_FOLLOW || partype == PAR_PATH_CONST) { + if (par->type != OB_CURVE) return 0; else { - Curve *cu= par->data; + Curve *cu = par->data; - if ((cu->flag & CU_PATH)==0) { - cu->flag |= CU_PATH|CU_FOLLOW; + if ((cu->flag & CU_PATH) == 0) { + cu->flag |= CU_PATH | CU_FOLLOW; makeDispListCurveTypes(scene, par, 0); /* force creation of path data */ } else cu->flag |= CU_FOLLOW; @@ -549,19 +548,19 @@ int ED_object_parent_set(ReportList *reports, Main *bmain, Scene *scene, Object /* fall back on regular parenting now (for follow only) */ if (partype == PAR_FOLLOW) - partype= PAR_OBJECT; + partype = PAR_OBJECT; } } - else if (partype==PAR_BONE) { - pchan= get_active_posechannel(par); + else if (partype == PAR_BONE) { + pchan = get_active_posechannel(par); - if (pchan==NULL) { + if (pchan == NULL) { BKE_report(reports, RPT_ERROR, "No active Bone"); return 0; } } - if (ob!=par) { + if (ob != par) { if (BKE_object_parent_loop_check(par, ob)) { BKE_report(reports, RPT_ERROR, "Loop in parents"); return 0; @@ -574,14 +573,14 @@ int ED_object_parent_set(ReportList *reports, Main *bmain, Scene *scene, Object /* set the parent (except for follow-path constraint option) */ if (partype != PAR_PATH_CONST) { - ob->parent= par; + ob->parent = par; } /* handle types */ if (pchan) BLI_strncpy(ob->parsubstr, pchan->name, sizeof(ob->parsubstr)); else - ob->parsubstr[0]= 0; + ob->parsubstr[0] = 0; if (partype == PAR_PATH_CONST) { /* don't do anything here, since this is not technically "parenting" */ @@ -590,7 +589,7 @@ int ED_object_parent_set(ReportList *reports, Main *bmain, Scene *scene, Object /* partype is now set to PAROBJECT so that invisible 'virtual' modifiers don't need to be created * NOTE: the old (2.4x) method was to set ob->partype = PARSKEL, creating the virtual modifiers */ - ob->partype= PAROBJECT; /* note, dna define, not operator property */ + ob->partype = PAROBJECT; /* note, dna define, not operator property */ //ob->partype= PARSKEL; /* note, dna define, not operator property */ /* BUT, to keep the deforms, we need a modifier, and then we need to set the object that it uses */ @@ -599,25 +598,25 @@ int ED_object_parent_set(ReportList *reports, Main *bmain, Scene *scene, Object ModifierData *md; switch (partype) { - case PAR_CURVE: /* curve deform */ - md= ED_object_modifier_add(reports, bmain, scene, ob, NULL, eModifierType_Curve); - ((CurveModifierData *)md)->object= par; - break; - case PAR_LATTICE: /* lattice deform */ - md= ED_object_modifier_add(reports, bmain, scene, ob, NULL, eModifierType_Lattice); - ((LatticeModifierData *)md)->object= par; - break; - default: /* armature deform */ - md= ED_object_modifier_add(reports, bmain, scene, ob, NULL, eModifierType_Armature); - ((ArmatureModifierData *)md)->object= par; - break; + case PAR_CURVE: /* curve deform */ + md = ED_object_modifier_add(reports, bmain, scene, ob, NULL, eModifierType_Curve); + ((CurveModifierData *)md)->object = par; + break; + case PAR_LATTICE: /* lattice deform */ + md = ED_object_modifier_add(reports, bmain, scene, ob, NULL, eModifierType_Lattice); + ((LatticeModifierData *)md)->object = par; + break; + default: /* armature deform */ + md = ED_object_modifier_add(reports, bmain, scene, ob, NULL, eModifierType_Armature); + ((ArmatureModifierData *)md)->object = par; + break; } } } else if (partype == PAR_BONE) - ob->partype= PARBONE; /* note, dna define, not operator property */ + ob->partype = PARBONE; /* note, dna define, not operator property */ else - ob->partype= PAROBJECT; /* note, dna define, not operator property */ + ob->partype = PAROBJECT; /* note, dna define, not operator property */ /* constraint */ if (partype == PAR_PATH_CONST) { @@ -637,7 +636,7 @@ int ED_object_parent_set(ReportList *reports, Main *bmain, Scene *scene, Object ob->loc[1] = vec[1]; ob->loc[2] = vec[2]; } - else if (pararm && ob->type==OB_MESH && par->type == OB_ARMATURE) { + else if (pararm && ob->type == OB_MESH && par->type == OB_ARMATURE) { if (partype == PAR_ARMATURE_NAME) create_vgroups_from_armature(reports, scene, ob, par, ARM_GROUPS_NAME, 0); else if (partype == PAR_ARMATURE_ENVELOPE) @@ -648,7 +647,7 @@ int ED_object_parent_set(ReportList *reports, Main *bmain, Scene *scene, Object WM_cursor_wait(0); } /* get corrected inverse */ - ob->partype= PAROBJECT; + ob->partype = PAROBJECT; what_does_parent(scene, ob, &workob); invert_m4_m4(ob->parentinv, workob.obmat); @@ -659,7 +658,7 @@ int ED_object_parent_set(ReportList *reports, Main *bmain, Scene *scene, Object invert_m4_m4(ob->parentinv, workob.obmat); } - ob->recalc |= OB_RECALC_OB|OB_RECALC_DATA; + ob->recalc |= OB_RECALC_OB | OB_RECALC_DATA; } } @@ -668,14 +667,13 @@ int ED_object_parent_set(ReportList *reports, Main *bmain, Scene *scene, Object static int parent_set_exec(bContext *C, wmOperator *op) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); - Object *par= ED_object_active_context(C); - int partype= RNA_enum_get(op->ptr, "type"); + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); + Object *par = ED_object_active_context(C); + int partype = RNA_enum_get(op->ptr, "type"); int ok = 1; - CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) - { + CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects) { if (!ED_object_parent_set(op->reports, bmain, scene, ob, par, partype)) { ok = 0; break; @@ -688,8 +686,8 @@ static int parent_set_exec(bContext *C, wmOperator *op) DAG_scene_sort(bmain, scene); DAG_ids_flush_update(bmain, 0); - WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, NULL); - WM_event_add_notifier(C, NC_OBJECT|ND_PARENT, NULL); + WM_event_add_notifier(C, NC_OBJECT | ND_TRANSFORM, NULL); + WM_event_add_notifier(C, NC_OBJECT | ND_PARENT, NULL); return OPERATOR_FINISHED; } @@ -697,22 +695,22 @@ static int parent_set_exec(bContext *C, wmOperator *op) static int parent_set_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(event)) { - Object *ob= ED_object_active_context(C); - uiPopupMenu *pup= uiPupMenuBegin(C, "Set Parent To", ICON_NONE); - uiLayout *layout= uiPupMenuLayout(pup); + Object *ob = ED_object_active_context(C); + uiPopupMenu *pup = uiPupMenuBegin(C, "Set Parent To", ICON_NONE); + uiLayout *layout = uiPupMenuLayout(pup); uiLayoutSetOperatorContext(layout, WM_OP_EXEC_DEFAULT); uiItemEnumO(layout, "OBJECT_OT_parent_set", NULL, 0, "type", PAR_OBJECT); /* ob becomes parent, make the associated menus */ - if (ob->type==OB_ARMATURE) { + if (ob->type == OB_ARMATURE) { uiItemEnumO(layout, "OBJECT_OT_parent_set", NULL, 0, "type", PAR_ARMATURE); uiItemEnumO(layout, "OBJECT_OT_parent_set", NULL, 0, "type", PAR_ARMATURE_NAME); uiItemEnumO(layout, "OBJECT_OT_parent_set", NULL, 0, "type", PAR_ARMATURE_ENVELOPE); uiItemEnumO(layout, "OBJECT_OT_parent_set", NULL, 0, "type", PAR_ARMATURE_AUTO); uiItemEnumO(layout, "OBJECT_OT_parent_set", NULL, 0, "type", PAR_BONE); } - else if (ob->type==OB_CURVE) { + else if (ob->type == OB_CURVE) { uiItemEnumO(layout, "OBJECT_OT_parent_set", NULL, 0, "type", PAR_CURVE); uiItemEnumO(layout, "OBJECT_OT_parent_set", NULL, 0, "type", PAR_FOLLOW); uiItemEnumO(layout, "OBJECT_OT_parent_set", NULL, 0, "type", PAR_PATH_CONST); @@ -741,7 +739,7 @@ void OBJECT_OT_parent_set(wmOperatorType *ot) ot->poll = ED_operator_object_active; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; RNA_def_enum(ot->srna, "type", prop_make_parent_types, 0, "Type", ""); } @@ -750,13 +748,13 @@ void OBJECT_OT_parent_set(wmOperatorType *ot) static int parent_noinv_set_exec(bContext *C, wmOperator *op) { - Main *bmain= CTX_data_main(C); - Object *par= ED_object_active_context(C); + Main *bmain = CTX_data_main(C); + Object *par = ED_object_active_context(C); par->recalc |= OB_RECALC_OB; /* context iterator */ - CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) { + CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects) { if (ob != par) { if (BKE_object_parent_loop_check(par, ob)) { BKE_report(op->reports, RPT_ERROR, "Loop in parents"); @@ -764,14 +762,14 @@ static int parent_noinv_set_exec(bContext *C, wmOperator *op) else { /* clear inverse matrix and also the object location */ unit_m4(ob->parentinv); - memset(ob->loc, 0, 3*sizeof(float)); + memset(ob->loc, 0, 3 * sizeof(float)); /* set recalc flags */ - ob->recalc |= OB_RECALC_OB|OB_RECALC_DATA; + ob->recalc |= OB_RECALC_OB | OB_RECALC_DATA; /* set parenting type for object - object only... */ - ob->parent= par; - ob->partype= PAROBJECT; /* note, dna define, not operator property */ + ob->parent = par; + ob->partype = PAROBJECT; /* note, dna define, not operator property */ } } } @@ -779,7 +777,7 @@ static int parent_noinv_set_exec(bContext *C, wmOperator *op) DAG_scene_sort(bmain, CTX_data_scene(C)); DAG_ids_flush_update(bmain, 0); - WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, NULL); + WM_event_add_notifier(C, NC_OBJECT | ND_TRANSFORM, NULL); return OPERATOR_FINISHED; } @@ -797,17 +795,17 @@ void OBJECT_OT_parent_no_inverse_set(wmOperatorType *ot) ot->poll = ED_operator_object_active_editable; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } /************************ Clear Slow Parent Operator *********************/ static int object_slow_parent_clear_exec(bContext *C, wmOperator *UNUSED(op)) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); - CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) { + CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects) { if (ob->parent) { if (ob->partype & PARSLOW) { ob->partype -= PARSLOW; @@ -839,17 +837,17 @@ void OBJECT_OT_slow_parent_clear(wmOperatorType *ot) ot->poll = ED_operator_view3d_active; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } /********************** Make Slow Parent Operator *********************/ static int object_slow_parent_set_exec(bContext *C, wmOperator *UNUSED(op)) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); - CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) { + CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects) { if (ob->parent) ob->partype |= PARSLOW; @@ -878,7 +876,7 @@ void OBJECT_OT_slow_parent_set(wmOperatorType *ot) ot->poll = ED_operator_view3d_active; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } /* ******************** Clear Track Operator ******************* */ @@ -892,24 +890,24 @@ static EnumPropertyItem prop_clear_track_types[] = { /* note, poll should check for editable scene */ static int object_track_clear_exec(bContext *C, wmOperator *op) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); - int type= RNA_enum_get(op->ptr, "type"); + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); + int type = RNA_enum_get(op->ptr, "type"); if (CTX_data_edit_object(C)) { BKE_report(op->reports, RPT_ERROR, "Operation cannot be performed in EditMode"); return OPERATOR_CANCELLED; } - CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) { + CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects) { bConstraint *con, *pcon; /* remove track-object for old track */ - ob->track= NULL; - ob->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME; + ob->track = NULL; + ob->recalc |= OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME; /* also remove all tracking constraints */ - for (con= ob->constraints.last; con; con= pcon) { - pcon= con->prev; + for (con = ob->constraints.last; con; con = pcon) { + pcon = con->prev; if (ELEM3(con->type, CONSTRAINT_TYPE_TRACKTO, CONSTRAINT_TYPE_LOCKTRACK, CONSTRAINT_TYPE_DAMPTRACK)) remove_constraint(&ob->constraints, con); } @@ -921,7 +919,7 @@ static int object_track_clear_exec(bContext *C, wmOperator *op) DAG_ids_flush_update(bmain, 0); DAG_scene_sort(bmain, scene); - WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, NULL); + WM_event_add_notifier(C, NC_OBJECT | ND_TRANSFORM, NULL); return OPERATOR_FINISHED; } @@ -940,7 +938,7 @@ void OBJECT_OT_track_clear(wmOperatorType *ot) ot->poll = ED_operator_objectmode; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; ot->prop = RNA_def_enum(ot->srna, "type", prop_clear_track_types, 0, "Type", ""); } @@ -956,23 +954,23 @@ static EnumPropertyItem prop_make_track_types[] = { static int track_set_exec(bContext *C, wmOperator *op) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); - Object *obact= ED_object_active_context(C); + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); + Object *obact = ED_object_active_context(C); - int type= RNA_enum_get(op->ptr, "type"); + int type = RNA_enum_get(op->ptr, "type"); if (type == 1) { bConstraint *con; bDampTrackConstraint *data; - CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) { - if (ob!=obact) { + CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects) { + if (ob != obact) { con = add_ob_constraint(ob, "AutoTrack", CONSTRAINT_TYPE_DAMPTRACK); data = con->data; data->tar = obact; - ob->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME; + ob->recalc |= OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME; /* Lamp, Camera and Speaker track differently by default */ if (ob->type == OB_LAMP || ob->type == OB_CAMERA || ob->type == OB_SPEAKER) @@ -985,13 +983,13 @@ static int track_set_exec(bContext *C, wmOperator *op) bConstraint *con; bTrackToConstraint *data; - CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) { - if (ob!=obact) { + CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects) { + if (ob != obact) { con = add_ob_constraint(ob, "AutoTrack", CONSTRAINT_TYPE_TRACKTO); data = con->data; data->tar = obact; - ob->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME; + ob->recalc |= OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME; /* Lamp, Camera and Speaker track differently by default */ if (ob->type == OB_LAMP || ob->type == OB_CAMERA || ob->type == OB_SPEAKER) { @@ -1006,13 +1004,13 @@ static int track_set_exec(bContext *C, wmOperator *op) bConstraint *con; bLockTrackConstraint *data; - CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) { - if (ob!=obact) { + CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects) { + if (ob != obact) { con = add_ob_constraint(ob, "AutoTrack", CONSTRAINT_TYPE_LOCKTRACK); data = con->data; data->tar = obact; - ob->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME; + ob->recalc |= OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME; /* Lamp, Camera and Speaker track differently by default */ if (ob->type == OB_LAMP || ob->type == OB_CAMERA || ob->type == OB_SPEAKER) { @@ -1026,7 +1024,7 @@ static int track_set_exec(bContext *C, wmOperator *op) DAG_scene_sort(bmain, scene); DAG_ids_flush_update(bmain, 0); - WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, NULL); + WM_event_add_notifier(C, NC_OBJECT | ND_TRANSFORM, NULL); return OPERATOR_FINISHED; } @@ -1045,7 +1043,7 @@ void OBJECT_OT_track_set(wmOperatorType *ot) ot->poll = ED_operator_objectmode; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ ot->prop = RNA_def_enum(ot->srna, "type", prop_make_track_types, 0, "Type", ""); @@ -1056,24 +1054,24 @@ void OBJECT_OT_track_set(wmOperatorType *ot) static unsigned int move_to_layer_init(bContext *C, wmOperator *op) { int values[20], a; - unsigned int lay= 0; + unsigned int lay = 0; if (!RNA_struct_property_is_set(op->ptr, "layers")) { /* note: layers are set in bases, library objects work for this */ - CTX_DATA_BEGIN(C, Base*, base, selected_bases) { + CTX_DATA_BEGIN (C, Base *, base, selected_bases) { lay |= base->lay; } CTX_DATA_END; - for (a=0; a<20; a++) - values[a]= (lay & (1<ptr, "layers", values); } else { RNA_boolean_get_array(op->ptr, "layers", values); - for (a=0; a<20; a++) + for (a = 0; a < 20; a++) if (values[a]) lay |= (1 << a); } @@ -1083,7 +1081,7 @@ static unsigned int move_to_layer_init(bContext *C, wmOperator *op) static int move_to_layer_invoke(bContext *C, wmOperator *op, wmEvent *event) { - View3D *v3d= CTX_wm_view3d(C); + View3D *v3d = CTX_wm_view3d(C); if (v3d && v3d->localvd) { return WM_operator_confirm_message(C, op, "Move from localview"); } @@ -1095,24 +1093,24 @@ static int move_to_layer_invoke(bContext *C, wmOperator *op, wmEvent *event) static int move_to_layer_exec(bContext *C, wmOperator *op) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); - View3D *v3d= CTX_wm_view3d(C); + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); + View3D *v3d = CTX_wm_view3d(C); unsigned int lay, local; /* int islamp= 0; */ /* UNUSED */ - lay= move_to_layer_init(C, op); + lay = move_to_layer_init(C, op); lay &= 0xFFFFFF; - if (lay==0) return OPERATOR_CANCELLED; + if (lay == 0) return OPERATOR_CANCELLED; if (v3d && v3d->localvd) { /* now we can move out of localview. */ /* note: layers are set in bases, library objects work for this */ - CTX_DATA_BEGIN(C, Base*, base, selected_bases) { - lay= base->lay & ~v3d->lay; - base->lay= lay; - base->object->lay= lay; + CTX_DATA_BEGIN (C, Base *, base, selected_bases) { + lay = base->lay & ~v3d->lay; + base->lay = lay; + base->object->lay = lay; base->object->flag &= ~SELECT; base->flag &= ~SELECT; /* if (base->object->type==OB_LAMP) islamp= 1; */ @@ -1122,11 +1120,11 @@ static int move_to_layer_exec(bContext *C, wmOperator *op) else { /* normal non localview operation */ /* note: layers are set in bases, library objects work for this */ - CTX_DATA_BEGIN(C, Base*, base, selected_bases) { + CTX_DATA_BEGIN (C, Base *, base, selected_bases) { /* upper byte is used for local view */ - local= base->lay & 0xFF000000; - base->lay= lay + local; - base->object->lay= lay; + local = base->lay & 0xFF000000; + base->lay = lay + local; + base->object->lay = lay; /* if (base->object->type==OB_LAMP) islamp= 1; */ } CTX_DATA_END; @@ -1134,8 +1132,8 @@ static int move_to_layer_exec(bContext *C, wmOperator *op) /* warning, active object may be hidden now */ - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, scene); - WM_event_add_notifier(C, NC_SCENE|ND_LAYER_CONTENT, scene); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, scene); + WM_event_add_notifier(C, NC_SCENE | ND_LAYER_CONTENT, scene); DAG_scene_sort(bmain, scene); @@ -1155,7 +1153,7 @@ void OBJECT_OT_move_to_layer(wmOperatorType *ot) ot->poll = ED_operator_objectmode; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ RNA_def_boolean_layer_member(ot->srna, "layers", 20, NULL, "Layer", ""); @@ -1166,18 +1164,18 @@ void OBJECT_OT_move_to_layer(wmOperatorType *ot) #if 0 static void link_to_scene(Main *UNUSED(bmain), unsigned short UNUSED(nr)) { - Scene *sce= (Scene*) BLI_findlink(&bmain->scene, G.curscreen->scenenr-1); + Scene *sce = (Scene *) BLI_findlink(&bmain->scene, G.curscreen->scenenr - 1); Base *base, *nbase; - if (sce==0) return; + if (sce == 0) return; if (sce->id.lib) return; - for (base= FIRSTBASE; base; base= base->next) { + for (base = FIRSTBASE; base; base = base->next) { if (TESTBASE(v3d, base)) { - nbase= MEM_mallocN( sizeof(Base), "newbase"); - *nbase= *base; - BLI_addhead( &(sce->base), nbase); + nbase = MEM_mallocN(sizeof(Base), "newbase"); + *nbase = *base; + BLI_addhead(&(sce->base), nbase); id_us_plus((ID *)base->object); } } @@ -1186,10 +1184,10 @@ static void link_to_scene(Main *UNUSED(bmain), unsigned short UNUSED(nr)) static int make_links_scene_exec(bContext *C, wmOperator *op) { - Main *bmain= CTX_data_main(C); - Scene *scene_to= BLI_findlink(&CTX_data_main(C)->scene, RNA_enum_get(op->ptr, "scene")); + Main *bmain = CTX_data_main(C); + Scene *scene_to = BLI_findlink(&CTX_data_main(C)->scene, RNA_enum_get(op->ptr, "scene")); - if (scene_to==NULL) { + if (scene_to == NULL) { BKE_report(op->reports, RPT_ERROR, "Scene not found"); return OPERATOR_CANCELLED; } @@ -1204,12 +1202,11 @@ static int make_links_scene_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; } - CTX_DATA_BEGIN(C, Base*, base, selected_bases) - { + CTX_DATA_BEGIN (C, Base *, base, selected_bases) { if (!object_in_scene(base->object, scene_to)) { - Base *nbase= MEM_mallocN( sizeof(Base), "newbase"); - *nbase= *base; - BLI_addhead( &(scene_to->base), nbase); + Base *nbase = MEM_mallocN(sizeof(Base), "newbase"); + *nbase = *base; + BLI_addhead(&(scene_to->base), nbase); id_us_plus((ID *)base->object); } } @@ -1232,14 +1229,14 @@ enum { /* Return 1 if make link data is allow, zero otherwise */ static int allow_make_links_data(int ev, Object *ob, Object *obt) { - switch(ev) { + switch (ev) { case MAKE_LINKS_OBDATA: if (ob->type == obt->type && ob->type != OB_EMPTY) return 1; break; case MAKE_LINKS_MATERIALS: if (OB_TYPE_SUPPORT_MATERIAL(ob->type) && - OB_TYPE_SUPPORT_MATERIAL(obt->type)) + OB_TYPE_SUPPORT_MATERIAL(obt->type)) { return 1; } @@ -1257,53 +1254,53 @@ static int allow_make_links_data(int ev, Object *ob, Object *obt) static int make_links_data_exec(bContext *C, wmOperator *op) { - Main *bmain= CTX_data_main(C); + Main *bmain = CTX_data_main(C); int event = RNA_enum_get(op->ptr, "type"); Object *ob; ID *id; int a; - ob= ED_object_active_context(C); + ob = ED_object_active_context(C); - CTX_DATA_BEGIN(C, Object*, obt, selected_editable_objects) { + CTX_DATA_BEGIN (C, Object *, obt, selected_editable_objects) { if (ob != obt) { if (allow_make_links_data(event, ob, obt)) { - switch(event) { - case MAKE_LINKS_OBDATA: /* obdata */ - id= obt->data; - id->us--; + switch (event) { + case MAKE_LINKS_OBDATA: /* obdata */ + id = obt->data; + id->us--; - id= ob->data; - id_us_plus(id); - obt->data= id; + id = ob->data; + id_us_plus(id); + obt->data = id; - /* if amount of material indices changed: */ - test_object_materials(obt->data); + /* if amount of material indices changed: */ + test_object_materials(obt->data); - obt->recalc |= OB_RECALC_DATA; - break; - case MAKE_LINKS_MATERIALS: - /* new approach, using functions from kernel */ - for (a=0; atotcol; a++) { - Material *ma= give_current_material(ob, a+1); - assign_material(obt, ma, a+1); /* also works with ma==NULL */ - } - break; - case MAKE_LINKS_ANIMDATA: - BKE_copy_animdata_id((ID *)obt, (ID *)ob, FALSE); - BKE_copy_animdata_id((ID *)obt->data, (ID *)ob->data, FALSE); - break; - case MAKE_LINKS_DUPLIGROUP: - obt->dup_group= ob->dup_group; - if (obt->dup_group) { - id_lib_extern(&obt->dup_group->id); - obt->transflag |= OB_DUPLIGROUP; - } - break; - case MAKE_LINKS_MODIFIERS: - object_link_modifiers(obt, ob); - obt->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME; - break; + obt->recalc |= OB_RECALC_DATA; + break; + case MAKE_LINKS_MATERIALS: + /* new approach, using functions from kernel */ + for (a = 0; a < ob->totcol; a++) { + Material *ma = give_current_material(ob, a + 1); + assign_material(obt, ma, a + 1); /* also works with ma==NULL */ + } + break; + case MAKE_LINKS_ANIMDATA: + BKE_copy_animdata_id((ID *)obt, (ID *)ob, FALSE); + BKE_copy_animdata_id((ID *)obt->data, (ID *)ob->data, FALSE); + break; + case MAKE_LINKS_DUPLIGROUP: + obt->dup_group = ob->dup_group; + if (obt->dup_group) { + id_lib_extern(&obt->dup_group->id); + obt->transflag |= OB_DUPLIGROUP; + } + break; + case MAKE_LINKS_MODIFIERS: + object_link_modifiers(obt, ob); + obt->recalc |= OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME; + break; } } } @@ -1313,7 +1310,7 @@ static int make_links_data_exec(bContext *C, wmOperator *op) DAG_scene_sort(bmain, CTX_data_scene(C)); DAG_ids_flush_update(bmain, 0); - WM_event_add_notifier(C, NC_SPACE|ND_SPACE_VIEW3D, CTX_wm_view3d(C)); + WM_event_add_notifier(C, NC_SPACE | ND_SPACE_VIEW3D, CTX_wm_view3d(C)); return OPERATOR_FINISHED; } @@ -1333,22 +1330,22 @@ void OBJECT_OT_make_links_scene(wmOperatorType *ot) /* better not run the poll check */ /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ - prop= RNA_def_enum(ot->srna, "scene", DummyRNA_NULL_items, 0, "Scene", ""); + prop = RNA_def_enum(ot->srna, "scene", DummyRNA_NULL_items, 0, "Scene", ""); RNA_def_enum_funcs(prop, RNA_scene_local_itemf); ot->prop = prop; } void OBJECT_OT_make_links_data(wmOperatorType *ot) { - static EnumPropertyItem make_links_items[]= { - {MAKE_LINKS_OBDATA, "OBDATA", 0, "Object Data", ""}, - {MAKE_LINKS_MATERIALS, "MATERIAL", 0, "Materials", ""}, - {MAKE_LINKS_ANIMDATA, "ANIMATION", 0, "Animation Data", ""}, - {MAKE_LINKS_DUPLIGROUP, "DUPLIGROUP", 0, "DupliGroup", ""}, - {MAKE_LINKS_MODIFIERS, "MODIFIERS", 0, "Modifiers", ""}, + static EnumPropertyItem make_links_items[] = { + {MAKE_LINKS_OBDATA, "OBDATA", 0, "Object Data", ""}, + {MAKE_LINKS_MATERIALS, "MATERIAL", 0, "Materials", ""}, + {MAKE_LINKS_ANIMDATA, "ANIMATION", 0, "Animation Data", ""}, + {MAKE_LINKS_DUPLIGROUP, "DUPLIGROUP", 0, "DupliGroup", ""}, + {MAKE_LINKS_MODIFIERS, "MODIFIERS", 0, "Modifiers", ""}, {0, NULL, 0, NULL, NULL}}; /* identifiers */ @@ -1361,7 +1358,7 @@ void OBJECT_OT_make_links_data(wmOperatorType *ot) ot->poll = ED_operator_object_active; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ ot->prop = RNA_def_enum(ot->srna, "type", make_links_items, 0, "Type", ""); @@ -1375,22 +1372,22 @@ static void single_object_users(Scene *scene, View3D *v3d, int flag) Base *base; Object *ob, *obn; - clear_sca_new_poins(); /* sensor/contr/act */ + clear_sca_new_poins(); /* sensor/contr/act */ /* duplicate (must set newid) */ - for (base= FIRSTBASE; base; base= base->next) { - ob= base->object; + for (base = FIRSTBASE; base; base = base->next) { + ob = base->object; /* newid may still have some trash from Outliner tree building, * so clear that first to avoid errors [#26002] */ ob->id.newid = NULL; - if ( (base->flag & flag)==flag ) { - if (ob->id.lib==NULL && ob->id.us>1) { + if ( (base->flag & flag) == flag) { + if (ob->id.lib == NULL && ob->id.us > 1) { /* base gets copy of object */ - obn= copy_object(ob); - base->object= obn; + obn = copy_object(ob); + base->object = obn; ob->id.us--; } } @@ -1400,7 +1397,7 @@ static void single_object_users(Scene *scene, View3D *v3d, int flag) if (v3d) ID_NEW(v3d->camera); /* object pointers */ - for (base= FIRSTBASE; base; base= base->next) { + for (base = FIRSTBASE; base; base = base->next) { object_relink(base->object); } @@ -1413,9 +1410,9 @@ 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; + 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); @@ -1426,18 +1423,18 @@ static void new_id_matar(Material **matar, int totcol) ID *id; int a; - for (a=0; alib == NULL) { if (id->newid) { - matar[a]= (Material *)id->newid; + matar[a] = (Material *)id->newid; id_us_plus(id->newid); id->us--; } - else if (id->us>1) { - matar[a]= copy_material(matar[a]); + else if (id->us > 1) { + matar[a] = copy_material(matar[a]); id->us--; - id->newid= (ID *)matar[a]; + id->newid = (ID *)matar[a]; } } } @@ -1454,73 +1451,73 @@ static void single_obdata_users(Main *bmain, Scene *scene, int flag) ID *id; int a; - for (base= FIRSTBASE; base; base= base->next) { - ob= base->object; - if (ob->id.lib==NULL && (base->flag & flag)==flag ) { - id= ob->data; + for (base = FIRSTBASE; base; base = base->next) { + ob = base->object; + if (ob->id.lib == NULL && (base->flag & flag) == flag) { + id = ob->data; - if (id && id->us>1 && id->lib==NULL) { - ob->recalc= OB_RECALC_DATA; + if (id && id->us > 1 && id->lib == NULL) { + ob->recalc = OB_RECALC_DATA; BKE_copy_animdata_id_action(id); - switch(ob->type) { - case OB_LAMP: - ob->data= la= copy_lamp(ob->data); - for (a=0; amtex[a]) { - ID_NEW(la->mtex[a]->object); + switch (ob->type) { + case OB_LAMP: + ob->data = la = copy_lamp(ob->data); + for (a = 0; a < MAX_MTEX; a++) { + if (la->mtex[a]) { + ID_NEW(la->mtex[a]->object); + } } - } - break; - case OB_CAMERA: - ob->data= copy_camera(ob->data); - break; - case OB_MESH: - ob->data= copy_mesh(ob->data); - //me= ob->data; - //if (me && me->key) - // ipo_idnew(me->key->ipo); /* drivers */ - break; - case OB_MBALL: - ob->data= copy_mball(ob->data); - break; - case OB_CURVE: - case OB_SURF: - case OB_FONT: - ob->data= cu= copy_curve(ob->data); - ID_NEW(cu->bevobj); - ID_NEW(cu->taperobj); - break; - case OB_LATTICE: - ob->data= copy_lattice(ob->data); - break; - case OB_ARMATURE: - ob->recalc |= OB_RECALC_DATA; - ob->data= copy_armature(ob->data); - armature_rebuild_pose(ob, ob->data); - break; - case OB_SPEAKER: - ob->data= copy_speaker(ob->data); - break; - default: - if (G.debug & G_DEBUG) - printf("ERROR %s: can't copy %s\n", __func__, id->name); - return; + break; + case OB_CAMERA: + ob->data = copy_camera(ob->data); + break; + case OB_MESH: + ob->data = copy_mesh(ob->data); + //me= ob->data; + //if (me && me->key) + // ipo_idnew(me->key->ipo); /* drivers */ + break; + case OB_MBALL: + ob->data = BKE_metaball_copy(ob->data); + break; + case OB_CURVE: + case OB_SURF: + case OB_FONT: + ob->data = cu = BKE_curve_copy(ob->data); + ID_NEW(cu->bevobj); + ID_NEW(cu->taperobj); + break; + case OB_LATTICE: + ob->data = copy_lattice(ob->data); + break; + case OB_ARMATURE: + ob->recalc |= OB_RECALC_DATA; + ob->data = copy_armature(ob->data); + armature_rebuild_pose(ob, ob->data); + break; + case OB_SPEAKER: + ob->data = copy_speaker(ob->data); + break; + default: + if (G.debug & G_DEBUG) + printf("ERROR %s: can't copy %s\n", __func__, id->name); + return; } id->us--; - id->newid= ob->data; + id->newid = ob->data; } } } - me= bmain->mesh.first; + me = bmain->mesh.first; while (me) { ID_NEW(me->texcomesh); - me= me->id.next; + me = me->id.next; } } @@ -1529,10 +1526,10 @@ static void single_object_action_users(Scene *scene, int flag) Object *ob; Base *base; - for (base= FIRSTBASE; base; base= base->next) { - ob= base->object; - if (ob->id.lib==NULL && (flag==0 || (base->flag & SELECT)) ) { - ob->recalc= OB_RECALC_DATA; + for (base = FIRSTBASE; base; base = base->next) { + ob = base->object; + if (ob->id.lib == NULL && (flag == 0 || (base->flag & SELECT)) ) { + ob->recalc = OB_RECALC_DATA; BKE_copy_animdata_id_action(&ob->id); } } @@ -1546,30 +1543,30 @@ static void single_mat_users(Scene *scene, int flag, int do_textures) Tex *tex; int a, b; - for (base= FIRSTBASE; base; base= base->next) { - ob= base->object; - if (ob->id.lib==NULL && (flag==0 || (base->flag & SELECT)) ) { + for (base = FIRSTBASE; base; base = base->next) { + ob = base->object; + if (ob->id.lib == NULL && (flag == 0 || (base->flag & SELECT)) ) { - for (a=1; a<=ob->totcol; a++) { - ma= give_current_material(ob, a); + for (a = 1; a <= ob->totcol; a++) { + ma = give_current_material(ob, a); if (ma) { /* do not test for LIB_NEW: this functions guaranteed delivers single_users! */ - if (ma->id.us>1) { - man= copy_material(ma); + if (ma->id.us > 1) { + man = copy_material(ma); BKE_copy_animdata_id_action(&man->id); - man->id.us= 0; + man->id.us = 0; assign_material(ob, man, a); if (do_textures) { - for (b=0; bmtex[b] && (tex= ma->mtex[b]->tex)) { - if (tex->id.us>1) { + for (b = 0; b < MAX_MTEX; b++) { + if (ma->mtex[b] && (tex = ma->mtex[b]->tex)) { + if (tex->id.us > 1) { tex->id.us--; - tex= copy_texture(tex); + tex = copy_texture(tex); BKE_copy_animdata_id_action(&tex->id); - man->mtex[b]->tex= tex; + man->mtex[b]->tex = tex; } } } @@ -1585,20 +1582,20 @@ static void do_single_tex_user(Tex **from) { Tex *tex, *texn; - tex= *from; - if (tex==NULL) return; + tex = *from; + if (tex == NULL) return; if (tex->id.newid) { - *from= (Tex *)tex->id.newid; + *from = (Tex *)tex->id.newid; id_us_plus(tex->id.newid); tex->id.us--; } - else if (tex->id.us>1) { - texn= copy_texture(tex); + else if (tex->id.us > 1) { + texn = copy_texture(tex); BKE_copy_animdata_id_action(&texn->id); - tex->id.newid= (ID *)texn; + tex->id.newid = (ID *)texn; tex->id.us--; - *from= texn; + *from = texn; } } @@ -1610,31 +1607,31 @@ static void single_tex_users_expand(Main *bmain) World *wo; int b; - for (ma= bmain->mat.first; ma; ma=ma->id.next) { + for (ma = bmain->mat.first; ma; ma = ma->id.next) { if (ma->id.flag & LIB_NEW) { - for (b=0; bmtex[b] && ma->mtex[b]->tex) { - do_single_tex_user( &(ma->mtex[b]->tex) ); + do_single_tex_user(&(ma->mtex[b]->tex) ); } } } } - for (la= bmain->lamp.first; la; la=la->id.next) { + for (la = bmain->lamp.first; la; la = la->id.next) { if (la->id.flag & LIB_NEW) { - for (b=0; bmtex[b] && la->mtex[b]->tex) { - do_single_tex_user( &(la->mtex[b]->tex) ); + do_single_tex_user(&(la->mtex[b]->tex) ); } } } } - for (wo= bmain->world.first; wo; wo=wo->id.next) { + for (wo = bmain->world.first; wo; wo = wo->id.next) { if (wo->id.flag & LIB_NEW) { - for (b=0; bmtex[b] && wo->mtex[b]->tex) { - do_single_tex_user( &(wo->mtex[b]->tex) ); + do_single_tex_user(&(wo->mtex[b]->tex) ); } } } @@ -1651,26 +1648,26 @@ static void single_mat_users_expand(Main *bmain) Material *ma; int a; - for (ob=bmain->object.first; ob; ob=ob->id.next) + for (ob = bmain->object.first; ob; ob = ob->id.next) if (ob->id.flag & LIB_NEW) new_id_matar(ob->mat, ob->totcol); - for (me=bmain->mesh.first; me; me=me->id.next) + for (me = bmain->mesh.first; me; me = me->id.next) if (me->id.flag & LIB_NEW) new_id_matar(me->mat, me->totcol); - for (cu=bmain->curve.first; cu; cu=cu->id.next) + for (cu = bmain->curve.first; cu; cu = cu->id.next) if (cu->id.flag & LIB_NEW) new_id_matar(cu->mat, cu->totcol); - for (mb=bmain->mball.first; mb; mb=mb->id.next) + for (mb = bmain->mball.first; mb; mb = mb->id.next) if (mb->id.flag & LIB_NEW) new_id_matar(mb->mat, mb->totcol); /* material imats */ - for (ma=bmain->mat.first; ma; ma=ma->id.next) + for (ma = bmain->mat.first; ma; ma = ma->id.next) if (ma->id.flag & LIB_NEW) - for (a=0; amtex[a]) ID_NEW(ma->mtex[a]->object); } @@ -1700,11 +1697,11 @@ static void make_local_makelocalmaterial(Material *ma) id_make_local(&ma->id, 0); - for (b=0; bmtex[b] && ma->mtex[b]->tex) id_make_local(&ma->mtex[b]->tex->id, 0); - adt= BKE_animdata_from_id(&ma->id); + adt = BKE_animdata_from_id(&ma->id); if (adt) BKE_animdata_make_local(adt); /* nodetree? XXX */ @@ -1712,83 +1709,83 @@ static void make_local_makelocalmaterial(Material *ma) static int make_local_exec(bContext *C, wmOperator *op) { - Main *bmain= CTX_data_main(C); + Main *bmain = CTX_data_main(C); AnimData *adt; ParticleSystem *psys; Material *ma, ***matarar; Lamp *la; ID *id; - int a, b, mode= RNA_enum_get(op->ptr, "type"); + int a, b, mode = RNA_enum_get(op->ptr, "type"); - if (mode==3) { - BKE_library_make_local(bmain, NULL, 0); /* NULL is all libs */ + if (mode == 3) { + BKE_library_make_local(bmain, NULL, 0); /* NULL is all libs */ WM_event_add_notifier(C, NC_WINDOW, NULL); return OPERATOR_FINISHED; } clear_id_newpoins(); - CTX_DATA_BEGIN(C, Object*, ob, selected_objects) { + CTX_DATA_BEGIN (C, Object *, ob, selected_objects) { if (ob->id.lib) id_make_local(&ob->id, 0); } CTX_DATA_END; /* maybe object pointers */ - CTX_DATA_BEGIN(C, Object*, ob, selected_objects) { - if (ob->id.lib==NULL) { + CTX_DATA_BEGIN (C, Object *, ob, selected_objects) { + if (ob->id.lib == NULL) { ID_NEW(ob->parent); } } CTX_DATA_END; - CTX_DATA_BEGIN(C, Object*, ob, selected_objects) { - id= ob->data; + CTX_DATA_BEGIN (C, Object *, ob, selected_objects) { + id = ob->data; - if (id && mode>1) { + if (id && mode > 1) { id_make_local(id, 0); - adt= BKE_animdata_from_id(id); + adt = BKE_animdata_from_id(id); if (adt) BKE_animdata_make_local(adt); /* tag indirect data direct */ - matarar= (Material ***)give_matarar(ob); + matarar = (Material ***)give_matarar(ob); if (matarar) { - for (a=0; atotcol; a++) { - ma= (*matarar)[a]; + for (a = 0; a < ob->totcol; a++) { + ma = (*matarar)[a]; if (ma) id_lib_extern(&ma->id); } } } - for (psys=ob->particlesystem.first; psys; psys=psys->next) + for (psys = ob->particlesystem.first; psys; psys = psys->next) id_make_local(&psys->part->id, 0); - adt= BKE_animdata_from_id(&ob->id); + adt = BKE_animdata_from_id(&ob->id); if (adt) BKE_animdata_make_local(adt); } CTX_DATA_END; - if (mode>1) { - CTX_DATA_BEGIN(C, Object*, ob, selected_objects) { - if (ob->type==OB_LAMP) { - la= ob->data; + if (mode > 1) { + CTX_DATA_BEGIN (C, Object *, ob, selected_objects) { + if (ob->type == OB_LAMP) { + la = ob->data; - for (b=0; bmtex[b] && la->mtex[b]->tex) id_make_local(&la->mtex[b]->tex->id, 0); } else { - for (a=0; atotcol; a++) { - ma= ob->mat[a]; + for (a = 0; a < ob->totcol; a++) { + ma = ob->mat[a]; if (ma) make_local_makelocalmaterial(ma); } - matarar= (Material ***)give_matarar(ob); + matarar = (Material ***)give_matarar(ob); if (matarar) { - for (a=0; atotcol; a++) { - ma= (*matarar)[a]; + for (a = 0; a < ob->totcol; a++) { + ma = (*matarar)[a]; if (ma) make_local_makelocalmaterial(ma); } @@ -1805,7 +1802,7 @@ static int make_local_exec(bContext *C, wmOperator *op) void OBJECT_OT_make_local(wmOperatorType *ot) { - static EnumPropertyItem type_items[]= { + static EnumPropertyItem type_items[] = { {1, "SELECTED_OBJECTS", 0, "Selected Objects", ""}, {2, "SELECTED_OBJECTS_DATA", 0, "Selected Objects and Data", ""}, {3, "ALL", 0, "All", ""}, @@ -1822,7 +1819,7 @@ void OBJECT_OT_make_local(wmOperatorType *ot) ot->poll = ED_operator_objectmode; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ ot->prop = RNA_def_enum(ot->srna, "type", type_items, 0, "Type", ""); @@ -1830,10 +1827,10 @@ void OBJECT_OT_make_local(wmOperatorType *ot) static int make_single_user_exec(bContext *C, wmOperator *op) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); - View3D *v3d= CTX_wm_view3d(C); /* ok if this is NULL */ - int flag= RNA_enum_get(op->ptr, "type"); /* 0==ALL, SELECTED==selected objecs */ + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); + View3D *v3d = CTX_wm_view3d(C); /* ok if this is NULL */ + int flag = RNA_enum_get(op->ptr, "type"); /* 0==ALL, SELECTED==selected objecs */ if (RNA_boolean_get(op->ptr, "object")) single_object_users(scene, v3d, flag); @@ -1859,7 +1856,7 @@ static int make_single_user_exec(bContext *C, wmOperator *op) void OBJECT_OT_make_single_user(wmOperatorType *ot) { - static EnumPropertyItem type_items[]= { + static EnumPropertyItem type_items[] = { {SELECT, "SELECTED_OBJECTS", 0, "Selected Objects", ""}, {0, "ALL", 0, "All", ""}, {0, NULL, 0, NULL, NULL}}; @@ -1875,7 +1872,7 @@ void OBJECT_OT_make_single_user(wmOperatorType *ot) ot->poll = ED_operator_objectmode; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ ot->prop = RNA_def_enum(ot->srna, "type", type_items, SELECT, "Type", ""); @@ -1889,20 +1886,20 @@ void OBJECT_OT_make_single_user(wmOperatorType *ot) static int drop_named_material_invoke(bContext *C, wmOperator *op, wmEvent *event) { - Main *bmain= CTX_data_main(C); - Base *base= ED_view3d_give_base_under_cursor(C, event->mval); + Main *bmain = CTX_data_main(C); + Base *base = ED_view3d_give_base_under_cursor(C, event->mval); Material *ma; - char name[MAX_ID_NAME-2]; + char name[MAX_ID_NAME - 2]; RNA_string_get(op->ptr, "name", name); - ma= (Material *)find_id("MA", name); - if (base==NULL || ma==NULL) + ma = (Material *)find_id("MA", name); + if (base == NULL || ma == NULL) return OPERATOR_CANCELLED; assign_material(base->object, ma, 1); DAG_ids_flush_update(bmain, 0); - WM_event_add_notifier(C, NC_SPACE|ND_SPACE_VIEW3D, CTX_wm_view3d(C)); + WM_event_add_notifier(C, NC_SPACE | ND_SPACE_VIEW3D, CTX_wm_view3d(C)); return OPERATOR_FINISHED; } @@ -1925,5 +1922,5 @@ void OBJECT_OT_drop_named_material(wmOperatorType *ot) ot->flag = OPTYPE_UNDO; /* properties */ - RNA_def_string(ot->srna, "name", "Material", MAX_ID_NAME-2, "Name", "Material name to assign"); + RNA_def_string(ot->srna, "name", "Material", MAX_ID_NAME - 2, "Name", "Material name to assign"); } diff --git a/source/blender/editors/object/object_select.c b/source/blender/editors/object/object_select.c index 388766f5fa3..7a4db175ee4 100644 --- a/source/blender/editors/object/object_select.c +++ b/source/blender/editors/object/object_select.c @@ -79,8 +79,8 @@ /************************ Exported **************************/ /* simple API for object selection, rather than just using the flag - * this takes into account the 'restrict selection in 3d view' flag. - * deselect works always, the restriction just prevents selection */ +* this takes into account the 'restrict selection in 3d view' flag. +* deselect works always, the restriction just prevents selection */ /* Note: send a NC_SCENE|ND_OB_SELECT notifier yourself! (or * or a NC_SCENE|ND_OB_VISIBLE in case of visibility toggling */ @@ -88,34 +88,34 @@ void ED_base_object_select(Base *base, short mode) { if (base) { - if (mode==BA_SELECT) { + if (mode == BA_SELECT) { if (!(base->object->restrictflag & OB_RESTRICT_SELECT)) base->flag |= SELECT; } - else if (mode==BA_DESELECT) { + else if (mode == BA_DESELECT) { base->flag &= ~SELECT; } - base->object->flag= base->flag; + base->object->flag = base->flag; } } /* also to set active NULL */ void ED_base_object_activate(bContext *C, Base *base) { - Scene *scene= CTX_data_scene(C); + Scene *scene = CTX_data_scene(C); /* sets scene->basact */ - BASACT= base; + BASACT = base; if (base) { /* XXX old signals, remember to handle notifiers now! */ // select_actionchannel_by_name(base->object->action, "Object", 1); - WM_event_add_notifier(C, NC_SCENE|ND_OB_ACTIVE, scene); + WM_event_add_notifier(C, NC_SCENE | ND_OB_ACTIVE, scene); } else - WM_event_add_notifier(C, NC_SCENE|ND_OB_ACTIVE, NULL); + WM_event_add_notifier(C, NC_SCENE | ND_OB_ACTIVE, NULL); } /********************** Selection Operators **********************/ @@ -124,7 +124,7 @@ static int objects_selectable_poll(bContext *C) { /* we don't check for linked scenes here, selection is * still allowed then for inspection of scene */ - Object *obact= CTX_data_active_object(C); + Object *obact = CTX_data_active_object(C); if (CTX_data_edit_object(C)) return 0; @@ -141,23 +141,23 @@ static int object_select_by_type_exec(bContext *C, wmOperator *op) short obtype, extend; obtype = RNA_enum_get(op->ptr, "type"); - extend= RNA_boolean_get(op->ptr, "extend"); + extend = RNA_boolean_get(op->ptr, "extend"); if (extend == 0) { - CTX_DATA_BEGIN(C, Base*, base, visible_bases) { + CTX_DATA_BEGIN (C, Base *, base, visible_bases) { ED_base_object_select(base, BA_DESELECT); } CTX_DATA_END; } - CTX_DATA_BEGIN(C, Base*, base, visible_bases) { - if (base->object->type==obtype) { + CTX_DATA_BEGIN (C, Base *, base, visible_bases) { + if (base->object->type == obtype) { ED_base_object_select(base, BA_SELECT); } } CTX_DATA_END; - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, CTX_data_scene(C)); + WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, CTX_data_scene(C)); return OPERATOR_FINISHED; } @@ -175,7 +175,7 @@ void OBJECT_OT_select_by_type(wmOperatorType *ot) ot->poll = objects_selectable_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ RNA_def_boolean(ot->srna, "extend", FALSE, "Extend", "Extend selection instead of deselecting everything first"); @@ -198,11 +198,11 @@ static EnumPropertyItem prop_select_linked_types[] = { static int object_select_linked_exec(bContext *C, wmOperator *op) { - Scene *scene= CTX_data_scene(C); + Scene *scene = CTX_data_scene(C); Object *ob; void *obdata = NULL; Material *mat = NULL, *mat1; - Tex *tex= NULL; + Tex *tex = NULL; int a, b; int nr = RNA_enum_get(op->ptr, "type"); short changed = 0, extend; @@ -215,77 +215,77 @@ static int object_select_linked_exec(bContext *C, wmOperator *op) * PSys: 6 */ - extend= RNA_boolean_get(op->ptr, "extend"); + extend = RNA_boolean_get(op->ptr, "extend"); if (extend == 0) { - CTX_DATA_BEGIN(C, Base*, base, visible_bases) { + CTX_DATA_BEGIN (C, Base *, base, visible_bases) { ED_base_object_select(base, BA_DESELECT); } CTX_DATA_END; } - ob= OBACT; - if (ob==NULL) { + ob = OBACT; + if (ob == NULL) { BKE_report(op->reports, RPT_ERROR, "No Active Object"); return OPERATOR_CANCELLED; } - if (nr==1) { - // XXX old animation system + if (nr == 1) { + // XXX old animation system //ipo= ob->ipo; //if (ipo==0) return OPERATOR_CANCELLED; return OPERATOR_CANCELLED; } - else if (nr==2) { - if (ob->data==NULL) return OPERATOR_CANCELLED; - obdata= ob->data; + else if (nr == 2) { + if (ob->data == NULL) return OPERATOR_CANCELLED; + obdata = ob->data; } - else if (nr==3 || nr==4) { - mat= give_current_material(ob, ob->actcol); - if (mat==NULL) return OPERATOR_CANCELLED; - if (nr==4) { - if (mat->mtex[ (int)mat->texact ]) tex= mat->mtex[ (int)mat->texact ]->tex; - if (tex==NULL) return OPERATOR_CANCELLED; + else if (nr == 3 || nr == 4) { + mat = give_current_material(ob, ob->actcol); + if (mat == NULL) return OPERATOR_CANCELLED; + if (nr == 4) { + if (mat->mtex[(int)mat->texact]) tex = mat->mtex[(int)mat->texact]->tex; + if (tex == NULL) return OPERATOR_CANCELLED; } } - else if (nr==5) { - if (ob->dup_group==NULL) return OPERATOR_CANCELLED; + else if (nr == 5) { + if (ob->dup_group == NULL) return OPERATOR_CANCELLED; } - else if (nr==6) { - if (ob->particlesystem.first==NULL) return OPERATOR_CANCELLED; + else if (nr == 6) { + if (ob->particlesystem.first == NULL) return OPERATOR_CANCELLED; } - else if (nr==7) { + else if (nr == 7) { /* do nothing */ } - else if (nr==8) { - if (ob->data==NULL) return OPERATOR_CANCELLED; + else if (nr == 8) { + if (ob->data == NULL) return OPERATOR_CANCELLED; } else return OPERATOR_CANCELLED; - CTX_DATA_BEGIN(C, Base*, base, visible_bases) { - if (nr==1) { - // XXX old animation system + CTX_DATA_BEGIN (C, Base *, base, visible_bases) { + if (nr == 1) { + // XXX old animation system //if (base->object->ipo==ipo) base->flag |= SELECT; //changed = 1; } - else if (nr==2) { - if (base->object->data==obdata) base->flag |= SELECT; + else if (nr == 2) { + if (base->object->data == obdata) base->flag |= SELECT; changed = 1; } - else if (nr==3 || nr==4) { - ob= base->object; + else if (nr == 3 || nr == 4) { + ob = base->object; - for (a=1; a<=ob->totcol; a++) { - mat1= give_current_material(ob, a); - if (nr==3) { - if (mat1==mat) base->flag |= SELECT; + for (a = 1; a <= ob->totcol; a++) { + mat1 = give_current_material(ob, a); + if (nr == 3) { + if (mat1 == mat) base->flag |= SELECT; changed = 1; } - else if (mat1 && nr==4) { - for (b=0; bmtex[b]) { - if (tex==mat1->mtex[b]->tex) { + if (tex == mat1->mtex[b]->tex) { base->flag |= SELECT; changed = 1; break; @@ -295,19 +295,19 @@ static int object_select_linked_exec(bContext *C, wmOperator *op) } } } - else if (nr==5) { - if (base->object->dup_group==ob->dup_group) { + else if (nr == 5) { + if (base->object->dup_group == ob->dup_group) { base->flag |= SELECT; changed = 1; } } - else if (nr==6) { + else if (nr == 6) { /* loop through other, then actives particles*/ ParticleSystem *psys; ParticleSystem *psys_act; - for (psys=base->object->particlesystem.first; psys; psys=psys->next) { - for (psys_act=ob->particlesystem.first; psys_act; psys_act=psys_act->next) { + for (psys = base->object->particlesystem.first; psys; psys = psys->next) { + for (psys_act = ob->particlesystem.first; psys_act; psys_act = psys_act->next) { if (psys->part == psys_act->part) { base->flag |= SELECT; changed = 1; @@ -320,24 +320,24 @@ static int object_select_linked_exec(bContext *C, wmOperator *op) } } } - else if (nr==7) { + else if (nr == 7) { if (ob->id.lib == base->object->id.lib) { base->flag |= SELECT; - changed= 1; + changed = 1; } } - else if (nr==8) { + else if (nr == 8) { if (base->object->data && ((ID *)ob->data)->lib == ((ID *)base->object->data)->lib) { base->flag |= SELECT; - changed= 1; + changed = 1; } } - base->object->flag= base->flag; + base->object->flag = base->flag; } CTX_DATA_END; if (changed) { - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, CTX_data_scene(C)); + WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, CTX_data_scene(C)); return OPERATOR_FINISHED; } @@ -357,7 +357,7 @@ void OBJECT_OT_select_linked(wmOperatorType *ot) ot->poll = objects_selectable_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ RNA_def_boolean(ot->srna, "extend", FALSE, "Extend", "Extend selection instead of deselecting everything first"); @@ -386,7 +386,7 @@ static short select_grouped_children(bContext *C, Object *ob, int recursive) { short changed = 0; - CTX_DATA_BEGIN(C, Base*, base, selectable_bases) { + CTX_DATA_BEGIN (C, Base *, base, selectable_bases) { if (ob == base->object->parent) { if (!(base->flag & SELECT)) { ED_base_object_select(base, BA_SELECT); @@ -401,17 +401,17 @@ static short select_grouped_children(bContext *C, Object *ob, int recursive) return changed; } -static short select_grouped_parent(bContext *C) /* Makes parent active and de-selected OBACT */ +static short select_grouped_parent(bContext *C) /* Makes parent active and de-selected OBACT */ { - Scene *scene= CTX_data_scene(C); - View3D *v3d= CTX_wm_view3d(C); + Scene *scene = CTX_data_scene(C); + View3D *v3d = CTX_wm_view3d(C); short changed = 0; - Base *baspar, *basact= CTX_data_active_base(C); + Base *baspar, *basact = CTX_data_active_base(C); - if (!basact || !(basact->object->parent)) return 0; /* we know OBACT is valid */ + if (!basact || !(basact->object->parent)) return 0; /* we know OBACT is valid */ - baspar= object_in_scene(basact->object->parent, scene); + baspar = object_in_scene(basact->object->parent, scene); /* can be NULL if parent in other scene */ if (baspar && BASE_SELECTABLE(v3d, baspar)) { @@ -424,17 +424,17 @@ static short select_grouped_parent(bContext *C) /* Makes parent active and de-se } -#define GROUP_MENU_MAX 24 -static short select_grouped_group(bContext *C, Object *ob) /* Select objects in the same group as the active */ +#define GROUP_MENU_MAX 24 +static short select_grouped_group(bContext *C, Object *ob) /* Select objects in the same group as the active */ { short changed = 0; Group *group, *ob_groups[GROUP_MENU_MAX]; - int group_count=0, i; + int group_count = 0, i; uiPopupMenu *pup; uiLayout *layout; - for (group=CTX_data_main(C)->group.first; group && group_count < GROUP_MENU_MAX; group=group->id.next) { - if (object_in_group (ob, group)) { + for (group = CTX_data_main(C)->group.first; group && group_count < GROUP_MENU_MAX; group = group->id.next) { + if (object_in_group(ob, group)) { ob_groups[group_count] = group; group_count++; } @@ -444,7 +444,7 @@ static short select_grouped_group(bContext *C, Object *ob) /* Select objects in return 0; else if (group_count == 1) { group = ob_groups[0]; - CTX_DATA_BEGIN(C, Base*, base, visible_bases) { + CTX_DATA_BEGIN (C, Base *, base, visible_bases) { if (!(base->flag & SELECT) && object_in_group(base->object, group)) { ED_base_object_select(base, BA_SELECT); changed = 1; @@ -455,12 +455,12 @@ static short select_grouped_group(bContext *C, Object *ob) /* Select objects in } /* build the menu. */ - pup= uiPupMenuBegin(C, "Select Group", ICON_NONE); - layout= uiPupMenuLayout(pup); + pup = uiPupMenuBegin(C, "Select Group", ICON_NONE); + layout = uiPupMenuLayout(pup); - for (i=0; iid.name+2, 0, "OBJECT_OT_select_same_group", "group", group->id.name); + uiItemStringO(layout, group->id.name + 2, 0, "OBJECT_OT_select_same_group", "group", group->id.name); } uiPupMenuEnd(C, pup); @@ -469,19 +469,19 @@ static short select_grouped_group(bContext *C, Object *ob) /* Select objects in static short select_grouped_object_hooks(bContext *C, Object *ob) { - Scene *scene= CTX_data_scene(C); - View3D *v3d= CTX_wm_view3d(C); + Scene *scene = CTX_data_scene(C); + View3D *v3d = CTX_wm_view3d(C); short changed = 0; Base *base; ModifierData *md; HookModifierData *hmd; - for (md = ob->modifiers.first; md; md=md->next) { - if (md->type==eModifierType_Hook) { - hmd= (HookModifierData*) md; + for (md = ob->modifiers.first; md; md = md->next) { + if (md->type == eModifierType_Hook) { + hmd = (HookModifierData *) md; if (hmd->object && !(hmd->object->flag & SELECT)) { - base= object_in_scene(hmd->object, scene); + base = object_in_scene(hmd->object, scene); if (base && (BASE_SELECTABLE(v3d, base))) { ED_base_object_select(base, BA_SELECT); changed = 1; @@ -498,8 +498,8 @@ static short select_grouped_siblings(bContext *C, Object *ob) { short changed = 0; - CTX_DATA_BEGIN(C, Base*, base, selectable_bases) { - if ((base->object->parent==ob->parent) && !(base->flag & SELECT)) { + CTX_DATA_BEGIN (C, Base *, base, selectable_bases) { + if ((base->object->parent == ob->parent) && !(base->flag & SELECT)) { ED_base_object_select(base, BA_SELECT); changed = 1; } @@ -512,7 +512,7 @@ static short select_grouped_type(bContext *C, Object *ob) { short changed = 0; - CTX_DATA_BEGIN(C, Base*, base, selectable_bases) { + CTX_DATA_BEGIN (C, Base *, base, selectable_bases) { if ((base->object->type == ob->type) && !(base->flag & SELECT)) { ED_base_object_select(base, BA_SELECT); changed = 1; @@ -526,7 +526,7 @@ static short select_grouped_layer(bContext *C, Object *ob) { char changed = 0; - CTX_DATA_BEGIN(C, Base*, base, selectable_bases) { + CTX_DATA_BEGIN (C, Base *, base, selectable_bases) { if ((base->lay & ob->lay) && !(base->flag & SELECT)) { ED_base_object_select(base, BA_SELECT); changed = 1; @@ -540,7 +540,7 @@ static short select_grouped_index_object(bContext *C, Object *ob) { char changed = 0; - CTX_DATA_BEGIN(C, Base*, base, selectable_bases) { + CTX_DATA_BEGIN (C, Base *, base, selectable_bases) { if ((base->object->index == ob->index) && !(base->flag & SELECT)) { ED_base_object_select(base, BA_SELECT); changed = 1; @@ -554,7 +554,7 @@ static short select_grouped_color(bContext *C, Object *ob) { char changed = 0; - CTX_DATA_BEGIN(C, Base*, base, selectable_bases) { + CTX_DATA_BEGIN (C, Base *, base, selectable_bases) { if (!(base->flag & SELECT) && (compare_v3v3(base->object->col, ob->col, 0.005f))) { ED_base_object_select(base, BA_SELECT); changed = 1; @@ -569,8 +569,8 @@ static short objects_share_gameprop(Object *a, Object *b) bProperty *prop; /*make a copy of all its properties*/ - for ( prop= a->prop.first; prop; prop = prop->next ) { - if ( get_ob_property(b, prop->name) ) + for (prop = a->prop.first; prop; prop = prop->next) { + if (get_ob_property(b, prop->name) ) return 1; } return 0; @@ -580,7 +580,7 @@ static short select_grouped_gameprops(bContext *C, Object *ob) { char changed = 0; - CTX_DATA_BEGIN(C, Base*, base, selectable_bases) { + CTX_DATA_BEGIN (C, Base *, base, selectable_bases) { if (!(base->flag & SELECT) && (objects_share_gameprop(base->object, ob))) { ED_base_object_select(base, BA_SELECT); changed = 1; @@ -602,8 +602,7 @@ static short select_grouped_keyingset(bContext *C, Object *UNUSED(ob)) /* select each object that Keying Set refers to */ // TODO: perhaps to be more in line with the rest of these, we should only take objects // if the passed in object is included in this too - CTX_DATA_BEGIN(C, Base*, base, selectable_bases) - { + CTX_DATA_BEGIN (C, Base *, base, selectable_bases) { /* only check for this object if it isn't selected already, to limit time wasted */ if ((base->flag & SELECT) == 0) { KS_Path *ksp; @@ -628,42 +627,42 @@ static short select_grouped_keyingset(bContext *C, Object *UNUSED(ob)) static int object_select_grouped_exec(bContext *C, wmOperator *op) { - Scene *scene= CTX_data_scene(C); + Scene *scene = CTX_data_scene(C); Object *ob; int nr = RNA_enum_get(op->ptr, "type"); short changed = 0, extend; - extend= RNA_boolean_get(op->ptr, "extend"); + extend = RNA_boolean_get(op->ptr, "extend"); if (extend == 0) { - CTX_DATA_BEGIN(C, Base*, base, visible_bases) { + CTX_DATA_BEGIN (C, Base *, base, visible_bases) { ED_base_object_select(base, BA_DESELECT); changed = 1; } CTX_DATA_END; } - ob= OBACT; - if (ob==NULL) { + ob = OBACT; + if (ob == NULL) { BKE_report(op->reports, RPT_ERROR, "No Active Object"); return OPERATOR_CANCELLED; } - if (nr==1) changed |= select_grouped_children(C, ob, 1); - else if (nr==2) changed |= select_grouped_children(C, ob, 0); - else if (nr==3) changed |= select_grouped_parent(C); - else if (nr==4) changed |= select_grouped_siblings(C, ob); - else if (nr==5) changed |= select_grouped_type(C, ob); - else if (nr==6) changed |= select_grouped_layer(C, ob); - else if (nr==7) changed |= select_grouped_group(C, ob); - else if (nr==8) changed |= select_grouped_object_hooks(C, ob); - else if (nr==9) changed |= select_grouped_index_object(C, ob); - else if (nr==10) changed |= select_grouped_color(C, ob); - else if (nr==11) changed |= select_grouped_gameprops(C, ob); - else if (nr==12) changed |= select_grouped_keyingset(C, ob); + if (nr == 1) changed |= select_grouped_children(C, ob, 1); + else if (nr == 2) changed |= select_grouped_children(C, ob, 0); + else if (nr == 3) changed |= select_grouped_parent(C); + else if (nr == 4) changed |= select_grouped_siblings(C, ob); + else if (nr == 5) changed |= select_grouped_type(C, ob); + else if (nr == 6) changed |= select_grouped_layer(C, ob); + else if (nr == 7) changed |= select_grouped_group(C, ob); + else if (nr == 8) changed |= select_grouped_object_hooks(C, ob); + else if (nr == 9) changed |= select_grouped_index_object(C, ob); + else if (nr == 10) changed |= select_grouped_color(C, ob); + else if (nr == 11) changed |= select_grouped_gameprops(C, ob); + else if (nr == 12) changed |= select_grouped_keyingset(C, ob); if (changed) { - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, CTX_data_scene(C)); + WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, CTX_data_scene(C)); return OPERATOR_FINISHED; } @@ -683,7 +682,7 @@ void OBJECT_OT_select_grouped(wmOperatorType *ot) ot->poll = objects_selectable_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ RNA_def_boolean(ot->srna, "extend", FALSE, "Extend", "Extend selection instead of deselecting everything first"); @@ -697,24 +696,24 @@ static int object_select_by_layer_exec(bContext *C, wmOperator *op) unsigned int layernum; short extend; - extend= RNA_boolean_get(op->ptr, "extend"); + extend = RNA_boolean_get(op->ptr, "extend"); layernum = RNA_int_get(op->ptr, "layers"); if (extend == 0) { - CTX_DATA_BEGIN(C, Base*, base, visible_bases) { + CTX_DATA_BEGIN (C, Base *, base, visible_bases) { ED_base_object_select(base, BA_DESELECT); } CTX_DATA_END; } - CTX_DATA_BEGIN(C, Base*, base, visible_bases) { - if (base->lay == (1<< (layernum -1))) + CTX_DATA_BEGIN (C, Base *, base, visible_bases) { + if (base->lay == (1 << (layernum - 1))) ED_base_object_select(base, BA_SELECT); } CTX_DATA_END; /* undo? */ - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, CTX_data_scene(C)); + WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, CTX_data_scene(C)); return OPERATOR_FINISHED; } @@ -732,7 +731,7 @@ void OBJECT_OT_select_by_layer(wmOperatorType *ot) ot->poll = objects_selectable_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ RNA_def_boolean(ot->srna, "extend", FALSE, "Extend", "Extend selection instead of deselecting everything first"); @@ -750,7 +749,7 @@ static int object_select_all_exec(bContext *C, wmOperator *op) if (action == SEL_TOGGLE) { action = SEL_SELECT; - CTX_DATA_BEGIN(C, Base*, base, visible_bases) { + CTX_DATA_BEGIN (C, Base *, base, visible_bases) { if (base->flag & SELECT) { action = SEL_DESELECT; break; @@ -759,27 +758,27 @@ static int object_select_all_exec(bContext *C, wmOperator *op) CTX_DATA_END; } - CTX_DATA_BEGIN(C, Base*, base, visible_bases) { + CTX_DATA_BEGIN (C, Base *, base, visible_bases) { switch (action) { - case SEL_SELECT: - ED_base_object_select(base, BA_SELECT); - break; - case SEL_DESELECT: - ED_base_object_select(base, BA_DESELECT); - break; - case SEL_INVERT: - if (base->flag & SELECT) { - ED_base_object_select(base, BA_DESELECT); - } - else { + case SEL_SELECT: ED_base_object_select(base, BA_SELECT); - } - break; + break; + case SEL_DESELECT: + ED_base_object_select(base, BA_DESELECT); + break; + case SEL_INVERT: + if (base->flag & SELECT) { + ED_base_object_select(base, BA_DESELECT); + } + else { + ED_base_object_select(base, BA_SELECT); + } + break; } } CTX_DATA_END; - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, CTX_data_scene(C)); + WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, CTX_data_scene(C)); return OPERATOR_FINISHED; } @@ -797,7 +796,7 @@ void OBJECT_OT_select_all(wmOperatorType *ot) ot->poll = objects_selectable_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; WM_operator_properties_select_all(ot); } @@ -814,7 +813,7 @@ static int object_select_same_group_exec(bContext *C, wmOperator *op) RNA_string_get(op->ptr, "group", group_name); - for (group=CTX_data_main(C)->group.first; group; group=group->id.next) { + for (group = CTX_data_main(C)->group.first; group; group = group->id.next) { if (!strcmp(group->id.name, group_name)) break; } @@ -822,13 +821,13 @@ static int object_select_same_group_exec(bContext *C, wmOperator *op) if (!group) return OPERATOR_PASS_THROUGH; - CTX_DATA_BEGIN(C, Base*, base, visible_bases) { + CTX_DATA_BEGIN (C, Base *, base, visible_bases) { if (!(base->flag & SELECT) && object_in_group(base->object, group)) ED_base_object_select(base, BA_SELECT); } CTX_DATA_END; - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, CTX_data_scene(C)); + WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, CTX_data_scene(C)); return OPERATOR_FINISHED; } @@ -846,7 +845,7 @@ void OBJECT_OT_select_same_group(wmOperatorType *ot) ot->poll = objects_selectable_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; RNA_def_string(ot->srna, "group", "", MAX_ID_NAME, "Group", "Name of the group to select"); } @@ -854,20 +853,20 @@ void OBJECT_OT_select_same_group(wmOperatorType *ot) /**************************** Select Mirror ****************************/ static int object_select_mirror_exec(bContext *C, wmOperator *op) { - Scene *scene= CTX_data_scene(C); + Scene *scene = CTX_data_scene(C); short extend; - extend= RNA_boolean_get(op->ptr, "extend"); + extend = RNA_boolean_get(op->ptr, "extend"); - CTX_DATA_BEGIN(C, Base*, primbase, selected_bases) { + CTX_DATA_BEGIN (C, Base *, primbase, selected_bases) { char tmpname[MAXBONENAME]; - flip_side_name(tmpname, primbase->object->id.name+2, TRUE); + flip_side_name(tmpname, primbase->object->id.name + 2, TRUE); - if (strcmp(tmpname, primbase->object->id.name+2)!=0) { /* names differ */ - Object *ob= (Object *)find_id("OB", tmpname); + if (strcmp(tmpname, primbase->object->id.name + 2) != 0) { /* names differ */ + Object *ob = (Object *)find_id("OB", tmpname); if (ob) { - Base *secbase= object_in_scene(ob, scene); + Base *secbase = object_in_scene(ob, scene); if (secbase) { ED_base_object_select(secbase, BA_SELECT); @@ -881,7 +880,7 @@ static int object_select_mirror_exec(bContext *C, wmOperator *op) CTX_DATA_END; /* undo? */ - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, CTX_data_scene(C)); + WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, CTX_data_scene(C)); return OPERATOR_FINISHED; } @@ -899,7 +898,7 @@ void OBJECT_OT_select_mirror(wmOperatorType *ot) ot->poll = objects_selectable_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; RNA_def_boolean(ot->srna, "extend", 0, "Extend", "Extend selection instead of deselecting everything first"); } @@ -912,24 +911,24 @@ static int object_select_random_exec(bContext *C, wmOperator *op) float percent; short extend; - extend= RNA_boolean_get(op->ptr, "extend"); + extend = RNA_boolean_get(op->ptr, "extend"); if (extend == 0) { - CTX_DATA_BEGIN(C, Base*, base, visible_bases) { + CTX_DATA_BEGIN (C, Base *, base, visible_bases) { ED_base_object_select(base, BA_DESELECT); } CTX_DATA_END; } - percent = RNA_float_get(op->ptr, "percent")/100.0f; + percent = RNA_float_get(op->ptr, "percent") / 100.0f; - CTX_DATA_BEGIN(C, Base*, base, visible_bases) { + CTX_DATA_BEGIN (C, Base *, base, visible_bases) { if (BLI_frand() < percent) { ED_base_object_select(base, BA_SELECT); } } CTX_DATA_END; - WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, CTX_data_scene(C)); + WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, CTX_data_scene(C)); return OPERATOR_FINISHED; } @@ -947,7 +946,7 @@ void OBJECT_OT_select_random(wmOperatorType *ot) ot->poll = objects_selectable_poll; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ RNA_def_float_percentage(ot->srna, "percent", 50.f, 0.0f, 100.0f, "Percent", "Percentage of objects to select randomly", 0.f, 100.0f); diff --git a/source/blender/editors/object/object_shapekey.c b/source/blender/editors/object/object_shapekey.c index 79b1ca13c9e..5d31bfff99a 100644 --- a/source/blender/editors/object/object_shapekey.c +++ b/source/blender/editors/object/object_shapekey.c @@ -78,11 +78,11 @@ static void ED_object_shape_key_add(bContext *C, Scene *scene, Object *ob, int f { KeyBlock *kb; if ((kb = object_insert_shape_key(scene, ob, NULL, from_mix))) { - Key *key= ob_get_key(ob); + Key *key = ob_get_key(ob); /* for absolute shape keys, new keys may not be added last */ ob->shapenr = BLI_findindex(&key->block, kb) + 1; - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob); } } @@ -90,36 +90,36 @@ static void ED_object_shape_key_add(bContext *C, Scene *scene, Object *ob, int f static int ED_object_shape_key_remove(bContext *C, Object *ob) { - Main *bmain= CTX_data_main(C); + Main *bmain = CTX_data_main(C); KeyBlock *kb, *rkb; Key *key; //IpoCurve *icu; - key= ob_get_key(ob); - if (key==NULL) + key = ob_get_key(ob); + if (key == NULL) return 0; - kb= BLI_findlink(&key->block, ob->shapenr-1); + kb = BLI_findlink(&key->block, ob->shapenr - 1); if (kb) { - for (rkb= key->block.first; rkb; rkb= rkb->next) - if (rkb->relative == ob->shapenr-1) - rkb->relative= 0; + for (rkb = key->block.first; rkb; rkb = rkb->next) + if (rkb->relative == ob->shapenr - 1) + rkb->relative = 0; BLI_remlink(&key->block, kb); key->totkey--; - if (key->refkey== kb) { - key->refkey= key->block.first; + if (key->refkey == kb) { + key->refkey = key->block.first; if (key->refkey) { /* apply new basis key on original data */ - switch(ob->type) { + switch (ob->type) { case OB_MESH: key_to_mesh(key->refkey, ob->data); break; case OB_CURVE: case OB_SURF: - key_to_curve(key->refkey, ob->data, BKE_curve_nurbs(ob->data)); + key_to_curve(key->refkey, ob->data, BKE_curve_nurbs_get(ob->data)); break; case OB_LATTICE: key_to_latt(key->refkey, ob->data); @@ -136,16 +136,16 @@ static int ED_object_shape_key_remove(bContext *C, Object *ob) } } - if (key->totkey==0) { - if (GS(key->from->name)==ID_ME) ((Mesh *)key->from)->key= NULL; - else if (GS(key->from->name)==ID_CU) ((Curve *)key->from)->key= NULL; - else if (GS(key->from->name)==ID_LT) ((Lattice *)key->from)->key= NULL; + if (key->totkey == 0) { + if (GS(key->from->name) == ID_ME) ((Mesh *)key->from)->key = NULL; + else if (GS(key->from->name) == ID_CU) ((Curve *)key->from)->key = NULL; + else if (GS(key->from->name) == ID_LT) ((Lattice *)key->from)->key = NULL; free_libblock_us(&(bmain->key), key); } DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob); return 1; } @@ -155,53 +155,53 @@ static int object_shape_key_mirror(bContext *C, Object *ob) KeyBlock *kb; Key *key; - key= ob_get_key(ob); - if (key==NULL) + key = ob_get_key(ob); + if (key == NULL) return 0; - kb= BLI_findlink(&key->block, ob->shapenr-1); + kb = BLI_findlink(&key->block, ob->shapenr - 1); if (kb) { int i1, i2; float *fp1, *fp2; float tvec[3]; - char *tag_elem= MEM_callocN(sizeof(char) * kb->totelem, "shape_key_mirror"); + char *tag_elem = MEM_callocN(sizeof(char) * kb->totelem, "shape_key_mirror"); - if (ob->type==OB_MESH) { - Mesh *me= ob->data; + if (ob->type == OB_MESH) { + Mesh *me = ob->data; MVert *mv; mesh_octree_table(ob, NULL, NULL, 's'); - for (i1=0, mv=me->mvert; i1totvert; i1++, mv++) { - i2= mesh_get_x_mirror_vert(ob, i1); - if (i2==i1) { - fp1= ((float *)kb->data) + i1*3; + for (i1 = 0, mv = me->mvert; i1 < me->totvert; i1++, mv++) { + i2 = mesh_get_x_mirror_vert(ob, i1); + if (i2 == i1) { + fp1 = ((float *)kb->data) + i1 * 3; fp1[0] = -fp1[0]; - tag_elem[i1]= 1; + tag_elem[i1] = 1; } else if (i2 != -1) { - if (tag_elem[i1]==0 && tag_elem[i2]==0) { - fp1= ((float *)kb->data) + i1*3; - fp2= ((float *)kb->data) + i2*3; + if (tag_elem[i1] == 0 && tag_elem[i2] == 0) { + fp1 = ((float *)kb->data) + i1 * 3; + fp2 = ((float *)kb->data) + i2 * 3; - copy_v3_v3(tvec, fp1); - copy_v3_v3(fp1, fp2); - copy_v3_v3(fp2, tvec); + copy_v3_v3(tvec, fp1); + copy_v3_v3(fp1, fp2); + copy_v3_v3(fp2, tvec); /* flip x axis */ fp1[0] = -fp1[0]; fp2[0] = -fp2[0]; } - tag_elem[i1]= tag_elem[i2]= 1; + tag_elem[i1] = tag_elem[i2] = 1; } } mesh_octree_table(ob, NULL, NULL, 'e'); } else if (ob->type == OB_LATTICE) { - Lattice *lt= ob->data; + Lattice *lt = ob->data; int i1, i2; float *fp1, *fp2; int u, v, w; @@ -213,28 +213,28 @@ static int object_shape_key_mirror(bContext *C, Object *ob) /* if (lt->editlatt) lt= lt->editlatt->latt; */ - for (w=0; wpntsw; w++) { - for (v=0; vpntsv; v++) { - for (u=0; upntsu - 1) - u; + for (w = 0; w < lt->pntsw; w++) { + for (v = 0; v < lt->pntsv; v++) { + for (u = 0; u < pntsu_half; u++) { + int u_inv = (lt->pntsu - 1) - u; float tvec[3]; if (u == u_inv) { - i1= LT_INDEX(lt, u, v, w); - fp1= ((float *)kb->data) + i1*3; - fp1[0]= -fp1[0]; + i1 = LT_INDEX(lt, u, v, w); + fp1 = ((float *)kb->data) + i1 * 3; + fp1[0] = -fp1[0]; } else { - i1= LT_INDEX(lt, u, v, w); - i2= LT_INDEX(lt, u_inv, v, w); + i1 = LT_INDEX(lt, u, v, w); + i2 = LT_INDEX(lt, u_inv, v, w); - fp1= ((float *)kb->data) + i1*3; - fp2= ((float *)kb->data) + i2*3; + fp1 = ((float *)kb->data) + i1 * 3; + fp2 = ((float *)kb->data) + i2 * 3; copy_v3_v3(tvec, fp1); copy_v3_v3(fp1, fp2); copy_v3_v3(fp2, tvec); - fp1[0]= -fp1[0]; - fp2[0]= -fp2[0]; + fp1[0] = -fp1[0]; + fp2[0] = -fp2[0]; } } } @@ -245,7 +245,7 @@ static int object_shape_key_mirror(bContext *C, Object *ob) } DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob); return 1; } @@ -254,22 +254,22 @@ static int object_shape_key_mirror(bContext *C, Object *ob) static int shape_key_mode_poll(bContext *C) { - Object *ob= ED_object_context(C); - ID *data= (ob)? ob->data: NULL; + Object *ob = ED_object_context(C); + ID *data = (ob) ? ob->data : NULL; return (ob && !ob->id.lib && data && !data->lib && ob->mode != OB_MODE_EDIT); } static int shape_key_poll(bContext *C) { - Object *ob= ED_object_context(C); - ID *data= (ob)? ob->data: NULL; + Object *ob = ED_object_context(C); + ID *data = (ob) ? ob->data : NULL; return (ob && !ob->id.lib && data && !data->lib); } static int shape_key_add_exec(bContext *C, wmOperator *op) { - Scene *scene= CTX_data_scene(C); - Object *ob= ED_object_context(C); + Scene *scene = CTX_data_scene(C); + Object *ob = ED_object_context(C); int from_mix = RNA_boolean_get(op->ptr, "from_mix"); ED_object_shape_key_add(C, scene, ob, from_mix); @@ -289,7 +289,7 @@ void OBJECT_OT_shape_key_add(wmOperatorType *ot) ot->exec = shape_key_add_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ RNA_def_boolean(ot->srna, "from_mix", 1, "From Mix", "Create the new shape key from the existing mix of keys"); @@ -297,7 +297,7 @@ void OBJECT_OT_shape_key_add(wmOperatorType *ot) static int shape_key_remove_exec(bContext *C, wmOperator *UNUSED(op)) { - Object *ob= ED_object_context(C); + Object *ob = ED_object_context(C); if (!ED_object_shape_key_remove(C, ob)) return OPERATOR_CANCELLED; @@ -317,23 +317,23 @@ void OBJECT_OT_shape_key_remove(wmOperatorType *ot) ot->exec = shape_key_remove_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int shape_key_clear_exec(bContext *C, wmOperator *UNUSED(op)) { - Object *ob= ED_object_context(C); - Key *key= ob_get_key(ob); - KeyBlock *kb= ob_get_keyblock(ob); + Object *ob = ED_object_context(C); + Key *key = ob_get_key(ob); + KeyBlock *kb = ob_get_keyblock(ob); if (!key || !kb) return OPERATOR_CANCELLED; - for (kb=key->block.first; kb; kb=kb->next) - kb->curval= 0.0f; + for (kb = key->block.first; kb; kb = kb->next) + kb->curval = 0.0f; DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob); return OPERATOR_FINISHED; } @@ -350,7 +350,7 @@ void OBJECT_OT_shape_key_clear(wmOperatorType *ot) ot->exec = shape_key_clear_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } /* starting point and step size could be optional */ @@ -364,11 +364,11 @@ static int shape_key_retime_exec(bContext *C, wmOperator *UNUSED(op)) if (!key || !kb) return OPERATOR_CANCELLED; - for (kb=key->block.first; kb; kb=kb->next) + for (kb = key->block.first; kb; kb = kb->next) kb->pos = (cfra += 0.1f); DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob); return OPERATOR_FINISHED; } @@ -385,12 +385,12 @@ void OBJECT_OT_shape_key_retime(wmOperatorType *ot) ot->exec = shape_key_retime_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int shape_key_mirror_exec(bContext *C, wmOperator *UNUSED(op)) { - Object *ob= ED_object_context(C); + Object *ob = ED_object_context(C); if (!object_shape_key_mirror(C, ob)) return OPERATOR_CANCELLED; @@ -409,28 +409,28 @@ void OBJECT_OT_shape_key_mirror(wmOperatorType *ot) ot->exec = shape_key_mirror_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int shape_key_move_exec(bContext *C, wmOperator *op) { - Object *ob= ED_object_context(C); + Object *ob = ED_object_context(C); - int type= RNA_enum_get(op->ptr, "type"); - Key *key= ob_get_key(ob); + int type = RNA_enum_get(op->ptr, "type"); + Key *key = ob_get_key(ob); if (key) { KeyBlock *kb, *kb_other; - int shapenr_act= ob->shapenr-1; - int shapenr_swap= shapenr_act + type; - kb= BLI_findlink(&key->block, shapenr_act); + int shapenr_act = ob->shapenr - 1; + int shapenr_swap = shapenr_act + type; + kb = BLI_findlink(&key->block, shapenr_act); - if ((type==-1 && kb->prev==NULL) || (type==1 && kb->next==NULL)) { + if ((type == -1 && kb->prev == NULL) || (type == 1 && kb->next == NULL)) { return OPERATOR_CANCELLED; } - for (kb_other= key->block.first; kb_other; kb_other= kb_other->next) { + for (kb_other = key->block.first; kb_other; kb_other = kb_other->next) { if (kb_other->relative == shapenr_act) { kb_other->relative += type; } @@ -439,16 +439,16 @@ static int shape_key_move_exec(bContext *C, wmOperator *op) } } - if (type==-1) { + if (type == -1) { /* move back */ - kb_other= kb->prev; + kb_other = kb->prev; BLI_remlink(&key->block, kb); BLI_insertlinkbefore(&key->block, kb_other, kb); ob->shapenr--; } else { /* move next */ - kb_other= kb->next; + kb_other = kb->next; BLI_remlink(&key->block, kb); BLI_insertlinkafter(&key->block, kb_other, kb); ob->shapenr++; @@ -458,7 +458,7 @@ static int shape_key_move_exec(bContext *C, wmOperator *op) } DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob); return OPERATOR_FINISHED; } @@ -480,7 +480,7 @@ void OBJECT_OT_shape_key_move(wmOperatorType *ot) ot->exec = shape_key_move_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; RNA_def_enum(ot->srna, "type", slot_move, 0, "Type", ""); } diff --git a/source/blender/editors/object/object_transform.c b/source/blender/editors/object/object_transform.c index 55954790687..e416bd5b762 100644 --- a/source/blender/editors/object/object_transform.c +++ b/source/blender/editors/object/object_transform.c @@ -78,57 +78,57 @@ static void object_clear_loc(Object *ob) { /* clear location if not locked */ - if ((ob->protectflag & OB_LOCK_LOCX)==0) - ob->loc[0]= ob->dloc[0]= 0.0f; - if ((ob->protectflag & OB_LOCK_LOCY)==0) - ob->loc[1]= ob->dloc[1]= 0.0f; - if ((ob->protectflag & OB_LOCK_LOCZ)==0) - ob->loc[2]= ob->dloc[2]= 0.0f; + if ((ob->protectflag & OB_LOCK_LOCX) == 0) + ob->loc[0] = ob->dloc[0] = 0.0f; + if ((ob->protectflag & OB_LOCK_LOCY) == 0) + ob->loc[1] = ob->dloc[1] = 0.0f; + if ((ob->protectflag & OB_LOCK_LOCZ) == 0) + ob->loc[2] = ob->dloc[2] = 0.0f; } /* clear rotation of object */ static void object_clear_rot(Object *ob) { /* clear rotations that aren't locked */ - if (ob->protectflag & (OB_LOCK_ROTX|OB_LOCK_ROTY|OB_LOCK_ROTZ|OB_LOCK_ROTW)) { + if (ob->protectflag & (OB_LOCK_ROTX | OB_LOCK_ROTY | OB_LOCK_ROTZ | OB_LOCK_ROTW)) { if (ob->protectflag & OB_LOCK_ROT4D) { /* perform clamping on a component by component basis */ if (ob->rotmode == ROT_MODE_AXISANGLE) { if ((ob->protectflag & OB_LOCK_ROTW) == 0) - ob->rotAngle= ob->drotAngle= 0.0f; + ob->rotAngle = ob->drotAngle = 0.0f; if ((ob->protectflag & OB_LOCK_ROTX) == 0) - ob->rotAxis[0]= ob->drotAxis[0]= 0.0f; + ob->rotAxis[0] = ob->drotAxis[0] = 0.0f; if ((ob->protectflag & OB_LOCK_ROTY) == 0) - ob->rotAxis[1]= ob->drotAxis[1]= 0.0f; + ob->rotAxis[1] = ob->drotAxis[1] = 0.0f; if ((ob->protectflag & OB_LOCK_ROTZ) == 0) - ob->rotAxis[2]= ob->drotAxis[2]= 0.0f; + ob->rotAxis[2] = ob->drotAxis[2] = 0.0f; /* check validity of axis - axis should never be 0,0,0 (if so, then we make it rotate about y) */ if (IS_EQF(ob->rotAxis[0], ob->rotAxis[1]) && IS_EQF(ob->rotAxis[1], ob->rotAxis[2])) ob->rotAxis[1] = 1.0f; if (IS_EQF(ob->drotAxis[0], ob->drotAxis[1]) && IS_EQF(ob->drotAxis[1], ob->drotAxis[2])) - ob->drotAxis[1]= 1.0f; + ob->drotAxis[1] = 1.0f; } else if (ob->rotmode == ROT_MODE_QUAT) { if ((ob->protectflag & OB_LOCK_ROTW) == 0) - ob->quat[0]= ob->dquat[0]= 1.0f; + ob->quat[0] = ob->dquat[0] = 1.0f; if ((ob->protectflag & OB_LOCK_ROTX) == 0) - ob->quat[1]= ob->dquat[1]= 0.0f; + ob->quat[1] = ob->dquat[1] = 0.0f; if ((ob->protectflag & OB_LOCK_ROTY) == 0) - ob->quat[2]= ob->dquat[2]= 0.0f; + ob->quat[2] = ob->dquat[2] = 0.0f; if ((ob->protectflag & OB_LOCK_ROTZ) == 0) - ob->quat[3]= ob->dquat[3]= 0.0f; + ob->quat[3] = ob->dquat[3] = 0.0f; // TODO: does this quat need normalizing now? } else { /* the flag may have been set for the other modes, so just ignore the extra flag... */ if ((ob->protectflag & OB_LOCK_ROTX) == 0) - ob->rot[0]= ob->drot[0]= 0.0f; + ob->rot[0] = ob->drot[0] = 0.0f; if ((ob->protectflag & OB_LOCK_ROTY) == 0) - ob->rot[1]= ob->drot[1]= 0.0f; + ob->rot[1] = ob->drot[1] = 0.0f; if ((ob->protectflag & OB_LOCK_ROTZ) == 0) - ob->rot[2]= ob->drot[2]= 0.0f; + ob->rot[2] = ob->drot[2] = 0.0f; } } else { @@ -147,30 +147,30 @@ static void object_clear_rot(Object *ob) copy_v3_v3(oldeul, ob->rot); } - eul[0]= eul[1]= eul[2]= 0.0f; + eul[0] = eul[1] = eul[2] = 0.0f; if (ob->protectflag & OB_LOCK_ROTX) - eul[0]= oldeul[0]; + eul[0] = oldeul[0]; if (ob->protectflag & OB_LOCK_ROTY) - eul[1]= oldeul[1]; + eul[1] = oldeul[1]; if (ob->protectflag & OB_LOCK_ROTZ) - eul[2]= oldeul[2]; + eul[2] = oldeul[2]; if (ob->rotmode == ROT_MODE_QUAT) { eul_to_quat(ob->quat, eul); /* quaternions flip w sign to accumulate rotations correctly */ - if ((quat1[0]<0.0f && ob->quat[0]>0.0f) || (quat1[0]>0.0f && ob->quat[0]<0.0f)) { + if ((quat1[0] < 0.0f && ob->quat[0] > 0.0f) || (quat1[0] > 0.0f && ob->quat[0] < 0.0f)) { mul_qt_fl(ob->quat, -1.0f); } } else if (ob->rotmode == ROT_MODE_AXISANGLE) { - eulO_to_axis_angle(ob->rotAxis, &ob->rotAngle,eul, EULER_ORDER_DEFAULT); + eulO_to_axis_angle(ob->rotAxis, &ob->rotAngle, eul, EULER_ORDER_DEFAULT); } else { copy_v3_v3(ob->rot, eul); } } - } // Duplicated in source/blender/editors/armature/editarmature.c + } // Duplicated in source/blender/editors/armature/editarmature.c else { if (ob->rotmode == ROT_MODE_QUAT) { unit_qt(ob->quat); @@ -191,17 +191,17 @@ static void object_clear_rot(Object *ob) static void object_clear_scale(Object *ob) { /* clear scale factors which are not locked */ - if ((ob->protectflag & OB_LOCK_SCALEX)==0) { - ob->dscale[0]= 1.0f; - ob->size[0]= 1.0f; + if ((ob->protectflag & OB_LOCK_SCALEX) == 0) { + ob->dscale[0] = 1.0f; + ob->size[0] = 1.0f; } - if ((ob->protectflag & OB_LOCK_SCALEY)==0) { - ob->dscale[1]= 1.0f; - ob->size[1]= 1.0f; + if ((ob->protectflag & OB_LOCK_SCALEY) == 0) { + ob->dscale[1] = 1.0f; + ob->size[1] = 1.0f; } - if ((ob->protectflag & OB_LOCK_SCALEZ)==0) { - ob->dscale[2]= 1.0f; - ob->size[2]= 1.0f; + if ((ob->protectflag & OB_LOCK_SCALEZ) == 0) { + ob->dscale[2] = 1.0f; + ob->size[2] = 1.0f; } } @@ -209,10 +209,10 @@ static void object_clear_scale(Object *ob) /* generic exec for clear-transform operators */ static int object_clear_transform_generic_exec(bContext *C, wmOperator *op, - void (*clear_func)(Object*), const char default_ksName[]) + void (*clear_func)(Object *), const char default_ksName[]) { Main *bmain = CTX_data_main(C); - Scene *scene= CTX_data_scene(C); + Scene *scene = CTX_data_scene(C); KeyingSet *ks; /* sanity checks */ @@ -227,8 +227,7 @@ static int object_clear_transform_generic_exec(bContext *C, wmOperator *op, /* operate on selected objects only if they aren't in weight-paint mode * (so that object-transform clearing won't be applied at same time as bone-clearing) */ - CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) - { + CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects) { if (!(ob->mode & OB_MODE_WEIGHT_PAINT)) { /* run provided clearing function */ clear_func(ob); @@ -244,7 +243,7 @@ static int object_clear_transform_generic_exec(bContext *C, wmOperator *op, /* this is needed so children are also updated */ DAG_ids_flush_update(bmain, 0); - WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, NULL); + WM_event_add_notifier(C, NC_OBJECT | ND_TRANSFORM, NULL); return OPERATOR_FINISHED; } @@ -269,7 +268,7 @@ void OBJECT_OT_location_clear(wmOperatorType *ot) ot->poll = ED_operator_scene_editable; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int object_rotation_clear_exec(bContext *C, wmOperator *op) @@ -289,7 +288,7 @@ void OBJECT_OT_rotation_clear(wmOperatorType *ot) ot->poll = ED_operator_scene_editable; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int object_scale_clear_exec(bContext *C, wmOperator *op) @@ -309,23 +308,22 @@ void OBJECT_OT_scale_clear(wmOperatorType *ot) ot->poll = ED_operator_scene_editable; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } /* --------------- */ static int object_origin_clear_exec(bContext *C, wmOperator *UNUSED(op)) { - Main *bmain= CTX_data_main(C); + Main *bmain = CTX_data_main(C); float *v1, *v3; float mat[3][3]; - CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) - { + CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects) { if (ob->parent) { /* vectors pointed to by v1 and v3 will get modified */ - v1= ob->loc; - v3= ob->parentinv[3]; + v1 = ob->loc; + v3 = ob->parentinv[3]; copy_m3_m4(mat, ob->parentinv); negate_v3_v3(v3, v1); @@ -338,7 +336,7 @@ static int object_origin_clear_exec(bContext *C, wmOperator *UNUSED(op)) DAG_ids_flush_update(bmain, 0); - WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, NULL); + WM_event_add_notifier(C, NC_OBJECT | ND_TRANSFORM, NULL); return OPERATOR_FINISHED; } @@ -355,20 +353,20 @@ void OBJECT_OT_origin_clear(wmOperatorType *ot) ot->poll = ED_operator_scene_editable; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } /*************************** Apply Transformation ****************************/ /* use this when the loc/size/rot of the parent has changed but the children - * should stay in the same place, e.g. for apply-size-rot or object center */ -static void ignore_parent_tx(Main *bmain, Scene *scene, Object *ob ) +* should stay in the same place, e.g. for apply-size-rot or object center */ +static void ignore_parent_tx(Main *bmain, Scene *scene, Object *ob) { Object workob; Object *ob_child; /* a change was made, adjust the children to compensate */ - for (ob_child=bmain->object.first; ob_child; ob_child=ob_child->id.next) { + for (ob_child = bmain->object.first; ob_child; ob_child = ob_child->id.next) { if (ob_child->parent == ob) { object_apply_mat4(ob_child, ob_child->obmat, TRUE, FALSE); what_does_parent(scene, ob_child, &workob); @@ -379,21 +377,21 @@ static void ignore_parent_tx(Main *bmain, Scene *scene, Object *ob ) static int apply_objects_internal(bContext *C, ReportList *reports, int apply_loc, int apply_rot, int apply_scale) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); float rsmat[3][3], tmat[3][3], obmat[3][3], iobmat[3][3], mat[4][4], scale; int a, change = 0; /* first check if we can execute */ - CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) { + CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects) { - if (ob->type==OB_MESH) { + if (ob->type == OB_MESH) { if (ID_REAL_USERS(ob->data) > 1) { BKE_report(reports, RPT_ERROR, "Can't apply to a multi user mesh, doing nothing"); return OPERATOR_CANCELLED; } } - else if (ob->type==OB_ARMATURE) { + else if (ob->type == OB_ARMATURE) { if (ID_REAL_USERS(ob->data) > 1) { BKE_report(reports, RPT_ERROR, "Can't apply to a multi user armature, doing nothing"); return OPERATOR_CANCELLED; @@ -413,7 +411,7 @@ static int apply_objects_internal(bContext *C, ReportList *reports, int apply_lo return OPERATOR_CANCELLED; } - cu= ob->data; + cu = ob->data; if (!(cu->flag & CU_3D) && (apply_rot || apply_loc)) { BKE_report(reports, RPT_ERROR, "Neither rotation nor location could be applied to a 2d curve, doing nothing"); @@ -428,7 +426,7 @@ static int apply_objects_internal(bContext *C, ReportList *reports, int apply_lo CTX_DATA_END; /* now execute */ - CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) { + CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects) { /* calculate rotation/scale matrix */ if (apply_scale && apply_rot) @@ -466,24 +464,24 @@ static int apply_objects_internal(bContext *C, ReportList *reports, int apply_lo } /* apply to object data */ - if (ob->type==OB_MESH) { - Mesh *me= ob->data; + if (ob->type == OB_MESH) { + Mesh *me = ob->data; MVert *mvert; multiresModifier_scale_disp(scene, ob); /* adjust data */ - mvert= me->mvert; - for (a=0; atotvert; a++, mvert++) + mvert = me->mvert; + for (a = 0; a < me->totvert; a++, mvert++) mul_m4_v3(mat, mvert->co); if (me->key) { KeyBlock *kb; - for (kb=me->key->block.first; kb; kb=kb->next) { - float *fp= kb->data; + for (kb = me->key->block.first; kb; kb = kb->next) { + float *fp = kb->data; - for (a=0; atotelem; a++, fp+=3) + for (a = 0; a < kb->totelem; a++, fp += 3) mul_m4_v3(mat, fp); } } @@ -491,7 +489,7 @@ static int apply_objects_internal(bContext *C, ReportList *reports, int apply_lo /* update normals */ mesh_calc_normals_mapping(me->mvert, me->totvert, me->mloop, me->mpoly, me->totloop, me->totpoly, NULL, NULL, 0, NULL, NULL); } - else if (ob->type==OB_ARMATURE) { + else if (ob->type == OB_ARMATURE) { ED_armature_apply_transform(ob, mat); } else if (ob->type == OB_LATTICE) { @@ -505,7 +503,7 @@ static int apply_objects_internal(bContext *C, ReportList *reports, int apply_lo } } else if (ELEM(ob->type, OB_CURVE, OB_SURF)) { - Curve *cu= ob->data; + Curve *cu = ob->data; Nurb *nu; BPoint *bp; @@ -513,20 +511,20 @@ static int apply_objects_internal(bContext *C, ReportList *reports, int apply_lo scale = mat3_to_scale(rsmat); - for (nu=cu->nurb.first; nu; nu=nu->next) { + for (nu = cu->nurb.first; nu; nu = nu->next) { if (nu->type == CU_BEZIER) { - a= nu->pntsu; - for (bezt= nu->bezt; a--; bezt++) { + a = nu->pntsu; + for (bezt = nu->bezt; a--; bezt++) { mul_m4_v3(mat, bezt->vec[0]); mul_m4_v3(mat, bezt->vec[1]); mul_m4_v3(mat, bezt->vec[2]); bezt->radius *= scale; } - calchandlesNurb(nu); + BKE_nurb_handles_calc(nu); } else { - a= nu->pntsu*nu->pntsv; - for (bp= nu->bp; a--; bp++) + a = nu->pntsu * nu->pntsv; + for (bp = nu->bp; a--; bp++) mul_m4_v3(mat, bp->vec); } } @@ -537,7 +535,7 @@ static int apply_objects_internal(bContext *C, ReportList *reports, int apply_lo if (apply_loc) zero_v3(ob->loc); if (apply_scale) - ob->size[0]= ob->size[1]= ob->size[2]= 1.0f; + ob->size[0] = ob->size[1] = ob->size[2] = 1.0f; if (apply_rot) { zero_v3(ob->rot); unit_qt(ob->quat); @@ -545,13 +543,13 @@ static int apply_objects_internal(bContext *C, ReportList *reports, int apply_lo } where_is_object(scene, ob); - if (ob->type==OB_ARMATURE) { + if (ob->type == OB_ARMATURE) { where_is_pose(scene, ob); /* needed for bone parents */ } ignore_parent_tx(bmain, scene, ob); - DAG_id_tag_update(&ob->id, OB_RECALC_OB|OB_RECALC_DATA); + DAG_id_tag_update(&ob->id, OB_RECALC_OB | OB_RECALC_DATA); change = 1; } @@ -560,16 +558,16 @@ static int apply_objects_internal(bContext *C, ReportList *reports, int apply_lo if (!change) return OPERATOR_CANCELLED; - WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, NULL); + WM_event_add_notifier(C, NC_OBJECT | ND_TRANSFORM, NULL); return OPERATOR_FINISHED; } static int visual_transform_apply_exec(bContext *C, wmOperator *UNUSED(op)) { - Scene *scene= CTX_data_scene(C); + Scene *scene = CTX_data_scene(C); int change = 0; - CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) { + CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects) { where_is_object(scene, ob); object_apply_mat4(ob, ob->obmat, TRUE, TRUE); where_is_object(scene, ob); @@ -584,7 +582,7 @@ static int visual_transform_apply_exec(bContext *C, wmOperator *UNUSED(op)) if (!change) return OPERATOR_CANCELLED; - WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, NULL); + WM_event_add_notifier(C, NC_OBJECT | ND_TRANSFORM, NULL); return OPERATOR_FINISHED; } @@ -600,14 +598,14 @@ void OBJECT_OT_visual_transform_apply(wmOperatorType *ot) ot->poll = ED_operator_scene_editable; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int object_transform_apply_exec(bContext *C, wmOperator *op) { - const int loc= RNA_boolean_get(op->ptr, "location"); - const int rot= RNA_boolean_get(op->ptr, "rotation"); - const int sca= RNA_boolean_get(op->ptr, "scale"); + const int loc = RNA_boolean_get(op->ptr, "location"); + const int rot = RNA_boolean_get(op->ptr, "rotation"); + const int sca = RNA_boolean_get(op->ptr, "scale"); if (loc || rot || sca) { return apply_objects_internal(C, op->reports, loc, rot, sca); @@ -629,7 +627,7 @@ void OBJECT_OT_transform_apply(wmOperatorType *ot) ot->poll = ED_operator_objectmode; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; RNA_def_boolean(ot->srna, "location", 0, "Location", ""); RNA_def_boolean(ot->srna, "rotation", 0, "Rotation", ""); @@ -639,23 +637,23 @@ void OBJECT_OT_transform_apply(wmOperatorType *ot) /********************* Set Object Center ************************/ enum { - GEOMETRY_TO_ORIGIN=0, + GEOMETRY_TO_ORIGIN = 0, ORIGIN_TO_GEOMETRY, ORIGIN_TO_CURSOR }; static int object_origin_set_exec(bContext *C, wmOperator *op) { - Main *bmain= CTX_data_main(C); - Scene *scene= CTX_data_scene(C); - Object *obedit= CTX_data_edit_object(C); + Main *bmain = CTX_data_main(C); + Scene *scene = CTX_data_scene(C); + Object *obedit = CTX_data_edit_object(C); Object *tob; float cursor[3], cent[3], cent_neg[3], centn[3], min[3], max[3]; int centermode = RNA_enum_get(op->ptr, "type"); int around = RNA_enum_get(op->ptr, "center"); /* initialized from v3d->around */ /* keep track of what is changed */ - int tot_change=0, tot_lib_error=0, tot_multiuser_arm_error=0; + int tot_change = 0, tot_lib_error = 0, tot_multiuser_arm_error = 0; if (obedit && centermode != GEOMETRY_TO_ORIGIN) { BKE_report(op->reports, RPT_ERROR, "Operation cannot be performed in EditMode"); @@ -663,10 +661,10 @@ static int object_origin_set_exec(bContext *C, wmOperator *op) } else { /* get the view settings if 'around' isn't set and the view is available */ - View3D *v3d= CTX_wm_view3d(C); + View3D *v3d = CTX_wm_view3d(C); copy_v3_v3(cursor, give_cursor(scene, v3d)); if (v3d && !RNA_struct_property_is_set(op->ptr, "center")) - around= v3d->around; + around = v3d->around; } zero_v3(cent); @@ -674,8 +672,8 @@ static int object_origin_set_exec(bContext *C, wmOperator *op) if (obedit) { INIT_MINMAX(min, max); - if (obedit->type==OB_MESH) { - Mesh *me= obedit->data; + if (obedit->type == OB_MESH) { + Mesh *me = obedit->data; BMEditMesh *em = me->edit_btmesh; BMVert *eve; BMIter iter; @@ -688,10 +686,10 @@ static int object_origin_set_exec(bContext *C, wmOperator *op) } else { BM_ITER_MESH (eve, &iter, em->bm, BM_VERTS_OF_MESH) { - if (around==V3D_CENTROID) { + if (around == V3D_CENTROID) { total++; add_v3_v3(cent, eve->co); - mul_v3_fl(cent, 1.0f/(float)total); + mul_v3_fl(cent, 1.0f / (float)total); } else { DO_MINMAX(eve->co, min, max); @@ -707,24 +705,24 @@ static int object_origin_set_exec(bContext *C, wmOperator *op) EDBM_mesh_normals_update(em); tot_change++; DAG_id_tag_update(&obedit->id, OB_RECALC_DATA); - } + } } /* reset flags */ - CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) { - ob->flag &= ~OB_DONE; + CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects) { + ob->flag &= ~OB_DONE; } CTX_DATA_END; - for (tob= bmain->object.first; tob; tob= tob->id.next) { + for (tob = bmain->object.first; tob; tob = tob->id.next) { if (tob->data) ((ID *)tob->data)->flag &= ~LIB_DOIT; if (tob->dup_group) ((ID *)tob->dup_group)->flag &= ~LIB_DOIT; } - CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) { - if ((ob->flag & OB_DONE)==0) { + CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects) { + if ((ob->flag & OB_DONE) == 0) { int do_inverse_offset = FALSE; ob->flag |= OB_DONE; @@ -736,7 +734,7 @@ static int object_origin_set_exec(bContext *C, wmOperator *op) if (ob->data == NULL) { /* special support for dupligroups */ - if ((ob->transflag & OB_DUPLIGROUP) && ob->dup_group && (ob->dup_group->id.flag & LIB_DOIT)==0) { + if ((ob->transflag & OB_DUPLIGROUP) && ob->dup_group && (ob->dup_group->id.flag & LIB_DOIT) == 0) { if (ob->dup_group->id.lib) { tot_lib_error++; } @@ -755,7 +753,7 @@ static int object_origin_set_exec(bContext *C, wmOperator *op) tot_change++; ob->dup_group->id.flag |= LIB_DOIT; - do_inverse_offset= TRUE; + do_inverse_offset = TRUE; } } } @@ -763,11 +761,11 @@ static int object_origin_set_exec(bContext *C, wmOperator *op) tot_lib_error++; } - if (obedit==NULL && ob->type==OB_MESH) { - Mesh *me= ob->data; + if (obedit == NULL && ob->type == OB_MESH) { + Mesh *me = ob->data; if (centermode == ORIGIN_TO_CURSOR) { /* done */ } - else if (around==V3D_CENTROID) { mesh_center_median(me, cent); } + else if (around == V3D_CENTROID) { mesh_center_median(me, cent); } else { mesh_center_bounds(me, cent); } negate_v3_v3(cent_neg, cent); @@ -775,25 +773,25 @@ static int object_origin_set_exec(bContext *C, wmOperator *op) tot_change++; me->id.flag |= LIB_DOIT; - do_inverse_offset= TRUE; + do_inverse_offset = TRUE; } else if (ELEM(ob->type, OB_CURVE, OB_SURF)) { - Curve *cu= ob->data; + Curve *cu = ob->data; if (centermode == ORIGIN_TO_CURSOR) { /* done */ } - else if (around==V3D_CENTROID) { curve_center_median(cu, cent); } - else { curve_center_bounds(cu, cent); } + else if (around == V3D_CENTROID) { BKE_curve_center_median(cu, cent); } + else { BKE_curve_center_bounds(cu, cent); } /* don't allow Z change if curve is 2D */ if ((ob->type == OB_CURVE) && !(cu->flag & CU_3D)) cent[2] = 0.0; negate_v3_v3(cent_neg, cent); - curve_translate(cu, cent_neg, 1); + BKE_curve_translate(cu, cent_neg, 1); tot_change++; cu->id.flag |= LIB_DOIT; - do_inverse_offset= TRUE; + do_inverse_offset = TRUE; if (obedit) { if (centermode == GEOMETRY_TO_ORIGIN) { @@ -802,12 +800,12 @@ static int object_origin_set_exec(bContext *C, wmOperator *op) break; } } - else if (ob->type==OB_FONT) { + else if (ob->type == OB_FONT) { /* get from bb */ - Curve *cu= ob->data; + Curve *cu = ob->data; - if (cu->bb==NULL && (centermode != ORIGIN_TO_CURSOR)) { + if (cu->bb == NULL && (centermode != ORIGIN_TO_CURSOR)) { /* do nothing*/ } else { @@ -815,21 +813,21 @@ static int object_origin_set_exec(bContext *C, wmOperator *op) /* done */ } else { - cent[0]= 0.5f * ( cu->bb->vec[4][0] + cu->bb->vec[0][0]); - cent[1]= 0.5f * ( cu->bb->vec[0][1] + cu->bb->vec[2][1]) - 0.5f; /* extra 0.5 is the height o above line */ + cent[0] = 0.5f * (cu->bb->vec[4][0] + cu->bb->vec[0][0]); + cent[1] = 0.5f * (cu->bb->vec[0][1] + cu->bb->vec[2][1]) - 0.5f; /* extra 0.5 is the height o above line */ } - cent[2]= 0.0f; + cent[2] = 0.0f; - cu->xof= cu->xof - (cent[0] / cu->fsize); - cu->yof= cu->yof - (cent[1] / cu->fsize); + cu->xof = cu->xof - (cent[0] / cu->fsize); + cu->yof = cu->yof - (cent[1] / cu->fsize); tot_change++; cu->id.flag |= LIB_DOIT; - do_inverse_offset= TRUE; + do_inverse_offset = TRUE; } } - else if (ob->type==OB_ARMATURE) { + else if (ob->type == OB_ARMATURE) { bArmature *arm = ob->data; if (ID_REAL_USERS(arm) > 1) { @@ -862,15 +860,15 @@ static int object_origin_set_exec(bContext *C, wmOperator *op) MetaBall *mb = ob->data; if (centermode == ORIGIN_TO_CURSOR) { /* done */ } - else if (around==V3D_CENTROID) { BKE_metaball_center_median(mb, cent); } - else { BKE_metaball_center_bounds(mb, cent); } + else if (around == V3D_CENTROID) { BKE_metaball_center_median(mb, cent); } + else { BKE_metaball_center_bounds(mb, cent); } negate_v3_v3(cent_neg, cent); BKE_metaball_translate(mb, cent_neg); tot_change++; mb->id.flag |= LIB_DOIT; - do_inverse_offset= TRUE; + do_inverse_offset = TRUE; if (obedit) { if (centermode == GEOMETRY_TO_ORIGIN) { @@ -889,27 +887,28 @@ static int object_origin_set_exec(bContext *C, wmOperator *op) add_v3_v3(ob->loc, centn); where_is_object(scene, ob); - if (ob->type==OB_ARMATURE) { + if (ob->type == OB_ARMATURE) { where_is_pose(scene, ob); /* needed for bone parents */ } ignore_parent_tx(bmain, scene, ob); /* other users? */ - CTX_DATA_BEGIN(C, Object*, ob_other, selected_editable_objects) { - if ( (ob_other->flag & OB_DONE)==0 && - ( (ob->data && (ob->data == ob_other->data)) || - (ob->dup_group==ob_other->dup_group && (ob->transflag|ob_other->transflag) & OB_DUPLIGROUP) ) - ) { + CTX_DATA_BEGIN (C, Object *, ob_other, selected_editable_objects) { + if ((ob_other->flag & OB_DONE) == 0 && + ((ob->data && (ob->data == ob_other->data)) || + (ob->dup_group == ob_other->dup_group && + (ob->transflag | ob_other->transflag) & OB_DUPLIGROUP))) + { ob_other->flag |= OB_DONE; - DAG_id_tag_update(&ob_other->id, OB_RECALC_OB|OB_RECALC_DATA); + DAG_id_tag_update(&ob_other->id, OB_RECALC_OB | OB_RECALC_DATA); copy_v3_v3(centn, cent); mul_mat3_m4_v3(ob_other->obmat, centn); /* ommit translation part */ add_v3_v3(ob_other->loc, centn); where_is_object(scene, ob_other); - if (ob_other->type==OB_ARMATURE) { + if (ob_other->type == OB_ARMATURE) { where_is_pose(scene, ob_other); /* needed for bone parents */ } ignore_parent_tx(bmain, scene, ob_other); @@ -921,22 +920,22 @@ static int object_origin_set_exec(bContext *C, wmOperator *op) } CTX_DATA_END; - for (tob= bmain->object.first; tob; tob= tob->id.next) + for (tob = bmain->object.first; tob; tob = tob->id.next) if (tob->data && (((ID *)tob->data)->flag & LIB_DOIT)) - DAG_id_tag_update(&tob->id, OB_RECALC_OB|OB_RECALC_DATA); + DAG_id_tag_update(&tob->id, OB_RECALC_OB | OB_RECALC_DATA); if (tot_change) { DAG_ids_flush_update(bmain, 0); - WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, NULL); + WM_event_add_notifier(C, NC_OBJECT | ND_TRANSFORM, NULL); } /* Warn if any errors occurred */ - if (tot_lib_error+tot_multiuser_arm_error) { - BKE_reportf(op->reports, RPT_WARNING, "%i Object(s) Not Centered, %i Changed:",tot_lib_error+tot_multiuser_arm_error, tot_change); + if (tot_lib_error + tot_multiuser_arm_error) { + BKE_reportf(op->reports, RPT_WARNING, "%i Object(s) Not Centered, %i Changed:", tot_lib_error + tot_multiuser_arm_error, tot_change); if (tot_lib_error) - BKE_reportf(op->reports, RPT_WARNING, "|%i linked library objects",tot_lib_error); + BKE_reportf(op->reports, RPT_WARNING, "|%i linked library objects", tot_lib_error); if (tot_multiuser_arm_error) - BKE_reportf(op->reports, RPT_WARNING, "|%i multiuser armature object(s)",tot_multiuser_arm_error); + BKE_reportf(op->reports, RPT_WARNING, "|%i multiuser armature object(s)", tot_multiuser_arm_error); } return OPERATOR_FINISHED; @@ -969,7 +968,7 @@ void OBJECT_OT_origin_set(wmOperatorType *ot) ot->poll = ED_operator_scene_editable; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; ot->prop = RNA_def_enum(ot->srna, "type", prop_set_center_types, 0, "Type", ""); RNA_def_enum(ot->srna, "center", prop_set_bounds_types, V3D_CENTROID, "Center", ""); diff --git a/source/blender/editors/object/object_vgroup.c b/source/blender/editors/object/object_vgroup.c index b5c34f1c750..6d5e098770a 100644 --- a/source/blender/editors/object/object_vgroup.c +++ b/source/blender/editors/object/object_vgroup.c @@ -84,9 +84,9 @@ static void vgroup_delete_all(Object *ob); static Lattice *vgroup_edit_lattice(Object *ob) { - Lattice *lt= ob->data; - BLI_assert(ob->type==OB_LATTICE); - return (lt->editlatt)? lt->editlatt->latt: lt; + Lattice *lt = ob->data; + BLI_assert(ob->type == OB_LATTICE); + return (lt->editlatt) ? lt->editlatt->latt : lt; } int ED_vgroup_object_is_edit_mode(Object *ob) @@ -94,7 +94,7 @@ int ED_vgroup_object_is_edit_mode(Object *ob) if (ob->type == OB_MESH) return (BMEdit_FromObject(ob) != NULL); else if (ob->type == OB_LATTICE) - return (((Lattice*)ob->data)->editlatt != NULL); + return (((Lattice *)ob->data)->editlatt != NULL); return 0; } @@ -144,18 +144,18 @@ void ED_vgroup_delete(Object *ob, bDeformGroup *defgroup) void ED_vgroup_clear(Object *ob) { - bDeformGroup *dg= (bDeformGroup *)ob->defbase.first; - int edit_mode= ED_vgroup_object_is_edit_mode(ob); + bDeformGroup *dg = (bDeformGroup *)ob->defbase.first; + int edit_mode = ED_vgroup_object_is_edit_mode(ob); while (dg) { - bDeformGroup *next_dg= dg->next; + bDeformGroup *next_dg = dg->next; if (edit_mode) vgroup_delete_edit_mode(ob, dg); else vgroup_delete_object_mode(ob, dg); - dg= next_dg; + dg = next_dg; } } @@ -163,14 +163,14 @@ int ED_vgroup_data_create(ID *id) { /* create deform verts */ - if (GS(id->name)==ID_ME) { - Mesh *me= (Mesh *)id; - me->dvert= CustomData_add_layer(&me->vdata, CD_MDEFORMVERT, CD_CALLOC, NULL, me->totvert); + if (GS(id->name) == ID_ME) { + Mesh *me = (Mesh *)id; + me->dvert = CustomData_add_layer(&me->vdata, CD_MDEFORMVERT, CD_CALLOC, NULL, me->totvert); return TRUE; } - else if (GS(id->name)==ID_LT) { - Lattice *lt= (Lattice *)id; - lt->dvert= MEM_callocN(sizeof(MDeformVert)*lt->pntsu*lt->pntsv*lt->pntsw, "lattice deformVert"); + else if (GS(id->name) == ID_LT) { + Lattice *lt = (Lattice *)id; + lt->dvert = MEM_callocN(sizeof(MDeformVert) * lt->pntsu * lt->pntsv * lt->pntsw, "lattice deformVert"); return TRUE; } else { @@ -184,7 +184,7 @@ static int ED_vgroup_give_parray(ID *id, MDeformVert ***dvert_arr, int *dvert_to *dvert_arr = NULL; if (id) { - switch(GS(id->name)) { + switch (GS(id->name)) { case ID_ME: { Mesh *me = (Mesh *)id; @@ -201,7 +201,7 @@ static int ED_vgroup_give_parray(ID *id, MDeformVert ***dvert_arr, int *dvert_to i = em->bm->totvert; - *dvert_arr= MEM_mallocN(sizeof(void*)*i, "vgroup parray from me"); + *dvert_arr = MEM_mallocN(sizeof(void *) * i, "vgroup parray from me"); *dvert_tot = i; i = 0; @@ -222,21 +222,21 @@ static int ED_vgroup_give_parray(ID *id, MDeformVert ***dvert_arr, int *dvert_to return 1; } else if (me->dvert) { - MVert *mvert= me->mvert; - MDeformVert *dvert= me->dvert; + MVert *mvert = me->mvert; + MDeformVert *dvert = me->dvert; int i; - *dvert_tot= me->totvert; - *dvert_arr= MEM_mallocN(sizeof(void*)*me->totvert, "vgroup parray from me"); + *dvert_tot = me->totvert; + *dvert_arr = MEM_mallocN(sizeof(void *) * me->totvert, "vgroup parray from me"); if (use_vert_sel) { - for (i=0; itotvert; i++) { + for (i = 0; i < me->totvert; i++) { (*dvert_arr)[i] = (mvert[i].flag & SELECT) ? - &dvert[i] : NULL; + &dvert[i] : NULL; } } else { - for (i=0; itotvert; i++) { + for (i = 0; i < me->totvert; i++) { (*dvert_arr)[i] = me->dvert + i; } } @@ -249,24 +249,24 @@ static int ED_vgroup_give_parray(ID *id, MDeformVert ***dvert_arr, int *dvert_to } case ID_LT: { - int i=0; + int i = 0; - Lattice *lt= (Lattice *)id; - lt= (lt->editlatt)? lt->editlatt->latt: lt; + Lattice *lt = (Lattice *)id; + lt = (lt->editlatt) ? lt->editlatt->latt : lt; if (lt->dvert) { - BPoint *def= lt->def; - *dvert_tot= lt->pntsu*lt->pntsv*lt->pntsw; - *dvert_arr= MEM_mallocN(sizeof(void*)*(*dvert_tot), "vgroup parray from me"); + BPoint *def = lt->def; + *dvert_tot = lt->pntsu * lt->pntsv * lt->pntsw; + *dvert_arr = MEM_mallocN(sizeof(void *) * (*dvert_tot), "vgroup parray from me"); if (use_vert_sel) { - for (i=0; i<*dvert_tot; i++) { + for (i = 0; i < *dvert_tot; i++) { (*dvert_arr)[i] = (def->f1 & SELECT) ? <->dvert[i] : NULL; } } else { - for (i=0; i<*dvert_tot; i++) { + for (i = 0; i < *dvert_tot; i++) { (*dvert_arr)[i] = lt->dvert + i; } } @@ -287,27 +287,27 @@ static int ED_vgroup_give_parray(ID *id, MDeformVert ***dvert_arr, int *dvert_to int ED_vgroup_give_array(ID *id, MDeformVert **dvert_arr, int *dvert_tot) { if (id) { - switch(GS(id->name)) { + switch (GS(id->name)) { case ID_ME: { Mesh *me = (Mesh *)id; - *dvert_arr= me->dvert; - *dvert_tot= me->totvert; + *dvert_arr = me->dvert; + *dvert_tot = me->totvert; return TRUE; } case ID_LT: { - Lattice *lt= (Lattice *)id; - lt= (lt->editlatt)? lt->editlatt->latt: lt; - *dvert_arr= lt->dvert; - *dvert_tot= lt->pntsu*lt->pntsv*lt->pntsw; + Lattice *lt = (Lattice *)id; + lt = (lt->editlatt) ? lt->editlatt->latt : lt; + *dvert_arr = lt->dvert; + *dvert_tot = lt->pntsu * lt->pntsv * lt->pntsw; return TRUE; } } } - *dvert_arr= NULL; - *dvert_tot= 0; + *dvert_arr = NULL; + *dvert_tot = 0; return FALSE; } @@ -319,19 +319,19 @@ int ED_vgroup_copy_array(Object *ob, Object *ob_from) int dvert_tot_from; int dvert_tot; int i; - int defbase_tot_from= BLI_countlist(&ob_from->defbase); - int defbase_tot= BLI_countlist(&ob->defbase); - short new_vgroup= FALSE; + int defbase_tot_from = BLI_countlist(&ob_from->defbase); + int defbase_tot = BLI_countlist(&ob->defbase); + short new_vgroup = FALSE; ED_vgroup_give_parray(ob_from->data, &dvert_array_from, &dvert_tot_from, FALSE); ED_vgroup_give_parray(ob->data, &dvert_array, &dvert_tot, FALSE); if ((dvert_array == NULL) && (dvert_array_from != NULL) && ED_vgroup_data_create(ob->data)) { ED_vgroup_give_parray(ob->data, &dvert_array, &dvert_tot, FALSE); - new_vgroup= TRUE; + new_vgroup = TRUE; } - if (ob==ob_from || dvert_tot==0 || (dvert_tot != dvert_tot_from) || dvert_array_from==NULL || dvert_array==NULL) { + if (ob == ob_from || dvert_tot == 0 || (dvert_tot != dvert_tot_from) || dvert_array_from == NULL || dvert_array == NULL) { if (dvert_array) MEM_freeN(dvert_array); if (dvert_array_from) MEM_freeN(dvert_array_from); @@ -345,29 +345,29 @@ int ED_vgroup_copy_array(Object *ob, Object *ob_from) /* do the copy */ BLI_freelistN(&ob->defbase); BLI_duplicatelist(&ob->defbase, &ob_from->defbase); - ob->actdef= ob_from->actdef; + ob->actdef = ob_from->actdef; if (defbase_tot_from < defbase_tot) { /* correct vgroup indices because the number of vgroups is being reduced. */ - int *remap= MEM_mallocN(sizeof(int) * (defbase_tot + 1), __func__); - for (i=0; i<=defbase_tot_from; i++) remap[i]= i; - for (; i<=defbase_tot; i++) remap[i]= 0; /* can't use these, so disable */ + int *remap = MEM_mallocN(sizeof(int) * (defbase_tot + 1), __func__); + for (i = 0; i <= defbase_tot_from; i++) remap[i] = i; + for (; i <= defbase_tot; i++) remap[i] = 0; /* can't use these, so disable */ vgroup_remap_update_users(ob, remap); MEM_freeN(remap); } - dvf= dvert_array_from; - dv= dvert_array; + dvf = dvert_array_from; + dv = dvert_array; - for (i=0; idw) MEM_freeN((*dv)->dw); - *(*dv)= *(*dvf); + *(*dv) = *(*dvf); if ((*dv)->dw) - (*dv)->dw= MEM_dupallocN((*dv)->dw); + (*dv)->dw = MEM_dupallocN((*dv)->dw); } MEM_freeN(dvert_array); @@ -386,13 +386,13 @@ static void ED_vgroup_nr_vert_add(Object *ob, /* add the vert to the deform group with the * specified number */ - MDeformVert *dvert= NULL; - int tot; + MDeformVert *dvert = NULL; + int tot; /* get the vert */ ED_vgroup_give_array(ob->data, &dvert, &tot); - if (dvert==NULL) + if (dvert == NULL) return; /* check that vertnum is valid before trying to get the relevant dvert */ @@ -401,7 +401,7 @@ static void ED_vgroup_nr_vert_add(Object *ob, if (dvert) { - MDeformVert *dv= &dvert[vertnum]; + MDeformVert *dv = &dvert[vertnum]; MDeformWeight *dw; /* Lets first check to see if this vert is @@ -409,27 +409,27 @@ static void ED_vgroup_nr_vert_add(Object *ob, * lets update it */ - dw= defvert_find_index(dv, def_nr); + dw = defvert_find_index(dv, def_nr); if (dw) { - switch(assignmode) { - case WEIGHT_REPLACE: - dw->weight = weight; - break; - case WEIGHT_ADD: - dw->weight += weight; - if (dw->weight >= 1.0f) - dw->weight = 1.0f; - break; - case WEIGHT_SUBTRACT: - dw->weight -= weight; - /* if the weight is zero or less then - * remove the vert from the deform group - */ - if (dw->weight <= 0.0f) { - defvert_remove_group(dv, dw); - } - break; + switch (assignmode) { + case WEIGHT_REPLACE: + dw->weight = weight; + break; + case WEIGHT_ADD: + dw->weight += weight; + if (dw->weight >= 1.0f) + dw->weight = 1.0f; + break; + case WEIGHT_SUBTRACT: + dw->weight -= weight; + /* if the weight is zero or less then + * remove the vert from the deform group + */ + if (dw->weight <= 0.0f) { + defvert_remove_group(dv, dw); + } + break; } } else { @@ -437,21 +437,21 @@ static void ED_vgroup_nr_vert_add(Object *ob, * we must take a different form of action ... */ - switch(assignmode) { - case WEIGHT_SUBTRACT: - /* if we are subtracting then we don't - * need to do anything - */ - return; + switch (assignmode) { + case WEIGHT_SUBTRACT: + /* if we are subtracting then we don't + * need to do anything + */ + return; - case WEIGHT_REPLACE: - case WEIGHT_ADD: - /* if we are doing an additive assignment, then - * we need to create the deform weight - */ + case WEIGHT_REPLACE: + case WEIGHT_ADD: + /* if we are doing an additive assignment, then + * we need to create the deform weight + */ - /* we checked if the vertex was added before so no need to test again, simply add */ - defvert_add_index_notest(dv, def_nr, weight); + /* we checked if the vertex was added before so no need to test again, simply add */ + defvert_add_index_notest(dv, def_nr, weight); } } } @@ -463,9 +463,9 @@ void ED_vgroup_vert_add(Object *ob, bDeformGroup *dg, int vertnum, float weight, /* add the vert to the deform group with the * specified assign mode */ - const int def_nr= BLI_findindex(&ob->defbase, dg); + const int def_nr = BLI_findindex(&ob->defbase, dg); - MDeformVert *dv= NULL; + MDeformVert *dv = NULL; int tot; /* get the deform group number, exit if @@ -475,7 +475,7 @@ void ED_vgroup_vert_add(Object *ob, bDeformGroup *dg, int vertnum, float weight, /* if there's no deform verts then create some, */ - if (ED_vgroup_give_array(ob->data, &dv, &tot) && dv==NULL) + if (ED_vgroup_give_array(ob->data, &dv, &tot) && dv == NULL) ED_vgroup_data_create(ob->data); /* call another function to do the work @@ -484,17 +484,17 @@ void ED_vgroup_vert_add(Object *ob, bDeformGroup *dg, int vertnum, float weight, } /* mesh object mode, lattice can be in editmode */ -void ED_vgroup_vert_remove(Object *ob, bDeformGroup *dg, int vertnum) +void ED_vgroup_vert_remove(Object *ob, bDeformGroup *dg, int vertnum) { /* This routine removes the vertex from the specified * deform group. */ /* TODO, this is slow in a loop, better pass def_nr directly, but leave for later... - campbell */ - const int def_nr= BLI_findindex(&ob->defbase, dg); + const int def_nr = BLI_findindex(&ob->defbase, dg); if (def_nr != -1) { - MDeformVert *dvert= NULL; + MDeformVert *dvert = NULL; int tot; /* get the deform vertices corresponding to the @@ -503,10 +503,10 @@ void ED_vgroup_vert_remove(Object *ob, bDeformGroup *dg, int vertnum) ED_vgroup_give_array(ob->data, &dvert, &tot); if (dvert) { - MDeformVert *dv= &dvert[vertnum]; + MDeformVert *dv = &dvert[vertnum]; MDeformWeight *dw; - dw= defvert_find_index(dv, def_nr); + dw = defvert_find_index(dv, def_nr); defvert_remove_group(dv, dw); /* dw can be NULL */ } } @@ -514,20 +514,20 @@ void ED_vgroup_vert_remove(Object *ob, bDeformGroup *dg, int vertnum) static float get_vert_def_nr(Object *ob, const int def_nr, const int vertnum) { - MDeformVert *dv= NULL; + MDeformVert *dv = NULL; BMVert *eve; Mesh *me; /* get the deform vertices corresponding to the vertnum */ - if (ob->type==OB_MESH) { - me= ob->data; + if (ob->type == OB_MESH) { + me = ob->data; if (me->edit_btmesh) { - eve= BM_vert_at_index(me->edit_btmesh->bm, vertnum); + eve = BM_vert_at_index(me->edit_btmesh->bm, vertnum); if (!eve) { return 0.0f; } - dv= CustomData_bmesh_get(&me->edit_btmesh->bm->vdata, eve->head.data, CD_MDEFORMVERT); + dv = CustomData_bmesh_get(&me->edit_btmesh->bm->vdata, eve->head.data, CD_MDEFORMVERT); } else { if (vertnum >= me->totvert) { @@ -536,11 +536,11 @@ static float get_vert_def_nr(Object *ob, const int def_nr, const int vertnum) dv = &me->dvert[vertnum]; } } - else if (ob->type==OB_LATTICE) { - Lattice *lt= vgroup_edit_lattice(ob); + else if (ob->type == OB_LATTICE) { + Lattice *lt = vgroup_edit_lattice(ob); if (lt->dvert) { - if (vertnum >= lt->pntsu*lt->pntsv*lt->pntsw) { + if (vertnum >= lt->pntsu * lt->pntsv * lt->pntsw) { return 0.0f; } dv = <->dvert[vertnum]; @@ -548,7 +548,7 @@ static float get_vert_def_nr(Object *ob, const int def_nr, const int vertnum) } if (dv) { - MDeformWeight *dw= defvert_find_index(dv, def_nr); + MDeformWeight *dw = defvert_find_index(dv, def_nr); if (dw) { return dw->weight; } @@ -559,7 +559,7 @@ static float get_vert_def_nr(Object *ob, const int def_nr, const int vertnum) float ED_vgroup_vert_weight(Object *ob, bDeformGroup *dg, int vertnum) { - const int def_nr= BLI_findindex(&ob->defbase, dg); + const int def_nr = BLI_findindex(&ob->defbase, dg); if (def_nr == -1) { return -1; @@ -569,8 +569,8 @@ float ED_vgroup_vert_weight(Object *ob, bDeformGroup *dg, int vertnum) } void ED_vgroup_select_by_name(Object *ob, const char *name) -{ /* note: ob->actdef==0 signals on painting to create a new one, if a bone in posemode is selected */ - ob->actdef= defgroup_name_index(ob, name) + 1; +{ /* note: ob->actdef==0 signals on painting to create a new one, if a bone in posemode is selected */ + ob->actdef = defgroup_name_index(ob, name) + 1; } /********************** Operator Implementations *********************/ @@ -578,7 +578,7 @@ void ED_vgroup_select_by_name(Object *ob, const char *name) /* only in editmode */ static void vgroup_select_verts(Object *ob, int select) { - const int def_nr= ob->actdef-1; + const int def_nr = ob->actdef - 1; MDeformVert *dv; if (!BLI_findlink(&ob->defbase, def_nr)) { @@ -586,7 +586,7 @@ static void vgroup_select_verts(Object *ob, int select) } if (ob->type == OB_MESH) { - Mesh *me= ob->data; + Mesh *me = ob->data; if (me->edit_btmesh) { BMEditMesh *em = me->edit_btmesh; @@ -595,7 +595,7 @@ static void vgroup_select_verts(Object *ob, int select) BM_ITER_MESH (eve, &iter, em->bm, BM_VERTS_OF_MESH) { if (!BM_elem_flag_test(eve, BM_ELEM_HIDDEN)) { - dv= CustomData_bmesh_get(&em->bm->vdata, eve->head.data, CD_MDEFORMVERT); + dv = CustomData_bmesh_get(&em->bm->vdata, eve->head.data, CD_MDEFORMVERT); if (defvert_find_index(dv, def_nr)) { BM_vert_select_set(em->bm, eve, select); } @@ -603,7 +603,7 @@ static void vgroup_select_verts(Object *ob, int select) } /* this has to be called, because this function operates on vertices only */ - if (select) EDBM_select_flush(em); // vertices to edges/faces + if (select) EDBM_select_flush(em); // vertices to edges/faces else EDBM_deselect_flush(em); } else { @@ -615,11 +615,11 @@ static void vgroup_select_verts(Object *ob, int select) mv = me->mvert; dv = me->dvert; - for (i=0; itotvert; i++, mv++, dv++) { + for (i = 0; i < me->totvert; i++, mv++, dv++) { if (!(mv->flag & ME_HIDE)) { if (defvert_find_index(dv, def_nr)) { - if (select) mv->flag |= SELECT; - else mv->flag &= ~SELECT; + if (select) mv->flag |= SELECT; + else mv->flag &= ~SELECT; } } } @@ -629,19 +629,19 @@ static void vgroup_select_verts(Object *ob, int select) } } else if (ob->type == OB_LATTICE) { - Lattice *lt= vgroup_edit_lattice(ob); + Lattice *lt = vgroup_edit_lattice(ob); if (lt->dvert) { BPoint *bp; int a, tot; - dv= lt->dvert; + dv = lt->dvert; - tot= lt->pntsu*lt->pntsv*lt->pntsw; - for (a=0, bp= lt->def; apntsu * lt->pntsv * lt->pntsw; + for (a = 0, bp = lt->def; a < tot; a++, bp++, dv++) { if (defvert_find_index(dv, def_nr)) { - if (select) bp->f1 |= SELECT; - else bp->f1 &= ~SELECT; + if (select) bp->f1 |= SELECT; + else bp->f1 &= ~SELECT; } } } @@ -653,10 +653,10 @@ static void vgroup_duplicate(Object *ob) bDeformGroup *dg, *cdg; char name[sizeof(dg->name)]; MDeformWeight *dw_org, *dw_cpy; - MDeformVert **dvert_array=NULL; - int i, idg, icdg, dvert_tot=0; + MDeformVert **dvert_array = NULL; + int i, idg, icdg, dvert_tot = 0; - dg = BLI_findlink(&ob->defbase, (ob->actdef-1)); + dg = BLI_findlink(&ob->defbase, (ob->actdef - 1)); if (!dg) return; @@ -673,16 +673,16 @@ static void vgroup_duplicate(Object *ob) BLI_addtail(&ob->defbase, cdg); - idg = (ob->actdef-1); + idg = (ob->actdef - 1); ob->actdef = BLI_countlist(&ob->defbase); - icdg = (ob->actdef-1); + icdg = (ob->actdef - 1); /* TODO, we might want to allow only copy selected verts here? - campbell */ ED_vgroup_give_parray(ob->data, &dvert_array, &dvert_tot, FALSE); if (dvert_array) { for (i = 0; i < dvert_tot; i++) { - MDeformVert *dv= dvert_array[i]; + MDeformVert *dv = dvert_array[i]; dw_org = defvert_find_index(dv, idg); if (dw_org) { /* defvert_verify_index re-allocs org so need to store the weight first */ @@ -698,9 +698,9 @@ static void vgroup_duplicate(Object *ob) static void vgroup_normalize(Object *ob) { MDeformWeight *dw; - MDeformVert *dv, **dvert_array=NULL; - int i, dvert_tot=0; - const int def_nr= ob->actdef-1; + MDeformVert *dv, **dvert_array = NULL; + int i, dvert_tot = 0; + const int def_nr = ob->actdef - 1; const int use_vert_sel = (ob->type == OB_MESH && ((Mesh *)ob->data)->editflag & ME_EDIT_VERT_SEL) != 0; @@ -751,7 +751,7 @@ static void vgroup_normalize(Object *ob) /* This finds all of the vertices face-connected to vert by an edge and returns a * MEM_allocated array of indices of size count. * count is an int passed by reference so it can be assigned the value of the length here. */ -static int* getSurroundingVerts(Mesh *me, int vert, int *count) +static int *getSurroundingVerts(Mesh *me, int vert, int *count) { MPoly *mp = me->mpoly; int i = me->totpoly; @@ -778,12 +778,12 @@ static int* getSurroundingVerts(Mesh *me, int vert, int *count) } else if (!j) { /* We are on the last corner. */ - a = (ml-1)->v; + a = (ml - 1)->v; b = me->mloop[mp->loopstart].v; } else { - a = (ml-1)->v; - b = (ml+1)->v; + a = (ml - 1)->v; + b = (ml + 1)->v; } /* Append a and b verts to array, if not yet present. */ @@ -823,7 +823,7 @@ static void getSingleCoordinate(MVert *points, int count, float coord[3]) for (i = 0; i < count; i++) { add_v3_v3(coord, points[i].co); } - mul_v3_fl(coord, 1.0f/count); + mul_v3_fl(coord, 1.0f / count); } /* given a plane and a start and end position, @@ -853,7 +853,7 @@ static void getVerticalAndHorizontalChange(const float norm[3], float d, const f // I need the derived mesh to be forgotten so the positions are recalculated with weight changes (see dm_deform_recalc) static void dm_deform_clear(DerivedMesh *dm, Object *ob) { - if (ob->derivedDeform && (ob->derivedDeform)==dm) { + if (ob->derivedDeform && (ob->derivedDeform) == dm) { ob->derivedDeform->needsFree = 1; ob->derivedDeform->release(ob->derivedDeform); ob->derivedDeform = NULL; @@ -865,7 +865,7 @@ static void dm_deform_clear(DerivedMesh *dm, Object *ob) } /* recalculate the deformation */ -static DerivedMesh* dm_deform_recalc(Scene *scene, Object *ob) +static DerivedMesh *dm_deform_recalc(Scene *scene, Object *ob) { return mesh_get_derived_deform(scene, ob, CD_MASK_BAREMESH); } @@ -885,19 +885,19 @@ static void moveCloserToDistanceFromPlane(Scene *scene, Object *ob, Mesh *me, in DerivedMesh *dm; MDeformWeight *dw; MVert m; - MDeformVert *dvert = me->dvert+index; + MDeformVert *dvert = me->dvert + index; int totweight = dvert->totweight; float oldw = 0; float oldPos[3] = {0}; float vc, hc, dist = 0.0f; int i, k; - float (*changes)[2] = MEM_mallocN(sizeof(float *)*totweight*2, "vertHorzChange"); - float *dists = MEM_mallocN(sizeof(float)*totweight, "distance"); + float (*changes)[2] = MEM_mallocN(sizeof(float *) * totweight * 2, "vertHorzChange"); + float *dists = MEM_mallocN(sizeof(float) * totweight, "distance"); /* track if up or down moved it closer for each bone */ - int *upDown = MEM_callocN(sizeof(int)*totweight, "upDownTracker"); + int *upDown = MEM_callocN(sizeof(int) * totweight, "upDownTracker"); - int *dwIndices = MEM_callocN(sizeof(int)*totweight, "dwIndexTracker"); + int *dwIndices = MEM_callocN(sizeof(int) * totweight, "dwIndexTracker"); float distToStart; int bestIndex = 0; char wasChange; @@ -912,11 +912,11 @@ static void moveCloserToDistanceFromPlane(Scene *scene, Object *ob, Mesh *me, in distToStart = dot_v3v3(norm, oldPos) + d; if (distToBe == originalDistToBe) { - distToBe += distToStart - distToStart*strength; + distToBe += distToStart - distToStart * strength; } for (i = 0; i < totweight; i++) { dwIndices[i] = i; - dw = (dvert->dw+i); + dw = (dvert->dw + i); vc = hc = 0; if (!dw->weight) { changes[i][0] = 0; @@ -930,10 +930,10 @@ static void moveCloserToDistanceFromPlane(Scene *scene, Object *ob, Mesh *me, in } oldw = dw->weight; if (k) { - dw->weight *= 1+cp; + dw->weight *= 1 + cp; } else { - dw->weight /= 1+cp; + dw->weight /= 1 + cp; } if (dw->weight == oldw) { changes[i][0] = 0; @@ -976,7 +976,7 @@ static void moveCloserToDistanceFromPlane(Scene *scene, Object *ob, Mesh *me, in float tf; int ti; bestIndex = k; - for (i = k+1; i < totweight; i++) { + for (i = k + 1; i < totweight; i++) { dist = dists[i]; if (fabs(dist) > fabs(dists[i])) { @@ -1009,7 +1009,7 @@ static void moveCloserToDistanceFromPlane(Scene *scene, Object *ob, Mesh *me, in bestIndex = -1; // find the best change with an acceptable horizontal change for (i = 0; i < totweight; i++) { - if (fabs(changes[i][0]) > fabs(changes[i][1]*2.0f)) { + if (fabs(changes[i][0]) > fabs(changes[i][1] * 2.0f)) { bestIndex = i; break; } @@ -1025,13 +1025,13 @@ static void moveCloserToDistanceFromPlane(Scene *scene, Object *ob, Mesh *me, in } lastIndex = bestIndex; wasUp = upDown[bestIndex]; - dw = (dvert->dw+dwIndices[bestIndex]); + dw = (dvert->dw + dwIndices[bestIndex]); oldw = dw->weight; if (upDown[bestIndex]) { - dw->weight *= 1+cp; + dw->weight *= 1 + cp; } else { - dw->weight /= 1+cp; + dw->weight /= 1 + cp; } if (dw->weight > 1) { dw->weight = 1; @@ -1043,8 +1043,9 @@ static void moveCloserToDistanceFromPlane(Scene *scene, Object *ob, Mesh *me, in dm_deform_clear(dm, ob); dm = NULL; } } - } while (wasChange && (distToStart-distToBe)/fabsf(distToStart-distToBe) == - (dists[bestIndex]-distToBe)/fabsf(dists[bestIndex]-distToBe)); + } while (wasChange && ((distToStart - distToBe) / fabsf(distToStart - distToBe) == + (dists[bestIndex] - distToBe) / fabsf(dists[bestIndex] - distToBe))); + MEM_freeN(upDown); MEM_freeN(changes); MEM_freeN(dists); @@ -1064,10 +1065,10 @@ static void vgroup_fix(Scene *scene, Object *ob, float distToBe, float strength, return; for (i = 0; i < me->totvert && mvert; i++, mvert++) { if (mvert->flag & SELECT) { - int count=0; + int count = 0; if ((verts = getSurroundingVerts(me, i, &count))) { MVert m; - MVert *p = MEM_callocN(sizeof(MVert)*(count), "deformedPoints"); + MVert *p = MEM_callocN(sizeof(MVert) * (count), "deformedPoints"); int k; DerivedMesh *dm = mesh_get_derived_deform(scene, ob, CD_MASK_BAREMESH); @@ -1084,7 +1085,7 @@ static void vgroup_fix(Scene *scene, Object *ob, float distToBe, float strength, getSingleCoordinate(p, count, coord); dm->getVert(dm, i, &m); sub_v3_v3v3(norm, m.co, coord); - mag= normalize_v3(norm); + mag = normalize_v3(norm); if (mag) { /* zeros fix */ d = -dot_v3v3(norm, coord); /* dist = (dot_v3v3(norm, m.co) + d); */ /* UNUSED */ @@ -1102,9 +1103,9 @@ static void vgroup_fix(Scene *scene, Object *ob, float distToBe, float strength, static void vgroup_levels(Object *ob, float offset, float gain) { MDeformWeight *dw; - MDeformVert *dv, **dvert_array=NULL; - int i, dvert_tot=0; - const int def_nr= ob->actdef-1; + MDeformVert *dv, **dvert_array = NULL; + int i, dvert_tot = 0; + const int def_nr = ob->actdef - 1; const int use_vert_sel = (ob->type == OB_MESH && ((Mesh *)ob->data)->editflag & ME_EDIT_VERT_SEL) != 0; @@ -1137,9 +1138,9 @@ static void vgroup_levels(Object *ob, float offset, float gain) /* TODO - select between groups */ static void vgroup_normalize_all(Object *ob, int lock_active) { - MDeformVert *dv, **dvert_array=NULL; - int i, dvert_tot=0; - const int def_nr= ob->actdef-1; + MDeformVert *dv, **dvert_array = NULL; + int i, dvert_tot = 0; + const int def_nr = ob->actdef - 1; const int use_vert_sel = (ob->type == OB_MESH && ((Mesh *)ob->data)->editflag & ME_EDIT_VERT_SEL) != 0; @@ -1183,17 +1184,17 @@ static void vgroup_lock_all(Object *ob, int action) bDeformGroup *dg; if (action == SEL_TOGGLE) { - action= SEL_SELECT; - for (dg= ob->defbase.first; dg; dg= dg->next) { + action = SEL_SELECT; + for (dg = ob->defbase.first; dg; dg = dg->next) { if (dg->flag & DG_LOCK_WEIGHT) { - action= SEL_DESELECT; + action = SEL_DESELECT; break; } } } - for (dg= ob->defbase.first; dg; dg= dg->next) { - switch(action) { + for (dg = ob->defbase.first; dg; dg = dg->next) { + switch (action) { case SEL_SELECT: dg->flag |= DG_LOCK_WEIGHT; break; @@ -1210,9 +1211,9 @@ static void vgroup_lock_all(Object *ob, int action) static void vgroup_invert(Object *ob, const short auto_assign, const short auto_remove) { MDeformWeight *dw; - MDeformVert *dv, **dvert_array=NULL; - int i, dvert_tot=0; - const int def_nr= ob->actdef-1; + MDeformVert *dv, **dvert_array = NULL; + int i, dvert_tot = 0; + const int def_nr = ob->actdef - 1; const int use_vert_sel = (ob->type == OB_MESH && ((Mesh *)ob->data)->editflag & ME_EDIT_VERT_SEL) != 0; if (!BLI_findlink(&ob->defbase, def_nr)) { @@ -1230,10 +1231,10 @@ static void vgroup_invert(Object *ob, const short auto_assign, const short auto_ } if (auto_assign) { - dw= defvert_verify_index(dv, def_nr); + dw = defvert_verify_index(dv, def_nr); } else { - dw= defvert_find_index(dv, def_nr); + dw = defvert_find_index(dv, def_nr); } if (dw) { @@ -1253,8 +1254,8 @@ static void vgroup_blend(Object *ob, const float fac) { MDeformVert *dv; MDeformWeight *dw; - int i, dvert_tot=0; - const int def_nr= ob->actdef - 1; + int i, dvert_tot = 0; + const int def_nr = ob->actdef - 1; BLI_assert(fac >= 0.0 && fac <= 1.0f); @@ -1303,14 +1304,14 @@ static void vgroup_blend(Object *ob, const float fac) int i1 /* , i2 */; /* i1 is always the selected one */ if (sel1) { - i1= BM_elem_index_get(eed->v1); + i1 = BM_elem_index_get(eed->v1); /* i2= BM_elem_index_get(eed->v2); */ /* UNUSED */ - eve= eed->v2; + eve = eed->v2; } else { /* i2= BM_elem_index_get(eed->v1); */ /* UNUSED */ - i1= BM_elem_index_get(eed->v2); - eve= eed->v1; + i1 = BM_elem_index_get(eed->v2); + eve = eed->v1; } dv = CustomData_bmesh_get(&bm->vdata, eve->head.data, CD_MDEFORMVERT); @@ -1384,9 +1385,9 @@ static void vgroup_blend(Object *ob, const float fac) static void vgroup_clean(Object *ob, const float epsilon, int keep_single) { MDeformWeight *dw; - MDeformVert *dv, **dvert_array=NULL; - int i, dvert_tot=0; - const int def_nr= ob->actdef-1; + MDeformVert *dv, **dvert_array = NULL; + int i, dvert_tot = 0; + const int def_nr = ob->actdef - 1; const int use_vert_sel = (ob->type == OB_MESH && ((Mesh *)ob->data)->editflag & ME_EDIT_VERT_SEL) != 0; if (!BLI_findlink(&ob->defbase, def_nr)) { @@ -1404,11 +1405,11 @@ static void vgroup_clean(Object *ob, const float epsilon, int keep_single) continue; } - dw= defvert_find_index(dv, def_nr); + dw = defvert_find_index(dv, def_nr); if (dw) { if (dw->weight <= epsilon) { - if (keep_single==FALSE || dv->totweight > 1) { + if (keep_single == FALSE || dv->totweight > 1) { defvert_remove_group(dv, dw); /* dw can be NULL */ } } @@ -1421,7 +1422,7 @@ static void vgroup_clean(Object *ob, const float epsilon, int keep_single) static void vgroup_clean_all(Object *ob, const float epsilon, const int keep_single) { - MDeformVert **dvert_array=NULL; + MDeformVert **dvert_array = NULL; int i, dvert_tot = 0; const int use_vert_sel = (ob->type == OB_MESH && ((Mesh *)ob->data)->editflag & ME_EDIT_VERT_SEL) != 0; @@ -1439,14 +1440,14 @@ static void vgroup_clean_all(Object *ob, const float epsilon, const int keep_sin continue; } - j= dv->totweight; + j = dv->totweight; while (j--) { if (keep_single && dv->totweight == 1) break; - dw= dv->dw + j; + dw = dv->dw + j; if (dw->weight <= epsilon) { defvert_remove_group(dv, dw); @@ -1474,14 +1475,14 @@ static void dvert_mirror_op(MDeformVert *dvert, MDeformVert *dvert_mirr, SWAP(MDeformVert, *dvert, *dvert_mirr); } else { - MDeformWeight *dw= defvert_find_index(dvert, act_vgroup); - MDeformWeight *dw_mirr= defvert_find_index(dvert_mirr, act_vgroup); + MDeformWeight *dw = defvert_find_index(dvert, act_vgroup); + MDeformWeight *dw_mirr = defvert_find_index(dvert_mirr, act_vgroup); if (dw || dw_mirr) { if (dw_mirr == NULL) - dw_mirr= defvert_verify_index(dvert_mirr, act_vgroup); + dw_mirr = defvert_verify_index(dvert_mirr, act_vgroup); if (dw == NULL) - dw= defvert_verify_index(dvert, act_vgroup); + dw = defvert_verify_index(dvert, act_vgroup); SWAP(float, dw->weight, dw_mirr->weight); } @@ -1531,19 +1532,19 @@ void ED_vgroup_mirror(Object *ob, const short mirror_weights, const short flip_v BMVert *eve, *eve_mirr; MDeformVert *dvert, *dvert_mirr; short sel, sel_mirr; - int *flip_map, flip_map_len; - const int def_nr= ob->actdef-1; + int *flip_map, flip_map_len; + const int def_nr = ob->actdef - 1; - if ( (mirror_weights==0 && flip_vgroups==0) || + if ( (mirror_weights == 0 && flip_vgroups == 0) || (BLI_findlink(&ob->defbase, def_nr) == NULL) ) { return; } if (flip_vgroups) { - flip_map= all_vgroups ? - defgroup_flip_map(ob, &flip_map_len, FALSE) : - defgroup_flip_map_single(ob, &flip_map_len, FALSE, def_nr); + flip_map = all_vgroups ? + defgroup_flip_map(ob, &flip_map_len, FALSE) : + defgroup_flip_map_single(ob, &flip_map_len, FALSE, def_nr); BLI_assert(flip_map != NULL); @@ -1553,13 +1554,13 @@ void ED_vgroup_mirror(Object *ob, const short mirror_weights, const short flip_v } } else { - flip_map= NULL; - flip_map_len= 0; + flip_map = NULL; + flip_map_len = 0; } /* only the active group */ if (ob->type == OB_MESH) { - Mesh *me= ob->data; + Mesh *me = ob->data; BMEditMesh *em = me->edit_btmesh; if (em) { @@ -1573,13 +1574,13 @@ void ED_vgroup_mirror(Object *ob, const short mirror_weights, const short flip_v /* Go through the list of editverts and assign them */ BM_ITER_MESH (eve, &iter, em->bm, BM_VERTS_OF_MESH) { - if ((eve_mirr= EDBM_verts_mirror_get(em, eve))) { - sel= BM_elem_flag_test(eve, BM_ELEM_SELECT); - sel_mirr= BM_elem_flag_test(eve_mirr, BM_ELEM_SELECT); + if ((eve_mirr = EDBM_verts_mirror_get(em, eve))) { + sel = BM_elem_flag_test(eve, BM_ELEM_SELECT); + sel_mirr = BM_elem_flag_test(eve_mirr, BM_ELEM_SELECT); if ((sel || sel_mirr) && (eve != eve_mirr)) { - dvert= CustomData_bmesh_get(&em->bm->vdata, eve->head.data, CD_MDEFORMVERT); - dvert_mirr= CustomData_bmesh_get(&em->bm->vdata, eve_mirr->head.data, CD_MDEFORMVERT); + dvert = CustomData_bmesh_get(&em->bm->vdata, eve->head.data, CD_MDEFORMVERT); + dvert_mirr = CustomData_bmesh_get(&em->bm->vdata, eve_mirr->head.data, CD_MDEFORMVERT); if (dvert && dvert_mirr) { VGROUP_MIRR_OP; } @@ -1603,29 +1604,29 @@ void ED_vgroup_mirror(Object *ob, const short mirror_weights, const short flip_v } if (!use_vert_sel) { - sel= sel_mirr= TRUE; + sel = sel_mirr = TRUE; } /* tag verts we have used */ - for (vidx= 0, mv= me->mvert; vidx < me->totvert; vidx++, mv++) { + for (vidx = 0, mv = me->mvert; vidx < me->totvert; vidx++, mv++) { mv->flag &= ~ME_VERT_TMP_TAG; } - for (vidx= 0, mv= me->mvert; vidx < me->totvert; vidx++, mv++) { + for (vidx = 0, mv = me->mvert; vidx < me->totvert; vidx++, mv++) { if ( ((mv->flag & ME_VERT_TMP_TAG) == 0) && - ((vidx_mirr= mesh_get_x_mirror_vert(ob, vidx)) != -1) && + ((vidx_mirr = mesh_get_x_mirror_vert(ob, vidx)) != -1) && (vidx != vidx_mirr) && - ((((mv_mirr= me->mvert + vidx_mirr)->flag) & ME_VERT_TMP_TAG) == 0)) + ((((mv_mirr = me->mvert + vidx_mirr)->flag) & ME_VERT_TMP_TAG) == 0)) { if (use_vert_sel) { - sel= mv->flag & SELECT; - sel_mirr= mv_mirr->flag & SELECT; + sel = mv->flag & SELECT; + sel_mirr = mv_mirr->flag & SELECT; } if (sel || sel_mirr) { - dvert= &me->dvert[vidx]; - dvert_mirr= &me->dvert[vidx_mirr]; + dvert = &me->dvert[vidx]; + dvert_mirr = &me->dvert[vidx_mirr]; VGROUP_MIRR_OP; } @@ -1637,7 +1638,7 @@ void ED_vgroup_mirror(Object *ob, const short mirror_weights, const short flip_v } } else if (ob->type == OB_LATTICE) { - Lattice *lt= vgroup_edit_lattice(ob); + Lattice *lt = vgroup_edit_lattice(ob); int i1, i2; int u, v, w; int pntsu_half; @@ -1650,27 +1651,27 @@ void ED_vgroup_mirror(Object *ob, const short mirror_weights, const short flip_v /* unlike editmesh we know that by only looping over the first half of * the 'u' indices it will cover all points except the middle which is * ok in this case */ - pntsu_half= lt->pntsu / 2; + pntsu_half = lt->pntsu / 2; - for (w=0; wpntsw; w++) { - for (v=0; vpntsv; v++) { - for (u=0; upntsu - 1) - u; + for (w = 0; w < lt->pntsw; w++) { + for (v = 0; v < lt->pntsv; v++) { + for (u = 0; u < pntsu_half; u++) { + int u_inv = (lt->pntsu - 1) - u; if (u != u_inv) { BPoint *bp, *bp_mirr; - i1= LT_INDEX(lt, u, v, w); - i2= LT_INDEX(lt, u_inv, v, w); + i1 = LT_INDEX(lt, u, v, w); + i2 = LT_INDEX(lt, u_inv, v, w); - bp= <->def[i1]; - bp_mirr= <->def[i2]; + bp = <->def[i1]; + bp_mirr = <->def[i2]; - sel= bp->f1 & SELECT; - sel_mirr= bp_mirr->f1 & SELECT; + sel = bp->f1 & SELECT; + sel_mirr = bp_mirr->f1 & SELECT; if (sel || sel_mirr) { - dvert= <->dvert[i1]; - dvert_mirr= <->dvert[i2]; + dvert = <->dvert[i1]; + dvert_mirr = <->dvert[i2]; VGROUP_MIRR_OP; } @@ -1700,40 +1701,40 @@ static void vgroup_remap_update_users(Object *ob, int *map) * they get deleted the numbers get out of sync, this corrects that */ if (ob->soft) - ob->soft->vertgroup= map[ob->soft->vertgroup]; + ob->soft->vertgroup = map[ob->soft->vertgroup]; - for (md=ob->modifiers.first; md; md=md->next) { + for (md = ob->modifiers.first; md; md = md->next) { if (md->type == eModifierType_Explode) { - emd= (ExplodeModifierData*)md; - emd->vgroup= map[emd->vgroup]; + emd = (ExplodeModifierData *)md; + emd->vgroup = map[emd->vgroup]; } else if (md->type == eModifierType_Cloth) { - clmd= (ClothModifierData*)md; - clsim= clmd->sim_parms; + clmd = (ClothModifierData *)md; + clsim = clmd->sim_parms; if (clsim) { - clsim->vgroup_mass= map[clsim->vgroup_mass]; - clsim->vgroup_bend= map[clsim->vgroup_bend]; - clsim->vgroup_struct= map[clsim->vgroup_struct]; + clsim->vgroup_mass = map[clsim->vgroup_mass]; + clsim->vgroup_bend = map[clsim->vgroup_bend]; + clsim->vgroup_struct = map[clsim->vgroup_struct]; } } } - for (psys=ob->particlesystem.first; psys; psys=psys->next) { - for (a=0; avgroup[a]= map[psys->vgroup[a]]; + for (psys = ob->particlesystem.first; psys; psys = psys->next) { + for (a = 0; a < PSYS_TOT_VG; a++) + psys->vgroup[a] = map[psys->vgroup[a]]; } } static void vgroup_delete_update_users(Object *ob, int id) { - int i, defbase_tot= BLI_countlist(&ob->defbase) + 1; - int *map= MEM_mallocN(sizeof(int) * defbase_tot, "vgroup del"); + int i, defbase_tot = BLI_countlist(&ob->defbase) + 1; + int *map = MEM_mallocN(sizeof(int) * defbase_tot, "vgroup del"); - map[id]= map[0]= 0; - for (i=1; idefbase, dg); + MDeformVert *dvert_array = NULL; + int dvert_tot = 0; + const int def_nr = BLI_findindex(&ob->defbase, dg); assert(def_nr > -1); @@ -1753,10 +1754,10 @@ static void vgroup_delete_object_mode(Object *ob, bDeformGroup *dg) if (dvert_array) { int i, j; MDeformVert *dv; - for (i= 0, dv= dvert_array; i < dvert_tot; i++, dv++) { + for (i = 0, dv = dvert_array; i < dvert_tot; i++, dv++) { MDeformWeight *dw; - dw= defvert_find_index(dv, def_nr); + dw = defvert_find_index(dv, def_nr); defvert_remove_group(dv, dw); /* dw can be NULL */ /* inline, make into a function if anything else needs to do this */ @@ -1778,7 +1779,7 @@ static void vgroup_delete_object_mode(Object *ob, bDeformGroup *dg) if (ob->actdef > def_nr) ob->actdef--; if (ob->actdef < 1 && ob->defbase.first) - ob->actdef= 1; + ob->actdef = 1; } @@ -1787,10 +1788,10 @@ static void vgroup_delete_object_mode(Object *ob, bDeformGroup *dg) static void vgroup_active_remove_verts(Object *ob, const int allverts, bDeformGroup *dg) { MDeformVert *dv; - const int def_nr= BLI_findindex(&ob->defbase, dg); + const int def_nr = BLI_findindex(&ob->defbase, dg); if (ob->type == OB_MESH) { - Mesh *me= ob->data; + Mesh *me = ob->data; if (me->edit_btmesh) { BMEditMesh *em = me->edit_btmesh; @@ -1798,7 +1799,7 @@ static void vgroup_active_remove_verts(Object *ob, const int allverts, bDeformGr BMIter iter; BM_ITER_MESH (eve, &iter, em->bm, BM_VERTS_OF_MESH) { - dv= CustomData_bmesh_get(&em->bm->vdata, eve->head.data, CD_MDEFORMVERT); + dv = CustomData_bmesh_get(&em->bm->vdata, eve->head.data, CD_MDEFORMVERT); if (dv && dv->dw && (allverts || BM_elem_flag_test(eve, BM_ELEM_SELECT))) { MDeformWeight *dw = defvert_find_index(dv, def_nr); @@ -1818,7 +1819,7 @@ static void vgroup_active_remove_verts(Object *ob, const int allverts, bDeformGr mv = me->mvert; dv = me->dvert; - for (i=0; itotvert; i++, mv++, dv++) { + for (i = 0; i < me->totvert; i++, mv++, dv++) { if (mv->flag & SELECT) { if (dv->dw && (allverts || (mv->flag & SELECT))) { MDeformWeight *dw = defvert_find_index(dv, def_nr); @@ -1829,17 +1830,17 @@ static void vgroup_active_remove_verts(Object *ob, const int allverts, bDeformGr } } else if (ob->type == OB_LATTICE) { - Lattice *lt= vgroup_edit_lattice(ob); + Lattice *lt = vgroup_edit_lattice(ob); if (lt->dvert) { BPoint *bp; - int i, tot= lt->pntsu*lt->pntsv*lt->pntsw; + int i, tot = lt->pntsu * lt->pntsv * lt->pntsw; - for (i=0, bp= lt->def; idef; i < tot; i++, bp++) { if (allverts || (bp->f1 & SELECT)) { MDeformWeight *dw; - dv= <->dvert[i]; + dv = <->dvert[i]; dw = defvert_find_index(dv, def_nr); defvert_remove_group(dv, dw); /* dw can be NULL */ @@ -1852,7 +1853,7 @@ static void vgroup_active_remove_verts(Object *ob, const int allverts, bDeformGr static void vgroup_delete_edit_mode(Object *ob, bDeformGroup *dg) { int i; - const int dg_index= BLI_findindex(&ob->defbase, dg); + const int dg_index = BLI_findindex(&ob->defbase, dg); assert(dg_index > -1); @@ -1860,32 +1861,32 @@ static void vgroup_delete_edit_mode(Object *ob, bDeformGroup *dg) vgroup_active_remove_verts(ob, TRUE, dg); /* Make sure that any verts with higher indices are adjusted accordingly */ - if (ob->type==OB_MESH) { - Mesh *me= ob->data; + if (ob->type == OB_MESH) { + Mesh *me = ob->data; BMEditMesh *em = me->edit_btmesh; BMIter iter; BMVert *eve; MDeformVert *dvert; BM_ITER_MESH (eve, &iter, em->bm, BM_VERTS_OF_MESH) { - dvert= CustomData_bmesh_get(&em->bm->vdata, eve->head.data, CD_MDEFORMVERT); + dvert = CustomData_bmesh_get(&em->bm->vdata, eve->head.data, CD_MDEFORMVERT); if (dvert) - for (i=0; itotweight; i++) + for (i = 0; i < dvert->totweight; i++) if (dvert->dw[i].def_nr > dg_index) dvert->dw[i].def_nr--; } } - else if (ob->type==OB_LATTICE) { - Lattice *lt= vgroup_edit_lattice(ob); + else if (ob->type == OB_LATTICE) { + Lattice *lt = vgroup_edit_lattice(ob); BPoint *bp; - MDeformVert *dvert= lt->dvert; + MDeformVert *dvert = lt->dvert; int a, tot; if (dvert) { - tot= lt->pntsu*lt->pntsv*lt->pntsw; - for (a=0, bp= lt->def; atotweight; i++) { + tot = lt->pntsu * lt->pntsv * lt->pntsw; + for (a = 0, bp = lt->def; a < tot; a++, bp++, dvert++) { + for (i = 0; i < dvert->totweight; i++) { if (dvert->dw[i].def_nr > dg_index) dvert->dw[i].def_nr--; } @@ -1896,26 +1897,26 @@ static void vgroup_delete_edit_mode(Object *ob, bDeformGroup *dg) vgroup_delete_update_users(ob, dg_index + 1); /* Remove the group */ - BLI_freelinkN (&ob->defbase, dg); + BLI_freelinkN(&ob->defbase, dg); /* Update the active deform index if necessary */ if (ob->actdef > dg_index) ob->actdef--; if (ob->actdef < 1 && ob->defbase.first) - ob->actdef= 1; + ob->actdef = 1; /* remove all dverts */ if (ob->defbase.first == NULL) { - if (ob->type==OB_MESH) { - Mesh *me= ob->data; + if (ob->type == OB_MESH) { + Mesh *me = ob->data; CustomData_free_layer_active(&me->vdata, CD_MDEFORMVERT, me->totvert); - me->dvert= NULL; + me->dvert = NULL; } - else if (ob->type==OB_LATTICE) { - Lattice *lt= vgroup_edit_lattice(ob); + else if (ob->type == OB_LATTICE) { + Lattice *lt = vgroup_edit_lattice(ob); if (lt->dvert) { MEM_freeN(lt->dvert); - lt->dvert= NULL; + lt->dvert = NULL; } } } @@ -1926,7 +1927,7 @@ static int vgroup_object_in_edit_mode(Object *ob) if (ob->type == OB_MESH) return (BMEdit_FromObject(ob) != NULL); else if (ob->type == OB_LATTICE) - return (((Lattice*)ob->data)->editlatt != NULL); + return (((Lattice *)ob->data)->editlatt != NULL); return 0; } @@ -1945,7 +1946,7 @@ static int vgroup_object_in_wpaint_vert_select(Object *ob) static void vgroup_delete(Object *ob) { - bDeformGroup *dg = BLI_findlink(&ob->defbase, ob->actdef-1); + bDeformGroup *dg = BLI_findlink(&ob->defbase, ob->actdef - 1); if (!dg) return; @@ -1958,16 +1959,16 @@ static void vgroup_delete(Object *ob) static void vgroup_delete_all(Object *ob) { /* Remove all DVerts */ - if (ob->type==OB_MESH) { - Mesh *me= ob->data; + if (ob->type == OB_MESH) { + Mesh *me = ob->data; CustomData_free_layer_active(&me->vdata, CD_MDEFORMVERT, me->totvert); - me->dvert= NULL; + me->dvert = NULL; } - else if (ob->type==OB_LATTICE) { - Lattice *lt= vgroup_edit_lattice(ob); + else if (ob->type == OB_LATTICE) { + Lattice *lt = vgroup_edit_lattice(ob); if (lt->dvert) { MEM_freeN(lt->dvert); - lt->dvert= NULL; + lt->dvert = NULL; } } @@ -1975,20 +1976,20 @@ static void vgroup_delete_all(Object *ob) BLI_freelistN(&ob->defbase); /* Fix counters/indices */ - ob->actdef= 0; + ob->actdef = 0; } /* only in editmode */ static void vgroup_assign_verts(Object *ob, const float weight) { MDeformVert *dv; - const int def_nr= ob->actdef-1; + const int def_nr = ob->actdef - 1; if (!BLI_findlink(&ob->defbase, def_nr)) return; if (ob->type == OB_MESH) { - Mesh *me= ob->data; + Mesh *me = ob->data; if (me->edit_btmesh) { BMEditMesh *em = me->edit_btmesh; @@ -2002,10 +2003,10 @@ static void vgroup_assign_verts(Object *ob, const float weight) BM_ITER_MESH (eve, &iter, em->bm, BM_VERTS_OF_MESH) { if (BM_elem_flag_test(eve, BM_ELEM_SELECT)) { MDeformWeight *dw; - dv= CustomData_bmesh_get(&em->bm->vdata, eve->head.data, CD_MDEFORMVERT); /* can be NULL */ - dw= defvert_verify_index(dv, def_nr); + dv = CustomData_bmesh_get(&em->bm->vdata, eve->head.data, CD_MDEFORMVERT); /* can be NULL */ + dw = defvert_verify_index(dv, def_nr); if (dw) { - dw->weight= weight; + dw->weight = weight; } } } @@ -2022,35 +2023,35 @@ static void vgroup_assign_verts(Object *ob, const float weight) mv = me->mvert; dv = me->dvert; - for (i=0; itotvert; i++, mv++, dv++) { + for (i = 0; i < me->totvert; i++, mv++, dv++) { if (mv->flag & SELECT) { MDeformWeight *dw; - dw= defvert_verify_index(dv, def_nr); + dw = defvert_verify_index(dv, def_nr); if (dw) { - dw->weight= weight; + dw->weight = weight; } } } } } else if (ob->type == OB_LATTICE) { - Lattice *lt= vgroup_edit_lattice(ob); + Lattice *lt = vgroup_edit_lattice(ob); BPoint *bp; int a, tot; - if (lt->dvert==NULL) + if (lt->dvert == NULL) ED_vgroup_data_create(<->id); - dv= lt->dvert; + dv = lt->dvert; - tot= lt->pntsu*lt->pntsv*lt->pntsw; - for (a=0, bp= lt->def; apntsu * lt->pntsv * lt->pntsw; + for (a = 0, bp = lt->def; a < tot; a++, bp++, dv++) { if (bp->f1 & SELECT) { MDeformWeight *dw; - dw= defvert_verify_index(dv, def_nr); + dw = defvert_verify_index(dv, def_nr); if (dw) { - dw->weight= weight; + dw->weight = weight; } } } @@ -2066,7 +2067,7 @@ static void vgroup_remove_verts(Object *ob, int allverts) * active group index */ bDeformGroup *dg; - for (dg= ob->defbase.first; dg; dg= dg->next) { + for (dg = ob->defbase.first; dg; dg = dg->next) { vgroup_active_remove_verts(ob, allverts, dg); } } @@ -2075,15 +2076,15 @@ static void vgroup_remove_verts(Object *ob, int allverts) static int vertex_group_poll(bContext *C) { - Object *ob= ED_object_context(C); - ID *data= (ob)? ob->data: NULL; + Object *ob = ED_object_context(C); + ID *data = (ob) ? ob->data : NULL; return (ob && !ob->id.lib && OB_TYPE_SUPPORT_VGROUP(ob->type) && data && !data->lib); } -static int UNUSED_FUNCTION(vertex_group_poll_edit)(bContext *C) +static int UNUSED_FUNCTION(vertex_group_poll_edit) (bContext * C) { - Object *ob= ED_object_context(C); - ID *data= (ob)? ob->data: NULL; + Object *ob = ED_object_context(C); + ID *data = (ob) ? ob->data : NULL; if (!(ob && !ob->id.lib && data && !data->lib)) return 0; @@ -2094,24 +2095,24 @@ static int UNUSED_FUNCTION(vertex_group_poll_edit)(bContext *C) /* editmode _or_ weight paint vertex sel */ static int vertex_group_poll_edit_or_wpaint_vert_select(bContext *C) { - Object *ob= ED_object_context(C); - ID *data= (ob)? ob->data: NULL; + Object *ob = ED_object_context(C); + ID *data = (ob) ? ob->data : NULL; if (!(ob && !ob->id.lib && data && !data->lib)) return 0; - return ( vgroup_object_in_edit_mode(ob) || - vgroup_object_in_wpaint_vert_select(ob) ); + return (vgroup_object_in_edit_mode(ob) || + vgroup_object_in_wpaint_vert_select(ob) ); } static int vertex_group_add_exec(bContext *C, wmOperator *UNUSED(op)) { - Object *ob= ED_object_context(C); + Object *ob = ED_object_context(C); ED_vgroup_add(ob); DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); + WM_event_add_notifier(C, NC_GEOM | ND_DATA, ob->data); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob); return OPERATOR_FINISHED; } @@ -2127,12 +2128,12 @@ void OBJECT_OT_vertex_group_add(wmOperatorType *ot) ot->exec = vertex_group_add_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int vertex_group_remove_exec(bContext *C, wmOperator *op) { - Object *ob= ED_object_context(C); + Object *ob = ED_object_context(C); if (RNA_boolean_get(op->ptr, "all")) vgroup_delete_all(ob); @@ -2140,8 +2141,8 @@ static int vertex_group_remove_exec(bContext *C, wmOperator *op) vgroup_delete(ob); DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); + WM_event_add_notifier(C, NC_GEOM | ND_DATA, ob->data); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob); return OPERATOR_FINISHED; } @@ -2160,7 +2161,7 @@ void OBJECT_OT_vertex_group_remove(wmOperatorType *ot) /* redo operator will fail in this case because vertex groups aren't stored * in local edit mode stack and toggling "all" property will lead to * all groups deleted without way to restore them (see [#29527], sergey) */ - ot->flag = /*OPTYPE_REGISTER|*/OPTYPE_UNDO; + ot->flag = /*OPTYPE_REGISTER|*/ OPTYPE_UNDO; /* properties */ RNA_def_boolean(ot->srna, "all", 0, "All", "Remove from all vertex groups"); @@ -2168,15 +2169,15 @@ void OBJECT_OT_vertex_group_remove(wmOperatorType *ot) static int vertex_group_assign_exec(bContext *C, wmOperator *op) { - ToolSettings *ts= CTX_data_tool_settings(C); - Object *ob= ED_object_context(C); + ToolSettings *ts = CTX_data_tool_settings(C); + Object *ob = ED_object_context(C); if (RNA_boolean_get(op->ptr, "new")) ED_vgroup_add(ob); vgroup_assign_verts(ob, ts->vgroup_weight); DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data); + WM_event_add_notifier(C, NC_GEOM | ND_DATA, ob->data); return OPERATOR_FINISHED; } @@ -2195,7 +2196,7 @@ void OBJECT_OT_vertex_group_assign(wmOperatorType *ot) /* redo operator will fail in this case because vertex group assignment * isn't stored in local edit mode stack and toggling "new" property will * lead to creating plenty of new vertex groups (see [#29527], sergey) */ - ot->flag = /*OPTYPE_REGISTER|*/OPTYPE_UNDO; + ot->flag = /*OPTYPE_REGISTER|*/ OPTYPE_UNDO; /* properties */ RNA_def_boolean(ot->srna, "new", 0, "New", "Assign vertex to new vertex group"); @@ -2203,12 +2204,12 @@ void OBJECT_OT_vertex_group_assign(wmOperatorType *ot) static int vertex_group_remove_from_exec(bContext *C, wmOperator *op) { - Object *ob= ED_object_context(C); + Object *ob = ED_object_context(C); if (RNA_boolean_get(op->ptr, "all")) vgroup_remove_verts(ob, 0); else { - bDeformGroup *dg= BLI_findlink(&ob->defbase, ob->actdef - 1); + bDeformGroup *dg = BLI_findlink(&ob->defbase, ob->actdef - 1); if (dg == NULL) { return OPERATOR_CANCELLED; @@ -2218,7 +2219,7 @@ static int vertex_group_remove_from_exec(bContext *C, wmOperator *op) } DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data); + WM_event_add_notifier(C, NC_GEOM | ND_DATA, ob->data); return OPERATOR_FINISHED; } @@ -2237,7 +2238,7 @@ void OBJECT_OT_vertex_group_remove_from(wmOperatorType *ot) /* redo operator will fail in this case because vertex groups assignment * isn't stored in local edit mode stack and toggling "all" property will lead to * removing vertices from all groups (see [#29527], sergey) */ - ot->flag = /*OPTYPE_REGISTER|*/OPTYPE_UNDO; + ot->flag = /*OPTYPE_REGISTER|*/ OPTYPE_UNDO; /* properties */ RNA_def_boolean(ot->srna, "all", 0, "All", "Remove from all vertex groups"); @@ -2245,13 +2246,13 @@ void OBJECT_OT_vertex_group_remove_from(wmOperatorType *ot) static int vertex_group_select_exec(bContext *C, wmOperator *UNUSED(op)) { - Object *ob= ED_object_context(C); + Object *ob = ED_object_context(C); if (!ob || ob->id.lib) return OPERATOR_CANCELLED; vgroup_select_verts(ob, 1); - WM_event_add_notifier(C, NC_GEOM|ND_SELECT, ob->data); + WM_event_add_notifier(C, NC_GEOM | ND_SELECT, ob->data); return OPERATOR_FINISHED; } @@ -2267,15 +2268,15 @@ void OBJECT_OT_vertex_group_select(wmOperatorType *ot) ot->exec = vertex_group_select_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int vertex_group_deselect_exec(bContext *C, wmOperator *UNUSED(op)) { - Object *ob= ED_object_context(C); + Object *ob = ED_object_context(C); vgroup_select_verts(ob, 0); - WM_event_add_notifier(C, NC_GEOM|ND_SELECT, ob->data); + WM_event_add_notifier(C, NC_GEOM | ND_SELECT, ob->data); return OPERATOR_FINISHED; } @@ -2291,17 +2292,17 @@ void OBJECT_OT_vertex_group_deselect(wmOperatorType *ot) ot->exec = vertex_group_deselect_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int vertex_group_copy_exec(bContext *C, wmOperator *UNUSED(op)) { - Object *ob= ED_object_context(C); + Object *ob = ED_object_context(C); vgroup_duplicate(ob); DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); - WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob); + WM_event_add_notifier(C, NC_GEOM | ND_DATA, ob->data); return OPERATOR_FINISHED; } @@ -2317,21 +2318,21 @@ void OBJECT_OT_vertex_group_copy(wmOperatorType *ot) ot->exec = vertex_group_copy_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int vertex_group_levels_exec(bContext *C, wmOperator *op) { - Object *ob= ED_object_context(C); + Object *ob = ED_object_context(C); - float offset= RNA_float_get(op->ptr,"offset"); - float gain= RNA_float_get(op->ptr,"gain"); + float offset = RNA_float_get(op->ptr, "offset"); + float gain = RNA_float_get(op->ptr, "gain"); vgroup_levels(ob, offset, gain); DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); - WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob); + WM_event_add_notifier(C, NC_GEOM | ND_DATA, ob->data); return OPERATOR_FINISHED; } @@ -2347,7 +2348,7 @@ void OBJECT_OT_vertex_group_levels(wmOperatorType *ot) ot->exec = vertex_group_levels_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; RNA_def_float(ot->srna, "offset", 0.f, -1.0, 1.0, "Offset", "Value to add to weights", -1.0f, 1.f); RNA_def_float(ot->srna, "gain", 1.f, 0.f, FLT_MAX, "Gain", "Value to multiply weights by", 0.0f, 10.f); @@ -2355,13 +2356,13 @@ void OBJECT_OT_vertex_group_levels(wmOperatorType *ot) static int vertex_group_normalize_exec(bContext *C, wmOperator *UNUSED(op)) { - Object *ob= ED_object_context(C); + Object *ob = ED_object_context(C); vgroup_normalize(ob); DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); - WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob); + WM_event_add_notifier(C, NC_GEOM | ND_DATA, ob->data); return OPERATOR_FINISHED; } @@ -2377,19 +2378,19 @@ void OBJECT_OT_vertex_group_normalize(wmOperatorType *ot) ot->exec = vertex_group_normalize_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int vertex_group_normalize_all_exec(bContext *C, wmOperator *op) { - Object *ob= ED_object_context(C); - int lock_active= RNA_boolean_get(op->ptr,"lock_active"); + Object *ob = ED_object_context(C); + int lock_active = RNA_boolean_get(op->ptr, "lock_active"); vgroup_normalize_all(ob, lock_active); DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); - WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob); + WM_event_add_notifier(C, NC_GEOM | ND_DATA, ob->data); return OPERATOR_FINISHED; } @@ -2405,7 +2406,7 @@ void OBJECT_OT_vertex_group_normalize_all(wmOperatorType *ot) ot->exec = vertex_group_normalize_all_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; RNA_def_boolean(ot->srna, "lock_active", TRUE, "Lock Active", "Keep the values of the active group while normalizing others"); @@ -2413,16 +2414,16 @@ void OBJECT_OT_vertex_group_normalize_all(wmOperatorType *ot) static int vertex_group_fix_exec(bContext *C, wmOperator *op) { - Object *ob= CTX_data_active_object(C); - Scene *scene= CTX_data_scene(C); + Object *ob = CTX_data_active_object(C); + Scene *scene = CTX_data_scene(C); - float distToBe= RNA_float_get(op->ptr, "dist"); - float strength= RNA_float_get(op->ptr, "strength"); - float cp= RNA_float_get(op->ptr, "accuracy"); - ModifierData *md= ob->modifiers.first; + float distToBe = RNA_float_get(op->ptr, "dist"); + float strength = RNA_float_get(op->ptr, "strength"); + float cp = RNA_float_get(op->ptr, "accuracy"); + ModifierData *md = ob->modifiers.first; while (md) { - if (md->type == eModifierType_Mirror && (md->mode&eModifierMode_Realtime)) { + if (md->type == eModifierType_Mirror && (md->mode & eModifierMode_Realtime)) { break; } md = md->next; @@ -2435,8 +2436,8 @@ static int vertex_group_fix_exec(bContext *C, wmOperator *op) vgroup_fix(scene, ob, distToBe, strength, cp); DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); - WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob); + WM_event_add_notifier(C, NC_GEOM | ND_DATA, ob->data); return OPERATOR_FINISHED; } @@ -2447,14 +2448,14 @@ void OBJECT_OT_vertex_group_fix(wmOperatorType *ot) ot->name = "Fix Vertex Group Deform"; ot->idname = "OBJECT_OT_vertex_group_fix"; ot->description = "Modify the position of selected vertices by changing only their respective " - "groups' weights (this tool may be slow for many vertices)"; + "groups' weights (this tool may be slow for many vertices)"; /* api callbacks */ ot->poll = vertex_group_poll; ot->exec = vertex_group_fix_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; RNA_def_float(ot->srna, "dist", 0.0f, -FLT_MAX, FLT_MAX, "Distance", "The distance to move to", -10.0f, 10.0f); RNA_def_float(ot->srna, "strength", 1.f, -2.0f, FLT_MAX, "Strength", "The distance moved can be changed by this multiplier", -2.0f, 2.0f); @@ -2465,7 +2466,7 @@ void OBJECT_OT_vertex_group_fix(wmOperatorType *ot) static int vertex_group_lock_exec(bContext *C, wmOperator *op) { - Object *ob= CTX_data_active_object(C); + Object *ob = CTX_data_active_object(C); int action = RNA_enum_get(op->ptr, "action"); @@ -2485,21 +2486,21 @@ void OBJECT_OT_vertex_group_lock(wmOperatorType *ot) ot->exec = vertex_group_lock_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; WM_operator_properties_select_all(ot); } static int vertex_group_invert_exec(bContext *C, wmOperator *op) { - Object *ob= ED_object_context(C); - int auto_assign= RNA_boolean_get(op->ptr,"auto_assign"); - int auto_remove= RNA_boolean_get(op->ptr,"auto_remove"); + Object *ob = ED_object_context(C); + int auto_assign = RNA_boolean_get(op->ptr, "auto_assign"); + int auto_remove = RNA_boolean_get(op->ptr, "auto_remove"); vgroup_invert(ob, auto_assign, auto_remove); DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); - WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob); + WM_event_add_notifier(C, NC_GEOM | ND_DATA, ob->data); return OPERATOR_FINISHED; } @@ -2515,7 +2516,7 @@ void OBJECT_OT_vertex_group_invert(wmOperatorType *ot) ot->exec = vertex_group_invert_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; RNA_def_boolean(ot->srna, "auto_assign", TRUE, "Add Weights", "Add verts from groups that have zero weight before inverting"); @@ -2532,8 +2533,8 @@ static int vertex_group_blend_exec(bContext *C, wmOperator *op) vgroup_blend(ob, fac); DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); - WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob); + WM_event_add_notifier(C, NC_GEOM | ND_DATA, ob->data); return OPERATOR_FINISHED; } @@ -2542,7 +2543,7 @@ static int vertex_group_blend_exec(bContext *C, wmOperator *op) static int vertex_group_blend_poll(bContext *C) { Object *ob = ED_object_context(C); - ID *data = (ob) ? ob->data: NULL; + ID *data = (ob) ? ob->data : NULL; if (!(ob && !ob->id.lib && data && !data->lib)) return FALSE; @@ -2579,7 +2580,7 @@ void OBJECT_OT_vertex_group_blend(wmOperatorType *ot) ot->exec = vertex_group_blend_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; prop = RNA_def_property(ot->srna, "factor", PROP_FLOAT, PROP_FACTOR); RNA_def_property_ui_text(prop, "Factor", ""); @@ -2590,18 +2591,18 @@ void OBJECT_OT_vertex_group_blend(wmOperatorType *ot) static int vertex_group_clean_exec(bContext *C, wmOperator *op) { - Object *ob= ED_object_context(C); + Object *ob = ED_object_context(C); - float limit= RNA_float_get(op->ptr,"limit"); - int all_groups= RNA_boolean_get(op->ptr,"all_groups"); - int keep_single= RNA_boolean_get(op->ptr,"keep_single"); + float limit = RNA_float_get(op->ptr, "limit"); + int all_groups = RNA_boolean_get(op->ptr, "all_groups"); + int keep_single = RNA_boolean_get(op->ptr, "keep_single"); - if (all_groups) vgroup_clean_all(ob, limit, keep_single); - else vgroup_clean(ob, limit, keep_single); + if (all_groups) vgroup_clean_all(ob, limit, keep_single); + else vgroup_clean(ob, limit, keep_single); DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); - WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob); + WM_event_add_notifier(C, NC_GEOM | ND_DATA, ob->data); return OPERATOR_FINISHED; } @@ -2618,7 +2619,7 @@ void OBJECT_OT_vertex_group_clean(wmOperatorType *ot) ot->exec = vertex_group_clean_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; RNA_def_float(ot->srna, "limit", 0.01f, 0.0f, 1.0, "Limit", "Remove weights under this limit", 0.001f, 0.99f); RNA_def_boolean(ot->srna, "all_groups", FALSE, "All Groups", "Clean all vertex groups"); @@ -2629,16 +2630,16 @@ void OBJECT_OT_vertex_group_clean(wmOperatorType *ot) static int vertex_group_mirror_exec(bContext *C, wmOperator *op) { - Object *ob= ED_object_context(C); + Object *ob = ED_object_context(C); ED_vgroup_mirror(ob, - RNA_boolean_get(op->ptr,"mirror_weights"), - RNA_boolean_get(op->ptr,"flip_group_names"), - RNA_boolean_get(op->ptr,"all_groups")); + RNA_boolean_get(op->ptr, "mirror_weights"), + RNA_boolean_get(op->ptr, "flip_group_names"), + RNA_boolean_get(op->ptr, "all_groups")); DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); - WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob); + WM_event_add_notifier(C, NC_GEOM | ND_DATA, ob->data); return OPERATOR_FINISHED; } @@ -2649,14 +2650,14 @@ void OBJECT_OT_vertex_group_mirror(wmOperatorType *ot) ot->name = "Mirror Vertex Group"; ot->idname = "OBJECT_OT_vertex_group_mirror"; ot->description = "Mirror all vertex groups, flip weights and/or names, editing only selected vertices, " - "flipping when both sides are selected otherwise copy from unselected"; + "flipping when both sides are selected otherwise copy from unselected"; /* api callbacks */ ot->poll = vertex_group_poll; ot->exec = vertex_group_mirror_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ RNA_def_boolean(ot->srna, "mirror_weights", TRUE, "Mirror Weights", "Mirror weights"); @@ -2667,21 +2668,21 @@ void OBJECT_OT_vertex_group_mirror(wmOperatorType *ot) static int vertex_group_copy_to_linked_exec(bContext *C, wmOperator *UNUSED(op)) { - Scene *scene= CTX_data_scene(C); - Object *ob= ED_object_context(C); + Scene *scene = CTX_data_scene(C); + Object *ob = ED_object_context(C); Base *base; - int retval= OPERATOR_CANCELLED; + int retval = OPERATOR_CANCELLED; - for (base=scene->base.first; base; base= base->next) { - if (base->object->type==ob->type) { - if (base->object!=ob && base->object->data==ob->data) { + for (base = scene->base.first; base; base = base->next) { + if (base->object->type == ob->type) { + if (base->object != ob && base->object->data == ob->data) { BLI_freelistN(&base->object->defbase); BLI_duplicatelist(&base->object->defbase, &ob->defbase); - base->object->actdef= ob->actdef; + base->object->actdef = ob->actdef; DAG_id_tag_update(&base->object->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, base->object); - WM_event_add_notifier(C, NC_GEOM|ND_DATA, base->object->data); + WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, base->object); + WM_event_add_notifier(C, NC_GEOM | ND_DATA, base->object->data); retval = OPERATOR_FINISHED; } @@ -2703,20 +2704,19 @@ void OBJECT_OT_vertex_group_copy_to_linked(wmOperatorType *ot) ot->exec = vertex_group_copy_to_linked_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int vertex_group_copy_to_selected_exec(bContext *C, wmOperator *op) { - Object *obact= ED_object_context(C); - int change= 0; - int fail= 0; + Object *obact = ED_object_context(C); + int change = 0; + int fail = 0; - CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) - { + CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects) { if (obact != ob) { if (ED_vgroup_copy_array(ob, obact)) change++; - else fail++; + else fail++; } } CTX_DATA_END; @@ -2743,47 +2743,48 @@ void OBJECT_OT_vertex_group_copy_to_selected(wmOperatorType *ot) ot->exec = vertex_group_copy_to_selected_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } -static EnumPropertyItem vgroup_items[]= { - {0, NULL, 0, NULL, NULL}}; +static EnumPropertyItem vgroup_items[] = { + {0, NULL, 0, NULL, NULL} +}; static int set_active_group_exec(bContext *C, wmOperator *op) { - Object *ob= ED_object_context(C); - int nr= RNA_enum_get(op->ptr, "group"); + Object *ob = ED_object_context(C); + int nr = RNA_enum_get(op->ptr, "group"); - BLI_assert(nr+1 >= 0); - ob->actdef= nr+1; + BLI_assert(nr + 1 >= 0); + ob->actdef = nr + 1; DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob); + WM_event_add_notifier(C, NC_GEOM | ND_DATA, ob); return OPERATOR_FINISHED; } static EnumPropertyItem *vgroup_itemf(bContext *C, PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), int *free) { - Object *ob= ED_object_context(C); + Object *ob = ED_object_context(C); EnumPropertyItem tmp = {0, "", 0, "", ""}; - EnumPropertyItem *item= NULL; + EnumPropertyItem *item = NULL; bDeformGroup *def; - int a, totitem= 0; + int a, totitem = 0; if (!ob) return vgroup_items; - for (a=0, def=ob->defbase.first; def; def=def->next, a++) { - tmp.value= a; - tmp.icon= ICON_GROUP_VERTEX; - tmp.identifier= def->name; - tmp.name= def->name; + for (a = 0, def = ob->defbase.first; def; def = def->next, a++) { + tmp.value = a; + tmp.icon = ICON_GROUP_VERTEX; + tmp.identifier = def->name; + tmp.name = def->name; RNA_enum_item_add(&item, &totitem, &tmp); } RNA_enum_item_end(&item, &totitem); - *free= 1; + *free = 1; return item; } @@ -2803,10 +2804,10 @@ void OBJECT_OT_vertex_group_set_active(wmOperatorType *ot) ot->invoke = WM_menu_invoke; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ - prop= RNA_def_enum(ot->srna, "group", vgroup_items, 0, "Group", "Vertex group to set as active"); + prop = RNA_def_enum(ot->srna, "group", vgroup_items, 0, "Group", "Vertex group to set as active"); RNA_def_enum_funcs(prop, vgroup_itemf); ot->prop = prop; } @@ -2817,11 +2818,11 @@ static char *vgroup_init_remap(Object *ob) { bDeformGroup *def; int defbase_tot = BLI_countlist(&ob->defbase); - char *name_array= MEM_mallocN(MAX_VGROUP_NAME * sizeof(char) * defbase_tot, "sort vgroups"); + char *name_array = MEM_mallocN(MAX_VGROUP_NAME * sizeof(char) * defbase_tot, "sort vgroups"); char *name; - name= name_array; - for (def = ob->defbase.first; def; def=def->next) { + name = name_array; + for (def = ob->defbase.first; def; def = def->next) { BLI_strncpy(name, def->name, MAX_VGROUP_NAME); name += MAX_VGROUP_NAME; } @@ -2831,33 +2832,33 @@ static char *vgroup_init_remap(Object *ob) static int vgroup_do_remap(Object *ob, char *name_array, wmOperator *op) { - MDeformVert *dvert= NULL; + MDeformVert *dvert = NULL; bDeformGroup *def; int defbase_tot = BLI_countlist(&ob->defbase); /* needs a dummy index at the start*/ - int *sort_map_update= MEM_mallocN(sizeof(int) * (defbase_tot + 1), "sort vgroups"); - int *sort_map= sort_map_update + 1; + int *sort_map_update = MEM_mallocN(sizeof(int) * (defbase_tot + 1), "sort vgroups"); + int *sort_map = sort_map_update + 1; char *name; int i; - name= name_array; - for (def= ob->defbase.first, i=0; def; def=def->next, i++) { - sort_map[i]= BLI_findstringindex(&ob->defbase, name, offsetof(bDeformGroup, name)); + name = name_array; + for (def = ob->defbase.first, i = 0; def; def = def->next, i++) { + sort_map[i] = BLI_findstringindex(&ob->defbase, name, offsetof(bDeformGroup, name)); name += MAX_VGROUP_NAME; BLI_assert(sort_map[i] != -1); } if (ob->mode == OB_MODE_EDIT) { - if (ob->type==OB_MESH) { + if (ob->type == OB_MESH) { BMEditMesh *em = BMEdit_FromObject(ob); BMIter iter; BMVert *eve; BM_ITER_MESH (eve, &iter, em->bm, BM_VERTS_OF_MESH) { - dvert= CustomData_bmesh_get(&em->bm->vdata, eve->head.data, CD_MDEFORMVERT); + dvert = CustomData_bmesh_get(&em->bm->vdata, eve->head.data, CD_MDEFORMVERT); if (dvert && dvert->totweight) { defvert_remap(dvert, sort_map, defbase_tot); } @@ -2870,7 +2871,7 @@ static int vgroup_do_remap(Object *ob, char *name_array, wmOperator *op) } } else { - int dvert_tot=0; + int dvert_tot = 0; ED_vgroup_give_array(ob->data, &dvert, &dvert_tot); @@ -2883,14 +2884,14 @@ static int vgroup_do_remap(Object *ob, char *name_array, wmOperator *op) } /* update users */ - for (i=0; iactdef] >= 0); - ob->actdef= sort_map_update[ob->actdef]; + ob->actdef = sort_map_update[ob->actdef]; MEM_freeN(sort_map_update); @@ -2899,15 +2900,15 @@ static int vgroup_do_remap(Object *ob, char *name_array, wmOperator *op) static int vgroup_sort(void *def_a_ptr, void *def_b_ptr) { - bDeformGroup *def_a= (bDeformGroup *)def_a_ptr; - bDeformGroup *def_b= (bDeformGroup *)def_b_ptr; + bDeformGroup *def_a = (bDeformGroup *)def_a_ptr; + bDeformGroup *def_b = (bDeformGroup *)def_b_ptr; return BLI_natstrcmp(def_a->name, def_b->name); } static int vertex_group_sort_exec(bContext *C, wmOperator *op) { - Object *ob= ED_object_context(C); + Object *ob = ED_object_context(C); char *name_array; int ret; @@ -2922,7 +2923,7 @@ static int vertex_group_sort_exec(bContext *C, wmOperator *op) if (ret != OPERATOR_CANCELLED) { DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob); + WM_event_add_notifier(C, NC_GEOM | ND_DATA, ob); } if (name_array) MEM_freeN(name_array); @@ -2941,15 +2942,15 @@ void OBJECT_OT_vertex_group_sort(wmOperatorType *ot) ot->exec = vertex_group_sort_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } static int vgroup_move_exec(bContext *C, wmOperator *op) { - Object *ob= ED_object_context(C); + Object *ob = ED_object_context(C); bDeformGroup *def; char *name_array; - int dir= RNA_enum_get(op->ptr, "direction"), ret; + int dir = RNA_enum_get(op->ptr, "direction"), ret; def = BLI_findlink(&ob->defbase, ob->actdef - 1); if (!def) { @@ -2977,7 +2978,7 @@ static int vgroup_move_exec(bContext *C, wmOperator *op) if (ret != OPERATOR_CANCELLED) { DAG_id_tag_update(&ob->id, OB_RECALC_DATA); - WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob); + WM_event_add_notifier(C, NC_GEOM | ND_DATA, ob); } return ret; @@ -3000,7 +3001,7 @@ void OBJECT_OT_vertex_group_move(wmOperatorType *ot) ot->exec = vgroup_move_exec; /* flags */ - ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO; + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; RNA_def_enum(ot->srna, "direction", vgroup_slot_move, 0, "Direction", "Direction to move, UP or DOWN"); } diff --git a/source/blender/editors/physics/dynamicpaint_ops.c b/source/blender/editors/physics/dynamicpaint_ops.c index 417cddb74fe..c82e0459218 100644 --- a/source/blender/editors/physics/dynamicpaint_ops.c +++ b/source/blender/editors/physics/dynamicpaint_ops.c @@ -291,8 +291,7 @@ static int dynamicPaint_bakeImageSequence(bContext *C, DynamicPaintSurface *surf if (!dynamicPaint_createUVSurface(surface)) return 0; /* Loop through selected frames */ - for (frame=surface->start_frame; frame<=surface->end_frame; frame++) - { + for (frame=surface->start_frame; frame<=surface->end_frame; frame++) { float progress = (frame - surface->start_frame) / (float)frames * 100; surface->current_frame = frame; diff --git a/source/blender/editors/physics/particle_edit.c b/source/blender/editors/physics/particle_edit.c index 5f22165176b..131034848de 100644 --- a/source/blender/editors/physics/particle_edit.c +++ b/source/blender/editors/physics/particle_edit.c @@ -45,7 +45,9 @@ #include "DNA_space_types.h" #include "BLI_math.h" -#include "BLI_blenlib.h" +#include "BLI_lasso.h" +#include "BLI_listbase.h" +#include "BLI_string.h" #include "BLI_dynstr.h" #include "BLI_kdtree.h" #include "BLI_rand.h" @@ -213,7 +215,7 @@ static PTCacheEdit *pe_get_current(Scene *scene, Object *ob, int create) /* in the case of only one editable thing, set pset->edittype accordingly */ if (pidlist.first && pidlist.first == pidlist.last) { pid = pidlist.first; - switch(pid->type) { + switch (pid->type) { case PTCACHE_TYPE_PARTICLES: pset->edittype = PE_TYPE_PARTICLES; break; @@ -475,10 +477,12 @@ static int key_inside_rect(PEData *data, const float co[3]) if (sco[0] == IS_CLIPPED) return 0; - + if (sco[0] > data->rect->xmin && sco[0] < data->rect->xmax && - sco[1] > data->rect->ymin && sco[1] < data->rect->ymax) + sco[1] > data->rect->ymin && sco[1] < data->rect->ymax) + { return key_test_depth(data, co); + } return 0; } @@ -1633,7 +1637,9 @@ int PE_lasso_select(bContext *C, int mcords[][2], short moves, short extend, sho copy_v3_v3(co, key->co); mul_m4_v3(mat, co); project_int(ar, co, vertco); - if ((vertco[0] != IS_CLIPPED) && lasso_inside(mcords,moves,vertco[0],vertco[1]) && key_test_depth(&data, co)) { + if (BLI_lasso_is_point_inside(mcords,moves,vertco[0],vertco[1], IS_CLIPPED) && + key_test_depth(&data, co)) + { if (select && !(key->flag & PEK_SELECT)) { key->flag |= PEK_SELECT; point->flag |= PEP_EDIT_RECALC; @@ -1651,7 +1657,9 @@ int PE_lasso_select(bContext *C, int mcords[][2], short moves, short extend, sho copy_v3_v3(co, key->co); mul_m4_v3(mat, co); project_int(ar, co,vertco); - if ((vertco[0] != IS_CLIPPED) && lasso_inside(mcords,moves,vertco[0],vertco[1]) && key_test_depth(&data, co)) { + if (BLI_lasso_is_point_inside(mcords,moves,vertco[0],vertco[1], IS_CLIPPED) && + key_test_depth(&data, co)) + { if (select && !(key->flag & PEK_SELECT)) { key->flag |= PEK_SELECT; point->flag |= PEP_EDIT_RECALC; @@ -3487,7 +3495,7 @@ static void brush_edit_apply(bContext *C, wmOperator *op, PointerRNA *itemptr) mval[0] = bedit->lastmouse[0] + step*dx; mval[1] = bedit->lastmouse[1] + step*dy; - switch(pset->brushtype) { + switch (pset->brushtype) { case PE_BRUSH_COMB: { float mval_f[2]; @@ -3663,7 +3671,7 @@ static int brush_edit_exec(bContext *C, wmOperator *op) if (!brush_edit_init(C, op)) return OPERATOR_CANCELLED; - RNA_BEGIN(op->ptr, itemptr, "stroke") { + RNA_BEGIN (op->ptr, itemptr, "stroke") { brush_edit_apply(C, op, &itemptr); } RNA_END; @@ -3704,7 +3712,7 @@ static int brush_edit_invoke(bContext *C, wmOperator *op, wmEvent *event) static int brush_edit_modal(bContext *C, wmOperator *op, wmEvent *event) { - switch(event->type) { + switch (event->type) { case LEFTMOUSE: case MIDDLEMOUSE: case RIGHTMOUSE: // XXX hardcoded diff --git a/source/blender/editors/physics/physics_fluid.c b/source/blender/editors/physics/physics_fluid.c index 20fa4c5753f..c0d3e505873 100644 --- a/source/blender/editors/physics/physics_fluid.c +++ b/source/blender/editors/physics/physics_fluid.c @@ -594,8 +594,7 @@ static int fluid_validate_scene(ReportList *reports, Scene *scene, Object *fsDom int channelObjCount = 0; int fluidInputCount = 0; - for (base=scene->base.first; base; base= base->next) - { + for (base=scene->base.first; base; base= base->next) { Object *ob = base->object; FluidsimModifierData *fluidmdtmp = (FluidsimModifierData *)modifiers_findByType(ob, eModifierType_Fluidsim); diff --git a/source/blender/editors/render/render_shading.c b/source/blender/editors/render/render_shading.c index 6722ac5e686..b648dac6343 100644 --- a/source/blender/editors/render/render_shading.c +++ b/source/blender/editors/render/render_shading.c @@ -178,7 +178,7 @@ static int material_slot_assign_exec(bContext *C, wmOperator *UNUSED(op)) } else if (ELEM(ob->type, OB_CURVE, OB_SURF)) { Nurb *nu; - ListBase *nurbs = curve_editnurbs((Curve *)ob->data); + ListBase *nurbs = BKE_curve_editNurbs_get((Curve *)ob->data); if (nurbs) { for (nu = nurbs->first; nu; nu = nu->next) @@ -233,7 +233,7 @@ static int material_slot_de_select(bContext *C, int select) } } else if (ELEM(ob->type, OB_CURVE, OB_SURF)) { - ListBase *nurbs = curve_editnurbs((Curve *)ob->data); + ListBase *nurbs = BKE_curve_editNurbs_get((Curve *)ob->data); Nurb *nu; BPoint *bp; BezTriple *bezt; @@ -329,7 +329,7 @@ static int material_slot_copy_exec(bContext *C, wmOperator *UNUSED(op)) if (!ob || !(matar = give_matarar(ob))) return OPERATOR_CANCELLED; - CTX_DATA_BEGIN(C, Object *, ob_iter, selected_editable_objects) { + CTX_DATA_BEGIN (C, Object *, ob_iter, selected_editable_objects) { if (ob != ob_iter && give_matarar(ob_iter)) { if (ob->data != ob_iter->data) assign_matarar(ob_iter, matar, ob->totcol); diff --git a/source/blender/editors/render/render_update.c b/source/blender/editors/render/render_update.c index 35b4126339e..48c35873304 100644 --- a/source/blender/editors/render/render_update.c +++ b/source/blender/editors/render/render_update.c @@ -116,33 +116,38 @@ void ED_render_scene_update(Main *bmain, Scene *scene, int updated) CTX_free(C); } +void ED_render_engine_area_exit(ScrArea *sa) +{ + /* clear all render engines in this area */ + ARegion *ar; + + if (sa->spacetype != SPACE_VIEW3D) + return; + + for (ar = sa->regionbase.first; ar; ar = ar->next) { + RegionView3D *rv3d; + + if (ar->regiontype != RGN_TYPE_WINDOW) + continue; + + rv3d = ar->regiondata; + + if (rv3d->render_engine) { + RE_engine_free(rv3d->render_engine); + rv3d->render_engine = NULL; + } + } +} + void ED_render_engine_changed(Main *bmain) { /* on changing the render engine type, clear all running render engines */ bScreen *sc; ScrArea *sa; - ARegion *ar; - for (sc = bmain->screen.first; sc; sc = sc->id.next) { - for (sa = sc->areabase.first; sa; sa = sa->next) { - if (sa->spacetype != SPACE_VIEW3D) - continue; - - for (ar = sa->regionbase.first; ar; ar = ar->next) { - RegionView3D *rv3d; - - if (ar->regiontype != RGN_TYPE_WINDOW) - continue; - - rv3d = ar->regiondata; - - if (rv3d->render_engine) { - RE_engine_free(rv3d->render_engine); - rv3d->render_engine = NULL; - } - } - } - } + for (sc = bmain->screen.first; sc; sc = sc->id.next) + for (sa = sc->areabase.first; sa; sa = sa->next) + ED_render_engine_area_exit(sa); } /***************************** Updates *********************************** diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c index d3da167cf72..2a561a6bc6c 100644 --- a/source/blender/editors/screen/area.c +++ b/source/blender/editors/screen/area.c @@ -115,7 +115,7 @@ void ED_region_pixelspace(ARegion *ar) void ED_region_do_listen(ARegion *ar, wmNotifier *note) { /* generic notes first */ - switch(note->category) { + switch (note->category) { case NC_WM: if (note->data==ND_FILEREAD) ED_region_tag_redraw(ar); @@ -247,7 +247,7 @@ static void region_draw_azone_tab_plus(AZone *az) glEnable(GL_BLEND); /* add code to draw region hidden as 'too small' */ - switch(az->edge) { + switch (az->edge) { case AE_TOP_TO_BOTTOMRIGHT: uiSetRoundBox(UI_CNR_TOP_LEFT | UI_CNR_TOP_RIGHT); break; @@ -282,7 +282,7 @@ static void region_draw_azone_tab(AZone *az) glColor4f(col[0], col[1], col[2], 0.5f); /* add code to draw region hidden as 'too small' */ - switch(az->edge) { + switch (az->edge) { case AE_TOP_TO_BOTTOMRIGHT: uiSetRoundBox(UI_CNR_TOP_LEFT | UI_CNR_TOP_RIGHT | UI_RB_ALPHA); @@ -325,7 +325,7 @@ static void region_draw_azone_tria(AZone *az) glColor4f(0.0f, 0.0f, 0.0f, 0.35f); /* add code to draw region hidden as 'too small' */ - switch(az->edge) { + switch (az->edge) { case AE_TOP_TO_BOTTOMRIGHT: ui_draw_anti_tria((float)az->x1, (float)az->y1, (float)az->x2, (float)az->y1, (float)(az->x1+az->x2)/2, (float)az->y2); break; @@ -623,7 +623,7 @@ static void area_azone_initialize(ScrArea *sa) #define AZONEPAD_ICON 9 static void region_azone_edge(AZone *az, ARegion *ar) { - switch(az->edge) { + switch (az->edge) { case AE_TOP_TO_BOTTOMRIGHT: az->x1= ar->winrct.xmin; az->y1= ar->winrct.ymax - AZONEPAD_EDGE; @@ -665,7 +665,7 @@ static void region_azone_icon(ScrArea *sa, AZone *az, ARegion *ar) if (azt->edge == az->edge) tot++; } - switch(az->edge) { + switch (az->edge) { case AE_TOP_TO_BOTTOMRIGHT: az->x1= ar->winrct.xmax - tot*2*AZONEPAD_ICON; az->y1= ar->winrct.ymax + AZONEPAD_ICON; @@ -725,7 +725,7 @@ static void region_azone_tab_plus(ScrArea *sa, AZone *az, ARegion *ar) if (azt->edge == az->edge) tot++; } - switch(az->edge) { + switch (az->edge) { case AE_TOP_TO_BOTTOMRIGHT: if (ar->winrct.ymax == sa->totrct.ymin) add= 1; else add= 0; az->x1= ar->winrct.xmax - 2.5*AZONEPAD_TAB_PLUSW; @@ -770,7 +770,7 @@ static void region_azone_tab(ScrArea *sa, AZone *az, ARegion *ar) if (azt->edge == az->edge) tot++; } - switch(az->edge) { + switch (az->edge) { case AE_TOP_TO_BOTTOMRIGHT: if (ar->winrct.ymax == sa->totrct.ymin) add= 1; else add= 0; az->x1= ar->winrct.xmax - 2*AZONEPAD_TABW; @@ -815,7 +815,7 @@ static void region_azone_tria(ScrArea *sa, AZone *az, ARegion *ar) if (azt->edge == az->edge) tot++; } - switch(az->edge) { + switch (az->edge) { case AE_TOP_TO_BOTTOMRIGHT: if (ar->winrct.ymax == sa->totrct.ymin) add= 1; else add= 0; az->x1= ar->winrct.xmax - 2*AZONEPAD_TRIAW; diff --git a/source/blender/editors/screen/glutil.c b/source/blender/editors/screen/glutil.c index 5ba0e86e0c1..5b73645abde 100644 --- a/source/blender/editors/screen/glutil.c +++ b/source/blender/editors/screen/glutil.c @@ -825,7 +825,7 @@ int bglPointHack(void) void bglVertex3fv(const float vec[3]) { - switch(curmode) { + switch (curmode) { case GL_POINTS: if (pointhack) { glRasterPos3fv(vec); @@ -838,7 +838,7 @@ void bglVertex3fv(const float vec[3]) void bglVertex3f(float x, float y, float z) { - switch(curmode) { + switch (curmode) { case GL_POINTS: if (pointhack) { glRasterPos3f(x, y, z); @@ -851,7 +851,7 @@ void bglVertex3f(float x, float y, float z) void bglVertex2fv(const float vec[2]) { - switch(curmode) { + switch (curmode) { case GL_POINTS: if (pointhack) { glRasterPos2fv(vec); @@ -882,11 +882,15 @@ void bgl_get_mats(bglMats *mats) /* Very strange code here - it seems that certain bad values in the * modelview matrix can cause gluUnProject to give bad results. */ if (mats->modelview[0] < badvalue && - mats->modelview[0] > -badvalue) - mats->modelview[0]= 0; + mats->modelview[0] > -badvalue) + { + mats->modelview[0] = 0; + } if (mats->modelview[5] < badvalue && - mats->modelview[5] > -badvalue) - mats->modelview[5]= 0; + mats->modelview[5] > -badvalue) + { + mats->modelview[5] = 0; + } /* Set up viewport so that gluUnProject will give correct values */ mats->viewport[0] = 0; diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c index 03d8b3d3e9c..512cd404273 100644 --- a/source/blender/editors/screen/screen_edit.c +++ b/source/blender/editors/screen/screen_edit.c @@ -963,7 +963,7 @@ void ED_screen_do_listen(bContext *C, wmNotifier *note) wmWindow *win= CTX_wm_window(C); /* generic notes */ - switch(note->category) { + switch (note->category) { case NC_WM: if (note->data==ND_FILEREAD) win->screen->do_draw= 1; @@ -1009,7 +1009,7 @@ void ED_screen_draw(wmWindow *win) if (sa1 && sa2) { dir = area_getorientation(sa1, sa2); if (dir >= 0) { - switch(dir) { + switch (dir) { case 0: /* W */ dir = 'r'; dira = 'l'; @@ -1154,6 +1154,9 @@ void ED_area_exit(bContext *C, ScrArea *sa) ED_fileselect_exit(C, (SpaceFile *)sl); } } + else if (sa->spacetype == SPACE_VIEW3D) { + ED_render_engine_area_exit(sa); + } CTX_wm_area_set(C, sa); for (ar= sa->regionbase.first; ar; ar= ar->next) diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index e427e1e21cf..3777547fa90 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -597,7 +597,7 @@ static int actionzone_modal(bContext *C, wmOperator *op, wmEvent *event) int deltax, deltay; int mindelta= sad->az->type==AZONE_REGION?1:12; - switch(event->type) { + switch (event->type) { case MOUSEMOVE: /* calculate gesture direction */ deltax= (event->x - sad->x); @@ -735,7 +735,7 @@ static int area_swap_modal(bContext *C, wmOperator *op, wmEvent *event) { sActionzoneData *sad= op->customdata; - switch(event->type) { + switch (event->type) { case MOUSEMOVE: /* second area, for join */ sad->sa2= screen_areahascursor(CTX_wm_screen(C), event->x, event->y); @@ -1045,7 +1045,7 @@ static int area_move_modal(bContext *C, wmOperator *op, wmEvent *event) int delta, x, y; /* execute the events */ - switch(event->type) { + switch (event->type) { case MOUSEMOVE: x= RNA_int_get(op->ptr, "x"); @@ -1438,7 +1438,7 @@ static int area_split_modal(bContext *C, wmOperator *op, wmEvent *event) int dir; /* execute the events */ - switch(event->type) { + switch (event->type) { case MOUSEMOVE: dir= RNA_enum_get(op->ptr, "direction"); @@ -1711,7 +1711,7 @@ static int region_scale_modal(bContext *C, wmOperator *op, wmEvent *event) int delta; /* execute the events */ - switch(event->type) { + switch (event->type) { case MOUSEMOVE: if (rmd->edge==AE_LEFT_TO_TOPRIGHT || rmd->edge==AE_RIGHT_TO_TOPLEFT) { @@ -2262,7 +2262,7 @@ static int area_join_modal(bContext *C, wmOperator *op, wmEvent *event) sAreaJoinData *jd = (sAreaJoinData *)op->customdata; /* execute the events */ - switch(event->type) { + switch (event->type) { case MOUSEMOVE: { diff --git a/source/blender/editors/sculpt_paint/paint_cursor.c b/source/blender/editors/sculpt_paint/paint_cursor.c index 5d4710accad..553a9a335d7 100644 --- a/source/blender/editors/sculpt_paint/paint_cursor.c +++ b/source/blender/editors/sculpt_paint/paint_cursor.c @@ -377,7 +377,9 @@ static void paint_draw_alpha_overlay(Sculpt *sd, Brush *brush, /* check for overlay mode */ if (!(brush->flag & BRUSH_TEXTURE_OVERLAY) || !(ELEM(brush->mtex.brush_map_mode, MTEX_MAP_MODE_FIXED, MTEX_MAP_MODE_TILED))) + { return; + } /* save lots of GL state * TODO: check on whether all of these are needed? */ @@ -566,7 +568,9 @@ static void paint_draw_cursor(bContext *C, int x, int y, void *UNUSED(unused)) ELEM5(brush->sculpt_tool, SCULPT_TOOL_DRAW, SCULPT_TOOL_INFLATE, SCULPT_TOOL_CLAY, SCULPT_TOOL_PINCH, SCULPT_TOOL_CREASE)) + { outline_col = brush->sub_col; + } /* only do if brush is over the mesh */ if (hit) diff --git a/source/blender/editors/sculpt_paint/paint_image.c b/source/blender/editors/sculpt_paint/paint_image.c index 3b6e21cb3f2..ac327b56fb9 100644 --- a/source/blender/editors/sculpt_paint/paint_image.c +++ b/source/blender/editors/sculpt_paint/paint_image.c @@ -2621,7 +2621,7 @@ static void project_paint_face_init(const ProjPaintState *ps, const int thread_i //fac = line_point_factor_v2(uv, uv_seam_quad[0], uv_seam_quad[1]); fac = line_point_factor_v2(uv, seam_subsection[0], seam_subsection[1]); - if (fac < 0.0f) { copy_v3_v3(pixelScreenCo, edge_verts_inset_clip[0]); } + if (fac < 0.0f) { copy_v3_v3(pixelScreenCo, edge_verts_inset_clip[0]); } else if (fac > 1.0f) { copy_v3_v3(pixelScreenCo, edge_verts_inset_clip[1]); } else { interp_v3_v3v3(pixelScreenCo, edge_verts_inset_clip[0], edge_verts_inset_clip[1], fac); } @@ -5038,7 +5038,7 @@ static int paint_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; } - RNA_BEGIN(op->ptr, itemptr, "stroke") { + RNA_BEGIN (op->ptr, itemptr, "stroke") { paint_apply(C, op, &itemptr); } RNA_END; diff --git a/source/blender/editors/sculpt_paint/paint_stroke.c b/source/blender/editors/sculpt_paint/paint_stroke.c index fb640346a99..9fe941253f6 100644 --- a/source/blender/editors/sculpt_paint/paint_stroke.c +++ b/source/blender/editors/sculpt_paint/paint_stroke.c @@ -377,7 +377,7 @@ int paint_stroke_exec(bContext *C, wmOperator *op) stroke->stroke_started = 1; } - RNA_BEGIN(op->ptr, itemptr, "stroke") { + RNA_BEGIN (op->ptr, itemptr, "stroke") { stroke->update_step(C, stroke, &itemptr); } RNA_END; diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index 157be337823..8d2dfc8dbfa 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -766,7 +766,7 @@ static int sculpt_search_sphere_cb(PBVHNode *node, void *data_v) } /* Handles clipping against a mirror modifier and SCULPT_LOCK axis flags */ -static void sculpt_clip(Sculpt *sd, SculptSession *ss, float *co, const float val[3]) +static void sculpt_clip(Sculpt *sd, SculptSession *ss, float co[3], const float val[3]) { int i; @@ -2817,8 +2817,10 @@ static void sculpt_init_mirror_clipping(Object *ob, SculptSession *ss) /* update the clip tolerance */ if (mmd->tolerance > ss->cache->clip_tolerance[i]) + { ss->cache->clip_tolerance[i] = - mmd->tolerance; + mmd->tolerance; + } } } } @@ -2928,8 +2930,11 @@ static void sculpt_update_cache_invariants(bContext *C, Sculpt *sd, SculptSessio SCULPT_TOOL_DRAW, SCULPT_TOOL_CREASE, SCULPT_TOOL_BLOB, SCULPT_TOOL_LAYER, SCULPT_TOOL_INFLATE, SCULPT_TOOL_CLAY, SCULPT_TOOL_CLAY_STRIPS, SCULPT_TOOL_ROTATE)) - if (!(brush->flag & BRUSH_ACCUMULATE)) + { + if (!(brush->flag & BRUSH_ACCUMULATE)) { cache->original = 1; + } + } cache->special_rotation = (brush->flag & BRUSH_RAKE) ? sd->last_angle : 0; diff --git a/source/blender/editors/sculpt_paint/sculpt_undo.c b/source/blender/editors/sculpt_paint/sculpt_undo.c index 89a786d02a9..c08ed2e85b9 100644 --- a/source/blender/editors/sculpt_paint/sculpt_undo.c +++ b/source/blender/editors/sculpt_paint/sculpt_undo.c @@ -237,7 +237,9 @@ static void sculpt_undo_restore(bContext *C, ListBase *lb) else if (unode->maxgrid && dm->getGridData) { if ((dm->getNumGrids(dm) != unode->maxgrid) || (dm->getGridSize(dm) != unode->gridsize)) + { continue; + } } else { continue; diff --git a/source/blender/editors/sound/sound_ops.c b/source/blender/editors/sound/sound_ops.c index b50c3f11534..73dfde8fd6f 100644 --- a/source/blender/editors/sound/sound_ops.c +++ b/source/blender/editors/sound/sound_ops.c @@ -221,7 +221,7 @@ static int sound_update_animation_flags_exec(bContext *C, wmOperator *UNUSED(op) struct FCurve* fcu; char driven; - SEQ_BEGIN(scene->ed, seq) { + SEQ_BEGIN (scene->ed, seq) { fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Sequence, "volume", 0, &driven); if (fcu || driven) seq->flag |= SEQ_AUDIO_VOLUME_ANIMATED; @@ -318,6 +318,7 @@ static int sound_mixdown_exec(bContext *C, wmOperator *op) char filename[FILE_MAX]; Scene *scene; Main *bmain; + int split; int bitrate, accuracy; AUD_DeviceSpecs specs; @@ -333,6 +334,7 @@ static int sound_mixdown_exec(bContext *C, wmOperator *op) specs.format = RNA_enum_get(op->ptr, "format"); container = RNA_enum_get(op->ptr, "container"); codec = RNA_enum_get(op->ptr, "codec"); + split = RNA_boolean_get(op->ptr, "split_channels"); scene = CTX_data_scene(C); bmain = CTX_data_main(C); specs.channels = scene->r.ffcodecdata.audio_channels; @@ -341,8 +343,12 @@ static int sound_mixdown_exec(bContext *C, wmOperator *op) BLI_strncpy(filename, path, sizeof(filename)); BLI_path_abs(filename, bmain->name); - result = AUD_mixdown(scene->sound_scene, SFRA * specs.rate / FPS, (EFRA - SFRA) * specs.rate / FPS, - accuracy, filename, specs, container, codec, bitrate); + if(split) + result = AUD_mixdown_per_channel(scene->sound_scene, SFRA * specs.rate / FPS, (EFRA - SFRA) * specs.rate / FPS, + accuracy, filename, specs, container, codec, bitrate); + else + result = AUD_mixdown(scene->sound_scene, SFRA * specs.rate / FPS, (EFRA - SFRA) * specs.rate / FPS, + accuracy, filename, specs, container, codec, bitrate); if (result) { BKE_report(op->reports, RPT_ERROR, result); @@ -437,8 +443,7 @@ static void sound_mixdown_draw(bContext *C, wmOperator *op) RNA_def_property_flag(prop_codec, PROP_HIDDEN); RNA_def_property_flag(prop_format, PROP_HIDDEN); - switch(container) - { + switch (container) { case AUD_CONTAINER_AC3: RNA_def_property_clear_flag(prop_format, PROP_HIDDEN); RNA_def_property_enum_items(prop_format, ac3_format_items); @@ -460,8 +465,7 @@ static void sound_mixdown_draw(bContext *C, wmOperator *op) RNA_def_property_clear_flag(prop_codec, PROP_HIDDEN); RNA_def_property_enum_items(prop_codec, all_codec_items); - switch(codec) - { + switch (codec) { case AUD_CODEC_AAC: RNA_enum_set(op->ptr, "format", AUD_FORMAT_S16); break; @@ -592,6 +596,7 @@ static void SOUND_OT_mixdown(wmOperatorType *ot) RNA_def_enum(ot->srna, "codec", codec_items, AUD_CODEC_FLAC, "Codec", "Audio Codec"); RNA_def_enum(ot->srna, "format", format_items, AUD_FORMAT_S16, "Format", "Sample format"); RNA_def_int(ot->srna, "bitrate", 192, 32, 512, "Bitrate", "Bitrate in kbit/s", 32, 512); + RNA_def_boolean(ot->srna, "split_channels", 0, "Split channels", "Each channel will be rendered into a mono file"); #endif // WITH_AUDASPACE } diff --git a/source/blender/editors/space_action/space_action.c b/source/blender/editors/space_action/space_action.c index 9d0dab7d34e..c1875eb3a9a 100644 --- a/source/blender/editors/space_action/space_action.c +++ b/source/blender/editors/space_action/space_action.c @@ -269,12 +269,12 @@ static void action_header_area_draw(const bContext *C, ARegion *ar) static void action_channel_area_listener(ARegion *ar, wmNotifier *wmn) { /* context changes */ - switch(wmn->category) { + switch (wmn->category) { case NC_ANIMATION: ED_region_tag_redraw(ar); break; case NC_SCENE: - switch(wmn->data) { + switch (wmn->data) { case ND_OB_ACTIVE: case ND_FRAME: ED_region_tag_redraw(ar); @@ -282,7 +282,7 @@ static void action_channel_area_listener(ARegion *ar, wmNotifier *wmn) } break; case NC_OBJECT: - switch(wmn->data) { + switch (wmn->data) { case ND_BONE_ACTIVE: case ND_BONE_SELECT: case ND_KEYS: @@ -307,12 +307,12 @@ static void action_channel_area_listener(ARegion *ar, wmNotifier *wmn) static void action_main_area_listener(ARegion *ar, wmNotifier *wmn) { /* context changes */ - switch(wmn->category) { + switch (wmn->category) { case NC_ANIMATION: ED_region_tag_redraw(ar); break; case NC_SCENE: - switch(wmn->data) { + switch (wmn->data) { case ND_RENDER_OPTIONS: case ND_OB_ACTIVE: case ND_FRAME: @@ -322,7 +322,7 @@ static void action_main_area_listener(ARegion *ar, wmNotifier *wmn) } break; case NC_OBJECT: - switch(wmn->data) { + switch (wmn->data) { case ND_TRANSFORM: /* moving object shouldn't need to redraw action */ break; @@ -334,7 +334,7 @@ static void action_main_area_listener(ARegion *ar, wmNotifier *wmn) } break; case NC_NODE: - switch(wmn->action) { + switch (wmn->action) { case NA_EDITED: ED_region_tag_redraw(ar); break; diff --git a/source/blender/editors/space_buttons/buttons_context.c b/source/blender/editors/space_buttons/buttons_context.c index b698ec03668..20d5257a62f 100644 --- a/source/blender/editors/space_buttons/buttons_context.c +++ b/source/blender/editors/space_buttons/buttons_context.c @@ -535,7 +535,7 @@ static int buttons_context_path(const bContext *C, ButsContextPath *path, int ma /* now for each buttons context type, we try to construct a path, * tracing back recursively */ - switch(mainb) { + switch (mainb) { case BCONTEXT_SCENE: case BCONTEXT_RENDER: found= buttons_context_path_scene(path); diff --git a/source/blender/editors/space_buttons/buttons_header.c b/source/blender/editors/space_buttons/buttons_header.c index fcc5b488ca9..2385bfd75b7 100644 --- a/source/blender/editors/space_buttons/buttons_header.c +++ b/source/blender/editors/space_buttons/buttons_header.c @@ -56,7 +56,7 @@ static void set_texture_context(bContext *C, SpaceButs *sbuts) { - switch(sbuts->mainb) { + switch (sbuts->mainb) { case BCONTEXT_MATERIAL: sbuts->texture_context = SB_TEXC_MAT_OR_LAMP; break; @@ -83,7 +83,7 @@ static void do_buttons_buttons(bContext *C, void *UNUSED(arg), int event) if (!sbuts) /* editor type switch */ return; - switch(event) { + switch (event) { case B_CONTEXT_SWITCH: case B_BUTSPREVIEW: ED_area_tag_redraw(CTX_wm_area(C)); diff --git a/source/blender/editors/space_buttons/space_buttons.c b/source/blender/editors/space_buttons/space_buttons.c index f1f4fb37b6e..b2a58041832 100644 --- a/source/blender/editors/space_buttons/space_buttons.c +++ b/source/blender/editors/space_buttons/space_buttons.c @@ -234,9 +234,9 @@ static void buttons_area_listener(ScrArea *sa, wmNotifier *wmn) SpaceButs *sbuts= sa->spacedata.first; /* context changes */ - switch(wmn->category) { + switch (wmn->category) { case NC_SCENE: - switch(wmn->data) { + switch (wmn->data) { case ND_RENDER_OPTIONS: buttons_area_redraw(sa, BCONTEXT_RENDER); break; @@ -262,7 +262,7 @@ static void buttons_area_listener(ScrArea *sa, wmNotifier *wmn) } break; case NC_OBJECT: - switch(wmn->data) { + switch (wmn->data) { case ND_TRANSFORM: buttons_area_redraw(sa, BCONTEXT_OBJECT); buttons_area_redraw(sa, BCONTEXT_DATA); /* autotexpace flag */ @@ -307,7 +307,7 @@ static void buttons_area_listener(ScrArea *sa, wmNotifier *wmn) } break; case NC_GEOM: - switch(wmn->data) { + switch (wmn->data) { case ND_SELECT: case ND_DATA: ED_area_tag_redraw(sa); @@ -316,7 +316,7 @@ static void buttons_area_listener(ScrArea *sa, wmNotifier *wmn) break; case NC_MATERIAL: ED_area_tag_redraw(sa); - switch(wmn->data) { + switch (wmn->data) { case ND_SHADING: case ND_SHADING_DRAW: case ND_NODES: @@ -350,7 +350,7 @@ static void buttons_area_listener(ScrArea *sa, wmNotifier *wmn) ED_area_tag_redraw(sa); break; case NC_ANIMATION: - switch(wmn->data) { + switch (wmn->data) { case ND_KEYFRAME: if (wmn->action == NA_EDITED) ED_area_tag_redraw(sa); diff --git a/source/blender/editors/space_clip/clip_graph_ops.c b/source/blender/editors/space_clip/clip_graph_ops.c index a71d7f4e70a..113c11995d1 100644 --- a/source/blender/editors/space_clip/clip_graph_ops.c +++ b/source/blender/editors/space_clip/clip_graph_ops.c @@ -84,7 +84,7 @@ static void toggle_selection_cb(void *userdata, MovieTrackingMarker *marker) { SelectUserData *data = (SelectUserData *)userdata; - switch(data->action) { + switch (data->action) { case SEL_SELECT: marker->flag |= MARKER_GRAPH_SEL; break; diff --git a/source/blender/editors/space_clip/clip_ops.c b/source/blender/editors/space_clip/clip_ops.c index 5535fe268ae..4ecb98b23c7 100644 --- a/source/blender/editors/space_clip/clip_ops.c +++ b/source/blender/editors/space_clip/clip_ops.c @@ -157,7 +157,7 @@ static int open_exec(bContext *C, wmOperator *op) errno = 0; - clip = BKE_add_movieclip_file(str); + clip = BKE_movieclip_file_add(str); if (!clip) { if (op->customdata) @@ -361,7 +361,7 @@ static int view_pan_modal(bContext *C, wmOperator *op, wmEvent *event) ViewPanData *vpd = op->customdata; float offset[2]; - switch(event->type) { + switch (event->type) { case MOUSEMOVE: copy_v2_v2(vpd->vec, &vpd->xorig); offset[0] = (vpd->x - event->x) / sc->zoom; @@ -496,7 +496,7 @@ static int view_zoom_modal(bContext *C, wmOperator *op, wmEvent *event) ViewZoomData *vpd = op->customdata; float factor; - switch(event->type) { + switch (event->type) { case MOUSEMOVE: factor = 1.0f + (vpd->x-event->x + vpd->y - event->y) / 300.0f; RNA_float_set(op->ptr, "factor", factor); diff --git a/source/blender/editors/space_clip/space_clip.c b/source/blender/editors/space_clip/space_clip.c index c799a936480..8339bc14cdd 100644 --- a/source/blender/editors/space_clip/space_clip.c +++ b/source/blender/editors/space_clip/space_clip.c @@ -324,9 +324,9 @@ static SpaceLink *clip_duplicate(SpaceLink *sl) static void clip_listener(ScrArea *sa, wmNotifier *wmn) { /* context changes */ - switch(wmn->category) { + switch (wmn->category) { case NC_SCENE: - switch(wmn->data) { + switch (wmn->data) { case ND_FRAME: clip_scopes_tag_refresh(sa); /* no break! */ @@ -337,14 +337,14 @@ static void clip_listener(ScrArea *sa, wmNotifier *wmn) } break; case NC_MOVIECLIP: - switch(wmn->data) { + switch (wmn->data) { case ND_DISPLAY: case ND_SELECT: clip_scopes_tag_refresh(sa); ED_area_tag_redraw(sa); break; } - switch(wmn->action) { + switch (wmn->action) { case NA_REMOVED: case NA_EDITED: case NA_EVALUATED: @@ -358,7 +358,7 @@ static void clip_listener(ScrArea *sa, wmNotifier *wmn) } break; case NC_GEOM: - switch(wmn->data) { + switch (wmn->data) { case ND_SELECT: clip_scopes_tag_refresh(sa); ED_area_tag_redraw(sa); @@ -1045,7 +1045,7 @@ static void clip_main_area_draw(const bContext *C, ARegion *ar) static void clip_main_area_listener(ARegion *ar, wmNotifier *wmn) { /* context changes */ - switch(wmn->category) { + switch (wmn->category) { case NC_SCREEN: if (wmn->data == ND_GPENCIL) ED_region_tag_redraw(ar); @@ -1217,7 +1217,7 @@ static void clip_tools_area_draw(const bContext *C, ARegion *ar) static void clip_props_area_listener(ARegion *ar, wmNotifier *wmn) { /* context changes */ - switch(wmn->category) { + switch (wmn->category) { case NC_WM: if (wmn->data == ND_HISTORY) ED_region_tag_redraw(ar); @@ -1262,7 +1262,7 @@ static void clip_properties_area_draw(const bContext *C, ARegion *ar) static void clip_properties_area_listener(ARegion *ar, wmNotifier *wmn) { /* context changes */ - switch(wmn->category) { + switch (wmn->category) { case NC_SCREEN: if (wmn->data ==ND_GPENCIL) ED_region_tag_redraw(ar); diff --git a/source/blender/editors/space_clip/tracking_ops.c b/source/blender/editors/space_clip/tracking_ops.c index fa2085ac930..f4454394ca3 100644 --- a/source/blender/editors/space_clip/tracking_ops.c +++ b/source/blender/editors/space_clip/tracking_ops.c @@ -545,7 +545,7 @@ static int slide_marker_modal(bContext *C, wmOperator *op, wmEvent *event) SlideMarkerData *data = (SlideMarkerData *)op->customdata; float dx, dy, mdelta[2]; - switch(event->type) { + switch (event->type) { case LEFTCTRLKEY: case RIGHTCTRLKEY: case LEFTSHIFTKEY: diff --git a/source/blender/editors/space_file/file_draw.c b/source/blender/editors/space_file/file_draw.c index 193fa2d2c65..36b38661463 100644 --- a/source/blender/editors/space_file/file_draw.c +++ b/source/blender/editors/space_file/file_draw.c @@ -82,7 +82,7 @@ enum { static void do_file_buttons(bContext *C, void *UNUSED(arg), int event) { - switch(event) { + switch (event) { case B_FS_FILENAME: file_filename_exec(C, NULL); break; @@ -417,8 +417,7 @@ static void draw_background(FileLayout *layout, View2D *v2d) int sy; /* alternating flat shade background */ - for (i=0; (i <= layout->rows); i+=2) - { + for (i=0; (i <= layout->rows); i+=2) { sy = (int)v2d->cur.ymax - i*(layout->tile_h+2*layout->tile_border_y) - layout->tile_border_y; UI_ThemeColorShade(TH_BACK, -7); @@ -490,8 +489,7 @@ void file_draw_list(const bContext *C, ARegion *ar) align = ( FILE_IMGDISPLAY == params->display) ? UI_STYLE_TEXT_CENTER : UI_STYLE_TEXT_LEFT; - for (i=offset; (i < numfiles) && (itot.xmin+2.0f); sy = (int)(v2d->tot.ymax - sy); diff --git a/source/blender/editors/space_file/file_ops.c b/source/blender/editors/space_file/file_ops.c index 7d1981a5a3b..aa1ab823ee1 100644 --- a/source/blender/editors/space_file/file_ops.c +++ b/source/blender/editors/space_file/file_ops.c @@ -911,8 +911,7 @@ static int file_smoothscroll_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent numfiles = filelist_numfiles(sfile->files); /* check if we are editing a name */ - for (i=0; i < numfiles; ++i) - { + for (i=0; i < numfiles; ++i) { if (filelist_is_selected(sfile->files, i, CHECK_ALL) ) { edit_idx=i; break; diff --git a/source/blender/editors/space_file/filelist.c b/source/blender/editors/space_file/filelist.c index 45a271cc7e9..a05eba2daeb 100644 --- a/source/blender/editors/space_file/filelist.c +++ b/source/blender/editors/space_file/filelist.c @@ -520,7 +520,7 @@ static void filelist_read_dir(struct FileList* filelist); struct FileList* filelist_new(short type) { FileList* p = MEM_callocN( sizeof(FileList), "filelist" ); - switch(type) { + switch (type) { case FILE_MAIN: p->readf = filelist_read_main; p->filterf = is_filtered_main; @@ -982,7 +982,7 @@ int filelist_is_selected(struct FileList* filelist, int index, FileCheckType che void filelist_sort(struct FileList* filelist, short sort) { - switch(sort) { + switch (sort) { case FILE_SORT_ALPHA: qsort(filelist->filelist, filelist->numfiles, sizeof(struct direntry), compare_name); break; diff --git a/source/blender/editors/space_file/filesel.c b/source/blender/editors/space_file/filesel.c index 31695ddd776..b17ca5ee319 100644 --- a/source/blender/editors/space_file/filesel.c +++ b/source/blender/editors/space_file/filesel.c @@ -447,8 +447,7 @@ static void column_widths(struct FileList* files, struct FileLayout* layout) layout->column_widths[i] = 0; } - for (i=0; (i < numfiles); ++i) - { + for (i=0; (i < numfiles); ++i) { struct direntry* file = filelist_file(files, i); if (file) { float len; diff --git a/source/blender/editors/space_file/fsmenu.c b/source/blender/editors/space_file/fsmenu.c index 48449ac8870..a4da1975c56 100644 --- a/source/blender/editors/space_file/fsmenu.c +++ b/source/blender/editors/space_file/fsmenu.c @@ -99,7 +99,7 @@ static FSMenuEntry *fsmenu_get_category(struct FSMenu* fsmenu, FSMenuCategory ca { FSMenuEntry *fsms = NULL; - switch(category) { + switch (category) { case FS_CATEGORY_SYSTEM: fsms = fsmenu->fsmenu_system; break; @@ -115,7 +115,7 @@ static FSMenuEntry *fsmenu_get_category(struct FSMenu* fsmenu, FSMenuCategory ca static void fsmenu_set_category(struct FSMenu* fsmenu, FSMenuCategory category, FSMenuEntry *fsms) { - switch(category) { + switch (category) { case FS_CATEGORY_SYSTEM: fsmenu->fsmenu_system = fsms; break; @@ -268,8 +268,7 @@ void fsmenu_read_bookmarks(struct FSMenu* fsmenu, const char *filename) fp = BLI_fopen(filename, "r"); if (!fp) return; - while ( fgets ( line, 256, fp ) != NULL ) /* read a line */ - { + while ( fgets ( line, 256, fp ) != NULL ) { /* read a line */ if (strncmp(line, "[Bookmarks]", 11)==0) { category = FS_CATEGORY_BOOKMARKS; } @@ -329,8 +328,7 @@ void fsmenu_read_system(struct FSMenu* fsmenu) const char *home; /* loop through all the OS X Volumes, and add them to the SYSTEM section */ - for (i=1; err!=nsvErr; i++) - { + for (i = 1; err != nsvErr; i++) { FSRef dir; unsigned char path[FILE_MAX]; @@ -389,8 +387,7 @@ void fsmenu_read_system(struct FSMenu* fsmenu) pathesArray = LSSharedFileListCopySnapshot(list, &seed); pathesCount = CFArrayGetCount(pathesArray); - for (i=0; ispacedata.first; */ /* context changes */ - switch(wmn->category) { + switch (wmn->category) { case NC_SPACE: switch (wmn->data) { case ND_SPACE_FILE_LIST: @@ -287,7 +287,7 @@ static void file_main_area_init(wmWindowManager *wm, ARegion *ar) static void file_main_area_listener(ARegion *ar, wmNotifier *wmn) { /* context changes */ - switch(wmn->category) { + switch (wmn->category) { case NC_SPACE: switch (wmn->data) { case ND_SPACE_FILE_LIST: @@ -476,7 +476,7 @@ static void file_channel_area_draw(const bContext *C, ARegion *ar) static void file_channel_area_listener(ARegion *UNUSED(ar), wmNotifier *wmn) { /* context changes */ - switch(wmn->category) { + switch (wmn->category) { } } @@ -536,7 +536,7 @@ static void file_ui_area_draw(const bContext *C, ARegion *ar) static void file_ui_area_listener(ARegion *ar, wmNotifier *wmn) { /* context changes */ - switch(wmn->category) { + switch (wmn->category) { case NC_SPACE: switch (wmn->data) { case ND_SPACE_FILE_LIST: diff --git a/source/blender/editors/space_graph/graph_buttons.c b/source/blender/editors/space_graph/graph_buttons.c index 4d2fe2cd568..8bc2eda7e33 100644 --- a/source/blender/editors/space_graph/graph_buttons.c +++ b/source/blender/editors/space_graph/graph_buttons.c @@ -85,7 +85,7 @@ static void do_graph_region_buttons(bContext *UNUSED(C), void *UNUSED(arg), int { //Scene *scene= CTX_data_scene(C); - switch(event) { + switch (event) { } diff --git a/source/blender/editors/space_graph/graph_draw.c b/source/blender/editors/space_graph/graph_draw.c index fc84cfc46a2..d435b78b65c 100644 --- a/source/blender/editors/space_graph/graph_draw.c +++ b/source/blender/editors/space_graph/graph_draw.c @@ -720,8 +720,8 @@ static void draw_fcurve_curve_bezts (bAnimContext *ac, ID *id, FCurve *fcu, View correct_bezpart(v1, v2, v3, v4); - forward_diff_bezier(v1[0], v2[0], v3[0], v4[0], data, resol, sizeof(float)*3); - forward_diff_bezier(v1[1], v2[1], v3[1], v4[1], data+1, resol, sizeof(float)*3); + BKE_curve_forward_diff_bezier(v1[0], v2[0], v3[0], v4[0], data, resol, sizeof(float)*3); + BKE_curve_forward_diff_bezier(v1[1], v2[1], v3[1], v4[1], data+1, resol, sizeof(float)*3); for (fp= data; resol; resol--, fp+= 3) glVertex2fv(fp); diff --git a/source/blender/editors/space_graph/space_graph.c b/source/blender/editors/space_graph/space_graph.c index 37cdbd4963a..6214201a87d 100644 --- a/source/blender/editors/space_graph/space_graph.c +++ b/source/blender/editors/space_graph/space_graph.c @@ -374,12 +374,12 @@ static void graph_buttons_area_draw(const bContext *C, ARegion *ar) static void graph_region_listener(ARegion *ar, wmNotifier *wmn) { /* context changes */ - switch(wmn->category) { + switch (wmn->category) { case NC_ANIMATION: ED_region_tag_redraw(ar); break; case NC_SCENE: - switch(wmn->data) { + switch (wmn->data) { case ND_RENDER_OPTIONS: case ND_OB_ACTIVE: case ND_FRAME: @@ -393,7 +393,7 @@ static void graph_region_listener(ARegion *ar, wmNotifier *wmn) } break; case NC_OBJECT: - switch(wmn->data) { + switch (wmn->data) { case ND_BONE_ACTIVE: case ND_BONE_SELECT: case ND_KEYS: @@ -406,7 +406,7 @@ static void graph_region_listener(ARegion *ar, wmNotifier *wmn) } break; case NC_NODE: - switch(wmn->action) { + switch (wmn->action) { case NA_EDITED: case NA_SELECTED: ED_region_tag_redraw(ar); @@ -552,7 +552,7 @@ static void graph_refresh(const bContext *C, ScrArea *sa) */ float *col= fcu->color; - switch(fcu->array_index) { + switch (fcu->array_index) { case 0: col[0]= 1.0f; col[1]= 0.0f; col[2]= 0.0f; break; diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c index 2c688990a8f..d9f3ffafb14 100644 --- a/source/blender/editors/space_image/image_ops.c +++ b/source/blender/editors/space_image/image_ops.c @@ -190,13 +190,14 @@ int space_image_main_area_poll(bContext *C) return 0; } -/* For IMAGE_OT_curves_point_set to avoid sampling when in uv smooth mode */ +/* For IMAGE_OT_curves_point_set to avoid sampling when in uv smooth mode or editmode */ int space_image_main_area_not_uv_brush_poll(bContext *C) { SpaceImage *sima = CTX_wm_space_image(C); + Scene *scene = CTX_data_scene(C); + ToolSettings *toolsettings = scene->toolsettings; - ToolSettings *toolsettings = CTX_data_scene(C)->toolsettings; - if (sima && !toolsettings->uvsculpt) + if (sima && !toolsettings->uvsculpt && !scene->obedit) return 1; return 0; diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c index 6d0f0c9323f..447028b8bef 100644 --- a/source/blender/editors/space_image/space_image.c +++ b/source/blender/editors/space_image/space_image.c @@ -88,7 +88,7 @@ void ED_space_image_set(SpaceImage *sima, Scene *scene, Object *obedit, Image *i /* context may be NULL, so use global */ ED_uvedit_assign_image(G.main, scene, obedit, ima, sima->image); - /* change the space ima after because uvedit_face_visible uses the space ima + /* change the space ima after because uvedit_face_visible_test uses the space ima * to check if the face is displayed in UV-localview */ sima->image = ima; @@ -205,7 +205,9 @@ void ED_image_aspect(Image *ima, float *aspx, float *aspy) if ((ima == NULL) || (ima->type == IMA_TYPE_R_RESULT) || (ima->type == IMA_TYPE_COMPOSITE) || (ima->aspx == 0.0f || ima->aspy == 0.0f)) + { return; + } /* x is always 1 */ *aspy = ima->aspy / ima->aspx; diff --git a/source/blender/editors/space_info/info_stats.c b/source/blender/editors/space_info/info_stats.c index 1c2f43f67a4..2ef8f6c306c 100644 --- a/source/blender/editors/space_info/info_stats.c +++ b/source/blender/editors/space_info/info_stats.c @@ -183,7 +183,7 @@ static void stats_object_edit(Object *obedit, SceneStats *stats) BezTriple *bezt; BPoint *bp; int a; - ListBase *nurbs = curve_editnurbs(cu); + ListBase *nurbs = BKE_curve_editNurbs_get(cu); for (nu = nurbs->first; nu; nu = nu->next) { if (nu->type == CU_BEZIER) { diff --git a/source/blender/editors/space_logic/logic_buttons.c b/source/blender/editors/space_logic/logic_buttons.c index dcead6c01db..22df7432ecb 100644 --- a/source/blender/editors/space_logic/logic_buttons.c +++ b/source/blender/editors/space_logic/logic_buttons.c @@ -104,7 +104,7 @@ static int cut_links_exec(bContext *C, wmOperator *op) float mcoords[256][2]; int i= 0; - RNA_BEGIN(op->ptr, itemptr, "path") { + RNA_BEGIN (op->ptr, itemptr, "path") { float loc[2]; RNA_float_get_array(&itemptr, "loc", loc); @@ -119,8 +119,7 @@ static int cut_links_exec(bContext *C, wmOperator *op) uiBlock *block; uiLinkLine *line, *nline; uiBut *but; - for (block= ar->uiblocks.first; block; block= block->next) - { + for (block= ar->uiblocks.first; block; block= block->next) { but= block->buttons.first; while (but) { if (but->type==LINK && but->link) { diff --git a/source/blender/editors/space_logic/logic_window.c b/source/blender/editors/space_logic/logic_window.c index f7c69c80067..9f5ae19d92c 100644 --- a/source/blender/editors/space_logic/logic_window.c +++ b/source/blender/editors/space_logic/logic_window.c @@ -371,7 +371,7 @@ static void do_logic_buts(bContext *C, void *UNUSED(arg), int event) ob= CTX_data_active_object(C); if (ob==NULL) return; - switch(event) { + switch (event) { case B_SETPROP: /* check for inconsistent types */ @@ -551,13 +551,10 @@ static void do_logic_buts(bContext *C, void *UNUSED(arg), int event) didit= 0; for (ob=bmain->object.first; ob; ob=ob->id.next) { act= ob->actuators.first; - while (act) - { - if (act->type==ACT_SOUND) - { + while (act) { + if (act->type==ACT_SOUND) { bSoundActuator *sa= act->data; - if (sa->sndnr) - { + if (sa->sndnr) { ID *sound= bmain->sound.first; int nr= 1; @@ -567,8 +564,7 @@ static void do_logic_buts(bContext *C, void *UNUSED(arg), int event) break; } - while (sound) - { + while (sound) { if (nr==sa->sndnr) break; nr++; @@ -727,8 +723,7 @@ static const char *actuator_name(int type) static const char *actuator_pup(Object *owner) { - switch (owner->type) - { + switch (owner->type) { case OB_ARMATURE: return "Actuators %t|Action %x15|Armature %x23|Motion %x0|Constraint %x9|Ipo %x1" "|Camera %x3|Sound %x5|Property %x6|Edit Object %x10" @@ -945,7 +940,7 @@ static int get_col_sensor(int type) { /* XXX themecolors not here */ - switch(type) { + switch (type) { case SENS_ALWAYS: return TH_PANEL; case SENS_DELAY: return TH_PANEL; case SENS_TOUCH: return TH_PANEL; @@ -1161,8 +1156,7 @@ static short draw_sensorbuttons(Object *ob, bSensor *sens, uiBlock *block, short set_col_sensor(sens->type, 0); - switch (sens->type) - { + switch (sens->type) { case SENS_ALWAYS: { ysize= 24; @@ -1347,14 +1341,12 @@ static short draw_sensorbuttons(Object *ob, bSensor *sens, uiBlock *block, short uiDefButI(block, MENU, B_REDR, str, xco+30,yco-44,width-60, 19, &ps->type, 0, 31, 0, 0, "Type"); - if (ps->type != SENS_PROP_EXPRESSION) - { + if (ps->type != SENS_PROP_EXPRESSION) { uiDefBut(block, TEX, 1, "Prop: ", xco+30,yco-68,width-60, 19, ps->name, 0, MAX_NAME, 0, 0, "Property name"); } - if (ps->type == SENS_PROP_INTERVAL) - { + if (ps->type == SENS_PROP_INTERVAL) { uiDefBut(block, TEX, 1, "Min: ", xco,yco-92,width/2, 19, ps->value, 0, MAX_NAME, 0, 0, "check for min value"); uiDefBut(block, TEX, 1, "Max: ", xco+width/2,yco-92,width/2, 19, @@ -1401,8 +1393,7 @@ static short draw_sensorbuttons(Object *ob, bSensor *sens, uiBlock *block, short uiDefButI(block, MENU, B_REDR, str, xco+10,yco-66,0.4*(width-20), 19, &arm->type, 0, 31, 0, 0, "Type"); - if (arm->type != SENS_ARM_STATE_CHANGED) - { + if (arm->type != SENS_ARM_STATE_CHANGED) { uiDefButF(block, NUM, 1, "Value: ", xco+10+0.4*(width-20),yco-66,0.6*(width-20), 19, &arm->value, -10000.0, 10000.0, 100, 0, "Test the error against this value"); } @@ -1489,8 +1480,7 @@ static short draw_sensorbuttons(Object *ob, bSensor *sens, uiBlock *block, short draw_default_sensor_header(sens, block, xco, yco, width); randomSensor = sens->data; /* some files were wrongly written, avoid crash now */ - if (randomSensor) - { + if (randomSensor) { uiDefButI(block, NUM, 1, "Seed: ", xco+10,yco-44,(width-20), 19, &randomSensor->seed, 0, 1000, 0, 0, "Initial seed of the generator. (Choose 0 for not random)"); @@ -1610,8 +1600,7 @@ static short draw_sensorbuttons(Object *ob, bSensor *sens, uiBlock *block, short &joy->flag, 0, 0, 0, 0, "Triggered by all events on this joysticks current type (axis/button/hat)"); } - if (joy->type == SENS_JOY_BUTTON) - { + if (joy->type == SENS_JOY_BUTTON) { if ((joy->flag & SENS_JOY_ANY_EVENT)==0) { uiDefButI(block, NUM, 1, "Number:", xco+10 + 0.6 * (width-20), yco-68, 0.4 * (width-20), 19, &joy->button, 0, 18, 100, 0, @@ -1727,7 +1716,7 @@ static short draw_controllerbuttons(bController *cont, uiBlock *block, short xco static int get_col_actuator(int type) { - switch(type) { + switch (type) { case ACT_ACTION: return TH_PANEL; case ACT_SHAPEACTION: return TH_PANEL; case ACT_OBJECT: return TH_PANEL; @@ -1869,14 +1858,12 @@ static short draw_actuatorbuttons(Main *bmain, Object *ob, bActuator *act, uiBlo /* yco is at the top of the rect, draw downwards */ set_col_actuator(act->type, 0); - switch (act->type) - { + switch (act->type) { case ACT_OBJECT: { oa = act->data; wval = (width-100)/3; - if (oa->type == ACT_OBJECT_NORMAL) - { + if (oa->type == ACT_OBJECT_NORMAL) { if (ob->gameflag & OB_DYNAMIC) { ysize= 175; } @@ -1904,8 +1891,7 @@ static short draw_actuatorbuttons(Main *bmain, Object *ob, bActuator *act, uiBlo uiDefButBitS(block, TOG, ACT_DLOC_LOCAL, 0, "L", xco+45+3*wval, yco-45, 15, 19, &oa->flag, 0.0, 0.0, 0, 0, "Local transformation"); uiDefButBitS(block, TOG, ACT_DROT_LOCAL, 0, "L", xco+45+3*wval, yco-64, 15, 19, &oa->flag, 0.0, 0.0, 0, 0, "Local transformation"); - if ( ob->gameflag & OB_DYNAMIC ) - { + if (ob->gameflag & OB_DYNAMIC) { uiDefBut(block, LABEL, 0, "Force", xco, yco-87, 55, 19, NULL, 0, 0, 0, 0, "Sets the force"); uiBlockBeginAlign(block); uiDefButF(block, NUM, 0, "", xco+45, yco-87, wval, 19, oa->forceloc, -10000.0, 10000.0, 10, 0, ""); @@ -1921,8 +1907,7 @@ static short draw_actuatorbuttons(Main *bmain, Object *ob, bActuator *act, uiBlo uiBlockEndAlign(block); } - if ( ob->gameflag & OB_DYNAMIC ) - { + if (ob->gameflag & OB_DYNAMIC) { uiDefBut(block, LABEL, 0, "LinV", xco, yco-129, 45, 19, NULL, 0, 0, 0, 0, "Sets the linear velocity"); uiBlockBeginAlign(block); uiDefButF(block, NUM, 0, "", xco+45, yco-129, wval, 19, oa->linearvelocity, -10000.0, 10000.0, 10, 0, ""); @@ -1948,8 +1933,7 @@ static short draw_actuatorbuttons(Main *bmain, Object *ob, bActuator *act, uiBlo uiDefButBitS(block, TOG, ACT_ADD_LIN_VEL, 0, "use_additive",xco+45+3*wval+15, yco-129, 35, 19, &oa->flag, 0.0, 0.0, 0, 0, "Toggles between ADD and SET linV"); } } - else if (oa->type == ACT_OBJECT_SERVO) - { + else if (oa->type == ACT_OBJECT_SERVO) { ysize= 195; glRects(xco, yco-ysize, xco+width, yco); @@ -2824,8 +2808,7 @@ static short draw_actuatorbuttons(Main *bmain, Object *ob, bActuator *act, uiBlo glRects( xco, yco-ysize, xco+width, yco ); uiEmboss( (float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1 ); - switch(tdfa->type) - { + switch (tdfa->type) { case ACT_2DFILTER_MOTIONBLUR: if (!tdfa->flag) { uiDefButS(block, TOG, B_REDR, "D", xco+30,yco-44,19, 19, &tdfa->flag, 0.0, 0.0, 0.0, 0.0, "Disable Motion Blur"); @@ -3759,8 +3742,7 @@ static void draw_actuator_armature(uiLayout *layout, PointerRNA *ptr) uiItemR(layout, ptr, "mode", 0, NULL, ICON_NONE); - switch (RNA_enum_get(ptr, "mode")) - { + switch (RNA_enum_get(ptr, "mode")) { case ACT_ARM_RUN: break; case ACT_ARM_ENABLE: @@ -3835,8 +3817,7 @@ static void draw_actuator_constraint(uiLayout *layout, PointerRNA *ptr, bContext RNA_main_pointer_create(CTX_data_main(C), &main_ptr); uiItemR(layout, ptr, "mode", 0, NULL, ICON_NONE); - switch (RNA_enum_get(ptr, "mode")) - { + switch (RNA_enum_get(ptr, "mode")) { case ACT_CONST_TYPE_LOC: uiItemR(layout, ptr, "limit", 0, NULL, ICON_NONE); @@ -3934,8 +3915,7 @@ static void draw_actuator_edit_object(uiLayout *layout, PointerRNA *ptr) uiLayout *row, *split, *sub; uiItemR(layout, ptr, "mode", 0, NULL, ICON_NONE); - switch (RNA_enum_get(ptr, "mode")) - { + switch (RNA_enum_get(ptr, "mode")) { case ACT_EDOB_ADD_OBJECT: row = uiLayoutRow(layout, 0); uiItemR(row, ptr, "object", 0, NULL, ICON_NONE); @@ -3988,8 +3968,7 @@ static void draw_actuator_filter_2d(uiLayout *layout, PointerRNA *ptr) uiLayout *row, *split; uiItemR(layout, ptr, "mode", 0, NULL, ICON_NONE); - switch (RNA_enum_get(ptr, "mode")) - { + switch (RNA_enum_get(ptr, "mode")) { case ACT_2DFILTER_CUSTOMFILTER: uiItemR(layout, ptr, "filter_pass", 0, NULL, ICON_NONE); uiItemR(layout, ptr, "glsl_shader", 0, NULL, ICON_NONE); @@ -4163,8 +4142,7 @@ static void draw_actuator_property(uiLayout *layout, PointerRNA *ptr) uiItemR(layout, ptr, "mode", 0, NULL, ICON_NONE); uiItemPointerR(layout, ptr, "property", &settings_ptr, "properties", NULL, ICON_NONE); - switch(RNA_enum_get(ptr, "mode")) - { + switch (RNA_enum_get(ptr, "mode")) { case ACT_PROP_TOGGLE: break; case ACT_PROP_ADD: diff --git a/source/blender/editors/space_logic/space_logic.c b/source/blender/editors/space_logic/space_logic.c index 82175f83d39..93105c39f39 100644 --- a/source/blender/editors/space_logic/space_logic.c +++ b/source/blender/editors/space_logic/space_logic.c @@ -195,12 +195,12 @@ static void logic_refresh(const bContext *UNUSED(C), ScrArea *UNUSED(sa)) static void logic_listener(ARegion *ar, wmNotifier *wmn) { /* context changes */ - switch(wmn->category) { + switch (wmn->category) { case NC_LOGIC: ED_region_tag_redraw(ar); break; case NC_SCENE: - switch(wmn->data) { + switch (wmn->data) { case ND_FRAME: ED_region_tag_redraw(ar); break; diff --git a/source/blender/editors/space_nla/nla_buttons.c b/source/blender/editors/space_nla/nla_buttons.c index de42e4a783d..a133d370d99 100644 --- a/source/blender/editors/space_nla/nla_buttons.c +++ b/source/blender/editors/space_nla/nla_buttons.c @@ -76,7 +76,7 @@ static void do_nla_region_buttons(bContext *C, void *UNUSED(arg), int event) { //Scene *scene= CTX_data_scene(C); - switch(event) { + switch (event) { } diff --git a/source/blender/editors/space_nla/space_nla.c b/source/blender/editors/space_nla/space_nla.c index 4dc3aef7d2c..27c48d2232f 100644 --- a/source/blender/editors/space_nla/space_nla.c +++ b/source/blender/editors/space_nla/space_nla.c @@ -348,12 +348,12 @@ static void nla_buttons_area_draw(const bContext *C, ARegion *ar) static void nla_region_listener(ARegion *ar, wmNotifier *wmn) { /* context changes */ - switch(wmn->category) { + switch (wmn->category) { case NC_ANIMATION: ED_region_tag_redraw(ar); break; case NC_SCENE: - switch(wmn->data) { + switch (wmn->data) { case ND_OB_ACTIVE: case ND_FRAME: case ND_MARKERS: @@ -362,7 +362,7 @@ static void nla_region_listener(ARegion *ar, wmNotifier *wmn) } break; case NC_OBJECT: - switch(wmn->data) { + switch (wmn->data) { case ND_BONE_ACTIVE: case ND_BONE_SELECT: case ND_KEYS: @@ -381,12 +381,12 @@ static void nla_region_listener(ARegion *ar, wmNotifier *wmn) static void nla_main_area_listener(ARegion *ar, wmNotifier *wmn) { /* context changes */ - switch(wmn->category) { + switch (wmn->category) { case NC_ANIMATION: ED_region_tag_redraw(ar); break; case NC_SCENE: - switch(wmn->data) { + switch (wmn->data) { case ND_RENDER_OPTIONS: case ND_OB_ACTIVE: case ND_FRAME: @@ -396,7 +396,7 @@ static void nla_main_area_listener(ARegion *ar, wmNotifier *wmn) } break; case NC_OBJECT: - switch(wmn->data) { + switch (wmn->data) { case ND_BONE_ACTIVE: case ND_BONE_SELECT: case ND_KEYS: @@ -406,7 +406,7 @@ static void nla_main_area_listener(ARegion *ar, wmNotifier *wmn) } break; case NC_NODE: - switch(wmn->action) { + switch (wmn->action) { case NA_EDITED: ED_region_tag_redraw(ar); break; @@ -425,19 +425,19 @@ static void nla_main_area_listener(ARegion *ar, wmNotifier *wmn) static void nla_channel_area_listener(ARegion *ar, wmNotifier *wmn) { /* context changes */ - switch(wmn->category) { + switch (wmn->category) { case NC_ANIMATION: ED_region_tag_redraw(ar); break; case NC_SCENE: - switch(wmn->data) { + switch (wmn->data) { case ND_OB_ACTIVE: ED_region_tag_redraw(ar); break; } break; case NC_OBJECT: - switch(wmn->data) { + switch (wmn->data) { case ND_BONE_ACTIVE: case ND_BONE_SELECT: case ND_KEYS: diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c index 42aea32b7f6..91ece361aac 100644 --- a/source/blender/editors/space_node/drawnode.c +++ b/source/blender/editors/space_node/drawnode.c @@ -963,7 +963,7 @@ static void node_update_frame(const bContext *UNUSED(C), bNodeTree *UNUSED(ntree static void node_common_set_butfunc(bNodeType *ntype) { - switch(ntype->type) { + switch (ntype->type) { case NODE_GROUP: ntype->uifunc= node_uifunc_group; ntype->drawfunc= node_draw_group; @@ -1176,7 +1176,7 @@ static void node_shader_buts_dynamic(uiLayout *layout, bContext *C, PointerRNA * static void node_shader_set_butfunc(bNodeType *ntype) { ntype->uifuncbut = NULL; - switch(ntype->type) { + switch (ntype->type) { /* case NODE_GROUP: note, typeinfo for group is generated... see "XXX ugly hack" */ case SH_NODE_MATERIAL: @@ -1941,7 +1941,7 @@ static void node_composit_buts_moviedistortion(uiLayout *layout, bContext *C, Po static void node_composit_set_butfunc(bNodeType *ntype) { ntype->uifuncbut = NULL; - switch(ntype->type) { + switch (ntype->type) { /* case NODE_GROUP: note, typeinfo for group is generated... see "XXX ugly hack" */ case CMP_NODE_IMAGE: @@ -2137,7 +2137,7 @@ static void node_texture_buts_proc(uiLayout *layout, bContext *UNUSED(C), Pointe col= uiLayoutColumn(layout, 0); - switch( tex->type ) { + switch ( tex->type ) { case TEX_BLEND: uiItemR(col, &tex_ptr, "progression", 0, "", ICON_NONE); row= uiLayoutRow(col, 0); @@ -2222,45 +2222,50 @@ static void node_texture_set_butfunc(bNodeType *ntype) if ( ntype->type >= TEX_NODE_PROC && ntype->type < TEX_NODE_PROC_MAX ) { ntype->uifunc = node_texture_buts_proc; } - else switch(ntype->type) { - + else { + switch (ntype->type) { + case TEX_NODE_MATH: ntype->uifunc = node_buts_math; break; - + case TEX_NODE_MIX_RGB: ntype->uifunc = node_buts_mix_rgb; break; - + case TEX_NODE_VALTORGB: ntype->uifunc = node_buts_colorramp; break; - + case TEX_NODE_CURVE_RGB: ntype->uifunc= node_buts_curvecol; break; - + case TEX_NODE_CURVE_TIME: ntype->uifunc = node_buts_time; break; - + case TEX_NODE_TEXTURE: ntype->uifunc = node_buts_texture; break; - + case TEX_NODE_BRICKS: ntype->uifunc = node_texture_buts_bricks; break; - + case TEX_NODE_IMAGE: ntype->uifunc = node_texture_buts_image; break; - + case TEX_NODE_OUTPUT: ntype->uifunc = node_texture_buts_output; break; + } + } + + if (ntype->uifuncbut == NULL) { + ntype->uifuncbut = ntype->uifunc; } - if (ntype->uifuncbut == NULL) ntype->uifuncbut = ntype->uifunc; } /* ******* init draw callbacks for all tree types, only called in usiblender.c, once ************* */ @@ -2305,7 +2310,7 @@ void ED_init_node_butfuncs(void) for (i=0; i < NUM_SOCKET_TYPES; ++i) { stype = ntreeGetSocketType(i); if (stype) { - switch(stype->type) { + switch (stype->type) { case SOCK_FLOAT: case SOCK_INT: case SOCK_BOOLEAN: @@ -2494,8 +2499,8 @@ int node_link_bezier_points(View2D *v2d, SpaceNode *snode, bNodeLink *link, floa else { /* always do all three, to prevent data hanging around */ - forward_diff_bezier(vec[0][0], vec[1][0], vec[2][0], vec[3][0], coord_array[0], resol, sizeof(float)*2); - forward_diff_bezier(vec[0][1], vec[1][1], vec[2][1], vec[3][1], coord_array[0]+1, resol, sizeof(float)*2); + BKE_curve_forward_diff_bezier(vec[0][0], vec[1][0], vec[2][0], vec[3][0], coord_array[0], resol, sizeof(float)*2); + BKE_curve_forward_diff_bezier(vec[0][1], vec[1][1], vec[2][1], vec[3][1], coord_array[0]+1, resol, sizeof(float)*2); return 1; } diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index dda06267237..f38e3e0d272 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -284,7 +284,7 @@ void ED_node_shader_default(Scene *scene, ID *id) ntree= ntreeAddTree("Shader Nodetree", NTREE_SHADER, 0); - switch(GS(id->name)) { + switch (GS(id->name)) { case ID_MA: { Material *ma= (Material*)id; ma->nodetree = ntree; @@ -1458,7 +1458,7 @@ static int sample_invoke(bContext *C, wmOperator *op, wmEvent *event) static int sample_modal(bContext *C, wmOperator *op, wmEvent *event) { - switch(event->type) { + switch (event->type) { case LEFTMOUSE: case RIGHTMOUSE: // XXX hardcoded sample_exit(C, op); @@ -2651,7 +2651,7 @@ static int cut_links_exec(bContext *C, wmOperator *op) float mcoords[256][2]; int i= 0; - RNA_BEGIN(op->ptr, itemptr, "path") { + RNA_BEGIN (op->ptr, itemptr, "path") { float loc[2]; RNA_float_get_array(&itemptr, "loc", loc); diff --git a/source/blender/editors/space_node/node_templates.c b/source/blender/editors/space_node/node_templates.c index 049886b1d66..13e85c7f74d 100644 --- a/source/blender/editors/space_node/node_templates.c +++ b/source/blender/editors/space_node/node_templates.c @@ -220,8 +220,10 @@ static void node_socket_add_replace(Main *bmain, bNodeTree *ntree, bNode *node_t /* also preserve mapping for texture nodes */ if (node_from->typeinfo->nclass == NODE_CLASS_TEXTURE && - node_prev->typeinfo->nclass == NODE_CLASS_TEXTURE) + node_prev->typeinfo->nclass == NODE_CLASS_TEXTURE) + { memcpy(node_from->storage, node_prev->storage, sizeof(NodeTexBase)); + } /* remove node */ node_remove_linked(ntree, node_prev); @@ -295,11 +297,14 @@ static void ui_node_sock_name(bNodeSocket *sock, char name[UI_MAX_NAME_STR]) BLI_strncpy(node_name, node->typeinfo->name, UI_MAX_NAME_STR); if (node->inputs.first == NULL && - node->outputs.first != node->outputs.last && - !(node->typeinfo->flag & NODE_OPTIONS)) + node->outputs.first != node->outputs.last && + !(node->typeinfo->flag & NODE_OPTIONS)) + { BLI_snprintf(name, UI_MAX_NAME_STR, "%s | %s", node_name, sock->link->fromsock->name); - else + } + else { BLI_strncpy(name, node_name, UI_MAX_NAME_STR); + } } else if (sock->type == SOCK_SHADER) BLI_strncpy(name, "None", UI_MAX_NAME_STR); diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c index fca9927b0f5..3540c20e515 100644 --- a/source/blender/editors/space_node/space_node.c +++ b/source/blender/editors/space_node/space_node.c @@ -172,7 +172,7 @@ static void node_area_listener(ScrArea *sa, wmNotifier *wmn) short shader_type = snode->shaderfrom; /* preview renders */ - switch(wmn->category) { + switch (wmn->category) { case NC_SCENE: switch (wmn->data) { case ND_NODES: @@ -244,7 +244,7 @@ static void node_area_listener(ScrArea *sa, wmNotifier *wmn) ED_area_tag_redraw(sa); break; case NC_SCREEN: - switch(wmn->data) { + switch (wmn->data) { case ND_ANIMPLAY: ED_area_tag_refresh(sa); break; @@ -429,7 +429,7 @@ static void node_header_area_draw(const bContext *C, ARegion *ar) static void node_region_listener(ARegion *ar, wmNotifier *wmn) { /* context changes */ - switch(wmn->category) { + switch (wmn->category) { case NC_SPACE: if (wmn->data==ND_SPACE_NODE) ED_region_tag_redraw(ar); diff --git a/source/blender/editors/space_outliner/outliner_draw.c b/source/blender/editors/space_outliner/outliner_draw.c index 73289dce968..7b2bbf3e285 100644 --- a/source/blender/editors/space_outliner/outliner_draw.c +++ b/source/blender/editors/space_outliner/outliner_draw.c @@ -29,49 +29,30 @@ * \ingroup spoutliner */ -#include -#include - -#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 "DNA_scene_types.h" +#include "DNA_sequence_types.h" #include "BLI_blenlib.h" #include "BLI_utildefines.h" +#include "BLI_ghash.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" @@ -85,7 +66,6 @@ #include "UI_view2d.h" #include "RNA_access.h" -#include "RNA_define.h" #include "outliner_intern.h" @@ -298,7 +278,7 @@ static void namebutton_cb(bContext *C, void *tsep, char *oldname) if (tselem->type==0) { test_idbutton(tselem->id->name+2); // library.c, unique name and alpha sort - switch(GS(tselem->id->name)) { + switch (GS(tselem->id->name)) { case ID_MA: WM_event_add_notifier(C, NC_MATERIAL, NULL); break; case ID_TE: @@ -325,7 +305,7 @@ static void namebutton_cb(bContext *C, void *tsep, char *oldname) } } else { - switch(tselem->type) { + switch (tselem->type) { case TSE_DEFGROUP: defgroup_unique_name(te->directdata, (Object *)tselem->id); // id = object break; @@ -739,7 +719,7 @@ static void keymap_type_cb(bContext *C, void *kmi_v, void *UNUSED(arg_v)) short maptype= keymap_menu_type(kmi->type); if (maptype!=kmi->maptype) { - switch(kmi->maptype) { + switch (kmi->maptype) { case OL_KM_KEYBOARD: kmi->type= AKEY; kmi->val= KM_PRESS; @@ -796,7 +776,7 @@ static void outliner_draw_keymapbuts(uiBlock *block, ARegion *ar, SpaceOops *soo xstart+= butw2+5; /* edit actual event */ - switch(kmi->maptype) { + 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; @@ -924,7 +904,7 @@ static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeSto arg.alpha= alpha; if (tselem->type) { - switch( tselem->type) { + switch ( tselem->type) { case TSE_ANIM_DATA: UI_icon_draw(x, y, ICON_ANIM_DATA); break; // xxx case TSE_NLA: @@ -952,7 +932,7 @@ static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeSto { Object *ob= (Object *)tselem->id; ModifierData *md= BLI_findlink(&ob->modifiers, tselem->nr); - switch(md->type) { + switch (md->type) { case eModifierType_Subsurf: UI_icon_draw(x, y, ICON_MOD_SUBSURF); break; case eModifierType_Armature: @@ -1113,7 +1093,7 @@ static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeSto } } else { - switch( GS(tselem->id->name)) { + switch ( GS(tselem->id->name)) { case ID_SCE: tselem_draw_icon_uibut(&arg, ICON_SCENE_DATA); break; case ID_ME: @@ -1128,7 +1108,7 @@ static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeSto { Lamp *la= (Lamp *)tselem->id; - switch(la->type) { + switch (la->type) { case LA_LOCAL: tselem_draw_icon_uibut(&arg, ICON_LAMP_POINT); break; case LA_SUN: diff --git a/source/blender/editors/space_outliner/outliner_edit.c b/source/blender/editors/space_outliner/outliner_edit.c index 981c4a5d867..62d93f62d0f 100644 --- a/source/blender/editors/space_outliner/outliner_edit.c +++ b/source/blender/editors/space_outliner/outliner_edit.c @@ -29,79 +29,39 @@ * \ingroup spoutliner */ -#include -#include -#include -#include - #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 -#endif #include "BLF_translation.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 "ED_armature.h" #include "ED_object.h" #include "ED_screen.h" -#include "ED_util.h" +#include "ED_keyframing.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" diff --git a/source/blender/editors/space_outliner/outliner_ops.c b/source/blender/editors/space_outliner/outliner_ops.c index d2ef4573ccf..12f8f2cb38b 100644 --- a/source/blender/editors/space_outliner/outliner_ops.c +++ b/source/blender/editors/space_outliner/outliner_ops.c @@ -28,9 +28,6 @@ * \ingroup spoutliner */ - -#include - #include "DNA_space_types.h" #include "WM_api.h" @@ -42,10 +39,9 @@ #include "outliner_intern.h" + /* ************************** registration **********************************/ - - void outliner_operatortypes(void) { WM_operatortype_append(OUTLINER_OT_item_activate); diff --git a/source/blender/editors/space_outliner/outliner_select.c b/source/blender/editors/space_outliner/outliner_select.c index c7aa4dc4e92..5515ec45269 100644 --- a/source/blender/editors/space_outliner/outliner_select.c +++ b/source/blender/editors/space_outliner/outliner_select.c @@ -29,54 +29,23 @@ * \ingroup spoutliner */ -#include -#include #include -#include #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 "DNA_scene_types.h" +#include "DNA_sequence_types.h" +#include "DNA_world_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 -#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" @@ -88,12 +57,8 @@ #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" @@ -664,7 +629,7 @@ static int tree_element_active_keymap_item(bContext *UNUSED(C), TreeElement *te, int tree_element_active(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set) { - switch(te->idcode) { + switch (te->idcode) { /* Note: no ID_OB: objects are handled specially to allow multiple * selection. See do_outliner_item_activate. */ case ID_MA: @@ -687,7 +652,7 @@ int tree_element_active(bContext *C, Scene *scene, SpaceOops *soops, TreeElement /* 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) { + switch (tselem->type) { case TSE_DEFGROUP: return tree_element_active_defgroup(C, scene, te, tselem, set); case TSE_BONE: diff --git a/source/blender/editors/space_outliner/outliner_tools.c b/source/blender/editors/space_outliner/outliner_tools.c index ba3637a88af..13e86209f3a 100644 --- a/source/blender/editors/space_outliner/outliner_tools.c +++ b/source/blender/editors/space_outliner/outliner_tools.c @@ -29,56 +29,31 @@ * \ingroup spoutliner */ -#include -#include -#include -#include - #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 -#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" @@ -88,12 +63,7 @@ #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" @@ -126,7 +96,7 @@ static void set_operation_types(SpaceOops *soops, ListBase *lb, } else { int idcode= GS(tselem->id->name); - switch(idcode) { + switch (idcode) { case ID_SCE: *scenelevel= 1; break; diff --git a/source/blender/editors/space_outliner/outliner_tree.c b/source/blender/editors/space_outliner/outliner_tree.c index e83fce0cf05..e2d43386c5e 100644 --- a/source/blender/editors/space_outliner/outliner_tree.c +++ b/source/blender/editors/space_outliner/outliner_tree.c @@ -31,8 +31,15 @@ #include #include -#include -#include + +#if defined WIN32 && !defined _LIBC || defined __sun +# include "BLI_fnmatch.h" /* use fnmatch included in blenlib */ +#else +# ifndef _GNU_SOURCE +# define _GNU_SOURCE +# endif +# include +#endif #include "MEM_guardedalloc.h" @@ -55,51 +62,20 @@ #include "BLI_blenlib.h" #include "BLI_utildefines.h" -#include "BLI_math_base.h" +#include "BLI_math.h" -#if defined WIN32 && !defined _LIBC || defined __sun -# include "BLI_fnmatch.h" /* use fnmatch included in blenlib */ -#else -# ifndef _GNU_SOURCE -# define _GNU_SOURCE -# endif -# include -#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" diff --git a/source/blender/editors/space_outliner/space_outliner.c b/source/blender/editors/space_outliner/space_outliner.c index ed050b7f93d..c2a3affa1b6 100644 --- a/source/blender/editors/space_outliner/space_outliner.c +++ b/source/blender/editors/space_outliner/space_outliner.c @@ -182,9 +182,9 @@ static void outliner_main_area_free(ARegion *UNUSED(ar)) static void outliner_main_area_listener(ARegion *ar, wmNotifier *wmn) { /* context changes */ - switch(wmn->category) { + switch (wmn->category) { case NC_SCENE: - switch(wmn->data) { + switch (wmn->data) { case ND_OB_ACTIVE: case ND_OB_SELECT: case ND_OB_VISIBLE: @@ -200,7 +200,7 @@ static void outliner_main_area_listener(ARegion *ar, wmNotifier *wmn) } break; case NC_OBJECT: - switch(wmn->data) { + switch (wmn->data) { case ND_TRANSFORM: /* transform doesn't change outliner data */ break; @@ -212,7 +212,7 @@ static void outliner_main_area_listener(ARegion *ar, wmNotifier *wmn) ED_region_tag_redraw(ar); break; case ND_CONSTRAINT: - switch(wmn->action) { + switch (wmn->action) { case NA_ADDED: case NA_REMOVED: case NA_RENAME: @@ -244,7 +244,7 @@ static void outliner_main_area_listener(ARegion *ar, wmNotifier *wmn) ED_region_tag_redraw(ar); break; case NC_MATERIAL: - switch(wmn->data) { + switch (wmn->data) { case ND_SHADING: case ND_SHADING_DRAW: ED_region_tag_redraw(ar); @@ -255,7 +255,7 @@ static void outliner_main_area_listener(ARegion *ar, wmNotifier *wmn) ED_region_tag_redraw(ar); break; case NC_GEOM: - switch(wmn->data) { + switch (wmn->data) { case ND_DATA: /* needed for vertex groups only, no special notifier atm so use NC_GEOM|ND_DATA */ ED_region_tag_redraw(ar); @@ -263,7 +263,7 @@ static void outliner_main_area_listener(ARegion *ar, wmNotifier *wmn) } break; case NC_ANIMATION: - switch(wmn->data) { + switch (wmn->data) { case ND_NLA_ACTCHANGE: case ND_KEYFRAME: ED_region_tag_redraw(ar); @@ -299,7 +299,7 @@ static void outliner_header_area_free(ARegion *UNUSED(ar)) static void outliner_header_area_listener(ARegion *ar, wmNotifier *wmn) { /* context changes */ - switch(wmn->category) { + switch (wmn->category) { case NC_SCENE: if (wmn->data == ND_KEYINGSET) ED_region_tag_redraw(ar); diff --git a/source/blender/editors/space_sequencer/sequencer_add.c b/source/blender/editors/space_sequencer/sequencer_add.c index dfa733deac6..09d974fe4b8 100644 --- a/source/blender/editors/space_sequencer/sequencer_add.c +++ b/source/blender/editors/space_sequencer/sequencer_add.c @@ -188,7 +188,7 @@ static void seq_load_operator_info(SeqLoadInfo *seq_load, wmOperator *op) else if (RNA_struct_find_property(op->ptr, "files")) { /* used for image strip */ /* best guess, first images name */ - RNA_BEGIN(op->ptr, itemptr, "files") { + RNA_BEGIN (op->ptr, itemptr, "files") { char *name = RNA_string_get_alloc(&itemptr, "name", NULL, 0); BLI_strncpy(seq_load->name, name, sizeof(seq_load->name)); MEM_freeN(name); @@ -420,8 +420,7 @@ static int sequencer_add_generic_strip_exec(bContext *C, wmOperator *op, SeqLoad BLI_split_dir_part(seq_load.path, dir_only, sizeof(dir_only)); - RNA_BEGIN(op->ptr, itemptr, "files") - { + RNA_BEGIN (op->ptr, itemptr, "files") { RNA_string_get(&itemptr, "name", file_only); BLI_join_dirfile(seq_load.path, sizeof(seq_load.path), dir_only, file_only); @@ -595,7 +594,7 @@ static int sequencer_add_image_strip_exec(bContext *C, wmOperator *op) strip = seq->strip; se = strip->stripdata; - RNA_BEGIN(op->ptr, itemptr, "files") { + 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); diff --git a/source/blender/editors/space_sequencer/sequencer_draw.c b/source/blender/editors/space_sequencer/sequencer_draw.c index cd0c8779c39..5431156de45 100644 --- a/source/blender/editors/space_sequencer/sequencer_draw.c +++ b/source/blender/editors/space_sequencer/sequencer_draw.c @@ -206,14 +206,12 @@ static void drawseqwave(Scene *scene, Sequence *seq, float x1, float y1, float x length = floor((waveform->length - startsample) / samplestep); glBegin(GL_LINE_STRIP); - for (i = 0; i < length; i++) - { + for (i = 0; i < length; i++) { pos = startsample + i * samplestep; value = waveform->data[pos * 3]; - for (j = pos + 1; (j < waveform->length) && (j < pos + samplestep); j++) - { + for (j = pos + 1; (j < waveform->length) && (j < pos + samplestep); j++) { if (value > waveform->data[j * 3]) value = waveform->data[j * 3]; } @@ -223,14 +221,12 @@ static void drawseqwave(Scene *scene, Sequence *seq, float x1, float y1, float x glEnd(); glBegin(GL_LINE_STRIP); - for (i = 0; i < length; i++) - { + for (i = 0; i < length; i++) { pos = startsample + i * samplestep; value = waveform->data[pos * 3 + 1]; - for (j = pos + 1; (j < waveform->length) && (j < pos + samplestep); j++) - { + for (j = pos + 1; (j < waveform->length) && (j < pos + samplestep); j++) { if (value < waveform->data[j * 3 + 1]) value = waveform->data[j * 3 + 1]; } diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index bd306f2d646..d2b1cccfefc 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -87,7 +87,6 @@ EnumPropertyItem sequencer_prop_effect_types[] = { {SEQ_GAMCROSS, "GAMMA_CROSS", 0, "Gamma Cross", "Gamma Cross effect strip type"}, {SEQ_MUL, "MULTIPLY", 0, "Multiply", "Multiply effect strip type"}, {SEQ_OVERDROP, "OVER_DROP", 0, "Alpha Over Drop", "Alpha Over Drop effect strip type"}, - {SEQ_PLUGIN, "PLUGIN", 0, "Plugin", "Plugin effect strip type"}, {SEQ_WIPE, "WIPE", 0, "Wipe", "Wipe effect strip type"}, {SEQ_GLOW, "GLOW", 0, "Glow", "Glow effect strip type"}, {SEQ_TRANSFORM, "TRANSFORM", 0, "Transform", "Transform effect strip type"}, @@ -202,7 +201,7 @@ static void seq_proxy_build_job(const bContext *C) WM_jobs_callbacks(steve, proxy_startjob, NULL, NULL, proxy_endjob); } - SEQP_BEGIN(ed, seq) { + SEQP_BEGIN (ed, seq) { if ((seq->flag & SELECT)) { context = seq_proxy_rebuild_context(pj->main, pj->scene, seq); link = BLI_genericNodeN(context); @@ -462,8 +461,7 @@ void deselect_all_seq(Scene *scene) if (ed == NULL) return; - SEQP_BEGIN(ed, seq) - { + SEQP_BEGIN (ed, seq) { seq->flag &= ~SEQ_ALLSEL; } SEQ_END @@ -846,7 +844,7 @@ static int insert_gap(Scene *scene, int gap, int cfra) if (ed == NULL) return 0; - SEQP_BEGIN(ed, seq) { + SEQP_BEGIN (ed, seq) { if (seq->startdisp >= cfra) { seq->start += gap; calc_sequence(scene, seq); @@ -872,8 +870,7 @@ static void UNUSED_FUNCTION(touch_seq_files) (Scene * scene) WM_cursor_wait(1); - SEQP_BEGIN(ed, seq) - { + SEQP_BEGIN (ed, seq) { if (seq->flag & SELECT) { if (seq->type == SEQ_MOVIE) { if (seq->strip && seq->strip->stripdata) { @@ -900,8 +897,7 @@ static void set_filter_seq(Scene *scene) if (okee("Set Deinterlace") == 0) return; - SEQP_BEGIN(ed, seq) - { + SEQP_BEGIN (ed, seq) { if (seq->flag & SELECT) { if (seq->type == SEQ_MOVIE) { seq->flag |= SEQ_FILTERY; @@ -936,8 +932,7 @@ static void UNUSED_FUNCTION(seq_remap_paths) (Scene * scene) if (strcmp(to, from) == 0) return; - SEQP_BEGIN(ed, seq) - { + SEQP_BEGIN (ed, seq) { if (seq->flag & SELECT) { if (strncmp(seq->strip->dir, from, strlen(from)) == 0) { printf("found %s\n", seq->strip->dir); @@ -1482,7 +1477,7 @@ static int sequencer_cut_exec(bContext *C, wmOperator *op) BLI_movelisttolist(ed->seqbasep, &newlist); if (cut_side != SEQ_SIDE_BOTH) { - SEQP_BEGIN(ed, seq) { + SEQP_BEGIN (ed, seq) { if (cut_side == SEQ_SIDE_LEFT) { if (seq->startdisp >= cut_frame) { seq->flag &= ~SEQ_ALLSEL; @@ -3015,7 +3010,7 @@ static int sequencer_change_path_exec(bContext *C, wmOperator *op) } seq->strip->stripdata = se = MEM_callocN(len * sizeof(StripElem), "stripelem"); - RNA_BEGIN(op->ptr, itemptr, "files") { + 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); diff --git a/source/blender/editors/space_sequencer/sequencer_select.c b/source/blender/editors/space_sequencer/sequencer_select.c index 2447ca6cfbe..f326052ea60 100644 --- a/source/blender/editors/space_sequencer/sequencer_select.c +++ b/source/blender/editors/space_sequencer/sequencer_select.c @@ -362,7 +362,7 @@ static int sequencer_select_invoke(bContext *C, wmOperator *op, wmEvent *event) deselect_all_seq(scene); UI_view2d_region_to_view(v2d, event->mval[0], event->mval[1], &x, NULL); - SEQP_BEGIN(ed, seq) + SEQP_BEGIN (ed, seq) { if (x < CFRA) { if (seq->enddisp < CFRA) { @@ -940,7 +940,7 @@ static short select_grouped_type(Editing *ed, Sequence *actseq) Sequence *seq; short changed = FALSE; - SEQP_BEGIN(ed, seq) { + SEQP_BEGIN (ed, seq) { if (seq->type == actseq->type) { seq->flag |= SELECT; changed = TRUE; @@ -957,7 +957,7 @@ static short select_grouped_type_basic(Editing *ed, Sequence *actseq) short changed = FALSE; short is_sound = SEQ_IS_SOUND(actseq); - SEQP_BEGIN(ed, seq) { + SEQP_BEGIN (ed, seq) { if (is_sound ? SEQ_IS_SOUND(seq) : !SEQ_IS_SOUND(seq)) { seq->flag |= SELECT; changed = TRUE; @@ -974,7 +974,7 @@ static short select_grouped_type_effect(Editing *ed, Sequence *actseq) short changed = FALSE; short is_effect = SEQ_IS_EFFECT(actseq); - SEQP_BEGIN(ed, seq) { + SEQP_BEGIN (ed, seq) { if (is_effect ? SEQ_IS_EFFECT(seq) : !SEQ_IS_EFFECT(seq)) { seq->flag |= SELECT; changed = TRUE; @@ -995,7 +995,7 @@ static short select_grouped_data(Editing *ed, Sequence *actseq) return changed; if (SEQ_HAS_PATH(actseq) && dir) { - SEQP_BEGIN(ed, seq) { + SEQP_BEGIN (ed, seq) { if (SEQ_HAS_PATH(seq) && seq->strip && strcmp(seq->strip->dir, dir) == 0) { seq->flag |= SELECT; changed = TRUE; @@ -1005,7 +1005,7 @@ static short select_grouped_data(Editing *ed, Sequence *actseq) } else if (actseq->type == SEQ_SCENE) { Scene *sce = actseq->scene; - SEQP_BEGIN(ed, seq) { + SEQP_BEGIN (ed, seq) { if (seq->type == SEQ_SCENE && seq->scene == sce) { seq->flag |= SELECT; changed = TRUE; @@ -1015,7 +1015,7 @@ static short select_grouped_data(Editing *ed, Sequence *actseq) } else if (actseq->type == SEQ_MOVIECLIP) { MovieClip *clip = actseq->clip; - SEQP_BEGIN(ed, seq) { + SEQP_BEGIN (ed, seq) { if (seq->type == SEQ_MOVIECLIP && seq->clip == clip) { seq->flag |= SELECT; changed = TRUE; @@ -1037,14 +1037,14 @@ static short select_grouped_effect(Editing *ed, Sequence *actseq) for (i = 0; i <= SEQ_EFFECT_MAX; i++) effects[i] = FALSE; - SEQP_BEGIN(ed, seq) { + SEQP_BEGIN (ed, seq) { if (ELEM3(actseq, seq->seq1, seq->seq2, seq->seq3)) { effects[seq->type] = TRUE; } } SEQ_END; - SEQP_BEGIN(ed, seq) { + SEQP_BEGIN (ed, seq) { if (effects[seq->type]) { if (seq->seq1) seq->seq1->flag |= SELECT; if (seq->seq2) seq->seq2->flag |= SELECT; @@ -1062,7 +1062,7 @@ static short select_grouped_time_overlap(Editing *ed, Sequence *actseq) Sequence *seq; short changed = FALSE; - SEQP_BEGIN(ed, seq) { + SEQP_BEGIN (ed, seq) { if (!((seq->startdisp >= actseq->enddisp) || (seq->enddisp < actseq->startdisp))) { seq->flag |= SELECT; changed = TRUE; @@ -1083,7 +1083,7 @@ static short select_grouped_effect_link(Editing *ed, Sequence *actseq) int machine = actseq->machine; SeqIterator iter; - SEQP_BEGIN(ed, seq) { + SEQP_BEGIN (ed, seq) { seq->tmp= NULL; } SEQ_END; @@ -1153,7 +1153,7 @@ static int sequencer_select_grouped_exec(bContext *C, wmOperator *op) } if (extend == 0) { - SEQP_BEGIN(ed, seq) { + SEQP_BEGIN (ed, seq) { seq->flag &= ~SELECT; changed = TRUE; } diff --git a/source/blender/editors/space_text/text_draw.c b/source/blender/editors/space_text/text_draw.c index 84f960ecf2a..ffb686b6810 100644 --- a/source/blender/editors/space_text/text_draw.c +++ b/source/blender/editors/space_text/text_draw.c @@ -130,8 +130,7 @@ static void flatten_string_append(FlattenString *fs, const char *c, int accum, i fs->accum = naccum; } - for (i = 0; i < len; i++) - { + for (i = 0; i < len; i++) { fs->buf[fs->pos + i] = c[i]; fs->accum[fs->pos + i] = accum; } diff --git a/source/blender/editors/space_text/text_python.c b/source/blender/editors/space_text/text_python.c index c24af998835..23fff8fb274 100644 --- a/source/blender/editors/space_text/text_python.c +++ b/source/blender/editors/space_text/text_python.c @@ -367,7 +367,8 @@ static short UNUSED_FUNCTION(do_texttools) (SpaceText * st, char ascii, unsigned #if 0 #ifdef WITH_PYTHON /* Run text plugin scripts if enabled */ -if (st->doplugins && event && val) { +if (st->doplugins && event && val) +{ if (BPY_menu_do_shortcut(PYMENU_TEXTPLUGIN, event, qual)) { do_draw = 1; } diff --git a/source/blender/editors/space_time/space_time.c b/source/blender/editors/space_time/space_time.c index 5e56dfa728e..674dd670cf7 100644 --- a/source/blender/editors/space_time/space_time.c +++ b/source/blender/editors/space_time/space_time.c @@ -111,7 +111,7 @@ static void time_draw_cache(SpaceTime *stime, Object *ob) int i, sta = pid->cache->startframe, end = pid->cache->endframe; int len = (end - sta + 1)*4; - switch(pid->type) { + switch (pid->type) { case PTCACHE_TYPE_SOFTBODY: if (!(stime->cache_display & TIME_CACHE_SOFTBODY)) continue; break; @@ -171,7 +171,7 @@ static void time_draw_cache(SpaceTime *stime, Object *ob) glTranslatef(0.0, (float)V2D_SCROLL_HEIGHT+yoffs, 0.0); glScalef(1.0, CACHE_DRAW_HEIGHT, 0.0); - switch(pid->type) { + switch (pid->type) { case PTCACHE_TYPE_SOFTBODY: col[0] = 1.0; col[1] = 0.4; col[2] = 0.02; col[3] = 0.1; @@ -357,8 +357,7 @@ static void time_draw_keyframes(const bContext *C, SpaceTime *stime, ARegion *ar short active_done = 0; /* draw keyframes from all selected objects */ - CTX_DATA_BEGIN(C, Object*, obsel, selected_objects) - { + CTX_DATA_BEGIN (C, Object*, obsel, selected_objects) { /* last arg is 0, since onlysel doesn't apply here... */ time_draw_idblock_keyframes(v2d, (ID *)obsel, 0); @@ -509,7 +508,7 @@ static void time_main_area_draw(const bContext *C, ARegion *ar) static void time_main_area_listener(ARegion *ar, wmNotifier *wmn) { /* context changes */ - switch(wmn->category) { + switch (wmn->category) { case NC_SPACE: if (wmn->data == ND_SPACE_TIME) ED_region_tag_redraw(ar); @@ -549,7 +548,7 @@ static void time_header_area_draw(const bContext *C, ARegion *ar) static void time_header_area_listener(ARegion *ar, wmNotifier *wmn) { /* context changes */ - switch(wmn->category) { + switch (wmn->category) { case NC_SCREEN: if (wmn->data==ND_ANIMPLAY) ED_region_tag_redraw(ar); diff --git a/source/blender/editors/space_userpref/space_userpref.c b/source/blender/editors/space_userpref/space_userpref.c index e9bf9345b5c..6c683eba085 100644 --- a/source/blender/editors/space_userpref/space_userpref.c +++ b/source/blender/editors/space_userpref/space_userpref.c @@ -145,7 +145,7 @@ static void userpref_header_listener(ARegion *UNUSED(ar), wmNotifier *UNUSED(wmn { /* context changes */ #if 0 - switch(wmn->category) { + switch (wmn->category) { default: break; } diff --git a/source/blender/editors/space_view3d/drawmesh.c b/source/blender/editors/space_view3d/drawmesh.c index 3b5ebbee42a..f5f3b4c3f16 100644 --- a/source/blender/editors/space_view3d/drawmesh.c +++ b/source/blender/editors/space_view3d/drawmesh.c @@ -349,7 +349,7 @@ static void draw_textured_begin(Scene *scene, View3D *v3d, RegionView3D *rv3d, O /* texture draw is abused for mask selection mode, do this so wire draw * with face selection in weight paint is not lit. */ - if ((v3d->drawtype <= OB_WIRE) && (ob->mode & OB_MODE_WEIGHT_PAINT)) { + if ((v3d->drawtype <= OB_WIRE) && (ob->mode & (OB_MODE_VERTEX_PAINT | OB_MODE_WEIGHT_PAINT))) { solidtex = FALSE; Gtexdraw.islit = 0; } @@ -953,7 +953,7 @@ void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *o glEnable(GL_LIGHTING); - if (ob->mode & OB_MODE_WEIGHT_PAINT) { + if (ob->mode & (OB_MODE_VERTEX_PAINT | OB_MODE_WEIGHT_PAINT)) { /* weight paint mode exception */ dm->drawMappedFaces(dm, wpaint__setSolidDrawOptions_material, GPU_enable_material, NULL, ob->data, DM_DRAW_USE_COLORS | DM_DRAW_ALWAYS_SMOOTH); diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index effaa405218..3f431585fc9 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -2213,7 +2213,7 @@ void nurbs_foreachScreenVert( short s[2] = {IS_CLIPPED, 0}; Nurb *nu; int i; - ListBase *nurbs = curve_editnurbs(cu); + ListBase *nurbs = BKE_curve_editNurbs_get(cu); ED_view3d_clipping_local(vc->rv3d, vc->obedit->obmat); /* for local clipping lookups */ @@ -3306,7 +3306,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D } } else if (dt == OB_SOLID) { - if (is_obact && ob->mode & OB_MODE_WEIGHT_PAINT) { + if (is_obact && ob->mode & (OB_MODE_VERTEX_PAINT | OB_MODE_WEIGHT_PAINT)) { /* weight paint in solid mode, special case. focus on making the weights clear * rather than the shading, this is also forced in wire view */ GPU_enable_material(0, NULL); @@ -3963,7 +3963,7 @@ static int drawDispList(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *bas break; case OB_MBALL: - if (is_basis_mball(ob)) { + if (BKE_metaball_is_basis(ob)) { lb = &ob->disp; if (lb->first == NULL) makeDispListMBall(scene, ob); if (lb->first == NULL) return 1; @@ -6140,7 +6140,7 @@ static void draw_bounding_volume(Scene *scene, Object *ob, char type) bb = ob->bb ? ob->bb : ( (Curve *)ob->data)->bb; } else if (ob->type == OB_MBALL) { - if (is_basis_mball(ob)) { + if (BKE_metaball_is_basis(ob)) { bb = ob->bb; if (bb == NULL) { makeDispListMBall(scene, ob); @@ -6231,7 +6231,7 @@ static void drawObjectSelect(Scene *scene, View3D *v3d, ARegion *ar, Base *base) } } else if (ob->type == OB_MBALL) { - if (is_basis_mball(ob)) { + if (BKE_metaball_is_basis(ob)) { if ((base->flag & OB_FROMDUPLI) == 0) drawDispListwire(&ob->disp); } @@ -6291,7 +6291,7 @@ static void drawWireExtra(Scene *scene, RegionView3D *rv3d, Object *ob) } } else if (ob->type == OB_MBALL) { - if (is_basis_mball(ob)) { + if (BKE_metaball_is_basis(ob)) { drawDispListwire(&ob->disp); } } @@ -6670,7 +6670,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag) cu = ob->data; if (cu->editnurb) { - ListBase *nurbs = curve_editnurbs(cu); + ListBase *nurbs = BKE_curve_editNurbs_get(cu); drawnurb(scene, v3d, rv3d, base, nurbs->first, dt); } else if (dt == OB_BOUNDBOX) { diff --git a/source/blender/editors/space_view3d/view3d_buttons.c b/source/blender/editors/space_view3d/view3d_buttons.c index c3ff00e3c82..6d810d9103c 100644 --- a/source/blender/editors/space_view3d/view3d_buttons.c +++ b/source/blender/editors/space_view3d/view3d_buttons.c @@ -211,7 +211,7 @@ static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float BPoint *bp; BezTriple *bezt; int a; - ListBase *nurbs = curve_editnurbs(cu); + ListBase *nurbs = BKE_curve_editNurbs_get(cu); StructRNA *seltype = NULL; void *selp = NULL; @@ -509,7 +509,7 @@ static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float BPoint *bp; BezTriple *bezt; int a; - ListBase *nurbs = curve_editnurbs(cu); + ListBase *nurbs = BKE_curve_editNurbs_get(cu); const float scale_w = compute_scale_factor(ve_median[4], median[4]); nu = nurbs->first; @@ -571,8 +571,8 @@ static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float bp++; } } - test2DNurb(nu); - testhandlesNurb(nu); /* test for bezier too */ + BKE_nurb_test2D(nu); + BKE_nurb_handles_test(nu); /* test for bezier too */ nu = nu->next; } diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 082e7676daa..2f66fdf8cd4 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -700,11 +700,12 @@ static void viewrotate_apply(ViewOpsData *vod, int x, int y) fac = fac * fac; interp_v3_v3v3(xaxis, xaxis, m_inv[0], fac); } - else -#endif - { + else { copy_v3_v3(xaxis, m_inv[0]); } +#else + copy_v3_v3(xaxis, m_inv[0]); +#endif /* Determine the direction of the x vector (for rotating up and down) */ /* This can likely be computed directly from the quaternion. */ @@ -1554,7 +1555,9 @@ static void viewzoom_apply(ViewOpsData *vod, int x, int y, const short viewzoom, if (!use_cam_zoom) { if (zfac != 1.0f && zfac * vod->rv3d->dist > 0.001f * vod->grid && zfac * vod->rv3d->dist < 10.0f * vod->far) + { view_zoom_mouseloc(vod->ar, zfac, vod->oldx, vod->oldy); + } } /* these limits were in old code too */ @@ -2985,10 +2988,10 @@ static int viewpan_exec(bContext *C, wmOperator *op) pandir = RNA_enum_get(op->ptr, "type"); initgrabz(rv3d, 0.0, 0.0, 0.0); - if (pandir == V3D_VIEW_PANRIGHT) { mval_f[0] = -32.0f; ED_view3d_win_to_delta(ar, mval_f, vec); } - else if (pandir == V3D_VIEW_PANLEFT) { mval_f[0] = 32.0f; ED_view3d_win_to_delta(ar, mval_f, vec); } - else if (pandir == V3D_VIEW_PANUP) { mval_f[1] = -25.0f; ED_view3d_win_to_delta(ar, mval_f, vec); } - else if (pandir == V3D_VIEW_PANDOWN) { mval_f[1] = 25.0f; ED_view3d_win_to_delta(ar, mval_f, vec); } + if (pandir == V3D_VIEW_PANRIGHT) { mval_f[0] = -32.0f; ED_view3d_win_to_delta(ar, mval_f, vec); } + else if (pandir == V3D_VIEW_PANLEFT) { mval_f[0] = 32.0f; ED_view3d_win_to_delta(ar, mval_f, vec); } + else if (pandir == V3D_VIEW_PANUP) { mval_f[1] = -25.0f; ED_view3d_win_to_delta(ar, mval_f, vec); } + else if (pandir == V3D_VIEW_PANDOWN) { mval_f[1] = 25.0f; ED_view3d_win_to_delta(ar, mval_f, vec); } add_v3_v3(rv3d->ofs, vec); if (rv3d->viewlock & RV3D_BOXVIEW) diff --git a/source/blender/editors/space_view3d/view3d_header.c b/source/blender/editors/space_view3d/view3d_header.c index ab4eca2e303..c4309980b18 100644 --- a/source/blender/editors/space_view3d/view3d_header.c +++ b/source/blender/editors/space_view3d/view3d_header.c @@ -294,15 +294,15 @@ static char *view3d_modeselect_pup(Scene *scene) if (!((ID *)ob->data)->lib) { /* if active object is editable */ - if (ELEM6(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_MBALL, OB_LATTICE)) { - str += modeselect_addmode(str, N_("Edit Mode"), OB_MODE_EDIT, ICON_EDITMODE_HLT); - } - else if (ob->type == OB_ARMATURE) { + if (ob->type == OB_ARMATURE) { if (ob->mode & OB_MODE_POSE) str += modeselect_addmode(str, N_("Edit Mode"), OB_MODE_EDIT | OB_MODE_POSE, ICON_EDITMODE_HLT); else str += modeselect_addmode(str, N_("Edit Mode"), OB_MODE_EDIT, ICON_EDITMODE_HLT); } + else if (OB_TYPE_SUPPORT_EDITMODE(ob->type)) { + str += modeselect_addmode(str, N_("Edit Mode"), OB_MODE_EDIT, ICON_EDITMODE_HLT); + } if (ob->type == OB_MESH) { diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c index c6a93a80b2e..e1bbc0e1545 100644 --- a/source/blender/editors/space_view3d/view3d_select.c +++ b/source/blender/editors/space_view3d/view3d_select.c @@ -48,9 +48,12 @@ #include "MEM_guardedalloc.h" #include "BLI_math.h" -#include "BLI_blenlib.h" +#include "BLI_lasso.h" +#include "BLI_rect.h" #include "BLI_rand.h" #include "BLI_linklist.h" +#include "BLI_listbase.h" +#include "BLI_string.h" #include "BLI_utildefines.h" /* vertex box select */ @@ -319,79 +322,6 @@ static int edge_inside_rect(rcti *rect, short x1, short y1, short x2, short y2) #define MOVES_GESTURE 50 #define MOVES_LASSO 500 -int lasso_inside(int mcords[][2], short moves, int sx, int sy) -{ - /* we do the angle rule, define that all added angles should be about zero or 2*PI */ - float angletot = 0.0, len, dot, ang, cross, fp1[2], fp2[2]; - int a; - int *p1, *p2; - - if (sx == IS_CLIPPED) - return 0; - - p1 = mcords[moves - 1]; - p2 = mcords[0]; - - /* first vector */ - fp1[0] = (float)(p1[0] - sx); - fp1[1] = (float)(p1[1] - sy); - len = sqrt(fp1[0] * fp1[0] + fp1[1] * fp1[1]); - fp1[0] /= len; - fp1[1] /= len; - - for (a = 0; a < moves; a++) { - /* second vector */ - fp2[0] = (float)(p2[0] - sx); - fp2[1] = (float)(p2[1] - sy); - len = sqrt(fp2[0] * fp2[0] + fp2[1] * fp2[1]); - fp2[0] /= len; - fp2[1] /= len; - - /* dot and angle and cross */ - dot = fp1[0] * fp2[0] + fp1[1] * fp2[1]; - ang = fabs(saacos(dot)); - - cross = (float)((p1[1] - p2[1]) * (p1[0] - sx) + (p2[0] - p1[0]) * (p1[1] - sy)); - - if (cross < 0.0f) angletot -= ang; - else angletot += ang; - - /* circulate */ - fp1[0] = fp2[0]; fp1[1] = fp2[1]; - p1 = p2; - p2 = mcords[a + 1]; - } - - if (fabs(angletot) > 4.0) return 1; - return 0; -} - -/* edge version for lasso select. we assume boundbox check was done */ -int lasso_inside_edge(int mcords[][2], short moves, int x0, int y0, int x1, int y1) -{ - int v1[2], v2[2]; - int a; - - if (x0 == IS_CLIPPED || x1 == IS_CLIPPED) - return 0; - - v1[0] = x0, v1[1] = y0; - v2[0] = x1, v2[1] = y1; - - /* check points in lasso */ - if (lasso_inside(mcords, moves, v1[0], v1[1])) return 1; - if (lasso_inside(mcords, moves, v2[0], v2[1])) return 1; - - /* no points in lasso, so we have to intersect with lasso edge */ - - if (isect_line_line_v2_int(mcords[0], mcords[moves - 1], v1, v2) > 0) return 1; - for (a = 0; a < moves - 1; a++) { - if (isect_line_line_v2_int(mcords[a], mcords[a + 1], v1, v2) > 0) return 1; - } - - return 0; -} - /* warning; lasso select with backbuffer-check draws in backbuf with persp(PERSP_WIN) * and returns with persp(PERSP_VIEW). After lasso select backbuf is not OK @@ -412,7 +342,7 @@ static void do_lasso_select_pose(ViewContext *vc, Object *ob, int mcords[][2], s mul_v3_m4v3(vec, ob->obmat, pchan->pose_tail); project_int(vc->ar, vec, sco2); - if (lasso_inside_edge(mcords, moves, sco1[0], sco1[1], sco2[0], sco2[1])) { + if (BLI_lasso_is_edge_inside(mcords, moves, sco1[0], sco1[1], sco2[0], sco2[1], IS_CLIPPED)) { if (select) pchan->bone->flag |= BONE_SELECTED; else pchan->bone->flag &= ~BONE_SELECTED; } @@ -441,7 +371,7 @@ static void do_lasso_select_objects(ViewContext *vc, int mcords[][2], short move for (base = vc->scene->base.first; base; base = base->next) { if (BASE_SELECTABLE(vc->v3d, base)) { /* use this to avoid un-needed lasso lookups */ project_short(vc->ar, base->object->obmat[3], &base->sx); - if (lasso_inside(mcords, moves, base->sx, base->sy)) { + if (BLI_lasso_is_point_inside(mcords, moves, base->sx, base->sy, IS_CLIPPED)) { if (select) ED_base_object_select(base, BA_SELECT); else ED_base_object_select(base, BA_DESELECT); @@ -454,26 +384,13 @@ static void do_lasso_select_objects(ViewContext *vc, int mcords[][2], short move } } -static void lasso_select_boundbox(rcti *rect, int mcords[][2], short moves) -{ - short a; - - rect->xmin = rect->xmax = mcords[0][0]; - rect->ymin = rect->ymax = mcords[0][1]; - - for (a = 1; a < moves; a++) { - if (mcords[a][0] < rect->xmin) rect->xmin = mcords[a][0]; - else if (mcords[a][0] > rect->xmax) rect->xmax = mcords[a][0]; - if (mcords[a][1] < rect->ymin) rect->ymin = mcords[a][1]; - else if (mcords[a][1] > rect->ymax) rect->ymax = mcords[a][1]; - } -} - static void do_lasso_select_mesh__doSelectVert(void *userData, BMVert *eve, int x, int y, int UNUSED(index)) { LassoSelectUserData *data = userData; - if (BLI_in_rcti(data->rect, x, y) && lasso_inside(data->mcords, data->moves, x, y)) { + if (BLI_in_rcti(data->rect, x, y) && + BLI_lasso_is_point_inside(data->mcords, data->moves, x, y, IS_CLIPPED)) + { BM_vert_select_set(data->vc->em->bm, eve, data->select); } } @@ -484,14 +401,15 @@ static void do_lasso_select_mesh__doSelectEdge(void *userData, BMEdge *eed, int if (EDBM_backbuf_check(bm_solidoffs + index)) { if (data->pass == 0) { if (edge_fully_inside_rect(data->rect, x0, y0, x1, y1) && - lasso_inside(data->mcords, data->moves, x0, y0) && - lasso_inside(data->mcords, data->moves, x1, y1)) { + BLI_lasso_is_point_inside(data->mcords, data->moves, x0, y0, IS_CLIPPED) && + BLI_lasso_is_point_inside(data->mcords, data->moves, x1, y1, IS_CLIPPED)) + { BM_edge_select_set(data->vc->em->bm, eed, data->select); data->done = 1; } } else { - if (lasso_inside_edge(data->mcords, data->moves, x0, y0, x1, y1)) { + if (BLI_lasso_is_edge_inside(data->mcords, data->moves, x0, y0, x1, y1, IS_CLIPPED)) { BM_edge_select_set(data->vc->em->bm, eed, data->select); } } @@ -501,7 +419,9 @@ static void do_lasso_select_mesh__doSelectFace(void *userData, BMFace *efa, int { LassoSelectUserData *data = userData; - if (BLI_in_rcti(data->rect, x, y) && lasso_inside(data->mcords, data->moves, x, y)) { + if (BLI_in_rcti(data->rect, x, y) && + BLI_lasso_is_point_inside(data->mcords, data->moves, x, y, IS_CLIPPED)) + { BM_face_select_set(data->vc->em->bm, efa, data->select); } } @@ -513,7 +433,7 @@ static void do_lasso_select_mesh(ViewContext *vc, int mcords[][2], short moves, rcti rect; int bbsel; - lasso_select_boundbox(&rect, mcords, moves); + BLI_lasso_boundbox(&rect, mcords, moves); /* set editmesh */ vc->em = BMEdit_FromObject(vc->obedit); @@ -567,73 +487,13 @@ static void do_lasso_select_mesh(ViewContext *vc, int mcords[][2], short moves, EDBM_selectmode_flush(vc->em); } -/* BMESH_TODO */ -#if 0 -/* this is an exception in that its the only lasso that dosnt use the 3d view (uses space image view) */ -static void do_lasso_select_mesh_uv(int mcords[][2], short moves, short select) -{ - EditFace *efa; - MTFace *tf; - int screenUV[2], nverts, i, ok = 1; - rcti rect; - - lasso_select_boundbox(&rect, mcords, moves); - - if (draw_uvs_face_check()) { /* Face Center Sel */ - float cent[2]; - ok = 0; - for (efa = em->faces.first; efa; efa = efa->next) { - /* assume not touched */ - efa->tmp.l = 0; - tf = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE); - if ((select) != (simaFaceSel_Check(efa, tf))) { - uv_center(tf->uv, cent, (void *)efa->v4); - uvco_to_areaco_noclip(cent, screenUV); - if (BLI_in_rcti(&rect, screenUV[0], screenUV[1]) && lasso_inside(mcords, moves, screenUV[0], screenUV[1])) { - efa->tmp.l = ok = 1; - } - } - } - /* (de)selects all tagged faces and deals with sticky modes */ - if (ok) - uvface_setsel__internal(select); - - } - else { /* Vert Sel*/ - for (efa = em->faces.first; efa; efa = efa->next) { - tf = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE); - if (uvedit_face_visible(scene, ima, efa, tf)) { - nverts = efa->v4 ? 4 : 3; - for (i = 0; i < nverts; i++) { - if ((select) != (simaUVSel_Check(efa, tf, i))) { - uvco_to_areaco_noclip(tf->uv[i], screenUV); - if (BLI_in_rcti(&rect, screenUV[0], screenUV[1]) && lasso_inside(mcords, moves, screenUV[0], screenUV[1])) { - if (select) { - simaUVSel_Set(efa, tf, i); - } - else { - simaUVSel_UnSet(efa, tf, i); - } - } - } - } - } - } - } - if (ok && G.sima->flag & SI_SYNC_UVSEL) { - if (select) EM_select_flush(vc->em); - else EM_deselect_flush(vc->em); - } -} -#endif - static void do_lasso_select_curve__doSelect(void *userData, Nurb *UNUSED(nu), BPoint *bp, BezTriple *bezt, int beztindex, int x, int y) { LassoSelectUserData *data = userData; Object *obedit = data->vc->obedit; Curve *cu = (Curve *)obedit->data; - if (lasso_inside(data->mcords, data->moves, x, y)) { + if (BLI_lasso_is_point_inside(data->mcords, data->moves, x, y, IS_CLIPPED)) { if (bp) { bp->f1 = data->select ? (bp->f1 | SELECT) : (bp->f1 & ~SELECT); if (bp == cu->lastsel && !(bp->f1 & 1)) cu->lastsel = NULL; @@ -681,7 +541,7 @@ static void do_lasso_select_lattice__doSelect(void *userData, BPoint *bp, int x, { LassoSelectUserData *data = userData; - if (lasso_inside(data->mcords, data->moves, x, y)) { + if (BLI_lasso_is_point_inside(data->mcords, data->moves, x, y, IS_CLIPPED)) { bp->f1 = data->select ? (bp->f1 | SELECT) : (bp->f1 & ~SELECT); } } @@ -722,20 +582,22 @@ static void do_lasso_select_armature(ViewContext *vc, int mcords[][2], short mov project_short(vc->ar, vec, sco2); didpoint = 0; - if (lasso_inside(mcords, moves, sco1[0], sco1[1])) { + if (BLI_lasso_is_point_inside(mcords, moves, sco1[0], sco1[1], IS_CLIPPED)) { if (select) ebone->flag |= BONE_ROOTSEL; else ebone->flag &= ~BONE_ROOTSEL; didpoint = 1; change = TRUE; } - if (lasso_inside(mcords, moves, sco2[0], sco2[1])) { + if (BLI_lasso_is_point_inside(mcords, moves, sco2[0], sco2[1], IS_CLIPPED)) { if (select) ebone->flag |= BONE_TIPSEL; else ebone->flag &= ~BONE_TIPSEL; didpoint = 1; change = TRUE; } /* if one of points selected, we skip the bone itself */ - if (didpoint == 0 && lasso_inside_edge(mcords, moves, sco1[0], sco1[1], sco2[0], sco2[1])) { + if (didpoint == 0 && + BLI_lasso_is_edge_inside(mcords, moves, sco1[0], sco1[1], sco2[0], sco2[1], IS_CLIPPED)) + { if (select) ebone->flag |= BONE_TIPSEL | BONE_ROOTSEL | BONE_SELECTED; else ebone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL); change = TRUE; @@ -771,7 +633,7 @@ static void do_lasso_select_meta(ViewContext *vc, int mcords[][2], short moves, mul_v3_m4v3(vec, vc->obedit->obmat, &ml->x); project_short(vc->ar, vec, sco); - if (lasso_inside(mcords, moves, sco[0], sco[1])) { + if (BLI_lasso_is_point_inside(mcords, moves, sco[0], sco[1], IS_CLIPPED)) { if (select) ml->flag |= SELECT; else ml->flag &= ~SELECT; } @@ -850,7 +712,7 @@ static void do_lasso_select_paintvert(ViewContext *vc, int mcords[][2], short mo paintvert_deselect_all_visible(ob, SEL_DESELECT, FALSE); /* flush selection at the end */ bm_vertoffs = me->totvert + 1; /* max index array */ - lasso_select_boundbox(&rect, mcords, moves); + BLI_lasso_boundbox(&rect, mcords, moves); EDBM_backbuf_border_mask_init(vc, mcords, moves, rect.xmin, rect.ymin, rect.xmax, rect.ymax); edbm_backbuf_check_and_select_verts_obmode(me, select); @@ -873,7 +735,7 @@ static void do_lasso_select_paintface(ViewContext *vc, int mcords[][2], short mo bm_vertoffs = me->totpoly + 1; /* max index array */ - lasso_select_boundbox(&rect, mcords, moves); + BLI_lasso_boundbox(&rect, mcords, moves); EDBM_backbuf_border_mask_init(vc, mcords, moves, rect.xmin, rect.ymin, rect.xmax, rect.ymax); edbm_backbuf_check_and_select_tfaces(me, select); @@ -893,7 +755,7 @@ static void do_lasso_select_node(int mcords[][2], short moves, short select) short node_cent[2]; float node_centf[2]; - lasso_select_boundbox(&rect, mcords, moves); + BLI_lasso_boundbox(&rect, mcords, moves); /* store selection in temp test flag */ for (node = snode->edittree->nodes.first; node; node = node->next) { @@ -902,7 +764,7 @@ static void do_lasso_select_node(int mcords[][2], short moves, short select) node_centf[1] = (node->totr.ymin + node->totr.ymax) / 2; ipoco_to_areaco_noclip(G.v2d, node_centf, node_cent); - if (BLI_in_rcti(&rect, node_cent[0], node_cent[1]) && lasso_inside(mcords, moves, node_cent[0], node_cent[1])) { + if (BLI_in_rcti(&rect, node_cent[0], node_cent[1]) && BLI_lasso_is_point_inside(mcords, moves, node_cent[0], node_cent[1])) { if (select) { node->flag |= SELECT; } @@ -968,7 +830,7 @@ static int view3d_lasso_select_exec(bContext *C, wmOperator *op) int i = 0; int mcords[1024][2]; - RNA_BEGIN(op->ptr, itemptr, "path") { + RNA_BEGIN (op->ptr, itemptr, "path") { float loc[2]; RNA_float_get_array(&itemptr, "loc", loc); @@ -1113,7 +975,7 @@ static int object_select_menu_exec(bContext *C, wmOperator *op) const char *name = object_mouse_select_menu_data[name_index].idname; if (!extend) { - CTX_DATA_BEGIN(C, Base *, base, selectable_bases) { + CTX_DATA_BEGIN (C, Base *, base, selectable_bases) { if (base->flag & SELECT) { ED_base_object_select(base, BA_DESELECT); changed = 1; @@ -1122,7 +984,7 @@ static int object_select_menu_exec(bContext *C, wmOperator *op) CTX_DATA_END; } - CTX_DATA_BEGIN(C, Base *, base, selectable_bases) { + CTX_DATA_BEGIN (C, Base *, base, selectable_bases) { /* this is a bit dodjy, there should only be ONE object with this name, but library objects can mess this up */ if (strcmp(name, base->object->id.name + 2) == 0) { ED_base_object_activate(C, base); @@ -1189,7 +1051,7 @@ static Base *object_mouse_select_menu(bContext *C, ViewContext *vc, unsigned int short ok; LinkNode *linklist = NULL; - CTX_DATA_BEGIN(C, Base *, base, selectable_bases) { + CTX_DATA_BEGIN (C, Base *, base, selectable_bases) { ok = FALSE; /* two selection methods, the CTRL select uses max dist of 15 */ @@ -1967,7 +1829,7 @@ static int do_object_pose_box_select(bContext *C, ViewContext *vc, rcti *rect, i if (extend == 0 && select) { if (bone_only) { - CTX_DATA_BEGIN(C, bPoseChannel *, pchan, visible_pose_bones) { + CTX_DATA_BEGIN (C, bPoseChannel *, pchan, visible_pose_bones) { if ((pchan->bone->flag & BONE_UNSELECTABLE) == 0) { pchan->bone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL); } diff --git a/source/blender/editors/space_view3d/view3d_snap.c b/source/blender/editors/space_view3d/view3d_snap.c index f19c8891f96..988d0a00601 100644 --- a/source/blender/editors/space_view3d/view3d_snap.c +++ b/source/blender/editors/space_view3d/view3d_snap.c @@ -106,7 +106,7 @@ static void special_transvert_update(Object *obedit) } else if (ELEM(obedit->type, OB_CURVE, OB_SURF)) { Curve *cu = obedit->data; - ListBase *nurbs = curve_editnurbs(cu); + ListBase *nurbs = BKE_curve_editNurbs_get(cu); Nurb *nu = nurbs->first; while (nu) { @@ -141,8 +141,8 @@ static void special_transvert_update(Object *obedit) } } - test2DNurb(nu); - testhandlesNurb(nu); /* test for bezier too */ + BKE_nurb_test2D(nu); + BKE_nurb_handles_test(nu); /* test for bezier too */ nu = nu->next; } } @@ -375,7 +375,7 @@ static void make_trans_verts(Object *obedit, float *min, float *max, int mode) else if (ELEM(obedit->type, OB_CURVE, OB_SURF)) { Curve *cu = obedit->data; int totmalloc = 0; - ListBase *nurbs = curve_editnurbs(cu); + ListBase *nurbs = BKE_curve_editNurbs_get(cu); for (nu = nurbs->first; nu; nu = nu->next) { if (nu->type == CU_BEZIER) @@ -557,7 +557,7 @@ static int snap_sel_to_grid(bContext *C, wmOperator *UNUSED(op)) else { struct KeyingSet *ks = ANIM_get_keyingset_for_autokeying(scene, ANIM_KS_LOCATION_ID); - CTX_DATA_BEGIN(C, Object *, ob, selected_editable_objects) { + CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects) { if (ob->mode & OB_MODE_POSE) { bPoseChannel *pchan; bArmature *arm = ob->data; @@ -691,7 +691,7 @@ static int snap_sel_to_curs(bContext *C, wmOperator *UNUSED(op)) else { struct KeyingSet *ks = ANIM_get_keyingset_for_autokeying(scene, ANIM_KS_LOCATION_ID); - CTX_DATA_BEGIN(C, Object *, ob, selected_editable_objects) { + CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects) { if (ob->mode & OB_MODE_POSE) { bPoseChannel *pchan; bArmature *arm = ob->data; @@ -928,7 +928,7 @@ static int snap_curs_to_sel(bContext *C, wmOperator *UNUSED(op)) } } else { - CTX_DATA_BEGIN(C, Object *, ob, selected_objects) { + CTX_DATA_BEGIN (C, Object *, ob, selected_objects) { copy_v3_v3(vec, ob->obmat[3]); /* special case for camera -- snap to bundles */ @@ -993,8 +993,8 @@ static int snap_curs_to_active(bContext *C, wmOperator *UNUSED(op)) Mesh *me = obedit->data; BMEditSelection ese; - if (EDBM_editselection_active_get(me->edit_btmesh, &ese)) { - EDBM_editselection_center(curs, &ese); + if (BM_select_history_active_get(me->edit_btmesh->bm, &ese)) { + BM_editselection_center(&ese, curs); } mul_m4_v3(obedit->obmat, curs); diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index 62c82c58adf..233719033c7 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -298,8 +298,7 @@ void removeAspectRatio(TransInfo *t, float *vec) static void viewRedrawForce(const bContext *C, TransInfo *t) { - if (t->spacetype == SPACE_VIEW3D) - { + if (t->spacetype == SPACE_VIEW3D) { /* Do we need more refined tags? */ if (t->flag & T_POSE) WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL); @@ -415,7 +414,7 @@ static void view_editmove(unsigned short UNUSED(event)) if (Trans.flag & T_2D_EDIT) return; - switch(event) { + switch (event) { case WHEELUPMOUSE: if ( G.qual & LR_SHIFTKEY ) { @@ -586,8 +585,7 @@ int transformEvent(TransInfo *t, wmEvent *event) t->redraw |= handleMouseInput(t, &t->mouse, event); - if (event->type == MOUSEMOVE) - { + if (event->type == MOUSEMOVE) { if (t->modifiers & MOD_CONSTRAINT_SELECT) t->con.mode |= CON_SELECT; @@ -802,7 +800,7 @@ int transformEvent(TransInfo *t, wmEvent *event) t->redraw |= handleNumInput(&(t->num), event); } /* else do non-mapped events */ - else if (event->val==KM_PRESS) { + else if (event->val == KM_PRESS) { switch (event->type) { case RIGHTMOUSE: t->state = TRANS_CANCEL; @@ -1088,11 +1086,9 @@ int transformEvent(TransInfo *t, wmEvent *event) } /* confirm transform if launch key is released after mouse move */ - if (t->flag & T_RELEASE_CONFIRM) - { + if (t->flag & T_RELEASE_CONFIRM) { /* XXX Keyrepeat bug in Xorg fucks this up, will test when fixed */ - if (event->type == t->launch_event && (t->launch_event == LEFTMOUSE || t->launch_event == RIGHTMOUSE)) - { + if (event->type == t->launch_event && (t->launch_event == LEFTMOUSE || t->launch_event == RIGHTMOUSE)) { t->state = TRANS_CONFIRM; } } @@ -1156,8 +1152,7 @@ typedef enum { } ArrowDirection; static void drawArrow(ArrowDirection d, short offset, short length, short size) { - switch(d) - { + switch (d) { case LEFT: offset = -offset; length = -length; @@ -1191,8 +1186,7 @@ static void drawArrow(ArrowDirection d, short offset, short length, short size) static void drawArrowHead(ArrowDirection d, short size) { - switch(d) - { + switch (d) { case LEFT: size = -size; case RIGHT: @@ -1223,8 +1217,7 @@ static void drawArc(float size, float angle_start, float angle_end, int segments glBegin(GL_LINE_STRIP); - for ( angle = angle_start; angle < angle_end; angle += delta) - { + for ( angle = angle_start; angle < angle_end; angle += delta) { glVertex2f( cosf(angle) * size, sinf(angle) * size); } glVertex2f( cosf(angle_end) * size, sinf(angle_end) * size); @@ -1245,8 +1238,7 @@ static void drawHelpline(bContext *UNUSED(C), int x, int y, void *customdata) { TransInfo *t = (TransInfo*)customdata; - if (t->helpline != HLP_NONE && !(t->flag & T_USES_MANIPULATOR)) - { + if (t->helpline != HLP_NONE && !(t->flag & T_USES_MANIPULATOR)) { float vecrot[3], cent[2]; int mval[2]; @@ -1267,8 +1259,7 @@ static void drawHelpline(bContext *UNUSED(C), int x, int y, void *customdata) glPushMatrix(); - switch(t->helpline) - { + switch (t->helpline) { case HLP_SPRING: UI_ThemeColor(TH_WIRE); @@ -1417,23 +1408,23 @@ void saveTransform(bContext *C, TransInfo *t, wmOperator *op) } /* convert flag to enum */ - switch(t->flag & (T_PROP_EDIT|T_PROP_CONNECTED)) - { - case (T_PROP_EDIT|T_PROP_CONNECTED): - proportional = PROP_EDIT_CONNECTED; - break; - case T_PROP_EDIT: - proportional = PROP_EDIT_ON; - break; - default: - proportional = PROP_EDIT_OFF; + switch (t->flag & (T_PROP_EDIT|T_PROP_CONNECTED)) { + case (T_PROP_EDIT|T_PROP_CONNECTED): + proportional = PROP_EDIT_CONNECTED; + break; + case T_PROP_EDIT: + proportional = PROP_EDIT_ON; + break; + default: + proportional = PROP_EDIT_OFF; } // If modal, save settings back in scene if not set as operator argument if (t->flag & T_MODAL) { /* save settings if not set in operator */ - if ( (prop = RNA_struct_find_property(op->ptr, "proportional")) && !RNA_property_is_set(op->ptr, prop)) + if ((prop = RNA_struct_find_property(op->ptr, "proportional")) && + !RNA_property_is_set(op->ptr, prop)) { if (t->obedit) ts->proportional = proportional; @@ -1441,12 +1432,14 @@ void saveTransform(bContext *C, TransInfo *t, wmOperator *op) ts->proportional_objects = (proportional != PROP_EDIT_OFF); } - if ( (prop = RNA_struct_find_property(op->ptr, "proportional_size")) && !RNA_property_is_set(op->ptr, prop)) + if ((prop = RNA_struct_find_property(op->ptr, "proportional_size")) && + !RNA_property_is_set(op->ptr, prop)) { ts->proportional_size = t->prop_size; } - if ( (prop = RNA_struct_find_property(op->ptr, "proportional_edit_falloff")) && !RNA_property_is_set(op->ptr, prop)) + if ((prop = RNA_struct_find_property(op->ptr, "proportional_edit_falloff")) && + !RNA_property_is_set(op->ptr, prop)) { ts->prop_mode = t->prop_mode; } @@ -1460,34 +1453,31 @@ void saveTransform(bContext *C, TransInfo *t, wmOperator *op) } if (t->spacetype == SPACE_VIEW3D) { - if ( (prop = RNA_struct_find_property(op->ptr, "constraint_orientation")) && !RNA_property_is_set(op->ptr, prop)) + if ((prop = RNA_struct_find_property(op->ptr, "constraint_orientation")) && + !RNA_property_is_set(op->ptr, prop)) { View3D *v3d = t->view; - + v3d->twmode = t->current_orientation; } } } - if (RNA_struct_find_property(op->ptr, "proportional")) - { + if (RNA_struct_find_property(op->ptr, "proportional")) { RNA_enum_set(op->ptr, "proportional", proportional); RNA_enum_set(op->ptr, "proportional_edit_falloff", t->prop_mode); RNA_float_set(op->ptr, "proportional_size", t->prop_size); } - if ((prop = RNA_struct_find_property(op->ptr, "axis"))) - { + if ((prop = RNA_struct_find_property(op->ptr, "axis"))) { RNA_property_float_set_array(op->ptr, prop, t->axis); } - if ((prop = RNA_struct_find_property(op->ptr, "mirror"))) - { + if ((prop = RNA_struct_find_property(op->ptr, "mirror"))) { RNA_property_boolean_set(op->ptr, prop, t->flag & T_MIRROR); } - if ((prop = RNA_struct_find_property(op->ptr, "constraint_axis"))) - { + if ((prop = RNA_struct_find_property(op->ptr, "constraint_axis"))) { /* constraint orientation can be global, event if user selects something else * so use the orientation in the constraint if set * */ @@ -1498,8 +1488,7 @@ void saveTransform(bContext *C, TransInfo *t, wmOperator *op) RNA_enum_set(op->ptr, "constraint_orientation", t->current_orientation); } - if (t->con.mode & CON_APPLY) - { + if (t->con.mode & CON_APPLY) { if (t->con.mode & CON_AXIS0) { constraint_axis[0] = 1; } @@ -1527,8 +1516,7 @@ int initTransform(bContext *C, TransInfo *t, wmOperator *op, wmEvent *event, int t->state = TRANS_STARTING; - if ( (prop = RNA_struct_find_property(op->ptr, "texture_space")) && RNA_property_is_set(op->ptr, prop)) - { + if ( (prop = RNA_struct_find_property(op->ptr, "texture_space")) && RNA_property_is_set(op->ptr, prop)) { if (RNA_property_boolean_get(op->ptr, prop)) { options |= CTX_TEXTURE; } @@ -1540,8 +1528,7 @@ int initTransform(bContext *C, TransInfo *t, wmOperator *op, wmEvent *event, int t->launch_event = event ? event->type : -1; - if (t->launch_event == EVT_TWEAK_R) - { + if (t->launch_event == EVT_TWEAK_R) { t->launch_event = RIGHTMOUSE; } else if (t->launch_event == EVT_TWEAK_L) { @@ -1550,18 +1537,15 @@ int initTransform(bContext *C, TransInfo *t, wmOperator *op, wmEvent *event, int // XXX Remove this when wm_operator_call_internal doesn't use window->eventstate (which can have type = 0) // For manipulator only, so assume LEFTMOUSE - if (t->launch_event == 0) - { + if (t->launch_event == 0) { t->launch_event = LEFTMOUSE; } - if (!initTransInfo(C, t, op, event)) // internal data, mouse, vectors - { + if (!initTransInfo(C, t, op, event)) { /* internal data, mouse, vectors */ return 0; } - if (t->spacetype == SPACE_VIEW3D) - { + if (t->spacetype == SPACE_VIEW3D) { //calc_manipulator_stats(curarea); initTransformOrientation(C, t); @@ -1592,15 +1576,12 @@ int initTransform(bContext *C, TransInfo *t, wmOperator *op, wmEvent *event, int } /* Stupid code to have Ctrl-Click on manipulator work ok */ - if (event) - { + if (event) { wmKeyMap *keymap = WM_keymap_active(CTX_wm_manager(C), op->type->modalkeymap); wmKeyMapItem *kmi; - for (kmi = keymap->items.first; kmi; kmi = kmi->next) - { - if (kmi->propvalue == TFM_MODAL_SNAP_INV_ON && kmi->val == KM_PRESS) - { + for (kmi = keymap->items.first; kmi; kmi = kmi->next) { + if (kmi->propvalue == TFM_MODAL_SNAP_INV_ON && kmi->val == KM_PRESS) { if ((ELEM(kmi->type, LEFTCTRLKEY, RIGHTCTRLKEY) && event->ctrl) || (ELEM(kmi->type, LEFTSHIFTKEY, RIGHTSHIFTKEY) && event->shift) || (ELEM(kmi->type, LEFTALTKEY, RIGHTALTKEY) && event->alt) || @@ -1731,16 +1712,14 @@ int initTransform(bContext *C, TransInfo *t, wmOperator *op, wmEvent *event, int break; } - if (t->state == TRANS_CANCEL) - { + if (t->state == TRANS_CANCEL) { postTrans(C, t); return 0; } /* overwrite initial values if operator supplied a non-null vector */ - if ( (prop = RNA_struct_find_property(op->ptr, "value")) && RNA_property_is_set(op->ptr, prop)) - { + if ((prop = RNA_struct_find_property(op->ptr, "value")) && RNA_property_is_set(op->ptr, prop)) { float values[4]= {0}; /* in case value isn't length 4, avoid uninitialized memory */ if (RNA_property_array_check(prop)) { @@ -1756,22 +1735,19 @@ int initTransform(bContext *C, TransInfo *t, wmOperator *op, wmEvent *event, int } /* Transformation axis from operator */ - if ((prop = RNA_struct_find_property(op->ptr, "axis")) && RNA_property_is_set(op->ptr, prop)) - { + if ((prop = RNA_struct_find_property(op->ptr, "axis")) && RNA_property_is_set(op->ptr, prop)) { RNA_property_float_get_array(op->ptr, prop, t->axis); normalize_v3(t->axis); copy_v3_v3(t->axis_orig, t->axis); } /* Constraint init from operator */ - if ((prop = RNA_struct_find_property(op->ptr, "constraint_axis")) && RNA_property_is_set(op->ptr, prop)) - { + if ((prop = RNA_struct_find_property(op->ptr, "constraint_axis")) && RNA_property_is_set(op->ptr, prop)) { int constraint_axis[3]; RNA_property_boolean_get_array(op->ptr, prop, constraint_axis); - if (constraint_axis[0] || constraint_axis[1] || constraint_axis[2]) - { + if (constraint_axis[0] || constraint_axis[1] || constraint_axis[2]) { t->con.mode |= CON_APPLY; if (constraint_axis[0]) { @@ -1797,8 +1773,7 @@ void transformApply(bContext *C, TransInfo *t) { t->context = C; - if ((t->redraw & TREDRAW_HARD) || (t->draw_handle_apply == NULL && (t->redraw & TREDRAW_SOFT))) - { + if ((t->redraw & TREDRAW_HARD) || (t->draw_handle_apply == NULL && (t->redraw & TREDRAW_SOFT))) { selectConstraint(t); if (t->transform) { t->transform(t, t->mval); // calls recalcData() @@ -1811,13 +1786,11 @@ void transformApply(bContext *C, TransInfo *t) } /* If auto confirm is on, break after one pass */ - if (t->options & CTX_AUTOCONFIRM) - { + if (t->options & CTX_AUTOCONFIRM) { t->state = TRANS_CONFIRM; } - if (BKE_ptcache_get_continue_physics()) - { + if (BKE_ptcache_get_continue_physics()) { // TRANSFORM_FIX_ME //do_screenhandlers(G.curscreen); t->redraw |= TREDRAW_HARD; @@ -1842,11 +1815,9 @@ int transformEnd(bContext *C, TransInfo *t) t->context = C; - if (t->state != TRANS_STARTING && t->state != TRANS_RUNNING) - { + if (t->state != TRANS_STARTING && t->state != TRANS_RUNNING) { /* handle restoring objects */ - if (t->state == TRANS_CANCEL) - { + if (t->state == TRANS_CANCEL) { /* exception, edge slide transformed UVs too */ if (t->mode==TFM_EDGE_SLIDE) doEdgeSlide(t, 0.0f); @@ -2097,8 +2068,7 @@ static void constraintob_from_transdata(bConstraintOb *cob, TransData *td) * - current space should be local */ memset(cob, 0, sizeof(bConstraintOb)); - if (td->ext) - { + if (td->ext) { if (td->ext->rotOrder == ROT_MODE_QUAT) { /* quats */ /* objects and bones do normalization first too, otherwise @@ -2271,8 +2241,7 @@ static void postInputWarp(TransInfo *t, float values[3]) { mul_v3_fl(values, (float)(M_PI * 2)); - if (t->customData) /* non-null value indicates reversed input */ - { + if (t->customData) { /* non-null value indicates reversed input */ negate_v3(values); } } @@ -2324,8 +2293,7 @@ int handleEventWarp(TransInfo *t, wmEvent *event) { int status = 0; - if (event->type == MIDDLEMOUSE && event->val==KM_PRESS) - { + if (event->type == MIDDLEMOUSE && event->val == KM_PRESS) { // Use customData pointer to signal warp direction if (t->customData == NULL) t->customData = (void*)1; @@ -2465,11 +2433,9 @@ int handleEventShear(TransInfo *t, wmEvent *event) { int status = 0; - if (event->type == MIDDLEMOUSE && event->val==KM_PRESS) - { + if (event->type == MIDDLEMOUSE && event->val == KM_PRESS) { // Use customData pointer to signal Shear direction - if (t->customData == NULL) - { + if (t->customData == NULL) { initMouseInputMode(t, &t->mouse, INPUT_VERTICAL_ABSOLUTE); t->customData = (void*)1; } @@ -2603,7 +2569,7 @@ static void headerResize(TransInfo *t, float vec[3], char *str) } if (t->con.mode & CON_APPLY) { - switch(t->num.idx_max) { + switch (t->num.idx_max) { case 0: spos += sprintf(spos, "Scale: %s%s %s", &tvec[0], t->con.text, t->proptext); break; @@ -2755,8 +2721,7 @@ int Resize(TransInfo *t, const int mval[2]) char str[200]; /* for manipulator, center handle, the scaling can't be done relative to center */ - if ( (t->flag & T_USES_MANIPULATOR) && t->con.mode==0) - { + if ( (t->flag & T_USES_MANIPULATOR) && t->con.mode==0) { ratio = 1.0f - ((t->imval[0] - mval[0]) + (t->imval[1] - mval[1]))/100.0f; } else { @@ -2774,8 +2739,7 @@ int Resize(TransInfo *t, const int mval[2]) applySnapping(t, size); - if (t->flag & T_AUTOVALUES) - { + if (t->flag & T_AUTOVALUES) { copy_v3_v3(size, t->auto_values); } @@ -3008,8 +2972,7 @@ static void ElementRotation(TransInfo *t, TransData *td, float mat[3][3], short copy_m3_m4(pmtx, t->poseobj->obmat); invert_m3_m3(imtx, pmtx); - if ((td->flag & TD_NO_LOC) == 0) - { + if ((td->flag & TD_NO_LOC) == 0) { sub_v3_v3v3(vec, td->center, center); mul_m3_v3(pmtx, vec); // To Global space @@ -3093,8 +3056,7 @@ static void ElementRotation(TransInfo *t, TransData *td, float mat[3][3], short } } else { - if ((td->flag & TD_NO_LOC) == 0) - { + if ((td->flag & TD_NO_LOC) == 0) { /* translation */ sub_v3_v3v3(vec, td->center, center); mul_m3_v3(mat, vec); @@ -3440,7 +3402,7 @@ static void headerTranslation(TransInfo *t, float vec[3], char *str) autoik[0]= '\0'; if (t->con.mode & CON_APPLY) { - switch(t->num.idx_max) { + switch (t->num.idx_max) { case 0: spos += sprintf(spos, "D: %s (%s)%s %s %s", &tvec[0], distvec, t->con.text, t->proptext, &autoik[0]); break; @@ -3899,7 +3861,7 @@ void initBevel(TransInfo *t) int handleEventBevel(TransInfo *t, wmEvent *event) { - if (event->val==KM_PRESS) { + if (event->val == KM_PRESS) { if (!G.editBMesh) return 0; switch (event->type) { @@ -4394,7 +4356,7 @@ static int createSlideVerts(TransInfo *t) BMEdge *e, *e1 /*, *ee, *le */ /* UNUSED */; BMVert *v, *v2, *first; BMLoop *l, *l1, *l2; - TransDataSlideVert *tempsv; + TransDataSlideVert *sv_array; BMBVHTree *btree = BMBVH_NewBVH(em, 0, NULL, NULL); SmallHash table; SlideData *sld = MEM_callocN(sizeof(*sld), "sld"); @@ -4468,7 +4430,7 @@ static int createSlideVerts(TransInfo *t) return 0; } - tempsv = MEM_callocN(sizeof(TransDataSlideVert)*j, "tempsv"); + sv_array = MEM_callocN(sizeof(TransDataSlideVert) * j, "sv_array"); j = 0; while (1) { @@ -4527,7 +4489,7 @@ static int createSlideVerts(TransInfo *t) /*iterate over the loop*/ first = v; do { - TransDataSlideVert *sv = tempsv + j; + TransDataSlideVert *sv = sv_array + j; sv->v = v; sv->origvert = *v; @@ -4550,7 +4512,7 @@ static int createSlideVerts(TransInfo *t) if (!e) { //v2=v, v = BM_edge_other_vert(l1->e, v); - sv = tempsv + j + 1; + sv = sv_array + j + 1; sv->v = v; sv->origvert = *v; @@ -4583,7 +4545,7 @@ static int createSlideVerts(TransInfo *t) //EDBM_flag_disable_all(em, BM_ELEM_SELECT); - sld->sv = tempsv; + sld->sv = sv_array; sld->totsv = j; /*find mouse vector*/ @@ -4611,19 +4573,19 @@ static int createSlideVerts(TransInfo *t) j = GET_INT_FROM_POINTER(BLI_smallhash_lookup(&table, (uintptr_t)v)); - if (tempsv[j].down) { - ED_view3d_project_float_v3(ar, tempsv[j].down->co, vec1, projectMat); + if (sv_array[j].down) { + ED_view3d_project_float_v3(ar, sv_array[j].down->co, vec1, projectMat); } else { - add_v3_v3v3(vec1, v->co, tempsv[j].downvec); + add_v3_v3v3(vec1, v->co, sv_array[j].downvec); ED_view3d_project_float_v3(ar, vec1, vec1, projectMat); } - if (tempsv[j].up) { - ED_view3d_project_float_v3(ar, tempsv[j].up->co, vec2, projectMat); + if (sv_array[j].up) { + ED_view3d_project_float_v3(ar, sv_array[j].up->co, vec2, projectMat); } else { - add_v3_v3v3(vec1, v->co, tempsv[j].upvec); + add_v3_v3v3(vec1, v->co, sv_array[j].upvec); ED_view3d_project_float_v3(ar, vec2, vec2, projectMat); } @@ -4642,13 +4604,13 @@ static int createSlideVerts(TransInfo *t) bmesh_edit_begin(bm, BMO_OP_FLAG_UNTAN_MULTIRES); /*create copies of faces for customdata projection*/ - tempsv = sld->sv; - for (i=0; itotsv; i++, tempsv++) { + sv_array = sld->sv; + for (i=0; itotsv; i++, sv_array++) { BMIter fiter, liter; BMFace *f; BMLoop *l; - BM_ITER_ELEM (f, &fiter, tempsv->v, BM_FACES_OF_VERT) { + BM_ITER_ELEM (f, &fiter, sv_array->v, BM_FACES_OF_VERT) { if (!BLI_smallhash_haskey(&sld->origfaces, (uintptr_t)f)) { BMFace *copyf = BM_face_copy(bm, f, TRUE, TRUE); @@ -4666,7 +4628,7 @@ static int createSlideVerts(TransInfo *t) } } - BLI_smallhash_insert(&sld->vhash, (uintptr_t)tempsv->v, tempsv); + BLI_smallhash_insert(&sld->vhash, (uintptr_t)sv_array->v, sv_array); } sld->origfaces_init = TRUE; @@ -4698,7 +4660,7 @@ static int createSlideVerts(TransInfo *t) void projectSVData(TransInfo *t, int final) { SlideData *sld = t->customData; - TransDataSlideVert *tempsv; + TransDataSlideVert *sv; BMEditMesh *em = sld->em; SmallHash visit; int i; @@ -4716,15 +4678,23 @@ void projectSVData(TransInfo *t, int final) BLI_smallhash_init(&visit); - for (i=0, tempsv=sld->sv; itotsv; i++, tempsv++) { + for (i=0, sv = sld->sv; i < sld->totsv; sv++, i++) { BMIter fiter; BMFace *f; - BM_ITER_ELEM (f, &fiter, tempsv->v, BM_FACES_OF_VERT) { - BMIter liter2; - BMFace *copyf, *copyf2; - BMLoop *l2; - int sel, hide; + + /* BMESH_TODO, this interpolates between vertex/loops which are not moved + * (are only apart of a face attached to a slide vert), couldn't we iterate BM_LOOPS_OF_VERT + * here and only iterpolate those? */ + BM_ITER_ELEM (f, &fiter, sv->v, BM_FACES_OF_VERT) { + BMIter liter; + BMLoop *l; + + BMFace *f_copy; /* the copy of 'f' */ + BMFace *f_copy_flip; /* the copy of 'f' or detect if we need to flip to the shorter side. */ + + char is_sel, is_hide; + if (BLI_smallhash_haskey(&visit, (uintptr_t)f)) continue; @@ -4734,50 +4704,98 @@ void projectSVData(TransInfo *t, int final) /* the face attributes of the copied face will get * copied over, so its necessary to save the selection * and hidden state*/ - sel = BM_elem_flag_test(f, BM_ELEM_SELECT); - hide = BM_elem_flag_test(f, BM_ELEM_HIDDEN); + is_sel = BM_elem_flag_test(f, BM_ELEM_SELECT); + is_hide = BM_elem_flag_test(f, BM_ELEM_HIDDEN); - copyf2 = BLI_smallhash_lookup(&sld->origfaces, (uintptr_t)f); + f_copy = BLI_smallhash_lookup(&sld->origfaces, (uintptr_t)f); /* project onto copied projection face */ - BM_ITER_ELEM (l2, &liter2, f, BM_LOOPS_OF_FACE) { - copyf = copyf2; - - if (BM_elem_flag_test(l2->e, BM_ELEM_SELECT) || BM_elem_flag_test(l2->prev->e, BM_ELEM_SELECT)) { - BMLoop *l3 = l2; + BM_ITER_ELEM (l, &liter, f, BM_LOOPS_OF_FACE) { + f_copy_flip = f_copy; + + if (BM_elem_flag_test(l->e, BM_ELEM_SELECT) || BM_elem_flag_test(l->prev->e, BM_ELEM_SELECT)) { + /* the loop is attached of the selected edges that are sliding */ + BMLoop *l_ed_sel = l; - if (!BM_elem_flag_test(l2->e, BM_ELEM_SELECT)) - l3 = l3->prev; + if (!BM_elem_flag_test(l->e, BM_ELEM_SELECT)) + l_ed_sel = l_ed_sel->prev; - if (sld->perc < 0.0 && BM_vert_in_face(l3->radial_next->f, tempsv->down)) { - copyf = BLI_smallhash_lookup(&sld->origfaces, (uintptr_t)l3->radial_next->f); + if (sld->perc < 0.0f) { + if (BM_vert_in_face(l_ed_sel->radial_next->f, sv->down)) { + f_copy_flip = BLI_smallhash_lookup(&sld->origfaces, (uintptr_t)l_ed_sel->radial_next->f); + } } - else if (sld->perc > 0.0 && BM_vert_in_face(l3->radial_next->f, tempsv->up)) { - copyf = BLI_smallhash_lookup(&sld->origfaces, (uintptr_t)l3->radial_next->f); + else if (sld->perc > 0.0f) { + if (BM_vert_in_face(l_ed_sel->radial_next->f, sv->up)) { + f_copy_flip = BLI_smallhash_lookup(&sld->origfaces, (uintptr_t)l_ed_sel->radial_next->f); + } } - if (!copyf) + + BLI_assert(f_copy_flip != NULL); + if (!f_copy_flip) { continue; /* shouldn't happen, but protection */ + } + } + else { + /* the loop is attached to only one vertex and not a selected edge, + * this means we have to find a selected edges face going in the right direction + * to copy from else we get bad distortion see: [#31080] */ + BMIter eiter; + BMEdge *e_sel; + + BM_ITER_ELEM (e_sel, &eiter, l->v, BM_EDGES_OF_VERT) { + if (BM_elem_flag_test(e_sel, BM_ELEM_SELECT)) {; + break; + } + } + + if (e_sel) { + /* warning if the UV's are not contiguous, this will copy from the _wrong_ UVs + * in fact whenever the face being copied is not 'f_copy' this can happen, + * we could be a lot smarter about this but would need to deal with every UV channel or + * add a way to mask out lauers when calling #BM_loop_interp_from_face() */ + if (sld->perc < 0.0f) { + if (BM_vert_in_face(e_sel->l->f, sv->down)) { + f_copy_flip = BLI_smallhash_lookup(&sld->origfaces, (uintptr_t)e_sel->l->f); + } + else if (BM_vert_in_face(e_sel->l->radial_next->f, sv->down)) { + f_copy_flip = BLI_smallhash_lookup(&sld->origfaces, (uintptr_t)e_sel->l->radial_next->f); + } + + } + else if (sld->perc > 0.0f) { + if (BM_vert_in_face(e_sel->l->f, sv->up)) { + f_copy_flip = BLI_smallhash_lookup(&sld->origfaces, (uintptr_t)e_sel->l->f); + } + else if (BM_vert_in_face(e_sel->l->radial_next->f, sv->up)) { + f_copy_flip = BLI_smallhash_lookup(&sld->origfaces, (uintptr_t)e_sel->l->radial_next->f); + } + } + } + } /* only loop data, no vertex data since that contains shape keys, * and we do not want to mess up other shape keys */ - BM_loop_interp_from_face(em->bm, l2, copyf, FALSE, FALSE); + BM_loop_interp_from_face(em->bm, l, f_copy_flip, FALSE, FALSE); if (final) { - BM_loop_interp_multires(em->bm, l2, copyf); - if (copyf2 != copyf) { - BM_loop_interp_multires(em->bm, l2, copyf2); + BM_loop_interp_multires(em->bm, l, f_copy_flip); + if (f_copy != f_copy_flip) { + BM_loop_interp_multires(em->bm, l, f_copy); } } } /* make sure face-attributes are correct (e.g. MTexPoly) */ - BM_elem_attrs_copy(em->bm, em->bm, copyf2, f); + BM_elem_attrs_copy(em->bm, em->bm, f_copy, f); /* restore selection and hidden flags */ - BM_face_select_set(em->bm, f, sel); - if (!hide) { /* this check is a workaround for bug, see note - [#30735], without this edge can be hidden and selected */ - BM_elem_hide_set(em->bm, f, hide); + BM_face_select_set(em->bm, f, is_sel); + if (!is_hide) { + /* this check is a workaround for bug, see note - [#30735], + * without this edge can be hidden and selected */ + BM_elem_hide_set(em->bm, f, is_hide); } } } @@ -4785,7 +4803,8 @@ void projectSVData(TransInfo *t, int final) BLI_smallhash_release(&visit); } -void freeSlideTempFaces(SlideData *sld) { +void freeSlideTempFaces(SlideData *sld) +{ if (sld->origfaces_init) { SmallHashIter hiter; BMFace *copyf; @@ -4808,14 +4827,14 @@ void freeSlideVerts(TransInfo *t) #if 0 /*BMESH_TODO*/ if (me->drawflag & ME_DRAWEXTRA_EDGELEN) { - TransDataSlideVert *tempsv; + TransDataSlideVert *sv; LinkNode *look = sld->vertlist; GHash *vertgh = sld->vhash; while (look) { - tempsv = BLI_ghash_lookup(vertgh,(EditVert*)look->link); - if (tempsv != NULL) { - tempsv->up->f &= !SELECT; - tempsv->down->f &= !SELECT; + sv = BLI_ghash_lookup(vertgh,(EditVert*)look->link); + if (sv != NULL) { + sv->up->f &= !SELECT; + sv->down->f &= !SELECT; } look = look->next; } @@ -5186,8 +5205,7 @@ int Align(TransInfo *t, const int UNUSED(mval[2])) /* saving original center */ copy_v3_v3(center, t->center); - for (i = 0 ; i < t->total; i++, td++) - { + for (i = 0 ; i < t->total; i++, td++) { float mat[3][3], invmat[3][3]; if (td->flag & TD_NOACTION) diff --git a/source/blender/editors/transform/transform_constraints.c b/source/blender/editors/transform/transform_constraints.c index 18e9c1a47b8..ebded7b0a6e 100644 --- a/source/blender/editors/transform/transform_constraints.c +++ b/source/blender/editors/transform/transform_constraints.c @@ -76,8 +76,7 @@ static void drawObjectConstraint(TransInfo *t); static void constraintAutoValues(TransInfo *t, float vec[3]) { int mode = t->con.mode; - if (mode & CON_APPLY) - { + if (mode & CON_APPLY) { float nval = (t->flag & T_NULL_ONE)?1.0f:0.0f; if ((mode & CON_AXIS0) == 0) { @@ -478,7 +477,7 @@ static void applyAxisConstraintRot(TransInfo *t, TransData *td, float vec[3], fl if (!td && t->con.mode & CON_APPLY) { int mode = t->con.mode & (CON_AXIS0|CON_AXIS1|CON_AXIS2); - switch(mode) { + switch (mode) { case CON_AXIS0: case (CON_AXIS1|CON_AXIS2): copy_v3_v3(vec, t->con.mtx[0]); @@ -525,7 +524,7 @@ static void applyObjectConstraintRot(TransInfo *t, TransData *td, float vec[3], td= t->data; } - switch(mode) { + switch (mode) { case CON_AXIS0: case (CON_AXIS1|CON_AXIS2): copy_v3_v3(vec, td->axismtx[0]); @@ -604,7 +603,7 @@ void setUserConstraint(TransInfo *t, short orientation, int mode, const char fte { char text[40]; - switch(orientation) { + switch (orientation) { case V3D_MANIP_GLOBAL: { float mtx[3][3]= MAT3_UNITY; diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 98ccd17226c..00c8e0a1d34 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -127,8 +127,7 @@ static void qsort_trans_data(TransInfo *t, TransData *head, TransData *tail, Tra TransData *itail = tail; *temp = *head; - while (head < tail) - { + while (head < tail) { if (t->flag & T_PROP_CONNECTED) { while ((tail->dist >= temp->dist) && (head < tail)) tail--; @@ -138,8 +137,7 @@ static void qsort_trans_data(TransInfo *t, TransData *head, TransData *tail, Tra tail--; } - if (head != tail) - { + if (head != tail) { *head = *tail; head++; } @@ -153,8 +151,7 @@ static void qsort_trans_data(TransInfo *t, TransData *head, TransData *tail, Tra head++; } - if (head != tail) - { + if (head != tail) { *tail = *head; tail--; } @@ -535,13 +532,11 @@ static void add_pose_transdata(TransInfo *t, bPoseChannel *pchan, Object *ob, Tr td->ob = ob; td->flag = TD_SELECTED; - if (bone->flag & BONE_HINGE_CHILD_TRANSFORM) - { + if (bone->flag & BONE_HINGE_CHILD_TRANSFORM) { td->flag |= TD_NOCENTER; } - if (bone->flag & BONE_TRANSFORM_CHILD) - { + if (bone->flag & BONE_TRANSFORM_CHILD) { td->flag |= TD_NOCENTER; td->flag |= TD_NO_LOC; } @@ -1443,7 +1438,7 @@ static void createTransCurveVerts(bContext *C, TransInfo *t) if (cu->editnurb==NULL) return; /* count total of vertices, check identical as in 2nd loop for making transdata! */ - nurbs= curve_editnurbs(cu); + nurbs= BKE_curve_editNurbs_get(cu); for (nu= nurbs->first; nu; nu= nu->next) { if (nu->type == CU_BEZIER) { for (a=0, bezt= nu->bezt; apntsu; a++, bezt++) { @@ -1593,7 +1588,7 @@ static void createTransCurveVerts(bContext *C, TransInfo *t) * but for now just don't change handle types */ if (ELEM(t->mode, TFM_CURVE_SHRINKFATTEN, TFM_TILT) == 0) { /* sets the handles based on their selection, do this after the data is copied to the TransData */ - testhandlesNurb(nu); + BKE_nurb_handles_test(nu); } } else { @@ -2455,14 +2450,14 @@ static void createTransUVs(bContext *C, TransInfo *t) BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { tf= CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY); - if (!uvedit_face_visible(scene, ima, efa, tf)) { + if (!uvedit_face_visible_test(scene, ima, efa, tf)) { BM_elem_flag_disable(efa, BM_ELEM_TAG); continue; } BM_elem_flag_enable(efa, BM_ELEM_TAG); BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { - if (uvedit_uv_selected(em, scene, l)) + if (uvedit_uv_select_test(em, scene, l)) countsel++; if (propmode) @@ -2490,11 +2485,11 @@ static void createTransUVs(bContext *C, TransInfo *t) continue; BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { - if (!propmode && !uvedit_uv_selected(em, scene, l)) + if (!propmode && !uvedit_uv_select_test(em, scene, l)) continue; luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV); - UVsToTransData(sima, td++, td2d++, luv->uv, uvedit_uv_selected(em, scene, l)); + UVsToTransData(sima, td++, td2d++, luv->uv, uvedit_uv_select_test(em, scene, l)); } } @@ -2707,8 +2702,7 @@ static void createTransNlaData(bContext *C, TransInfo *t) center[2]= 0.0f; /* set td's based on which handles are applicable */ - if (FrameOnMouseSide(t->frame_side, strip->start, (float)CFRA)) - { + if (FrameOnMouseSide(t->frame_side, strip->start, (float)CFRA)) { /* just set tdn to assume that it only has one handle for now */ tdn->handle= -1; @@ -2739,8 +2733,7 @@ static void createTransNlaData(bContext *C, TransInfo *t) td->extra= tdn; td++; } - if (FrameOnMouseSide(t->frame_side, strip->end, (float)CFRA)) - { + if (FrameOnMouseSide(t->frame_side, strip->end, (float)CFRA)) { /* if tdn is already holding the start handle, then we're doing both, otherwise, only end */ tdn->handle= (tdn->handle) ? 2 : 1; @@ -3993,7 +3986,7 @@ static TransData *SeqToTransData(TransData *td, TransData2D *td2d, TransDataSeq { int start_left; - switch(sel_flag) { + switch (sel_flag) { case SELECT: /* Use seq_tx_get_final_left() and an offset here * so transform has the left hand location of the strip. @@ -4447,8 +4440,7 @@ static void ObjectToTransData(TransInfo *t, TransData *td, Object *ob) } /* set active flag */ - if (ob == OBACT) - { + if (ob == OBACT) { td->flag |= TD_ACTIVE; } } @@ -4500,8 +4492,7 @@ static void set_trans_object_base_flags(TransInfo *t) parsel= parsel->parent; } - if (parsel) - { + if (parsel) { /* rotation around local centers are allowed to propagate */ if ((t->mode == TFM_ROTATION || t->mode == TFM_TRACKBALL) && t->around == V3D_LOCAL) { base->flag |= BA_TRANSFORM_CHILD; @@ -4534,10 +4525,8 @@ static int mark_children(Object *ob) if (ob->flag & (SELECT|BA_TRANSFORM_CHILD)) return 1; - if (ob->parent) - { - if (mark_children(ob->parent)) - { + if (ob->parent) { + if (mark_children(ob->parent)) { ob->flag |= BA_TRANSFORM_CHILD; return 1; } @@ -4554,8 +4543,7 @@ static int count_proportional_objects(TransInfo *t) Base *base; /* rotations around local centers are allowed to propagate, so we take all objects */ - if (!((t->mode == TFM_ROTATION || t->mode == TFM_TRACKBALL) && t->around == V3D_LOCAL)) - { + if (!((t->mode == TFM_ROTATION || t->mode == TFM_TRACKBALL) && t->around == V3D_LOCAL)) { /* mark all parents */ for (base= scene->base.first; base; base= base->next) { if (TESTBASELIB_BGMODE(v3d, scene, base)) { @@ -4616,8 +4604,7 @@ static void clear_trans_object_base_flags(TransInfo *t) Scene *sce = t->scene; Base *base; - for (base= sce->base.first; base; base = base->next) - { + for (base= sce->base.first; base; base = base->next) { if (base->flag & BA_WAS_SEL) base->flag |= SELECT; @@ -5070,8 +5057,7 @@ void special_aftertrans_update(bContext *C, TransInfo *t) if (ANIM_animdata_get_context(C, &ac) == 0) return; - if (ac.datatype) - { + if (ac.datatype) { ListBase anim_data = {NULL, NULL}; bAnimListElem *ale; short filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVE_VISIBLE); @@ -5120,8 +5106,7 @@ void special_aftertrans_update(bContext *C, TransInfo *t) if (ANIM_animdata_get_context(C, &ac) == 0) return; - if (ac.datatype) - { + if (ac.datatype) { ListBase anim_data = {NULL, NULL}; bAnimListElem *ale; short filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_FOREDIT); @@ -5147,8 +5132,7 @@ void special_aftertrans_update(bContext *C, TransInfo *t) } } else if (t->obedit) { - if (t->obedit->type == OB_MESH) - { + if (t->obedit->type == OB_MESH) { BMEditMesh *em = BMEdit_FromObject(t->obedit); /* table needs to be created for each edit command, since vertices can move etc */ mesh_octree_table(t->obedit, em, NULL, 'e'); @@ -5298,16 +5282,14 @@ static void createTransObject(bContext *C, TransInfo *t) return; } - if (propmode) - { + if (propmode) { t->total += count_proportional_objects(t); } td = t->data = MEM_callocN(t->total*sizeof(TransData), "TransOb"); tx = t->ext = MEM_callocN(t->total*sizeof(TransDataExtension), "TransObExtension"); - CTX_DATA_BEGIN(C, Base*, base, selected_bases) - { + CTX_DATA_BEGIN (C, Base*, base, selected_bases) { Object *ob= base->object; td->flag = TD_SELECTED; @@ -5315,8 +5297,7 @@ static void createTransObject(bContext *C, TransInfo *t) td->ext = tx; td->ext->rotOrder= ob->rotmode; - if (base->flag & BA_TRANSFORM_CHILD) - { + if (base->flag & BA_TRANSFORM_CHILD) { td->flag |= TD_NOCENTER; td->flag |= TD_NO_LOC; } @@ -5333,8 +5314,7 @@ static void createTransObject(bContext *C, TransInfo *t) } CTX_DATA_END; - if (propmode) - { + if (propmode) { Scene *scene = t->scene; View3D *v3d = t->view; Base *base; @@ -5343,7 +5323,8 @@ static void createTransObject(bContext *C, TransInfo *t) Object *ob= base->object; /* if base is not selected, not a parent of selection or not a child of selection and it is editable */ - if ((ob->flag & (SELECT|BA_TRANSFORM_CHILD|BA_TRANSFORM_PARENT)) == 0 && BASE_EDITABLE_BGMODE(v3d, scene, base)) + if ((ob->flag & (SELECT | BA_TRANSFORM_CHILD | BA_TRANSFORM_PARENT)) == 0 && + BASE_EDITABLE_BGMODE(v3d, scene, base)) { td->protectflag= ob->protectflag; td->ext = tx; @@ -5414,7 +5395,7 @@ static void createTransNodeData(bContext *C, TransInfo *t) td = t->data = MEM_callocN(t->total*sizeof(TransData), "TransNode TransData"); td2d = t->data2d = MEM_callocN(t->total*sizeof(TransData2D), "TransNode TransData2D"); - CTX_DATA_BEGIN(C, bNode *, selnode, selected_nodes) + CTX_DATA_BEGIN (C, bNode *, selnode, selected_nodes) NodeToTransData(td++, td2d++, selnode); CTX_DATA_END } @@ -6035,12 +6016,10 @@ void createTransData(bContext *C, TransInfo *t) sort_trans_data_dist(t); } - if ((t->spacetype == SPACE_VIEW3D) && (t->ar->regiontype == RGN_TYPE_WINDOW)) - { + if ((t->spacetype == SPACE_VIEW3D) && (t->ar->regiontype == RGN_TYPE_WINDOW)) { View3D *v3d = t->view; RegionView3D *rv3d = CTX_wm_region_view3d(C); - if (rv3d && (t->flag & T_OBJECT) && v3d->camera == OBACT && rv3d->persp==RV3D_CAMOB) - { + if (rv3d && (t->flag & T_OBJECT) && v3d->camera == OBACT && rv3d->persp==RV3D_CAMOB) { t->flag |= T_CAMERA; } } diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index 0af4830e3c6..217e0d36fce 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -111,8 +111,7 @@ void getViewVector(TransInfo *t, float coord[3], float vec[3]) { - if (t->persp != RV3D_ORTHO) - { + if (t->persp != RV3D_ORTHO) { float p1[4], p2[4]; copy_v3_v3(p1, coord); @@ -256,8 +255,7 @@ static void editbmesh_apply_to_mirror(TransInfo *t) eve->co[2]= td->loc[2]; } - if (td->flag & TD_MIRROR_EDGE) - { + if (td->flag & TD_MIRROR_EDGE) { td->loc[0] = 0; } } @@ -675,7 +673,7 @@ static void recalcData_view3d(TransInfo *t) if (t->obedit) { if (ELEM(t->obedit->type, OB_CURVE, OB_SURF)) { Curve *cu= t->obedit->data; - ListBase *nurbs= curve_editnurbs(cu); + ListBase *nurbs= BKE_curve_editNurbs_get(cu); Nurb *nu= nurbs->first; if (t->state != TRANS_CANCEL) { @@ -687,15 +685,15 @@ static void recalcData_view3d(TransInfo *t) if (t->state == TRANS_CANCEL) { while (nu) { - calchandlesNurb(nu); /* Cant do testhandlesNurb here, it messes up the h1 and h2 flags */ + BKE_nurb_handles_calc(nu); /* Cant do testhandlesNurb here, it messes up the h1 and h2 flags */ nu= nu->next; } } else { /* Normal updating */ while (nu) { - test2DNurb(nu); - calchandlesNurb(nu); + BKE_nurb_test2D(nu); + BKE_nurb_handles_calc(nu); nu= nu->next; } } @@ -775,21 +773,17 @@ static void recalcData_view3d(TransInfo *t) } - if (t->mode != TFM_BONE_ROLL) - { + if (t->mode != TFM_BONE_ROLL) { /* fix roll */ - for (i = 0; i < t->total; i++, td++) - { - if (td->extra) - { + for (i = 0; i < t->total; i++, td++) { + if (td->extra) { float vec[3], up_axis[3]; float qrot[4]; ebo = td->extra; copy_v3_v3(up_axis, td->axismtx[2]); - if (t->mode != TFM_ROTATION) - { + if (t->mode != TFM_ROTATION) { sub_v3_v3v3(vec, ebo->tail, ebo->head); normalize_v3(vec); rotation_between_vecs_to_quat(qrot, td->axismtx[1], vec); @@ -915,8 +909,7 @@ void drawLine(TransInfo *t, float *center, float *dir, char axis, short options) float v1[3], v2[3], v3[3]; unsigned char col[3], col2[3]; - if (t->spacetype == SPACE_VIEW3D) - { + if (t->spacetype == SPACE_VIEW3D) { View3D *v3d = t->view; glPushMatrix(); @@ -984,8 +977,7 @@ int initTransInfo (bContext *C, TransInfo *t, wmOperator *op, wmEvent *event) t->redraw = 1; /* redraw first time */ - if (event) - { + if (event) { copy_v2_v2_int(t->imval, event->mval); t->event_type = event->type; } @@ -1043,8 +1035,7 @@ int initTransInfo (bContext *C, TransInfo *t, wmOperator *op, wmEvent *event) } - if (t->spacetype == SPACE_VIEW3D) - { + if (t->spacetype == SPACE_VIEW3D) { View3D *v3d = sa->spacedata.first; t->view = v3d; @@ -1060,12 +1051,12 @@ int initTransInfo (bContext *C, TransInfo *t, wmOperator *op, wmEvent *event) if (v3d->flag & V3D_ALIGN) t->flag |= T_V3D_ALIGN; t->around = v3d->around; - if (op && RNA_struct_find_property(op->ptr, "constraint_orientation") && RNA_struct_property_is_set(op->ptr, "constraint_orientation")) + if (op && (RNA_struct_find_property(op->ptr, "constraint_orientation") && + RNA_struct_property_is_set(op->ptr, "constraint_orientation"))) { t->current_orientation = RNA_enum_get(op->ptr, "constraint_orientation"); - - if (t->current_orientation >= V3D_MANIP_CUSTOM + BIF_countTransformOrientation(C)) - { + + if (t->current_orientation >= V3D_MANIP_CUSTOM + BIF_countTransformOrientation(C)) { t->current_orientation = V3D_MANIP_GLOBAL; } } @@ -1124,10 +1115,8 @@ int initTransInfo (bContext *C, TransInfo *t, wmOperator *op, wmEvent *event) t->around = V3D_CENTER; } - if (op && RNA_struct_property_is_set(op->ptr, "release_confirm")) - { - if (RNA_boolean_get(op->ptr, "release_confirm")) - { + if (op && RNA_struct_property_is_set(op->ptr, "release_confirm")) { + if (RNA_boolean_get(op->ptr, "release_confirm")) { t->flag |= T_RELEASE_CONFIRM; } } @@ -1137,35 +1126,31 @@ int initTransInfo (bContext *C, TransInfo *t, wmOperator *op, wmEvent *event) } } - if (op && RNA_struct_find_property(op->ptr, "mirror") && RNA_struct_property_is_set(op->ptr, "mirror")) + if (op && (RNA_struct_find_property(op->ptr, "mirror") && + RNA_struct_property_is_set(op->ptr, "mirror"))) { - if (RNA_boolean_get(op->ptr, "mirror")) - { + if (RNA_boolean_get(op->ptr, "mirror")) { t->flag |= T_MIRROR; t->mirror = 1; } } // Need stuff to take it from edit mesh or whatnot here else if (t->spacetype == SPACE_VIEW3D) { - if (t->obedit && t->obedit->type == OB_MESH && (((Mesh *)t->obedit->data)->editflag & ME_EDIT_MIRROR_X)) - { + if (t->obedit && t->obedit->type == OB_MESH && (((Mesh *)t->obedit->data)->editflag & ME_EDIT_MIRROR_X)) { t->flag |= T_MIRROR; t->mirror = 1; } } /* setting PET flag only if property exist in operator. Otherwise, assume it's not supported */ - if (op && RNA_struct_find_property(op->ptr, "proportional")) - { - if (RNA_struct_property_is_set(op->ptr, "proportional")) - { - switch(RNA_enum_get(op->ptr, "proportional")) - { - case PROP_EDIT_CONNECTED: - t->flag |= T_PROP_CONNECTED; - case PROP_EDIT_ON: - t->flag |= T_PROP_EDIT; - break; + if (op && RNA_struct_find_property(op->ptr, "proportional")) { + if (RNA_struct_property_is_set(op->ptr, "proportional")) { + switch (RNA_enum_get(op->ptr, "proportional")) { + case PROP_EDIT_CONNECTED: + t->flag |= T_PROP_CONNECTED; + case PROP_EDIT_ON: + t->flag |= T_PROP_EDIT; + break; } } else { @@ -1186,7 +1171,8 @@ int initTransInfo (bContext *C, TransInfo *t, wmOperator *op, wmEvent *event) } } - if (op && RNA_struct_find_property(op->ptr, "proportional_size") && RNA_struct_property_is_set(op->ptr, "proportional_size")) + if (op && (RNA_struct_find_property(op->ptr, "proportional_size") && + RNA_struct_property_is_set(op->ptr, "proportional_size"))) { t->prop_size = RNA_float_get(op->ptr, "proportional_size"); } @@ -1196,13 +1182,13 @@ int initTransInfo (bContext *C, TransInfo *t, wmOperator *op, wmEvent *event) /* TRANSFORM_FIX_ME rna restrictions */ - if (t->prop_size <= 0.00001f) - { + if (t->prop_size <= 0.00001f) { printf("Proportional size (%f) under 0.00001, reseting to 1!\n", t->prop_size); t->prop_size = 1.0f; } - if (op && RNA_struct_find_property(op->ptr, "proportional_edit_falloff") && RNA_struct_property_is_set(op->ptr, "proportional_edit_falloff")) + if (op && (RNA_struct_find_property(op->ptr, "proportional_edit_falloff") && + RNA_struct_property_is_set(op->ptr, "proportional_edit_falloff"))) { t->prop_mode = RNA_enum_get(op->ptr, "proportional_edit_falloff"); } @@ -1210,14 +1196,12 @@ int initTransInfo (bContext *C, TransInfo *t, wmOperator *op, wmEvent *event) t->prop_mode = ts->prop_mode; } } - else /* add not pet option to context when not available */ - { + else { /* add not pet option to context when not available */ t->options |= CTX_NO_PET; } // Mirror is not supported with PET, turn it off. - if (t->flag & T_PROP_EDIT) - { + if (t->flag & T_PROP_EDIT) { t->flag &= ~T_MIRROR; } @@ -1282,8 +1266,7 @@ void postTrans (bContext *C, TransInfo *t) } } - if (t->mouse.data) - { + if (t->mouse.data) { MEM_freeN(t->mouse.data); } } @@ -1440,8 +1423,7 @@ void calculateCenterMedian(TransInfo *t) for (i = 0; i < t->total; i++) { if (t->data[i].flag & TD_SELECTED) { - if (!(t->data[i].flag & TD_NOCENTER)) - { + if (!(t->data[i].flag & TD_NOCENTER)) { add_v3_v3(partial, t->data[i].center); total++; } @@ -1493,7 +1475,7 @@ void calculateCenterBound(TransInfo *t) void calculateCenter(TransInfo *t) { - switch(t->around) { + switch (t->around) { case V3D_CENTER: calculateCenterBound(t); break; @@ -1523,8 +1505,8 @@ void calculateCenter(TransInfo *t) BMEditSelection ese; BMEditMesh *em = BMEdit_FromObject(t->obedit); - if (EDBM_editselection_active_get(em, &ese)) { - EDBM_editselection_center(t->center, &ese); + if (BM_select_history_active_get(em->bm, &ese)) { + BM_editselection_center(&ese, t->center); calculateCenter2D(t); break; } @@ -1542,8 +1524,7 @@ void calculateCenter(TransInfo *t) } /* END EDIT MODE ACTIVE ELEMENT */ calculateCenterMedian(t); - if ((t->flag & (T_EDIT|T_POSE))==0) - { + if ((t->flag & (T_EDIT|T_POSE))==0) { Scene *scene = t->scene; Object *ob= OBACT; if (ob) { @@ -1583,8 +1564,7 @@ void calculateCenter(TransInfo *t) projectIntView(t, axis, t->center2d); /* rotate only needs correct 2d center, grab needs initgrabz() value */ - if (t->mode==TFM_TRANSLATION) - { + if (t->mode==TFM_TRANSLATION) { copy_v3_v3(t->center, axis); copy_v3_v3(t->con.center, t->center); } @@ -1625,11 +1605,8 @@ void calculatePropRatio(TransInfo *t) td->factor = 0.0f; restoreElement(td); } - else if ((connected && - (td->flag & TD_NOTCONNECTED || td->dist > t->prop_size)) - || - (connected == 0 && - td->rdist > t->prop_size)) + else if ((connected && (td->flag & TD_NOTCONNECTED || td->dist > t->prop_size)) || + (connected == 0 && td->rdist > t->prop_size)) { /* * The elements are sorted according to their dist member in the array, @@ -1656,7 +1633,7 @@ void calculatePropRatio(TransInfo *t) if (dist < 0.0f) dist = 0.0f; - switch(t->prop_mode) { + switch (t->prop_mode) { case PROP_SHARP: td->factor= dist*dist; break; @@ -1684,7 +1661,7 @@ void calculatePropRatio(TransInfo *t) } } } - switch(t->prop_mode) { + switch (t->prop_mode) { case PROP_SHARP: strcpy(t->proptext, "(Sharp)"); break; diff --git a/source/blender/editors/transform/transform_input.c b/source/blender/editors/transform/transform_input.c index bd3fb20f77f..467e3dc600e 100644 --- a/source/blender/editors/transform/transform_input.c +++ b/source/blender/editors/transform/transform_input.c @@ -313,8 +313,7 @@ void initMouseInputMode(TransInfo *t, MouseInput *mi, MouseInputMode mode) } #endif - switch(mode) - { + switch (mode) { case INPUT_VECTOR: mi->apply = InputVector; t->helpline = HLP_NONE; @@ -391,8 +390,7 @@ int handleMouseInput(TransInfo *t, MouseInput *mi, wmEvent *event) { int redraw = TREDRAW_NOTHING; - switch (event->type) - { + switch (event->type) { case LEFTSHIFTKEY: case RIGHTSHIFTKEY: if (event->val == KM_PRESS) { diff --git a/source/blender/editors/transform/transform_manipulator.c b/source/blender/editors/transform/transform_manipulator.c index 82e57cca705..f8a982c6b71 100644 --- a/source/blender/editors/transform/transform_manipulator.c +++ b/source/blender/editors/transform/transform_manipulator.c @@ -300,8 +300,8 @@ int calc_manipulator_stats(const bContext *C) float vec[3]= {0,0,0}; /* USE LAST SELECTE WITH ACTIVE */ - if (v3d->around==V3D_ACTIVE && EDBM_editselection_active_get(em, &ese)) { - EDBM_editselection_center(vec, &ese); + if ((v3d->around == V3D_ACTIVE) && BM_select_history_active_get(em->bm, &ese)) { + BM_editselection_center(&ese, vec); calc_tw_center(scene, vec); totsel= 1; } @@ -389,7 +389,7 @@ int calc_manipulator_stats(const bContext *C) Nurb *nu; BezTriple *bezt; BPoint *bp; - ListBase *nurbs= curve_editnurbs(cu); + ListBase *nurbs= BKE_curve_editNurbs_get(cu); nu= nurbs->first; while (nu) { @@ -549,7 +549,7 @@ int calc_manipulator_stats(const bContext *C) /* global, local or normal orientation? */ if (ob && totsel) { - switch(v3d->twmode) { + switch (v3d->twmode) { case V3D_MANIP_GLOBAL: break; /* nothing to do */ @@ -761,7 +761,7 @@ static void manipulator_setcolor(View3D *v3d, char axis, int colcode, unsigned c UI_GetThemeColor3ubv(TH_TRANSFORM, col); } else { - switch(axis) { + switch (axis) { case 'C': UI_GetThemeColor3ubv(TH_TRANSFORM, col); if (v3d->twmode == V3D_MANIP_LOCAL) { @@ -1483,7 +1483,7 @@ void BIF_draw_manipulator(const bContext *C) v3d->twflag |= V3D_DRAW_MANIPULATOR; /* now we can define center */ - switch(v3d->around) { + switch (v3d->around) { case V3D_CENTER: case V3D_ACTIVE: rv3d->twmat[3][0]= (scene->twmin[0] + scene->twmax[0])/2.0f; @@ -1639,7 +1639,7 @@ int BIF_do_manipulator(bContext *C, struct wmEvent *event, wmOperator *op) if (drawflags==0) drawflags= val; if (drawflags & MAN_TRANS_C) { - switch(drawflags) { + switch (drawflags) { case MAN_TRANS_C: break; case MAN_TRANS_X: @@ -1672,7 +1672,7 @@ int BIF_do_manipulator(bContext *C, struct wmEvent *event, wmOperator *op) //wm_operator_invoke(C, WM_operatortype_find("TRANSFORM_OT_translate", 0), event, op->ptr, NULL, FALSE); } else if (drawflags & MAN_SCALE_C) { - switch(drawflags) { + switch (drawflags) { case MAN_SCALE_X: if (shift) { constraint_axis[1] = 1; @@ -1707,7 +1707,7 @@ int BIF_do_manipulator(bContext *C, struct wmEvent *event, wmOperator *op) //wm_operator_invoke(C, WM_operatortype_find("TRANSFORM_OT_trackball", 0), event, op->ptr, NULL, FALSE); } else if (drawflags & MAN_ROT_C) { - switch(drawflags) { + switch (drawflags) { case MAN_ROT_X: constraint_axis[0] = 1; break; diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c index 09078c199c4..b9ae3180591 100644 --- a/source/blender/editors/transform/transform_ops.c +++ b/source/blender/editors/transform/transform_ops.c @@ -317,23 +317,19 @@ static void transformops_exit(bContext *C, wmOperator *op) static int transformops_data(bContext *C, wmOperator *op, wmEvent *event) { int retval = 1; - if (op->customdata == NULL) - { + if (op->customdata == NULL) { TransInfo *t = MEM_callocN(sizeof(TransInfo), "TransInfo data2"); TransformModeItem *tmode; int mode = -1; - for (tmode = transform_modes; tmode->idname; tmode++) - { - if (op->type->idname == tmode->idname) - { + for (tmode = transform_modes; tmode->idname; tmode++) { + if (op->type->idname == tmode->idname) { mode = tmode->mode; break; } } - if (mode == -1) - { + if (mode == -1) { mode = RNA_enum_get(op->ptr, "mode"); } @@ -376,8 +372,7 @@ static int transform_modal(bContext *C, wmOperator *op, wmEvent *event) exit_code |= transformEnd(C, t); - if ((exit_code & OPERATOR_RUNNING_MODAL) == 0) - { + if ((exit_code & OPERATOR_RUNNING_MODAL) == 0) { transformops_exit(C, op); exit_code &= ~OPERATOR_PASS_THROUGH; /* preventively remove passthrough */ } @@ -400,8 +395,7 @@ static int transform_exec(bContext *C, wmOperator *op) { TransInfo *t; - if (!transformops_data(C, op, NULL)) - { + if (!transformops_data(C, op, NULL)) { G.moving = 0; return OPERATOR_CANCELLED; } @@ -423,8 +417,7 @@ static int transform_exec(bContext *C, wmOperator *op) static int transform_invoke(bContext *C, wmOperator *op, wmEvent *event) { - if (!transformops_data(C, op, event)) - { + if (!transformops_data(C, op, event)) { G.moving = 0; return OPERATOR_CANCELLED; } @@ -445,8 +438,7 @@ void Transform_Properties(struct wmOperatorType *ot, int flags) { PropertyRNA *prop; - if (flags & P_AXIS) - { + if (flags & P_AXIS) { prop= RNA_def_property(ot->srna, "axis", PROP_FLOAT, PROP_DIRECTION); RNA_def_property_array(prop, 3); /* Make this not hidden when there's a nice axis selection widget */ @@ -455,8 +447,7 @@ void Transform_Properties(struct wmOperatorType *ot, int flags) } - if (flags & P_CONSTRAINT) - { + if (flags & P_CONSTRAINT) { RNA_def_boolean_vector(ot->srna, "constraint_axis", 3, NULL, "Constraint Axis", ""); prop= RNA_def_property(ot->srna, "constraint_orientation", PROP_ENUM, PROP_NONE); RNA_def_property_ui_text(prop, "Orientation", "Transformation orientation"); @@ -465,21 +456,18 @@ void Transform_Properties(struct wmOperatorType *ot, int flags) } - if (flags & P_MIRROR) - { + if (flags & P_MIRROR) { RNA_def_boolean(ot->srna, "mirror", 0, "Mirror Editing", ""); } - if (flags & P_PROPORTIONAL) - { + if (flags & P_PROPORTIONAL) { RNA_def_enum(ot->srna, "proportional", proportional_editing_items, 0, "Proportional Editing", ""); RNA_def_enum(ot->srna, "proportional_edit_falloff", proportional_falloff_items, 0, "Proportional Editing Falloff", "Falloff type for proportional editing mode"); RNA_def_float(ot->srna, "proportional_size", 1, 0.00001f, FLT_MAX, "Proportional Size", "", 0.001, 100); } - if (flags & P_SNAP) - { + if (flags & P_SNAP) { prop= RNA_def_boolean(ot->srna, "snap", 0, "Use Snapping Options", ""); RNA_def_property_flag(prop, PROP_HIDDEN); @@ -497,14 +485,12 @@ void Transform_Properties(struct wmOperatorType *ot, int flags) } } } - - if (flags & P_OPTIONS) - { + + if (flags & P_OPTIONS) { RNA_def_boolean(ot->srna, "texture_space", 0, "Edit Texture Space", "Edit Object data texture space"); } - if (flags & P_CORRECT_UV) - { + if (flags & P_CORRECT_UV) { RNA_def_boolean(ot->srna, "correct_uv", 0, "Correct UVs", "Correct UV coordinates when transforming"); } @@ -827,8 +813,7 @@ void transform_operatortypes(void) { TransformModeItem *tmode; - for (tmode = transform_modes; tmode->idname; tmode++) - { + for (tmode = transform_modes; tmode->idname; tmode++) { WM_operatortype_append(tmode->opfunc); } @@ -853,15 +838,13 @@ void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spac if (modalmap) { TransformModeItem *tmode; - for (tmode = transform_modes; tmode->idname; tmode++) - { + for (tmode = transform_modes; tmode->idname; tmode++) { WM_modalkeymap_assign(modalmap, tmode->idname); } WM_modalkeymap_assign(modalmap, "TRANSFORM_OT_transform"); } - switch(spaceid) - { + switch (spaceid) { case SPACE_VIEW3D: WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0); diff --git a/source/blender/editors/transform/transform_orientations.c b/source/blender/editors/transform/transform_orientations.c index 2cc9d8fca93..db974626b14 100644 --- a/source/blender/editors/transform/transform_orientations.c +++ b/source/blender/editors/transform/transform_orientations.c @@ -176,8 +176,7 @@ TransformOrientation *createMeshSpace(bContext *C, ReportList *reports, char *na type = getTransformOrientation(C, normal, plane, 0); - switch (type) - { + switch (type) { case ORIENTATION_VERT: if (createSpaceNormal(mat, normal) == 0) { BKE_reports_prepend(reports, "Cannot use vertex with zero-length normal"); @@ -493,7 +492,7 @@ void initTransformOrientation(bContext *C, TransInfo *t) Object *ob = CTX_data_active_object(C); Object *obedit = CTX_data_active_object(C); - switch(t->current_orientation) { + switch (t->current_orientation) { case V3D_MANIP_GLOBAL: unit_m3(t->spacemtx); strcpy(t->spacename, "global"); @@ -577,12 +576,11 @@ int getTransformOrientation(const bContext *C, float normal[3], float plane[3], float vec[3]= {0,0,0}; /* USE LAST SELECTED WITH ACTIVE */ - if (activeOnly && EDBM_editselection_active_get(em, &ese)) { - EDBM_editselection_normal(normal, &ese); - EDBM_editselection_plane(em, plane, &ese); + if (activeOnly && BM_select_history_active_get(em->bm, &ese)) { + BM_editselection_normal(&ese, normal); + BM_editselection_plane(&ese, plane); - switch (ese.htype) - { + switch (ese.htype) { case BM_VERT: result = ORIENTATION_VERT; break; @@ -717,15 +715,14 @@ int getTransformOrientation(const bContext *C, float normal[3], float plane[3], Nurb *nu; BezTriple *bezt; int a; - ListBase *nurbs= curve_editnurbs(cu); + ListBase *nurbs= BKE_curve_editNurbs_get(cu); for (nu = nurbs->first; nu; nu = nu->next) { /* only bezier has a normal */ if (nu->type == CU_BEZIER) { bezt= nu->bezt; a= nu->pntsu; - while (a--) - { + while (a--) { /* exception */ if ((bezt->f1 & SELECT) + (bezt->f2 & SELECT) + (bezt->f3 & SELECT) > SELECT) { sub_v3_v3v3(normal, bezt->vec[0], bezt->vec[2]); @@ -886,8 +883,7 @@ void ED_getTransformOrientationMatrix(const bContext *C, float orientation_mat[] type = getTransformOrientation(C, normal, plane, activeOnly); - switch (type) - { + switch (type) { case ORIENTATION_NORMAL: if (createSpaceNormalTangent(orientation_mat, normal, plane) == 0) { type = ORIENTATION_NONE; diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c index 7bdd3ddc069..0a5613bca22 100644 --- a/source/blender/editors/transform/transform_snap.c +++ b/source/blender/editors/transform/transform_snap.c @@ -140,8 +140,7 @@ int activeSnap(TransInfo *t) void drawSnapping(const struct bContext *C, TransInfo *t) { - if (validSnap(t) && activeSnap(t)) - { + if (validSnap(t) && activeSnap(t)) { unsigned char col[4], selectedCol[4], activeCol[4]; UI_GetThemeColor3ubv(TH_TRANSFORM, col); @@ -184,8 +183,7 @@ void drawSnapping(const struct bContext *C, TransInfo *t) } /* draw normal if needed */ - if (usingSnappingNormal(t) && validSnappingNormal(t)) - { + if (usingSnappingNormal(t) && validSnappingNormal(t)) { glColor4ubv(activeCol); glBegin(GL_LINES); @@ -240,16 +238,14 @@ int handleSnapping(TransInfo *t, wmEvent *event) int status = 0; #if 0 // XXX need a proper selector for all snap mode - if (BIF_snappingSupported(t->obedit) && event->type == TABKEY && event->shift) - { + if (BIF_snappingSupported(t->obedit) && event->type == TABKEY && event->shift) { /* toggle snap and reinit */ t->settings->snap_flag ^= SCE_SNAP; initSnapping(t, NULL); status = 1; } #endif - if (event->type == MOUSEMOVE) - { + if (event->type == MOUSEMOVE) { status |= updateSelectedSnapPoint(t); } @@ -259,8 +255,7 @@ int handleSnapping(TransInfo *t, wmEvent *event) void applyProject(TransInfo *t) { /* XXX FLICKER IN OBJECT MODE */ - if ((t->tsnap.project) && activeSnap(t) && (t->flag & T_NO_PROJECT) == 0) - { + if ((t->tsnap.project) && activeSnap(t) && (t->flag & T_NO_PROJECT) == 0) { TransData *td = t->data; float tvec[3]; float imat[4][4]; @@ -283,8 +278,7 @@ void applyProject(TransInfo *t) continue; copy_v3_v3(iloc, td->loc); - if (t->flag & (T_EDIT|T_POSE)) - { + if (t->flag & (T_EDIT|T_POSE)) { Object *ob = t->obedit?t->obedit:t->poseobj; mul_m4_v3(ob->obmat, iloc); } @@ -296,8 +290,7 @@ void applyProject(TransInfo *t) project_float(t->ar, iloc, mval); - if (snapObjectsTransform(t, mval, &dist, loc, no, t->tsnap.modeSelect)) - { + if (snapObjectsTransform(t, mval, &dist, loc, no, t->tsnap.modeSelect)) { // if (t->flag & (T_EDIT|T_POSE)) { // mul_m4_v3(imat, loc); // } @@ -320,8 +313,7 @@ void applySnapping(TransInfo *t, float *vec) if (t->tsnap.project) return; - if (t->tsnap.status & SNAP_FORCED) - { + if (t->tsnap.status & SNAP_FORCED) { t->tsnap.targetSnap(t); t->tsnap.applySnap(t, vec); @@ -331,15 +323,13 @@ void applySnapping(TransInfo *t, float *vec) // Time base quirky code to go around findnearest slowness /* !TODO! add exception for object mode, no need to slow it down then */ - if (current - t->tsnap.last >= 0.01) - { + if (current - t->tsnap.last >= 0.01) { t->tsnap.calcSnap(t, vec); t->tsnap.targetSnap(t); t->tsnap.last = current; } - if (validSnap(t)) - { + if (validSnap(t)) { t->tsnap.applySnap(t, vec); } } @@ -368,10 +358,8 @@ int usingSnappingNormal(TransInfo *t) int validSnappingNormal(TransInfo *t) { - if (validSnap(t)) - { - if (dot_v3v3(t->tsnap.snapNormal, t->tsnap.snapNormal) > 0) - { + if (validSnap(t)) { + if (dot_v3v3(t->tsnap.snapNormal, t->tsnap.snapNormal) > 0) { return 1; } } @@ -439,38 +427,31 @@ void initSnapping(TransInfo *t, wmOperator *op) resetSnapping(t); /* if snap property exists */ - if (op && RNA_struct_find_property(op->ptr, "snap") && RNA_struct_property_is_set(op->ptr, "snap")) - { - if (RNA_boolean_get(op->ptr, "snap")) - { + if (op && RNA_struct_find_property(op->ptr, "snap") && RNA_struct_property_is_set(op->ptr, "snap")) { + if (RNA_boolean_get(op->ptr, "snap")) { t->modifiers |= MOD_SNAP; - if (RNA_struct_property_is_set(op->ptr, "snap_target")) - { + if (RNA_struct_property_is_set(op->ptr, "snap_target")) { snap_target = RNA_enum_get(op->ptr, "snap_target"); } - if (RNA_struct_property_is_set(op->ptr, "snap_point")) - { + if (RNA_struct_property_is_set(op->ptr, "snap_point")) { RNA_float_get_array(op->ptr, "snap_point", t->tsnap.snapPoint); t->tsnap.status |= SNAP_FORCED|POINT_INIT; } /* snap align only defined in specific cases */ - if (RNA_struct_find_property(op->ptr, "snap_align")) - { + if (RNA_struct_find_property(op->ptr, "snap_align")) { t->tsnap.align = RNA_boolean_get(op->ptr, "snap_align"); RNA_float_get_array(op->ptr, "snap_normal", t->tsnap.snapNormal); normalize_v3(t->tsnap.snapNormal); } - if (RNA_struct_find_property(op->ptr, "use_snap_project")) - { + if (RNA_struct_find_property(op->ptr, "use_snap_project")) { t->tsnap.project = RNA_boolean_get(op->ptr, "use_snap_project"); } - if (RNA_struct_find_property(op->ptr, "use_snap_self")) - { + if (RNA_struct_find_property(op->ptr, "use_snap_self")) { t->tsnap.snap_self = RNA_boolean_get(op->ptr, "use_snap_self"); } } @@ -498,8 +479,7 @@ static void setSnappingCallback(TransInfo *t) { t->tsnap.calcSnap = CalcSnapGeometry; - switch(t->tsnap.target) - { + switch (t->tsnap.target) { case SCE_SNAP_TARGET_CLOSEST: t->tsnap.targetSnap = TargetSnapClosest; break; @@ -515,8 +495,7 @@ static void setSnappingCallback(TransInfo *t) } - switch (t->mode) - { + switch (t->mode) { case TFM_TRANSLATION: t->tsnap.applySnap = ApplySnapTranslation; t->tsnap.distance = TranslationBetween; @@ -766,8 +745,7 @@ static void UNUSED_FUNCTION(CalcSnapGrid)(TransInfo *t, float *UNUSED(vec)) static void CalcSnapGeometry(TransInfo *t, float *UNUSED(vec)) { - if (t->spacetype == SPACE_VIEW3D) - { + if (t->spacetype == SPACE_VIEW3D) { float loc[3]; float no[3]; float mval[2]; @@ -777,8 +755,7 @@ static void CalcSnapGeometry(TransInfo *t, float *UNUSED(vec)) mval[0] = t->mval[0]; mval[1] = t->mval[1]; - if (t->tsnap.mode == SCE_SNAP_MODE_VOLUME) - { + if (t->tsnap.mode == SCE_SNAP_MODE_VOLUME) { ListBase depth_peels; DepthPeel *p1, *p2; float *last_p = NULL; @@ -799,10 +776,8 @@ static void CalcSnapGeometry(TransInfo *t, float *UNUSED(vec)) // } - for (p1 = depth_peels.first; p1; p1 = p1->next) - { - if (p1->flag == 0) - { + for (p1 = depth_peels.first; p1; p1 = p1->next) { + if (p1->flag == 0) { float vec[3]; float new_dist; @@ -810,13 +785,10 @@ static void CalcSnapGeometry(TransInfo *t, float *UNUSED(vec)) p1->flag = 1; /* if peeling objects, take the first and last from each object */ - if (t->settings->snap_flag & SCE_SNAP_PEEL_OBJECT) - { + if (t->settings->snap_flag & SCE_SNAP_PEEL_OBJECT) { DepthPeel *peel; - for (peel = p1->next; peel; peel = peel->next) - { - if (peel->ob == p1->ob) - { + for (peel = p1->next; peel; peel = peel->next) { + if (peel->ob == p1->ob) { peel->flag = 1; p2 = peel; } @@ -824,8 +796,7 @@ static void CalcSnapGeometry(TransInfo *t, float *UNUSED(vec)) } /* otherwise, pair first with second and so on */ else { - for (p2 = p1->next; p2 && p2->ob != p1->ob; p2 = p2->next) - { + for (p2 = p1->next; p2 && p2->ob != p1->ob; p2 = p2->next) { /* nothing to do here */ } } @@ -839,9 +810,8 @@ static void CalcSnapGeometry(TransInfo *t, float *UNUSED(vec)) else { copy_v3_v3(vec, p1->p); } - - if (last_p == NULL) - { + + if (last_p == NULL) { copy_v3_v3(p, vec); max_dist = 0; break; @@ -856,8 +826,7 @@ static void CalcSnapGeometry(TransInfo *t, float *UNUSED(vec)) } } - if (max_dist != FLT_MAX) - { + if (max_dist != FLT_MAX) { copy_v3_v3(loc, p); /* XXX, is there a correct normal in this case ???, for now just z up */ no[0]= 0.0; @@ -878,8 +847,7 @@ static void CalcSnapGeometry(TransInfo *t, float *UNUSED(vec)) sub_v3_v3v3(tangent, loc, t->tsnap.snapPoint); tangent[2] = 0; - if (dot_v3v3(tangent, tangent) > 0) - { + if (dot_v3v3(tangent, tangent) > 0) { copy_v3_v3(t->tsnap.snapTangent, tangent); } @@ -899,8 +867,7 @@ static void CalcSnapGeometry(TransInfo *t, float *UNUSED(vec)) UI_view2d_region_to_view(&t->ar->v2d, t->mval[0], t->mval[1], co, co+1); - if (ED_uvedit_nearest_uv(t->scene, t->obedit, ima, co, t->tsnap.snapPoint)) - { + if (ED_uvedit_nearest_uv(t->scene, t->obedit, ima, co, t->tsnap.snapPoint)) { ED_space_image_uv_aspect(t->sa->spacedata.first, &aspx, &aspy); t->tsnap.snapPoint[0] *= aspx; t->tsnap.snapPoint[1] *= aspy; @@ -917,9 +884,8 @@ static void CalcSnapGeometry(TransInfo *t, float *UNUSED(vec)) static void TargetSnapCenter(TransInfo *t) { - // Only need to calculate once - if ((t->tsnap.status & TARGET_INIT) == 0) - { + /* Only need to calculate once */ + if ((t->tsnap.status & TARGET_INIT) == 0) { copy_v3_v3(t->tsnap.snapTarget, t->center); if (t->flag & (T_EDIT|T_POSE)) { Object *ob= t->obedit?t->obedit:t->poseobj; @@ -932,24 +898,20 @@ static void TargetSnapCenter(TransInfo *t) static void TargetSnapActive(TransInfo *t) { - // Only need to calculate once - if ((t->tsnap.status & TARGET_INIT) == 0) - { + /* Only need to calculate once */ + if ((t->tsnap.status & TARGET_INIT) == 0) { TransData *td = NULL; TransData *active_td = NULL; int i; - for (td = t->data, i = 0 ; i < t->total && td->flag & TD_SELECTED ; i++, td++) - { - if (td->flag & TD_ACTIVE) - { + for (td = t->data, i = 0 ; i < t->total && td->flag & TD_SELECTED ; i++, td++) { + if (td->flag & TD_ACTIVE) { active_td = td; break; } } - if (active_td) - { + if (active_td) { copy_v3_v3(t->tsnap.snapTarget, active_td->center); if (t->flag & (T_EDIT|T_POSE)) { @@ -971,8 +933,7 @@ static void TargetSnapActive(TransInfo *t) static void TargetSnapMedian(TransInfo *t) { // Only need to calculate once - if ((t->tsnap.status & TARGET_INIT) == 0) - { + if ((t->tsnap.status & TARGET_INIT) == 0) { TransData *td = NULL; int i; @@ -980,8 +941,7 @@ static void TargetSnapMedian(TransInfo *t) t->tsnap.snapTarget[1] = 0; t->tsnap.snapTarget[2] = 0; - for (td = t->data, i = 0 ; i < t->total && td->flag & TD_SELECTED ; i++, td++) - { + for (td = t->data, i = 0 ; i < t->total && td->flag & TD_SELECTED ; i++, td++) { add_v3_v3(t->tsnap.snapTarget, td->center); } @@ -999,21 +959,17 @@ static void TargetSnapMedian(TransInfo *t) static void TargetSnapClosest(TransInfo *t) { // Only valid if a snap point has been selected - if (t->tsnap.status & POINT_INIT) - { + if (t->tsnap.status & POINT_INIT) { TransData *closest = NULL, *td = NULL; /* Object mode */ - if (t->flag & T_OBJECT) - { + if (t->flag & T_OBJECT) { int i; - for (td = t->data, i = 0 ; i < t->total && td->flag & TD_SELECTED ; i++, td++) - { + for (td = t->data, i = 0 ; i < t->total && td->flag & TD_SELECTED ; i++, td++) { struct BoundBox *bb = object_get_boundbox(td->ob); /* use boundbox if possible */ - if (bb) - { + if (bb) { int j; for (j = 0; j < 8; j++) { @@ -1041,8 +997,7 @@ static void TargetSnapClosest(TransInfo *t) dist = t->tsnap.distance(t, loc, t->tsnap.snapPoint); - if (closest == NULL || fabs(dist) < fabs(t->tsnap.dist)) - { + if (closest == NULL || fabs(dist) < fabs(t->tsnap.dist)) { copy_v3_v3(t->tsnap.snapTarget, loc); closest = td; t->tsnap.dist = dist; @@ -1065,8 +1020,7 @@ static void TargetSnapClosest(TransInfo *t) dist = t->tsnap.distance(t, loc, t->tsnap.snapPoint); - if (closest == NULL || fabs(dist) < fabs(t->tsnap.dist)) - { + if (closest == NULL || fabs(dist) < fabs(t->tsnap.dist)) { copy_v3_v3(t->tsnap.snapTarget, loc); closest = td; t->tsnap.dist = dist; @@ -1112,8 +1066,7 @@ static int snapFace(ARegion *ar, float v1co[3], float v2co[3], float v3co[3], fl project_int(ar, location, screen_loc); new_dist = abs(screen_loc[0] - (int)mval[0]) + abs(screen_loc[1] - (int)mval[1]); - if (new_dist <= *dist && new_depth < *depth) - { + if (new_dist <= *dist && new_depth < *depth) { *depth = new_depth; retval = 1; @@ -1145,8 +1098,7 @@ static int snapEdge(ARegion *ar, float v1co[3], short v1no[3], float v2co[3], sh result = isect_line_line_v3(v1co, v2co, ray_start_local, ray_end, intersect, dvec); /* dvec used but we don't care about result */ - if (result) - { + if (result) { float edge_loc[3], vec[3]; float mul; @@ -1167,8 +1119,7 @@ static int snapEdge(ARegion *ar, float v1co[3], short v1no[3], float v2co[3], sh copy_v3_v3(intersect, v2co); } - if (dot_v3v3(ray_normal_local, dvec) > 0) - { + if (dot_v3v3(ray_normal_local, dvec) > 0) { float location[3]; float new_depth; int screen_loc[2]; @@ -1187,8 +1138,7 @@ static int snapEdge(ARegion *ar, float v1co[3], short v1no[3], float v2co[3], sh * this takes care of series of connected edges a bit slanted w.r.t the viewport * otherwise, it would stick to the verts of the closest edge and not slide along merrily * */ - if (new_dist <= *r_dist && new_depth < *r_depth * 1.001f) - { + if (new_dist <= *r_dist && new_depth < *r_depth * 1.001f) { float n1[3], n2[3]; *r_depth = new_depth; @@ -1199,8 +1149,7 @@ static int snapEdge(ARegion *ar, float v1co[3], short v1no[3], float v2co[3], sh mul = dot_v3v3(vec, edge_loc) / dot_v3v3(edge_loc, edge_loc); - if (r_no) - { + if (r_no) { normal_short_to_float_v3(n1, v1no); normal_short_to_float_v3(n2, v2no); interp_v3_v3v3(r_no, n2, n1, mul); @@ -1227,8 +1176,7 @@ static int snapVertex(ARegion *ar, float vco[3], short vno[3], float obmat[][4], sub_v3_v3v3(dvec, vco, ray_start_local); - if (dot_v3v3(ray_normal_local, dvec) > 0) - { + if (dot_v3v3(ray_normal_local, dvec) > 0) { float location[3]; float new_depth; int screen_loc[2]; @@ -1243,15 +1191,13 @@ static int snapVertex(ARegion *ar, float vco[3], short vno[3], float obmat[][4], project_int(ar, location, screen_loc); new_dist = abs(screen_loc[0] - (int)mval[0]) + abs(screen_loc[1] - (int)mval[1]); - if (new_dist <= *r_dist && new_depth < *r_depth) - { + if (new_dist <= *r_dist && new_depth < *r_depth) { *r_depth = new_depth; retval = 1; copy_v3_v3(r_loc, location); - if (r_no) - { + if (r_no) { normal_short_to_float_v3(r_no, vno); mul_m3_v3(timat, r_no); normalize_v3(r_no); @@ -1280,16 +1226,14 @@ static int snapArmature(short snap_mode, ARegion *ar, Object *ob, bArmature *arm mul_m4_v3(imat, ray_start_local); mul_mat3_m4_v3(imat, ray_normal_local); - if (arm->edbo) - { + if (arm->edbo) { EditBone *eBone; for (eBone=arm->edbo->first; eBone; eBone=eBone->next) { if (eBone->layer & arm->layer) { /* skip hidden or moving (selected) bones */ if ((eBone->flag & (BONE_HIDDEN_A|BONE_ROOTSEL|BONE_TIPSEL))==0) { - switch (snap_mode) - { + switch (snap_mode) { case SCE_SNAP_MODE_VERTEX: retval |= snapVertex(ar, eBone->head, NULL, obmat, NULL, ray_start, ray_start_local, ray_normal_local, mval, r_loc, NULL, r_dist, r_depth); retval |= snapVertex(ar, eBone->tail, NULL, obmat, NULL, ray_start, ray_start_local, ray_normal_local, mval, r_loc, NULL, r_dist, r_depth); @@ -1313,8 +1257,7 @@ static int snapArmature(short snap_mode, ARegion *ar, Object *ob, bArmature *arm float *head_vec = pchan->pose_head; float *tail_vec = pchan->pose_tail; - switch (snap_mode) - { + switch (snap_mode) { case SCE_SNAP_MODE_VERTEX: retval |= snapVertex(ar, head_vec, NULL, obmat, NULL, ray_start, ray_start_local, ray_normal_local, mval, r_loc, NULL, r_dist, r_depth); retval |= snapVertex(ar, tail_vec, NULL, obmat, NULL, ray_start, ray_start_local, ray_normal_local, mval, r_loc, NULL, r_dist, r_depth); @@ -1366,8 +1309,7 @@ static int snapDerivedMesh(short snap_mode, ARegion *ar, Object *ob, DerivedMesh if (test == 1) { - switch (snap_mode) - { + switch (snap_mode) { case SCE_SNAP_MODE_FACE: { #ifdef USE_BVH_FACE_SNAP // Added for durian @@ -1383,8 +1325,7 @@ static int snapDerivedMesh(short snap_mode, ARegion *ar, Object *ob, DerivedMesh hit.index = -1; hit.dist = *r_depth * (*r_depth == FLT_MAX ? 1.0f : local_scale); - if (treeData.tree && BLI_bvhtree_ray_cast(treeData.tree, ray_start_local, ray_normal_local, 0.0f, &hit, treeData.raycast_callback, &treeData) != -1) - { + if (treeData.tree && BLI_bvhtree_ray_cast(treeData.tree, ray_start_local, ray_normal_local, 0.0f, &hit, treeData.raycast_callback, &treeData) != -1) { if (hit.dist/local_scale <= *r_depth) { *r_depth= hit.dist/local_scale; copy_v3_v3(r_loc, hit.co); @@ -1409,8 +1350,7 @@ static int snapDerivedMesh(short snap_mode, ARegion *ar, Object *ob, DerivedMesh int index = 0; int i; - if (em != NULL) - { + if (em != NULL) { index_array = dm->getTessFaceDataArray(dm, CD_ORIGINDEX); EDBM_index_arrays_init(em, 0, 0, 1); } @@ -1421,8 +1361,7 @@ static int snapDerivedMesh(short snap_mode, ARegion *ar, Object *ob, DerivedMesh test = 1; /* reset for every face */ - if (em != NULL) - { + if (em != NULL) { if (index_array) { index = index_array[i]; } @@ -1436,8 +1375,7 @@ static int snapDerivedMesh(short snap_mode, ARegion *ar, Object *ob, DerivedMesh else { efa = EDBM_face_at_index(em, index); - if (efa && BM_elem_flag_test(efa, BM_ELEM_HIDDEN)) - { + if (efa && BM_elem_flag_test(efa, BM_ELEM_HIDDEN)) { test = 0; } else if (efa) { @@ -1456,28 +1394,24 @@ static int snapDerivedMesh(short snap_mode, ARegion *ar, Object *ob, DerivedMesh } - if (test) - { + if (test) { int result; float *v4co = NULL; - if (f->v4) - { + if (f->v4) { v4co = verts[f->v4].co; } result = snapFace(ar, verts[f->v1].co, verts[f->v2].co, verts[f->v3].co, v4co, mval, ray_start, ray_start_local, ray_normal_local, obmat, timat, loc, no, dist, depth); retval |= result; - if (f->v4 && result == 0) - { + if (f->v4 && result == 0) { retval |= snapFace(ar, verts[f->v3].co, verts[f->v4].co, verts[f->v1].co, verts[f->v2].co, mval, ray_start, ray_start_local, ray_normal_local, obmat, timat, loc, no, dist, depth); } } } - if (em != NULL) - { + if (em != NULL) { EDBM_index_arrays_free(em); } #endif @@ -1490,8 +1424,7 @@ static int snapDerivedMesh(short snap_mode, ARegion *ar, Object *ob, DerivedMesh int index = 0; int i; - if (em != NULL) - { + if (em != NULL) { index_array = dm->getVertDataArray(dm, CD_ORIGINDEX); EDBM_index_arrays_init(em, 1, 0, 0); } @@ -1516,22 +1449,19 @@ static int snapDerivedMesh(short snap_mode, ARegion *ar, Object *ob, DerivedMesh else { eve = EDBM_vert_at_index(em, index); - if (eve && (BM_elem_flag_test(eve, BM_ELEM_HIDDEN) || BM_elem_flag_test(eve, BM_ELEM_SELECT))) - { + if (eve && (BM_elem_flag_test(eve, BM_ELEM_HIDDEN) || BM_elem_flag_test(eve, BM_ELEM_SELECT))) { test = 0; } } } - if (test) - { + if (test) { retval |= snapVertex(ar, v->co, v->no, obmat, timat, ray_start, ray_start_local, ray_normal_local, mval, r_loc, r_no, r_dist, r_depth); } } - if (em != NULL) - { + if (em != NULL) { EDBM_index_arrays_free(em); } break; @@ -1545,8 +1475,7 @@ static int snapDerivedMesh(short snap_mode, ARegion *ar, Object *ob, DerivedMesh int index = 0; int i; - if (em != NULL) - { + if (em != NULL) { index_array = dm->getEdgeDataArray(dm, CD_ORIGINDEX); EDBM_index_arrays_init(em, 0, 1, 0); } @@ -1557,8 +1486,7 @@ static int snapDerivedMesh(short snap_mode, ARegion *ar, Object *ob, DerivedMesh test = 1; /* reset for every vert */ - if (em != NULL) - { + if (em != NULL) { if (index_array) { index = index_array[i]; } @@ -1580,16 +1508,13 @@ static int snapDerivedMesh(short snap_mode, ARegion *ar, Object *ob, DerivedMesh } } } - - - if (test) - { + + if (test) { retval |= snapEdge(ar, verts[e->v1].co, verts[e->v1].no, verts[e->v2].co, verts[e->v2].no, obmat, timat, ray_start, ray_start_local, ray_normal_local, mval, r_loc, r_no, r_dist, r_depth); } } - if (em != NULL) - { + if (em != NULL) { EDBM_index_arrays_free(em); } break; @@ -1673,8 +1598,7 @@ static int snapObjects(Scene *scene, View3D *v3d, ARegion *ar, Object *obedit, c DupliObject *dupli_ob; ListBase *lb = object_duplilist(scene, ob); - for (dupli_ob = lb->first; dupli_ob; dupli_ob = dupli_ob->next) - { + for (dupli_ob = lb->first; dupli_ob; dupli_ob = dupli_ob->next) { Object *dob = dupli_ob->ob; retval |= snapObject(scene, ar, dob, 0, dupli_ob->mat, ray_start, ray_normal, mval, r_loc, r_no, r_dist, &depth); @@ -1726,8 +1650,7 @@ static void removeDoublesPeel(ListBase *depth_peels) { DepthPeel *peel; - for (peel = depth_peels->first; peel; peel = peel->next) - { + for (peel = depth_peels->first; peel; peel = peel->next) { DepthPeel *next_peel = peel->next; if (next_peel && ABS(peel->depth - next_peel->depth) < 0.0015f) { @@ -1881,8 +1804,7 @@ static int peelObjects(Scene *scene, View3D *v3d, ARegion *ar, Object *obedit, L DupliObject *dupli_ob; ListBase *lb = object_duplilist(scene, ob); - for (dupli_ob = lb->first; dupli_ob; dupli_ob = dupli_ob->next) - { + for (dupli_ob = lb->first; dupli_ob; dupli_ob = dupli_ob->next) { Object *dob = dupli_ob->ob; if (dob->type == OB_MESH) { diff --git a/source/blender/editors/util/crazyspace.c b/source/blender/editors/util/crazyspace.c index 4b03c846f3e..5430a9a1c90 100644 --- a/source/blender/editors/util/crazyspace.c +++ b/source/blender/editors/util/crazyspace.c @@ -187,75 +187,6 @@ void crazyspace_set_quats_editmesh(BMEditMesh *em, float *origcos, float *mapped em->bm->elem_index_dirty |= BM_VERT; MEM_freeN(vert_table); -#if 0 - BMEditVert *eve, *prev; - BMEditFace *efa; - BMIter iter; - float *v1, *v2, *v3, *v4, *co1, *co2, *co3, *co4; - intptr_t index = 0; - - /* two abused locations in vertices */ - for (eve = em->verts.first; eve; eve = eve->next, index++) { - eve->tmp.p = NULL; - eve->prev = (EditVert *)index; - } - - /* first store two sets of tangent vectors in vertices, we derive it just from the face-edges */ - for (efa = em->faces.first; efa; efa = efa->next) { - - /* retrieve mapped coordinates */ - v1 = mappedcos + 3 * (intptr_t)(efa->v1->prev); - v2 = mappedcos + 3 * (intptr_t)(efa->v2->prev); - v3 = mappedcos + 3 * (intptr_t)(efa->v3->prev); - - co1 = (origcos) ? origcos + 3 * (intptr_t)(efa->v1->prev) : efa->v1->co; - co2 = (origcos) ? origcos + 3 * (intptr_t)(efa->v2->prev) : efa->v2->co; - co3 = (origcos) ? origcos + 3 * (intptr_t)(efa->v3->prev) : efa->v3->co; - - if (efa->v2->tmp.p == NULL && efa->v2->f1) { - set_crazy_vertex_quat(quats, co2, co3, co1, v2, v3, v1); - efa->v2->tmp.p = (void *)quats; - quats += 4; - } - - if (efa->v4) { - v4 = mappedcos + 3 * (intptr_t)(efa->v4->prev); - co4 = (origcos) ? origcos + 3 * (intptr_t)(efa->v4->prev) : efa->v4->co; - - if (efa->v1->tmp.p == NULL && efa->v1->f1) { - set_crazy_vertex_quat(quats, co1, co2, co4, v1, v2, v4); - efa->v1->tmp.p = (void *)quats; - quats += 4; - } - if (efa->v3->tmp.p == NULL && efa->v3->f1) { - set_crazy_vertex_quat(quats, co3, co4, co2, v3, v4, v2); - efa->v3->tmp.p = (void *)quats; - quats += 4; - } - if (efa->v4->tmp.p == NULL && efa->v4->f1) { - set_crazy_vertex_quat(quats, co4, co1, co3, v4, v1, v3); - efa->v4->tmp.p = (void *)quats; - quats += 4; - } - } - else { - if (efa->v1->tmp.p == NULL && efa->v1->f1) { - set_crazy_vertex_quat(quats, co1, co2, co3, v1, v2, v3); - efa->v1->tmp.p = (void *)quats; - quats += 4; - } - if (efa->v3->tmp.p == NULL && efa->v3->f1) { - set_crazy_vertex_quat(quats, co3, co1, co2, v3, v1, v2); - efa->v3->tmp.p = (void *)quats; - quats += 4; - } - } - } - - /* restore abused prev pointer */ - for (prev = NULL, eve = em->verts.first; eve; prev = eve, eve = eve->next) - eve->prev = prev; -#endif } /* BMESH_TODO - use MPolys over MFace's */ diff --git a/source/blender/editors/util/numinput.c b/source/blender/editors/util/numinput.c index c037508687b..1f1d5a0c0c0 100644 --- a/source/blender/editors/util/numinput.c +++ b/source/blender/editors/util/numinput.c @@ -207,8 +207,7 @@ char handleNumInput(NumInput *n, wmEvent *event) if (n->flag & NUM_NO_FRACTION) return 0; - switch (n->ctrl[idx]) - { + switch (n->ctrl[idx]) { case 0: case 1: n->ctrl[idx] = 10; diff --git a/source/blender/editors/util/undo.c b/source/blender/editors/util/undo.c index a43d549cba1..cd88614f8fe 100644 --- a/source/blender/editors/util/undo.c +++ b/source/blender/editors/util/undo.c @@ -155,7 +155,7 @@ static int ed_undo_step(bContext *C, int step, const char *undoname) ED_text_undo_step(C, step); } else if (obedit) { - if (ELEM7(obedit->type, OB_MESH, OB_FONT, OB_CURVE, OB_SURF, OB_MBALL, OB_LATTICE, OB_ARMATURE)) { + if (OB_TYPE_SUPPORT_EDITMODE(obedit->type)) { if (undoname) undo_editmode_name(C, undoname); else @@ -247,7 +247,7 @@ int ED_undo_valid(const bContext *C, const char *undoname) return 1; } else if (obedit) { - if (ELEM7(obedit->type, OB_MESH, OB_FONT, OB_CURVE, OB_SURF, OB_MBALL, OB_LATTICE, OB_ARMATURE)) { + if (OB_TYPE_SUPPORT_EDITMODE(obedit->type)) { return undo_editmode_valid(undoname); } } @@ -413,9 +413,11 @@ void ED_undo_operator_repeat_cb_evt(bContext *C, void *arg_op, int UNUSED(arg_ev /* ************************** */ -#define UNDOSYSTEM_GLOBAL 1 -#define UNDOSYSTEM_EDITMODE 2 -#define UNDOSYSTEM_PARTICLE 3 +enum { + UNDOSYSTEM_GLOBAL = 1, + UNDOSYSTEM_EDITMODE = 2, + UNDOSYSTEM_PARTICLE = 3 +}; static int get_undo_system(bContext *C) { @@ -423,8 +425,9 @@ static int get_undo_system(bContext *C) /* find out which undo system */ if (obedit) { - if (ELEM7(obedit->type, OB_MESH, OB_FONT, OB_CURVE, OB_SURF, OB_MBALL, OB_LATTICE, OB_ARMATURE)) + if (OB_TYPE_SUPPORT_EDITMODE(obedit->type)) { return UNDOSYSTEM_EDITMODE; + } } else { Object *obact = CTX_data_active_object(C); diff --git a/source/blender/editors/uvedit/uvedit_buttons.c b/source/blender/editors/uvedit/uvedit_buttons.c index 394b8952a13..ec645f86848 100644 --- a/source/blender/editors/uvedit/uvedit_buttons.c +++ b/source/blender/editors/uvedit/uvedit_buttons.c @@ -74,12 +74,12 @@ static int uvedit_center(Scene *scene, BMEditMesh *em, Image *ima, float center[ zero_v2(center); BM_ITER_MESH (f, &iter, em->bm, BM_FACES_OF_MESH) { tf = CustomData_bmesh_get(&em->bm->pdata, f->head.data, CD_MTEXPOLY); - if (!uvedit_face_visible(scene, ima, f, tf)) + if (!uvedit_face_visible_test(scene, ima, f, tf)) continue; BM_ITER_ELEM (l, &liter, f, BM_LOOPS_OF_FACE) { luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV); - if (uvedit_uv_selected(em, scene, l)) { + if (uvedit_uv_select_test(em, scene, l)) { add_v2_v2(center, luv->uv); tot++; } @@ -104,7 +104,7 @@ static void uvedit_translate(Scene *scene, BMEditMesh *em, Image *UNUSED(ima), f BM_ITER_MESH (f, &iter, em->bm, BM_FACES_OF_MESH) { BM_ITER_ELEM (l, &liter, f, BM_LOOPS_OF_FACE) { luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV); - if (uvedit_uv_selected(em, scene, l)) { + if (uvedit_uv_select_test(em, scene, l)) { add_v2_v2(luv->uv, delta); } } diff --git a/source/blender/editors/uvedit/uvedit_draw.c b/source/blender/editors/uvedit/uvedit_draw.c index 9084e5770ed..fb7e2254e45 100644 --- a/source/blender/editors/uvedit/uvedit_draw.c +++ b/source/blender/editors/uvedit/uvedit_draw.c @@ -186,8 +186,8 @@ static void draw_uvs_stretch(SpaceImage *sima, Scene *scene, BMEditMesh *em, MTe BLI_array_empty(tf_uv); BLI_array_empty(tf_uvorig); - BLI_array_growitems(tf_uv, efa->len); - BLI_array_growitems(tf_uvorig, efa->len); + BLI_array_grow_items(tf_uv, efa->len); + BLI_array_grow_items(tf_uvorig, efa->len); i = 0; BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { @@ -198,13 +198,13 @@ static void draw_uvs_stretch(SpaceImage *sima, Scene *scene, BMEditMesh *em, MTe i++; } - poly_copy_aspect(tf_uvorig, tf_uv, aspx, aspy, efa->len); + uv_poly_copy_aspect(tf_uvorig, tf_uv, aspx, aspy, efa->len); totarea += BM_face_calc_area(efa); //totuvarea += tf_area(tf, efa->v4!=0); - totuvarea += poly_uv_area(tf_uv, efa->len); + totuvarea += uv_poly_area(tf_uv, efa->len); - if (uvedit_face_visible(scene, ima, efa, tf)) { + if (uvedit_face_visible_test(scene, ima, efa, tf)) { BM_elem_flag_enable(efa, BM_ELEM_TAG); } else { @@ -236,8 +236,8 @@ static void draw_uvs_stretch(SpaceImage *sima, Scene *scene, BMEditMesh *em, MTe BLI_array_empty(tf_uv); BLI_array_empty(tf_uvorig); - BLI_array_growitems(tf_uv, efa->len); - BLI_array_growitems(tf_uvorig, efa->len); + BLI_array_grow_items(tf_uv, efa->len); + BLI_array_grow_items(tf_uvorig, efa->len); i = 0; BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { @@ -248,10 +248,10 @@ static void draw_uvs_stretch(SpaceImage *sima, Scene *scene, BMEditMesh *em, MTe i++; } - poly_copy_aspect(tf_uvorig, tf_uv, aspx, aspy, efa->len); + uv_poly_copy_aspect(tf_uvorig, tf_uv, aspx, aspy, efa->len); //uvarea = tf_area(tf, efa->v4!=0) / totuvarea; - uvarea = poly_uv_area(tf_uv, efa->len) / totuvarea; + uvarea = uv_poly_area(tf_uv, efa->len) / totuvarea; if (area < FLT_EPSILON || uvarea < FLT_EPSILON) areadiff = 1.0f; @@ -294,7 +294,7 @@ static void draw_uvs_stretch(SpaceImage *sima, Scene *scene, BMEditMesh *em, MTe BM_ITER_MESH (efa, &iter, bm, BM_FACES_OF_MESH) { tf = CustomData_bmesh_get(&bm->pdata, efa->head.data, CD_MTEXPOLY); - if (uvedit_face_visible(scene, ima, efa, tf)) { + if (uvedit_face_visible_test(scene, ima, efa, tf)) { nverts = efa->len; BM_elem_flag_enable(efa, BM_ELEM_TAG); BLI_array_empty(tf_uv); @@ -303,19 +303,19 @@ static void draw_uvs_stretch(SpaceImage *sima, Scene *scene, BMEditMesh *em, MTe BLI_array_empty(ang); BLI_array_empty(av); BLI_array_empty(auv); - BLI_array_growitems(tf_uv, nverts); - BLI_array_growitems(tf_uvorig, nverts); - BLI_array_growitems(uvang, nverts); - BLI_array_growitems(ang, nverts); - BLI_array_growitems(av, nverts); - BLI_array_growitems(auv, nverts); + BLI_array_grow_items(tf_uv, nverts); + BLI_array_grow_items(tf_uvorig, nverts); + BLI_array_grow_items(uvang, nverts); + BLI_array_grow_items(ang, nverts); + BLI_array_grow_items(av, nverts); + BLI_array_grow_items(auv, nverts); BM_ITER_ELEM_INDEX (l, &liter, efa, BM_LOOPS_OF_FACE, i) { luv = CustomData_bmesh_get(&bm->ldata, l->head.data, CD_MLOOPUV); copy_v2_v2(tf_uvorig[i], luv->uv); } - poly_copy_aspect(tf_uvorig, tf_uv, aspx, aspy, nverts); + uv_poly_copy_aspect(tf_uvorig, tf_uv, aspx, aspy, nverts); j = nverts - 1; BM_ITER_ELEM_INDEX (l, &liter, efa, BM_LOOPS_OF_FACE, i) { @@ -506,11 +506,11 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit) BM_ITER_MESH (efa, &iter, bm, BM_FACES_OF_MESH) { tf = CustomData_bmesh_get(&bm->pdata, efa->head.data, CD_MTEXPOLY); - if (uvedit_face_visible(scene, ima, efa, tf)) { + if (uvedit_face_visible_test(scene, ima, efa, tf)) { BM_elem_flag_enable(efa, BM_ELEM_TAG); if (tf == activetf) continue; /* important the temp boolean is set above */ - if (uvedit_face_selected(scene, em, efa)) + if (uvedit_face_select_test(scene, em, efa)) glColor4ubv((GLubyte *)col2); else glColor4ubv((GLubyte *)col1); @@ -536,7 +536,7 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit) BM_ITER_MESH (efa, &iter, bm, BM_FACES_OF_MESH) { tf = CustomData_bmesh_get(&bm->pdata, efa->head.data, CD_MTEXPOLY); - if (uvedit_face_visible(scene, ima, efa, tf)) { + if (uvedit_face_visible_test(scene, ima, efa, tf)) { BM_elem_flag_enable(efa, BM_ELEM_TAG); } else { @@ -552,7 +552,7 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit) if (activef) { tf = CustomData_bmesh_get(&bm->pdata, activef->head.data, CD_MTEXPOLY); - if (uvedit_face_visible(scene, ima, activef, tf)) { + if (uvedit_face_visible_test(scene, ima, activef, tf)) { glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); UI_ThemeColor4(TH_EDITMESH_ACTIVE); @@ -670,7 +670,7 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit) glBegin(GL_LINE_LOOP); BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { - sel = (uvedit_uv_selected(em, scene, l) ? 1 : 0); + sel = (uvedit_uv_select_test(em, scene, l) ? 1 : 0); glColor4ubv(sel ? (GLubyte *)col1 : (GLubyte *)col2); luv = CustomData_bmesh_get(&bm->ldata, l->head.data, CD_MLOOPUV); @@ -688,7 +688,7 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit) glBegin(GL_LINES); BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { - sel = (uvedit_edge_selected(em, scene, l) ? 1 : 0); + sel = (uvedit_edge_select_test(em, scene, l) ? 1 : 0); if (sel != lastsel) { glColor4ubv(sel ? (GLubyte *)col1 : (GLubyte *)col2); lastsel = sel; @@ -741,8 +741,8 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit) if (!BM_elem_flag_test(efa, BM_ELEM_TAG)) continue; - if (!uvedit_face_selected(scene, em, efa)) { - poly_uv_center(em, efa, cent); + if (!uvedit_face_select_test(scene, em, efa)) { + uv_poly_center(em, efa, cent); bglVertex2fv(cent); } } @@ -756,8 +756,8 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit) if (!BM_elem_flag_test(efa, BM_ELEM_TAG)) continue; - if (uvedit_face_selected(scene, em, efa)) { - poly_uv_center(em, efa, cent); + if (uvedit_face_select_test(scene, em, efa)) { + uv_poly_center(em, efa, cent); bglVertex2fv(cent); } } @@ -779,7 +779,7 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit) BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { luv = CustomData_bmesh_get(&bm->ldata, l->head.data, CD_MLOOPUV); - if (!uvedit_uv_selected(em, scene, l)) + if (!uvedit_uv_select_test(em, scene, l)) bglVertex2fv(luv->uv); } } @@ -816,7 +816,7 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit) BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { luv = CustomData_bmesh_get(&bm->ldata, l->head.data, CD_MLOOPUV); - if (uvedit_uv_selected(em, scene, l)) + if (uvedit_uv_select_test(em, scene, l)) bglVertex2fv(luv->uv); } } diff --git a/source/blender/editors/uvedit/uvedit_intern.h b/source/blender/editors/uvedit/uvedit_intern.h index fdcb5db1911..d258d271833 100644 --- a/source/blender/editors/uvedit/uvedit_intern.h +++ b/source/blender/editors/uvedit/uvedit_intern.h @@ -54,14 +54,9 @@ struct BMVert; int uvedit_face_visible_nolocal(struct Scene *scene, struct BMFace *efa); /* geometric utilities */ - -void uv_center(float uv[][2], float cent[2], int quad); -float uv_area(float uv[][2], int quad); -void uv_copy_aspect(float uv_orig[][2], float uv[][2], float aspx, float aspy); - -float poly_uv_area(float uv[][2], int len); -void poly_copy_aspect(float uv_orig[][2], float uv[][2], float aspx, float aspy, int len); -void poly_uv_center(struct BMEditMesh *em, struct BMFace *f, float cent[2]); +float uv_poly_area(float uv[][2], int len); +void uv_poly_copy_aspect(float uv_orig [][2], float uv[][2], float aspx, float aspy, int len); +void uv_poly_center(struct BMEditMesh *em, struct BMFace *f, float r_cent[2]); /* find nearest */ @@ -74,8 +69,10 @@ typedef struct NearestHit { int vert1, vert2; //index in mesh of edge vertices } NearestHit; -void uv_find_nearest_vert(struct Scene *scene, struct Image *ima, struct BMEditMesh *em, float co[2], float penalty[2], struct NearestHit *hit); -void uv_find_nearest_edge(struct Scene *scene, struct Image *ima, struct BMEditMesh *em, float co[2], struct NearestHit *hit); +void uv_find_nearest_vert(struct Scene *scene, struct Image *ima, struct BMEditMesh *em, + const float co[2], const float penalty[2], struct NearestHit *hit); +void uv_find_nearest_edge(struct Scene *scene, struct Image *ima, struct BMEditMesh *em, + const float co[2], struct NearestHit *hit); /* utility tool functions */ @@ -120,4 +117,3 @@ void UV_OT_unwrap(struct wmOperatorType *ot); void UV_OT_stitch(struct wmOperatorType *ot); #endif /* __UVEDIT_INTERN_H__ */ - diff --git a/source/blender/editors/uvedit/uvedit_ops.c b/source/blender/editors/uvedit/uvedit_ops.c index c08093e09ee..a30274c0f2c 100644 --- a/source/blender/editors/uvedit/uvedit_ops.c +++ b/source/blender/editors/uvedit/uvedit_ops.c @@ -47,6 +47,7 @@ #include "DNA_scene_types.h" #include "BLI_math.h" +#include "BLI_lasso.h" #include "BLI_blenlib.h" #include "BLI_array.h" #include "BLI_utildefines.h" @@ -82,7 +83,7 @@ #include "uvedit_intern.h" -#define EFA_F1_FLAG 2 +static void select_all_perform(Scene *scene, Image *ima, BMEditMesh *em, int action); /************************* state testing ************************/ @@ -207,7 +208,7 @@ void ED_uvedit_assign_image(Main *bmain, Scene *scene, Object *obedit, Image *im BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { tf = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY); - if (uvedit_face_visible(scene, previma, efa, tf)) { + if (uvedit_face_visible_test(scene, previma, efa, tf)) { if (ima) { tf->tpage = ima; @@ -293,7 +294,7 @@ int uvedit_face_visible_nolocal(Scene *scene, BMFace *efa) return (BM_elem_flag_test(efa, BM_ELEM_HIDDEN) == 0 && BM_elem_flag_test(efa, BM_ELEM_SELECT)); } -int uvedit_face_visible(Scene *scene, Image *ima, BMFace *efa, MTexPoly *tf) +int uvedit_face_visible_test(Scene *scene, Image *ima, BMFace *efa, MTexPoly *tf) { ToolSettings *ts = scene->toolsettings; @@ -303,7 +304,7 @@ int uvedit_face_visible(Scene *scene, Image *ima, BMFace *efa, MTexPoly *tf) return uvedit_face_visible_nolocal(scene, efa); } -int uvedit_face_selected(Scene *scene, BMEditMesh *em, BMFace *efa) +int uvedit_face_select_test(Scene *scene, BMEditMesh *em, BMFace *efa) { ToolSettings *ts = scene->toolsettings; @@ -324,12 +325,16 @@ int uvedit_face_selected(Scene *scene, BMEditMesh *em, BMFace *efa) } } -int uvedit_face_select(Scene *scene, BMEditMesh *em, BMFace *efa) +int uvedit_face_select_enable(Scene *scene, BMEditMesh *em, BMFace *efa, const short do_history) { ToolSettings *ts = scene->toolsettings; - if (ts->uv_flag & UV_SYNC_SELECTION) + if (ts->uv_flag & UV_SYNC_SELECTION) { BM_face_select_set(em->bm, efa, TRUE); + if (do_history) { + BM_select_history_store(em->bm, (BMElem *)efa); + } + } else { BMLoop *l; MLoopUV *luv; @@ -346,7 +351,7 @@ int uvedit_face_select(Scene *scene, BMEditMesh *em, BMFace *efa) return 0; } -int uvedit_face_deselect(Scene *scene, BMEditMesh *em, BMFace *efa) +int uvedit_face_select_disable(Scene *scene, BMEditMesh *em, BMFace *efa) { ToolSettings *ts = scene->toolsettings; @@ -369,7 +374,7 @@ int uvedit_face_deselect(Scene *scene, BMEditMesh *em, BMFace *efa) return 0; } -int uvedit_edge_selected(BMEditMesh *em, Scene *scene, BMLoop *l) +int uvedit_edge_select_test(BMEditMesh *em, Scene *scene, BMLoop *l) { ToolSettings *ts = scene->toolsettings; @@ -395,7 +400,7 @@ int uvedit_edge_selected(BMEditMesh *em, Scene *scene, BMLoop *l) } } -void uvedit_edge_select(BMEditMesh *em, Scene *scene, BMLoop *l) +void uvedit_edge_select_enable(BMEditMesh *em, Scene *scene, BMLoop *l, const short do_history) { ToolSettings *ts = scene->toolsettings; @@ -409,6 +414,10 @@ void uvedit_edge_select(BMEditMesh *em, Scene *scene, BMLoop *l) BM_vert_select_set(em->bm, l->e->v1, TRUE); BM_vert_select_set(em->bm, l->e->v2, TRUE); } + + if (do_history) { + BM_select_history_store(em->bm, (BMElem *)l->e); + } } else { MLoopUV *luv1, *luv2; @@ -421,7 +430,7 @@ void uvedit_edge_select(BMEditMesh *em, Scene *scene, BMLoop *l) } } -void uvedit_edge_deselect(BMEditMesh *em, Scene *scene, BMLoop *l) +void uvedit_edge_select_disable(BMEditMesh *em, Scene *scene, BMLoop *l) { ToolSettings *ts = scene->toolsettings; @@ -447,7 +456,7 @@ void uvedit_edge_deselect(BMEditMesh *em, Scene *scene, BMLoop *l) } } -int uvedit_uv_selected(BMEditMesh *em, Scene *scene, BMLoop *l) +int uvedit_uv_select_test(BMEditMesh *em, Scene *scene, BMLoop *l) { ToolSettings *ts = scene->toolsettings; @@ -464,7 +473,7 @@ int uvedit_uv_selected(BMEditMesh *em, Scene *scene, BMLoop *l) } } -void uvedit_uv_select(BMEditMesh *em, Scene *scene, BMLoop *l) +void uvedit_uv_select_enable(BMEditMesh *em, Scene *scene, BMLoop *l, const short do_history) { ToolSettings *ts = scene->toolsettings; @@ -473,6 +482,10 @@ void uvedit_uv_select(BMEditMesh *em, Scene *scene, BMLoop *l) BM_face_select_set(em->bm, l->f, TRUE); else BM_vert_select_set(em->bm, l->v, TRUE); + + if (do_history) { + BM_select_history_remove(em->bm, (BMElem *)l->v); + } } else { MLoopUV *luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV); @@ -481,7 +494,7 @@ void uvedit_uv_select(BMEditMesh *em, Scene *scene, BMLoop *l) } } -void uvedit_uv_deselect(BMEditMesh *em, Scene *scene, BMLoop *l) +void uvedit_uv_select_disable(BMEditMesh *em, Scene *scene, BMLoop *l) { ToolSettings *ts = scene->toolsettings; @@ -510,44 +523,23 @@ void uvedit_live_unwrap_update(SpaceImage *sima, Scene *scene, Object *obedit) } /*********************** geometric utilities ***********************/ -void poly_uv_center(BMEditMesh *em, BMFace *f, float cent[2]) +void uv_poly_center(BMEditMesh *em, BMFace *f, float r_cent[2]) { BMLoop *l; MLoopUV *luv; BMIter liter; - zero_v2(cent); + zero_v2(r_cent); BM_ITER_ELEM (l, &liter, f, BM_LOOPS_OF_FACE) { luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV); - add_v2_v2(cent, luv->uv); + add_v2_v2(r_cent, luv->uv); } - mul_v2_fl(cent, 1.0f / (float)f->len); + mul_v2_fl(r_cent, 1.0f / (float)f->len); } - -void uv_center(float uv[][2], float cent[2], int quad) -{ - if (quad) { - cent[0] = (uv[0][0] + uv[1][0] + uv[2][0] + uv[3][0]) / 4.0f; - cent[1] = (uv[0][1] + uv[1][1] + uv[2][1] + uv[3][1]) / 4.0f; - } - else { - cent[0] = (uv[0][0] + uv[1][0] + uv[2][0]) / 3.0f; - cent[1] = (uv[0][1] + uv[1][1] + uv[2][1]) / 3.0f; - } -} - -float uv_area(float uv[][2], int quad) -{ - if (quad) - return area_tri_v2(uv[0], uv[1], uv[2]) + area_tri_v2(uv[0], uv[2], uv[3]); - else - return area_tri_v2(uv[0], uv[1], uv[2]); -} - -float poly_uv_area(float uv[][2], int len) +float uv_poly_area(float uv[][2], int len) { //BMESH_TODO: make this not suck //maybe use scanfill? I dunno. @@ -560,7 +552,7 @@ float poly_uv_area(float uv[][2], int len) return 1.0; } -void poly_copy_aspect(float uv_orig[][2], float uv[][2], float aspx, float aspy, int len) +void uv_poly_copy_aspect(float uv_orig[][2], float uv[][2], float aspx, float aspy, int len) { int i; for (i = 0; i < len; i++) { @@ -569,7 +561,7 @@ void poly_copy_aspect(float uv_orig[][2], float uv[][2], float aspx, float aspy, } } -int ED_uvedit_minmax(Scene *scene, Image *ima, Object *obedit, float *min, float *max) +int ED_uvedit_minmax(Scene *scene, Image *ima, Object *obedit, float r_min[2], float r_max[2]) { BMEditMesh *em = BMEdit_FromObject(obedit); BMFace *efa; @@ -579,18 +571,18 @@ int ED_uvedit_minmax(Scene *scene, Image *ima, Object *obedit, float *min, float MLoopUV *luv; int sel; - INIT_MINMAX2(min, max); + INIT_MINMAX2(r_min, r_max); sel = 0; BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { tf = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY); - if (!uvedit_face_visible(scene, ima, efa, tf)) + if (!uvedit_face_visible_test(scene, ima, efa, tf)) continue; BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { - if (uvedit_uv_selected(em, scene, l)) { + if (uvedit_uv_select_test(em, scene, l)) { luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV); - DO_MINMAX2(luv->uv, min, max); + DO_MINMAX2(luv->uv, r_min, r_max); sel = 1; } } @@ -612,12 +604,12 @@ static int ED_uvedit_median(Scene *scene, Image *ima, Object *obedit, float co[2 zero_v2(co); BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { tf = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY); - if (!uvedit_face_visible(scene, ima, efa, tf)) + if (!uvedit_face_visible_test(scene, ima, efa, tf)) continue; BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV); - if (uvedit_uv_selected(em, scene, l)) { + if (uvedit_uv_select_test(em, scene, l)) { add_v2_v2(co, luv->uv); sel++; } @@ -651,7 +643,7 @@ static int uvedit_center(Scene *scene, Image *ima, Object *obedit, float cent[2] /************************** find nearest ****************************/ -void uv_find_nearest_edge(Scene *scene, Image *ima, BMEditMesh *em, float co[2], NearestHit *hit) +void uv_find_nearest_edge(Scene *scene, Image *ima, BMEditMesh *em, const float co[2], NearestHit *hit) { MTexPoly *tf; BMFace *efa; @@ -668,7 +660,7 @@ void uv_find_nearest_edge(Scene *scene, Image *ima, BMEditMesh *em, float co[2], BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { tf = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY); - if (!uvedit_face_visible(scene, ima, efa, tf)) + if (!uvedit_face_visible_test(scene, ima, efa, tf)) continue; i = 0; @@ -698,13 +690,11 @@ void uv_find_nearest_edge(Scene *scene, Image *ima, BMEditMesh *em, float co[2], } } -static void find_nearest_uv_face(Scene *scene, Image *ima, BMEditMesh *em, float co[2], NearestHit *hit) +static void find_nearest_uv_face(Scene *scene, Image *ima, BMEditMesh *em, const float co[2], NearestHit *hit) { MTexPoly *tf; BMFace *efa; - BMLoop *l; - BMIter iter, liter; - MLoopUV *luv; + BMIter iter; float mindist, dist, cent[2]; mindist = 1e10f; @@ -717,18 +707,11 @@ static void find_nearest_uv_face(Scene *scene, Image *ima, BMEditMesh *em, float BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { tf = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY); - if (!uvedit_face_visible(scene, ima, efa, tf)) + if (!uvedit_face_visible_test(scene, ima, efa, tf)) continue; - - cent[0] = cent[1] = 0.0f; - BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { - luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV); - add_v2_v2(cent, luv->uv); - } + uv_poly_center(em, efa, cent); - cent[0] /= efa->len; - cent[1] /= efa->len; dist = fabs(co[0] - cent[0]) + fabs(co[1] - cent[1]); if (dist < mindist) { @@ -740,7 +723,7 @@ static void find_nearest_uv_face(Scene *scene, Image *ima, BMEditMesh *em, float } static int nearest_uv_between(BMEditMesh *em, BMFace *efa, int UNUSED(nverts), int id, - float co[2], float uv[2]) + const float co[2], const float uv[2]) { BMLoop *l; MLoopUV *luv; @@ -786,7 +769,7 @@ static int nearest_uv_between(BMEditMesh *em, BMFace *efa, int UNUSED(nverts), i } void uv_find_nearest_vert(Scene *scene, Image *ima, BMEditMesh *em, - float co[2], float penalty[2], NearestHit *hit) + float const co[2], const float penalty[2], NearestHit *hit) { BMFace *efa; BMLoop *l; @@ -808,14 +791,14 @@ void uv_find_nearest_vert(Scene *scene, Image *ima, BMEditMesh *em, BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { tf = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY); - if (!uvedit_face_visible(scene, ima, efa, tf)) + if (!uvedit_face_visible_test(scene, ima, efa, tf)) continue; i = 0; BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV); - if (penalty && uvedit_uv_selected(em, scene, l)) + if (penalty && uvedit_uv_select_test(em, scene, l)) dist = fabs(co[0] - luv->uv[0]) + penalty[0] + fabs(co[1] - luv->uv[1]) + penalty[1]; else dist = fabs(co[0] - luv->uv[0]) + fabs(co[1] - luv->uv[1]); @@ -844,7 +827,7 @@ void uv_find_nearest_vert(Scene *scene, Image *ima, BMEditMesh *em, } } -int ED_uvedit_nearest_uv(Scene *scene, Object *obedit, Image *ima, float co[2], float uv[2]) +int ED_uvedit_nearest_uv(Scene *scene, Object *obedit, Image *ima, const float co[2], float r_uv[2]) { BMEditMesh *em = BMEdit_FromObject(obedit); BMFace *efa; @@ -853,15 +836,14 @@ int ED_uvedit_nearest_uv(Scene *scene, Object *obedit, Image *ima, float co[2], MTexPoly *tf; MLoopUV *luv; float mindist, dist; - int found = 0; + int found = FALSE; mindist = 1e10f; - uv[0] = co[0]; - uv[1] = co[1]; + copy_v2_v2(r_uv, co); BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { tf = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY); - if (!uvedit_face_visible(scene, ima, efa, tf)) + if (!uvedit_face_visible_test(scene, ima, efa, tf)) continue; BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { @@ -871,9 +853,8 @@ int ED_uvedit_nearest_uv(Scene *scene, Object *obedit, Image *ima, float co[2], if (dist <= mindist) { mindist = dist; - uv[0] = luv->uv[0]; - uv[1] = luv->uv[1]; - found = 1; + copy_v2_v2(r_uv, luv->uv); + found = TRUE; } } } @@ -881,9 +862,22 @@ int ED_uvedit_nearest_uv(Scene *scene, Object *obedit, Image *ima, float co[2], return found; } +UvElement *ED_uv_element_get(UvElementMap *map, BMFace *efa, BMLoop *l) +{ + UvElement *element; + + element = map->vert[BM_elem_index_get(l->v)]; + + for (; element; element = element->next) + if (element->face == efa) + return element; + + return NULL; +} + /*********************** loop select ***********************/ -static void uv_vertex_loop_flag(UvMapVert *first) +static void select_edgeloop_uv_vertex_loop_flag(UvMapVert *first) { UvMapVert *iterv; int count = 0; @@ -899,7 +893,7 @@ static void uv_vertex_loop_flag(UvMapVert *first) first->flag = 1; } -static UvMapVert *uv_vertex_map_get(UvVertMap *vmap, BMFace *efa, int a) +static UvMapVert *select_edgeloop_uv_vertex_map_get(UvVertMap *vmap, BMFace *efa, int a) { UvMapVert *iterv, *first; BMLoop *l; @@ -917,20 +911,7 @@ static UvMapVert *uv_vertex_map_get(UvVertMap *vmap, BMFace *efa, int a) return NULL; } -UvElement *ED_uv_element_get(UvElementMap *map, BMFace *efa, BMLoop *l) -{ - UvElement *element; - - element = map->vert[BM_elem_index_get(l->v)]; - - for (; element; element = element->next) - if (element->face == efa) - return element; - - return NULL; -} - -static int uv_edge_tag_faces(BMEditMesh *em, UvMapVert *first1, UvMapVert *first2, int *totface) +static int select_edgeloop_uv_edge_tag_faces(BMEditMesh *em, UvMapVert *first1, UvMapVert *first2, int *totface) { UvMapVert *iterv1, *iterv2; BMFace *efa; @@ -948,7 +929,7 @@ static int uv_edge_tag_faces(BMEditMesh *em, UvMapVert *first1, UvMapVert *first if (iterv1->f == iterv2->f) { /* if face already tagged, don't do this edge */ efa = EDBM_face_at_index(em, iterv1->f); - if (BMO_elem_flag_test(em->bm, efa, EFA_F1_FLAG)) + if (BM_elem_flag_test(efa, BM_ELEM_TAG)) return 0; tot++; @@ -973,7 +954,7 @@ static int uv_edge_tag_faces(BMEditMesh *em, UvMapVert *first1, UvMapVert *first if (iterv1->f == iterv2->f) { efa = EDBM_face_at_index(em, iterv1->f); - BMO_elem_flag_enable(em->bm, efa, EFA_F1_FLAG); + BM_elem_flag_enable(efa, BM_ELEM_TAG); break; } } @@ -982,7 +963,8 @@ static int uv_edge_tag_faces(BMEditMesh *em, UvMapVert *first1, UvMapVert *first return 1; } -static int select_edgeloop(Scene *scene, Image *ima, BMEditMesh *em, NearestHit *hit, float limit[2], int extend) +static int select_edgeloop(Scene *scene, Image *ima, BMEditMesh *em, NearestHit *hit, + float limit[2], const short extend) { BMFace *efa; BMIter iter, liter; @@ -990,37 +972,29 @@ static int select_edgeloop(Scene *scene, Image *ima, BMEditMesh *em, NearestHit MTexPoly *tf; UvVertMap *vmap; UvMapVert *iterv1, *iterv2; - int a, count, looking, nverts, starttotf, select; + int a, looking, nverts, starttotf, select; /* setup */ EDBM_index_arrays_init(em, 0, 0, 1); vmap = EDBM_uv_vert_map_create(em, 0, 0, limit); - BM_mesh_elem_index_ensure(em->bm, BM_VERT); + BM_mesh_elem_index_ensure(em->bm, BM_VERT | BM_FACE); - count = 0; - BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { - if (!extend) { - uvedit_face_deselect(scene, em, efa); - } - - BMO_elem_flag_disable(em->bm, efa, EFA_F1_FLAG); - - BM_elem_index_set(efa, count); /* set_inline */ - - count++; + if (!extend) { + select_all_perform(scene, ima, em, SEL_DESELECT); } - em->bm->elem_index_dirty &= ~BM_FACE; + + BM_mesh_elem_hflag_disable_all(em->bm, BM_FACE, BM_ELEM_TAG, FALSE); /* set flags for first face and verts */ nverts = hit->efa->len; - iterv1 = uv_vertex_map_get(vmap, hit->efa, hit->lindex); - iterv2 = uv_vertex_map_get(vmap, hit->efa, (hit->lindex + 1) % nverts); - uv_vertex_loop_flag(iterv1); - uv_vertex_loop_flag(iterv2); + iterv1 = select_edgeloop_uv_vertex_map_get(vmap, hit->efa, hit->lindex); + iterv2 = select_edgeloop_uv_vertex_map_get(vmap, hit->efa, (hit->lindex + 1) % nverts); + select_edgeloop_uv_vertex_loop_flag(iterv1); + select_edgeloop_uv_vertex_loop_flag(iterv2); starttotf = 0; - uv_edge_tag_faces(em, iterv1, iterv2, &starttotf); + select_edgeloop_uv_edge_tag_faces(em, iterv1, iterv2, &starttotf); /* sorry, first edge isn't even ok */ if (iterv1->flag == 0 && iterv2->flag == 0) looking = 0; @@ -1035,24 +1009,24 @@ static int select_edgeloop(Scene *scene, Image *ima, BMEditMesh *em, NearestHit BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { tf = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY); - if (!BMO_elem_flag_test(em->bm, efa, EFA_F1_FLAG) && uvedit_face_visible(scene, ima, efa, tf)) { + if (!BM_elem_flag_test(efa, BM_ELEM_TAG) && uvedit_face_visible_test(scene, ima, efa, tf)) { nverts = efa->len; for (a = 0; a < nverts; a++) { /* check face not hidden and not tagged */ - iterv1 = uv_vertex_map_get(vmap, efa, a); - iterv2 = uv_vertex_map_get(vmap, efa, (a + 1) % nverts); + iterv1 = select_edgeloop_uv_vertex_map_get(vmap, efa, a); + iterv2 = select_edgeloop_uv_vertex_map_get(vmap, efa, (a + 1) % nverts); if (!iterv1 || !iterv2) continue; /* check if vertex is tagged and has right valence */ if (iterv1->flag || iterv2->flag) { - if (uv_edge_tag_faces(em, iterv1, iterv2, &starttotf)) { + if (select_edgeloop_uv_edge_tag_faces(em, iterv1, iterv2, &starttotf)) { looking = 1; - BMO_elem_flag_enable(em->bm, efa, EFA_F1_FLAG); + BM_elem_flag_enable(efa, BM_ELEM_TAG); - uv_vertex_loop_flag(iterv1); - uv_vertex_loop_flag(iterv2); + select_edgeloop_uv_vertex_loop_flag(iterv1); + select_edgeloop_uv_vertex_loop_flag(iterv2); break; } } @@ -1063,13 +1037,13 @@ static int select_edgeloop(Scene *scene, Image *ima, BMEditMesh *em, NearestHit /* do the actual select/deselect */ nverts = hit->efa->len; - iterv1 = uv_vertex_map_get(vmap, hit->efa, hit->lindex); - iterv2 = uv_vertex_map_get(vmap, hit->efa, (hit->lindex + 1) % nverts); + iterv1 = select_edgeloop_uv_vertex_map_get(vmap, hit->efa, hit->lindex); + iterv2 = select_edgeloop_uv_vertex_map_get(vmap, hit->efa, (hit->lindex + 1) % nverts); iterv1->flag = 1; iterv2->flag = 1; if (extend) { - if (uvedit_uv_selected(em, scene, hit->l)) + if (uvedit_uv_select_test(em, scene, hit->l)) select = 0; else select = 1; @@ -1080,11 +1054,11 @@ static int select_edgeloop(Scene *scene, Image *ima, BMEditMesh *em, NearestHit BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { a = 0; BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { - iterv1 = uv_vertex_map_get(vmap, efa, a); + iterv1 = select_edgeloop_uv_vertex_map_get(vmap, efa, a); if (iterv1->flag) { - if (select) uvedit_uv_select(em, scene, l); - else uvedit_uv_deselect(em, scene, l); + if (select) uvedit_uv_select_enable(em, scene, l, FALSE); + else uvedit_uv_select_disable(em, scene, l); } a++; @@ -1100,7 +1074,7 @@ static int select_edgeloop(Scene *scene, Image *ima, BMEditMesh *em, NearestHit /*********************** linked select ***********************/ -static void select_linked(Scene *scene, Image *ima, BMEditMesh *em, float limit[2], NearestHit *hit, int extend) +static void select_linked(Scene *scene, Image *ima, BMEditMesh *em, const float limit[2], NearestHit *hit, int extend) { BMFace *efa; BMLoop *l; @@ -1126,7 +1100,7 @@ static void select_linked(Scene *scene, Image *ima, BMEditMesh *em, float limit[ BM_ITER_MESH_INDEX (efa, &iter, em->bm, BM_FACES_OF_MESH, a) { tf = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY); - if (uvedit_face_visible(scene, ima, efa, tf)) { + if (uvedit_face_visible_test(scene, ima, efa, tf)) { BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV); @@ -1285,10 +1259,10 @@ static float *uv_sel_co_from_eve(Scene *scene, Image *ima, BMEditMesh *em, BMVer BM_ITER_ELEM (l, &liter, eve, BM_LOOPS_OF_VERT) { MTexPoly *tf = CustomData_bmesh_get(&em->bm->pdata, l->f->head.data, CD_MTEXPOLY); - if (!uvedit_face_visible(scene, ima, l->f, tf)) + if (!uvedit_face_visible_test(scene, ima, l->f, tf)) continue; - if (uvedit_uv_selected(em, scene, l)) { + if (uvedit_uv_select_test(em, scene, l)) { MLoopUV *luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV); return luv->uv; } @@ -1326,11 +1300,11 @@ static void weld_align_uv(bContext *C, int tool) BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { tf = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY); - if (!uvedit_face_visible(scene, ima, efa, tf)) + if (!uvedit_face_visible_test(scene, ima, efa, tf)) continue; BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { - if (uvedit_uv_selected(em, scene, l)) { + if (uvedit_uv_select_test(em, scene, l)) { luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV); DO_MINMAX2(luv->uv, min, max); } @@ -1348,11 +1322,11 @@ static void weld_align_uv(bContext *C, int tool) BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { tf = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY); - if (!uvedit_face_visible(scene, ima, efa, tf)) + if (!uvedit_face_visible_test(scene, ima, efa, tf)) continue; BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { - if (uvedit_uv_selected(em, scene, l)) { + if (uvedit_uv_select_test(em, scene, l)) { luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV); luv->uv[0] = cent[0]; } @@ -1367,11 +1341,11 @@ static void weld_align_uv(bContext *C, int tool) BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { tf = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY); - if (!uvedit_face_visible(scene, ima, efa, tf)) + if (!uvedit_face_visible_test(scene, ima, efa, tf)) continue; BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { - if (uvedit_uv_selected(em, scene, l)) { + if (uvedit_uv_select_test(em, scene, l)) { luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV); luv->uv[1] = cent[1]; } @@ -1397,10 +1371,10 @@ static void weld_align_uv(bContext *C, int tool) BM_ITER_ELEM (l, &liter, eve, BM_LOOPS_OF_VERT) { tf = CustomData_bmesh_get(&em->bm->pdata, l->f->head.data, CD_MTEXPOLY); - if (!uvedit_face_visible(scene, ima, l->f, tf)) + if (!uvedit_face_visible_test(scene, ima, l->f, tf)) continue; - if (uvedit_uv_selected(em, scene, l)) { + if (uvedit_uv_select_test(em, scene, l)) { BM_elem_flag_enable(eve, BM_ELEM_TAG); break; } @@ -1487,10 +1461,10 @@ static void weld_align_uv(bContext *C, int tool) BM_ITER_ELEM (l, &liter, eve_line[i], BM_LOOPS_OF_VERT) { tf = CustomData_bmesh_get(&em->bm->pdata, l->f->head.data, CD_MTEXPOLY); - if (!uvedit_face_visible(scene, ima, l->f, tf)) + if (!uvedit_face_visible_test(scene, ima, l->f, tf)) continue; - if (uvedit_uv_selected(em, scene, l)) { + if (uvedit_uv_select_test(em, scene, l)) { MLoopUV *luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV); /* Projection of point (x, y) over line (x1, y1, x2, y2) along X axis: * new_y = (y2 - y1) / (x2 - x1) * (x - x1) + y1 @@ -1582,30 +1556,20 @@ static void UV_OT_weld(wmOperatorType *ot) /* ******************** (de)select all operator **************** */ -static void select_all_perform(bContext *C, int action) +static void select_all_perform(Scene *scene, Image *ima, BMEditMesh *em, int action) { - Scene *scene; - ToolSettings *ts; - Object *obedit; - BMEditMesh *em; + ToolSettings *ts = scene->toolsettings; BMFace *efa; BMLoop *l; BMIter iter, liter; - Image *ima; MTexPoly *tf; MLoopUV *luv; - - scene = CTX_data_scene(C); - ts = CTX_data_tool_settings(C); - obedit = CTX_data_edit_object(C); - em = BMEdit_FromObject(obedit); - ima = CTX_data_edit_image(C); - + if (ts->uv_flag & UV_SYNC_SELECTION) { switch (action) { case SEL_TOGGLE: - EDBM_select_toggle_all(BMEdit_FromObject(obedit)); + EDBM_select_toggle_all(em); break; case SEL_SELECT: EDBM_flag_enable_all(em, BM_ELEM_SELECT); @@ -1625,7 +1589,7 @@ static void select_all_perform(bContext *C, int action) BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { tf = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY); - if (!uvedit_face_visible(scene, ima, efa, tf)) + if (!uvedit_face_visible_test(scene, ima, efa, tf)) continue; BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { @@ -1643,7 +1607,7 @@ static void select_all_perform(bContext *C, int action) BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { tf = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY); - if (!uvedit_face_visible(scene, ima, efa, tf)) + if (!uvedit_face_visible_test(scene, ima, efa, tf)) continue; BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { @@ -1667,10 +1631,14 @@ static void select_all_perform(bContext *C, int action) static int select_all_exec(bContext *C, wmOperator *op) { + Scene *scene = CTX_data_scene(C); Object *obedit = CTX_data_edit_object(C); + Image *ima = CTX_data_edit_image(C); + BMEditMesh *em = BMEdit_FromObject(obedit); + int action = RNA_enum_get(op->ptr, "action"); - select_all_perform(C, action); + select_all_perform(scene, ima, em, action); WM_event_add_notifier(C, NC_GEOM | ND_SELECT, obedit->data); @@ -1717,11 +1685,11 @@ static int sticky_select(float *limit, int hitv[4], int v, float *hituv[4], floa return 0; } -static int mouse_select(bContext *C, float co[2], int extend, int loop) +static int mouse_select(bContext *C, const float co[2], int extend, int loop) { SpaceImage *sima = CTX_wm_space_image(C); Scene *scene = CTX_data_scene(C); - ToolSettings *ts = CTX_data_tool_settings(C); + ToolSettings *ts = scene->toolsettings; Object *obedit = CTX_data_edit_object(C); Image *ima = CTX_data_edit_image(C); BMEditMesh *em = BMEdit_FromObject(obedit); @@ -1731,7 +1699,7 @@ static int mouse_select(bContext *C, float co[2], int extend, int loop) MTexPoly *tf; MLoopUV *luv; NearestHit hit; - int i, select = 1, selectmode, sticky, sync, *hitv = NULL, nvert; + int i, select = 1, selectmode, sticky, sync, *hitv = NULL; BLI_array_declare(hitv); int flush = 0, hitlen = 0; /* 0 == don't flush, 1 == sel, -1 == desel; only use when selection sync is enabled */ float limit[2], **hituv = NULL; @@ -1788,8 +1756,8 @@ static int mouse_select(bContext *C, float co[2], int extend, int loop) } /* mark 1 vertex as being hit */ - BLI_array_growitems(hitv, hit.efa->len); - BLI_array_growitems(hituv, hit.efa->len); + BLI_array_grow_items(hitv, hit.efa->len); + BLI_array_grow_items(hituv, hit.efa->len); for (i = 0; i < hit.efa->len; i++) { hitv[i] = 0xFFFFFFFF; } @@ -1809,18 +1777,14 @@ static int mouse_select(bContext *C, float co[2], int extend, int loop) } /* mark 2 edge vertices as being hit */ - BLI_array_growitems(hitv, hit.efa->len); - BLI_array_growitems(hituv, hit.efa->len); - for (i = 0; i < hit.efa->len; i++) { - hitv[i] = 0xFFFFFFFF; - } - - nvert = hit.efa->len; + BLI_array_grow_items(hitv, hit.efa->len); + BLI_array_grow_items(hituv, hit.efa->len); + fill_vn_i(hitv, hit.efa->len, 0xFFFFFFFF); hitv[hit.lindex] = hit.vert1; - hitv[(hit.lindex + 1) % nvert] = hit.vert2; + hitv[(hit.lindex + 1) % hit.efa->len] = hit.vert2; hituv[hit.lindex] = hit.luv->uv; - hituv[(hit.lindex + 1) % nvert] = hit.nextluv->uv; + hituv[(hit.lindex + 1) % hit.efa->len] = hit.nextluv->uv; hitlen = hit.efa->len; } @@ -1838,8 +1802,8 @@ static int mouse_select(bContext *C, float co[2], int extend, int loop) /* mark all face vertices as being hit */ - BLI_array_growitems(hitv, hit.efa->len); - BLI_array_growitems(hituv, hit.efa->len); + BLI_array_grow_items(hitv, hit.efa->len); + BLI_array_grow_items(hituv, hit.efa->len); i = 0; BM_ITER_ELEM (l, &liter, hit.efa, BM_LOOPS_OF_FACE) { luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV); @@ -1878,41 +1842,48 @@ static int mouse_select(bContext *C, float co[2], int extend, int loop) else if (extend) { if (selectmode == UV_SELECT_VERTEX) { /* (de)select uv vertex */ - if (uvedit_uv_selected(em, scene, hit.l)) { - uvedit_uv_deselect(em, scene, hit.l); + if (uvedit_uv_select_test(em, scene, hit.l)) { + uvedit_uv_select_disable(em, scene, hit.l); select = 0; } else { - uvedit_uv_select(em, scene, hit.l); + uvedit_uv_select_enable(em, scene, hit.l, TRUE); select = 1; } flush = 1; } else if (selectmode == UV_SELECT_EDGE) { /* (de)select edge */ - if (uvedit_edge_selected(em, scene, hit.l)) { - uvedit_edge_deselect(em, scene, hit.l); + if (uvedit_edge_select_test(em, scene, hit.l)) { + uvedit_edge_select_disable(em, scene, hit.l); select = 0; } else { - uvedit_edge_select(em, scene, hit.l); + uvedit_edge_select_enable(em, scene, hit.l, TRUE); select = 1; } flush = 1; } else if (selectmode == UV_SELECT_FACE) { /* (de)select face */ - if (uvedit_face_selected(scene, em, hit.efa)) { - uvedit_face_deselect(scene, em, hit.efa); + if (uvedit_face_select_test(scene, em, hit.efa)) { + uvedit_face_select_disable(scene, em, hit.efa); select = 0; } else { - uvedit_face_select(scene, em, hit.efa); + uvedit_face_select_enable(scene, em, hit.efa, TRUE); select = 1; } flush = -1; } + /* de-selecting an edge may deselect a face too - validate */ + if (sync) { + if (select == FALSE) { + BM_select_history_validate(em->bm); + } + } + /* (de)select sticky uv nodes */ if (sticky != SI_STICKY_DISABLE) { @@ -1922,13 +1893,13 @@ static int mouse_select(bContext *C, float co[2], int extend, int loop) if (select == 0) { BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { tf = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY); - if (!uvedit_face_visible(scene, ima, efa, tf)) + if (!uvedit_face_visible_test(scene, ima, efa, tf)) continue; BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV); if (sticky_select(limit, hitv, BM_elem_index_get(l->v), hituv, luv->uv, sticky, hitlen)) - uvedit_uv_deselect(em, scene, l); + uvedit_uv_select_disable(em, scene, l); } } flush = -1; @@ -1937,13 +1908,13 @@ static int mouse_select(bContext *C, float co[2], int extend, int loop) else { BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { tf = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY); - if (!uvedit_face_visible(scene, ima, efa, tf)) + if (!uvedit_face_visible_test(scene, ima, efa, tf)) continue; BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV); if (sticky_select(limit, hitv, BM_elem_index_get(l->v), hituv, luv->uv, sticky, hitlen)) - uvedit_uv_select(em, scene, l); + uvedit_uv_select_enable(em, scene, l, FALSE); } } @@ -1953,30 +1924,28 @@ static int mouse_select(bContext *C, float co[2], int extend, int loop) } else { /* deselect all */ - BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { - uvedit_face_deselect(scene, em, efa); - } + select_all_perform(scene, ima, em, SEL_DESELECT); if (selectmode == UV_SELECT_VERTEX) { /* select vertex */ - uvedit_uv_select(em, scene, hit.l); + uvedit_uv_select_enable(em, scene, hit.l, TRUE); flush = 1; } else if (selectmode == UV_SELECT_EDGE) { /* select edge */ - uvedit_edge_select(em, scene, hit.l); + uvedit_edge_select_enable(em, scene, hit.l, TRUE); flush = 1; } else if (selectmode == UV_SELECT_FACE) { /* select face */ - uvedit_face_select(scene, em, hit.efa); + uvedit_face_select_enable(scene, em, hit.efa, TRUE); } /* select sticky uvs */ if (sticky != SI_STICKY_DISABLE) { BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { tf = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY); - if (!uvedit_face_visible(scene, ima, efa, tf)) + if (!uvedit_face_visible_test(scene, ima, efa, tf)) continue; BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { @@ -1984,7 +1953,7 @@ static int mouse_select(bContext *C, float co[2], int extend, int loop) luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV); if (sticky_select(limit, hitv, BM_elem_index_get(l->v), hituv, luv->uv, sticky, hitlen)) - uvedit_uv_select(em, scene, l); + uvedit_uv_select_enable(em, scene, l, FALSE); flush = 1; } @@ -1992,19 +1961,32 @@ static int mouse_select(bContext *C, float co[2], int extend, int loop) } } -#if 0 /* BM_elem_select_set API handles all of this? */ - if (sync) { /* flush for mesh selection */ + + /* before bmesh */ +#if 0 if (ts->selectmode != SCE_SELECT_FACE) { if (flush == 1) EDBM_select_flush(em); else if (flush == -1) EDBM_deselect_flush(em); } - } #else - (void)flush; /* flush is otherwise UNUSED */ - (void)sync; /* sync is otherwise UNUSED */ + if (flush != 0) { + if (loop) { + /* push vertex -> edge selection */ + if (select) { + EDBM_select_flush(em); + } + else { + EDBM_deselect_flush(em); + } + } + else { + EDBM_selectmode_flush(em); + } + } #endif + } DAG_id_tag_update(obedit->data, 0); WM_event_add_notifier(C, NC_GEOM | ND_SELECT, obedit->data); @@ -2109,7 +2091,7 @@ static int select_linked_internal(bContext *C, wmOperator *op, wmEvent *event, i { SpaceImage *sima = CTX_wm_space_image(C); Scene *scene = CTX_data_scene(C); - ToolSettings *ts = CTX_data_tool_settings(C); + ToolSettings *ts = scene->toolsettings; Object *obedit = CTX_data_edit_object(C); Image *ima = CTX_data_edit_image(C); BMEditMesh *em = BMEdit_FromObject(obedit); @@ -2211,7 +2193,7 @@ static void UV_OT_select_linked_pick(wmOperatorType *ot) static int unlink_selection_exec(bContext *C, wmOperator *op) { Scene *scene = CTX_data_scene(C); - ToolSettings *ts = CTX_data_tool_settings(C); + ToolSettings *ts = scene->toolsettings; Object *obedit = CTX_data_edit_object(C); Image *ima = CTX_data_edit_image(C); BMEditMesh *em = BMEdit_FromObject(obedit); @@ -2230,7 +2212,7 @@ static int unlink_selection_exec(bContext *C, wmOperator *op) int desel = 0; tf = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY); - if (!uvedit_face_visible(scene, ima, efa, tf)) + if (!uvedit_face_visible_test(scene, ima, efa, tf)) continue; BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { @@ -2269,6 +2251,25 @@ static void UV_OT_unlink_selected(wmOperatorType *ot) ot->poll = ED_operator_uvedit; } +static void uv_select_sync_flush(ToolSettings *ts, BMEditMesh *em, const short select) +{ + /* bmesh API handles flushing but not on de-select */ + if (ts->uv_flag & UV_SYNC_SELECTION) { + if (ts->selectmode != SCE_SELECT_FACE) { + if (select == FALSE) { + EDBM_deselect_flush(em); + } + else { + EDBM_select_flush(em); + } + } + + if (select == FALSE) { + BM_select_history_validate(em->bm); + } + } +} + /* ******************** border select operator **************** */ /* This function sets the selection on tagged faces, need because settings the @@ -2278,7 +2279,7 @@ static void UV_OT_unlink_selected(wmOperatorType *ot) * * De-selects faces that have been tagged on efa->tmp.l. */ -static void uv_faces_do_sticky(bContext *C, SpaceImage *sima, Scene *scene, Object *obedit, short select) +static void uv_faces_do_sticky(SpaceImage *sima, Scene *scene, Object *obedit, short select) { /* Selecting UV Faces with some modes requires us to change * the selection in other faces (depending on the sticky mode). @@ -2286,7 +2287,7 @@ static void uv_faces_do_sticky(bContext *C, SpaceImage *sima, Scene *scene, Obje * This only needs to be done when the Mesh is not used for * selection (so for sticky modes, vertex or location based). */ - ToolSettings *ts = CTX_data_tool_settings(C); + ToolSettings *ts = scene->toolsettings; BMEditMesh *em = BMEdit_FromObject(obedit); BMFace *efa; BMLoop *l; @@ -2317,9 +2318,9 @@ static void uv_faces_do_sticky(bContext *C, SpaceImage *sima, Scene *scene, Obje BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { if (BM_elem_flag_test(l->v, BM_ELEM_TAG)) { if (select) - uvedit_uv_select(em, scene, l); + uvedit_uv_select_enable(em, scene, l, FALSE); else - uvedit_uv_deselect(em, scene, l); + uvedit_uv_select_disable(em, scene, l); } } } @@ -2351,9 +2352,9 @@ static void uv_faces_do_sticky(bContext *C, SpaceImage *sima, Scene *scene, Obje BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { if (select) - uvedit_uv_select(em, scene, l); + uvedit_uv_select_enable(em, scene, l, FALSE); else - uvedit_uv_deselect(em, scene, l); + uvedit_uv_select_disable(em, scene, l); vlist_iter = EDBM_uv_vert_map_at_index(vmap, BM_elem_index_get(l->v)); @@ -2378,9 +2379,9 @@ static void uv_faces_do_sticky(bContext *C, SpaceImage *sima, Scene *scene, Obje /* tf_vlist = CustomData_bmesh_get(&em->bm->pdata, efa_vlist->head.data, CD_MTEXPOLY); */ /* UNUSED */ if (select) - uvedit_uv_select(em, scene, BM_iter_at_index(em->bm, BM_LOOPS_OF_FACE, efa_vlist, vlist_iter->tfindex)); + uvedit_uv_select_enable(em, scene, BM_iter_at_index(em->bm, BM_LOOPS_OF_FACE, efa_vlist, vlist_iter->tfindex), FALSE); else - uvedit_uv_deselect(em, scene, BM_iter_at_index(em->bm, BM_LOOPS_OF_FACE, efa_vlist, vlist_iter->tfindex)); + uvedit_uv_select_disable(em, scene, BM_iter_at_index(em->bm, BM_LOOPS_OF_FACE, efa_vlist, vlist_iter->tfindex)); } vlist_iter = vlist_iter->next; } @@ -2395,9 +2396,9 @@ static void uv_faces_do_sticky(bContext *C, SpaceImage *sima, Scene *scene, Obje BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { if (BM_elem_flag_test(efa, BM_ELEM_TAG)) { if (select) - uvedit_face_select(scene, em, efa); + uvedit_face_select_enable(scene, em, efa, FALSE); else - uvedit_face_deselect(scene, em, efa); + uvedit_face_select_disable(scene, em, efa); } } } @@ -2407,7 +2408,7 @@ static int border_select_exec(bContext *C, wmOperator *op) { SpaceImage *sima = CTX_wm_space_image(C); Scene *scene = CTX_data_scene(C); - ToolSettings *ts = CTX_data_tool_settings(C); + ToolSettings *ts = scene->toolsettings; Object *obedit = CTX_data_edit_object(C); Image *ima = CTX_data_edit_image(C); ARegion *ar = CTX_wm_region(C); @@ -2436,7 +2437,7 @@ static int border_select_exec(bContext *C, wmOperator *op) extend = RNA_boolean_get(op->ptr, "extend"); if (!extend) - select_all_perform(C, SEL_DESELECT); + select_all_perform(scene, ima, em, SEL_DESELECT); if (ts->uv_flag & UV_SYNC_SELECTION) faces = (ts->selectmode == SCE_SELECT_FACE); @@ -2455,8 +2456,8 @@ static int border_select_exec(bContext *C, wmOperator *op) BM_elem_flag_disable(efa, BM_ELEM_TAG); tf = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY); - if (uvedit_face_visible(scene, ima, efa, tf)) { - poly_uv_center(em, efa, cent); + if (uvedit_face_visible_test(scene, ima, efa, tf)) { + uv_poly_center(em, efa, cent); if (BLI_in_rctf(&rectf, cent[0], cent[1])) { BM_elem_flag_enable(efa, BM_ELEM_TAG); change = 1; @@ -2466,7 +2467,7 @@ static int border_select_exec(bContext *C, wmOperator *op) /* (de)selects all tagged faces and deals with sticky modes */ if (change) - uv_faces_do_sticky(C, sima, scene, obedit, select); + uv_faces_do_sticky(sima, scene, obedit, select); } else { /* other selection modes */ @@ -2474,7 +2475,7 @@ static int border_select_exec(bContext *C, wmOperator *op) BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { tf = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY); - if (!uvedit_face_visible(scene, ima, efa, tf)) + if (!uvedit_face_visible_test(scene, ima, efa, tf)) continue; BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV); @@ -2483,15 +2484,15 @@ static int border_select_exec(bContext *C, wmOperator *op) /* UV_SYNC_SELECTION - can't do pinned selection */ if (BLI_in_rctf(&rectf, luv->uv[0], luv->uv[1])) { - if (select) uvedit_uv_select(em, scene, l); - else uvedit_uv_deselect(em, scene, l); + if (select) uvedit_uv_select_enable(em, scene, l, FALSE); + else uvedit_uv_select_disable(em, scene, l); } } else if (pinned) { if ((luv->flag & MLOOPUV_PINNED) && BLI_in_rctf(&rectf, luv->uv[0], luv->uv[1])) { - if (select) uvedit_uv_select(em, scene, l); - else uvedit_uv_deselect(em, scene, l); + if (select) uvedit_uv_select_enable(em, scene, l, FALSE); + else uvedit_uv_select_disable(em, scene, l); } } } @@ -2499,17 +2500,11 @@ static int border_select_exec(bContext *C, wmOperator *op) } if (change) { - /* make sure newly selected vert selection is updated*/ -#if 0 /* BM_elem_select_set API handles all of this? */ - if (ts->uv_flag & UV_SYNC_SELECTION) { - if (ts->selectmode != SCE_SELECT_FACE) { - if (select) EDBM_select_flush(em); - else EDBM_deselect_flush(em); - } - } -#endif + uv_select_sync_flush(ts, em, select); - WM_event_add_notifier(C, NC_GEOM | ND_SELECT, obedit->data); + if (ts->uv_flag & UV_SYNC_SELECTION) { + WM_event_add_notifier(C, NC_GEOM | ND_SELECT, obedit->data); + } return OPERATOR_FINISHED; } @@ -2542,13 +2537,12 @@ static void UV_OT_select_border(wmOperatorType *ot) /* ******************** circle select operator **************** */ -static void select_uv_inside_ellipse(BMEditMesh *em, SpaceImage *UNUSED(sima), Scene *scene, int select, - float *offset, float *ell, BMLoop *l, MLoopUV *luv) +static int select_uv_inside_ellipse(BMEditMesh *em, SpaceImage *UNUSED(sima), Scene *scene, int select, + float *offset, float *ell, BMLoop *l, MLoopUV *luv) { /* normalized ellipse: ell[0] = scaleX, ell[1] = scaleY */ float x, y, r2, *uv; - - + uv = luv->uv; x = (uv[0] - offset[0]) * ell[0]; @@ -2556,8 +2550,12 @@ static void select_uv_inside_ellipse(BMEditMesh *em, SpaceImage *UNUSED(sima), S r2 = x * x + y * y; if (r2 < 1.0f) { - if (select) uvedit_uv_select(em, scene, l); - else uvedit_uv_deselect(em, scene, l); + if (select) uvedit_uv_select_enable(em, scene, l, FALSE); + else uvedit_uv_select_disable(em, scene, l); + return TRUE; + } + else { + return FALSE; } } @@ -2565,6 +2563,7 @@ static int circle_select_exec(bContext *C, wmOperator *op) { SpaceImage *sima = CTX_wm_space_image(C); Scene *scene = CTX_data_scene(C); + ToolSettings *ts = scene->toolsettings; Object *obedit = CTX_data_edit_object(C); BMEditMesh *em = BMEdit_FromObject(obedit); ARegion *ar = CTX_wm_region(C); @@ -2575,6 +2574,7 @@ static int circle_select_exec(bContext *C, wmOperator *op) int x, y, radius, width, height, select; float zoomx, zoomy, offset[2], ellipse[2]; int gesture_mode = RNA_int_get(op->ptr, "gesture_mode"); + int change = FALSE; /* get operator properties */ select = (gesture_mode == GESTURE_MODAL_SELECT); @@ -2596,15 +2596,17 @@ static int circle_select_exec(bContext *C, wmOperator *op) BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV); - select_uv_inside_ellipse(em, sima, scene, select, offset, ellipse, l, luv); + change |= select_uv_inside_ellipse(em, sima, scene, select, offset, ellipse, l, luv); } } -#if 0 //I think the BM_elem_select_set api stuff handles all this as necessary? - if (select) EM_select_flush(em); - else EM_deselect_flush(em); -#endif - WM_event_add_notifier(C, NC_GEOM | ND_SELECT, obedit->data); + if (change) { + uv_select_sync_flush(ts, em, select); + + if (ts->uv_flag & UV_SYNC_SELECTION) { + WM_event_add_notifier(C, NC_GEOM | ND_SELECT, obedit->data); + } + } return OPERATOR_FINISHED; } @@ -2633,9 +2635,129 @@ static void UV_OT_circle_select(wmOperatorType *ot) RNA_def_int(ot->srna, "gesture_mode", 0, INT_MIN, INT_MAX, "Gesture Mode", "", INT_MIN, INT_MAX); } + +/* ******************** lasso select operator **************** */ + +static void do_lasso_select_mesh_uv(bContext *C, int mcords[][2], short moves, short select) +{ + Image *ima = CTX_data_edit_image(C); + ARegion *ar = CTX_wm_region(C); + Object *obedit = CTX_data_edit_object(C); + Scene *scene = CTX_data_scene(C); + ToolSettings *ts = scene->toolsettings; + BMEditMesh *em = BMEdit_FromObject(obedit); + + BMIter iter, liter; + + BMFace *efa; + BMLoop *l; + MTexPoly *tf; + int screen_uv[2], change = TRUE; + rcti rect; + + BLI_lasso_boundbox(&rect, mcords, moves); + + if (ts->uv_selectmode == UV_SELECT_FACE) { /* Face Center Sel */ + change = FALSE; + BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { + /* assume not touched */ + if ((select) != (uvedit_face_select_test(scene, em, efa))) { + float cent[2]; + uv_poly_center(em, efa, cent); + UI_view2d_view_to_region(&ar->v2d, cent[0], cent[1], &screen_uv[0], &screen_uv[1]); + if (BLI_in_rcti(&rect, screen_uv[0], screen_uv[1]) && + BLI_lasso_is_point_inside(mcords, moves, screen_uv[0], screen_uv[1], V2D_IS_CLIPPED)) + { + uvedit_face_select_enable(scene, em, efa, FALSE); + change = TRUE; + } + } + } + } + else { /* Vert Sel */ + BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { + tf = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY); + if (uvedit_face_visible_test(scene, ima, efa, tf)) { + BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { + if ((select) != (uvedit_uv_select_test(em, scene, l))) { + MLoopUV *luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV); + UI_view2d_view_to_region(&ar->v2d, luv->uv[0], luv->uv[1], &screen_uv[0], &screen_uv[1]); + if (BLI_in_rcti(&rect, screen_uv[0], screen_uv[1]) && + BLI_lasso_is_point_inside(mcords, moves, screen_uv[0], screen_uv[1], V2D_IS_CLIPPED)) + { + if (select) { + uvedit_uv_select_enable(em, scene, l, FALSE); + } + else { + uvedit_uv_select_disable(em, scene, l); + } + } + } + } + } + } + } + if (change) { + uv_select_sync_flush(scene->toolsettings, em, select); + + if (ts->uv_flag & UV_SYNC_SELECTION) { + WM_event_add_notifier(C, NC_GEOM | ND_SELECT, obedit->data); + } + } +} + +static int uv_lasso_select_exec(bContext *C, wmOperator *op) +{ + int i = 0; + int mcords[1024][2]; + + RNA_BEGIN (op->ptr, itemptr, "path") { + float loc[2]; + + RNA_float_get_array(&itemptr, "loc", loc); + mcords[i][0] = (int)loc[0]; + mcords[i][1] = (int)loc[1]; + i++; + if (i >= 1024) break; + } + RNA_END; + + if (i > 1) { + short select; + + select = !RNA_boolean_get(op->ptr, "deselect"); + do_lasso_select_mesh_uv(C, mcords, i, select); + + return OPERATOR_FINISHED; + } + return OPERATOR_PASS_THROUGH; +} + +void UV_OT_select_lasso(wmOperatorType *ot) +{ + ot->name = "Lasso Select UV"; + ot->description = "Select UVs using lasso selection"; + ot->idname = "UV_OT_select_lasso"; + + ot->invoke = WM_gesture_lasso_invoke; + ot->modal = WM_gesture_lasso_modal; + ot->exec = uv_lasso_select_exec; + ot->poll = ED_operator_image_active; + ot->cancel = WM_gesture_lasso_cancel; + + /* flags */ + ot->flag = OPTYPE_UNDO; + + RNA_def_collection_runtime(ot->srna, "path", &RNA_OperatorMousePath, "Path", ""); + RNA_def_boolean(ot->srna, "deselect", 0, "Deselect", "Deselect rather than select items"); + RNA_def_boolean(ot->srna, "extend", 1, "Extend", "Extend selection instead of deselecting everything first"); +} + + + /* ******************** snap cursor operator **************** */ -static void snap_uv_to_pixel(float *uvco, float w, float h) +static void snap_uv_to_pixel(float uvco[2], float w, float h) { uvco[0] = ((float)((int)((uvco[0] * w) + 0.5f))) / w; uvco[1] = ((float)((int)((uvco[1] * h) + 0.5f))) / h; @@ -2715,11 +2837,11 @@ static int snap_uvs_to_cursor(Scene *scene, Image *ima, Object *obedit, SpaceIma BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { tface = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY); - if (!uvedit_face_visible(scene, ima, efa, tface)) + if (!uvedit_face_visible_test(scene, ima, efa, tface)) continue; BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { - if (uvedit_uv_selected(em, scene, l)) { + if (uvedit_uv_select_test(em, scene, l)) { luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV); copy_v2_v2(luv->uv, sima->cursor); change = 1; @@ -2745,10 +2867,10 @@ static int snap_uvs_to_adjacent_unselected(Scene *scene, Image *ima, Object *obe * get unique indices and to count how much to malloc */ BM_ITER_MESH (f, &iter, bm, BM_FACES_OF_MESH) { tface = CustomData_bmesh_get(&bm->pdata, f->head.data, CD_MTEXPOLY); - if (uvedit_face_visible(scene, ima, f, tface)) { + if (uvedit_face_visible_test(scene, ima, f, tface)) { BM_elem_flag_enable(f, BM_ELEM_TAG); BM_ITER_ELEM (l, &liter, f, BM_LOOPS_OF_FACE) { - BM_elem_flag_set(l, BM_ELEM_TAG, uvedit_uv_selected(em, scene, l)); + BM_elem_flag_set(l, BM_ELEM_TAG, uvedit_uv_select_test(em, scene, l)); } } else { @@ -2806,11 +2928,11 @@ static int snap_uvs_to_pixels(SpaceImage *sima, Scene *scene, Object *obedit) BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { tface = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY); - if (!uvedit_face_visible(scene, ima, efa, tface)) + if (!uvedit_face_visible_test(scene, ima, efa, tface)) continue; BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { - if (uvedit_uv_selected(em, scene, l)) { + if (uvedit_uv_select_test(em, scene, l)) { luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV); snap_uv_to_pixel(luv->uv, w, h); } @@ -2891,18 +3013,18 @@ static int pin_exec(bContext *C, wmOperator *op) BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { tface = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY); - if (!uvedit_face_visible(scene, ima, efa, tface)) + if (!uvedit_face_visible_test(scene, ima, efa, tface)) continue; BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV); if (!clear) { - if (uvedit_uv_selected(em, scene, l)) + if (uvedit_uv_select_test(em, scene, l)) luv->flag |= MLOOPUV_PINNED; } else { - if (uvedit_uv_selected(em, scene, l)) + if (uvedit_uv_select_test(em, scene, l)) luv->flag &= ~MLOOPUV_PINNED; } } @@ -2945,14 +3067,14 @@ static int select_pinned_exec(bContext *C, wmOperator *UNUSED(op)) BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { tface = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY); - if (!uvedit_face_visible(scene, ima, efa, tface)) + if (!uvedit_face_visible_test(scene, ima, efa, tface)) continue; BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV); if (luv->flag & MLOOPUV_PINNED) - uvedit_uv_select(em, scene, l); + uvedit_uv_select_enable(em, scene, l, FALSE); } } @@ -3000,9 +3122,9 @@ static int bm_face_is_all_uv_sel(BMesh *bm, BMFace *f, int bool_test) static int hide_exec(bContext *C, wmOperator *op) { SpaceImage *sima = CTX_wm_space_image(C); - ToolSettings *ts = CTX_data_tool_settings(C); Object *obedit = CTX_data_edit_object(C); Scene *scene = CTX_data_scene(C); + ToolSettings *ts = scene->toolsettings; BMEditMesh *em = BMEdit_FromObject(obedit); BMFace *efa; BMLoop *l; @@ -3025,7 +3147,7 @@ static int hide_exec(bContext *C, wmOperator *op) tf = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY); - if (!uvedit_face_visible(scene, ima, efa, tf)) { + if (!uvedit_face_visible_test(scene, ima, efa, tf)) { continue; } @@ -3047,7 +3169,7 @@ static int hide_exec(bContext *C, wmOperator *op) if (bm_face_is_all_uv_sel(em->bm, efa, TRUE) == !swap) { BM_face_select_set(em->bm, efa, FALSE); } - uvedit_face_deselect(scene, em, efa); + uvedit_face_select_disable(scene, em, efa); } else { if (bm_face_is_all_uv_sel(em->bm, efa, TRUE) == !swap) { @@ -3058,7 +3180,7 @@ static int hide_exec(bContext *C, wmOperator *op) } } } - if (!swap) uvedit_face_deselect(scene, em, efa); + if (!swap) uvedit_face_select_disable(scene, em, efa); } @@ -3067,7 +3189,7 @@ static int hide_exec(bContext *C, wmOperator *op) /* check if a UV is de-selected */ if (bm_face_is_all_uv_sel(em->bm, efa, FALSE) != !swap) { BM_face_select_set(em->bm, efa, FALSE); - uvedit_face_deselect(scene, em, efa); + uvedit_face_select_disable(scene, em, efa); } } else { @@ -3086,7 +3208,7 @@ static int hide_exec(bContext *C, wmOperator *op) if (em->selectmode != SCE_SELECT_FACE) EDBM_selectmode_flush_ex(em, SCE_SELECT_VERTEX | SCE_SELECT_EDGE); - EDBM_editselection_validate(em); + BM_select_history_validate(em->bm); WM_event_add_notifier(C, NC_GEOM | ND_SELECT, obedit->data); return OPERATOR_FINISHED; @@ -3115,9 +3237,9 @@ static void UV_OT_hide(wmOperatorType *ot) static int reveal_exec(bContext *C, wmOperator *UNUSED(op)) { SpaceImage *sima = CTX_wm_space_image(C); - ToolSettings *ts = CTX_data_tool_settings(C); Object *obedit = CTX_data_edit_object(C); - /*Scene *scene = CTX_data_scene(C);*/ /*UNUSED*/ + Scene *scene = CTX_data_scene(C); + ToolSettings *ts = scene->toolsettings; BMEditMesh *em = BMEdit_FromObject(obedit); BMFace *efa; BMLoop *l; @@ -3498,7 +3620,7 @@ static int mark_seam_exec(bContext *C, wmOperator *UNUSED(op)) BM_ITER_MESH (efa, &iter, bm, BM_FACES_OF_MESH) { BM_ITER_ELEM (loop, &liter, efa, BM_LOOPS_OF_FACE) { - if (uvedit_edge_selected(em, scene, loop)) { + if (uvedit_edge_select_test(em, scene, loop)) { BM_elem_flag_enable(loop->e, BM_ELEM_SEAM); } } @@ -3543,6 +3665,7 @@ void ED_operatortypes_uvedit(void) WM_operatortype_append(UV_OT_unlink_selected); WM_operatortype_append(UV_OT_select_pinned); WM_operatortype_append(UV_OT_select_border); + WM_operatortype_append(UV_OT_select_lasso); WM_operatortype_append(UV_OT_circle_select); WM_operatortype_append(UV_OT_snap_cursor); @@ -3603,6 +3726,11 @@ void ED_keymap_uvedit(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "UV_OT_circle_select", CKEY, KM_PRESS, 0, 0); + kmi = WM_keymap_add_item(keymap, "UV_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL, 0); + RNA_boolean_set(kmi->ptr, "deselect", FALSE); + kmi = WM_keymap_add_item(keymap, "UV_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL | KM_SHIFT, 0); + RNA_boolean_set(kmi->ptr, "deselect", TRUE); + /* selection manipulation */ RNA_boolean_set(WM_keymap_add_item(keymap, "UV_OT_select_linked", LKEY, KM_PRESS, KM_CTRL, 0)->ptr, "extend", FALSE); RNA_boolean_set(WM_keymap_add_item(keymap, "UV_OT_select_linked_pick", LKEY, KM_PRESS, 0, 0)->ptr, "extend", FALSE); diff --git a/source/blender/editors/uvedit/uvedit_smart_stitch.c b/source/blender/editors/uvedit/uvedit_smart_stitch.c index 448072ebb72..e1b2d87c4f2 100644 --- a/source/blender/editors/uvedit/uvedit_smart_stitch.c +++ b/source/blender/editors/uvedit/uvedit_smart_stitch.c @@ -860,7 +860,7 @@ static int stitch_process_data(StitchState *state, Scene *scene, int final) if (final) { copy_v2_v2(luv->uv, final_position[i].uv); - uvedit_uv_select(state->em, scene, l); + uvedit_uv_select_enable(state->em, scene, l, FALSE); } else { int face_preview_pos = preview_position[BM_elem_index_get(element_iter->face)].data_position; @@ -1162,7 +1162,7 @@ static int stitch_init(bContext *C, wmOperator *op) EDBM_index_arrays_init(em, 0, 0, 1); - RNA_BEGIN(op->ptr, itemptr, "selection") { + RNA_BEGIN (op->ptr, itemptr, "selection") { faceIndex = RNA_int_get(&itemptr, "face_index"); elementIndex = RNA_int_get(&itemptr, "element_index"); efa = EDBM_face_at_index(em, faceIndex); @@ -1180,7 +1180,7 @@ static int stitch_init(bContext *C, wmOperator *op) BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { i = 0; BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { - if (uvedit_uv_selected(em, scene, l)) { + if (uvedit_uv_select_test(em, scene, l)) { UvElement *element = ED_uv_element_get(state->element_map, efa, l); stitch_select_uv(element, state, 1); } diff --git a/source/blender/editors/uvedit/uvedit_unwrap_ops.c b/source/blender/editors/uvedit/uvedit_unwrap_ops.c index 5a0fb69a26c..2a9d472c204 100644 --- a/source/blender/editors/uvedit/uvedit_unwrap_ops.c +++ b/source/blender/editors/uvedit/uvedit_unwrap_ops.c @@ -139,7 +139,7 @@ static int ED_uvedit_ensure_uvs(bContext *C, Scene *scene, Object *obedit) /* select new UV's */ BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) { - uvedit_face_select(scene, em, efa); + uvedit_face_select_enable(scene, em, efa, FALSE); } return 1; @@ -169,7 +169,7 @@ static int uvedit_have_selection(Scene *scene, BMEditMesh *em, short implicit) if (!luv) return 1; - if (uvedit_uv_selected(em, scene, l)) + if (uvedit_uv_select_test(em, scene, l)) break; } @@ -231,7 +231,7 @@ static ParamHandle *construct_param_handle(Scene *scene, BMEditMesh *em, lsel = 0; BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { - if (uvedit_uv_selected(em, scene, l)) { + if (uvedit_uv_select_test(em, scene, l)) { lsel = 1; break; } @@ -253,7 +253,7 @@ static ParamHandle *construct_param_handle(Scene *scene, BMEditMesh *em, co[i] = l->v->co; uv[i] = luv->uv; pin[i] = (luv->flag & MLOOPUV_PINNED) != 0; - select[i] = uvedit_uv_selected(em, scene, l) != 0; + select[i] = uvedit_uv_select_test(em, scene, l) != 0; i++; } @@ -300,7 +300,7 @@ static ParamHandle *construct_param_handle(Scene *scene, BMEditMesh *em, co[i] = ls[i]->v->co; uv[i] = luv->uv; pin[i] = (luv->flag & MLOOPUV_PINNED) != 0; - select[i] = uvedit_uv_selected(em, scene, ls[i]) != 0; + select[i] = uvedit_uv_select_test(em, scene, ls[i]) != 0; } param_face_add(handle, key, 3, vkeys, co, uv, pin, select); @@ -345,7 +345,7 @@ static void texface_from_original_index(BMFace *efa, int index, float **uv, Para luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV); *uv = luv->uv; *pin = (luv->flag & MLOOPUV_PINNED) ? 1 : 0; - *select = (uvedit_uv_selected(em, scene, l) != 0); + *select = (uvedit_uv_select_test(em, scene, l) != 0); } } } diff --git a/source/blender/gpu/intern/gpu_buffers.c b/source/blender/gpu/intern/gpu_buffers.c index 1dee327a066..980aed64ed9 100644 --- a/source/blender/gpu/intern/gpu_buffers.c +++ b/source/blender/gpu/intern/gpu_buffers.c @@ -861,7 +861,7 @@ const GPUBufferTypeSettings gpu_buffer_type_settings[] = { /* get the GPUDrawObject buffer associated with a type */ static GPUBuffer **gpu_drawobject_buffer_from_type(GPUDrawObject *gdo, GPUBufferType type) { - switch(type) { + switch (type) { case GPU_BUFFER_VERTEX: return &gdo->points; case GPU_BUFFER_NORMAL: @@ -882,7 +882,7 @@ static GPUBuffer **gpu_drawobject_buffer_from_type(GPUDrawObject *gdo, GPUBuffer /* get the amount of space to allocate for a buffer of a particular type */ static int gpu_buffer_size_from_type(DerivedMesh *dm, GPUBufferType type) { - switch(type) { + switch (type) { case GPU_BUFFER_VERTEX: return sizeof(float)*3 * (dm->drawObject->tot_triangle_point + dm->drawObject->tot_loose_point); case GPU_BUFFER_NORMAL: @@ -1059,7 +1059,7 @@ void GPU_uvedge_setup(DerivedMesh *dm) static int GPU_typesize(int type) { - switch(type) { + switch (type) { case GL_FLOAT: return sizeof(float); case GL_INT: diff --git a/source/blender/gpu/intern/gpu_codegen.c b/source/blender/gpu/intern/gpu_codegen.c index fc3878e2532..4113344760b 100644 --- a/source/blender/gpu/intern/gpu_codegen.c +++ b/source/blender/gpu/intern/gpu_codegen.c @@ -710,8 +710,10 @@ static void GPU_nodes_extract_dynamic_inputs(GPUPass *pass, ListBase *nodes) /* attributes don't need to be bound, they already have * an id that the drawing functions will use */ if (input->source == GPU_SOURCE_ATTRIB || - input->source == GPU_SOURCE_BUILTIN) + input->source == GPU_SOURCE_BUILTIN) + { continue; + } if (input->ima || input->tex) BLI_snprintf(input->shadername, sizeof(input->shadername), "samp%d", input->texid); @@ -1034,8 +1036,10 @@ static void gpu_nodes_get_vertex_attributes(ListBase *nodes, GPUVertexAttribs *a if (input->source == GPU_SOURCE_ATTRIB) { for (a=0; atotlayer; a++) { if (attribs->layer[a].type == input->attribtype && - strcmp(attribs->layer[a].name, input->attribname) == 0) + strcmp(attribs->layer[a].name, input->attribname) == 0) + { break; + } } if (a == attribs->totlayer && a < GPU_MAX_ATTRIB) { diff --git a/source/blender/gpu/intern/gpu_draw.c b/source/blender/gpu/intern/gpu_draw.c index 01f000e3314..c830971dcbd 100644 --- a/source/blender/gpu/intern/gpu_draw.c +++ b/source/blender/gpu/intern/gpu_draw.c @@ -441,9 +441,11 @@ int GPU_verify_image(Image *ima, ImageUser *iuser, int tftile, int compare, int /* if same image & tile, we're done */ if (compare && ima == GTS.curima && GTS.curtile == GTS.tile && - GTS.tilemode == GTS.curtilemode && GTS.curtileXRep == GTS.tileXRep && - GTS.curtileYRep == GTS.tileYRep) + GTS.tilemode == GTS.curtilemode && GTS.curtileXRep == GTS.tileXRep && + GTS.curtileYRep == GTS.tileYRep) + { return (ima != NULL); + } /* if tiling mode or repeat changed, change texture matrix to fit */ if (GTS.tilemode!=GTS.curtilemode || GTS.curtileXRep!=GTS.tileXRep || diff --git a/source/blender/gpu/intern/gpu_extensions.c b/source/blender/gpu/intern/gpu_extensions.c index 6c30c95f355..83d9619f217 100644 --- a/source/blender/gpu/intern/gpu_extensions.c +++ b/source/blender/gpu/intern/gpu_extensions.c @@ -171,14 +171,16 @@ void GPU_extensions_init(void) * New IDs from MESA's src/gallium/drivers/r300/r300_screen.c */ if (strstr(renderer, "R3") || strstr(renderer, "RV3") || - strstr(renderer, "R4") || strstr(renderer, "RV4") || - strstr(renderer, "RS4") || strstr(renderer, "RC4") || - strstr(renderer, "R5") || strstr(renderer, "RV5") || - strstr(renderer, "RS600") || strstr(renderer, "RS690") || - strstr(renderer, "RS740") || strstr(renderer, "X1") || - strstr(renderer, "X2") || strstr(renderer, "Radeon 9") || - strstr(renderer, "RADEON 9")) + strstr(renderer, "R4") || strstr(renderer, "RV4") || + strstr(renderer, "RS4") || strstr(renderer, "RC4") || + strstr(renderer, "R5") || strstr(renderer, "RV5") || + strstr(renderer, "RS600") || strstr(renderer, "RS690") || + strstr(renderer, "RS740") || strstr(renderer, "X1") || + strstr(renderer, "X2") || strstr(renderer, "Radeon 9") || + strstr(renderer, "RADEON 9")) + { GG.npotdisabled = 1; + } } /* make sure double side isn't used by default and only getting enabled in places where it's @@ -236,7 +238,7 @@ static void GPU_print_framebuffer_error(GLenum status, char err_out[256]) { const char *err= "unknown"; - switch(status) { + switch (status) { case GL_FRAMEBUFFER_COMPLETE_EXT: break; case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT: diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c index ab5f2040175..e14e4dce405 100644 --- a/source/blender/gpu/intern/gpu_material.c +++ b/source/blender/gpu/intern/gpu_material.c @@ -397,8 +397,7 @@ static GPUNodeLink *lamp_get_visibility(GPUMaterial *mat, GPULamp *lamp, GPUNode if (lamp->type==LA_AREA) return visifac; - switch(lamp->falloff_type) - { + switch (lamp->falloff_type) { case LA_FALLOFF_CONSTANT: break; case LA_FALLOFF_INVLINEAR: @@ -535,7 +534,7 @@ static void add_to_diffuse(GPUMaterial *mat, Material *ma, GPUShadeInput *shi, G } else { /* input */ - switch(ma->rampin_col) { + switch (ma->rampin_col) { case MA_RAMP_IN_ENERGY: GPU_link(mat, "ramp_rgbtobw", rgb, &fac); break; @@ -588,7 +587,7 @@ static void do_specular_ramp(GPUShadeInput *shi, GPUNodeLink *is, GPUNodeLink *t if (ma->ramp_spec && (ma->rampin_spec!=MA_RAMP_IN_RESULT)) { /* input */ - switch(ma->rampin_spec) { + switch (ma->rampin_spec) { case MA_RAMP_IN_ENERGY: fac = t; break; @@ -807,7 +806,7 @@ static void material_lights(GPUShadeInput *shi, GPUShadeResult *shr) static void texture_rgb_blend(GPUMaterial *mat, GPUNodeLink *tex, GPUNodeLink *out, GPUNodeLink *fact, GPUNodeLink *facg, int blendtype, GPUNodeLink **in) { - switch(blendtype) { + switch (blendtype) { case MTEX_BLEND: GPU_link(mat, "mtex_rgb_blend", out, tex, fact, facg, in); break; @@ -858,7 +857,7 @@ static void texture_rgb_blend(GPUMaterial *mat, GPUNodeLink *tex, GPUNodeLink *o static void texture_value_blend(GPUMaterial *mat, GPUNodeLink *tex, GPUNodeLink *out, GPUNodeLink *fact, GPUNodeLink *facg, int blendtype, GPUNodeLink **in) { - switch(blendtype) { + switch (blendtype) { case MTEX_BLEND: GPU_link(mat, "mtex_value_blend", out, tex, fact, facg, in); break; @@ -1767,7 +1766,7 @@ GPUShaderExport *GPU_shader_export(struct Scene *scene, struct Material *ma) uniform->datatype = GPU_DATA_1I; BLI_strncpy(uniform->varname, input->shadername, sizeof(uniform->varname)); - switch(input->textype) { + switch (input->textype) { case GPU_SHADOW2D: uniform->type = GPU_DYNAMIC_SAMPLER_2DSHADOW; uniform->lamp = input->dynamicdata; @@ -1788,7 +1787,7 @@ GPUShaderExport *GPU_shader_export(struct Scene *scene, struct Material *ma) else { uniform->type = input->dynamictype; BLI_strncpy(uniform->varname, input->shadername, sizeof(uniform->varname)); - switch(input->type) { + switch (input->type) { case 1: uniform->datatype = GPU_DATA_1F; break; @@ -1847,7 +1846,7 @@ GPUShaderExport *GPU_shader_export(struct Scene *scene, struct Material *ma) attribute->number = mat->attribs.layer[i].glindex; BLI_snprintf(attribute->varname, sizeof(attribute->varname), "att%d", mat->attribs.layer[i].attribid); - switch(attribute->type) { + switch (attribute->type) { case CD_TANGENT: attribute->datatype = GPU_DATA_4F; break; diff --git a/source/blender/ikplugin/intern/itasc_plugin.cpp b/source/blender/ikplugin/intern/itasc_plugin.cpp index ccfe2eaa862..a288f330224 100644 --- a/source/blender/ikplugin/intern/itasc_plugin.cpp +++ b/source/blender/ikplugin/intern/itasc_plugin.cpp @@ -502,8 +502,7 @@ static void GetEulerXYZ(const KDL::Rotation& R, double& X,double& Y,double& Z) static void GetJointRotation(KDL::Rotation& boneRot, int type, double* rot) { - switch (type & ~IK_TRANSY) - { + switch (type & ~IK_TRANSY) { default: // fixed bone, no joint break; @@ -825,8 +824,7 @@ static bool joint_callback(const iTaSC::Timestamp& timestamp, iTaSC::ConstraintV } // determine which part of jointValue is used for this joint // closely related to the way the joints are defined - switch (ikchan->jointType & ~IK_TRANSY) - { + switch (ikchan->jointType & ~IK_TRANSY) { case IK_XDOF: case IK_YDOF: case IK_ZDOF: @@ -881,15 +879,21 @@ static int convert_channels(IK_Scene *ikscene, PoseTree *tree) /* set DoF flag */ flag = 0; - if (!(pchan->ikflag & BONE_IK_NO_XDOF) && !(pchan->ikflag & BONE_IK_NO_XDOF_TEMP) && - (!(pchan->ikflag & BONE_IK_XLIMIT) || pchan->limitmin[0]<0.f || pchan->limitmax[0]>0.f)) + if (!(pchan->ikflag & BONE_IK_NO_XDOF) && !(pchan->ikflag & BONE_IK_NO_XDOF_TEMP) && + (!(pchan->ikflag & BONE_IK_XLIMIT) || pchan->limitmin[0]<0.f || pchan->limitmax[0]>0.f)) + { flag |= IK_XDOF; + } if (!(pchan->ikflag & BONE_IK_NO_YDOF) && !(pchan->ikflag & BONE_IK_NO_YDOF_TEMP) && - (!(pchan->ikflag & BONE_IK_YLIMIT) || pchan->limitmin[1]<0.f || pchan->limitmax[1]>0.f)) + (!(pchan->ikflag & BONE_IK_YLIMIT) || pchan->limitmin[1]<0.f || pchan->limitmax[1]>0.f)) + { flag |= IK_YDOF; + } if (!(pchan->ikflag & BONE_IK_NO_ZDOF) && !(pchan->ikflag & BONE_IK_NO_ZDOF_TEMP) && - (!(pchan->ikflag & BONE_IK_ZLIMIT) || pchan->limitmin[2]<0.f || pchan->limitmax[2]>0.f)) + (!(pchan->ikflag & BONE_IK_ZLIMIT) || pchan->limitmin[2]<0.f || pchan->limitmax[2]>0.f)) + { flag |= IK_ZDOF; + } if (tree->stretch && (pchan->ikstretch > 0.0)) { flag |= IK_TRANSY; @@ -921,8 +925,7 @@ static int convert_channels(IK_Scene *ikscene, PoseTree *tree) * bone length is computed from bone->length multiplied by the scaling factor of * the armature. Non-uniform scaling will give bad result! */ - switch (flag & (IK_XDOF|IK_YDOF|IK_ZDOF)) - { + switch (flag & (IK_XDOF|IK_YDOF|IK_ZDOF)) { default: ikchan->jointType = 0; ikchan->ndof = 0; @@ -1165,8 +1168,7 @@ static IK_Scene* convert_tree(Scene *blscene, Object *ob, bPoseChannel *pchan) weight[0] = (1.0-pchan->stiffness[0]); weight[1] = (1.0-pchan->stiffness[1]); weight[2] = (1.0-pchan->stiffness[2]); - switch (ikchan->jointType & ~IK_TRANSY) - { + switch (ikchan->jointType & ~IK_TRANSY) { case 0: // fixed bone if (!(ikchan->jointType & IK_TRANSY)) { @@ -1512,7 +1514,7 @@ static void create_scene(Scene *scene, Object *ob) ikdata->first = ikscene; } // delete the trees once we are done - while(tree) { + while (tree) { BLI_remlink(&pchan->iktree, tree); BLI_freelistN(&tree->targets); if (tree->pchan) MEM_freeN(tree->pchan); @@ -1610,10 +1612,12 @@ static void execute_scene(Scene* blscene, IK_Scene* ikscene, bItasc* ikparam, fl ikscene->scene->update(timestamp, timestep, numstep, false, !reiterate, simulation); if (reiterate) { // how many times do we reiterate? - for (i=0; inumiter; i++) { + for (i = 0; inumiter; i++) { if (ikscene->armature->getMaxJointChange() < ikparam->precision || - ikscene->armature->getMaxEndEffectorChange() < ikparam->precision) + ikscene->armature->getMaxEndEffectorChange() < ikparam->precision) + { break; + } ikscene->scene->update(timestamp, timestep, numstep, true, false, simulation); } if (simulation) { diff --git a/source/blender/imbuf/intern/anim_movie.c b/source/blender/imbuf/intern/anim_movie.c index 0c8f932db6a..d0d141a8ef8 100644 --- a/source/blender/imbuf/intern/anim_movie.c +++ b/source/blender/imbuf/intern/anim_movie.c @@ -1271,7 +1271,7 @@ struct ImBuf * IMB_anim_absolute(struct anim * anim, int position, } } - switch(anim->curtype) { + switch (anim->curtype) { case ANIM_SEQUENCE: pic = an_stringdec(anim->first, head, tail, &digits); pic += position; diff --git a/source/blender/imbuf/intern/dds/ColorBlock.cpp b/source/blender/imbuf/intern/dds/ColorBlock.cpp index 42ef799cf3e..42bec5874ca 100644 --- a/source/blender/imbuf/intern/dds/ColorBlock.cpp +++ b/source/blender/imbuf/intern/dds/ColorBlock.cpp @@ -93,12 +93,10 @@ void ColorBlock::init(uint w, uint h, const uint * data, uint x, uint y) // @@ Thats only correct when block size is 1, 2 or 4, but not with 3. :( // @@ Ideally we should zero the weights of the pixels out of range. - for (uint i = 0; i < 4; i++) - { + for (uint i = 0; i < 4; i++) { const int by = i % bh; - for (uint e = 0; e < 4; e++) - { + for (uint e = 0; e < 4; e++) { const int bx = e % bw; const uint idx = (y + by) * w + x + bx; @@ -118,12 +116,10 @@ void ColorBlock::init(uint w, uint h, const float * data, uint x, uint y) uint srcPlane = w * h; - for (uint i = 0; i < 4; i++) - { + for (uint i = 0; i < 4; i++) { const uint by = i % bh; - for (uint e = 0; e < 4; e++) - { + for (uint e = 0; e < 4; e++) { const uint bx = e % bw; const uint idx = ((y + by) * w + x + bx); @@ -148,8 +144,7 @@ static inline uint8 component(Color32 c, uint i) void ColorBlock::swizzle(uint x, uint y, uint z, uint w) { - for (int i = 0; i < 16; i++) - { + for (int i = 0; i < 16; i++) { Color32 c = m_color[i]; m_color[i].r = component(c, x); m_color[i].g = component(c, y); @@ -164,10 +159,8 @@ bool ColorBlock::isSingleColor(Color32 mask/*= Color32(0xFF, 0xFF, 0xFF, 0x00)*/ { uint u = m_color[0].u & mask.u; - for (int i = 1; i < 16; i++) - { - if (u != (m_color[i].u & mask.u)) - { + for (int i = 1; i < 16; i++) { + if (u != (m_color[i].u & mask.u)) { return false; } } @@ -243,8 +236,7 @@ Color32 ColorBlock::averageColor() const /// Return true if the block is not fully opaque. bool ColorBlock::hasAlpha() const { - for (uint i = 0; i < 16; i++) - { + for (uint i = 0; i < 16; i++) { if (m_color[i].a != 255) return true; } return false; diff --git a/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp b/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp index e2874652f02..3966135ea32 100644 --- a/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp +++ b/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp @@ -308,7 +308,7 @@ static const uint DDPF_SRGB = 0x40000000U; const char * getDxgiFormatString(DXGI_FORMAT dxgiFormat) { #define CASE(format) case DXGI_FORMAT_##format: return #format - switch(dxgiFormat) + switch (dxgiFormat) { CASE(UNKNOWN); @@ -431,7 +431,7 @@ static const uint DDPF_SRGB = 0x40000000U; const char * getD3d10ResourceDimensionString(D3D10_RESOURCE_DIMENSION resourceDimension) { - switch(resourceDimension) + switch (resourceDimension) { default: case D3D10_RESOURCE_DIMENSION_UNKNOWN: return "UNKNOWN"; @@ -1305,7 +1305,7 @@ void DirectDrawSurface::readBlock(ColorBlock * rgba) uint DirectDrawSurface::blockSize() const { - switch(header.pf.fourcc) + switch (header.pf.fourcc) { case FOURCC_DXT1: case FOURCC_ATI1: @@ -1318,7 +1318,7 @@ uint DirectDrawSurface::blockSize() const case FOURCC_ATI2: return 16; case FOURCC_DX10: - switch(header.header10.dxgiFormat) + switch (header.header10.dxgiFormat) { case DXGI_FORMAT_BC1_TYPELESS: case DXGI_FORMAT_BC1_UNORM: diff --git a/source/blender/imbuf/intern/dds/PixelFormat.h b/source/blender/imbuf/intern/dds/PixelFormat.h index 3c5cb34812c..308ea810f03 100644 --- a/source/blender/imbuf/intern/dds/PixelFormat.h +++ b/source/blender/imbuf/intern/dds/PixelFormat.h @@ -66,17 +66,14 @@ // Convert component \a c having \a inbits to the returned value having \a outbits. inline uint convert(uint c, uint inbits, uint outbits) { - if (inbits == 0) - { + if (inbits == 0) { return 0; } - else if (inbits >= outbits) - { + else if (inbits >= outbits) { // truncate return c >> (inbits - outbits); } - else - { + else { // bitexpand return (c << (outbits - inbits)) | convert(c, inbits, outbits - inbits); } @@ -85,21 +82,20 @@ // Get pixel component shift and size given its mask. inline void maskShiftAndSize(uint mask, uint * shift, uint * size) { - if (!mask) - { + if (!mask) { *shift = 0; *size = 0; return; } *shift = 0; - while((mask & 1) == 0) { + while ((mask & 1) == 0) { ++(*shift); mask >>= 1; } *size = 0; - while((mask & 1) == 1) { + while ((mask & 1) == 1) { ++(*size); mask >>= 1; } diff --git a/source/blender/imbuf/intern/jpeg.c b/source/blender/imbuf/intern/jpeg.c index 3f3ebc5872d..87e56bffb41 100644 --- a/source/blender/imbuf/intern/jpeg.c +++ b/source/blender/imbuf/intern/jpeg.c @@ -321,7 +321,7 @@ static ImBuf * ibJpegImageFromCinfo(struct jpeg_decompress_struct * cinfo, int f rect = (uchar *) (ibuf->rect + y * ibuf->x); buffer = row_pointer[0]; - switch(depth) { + switch (depth) { case 1: for (x=ibuf->x; x >0; x--) { rect[3] = 255; @@ -524,7 +524,7 @@ next_stamp_info: rect = (uchar *) (ibuf->rect + y * ibuf->x); buffer = row_pointer[0]; - switch(cinfo->in_color_space) { + switch (cinfo->in_color_space) { case JCS_RGB: for (x = 0; x < ibuf->x; x++) { *buffer++ = rect[0]; @@ -577,7 +577,7 @@ static int init_jpeg(FILE * outfile, struct jpeg_compress_struct * cinfo, struct if (ibuf->planes == 32) cinfo->in_color_space = JCS_UNKNOWN; #endif - switch(cinfo->in_color_space) { + switch (cinfo->in_color_space) { case JCS_RGB: cinfo->input_components = 3; break; diff --git a/source/blender/imbuf/intern/openexr/openexr_api.cpp b/source/blender/imbuf/intern/openexr/openexr_api.cpp index ff3a816f478..44b7472b910 100644 --- a/source/blender/imbuf/intern/openexr/openexr_api.cpp +++ b/source/blender/imbuf/intern/openexr/openexr_api.cpp @@ -117,8 +117,7 @@ private: bool Mem_IStream::read (char c[], int n) { - if (n + _exrpos <= _exrsize) - { + if (n + _exrpos <= _exrsize) { memcpy(c, (void *)(&_exrbuf[_exrpos]), n); _exrpos += n; return true; @@ -162,8 +161,7 @@ int imb_is_a_openexr(unsigned char *mem) static void openexr_header_compression(Header *header, int compression) { - switch(compression) - { + switch (compression) { case 0: header->compression() = NO_COMPRESSION; break; @@ -236,12 +234,10 @@ static int imb_save_openexr_half(struct ImBuf *ibuf, const char *name, int flags if (ibuf->rect_float) { float *from; - for (int i = ibuf->y-1; i >= 0; i--) - { + for (int i = ibuf->y-1; i >= 0; i--) { from= ibuf->rect_float + channels*i*width; - for (int j = ibuf->x; j > 0; j--) - { + for (int j = ibuf->x; j > 0; j--) { to->r = from[0]; to->g = from[1]; to->b = from[2]; @@ -254,12 +250,10 @@ static int imb_save_openexr_half(struct ImBuf *ibuf, const char *name, int flags unsigned char *from; if (ibuf->profile == IB_PROFILE_LINEAR_RGB) { - for (int i = ibuf->y-1; i >= 0; i--) - { + for (int i = ibuf->y-1; i >= 0; i--) { from= (unsigned char *)ibuf->rect + channels*i*width; - for (int j = ibuf->x; j > 0; j--) - { + for (int j = ibuf->x; j > 0; j--) { to->r = (float)(from[0])/255.0; to->g = (float)(from[1])/255.0; to->b = (float)(from[2])/255.0; @@ -269,12 +263,10 @@ static int imb_save_openexr_half(struct ImBuf *ibuf, const char *name, int flags } } else { - for (int i = ibuf->y-1; i >= 0; i--) - { + for (int i = ibuf->y-1; i >= 0; i--) { from= (unsigned char *)ibuf->rect + channels*i*width; - for (int j = ibuf->x; j > 0; j--) - { + for (int j = ibuf->x; j > 0; j--) { to->r = srgb_to_linearrgb((float)from[0] / 255.0); to->g = srgb_to_linearrgb((float)from[1] / 255.0); to->b = srgb_to_linearrgb((float)from[2] / 255.0); @@ -364,8 +356,7 @@ static int imb_save_openexr_float(struct ImBuf *ibuf, const char *name, int flag int imb_save_openexr(struct ImBuf *ibuf, const char *name, int flags) { - if (flags & IB_mem) - { + if (flags & IB_mem) { printf("OpenEXR-save: Create EXR in memory CURRENTLY NOT SUPPORTED !\n"); imb_addencodedbufferImBuf(ibuf); ibuf->encodedsize = 0; @@ -743,7 +734,7 @@ static int imb_exr_split_channel_name(ExrChannel *echan, char *layname, char *pa echan->chan_id= echan->name[len-1]; len-= 3; - while(len>=0) { + while (len>=0) { if (echan->name[len]=='.') break; len--; @@ -913,8 +904,7 @@ static void exr_print_filecontents(InputFile *file) { const ChannelList &channels = file->header().channels(); - for (ChannelList::ConstIterator i = channels.begin(); i != channels.end(); ++i) - { + for (ChannelList::ConstIterator i = channels.begin(); i != channels.end(); ++i) { const Channel &channel = i.channel(); printf("OpenEXR-load: Found channel %s of type %d\n", i.name(), channel.type); } @@ -925,8 +915,7 @@ static const char *exr_rgba_channelname(InputFile *file, const char *chan) { const ChannelList &channels = file->header().channels(); - for (ChannelList::ConstIterator i = channels.begin(); i != channels.end(); ++i) - { + for (ChannelList::ConstIterator i = channels.begin(); i != channels.end(); ++i) { /* const Channel &channel = i.channel(); */ /* Not used yet */ const char *str= i.name(); int len= strlen(str); @@ -986,8 +975,7 @@ struct ImBuf *imb_load_openexr(unsigned char *mem, size_t size, int flags) is_multi= exr_is_multilayer(file); /* do not make an ibuf when */ - if (is_multi && !(flags & IB_test) && !(flags & IB_multilayer)) - { + if (is_multi && !(flags & IB_test) && !(flags & IB_multilayer)) { printf("Error: can't process EXR multilayer file\n"); } else { @@ -998,10 +986,8 @@ struct ImBuf *imb_load_openexr(unsigned char *mem, size_t size, int flags) /* openEXR is linear as per EXR spec */ ibuf->profile = IB_PROFILE_LINEAR_RGB; - if (!(flags & IB_test)) - { - if (is_multi) /* only enters with IB_multilayer flag set */ - { + if (!(flags & IB_test)) { + if (is_multi) { /* only enters with IB_multilayer flag set */ /* constructs channels for reading, allocates memory in channels */ ExrHandle *handle= imb_exr_begin_read_mem(file, width, height); if (handle) { @@ -1032,8 +1018,7 @@ struct ImBuf *imb_load_openexr(unsigned char *mem, size_t size, int flags) frameBuffer.insert ( exr_rgba_channelname(file, "A"), Slice (Imf::FLOAT, (char *) (first+3), xstride, ystride, 1, 1, 1.0f)); /* 1.0 is fill value */ - if (exr_has_zbuffer(file)) - { + if (exr_has_zbuffer(file)) { float *firstz; addzbuffloatImBuf(ibuf); diff --git a/source/blender/imbuf/intern/png.c b/source/blender/imbuf/intern/png.c index 74e1a4084c2..513fcb9b6dc 100644 --- a/source/blender/imbuf/intern/png.c +++ b/source/blender/imbuf/intern/png.c @@ -358,7 +358,7 @@ struct ImBuf *imb_loadpng(unsigned char *mem, size_t size, int flags) bytesperpixel = png_get_channels(png_ptr, info_ptr); - switch(color_type) { + switch (color_type) { case PNG_COLOR_TYPE_RGB: case PNG_COLOR_TYPE_RGB_ALPHA: break; diff --git a/source/blender/imbuf/intern/radiance_hdr.c b/source/blender/imbuf/intern/radiance_hdr.c index 524f96b72af..66acd952ac0 100644 --- a/source/blender/imbuf/intern/radiance_hdr.c +++ b/source/blender/imbuf/intern/radiance_hdr.c @@ -192,8 +192,11 @@ struct ImBuf *imb_loadhdr(unsigned char *mem, size_t size, int flags) } } if (found && (x<(size + 2))) { - if (sscanf((char *)&mem[x+1], "%79s %d %79s %d", (char*)&oriY, &height, - (char*)&oriX, &width) != 4) return NULL; + if (sscanf((char *)&mem[x + 1], "%79s %d %79s %d", (char *)&oriY, &height, + (char*)&oriX, &width) != 4) + { + return NULL; + } /* find end of this line, data right behind it */ ptr = (unsigned char *)strchr((char*)&mem[x+1], '\n'); diff --git a/source/blender/imbuf/intern/targa.c b/source/blender/imbuf/intern/targa.c index 7aceb695d00..0ed9b99d0ee 100644 --- a/source/blender/imbuf/intern/targa.c +++ b/source/blender/imbuf/intern/targa.c @@ -288,7 +288,7 @@ int imb_savetarga(struct ImBuf * ibuf, const char *name, int flags) ok = dumptarga(ibuf, fildes); } else { - switch((ibuf->planes + 7) >> 3) { + switch ((ibuf->planes + 7) >> 3) { case 1: ok = makebody_tga(ibuf, fildes, tga_out1); break; @@ -617,7 +617,7 @@ struct ImBuf *imb_loadtarga(unsigned char *mem, size_t mem_size, int flags) } } - switch(tga.imgtyp) { + switch (tga.imgtyp) { case 1: case 2: case 3: diff --git a/source/blender/imbuf/intern/thumbs.c b/source/blender/imbuf/intern/thumbs.c index 5d64e1b2aec..9aeed8002e1 100644 --- a/source/blender/imbuf/intern/thumbs.c +++ b/source/blender/imbuf/intern/thumbs.c @@ -83,7 +83,7 @@ static int get_thumb_dir( char* dir , ThumbSize size) if (!home) return 0; BLI_strncpy(dir, home, FILE_MAX); #endif - switch(size) { + switch (size) { case THB_NORMAL: strcat(dir, "/.thumbnails/normal/"); break; @@ -269,7 +269,7 @@ ImBuf* IMB_thumb_create(const char* path, ThumbSize size, ThumbSource source, Im float scaledx, scaledy; struct stat info; - switch(size) { + switch (size) { case THB_NORMAL: tsize = 128; break; diff --git a/source/blender/imbuf/intern/util.c b/source/blender/imbuf/intern/util.c index b5fdb897d14..9e819e56da5 100644 --- a/source/blender/imbuf/intern/util.c +++ b/source/blender/imbuf/intern/util.c @@ -250,7 +250,7 @@ static int isffmpeg (const char *filename) do_init_ffmpeg(); - if ( BLI_testextensie(filename, ".swf") || + if (BLI_testextensie(filename, ".swf") || BLI_testextensie(filename, ".jpg") || BLI_testextensie(filename, ".png") || BLI_testextensie(filename, ".dds") || @@ -258,7 +258,10 @@ static int isffmpeg (const char *filename) BLI_testextensie(filename, ".bmp") || BLI_testextensie(filename, ".exr") || BLI_testextensie(filename, ".cin") || - BLI_testextensie(filename, ".wav")) return 0; + BLI_testextensie(filename, ".wav")) + { + return 0; + } if (av_open_input_file(&pFormatCtx, filename, NULL, 0, NULL)!=0) { if (UTIL_DEBUG) fprintf(stderr, "isffmpeg: av_open_input_file failed\n"); diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h index 6c1d9892ba2..30280e95646 100644 --- a/source/blender/makesdna/DNA_modifier_types.h +++ b/source/blender/makesdna/DNA_modifier_types.h @@ -898,7 +898,7 @@ typedef struct WeightVGEditModifierData { typedef struct WeightVGMixModifierData { ModifierData modifier; - /* XXX Note: I tried to keep everything logically ordered – provided the + /* XXX Note: I tried to keep everything logically ordered - provided the * alignment constraints... */ char defgrp_name_a[64]; /* Name of vertex group to modify/weight. MAX_VGROUP_NAME. */ diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h index 86a2bb60cc9..05a96ef2f35 100644 --- a/source/blender/makesdna/DNA_object_types.h +++ b/source/blender/makesdna/DNA_object_types.h @@ -319,8 +319,12 @@ typedef struct DupliObject { #define OB_ARMATURE 25 /* check if the object type supports materials */ -#define OB_TYPE_SUPPORT_MATERIAL(_type) ((_type) >= OB_MESH && (_type) <= OB_MBALL) -#define OB_TYPE_SUPPORT_VGROUP(_type) (ELEM(_type, OB_MESH, OB_LATTICE)) +#define OB_TYPE_SUPPORT_MATERIAL(_type) \ + ((_type) >= OB_MESH && (_type) <= OB_MBALL) +#define OB_TYPE_SUPPORT_VGROUP(_type) \ + (ELEM(_type, OB_MESH, OB_LATTICE)) +#define OB_TYPE_SUPPORT_EDITMODE(_type) \ + (ELEM7(_type, OB_MESH, OB_FONT, OB_CURVE, OB_SURF, OB_MBALL, OB_LATTICE, OB_ARMATURE)) /* partype: first 4 bits: type */ #define PARTYPE 15 diff --git a/source/blender/makesdna/intern/dna_genfile.c b/source/blender/makesdna/intern/dna_genfile.c index ef7a2746d37..41c04ca0899 100644 --- a/source/blender/makesdna/intern/dna_genfile.c +++ b/source/blender/makesdna/intern/dna_genfile.c @@ -692,7 +692,7 @@ static void cast_elem(const char *ctype, const char *otype, const char *name, ch curlen= DNA_elem_type_size(ctypenr); while (arrlen>0) { - switch(otypenr) { + switch (otypenr) { case SDNA_TYPE_CHAR: val= *olddata; break; case SDNA_TYPE_UCHAR: @@ -717,7 +717,7 @@ static void cast_elem(const char *ctype, const char *otype, const char *name, ch val= *( (uint64_t *)olddata); break; } - switch(ctypenr) { + switch (ctypenr) { case SDNA_TYPE_CHAR: *curdata= val; break; case SDNA_TYPE_UCHAR: diff --git a/source/blender/makesdna/intern/makesdna.c b/source/blender/makesdna/intern/makesdna.c index f67fff460f1..f9572e1313a 100644 --- a/source/blender/makesdna/intern/makesdna.c +++ b/source/blender/makesdna/intern/makesdna.c @@ -889,8 +889,7 @@ void dna_write(FILE *file, void *pntr, int size) data = (char *) pntr; - for (i = 0 ; i < size ; i++) - { + for (i = 0 ; i < size ; i++) { fprintf(file, "%d,", data[i]); linelength++; if (linelength >= MAX_DNA_LINE_LENGTH) { diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index e083a690fba..ca29dcd341d 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -1359,8 +1359,10 @@ static void rna_def_property_funcs(FILE *f, StructRNA *srna, PropertyDefRNA *dp) * array get/next function, we can be sure it is an actual array */ if (cprop->next && cprop->get) if (strcmp((const char*)cprop->next, "rna_iterator_array_next") == 0 && - strcmp((const char*)cprop->get, "rna_iterator_array_get") == 0) + strcmp((const char*)cprop->get, "rna_iterator_array_get") == 0) + { prop->flag |= PROP_RAW_ARRAY; + } cprop->get = (void*)rna_def_property_get_func(f, srna, prop, dp, (const char*)cprop->get); cprop->begin = (void*)rna_def_property_begin_func(f, srna, prop, dp, (const char*)cprop->begin); diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 3200b271718..18edcf1344f 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -615,7 +615,7 @@ PropertyRNA *RNA_struct_find_nested(PointerRNA *ptr, StructRNA *srna) { PropertyRNA *prop = NULL; - RNA_STRUCT_BEGIN(ptr, iprop) { + RNA_STRUCT_BEGIN (ptr, iprop) { /* This assumes that there can only be one user of this nested struct */ if (RNA_property_pointer_type(ptr, iprop) == srna) { prop = iprop; @@ -637,7 +637,7 @@ int RNA_struct_contains_property(PointerRNA *ptr, PropertyRNA *prop_test) iterprop = RNA_struct_iterator_property(ptr->type); - RNA_PROP_BEGIN(ptr, itemptr, iterprop) { + RNA_PROP_BEGIN (ptr, itemptr, iterprop) { /* PropertyRNA *prop= itemptr.data; */ if (prop_test == (PropertyRNA *)itemptr.data) { found = TRUE; @@ -684,7 +684,7 @@ FunctionRNA *RNA_struct_find_function(PointerRNA *ptr, const char *identifier) func = NULL; - RNA_PROP_BEGIN(&tptr, funcptr, iterprop) { + RNA_PROP_BEGIN (&tptr, funcptr, iterprop) { if (strcmp(identifier, RNA_function_identifier(funcptr.data)) == 0) { func = funcptr.data; break; @@ -3122,12 +3122,13 @@ static int rna_raw_access(ReportList *reports, PointerRNA *ptr, PropertyRNA *pro if (((itemtype == PROP_BOOLEAN || itemtype == PROP_INT) && in.type == PROP_RAW_INT) || (itemtype == PROP_FLOAT && in.type == PROP_RAW_FLOAT)) + { /* avoid creating temporary buffer if the data type match */ needconv = 0; - + } /* no item property pointer, can still be id property, or * property of a type derived from the collection pointer type */ - RNA_PROP_BEGIN(ptr, itemptr, prop) { + RNA_PROP_BEGIN (ptr, itemptr, prop) { if (itemptr.data) { if (itemprop) { /* we got the property already */ @@ -4498,7 +4499,7 @@ char *RNA_pointer_as_string(bContext *C, PointerRNA *ptr) BLI_dynstr_append(dynstr, "{"); - RNA_STRUCT_BEGIN(ptr, prop) { + RNA_STRUCT_BEGIN (ptr, prop) { propname = RNA_property_identifier(prop); if (strcmp(propname, "rna_type") == 0) @@ -4541,7 +4542,7 @@ char *RNA_pointer_as_string_keywords_ex(bContext *C, PointerRNA *ptr, PointerRNA PropertyRNA *prop_default; char *buf_default; - RNA_PROP_BEGIN(ptr, propptr, iterprop) { + RNA_PROP_BEGIN (ptr, propptr, iterprop) { prop = propptr.data; flag = RNA_property_flag(prop); diff --git a/source/blender/makesrna/intern/rna_actuator.c b/source/blender/makesrna/intern/rna_actuator.c index e564c03df14..e8eed526a7c 100644 --- a/source/blender/makesrna/intern/rna_actuator.c +++ b/source/blender/makesrna/intern/rna_actuator.c @@ -1451,22 +1451,6 @@ static void rna_def_scene_actuator(BlenderRNA *brna) RNA_def_property_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "Scene", "Scene to be added/removed/paused/resumed"); RNA_def_property_update(prop, NC_LOGIC, NULL); - - /* XXX no need for those tooltips. to remove soon - * Originally we had different 'scene' tooltips for different values of 'type'. - * They were: - * ACT_SCENE_RESTART "" - * ACT_SCENE_CAMERA "" - * ACT_SCENE_SET "Set this Scene" - * ACT_SCENE_ADD_FRONT "Add an Overlay Scene" - * ACT_SCENE_ADD_BACK "Add a Background Scene" - * ACT_SCENE_REMOVE "Remove a Scene" - * ACT_SCENE_SUSPEND "Pause a Scene" - * ACT_SCENE_RESUME "Unpause a Scene" - * - * It can be done in the ui script if still needed. - */ - } static void rna_def_random_actuator(BlenderRNA *brna) diff --git a/source/blender/makesrna/intern/rna_curve.c b/source/blender/makesrna/intern/rna_curve.c index 5bf52c0d552..86a2d6c9a46 100644 --- a/source/blender/makesrna/intern/rna_curve.c +++ b/source/blender/makesrna/intern/rna_curve.c @@ -100,12 +100,12 @@ static const EnumPropertyItem curve2d_fill_mode_items[] = { #include "MEM_guardedalloc.h" -#include "ED_curve.h" /* for BKE_curve_nurbs */ +#include "ED_curve.h" /* for BKE_curve_nurbs_get */ /* highly irritating but from RNA we cant know this */ static Nurb *curve_nurb_from_point(Curve *cu, const void *point, int *nu_index, int *pt_index) { - ListBase *nurbs = BKE_curve_nurbs(cu); + ListBase *nurbs = BKE_curve_nurbs_get(cu); Nurb *nu; int i = 0; @@ -139,7 +139,7 @@ static Nurb *curve_nurb_from_point(Curve *cu, const void *point, int *nu_index, static StructRNA *rna_Curve_refine(PointerRNA *ptr) { Curve *cu = (Curve*)ptr->data; - short obtype = curve_type(cu); + short obtype = BKE_curve_type_get(cu); if (obtype == OB_FONT) return &RNA_TextCurve; else if (obtype == OB_SURF) return &RNA_SurfaceCurve; @@ -205,7 +205,7 @@ static void rna_Curve_texspace_set(Main *UNUSED(bmain), Scene *UNUSED(scene), Po Curve *cu = (Curve*)ptr->data; if (cu->texflag & CU_AUTOSPACE) - tex_space_curve(cu); + BKE_curve_tex_space_calc(cu); } static int rna_Curve_texspace_editable(PointerRNA *ptr) @@ -219,7 +219,7 @@ static void rna_Curve_texspace_loc_get(PointerRNA *ptr, float *values) Curve *cu = (Curve *)ptr->data; if (!cu->bb) - tex_space_curve(cu); + BKE_curve_tex_space_calc(cu); copy_v3_v3(values, cu->loc); } @@ -236,7 +236,7 @@ static void rna_Curve_texspace_size_get(PointerRNA *ptr, float *values) Curve *cu = (Curve *)ptr->data; if (!cu->bb) - tex_space_curve(cu); + BKE_curve_tex_space_calc(cu); copy_v3_v3(values, cu->size); } @@ -271,7 +271,7 @@ static void rna_Curve_dimension_set(PointerRNA *ptr, int value) if (value == CU_3D) cu->flag |= CU_3D; else cu->flag &= ~CU_3D; - update_curve_dimension(cu); + BKE_curve_curve_dimension_update(cu); } static EnumPropertyItem *rna_Curve_fill_mode_itemf(bContext *UNUSED(C), PointerRNA *ptr, @@ -326,7 +326,7 @@ static void rna_Curve_update_points(Main *bmain, Scene *scene, PointerRNA *ptr) Nurb *nu = curve_nurb_from_point(cu, ptr->data, NULL, NULL); if (nu) - calchandlesNurb(nu); + BKE_nurb_handles_calc(nu); rna_Curve_update_data(bmain, scene, ptr); } @@ -404,7 +404,7 @@ static void rna_Curve_taperObject_set(PointerRNA *ptr, PointerRNA value) static void rna_Curve_resolution_u_update_data(Main *bmain, Scene *scene, PointerRNA *ptr) { Curve *cu = (Curve*)ptr->id.data; - ListBase *nurbs = BKE_curve_nurbs(cu); + ListBase *nurbs = BKE_curve_nurbs_get(cu); Nurb *nu = nurbs->first; while (nu) { @@ -418,7 +418,7 @@ static void rna_Curve_resolution_u_update_data(Main *bmain, Scene *scene, Pointe static void rna_Curve_resolution_v_update_data(Main *bmain, Scene *scene, PointerRNA *ptr) { Curve *cu = (Curve*)ptr->id.data; - ListBase *nurbs = BKE_curve_nurbs(cu); + ListBase *nurbs = BKE_curve_nurbs_get(cu); Nurb *nu = nurbs->first; @@ -481,10 +481,10 @@ static void rna_Nurb_update_cyclic_u(Main *bmain, Scene *scene, PointerRNA *ptr) Nurb *nu = (Nurb*)ptr->data; if (nu->type == CU_BEZIER) { - calchandlesNurb(nu); + BKE_nurb_handles_calc(nu); } else { - nurbs_knot_calc_u(nu); + BKE_nurb_knot_calc_u(nu); } rna_Curve_update_data(bmain, scene, ptr); @@ -494,7 +494,7 @@ static void rna_Nurb_update_cyclic_v(Main *bmain, Scene *scene, PointerRNA *ptr) { Nurb *nu = (Nurb*)ptr->data; - nurbs_knot_calc_v(nu); + BKE_nurb_knot_calc_v(nu); rna_Curve_update_data(bmain, scene, ptr); } @@ -503,8 +503,8 @@ static void rna_Nurb_update_knot_u(Main *bmain, Scene *scene, PointerRNA *ptr) { Nurb *nu = (Nurb*)ptr->data; - clamp_nurb_order_u(nu); - nurbs_knot_calc_u(nu); + BKE_nurb_order_clamp_u(nu); + BKE_nurb_knot_calc_u(nu); rna_Curve_update_data(bmain, scene, ptr); } @@ -513,8 +513,8 @@ static void rna_Nurb_update_knot_v(Main *bmain, Scene *scene, PointerRNA *ptr) { Nurb *nu = (Nurb*)ptr->data; - clamp_nurb_order_v(nu); - nurbs_knot_calc_v(nu); + BKE_nurb_order_clamp_v(nu); + BKE_nurb_knot_calc_v(nu); rna_Curve_update_data(bmain, scene, ptr); } @@ -529,10 +529,10 @@ static void rna_Curve_spline_points_add(ID *id, Nurb *nu, ReportList *reports, i } else { - addNurbPoints(nu, number); + BKE_nurb_points_add(nu, number); /* update */ - nurbs_knot_calc_u(nu); + BKE_nurb_knot_calc_u(nu); rna_Curve_update_data_id(NULL, NULL, id); } @@ -547,10 +547,10 @@ static void rna_Curve_spline_bezpoints_add(ID *id, Nurb *nu, ReportList *reports /* do nothing */ } else { - addNurbPointsBezier(nu, number); + BKE_nurb_bezierPoints_add(nu, number); /* update */ - nurbs_knot_calc_u(nu); + BKE_nurb_knot_calc_u(nu); rna_Curve_update_data_id(NULL, NULL, id); } @@ -558,7 +558,7 @@ static void rna_Curve_spline_bezpoints_add(ID *id, Nurb *nu, ReportList *reports static Nurb *rna_Curve_spline_new(Curve *cu, int type) { - Nurb *nu = ( Nurb * ) MEM_callocN( sizeof( Nurb ), "spline.new" ); + Nurb *nu = (Nurb *) MEM_callocN( sizeof( Nurb ), "spline.new" ); if (type == CU_BEZIER) { BezTriple *bezt = (BezTriple *)MEM_callocN(sizeof(BezTriple), "spline.new.bezt"); @@ -579,7 +579,7 @@ static Nurb *rna_Curve_spline_new(Curve *cu, int type) nu->resolu = nu->resolv = 12; nu->flag = CU_SMOOTH; - BLI_addtail(BKE_curve_nurbs(cu), nu); + BLI_addtail(BKE_curve_nurbs_get(cu), nu); return nu; } @@ -587,7 +587,7 @@ static Nurb *rna_Curve_spline_new(Curve *cu, int type) static void rna_Curve_spline_remove(Curve *cu, ReportList *reports, Nurb *nu) { int found = 0; - ListBase *nurbs = BKE_curve_nurbs(cu); + ListBase *nurbs = BKE_curve_nurbs_get(cu); found = BLI_remlink_safe(nurbs, nu); @@ -596,7 +596,7 @@ static void rna_Curve_spline_remove(Curve *cu, ReportList *reports, Nurb *nu) return; } - freeNurb(nu); + BKE_nurb_free(nu); /* invalidate pointer!, no can do */ DAG_id_tag_update(&cu->id, OB_RECALC_DATA); @@ -605,9 +605,9 @@ static void rna_Curve_spline_remove(Curve *cu, ReportList *reports, Nurb *nu) static void rna_Curve_spline_clear(Curve *cu) { - ListBase *nurbs = BKE_curve_nurbs(cu); + ListBase *nurbs = BKE_curve_nurbs_get(cu); - freeNurblist(nurbs); + BKE_nurbList_free(nurbs); DAG_id_tag_update(&cu->id, OB_RECALC_DATA); WM_main_add_notifier(NC_GEOM|ND_DATA, NULL); @@ -617,7 +617,7 @@ static PointerRNA rna_Curve_active_spline_get(PointerRNA *ptr) { Curve *cu = (Curve*)ptr->data; Nurb *nu; - ListBase *nurbs = BKE_curve_nurbs(cu); + ListBase *nurbs = BKE_curve_nurbs_get(cu); /* for curve outside editmode will set to -1, should be changed to be allowed outside of editmode. */ nu = BLI_findlink(nurbs, cu->actnu); @@ -632,7 +632,7 @@ static void rna_Curve_active_spline_set(PointerRNA *ptr, PointerRNA value) { Curve *cu = (Curve*)ptr->data; Nurb *nu = value.data; - ListBase *nubase = BKE_curve_nurbs(cu); + ListBase *nubase = BKE_curve_nurbs_get(cu); /* -1 is ok for an unset index */ if (nu == NULL) @@ -644,7 +644,7 @@ static void rna_Curve_active_spline_set(PointerRNA *ptr, PointerRNA value) static char *rna_Curve_spline_path(PointerRNA *ptr) { Curve *cu = (Curve*)ptr->id.data; - ListBase *nubase = BKE_curve_nurbs(cu); + ListBase *nubase = BKE_curve_nurbs_get(cu); Nurb *nu = ptr->data; int index = BLI_findindex(nubase, nu); @@ -693,7 +693,7 @@ static char *rna_TextBox_path(PointerRNA *ptr) static void rna_Curve_splines_begin(CollectionPropertyIterator *iter, PointerRNA *ptr) { Curve *cu = (Curve*)ptr->id.data; - rna_iterator_listbase_begin(iter, BKE_curve_nurbs(cu), NULL); + rna_iterator_listbase_begin(iter, BKE_curve_nurbs_get(cu), NULL); } #else diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c index bf5f51374fa..122e42e29e7 100644 --- a/source/blender/makesrna/intern/rna_fcurve.c +++ b/source/blender/makesrna/intern/rna_fcurve.c @@ -482,12 +482,10 @@ static void rna_FModifier_active_update(Main *UNUSED(bmain), Scene *UNUSED(scene FModifier *fm, *fmo = (FModifier*)ptr->data; /* clear active state of other FModifiers in this list */ - for (fm = fmo->prev; fm; fm = fm->prev) - { + for (fm = fmo->prev; fm; fm = fm->prev) { fm->flag &= ~FMODIFIER_FLAG_ACTIVE; } - for (fm = fmo->next; fm; fm = fm->next) - { + for (fm = fmo->next; fm; fm = fm->next) { fm->flag &= ~FMODIFIER_FLAG_ACTIVE; } diff --git a/source/blender/makesrna/intern/rna_main.c b/source/blender/makesrna/intern/rna_main.c index e616a632147..cb4eea5c25b 100644 --- a/source/blender/makesrna/intern/rna_main.c +++ b/source/blender/makesrna/intern/rna_main.c @@ -347,8 +347,7 @@ void RNA_def_main(BlenderRNA *brna) RNA_def_property_boolean_funcs(prop, "rna_Main_is_saved_get", NULL); RNA_def_property_ui_text(prop, "File is Saved", "Has the current session been saved to disk as a .blend file"); - for (i = 0; lists[i].name; i++) - { + for (i = 0; lists[i].name; i++) { prop = RNA_def_property(srna, lists[i].identifier, PROP_COLLECTION, PROP_NONE); RNA_def_property_struct_type(prop, lists[i].type); RNA_def_property_collection_funcs(prop, lists[i].iter_begin, "rna_iterator_listbase_next", diff --git a/source/blender/makesrna/intern/rna_main_api.c b/source/blender/makesrna/intern/rna_main_api.c index 10a45fbb94d..63006af7c72 100644 --- a/source/blender/makesrna/intern/rna_main_api.c +++ b/source/blender/makesrna/intern/rna_main_api.c @@ -141,7 +141,7 @@ Object *rna_Main_objects_new(Main *UNUSED(bmain), ReportList *reports, const cha type = OB_MESH; break; case ID_CU: - type = curve_type((struct Curve *)data); + type = BKE_curve_type_get((struct Curve *)data); break; case ID_MB: type = OB_MBALL; @@ -314,7 +314,7 @@ void rna_Main_lattices_remove(Main *bmain, ReportList *reports, struct Lattice * Curve *rna_Main_curves_new(Main *UNUSED(bmain), const char *name, int type) { - Curve *cu = add_curve(name, type); + Curve *cu = BKE_curve_add(name, type); id_us_min(&cu->id); return cu; } @@ -329,7 +329,7 @@ void rna_Main_curves_remove(Main *bmain, ReportList *reports, struct Curve *cu) MetaBall *rna_Main_metaballs_new(Main *UNUSED(bmain), const char *name) { - MetaBall *mb = add_mball(name); + MetaBall *mb = BKE_metaball_add(name); id_us_min(&mb->id); return mb; } @@ -523,7 +523,7 @@ MovieClip *rna_Main_movieclip_load(Main *UNUSED(bmain), ReportList *reports, con MovieClip *clip; errno = 0; - clip = BKE_add_movieclip_file(filepath); + clip = BKE_movieclip_file_add(filepath); if (!clip) BKE_reportf(reports, RPT_ERROR, "Can't read: \"%s\", %s.", filepath, @@ -534,7 +534,7 @@ MovieClip *rna_Main_movieclip_load(Main *UNUSED(bmain), ReportList *reports, con void rna_Main_movieclips_remove(Main *bmain, MovieClip *clip) { - unlink_movieclip(bmain, clip); + BKE_movieclip_unlink(bmain, clip); free_libblock(&bmain->movieclip, clip); /* XXX python now has invalid pointer? */ } diff --git a/source/blender/makesrna/intern/rna_meta.c b/source/blender/makesrna/intern/rna_meta.c index e8ea19a5c5b..f7ef0c5c89a 100644 --- a/source/blender/makesrna/intern/rna_meta.c +++ b/source/blender/makesrna/intern/rna_meta.c @@ -99,7 +99,7 @@ static void rna_MetaBall_update_data(Main *bmain, Scene *scene, PointerRNA *ptr) if (mb->id.us > 0) { for (ob = bmain->object.first; ob; ob = ob->id.next) if (ob->data == mb) - copy_mball_properties(scene, ob); + BKE_metaball_properties_copy(scene, ob); DAG_id_tag_update(&mb->id, 0); WM_main_add_notifier(NC_GEOM|ND_DATA, mb); @@ -115,7 +115,7 @@ static void rna_MetaBall_update_rotation(Main *bmain, Scene *scene, PointerRNA * static MetaElem *rna_MetaBall_elements_new(MetaBall *mb, int type) { - MetaElem *ml = add_metaball_element(mb, type); + MetaElem *ml = BKE_metaball_element_add(mb, type); /* cheating way for importers to avoid slow updates */ if (mb->id.us > 0) { diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index bd024ba90be..140e874eb78 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -353,7 +353,7 @@ static void rna_Object_data_set(PointerRNA *ptr, PointerRNA value) test_object_materials(id); if (GS(id->name) == ID_CU) - test_curve_type(ob); + BKE_curve_type_test(ob); else if (ob->type == OB_ARMATURE) armature_rebuild_pose(ob, ob->data); } diff --git a/source/blender/makesrna/intern/rna_object_api.c b/source/blender/makesrna/intern/rna_object_api.c index fb383b1256b..0ac6dcbc518 100644 --- a/source/blender/makesrna/intern/rna_object_api.c +++ b/source/blender/makesrna/intern/rna_object_api.c @@ -96,7 +96,7 @@ Mesh *rna_Object_to_mesh(Object *ob, ReportList *reports, Scene *sce, int apply_ object_free_modifiers(tmpobj); /* copies the data */ - copycu = tmpobj->data = copy_curve( (Curve *) ob->data ); + copycu = tmpobj->data = BKE_curve_copy( (Curve *) ob->data ); /* temporarily set edit so we get updates from edit mode, but * also because for text datablocks copying it while in edit @@ -124,7 +124,7 @@ Mesh *rna_Object_to_mesh(Object *ob, ReportList *reports, Scene *sce, int apply_ case OB_MBALL: { /* metaballs don't have modifiers, so just convert to mesh */ - Object *basis_ob = find_basis_mball(sce, ob); + Object *basis_ob = BKE_metaball_basis_find(sce, ob); /* todo, re-generatre for render-res */ /* metaball_polygonize(scene, ob) */ diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c index 2ed2f295cb6..7fecbb83fa5 100644 --- a/source/blender/makesrna/intern/rna_sequencer.c +++ b/source/blender/makesrna/intern/rna_sequencer.c @@ -414,8 +414,6 @@ static StructRNA* rna_Sequence_refine(struct PointerRNA *ptr) return &RNA_MulticamSequence; case SEQ_ADJUSTMENT: return &RNA_AdjustmentSequence; - case SEQ_PLUGIN: - return &RNA_PluginSequence; case SEQ_WIPE: return &RNA_WipeSequence; case SEQ_GLOW: @@ -1243,7 +1241,7 @@ static void rna_def_filter_video(StructRNA *srna) prop = RNA_def_property(srna, "use_premultiply", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_MAKE_PREMUL); RNA_def_property_ui_text(prop, "Premultiply", "Convert RGB from key alpha to premultiplied alpha"); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop = RNA_def_property(srna, "use_flip_x", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_FLIPX); @@ -1588,25 +1586,6 @@ static void rna_def_adjustment(BlenderRNA *brna) rna_def_input(srna); } -static void rna_def_plugin(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - srna = RNA_def_struct(brna, "PluginSequence", "EffectSequence"); - RNA_def_struct_ui_text(srna, "Plugin Sequence", - "Sequence strip applying an effect, loaded from an external plugin"); - RNA_def_struct_sdna_from(srna, "PluginSeq", "plugin"); - - prop = RNA_def_property(srna, "filename", PROP_STRING, PROP_FILENAME); - RNA_def_property_string_sdna(prop, NULL, "name"); - RNA_def_property_clear_flag(prop, PROP_EDITABLE); - RNA_def_property_ui_text(prop, "Filename", ""); - RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); - - /* plugin properties need custom wrapping code like ID properties */ -} - static void rna_def_wipe(BlenderRNA *brna) { StructRNA *srna; @@ -1848,7 +1827,6 @@ void RNA_def_sequencer(BlenderRNA *brna) rna_def_effect(brna); rna_def_multicam(brna); rna_def_adjustment(brna); - rna_def_plugin(brna); rna_def_wipe(brna); rna_def_glow(brna); rna_def_transform(brna); diff --git a/source/blender/makesrna/intern/rna_texture.c b/source/blender/makesrna/intern/rna_texture.c index fab80997d08..c314e9be0ba 100644 --- a/source/blender/makesrna/intern/rna_texture.c +++ b/source/blender/makesrna/intern/rna_texture.c @@ -134,8 +134,6 @@ static StructRNA *rna_Texture_refine(struct PointerRNA *ptr) return &RNA_MusgraveTexture; case TEX_NOISE: return &RNA_NoiseTexture; - case TEX_PLUGIN: - return &RNA_PluginTexture; case TEX_POINTDENSITY: return &RNA_PointDensityTexture; case TEX_STUCCI: @@ -1302,17 +1300,6 @@ static void rna_def_texture_image(BlenderRNA *brna) RNA_def_property_update(prop, 0, "rna_Texture_update"); } -static void rna_def_texture_plugin(BlenderRNA *brna) -{ - StructRNA *srna; - - srna = RNA_def_struct(brna, "PluginTexture", "Texture"); - RNA_def_struct_ui_text(srna, "Plugin", "External plugin texture"); - RNA_def_struct_sdna(srna, "Tex"); - - /* XXX: todo */ -} - static void rna_def_texture_environment_map(BlenderRNA *brna) { StructRNA *srna; @@ -2013,7 +2000,6 @@ static void rna_def_texture(BlenderRNA *brna) rna_def_texture_stucci(brna); rna_def_texture_noise(brna); rna_def_texture_image(brna); - rna_def_texture_plugin(brna); rna_def_texture_environment_map(brna); rna_def_texture_musgrave(brna); rna_def_texture_voronoi(brna); diff --git a/source/blender/makesrna/intern/rna_ui.c b/source/blender/makesrna/intern/rna_ui.c index 635dfb48b27..44ece727912 100644 --- a/source/blender/makesrna/intern/rna_ui.c +++ b/source/blender/makesrna/intern/rna_ui.c @@ -723,7 +723,7 @@ static void rna_def_panel(BlenderRNA *brna) prop = RNA_def_property(srna, "bl_context", PROP_STRING, PROP_NONE); RNA_def_property_string_sdna(prop, NULL, "type->context"); - RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL); /* should this be optional? - Campbell */ + RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL); /* Only used in Properties Editor and 3D View - Thomas */ RNA_def_property_ui_text(prop, "Context", "The context in which the panel belongs to. (TODO: explain the " "possible combinations bl_context/bl_region_type/bl_space_type)"); diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index 62b9c4f4e66..7cc02316a40 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -1769,12 +1769,6 @@ static void rna_def_userdef_theme_space_seq(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Effect Strip", ""); RNA_def_property_update(prop, 0, "rna_userdef_update"); - prop = RNA_def_property(srna, "plugin_strip", PROP_FLOAT, PROP_COLOR_GAMMA); - RNA_def_property_float_sdna(prop, NULL, "plugin"); - RNA_def_property_array(prop, 3); - RNA_def_property_ui_text(prop, "Plugin Strip", ""); - RNA_def_property_update(prop, 0, "rna_userdef_update"); - prop = RNA_def_property(srna, "transition_strip", PROP_FLOAT, PROP_COLOR_GAMMA); RNA_def_property_float_sdna(prop, NULL, "transition"); RNA_def_property_array(prop, 3); @@ -3386,15 +3380,6 @@ static void rna_def_userdef_filepaths(BlenderRNA *brna) RNA_def_property_string_sdna(prop, NULL, "textudir"); RNA_def_property_ui_text(prop, "Textures Directory", "The default directory to search for textures"); - prop = RNA_def_property(srna, "texture_plugin_directory", PROP_STRING, PROP_DIRPATH); - RNA_def_property_string_sdna(prop, NULL, "plugtexdir"); - RNA_def_property_ui_text(prop, "Texture Plugin Directory", "The default directory to search for texture plugins"); - - prop = RNA_def_property(srna, "sequence_plugin_directory", PROP_STRING, PROP_DIRPATH); - RNA_def_property_string_sdna(prop, NULL, "plugseqdir"); - RNA_def_property_ui_text(prop, "Sequence Plugin Directory", - "The default directory to search for sequence plugins"); - prop = RNA_def_property(srna, "render_output_directory", PROP_STRING, PROP_DIRPATH); RNA_def_property_string_sdna(prop, NULL, "renderdir"); RNA_def_property_ui_text(prop, "Render Output Directory", diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index 8c4b7917cb8..0eb4ef1c5c9 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -665,13 +665,15 @@ static int rna_KeyMapItem_any_getf(PointerRNA *ptr) wmKeyMapItem *kmi = (wmKeyMapItem*)ptr->data; if (kmi->shift == KM_ANY && - kmi->ctrl == KM_ANY && - kmi->alt == KM_ANY && - kmi->oskey == KM_ANY) - + kmi->ctrl == KM_ANY && + kmi->alt == KM_ANY && + kmi->oskey == KM_ANY) + { return 1; - else + } + else { return 0; + } } static void rna_KeyMapItem_any_setf(PointerRNA *ptr, int value) diff --git a/source/blender/modifiers/intern/MOD_boolean.c b/source/blender/modifiers/intern/MOD_boolean.c index e4e89db403d..c11d6fc50af 100644 --- a/source/blender/modifiers/intern/MOD_boolean.c +++ b/source/blender/modifiers/intern/MOD_boolean.c @@ -97,7 +97,7 @@ static DerivedMesh *get_quick_derivedMesh(DerivedMesh *derivedData, DerivedMesh DerivedMesh *result = NULL; if (derivedData->getNumPolys(derivedData) == 0 || dm->getNumPolys(dm) == 0) { - switch(operation) { + switch (operation) { case eBooleanModifierOp_Intersect: result = CDDM_new(0, 0, 0, 0, 0); break; diff --git a/source/blender/modifiers/intern/MOD_cast.c b/source/blender/modifiers/intern/MOD_cast.c index 15940112527..8ad5b72204b 100644 --- a/source/blender/modifiers/intern/MOD_cast.c +++ b/source/blender/modifiers/intern/MOD_cast.c @@ -423,8 +423,11 @@ static void cuboid_do( if (has_radius) { if (fabsf(tmp_co[0]) > cmd->radius || - fabsf(tmp_co[1]) > cmd->radius || - fabsf(tmp_co[2]) > cmd->radius) continue; + fabsf(tmp_co[1]) > cmd->radius || + fabsf(tmp_co[2]) > cmd->radius) + { + continue; + } } for (j = 0; j < dvert[i].totweight; ++j) { @@ -521,8 +524,11 @@ static void cuboid_do( if (has_radius) { if (fabsf(tmp_co[0]) > cmd->radius || - fabsf(tmp_co[1]) > cmd->radius || - fabsf(tmp_co[2]) > cmd->radius) continue; + fabsf(tmp_co[1]) > cmd->radius || + fabsf(tmp_co[2]) > cmd->radius) + { + continue; + } } octant = 0; diff --git a/source/blender/modifiers/intern/MOD_collision.c b/source/blender/modifiers/intern/MOD_collision.c index b3faf6c140a..4c5ce184c22 100644 --- a/source/blender/modifiers/intern/MOD_collision.c +++ b/source/blender/modifiers/intern/MOD_collision.c @@ -71,8 +71,7 @@ static void freeData(ModifierData *md) { CollisionModifierData *collmd = (CollisionModifierData*) md; - if (collmd) - { + if (collmd) { if (collmd->bvhtree) BLI_bvhtree_free(collmd->bvhtree); if (collmd->x) @@ -120,14 +119,12 @@ static void deformVerts(ModifierData *md, Object *ob, if (derivedData) dm = CDDM_copy(derivedData); else if (ob->type==OB_MESH) dm = CDDM_from_mesh(ob->data, ob); - if (!ob->pd) - { + if (!ob->pd) { printf("CollisionModifier deformVerts: Should not happen!\n"); return; } - if (dm) - { + if (dm) { float current_time = 0; unsigned int numverts = 0; @@ -141,20 +138,17 @@ static void deformVerts(ModifierData *md, Object *ob, numverts = dm->getNumVerts ( dm ); - if ((current_time > collmd->time_xnew)|| (BKE_ptcache_get_continue_physics())) - { + if ((current_time > collmd->time_xnew)|| (BKE_ptcache_get_continue_physics())) { unsigned int i; // check if mesh has changed if (collmd->x && (numverts != collmd->numverts)) freeData((ModifierData *)collmd); - if (collmd->time_xnew == -1000) // first time - { + if (collmd->time_xnew == -1000) { /* first time */ collmd->x = dm->dupVertArray(dm); // frame start position - for ( i = 0; i < numverts; i++ ) - { + for ( i = 0; i < numverts; i++ ) { // we save global positions mul_m4_v3( ob->obmat, collmd->x[i].co ); } diff --git a/source/blender/modifiers/intern/MOD_displace.c b/source/blender/modifiers/intern/MOD_displace.c index 293a8a8c686..70294588fd4 100644 --- a/source/blender/modifiers/intern/MOD_displace.c +++ b/source/blender/modifiers/intern/MOD_displace.c @@ -208,7 +208,7 @@ static void displaceModifier_do( delta *= strength; CLAMP(delta, -10000, 10000); - switch(dmd->direction) { + switch (dmd->direction) { case MOD_DISP_DIR_X: vertexCos[i][0] += delta; break; diff --git a/source/blender/modifiers/intern/MOD_explode.c b/source/blender/modifiers/intern/MOD_explode.c index a1dc69918c2..11542dc4c1a 100644 --- a/source/blender/modifiers/intern/MOD_explode.c +++ b/source/blender/modifiers/intern/MOD_explode.c @@ -679,7 +679,7 @@ static DerivedMesh * cutEdges(ExplodeModifierData *emd, DerivedMesh *dm) for (i=0,fs=facesplit; igetTessFaceData(dm, i, CD_MFACE); - switch(*fs) { + switch (*fs) { case 3: case 10: case 11: @@ -711,7 +711,7 @@ static DerivedMesh * cutEdges(ExplodeModifierData *emd, DerivedMesh *dm) break; } - switch(*fs) { + switch (*fs) { case 3: case 6: case 9: diff --git a/source/blender/modifiers/intern/MOD_fluidsim_util.c b/source/blender/modifiers/intern/MOD_fluidsim_util.c index fe0cb2e650f..8d3b1871c51 100644 --- a/source/blender/modifiers/intern/MOD_fluidsim_util.c +++ b/source/blender/modifiers/intern/MOD_fluidsim_util.c @@ -66,8 +66,7 @@ void fluidsim_init(FluidsimModifierData *fluidmd) { #ifdef WITH_MOD_FLUID - if (fluidmd) - { + if (fluidmd) { FluidsimSettings *fss = MEM_callocN(sizeof(FluidsimSettings), "fluidsimsettings"); fluidmd->fss = fss; @@ -184,8 +183,7 @@ static DerivedMesh *fluidsim_read_obj(const char *filename, const MPoly *mp_exam // get numverts + numfaces first // ------------------------------------------------ gzf = BLI_gzopen(filename, "rb"); - if (!gzf) - { + if (!gzf) { return NULL; } @@ -216,15 +214,13 @@ static DerivedMesh *fluidsim_read_obj(const char *filename, const MPoly *mp_exam return NULL; gzf = BLI_gzopen(filename, "rb"); - if (!gzf) - { + if (!gzf) { return NULL; } dm = CDDM_new(numverts, 0, 0, numfaces * 3, numfaces); - if (!dm) - { + if (!dm) { gzclose(gzf); return NULL; } @@ -240,8 +236,7 @@ static DerivedMesh *fluidsim_read_obj(const char *filename, const MPoly *mp_exam // should be the same as numverts gotBytes = gzread(gzf, &wri, sizeof(wri)); - if (wri != numverts) - { + if (wri != numverts) { if (dm) dm->release(dm); gzclose(gzf); @@ -249,8 +244,7 @@ static DerivedMesh *fluidsim_read_obj(const char *filename, const MPoly *mp_exam } normals = MEM_callocN(sizeof(short) * numverts * 3, "fluid_tmp_normals" ); - if (!normals) - { + if (!normals) { if (dm) dm->release(dm); gzclose(gzf); @@ -258,8 +252,7 @@ static DerivedMesh *fluidsim_read_obj(const char *filename, const MPoly *mp_exam } // read normals from file (but don't save them yet) - for (i=numverts, no_s= normals; i>0; i--, no_s += 3) - { + for (i=numverts, no_s= normals; i>0; i--, no_s += 3) { gotBytes = gzread(gzf, no, sizeof(float) * 3); normal_float_to_short_v3(no_s, no); } @@ -279,8 +272,7 @@ static DerivedMesh *fluidsim_read_obj(const char *filename, const MPoly *mp_exam // read triangles from file mp = CDDM_get_polys(dm); ml = CDDM_get_loops(dm); - for (i=0; i < numfaces; i++, mp++, ml += 3) - { + for (i=0; i < numfaces; i++, mp++, ml += 3) { int face[3]; gotBytes = gzread(gzf, face, sizeof(int) * 3); @@ -390,8 +382,7 @@ static void fluidsim_read_vel_cache(FluidsimModifierData *fluidmd, DerivedMesh * if (fss->meshVelocities) MEM_freeN(fss->meshVelocities); - if (len<7) - { + if (len < 7) { return; } @@ -409,25 +400,21 @@ static void fluidsim_read_vel_cache(FluidsimModifierData *fluidmd, DerivedMesh * filename[len-4] = 'l'; gzf = BLI_gzopen(filename, "rb"); - if (!gzf) - { + if (!gzf) { MEM_freeN(fss->meshVelocities); fss->meshVelocities = NULL; return; } gzread(gzf, &wri, sizeof( wri )); - if (wri != totvert) - { + if (wri != totvert) { MEM_freeN(fss->meshVelocities); fss->meshVelocities = NULL; return; } - for (i=0; idw; int j; @@ -229,8 +228,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, BLI_ghash_free(vgroupHash, NULL, NULL); MEM_freeN(bone_select_array); } - else /* --- Using Nominated VertexGroup only --- */ - { + else { /* --- Using Nominated VertexGroup only --- */ int defgrp_index = defgroup_name_index(ob, mmd->vgroup); /* get dverts */ @@ -245,8 +243,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, vertHash= BLI_ghash_new(BLI_ghashutil_inthash, BLI_ghashutil_intcmp, "mask vert2 bh"); /* add vertices which exist in vertexgroup into ghash for filtering */ - for (i= 0, dv= dvert; i < maxVerts; i++, dv++) - { + for (i= 0, dv= dvert; i < maxVerts; i++, dv++) { const int weight_set= defvert_find_weight(dv, defgrp_index) != 0.0f; /* check if include vert in vertHash */ @@ -277,8 +274,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, /* loop over edges and faces, and do the same thing to * ensure that they only reference existing verts */ - for (i = 0; i < maxEdges; i++) - { + for (i = 0; i < maxEdges; i++) { MEdge me; dm->getEdge(dm, i, &me); @@ -290,8 +286,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, numEdges++; } } - for (i = 0; i < maxPolys; i++) - { + for (i = 0; i < maxPolys; i++) { MPoly *mp = &mpoly[i]; MLoop *ml = mloop + mp->loopstart; int ok = TRUE; diff --git a/source/blender/modifiers/intern/MOD_remesh.c b/source/blender/modifiers/intern/MOD_remesh.c index d408e5a3bee..56b6493eda6 100644 --- a/source/blender/modifiers/intern/MOD_remesh.c +++ b/source/blender/modifiers/intern/MOD_remesh.c @@ -103,8 +103,10 @@ static void *dualcon_alloc_output(int totvert, int totquad) DualConOutput *output; if (!(output = MEM_callocN(sizeof(DualConOutput), - "DualConOutput"))) + "DualConOutput"))) + { return NULL; + } output->dm = CDDM_new(totvert, 0, 0, 4*totquad, totquad); return output; @@ -164,7 +166,7 @@ static DerivedMesh *applyModifier(ModifierData *md, if (rmd->flag & MOD_REMESH_FLOOD_FILL) flags |= DUALCON_FLOOD_FILL; - switch(rmd->mode) { + switch (rmd->mode) { case MOD_REMESH_CENTROID: mode = DUALCON_CENTROID; break; diff --git a/source/blender/modifiers/intern/MOD_screw.c b/source/blender/modifiers/intern/MOD_screw.c index ae21d3d66ad..60eed4abcb1 100644 --- a/source/blender/modifiers/intern/MOD_screw.c +++ b/source/blender/modifiers/intern/MOD_screw.c @@ -179,7 +179,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, if (!totvert) return CDDM_from_template(dm, 0, 0, 0, 0, 0); - switch(ltmd->axis) { + switch (ltmd->axis) { case 0: other_axis_1=1; other_axis_2=2; diff --git a/source/blender/modifiers/intern/MOD_simpledeform.c b/source/blender/modifiers/intern/MOD_simpledeform.c index 6c1325b0bde..5ac52a97315 100644 --- a/source/blender/modifiers/intern/MOD_simpledeform.c +++ b/source/blender/modifiers/intern/MOD_simpledeform.c @@ -185,8 +185,7 @@ static void SimpleDeformModifier_do(SimpleDeformModifierData *smd, struct Object float lower = FLT_MAX; float upper = -FLT_MAX; - for (i=0; ivgroup_name, &dvert, &vgroup); - switch(smd->mode) - { + switch (smd->mode) { case MOD_SIMPLEDEFORM_MODE_TWIST: simpleDeform_callback = simpleDeform_twist; break; case MOD_SIMPLEDEFORM_MODE_BEND: simpleDeform_callback = simpleDeform_bend; break; case MOD_SIMPLEDEFORM_MODE_TAPER: simpleDeform_callback = simpleDeform_taper; break; @@ -216,8 +214,7 @@ static void SimpleDeformModifier_do(SimpleDeformModifierData *smd, struct Object return; //No simpledeform mode? } - for (i=0; ifalloff_type) { + switch (wmd->falloff_type) { case eWarp_Falloff_None: fac = 1.0f; break; diff --git a/source/blender/modifiers/intern/MOD_wave.c b/source/blender/modifiers/intern/MOD_wave.c index 78e76e27c02..5fa3090cd87 100644 --- a/source/blender/modifiers/intern/MOD_wave.c +++ b/source/blender/modifiers/intern/MOD_wave.c @@ -247,7 +247,7 @@ static void waveModifier_do(WaveModifierData *md, } } - switch(wmd_axis) { + switch (wmd_axis) { case MOD_WAVE_X|MOD_WAVE_Y: amplit = sqrtf(x*x + y*y); break; @@ -270,7 +270,7 @@ static void waveModifier_do(WaveModifierData *md, if (falloff != 0.0f) { float dist = 0.0f; - switch(wmd_axis) { + switch (wmd_axis) { case MOD_WAVE_X|MOD_WAVE_Y: dist = sqrtf(x*x + y*y); break; diff --git a/source/blender/modifiers/intern/MOD_weightvg_util.c b/source/blender/modifiers/intern/MOD_weightvg_util.c index 5ce435a7ca5..1f886812ab7 100644 --- a/source/blender/modifiers/intern/MOD_weightvg_util.c +++ b/source/blender/modifiers/intern/MOD_weightvg_util.c @@ -69,7 +69,9 @@ void weightvg_do_map(int num, float *new_w, short falloff_type, CurveMapping *cm !ELEM7(falloff_type, MOD_WVG_MAPPING_CURVE, MOD_WVG_MAPPING_SHARP, MOD_WVG_MAPPING_SMOOTH, MOD_WVG_MAPPING_ROOT, MOD_WVG_MAPPING_SPHERE, MOD_WVG_MAPPING_RANDOM, MOD_WVG_MAPPING_STEP)) + { return; + } /* Map each weight (vertex) to its new value, accordingly to the chosen mode. */ for (i = 0; i < num; ++i) { @@ -77,7 +79,7 @@ void weightvg_do_map(int num, float *new_w, short falloff_type, CurveMapping *cm /* Code borrowed from the warp modifier. */ /* Closely matches PROP_SMOOTH and similar. */ - switch(falloff_type) { + switch (falloff_type) { case MOD_WVG_MAPPING_CURVE: fac = curvemapping_evaluateF(cmap, 0, fac); break; @@ -157,7 +159,7 @@ void weightvg_do_mask(int num, const int *indices, float *org_w, const float *ne texres.nor = NULL; get_texture_value(texture, tex_co[idx], &texres); /* Get the good channel value... */ - switch(tex_use_channel) { + switch (tex_use_channel) { case MOD_WVG_MASK_TEX_USE_INT: org_w[i] = (new_w[i] * texres.tin * fact) + (org_w[i] * (1.0f - (texres.tin*fact))); break; diff --git a/source/blender/nodes/composite/node_composite_util.c b/source/blender/nodes/composite/node_composite_util.c index ab3a363e703..8012057b393 100644 --- a/source/blender/nodes/composite/node_composite_util.c +++ b/source/blender/nodes/composite/node_composite_util.c @@ -884,8 +884,9 @@ static void FHT2D(fREAL *data, unsigned int Mx, unsigned int My, #define PRED(k) (((k & Nym) << Mx) + (k >> My)) for (j=PRED(i); j>i; j=PRED(j)); if (j < i) continue; - for (k=i, j=PRED(i); j!=i; k=j, j=PRED(j), stm--) - { t=data[j], data[j]=data[k], data[k]=t; } + for (k=i, j=PRED(i); j!=i; k=j, j=PRED(j), stm--) { + t=data[j], data[j]=data[k], data[k]=t; + } #undef PRED stm--; } @@ -1108,7 +1109,7 @@ void qd_getPixel(CompBuf* src, int x, int y, float* col) float bc[4]; src->rect_procedural(src, bc, (float)x/(float)src->xrad, (float)y/(float)src->yrad); - switch(src->type) { + switch (src->type) { /* these fallthrough to get all the channels */ case CB_RGBA: col[3]=bc[3]; case CB_VEC3: col[2]=bc[2]; @@ -1118,7 +1119,7 @@ void qd_getPixel(CompBuf* src, int x, int y, float* col) } else if ((x >= 0) && (x < src->x) && (y >= 0) && (y < src->y)) { float* bc = &src->rect[(x + y*src->x)*src->type]; - switch(src->type) { + switch (src->type) { /* these fallthrough to get all the channels */ case CB_RGBA: col[3]=bc[3]; case CB_VEC3: col[2]=bc[2]; @@ -1127,7 +1128,7 @@ void qd_getPixel(CompBuf* src, int x, int y, float* col) } } else { - switch(src->type) { + switch (src->type) { /* these fallthrough to get all the channels */ case CB_RGBA: col[3]=0.0; case CB_VEC3: col[2]=0.0; @@ -1142,7 +1143,7 @@ void qd_setPixel(CompBuf* src, int x, int y, float* col) { if ((x >= 0) && (x < src->x) && (y >= 0) && (y < src->y)) { float* bc = &src->rect[(x + y*src->x)*src->type]; - switch(src->type) { + switch (src->type) { /* these fallthrough to get all the channels */ case CB_RGBA: bc[3]=col[3]; case CB_VEC3: bc[2]=col[2]; diff --git a/source/blender/nodes/composite/nodes/node_composite_channelMatte.c b/source/blender/nodes/composite/nodes/node_composite_channelMatte.c index 132b1659fa5..b3690b5d20f 100644 --- a/source/blender/nodes/composite/nodes/node_composite_channelMatte.c +++ b/source/blender/nodes/composite/nodes/node_composite_channelMatte.c @@ -71,7 +71,7 @@ static void do_channel_matte(bNode *node, float *out, float *in) NodeChroma *c=(NodeChroma *)node->storage; float alpha=0.0; - switch(c->algorithm) { + switch (c->algorithm) { case 0: { /* Alpha=key_channel-limit channel */ int key_channel=node->custom2-1; int limit_channel=c->channel-1; @@ -79,7 +79,7 @@ static void do_channel_matte(bNode *node, float *out, float *in) break; } case 1: { /* Alpha=G-MAX(R, B) */ - switch(node->custom2) { + switch (node->custom2) { case 1: { alpha=in[0]-MAX2(in[1],in[2]); break; @@ -139,7 +139,7 @@ static void node_composit_exec_channel_matte(void *data, bNode *node, bNodeStack outbuf=dupalloc_compbuf(cbuf); /*convert to colorspace*/ - switch(node->custom1) { + switch (node->custom1) { case CMP_NODE_CHANNEL_MATTE_CS_RGB: break; case CMP_NODE_CHANNEL_MATTE_CS_HSV: /*HSV*/ @@ -159,7 +159,7 @@ static void node_composit_exec_channel_matte(void *data, bNode *node, bNodeStack composit1_pixel_processor(node, outbuf, outbuf, in[1]->vec, do_channel_matte, CB_RGBA); /*convert back to RGB colorspace in place*/ - switch(node->custom1) { + switch (node->custom1) { case CMP_NODE_CHANNEL_MATTE_CS_RGB: /*RGB*/ break; case CMP_NODE_CHANNEL_MATTE_CS_HSV: /*HSV*/ diff --git a/source/blender/nodes/composite/nodes/node_composite_colorSpill.c b/source/blender/nodes/composite/nodes/node_composite_colorSpill.c index 46d7c620aa8..0153a2bce34 100644 --- a/source/blender/nodes/composite/nodes/node_composite_colorSpill.c +++ b/source/blender/nodes/composite/nodes/node_composite_colorSpill.c @@ -206,12 +206,10 @@ static void node_composit_exec_color_spill(void *UNUSED(data), bNode *node, bNod spillmap=alloc_compbuf(cbuf->x, cbuf->y, CB_VAL, 1); rgbbuf=dupalloc_compbuf(cbuf); - switch(node->custom1) - { + switch (node->custom1) { case 1: /*red spill*/ { - switch(node->custom2) - { + switch (node->custom2) { case 0: /* simple limit */ { if ((in[1]->data==NULL) && (in[1]->vec[0] >= 1.f)) { @@ -243,8 +241,7 @@ static void node_composit_exec_color_spill(void *UNUSED(data), bNode *node, bNod } case 2: /*green spill*/ { - switch(node->custom2) - { + switch (node->custom2) { case 0: /* simple limit */ { if ((in[1]->data==NULL) && (in[1]->vec[0] >= 1.f)) { @@ -276,8 +273,7 @@ static void node_composit_exec_color_spill(void *UNUSED(data), bNode *node, bNod } case 3: /*blue spill*/ { - switch(node->custom2) - { + switch (node->custom2) { case 0: /* simple limit */ { if ((in[1]->data==NULL) && (in[1]->vec[0] >= 1.f)) { diff --git a/source/blender/nodes/composite/nodes/node_composite_filter.c b/source/blender/nodes/composite/nodes/node_composite_filter.c index 6d470467cb0..d6cb54eb944 100644 --- a/source/blender/nodes/composite/nodes/node_composite_filter.c +++ b/source/blender/nodes/composite/nodes/node_composite_filter.c @@ -189,7 +189,7 @@ static void node_composit_exec_filter(void *data, bNode *node, bNodeStack **in, stackbuf->xof= cbuf->xof; stackbuf->yof= cbuf->yof; - switch(node->custom1) { + switch (node->custom1) { case CMP_FILT_SOFT: do_filter3(stackbuf, cbuf, soft, in[0]->vec[0]); break; diff --git a/source/blender/nodes/composite/nodes/node_composite_image.c b/source/blender/nodes/composite/nodes/node_composite_image.c index 6a156c390a7..62179cfa471 100644 --- a/source/blender/nodes/composite/nodes/node_composite_image.c +++ b/source/blender/nodes/composite/nodes/node_composite_image.c @@ -442,11 +442,14 @@ static void node_composit_exec_image(void *data, bNode *node, bNodeStack **UNUSE /* preview policy: take first 'Combined' pass if available, * otherwise just use the first layer. */ - if (!firstbuf) + if (!firstbuf) { firstbuf = stackbuf; + } if (!combinedbuf && - (strcmp(sock->name, "Combined")==0 || strcmp(sock->name, "Image")==0)) + (strcmp(sock->name, "Combined") == 0 || strcmp(sock->name, "Image") == 0)) + { combinedbuf = stackbuf; + } } } } diff --git a/source/blender/nodes/composite/nodes/node_composite_levels.c b/source/blender/nodes/composite/nodes/node_composite_levels.c index ec6d2006296..32b07582140 100644 --- a/source/blender/nodes/composite/nodes/node_composite_levels.c +++ b/source/blender/nodes/composite/nodes/node_composite_levels.c @@ -64,7 +64,7 @@ static void fill_bins(bNode* node, CompBuf* in, int* bins) qd_getPixel(in, x, y, value); if (value[3] > 0.0f) { /* don't count transparent pixels */ - switch(node->custom1) { + switch (node->custom1) { case 1: { /* all colors */ rgb_tobw(value[0],value[1],value[2], &value[0]); value[0]=value[0]*255; /* scale to 0-255 range */ @@ -122,8 +122,7 @@ static float brightness_mean(bNode* node, CompBuf* in) if (value[3] > 0.0f) { /* don't count transparent pixels */ numPixels++; - switch(node->custom1) - { + switch (node->custom1) { case 1: { rgb_tobw(value[0],value[1],value[2], &value[0]); @@ -174,8 +173,7 @@ static float brightness_standard_deviation(bNode* node, CompBuf* in, float mean) if (value[3] > 0.0f) { /* don't count transparent pixels */ numPixels++; - switch(node->custom1) - { + switch (node->custom1) { case 1: { rgb_tobw(value[0],value[1],value[2], &value[0]); diff --git a/source/blender/nodes/composite/nodes/node_composite_math.c b/source/blender/nodes/composite/nodes/node_composite_math.c index 8362df1b691..4c9d1a66fb0 100644 --- a/source/blender/nodes/composite/nodes/node_composite_math.c +++ b/source/blender/nodes/composite/nodes/node_composite_math.c @@ -46,8 +46,7 @@ static bNodeSocketTemplate cmp_node_math_out[]= { static void do_math(bNode *node, float *out, float *in, float *in2) { - switch(node->custom1) - { + switch (node->custom1) { case 0: /* Add */ out[0]= in[0] + in2[0]; break; diff --git a/source/blender/nodes/composite/nodes/node_composite_movieclip.c b/source/blender/nodes/composite/nodes/node_composite_movieclip.c index dd2c169fe9a..2f017b52676 100644 --- a/source/blender/nodes/composite/nodes/node_composite_movieclip.c +++ b/source/blender/nodes/composite/nodes/node_composite_movieclip.c @@ -33,7 +33,7 @@ #include "node_composite_util.h" -static bNodeSocketTemplate cmp_node_movieclip_out[]= { +static bNodeSocketTemplate cmp_node_movieclip_out[] = { { SOCK_RGBA, 0, "Image"}, { SOCK_FLOAT, 1, "Offset X"}, { SOCK_FLOAT, 1, "Offset Y"}, @@ -49,50 +49,50 @@ static CompBuf *node_composit_get_movieclip(RenderData *rd, MovieClip *clip, Mov int type; float *rect; - int alloc= FALSE; + int alloc = FALSE; - orig_ibuf= BKE_movieclip_get_ibuf(clip, user); + orig_ibuf = BKE_movieclip_get_ibuf(clip, user); - if (orig_ibuf==NULL || (orig_ibuf->rect==NULL && orig_ibuf->rect_float==NULL)) { + if (orig_ibuf == NULL || (orig_ibuf->rect == NULL && orig_ibuf->rect_float == NULL)) { IMB_freeImBuf(orig_ibuf); return NULL; } - ibuf= IMB_dupImBuf(orig_ibuf); + ibuf = IMB_dupImBuf(orig_ibuf); IMB_freeImBuf(orig_ibuf); - if (ibuf->rect_float == NULL || ibuf->userflags&IB_RECT_INVALID) { + if (ibuf->rect_float == NULL || (ibuf->userflags & IB_RECT_INVALID)) { IMB_float_from_rect(ibuf); - ibuf->userflags&= ~IB_RECT_INVALID; + ibuf->userflags &= ~IB_RECT_INVALID; } /* now we need a float buffer from the image with matching color management */ if (ibuf->channels == 4) { - rect= node_composit_get_float_buffer(rd, ibuf, &alloc); + rect = node_composit_get_float_buffer(rd, ibuf, &alloc); } else { /* non-rgba passes can't use color profiles */ - rect= ibuf->rect_float; + rect = ibuf->rect_float; } /* done coercing into the correct color management */ if (!alloc) { - rect= MEM_dupallocN(rect); - alloc= 1; + rect = MEM_dupallocN(rect); + alloc = TRUE; } - type= ibuf->channels; + type = ibuf->channels; if (rd->scemode & R_COMP_CROP) { - stackbuf= get_cropped_compbuf(&rd->disprect, rect, ibuf->x, ibuf->y, type); + stackbuf = get_cropped_compbuf(&rd->disprect, rect, ibuf->x, ibuf->y, type); if (alloc) MEM_freeN(rect); } else { /* we put imbuf copy on stack, cbuf knows rect is from other ibuf when freed! */ - stackbuf= alloc_compbuf(ibuf->x, ibuf->y, type, FALSE); - stackbuf->rect= rect; - stackbuf->malloc= alloc; + stackbuf = alloc_compbuf(ibuf->x, ibuf->y, type, FALSE); + stackbuf->rect = rect; + stackbuf->malloc = alloc; } IMB_freeImBuf(ibuf); @@ -103,32 +103,32 @@ static CompBuf *node_composit_get_movieclip(RenderData *rd, MovieClip *clip, Mov static void node_composit_exec_movieclip(void *data, bNode *node, bNodeStack **UNUSED(in), bNodeStack **out) { if (node->id) { - RenderData *rd= data; - MovieClip *clip= (MovieClip *)node->id; - MovieClipUser *user= (MovieClipUser *)node->storage; - CompBuf *stackbuf= NULL; + RenderData *rd = data; + MovieClip *clip = (MovieClip *)node->id; + MovieClipUser *user = (MovieClipUser *)node->storage; + CompBuf *stackbuf = NULL; BKE_movieclip_user_set_frame(user, rd->cfra); - stackbuf= node_composit_get_movieclip(rd, clip, user); + stackbuf = node_composit_get_movieclip(rd, clip, user); if (stackbuf) { - MovieTrackingStabilization *stab= &clip->tracking.stabilization; + MovieTrackingStabilization *stab = &clip->tracking.stabilization; /* put image on stack */ - out[0]->data= stackbuf; + out[0]->data = stackbuf; - if (stab->flag&TRACKING_2D_STABILIZATION) { + if (stab->flag & TRACKING_2D_STABILIZATION) { float loc[2], scale, angle; BKE_tracking_stabilization_data(&clip->tracking, rd->cfra, stackbuf->x, stackbuf->y, loc, &scale, &angle); - out[1]->vec[0]= loc[0]; - out[2]->vec[0]= loc[1]; + out[1]->vec[0] = loc[0]; + out[2]->vec[0] = loc[1]; - out[3]->vec[0]= scale; - out[4]->vec[0]= angle; + out[3]->vec[0] = scale; + out[4]->vec[0] = angle; } /* generate preview */ @@ -139,10 +139,10 @@ static void node_composit_exec_movieclip(void *data, bNode *node, bNodeStack **U static void init(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp)) { - MovieClipUser *user= MEM_callocN(sizeof(MovieClipUser), "node movie clip user"); + MovieClipUser *user = MEM_callocN(sizeof(MovieClipUser), "node movie clip user"); - node->storage= user; - user->framenr= 1; + node->storage = user; + user->framenr = 1; } void register_node_type_cmp_movieclip(bNodeTreeType *ttype) diff --git a/source/blender/nodes/composite/nodes/node_composite_moviedistortion.c b/source/blender/nodes/composite/nodes/node_composite_moviedistortion.c index d9f0da9b8aa..f6ffc783b08 100644 --- a/source/blender/nodes/composite/nodes/node_composite_moviedistortion.c +++ b/source/blender/nodes/composite/nodes/node_composite_moviedistortion.c @@ -4,7 +4,7 @@ * 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. + * 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 @@ -37,12 +37,12 @@ /* **************** Translate ******************** */ -static bNodeSocketTemplate cmp_node_moviedistortion_in[]= { +static bNodeSocketTemplate cmp_node_moviedistortion_in[] = { { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, { -1, 0, "" } }; -static bNodeSocketTemplate cmp_node_moviedistortion_out[]= { +static bNodeSocketTemplate cmp_node_moviedistortion_out[] = { { SOCK_RGBA, 0, "Image"}, { -1, 0, "" } }; @@ -51,63 +51,63 @@ static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) { if (in[0]->data) { if (node->id) { - MovieClip *clip= (MovieClip *)node->id; - CompBuf *cbuf= typecheck_compbuf(in[0]->data, CB_RGBA); - CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 0); + MovieClip *clip = (MovieClip *)node->id; + CompBuf *cbuf = typecheck_compbuf(in[0]->data, CB_RGBA); + CompBuf *stackbuf = alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 0); ImBuf *ibuf; - ibuf= IMB_allocImBuf(cbuf->x, cbuf->y, 32, 0); + ibuf = IMB_allocImBuf(cbuf->x, cbuf->y, 32, 0); if (ibuf) { - RenderData *rd= data; + RenderData *rd = data; ImBuf *obuf; - MovieTracking *tracking= &clip->tracking; + MovieTracking *tracking = &clip->tracking; int width, height; - float overscan= 0.0f; - MovieClipUser user= {0}; + float overscan = 0.0f; + MovieClipUser user = {0}; BKE_movieclip_user_set_frame(&user, rd->cfra); - ibuf->rect_float= cbuf->rect; + ibuf->rect_float = cbuf->rect; BKE_movieclip_get_size(clip, &user, &width, &height); if (!node->storage) - node->storage= BKE_tracking_distortion_create(); + node->storage = BKE_tracking_distortion_create(); - if (node->custom1==0) + if (node->custom1 == 0) obuf= BKE_tracking_distortion_exec(node->storage, tracking, ibuf, width, height, overscan, 1); else obuf= BKE_tracking_distortion_exec(node->storage, tracking, ibuf, width, height, overscan, 0); - stackbuf->rect= obuf->rect_float; - stackbuf->malloc= 1; + stackbuf->rect = obuf->rect_float; + stackbuf->malloc = TRUE; - obuf->mall&= ~IB_rectfloat; - obuf->rect_float= NULL; + obuf->mall &= ~IB_rectfloat; + obuf->rect_float = NULL; IMB_freeImBuf(ibuf); IMB_freeImBuf(obuf); } /* pass on output and free */ - out[0]->data= stackbuf; + out[0]->data = stackbuf; - if (cbuf!=in[0]->data) + if (cbuf != in[0]->data) free_compbuf(cbuf); } else { - CompBuf *cbuf= in[0]->data; - CompBuf *stackbuf= pass_on_compbuf(cbuf); + CompBuf *cbuf = in[0]->data; + CompBuf *stackbuf = pass_on_compbuf(cbuf); - out[0]->data= stackbuf; + out[0]->data = stackbuf; } } } static const char *label(bNode *node) { - if (node->custom1==0) + if (node->custom1 == 0) return IFACE_("Undistortion"); else return IFACE_("Distortion"); @@ -124,7 +124,7 @@ static void storage_free(bNode *node) static void storage_copy(bNode *orig_node, bNode *new_node) { if (orig_node->storage) - new_node->storage= BKE_tracking_distortion_copy(orig_node->storage); + new_node->storage = BKE_tracking_distortion_copy(orig_node->storage); } void register_node_type_cmp_moviedistortion(bNodeTreeType *ttype) diff --git a/source/blender/nodes/composite/nodes/node_composite_rotate.c b/source/blender/nodes/composite/nodes/node_composite_rotate.c index 6952817248d..8268977658d 100644 --- a/source/blender/nodes/composite/nodes/node_composite_rotate.c +++ b/source/blender/nodes/composite/nodes/node_composite_rotate.c @@ -87,7 +87,7 @@ static void node_composit_exec_rotate(void *UNUSED(data), bNode *node, bNodeStac v=-s*x + c*y + centy; xo= x+(int)centx; - switch(node->custom1) { + switch (node->custom1) { case 0: neareast_interpolation(ibuf, obuf, u, v, xo, yo); break; diff --git a/source/blender/nodes/composite/nodes/node_composite_sepcombYCCA.c b/source/blender/nodes/composite/nodes/node_composite_sepcombYCCA.c index b12f08bb13d..6eff3dcd95b 100644 --- a/source/blender/nodes/composite/nodes/node_composite_sepcombYCCA.c +++ b/source/blender/nodes/composite/nodes/node_composite_sepcombYCCA.c @@ -91,8 +91,7 @@ static void node_composit_exec_sepycca(void *UNUSED(data), bNode *node, bNodeSta if (in[0]->data==NULL) { float y, cb, cr; - switch(node->custom1) - { + switch (node->custom1) { case 1: rgb_to_ycc(in[0]->vec[0], in[0]->vec[1], in[0]->vec[2], &y, &cb, &cr, BLI_YCC_ITU_BT709); break; @@ -117,8 +116,7 @@ static void node_composit_exec_sepycca(void *UNUSED(data), bNode *node, bNodeSta CompBuf *cbuf2=typecheck_compbuf(cbuf, CB_RGBA); /* convert the RGB stackbuf to an HSV representation */ - switch(node->custom1) - { + switch (node->custom1) { case 1: composit1_pixel_processor(node, cbuf2, cbuf2, in[0]->vec, do_sepycca_709, CB_RGBA); break; @@ -240,8 +238,7 @@ static void node_composit_exec_combycca(void *UNUSED(data), bNode *node, bNodeSt float cb = in[1]->vec[0] * 255; float cr = in[2]->vec[0] * 255; - switch(node->custom1) - { + switch (node->custom1) { case 1: ycc_to_rgb(y, cb, cr, &out[0]->vec[0], &out[0]->vec[1], &out[0]->vec[2], BLI_YCC_ITU_BT709); break; @@ -270,8 +267,7 @@ static void node_composit_exec_combycca(void *UNUSED(data), bNode *node, bNodeSt stackbuf = alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); /* allocs */ - switch(node->custom1) - { + switch (node->custom1) { case 1: composit4_pixel_processor(node, stackbuf, in[0]->data, in[0]->vec, in[1]->data, in[1]->vec, in[2]->data, in[2]->vec, in[3]->data, in[3]->vec, diff --git a/source/blender/nodes/composite/nodes/node_composite_stabilize2d.c b/source/blender/nodes/composite/nodes/node_composite_stabilize2d.c index 0eac85c4030..e5d8fe16d51 100644 --- a/source/blender/nodes/composite/nodes/node_composite_stabilize2d.c +++ b/source/blender/nodes/composite/nodes/node_composite_stabilize2d.c @@ -48,20 +48,20 @@ static bNodeSocketTemplate cmp_node_stabilize2d_out[]= { static void node_composit_exec_stabilize2d(void *data, bNode *node, bNodeStack **in, bNodeStack **out) { if (in[0]->data && node->id) { - RenderData *rd= data; - MovieClip *clip= (MovieClip *)node->id; - CompBuf *cbuf= typecheck_compbuf(in[0]->data, CB_RGBA); + RenderData *rd = data; + MovieClip *clip = (MovieClip *)node->id; + CompBuf *cbuf = typecheck_compbuf(in[0]->data, CB_RGBA); CompBuf *stackbuf; float loc[2], scale, angle; BKE_tracking_stabilization_data(&clip->tracking, rd->cfra, cbuf->x, cbuf->y, loc, &scale, &angle); - stackbuf= node_composit_transform(cbuf, loc[0], loc[1], angle, scale, node->custom1); + stackbuf = node_composit_transform(cbuf, loc[0], loc[1], angle, scale, node->custom1); /* pass on output and free */ - out[0]->data= stackbuf; + out[0]->data = stackbuf; - if (cbuf!=in[0]->data) + if (cbuf != in[0]->data) free_compbuf(cbuf); } } diff --git a/source/blender/nodes/composite/nodes/node_composite_transform.c b/source/blender/nodes/composite/nodes/node_composite_transform.c index a610d8a66c4..2c2a352017a 100644 --- a/source/blender/nodes/composite/nodes/node_composite_transform.c +++ b/source/blender/nodes/composite/nodes/node_composite_transform.c @@ -4,7 +4,7 @@ * 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. + * 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 @@ -34,7 +34,7 @@ /* **************** Transform ******************** */ -static bNodeSocketTemplate cmp_node_transform_in[]= { +static bNodeSocketTemplate cmp_node_transform_in[] = { { SOCK_RGBA, 1, "Image", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, { SOCK_FLOAT, 1, "X", 0.0f, 0.0f, 0.0f, 0.0f, -10000.0f, 10000.0f}, { SOCK_FLOAT, 1, "Y", 0.0f, 0.0f, 0.0f, 0.0f, -10000.0f, 10000.0f}, @@ -43,17 +43,17 @@ static bNodeSocketTemplate cmp_node_transform_in[]= { { -1, 0, "" } }; -static bNodeSocketTemplate cmp_node_transform_out[]= { +static bNodeSocketTemplate cmp_node_transform_out[] = { { SOCK_RGBA, 0, "Image"}, { -1, 0, "" } }; CompBuf* node_composit_transform(CompBuf *cbuf, float x, float y, float angle, float scale, int filter_type) { - CompBuf *stackbuf= alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, 1); + CompBuf *stackbuf = alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, TRUE); ImBuf *ibuf, *obuf; float mat[4][4], lmat[4][4], rmat[4][4], smat[4][4], cmat[4][4], icmat[4][4]; - float svec[3]= {scale, scale, scale}, loc[2]= {x, y}; + float svec[3] = {scale, scale, scale}, loc[2] = {x, y}; unit_m4(rmat); unit_m4(lmat); @@ -61,8 +61,8 @@ CompBuf* node_composit_transform(CompBuf *cbuf, float x, float y, float angle, f unit_m4(cmat); /* image center as rotation center */ - cmat[3][0]= (float)cbuf->x/2.0f; - cmat[3][1]= (float)cbuf->y/2.0f; + cmat[3][0] = (float)cbuf->x/2.0f; + cmat[3][1] = (float)cbuf->y/2.0f; invert_m4_m4(icmat, cmat); size_to_mat4(smat, svec); /* scale matrix */ @@ -74,22 +74,22 @@ CompBuf* node_composit_transform(CompBuf *cbuf, float x, float y, float angle, f invert_m4(mat); - ibuf= IMB_allocImBuf(cbuf->x, cbuf->y, 32, 0); - obuf= IMB_allocImBuf(stackbuf->x, stackbuf->y, 32, 0); + ibuf = IMB_allocImBuf(cbuf->x, cbuf->y, 32, 0); + obuf = IMB_allocImBuf(stackbuf->x, stackbuf->y, 32, 0); if (ibuf && obuf) { int i, j; - ibuf->rect_float= cbuf->rect; - obuf->rect_float= stackbuf->rect; + ibuf->rect_float = cbuf->rect; + obuf->rect_float = stackbuf->rect; - for (j=0; jy; j++) { - for (i=0; ix;i++) { - float vec[3]= {i, j, 0}; + for (j = 0; j < cbuf->y; j++) { + for (i = 0; i < cbuf->x; i++) { + float vec[3] = {i, j, 0}; mul_v3_m4v3(vec, mat, vec); - switch(filter_type) { + switch (filter_type) { case 0: neareast_interpolation(ibuf, obuf, vec[0], vec[1], i, j); break; @@ -114,15 +114,15 @@ CompBuf* node_composit_transform(CompBuf *cbuf, float x, float y, float angle, f static void node_composit_exec_transform(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) { if (in[0]->data) { - CompBuf *cbuf= typecheck_compbuf(in[0]->data, CB_RGBA); + CompBuf *cbuf = typecheck_compbuf(in[0]->data, CB_RGBA); CompBuf *stackbuf; - stackbuf= node_composit_transform(cbuf, in[1]->vec[0], in[2]->vec[0], in[3]->vec[0], in[4]->vec[0], node->custom1); + stackbuf = node_composit_transform(cbuf, in[1]->vec[0], in[2]->vec[0], in[3]->vec[0], in[4]->vec[0], node->custom1); /* pass on output and free */ - out[0]->data= stackbuf; + out[0]->data = stackbuf; - if (cbuf!=in[0]->data) + if (cbuf != in[0]->data) free_compbuf(cbuf); } } diff --git a/source/blender/nodes/shader/node_shader_util.c b/source/blender/nodes/shader/node_shader_util.c index 90c62bc47ac..9a9a27603dc 100644 --- a/source/blender/nodes/shader/node_shader_util.c +++ b/source/blender/nodes/shader/node_shader_util.c @@ -101,7 +101,7 @@ void ntreeShaderGetTexcoMode(bNodeTree *ntree, int r_mode, short *texco, int *mo /* note; sockets always exist for the given type! */ for (a=0, sock= node->outputs.first; sock; sock= sock->next, a++) { if (sock->flag & SOCK_IN_USE) { - switch(a) { + switch (a) { case GEOM_OUT_GLOB: *texco |= TEXCO_GLOB|NEED_UV; break; case GEOM_OUT_VIEW: @@ -137,7 +137,7 @@ void nodeShaderSynchronizeID(bNode *node, int copyto) for (a=0, sock= node->inputs.first; sock; sock= sock->next, a++) { if (!nodeSocketIsHidden(sock)) { if (copyto) { - switch(a) { + switch (a) { case MAT_IN_COLOR: copy_v3_v3(&ma->r, ((bNodeSocketValueRGBA*)sock->default_value)->value); break; case MAT_IN_SPEC: @@ -161,7 +161,7 @@ void nodeShaderSynchronizeID(bNode *node, int copyto) } } else { - switch(a) { + switch (a) { case MAT_IN_COLOR: copy_v3_v3(((bNodeSocketValueRGBA*)sock->default_value)->value, &ma->r); break; case MAT_IN_SPEC: diff --git a/source/blender/nodes/shader/nodes/node_shader_math.c b/source/blender/nodes/shader/nodes/node_shader_math.c index 44df496f5d6..db2b57ab51b 100644 --- a/source/blender/nodes/shader/nodes/node_shader_math.c +++ b/source/blender/nodes/shader/nodes/node_shader_math.c @@ -48,7 +48,7 @@ static bNodeSocketTemplate sh_node_math_out[]= { static void node_shader_exec_math(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out) { - switch(node->custom1) { + switch (node->custom1) { case 0: /* Add */ out[0]->vec[0]= in[0]->vec[0] + in[1]->vec[0]; diff --git a/source/blender/nodes/texture/nodes/node_texture_math.c b/source/blender/nodes/texture/nodes/node_texture_math.c index 29d154df884..54c9645fac3 100644 --- a/source/blender/nodes/texture/nodes/node_texture_math.c +++ b/source/blender/nodes/texture/nodes/node_texture_math.c @@ -51,7 +51,7 @@ static void valuefn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor float in0 = tex_input_value(in[0], p, thread); float in1 = tex_input_value(in[1], p, thread); - switch(node->custom1) { + switch (node->custom1) { case 0: /* Add */ *out= in0 + in1; diff --git a/source/blender/nodes/texture/nodes/node_texture_output.c b/source/blender/nodes/texture/nodes/node_texture_output.c index 2b899fde593..19ba0e88639 100644 --- a/source/blender/nodes/texture/nodes/node_texture_output.c +++ b/source/blender/nodes/texture/nodes/node_texture_output.c @@ -88,14 +88,14 @@ static void unique_name(bNode *node) i = node; while (i->prev) i = i->prev; - for (; i; i=i->next) { - if ( - i == node || - i->type != TEX_NODE_OUTPUT || - strcmp(name, ((TexNodeOutput*)(i->storage))->name) - ) + for ( ; i; i = i->next) { + if (i == node || + i->type != TEX_NODE_OUTPUT || + strcmp(name, ((TexNodeOutput*)(i->storage))->name)) + { continue; - + } + if (!new_name) { int len = strlen(name); if (len >= 4 && sscanf(name + len - 4, ".%03d", &suffix) == 1) { diff --git a/source/blender/python/bmesh/bmesh_py_types_customdata.c b/source/blender/python/bmesh/bmesh_py_types_customdata.c index 91104fb23f5..6a02d8e4a25 100644 --- a/source/blender/python/bmesh/bmesh_py_types_customdata.c +++ b/source/blender/python/bmesh/bmesh_py_types_customdata.c @@ -63,7 +63,15 @@ static CustomData *bpy_bm_customdata_get(BMesh *bm, char htype) static CustomDataLayer *bpy_bmlayeritem_get(BPy_BMLayerItem *self) { CustomData *data = bpy_bm_customdata_get(self->bm, self->htype); - return &data->layers[CustomData_get_layer_index_n(data, self->type, self->index)]; + const int index_absolute = CustomData_get_layer_index_n(data, self->type, self->index); + if (index_absolute != -1) { + return &data->layers[index_absolute]; + } + else { + PyErr_SetString(PyExc_RuntimeError, + "layer has become invalid"); + return NULL; + } } /* py-type definitions @@ -126,9 +134,10 @@ static PyObject *bpy_bmlayercollection_active_get(BPy_BMLayerItem *self, void *U BPY_BM_CHECK_OBJ(self); data = bpy_bm_customdata_get(self->bm, self->htype); - index = CustomData_get_active_layer_index(data, self->type); + index = CustomData_get_active_layer_index(data, self->type); /* absolute */ if (index != -1) { + index -= CustomData_get_layer_index(data, self->type); /* make relative */ return BPy_BMLayerItem_CreatePyObject(self->bm, self->htype, self->type, index); } else { @@ -146,7 +155,12 @@ static PyObject *bpy_bmlayeritem_name_get(BPy_BMLayerItem *self, void *UNUSED(fl BPY_BM_CHECK_OBJ(self); layer = bpy_bmlayeritem_get(self); - return PyUnicode_FromString(layer->name); + if (layer) { + return PyUnicode_FromString(layer->name); + } + else { + return NULL; + } } static PyGetSetDef bpy_bmlayeraccess_vert_getseters[] = { @@ -311,7 +325,7 @@ static PyObject *bpy_bmlayercollection_keys(BPy_BMLayerCollection *self) BPY_BM_CHECK_OBJ(self); data = bpy_bm_customdata_get(self->bm, self->htype); - index = CustomData_get_layer_index(data, self->type); + index = CustomData_get_layer_index(data, self->type); /* absolute, but no need to make relative */ ret = PyList_New(0); @@ -426,9 +440,10 @@ static PyObject *bpy_bmlayercollection_get(BPy_BMLayerCollection *self, PyObject int index; data = bpy_bm_customdata_get(self->bm, self->htype); - index = CustomData_get_named_layer_index(data, self->type, key); + index = CustomData_get_named_layer_index(data, self->type, key); /* absolute index */ if (index != -1) { + index -= CustomData_get_layer_index(data, self->type); /* make relative */ return BPy_BMLayerItem_CreatePyObject(self->bm, self->htype, self->type, index); } } @@ -471,9 +486,10 @@ static PyObject *bpy_bmlayercollection_subscript_str(BPy_BMLayerCollection *self BPY_BM_CHECK_OBJ(self); data = bpy_bm_customdata_get(self->bm, self->htype); - index = CustomData_get_named_layer_index(data, self->type, keyname); + index = CustomData_get_named_layer_index(data, self->type, keyname); /* absolute */ if (index != -1) { + index -= CustomData_get_layer_index(data, self->type); /* make relative */ return BPy_BMLayerItem_CreatePyObject(self->bm, self->htype, self->type, index); } else { diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 7259ea8e2f5..7c8f28d0979 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -1424,7 +1424,7 @@ int pyrna_pydict_to_props(PointerRNA *ptr, PyObject *kw, int all_args, const cha totkw = kw ? PyDict_Size(kw) : 0; - RNA_STRUCT_BEGIN(ptr, prop) { + RNA_STRUCT_BEGIN (ptr, prop) { arg_name = RNA_property_identifier(prop); if (strcmp(arg_name, "rna_type") == 0) continue; @@ -2203,7 +2203,7 @@ int pyrna_prop_collection_subscript_str_lib_pair_ptr(BPy_PropertyRNA *self, PyOb /* lib is either a valid poniter or NULL, * either way can do direct comparison with id.lib */ - RNA_PROP_BEGIN(&self->ptr, itemptr, self->prop) { + RNA_PROP_BEGIN (&self->ptr, itemptr, self->prop) { ID *id = itemptr.data; /* always an ID */ if (id->lib == lib && (strncmp(keyname, id->name + 2, sizeof(id->name) - 2) == 0)) { found = TRUE; @@ -3346,7 +3346,7 @@ static void pyrna_dir_members_rna(PyObject *list, PointerRNA *ptr) RNA_pointer_create(NULL, &RNA_Struct, ptr->type, &tptr); iterprop = RNA_struct_find_property(&tptr, "functions"); - RNA_PROP_BEGIN(&tptr, itemptr, iterprop) { + RNA_PROP_BEGIN (&tptr, itemptr, iterprop) { idname = RNA_function_identifier(itemptr.data); pystring = PyUnicode_FromString(idname); @@ -3365,7 +3365,7 @@ static void pyrna_dir_members_rna(PyObject *list, PointerRNA *ptr) iterprop = RNA_struct_iterator_property(ptr->type); - RNA_PROP_BEGIN(ptr, itemptr, iterprop) { + RNA_PROP_BEGIN (ptr, itemptr, iterprop) { nameptr = RNA_struct_name_get_alloc(&itemptr, name, sizeof(name), &namelen); if (nameptr) { @@ -3980,7 +3980,7 @@ static PyObject *pyrna_prop_collection_keys(BPy_PropertyRNA *self) char name[256], *nameptr; int namelen; - RNA_PROP_BEGIN(&self->ptr, itemptr, self->prop) { + RNA_PROP_BEGIN (&self->ptr, itemptr, self->prop) { nameptr = RNA_struct_name_get_alloc(&itemptr, name, sizeof(name), &namelen); if (nameptr) { @@ -4017,7 +4017,7 @@ static PyObject *pyrna_prop_collection_items(BPy_PropertyRNA *self) int namelen; int i = 0; - RNA_PROP_BEGIN(&self->ptr, itemptr, self->prop) { + RNA_PROP_BEGIN (&self->ptr, itemptr, self->prop) { if (itemptr.data) { /* add to python list */ item = PyTuple_New(2); @@ -4189,7 +4189,7 @@ static PyObject *pyrna_prop_collection_find(BPy_PropertyRNA *self, PyObject *key PYRNA_PROP_CHECK_OBJ(self); - RNA_PROP_BEGIN(&self->ptr, itemptr, self->prop) { + RNA_PROP_BEGIN (&self->ptr, itemptr, self->prop) { nameptr = RNA_struct_name_get_alloc(&itemptr, name, sizeof(name), &namelen); if (nameptr) { @@ -4220,7 +4220,7 @@ static void foreach_attr_type(BPy_PropertyRNA *self, const char *attr, *attr_signed = FALSE; /* note: this is fail with zero length lists, so don't let this get caled in that case */ - RNA_PROP_BEGIN(&self->ptr, itemptr, self->prop) { + RNA_PROP_BEGIN (&self->ptr, itemptr, self->prop) { prop = RNA_struct_find_property(&itemptr, attr); *raw_type = RNA_property_raw_type(prop); *attr_tot = RNA_property_array_length(&itemptr, prop); @@ -6401,7 +6401,7 @@ static PyObject *pyrna_basetype_dir(BPy_BaseTypeRNA *self) PyObject *ret = PyList_New(0); PyObject *item; - RNA_PROP_BEGIN(&self->ptr, itemptr, self->prop) { + RNA_PROP_BEGIN (&self->ptr, itemptr, self->prop) { StructRNA *srna = itemptr.data; StructRNA *srna_base = RNA_struct_base(itemptr.data); /* skip own operators, these double up [#29666] */ @@ -7189,7 +7189,7 @@ void pyrna_alloc_types(void) RNA_blender_rna_pointer_create(&ptr); prop = RNA_struct_find_property(&ptr, "structs"); - RNA_PROP_BEGIN(&ptr, itemptr, prop) { + RNA_PROP_BEGIN (&ptr, itemptr, prop) { PyObject *item = pyrna_struct_Subtype(&itemptr); if (item == NULL) { if (PyErr_Occurred()) { @@ -7217,7 +7217,7 @@ void pyrna_free_types(void) prop = RNA_struct_find_property(&ptr, "structs"); - RNA_PROP_BEGIN(&ptr, itemptr, prop) { + RNA_PROP_BEGIN (&ptr, itemptr, prop) { StructRNA *srna = srna_from_ptr(&itemptr); void *py_ptr = RNA_struct_py_type_get(srna); @@ -7477,7 +7477,7 @@ static PyObject *pyrna_unregister_class(PyObject *UNUSED(self), PyObject *py_cla /* loop over all structs */ - RNA_PROP_BEGIN(&ptr_rna, itemptr, prop_rna) { + RNA_PROP_BEGIN (&ptr_rna, itemptr, prop_rna) { srna_iter = itemptr.data; if (pyrna_srna_contains_pointer_prop_srna(srna_iter, srna, &prop_identifier)) { break; diff --git a/source/blender/python/mathutils/mathutils_geometry.c b/source/blender/python/mathutils/mathutils_geometry.c index b94c2e21139..543574e5136 100644 --- a/source/blender/python/mathutils/mathutils_geometry.c +++ b/source/blender/python/mathutils/mathutils_geometry.c @@ -1011,7 +1011,7 @@ static PyObject *M_Geometry_interpolate_bezier(PyObject *UNUSED(self), PyObject coord_array = MEM_callocN(dims * (resolu) * sizeof(float), "interpolate_bezier"); for (i = 0; i < dims; i++) { - forward_diff_bezier(k1[i], h1[i], h2[i], k2[i], coord_array + i, resolu - 1, sizeof(float) * dims); + BKE_curve_forward_diff_bezier(k1[i], h1[i], h2[i], k2[i], coord_array + i, resolu - 1, sizeof(float) * dims); } list = PyList_New(resolu); diff --git a/source/blender/quicktime/apple/quicktime_import.c b/source/blender/quicktime/apple/quicktime_import.c index a1f35935877..197c8cebca3 100644 --- a/source/blender/quicktime/apple/quicktime_import.c +++ b/source/blender/quicktime/apple/quicktime_import.c @@ -195,16 +195,19 @@ int anim_is_quicktime (const char *name) // don't let quicktime movie import handle these if ( BLI_testextensie(name, ".swf") || - BLI_testextensie(name, ".txt") || - BLI_testextensie(name, ".mpg") || - BLI_testextensie(name, ".avi") || // wouldnt be appropriate ;) - BLI_testextensie(name, ".tga") || - BLI_testextensie(name, ".png") || - BLI_testextensie(name, ".bmp") || - BLI_testextensie(name, ".jpg") || - BLI_testextensie(name, ".wav") || - BLI_testextensie(name, ".zip") || - BLI_testextensie(name, ".mp3")) return 0; + BLI_testextensie(name, ".txt") || + BLI_testextensie(name, ".mpg") || + BLI_testextensie(name, ".avi") || // wouldnt be appropriate ;) + BLI_testextensie(name, ".tga") || + BLI_testextensie(name, ".png") || + BLI_testextensie(name, ".bmp") || + BLI_testextensie(name, ".jpg") || + BLI_testextensie(name, ".wav") || + BLI_testextensie(name, ".zip") || + BLI_testextensie(name, ".mp3")) + { + return 0; + } if (QTIME_DEBUG) printf("qt: checking as movie: %s\n", name); @@ -582,13 +585,16 @@ int imb_is_a_quicktime (char *name) if (QTIME_DEBUG) printf("qt: checking as image %s\n", name); // don't let quicktime image import handle these - if ( BLI_testextensie(name, ".swf") || - BLI_testextensie(name, ".txt") || - BLI_testextensie(name, ".mpg") || - BLI_testextensie(name, ".wav") || - BLI_testextensie(name, ".mov") || // not as image, doesn't work - BLI_testextensie(name, ".avi") || - BLI_testextensie(name, ".mp3")) return 0; + if (BLI_testextensie(name, ".swf") || + BLI_testextensie(name, ".txt") || + BLI_testextensie(name, ".mpg") || + BLI_testextensie(name, ".wav") || + BLI_testextensie(name, ".mov") || // not as image, doesn't work + BLI_testextensie(name, ".avi") || + BLI_testextensie(name, ".mp3")) + { + return 0; + } sprintf(theFullPath, "%s", name); #ifdef __APPLE__ diff --git a/source/blender/render/intern/raytrace/bvh.h b/source/blender/render/intern/raytrace/bvh.h index ac86a65ff0b..946b64e98e5 100644 --- a/source/blender/render/intern/raytrace/bvh.h +++ b/source/blender/render/intern/raytrace/bvh.h @@ -88,9 +88,9 @@ static int rayobject_bb_intersect_test(const Isect *isec, const float *_bb) RE_RC_COUNT(isec->raycounter->bb.test); - if(t1x > t2y || t2x < t1y || t1x > t2z || t2x < t1z || t1y > t2z || t2y < t1z) return 0; - if(t2x < 0.0 || t2y < 0.0 || t2z < 0.0) return 0; - if(t1x > isec->dist || t1y > isec->dist || t1z > isec->dist) return 0; + if (t1x > t2y || t2x < t1y || t1x > t2z || t2x < t1z || t1y > t2z || t2y < t1z) return 0; + if (t2x < 0.0 || t2y < 0.0 || t2z < 0.0) return 0; + if (t1x > isec->dist || t1y > isec->dist || t1z > isec->dist) return 0; RE_RC_COUNT(isec->raycounter->bb.hit); return 1; @@ -113,10 +113,10 @@ template static void bvh_done(Tree *obj); template static void bvh_free(Tree *obj) { - if(obj->builder) + if (obj->builder) rtbuild_free(obj->builder); - if(obj->node_arena) + if (obj->node_arena) BLI_memarena_free(obj->node_arena); MEM_freeN(obj); @@ -125,7 +125,7 @@ static void bvh_free(Tree *obj) template static void bvh_bb(Tree *obj, float *min, float *max) { - if(obj->root) + if (obj->root) bvh_node_merge_bb(obj->root, min, max); } @@ -149,12 +149,10 @@ template static inline int bvh_node_hit_test(Node *node, Isect *isec template static inline void bvh_node_merge_bb(Node *node, float *min, float *max) { - if(is_leaf(node)) - { + if (is_leaf(node)) { RE_rayobject_merge_bb( (RayObject*)node, min, max); } - else - { + else { DO_MIN(node->bb , min); DO_MAX(node->bb+3, max); } @@ -173,26 +171,22 @@ static int bvh_node_stack_raycast(Node *root, Isect *isec) Node *stack[MAX_STACK_SIZE]; int hit = 0, stack_pos = 0; - if(!TEST_ROOT && !is_leaf(root)) + if (!TEST_ROOT && !is_leaf(root)) bvh_node_push_childs(root, isec, stack, stack_pos); else stack[stack_pos++] = root; - while(stack_pos) - { + while (stack_pos) { Node *node = stack[--stack_pos]; - if(!is_leaf(node)) - { - if(bvh_node_hit_test(node,isec)) - { + if (!is_leaf(node)) { + if (bvh_node_hit_test(node,isec)) { bvh_node_push_childs(node, isec, stack, stack_pos); assert(stack_pos <= MAX_STACK_SIZE); } } - else - { + else { hit |= RE_rayobject_intersect( (RayObject*)node, isec); - if(SHADOW && hit) return hit; + if (SHADOW && hit) return hit; } } return hit; @@ -212,11 +206,9 @@ static int bvh_node_stack_raycast_simd(Node *root, Isect *isec) int hit = 0, stack_pos = 0; - if(!TEST_ROOT) - { - if(!is_leaf(root)) - { - if(!is_leaf(root->child)) + if (!TEST_ROOT) { + if (!is_leaf(root)) { + if (!is_leaf(root->child)) bvh_node_push_childs(root, isec, stack, stack_pos); else return RE_rayobject_intersect( (RayObject*)root->child, isec); @@ -224,19 +216,16 @@ static int bvh_node_stack_raycast_simd(Node *root, Isect *isec) else return RE_rayobject_intersect( (RayObject*)root, isec); } - else - { - if(!is_leaf(root)) + else { + if (!is_leaf(root)) stack[stack_pos++] = root; else return RE_rayobject_intersect( (RayObject*)root, isec); } - while(true) - { + while (true) { //Use SIMD 4 - if(stack_pos >= 4) - { + if (stack_pos >= 4) { __m128 t_bb[6]; Node * t_node[4]; @@ -286,41 +275,33 @@ static int bvh_node_stack_raycast_simd(Node *root, Isect *isec) RE_RC_COUNT(isec->raycounter->simd_bb.test); int res = test_bb_group4( t_bb, isec ); - for(int i=0; i<4; i++) - if(res & (1<raycounter->simd_bb.hit); - if(!is_leaf(t_node[i])) - { - for(Node *t=t_node[i]; t; t=t->sibling) - { + if (!is_leaf(t_node[i])) { + for (Node *t = t_node[i]; t; t = t->sibling) { assert(stack_pos < MAX_STACK_SIZE); stack[stack_pos++] = t; } } - else - { + else { hit |= RE_rayobject_intersect( (RayObject*)t_node[i], isec); - if(hit && isec->mode == RE_RAY_SHADOW) return hit; + if (hit && isec->mode == RE_RAY_SHADOW) return hit; } } } - else if(stack_pos > 0) - { + else if (stack_pos > 0) { Node *node = stack[--stack_pos]; assert(!is_leaf(node)); - if(bvh_node_hit_test(node,isec)) - { - if(!is_leaf(node->child)) - { + if (bvh_node_hit_test(node,isec)) { + if (!is_leaf(node->child)) { bvh_node_push_childs(node, isec, stack, stack_pos); assert(stack_pos <= MAX_STACK_SIZE); } - else - { + else { hit |= RE_rayobject_intersect( (RayObject*)node->child, isec); - if(hit && isec->mode == RE_RAY_SHADOW) return hit; + if (hit && isec->mode == RE_RAY_SHADOW) return hit; } } } @@ -338,41 +319,41 @@ template static int bvh_node_raycast(Node *node, Isect *isec) { int hit = 0; - if(bvh_test_node(node, isec)) + if (bvh_test_node(node, isec)) { - if(isec->idot_axis[node->split_axis] > 0.0f) + if (isec->idot_axis[node->split_axis] > 0.0f) { int i; for(i=0; ichild[i])) + if (!is_leaf(node->child[i])) { - if(node->child[i] == 0) break; + if (node->child[i] == 0) break; hit |= bvh_node_raycast(node->child[i], isec); - if(hit && isec->mode == RE_RAY_SHADOW) return hit; + if (hit && isec->mode == RE_RAY_SHADOW) return hit; } else { hit |= RE_rayobject_intersect( (RayObject*)node->child[i], isec); - if(hit && isec->mode == RE_RAY_SHADOW) return hit; + if (hit && isec->mode == RE_RAY_SHADOW) return hit; } } else { int i; for(i=BVH_NCHILDS-1; i>=0; i--) - if(!is_leaf(node->child[i])) + if (!is_leaf(node->child[i])) { - if(node->child[i]) + if (node->child[i]) { hit |= dfs_raycast(node->child[i], isec); - if(hit && isec->mode == RE_RAY_SHADOW) return hit; + if (hit && isec->mode == RE_RAY_SHADOW) return hit; } } else { hit |= RE_rayobject_intersect( (RayObject*)node->child[i], isec); - if(hit && isec->mode == RE_RAY_SHADOW) return hit; + if (hit && isec->mode == RE_RAY_SHADOW) return hit; } } } @@ -385,28 +366,22 @@ void bvh_dfs_make_hint(Node *node, LCTSHint *hint, int reserve_space, HintObject { assert( hint->size + reserve_space + 1 <= RE_RAY_LCTS_MAX_SIZE ); - if(is_leaf(node)) - { + if (is_leaf(node)) { hint->stack[hint->size++] = (RayObject*)node; } - else - { + else { int childs = count_childs(node); - if(hint->size + reserve_space + childs <= RE_RAY_LCTS_MAX_SIZE) - { + if (hint->size + reserve_space + childs <= RE_RAY_LCTS_MAX_SIZE) { int result = hint_test_bb(hintObject, node->bb, node->bb+3); - if(result == HINT_RECURSE) - { + if (result == HINT_RECURSE) { /* We are 100% sure the ray will be pass inside this node */ bvh_dfs_make_hint_push_siblings(node->child, hint, reserve_space, hintObject); } - else if(result == HINT_ACCEPT) - { + else if (result == HINT_ACCEPT) { hint->stack[hint->size++] = (RayObject*)node; } } - else - { + else { hint->stack[hint->size++] = (RayObject*)node; } } diff --git a/source/blender/render/intern/raytrace/rayobject.cpp b/source/blender/render/intern/raytrace/rayobject.cpp index b2f85e8429d..a2773ba218d 100644 --- a/source/blender/render/intern/raytrace/rayobject.cpp +++ b/source/blender/render/intern/raytrace/rayobject.cpp @@ -60,13 +60,11 @@ MALWAYS_INLINE RayObject* rayface_from_coords(RayFace *rayface, void *ob, void * copy_v3_v3(rayface->v2, v2); copy_v3_v3(rayface->v3, v3); - if (v4) - { + if (v4) { copy_v3_v3(rayface->v4, v4); rayface->quad = 1; } - else - { + else { rayface->quad = 0; } @@ -77,8 +75,7 @@ MALWAYS_INLINE void rayface_from_vlak(RayFace *rayface, ObjectInstanceRen *obi, { rayface_from_coords(rayface, obi, vlr, vlr->v1->co, vlr->v2->co, vlr->v3->co, vlr->v4 ? vlr->v4->co : NULL); - if (obi->transform_primitives) - { + if (obi->transform_primitives) { mul_m4_v3(obi->mat, rayface->v1); mul_m4_v3(obi->mat, rayface->v2); mul_m4_v3(obi->mat, rayface->v3); @@ -295,13 +292,11 @@ MALWAYS_INLINE int intersect_rayface(RayObject *hit_obj, RayFace *face, Isect *i return 0; /* check if we should intersect this face */ - if (is->check == RE_CHECK_VLR_RENDER) - { + if (is->check == RE_CHECK_VLR_RENDER) { if (vlr_check_intersect(is, (ObjectInstanceRen*)face->ob, (VlakRen*)face->face) == 0) return 0; } - else if (is->check == RE_CHECK_VLR_NON_SOLID_MATERIAL) - { + else if (is->check == RE_CHECK_VLR_NON_SOLID_MATERIAL) { if (vlr_check_intersect(is, (ObjectInstanceRen*)face->ob, (VlakRen*)face->face) == 0) return 0; if (vlr_check_intersect_solid(is, (ObjectInstanceRen*)face->ob, (VlakRen*)face->face) == 0) @@ -322,27 +317,25 @@ MALWAYS_INLINE int intersect_rayface(RayObject *hit_obj, RayFace *face, Isect *i /* when a shadow ray leaves a face, it can be little outside the edges * of it, causing intersection to be detected in its neighbor face */ - if (is->skip & RE_SKIP_VLR_NEIGHBOUR) - { - if (dist < 0.1f && is->orig.ob == face->ob) - { + if (is->skip & RE_SKIP_VLR_NEIGHBOUR) { + if (dist < 0.1f && is->orig.ob == face->ob) { VlakRen * a = (VlakRen*)is->orig.face; VlakRen * b = (VlakRen*)face->face; /* so there's a shared edge or vertex, let's intersect ray with * face itself, if that's true we can safely return 1, otherwise * we assume the intersection is invalid, 0 */ - if (a->v1==b->v1 || a->v2==b->v1 || a->v3==b->v1 || a->v4==b->v1 - || a->v1==b->v2 || a->v2==b->v2 || a->v3==b->v2 || a->v4==b->v2 - || a->v1==b->v3 || a->v2==b->v3 || a->v3==b->v3 || a->v4==b->v3 - || (b->v4 && (a->v1==b->v4 || a->v2==b->v4 || a->v3==b->v4 || a->v4==b->v4))) { + if (a->v1==b->v1 || a->v2==b->v1 || a->v3==b->v1 || a->v4==b->v1 || + a->v1==b->v2 || a->v2==b->v2 || a->v3==b->v2 || a->v4==b->v2 || + a->v1==b->v3 || a->v2==b->v3 || a->v3==b->v3 || a->v4==b->v3 || + (b->v4 && (a->v1==b->v4 || a->v2==b->v4 || a->v3==b->v4 || a->v4==b->v4))) + { /* create RayFace from original face, transformed if necessary */ RayFace origface; ObjectInstanceRen *ob= (ObjectInstanceRen*)is->orig.ob; rayface_from_vlak(&origface, ob, (VlakRen*)is->orig.face); - if (!isec_tri_quad_neighbour(is->start, is->dir, &origface)) - { + if (!isec_tri_quad_neighbour(is->start, is->dir, &origface)) { return 0; } } @@ -375,8 +368,7 @@ int RE_rayobject_raycast(RayObject *r, Isect *isec) RE_RC_COUNT(isec->raycounter->raycast.test); /* setup vars used on raycast */ - for (i=0; i<3; i++) - { + for (i=0; i<3; i++) { isec->idot_axis[i] = 1.0f / isec->dir[i]; isec->bv_index[2*i] = isec->idot_axis[i] < 0.0 ? 1 : 0; @@ -388,12 +380,10 @@ int RE_rayobject_raycast(RayObject *r, Isect *isec) #ifdef RT_USE_LAST_HIT /* last hit heuristic */ - if (isec->mode==RE_RAY_SHADOW && isec->last_hit) - { + if (isec->mode==RE_RAY_SHADOW && isec->last_hit) { RE_RC_COUNT(isec->raycounter->rayshadow_last_hit.test); - if (RE_rayobject_intersect(isec->last_hit, isec)) - { + if (RE_rayobject_intersect(isec->last_hit, isec)) { RE_RC_COUNT(isec->raycounter->raycast.hit); RE_RC_COUNT(isec->raycounter->rayshadow_last_hit.hit); return 1; @@ -405,8 +395,7 @@ int RE_rayobject_raycast(RayObject *r, Isect *isec) isec->hit_hint = 0; #endif - if (RE_rayobject_intersect(r, isec)) - { + if (RE_rayobject_intersect(r, isec)) { RE_RC_COUNT(isec->raycounter->raycast.hit); #ifdef RT_USE_HINT @@ -420,12 +409,10 @@ int RE_rayobject_raycast(RayObject *r, Isect *isec) int RE_rayobject_intersect(RayObject *r, Isect *i) { - if (RE_rayobject_isRayFace(r)) - { + if (RE_rayobject_isRayFace(r)) { return intersect_rayface(r, (RayFace*) RE_rayobject_align(r), i); } - else if (RE_rayobject_isVlakPrimitive(r)) - { + else if (RE_rayobject_isVlakPrimitive(r)) { //TODO optimize (useless copy to RayFace to avoid duplicate code) VlakPrimitive *face = (VlakPrimitive*) RE_rayobject_align(r); RayFace nface; @@ -433,8 +420,7 @@ int RE_rayobject_intersect(RayObject *r, Isect *i) return intersect_rayface(r, &nface, i); } - else if (RE_rayobject_isRayAPI(r)) - { + else if (RE_rayobject_isRayAPI(r)) { r = RE_rayobject_align(r); return r->api->raycast(r, i); } @@ -466,12 +452,10 @@ void RE_rayobject_free(RayObject *r) float RE_rayobject_cost(RayObject *r) { - if (RE_rayobject_isRayFace(r) || RE_rayobject_isVlakPrimitive(r)) - { + if (RE_rayobject_isRayFace(r) || RE_rayobject_isVlakPrimitive(r)) { return 1.0f; } - else if (RE_rayobject_isRayAPI(r)) - { + else if (RE_rayobject_isRayAPI(r)) { r = RE_rayobject_align(r); return r->api->cost(r); } @@ -485,8 +469,7 @@ float RE_rayobject_cost(RayObject *r) void RE_rayobject_merge_bb(RayObject *r, float *min, float *max) { - if (RE_rayobject_isRayFace(r)) - { + if (RE_rayobject_isRayFace(r)) { RayFace *face = (RayFace*) RE_rayobject_align(r); DO_MINMAX(face->v1, min, max); @@ -494,8 +477,7 @@ void RE_rayobject_merge_bb(RayObject *r, float *min, float *max) DO_MINMAX(face->v3, min, max); if (RE_rayface_isQuad(face)) DO_MINMAX(face->v4, min, max); } - else if (RE_rayobject_isVlakPrimitive(r)) - { + else if (RE_rayobject_isVlakPrimitive(r)) { VlakPrimitive *face = (VlakPrimitive*) RE_rayobject_align(r); RayFace nface; rayface_from_vlak(&nface, face->ob, face->face); @@ -505,8 +487,7 @@ void RE_rayobject_merge_bb(RayObject *r, float *min, float *max) DO_MINMAX(nface.v3, min, max); if (RE_rayface_isQuad(&nface)) DO_MINMAX(nface.v4, min, max); } - else if (RE_rayobject_isRayAPI(r)) - { + else if (RE_rayobject_isRayAPI(r)) { r = RE_rayobject_align(r); r->api->bb(r, min, max); } @@ -518,12 +499,10 @@ void RE_rayobject_merge_bb(RayObject *r, float *min, float *max) void RE_rayobject_hint_bb(RayObject *r, RayHint *hint, float *min, float *max) { - if (RE_rayobject_isRayFace(r) || RE_rayobject_isVlakPrimitive(r)) - { + if (RE_rayobject_isRayFace(r) || RE_rayobject_isVlakPrimitive(r)) { return; } - else if (RE_rayobject_isRayAPI(r)) - { + else if (RE_rayobject_isRayAPI(r)) { r = RE_rayobject_align(r); return r->api->hint_bb(r, hint, min, max); } @@ -543,8 +522,7 @@ int RE_rayobjectcontrol_test_break(RayObjectControl *control) void RE_rayobject_set_control(RayObject *r, void *data, RE_rayobjectcontrol_test_break_callback test_break) { - if (RE_rayobject_isRayAPI(r)) - { + if (RE_rayobject_isRayAPI(r)) { r = RE_rayobject_align(r); r->control.data = data; r->control.test_break = test_break; diff --git a/source/blender/render/intern/raytrace/rayobject_blibvh.cpp b/source/blender/render/intern/raytrace/rayobject_blibvh.cpp index 165b62cfbe4..d0036fd8556 100644 --- a/source/blender/render/intern/raytrace/rayobject_blibvh.cpp +++ b/source/blender/render/intern/raytrace/rayobject_blibvh.cpp @@ -102,8 +102,7 @@ static void bvh_callback(void *userdata, int index, const BVHTreeRay *UNUSED(ray Isect *isec = data->isec; RayObject *face = data->leafs[index]; - if (RE_rayobject_intersect(face,isec)) - { + if (RE_rayobject_intersect(face, isec)) { hit->index = index; if (isec->mode == RE_RAY_SHADOW) diff --git a/source/blender/render/intern/raytrace/rayobject_hint.h b/source/blender/render/intern/raytrace/rayobject_hint.h index 3689aa8ac17..37d9edb035d 100644 --- a/source/blender/render/intern/raytrace/rayobject_hint.h +++ b/source/blender/render/intern/raytrace/rayobject_hint.h @@ -44,7 +44,7 @@ struct HintBB inline int hint_test_bb(HintBB *obj, float *Nmin, float *Nmax) { - if(bb_fits_inside( Nmin, Nmax, obj->bb, obj->bb+3 ) ) + if (bb_fits_inside( Nmin, Nmax, obj->bb, obj->bb+3 ) ) return HINT_RECURSE; else return HINT_ACCEPT; diff --git a/source/blender/render/intern/raytrace/rayobject_instance.cpp b/source/blender/render/intern/raytrace/rayobject_instance.cpp index 2e803ce0fd3..ce88bac1587 100644 --- a/source/blender/render/intern/raytrace/rayobject_instance.cpp +++ b/source/blender/render/intern/raytrace/rayobject_instance.cpp @@ -99,8 +99,7 @@ static int RE_rayobject_instance_intersect(RayObject *o, Isect *isec) int changed = 0, i, res; // TODO - this is disabling self intersection on instances - if (isec->orig.ob == obj->ob && obj->ob) - { + if (isec->orig.ob == obj->ob && obj->ob) { changed = 1; isec->orig.ob = obj->target_ob; } @@ -117,8 +116,7 @@ static int RE_rayobject_instance_intersect(RayObject *o, Isect *isec) isec->dist *= normalize_v3(isec->dir); // update idot_axis and bv_index - for (i=0; i<3; i++) - { + for (i=0; i<3; i++) { isec->idot_axis[i] = 1.0f / isec->dir[i]; isec->bv_index[2*i] = isec->idot_axis[i] < 0.0 ? 1 : 0; @@ -132,12 +130,10 @@ static int RE_rayobject_instance_intersect(RayObject *o, Isect *isec) res = RE_rayobject_intersect(obj->target, isec); // map dist into original coordinate space - if (res == 0) - { + if (res == 0) { isec->dist = dist; } - else - { + else { // note we don't just multiply dist, because of possible // non-uniform scaling in the transform matrix float vec[3]; @@ -165,8 +161,7 @@ static int RE_rayobject_instance_intersect(RayObject *o, Isect *isec) isec->orig.ob = obj->ob; // restore bv_index - for (i=0; i<3; i++) - { + for (i=0; i<3; i++) { isec->bv_index[2*i] = isec->idot_axis[i] < 0.0 ? 1 : 0; isec->bv_index[2*i+1] = 1 - isec->bv_index[2*i]; @@ -202,8 +197,7 @@ static void RE_rayobject_instance_bb(RayObject *o, float *min, float *max) RE_rayobject_merge_bb(obj->target, m, M); //There must be a faster way than rotating all the 8 vertexs of the BB - for (i=0; i<8; i++) - { + for (i=0; i<8; i++) { for (j=0; j<3; j++) t[j] = i&(1<target2global, t); DO_MINMAX(t, min, max); diff --git a/source/blender/render/intern/raytrace/rayobject_octree.cpp b/source/blender/render/intern/raytrace/rayobject_octree.cpp index ea1d5c2573c..eef2fcc51c9 100644 --- a/source/blender/render/intern/raytrace/rayobject_octree.cpp +++ b/source/blender/render/intern/raytrace/rayobject_octree.cpp @@ -305,7 +305,7 @@ static void ocwrite(Octree *oc, RayFace *face, int quad, short x, short y, short no= (Node *)br->b[oc5]; if (no==NULL) br->b[oc5]= (Branch *)(no= addnode(oc)); - while(no->next) no= no->next; + while (no->next) no = no->next; a= 0; if (no->v[7]) { /* node full */ @@ -313,7 +313,7 @@ static void ocwrite(Octree *oc, RayFace *face, int quad, short x, short y, short no= no->next; } else { - while(no->v[a]!=NULL) a++; + while (no->v[a] != NULL) a++; } no->v[a]= (RayFace*) RE_rayobject_align(face); @@ -383,7 +383,7 @@ static void d2dda(Octree *oc, short b1, short b2, short c1, short c2, char *ocfa x=ocx1; y=ocy1; labda= MIN2(labdax, labday); - while(TRUE) { + while (TRUE) { if (x<0 || y<0 || x>=oc->ocres || y>=oc->ocres); else ocface[oc->ocres*x+y]= 1; @@ -421,7 +421,7 @@ static void filltriangle(Octree *oc, short c1, short c2, char *ocface, short *oc for (y=ocmin[c2];y<=ocmax[c2];y++) { if (ocface[a+y]) { y++; - while(ocface[a+y] && y!=ocmax[c2]) y++; + while (ocface[a+y] && y!=ocmax[c2]) y++; for (y1=ocmax[c2];y1>y;y1--) { if (ocface[a+y1]) { for (y2=y;y2<=y1;y2++) ocface[a+y2]=1; @@ -449,7 +449,7 @@ static void RE_rayobject_octree_free(RayObject *tree) if (oc->adrbranch) { int a= 0; - while(oc->adrbranch[a]) { + while (oc->adrbranch[a]) { MEM_freeN(oc->adrbranch[a]); oc->adrbranch[a]= NULL; a++; @@ -461,7 +461,7 @@ static void RE_rayobject_octree_free(RayObject *tree) if (oc->adrnode) { int a= 0; - while(oc->adrnode[a]) { + while (oc->adrnode[a]) { MEM_freeN(oc->adrnode[a]); oc->adrnode[a]= NULL; a++; @@ -658,8 +658,7 @@ static void RE_rayobject_octree_done(RayObject *tree) oc->ocsize= sqrt(t00*t00+t01*t01+t02*t02); /* global, max size octree */ - for (c=0; cro_nodes_used; c++) - { + for (c=0; cro_nodes_used; c++) { octree_fill_rayface(oc, oc->ro_nodes[c]); } @@ -683,42 +682,41 @@ static void RE_rayobject_octree_bb(RayObject *tree, float *min, float *max) /* check all faces in this node */ static int testnode(Octree *UNUSED(oc), Isect *is, Node *no, OcVal ocval) { - short nr=0; + short nr = 0; /* return on any first hit */ - if (is->mode==RE_RAY_SHADOW) { + if (is->mode == RE_RAY_SHADOW) { - for (; no; no = no->next) - for (nr=0; nr<8; nr++) - { - RayFace *face = no->v[nr]; - OcVal *ov = no->ov+nr; - - if (!face) break; - - if ( (ov->ocx & ocval.ocx) && (ov->ocy & ocval.ocy) && (ov->ocz & ocval.ocz) ) - { - if ( RE_rayobject_intersect( RE_rayobject_unalignRayFace(face),is) ) - return 1; + for ( ; no; no = no->next) { + for (nr = 0; nr < 8; nr++) { + RayFace *face = no->v[nr]; + OcVal *ov = no->ov + nr; + + if (!face) break; + + if ( (ov->ocx & ocval.ocx) && (ov->ocy & ocval.ocy) && (ov->ocz & ocval.ocz) ) { + if ( RE_rayobject_intersect( RE_rayobject_unalignRayFace(face),is) ) + return 1; + } } } } - else - { /* else mirror or glass or shadowtra, return closest face */ + else { + /* else mirror or glass or shadowtra, return closest face */ int found= 0; - for (; no; no = no->next) - for (nr=0; nr<8; nr++) - { - RayFace *face = no->v[nr]; - OcVal *ov = no->ov+nr; - - if (!face) break; - - if ( (ov->ocx & ocval.ocx) && (ov->ocy & ocval.ocy) && (ov->ocz & ocval.ocz) ) - { - if ( RE_rayobject_intersect( RE_rayobject_unalignRayFace(face),is) ) - found= 1; + for ( ; no; no = no->next) { + for (nr = 0; nr < 8; nr++) { + RayFace *face = no->v[nr]; + OcVal *ov = no->ov + nr; + + if (!face) break; + + if ( (ov->ocx & ocval.ocx) && (ov->ocy & ocval.ocy) && (ov->ocz & ocval.ocz) ) { + if ( RE_rayobject_intersect( RE_rayobject_unalignRayFace(face),is) ) { + found = 1; + } + } } } @@ -1003,7 +1001,7 @@ static int RE_rayobject_octree_intersect(RayObject *tree, Isect *is) /* this loop has been constructed to make sure the first and last node of ray * are always included, even when ddalabda==1.0f or larger */ - while(TRUE) { + while (TRUE) { no= ocread(oc, xo, yo, zo); if (no) { diff --git a/source/blender/render/intern/raytrace/rayobject_qbvh.cpp b/source/blender/render/intern/raytrace/rayobject_qbvh.cpp index 2edf1593e99..2d0abba9a75 100644 --- a/source/blender/render/intern/raytrace/rayobject_qbvh.cpp +++ b/source/blender/render/intern/raytrace/rayobject_qbvh.cpp @@ -71,8 +71,7 @@ void bvh_done(QBVHTree *obj) //TODO do this in 1 pass (half memory usage during building) VBVHNode *root = BuildBinaryVBVH(arena1, &obj->rayobj.control).transform(obj->builder); - if (RE_rayobjectcontrol_test_break(&obj->rayobj.control)) - { + if (RE_rayobjectcontrol_test_break(&obj->rayobj.control)) { BLI_memarena_free(arena1); BLI_memarena_free(arena2); return; diff --git a/source/blender/render/intern/raytrace/rayobject_rtbuild.cpp b/source/blender/render/intern/raytrace/rayobject_rtbuild.cpp index 54901db8bdd..ad74159fd3b 100644 --- a/source/blender/render/intern/raytrace/rayobject_rtbuild.cpp +++ b/source/blender/render/intern/raytrace/rayobject_rtbuild.cpp @@ -74,8 +74,7 @@ RTBuilder* rtbuild_create(int size) builder->primitives.begin = builder->primitives.end = memblock; builder->primitives.maxsize = size; - for (int i=0; i<3; i++) - { + for (int i=0; i<3; i++) { builder->sorted_begin[i] = (RTBuilder::Object**)MEM_mallocN( sizeof(RTBuilder::Object*)*size,"RTBuilder.sorted_objects"); builder->sorted_end[i] = builder->sorted_begin[i]; } @@ -124,8 +123,7 @@ void rtbuild_add(RTBuilder *b, RayObject *o) b->primitives.end->obj = o; b->primitives.end->cost = RE_rayobject_cost(o); - for (int i=0; i<3; i++) - { + for (int i=0; i<3; i++) { *(b->sorted_end[i]) = b->primitives.end; b->sorted_end[i]++; } @@ -158,8 +156,7 @@ static void object_sort(Item *begin, Item *end, int axis) void rtbuild_done(RTBuilder *b, RayObjectControl* ctrl) { for (int i=0; i<3; i++) - if (b->sorted_begin[i]) - { + if (b->sorted_begin[i]) { if (RE_rayobjectcontrol_test_break(ctrl)) break; object_sort( b->sorted_begin[i], b->sorted_end[i], i ); } @@ -175,13 +172,11 @@ RTBuilder* rtbuild_get_child(RTBuilder *b, int child, RTBuilder *tmp) rtbuild_init( tmp ); for (int i=0; i<3; i++) - if (b->sorted_begin[i]) - { + if (b->sorted_begin[i]) { tmp->sorted_begin[i] = b->sorted_begin[i] + b->child_offset[child ]; tmp->sorted_end [i] = b->sorted_begin[i] + b->child_offset[child+1]; } - else - { + else { tmp->sorted_begin[i] = 0; tmp->sorted_end [i] = 0; } @@ -191,8 +186,7 @@ RTBuilder* rtbuild_get_child(RTBuilder *b, int child, RTBuilder *tmp) void rtbuild_calc_bb(RTBuilder *b) { - if (b->bb[0] == 1.0e30f) - { + if (b->bb[0] == 1.0e30f) { for (RTBuilder::Object **index = b->sorted_begin[0]; index != b->sorted_end[0]; index++) RE_rayobject_merge_bb( (*index)->obj , b->bb, b->bb+3); } @@ -337,30 +331,25 @@ int rtbuild_heuristic_object_split(RTBuilder *b, int nchilds) assert(size > 1); int baxis = -1, boffset = 0; - if (size > nchilds) - { + if (size > nchilds) { float bcost = FLT_MAX; baxis = -1, boffset = size/2; SweepCost *sweep = (SweepCost*)MEM_mallocN( sizeof(SweepCost)*size, "RTBuilder.HeuristicSweep" ); - for (int axis=0; axis<3; axis++) - { + for (int axis=0; axis<3; axis++) { SweepCost sweep_left; RTBuilder::Object **obj = b->sorted_begin[axis]; // float right_cost = 0; - for (int i=size-1; i>=0; i--) - { - if (i == size-1) - { + for (int i=size-1; i>=0; i--) { + if (i == size-1) { copy_v3_v3(sweep[i].bb, obj[i]->bb); copy_v3_v3(sweep[i].bb+3, obj[i]->bb+3); sweep[i].cost = obj[i]->cost; } - else - { + else { sweep[i].bb[0] = MIN2(obj[i]->bb[0], sweep[i+1].bb[0]); sweep[i].bb[1] = MIN2(obj[i]->bb[1], sweep[i+1].bb[1]); sweep[i].bb[2] = MIN2(obj[i]->bb[2], sweep[i+1].bb[2]); @@ -382,8 +371,7 @@ int rtbuild_heuristic_object_split(RTBuilder *b, int nchilds) // right_cost -= obj[0]->cost; if (right_cost < 0) right_cost = 0; - for (int i=1; i bcost) break; //No way we can find a better heuristic in this axis assert(hcost >= 0); - if ( hcost < bcost - || (hcost == bcost && axis < baxis)) //this makes sure the tree built is the same whatever is the order of the sorting axis - { + // this makes sure the tree built is the same whatever is the order of the sorting axis + if ( hcost < bcost || (hcost == bcost && axis < baxis)) { bcost = hcost; baxis = axis; boffset = i; @@ -423,13 +410,11 @@ int rtbuild_heuristic_object_split(RTBuilder *b, int nchilds) MEM_freeN(sweep); } - else if (size == 2) - { + else if (size == 2) { baxis = 0; boffset = 1; } - else if (size == 1) - { + else if (size == 1) { b->child_offset[0] = 0; b->child_offset[1] = 1; return 1; @@ -500,15 +485,13 @@ int bb_largest_axis(float *min, float *max) sub[0] = max[0]-min[0]; sub[1] = max[1]-min[1]; sub[2] = max[2]-min[2]; - if (sub[0] > sub[1]) - { + if (sub[0] > sub[1]) { if (sub[0] > sub[2]) return 0; else return 2; } - else - { + else { if (sub[1] > sub[2]) return 1; else diff --git a/source/blender/render/intern/raytrace/rayobject_svbvh.cpp b/source/blender/render/intern/raytrace/rayobject_svbvh.cpp index 4c2099eb1e3..cbec02ab798 100644 --- a/source/blender/render/intern/raytrace/rayobject_svbvh.cpp +++ b/source/blender/render/intern/raytrace/rayobject_svbvh.cpp @@ -79,12 +79,10 @@ void bvh_done(SVBVHTree *obj) BLI_memarena_use_align(arena2, 16); //Build and optimize the tree - if (0) - { + if (0) { VBVHNode *root = BuildBinaryVBVH(arena1, &obj->rayobj.control).transform(obj->builder); - if (RE_rayobjectcontrol_test_break(&obj->rayobj.control)) - { + if (RE_rayobjectcontrol_test_break(&obj->rayobj.control)) { BLI_memarena_free(arena1); BLI_memarena_free(arena2); return; @@ -100,14 +98,12 @@ void bvh_done(SVBVHTree *obj) obj->root = Reorganize_SVBVH(arena2).transform(root); } - else - { + else { //Finds the optimal packing of this tree using a given cost model //TODO this uses quite a lot of memory, find ways to reduce memory usage during building OVBVHNode *root = BuildBinaryVBVH(arena1,&obj->rayobj.control).transform(obj->builder); - if (RE_rayobjectcontrol_test_break(&obj->rayobj.control)) - { + if (RE_rayobjectcontrol_test_break(&obj->rayobj.control)) { BLI_memarena_free(arena1); BLI_memarena_free(arena2); return; diff --git a/source/blender/render/intern/raytrace/rayobject_vbvh.cpp b/source/blender/render/intern/raytrace/rayobject_vbvh.cpp index e82623f1da9..26a99794362 100644 --- a/source/blender/render/intern/raytrace/rayobject_vbvh.cpp +++ b/source/blender/render/intern/raytrace/rayobject_vbvh.cpp @@ -87,11 +87,9 @@ void bvh_done(VBVHTree *obj) BLI_memarena_use_malloc(arena1); //Build and optimize the tree - if (1) - { + if (1) { VBVHNode *root = BuildBinaryVBVH(arena1,&obj->rayobj.control).transform(obj->builder); - if (RE_rayobjectcontrol_test_break(&obj->rayobj.control)) - { + if (RE_rayobjectcontrol_test_break(&obj->rayobj.control)) { BLI_memarena_free(arena1); return; } @@ -108,8 +106,7 @@ void bvh_done(VBVHTree *obj) else obj->root = NULL; } - else - { + else { /* TODO MemArena *arena2 = BLI_memarena_new(BLI_MEMARENA_STD_BUFSIZE, "vbvh arena2"); @@ -159,8 +156,7 @@ void bvh_hint_bb(Tree *tree, LCTSHint *hint, float *UNUSED(min), float *UNUSED(m void bfree(VBVHTree *tree) { - if (tot_pushup + tot_pushdown + tot_hints + tot_moves) - { + if (tot_pushup + tot_pushdown + tot_hints + tot_moves) { if (G.debug & G_DEBUG) { printf("tot pushups: %d\n", tot_pushup); printf("tot pushdowns: %d\n", tot_pushdown); diff --git a/source/blender/render/intern/raytrace/reorganize.h b/source/blender/render/intern/raytrace/reorganize.h index 68b2b22ecdd..1930e5bb32b 100644 --- a/source/blender/render/intern/raytrace/reorganize.h +++ b/source/blender/render/intern/raytrace/reorganize.h @@ -66,17 +66,15 @@ void reorganize_find_fittest_parent(Node *tree, Node *node, std::pair q; q.push(tree); - while(!q.empty()) - { + while (!q.empty()) { Node *parent = q.front(); q.pop(); - if(parent == node) continue; - if(node_fits_inside(node, parent) && RE_rayobject_isAligned(parent->child) ) - { + if (parent == node) continue; + if (node_fits_inside(node, parent) && RE_rayobject_isAligned(parent->child) ) { float pcost = bb_area(parent->bb, parent->bb+3); cost = std::min( cost, std::make_pair(pcost,parent) ); - for(Node *child = parent->child; child; child = child->sibling) + for (Node *child = parent->child; child; child = child->sibling) q.push(child); } } @@ -89,28 +87,23 @@ void reorganize(Node *root) std::queue q; q.push(root); - while(!q.empty()) - { + while (!q.empty()) { Node * node = q.front(); q.pop(); - if( RE_rayobject_isAligned(node->child) ) - { - for(Node **prev = &node->child; *prev; ) - { + if (RE_rayobject_isAligned(node->child)) { + for (Node **prev = &node->child; *prev; ) { assert( RE_rayobject_isAligned(*prev) ); q.push(*prev); std::pair best(FLT_MAX, root); reorganize_find_fittest_parent( root, *prev, best ); - if(best.second == node) - { + if (best.second == node) { //Already inside the fitnest BB prev = &(*prev)->sibling; } - else - { + else { Node *tmp = *prev; *prev = (*prev)->sibling; @@ -123,8 +116,7 @@ void reorganize(Node *root) } } - if(node != root) - { + if (node != root) { } } } @@ -137,29 +129,24 @@ void reorganize(Node *root) template void remove_useless(Node *node, Node **new_node) { - if( RE_rayobject_isAligned(node->child) ) - { + if ( RE_rayobject_isAligned(node->child) ) { - for(Node **prev = &node->child; *prev; ) - { + for (Node **prev = &node->child; *prev; ) { Node *next = (*prev)->sibling; remove_useless(*prev, prev); - if(*prev == NULL) + if (*prev == NULL) *prev = next; - else - { + else { (*prev)->sibling = next; prev = &((*prev)->sibling); } } } - if(node->child) - { - if(RE_rayobject_isAligned(node->child) && node->child->sibling == 0) + if (node->child) { + if (RE_rayobject_isAligned(node->child) && node->child->sibling == 0) *new_node = node->child; } - else if(node->child == NULL) - { + else if (node->child == NULL) { *new_node = NULL; } } @@ -171,18 +158,16 @@ void remove_useless(Node *node, Node **new_node) template void pushup(Node *parent) { - if(is_leaf(parent)) return; + if (is_leaf(parent)) return; float p_area = bb_area(parent->bb, parent->bb+3); Node **prev = &parent->child; - for(Node *child = parent->child; RE_rayobject_isAligned(child) && child; ) - { + for (Node *child = parent->child; RE_rayobject_isAligned(child) && child; ) { const float c_area = bb_area(child->bb, child->bb + 3); const int nchilds = count_childs(child); float original_cost = ((p_area != 0.0f)? (c_area / p_area)*nchilds: 1.0f) + 1; float flatten_cost = nchilds; - if(flatten_cost < original_cost && nchilds >= 2) - { + if (flatten_cost < original_cost && nchilds >= 2) { append_sibling(child, child->child); child = child->sibling; *prev = child; @@ -192,15 +177,14 @@ void pushup(Node *parent) // child = *prev; tot_pushup++; } - else - { + else { *prev = child; prev = &(*prev)->sibling; child = *prev; } } - for(Node *child = parent->child; RE_rayobject_isAligned(child) && child; child = child->sibling) + for (Node *child = parent->child; RE_rayobject_isAligned(child) && child; child = child->sibling) pushup(child); } @@ -210,30 +194,27 @@ void pushup(Node *parent) template void pushup_simd(Node *parent) { - if(is_leaf(parent)) return; + if (is_leaf(parent)) return; int n = count_childs(parent); Node **prev = &parent->child; - for(Node *child = parent->child; RE_rayobject_isAligned(child) && child; ) - { + for (Node *child = parent->child; RE_rayobject_isAligned(child) && child; ) { int cn = count_childs(child); - if(cn-1 <= (SSize - (n%SSize) ) % SSize && RE_rayobject_isAligned(child->child) ) - { + if (cn-1 <= (SSize - (n%SSize) ) % SSize && RE_rayobject_isAligned(child->child) ) { n += (cn - 1); append_sibling(child, child->child); child = child->sibling; *prev = child; } - else - { + else { *prev = child; prev = &(*prev)->sibling; child = *prev; } } - for(Node *child = parent->child; RE_rayobject_isAligned(child) && child; child = child->sibling) + for (Node *child = parent->child; RE_rayobject_isAligned(child) && child; child = child->sibling) pushup_simd(child); } @@ -248,19 +229,17 @@ void pushdown(Node *parent) Node **s_child = &parent->child; Node * child = parent->child; - while(child && RE_rayobject_isAligned(child)) - { + while (child && RE_rayobject_isAligned(child)) { Node *next = child->sibling; Node **next_s_child = &child->sibling; //assert(bb_fits_inside(parent->bb, parent->bb+3, child->bb, child->bb+3)); - for(Node *i = parent->child; RE_rayobject_isAligned(i) && i; i = i->sibling) - if(child != i && bb_fits_inside(i->bb, i->bb+3, child->bb, child->bb+3) && RE_rayobject_isAligned(i->child)) - { + for (Node *i = parent->child; RE_rayobject_isAligned(i) && i; i = i->sibling) + if (child != i && bb_fits_inside(i->bb, i->bb+3, child->bb, child->bb+3) && RE_rayobject_isAligned(i->child)) { // todo optimize (should the one with the smallest area?) // float ia = bb_area(i->bb, i->bb+3) -// if(child->i) +// if (child->i) *s_child = child->sibling; child->sibling = i->child; i->child = child; @@ -286,18 +265,17 @@ void pushdown(Node *parent) template float bvh_refit(Node *node) { - if(is_leaf(node)) return 0; - if(is_leaf(node->child)) return 0; + if (is_leaf(node)) return 0; + if (is_leaf(node->child)) return 0; float total = 0; - for(Node *child = node->child; child; child = child->sibling) + for (Node *child = node->child; child; child = child->sibling) total += bvh_refit(child); float old_area = bb_area(node->bb, node->bb+3); INIT_MINMAX(node->bb, node->bb+3); - for(Node *child = node->child; child; child = child->sibling) - { + for (Node *child = node->child; child; child = child->sibling) { DO_MIN(child->bb, node->bb); DO_MAX(child->bb+3, node->bb+3); } @@ -347,32 +325,27 @@ struct OVBVHNode int best_cutsize; void set_cut(int cutsize, OVBVHNode ***cut) { - if(cutsize == 1) - { + if (cutsize == 1) { **cut = this; *cut = &(**cut)->sibling; } - else - { - if(cutsize > MAX_CUT_SIZE) - { - for(OVBVHNode *child = this->child; child && RE_rayobject_isAligned(child); child = child->sibling) - { + else { + if (cutsize > MAX_CUT_SIZE) { + for (OVBVHNode *child = this->child; child && RE_rayobject_isAligned(child); child = child->sibling) { child->set_cut( 1, cut ); cutsize--; } assert(cutsize == 0); } else - for(OVBVHNode *child = this->child; child && RE_rayobject_isAligned(child); child = child->sibling) + for (OVBVHNode *child = this->child; child && RE_rayobject_isAligned(child); child = child->sibling) child->set_cut( child->get_cut_size( cutsize ), cut ); } } void optimize() { - if(RE_rayobject_isAligned(this->child)) - { + if (RE_rayobject_isAligned(this->child)) { //Calc new childs { OVBVHNode **cut = &(this->child); @@ -381,7 +354,7 @@ struct OVBVHNode } //Optimize new childs - for(OVBVHNode *child = this->child; child && RE_rayobject_isAligned(child); child = child->sibling) + for (OVBVHNode *child = this->child; child && RE_rayobject_isAligned(child); child = child->sibling) child->optimize(); } } @@ -415,8 +388,7 @@ struct VBVH_optimalPackSIMD //Fetch childs and needed data { float parent_area = bb_area(node->bb, node->bb+3); - for(Node *child = node->child; child && RE_rayobject_isAligned(child); child = child->sibling) - { + for (Node *child = node->child; child && RE_rayobject_isAligned(child); child = child->sibling) { this->child[nchilds] = child; this->child_hit_prob[nchilds] = (parent_area != 0.0f)? bb_area(child->bb, child->bb+3) / parent_area: 1.0f; nchilds++; @@ -427,36 +399,35 @@ struct VBVH_optimalPackSIMD //Build DP table to find minimum cost to represent this node with a given cutsize - int bt [MAX_OPTIMIZE_CHILDS+1][MAX_CUT_SIZE+1]; //backtrace table - float cost[MAX_OPTIMIZE_CHILDS+1][MAX_CUT_SIZE+1]; //cost table (can be reduced to float[2][MAX_CUT_COST]) + int bt [MAX_OPTIMIZE_CHILDS + 1][MAX_CUT_SIZE + 1]; //backtrace table + float cost[MAX_OPTIMIZE_CHILDS + 1][MAX_CUT_SIZE + 1]; //cost table (can be reduced to float[2][MAX_CUT_COST]) - for(int i=0; i<=nchilds; i++) - for(int j=0; j<=MAX_CUT_SIZE; j++) - cost[i][j] = INFINITY; + for (int i = 0; i <= nchilds; i++) { + for (int j = 0; j <= MAX_CUT_SIZE; j++) { + cost[i][j] = INFINITY; + } + } cost[0][0] = 0; - for(int i=1; i<=nchilds; i++) - for(int size=i-1; size/*+(nchilds-i)*/<=MAX_CUT_SIZE; size++) - for(int cut=1; cut+size/*+(nchilds-i)*/<=MAX_CUT_SIZE; cut++) - { - float new_cost = cost[i-1][size] + child_hit_prob[i-1]*child[i-1]->get_cost(cut); - if(new_cost < cost[i][size+cut]) - { - cost[i][size+cut] = new_cost; - bt[i][size+cut] = cut; + for (int i = 1; i<=nchilds; i++) { + for (int size = i - 1; size/*+(nchilds-i)*/<=MAX_CUT_SIZE; size++) { + for (int cut = 1; cut+size/*+(nchilds-i)*/<=MAX_CUT_SIZE; cut++) { + float new_cost = cost[i - 1][size] + child_hit_prob[i - 1] * child[i - 1]->get_cost(cut); + if (new_cost < cost[i][size+cut]) { + cost[i][size+cut] = new_cost; + bt[i][size+cut] = cut; + } + } } } //Save the ways to archieve the minimum cost with a given cutsize - for(int i = nchilds; i <= MAX_CUT_SIZE; i++) - { + for (int i = nchilds; i <= MAX_CUT_SIZE; i++) { node->cut_cost[i-1] = cost[nchilds][i]; - if(cost[nchilds][i] < INFINITY) - { + if (cost[nchilds][i] < INFINITY) { int current_size = i; - for(int j=nchilds; j>0; j--) - { + for (int j=nchilds; j>0; j--) { child[j-1]->cut_size[i-1] = bt[j][current_size]; current_size -= bt[j][current_size]; } @@ -468,26 +439,22 @@ struct VBVH_optimalPackSIMD void calc_costs(Node *node) { - if( RE_rayobject_isAligned(node->child) ) - { + if ( RE_rayobject_isAligned(node->child) ) { int nchilds = 0; - for(Node *child = node->child; child && RE_rayobject_isAligned(child); child = child->sibling) - { + for (Node *child = node->child; child && RE_rayobject_isAligned(child); child = child->sibling) { calc_costs(child); nchilds++; } - for(int i=0; icut_cost[i] = INFINITY; //We are not allowed to look on nodes with with so many childs - if(nchilds > MAX_CUT_SIZE) - { + if (nchilds > MAX_CUT_SIZE) { float cost = 0; float parent_area = bb_area(node->bb, node->bb+3); - for(Node *child = node->child; child && RE_rayobject_isAligned(child); child = child->sibling) - { + for (Node *child = node->child; child && RE_rayobject_isAligned(child); child = child->sibling) { cost += ((parent_area != 0.0f)? ( bb_area(child->bb, child->bb+3) / parent_area ): 1.0f) * child->get_cost(1); } @@ -495,16 +462,13 @@ struct VBVH_optimalPackSIMD node->cut_cost[0] = cost; node->best_cutsize = nchilds; } - else - { + else { calc_best calc(node); //calc expected cost if we optimaly pack this node - for(int cutsize=nchilds; cutsize<=MAX_CUT_SIZE; cutsize++) - { + for (int cutsize=nchilds; cutsize<=MAX_CUT_SIZE; cutsize++) { float m = node->get_cost(cutsize) + testcost(cutsize); - if(m < node->cut_cost[0]) - { + if (m < node->cut_cost[0]) { node->cut_cost[0] = m; node->best_cutsize = cutsize; } @@ -512,24 +476,22 @@ struct VBVH_optimalPackSIMD } assert(node->cut_cost[0] != INFINITY); } - else - { + else { node->cut_cost[0] = 1.0f; - for(int i=1; icut_cost[i] = INFINITY; } } Node *transform(Node *node) { - if(RE_rayobject_isAligned(node->child)) - { + if (RE_rayobject_isAligned(node->child)) { static int num = 0; bool first = false; - if(num == 0) { num++; first = true; } + if (num == 0) { num++; first = true; } calc_costs(node); - if((G.debug & G_DEBUG) && first) printf("expected cost = %f (%d)\n", node->cut_cost[0], node->best_cutsize ); + if ((G.debug & G_DEBUG) && first) printf("expected cost = %f (%d)\n", node->cut_cost[0], node->best_cutsize ); node->optimize(); } return node; diff --git a/source/blender/render/intern/raytrace/svbvh.h b/source/blender/render/intern/raytrace/svbvh.h index e0e96781f36..a4044db8208 100644 --- a/source/blender/render/intern/raytrace/svbvh.h +++ b/source/blender/render/intern/raytrace/svbvh.h @@ -94,9 +94,9 @@ static int svbvh_bb_intersect_test(const Isect *isec, const float *_bb) RE_RC_COUNT(isec->raycounter->bb.test); - if(t1x > t2y || t2x < t1y || t1x > t2z || t2x < t1z || t1y > t2z || t2y < t1z) return 0; - if(t2x < 0.0 || t2y < 0.0 || t2z < 0.0) return 0; - if(t1x > isec->dist || t1y > isec->dist || t1z > isec->dist) return 0; + if (t1x > t2y || t2x < t1y || t1x > t2z || t2x < t1z || t1y > t2z || t2y < t1z) return 0; + if (t2x < 0.0 || t2y < 0.0 || t2z < 0.0) return 0; + if (t1x > isec->dist || t1y > isec->dist || t1z > isec->dist) return 0; RE_RC_COUNT(isec->raycounter->bb.hit); @@ -116,40 +116,39 @@ static int svbvh_node_stack_raycast(SVBVHNode *root, Isect *isec) stack[stack_pos++] = root; - while(stack_pos) - { + while (stack_pos) { node = stack[--stack_pos]; - if(!svbvh_node_is_leaf(node)) - { + if (!svbvh_node_is_leaf(node)) { int nchilds= node->nchilds; - if(nchilds == 4) { + if (nchilds == 4) { float *child_bb= node->child_bb; int res = svbvh_bb_intersect_test_simd4(isec, ((__m128*) (child_bb))); SVBVHNode **child= node->child; RE_RC_COUNT(isec->raycounter->simd_bb.test); - if(res & 1) { stack[stack_pos++] = child[0]; RE_RC_COUNT(isec->raycounter->simd_bb.hit); } - if(res & 2) { stack[stack_pos++] = child[1]; RE_RC_COUNT(isec->raycounter->simd_bb.hit); } - if(res & 4) { stack[stack_pos++] = child[2]; RE_RC_COUNT(isec->raycounter->simd_bb.hit); } - if(res & 8) { stack[stack_pos++] = child[3]; RE_RC_COUNT(isec->raycounter->simd_bb.hit); } + if (res & 1) { stack[stack_pos++] = child[0]; RE_RC_COUNT(isec->raycounter->simd_bb.hit); } + if (res & 2) { stack[stack_pos++] = child[1]; RE_RC_COUNT(isec->raycounter->simd_bb.hit); } + if (res & 4) { stack[stack_pos++] = child[2]; RE_RC_COUNT(isec->raycounter->simd_bb.hit); } + if (res & 8) { stack[stack_pos++] = child[3]; RE_RC_COUNT(isec->raycounter->simd_bb.hit); } } else { float *child_bb= node->child_bb; SVBVHNode **child= node->child; int i; - for(i=0; i inline void bvh_node_merge_bb(SVBVHNode *node, float *min, float *max) { - if(is_leaf(node)) - { + if (is_leaf(node)) { RE_rayobject_merge_bb((RayObject*)node, min, max); } - else - { + else { int i=0; - while(i+4 <= node->nchilds) - { + while (i+4 <= node->nchilds) { float *res = node->child_bb + 6*i; - for(int j=0; j<3; j++) - { + for (int j = 0; j < 3; j++) { min[j] = MIN2(min[j], res[4*j+0]); min[j] = MIN2(min[j], res[4*j+1]); min[j] = MIN2(min[j], res[4*j+2]); min[j] = MIN2(min[j], res[4*j+3]); } - for(int j=0; j<3; j++) - { + for (int j = 0; j < 3; j++) { max[j] = MAX2(max[j], res[4*(j+3)+0]); max[j] = MAX2(max[j], res[4*(j+3)+1]); max[j] = MAX2(max[j], res[4*(j+3)+2]); @@ -188,10 +182,9 @@ inline void bvh_node_merge_bb(SVBVHNode *node, float *min, float *max i += 4; } - for(; inchilds; i++) - { - DO_MIN(node->child_bb+6*i , min); - DO_MAX(node->child_bb+3+6*i, max); + for ( ; i < node->nchilds; i++) { + DO_MIN(node->child_bb + 6 * i, min); + DO_MAX(node->child_bb + 3 + 6 * i, max); } } } @@ -218,17 +211,19 @@ struct Reorganize_SVBVH childs_per_node = 0; useless_bb = 0; - for(int i=0; i<16; i++) + for (int i = 0; i < 16; i++) { nodes_with_childs[i] = 0; + } } ~Reorganize_SVBVH() { - if(G.debug & G_DEBUG) { + if (G.debug & G_DEBUG) { printf("%f childs per node\n", childs_per_node / nodes); printf("%d childs BB are useless\n", useless_bb); - for(int i=0; i<16; i++) + for (int i = 0; i < 16; i++) { printf("%i childs per node: %d/%d = %f\n", i, nodes_with_childs[i], nodes, nodes_with_childs[i]/float(nodes)); + } } } @@ -248,14 +243,12 @@ struct Reorganize_SVBVH void prepare_for_simd(SVBVHNode *node) { int i=0; - while(i+4 <= node->nchilds) - { + while (i + 4 <= node->nchilds) { float vec_tmp[4*6]; float *res = node->child_bb+6*i; std::copy(res, res+6*4, vec_tmp); - for(int j=0; j<6; j++) - { + for (int j=0; j<6; j++) { res[4*j+0] = vec_tmp[6*0+j]; res[4*j+1] = vec_tmp[6*1+j]; res[4*j+2] = vec_tmp[6*2+j]; @@ -274,26 +267,25 @@ struct Reorganize_SVBVH SVBVHNode *transform(OldNode *old) { - if(is_leaf(old)) + if (is_leaf(old)) return (SVBVHNode*)old; - if(is_leaf(old->child)) + if (is_leaf(old->child)) return (SVBVHNode*)old->child; int nchilds = count_childs(old); int alloc_childs = nchilds; - if(nchilds % 4 > 2) + if (nchilds % 4 > 2) alloc_childs = padup(nchilds, 4); SVBVHNode *node = create_node(alloc_childs); childs_per_node += nchilds; nodes++; - if(nchilds < 16) + if (nchilds < 16) nodes_with_childs[nchilds]++; useless_bb += alloc_childs-nchilds; - while(alloc_childs > nchilds) - { + while (alloc_childs > nchilds) { const static float def_bb[6] = { FLT_MAX, FLT_MAX, FLT_MAX, FLT_MIN, FLT_MIN, FLT_MIN }; alloc_childs--; node->child[alloc_childs] = NULL; @@ -301,20 +293,17 @@ struct Reorganize_SVBVH } int i=nchilds; - for(OldNode *o_child = old->child; o_child; o_child = o_child->sibling) - { + for (OldNode *o_child = old->child; o_child; o_child = o_child->sibling) { i--; node->child[i] = transform(o_child); - if(is_leaf(o_child)) - { + if (is_leaf(o_child)) { float bb[6]; INIT_MINMAX(bb, bb+3); RE_rayobject_merge_bb((RayObject*)o_child, bb, bb+3); copy_bb(node->child_bb+i*6, bb); break; } - else - { + else { copy_bb(node->child_bb+i*6, o_child->bb); } } diff --git a/source/blender/render/intern/raytrace/vbvh.h b/source/blender/render/intern/raytrace/vbvh.h index 1c84cd23510..f916dd412f7 100644 --- a/source/blender/render/intern/raytrace/vbvh.h +++ b/source/blender/render/intern/raytrace/vbvh.h @@ -57,17 +57,14 @@ inline static void bvh_node_push_childs(Node *node, Isect *UNUSED(isec), Node ** { Node *child = node->child; - if(is_leaf(child)) - { + if (is_leaf(child)) { stack[stack_pos++] = child; } - else - { - while(child) - { + else { + while (child) { /* Skips BB tests on primitives */ #if 0 - if(is_leaf(child->child)) { + if (is_leaf(child->child)) { stack[stack_pos++] = child->child; } else @@ -86,10 +83,9 @@ template int count_childs(Node *parent) { int n = 0; - for(Node *i = parent->child; i; i = i->sibling) - { + for (Node *i = parent->child; i; i = i->sibling) { n++; - if(is_leaf(i)) + if (is_leaf(i)) break; } @@ -100,7 +96,7 @@ int count_childs(Node *parent) template void append_sibling(Node *node, Node *sibling) { - while(node->sibling) + while (node->sibling) node = node->sibling; node->sibling = sibling; @@ -118,7 +114,7 @@ struct BuildBinaryVBVH void test_break() { - if(RE_rayobjectcontrol_test_break(control)) + if (RE_rayobjectcontrol_test_break(control)) throw "Stop"; } @@ -160,19 +156,17 @@ struct BuildBinaryVBVH { int size = rtbuild_size(builder); - if(size == 0) { + if (size == 0) { return NULL; } - else if(size == 1) - { + else if (size == 1) { Node *node = create_node(); INIT_MINMAX(node->bb, node->bb+3); rtbuild_merge_bb(builder, node->bb, node->bb+3); node->child = (Node *) rtbuild_get_primitive(builder, 0); return node; } - else - { + else { test_break(); Node *node = create_node(); @@ -183,8 +177,7 @@ struct BuildBinaryVBVH INIT_MINMAX(node->bb, node->bb+3); assert(nc == 2); - for(int i=0; isibling; } *child_ptr = 0; diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index 66ed0bd85a9..7fe1fab1681 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -908,10 +908,10 @@ static float *get_object_orco(Render *re, Object *ob) if (!orco) { if (ELEM(ob->type, OB_CURVE, OB_FONT)) { - orco = make_orco_curve(re->scene, ob); + orco = BKE_curve_make_orco(re->scene, ob); } else if (ob->type==OB_SURF) { - orco = make_orco_surf(ob); + orco = BKE_curve_surf_make_orco(ob); } if (orco) @@ -1472,7 +1472,7 @@ static void particle_normal_ren(short ren_as, ParticleSettings *part, Render *re if (ren_as != PART_DRAW_BB) mul_m4_v3(re->viewmat, loc); - switch(ren_as) { + switch (ren_as) { case PART_DRAW_LINE: sd->line = 1; sd->time = 0.0f; @@ -2437,7 +2437,7 @@ static void init_render_mball(Render *re, ObjectRen *obr) int a, need_orco, vlakindex, *index, negative_scale; ListBase dispbase= {NULL, NULL}; - if (ob!=find_basis_mball(re->scene, ob)) + if (ob!=BKE_metaball_basis_find(re->scene, ob)) return; mult_m4_m4m4(mat, re->viewmat, ob->obmat); @@ -2463,7 +2463,7 @@ static void init_render_mball(Render *re, ObjectRen *obr) if (!orco) { /* orco hasn't been found in cache - create new one and add to cache */ - orco= make_orco_mball(ob, &dispbase); + orco= BKE_metaball_make_orco(ob, &dispbase); set_object_orco(re, ob, orco); } } @@ -2630,8 +2630,7 @@ static int dl_surf_to_renderdata(ObjectRen *obr, DispList *dl, Material **matar, sizeu--; sizev--; /* dec size for face array */ if (dl->flag & DL_CYCL_V) { - for (v = 0; v < sizev; v++) - { + for (v = 0; v < sizev; v++) { /* optimize! :*/ vlr= RE_findOrAddVlak(obr, UVTOINDEX(sizeu - 1, v)); vlr1= RE_findOrAddVlak(obr, UVTOINDEX(0, v)); @@ -2643,8 +2642,7 @@ static int dl_surf_to_renderdata(ObjectRen *obr, DispList *dl, Material **matar, } if (dl->flag & DL_CYCL_U) { - for (u = 0; u < sizeu; u++) - { + for (u = 0; u < sizeu; u++) { /* optimize! :*/ vlr= RE_findOrAddVlak(obr, UVTOINDEX(u, 0)); vlr1= RE_findOrAddVlak(obr, UVTOINDEX(u, sizev-1)); @@ -3486,8 +3484,7 @@ static void init_render_mesh(Render *re, ObjectRen *obr, int timeoffset) if (need_nmap_tangent != 0) { const float * tangent = (const float *) layer->data; float * ftang = RE_vlakren_get_nmap_tangent(obr, vlr, 1); - for (vindex=0; vindexarea_sizey= lar->area_size; } else if (lar->type==LA_AREA) { - switch(lar->area_shape) { + switch (lar->area_shape) { case LA_AREA_SQUARE: lar->ray_totsamp= lar->ray_samp*lar->ray_samp; lar->ray_sampy= lar->ray_samp; @@ -4728,7 +4725,7 @@ static int allow_render_object(Render *re, Object *ob, int nolamps, int onlysele return 0; /* don't add non-basic meta objects, ends up having renderobjects with no geometry */ - if (ob->type == OB_MBALL && ob!=find_basis_mball(re->scene, ob)) + if (ob->type == OB_MBALL && ob!=BKE_metaball_basis_find(re->scene, ob)) return 0; if (nolamps && (ob->type==OB_LAMP)) diff --git a/source/blender/render/intern/source/initrender.c b/source/blender/render/intern/source/initrender.c index f7f592c9407..3e82bec7e52 100644 --- a/source/blender/render/intern/source/initrender.c +++ b/source/blender/render/intern/source/initrender.c @@ -167,7 +167,7 @@ float RE_filter_value(int type, float x) x= ABS(x); - switch(type) { + switch (type) { case R_FILTER_BOX: if (x>1.0f) return 0.0f; return 1.0f; @@ -208,7 +208,7 @@ static float calc_weight(Render *re, float *weight, int i, int j) weight[a]= 0.0; /* Weighting choices */ - switch(re->r.filtertype) { + switch (re->r.filtertype) { case R_FILTER_BOX: if (i==0 && j==0) weight[a]= 1.0; break; diff --git a/source/blender/render/intern/source/pointdensity.c b/source/blender/render/intern/source/pointdensity.c index 5d4f9db9a02..54474891810 100644 --- a/source/blender/render/intern/source/pointdensity.c +++ b/source/blender/render/intern/source/pointdensity.c @@ -221,7 +221,7 @@ static void pointdensity_cache_object(Render *re, PointDensity *pd, Object *ob) copy_v3_v3(co, mvert->co); - switch(pd->ob_cache_space) { + switch (pd->ob_cache_space) { case TEX_PD_OBJECTSPACE: break; case TEX_PD_OBJECTLOC: diff --git a/source/blender/render/intern/source/rayshade.c b/source/blender/render/intern/source/rayshade.c index 0c735c18c57..bb08911a1eb 100644 --- a/source/blender/render/intern/source/rayshade.c +++ b/source/blender/render/intern/source/rayshade.c @@ -87,8 +87,7 @@ static int test_break(void *data) static void RE_rayobject_config_control(RayObject *r, Render *re) { - if (RE_rayobject_isRayAPI(r)) - { + if (RE_rayobject_isRayAPI(r)) { r = RE_rayobject_align( r ); r->control.data = re; r->control.test_break = test_break; @@ -99,8 +98,7 @@ static RayObject* RE_rayobject_create(Render *re, int type, int size) { RayObject * res = NULL; - if (type == R_RAYSTRUCTURE_AUTO) - { + if (type == R_RAYSTRUCTURE_AUTO) { //TODO //if (detect_simd()) #ifdef __SSE__ @@ -111,8 +109,7 @@ static RayObject* RE_rayobject_create(Render *re, int type, int size) } #ifndef __SSE__ - if (type == R_RAYSTRUCTURE_SIMD_SVBVH || type == R_RAYSTRUCTURE_SIMD_QBVH) - { + if (type == R_RAYSTRUCTURE_SIMD_SVBVH || type == R_RAYSTRUCTURE_SIMD_QBVH) { puts("Warning: Using VBVH (SSE was disabled at compile time)"); type = R_RAYSTRUCTURE_VBVH; } @@ -148,37 +145,30 @@ void freeraytree(Render *re) { ObjectInstanceRen *obi; - if (re->raytree) - { + if (re->raytree) { RE_rayobject_free(re->raytree); re->raytree = NULL; } - if (re->rayfaces) - { + if (re->rayfaces) { MEM_freeN(re->rayfaces); re->rayfaces = NULL; } - if (re->rayprimitives) - { + if (re->rayprimitives) { MEM_freeN(re->rayprimitives); re->rayprimitives = NULL; } - for (obi=re->instancetable.first; obi; obi=obi->next) - { + for (obi=re->instancetable.first; obi; obi=obi->next) { ObjectRen *obr = obi->obr; - if (obr->raytree) - { + if (obr->raytree) { RE_rayobject_free(obr->raytree); obr->raytree = NULL; } - if (obr->rayfaces) - { + if (obr->rayfaces) { MEM_freeN(obr->rayfaces); obr->rayfaces = NULL; } - if (obi->raytree) - { + if (obi->raytree) { RE_rayobject_free(obi->raytree); obi->raytree = NULL; } @@ -232,8 +222,7 @@ RayObject* makeraytree_object(Render *re, ObjectInstanceRen *obi) // update render stats ObjectRen *obr = obi->obr; - if (obr->raytree == NULL) - { + if (obr->raytree == NULL) { RayObject *raytree; RayFace *face = NULL; VlakPrimitive *vlakprimitive = NULL; @@ -241,8 +230,7 @@ RayObject* makeraytree_object(Render *re, ObjectInstanceRen *obi) //Count faces int faces = 0; - for (v=0;vtotvlak;v++) - { + for (v=0;vtotvlak;v++) { VlakRen *vlr = obr->vlaknodes[v>>8].vlak + (v&255); if (is_raytraceable_vlr(re, vlr)) faces++; @@ -260,11 +248,9 @@ RayObject* makeraytree_object(Render *re, ObjectInstanceRen *obi) obr->rayobi = obi; - for (v=0;vtotvlak;v++) - { + for (v=0;vtotvlak;v++) { VlakRen *vlr = obr->vlaknodes[v>>8].vlak + (v&255); - if (is_raytraceable_vlr(re, vlr)) - { + if (is_raytraceable_vlr(re, vlr)) { if ((re->r.raytrace_options & R_RAYTRACE_USE_LOCAL_COORDS)) { RE_rayobject_add( raytree, RE_vlakprimitive_from_vlak( vlakprimitive, obi, vlr ) ); vlakprimitive++; @@ -286,8 +272,7 @@ RayObject* makeraytree_object(Render *re, ObjectInstanceRen *obi) } if (obr->raytree) { - if ((obi->flag & R_TRANSFORMED) && obi->raytree == NULL) - { + if ((obi->flag & R_TRANSFORMED) && obi->raytree == NULL) { obi->transform_primitives = 0; obi->raytree = RE_rayobject_instance_create( obr->raytree, obi->mat, obi, obi->obr->rayobi ); } @@ -299,16 +284,13 @@ RayObject* makeraytree_object(Render *re, ObjectInstanceRen *obi) static int has_special_rayobject(Render *re, ObjectInstanceRen *obi) { - if ( (obi->flag & R_TRANSFORMED) && (re->r.raytrace_options & R_RAYTRACE_USE_INSTANCES) ) - { + if ( (obi->flag & R_TRANSFORMED) && (re->r.raytrace_options & R_RAYTRACE_USE_INSTANCES) ) { ObjectRen *obr = obi->obr; int v, faces = 0; - for (v=0;vtotvlak;v++) - { + for (v=0;vtotvlak;v++) { VlakRen *vlr = obr->vlaknodes[v>>8].vlak + (v&255); - if (is_raytraceable_vlr(re, vlr)) - { + if (is_raytraceable_vlr(re, vlr)) { faces++; if (faces > 4) return 1; @@ -329,8 +311,7 @@ static void makeraytree_single(Render *re) int faces = 0, obs = 0, special = 0; for (obi=re->instancetable.first; obi; obi=obi->next) - if (is_raytraceable(re, obi)) - { + if (is_raytraceable(re, obi)) { ObjectRen *obr = obi->obr; obs++; @@ -339,8 +320,7 @@ static void makeraytree_single(Render *re) } else { int v; - for (v=0;vtotvlak;v++) - { + for (v=0;vtotvlak;v++) { VlakRen *vlr = obr->vlaknodes[v>>8].vlak + (v&255); if (is_raytraceable_vlr(re, vlr)) faces++; @@ -348,8 +328,7 @@ static void makeraytree_single(Render *re) } } - if (faces + special == 0) - { + if (faces + special == 0) { re->raytree = RE_rayobject_empty_create(); return; } @@ -357,8 +336,7 @@ static void makeraytree_single(Render *re) //Create raytree raytree = re->raytree = RE_rayobject_create( re, re->r.raytrace_structure, faces+special ); - if ( (re->r.raytrace_options & R_RAYTRACE_USE_LOCAL_COORDS) ) - { + if ( (re->r.raytrace_options & R_RAYTRACE_USE_LOCAL_COORDS) ) { vlakprimitive = re->rayprimitives = (VlakPrimitive*)MEM_callocN(faces*sizeof(VlakPrimitive), "Raytrace vlak-primitives"); } else { @@ -366,8 +344,7 @@ static void makeraytree_single(Render *re) } for (obi=re->instancetable.first; obi; obi=obi->next) - if (is_raytraceable(re, obi)) - { + if (is_raytraceable(re, obi)) { if (test_break(re)) break; @@ -384,13 +361,11 @@ static void makeraytree_single(Render *re) int v; ObjectRen *obr = obi->obr; - if (obi->flag & R_TRANSFORMED) - { + if (obi->flag & R_TRANSFORMED) { obi->transform_primitives = 1; } - for (v=0;vtotvlak;v++) - { + for (v=0;vtotvlak;v++) { VlakRen *vlr = obr->vlaknodes[v>>8].vlak + (v&255); if (is_raytraceable_vlr(re, vlr)) { if ((re->r.raytrace_options & R_RAYTRACE_USE_LOCAL_COORDS)) { @@ -400,8 +375,7 @@ static void makeraytree_single(Render *re) } else { RE_rayface_from_vlak(face, obi, vlr); - if ((obi->flag & R_TRANSFORMED)) - { + if ((obi->flag & R_TRANSFORMED)) { mul_m4_v3(obi->mat, face->v1); mul_m4_v3(obi->mat, face->v2); mul_m4_v3(obi->mat, face->v3); @@ -417,8 +391,7 @@ static void makeraytree_single(Render *re) } } - if (!test_break(re)) - { + if (!test_break(re)) { re->i.infostr= "Raytree.. building"; re->stats_draw(re->sdh, &re->i); @@ -452,8 +425,7 @@ void makeraytree(Render *re) //This is ONLY needed to kept a bogus behavior of SUN and HEMI lights INIT_MINMAX(min, max); RE_rayobject_merge_bb( re->raytree, min, max ); - for (i=0; i<3; i++) - { + for (i=0; i<3; i++) { min[i] += 0.01f; max[i] += 0.01f; sub[i] = max[i]-min[i]; @@ -1006,12 +978,10 @@ static void halton_sample(double *ht_invprimes, double *ht_nums, double *v) // "Instant Radiosity", Keller A. unsigned int i; - for (i = 0; i < 2; i++) - { + for (i = 0; i < 2; i++) { double r = fabs((1.0 - ht_nums[i]) - 1e-10); - if (ht_invprimes[i] >= r) - { + if (ht_invprimes[i] >= r) { double lasth; double h = ht_invprimes[i]; @@ -1065,8 +1035,7 @@ static struct QMCSampler *QMC_initSampler(int type, int tot) static void QMC_initPixel(QMCSampler *qsa, int thread) { - if (qsa->type==SAMP_TYPE_HAMMERSLEY) - { + if (qsa->type==SAMP_TYPE_HAMMERSLEY) { /* hammersley sequence is fixed, already created in QMCSampler init. * per pixel, gets a random offset. We create separate offsets per thread, for write-safety */ qsa->offs[thread][0] = 0.5f * BLI_thread_frand(thread); @@ -1377,8 +1346,7 @@ static void trace_refract(float col[4], ShadeInput *shi, ShadeResult *shr) samples++; /* adaptive sampling */ - if (adapt_thresh < 1.0f && samples > max_samples/2) - { + if (adapt_thresh < 1.0f && samples > max_samples/2) { if (adaptive_sample_variance(samples, col, colsq, adapt_thresh)) break; @@ -1479,8 +1447,7 @@ static void trace_reflect(float col[3], ShadeInput *shi, ShadeResult *shr, float samples++; /* adaptive sampling */ - if (adapt_thresh > 0.0f && samples > max_samples/3) - { + if (adapt_thresh > 0.0f && samples > max_samples/3) { if (adaptive_sample_variance(samples, col, colsq, adapt_thresh)) break; @@ -2267,8 +2234,7 @@ static void ray_shadow_qmc(ShadeInput *shi, LampRen *lar, const float lampco[3], QMC_initPixel(qsa, shi->thread); INIT_MINMAX(min, max); - for (i=0; itype) { + switch (tex->type) { case 0: texres->tin= 0.0f; @@ -1231,7 +1231,7 @@ static int multitex(Tex *tex, float *texvec, float *dxt, float *dyt, int osatex, copy_v3_v3(tmpvec, texvec); mul_v3_fl(tmpvec, 1.0f/tex->noisesize); - switch(tex->stype) { + switch (tex->stype) { case TEX_MFRACTAL: case TEX_FBM: retval= mg_mFractalOrfBmTex(tex, tmpvec, texres); @@ -1389,7 +1389,7 @@ void texture_rgb_blend(float in[3], const float tex[3], const float out[3], floa { float facm, col; - switch(blendtype) { + switch (blendtype) { case MTEX_BLEND: fact*= facg; facm= 1.0f-fact; @@ -1530,7 +1530,7 @@ float texture_value_blend(float tex, float out, float fact, float facg, int blen facm= 1.0f-fact; if (flip) SWAP(float, fact, facm); - switch(blendtype) { + switch (blendtype) { case MTEX_BLEND: in= fact*tex + facm*out; break; @@ -3054,7 +3054,7 @@ void do_sky_tex(const float rco[3], float lo[3], const float dxyview[2], float h } /* Grab the mapping settings for this texture */ - switch(mtex->texco) { + switch (mtex->texco) { case TEXCO_ANGMAP: /* only works with texture being "real" */ /* use saacos(), fixes bug [#22398], float precision caused lo[2] to be slightly less then -1.0 */ diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c index f5e36125299..c0267a3b44d 100644 --- a/source/blender/render/intern/source/rendercore.c +++ b/source/blender/render/intern/source/rendercore.c @@ -457,7 +457,7 @@ static void add_filt_passes(RenderLayer *rl, int curmask, int rectx, int offset, float *fp, *col= NULL; int pixsize= 3; - switch(rpass->passtype) { + switch (rpass->passtype) { case SCE_PASS_Z: fp= rpass->rect + offset; *fp= shr->z; @@ -569,7 +569,7 @@ static void add_passes(RenderLayer *rl, int offset, ShadeInput *shi, ShadeResult float *col= NULL, uvcol[3]; int a, pixsize= 3; - switch(rpass->passtype) { + switch (rpass->passtype) { case SCE_PASS_Z: fp= rpass->rect + offset; *fp= shr->z; diff --git a/source/blender/render/intern/source/renderdatabase.c b/source/blender/render/intern/source/renderdatabase.c index 6a0c8e3526f..f3b6bfb80ea 100644 --- a/source/blender/render/intern/source/renderdatabase.c +++ b/source/blender/render/intern/source/renderdatabase.c @@ -871,8 +871,7 @@ void free_renderdata_tables(Render *re) } if (re->objectinstance) { - for (obi=re->instancetable.first; obi; obi=obi->next) - { + for (obi=re->instancetable.first; obi; obi=obi->next) { if (obi->vectors) MEM_freeN(obi->vectors); @@ -1274,8 +1273,7 @@ void project_renderdata(Render *re, void (*projectfunc)(const float *, float mat else if (hoco[3]<0.0f) { har->miny= har->maxy= -10000; /* render clips it */ } - else /* do the projection...*/ - { + else { /* do the projection...*/ /* bring back hocos */ hoco[0]*= 2.0f; hoco[1]*= 2.0f; diff --git a/source/blender/render/intern/source/shadeoutput.c b/source/blender/render/intern/source/shadeoutput.c index cf688982eda..e74041c9006 100644 --- a/source/blender/render/intern/source/shadeoutput.c +++ b/source/blender/render/intern/source/shadeoutput.c @@ -931,7 +931,7 @@ static void add_to_diffuse(float *diff, ShadeInput *shi, float is, float r, floa float fac; /* input */ - switch(ma->rampin_col) { + switch (ma->rampin_col) { case MA_RAMP_IN_ENERGY: /* should use 'rgb_to_grayscale' but we only have a vector version */ fac= 0.3f*r + 0.58f*g + 0.12f*b; @@ -1003,7 +1003,7 @@ static void do_specular_ramp(ShadeInput *shi, float is, float t, float spec[3]) float col[4]; /* input */ - switch(ma->rampin_spec) { + switch (ma->rampin_spec) { case MA_RAMP_IN_ENERGY: fac= t; break; @@ -1158,8 +1158,7 @@ float lamp_get_visibility(LampRen *lar, const float co[3], float lv[3], float *d // visifac= 0.0f; } else { - switch(lar->falloff_type) - { + switch (lar->falloff_type) { case LA_FALLOFF_CONSTANT: visifac = 1.0f; break; diff --git a/source/blender/render/intern/source/sunsky.c b/source/blender/render/intern/source/sunsky.c index 8097628e575..8aabfbfed09 100644 --- a/source/blender/render/intern/source/sunsky.c +++ b/source/blender/render/intern/source/sunsky.c @@ -338,8 +338,7 @@ static void ComputeAttenuatedSunlight(float theta, int turbidity, float fTau[3]) m = 1.0f/(cosf(theta) + 0.15f*powf(93.885f-theta/(float)M_PI*180.0f,-1.253f)); - for (i = 0; i < 3; i++) - { + for (i = 0; i < 3; i++) { // Rayleigh Scattering fTauR = expf( -m * 0.008735f * powf(fLambda[i], (float)(-4.08f))); @@ -393,8 +392,7 @@ void InitAtmosphere(struct SunSky *sunSky, float sun_intens, float mief, float r fLambda[0] = 1/650e-9f; fLambda[1] = 1/570e-9f; fLambda[2] = 1/475e-9f; - for (i=0; i < 3; i++) - { + for (i=0; i < 3; i++) { fLambda2[i] = fLambda[i]*fLambda[i]; fLambda4[i] = fLambda2[i]*fLambda2[i]; } diff --git a/source/blender/render/intern/source/volume_precache.c b/source/blender/render/intern/source/volume_precache.c index 8b059d4a564..1f5ada9b113 100644 --- a/source/blender/render/intern/source/volume_precache.c +++ b/source/blender/render/intern/source/volume_precache.c @@ -334,14 +334,10 @@ static void ms_diffuse(Render *re, int do_test_break, float *x0, float *x, float size_t size = n[0]*n[1]*n[2]; const float a = dt*diff*size; - for (l=0; l<20; l++) - { - for (k=1; k<=n[2]; k++) - { - for (j=1; j<=n[1]; j++) - { - for (i=1; i<=n[0]; i++) - { + for (l=0; l<20; l++) { + for (k=1; k<=n[2]; k++) { + for (j=1; j<=n[1]; j++) { + for (i=1; i<=n[0]; i++) { x[v_I_pad(i,j,k,n)] = (x0[v_I_pad(i,j,k,n)]) + a*( x0[v_I_pad(i-1,j,k,n)]+ x0[v_I_pad(i+1,j,k,n)]+ x0[v_I_pad(i,j-1,k,n)]+ x0[v_I_pad(i,j+1,k,n)]+ x0[v_I_pad(i,j,k-1,n)]+x0[v_I_pad(i,j,k+1,n)] ) / (1+6*a); @@ -384,15 +380,11 @@ static void multiple_scattering_diffusion(Render *re, VolumePrecache *vp, Materi energy_ss = total_ss_energy(re, do_test_break, vp); /* Scattering as diffusion pass */ - for (m=0; mfirst; go; go= go->next) - { + for (go=lights->first; go; go= go->next) { float lacol[3] = {0.f, 0.f, 0.f}; lar= go->lampren; diff --git a/source/blender/render/intern/source/voxeldata.c b/source/blender/render/intern/source/voxeldata.c index 1f49b654ef8..817e51f2020 100644 --- a/source/blender/render/intern/source/voxeldata.c +++ b/source/blender/render/intern/source/voxeldata.c @@ -171,8 +171,7 @@ static void load_frame_image_sequence(VoxelData *vd, Tex *tex) vd->resol[2] = iuser.frames; vd->dataset = MEM_mapallocN(sizeof(float)*vd_resol_size(vd), "voxel dataset"); - for (z=0; z < iuser.frames; z++) - { + for (z=0; z < iuser.frames; z++) { /* get a new ibuf for each frame */ if (z > 0) { iuser.framenr++; @@ -182,10 +181,8 @@ static void load_frame_image_sequence(VoxelData *vd, Tex *tex) } rf = ibuf->rect_float; - for (y=0; y < ibuf->y; y++) - { - for (x=0; x < ibuf->x; x++) - { + for (y=0; y < ibuf->y; y++) { + for (x=0; x < ibuf->x; x++) { /* currently averaged to monchrome */ vd->dataset[ V_I(x, y, z, vd->resol) ] = (rf[0] + rf[1] + rf[2])*0.333f; rf +=4; @@ -249,8 +246,7 @@ static void init_frame_smoke(VoxelData *vd, float cfra) heat = smoke_get_heat(smd->domain->fluid); - for (i=0; idataset[i] = (heat[i]+2.0f)/4.0f; } @@ -271,8 +267,7 @@ static void init_frame_smoke(VoxelData *vd, float cfra) yvel = smoke_get_velocity_y(smd->domain->fluid); zvel = smoke_get_velocity_z(smd->domain->fluid); - for (i=0; idataset[i] = sqrt(xvel[i]*xvel[i] + yvel[i]*yvel[i] + zvel[i]*zvel[i])*3.0f; } @@ -333,7 +328,7 @@ void cache_voxeldata(Tex *tex, int scene_frame) BLI_strncpy(path, vd->source_path, sizeof(path)); - switch(vd->file_format) { + switch (vd->file_format) { case TEX_VD_IMAGE_SEQUENCE: load_frame_image_sequence(vd, tex); return; diff --git a/source/blender/render/intern/source/zbuf.c b/source/blender/render/intern/source/zbuf.c index 74c4bf19faf..06fc323e8d7 100644 --- a/source/blender/render/intern/source/zbuf.c +++ b/source/blender/render/intern/source/zbuf.c @@ -3529,7 +3529,7 @@ void merge_transp_passes(RenderLayer *rl, ShadeResult *shr) float *col= NULL; int pixsize= 3; - switch(rpass->passtype) { + switch (rpass->passtype) { case SCE_PASS_RGBA: col= shr->col; pixsize= 4; @@ -3629,7 +3629,7 @@ void add_transp_passes(RenderLayer *rl, int offset, ShadeResult *shr, float alph float *fp, *col= NULL; int pixsize= 3; - switch(rpass->passtype) { + switch (rpass->passtype) { case SCE_PASS_Z: fp= rpass->rect + offset; if (shr->z < *fp) diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 42fb03d5d64..78ad364b8e8 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -691,8 +691,7 @@ static wmOperator *wm_operator_create(wmWindowManager *wm, wmOperatorType *ot, P if (properties) { otmacro = ot->macro.first; - RNA_STRUCT_BEGIN(properties, prop) - { + RNA_STRUCT_BEGIN (properties, prop) { if (otmacro == NULL) break; @@ -747,6 +746,7 @@ static void wm_region_mouse_co(bContext *C, wmEvent *event) } } +#if 0 /* disabling for 2.63 release, since we keep getting reports some menu items are leaving props undefined */ int WM_operator_last_properties_init(wmOperator *op) { int change = FALSE; @@ -760,7 +760,7 @@ int WM_operator_last_properties_init(wmOperator *op) iterprop = RNA_struct_iterator_property(op->type->srna); - RNA_PROP_BEGIN(op->ptr, itemptr, iterprop) { + RNA_PROP_BEGIN (op->ptr, itemptr, iterprop) { PropertyRNA *prop = itemptr.data; if ((RNA_property_flag(prop) & PROP_SKIP_SAVE) == 0) { if (!RNA_property_is_set(op->ptr, prop)) { /* don't override a setting already set */ @@ -805,6 +805,20 @@ int WM_operator_last_properties_store(wmOperator *op) } } +#else + +int WM_operator_last_properties_init(wmOperator *UNUSED(op)) +{ + return FALSE; +} + +int WM_operator_last_properties_store(wmOperator *UNUSED(op)) +{ + return FALSE; +} + +#endif + static int wm_operator_invoke(bContext *C, wmOperatorType *ot, wmEvent *event, PointerRNA *properties, ReportList *reports, short poll_only) { wmWindowManager *wm = CTX_wm_manager(C); diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c index e50fbaa624e..7f5271e5ffa 100644 --- a/source/blender/windowmanager/intern/wm_files.c +++ b/source/blender/windowmanager/intern/wm_files.c @@ -787,7 +787,7 @@ int WM_write_file(bContext *C, const char *target, int fileflags, ReportList *re /* blend file thumbnail */ /* save before exit_editmode, otherwise derivedmeshes for shared data corrupt #27765) */ - if (U.flag & USER_SAVE_PREVIEWS) { + if ((U.flag & USER_SAVE_PREVIEWS) && 0) { ibuf_thumb = blend_file_thumb(CTX_data_scene(C), CTX_wm_screen(C), &thumb); } diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c index 0c95ccea5d7..58c2c649163 100644 --- a/source/blender/windowmanager/intern/wm_init_exit.c +++ b/source/blender/windowmanager/intern/wm_init_exit.c @@ -364,7 +364,7 @@ void WM_exit_ext(bContext *C, const short do_python) free_openrecent(); - BKE_freecubetable(); + BKE_metaball_cubeTable_free(); ED_preview_free_dbase(); /* frees a Main dbase, before free_blender! */ diff --git a/source/blender/windowmanager/intern/wm_jobs.c b/source/blender/windowmanager/intern/wm_jobs.c index a55a8df3301..877b8a92296 100644 --- a/source/blender/windowmanager/intern/wm_jobs.c +++ b/source/blender/windowmanager/intern/wm_jobs.c @@ -173,10 +173,12 @@ int WM_jobs_test(wmWindowManager *wm, void *owner) { wmJob *steve; + /* job can be running or about to run (suspended) */ for (steve = wm->jobs.first; steve; steve = steve->next) if (steve->owner == owner) - if (steve->running) + if (steve->running || steve->suspended) return 1; + return 0; } @@ -240,8 +242,8 @@ void WM_jobs_timer(wmJob *steve, double timestep, unsigned int note, unsigned in void WM_jobs_callbacks(wmJob *steve, void (*startjob)(void *, short *, short *, float *), void (*initjob)(void *), - void (*update)(void *), - void (*endjob)(void *)) + void (*update)(void *), + void (*endjob)(void *)) { steve->startjob = startjob; steve->initjob = initjob; diff --git a/source/blender/windowmanager/intern/wm_keymap.c b/source/blender/windowmanager/intern/wm_keymap.c index 48002029e56..cd7a8a93975 100644 --- a/source/blender/windowmanager/intern/wm_keymap.c +++ b/source/blender/windowmanager/intern/wm_keymap.c @@ -103,7 +103,9 @@ static int wm_keymap_item_equals_result(wmKeyMapItem *a, wmKeyMapItem *b) if (!((a->ptr == NULL && b->ptr == NULL) || (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; diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 514c159c87b..7fbdce097a9 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -589,7 +589,7 @@ void WM_operator_properties_alloc(PointerRNA **ptr, IDProperty **properties, con void WM_operator_properties_sanitize(PointerRNA *ptr, const short no_context) { - RNA_STRUCT_BEGIN(ptr, prop) { + RNA_STRUCT_BEGIN (ptr, prop) { switch (RNA_property_type(prop)) { case PROP_ENUM: if (no_context) @@ -622,7 +622,7 @@ void WM_operator_properties_reset(wmOperator *op) PropertyRNA *iterprop; iterprop = RNA_struct_iterator_property(op->type->srna); - RNA_PROP_BEGIN(op->ptr, itemptr, iterprop) { + RNA_PROP_BEGIN (op->ptr, itemptr, iterprop) { PropertyRNA *prop = itemptr.data; if ((RNA_property_flag(prop) & PROP_SKIP_SAVE) == 0) { @@ -1796,7 +1796,7 @@ static int wm_link_append_exec(bContext *C, wmOperator *op) BLO_library_append_named_part_ex(C, mainl, &bh, name, idcode, flag); } else { - RNA_BEGIN(op->ptr, itemptr, "files") { + RNA_BEGIN (op->ptr, itemptr, "files") { RNA_string_get(&itemptr, "name", name); BLO_library_append_named_part_ex(C, mainl, &bh, name, idcode, flag); } @@ -2774,8 +2774,7 @@ int WM_gesture_lines_cancel(bContext *C, wmOperator *op) static int gesture_lasso_exec(bContext *C, wmOperator *op) { - RNA_BEGIN(op->ptr, itemptr, "path") - { + RNA_BEGIN (op->ptr, itemptr, "path") { float loc[2]; RNA_float_get_array(&itemptr, "loc", loc); @@ -3200,9 +3199,12 @@ static int radial_control_get_properties(bContext *C, wmOperator *op) else { if (use_secondary_prop && RNA_property_boolean_get(&use_secondary_ptr, use_secondary_prop)) + { data_path = "data_path_secondary"; - else + } + else { data_path = "data_path_primary"; + } } if (!radial_control_get_path(&ctx_ptr, op, data_path, &rc->ptr, &rc->prop, 0, 0)) @@ -3225,7 +3227,9 @@ static int radial_control_get_properties(bContext *C, wmOperator *op) if (!radial_control_get_path(&ctx_ptr, op, "zoom_path", &rc->zoom_ptr, &rc->zoom_prop, 2, RC_PROP_REQUIRE_FLOAT | RC_PROP_ALLOW_MISSING)) + { return 0; + } if (!radial_control_get_path(&ctx_ptr, op, "image_id", &rc->image_id_ptr, NULL, 0, 0)) return 0;