From 244a944857823766e6130d15be8f8ea4f1b83ddc Mon Sep 17 00:00:00 2001 From: hogliux Date: Thu, 27 Jul 2017 12:39:07 +0100 Subject: [PATCH] Added the JUCE DSP module --- .../MacOSX/DSPModulePluginDemo.entitlements | 8 + .../project.pbxproj | 679 +++ .../Builds/MacOSX/Info-AU.plist | 48 + .../MacOSX/Info-Standalone_Plugin.plist | 29 + .../Builds/MacOSX/Info-VST.plist | 29 + .../Builds/MacOSX/RecentFilesMenuTemplate.nib | Bin 0 -> 2842 bytes .../VisualStudio2015/DSPModulePluginDemo.sln | 38 + .../DSPModulePluginDemo_SharedCode.vcxproj | 2536 ++++++++++ ...odulePluginDemo_SharedCode.vcxproj.filters | 4280 +++++++++++++++++ ...PModulePluginDemo_StandalonePlugin.vcxproj | 166 + ...luginDemo_StandalonePlugin.vcxproj.filters | 20 + .../DSPModulePluginDemo_VST.vcxproj | 166 + .../DSPModulePluginDemo_VST.vcxproj.filters | 20 + .../Builds/VisualStudio2015/resources.rc | 30 + .../VisualStudio2017/DSPModulePluginDemo.sln | 38 + .../DSPModulePluginDemo_SharedCode.vcxproj | 2531 ++++++++++ ...odulePluginDemo_SharedCode.vcxproj.filters | 4280 +++++++++++++++++ ...PModulePluginDemo_StandalonePlugin.vcxproj | 161 + ...luginDemo_StandalonePlugin.vcxproj.filters | 20 + .../DSPModulePluginDemo_VST.vcxproj | 161 + .../DSPModulePluginDemo_VST.vcxproj.filters | 20 + .../Builds/VisualStudio2017/resources.rc | 30 + .../DSPModulePluginDemo_SharedCode.log | 18 + .../DSP module plugin demo.jucer | 129 + .../JuceLibraryCode/AppConfig.h | 410 ++ .../JuceLibraryCode/BinaryData.cpp | 1505 ++++++ .../JuceLibraryCode/BinaryData.h | 26 + .../JuceLibraryCode/JuceHeader.h | 47 + .../JuceLibraryCode/ReadMe.txt | 12 + .../include_juce_audio_basics.cpp | 9 + .../include_juce_audio_basics.mm | 9 + .../include_juce_audio_devices.cpp | 9 + .../include_juce_audio_devices.mm | 9 + .../include_juce_audio_formats.cpp | 9 + .../include_juce_audio_formats.mm | 9 + .../include_juce_audio_plugin_client_AAX.cpp | 9 + .../include_juce_audio_plugin_client_AAX.mm | 9 + .../include_juce_audio_plugin_client_AU.r | 9 + .../include_juce_audio_plugin_client_AU_1.mm | 9 + .../include_juce_audio_plugin_client_AU_2.mm | 9 + .../include_juce_audio_plugin_client_AUv3.mm | 9 + .../include_juce_audio_plugin_client_RTAS.r | 9 + ...nclude_juce_audio_plugin_client_RTAS_1.cpp | 9 + ...nclude_juce_audio_plugin_client_RTAS_2.cpp | 9 + ...nclude_juce_audio_plugin_client_RTAS_3.cpp | 9 + ...nclude_juce_audio_plugin_client_RTAS_4.cpp | 9 + ...de_juce_audio_plugin_client_RTAS_utils.cpp | 9 + ...ude_juce_audio_plugin_client_RTAS_utils.mm | 9 + ...de_juce_audio_plugin_client_Standalone.cpp | 9 + .../include_juce_audio_plugin_client_VST2.cpp | 9 + .../include_juce_audio_plugin_client_VST3.cpp | 9 + ...lude_juce_audio_plugin_client_VST_utils.mm | 9 + ...include_juce_audio_plugin_client_utils.cpp | 9 + .../include_juce_audio_processors.cpp | 9 + .../include_juce_audio_processors.mm | 9 + .../include_juce_audio_utils.cpp | 9 + .../include_juce_audio_utils.mm | 9 + .../JuceLibraryCode/include_juce_core.cpp | 9 + .../JuceLibraryCode/include_juce_core.mm | 9 + .../include_juce_data_structures.cpp | 9 + .../include_juce_data_structures.mm | 9 + .../JuceLibraryCode/include_juce_dsp.cpp | 9 + .../JuceLibraryCode/include_juce_dsp.mm | 9 + .../JuceLibraryCode/include_juce_events.cpp | 9 + .../JuceLibraryCode/include_juce_events.mm | 9 + .../JuceLibraryCode/include_juce_graphics.cpp | 9 + .../JuceLibraryCode/include_juce_graphics.mm | 9 + .../include_juce_gui_basics.cpp | 9 + .../include_juce_gui_basics.mm | 9 + .../include_juce_gui_extra.cpp | 9 + .../JuceLibraryCode/include_juce_gui_extra.mm | 9 + .../JuceLibraryCode/include_juce_opengl.cpp | 9 + .../JuceLibraryCode/include_juce_opengl.mm | 9 + .../Resources/Impulse1.wav | Bin 0 -> 90246 bytes .../Resources/Impulse2.wav | Bin 0 -> 37902 bytes .../Source/PluginEditor.cpp | 200 + .../Source/PluginEditor.h | 104 + .../Source/PluginProcessor.cpp | 256 + .../Source/PluginProcessor.h | 111 + .../DSPDemo/Builds/LinuxMakefile/Makefile | 237 + .../MacOSX/DSPDemo.xcodeproj/project.pbxproj | 329 ++ examples/DSPDemo/Builds/MacOSX/Info-App.plist | 29 + .../Builds/MacOSX/RecentFilesMenuTemplate.nib | Bin 0 -> 2842 bytes .../Builds/VisualStudio2017/DSPDemo.sln | 20 + .../VisualStudio2017/DSPDemo_App.vcxproj | 393 +- .../DSPDemo_App.vcxproj.filters | 686 +-- .../Builds/VisualStudio2017}/resources.rc | 4 +- examples/DSPDemo/DSPDemo.jucer | 125 + examples/DSPDemo/JuceLibraryCode/AppConfig.h | 258 + .../DSPDemo/JuceLibraryCode/BinaryData.cpp | 2358 +++++++++ examples/DSPDemo/JuceLibraryCode/BinaryData.h | 56 + examples/DSPDemo/JuceLibraryCode/JuceHeader.h | 45 + examples/DSPDemo/JuceLibraryCode/ReadMe.txt | 12 + .../include_juce_audio_basics.cpp | 9 + .../include_juce_audio_basics.mm | 9 + .../include_juce_audio_devices.cpp | 9 + .../include_juce_audio_devices.mm | 9 + .../include_juce_audio_formats.cpp | 9 + .../include_juce_audio_formats.mm | 9 + .../include_juce_audio_processors.cpp | 9 + .../include_juce_audio_processors.mm | 9 + .../include_juce_audio_utils.cpp | 9 + .../include_juce_audio_utils.mm | 9 + .../JuceLibraryCode/include_juce_core.cpp | 9 + .../JuceLibraryCode/include_juce_core.mm | 9 + .../include_juce_data_structures.cpp | 9 + .../include_juce_data_structures.mm | 9 + .../JuceLibraryCode/include_juce_dsp.cpp | 9 + .../JuceLibraryCode/include_juce_dsp.mm | 9 + .../JuceLibraryCode/include_juce_events.cpp | 9 + .../JuceLibraryCode/include_juce_events.mm | 9 + .../JuceLibraryCode/include_juce_graphics.cpp | 9 + .../JuceLibraryCode/include_juce_graphics.mm | 9 + .../include_juce_gui_basics.cpp | 9 + .../include_juce_gui_basics.mm | 9 + .../include_juce_gui_extra.cpp | 9 + .../JuceLibraryCode/include_juce_gui_extra.mm | 9 + .../DSPDemo/Resources/cassette_recorder.wav | Bin 0 -> 37902 bytes examples/DSPDemo/Resources/guitar_amp.wav | Bin 0 -> 90246 bytes examples/DSPDemo/Source/DSPDemo.h | 198 + .../DSPDemo/Source/Demos/ConvolutionDemo.cpp | 89 + .../DSPDemo/Source/Demos/FIRFilterDemo.cpp | 76 + examples/DSPDemo/Source/Demos/GainDemo.cpp | 61 + .../DSPDemo/Source/Demos/IIRFilterDemo.cpp | 80 + .../DSPDemo/Source/Demos/OscillatorDemo.cpp | 112 + .../DSPDemo/Source/Demos/OverdriveDemo.cpp | 91 + .../DSPDemo/Source/Demos/SIMDRegisterDemo.cpp | 124 + .../Source/Demos/StateVariableFilterDemo.cpp | 77 + .../Source/Demos/WaveShaperTanhDemo.cpp | 60 + .../DSPDemo/Source/EditorColourScheme.xml | 15 + examples/DSPDemo/Source/Main.cpp | 186 + examples/DSPDemo/Source/Main.h | 143 + examples/DSPDemo/Source/MainComponent.cpp | 249 + examples/DSPDemo/Source/MainComponent.h | 266 + .../Demo/Builds/Android/app/CMakeLists.txt | 8 +- .../MacOSX/JuceDemo.xcodeproj/project.pbxproj | 42 - .../VisualStudio2013/JuceDemo_App.vcxproj | 8 +- .../JuceDemo_App.vcxproj.filters | 12 +- .../VisualStudio2015/JuceDemo_App.vcxproj | 8 +- .../JuceDemo_App.vcxproj.filters | 12 +- .../VisualStudio2017/JuceDemo_App.vcxproj | 8 +- .../JuceDemo_App.vcxproj.filters | 12 +- .../iOS/JuceDemo.xcodeproj/project.pbxproj | 42 - .../Builds/LinuxMakefile/Makefile | 14 +- .../UnitTestRunner.xcodeproj/project.pbxproj | 54 +- .../VisualStudio2015/UnitTestRunner.sln | 20 - .../UnitTestRunner_ConsoleApp.vcxproj | 91 +- .../UnitTestRunner_ConsoleApp.vcxproj.filters | 174 +- .../JuceLibraryCode/AppConfig.h | 20 + .../JuceLibraryCode/JuceHeader.h | 1 + .../JuceLibraryCode/include_juce_dsp.cpp | 9 + .../JuceLibraryCode/include_juce_dsp.mm | 9 + extras/UnitTestRunner/UnitTestRunner.jucer | 61 +- .../buffers/juce_FloatVectorOperations.cpp | 32 + .../buffers/juce_FloatVectorOperations.h | 17 + .../juce_audio_basics/effects/juce_FFT.cpp | 303 -- .../effects/juce_IIRFilter.cpp | 6 - .../effects/juce_LinearSmoothedValue.h | 97 +- .../juce_audio_basics/juce_audio_basics.cpp | 2 +- modules/juce_audio_basics/juce_audio_basics.h | 2 +- .../sources/juce_MemoryAudioSource.cpp | 66 + .../sources/juce_MemoryAudioSource.h | 61 + modules/juce_core/maths/juce_MathsFunctions.h | 32 +- modules/juce_core/memory/juce_Memory.h | 8 + .../juce_core/threads/juce_DynamicLibrary.h | 6 + .../juce_core/time/juce_PerformanceCounter.h | 40 + modules/juce_dsp/containers/juce_AudioBlock.h | 541 +++ .../juce_dsp/containers/juce_SIMDRegister.h | 398 ++ .../containers/juce_SIMDRegister_test.cpp | 669 +++ .../filter_design/juce_FilterDesign.cpp | 618 +++ .../filter_design/juce_FilterDesign.h | 251 + .../juce_dsp/frequency/juce_Convolution.cpp | 1110 +++++ modules/juce_dsp/frequency/juce_Convolution.h | 135 + modules/juce_dsp/frequency/juce_FFT.cpp | 815 ++++ .../effects => juce_dsp/frequency}/juce_FFT.h | 70 +- modules/juce_dsp/frequency/juce_FFT_test.cpp | 198 + modules/juce_dsp/frequency/juce_Windowing.cpp | 186 + modules/juce_dsp/frequency/juce_Windowing.h | 73 + modules/juce_dsp/juce_dsp.cpp | 89 + modules/juce_dsp/juce_dsp.h | 221 + modules/juce_dsp/juce_dsp.mm | 27 + .../maths/juce_FastMathApproximations.h | 256 + modules/juce_dsp/maths/juce_LookupTable.cpp | 149 + modules/juce_dsp/maths/juce_LookupTable.h | 313 ++ modules/juce_dsp/maths/juce_Matrix.cpp | 308 ++ modules/juce_dsp/maths/juce_Matrix.h | 245 + modules/juce_dsp/maths/juce_Matrix_test.cpp | 165 + modules/juce_dsp/maths/juce_Polynomial.h | 162 + .../juce_dsp/maths/juce_SpecialFunctions.cpp | 135 + .../juce_dsp/maths/juce_SpecialFunctions.h | 59 + .../native/juce_avx_SIMDNativeOps.cpp | 54 + .../juce_dsp/native/juce_avx_SIMDNativeOps.h | 560 +++ .../native/juce_fallback_SIMDNativeOps.h | 213 + .../native/juce_neon_SIMDNativeOps.cpp | 39 + .../juce_dsp/native/juce_neon_SIMDNativeOps.h | 386 ++ .../native/juce_sse_SIMDNativeOps.cpp | 54 + .../juce_dsp/native/juce_sse_SIMDNativeOps.h | 740 +++ modules/juce_dsp/processors/juce_Bias.h | 138 + .../juce_dsp/processors/juce_FIRFilter.cpp | 155 + modules/juce_dsp/processors/juce_FIRFilter.h | 276 ++ .../processors/juce_FIRFilter_test.cpp | 203 + modules/juce_dsp/processors/juce_Gain.h | 127 + .../juce_dsp/processors/juce_IIRFilter.cpp | 484 ++ modules/juce_dsp/processors/juce_IIRFilter.h | 274 ++ .../juce_dsp/processors/juce_IIRFilter_Impl.h | 232 + modules/juce_dsp/processors/juce_Oscillator.h | 153 + .../juce_dsp/processors/juce_ProcessContext.h | 155 + .../juce_dsp/processors/juce_ProcessorChain.h | 114 + .../processors/juce_ProcessorDuplicator.h | 90 + .../processors/juce_ProcessorWrapper.h | 71 + .../processors/juce_StateVariableFilter.h | 200 + modules/juce_dsp/processors/juce_WaveShaper.h | 65 + 212 files changed, 37051 insertions(+), 1301 deletions(-) create mode 100644 examples/DSP module plugin demo/Builds/MacOSX/DSPModulePluginDemo.entitlements create mode 100644 examples/DSP module plugin demo/Builds/MacOSX/DSPModulePluginDemo.xcodeproj/project.pbxproj create mode 100644 examples/DSP module plugin demo/Builds/MacOSX/Info-AU.plist create mode 100644 examples/DSP module plugin demo/Builds/MacOSX/Info-Standalone_Plugin.plist create mode 100644 examples/DSP module plugin demo/Builds/MacOSX/Info-VST.plist create mode 100644 examples/DSP module plugin demo/Builds/MacOSX/RecentFilesMenuTemplate.nib create mode 100644 examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo.sln create mode 100644 examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_SharedCode.vcxproj create mode 100644 examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_SharedCode.vcxproj.filters create mode 100644 examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_StandalonePlugin.vcxproj create mode 100644 examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_StandalonePlugin.vcxproj.filters create mode 100644 examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_VST.vcxproj create mode 100644 examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_VST.vcxproj.filters create mode 100644 examples/DSP module plugin demo/Builds/VisualStudio2015/resources.rc create mode 100644 examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo.sln create mode 100644 examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_SharedCode.vcxproj create mode 100644 examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_SharedCode.vcxproj.filters create mode 100644 examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_StandalonePlugin.vcxproj create mode 100644 examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_StandalonePlugin.vcxproj.filters create mode 100644 examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_VST.vcxproj create mode 100644 examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_VST.vcxproj.filters create mode 100644 examples/DSP module plugin demo/Builds/VisualStudio2017/resources.rc create mode 100644 examples/DSP module plugin demo/Builds/x64/Debug/Shared Code/DSPModulePluginDemo_SharedCode.log create mode 100644 examples/DSP module plugin demo/DSP module plugin demo.jucer create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/AppConfig.h create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/BinaryData.cpp create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/BinaryData.h create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/JuceHeader.h create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/ReadMe.txt create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_basics.cpp create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_basics.mm create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_devices.cpp create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_devices.mm create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_formats.cpp create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_formats.mm create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_AAX.cpp create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_AAX.mm create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_AU.r create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_AU_1.mm create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_AU_2.mm create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_AUv3.mm create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_RTAS.r create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_1.cpp create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_2.cpp create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_3.cpp create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_4.cpp create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_utils.cpp create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_utils.mm create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_Standalone.cpp create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_VST2.cpp create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_VST3.cpp create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_VST_utils.mm create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_utils.cpp create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_processors.cpp create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_processors.mm create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_utils.cpp create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_utils.mm create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_core.cpp create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_core.mm create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_data_structures.cpp create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_data_structures.mm create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_dsp.cpp create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_dsp.mm create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_events.cpp create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_events.mm create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_graphics.cpp create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_graphics.mm create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_gui_basics.cpp create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_gui_basics.mm create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_gui_extra.cpp create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_gui_extra.mm create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_opengl.cpp create mode 100644 examples/DSP module plugin demo/JuceLibraryCode/include_juce_opengl.mm create mode 100644 examples/DSP module plugin demo/Resources/Impulse1.wav create mode 100644 examples/DSP module plugin demo/Resources/Impulse2.wav create mode 100644 examples/DSP module plugin demo/Source/PluginEditor.cpp create mode 100644 examples/DSP module plugin demo/Source/PluginEditor.h create mode 100644 examples/DSP module plugin demo/Source/PluginProcessor.cpp create mode 100644 examples/DSP module plugin demo/Source/PluginProcessor.h create mode 100644 examples/DSPDemo/Builds/LinuxMakefile/Makefile create mode 100644 examples/DSPDemo/Builds/MacOSX/DSPDemo.xcodeproj/project.pbxproj create mode 100644 examples/DSPDemo/Builds/MacOSX/Info-App.plist create mode 100644 examples/DSPDemo/Builds/MacOSX/RecentFilesMenuTemplate.nib create mode 100644 examples/DSPDemo/Builds/VisualStudio2017/DSPDemo.sln rename extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner_ConsoleApp.vcxproj => examples/DSPDemo/Builds/VisualStudio2017/DSPDemo_App.vcxproj (88%) rename extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner_ConsoleApp.vcxproj.filters => examples/DSPDemo/Builds/VisualStudio2017/DSPDemo_App.vcxproj.filters (88%) rename {extras/UnitTestRunner/Builds/VisualStudio2015 => examples/DSPDemo/Builds/VisualStudio2017}/resources.rc (79%) create mode 100644 examples/DSPDemo/DSPDemo.jucer create mode 100644 examples/DSPDemo/JuceLibraryCode/AppConfig.h create mode 100644 examples/DSPDemo/JuceLibraryCode/BinaryData.cpp create mode 100644 examples/DSPDemo/JuceLibraryCode/BinaryData.h create mode 100644 examples/DSPDemo/JuceLibraryCode/JuceHeader.h create mode 100644 examples/DSPDemo/JuceLibraryCode/ReadMe.txt create mode 100644 examples/DSPDemo/JuceLibraryCode/include_juce_audio_basics.cpp create mode 100644 examples/DSPDemo/JuceLibraryCode/include_juce_audio_basics.mm create mode 100644 examples/DSPDemo/JuceLibraryCode/include_juce_audio_devices.cpp create mode 100644 examples/DSPDemo/JuceLibraryCode/include_juce_audio_devices.mm create mode 100644 examples/DSPDemo/JuceLibraryCode/include_juce_audio_formats.cpp create mode 100644 examples/DSPDemo/JuceLibraryCode/include_juce_audio_formats.mm create mode 100644 examples/DSPDemo/JuceLibraryCode/include_juce_audio_processors.cpp create mode 100644 examples/DSPDemo/JuceLibraryCode/include_juce_audio_processors.mm create mode 100644 examples/DSPDemo/JuceLibraryCode/include_juce_audio_utils.cpp create mode 100644 examples/DSPDemo/JuceLibraryCode/include_juce_audio_utils.mm create mode 100644 examples/DSPDemo/JuceLibraryCode/include_juce_core.cpp create mode 100644 examples/DSPDemo/JuceLibraryCode/include_juce_core.mm create mode 100644 examples/DSPDemo/JuceLibraryCode/include_juce_data_structures.cpp create mode 100644 examples/DSPDemo/JuceLibraryCode/include_juce_data_structures.mm create mode 100644 examples/DSPDemo/JuceLibraryCode/include_juce_dsp.cpp create mode 100644 examples/DSPDemo/JuceLibraryCode/include_juce_dsp.mm create mode 100644 examples/DSPDemo/JuceLibraryCode/include_juce_events.cpp create mode 100644 examples/DSPDemo/JuceLibraryCode/include_juce_events.mm create mode 100644 examples/DSPDemo/JuceLibraryCode/include_juce_graphics.cpp create mode 100644 examples/DSPDemo/JuceLibraryCode/include_juce_graphics.mm create mode 100644 examples/DSPDemo/JuceLibraryCode/include_juce_gui_basics.cpp create mode 100644 examples/DSPDemo/JuceLibraryCode/include_juce_gui_basics.mm create mode 100644 examples/DSPDemo/JuceLibraryCode/include_juce_gui_extra.cpp create mode 100644 examples/DSPDemo/JuceLibraryCode/include_juce_gui_extra.mm create mode 100644 examples/DSPDemo/Resources/cassette_recorder.wav create mode 100644 examples/DSPDemo/Resources/guitar_amp.wav create mode 100644 examples/DSPDemo/Source/DSPDemo.h create mode 100644 examples/DSPDemo/Source/Demos/ConvolutionDemo.cpp create mode 100644 examples/DSPDemo/Source/Demos/FIRFilterDemo.cpp create mode 100644 examples/DSPDemo/Source/Demos/GainDemo.cpp create mode 100644 examples/DSPDemo/Source/Demos/IIRFilterDemo.cpp create mode 100644 examples/DSPDemo/Source/Demos/OscillatorDemo.cpp create mode 100644 examples/DSPDemo/Source/Demos/OverdriveDemo.cpp create mode 100644 examples/DSPDemo/Source/Demos/SIMDRegisterDemo.cpp create mode 100644 examples/DSPDemo/Source/Demos/StateVariableFilterDemo.cpp create mode 100644 examples/DSPDemo/Source/Demos/WaveShaperTanhDemo.cpp create mode 100644 examples/DSPDemo/Source/EditorColourScheme.xml create mode 100644 examples/DSPDemo/Source/Main.cpp create mode 100644 examples/DSPDemo/Source/Main.h create mode 100644 examples/DSPDemo/Source/MainComponent.cpp create mode 100644 examples/DSPDemo/Source/MainComponent.h delete mode 100644 extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner.sln create mode 100644 extras/UnitTestRunner/JuceLibraryCode/include_juce_dsp.cpp create mode 100644 extras/UnitTestRunner/JuceLibraryCode/include_juce_dsp.mm delete mode 100644 modules/juce_audio_basics/effects/juce_FFT.cpp create mode 100644 modules/juce_audio_basics/sources/juce_MemoryAudioSource.cpp create mode 100644 modules/juce_audio_basics/sources/juce_MemoryAudioSource.h create mode 100644 modules/juce_dsp/containers/juce_AudioBlock.h create mode 100644 modules/juce_dsp/containers/juce_SIMDRegister.h create mode 100644 modules/juce_dsp/containers/juce_SIMDRegister_test.cpp create mode 100644 modules/juce_dsp/filter_design/juce_FilterDesign.cpp create mode 100644 modules/juce_dsp/filter_design/juce_FilterDesign.h create mode 100644 modules/juce_dsp/frequency/juce_Convolution.cpp create mode 100644 modules/juce_dsp/frequency/juce_Convolution.h create mode 100644 modules/juce_dsp/frequency/juce_FFT.cpp rename modules/{juce_audio_basics/effects => juce_dsp/frequency}/juce_FFT.h (50%) create mode 100644 modules/juce_dsp/frequency/juce_FFT_test.cpp create mode 100644 modules/juce_dsp/frequency/juce_Windowing.cpp create mode 100644 modules/juce_dsp/frequency/juce_Windowing.h create mode 100644 modules/juce_dsp/juce_dsp.cpp create mode 100644 modules/juce_dsp/juce_dsp.h create mode 100644 modules/juce_dsp/juce_dsp.mm create mode 100644 modules/juce_dsp/maths/juce_FastMathApproximations.h create mode 100644 modules/juce_dsp/maths/juce_LookupTable.cpp create mode 100644 modules/juce_dsp/maths/juce_LookupTable.h create mode 100644 modules/juce_dsp/maths/juce_Matrix.cpp create mode 100644 modules/juce_dsp/maths/juce_Matrix.h create mode 100644 modules/juce_dsp/maths/juce_Matrix_test.cpp create mode 100644 modules/juce_dsp/maths/juce_Polynomial.h create mode 100644 modules/juce_dsp/maths/juce_SpecialFunctions.cpp create mode 100644 modules/juce_dsp/maths/juce_SpecialFunctions.h create mode 100644 modules/juce_dsp/native/juce_avx_SIMDNativeOps.cpp create mode 100644 modules/juce_dsp/native/juce_avx_SIMDNativeOps.h create mode 100644 modules/juce_dsp/native/juce_fallback_SIMDNativeOps.h create mode 100644 modules/juce_dsp/native/juce_neon_SIMDNativeOps.cpp create mode 100644 modules/juce_dsp/native/juce_neon_SIMDNativeOps.h create mode 100644 modules/juce_dsp/native/juce_sse_SIMDNativeOps.cpp create mode 100644 modules/juce_dsp/native/juce_sse_SIMDNativeOps.h create mode 100644 modules/juce_dsp/processors/juce_Bias.h create mode 100644 modules/juce_dsp/processors/juce_FIRFilter.cpp create mode 100644 modules/juce_dsp/processors/juce_FIRFilter.h create mode 100644 modules/juce_dsp/processors/juce_FIRFilter_test.cpp create mode 100644 modules/juce_dsp/processors/juce_Gain.h create mode 100644 modules/juce_dsp/processors/juce_IIRFilter.cpp create mode 100644 modules/juce_dsp/processors/juce_IIRFilter.h create mode 100644 modules/juce_dsp/processors/juce_IIRFilter_Impl.h create mode 100644 modules/juce_dsp/processors/juce_Oscillator.h create mode 100644 modules/juce_dsp/processors/juce_ProcessContext.h create mode 100644 modules/juce_dsp/processors/juce_ProcessorChain.h create mode 100644 modules/juce_dsp/processors/juce_ProcessorDuplicator.h create mode 100644 modules/juce_dsp/processors/juce_ProcessorWrapper.h create mode 100644 modules/juce_dsp/processors/juce_StateVariableFilter.h create mode 100644 modules/juce_dsp/processors/juce_WaveShaper.h diff --git a/examples/DSP module plugin demo/Builds/MacOSX/DSPModulePluginDemo.entitlements b/examples/DSP module plugin demo/Builds/MacOSX/DSPModulePluginDemo.entitlements new file mode 100644 index 0000000000..852fa1a472 --- /dev/null +++ b/examples/DSP module plugin demo/Builds/MacOSX/DSPModulePluginDemo.entitlements @@ -0,0 +1,8 @@ + + + + + com.apple.security.app-sandbox + + + diff --git a/examples/DSP module plugin demo/Builds/MacOSX/DSPModulePluginDemo.xcodeproj/project.pbxproj b/examples/DSP module plugin demo/Builds/MacOSX/DSPModulePluginDemo.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..6d574f9047 --- /dev/null +++ b/examples/DSP module plugin demo/Builds/MacOSX/DSPModulePluginDemo.xcodeproj/project.pbxproj @@ -0,0 +1,679 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + + EDB68B89E16529101194A0A4 = {isa = PBXBuildFile; fileRef = 6CC9EC13527CA14B03FA973B; }; + 444898578DA3760506D55E5B = {isa = PBXBuildFile; fileRef = 43DFAB124163C15213BBED07; }; + 4C054C8C6DB0751716AF8F80 = {isa = PBXBuildFile; fileRef = 6ECB35361F65C478D40C1780; }; + DEBD1408904E7C52BE199084 = {isa = PBXBuildFile; fileRef = 5851FAC11BC7A9A306A2115C; }; + 6596E23ECE311FC63B07DFAA = {isa = PBXBuildFile; fileRef = E58D5EEF08C7014703A0025B; }; + 2ABC00C7F532C21E5FDA2EBD = {isa = PBXBuildFile; fileRef = 3E607F405463C9E5656553EA; }; + 87BD3AB6AFB4819D64F011A2 = {isa = PBXBuildFile; fileRef = CED87A27DFF9575256FA7F5D; }; + 0E359D9EFCDFA63B843DE0C2 = {isa = PBXBuildFile; fileRef = 961C9B885DA3E0AC3464BCBD; }; + 1FBDD61ADD3B67D7E94D2C95 = {isa = PBXBuildFile; fileRef = A0F1864B0D219515BB5BA270; }; + A239D02E1CABB075C80D23B9 = {isa = PBXBuildFile; fileRef = 7C5CDE08C8EF4BE709270ED5; }; + 257DD5660A6B8CCB9784617E = {isa = PBXBuildFile; fileRef = E0AE5F7D22223F02540452FE; }; + C7F16E40B8E83F4038BD10D6 = {isa = PBXBuildFile; fileRef = D46485171028FF024E570B2A; }; + D0BB7840C18F67F9C7E21811 = {isa = PBXBuildFile; fileRef = 13F6C42DE0053694E4C16231; }; + 748601DED26630B85FA93327 = {isa = PBXBuildFile; fileRef = CED27593A089D97172AF186E; }; + 1DA63B876AEC03C50379E3BC = {isa = PBXBuildFile; fileRef = 1058D4DF18DD28E4D34AFF49; }; + E9C2696E4C9907723B17EB25 = {isa = PBXBuildFile; fileRef = 1BB4D4A89E99028C66D175F2; }; + 9E69DAE32EA636F9BAA58181 = {isa = PBXBuildFile; fileRef = 348B8DA18713BD21D6ADAE63; }; + 05D62221011CE11F0EC48591 = {isa = PBXBuildFile; fileRef = A9D05DC31D5B6B6255CDF85B; }; + 927A6A221F818117698AD048 = {isa = PBXBuildFile; fileRef = 0F5B65B42AC0D88131ACC435; }; + BED5197DA3176BB20A80D711 = {isa = PBXBuildFile; fileRef = DF4F34D5DEEF6B023422DC18; }; + CB479EF124D7305444491E98 = {isa = PBXBuildFile; fileRef = 32359700BC19E4FCBED60398; }; + 516591F081614C232FE9990E = {isa = PBXBuildFile; fileRef = D6D9D70E4A574D02F901E982; }; + B5A08790A38DC8E0B9DC4132 = {isa = PBXBuildFile; fileRef = 95D8D4D49997206F87816098; }; + DE739D9010D85316C5DABC26 = {isa = PBXBuildFile; fileRef = 3E7A2DBFD549B9D8E8747A7A; }; + CB3AC1303FE7F890C4AED32B = {isa = PBXBuildFile; fileRef = A56A6886B40C25E08CB7EA87; }; + 78F40BA593BCC498B936A808 = {isa = PBXBuildFile; fileRef = 01006E935DD0BAE532C3ECAE; }; + 7F45F27A4282DF9ED190834D = {isa = PBXBuildFile; fileRef = 183A4963B01DB1CB60C02971; }; + 0FF7A9FB4ECA5A6BA40868EA = {isa = PBXBuildFile; fileRef = 0F638FDE546751C4EB3FB2BF; }; + 000A2BFBF2ADC71938465E4A = {isa = PBXBuildFile; fileRef = 99FF6F396344C15B8AB103C0; }; + F83EC007146888DD314A4C71 = {isa = PBXBuildFile; fileRef = AEA7AAC6D764CAF805483271; }; + 2EA689D1CE72AB071F8D5A26 = {isa = PBXBuildFile; fileRef = 55E7F532F9F2660BBF47D150; }; + DCA6DDBF80EA443E44139709 = {isa = PBXBuildFile; fileRef = FBB2326F27D1F4F349C0A04F; }; + FE020287936CFBD09F51C6D7 = {isa = PBXBuildFile; fileRef = 02EC6ECB86A01FABB59B01C9; }; + 933258C44D57B72BE234248B = {isa = PBXBuildFile; fileRef = 105DA46CB4D1468AC889FB49; }; + 920A613B41815B0659D3D851 = {isa = PBXBuildFile; fileRef = 06B761F42468B7D59BCC5307; }; + A38EE77F912D1AA461B859C0 = {isa = PBXBuildFile; fileRef = 38192C77EC1E7712E62C0989; }; + B1F00C0BE7281A68684BB822 = {isa = PBXBuildFile; fileRef = F5C43F6E5C283F90F2A4F340; }; + 4544BD26C1FE23E239034166 = {isa = PBXBuildFile; fileRef = 05DBBF5F3485C2E544373865; }; + 038A9D596278FB9E7E89413B = {isa = PBXBuildFile; fileRef = B6B4A73354585A2325159041; }; + 70A80033020B14A288495FAE = {isa = PBXBuildFile; fileRef = 4EDB66BD6044844FD91AB454; }; + 86F6C3A56C105C073BB092F1 = {isa = PBXBuildFile; fileRef = DC55419EC248433D9DCEF2F6; }; + 01006E935DD0BAE532C3ECAE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_plugin_client_AU_1.mm"; path = "../../JuceLibraryCode/include_juce_audio_plugin_client_AU_1.mm"; sourceTree = "SOURCE_ROOT"; }; + 02EC6ECB86A01FABB59B01C9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_utils.mm"; path = "../../JuceLibraryCode/include_juce_audio_utils.mm"; sourceTree = "SOURCE_ROOT"; }; + 05DBBF5F3485C2E544373865 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_graphics.mm"; path = "../../JuceLibraryCode/include_juce_graphics.mm"; sourceTree = "SOURCE_ROOT"; }; + 06B761F42468B7D59BCC5307 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_data_structures.mm"; path = "../../JuceLibraryCode/include_juce_data_structures.mm"; sourceTree = "SOURCE_ROOT"; }; + 0F5B65B42AC0D88131ACC435 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = PluginProcessor.cpp; path = ../../Source/PluginProcessor.cpp; sourceTree = "SOURCE_ROOT"; }; + 0F638FDE546751C4EB3FB2BF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "include_juce_audio_plugin_client_Standalone.cpp"; path = "../../JuceLibraryCode/include_juce_audio_plugin_client_Standalone.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1058D4DF18DD28E4D34AFF49 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; + 105DA46CB4D1468AC889FB49 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_core.mm"; path = "../../JuceLibraryCode/include_juce_core.mm"; sourceTree = "SOURCE_ROOT"; }; + 13F6C42DE0053694E4C16231 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiscRecording.framework; path = System/Library/Frameworks/DiscRecording.framework; sourceTree = SDKROOT; }; + 175BA4CF878E442535FB700F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../JuceLibraryCode/JuceHeader.h; sourceTree = "SOURCE_ROOT"; }; + 183A4963B01DB1CB60C02971 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_plugin_client_AU_2.mm"; path = "../../JuceLibraryCode/include_juce_audio_plugin_client_AU_2.mm"; sourceTree = "SOURCE_ROOT"; }; + 1961FC5FD545D75001FDABD3 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_basics"; path = "../../../../modules/juce_audio_basics"; sourceTree = "SOURCE_ROOT"; }; + 1BB4D4A89E99028C66D175F2 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + 22CFFED16B13CD30771E2042 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_devices"; path = "../../../../modules/juce_audio_devices"; sourceTree = "SOURCE_ROOT"; }; + 2DB7D022F0784299386FBF30 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_processors"; path = "../../../../modules/juce_audio_processors"; sourceTree = "SOURCE_ROOT"; }; + 32359700BC19E4FCBED60398 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = BinaryData.cpp; path = ../../JuceLibraryCode/BinaryData.cpp; sourceTree = "SOURCE_ROOT"; }; + 348B8DA18713BD21D6ADAE63 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; + 3538AFF193BB2650DA9E6A3E = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Info-Standalone_Plugin.plist"; path = "Info-Standalone_Plugin.plist"; sourceTree = "SOURCE_ROOT"; }; + 35DEEA5D22BEC9812D2EDD66 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_dsp"; path = "../../../../modules/juce_dsp"; sourceTree = "SOURCE_ROOT"; }; + 38192C77EC1E7712E62C0989 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_dsp.mm"; path = "../../JuceLibraryCode/include_juce_dsp.mm"; sourceTree = "SOURCE_ROOT"; }; + 3B97D675E3CC2129870F0A81 = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Info-VST.plist"; path = "Info-VST.plist"; sourceTree = "SOURCE_ROOT"; }; + 3E607F405463C9E5656553EA = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + 3E7A2DBFD549B9D8E8747A7A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_formats.mm"; path = "../../JuceLibraryCode/include_juce_audio_formats.mm"; sourceTree = "SOURCE_ROOT"; }; + 40A7CEE51A879AFBA929BD39 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_utils"; path = "../../../../modules/juce_audio_utils"; sourceTree = "SOURCE_ROOT"; }; + 4EDB66BD6044844FD91AB454 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_gui_extra.mm"; path = "../../JuceLibraryCode/include_juce_gui_extra.mm"; sourceTree = "SOURCE_ROOT"; }; + 55E7F532F9F2660BBF47D150 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "include_juce_audio_plugin_client_VST2.cpp"; path = "../../JuceLibraryCode/include_juce_audio_plugin_client_VST2.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6CC9EC13527CA14B03FA973B = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "DSP module plugin demo.vst"; sourceTree = "BUILT_PRODUCTS_DIR"; }; + 43DFAB124163C15213BBED07 = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "DSP module plugin demo.component"; sourceTree = "BUILT_PRODUCTS_DIR"; }; + 6ECB35361F65C478D40C1780 = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "DSP module plugin demo.app"; sourceTree = "BUILT_PRODUCTS_DIR"; }; + 5851FAC11BC7A9A306A2115C = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libDSP module plugin demo.a"; sourceTree = "BUILT_PRODUCTS_DIR"; }; + 65FB47819815828831ED5492 = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = DSPModulePluginDemo.entitlements; path = DSPModulePluginDemo.entitlements; sourceTree = "SOURCE_ROOT"; }; + 742DAF72957E8B96BE78BD7F = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_gui_basics"; path = "../../../../modules/juce_gui_basics"; sourceTree = "SOURCE_ROOT"; }; + 7945CE0DAA79F5F4D50BF4D2 = {isa = PBXFileReference; lastKnownFileType = file.wav; name = Impulse1.wav; path = ../../Resources/Impulse1.wav; sourceTree = "SOURCE_ROOT"; }; + 7C5CDE08C8EF4BE709270ED5 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; + 813F49904A02FC0625EF4E44 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = BinaryData.h; path = ../../JuceLibraryCode/BinaryData.h; sourceTree = "SOURCE_ROOT"; }; + 81F4B89FC6E02F3735D8D9C5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = ../../JuceLibraryCode/AppConfig.h; sourceTree = "SOURCE_ROOT"; }; + 84417BEB644A6A51D0076276 = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Info-AU.plist"; path = "Info-AU.plist"; sourceTree = "SOURCE_ROOT"; }; + 89678491393C6CB9D36167E3 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_core"; path = "../../../../modules/juce_core"; sourceTree = "SOURCE_ROOT"; }; + 8AD3462560ED6DE5361E9542 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_data_structures"; path = "../../../../modules/juce_data_structures"; sourceTree = "SOURCE_ROOT"; }; + 921C5C19C616CFA7AA257E16 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_formats"; path = "../../../../modules/juce_audio_formats"; sourceTree = "SOURCE_ROOT"; }; + 95D8D4D49997206F87816098 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_devices.mm"; path = "../../JuceLibraryCode/include_juce_audio_devices.mm"; sourceTree = "SOURCE_ROOT"; }; + 961C9B885DA3E0AC3464BCBD = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; }; + 99FF6F396344C15B8AB103C0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "include_juce_audio_plugin_client_utils.cpp"; path = "../../JuceLibraryCode/include_juce_audio_plugin_client_utils.cpp"; sourceTree = "SOURCE_ROOT"; }; + A0F1864B0D219515BB5BA270 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; + A56A6886B40C25E08CB7EA87 = {isa = PBXFileReference; lastKnownFileType = file.r; name = "include_juce_audio_plugin_client_AU.r"; path = "../../JuceLibraryCode/include_juce_audio_plugin_client_AU.r"; sourceTree = "SOURCE_ROOT"; }; + A7EC6E77560A46FE389C2256 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_graphics"; path = "../../../../modules/juce_graphics"; sourceTree = "SOURCE_ROOT"; }; + A9D05DC31D5B6B6255CDF85B = {isa = PBXFileReference; lastKnownFileType = file.nib; name = RecentFilesMenuTemplate.nib; path = RecentFilesMenuTemplate.nib; sourceTree = "SOURCE_ROOT"; }; + AD28A9899D1537C2FFA071C0 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_opengl"; path = "../../../../modules/juce_opengl"; sourceTree = "SOURCE_ROOT"; }; + AEA7AAC6D764CAF805483271 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_plugin_client_VST_utils.mm"; path = "../../JuceLibraryCode/include_juce_audio_plugin_client_VST_utils.mm"; sourceTree = "SOURCE_ROOT"; }; + B6B4A73354585A2325159041 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_gui_basics.mm"; path = "../../JuceLibraryCode/include_juce_gui_basics.mm"; sourceTree = "SOURCE_ROOT"; }; + B93057A70F9B231A4F4CD42C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PluginEditor.h; path = ../../Source/PluginEditor.h; sourceTree = "SOURCE_ROOT"; }; + BFDD5EE256AD2001BFA5C375 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_gui_extra"; path = "../../../../modules/juce_gui_extra"; sourceTree = "SOURCE_ROOT"; }; + CED27593A089D97172AF186E = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; + CED87A27DFF9575256FA7F5D = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = System/Library/Frameworks/AudioUnit.framework; sourceTree = SDKROOT; }; + D220A9ED0773C36334342CA8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PluginProcessor.h; path = ../../Source/PluginProcessor.h; sourceTree = "SOURCE_ROOT"; }; + D46485171028FF024E570B2A = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; }; + D6D9D70E4A574D02F901E982 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_basics.mm"; path = "../../JuceLibraryCode/include_juce_audio_basics.mm"; sourceTree = "SOURCE_ROOT"; }; + D7A3488AAC47DF0000AA7FC2 = {isa = PBXFileReference; lastKnownFileType = file.wav; name = Impulse2.wav; path = ../../Resources/Impulse2.wav; sourceTree = "SOURCE_ROOT"; }; + DB8B92EA1876CF4B89BA4B96 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_events"; path = "../../../../modules/juce_events"; sourceTree = "SOURCE_ROOT"; }; + DC55419EC248433D9DCEF2F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_opengl.mm"; path = "../../JuceLibraryCode/include_juce_opengl.mm"; sourceTree = "SOURCE_ROOT"; }; + DF4F34D5DEEF6B023422DC18 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = PluginEditor.cpp; path = ../../Source/PluginEditor.cpp; sourceTree = "SOURCE_ROOT"; }; + E0AE5F7D22223F02540452FE = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; }; + E58D5EEF08C7014703A0025B = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; + F5023452DDFA08BAFC7D3865 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_plugin_client"; path = "../../../../modules/juce_audio_plugin_client"; sourceTree = "SOURCE_ROOT"; }; + F5C43F6E5C283F90F2A4F340 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_events.mm"; path = "../../JuceLibraryCode/include_juce_events.mm"; sourceTree = "SOURCE_ROOT"; }; + FBB2326F27D1F4F349C0A04F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_processors.mm"; path = "../../JuceLibraryCode/include_juce_audio_processors.mm"; sourceTree = "SOURCE_ROOT"; }; + AB4CF2E0A98B1393AF7AEE87 = {isa = PBXGroup; children = ( + 7945CE0DAA79F5F4D50BF4D2, + D7A3488AAC47DF0000AA7FC2, ); name = Resources; sourceTree = ""; }; + 8D6005B67FE4F76C89EF6DC0 = {isa = PBXGroup; children = ( + 0F5B65B42AC0D88131ACC435, + D220A9ED0773C36334342CA8, + DF4F34D5DEEF6B023422DC18, + B93057A70F9B231A4F4CD42C, ); name = Source; sourceTree = ""; }; + C851023CC5ED726A8D2CC932 = {isa = PBXGroup; children = ( + AB4CF2E0A98B1393AF7AEE87, + 8D6005B67FE4F76C89EF6DC0, ); name = DSPModulePluginDemo; sourceTree = ""; }; + E8878A4C834C923D0EA1C066 = {isa = PBXGroup; children = ( + 1961FC5FD545D75001FDABD3, + 22CFFED16B13CD30771E2042, + 921C5C19C616CFA7AA257E16, + F5023452DDFA08BAFC7D3865, + 2DB7D022F0784299386FBF30, + 40A7CEE51A879AFBA929BD39, + 89678491393C6CB9D36167E3, + 8AD3462560ED6DE5361E9542, + 35DEEA5D22BEC9812D2EDD66, + DB8B92EA1876CF4B89BA4B96, + A7EC6E77560A46FE389C2256, + 742DAF72957E8B96BE78BD7F, + BFDD5EE256AD2001BFA5C375, + AD28A9899D1537C2FFA071C0, ); name = "Juce Modules"; sourceTree = ""; }; + CCCFBE2627561A7372430459 = {isa = PBXGroup; children = ( + 81F4B89FC6E02F3735D8D9C5, + 32359700BC19E4FCBED60398, + 813F49904A02FC0625EF4E44, + D6D9D70E4A574D02F901E982, + 95D8D4D49997206F87816098, + 3E7A2DBFD549B9D8E8747A7A, + A56A6886B40C25E08CB7EA87, + 01006E935DD0BAE532C3ECAE, + 183A4963B01DB1CB60C02971, + 0F638FDE546751C4EB3FB2BF, + 99FF6F396344C15B8AB103C0, + AEA7AAC6D764CAF805483271, + 55E7F532F9F2660BBF47D150, + FBB2326F27D1F4F349C0A04F, + 02EC6ECB86A01FABB59B01C9, + 105DA46CB4D1468AC889FB49, + 06B761F42468B7D59BCC5307, + 38192C77EC1E7712E62C0989, + F5C43F6E5C283F90F2A4F340, + 05DBBF5F3485C2E544373865, + B6B4A73354585A2325159041, + 4EDB66BD6044844FD91AB454, + DC55419EC248433D9DCEF2F6, + 175BA4CF878E442535FB700F, ); name = "Juce Library Code"; sourceTree = ""; }; + 2C63AEF93C2B69C8D277B2E9 = {isa = PBXGroup; children = ( + 3B97D675E3CC2129870F0A81, + 84417BEB644A6A51D0076276, + 3538AFF193BB2650DA9E6A3E, + A9D05DC31D5B6B6255CDF85B, ); name = Resources; sourceTree = ""; }; + 9D498CA55622293EBF2B5541 = {isa = PBXGroup; children = ( + E58D5EEF08C7014703A0025B, + 3E607F405463C9E5656553EA, + CED87A27DFF9575256FA7F5D, + 961C9B885DA3E0AC3464BCBD, + A0F1864B0D219515BB5BA270, + 7C5CDE08C8EF4BE709270ED5, + E0AE5F7D22223F02540452FE, + D46485171028FF024E570B2A, + 13F6C42DE0053694E4C16231, + CED27593A089D97172AF186E, + 1058D4DF18DD28E4D34AFF49, + 1BB4D4A89E99028C66D175F2, + 348B8DA18713BD21D6ADAE63, ); name = Frameworks; sourceTree = ""; }; + ECAB40FE9EE9DADDD1A046A7 = {isa = PBXGroup; children = ( + 6CC9EC13527CA14B03FA973B, + 43DFAB124163C15213BBED07, + 6ECB35361F65C478D40C1780, + 5851FAC11BC7A9A306A2115C, ); name = Products; sourceTree = ""; }; + C9207BAC9FE8B3F8C8FFA4AF = {isa = PBXGroup; children = ( + 65FB47819815828831ED5492, + C851023CC5ED726A8D2CC932, + E8878A4C834C923D0EA1C066, + CCCFBE2627561A7372430459, + 2C63AEF93C2B69C8D277B2E9, + 9D498CA55622293EBF2B5541, + ECAB40FE9EE9DADDD1A046A7, ); name = Source; sourceTree = ""; }; + F9CE5A87AC1D6AC6825FFFC3 = {isa = XCBuildConfiguration; buildSettings = { }; name = Debug; }; + A013BD29D257623287C95474 = {isa = XCBuildConfiguration; buildSettings = { }; name = Release; }; + CFDBE7ED06E755632B329B37 = {isa = XCBuildConfiguration; buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_LINK_OBJC_RUNTIME = NO; + COMBINE_HIDPI_IMAGES = YES; + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; + COPY_PHASE_STRIP = NO; + DEPLOYMENT_LOCATION = YES; + DSTROOT = /; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_DEBUG=1", + "DEBUG=1", + "JUCER_XCODE_MAC_F6D2F4CF=1", + "JUCE_APP_VERSION=1.0.0", + "JUCE_APP_VERSION_HEX=0x10000", + "JucePlugin_Build_VST=1", + "JucePlugin_Build_VST3=0", + "JucePlugin_Build_AU=0", + "JucePlugin_Build_AUv3=0", + "JucePlugin_Build_RTAS=0", + "JucePlugin_Build_AAX=0", + "JucePlugin_Build_Standalone=0", ); + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GENERATE_PKGINFO_FILE = YES; + HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "../../../../modules/juce_audio_plugin_client", "$(inherited)"); + INFOPLIST_FILE = Info-VST.plist; + INFOPLIST_PREPROCESS = NO; + INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/VST/"; + LIBRARY_STYLE = Bundle; + MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; + OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow -Wno-missing-field-initializers -Wshadow -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion -Wextra-semi"; + OTHER_LDFLAGS = "-bundle -lDSP\\ module\\ plugin\\ demo"; + PRODUCT_BUNDLE_IDENTIFIER = com.ROLI.DSPmoduleplugindemo; + SDKROOT_ppc = macosx10.5; + USE_HEADERMAP = NO; + WRAPPER_EXTENSION = vst; }; name = Debug; }; + F344384C78BEEC5F9C53B197 = {isa = XCBuildConfiguration; buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_LINK_OBJC_RUNTIME = NO; + COMBINE_HIDPI_IMAGES = YES; + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; + DEAD_CODE_STRIPPING = YES; + DEPLOYMENT_LOCATION = YES; + DSTROOT = /; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_NDEBUG=1", + "NDEBUG=1", + "JUCER_XCODE_MAC_F6D2F4CF=1", + "JUCE_APP_VERSION=1.0.0", + "JUCE_APP_VERSION_HEX=0x10000", + "JucePlugin_Build_VST=1", + "JucePlugin_Build_VST3=0", + "JucePlugin_Build_AU=0", + "JucePlugin_Build_AUv3=0", + "JucePlugin_Build_RTAS=0", + "JucePlugin_Build_AAX=0", + "JucePlugin_Build_Standalone=0", ); + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GENERATE_PKGINFO_FILE = YES; + HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "../../../../modules/juce_audio_plugin_client", "$(inherited)"); + INFOPLIST_FILE = Info-VST.plist; + INFOPLIST_PREPROCESS = NO; + INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/VST/"; + LIBRARY_STYLE = Bundle; + MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; + OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow -Wno-missing-field-initializers -Wshadow -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion -Wextra-semi"; + OTHER_LDFLAGS = "-bundle -lDSP\\ module\\ plugin\\ demo"; + PRODUCT_BUNDLE_IDENTIFIER = com.ROLI.DSPmoduleplugindemo; + SDKROOT_ppc = macosx10.5; + USE_HEADERMAP = NO; + WRAPPER_EXTENSION = vst; }; name = Release; }; + 8BB96CF4AA358540ABE3E27C = {isa = XCBuildConfiguration; buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_LINK_OBJC_RUNTIME = NO; + COMBINE_HIDPI_IMAGES = YES; + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; + COPY_PHASE_STRIP = NO; + DEPLOYMENT_LOCATION = YES; + DSTROOT = /; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_DEBUG=1", + "DEBUG=1", + "JUCER_XCODE_MAC_F6D2F4CF=1", + "JUCE_APP_VERSION=1.0.0", + "JUCE_APP_VERSION_HEX=0x10000", + "JucePlugin_Build_VST=0", + "JucePlugin_Build_VST3=0", + "JucePlugin_Build_AU=1", + "JucePlugin_Build_AUv3=0", + "JucePlugin_Build_RTAS=0", + "JucePlugin_Build_AAX=0", + "JucePlugin_Build_Standalone=0", ); + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GENERATE_PKGINFO_FILE = YES; + HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "../../../../modules/juce_audio_plugin_client", "$(inherited)"); + INFOPLIST_FILE = Info-AU.plist; + INFOPLIST_PREPROCESS = NO; + INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/"; + LIBRARY_STYLE = Bundle; + MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; + OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow -Wno-missing-field-initializers -Wshadow -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion -Wextra-semi"; + OTHER_LDFLAGS = "-bundle -lDSP\\ module\\ plugin\\ demo"; + OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -d ppc64_$ppc64 -d x86_64_$x86_64 -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers -I \"$(DEVELOPER_DIR)/Extras/CoreAudio/AudioUnits/AUPublic/AUBase\""; + PRODUCT_BUNDLE_IDENTIFIER = com.ROLI.DSPmoduleplugindemo; + SDKROOT_ppc = macosx10.5; + USE_HEADERMAP = NO; + WRAPPER_EXTENSION = component; }; name = Debug; }; + 2A0CA9707CB82EB2045B5619 = {isa = XCBuildConfiguration; buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_LINK_OBJC_RUNTIME = NO; + COMBINE_HIDPI_IMAGES = YES; + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; + DEAD_CODE_STRIPPING = YES; + DEPLOYMENT_LOCATION = YES; + DSTROOT = /; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_NDEBUG=1", + "NDEBUG=1", + "JUCER_XCODE_MAC_F6D2F4CF=1", + "JUCE_APP_VERSION=1.0.0", + "JUCE_APP_VERSION_HEX=0x10000", + "JucePlugin_Build_VST=0", + "JucePlugin_Build_VST3=0", + "JucePlugin_Build_AU=1", + "JucePlugin_Build_AUv3=0", + "JucePlugin_Build_RTAS=0", + "JucePlugin_Build_AAX=0", + "JucePlugin_Build_Standalone=0", ); + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GENERATE_PKGINFO_FILE = YES; + HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "../../../../modules/juce_audio_plugin_client", "$(inherited)"); + INFOPLIST_FILE = Info-AU.plist; + INFOPLIST_PREPROCESS = NO; + INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/"; + LIBRARY_STYLE = Bundle; + MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; + OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow -Wno-missing-field-initializers -Wshadow -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion -Wextra-semi"; + OTHER_LDFLAGS = "-bundle -lDSP\\ module\\ plugin\\ demo"; + OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -d ppc64_$ppc64 -d x86_64_$x86_64 -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers -I \"$(DEVELOPER_DIR)/Extras/CoreAudio/AudioUnits/AUPublic/AUBase\""; + PRODUCT_BUNDLE_IDENTIFIER = com.ROLI.DSPmoduleplugindemo; + SDKROOT_ppc = macosx10.5; + USE_HEADERMAP = NO; + WRAPPER_EXTENSION = component; }; name = Release; }; + 66EB795B3CC4F85E60495050 = {isa = XCBuildConfiguration; buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_LINK_OBJC_RUNTIME = NO; + COMBINE_HIDPI_IMAGES = YES; + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_DEBUG=1", + "DEBUG=1", + "JUCER_XCODE_MAC_F6D2F4CF=1", + "JUCE_APP_VERSION=1.0.0", + "JUCE_APP_VERSION_HEX=0x10000", + "JucePlugin_Build_VST=0", + "JucePlugin_Build_VST3=0", + "JucePlugin_Build_AU=0", + "JucePlugin_Build_AUv3=0", + "JucePlugin_Build_RTAS=0", + "JucePlugin_Build_AAX=0", + "JucePlugin_Build_Standalone=1", ); + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "../../../../modules/juce_audio_plugin_client", "$(inherited)"); + INFOPLIST_FILE = Info-Standalone_Plugin.plist; + INFOPLIST_PREPROCESS = NO; + MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; + OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow -Wno-missing-field-initializers -Wshadow -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion -Wextra-semi"; + OTHER_LDFLAGS = "-lDSP\\ module\\ plugin\\ demo"; + PRODUCT_BUNDLE_IDENTIFIER = com.ROLI.DSPmoduleplugindemo; + SDKROOT_ppc = macosx10.5; + USE_HEADERMAP = NO; }; name = Debug; }; + 54BC3EAA59E4955725ED03DA = {isa = XCBuildConfiguration; buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_LINK_OBJC_RUNTIME = NO; + COMBINE_HIDPI_IMAGES = YES; + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; + DEAD_CODE_STRIPPING = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_NDEBUG=1", + "NDEBUG=1", + "JUCER_XCODE_MAC_F6D2F4CF=1", + "JUCE_APP_VERSION=1.0.0", + "JUCE_APP_VERSION_HEX=0x10000", + "JucePlugin_Build_VST=0", + "JucePlugin_Build_VST3=0", + "JucePlugin_Build_AU=0", + "JucePlugin_Build_AUv3=0", + "JucePlugin_Build_RTAS=0", + "JucePlugin_Build_AAX=0", + "JucePlugin_Build_Standalone=1", ); + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "../../../../modules/juce_audio_plugin_client", "$(inherited)"); + INFOPLIST_FILE = Info-Standalone_Plugin.plist; + INFOPLIST_PREPROCESS = NO; + MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; + OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow -Wno-missing-field-initializers -Wshadow -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion -Wextra-semi"; + OTHER_LDFLAGS = "-lDSP\\ module\\ plugin\\ demo"; + PRODUCT_BUNDLE_IDENTIFIER = com.ROLI.DSPmoduleplugindemo; + SDKROOT_ppc = macosx10.5; + USE_HEADERMAP = NO; }; name = Release; }; + 3D3FADFD8BA30E7DBB4BA7B3 = {isa = XCBuildConfiguration; buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_LINK_OBJC_RUNTIME = NO; + COMBINE_HIDPI_IMAGES = YES; + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_DEBUG=1", + "DEBUG=1", + "JUCER_XCODE_MAC_F6D2F4CF=1", + "JUCE_APP_VERSION=1.0.0", + "JUCE_APP_VERSION_HEX=0x10000", + "JucePlugin_Build_VST=1", + "JucePlugin_Build_VST3=0", + "JucePlugin_Build_AU=1", + "JucePlugin_Build_AUv3=0", + "JucePlugin_Build_RTAS=0", + "JucePlugin_Build_AAX=0", + "JucePlugin_Build_Standalone=1", + "JUCE_SHARED_CODE=1", ); + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "../../../../modules/juce_audio_plugin_client", "$(inherited)"); + INSTALL_PATH = "@executable_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; + OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow -Wno-missing-field-initializers -Wshadow -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion -Wextra-semi"; + PRODUCT_BUNDLE_IDENTIFIER = com.ROLI.DSPmoduleplugindemo; + SDKROOT_ppc = macosx10.5; + USE_HEADERMAP = NO; }; name = Debug; }; + A7DF7489BC7955A2A6815394 = {isa = XCBuildConfiguration; buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_LINK_OBJC_RUNTIME = NO; + COMBINE_HIDPI_IMAGES = YES; + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; + DEAD_CODE_STRIPPING = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_NDEBUG=1", + "NDEBUG=1", + "JUCER_XCODE_MAC_F6D2F4CF=1", + "JUCE_APP_VERSION=1.0.0", + "JUCE_APP_VERSION_HEX=0x10000", + "JucePlugin_Build_VST=1", + "JucePlugin_Build_VST3=0", + "JucePlugin_Build_AU=1", + "JucePlugin_Build_AUv3=0", + "JucePlugin_Build_RTAS=0", + "JucePlugin_Build_AAX=0", + "JucePlugin_Build_Standalone=1", + "JUCE_SHARED_CODE=1", ); + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "../../../../modules/juce_audio_plugin_client", "$(inherited)"); + INSTALL_PATH = "@executable_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; + OTHER_CPLUSPLUSFLAGS = "-Wall -Wshadow -Wno-missing-field-initializers -Wshadow -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion -Wextra-semi"; + PRODUCT_BUNDLE_IDENTIFIER = com.ROLI.DSPmoduleplugindemo; + SDKROOT_ppc = macosx10.5; + USE_HEADERMAP = NO; }; name = Release; }; + 9CDD4C77C3A08B4990BC0173 = {isa = XCBuildConfiguration; buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + DEBUG_INFORMATION_FORMAT = "dwarf"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = c11; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + GCC_MODEL_TUNING = G5; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; + GCC_WARN_MISSING_PARENTHESES = YES; + GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; + GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "DSP module plugin demo"; + WARNING_CFLAGS = -Wreorder; + ZERO_LINK = NO; }; name = Debug; }; + D5B14CD4DF04FB7FA7D62EDA = {isa = XCBuildConfiguration; buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + DEBUG_INFORMATION_FORMAT = "dwarf"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = c11; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + GCC_MODEL_TUNING = G5; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; + GCC_WARN_MISSING_PARENTHESES = YES; + GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; + GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PRODUCT_NAME = "DSP module plugin demo"; + WARNING_CFLAGS = -Wreorder; + ZERO_LINK = NO; }; name = Release; }; + FD6EC8A7AAFB4FCD5BEE9529 = {isa = PBXTargetDependency; target = FECB9DBD99B278AD9BFEAA6E; }; + 29E1EA165EBEEA6C506304A1 = {isa = PBXTargetDependency; target = ED8E2267C127411F4D89FF15; }; + 24FFC83F0C1533835CA51C67 = {isa = PBXTargetDependency; target = 00F5BDE9EF0B2F51F43FF2EE; }; + 05CA232616E493E4B3BC344F = {isa = PBXTargetDependency; target = A30546CFCA3EA66EFAAC54C5; }; + 6AFDEF8F97D7784BB718E1E3 = {isa = XCConfigurationList; buildConfigurations = ( + 9CDD4C77C3A08B4990BC0173, + D5B14CD4DF04FB7FA7D62EDA, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + E813A8E5DE9A11F5A7B17321 = {isa = XCConfigurationList; buildConfigurations = ( + F9CE5A87AC1D6AC6825FFFC3, + A013BD29D257623287C95474, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + B3AD49039F07F0B263CB1277 = {isa = PBXAggregateTarget; buildConfigurationList = E813A8E5DE9A11F5A7B17321; buildPhases = ( ); buildRules = ( ); dependencies = ( + FD6EC8A7AAFB4FCD5BEE9529, + 29E1EA165EBEEA6C506304A1, + 24FFC83F0C1533835CA51C67, + 05CA232616E493E4B3BC344F, ); name = "DSPModulePluginDemo - All"; productName = DSPModulePluginDemo; }; + 88CCCF7D79E7FF07F4D94E1A = {isa = XCConfigurationList; buildConfigurations = ( + CFDBE7ED06E755632B329B37, + F344384C78BEEC5F9C53B197, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + C2DCB64E8618559FB4E257E6 = {isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 05D62221011CE11F0EC48591, ); runOnlyForDeploymentPostprocessing = 0; }; + E36D69035557E1349C76BB98 = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 2EA689D1CE72AB071F8D5A26, ); runOnlyForDeploymentPostprocessing = 0; }; + 28352D0B5FDD56B853CC43BA = {isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 6596E23ECE311FC63B07DFAA, + 2ABC00C7F532C21E5FDA2EBD, + 0E359D9EFCDFA63B843DE0C2, + 1FBDD61ADD3B67D7E94D2C95, + A239D02E1CABB075C80D23B9, + C7F16E40B8E83F4038BD10D6, + D0BB7840C18F67F9C7E21811, + 748601DED26630B85FA93327, + 1DA63B876AEC03C50379E3BC, + E9C2696E4C9907723B17EB25, + 9E69DAE32EA636F9BAA58181, ); runOnlyForDeploymentPostprocessing = 0; }; + FECB9DBD99B278AD9BFEAA6E = {isa = PBXNativeTarget; buildConfigurationList = 88CCCF7D79E7FF07F4D94E1A; buildPhases = ( + C2DCB64E8618559FB4E257E6, + E36D69035557E1349C76BB98, + 28352D0B5FDD56B853CC43BA, ); buildRules = ( ); dependencies = ( + 05CA232616E493E4B3BC344F, ); name = "DSPModulePluginDemo - VST"; productName = DSPModulePluginDemo; productReference = 6CC9EC13527CA14B03FA973B; productType = "com.apple.product-type.bundle"; }; + BD7ED9E3CC3A6F441DF9B550 = {isa = XCConfigurationList; buildConfigurations = ( + 8BB96CF4AA358540ABE3E27C, + 2A0CA9707CB82EB2045B5619, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + D444022A24952C640EBA355D = {isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 05D62221011CE11F0EC48591, ); runOnlyForDeploymentPostprocessing = 0; }; + 907266A7FE3ECFA84F56FAC5 = {isa = PBXRezBuildPhase; buildActionMask = 2147483647; files = ( + CB3AC1303FE7F890C4AED32B, ); runOnlyForDeploymentPostprocessing = 0; }; + B36B45CC66AEA2C4F08A08AB = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 78F40BA593BCC498B936A808, + 7F45F27A4282DF9ED190834D, ); runOnlyForDeploymentPostprocessing = 0; }; + 3CA1063589ED6073430CB0BF = {isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 6596E23ECE311FC63B07DFAA, + 2ABC00C7F532C21E5FDA2EBD, + 87BD3AB6AFB4819D64F011A2, + 0E359D9EFCDFA63B843DE0C2, + 1FBDD61ADD3B67D7E94D2C95, + A239D02E1CABB075C80D23B9, + 257DD5660A6B8CCB9784617E, + C7F16E40B8E83F4038BD10D6, + D0BB7840C18F67F9C7E21811, + 748601DED26630B85FA93327, + 1DA63B876AEC03C50379E3BC, + E9C2696E4C9907723B17EB25, + 9E69DAE32EA636F9BAA58181, ); runOnlyForDeploymentPostprocessing = 0; }; + ED8E2267C127411F4D89FF15 = {isa = PBXNativeTarget; buildConfigurationList = BD7ED9E3CC3A6F441DF9B550; buildPhases = ( + D444022A24952C640EBA355D, + 907266A7FE3ECFA84F56FAC5, + B36B45CC66AEA2C4F08A08AB, + 3CA1063589ED6073430CB0BF, ); buildRules = ( ); dependencies = ( + 05CA232616E493E4B3BC344F, ); name = "DSPModulePluginDemo - AU"; productName = DSPModulePluginDemo; productReference = 43DFAB124163C15213BBED07; productType = "com.apple.product-type.bundle"; }; + 125795818BDD0CE802472266 = {isa = XCConfigurationList; buildConfigurations = ( + 66EB795B3CC4F85E60495050, + 54BC3EAA59E4955725ED03DA, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + BC5A9DB5566D9C8A2973A8DD = {isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 05D62221011CE11F0EC48591, ); runOnlyForDeploymentPostprocessing = 0; }; + 195FF886C0D634AB555A015D = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 0FF7A9FB4ECA5A6BA40868EA, ); runOnlyForDeploymentPostprocessing = 0; }; + B265C137F30A5470CB8C7B2E = {isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 6596E23ECE311FC63B07DFAA, + 2ABC00C7F532C21E5FDA2EBD, + 0E359D9EFCDFA63B843DE0C2, + 1FBDD61ADD3B67D7E94D2C95, + A239D02E1CABB075C80D23B9, + C7F16E40B8E83F4038BD10D6, + D0BB7840C18F67F9C7E21811, + 748601DED26630B85FA93327, + 1DA63B876AEC03C50379E3BC, + E9C2696E4C9907723B17EB25, + 9E69DAE32EA636F9BAA58181, ); runOnlyForDeploymentPostprocessing = 0; }; + 00F5BDE9EF0B2F51F43FF2EE = {isa = PBXNativeTarget; buildConfigurationList = 125795818BDD0CE802472266; buildPhases = ( + BC5A9DB5566D9C8A2973A8DD, + 195FF886C0D634AB555A015D, + B265C137F30A5470CB8C7B2E, ); buildRules = ( ); dependencies = ( + 05CA232616E493E4B3BC344F, ); name = "DSPModulePluginDemo - Standalone Plugin"; productName = DSPModulePluginDemo; productReference = 6ECB35361F65C478D40C1780; productType = "com.apple.product-type.application"; }; + 79CC111AC4AEED4F1E0183D0 = {isa = XCConfigurationList; buildConfigurations = ( + 3D3FADFD8BA30E7DBB4BA7B3, + A7DF7489BC7955A2A6815394, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + 1A37B519984DDAC95B63EC0B = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 927A6A221F818117698AD048, + BED5197DA3176BB20A80D711, + CB479EF124D7305444491E98, + 516591F081614C232FE9990E, + B5A08790A38DC8E0B9DC4132, + DE739D9010D85316C5DABC26, + 000A2BFBF2ADC71938465E4A, + F83EC007146888DD314A4C71, + DCA6DDBF80EA443E44139709, + FE020287936CFBD09F51C6D7, + 933258C44D57B72BE234248B, + 920A613B41815B0659D3D851, + A38EE77F912D1AA461B859C0, + B1F00C0BE7281A68684BB822, + 4544BD26C1FE23E239034166, + 038A9D596278FB9E7E89413B, + 70A80033020B14A288495FAE, + 86F6C3A56C105C073BB092F1, ); runOnlyForDeploymentPostprocessing = 0; }; + A30546CFCA3EA66EFAAC54C5 = {isa = PBXNativeTarget; buildConfigurationList = 79CC111AC4AEED4F1E0183D0; buildPhases = ( + 1A37B519984DDAC95B63EC0B, ); buildRules = ( ); dependencies = ( ); name = "DSPModulePluginDemo - Shared Code"; productName = DSPModulePluginDemo; productReference = 5851FAC11BC7A9A306A2115C; productType = "com.apple.product-type.library.static"; }; + 9B15633865DEF3A67BBB1C13 = {isa = PBXProject; buildConfigurationList = 6AFDEF8F97D7784BB718E1E3; attributes = { LastUpgradeCheck = 0830; TargetAttributes = { B3AD49039F07F0B263CB1277 = { SystemCapabilities = {com.apple.ApplicationGroups.iOS = { enabled = 0; }; com.apple.InAppPurchase = { enabled = 0; }; com.apple.InterAppAudio = { enabled = 0; }; com.apple.Push = { enabled = 0; }; com.apple.Sandbox = { enabled = 0; }; }; };FECB9DBD99B278AD9BFEAA6E = { SystemCapabilities = {com.apple.ApplicationGroups.iOS = { enabled = 0; }; com.apple.InAppPurchase = { enabled = 0; }; com.apple.InterAppAudio = { enabled = 0; }; com.apple.Push = { enabled = 0; }; com.apple.Sandbox = { enabled = 0; }; }; };ED8E2267C127411F4D89FF15 = { SystemCapabilities = {com.apple.ApplicationGroups.iOS = { enabled = 0; }; com.apple.InAppPurchase = { enabled = 0; }; com.apple.InterAppAudio = { enabled = 0; }; com.apple.Push = { enabled = 0; }; com.apple.Sandbox = { enabled = 0; }; }; };00F5BDE9EF0B2F51F43FF2EE = { SystemCapabilities = {com.apple.ApplicationGroups.iOS = { enabled = 0; }; com.apple.InAppPurchase = { enabled = 0; }; com.apple.InterAppAudio = { enabled = 0; }; com.apple.Push = { enabled = 0; }; com.apple.Sandbox = { enabled = 0; }; }; };A30546CFCA3EA66EFAAC54C5 = { SystemCapabilities = {com.apple.ApplicationGroups.iOS = { enabled = 0; }; com.apple.InAppPurchase = { enabled = 0; }; com.apple.InterAppAudio = { enabled = 0; }; com.apple.Push = { enabled = 0; }; com.apple.Sandbox = { enabled = 0; }; }; }; }; }; compatibilityVersion = "Xcode 3.2"; hasScannedForEncodings = 0; mainGroup = C9207BAC9FE8B3F8C8FFA4AF; projectDirPath = ""; projectRoot = ""; targets = (B3AD49039F07F0B263CB1277, FECB9DBD99B278AD9BFEAA6E, ED8E2267C127411F4D89FF15, 00F5BDE9EF0B2F51F43FF2EE, A30546CFCA3EA66EFAAC54C5); }; + }; + rootObject = 9B15633865DEF3A67BBB1C13; +} diff --git a/examples/DSP module plugin demo/Builds/MacOSX/Info-AU.plist b/examples/DSP module plugin demo/Builds/MacOSX/Info-AU.plist new file mode 100644 index 0000000000..3b3eb42827 --- /dev/null +++ b/examples/DSP module plugin demo/Builds/MacOSX/Info-AU.plist @@ -0,0 +1,48 @@ + + + + + + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleName + DSPModulePluginDemo + CFBundleDisplayName + DSPModulePluginDemo + CFBundlePackageType + BNDL + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0.0 + CFBundleVersion + 1.0.0 + NSHumanReadableCopyright + ROLI Ltd. + NSHighResolutionCapable + + AudioComponents + + + name + ROLI Ltd.: DSP module plugin demo + description + DSP module plugin demo + factoryFunction + DSPmoduleplugindemoAUFactory + manufacturer + ROLI + type + aufx + subtype + Dmpd + version + 65536 + + + + diff --git a/examples/DSP module plugin demo/Builds/MacOSX/Info-Standalone_Plugin.plist b/examples/DSP module plugin demo/Builds/MacOSX/Info-Standalone_Plugin.plist new file mode 100644 index 0000000000..3049460ac4 --- /dev/null +++ b/examples/DSP module plugin demo/Builds/MacOSX/Info-Standalone_Plugin.plist @@ -0,0 +1,29 @@ + + + + + + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleName + DSPModulePluginDemo + CFBundleDisplayName + DSPModulePluginDemo + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0.0 + CFBundleVersion + 1.0.0 + NSHumanReadableCopyright + ROLI Ltd. + NSHighResolutionCapable + + + diff --git a/examples/DSP module plugin demo/Builds/MacOSX/Info-VST.plist b/examples/DSP module plugin demo/Builds/MacOSX/Info-VST.plist new file mode 100644 index 0000000000..09ccc89032 --- /dev/null +++ b/examples/DSP module plugin demo/Builds/MacOSX/Info-VST.plist @@ -0,0 +1,29 @@ + + + + + + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleName + DSPModulePluginDemo + CFBundleDisplayName + DSPModulePluginDemo + CFBundlePackageType + BNDL + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0.0 + CFBundleVersion + 1.0.0 + NSHumanReadableCopyright + ROLI Ltd. + NSHighResolutionCapable + + + diff --git a/examples/DSP module plugin demo/Builds/MacOSX/RecentFilesMenuTemplate.nib b/examples/DSP module plugin demo/Builds/MacOSX/RecentFilesMenuTemplate.nib new file mode 100644 index 0000000000000000000000000000000000000000..cec7f7c72bb7b287e0d493d53b0c487866ed6038 GIT binary patch literal 2842 zcmai03v3kE6}|7xy!Xa&z`M5b4;%lM&tmWg|D6Ew7aQ2M@%n>tur*!}uy{Yt&e%Yj z!V5{9M2(VAB|&M`7EBWqMJYm*Qk147ZPe1JqQtSlrHBH7I0T_IjZ#F@)_t?%Ee=It zN7~t$ckeyto_pVY+c)U<=|*AUI3U0vfeZvFDn(`M9m85!_l1J%9ihIhn%B^~9BSCR z#V203IgHR?JfM+%hit2XfdZM33l3Ne`LGO1p%PYu3*68FouI-XJOW|Z2HRl=JO&&d zhbQ3$coFu%%kV0U!U6axya8{)&*3Qi0*=GG@E)9mKfr1D5GLTya1k!SWw;8Tz^8Bv z#i9%}4`re(l#OywE^?sxXaQP?79l5EjPlSDRDhPXJAy-g|6d>m?t@skA7;U9hyxqg zAs!MS5#~S=Btr_MLK@74bjW~=UYpJB>G0{kKEKxK3-*V$=^NdiW-IkI+77+L?P(2# zjEBWbU%%d=`iC^V!{PO-y1v1BXIcrL+E6ek^b*qPy|%dj#jrejZK-Zgwb!fZ0?Ft1 z89S!ULt$Z^e8-xJWJdjeuiG3r;V~TZa^A$tIOC;!6>sE?VWu%!dWA5EgB)G6@Q+_0~^K?-8y;x)BOkDvSy{=lWhr{ZQ15gGP z;OrD+%}2|n3LfAkKZ6HhIjn${@DNl(4b(y%)I$TTf<|cK_woDrQXa<_@>HJA=kaWw z%k#LC7w~0KMb-)xV!x@vI5dlFT3{Wtf(P25U5Mt=fYA2|)`3%3tXY&QT zh|lV(cB#IgX%)?M5LB%O3Eae3g&<9@V7f2dxg3SVLi^yav z41ga35QI>#&F=Pya@RjH7ukjfz9|JYZG%QTR?|*H}#w^&f>t!FfCQP8jBMcrs6j zn3_={EIo#5XjYir@PtUpTru??h27vh2TuvHM(&X7X(3q6Hza#rv}1K-s|kTTLwx}e zgwGX~pUzw)oz~Xi^J_i2wP+bveH1D9I{3aQ_wzhMR5UGG#l2kF54C*W-6{M)P^c3m zZdYwT&k|jhZYeGBGP|1xwP04O=GB769k93i>@@*=5ccyN0X?5*M#0}S!RvYM-CCt? z2Ivt187Zv*bZn^gYic;l6tLHp)N5AK#I6f@hlC!6ZZ23#AA?^`_tPjG1LxgPW;W!B z88R+vtMB(2XYZ)UOzYpzuwLBJ5DEuW<6a1Vn&Gpgt;45nyO+n=86No^)}a12R)3vg zU)a{D`3Jj&LNm9nIVG=%nNTdYQ$r|dxYVH7W?@UQ3YZ)<2a#2vD)`JCKuO|SK7B<; zkoBA-1~C?h))gH=))S7#_?nj-vc-uQ-!{nby+&CcRH0dsNN6^SLpEeb@hAZ$qB$rD zC8HFSiqggI%~8 zx8N?k2?wx_AHzHGF8mDMi+_w?$A|D?d*2`4pWg6Sed~ARjY?$q3ud*Mq zAF-dX{p<~N5j6 literal 0 HcmV?d00001 diff --git a/examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo.sln b/examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo.sln new file mode 100644 index 0000000000..0b3afaddd9 --- /dev/null +++ b/examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo.sln @@ -0,0 +1,38 @@ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2015 + +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DSPModulePluginDemo - Standalone Plugin", "DSPModulePluginDemo_StandalonePlugin.vcxproj", "{8FA13B75-51B8-768E-89A3-57965E6A1D8B}" + ProjectSection(ProjectDependencies) = postProject + {976B804B-F6AB-F422-868C-DF02AE6BEC39} = {976B804B-F6AB-F422-868C-DF02AE6BEC39} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DSPModulePluginDemo - VST", "DSPModulePluginDemo_VST.vcxproj", "{FD5AC2E3-F359-FA2F-3515-BEFFBE1447A9}" + ProjectSection(ProjectDependencies) = postProject + {976B804B-F6AB-F422-868C-DF02AE6BEC39} = {976B804B-F6AB-F422-868C-DF02AE6BEC39} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DSPModulePluginDemo - Shared Code", "DSPModulePluginDemo_SharedCode.vcxproj", "{976B804B-F6AB-F422-868C-DF02AE6BEC39}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {FD5AC2E3-F359-FA2F-3515-BEFFBE1447A9}.Debug|x64.ActiveCfg = Debug|x64 + {FD5AC2E3-F359-FA2F-3515-BEFFBE1447A9}.Debug|x64.Build.0 = Debug|x64 + {FD5AC2E3-F359-FA2F-3515-BEFFBE1447A9}.Release|x64.ActiveCfg = Release|x64 + {FD5AC2E3-F359-FA2F-3515-BEFFBE1447A9}.Release|x64.Build.0 = Release|x64 + {8FA13B75-51B8-768E-89A3-57965E6A1D8B}.Debug|x64.ActiveCfg = Debug|x64 + {8FA13B75-51B8-768E-89A3-57965E6A1D8B}.Debug|x64.Build.0 = Debug|x64 + {8FA13B75-51B8-768E-89A3-57965E6A1D8B}.Release|x64.ActiveCfg = Release|x64 + {8FA13B75-51B8-768E-89A3-57965E6A1D8B}.Release|x64.Build.0 = Release|x64 + {976B804B-F6AB-F422-868C-DF02AE6BEC39}.Debug|x64.ActiveCfg = Debug|x64 + {976B804B-F6AB-F422-868C-DF02AE6BEC39}.Debug|x64.Build.0 = Debug|x64 + {976B804B-F6AB-F422-868C-DF02AE6BEC39}.Release|x64.ActiveCfg = Release|x64 + {976B804B-F6AB-F422-868C-DF02AE6BEC39}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_SharedCode.vcxproj b/examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_SharedCode.vcxproj new file mode 100644 index 0000000000..ce97ec2071 --- /dev/null +++ b/examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_SharedCode.vcxproj @@ -0,0 +1,2536 @@ + + + + + + Debug + x64 + + + Release + x64 + + + + {976B804B-F6AB-F422-868C-DF02AE6BEC39} + v140 + 8.1 + + + + StaticLibrary + false + v140 + v140 + 8.1 + + + StaticLibrary + false + true + v140 + v140 + 8.1 + + + + + + + + v140 + 8.1 + + + <_ProjectFileVersion>10.0.30319.1 + .lib + $(SolutionDir)$(Platform)\$(Configuration)\Shared Code\ + $(Platform)\$(Configuration)\Shared Code\ + DSPModulePluginDemo + true + $(SolutionDir)$(Platform)\$(Configuration)\Shared Code\ + $(Platform)\$(Configuration)\Shared Code\ + DSPModulePluginDemo + true + v140 + 8.1 + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + Disabled + ProgramDatabase + ..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=1;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=1;JUCE_SHARED_CODE=1;_LIB;%(PreprocessorDefinitions) + MultiThreadedDebug + true + + $(IntDir)\ + $(IntDir)\ + $(IntDir)\ + Level4 + true + true + stdcpp14 + + + _DEBUG;%(PreprocessorDefinitions) + + + $(OutDir)\DSPModulePluginDemo.lib + true + libcmt.lib; msvcrt.lib;;%(IgnoreSpecificDefaultLibraries) + true + $(IntDir)\DSPModulePluginDemo.pdb + Windows + true + + + true + $(IntDir)\DSPModulePluginDemo.bsc + + + if "$(ProjectName)"=="$(SolutionName)_VST" copy /Y "$(TargetDir)\$(SolutionName).dll" "c:\vstplugins\musical entropy\$(SolutionName).dll" + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + Full + ..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=1;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=1;JUCE_SHARED_CODE=1;_LIB;%(PreprocessorDefinitions) + MultiThreaded + true + + $(IntDir)\ + $(IntDir)\ + $(IntDir)\ + Level4 + true + true + stdcpp14 + + + NDEBUG;%(PreprocessorDefinitions) + + + $(OutDir)\DSPModulePluginDemo.lib + true + %(IgnoreSpecificDefaultLibraries) + false + $(IntDir)\DSPModulePluginDemo.pdb + Windows + true + true + true + + + true + $(IntDir)\DSPModulePluginDemo.bsc + + + if "$(ProjectName)"=="$(SolutionName)_VST" copy /Y "$(TargetDir)\$(SolutionName).dll" "c:\vstplugins\musical entropy\$(SolutionName).dll" + + + + + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_SharedCode.vcxproj.filters b/examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_SharedCode.vcxproj.filters new file mode 100644 index 0000000000..7f88de8bf5 --- /dev/null +++ b/examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_SharedCode.vcxproj.filters @@ -0,0 +1,4280 @@ + + + + + + {515D5264-DD49-FDCF-149B-2C69ABA347A3} + + + {D1188E43-E20D-3B33-F775-5BBB8813CFFF} + + + {0D969C05-F2B2-53FD-D8B5-501C0CBE17BF} + + + {52045BA8-DF89-5074-688D-A0977F25B09C} + + + {A33A1E1D-AC2C-6382-8681-48B0FC374C60} + + + {11A75801-B027-40BD-4993-023023ACCBF7} + + + {3FD908F5-98C8-9A61-FC03-0BAF8913CBB0} + + + {8C868E51-156D-A916-047C-0D9EA1393675} + + + {EF2CAB40-0432-429B-C517-86ADF136BB8A} + + + {8F7EC212-3168-AD81-5064-C45BA838C408} + + + {3247ED97-A75A-F50B-8CCC-46155E895806} + + + {9D270B31-2425-8FDB-84A4-6A2288FF5B2F} + + + {0F766DD4-A277-CB86-5647-42498C8B41E1} + + + {01603E05-423B-5FC3-1BEE-E15ED33B5688} + + + {D64942B4-6984-3623-3347-45D472AE1C61} + + + {CACD7B50-4DB3-76AF-A6E8-90DF94F8F594} + + + {C9640E58-4493-7EEC-6F58-603AD184956E} + + + {D8EE4AD1-61E3-21C2-6640-6684F4CF77DC} + + + {FEF33480-117C-23A6-D12C-7C299F26C9DB} + + + {9DFA63C1-4EE6-1FAB-D563-41FCF84988F2} + + + {AB8611DF-8161-A9DF-DBAD-77A87DE37331} + + + {25C8FB00-334A-6E0F-F203-E988758B708A} + + + {94027CB9-8162-7431-2E01-B710C7CAE620} + + + {450B8177-6F41-B902-761B-BF68D55102DA} + + + {B8087E92-19F7-552F-9E85-16153D7191B0} + + + {B7221885-1731-611D-FDD9-EA968FA8D858} + + + {DC58E9B7-2710-F45C-B718-75EACDF53F47} + + + {9971A63C-5B75-039F-95C2-7474D7DB16B0} + + + {76391436-F92A-7602-4073-E446B5FAA859} + + + {0CD9E281-DDD0-91EC-6F77-EA9D9D5E0E1A} + + + {2FE25F4C-E9DF-04A5-CAED-6E4B7CF28C59} + + + {40C5CA7C-AEBB-05B1-11CE-AE41D87B5CCB} + + + {65CB28F8-0422-A8F3-9A17-959E12A1F8E2} + + + {2FB30532-4EF3-EFA3-E57C-F7DDE9DB1297} + + + {1ED92A41-D496-5397-A4B0-9FA52DBA9215} + + + {25DD3A16-4BC7-35BD-F32E-0310D1887564} + + + {EA1913F9-0E99-FEC5-0192-0C197611B8F8} + + + {AF5F4789-D607-BFD8-D853-09473C27449C} + + + {EE36D8B9-408C-AEC9-66E7-BEA9E407F27F} + + + {20254EFE-6CBD-31A7-2119-92B1E0E0E311} + + + {70796D73-6D30-8A1B-4732-7C021E47C05A} + + + {77E2C34E-A4D6-EDB5-A107-7CB3CEF0E8EF} + + + {EB8DD942-E2CB-869F-D381-E02A65BA790B} + + + {8F91DFC0-7A71-1BA8-D8D9-6B4CF49151A4} + + + {0B0E7392-324B-088C-FBEB-5FE999D61782} + + + {C396369E-8C55-88E9-5D19-5D3772B773D3} + + + {8167E753-09C7-5D1C-EF2B-32D297557443} + + + {B48C883A-8483-AF6D-808C-1D9A749048D8} + + + {AEDCB7F7-7A36-5392-8E9A-715F5BDE35CB} + + + {B63F69FD-8A40-8E1E-E7ED-419B8DC1C12B} + + + {0608ADE9-66EF-1A19-6D57-12D07F76EB53} + + + {C8F726FC-26BF-2E6B-4ED5-55A7FE316D7D} + + + {1B67A7C0-86E0-53F6-6AE3-7AD93B8DC95B} + + + {C294408A-2005-2E9E-7AC0-8D3ABE8AC175} + + + {476C69CE-0B67-6B85-E888-45D91E37A29E} + + + {7C5AD030-F8CC-6E85-0AF6-196B3ED40AC6} + + + {FA891A58-9FDA-9651-43C4-714A19B5D08D} + + + {C79A4D23-7866-8F3E-AC39-BD68C52A9259} + + + {DA0DC4AC-B511-A2D4-199A-C93454D6F114} + + + {91929C6F-7902-B87D-5260-2F6CBF8ACD93} + + + {4634FFAE-9586-A970-364C-4FDDA635F99F} + + + {244D11B0-2D68-3C08-A0B7-0D12469BC3AA} + + + {05F3DB8A-499C-6ACA-282F-5BF8455A0DE1} + + + {C9F6D785-BF78-5AA1-B479-111C65397864} + + + {4927C7A1-9235-4AA1-93CD-B4E67E6F1E5F} + + + {F2B2F310-F30F-7166-42A9-9BF9C230DA78} + + + {585D6A72-C5E7-BCF1-A168-63A40C6B6313} + + + {F03654BC-34D8-F975-BEA3-750CC2783D23} + + + {95CA1506-2B94-0DEE-0C8D-85EDEBBC4E88} + + + {358AEA11-3F96-36AE-7B32-71373B5C5396} + + + {3DF036EA-3B80-553B-2494-3AAC835CAE75} + + + {1988E68A-A964-64CA-0E0C-26FF9BC5176C} + + + {928D8FCC-5E00-174B-6538-93E8D75AB396} + + + {5E662F89-AD8B-D0D6-9BB6-D42DCFC3C38B} + + + {D272EE9B-CA6A-186E-1C62-0DF893C7A34E} + + + {5C139EFD-6DD2-83E0-C013-24CC03428D81} + + + {03DBA258-F2EF-EC1D-5A86-2CEE402FE021} + + + {8EE92EFE-883B-A2FA-161D-94AC912BF1DE} + + + {16B24975-5792-03FC-64A8-D04E59D077E1} + + + {362ADBDB-6FDF-5BD4-9F06-0A0270832F67} + + + {B098BC87-3298-7E6B-12DC-D26C09CDCAED} + + + {6322B88F-984A-C3CD-6263-38D7AA49B6EC} + + + {6172822C-01A5-E824-12DA-FA43FA934D35} + + + {73C1E759-AD90-59A3-942E-2D10FAA29107} + + + {41DC3BE3-D629-8A17-C32B-F5B4008B5FAD} + + + {F2A38F45-6E55-E147-2E52-64A89FDD9D59} + + + {4926B3FF-E797-F586-857A-69D9703FA2D1} + + + {EBC65085-3AD5-280C-1A29-2B1683643AA1} + + + {E37D25CD-4350-4614-055B-7ABC55E67895} + + + {26ECA2AF-7368-C6CC-58EF-017ECD1862D0} + + + {C1A1A236-AB01-173E-96C3-0706BFF93B1E} + + + {F27C42E6-CF39-9B72-8CD7-C29CA4ADD43B} + + + {12D20EC8-139C-C2B1-1A66-AC436C48C0A7} + + + {69E1179D-76EC-26DC-C3E6-6602ED26D783} + + + {413F481F-075C-2958-115C-D8268682FCB7} + + + {FFC6E1CC-C772-75E6-5087-FB5D4E016799} + + + {1182303F-ECA3-166D-AC0C-92C5E762CB93} + + + {EE1AE8C3-0908-8F53-A4E5-D930C7C97C26} + + + {61712B09-5783-ADFA-2001-5A0C3D7764EB} + + + {C3B2EB8A-1A2F-306F-AA78-3E9D1593788B} + + + {46535B56-3737-2BE8-E3A0-571BCBEB2DA4} + + + {2CB59E7C-D0E4-7D27-2ACF-C7ABADEE936D} + + + {5A0AA36E-3957-E413-14C6-31CBE15271DF} + + + {5FDBD6B1-9BBD-392F-4DA5-FEA40A9370C4} + + + {A92719C7-70BE-57C4-CE9E-A9BC9DFEB757} + + + {E980FADB-6E3F-B93C-DE02-CE4271C9BA93} + + + {F408DCA2-D5E2-0A3A-A064-A1D045889BC1} + + + {7BCEAB87-62FD-0327-EB5D-679E54EDB9B1} + + + {C2B9505B-27B4-F650-12BD-F477D4BBCBAA} + + + {796B7886-44A7-34CC-9B95-BF4FB2C7B6F4} + + + {8A80BA78-D3A8-C0F8-7FFD-61AA028CE852} + + + {7A53E6F1-1343-33B8-4CA8-1D7B714A0E76} + + + {D7E3D10F-3ED8-DFC5-6DB3-E4ACBF8678FB} + + + {75F1F352-251A-75E0-D941-8431588F5C1E} + + + {DB6E3D09-66DA-12DA-BAE8-A5BFFA7A14AC} + + + {8E43579F-C185-266D-DD67-F8B95BD80F2F} + + + {C60A6FCA-9462-922E-AD8D-69F10C9049AF} + + + {D56498EE-E354-1F00-5EEE-8CF7944BEAFB} + + + {61B2920C-494D-D8CB-C0C7-5DBF3D76D164} + + + {66C9B809-8739-A217-C78D-A15D6089B8E3} + + + {C413328B-5D81-89EE-F4F3-75752E700DE4} + + + {8EC9572F-3CCA-E930-74B6-CB6139DE0E17} + + + {B3141847-8F13-F67D-45B2-E3ECF6E09088} + + + {151B49D8-6102-F802-1C07-D59931BC0574} + + + {2D8D0E19-E676-83EB-38D9-F73500DD6B79} + + + {9E586194-C056-101C-5311-F2AF5191AC80} + + + {639E16C5-DA8B-ADBA-6E24-7B596378EAB2} + + + {422C46B7-0467-2DB0-BF3C-16DFCAFD69AC} + + + {8B4D1BAA-6DB4-CAEC-A0FA-271F354D5C61} + + + + + DSPModulePluginDemo\Source + + + DSPModulePluginDemo\Source + + + Juce Modules\juce_audio_basics\buffers + + + Juce Modules\juce_audio_basics\buffers + + + Juce Modules\juce_audio_basics\buffers + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\synthesisers + + + Juce Modules\juce_audio_basics + + + Juce Modules\juce_audio_basics + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\midi_io + + + Juce Modules\juce_audio_devices\midi_io + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\sources + + + Juce Modules\juce_audio_devices\sources + + + Juce Modules\juce_audio_devices + + + Juce Modules\juce_audio_devices + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis + + + Juce Modules\juce_audio_formats\codecs\oggvorbis + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\sampler + + + Juce Modules\juce_audio_formats + + + Juce Modules\juce_audio_formats + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\Standalone + + + Juce Modules\juce_audio_plugin_client\utility + + + Juce Modules\juce_audio_plugin_client\VST + + + Juce Modules\juce_audio_plugin_client\VST + + + Juce Modules\juce_audio_plugin_client + + + Juce Modules\juce_audio_plugin_client + + + Juce Modules\juce_audio_processors\format + + + Juce Modules\juce_audio_processors\format + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_utils\audio_cd + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\players + + + Juce Modules\juce_audio_utils\players + + + Juce Modules\juce_audio_utils + + + Juce Modules\juce_audio_utils + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\javascript + + + Juce Modules\juce_core\javascript + + + Juce Modules\juce_core\logging + + + Juce Modules\juce_core\logging + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\unit_tests + + + Juce Modules\juce_core\xml + + + Juce Modules\juce_core\xml + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core + + + Juce Modules\juce_core + + + Juce Modules\juce_data_structures\app_properties + + + Juce Modules\juce_data_structures\app_properties + + + Juce Modules\juce_data_structures\undomanager + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures + + + Juce Modules\juce_data_structures + + + Juce Modules\juce_dsp\containers + + + Juce Modules\juce_dsp\filter_design + + + Juce Modules\juce_dsp\frequency + + + Juce Modules\juce_dsp\frequency + + + Juce Modules\juce_dsp\frequency + + + Juce Modules\juce_dsp\frequency + + + Juce Modules\juce_dsp\maths + + + Juce Modules\juce_dsp\maths + + + Juce Modules\juce_dsp\maths + + + Juce Modules\juce_dsp\maths + + + Juce Modules\juce_dsp\native + + + Juce Modules\juce_dsp\native + + + Juce Modules\juce_dsp\native + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp + + + Juce Modules\juce_dsp + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\timers + + + Juce Modules\juce_events\timers + + + Juce Modules\juce_events + + + Juce Modules\juce_events + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\effects + + + Juce Modules\juce_graphics\effects + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats + + + Juce Modules\juce_graphics\image_formats + + + Juce Modules\juce_graphics\image_formats + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\placement + + + Juce Modules\juce_graphics + + + Juce Modules\juce_graphics + + + Juce Modules\juce_gui_basics\application + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\misc + + + Juce Modules\juce_gui_basics\misc + + + Juce Modules\juce_gui_basics\misc + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics + + + Juce Modules\juce_gui_basics + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\documents + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra + + + Juce Modules\juce_gui_extra + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\utils + + + Juce Modules\juce_opengl + + + Juce Modules\juce_opengl + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + + + DSPModulePluginDemo\Source + + + DSPModulePluginDemo\Source + + + Juce Modules\juce_audio_basics\audio_play_head + + + Juce Modules\juce_audio_basics\buffers + + + Juce Modules\juce_audio_basics\buffers + + + Juce Modules\juce_audio_basics\buffers + + + Juce Modules\juce_audio_basics\buffers + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\synthesisers + + + Juce Modules\juce_audio_basics + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\midi_io + + + Juce Modules\juce_audio_devices\midi_io + + + Juce Modules\juce_audio_devices\midi_io + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\sources + + + Juce Modules\juce_audio_devices\sources + + + Juce Modules\juce_audio_devices + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\protected + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\protected + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\protected + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\books\coupled + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\books\coupled + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\books\floor + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\books\uncoupled + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis + + + Juce Modules\juce_audio_formats\codecs\oggvorbis + + + Juce Modules\juce_audio_formats\codecs\oggvorbis + + + Juce Modules\juce_audio_formats\codecs\oggvorbis + + + Juce Modules\juce_audio_formats\codecs\oggvorbis + + + Juce Modules\juce_audio_formats\codecs\oggvorbis + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\sampler + + + Juce Modules\juce_audio_formats + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\Standalone + + + Juce Modules\juce_audio_plugin_client\utility + + + Juce Modules\juce_audio_plugin_client\utility + + + Juce Modules\juce_audio_plugin_client\utility + + + Juce Modules\juce_audio_plugin_client\utility + + + Juce Modules\juce_audio_plugin_client\utility + + + Juce Modules\juce_audio_plugin_client\utility + + + Juce Modules\juce_audio_plugin_client\utility + + + Juce Modules\juce_audio_plugin_client\VST + + + Juce Modules\juce_audio_plugin_client + + + Juce Modules\juce_audio_processors\format + + + Juce Modules\juce_audio_processors\format + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_utils\audio_cd + + + Juce Modules\juce_audio_utils\audio_cd + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\players + + + Juce Modules\juce_audio_utils\players + + + Juce Modules\juce_audio_utils + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\javascript + + + Juce Modules\juce_core\javascript + + + Juce Modules\juce_core\logging + + + Juce Modules\juce_core\logging + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\unit_tests + + + Juce Modules\juce_core\xml + + + Juce Modules\juce_core\xml + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core + + + Juce Modules\juce_data_structures\app_properties + + + Juce Modules\juce_data_structures\app_properties + + + Juce Modules\juce_data_structures\undomanager + + + Juce Modules\juce_data_structures\undomanager + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures + + + Juce Modules\juce_dsp\containers + + + Juce Modules\juce_dsp\containers + + + Juce Modules\juce_dsp\filter_design + + + Juce Modules\juce_dsp\frequency + + + Juce Modules\juce_dsp\frequency + + + Juce Modules\juce_dsp\frequency + + + Juce Modules\juce_dsp\maths + + + Juce Modules\juce_dsp\maths + + + Juce Modules\juce_dsp\maths + + + Juce Modules\juce_dsp\maths + + + Juce Modules\juce_dsp\maths + + + Juce Modules\juce_dsp\native + + + Juce Modules\juce_dsp\native + + + Juce Modules\juce_dsp\native + + + Juce Modules\juce_dsp\native + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\timers + + + Juce Modules\juce_events\timers + + + Juce Modules\juce_events + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\effects + + + Juce Modules\juce_graphics\effects + + + Juce Modules\juce_graphics\effects + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\placement + + + Juce Modules\juce_graphics\placement + + + Juce Modules\juce_graphics + + + Juce Modules\juce_gui_basics\application + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\misc + + + Juce Modules\juce_gui_basics\misc + + + Juce Modules\juce_gui_basics\misc + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\documents + + + Juce Modules\juce_gui_extra\embedding + + + Juce Modules\juce_gui_extra\embedding + + + Juce Modules\juce_gui_extra\embedding + + + Juce Modules\juce_gui_extra\embedding + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra + + + Juce Modules\juce_opengl\geometry + + + Juce Modules\juce_opengl\geometry + + + Juce Modules\juce_opengl\geometry + + + Juce Modules\juce_opengl\geometry + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\utils + + + Juce Modules\juce_opengl + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + + + DSPModulePluginDemo\Resources + + + DSPModulePluginDemo\Resources + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\oggvorbis + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + + + Juce Library Code + + + diff --git a/examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_StandalonePlugin.vcxproj b/examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_StandalonePlugin.vcxproj new file mode 100644 index 0000000000..396553ae16 --- /dev/null +++ b/examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_StandalonePlugin.vcxproj @@ -0,0 +1,166 @@ + + + + + + Debug + x64 + + + Release + x64 + + + + {8FA13B75-51B8-768E-89A3-57965E6A1D8B} + v140 + 8.1 + + + + Application + false + v140 + v140 + 8.1 + + + Application + false + true + v140 + v140 + 8.1 + + + + + + + + v140 + 8.1 + + + <_ProjectFileVersion>10.0.30319.1 + .exe + $(SolutionDir)$(Platform)\$(Configuration)\Standalone Plugin\ + $(Platform)\$(Configuration)\Standalone Plugin\ + DSPModulePluginDemo + true + $(LibraryPath);$(SolutionDir)$(Platform)\$(Configuration)\Shared Code + $(SolutionDir)$(Platform)\$(Configuration)\Standalone Plugin\ + $(Platform)\$(Configuration)\Standalone Plugin\ + DSPModulePluginDemo + true + $(LibraryPath);$(SolutionDir)$(Platform)\$(Configuration)\Shared Code + v140 + 8.1 + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + Disabled + ProgramDatabase + ..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=1;%(PreprocessorDefinitions) + MultiThreadedDebug + true + + $(IntDir)\ + $(IntDir)\ + $(IntDir)\ + Level4 + true + true + stdcpp14 + + + _DEBUG;%(PreprocessorDefinitions) + + + $(OutDir)\DSPModulePluginDemo.exe + true + libcmt.lib; msvcrt.lib;;%(IgnoreSpecificDefaultLibraries) + true + $(IntDir)\DSPModulePluginDemo.pdb + Windows + true + DSPModulePluginDemo.lib;%(AdditionalDependencies) + + + true + $(IntDir)\DSPModulePluginDemo.bsc + + + if "$(ProjectName)"=="$(SolutionName)_VST" copy /Y "$(TargetDir)\$(SolutionName).dll" "c:\vstplugins\musical entropy\$(SolutionName).dll" + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + Full + ..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=1;%(PreprocessorDefinitions) + MultiThreaded + true + + $(IntDir)\ + $(IntDir)\ + $(IntDir)\ + Level4 + true + true + stdcpp14 + + + NDEBUG;%(PreprocessorDefinitions) + + + $(OutDir)\DSPModulePluginDemo.exe + true + %(IgnoreSpecificDefaultLibraries) + false + $(IntDir)\DSPModulePluginDemo.pdb + Windows + true + true + true + DSPModulePluginDemo.lib;%(AdditionalDependencies) + + + true + $(IntDir)\DSPModulePluginDemo.bsc + + + if "$(ProjectName)"=="$(SolutionName)_VST" copy /Y "$(TargetDir)\$(SolutionName).dll" "c:\vstplugins\musical entropy\$(SolutionName).dll" + + + + + + + + + + + + diff --git a/examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_StandalonePlugin.vcxproj.filters b/examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_StandalonePlugin.vcxproj.filters new file mode 100644 index 0000000000..e2c56642fd --- /dev/null +++ b/examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_StandalonePlugin.vcxproj.filters @@ -0,0 +1,20 @@ + + + + + + {8B4D1BAA-6DB4-CAEC-A0FA-271F354D5C61} + + + + + Juce Library Code + + + + + + Juce Library Code + + + diff --git a/examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_VST.vcxproj b/examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_VST.vcxproj new file mode 100644 index 0000000000..82aab65f33 --- /dev/null +++ b/examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_VST.vcxproj @@ -0,0 +1,166 @@ + + + + + + Debug + x64 + + + Release + x64 + + + + {FD5AC2E3-F359-FA2F-3515-BEFFBE1447A9} + v140 + 8.1 + + + + DynamicLibrary + false + v140 + v140 + 8.1 + + + DynamicLibrary + false + true + v140 + v140 + 8.1 + + + + + + + + v140 + 8.1 + + + <_ProjectFileVersion>10.0.30319.1 + .dll + $(SolutionDir)$(Platform)\$(Configuration)\VST\ + $(Platform)\$(Configuration)\VST\ + DSPModulePluginDemo + true + $(LibraryPath);$(SolutionDir)$(Platform)\$(Configuration)\Shared Code + $(SolutionDir)$(Platform)\$(Configuration)\VST\ + $(Platform)\$(Configuration)\VST\ + DSPModulePluginDemo + true + $(LibraryPath);$(SolutionDir)$(Platform)\$(Configuration)\Shared Code + v140 + 8.1 + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + Disabled + ProgramDatabase + ..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=1;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;%(PreprocessorDefinitions) + MultiThreadedDebug + true + + $(IntDir)\ + $(IntDir)\ + $(IntDir)\ + Level4 + true + true + stdcpp14 + + + _DEBUG;%(PreprocessorDefinitions) + + + $(OutDir)\DSPModulePluginDemo.dll + true + libcmt.lib; msvcrt.lib;;%(IgnoreSpecificDefaultLibraries) + true + $(IntDir)\DSPModulePluginDemo.pdb + Windows + true + DSPModulePluginDemo.lib;%(AdditionalDependencies) + + + true + $(IntDir)\DSPModulePluginDemo.bsc + + + if "$(ProjectName)"=="$(SolutionName)_VST" copy /Y "$(TargetDir)\$(SolutionName).dll" "c:\vstplugins\musical entropy\$(SolutionName).dll" + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + Full + ..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=1;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;%(PreprocessorDefinitions) + MultiThreaded + true + + $(IntDir)\ + $(IntDir)\ + $(IntDir)\ + Level4 + true + true + stdcpp14 + + + NDEBUG;%(PreprocessorDefinitions) + + + $(OutDir)\DSPModulePluginDemo.dll + true + %(IgnoreSpecificDefaultLibraries) + false + $(IntDir)\DSPModulePluginDemo.pdb + Windows + true + true + true + DSPModulePluginDemo.lib;%(AdditionalDependencies) + + + true + $(IntDir)\DSPModulePluginDemo.bsc + + + if "$(ProjectName)"=="$(SolutionName)_VST" copy /Y "$(TargetDir)\$(SolutionName).dll" "c:\vstplugins\musical entropy\$(SolutionName).dll" + + + + + + + + + + + + diff --git a/examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_VST.vcxproj.filters b/examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_VST.vcxproj.filters new file mode 100644 index 0000000000..c2f02da86e --- /dev/null +++ b/examples/DSP module plugin demo/Builds/VisualStudio2015/DSPModulePluginDemo_VST.vcxproj.filters @@ -0,0 +1,20 @@ + + + + + + {8B4D1BAA-6DB4-CAEC-A0FA-271F354D5C61} + + + + + Juce Library Code + + + + + + Juce Library Code + + + diff --git a/examples/DSP module plugin demo/Builds/VisualStudio2015/resources.rc b/examples/DSP module plugin demo/Builds/VisualStudio2015/resources.rc new file mode 100644 index 0000000000..3545567da2 --- /dev/null +++ b/examples/DSP module plugin demo/Builds/VisualStudio2015/resources.rc @@ -0,0 +1,30 @@ +#ifdef JUCE_USER_DEFINED_RC_FILE + #include JUCE_USER_DEFINED_RC_FILE +#else + +#undef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#include + +VS_VERSION_INFO VERSIONINFO +FILEVERSION 1,0,0,0 +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + BEGIN + VALUE "CompanyName", "ROLI Ltd.\0" + VALUE "FileDescription", "DSPModulePluginDemo\0" + VALUE "FileVersion", "1.0.0\0" + VALUE "ProductName", "DSPModulePluginDemo\0" + VALUE "ProductVersion", "1.0.0\0" + END + END + + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END + +#endif diff --git a/examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo.sln b/examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo.sln new file mode 100644 index 0000000000..ee7f2a5e32 --- /dev/null +++ b/examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo.sln @@ -0,0 +1,38 @@ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2017 + +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DSPModulePluginDemo - Standalone Plugin", "DSPModulePluginDemo_StandalonePlugin.vcxproj", "{8FA13B75-51B8-768E-89A3-57965E6A1D8B}" + ProjectSection(ProjectDependencies) = postProject + {976B804B-F6AB-F422-868C-DF02AE6BEC39} = {976B804B-F6AB-F422-868C-DF02AE6BEC39} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DSPModulePluginDemo - VST", "DSPModulePluginDemo_VST.vcxproj", "{FD5AC2E3-F359-FA2F-3515-BEFFBE1447A9}" + ProjectSection(ProjectDependencies) = postProject + {976B804B-F6AB-F422-868C-DF02AE6BEC39} = {976B804B-F6AB-F422-868C-DF02AE6BEC39} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DSPModulePluginDemo - Shared Code", "DSPModulePluginDemo_SharedCode.vcxproj", "{976B804B-F6AB-F422-868C-DF02AE6BEC39}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {FD5AC2E3-F359-FA2F-3515-BEFFBE1447A9}.Debug|x64.ActiveCfg = Debug|x64 + {FD5AC2E3-F359-FA2F-3515-BEFFBE1447A9}.Debug|x64.Build.0 = Debug|x64 + {FD5AC2E3-F359-FA2F-3515-BEFFBE1447A9}.Release|x64.ActiveCfg = Release|x64 + {FD5AC2E3-F359-FA2F-3515-BEFFBE1447A9}.Release|x64.Build.0 = Release|x64 + {8FA13B75-51B8-768E-89A3-57965E6A1D8B}.Debug|x64.ActiveCfg = Debug|x64 + {8FA13B75-51B8-768E-89A3-57965E6A1D8B}.Debug|x64.Build.0 = Debug|x64 + {8FA13B75-51B8-768E-89A3-57965E6A1D8B}.Release|x64.ActiveCfg = Release|x64 + {8FA13B75-51B8-768E-89A3-57965E6A1D8B}.Release|x64.Build.0 = Release|x64 + {976B804B-F6AB-F422-868C-DF02AE6BEC39}.Debug|x64.ActiveCfg = Debug|x64 + {976B804B-F6AB-F422-868C-DF02AE6BEC39}.Debug|x64.Build.0 = Debug|x64 + {976B804B-F6AB-F422-868C-DF02AE6BEC39}.Release|x64.ActiveCfg = Release|x64 + {976B804B-F6AB-F422-868C-DF02AE6BEC39}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_SharedCode.vcxproj b/examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_SharedCode.vcxproj new file mode 100644 index 0000000000..343b21410c --- /dev/null +++ b/examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_SharedCode.vcxproj @@ -0,0 +1,2531 @@ + + + + + + Debug + x64 + + + Release + x64 + + + + {976B804B-F6AB-F422-868C-DF02AE6BEC39} + v141 + 10.0.15063.0 + + + + StaticLibrary + false + v141 + v141 + 10.0.15063.0 + + + StaticLibrary + false + true + v141 + v141 + 10.0.15063.0 + + + + + + + + v141 + 10.0.15063.0 + + + <_ProjectFileVersion>10.0.30319.1 + .lib + $(SolutionDir)$(Platform)\$(Configuration)\Shared Code\ + $(Platform)\$(Configuration)\Shared Code\ + DSPModulePluginDemo + true + $(SolutionDir)$(Platform)\$(Configuration)\Shared Code\ + $(Platform)\$(Configuration)\Shared Code\ + DSPModulePluginDemo + true + v141 + 10.0.15063.0 + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + Disabled + ProgramDatabase + ..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=1;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=1;JUCE_SHARED_CODE=1;_LIB;%(PreprocessorDefinitions) + MultiThreadedDebug + true + + $(IntDir)\ + $(IntDir)\ + $(IntDir)\ + Level4 + true + true + stdcpp14 + + + _DEBUG;%(PreprocessorDefinitions) + + + $(OutDir)\DSPModulePluginDemo.lib + true + libcmt.lib; msvcrt.lib;;%(IgnoreSpecificDefaultLibraries) + true + $(IntDir)\DSPModulePluginDemo.pdb + Windows + true + + + true + $(IntDir)\DSPModulePluginDemo.bsc + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + Full + ..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=1;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=1;JUCE_SHARED_CODE=1;_LIB;%(PreprocessorDefinitions) + MultiThreaded + true + + $(IntDir)\ + $(IntDir)\ + $(IntDir)\ + Level4 + true + true + Fast + stdcpp14 + + + NDEBUG;%(PreprocessorDefinitions) + + + $(OutDir)\DSPModulePluginDemo.lib + true + %(IgnoreSpecificDefaultLibraries) + false + $(IntDir)\DSPModulePluginDemo.pdb + Windows + true + true + true + + + true + $(IntDir)\DSPModulePluginDemo.bsc + + + + + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_SharedCode.vcxproj.filters b/examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_SharedCode.vcxproj.filters new file mode 100644 index 0000000000..35123c0bf9 --- /dev/null +++ b/examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_SharedCode.vcxproj.filters @@ -0,0 +1,4280 @@ + + + + + + {515D5264-DD49-FDCF-149B-2C69ABA347A3} + + + {D1188E43-E20D-3B33-F775-5BBB8813CFFF} + + + {0D969C05-F2B2-53FD-D8B5-501C0CBE17BF} + + + {52045BA8-DF89-5074-688D-A0977F25B09C} + + + {A33A1E1D-AC2C-6382-8681-48B0FC374C60} + + + {11A75801-B027-40BD-4993-023023ACCBF7} + + + {3FD908F5-98C8-9A61-FC03-0BAF8913CBB0} + + + {8C868E51-156D-A916-047C-0D9EA1393675} + + + {EF2CAB40-0432-429B-C517-86ADF136BB8A} + + + {8F7EC212-3168-AD81-5064-C45BA838C408} + + + {3247ED97-A75A-F50B-8CCC-46155E895806} + + + {9D270B31-2425-8FDB-84A4-6A2288FF5B2F} + + + {0F766DD4-A277-CB86-5647-42498C8B41E1} + + + {01603E05-423B-5FC3-1BEE-E15ED33B5688} + + + {D64942B4-6984-3623-3347-45D472AE1C61} + + + {CACD7B50-4DB3-76AF-A6E8-90DF94F8F594} + + + {C9640E58-4493-7EEC-6F58-603AD184956E} + + + {D8EE4AD1-61E3-21C2-6640-6684F4CF77DC} + + + {FEF33480-117C-23A6-D12C-7C299F26C9DB} + + + {9DFA63C1-4EE6-1FAB-D563-41FCF84988F2} + + + {AB8611DF-8161-A9DF-DBAD-77A87DE37331} + + + {25C8FB00-334A-6E0F-F203-E988758B708A} + + + {94027CB9-8162-7431-2E01-B710C7CAE620} + + + {450B8177-6F41-B902-761B-BF68D55102DA} + + + {B8087E92-19F7-552F-9E85-16153D7191B0} + + + {B7221885-1731-611D-FDD9-EA968FA8D858} + + + {DC58E9B7-2710-F45C-B718-75EACDF53F47} + + + {9971A63C-5B75-039F-95C2-7474D7DB16B0} + + + {76391436-F92A-7602-4073-E446B5FAA859} + + + {0CD9E281-DDD0-91EC-6F77-EA9D9D5E0E1A} + + + {2FE25F4C-E9DF-04A5-CAED-6E4B7CF28C59} + + + {40C5CA7C-AEBB-05B1-11CE-AE41D87B5CCB} + + + {65CB28F8-0422-A8F3-9A17-959E12A1F8E2} + + + {2FB30532-4EF3-EFA3-E57C-F7DDE9DB1297} + + + {1ED92A41-D496-5397-A4B0-9FA52DBA9215} + + + {25DD3A16-4BC7-35BD-F32E-0310D1887564} + + + {EA1913F9-0E99-FEC5-0192-0C197611B8F8} + + + {AF5F4789-D607-BFD8-D853-09473C27449C} + + + {EE36D8B9-408C-AEC9-66E7-BEA9E407F27F} + + + {20254EFE-6CBD-31A7-2119-92B1E0E0E311} + + + {70796D73-6D30-8A1B-4732-7C021E47C05A} + + + {77E2C34E-A4D6-EDB5-A107-7CB3CEF0E8EF} + + + {EB8DD942-E2CB-869F-D381-E02A65BA790B} + + + {8F91DFC0-7A71-1BA8-D8D9-6B4CF49151A4} + + + {0B0E7392-324B-088C-FBEB-5FE999D61782} + + + {C396369E-8C55-88E9-5D19-5D3772B773D3} + + + {8167E753-09C7-5D1C-EF2B-32D297557443} + + + {B48C883A-8483-AF6D-808C-1D9A749048D8} + + + {AEDCB7F7-7A36-5392-8E9A-715F5BDE35CB} + + + {B63F69FD-8A40-8E1E-E7ED-419B8DC1C12B} + + + {0608ADE9-66EF-1A19-6D57-12D07F76EB53} + + + {C8F726FC-26BF-2E6B-4ED5-55A7FE316D7D} + + + {1B67A7C0-86E0-53F6-6AE3-7AD93B8DC95B} + + + {C294408A-2005-2E9E-7AC0-8D3ABE8AC175} + + + {476C69CE-0B67-6B85-E888-45D91E37A29E} + + + {7C5AD030-F8CC-6E85-0AF6-196B3ED40AC6} + + + {FA891A58-9FDA-9651-43C4-714A19B5D08D} + + + {C79A4D23-7866-8F3E-AC39-BD68C52A9259} + + + {DA0DC4AC-B511-A2D4-199A-C93454D6F114} + + + {91929C6F-7902-B87D-5260-2F6CBF8ACD93} + + + {4634FFAE-9586-A970-364C-4FDDA635F99F} + + + {244D11B0-2D68-3C08-A0B7-0D12469BC3AA} + + + {05F3DB8A-499C-6ACA-282F-5BF8455A0DE1} + + + {C9F6D785-BF78-5AA1-B479-111C65397864} + + + {4927C7A1-9235-4AA1-93CD-B4E67E6F1E5F} + + + {F2B2F310-F30F-7166-42A9-9BF9C230DA78} + + + {585D6A72-C5E7-BCF1-A168-63A40C6B6313} + + + {F03654BC-34D8-F975-BEA3-750CC2783D23} + + + {95CA1506-2B94-0DEE-0C8D-85EDEBBC4E88} + + + {358AEA11-3F96-36AE-7B32-71373B5C5396} + + + {3DF036EA-3B80-553B-2494-3AAC835CAE75} + + + {1988E68A-A964-64CA-0E0C-26FF9BC5176C} + + + {928D8FCC-5E00-174B-6538-93E8D75AB396} + + + {5E662F89-AD8B-D0D6-9BB6-D42DCFC3C38B} + + + {D272EE9B-CA6A-186E-1C62-0DF893C7A34E} + + + {5C139EFD-6DD2-83E0-C013-24CC03428D81} + + + {03DBA258-F2EF-EC1D-5A86-2CEE402FE021} + + + {8EE92EFE-883B-A2FA-161D-94AC912BF1DE} + + + {16B24975-5792-03FC-64A8-D04E59D077E1} + + + {362ADBDB-6FDF-5BD4-9F06-0A0270832F67} + + + {B098BC87-3298-7E6B-12DC-D26C09CDCAED} + + + {6322B88F-984A-C3CD-6263-38D7AA49B6EC} + + + {6172822C-01A5-E824-12DA-FA43FA934D35} + + + {73C1E759-AD90-59A3-942E-2D10FAA29107} + + + {41DC3BE3-D629-8A17-C32B-F5B4008B5FAD} + + + {F2A38F45-6E55-E147-2E52-64A89FDD9D59} + + + {4926B3FF-E797-F586-857A-69D9703FA2D1} + + + {EBC65085-3AD5-280C-1A29-2B1683643AA1} + + + {E37D25CD-4350-4614-055B-7ABC55E67895} + + + {26ECA2AF-7368-C6CC-58EF-017ECD1862D0} + + + {C1A1A236-AB01-173E-96C3-0706BFF93B1E} + + + {F27C42E6-CF39-9B72-8CD7-C29CA4ADD43B} + + + {12D20EC8-139C-C2B1-1A66-AC436C48C0A7} + + + {69E1179D-76EC-26DC-C3E6-6602ED26D783} + + + {413F481F-075C-2958-115C-D8268682FCB7} + + + {FFC6E1CC-C772-75E6-5087-FB5D4E016799} + + + {1182303F-ECA3-166D-AC0C-92C5E762CB93} + + + {EE1AE8C3-0908-8F53-A4E5-D930C7C97C26} + + + {61712B09-5783-ADFA-2001-5A0C3D7764EB} + + + {C3B2EB8A-1A2F-306F-AA78-3E9D1593788B} + + + {46535B56-3737-2BE8-E3A0-571BCBEB2DA4} + + + {2CB59E7C-D0E4-7D27-2ACF-C7ABADEE936D} + + + {5A0AA36E-3957-E413-14C6-31CBE15271DF} + + + {5FDBD6B1-9BBD-392F-4DA5-FEA40A9370C4} + + + {A92719C7-70BE-57C4-CE9E-A9BC9DFEB757} + + + {E980FADB-6E3F-B93C-DE02-CE4271C9BA93} + + + {F408DCA2-D5E2-0A3A-A064-A1D045889BC1} + + + {7BCEAB87-62FD-0327-EB5D-679E54EDB9B1} + + + {C2B9505B-27B4-F650-12BD-F477D4BBCBAA} + + + {796B7886-44A7-34CC-9B95-BF4FB2C7B6F4} + + + {8A80BA78-D3A8-C0F8-7FFD-61AA028CE852} + + + {7A53E6F1-1343-33B8-4CA8-1D7B714A0E76} + + + {D7E3D10F-3ED8-DFC5-6DB3-E4ACBF8678FB} + + + {75F1F352-251A-75E0-D941-8431588F5C1E} + + + {DB6E3D09-66DA-12DA-BAE8-A5BFFA7A14AC} + + + {8E43579F-C185-266D-DD67-F8B95BD80F2F} + + + {C60A6FCA-9462-922E-AD8D-69F10C9049AF} + + + {D56498EE-E354-1F00-5EEE-8CF7944BEAFB} + + + {61B2920C-494D-D8CB-C0C7-5DBF3D76D164} + + + {66C9B809-8739-A217-C78D-A15D6089B8E3} + + + {C413328B-5D81-89EE-F4F3-75752E700DE4} + + + {8EC9572F-3CCA-E930-74B6-CB6139DE0E17} + + + {B3141847-8F13-F67D-45B2-E3ECF6E09088} + + + {151B49D8-6102-F802-1C07-D59931BC0574} + + + {2D8D0E19-E676-83EB-38D9-F73500DD6B79} + + + {9E586194-C056-101C-5311-F2AF5191AC80} + + + {639E16C5-DA8B-ADBA-6E24-7B596378EAB2} + + + {422C46B7-0467-2DB0-BF3C-16DFCAFD69AC} + + + {8B4D1BAA-6DB4-CAEC-A0FA-271F354D5C61} + + + + + DSPModulePluginDemo\Source + + + DSPModulePluginDemo\Source + + + Juce Modules\juce_audio_basics\buffers + + + Juce Modules\juce_audio_basics\buffers + + + Juce Modules\juce_audio_basics\buffers + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\synthesisers + + + Juce Modules\juce_audio_basics + + + Juce Modules\juce_audio_basics + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\midi_io + + + Juce Modules\juce_audio_devices\midi_io + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\sources + + + Juce Modules\juce_audio_devices\sources + + + Juce Modules\juce_audio_devices + + + Juce Modules\juce_audio_devices + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis + + + Juce Modules\juce_audio_formats\codecs\oggvorbis + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\sampler + + + Juce Modules\juce_audio_formats + + + Juce Modules\juce_audio_formats + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\Standalone + + + Juce Modules\juce_audio_plugin_client\utility + + + Juce Modules\juce_audio_plugin_client\VST + + + Juce Modules\juce_audio_plugin_client\VST + + + Juce Modules\juce_audio_plugin_client + + + Juce Modules\juce_audio_plugin_client + + + Juce Modules\juce_audio_processors\format + + + Juce Modules\juce_audio_processors\format + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_utils\audio_cd + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\native + + + Juce Modules\juce_audio_utils\players + + + Juce Modules\juce_audio_utils\players + + + Juce Modules\juce_audio_utils + + + Juce Modules\juce_audio_utils + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\javascript + + + Juce Modules\juce_core\javascript + + + Juce Modules\juce_core\logging + + + Juce Modules\juce_core\logging + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\unit_tests + + + Juce Modules\juce_core\xml + + + Juce Modules\juce_core\xml + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core + + + Juce Modules\juce_core + + + Juce Modules\juce_data_structures\app_properties + + + Juce Modules\juce_data_structures\app_properties + + + Juce Modules\juce_data_structures\undomanager + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures + + + Juce Modules\juce_data_structures + + + Juce Modules\juce_dsp\containers + + + Juce Modules\juce_dsp\filter_design + + + Juce Modules\juce_dsp\frequency + + + Juce Modules\juce_dsp\frequency + + + Juce Modules\juce_dsp\frequency + + + Juce Modules\juce_dsp\frequency + + + Juce Modules\juce_dsp\maths + + + Juce Modules\juce_dsp\maths + + + Juce Modules\juce_dsp\maths + + + Juce Modules\juce_dsp\maths + + + Juce Modules\juce_dsp\native + + + Juce Modules\juce_dsp\native + + + Juce Modules\juce_dsp\native + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp + + + Juce Modules\juce_dsp + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\timers + + + Juce Modules\juce_events\timers + + + Juce Modules\juce_events + + + Juce Modules\juce_events + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\effects + + + Juce Modules\juce_graphics\effects + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats + + + Juce Modules\juce_graphics\image_formats + + + Juce Modules\juce_graphics\image_formats + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\placement + + + Juce Modules\juce_graphics + + + Juce Modules\juce_graphics + + + Juce Modules\juce_gui_basics\application + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\misc + + + Juce Modules\juce_gui_basics\misc + + + Juce Modules\juce_gui_basics\misc + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics + + + Juce Modules\juce_gui_basics + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\documents + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra + + + Juce Modules\juce_gui_extra + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\utils + + + Juce Modules\juce_opengl + + + Juce Modules\juce_opengl + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + + + DSPModulePluginDemo\Source + + + DSPModulePluginDemo\Source + + + Juce Modules\juce_audio_basics\audio_play_head + + + Juce Modules\juce_audio_basics\buffers + + + Juce Modules\juce_audio_basics\buffers + + + Juce Modules\juce_audio_basics\buffers + + + Juce Modules\juce_audio_basics\buffers + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\mpe + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\synthesisers + + + Juce Modules\juce_audio_basics + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\midi_io + + + Juce Modules\juce_audio_devices\midi_io + + + Juce Modules\juce_audio_devices\midi_io + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\sources + + + Juce Modules\juce_audio_devices\sources + + + Juce Modules\juce_audio_devices + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\private + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\protected + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\protected + + + Juce Modules\juce_audio_formats\codecs\flac\libFLAC\include\protected + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\books\coupled + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\books\coupled + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\books\floor + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\books\uncoupled + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib\modes + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis\libvorbis-1.3.2\lib + + + Juce Modules\juce_audio_formats\codecs\oggvorbis + + + Juce Modules\juce_audio_formats\codecs\oggvorbis + + + Juce Modules\juce_audio_formats\codecs\oggvorbis + + + Juce Modules\juce_audio_formats\codecs\oggvorbis + + + Juce Modules\juce_audio_formats\codecs\oggvorbis + + + Juce Modules\juce_audio_formats\codecs\oggvorbis + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\sampler + + + Juce Modules\juce_audio_formats + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\AU\CoreAudioUtilityClasses + + + Juce Modules\juce_audio_plugin_client\Standalone + + + Juce Modules\juce_audio_plugin_client\utility + + + Juce Modules\juce_audio_plugin_client\utility + + + Juce Modules\juce_audio_plugin_client\utility + + + Juce Modules\juce_audio_plugin_client\utility + + + Juce Modules\juce_audio_plugin_client\utility + + + Juce Modules\juce_audio_plugin_client\utility + + + Juce Modules\juce_audio_plugin_client\utility + + + Juce Modules\juce_audio_plugin_client\VST + + + Juce Modules\juce_audio_plugin_client + + + Juce Modules\juce_audio_processors\format + + + Juce Modules\juce_audio_processors\format + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_audio_utils\audio_cd + + + Juce Modules\juce_audio_utils\audio_cd + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\gui + + + Juce Modules\juce_audio_utils\players + + + Juce Modules\juce_audio_utils\players + + + Juce Modules\juce_audio_utils + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\javascript + + + Juce Modules\juce_core\javascript + + + Juce Modules\juce_core\logging + + + Juce Modules\juce_core\logging + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\unit_tests + + + Juce Modules\juce_core\xml + + + Juce Modules\juce_core\xml + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip\zlib + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core + + + Juce Modules\juce_data_structures\app_properties + + + Juce Modules\juce_data_structures\app_properties + + + Juce Modules\juce_data_structures\undomanager + + + Juce Modules\juce_data_structures\undomanager + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures + + + Juce Modules\juce_dsp\containers + + + Juce Modules\juce_dsp\containers + + + Juce Modules\juce_dsp\filter_design + + + Juce Modules\juce_dsp\frequency + + + Juce Modules\juce_dsp\frequency + + + Juce Modules\juce_dsp\frequency + + + Juce Modules\juce_dsp\maths + + + Juce Modules\juce_dsp\maths + + + Juce Modules\juce_dsp\maths + + + Juce Modules\juce_dsp\maths + + + Juce Modules\juce_dsp\maths + + + Juce Modules\juce_dsp\native + + + Juce Modules\juce_dsp\native + + + Juce Modules\juce_dsp\native + + + Juce Modules\juce_dsp\native + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\timers + + + Juce Modules\juce_events\timers + + + Juce Modules\juce_events + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\effects + + + Juce Modules\juce_graphics\effects + + + Juce Modules\juce_graphics\effects + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\placement + + + Juce Modules\juce_graphics\placement + + + Juce Modules\juce_graphics + + + Juce Modules\juce_gui_basics\application + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\misc + + + Juce Modules\juce_gui_basics\misc + + + Juce Modules\juce_gui_basics\misc + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\documents + + + Juce Modules\juce_gui_extra\embedding + + + Juce Modules\juce_gui_extra\embedding + + + Juce Modules\juce_gui_extra\embedding + + + Juce Modules\juce_gui_extra\embedding + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra + + + Juce Modules\juce_opengl\geometry + + + Juce Modules\juce_opengl\geometry + + + Juce Modules\juce_opengl\geometry + + + Juce Modules\juce_opengl\geometry + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\utils + + + Juce Modules\juce_opengl + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + + + DSPModulePluginDemo\Resources + + + DSPModulePluginDemo\Resources + + + Juce Modules\juce_audio_formats\codecs\flac + + + Juce Modules\juce_audio_formats\codecs\oggvorbis + + + Juce Modules\juce_graphics\image_formats\jpglib + + + Juce Modules\juce_graphics\image_formats\pnglib + + + + + Juce Library Code + + + diff --git a/examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_StandalonePlugin.vcxproj b/examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_StandalonePlugin.vcxproj new file mode 100644 index 0000000000..20be01016c --- /dev/null +++ b/examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_StandalonePlugin.vcxproj @@ -0,0 +1,161 @@ + + + + + + Debug + x64 + + + Release + x64 + + + + {8FA13B75-51B8-768E-89A3-57965E6A1D8B} + v141 + 10.0.15063.0 + + + + Application + false + v141 + v141 + 10.0.15063.0 + + + Application + false + true + v141 + v141 + 10.0.15063.0 + + + + + + + + v141 + 10.0.15063.0 + + + <_ProjectFileVersion>10.0.30319.1 + .exe + $(SolutionDir)$(Platform)\$(Configuration)\Standalone Plugin\ + $(Platform)\$(Configuration)\Standalone Plugin\ + DSPModulePluginDemo + true + $(LibraryPath);$(SolutionDir)$(Platform)\$(Configuration)\Shared Code + $(SolutionDir)$(Platform)\$(Configuration)\Standalone Plugin\ + $(Platform)\$(Configuration)\Standalone Plugin\ + DSPModulePluginDemo + true + $(LibraryPath);$(SolutionDir)$(Platform)\$(Configuration)\Shared Code + v141 + 10.0.15063.0 + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + Disabled + ProgramDatabase + ..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=1;%(PreprocessorDefinitions) + MultiThreadedDebug + true + + $(IntDir)\ + $(IntDir)\ + $(IntDir)\ + Level4 + true + true + stdcpp14 + + + _DEBUG;%(PreprocessorDefinitions) + + + $(OutDir)\DSPModulePluginDemo.exe + true + libcmt.lib; msvcrt.lib;;%(IgnoreSpecificDefaultLibraries) + true + $(IntDir)\DSPModulePluginDemo.pdb + Windows + true + DSPModulePluginDemo.lib;%(AdditionalDependencies) + + + true + $(IntDir)\DSPModulePluginDemo.bsc + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + Full + ..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=1;%(PreprocessorDefinitions) + MultiThreaded + true + + $(IntDir)\ + $(IntDir)\ + $(IntDir)\ + Level4 + true + true + Fast + stdcpp14 + + + NDEBUG;%(PreprocessorDefinitions) + + + $(OutDir)\DSPModulePluginDemo.exe + true + %(IgnoreSpecificDefaultLibraries) + false + $(IntDir)\DSPModulePluginDemo.pdb + Windows + true + true + true + DSPModulePluginDemo.lib;%(AdditionalDependencies) + + + true + $(IntDir)\DSPModulePluginDemo.bsc + + + + + + + + + + + + diff --git a/examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_StandalonePlugin.vcxproj.filters b/examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_StandalonePlugin.vcxproj.filters new file mode 100644 index 0000000000..1169605db3 --- /dev/null +++ b/examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_StandalonePlugin.vcxproj.filters @@ -0,0 +1,20 @@ + + + + + + {8B4D1BAA-6DB4-CAEC-A0FA-271F354D5C61} + + + + + Juce Library Code + + + + + + Juce Library Code + + + diff --git a/examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_VST.vcxproj b/examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_VST.vcxproj new file mode 100644 index 0000000000..414ba95628 --- /dev/null +++ b/examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_VST.vcxproj @@ -0,0 +1,161 @@ + + + + + + Debug + x64 + + + Release + x64 + + + + {FD5AC2E3-F359-FA2F-3515-BEFFBE1447A9} + v141 + 10.0.15063.0 + + + + DynamicLibrary + false + v141 + v141 + 10.0.15063.0 + + + DynamicLibrary + false + true + v141 + v141 + 10.0.15063.0 + + + + + + + + v141 + 10.0.15063.0 + + + <_ProjectFileVersion>10.0.30319.1 + .dll + $(SolutionDir)$(Platform)\$(Configuration)\VST\ + $(Platform)\$(Configuration)\VST\ + DSPModulePluginDemo + true + $(LibraryPath);$(SolutionDir)$(Platform)\$(Configuration)\Shared Code + $(SolutionDir)$(Platform)\$(Configuration)\VST\ + $(Platform)\$(Configuration)\VST\ + DSPModulePluginDemo + true + $(LibraryPath);$(SolutionDir)$(Platform)\$(Configuration)\Shared Code + v141 + 10.0.15063.0 + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + Disabled + ProgramDatabase + ..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=1;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;%(PreprocessorDefinitions) + MultiThreadedDebug + true + + $(IntDir)\ + $(IntDir)\ + $(IntDir)\ + Level4 + true + true + stdcpp14 + + + _DEBUG;%(PreprocessorDefinitions) + + + $(OutDir)\DSPModulePluginDemo.dll + true + libcmt.lib; msvcrt.lib;;%(IgnoreSpecificDefaultLibraries) + true + $(IntDir)\DSPModulePluginDemo.pdb + Windows + true + DSPModulePluginDemo.lib;%(AdditionalDependencies) + + + true + $(IntDir)\DSPModulePluginDemo.bsc + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + Full + ..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=1;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;%(PreprocessorDefinitions) + MultiThreaded + true + + $(IntDir)\ + $(IntDir)\ + $(IntDir)\ + Level4 + true + true + Fast + stdcpp14 + + + NDEBUG;%(PreprocessorDefinitions) + + + $(OutDir)\DSPModulePluginDemo.dll + true + %(IgnoreSpecificDefaultLibraries) + false + $(IntDir)\DSPModulePluginDemo.pdb + Windows + true + true + true + DSPModulePluginDemo.lib;%(AdditionalDependencies) + + + true + $(IntDir)\DSPModulePluginDemo.bsc + + + + + + + + + + + + diff --git a/examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_VST.vcxproj.filters b/examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_VST.vcxproj.filters new file mode 100644 index 0000000000..4439fc8959 --- /dev/null +++ b/examples/DSP module plugin demo/Builds/VisualStudio2017/DSPModulePluginDemo_VST.vcxproj.filters @@ -0,0 +1,20 @@ + + + + + + {8B4D1BAA-6DB4-CAEC-A0FA-271F354D5C61} + + + + + Juce Library Code + + + + + + Juce Library Code + + + diff --git a/examples/DSP module plugin demo/Builds/VisualStudio2017/resources.rc b/examples/DSP module plugin demo/Builds/VisualStudio2017/resources.rc new file mode 100644 index 0000000000..3545567da2 --- /dev/null +++ b/examples/DSP module plugin demo/Builds/VisualStudio2017/resources.rc @@ -0,0 +1,30 @@ +#ifdef JUCE_USER_DEFINED_RC_FILE + #include JUCE_USER_DEFINED_RC_FILE +#else + +#undef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#include + +VS_VERSION_INFO VERSIONINFO +FILEVERSION 1,0,0,0 +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + BEGIN + VALUE "CompanyName", "ROLI Ltd.\0" + VALUE "FileDescription", "DSPModulePluginDemo\0" + VALUE "FileVersion", "1.0.0\0" + VALUE "ProductName", "DSPModulePluginDemo\0" + VALUE "ProductVersion", "1.0.0\0" + END + END + + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END + +#endif diff --git a/examples/DSP module plugin demo/Builds/x64/Debug/Shared Code/DSPModulePluginDemo_SharedCode.log b/examples/DSP module plugin demo/Builds/x64/Debug/Shared Code/DSPModulePluginDemo_SharedCode.log new file mode 100644 index 0000000000..3c686d9ef2 --- /dev/null +++ b/examples/DSP module plugin demo/Builds/x64/Debug/Shared Code/DSPModulePluginDemo_SharedCode.log @@ -0,0 +1,18 @@ + PluginProcessor.cpp + PluginEditor.cpp + BinaryData.cpp + include_juce_audio_basics.cpp + include_juce_audio_devices.cpp + include_juce_audio_formats.cpp + include_juce_audio_plugin_client_utils.cpp + include_juce_audio_processors.cpp + include_juce_audio_utils.cpp + include_juce_core.cpp + include_juce_data_structures.cpp + include_juce_dsp.cpp + include_juce_events.cpp + include_juce_graphics.cpp + include_juce_gui_basics.cpp + include_juce_gui_extra.cpp + include_juce_opengl.cpp + DSPModulePluginDemo_SharedCode.vcxproj -> Z:\JUCE\examples\DSP module plugin demo\Builds\VisualStudio2017\x64\Debug\Shared Code\DSPModulePluginDemo.lib diff --git a/examples/DSP module plugin demo/DSP module plugin demo.jucer b/examples/DSP module plugin demo/DSP module plugin demo.jucer new file mode 100644 index 0000000000..282c0f438c --- /dev/null +++ b/examples/DSP module plugin demo/DSP module plugin demo.jucer @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/DSP module plugin demo/JuceLibraryCode/AppConfig.h b/examples/DSP module plugin demo/JuceLibraryCode/AppConfig.h new file mode 100644 index 0000000000..69c1fbf2cb --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/AppConfig.h @@ -0,0 +1,410 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + + There's a section below where you can add your own custom code safely, and the + Projucer will preserve the contents of that block, but the best way to change + any of these definitions is by using the Projucer's project settings. + + Any commented-out settings will assume their default values. + +*/ + +#pragma once + +//============================================================================== +// [BEGIN_USER_CODE_SECTION] + +// (You can add your own code in this section, and the Projucer will not overwrite it) + +// [END_USER_CODE_SECTION] + +/* + ============================================================================== + + In accordance with the terms of the JUCE 5 End-Use License Agreement, the + JUCE Code in SECTION A cannot be removed, changed or otherwise rendered + ineffective unless you have a JUCE Indie or Pro license, or are using JUCE + under the GPL v3 license. + + End User License Agreement: www.juce.com/juce-5-licence + ============================================================================== +*/ + +// BEGIN SECTION A + +#ifndef JUCE_DISPLAY_SPLASH_SCREEN + #define JUCE_DISPLAY_SPLASH_SCREEN 0 +#endif + +#ifndef JUCE_REPORT_APP_USAGE + #define JUCE_REPORT_APP_USAGE 0 +#endif + + +// END SECTION A + +#define JUCE_USE_DARK_SPLASH_SCREEN 1 + +//============================================================================== +#define JUCE_MODULE_AVAILABLE_juce_audio_basics 1 +#define JUCE_MODULE_AVAILABLE_juce_audio_devices 1 +#define JUCE_MODULE_AVAILABLE_juce_audio_formats 1 +#define JUCE_MODULE_AVAILABLE_juce_audio_plugin_client 1 +#define JUCE_MODULE_AVAILABLE_juce_audio_processors 1 +#define JUCE_MODULE_AVAILABLE_juce_audio_utils 1 +#define JUCE_MODULE_AVAILABLE_juce_core 1 +#define JUCE_MODULE_AVAILABLE_juce_data_structures 1 +#define JUCE_MODULE_AVAILABLE_juce_dsp 1 +#define JUCE_MODULE_AVAILABLE_juce_events 1 +#define JUCE_MODULE_AVAILABLE_juce_graphics 1 +#define JUCE_MODULE_AVAILABLE_juce_gui_basics 1 +#define JUCE_MODULE_AVAILABLE_juce_gui_extra 1 +#define JUCE_MODULE_AVAILABLE_juce_opengl 1 + +#define JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED 1 + +//============================================================================== +// juce_audio_devices flags: + +#ifndef JUCE_ASIO + //#define JUCE_ASIO 1 +#endif + +#ifndef JUCE_WASAPI + //#define JUCE_WASAPI 1 +#endif + +#ifndef JUCE_WASAPI_EXCLUSIVE + //#define JUCE_WASAPI_EXCLUSIVE 1 +#endif + +#ifndef JUCE_DIRECTSOUND + //#define JUCE_DIRECTSOUND 1 +#endif + +#ifndef JUCE_ALSA + //#define JUCE_ALSA 1 +#endif + +#ifndef JUCE_JACK + //#define JUCE_JACK 1 +#endif + +#ifndef JUCE_USE_ANDROID_OPENSLES + //#define JUCE_USE_ANDROID_OPENSLES 1 +#endif + +#ifndef JUCE_USE_WINRT_MIDI + //#define JUCE_USE_WINRT_MIDI 1 +#endif + +//============================================================================== +// juce_audio_formats flags: + +#ifndef JUCE_USE_FLAC + //#define JUCE_USE_FLAC 1 +#endif + +#ifndef JUCE_USE_OGGVORBIS + //#define JUCE_USE_OGGVORBIS 1 +#endif + +#ifndef JUCE_USE_MP3AUDIOFORMAT + //#define JUCE_USE_MP3AUDIOFORMAT 1 +#endif + +#ifndef JUCE_USE_LAME_AUDIO_FORMAT + //#define JUCE_USE_LAME_AUDIO_FORMAT 1 +#endif + +#ifndef JUCE_USE_WINDOWS_MEDIA_FORMAT + //#define JUCE_USE_WINDOWS_MEDIA_FORMAT 1 +#endif + +//============================================================================== +// juce_audio_plugin_client flags: + +#ifndef JUCE_FORCE_USE_LEGACY_PARAM_IDS + //#define JUCE_FORCE_USE_LEGACY_PARAM_IDS 1 +#endif + +#ifndef JUCE_USE_STUDIO_ONE_COMPATIBLE_PARAMETERS + //#define JUCE_USE_STUDIO_ONE_COMPATIBLE_PARAMETERS 1 +#endif + +//============================================================================== +// juce_audio_processors flags: + +#ifndef JUCE_PLUGINHOST_VST + //#define JUCE_PLUGINHOST_VST 1 +#endif + +#ifndef JUCE_PLUGINHOST_VST3 + //#define JUCE_PLUGINHOST_VST3 1 +#endif + +#ifndef JUCE_PLUGINHOST_AU + //#define JUCE_PLUGINHOST_AU 1 +#endif + +//============================================================================== +// juce_audio_utils flags: + +#ifndef JUCE_USE_CDREADER + //#define JUCE_USE_CDREADER 1 +#endif + +#ifndef JUCE_USE_CDBURNER + //#define JUCE_USE_CDBURNER 1 +#endif + +//============================================================================== +// juce_core flags: + +#ifndef JUCE_FORCE_DEBUG + //#define JUCE_FORCE_DEBUG 1 +#endif + +#ifndef JUCE_LOG_ASSERTIONS + //#define JUCE_LOG_ASSERTIONS 1 +#endif + +#ifndef JUCE_CHECK_MEMORY_LEAKS + //#define JUCE_CHECK_MEMORY_LEAKS 1 +#endif + +#ifndef JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES + //#define JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES 1 +#endif + +#ifndef JUCE_INCLUDE_ZLIB_CODE + //#define JUCE_INCLUDE_ZLIB_CODE 1 +#endif + +#ifndef JUCE_USE_CURL + //#define JUCE_USE_CURL 1 +#endif + +#ifndef JUCE_CATCH_UNHANDLED_EXCEPTIONS + //#define JUCE_CATCH_UNHANDLED_EXCEPTIONS 1 +#endif + +#ifndef JUCE_ALLOW_STATIC_NULL_VARIABLES + //#define JUCE_ALLOW_STATIC_NULL_VARIABLES 1 +#endif + +//============================================================================== +// juce_dsp flags: + +#ifndef JUCE_ASSERTION_FIRFILTER + //#define JUCE_ASSERTION_FIRFILTER 1 +#endif + +#ifndef JUCE_DSP_USE_INTEL_MKL + //#define JUCE_DSP_USE_INTEL_MKL 1 +#endif + +#ifndef JUCE_DSP_USE_SHARED_FFTW + //#define JUCE_DSP_USE_SHARED_FFTW 1 +#endif + +#ifndef JUCE_DSP_USE_STATIC_FFTW + //#define JUCE_DSP_USE_STATIC_FFTW 1 +#endif + +//============================================================================== +// juce_events flags: + +#ifndef JUCE_EXECUTE_APP_SUSPEND_ON_IOS_BACKGROUND_TASK + //#define JUCE_EXECUTE_APP_SUSPEND_ON_IOS_BACKGROUND_TASK 1 +#endif + +//============================================================================== +// juce_graphics flags: + +#ifndef JUCE_USE_COREIMAGE_LOADER + //#define JUCE_USE_COREIMAGE_LOADER 1 +#endif + +#ifndef JUCE_USE_DIRECTWRITE + //#define JUCE_USE_DIRECTWRITE 1 +#endif + +//============================================================================== +// juce_gui_basics flags: + +#ifndef JUCE_ENABLE_REPAINT_DEBUGGING + //#define JUCE_ENABLE_REPAINT_DEBUGGING 1 +#endif + +#ifndef JUCE_USE_XSHM + //#define JUCE_USE_XSHM 1 +#endif + +#ifndef JUCE_USE_XRENDER + //#define JUCE_USE_XRENDER 1 +#endif + +#ifndef JUCE_USE_XCURSOR + //#define JUCE_USE_XCURSOR 1 +#endif + +//============================================================================== +// juce_gui_extra flags: + +#ifndef JUCE_WEB_BROWSER + //#define JUCE_WEB_BROWSER 1 +#endif + +#ifndef JUCE_ENABLE_LIVE_CONSTANT_EDITOR + //#define JUCE_ENABLE_LIVE_CONSTANT_EDITOR 1 +#endif +//============================================================================== +#ifndef JUCE_STANDALONE_APPLICATION + #if defined(JucePlugin_Name) && defined(JucePlugin_Build_Standalone) + #define JUCE_STANDALONE_APPLICATION JucePlugin_Build_Standalone + #else + #define JUCE_STANDALONE_APPLICATION 0 + #endif +#endif + +//============================================================================== +// Audio plugin settings.. + +#ifndef JucePlugin_Build_VST + #define JucePlugin_Build_VST 1 +#endif +#ifndef JucePlugin_Build_VST3 + #define JucePlugin_Build_VST3 0 +#endif +#ifndef JucePlugin_Build_AU + #define JucePlugin_Build_AU 1 +#endif +#ifndef JucePlugin_Build_AUv3 + #define JucePlugin_Build_AUv3 0 +#endif +#ifndef JucePlugin_Build_RTAS + #define JucePlugin_Build_RTAS 0 +#endif +#ifndef JucePlugin_Build_AAX + #define JucePlugin_Build_AAX 0 +#endif +#ifndef JucePlugin_Build_Standalone + #define JucePlugin_Build_Standalone 1 +#endif +#ifndef JucePlugin_Enable_IAA + #define JucePlugin_Enable_IAA 0 +#endif +#ifndef JucePlugin_Name + #define JucePlugin_Name "DSP module plugin demo" +#endif +#ifndef JucePlugin_Desc + #define JucePlugin_Desc "DSP module plugin demo" +#endif +#ifndef JucePlugin_Manufacturer + #define JucePlugin_Manufacturer "ROLI Ltd." +#endif +#ifndef JucePlugin_ManufacturerWebsite + #define JucePlugin_ManufacturerWebsite "www.juce.com" +#endif +#ifndef JucePlugin_ManufacturerEmail + #define JucePlugin_ManufacturerEmail "info@juce.com" +#endif +#ifndef JucePlugin_ManufacturerCode + #define JucePlugin_ManufacturerCode 0x524f4c49 // 'ROLI' +#endif +#ifndef JucePlugin_PluginCode + #define JucePlugin_PluginCode 0x446d7064 // 'Dmpd' +#endif +#ifndef JucePlugin_IsSynth + #define JucePlugin_IsSynth 0 +#endif +#ifndef JucePlugin_WantsMidiInput + #define JucePlugin_WantsMidiInput 0 +#endif +#ifndef JucePlugin_ProducesMidiOutput + #define JucePlugin_ProducesMidiOutput 0 +#endif +#ifndef JucePlugin_IsMidiEffect + #define JucePlugin_IsMidiEffect 0 +#endif +#ifndef JucePlugin_EditorRequiresKeyboardFocus + #define JucePlugin_EditorRequiresKeyboardFocus 0 +#endif +#ifndef JucePlugin_Version + #define JucePlugin_Version 1.0.0 +#endif +#ifndef JucePlugin_VersionCode + #define JucePlugin_VersionCode 0x10000 +#endif +#ifndef JucePlugin_VersionString + #define JucePlugin_VersionString "1.0.0" +#endif +#ifndef JucePlugin_VSTUniqueID + #define JucePlugin_VSTUniqueID JucePlugin_PluginCode +#endif +#ifndef JucePlugin_VSTCategory + #define JucePlugin_VSTCategory kPlugCategEffect +#endif +#ifndef JucePlugin_AUMainType + #define JucePlugin_AUMainType kAudioUnitType_Effect +#endif +#ifndef JucePlugin_AUSubType + #define JucePlugin_AUSubType JucePlugin_PluginCode +#endif +#ifndef JucePlugin_AUExportPrefix + #define JucePlugin_AUExportPrefix DSPmoduleplugindemoAU +#endif +#ifndef JucePlugin_AUExportPrefixQuoted + #define JucePlugin_AUExportPrefixQuoted "DSPmoduleplugindemoAU" +#endif +#ifndef JucePlugin_AUManufacturerCode + #define JucePlugin_AUManufacturerCode JucePlugin_ManufacturerCode +#endif +#ifndef JucePlugin_CFBundleIdentifier + #define JucePlugin_CFBundleIdentifier com.ROLI.DSPmoduleplugindemo +#endif +#ifndef JucePlugin_RTASCategory + #define JucePlugin_RTASCategory ePlugInCategory_None +#endif +#ifndef JucePlugin_RTASManufacturerCode + #define JucePlugin_RTASManufacturerCode JucePlugin_ManufacturerCode +#endif +#ifndef JucePlugin_RTASProductId + #define JucePlugin_RTASProductId JucePlugin_PluginCode +#endif +#ifndef JucePlugin_RTASDisableBypass + #define JucePlugin_RTASDisableBypass 0 +#endif +#ifndef JucePlugin_RTASDisableMultiMono + #define JucePlugin_RTASDisableMultiMono 0 +#endif +#ifndef JucePlugin_AAXIdentifier + #define JucePlugin_AAXIdentifier com.yourcompany.DSPmoduleplugindemo +#endif +#ifndef JucePlugin_AAXManufacturerCode + #define JucePlugin_AAXManufacturerCode JucePlugin_ManufacturerCode +#endif +#ifndef JucePlugin_AAXProductId + #define JucePlugin_AAXProductId JucePlugin_PluginCode +#endif +#ifndef JucePlugin_AAXCategory + #define JucePlugin_AAXCategory AAX_ePlugInCategory_Dynamics +#endif +#ifndef JucePlugin_AAXDisableBypass + #define JucePlugin_AAXDisableBypass 0 +#endif +#ifndef JucePlugin_AAXDisableMultiMono + #define JucePlugin_AAXDisableMultiMono 0 +#endif +#ifndef JucePlugin_IAAType + #define JucePlugin_IAAType 0x61757278 // 'aurx' +#endif +#ifndef JucePlugin_IAASubType + #define JucePlugin_IAASubType JucePlugin_PluginCode +#endif +#ifndef JucePlugin_IAAName + #define JucePlugin_IAAName "ROLI Ltd.: DSP module plugin demo" +#endif diff --git a/examples/DSP module plugin demo/JuceLibraryCode/BinaryData.cpp b/examples/DSP module plugin demo/JuceLibraryCode/BinaryData.cpp new file mode 100644 index 0000000000..42a37114d3 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/BinaryData.cpp @@ -0,0 +1,1505 @@ +/* ==================================== JUCER_BINARY_RESOURCE ==================================== + + This is an auto-generated file: Any edits you make may be overwritten! + +*/ + +namespace BinaryData +{ + +//================== Impulse1.wav ================== +static const unsigned char temp_binary_data_0[] = +{ 82,73,70,70,126,96,1,0,87,65,86,69,102,109,116,32,16,0,0,0,1,0,1,0,68,172,0,0,136,88,1,0,2,0,16,0,100,97,116,97,90,96,1,0,127,21,151,64,230,104,184,126,225,120,232,97,57,69,88,45,227,27,38,18,220,11,103,5,176,2,232,5,154,10,167,9,251,255,163,236,190, +216,29,207,223,212,251,228,199,245,24,253,183,247,114,235,241,226,23,226,178,230,237,235,94,238,102,239,122,239,119,237,243,231,233,223,35,216,224,212,156,214,186,218,111,224,177,230,45,236,78,241,140,243,206,241,67,238,53,235,88,235,105,239,7,244,209, +244,87,242,46,238,65,235,54,236,48,240,217,244,177,247,106,247,171,244,109,241,181,238,58,237,21,237,175,237,67,238,132,238,51,239,136,241,189,244,136,246,201,245,193,243,105,242,110,242,174,243,15,245,144,245,117,245,172,245,12,247,51,250,200,253,107, +255,104,254,24,252,134,250,247,250,172,253,146,1,180,4,188,5,159,4,174,2,111,1,219,0,197,0,166,1,126,3,250,5,149,8,91,10,133,10,9,9,149,6,115,4,190,3,109,4,145,5,34,6,252,5,32,6,181,7,244,10,1,15,119,18,81,20,177,20,30,20,160,18,163,16,0,15,224,13,8, +13,76,12,197,11,166,11,185,11,94,11,40,10,52,8,63,6,61,5,136,5,247,6,1,9,206,10,213,11,104,12,42,13,152,14,174,16,197,18,246,19,187,19,34,18,163,15,31,13,91,11,158,10,143,10,118,10,214,9,236,8,47,8,201,7,139,7,4,7,9,6,249,4,57,4,225,3,249,3,134,4,96, +5,59,6,9,7,235,7,209,8,83,9,0,9,204,7,33,6,143,4,151,3,117,3,197,3,206,3,37,3,232,1,124,0,63,255,97,254,223,253,144,253,85,253,12,253,130,252,174,251,198,250,34,250,21,250,205,250,38,252,195,253,81,255,125,0,251,0,204,0,65,0,146,255,197,254,221,253,236, +252,233,251,178,250,88,249,40,248,85,247,234,246,219,246,18,247,118,247,236,247,81,248,132,248,147,248,172,248,215,248,243,248,238,248,212,248,190,248,187,248,200,248,220,248,254,248,52,249,138,249,232,249,22,250,19,250,5,250,240,249,188,249,95,249,216, +248,56,248,168,247,91,247,129,247,25,248,235,248,190,249,132,250,57,251,206,251,83,252,236,252,143,253,255,253,39,254,41,254,29,254,20,254,34,254,50,254,21,254,201,253,110,253,47,253,27,253,5,253,173,252,28,252,161,251,133,251,206,251,98,252,41,253,252, +253,151,254,206,254,155,254,38,254,199,253,181,253,236,253,100,254,8,255,146,255,203,255,173,255,80,255,241,254,218,254,16,255,130,255,60,0,34,1,206,1,253,1,208,1,134,1,60,1,24,1,91,1,241,1,123,2,208,2,16,3,84,3,174,3,36,4,160,4,23,5,109,5,168,5,14,6, +148,6,230,6,9,7,43,7,66,7,48,7,228,6,90,6,160,5,195,4,234,3,93,3,92,3,235,3,180,4,92,5,183,5,180,5,70,5,141,4,204,3,56,3,239,2,1,3,96,3,220,3,60,4,79,4,253,3,106,3,191,2,34,2,189,1,145,1,124,1,118,1,134,1,136,1,88,1,21,1,229,0,203,0,199,0,214,0,235,0, +249,0,236,0,190,0,140,0,126,0,167,0,236,0,44,1,89,1,127,1,171,1,202,1,195,1,152,1,89,1,23,1,236,0,214,0,187,0,138,0,66,0,235,255,153,255,87,255,33,255,238,254,173,254,89,254,5,254,199,253,176,253,207,253,20,254,95,254,149,254,177,254,193,254,196,254, +163,254,101,254,54,254,33,254,25,254,38,254,79,254,107,254,55,254,158,253,252,252,198,252,1,253,97,253,170,253,189,253,160,253,126,253,120,253,153,253,231,253,69,254,134,254,155,254,153,254,148,254,152,254,159,254,150,254,120,254,89,254,80,254,107,254, +154,254,198,254,221,254,195,254,137,254,94,254,70,254,51,254,42,254,49,254,49,254,26,254,8,254,22,254,53,254,62,254,32,254,226,253,170,253,160,253,205,253,44,254,189,254,80,255,185,255,12,0,72,0,88,0,85,0,74,0,45,0,18,0,11,0,26,0,63,0,106,0,122,0,76, +0,212,255,62,255,212,254,211,254,76,255,26,0,240,0,178,1,125,2,47,3,84,3,155,2,14,1,55,255,230,253,102,253,123,253,243,253,131,254,0,255,123,255,188,255,113,255,188,254,253,253,132,253,144,253,37,254,240,254,189,255,134,0,15,1,48,1,16,1,223,0,209,0,10, +1,82,1,130,1,176,1,205,1,180,1,126,1,97,1,107,1,138,1,174,1,198,1,221,1,13,2,57,2,48,2,0,2,236,1,30,2,112,2,181,2,228,2,252,2,235,2,164,2,74,2,9,2,212,1,144,1,72,1,15,1,247,0,243,0,209,0,128,0,57,0,48,0,84,0,118,0,138,0,148,0,154,0,150,0,132,0,124,0, +144,0,181,0,211,0,225,0,239,0,13,1,46,1,57,1,44,1,13,1,235,0,209,0,188,0,147,0,69,0,220,255,109,255,9,255,200,254,186,254,206,254,243,254,43,255,107,255,160,255,184,255,181,255,178,255,186,255,178,255,144,255,109,255,85,255,73,255,76,255,82,255,86,255, +95,255,102,255,101,255,104,255,115,255,119,255,98,255,56,255,17,255,253,254,246,254,246,254,244,254,229,254,208,254,194,254,197,254,216,254,242,254,253,254,247,254,247,254,16,255,77,255,168,255,1,0,67,0,104,0,106,0,81,0,36,0,229,255,155,255,84,255,27, +255,250,254,247,254,254,254,9,255,32,255,70,255,127,255,205,255,38,0,130,0,203,0,227,0,193,0,119,0,36,0,225,255,179,255,145,255,123,255,113,255,101,255,82,255,62,255,34,255,11,255,17,255,47,255,89,255,136,255,185,255,241,255,44,0,86,0,103,0,97,0,77,0, +57,0,49,0,45,0,29,0,252,255,216,255,199,255,209,255,236,255,10,0,37,0,59,0,79,0,99,0,101,0,69,0,11,0,201,255,152,255,136,255,145,255,154,255,161,255,175,255,196,255,226,255,11,0,56,0,89,0,104,0,103,0,99,0,99,0,96,0,83,0,79,0,95,0,124,0,152,0,169,0,182, +0,195,0,196,0,176,0,144,0,108,0,71,0,42,0,25,0,12,0,253,255,239,255,228,255,218,255,215,255,212,255,198,255,189,255,210,255,254,255,32,0,39,0,29,0,7,0,230,255,196,255,168,255,147,255,136,255,141,255,153,255,164,255,172,255,173,255,164,255,138,255,114, +255,114,255,140,255,176,255,216,255,0,0,42,0,85,0,113,0,117,0,109,0,101,0,105,0,131,0,163,0,188,0,200,0,193,0,178,0,179,0,195,0,205,0,193,0,158,0,117,0,82,0,49,0,14,0,234,255,200,255,182,255,192,255,222,255,245,255,243,255,219,255,193,255,186,255,192, +255,196,255,193,255,175,255,137,255,98,255,77,255,62,255,56,255,73,255,106,255,138,255,162,255,176,255,191,255,217,255,249,255,23,0,51,0,80,0,110,0,137,0,153,0,147,0,116,0,78,0,60,0,71,0,96,0,127,0,159,0,180,0,180,0,170,0,159,0,151,0,152,0,161,0,165, +0,151,0,121,0,85,0,51,0,21,0,255,255,242,255,236,255,237,255,246,255,253,255,242,255,212,255,177,255,157,255,157,255,167,255,179,255,183,255,183,255,183,255,182,255,174,255,156,255,141,255,136,255,132,255,117,255,104,255,101,255,106,255,126,255,165,255, +198,255,210,255,206,255,195,255,193,255,213,255,246,255,17,0,33,0,43,0,53,0,63,0,74,0,79,0,67,0,37,0,11,0,7,0,24,0,43,0,52,0,44,0,25,0,10,0,12,0,30,0,51,0,65,0,66,0,54,0,37,0,26,0,18,0,253,255,217,255,178,255,157,255,152,255,151,255,143,255,129,255,114, +255,105,255,104,255,111,255,129,255,151,255,168,255,176,255,171,255,149,255,117,255,93,255,86,255,96,255,113,255,133,255,157,255,194,255,240,255,19,0,36,0,46,0,59,0,73,0,81,0,81,0,72,0,63,0,57,0,53,0,51,0,53,0,52,0,45,0,30,0,10,0,246,255,228,255,210, +255,206,255,227,255,13,0,53,0,80,0,94,0,96,0,86,0,66,0,33,0,249,255,216,255,190,255,174,255,171,255,177,255,191,255,220,255,4,0,46,0,82,0,107,0,116,0,107,0,83,0,55,0,37,0,15,0,238,255,222,255,241,255,23,0,61,0,86,0,94,0,88,0,77,0,72,0,75,0,66,0,36,0, +9,0,10,0,40,0,81,0,115,0,121,0,82,0,24,0,234,255,209,255,200,255,217,255,249,255,0,0,227,255,196,255,191,255,207,255,227,255,244,255,5,0,27,0,47,0,52,0,43,0,26,0,255,255,224,255,209,255,220,255,2,0,50,0,90,0,125,0,164,0,185,0,173,0,148,0,121,0,90,0,58, +0,25,0,1,0,237,255,231,255,228,255,226,255,218,255,204,255,204,255,221,255,241,255,254,255,6,0,255,255,239,255,224,255,227,255,239,255,246,255,243,255,242,255,242,255,238,255,229,255,218,255,201,255,188,255,185,255,183,255,174,255,162,255,157,255,172, +255,206,255,243,255,12,0,27,0,54,0,106,0,161,0,200,0,216,0,214,0,206,0,199,0,177,0,126,0,41,0,192,255,89,255,12,255,225,254,219,254,245,254,37,255,113,255,212,255,51,0,116,0,147,0,159,0,176,0,197,0,218,0,237,0,245,0,226,0,169,0,85,0,245,255,135,255,15, +255,163,254,102,254,118,254,205,254,54,255,142,255,208,255,248,255,15,0,31,0,32,0,21,0,11,0,5,0,5,0,15,0,18,0,249,255,194,255,131,255,85,255,61,255,49,255,49,255,66,255,95,255,130,255,175,255,227,255,14,0,39,0,47,0,48,0,52,0,55,0,45,0,35,0,43,0,60,0, +61,0,31,0,228,255,169,255,137,255,137,255,160,255,189,255,222,255,10,0,65,0,132,0,192,0,215,0,186,0,122,0,57,0,8,0,232,255,211,255,196,255,193,255,205,255,221,255,230,255,224,255,201,255,177,255,169,255,171,255,175,255,181,255,190,255,204,255,231,255, +7,0,23,0,16,0,253,255,238,255,236,255,235,255,223,255,208,255,205,255,218,255,239,255,1,0,5,0,242,255,205,255,169,255,151,255,156,255,172,255,183,255,197,255,216,255,231,255,232,255,215,255,182,255,147,255,131,255,149,255,200,255,11,0,74,0,124,0,157, +0,181,0,197,0,192,0,164,0,129,0,103,0,96,0,103,0,112,0,116,0,118,0,119,0,122,0,129,0,133,0,128,0,114,0,99,0,95,0,105,0,121,0,136,0,146,0,150,0,142,0,120,0,90,0,55,0,16,0,235,255,210,255,201,255,208,255,227,255,251,255,15,0,33,0,53,0,74,0,94,0,109,0,116, +0,113,0,103,0,84,0,62,0,43,0,29,0,14,0,3,0,2,0,11,0,23,0,29,0,32,0,36,0,42,0,39,0,28,0,11,0,253,255,246,255,243,255,243,255,248,255,0,0,0,0,247,255,238,255,232,255,222,255,210,255,202,255,205,255,220,255,245,255,20,0,47,0,57,0,49,0,30,0,5,0,225,255,186, +255,154,255,137,255,132,255,133,255,139,255,139,255,132,255,127,255,133,255,144,255,152,255,154,255,160,255,171,255,185,255,193,255,196,255,202,255,210,255,212,255,211,255,212,255,213,255,212,255,208,255,204,255,206,255,215,255,226,255,237,255,247,255, +251,255,247,255,240,255,235,255,237,255,247,255,6,0,27,0,47,0,53,0,47,0,38,0,28,0,23,0,26,0,35,0,43,0,43,0,35,0,30,0,27,0,10,0,232,255,192,255,156,255,128,255,114,255,108,255,98,255,80,255,61,255,51,255,55,255,71,255,90,255,105,255,112,255,111,255,105, +255,102,255,105,255,112,255,125,255,148,255,181,255,209,255,221,255,217,255,204,255,194,255,196,255,211,255,237,255,13,0,45,0,71,0,94,0,110,0,110,0,100,0,85,0,69,0,57,0,55,0,62,0,72,0,78,0,81,0,86,0,95,0,107,0,119,0,123,0,115,0,98,0,75,0,52,0,38,0,37, +0,46,0,60,0,78,0,99,0,110,0,102,0,77,0,50,0,30,0,18,0,10,0,11,0,21,0,37,0,51,0,59,0,60,0,53,0,46,0,45,0,58,0,83,0,102,0,105,0,98,0,90,0,85,0,83,0,77,0,70,0,64,0,58,0,55,0,57,0,59,0,56,0,47,0,44,0,60,0,93,0,122,0,132,0,116,0,86,0,54,0,26,0,4,0,250,255, +252,255,3,0,13,0,29,0,51,0,66,0,62,0,47,0,29,0,10,0,0,0,1,0,8,0,14,0,18,0,22,0,29,0,32,0,23,0,8,0,255,255,245,255,225,255,201,255,186,255,183,255,190,255,197,255,200,255,208,255,222,255,239,255,255,255,12,0,21,0,21,0,12,0,254,255,242,255,238,255,241, +255,246,255,250,255,249,255,242,255,229,255,213,255,199,255,194,255,199,255,212,255,231,255,250,255,7,0,12,0,11,0,3,0,241,255,223,255,218,255,220,255,213,255,196,255,178,255,167,255,168,255,179,255,194,255,212,255,225,255,223,255,209,255,190,255,167, +255,137,255,105,255,86,255,86,255,100,255,121,255,142,255,157,255,165,255,174,255,189,255,206,255,216,255,219,255,214,255,197,255,174,255,148,255,128,255,125,255,138,255,156,255,175,255,194,255,211,255,221,255,226,255,234,255,240,255,240,255,240,255, +250,255,15,0,41,0,66,0,85,0,95,0,97,0,94,0,87,0,73,0,49,0,20,0,254,255,245,255,245,255,249,255,0,0,9,0,17,0,29,0,46,0,56,0,54,0,49,0,51,0,55,0,51,0,42,0,37,0,31,0,20,0,10,0,6,0,4,0,3,0,6,0,18,0,27,0,25,0,12,0,255,255,248,255,248,255,249,255,253,255,3, +0,3,0,253,255,247,255,243,255,244,255,249,255,249,255,244,255,241,255,248,255,11,0,34,0,55,0,65,0,67,0,70,0,73,0,72,0,71,0,67,0,59,0,51,0,52,0,60,0,68,0,75,0,82,0,85,0,81,0,74,0,73,0,77,0,84,0,90,0,99,0,107,0,108,0,97,0,77,0,55,0,36,0,24,0,25,0,35,0, +50,0,65,0,76,0,80,0,78,0,61,0,31,0,0,0,236,255,231,255,235,255,241,255,246,255,254,255,8,0,15,0,16,0,20,0,29,0,36,0,30,0,12,0,247,255,229,255,219,255,219,255,230,255,249,255,13,0,28,0,37,0,42,0,44,0,43,0,34,0,17,0,251,255,235,255,227,255,221,255,218, +255,213,255,205,255,193,255,183,255,177,255,175,255,172,255,160,255,140,255,123,255,116,255,115,255,116,255,120,255,124,255,128,255,133,255,140,255,144,255,143,255,141,255,139,255,139,255,141,255,146,255,154,255,168,255,186,255,200,255,203,255,198,255, +190,255,181,255,173,255,169,255,165,255,162,255,162,255,165,255,171,255,180,255,189,255,195,255,204,255,220,255,236,255,246,255,251,255,255,255,2,0,7,0,16,0,27,0,31,0,23,0,7,0,243,255,221,255,197,255,180,255,177,255,185,255,201,255,224,255,253,255,25, +0,44,0,53,0,57,0,59,0,63,0,67,0,72,0,77,0,78,0,67,0,49,0,34,0,31,0,37,0,46,0,60,0,78,0,93,0,106,0,119,0,136,0,158,0,179,0,192,0,197,0,195,0,185,0,162,0,132,0,105,0,84,0,73,0,68,0,68,0,65,0,59,0,54,0,50,0,45,0,35,0,29,0,35,0,49,0,62,0,69,0,75,0,81,0,82, +0,76,0,67,0,61,0,59,0,57,0,55,0,45,0,23,0,249,255,225,255,218,255,227,255,242,255,1,0,11,0,15,0,11,0,0,0,241,255,222,255,203,255,194,255,194,255,198,255,203,255,206,255,205,255,204,255,212,255,230,255,249,255,0,0,251,255,239,255,227,255,219,255,216,255, +218,255,223,255,233,255,245,255,252,255,251,255,239,255,218,255,199,255,191,255,199,255,219,255,244,255,8,0,18,0,18,0,13,0,4,0,247,255,232,255,221,255,216,255,215,255,220,255,230,255,238,255,239,255,241,255,245,255,242,255,233,255,222,255,217,255,217, +255,221,255,225,255,225,255,225,255,224,255,223,255,223,255,222,255,215,255,204,255,193,255,184,255,174,255,164,255,154,255,150,255,152,255,159,255,169,255,179,255,185,255,187,255,185,255,188,255,197,255,209,255,219,255,226,255,226,255,221,255,214,255, +208,255,208,255,210,255,207,255,199,255,193,255,192,255,196,255,207,255,219,255,231,255,247,255,13,0,35,0,53,0,61,0,59,0,50,0,39,0,30,0,27,0,31,0,39,0,44,0,43,0,39,0,39,0,42,0,44,0,44,0,47,0,51,0,48,0,34,0,14,0,252,255,239,255,228,255,222,255,226,255, +237,255,248,255,253,255,252,255,249,255,243,255,233,255,222,255,221,255,230,255,241,255,252,255,4,0,7,0,6,0,4,0,2,0,3,0,7,0,13,0,18,0,25,0,33,0,40,0,46,0,50,0,54,0,62,0,75,0,90,0,102,0,107,0,109,0,108,0,104,0,100,0,95,0,90,0,87,0,94,0,108,0,122,0,128, +0,125,0,121,0,121,0,120,0,112,0,98,0,81,0,61,0,42,0,28,0,18,0,13,0,12,0,7,0,1,0,255,255,254,255,249,255,248,255,251,255,4,0,13,0,15,0,12,0,8,0,4,0,255,255,249,255,239,255,224,255,208,255,200,255,203,255,214,255,227,255,239,255,247,255,253,255,2,0,4,0, +5,0,255,255,242,255,224,255,208,255,200,255,196,255,194,255,194,255,196,255,194,255,189,255,187,255,192,255,200,255,211,255,222,255,231,255,232,255,227,255,222,255,222,255,223,255,225,255,229,255,230,255,227,255,221,255,213,255,205,255,199,255,191,255, +179,255,166,255,158,255,160,255,168,255,178,255,191,255,208,255,225,255,240,255,250,255,2,0,9,0,16,0,16,0,9,0,255,255,246,255,236,255,223,255,210,255,199,255,190,255,181,255,178,255,184,255,193,255,199,255,203,255,206,255,212,255,220,255,228,255,234, +255,237,255,235,255,229,255,220,255,208,255,199,255,200,255,208,255,216,255,225,255,235,255,245,255,251,255,255,255,7,0,20,0,36,0,57,0,76,0,88,0,87,0,77,0,62,0,47,0,32,0,15,0,0,0,244,255,234,255,231,255,236,255,247,255,6,0,29,0,54,0,75,0,87,0,88,0,84, +0,75,0,58,0,34,0,9,0,245,255,232,255,227,255,228,255,228,255,225,255,220,255,217,255,220,255,225,255,230,255,235,255,242,255,248,255,254,255,6,0,18,0,33,0,48,0,60,0,69,0,77,0,80,0,81,0,82,0,88,0,98,0,110,0,123,0,131,0,132,0,124,0,109,0,90,0,71,0,57,0, +50,0,47,0,47,0,46,0,42,0,37,0,32,0,29,0,29,0,29,0,30,0,32,0,32,0,31,0,31,0,31,0,33,0,35,0,34,0,32,0,25,0,11,0,249,255,232,255,222,255,218,255,221,255,226,255,236,255,251,255,14,0,34,0,53,0,70,0,77,0,71,0,55,0,37,0,21,0,8,0,255,255,252,255,3,0,16,0,27, +0,31,0,28,0,23,0,23,0,28,0,34,0,33,0,21,0,1,0,236,255,224,255,223,255,222,255,215,255,207,255,207,255,209,255,208,255,204,255,202,255,198,255,189,255,183,255,186,255,189,255,186,255,179,255,176,255,175,255,174,255,179,255,196,255,217,255,229,255,231, +255,227,255,221,255,214,255,211,255,216,255,224,255,227,255,222,255,210,255,194,255,180,255,172,255,170,255,170,255,175,255,186,255,199,255,211,255,218,255,219,255,216,255,211,255,205,255,200,255,196,255,190,255,181,255,171,255,166,255,168,255,174,255, +183,255,191,255,200,255,209,255,215,255,217,255,216,255,214,255,212,255,212,255,213,255,215,255,216,255,212,255,205,255,193,255,180,255,171,255,171,255,176,255,183,255,191,255,208,255,232,255,3,0,22,0,29,0,24,0,11,0,250,255,238,255,234,255,238,255,249, +255,6,0,17,0,27,0,33,0,33,0,30,0,27,0,23,0,20,0,19,0,26,0,36,0,47,0,55,0,61,0,66,0,68,0,65,0,58,0,54,0,52,0,50,0,45,0,42,0,43,0,48,0,57,0,69,0,81,0,91,0,101,0,112,0,120,0,119,0,109,0,94,0,83,0,77,0,72,0,66,0,58,0,51,0,47,0,46,0,49,0,57,0,67,0,80,0,94, +0,106,0,113,0,112,0,101,0,80,0,55,0,29,0,9,0,253,255,251,255,0,0,9,0,20,0,28,0,33,0,36,0,35,0,31,0,24,0,15,0,5,0,0,0,1,0,3,0,0,0,248,255,239,255,232,255,229,255,229,255,234,255,243,255,250,255,253,255,254,255,253,255,248,255,243,255,243,255,247,255,254, +255,4,0,7,0,4,0,253,255,246,255,241,255,238,255,236,255,230,255,223,255,220,255,219,255,220,255,225,255,234,255,245,255,253,255,3,0,5,0,2,0,251,255,242,255,236,255,234,255,236,255,242,255,252,255,6,0,15,0,24,0,34,0,41,0,42,0,40,0,38,0,38,0,35,0,28,0, +19,0,15,0,15,0,18,0,22,0,23,0,18,0,10,0,3,0,252,255,243,255,231,255,221,255,216,255,218,255,224,255,234,255,242,255,245,255,244,255,240,255,236,255,235,255,231,255,223,255,217,255,214,255,217,255,223,255,231,255,237,255,239,255,233,255,222,255,210,255, +198,255,189,255,186,255,190,255,197,255,204,255,211,255,217,255,219,255,218,255,219,255,221,255,222,255,223,255,223,255,217,255,205,255,191,255,185,255,187,255,196,255,208,255,221,255,233,255,240,255,239,255,235,255,233,255,230,255,227,255,222,255,218, +255,217,255,218,255,220,255,222,255,225,255,225,255,224,255,228,255,238,255,249,255,0,0,255,255,249,255,241,255,235,255,235,255,239,255,244,255,248,255,252,255,0,0,1,0,1,0,254,255,249,255,244,255,242,255,240,255,239,255,237,255,238,255,243,255,250,255, +3,0,9,0,12,0,13,0,14,0,13,0,9,0,3,0,253,255,246,255,242,255,244,255,249,255,0,0,8,0,19,0,27,0,32,0,35,0,40,0,46,0,52,0,54,0,52,0,47,0,42,0,41,0,44,0,47,0,50,0,55,0,61,0,65,0,67,0,67,0,61,0,52,0,46,0,45,0,45,0,44,0,40,0,38,0,38,0,41,0,45,0,47,0,43,0,28, +0,8,0,246,255,235,255,229,255,227,255,226,255,225,255,221,255,218,255,220,255,226,255,235,255,247,255,3,0,11,0,14,0,15,0,10,0,0,0,245,255,236,255,229,255,228,255,235,255,247,255,2,0,8,0,6,0,253,255,247,255,251,255,6,0,18,0,27,0,31,0,29,0,24,0,22,0,25, +0,30,0,33,0,37,0,42,0,46,0,46,0,42,0,34,0,27,0,27,0,32,0,36,0,36,0,28,0,17,0,7,0,0,0,252,255,250,255,251,255,0,0,7,0,14,0,16,0,11,0,1,0,247,255,245,255,250,255,255,255,0,0,255,255,255,255,253,255,251,255,253,255,5,0,17,0,27,0,34,0,40,0,44,0,43,0,34,0, +22,0,10,0,2,0,254,255,252,255,248,255,241,255,234,255,228,255,219,255,207,255,201,255,205,255,214,255,223,255,229,255,230,255,229,255,226,255,223,255,221,255,217,255,209,255,198,255,187,255,178,255,172,255,170,255,172,255,178,255,187,255,198,255,210, +255,223,255,235,255,244,255,250,255,251,255,249,255,248,255,250,255,253,255,254,255,253,255,252,255,254,255,2,0,8,0,15,0,22,0,24,0,20,0,10,0,0,0,250,255,248,255,247,255,243,255,237,255,233,255,231,255,231,255,230,255,226,255,223,255,224,255,225,255,226, +255,225,255,225,255,225,255,225,255,227,255,232,255,241,255,252,255,4,0,9,0,11,0,9,0,2,0,251,255,245,255,242,255,242,255,246,255,255,255,9,0,18,0,24,0,30,0,34,0,34,0,29,0,24,0,22,0,21,0,23,0,28,0,34,0,38,0,37,0,34,0,29,0,23,0,19,0,20,0,25,0,29,0,33,0, +37,0,41,0,41,0,39,0,36,0,35,0,34,0,31,0,26,0,20,0,15,0,14,0,15,0,19,0,22,0,23,0,23,0,22,0,22,0,19,0,13,0,4,0,252,255,246,255,245,255,248,255,252,255,3,0,11,0,17,0,19,0,15,0,8,0,0,0,252,255,252,255,254,255,0,0,255,255,253,255,253,255,255,255,3,0,5,0,6, +0,6,0,2,0,252,255,247,255,246,255,249,255,0,0,7,0,10,0,11,0,10,0,11,0,13,0,15,0,16,0,12,0,6,0,254,255,246,255,238,255,230,255,224,255,222,255,224,255,229,255,235,255,242,255,251,255,4,0,12,0,15,0,15,0,14,0,13,0,8,0,1,0,250,255,244,255,237,255,235,255, +238,255,244,255,252,255,6,0,15,0,22,0,25,0,21,0,11,0,255,255,245,255,237,255,233,255,233,255,234,255,234,255,236,255,243,255,250,255,252,255,252,255,250,255,245,255,237,255,230,255,225,255,223,255,223,255,223,255,226,255,229,255,230,255,227,255,222,255, +219,255,218,255,219,255,224,255,231,255,240,255,247,255,249,255,250,255,250,255,250,255,245,255,236,255,225,255,222,255,226,255,232,255,235,255,239,255,243,255,248,255,253,255,255,255,254,255,248,255,239,255,234,255,235,255,241,255,245,255,247,255,248, +255,249,255,249,255,248,255,247,255,245,255,242,255,240,255,238,255,235,255,231,255,225,255,221,255,222,255,225,255,228,255,234,255,241,255,247,255,253,255,4,0,10,0,13,0,15,0,21,0,27,0,33,0,39,0,43,0,44,0,44,0,45,0,48,0,51,0,53,0,54,0,54,0,52,0,50,0, +47,0,44,0,44,0,46,0,45,0,40,0,30,0,18,0,9,0,7,0,8,0,10,0,9,0,2,0,250,255,248,255,251,255,0,0,2,0,2,0,3,0,7,0,10,0,11,0,7,0,255,255,247,255,244,255,245,255,250,255,1,0,12,0,26,0,38,0,46,0,46,0,40,0,31,0,25,0,27,0,35,0,44,0,50,0,54,0,58,0,60,0,59,0,56, +0,48,0,40,0,32,0,29,0,28,0,31,0,33,0,33,0,32,0,29,0,26,0,21,0,14,0,5,0,252,255,244,255,238,255,233,255,230,255,229,255,227,255,224,255,221,255,217,255,214,255,210,255,204,255,198,255,193,255,190,255,191,255,195,255,198,255,199,255,197,255,195,255,194, +255,196,255,200,255,206,255,214,255,219,255,221,255,222,255,224,255,226,255,229,255,231,255,232,255,232,255,234,255,236,255,237,255,237,255,236,255,231,255,227,255,225,255,226,255,231,255,241,255,1,0,20,0,36,0,44,0,45,0,38,0,26,0,11,0,255,255,246,255, +242,255,242,255,241,255,241,255,241,255,242,255,242,255,242,255,242,255,241,255,240,255,237,255,233,255,229,255,225,255,225,255,226,255,227,255,226,255,224,255,223,255,226,255,231,255,233,255,233,255,235,255,239,255,244,255,250,255,0,0,6,0,9,0,8,0,8, +0,11,0,14,0,17,0,19,0,22,0,26,0,31,0,34,0,36,0,37,0,38,0,39,0,40,0,39,0,35,0,30,0,25,0,18,0,7,0,251,255,240,255,236,255,236,255,238,255,240,255,241,255,245,255,252,255,3,0,6,0,7,0,10,0,17,0,28,0,39,0,45,0,45,0,41,0,38,0,36,0,38,0,38,0,37,0,36,0,36,0, +34,0,32,0,30,0,29,0,31,0,36,0,43,0,49,0,51,0,51,0,49,0,44,0,37,0,28,0,20,0,15,0,15,0,20,0,28,0,34,0,36,0,35,0,30,0,23,0,13,0,0,0,243,255,230,255,221,255,215,255,212,255,214,255,221,255,232,255,246,255,4,0,12,0,14,0,10,0,7,0,7,0,10,0,11,0,11,0,12,0,14, +0,16,0,18,0,16,0,12,0,7,0,2,0,253,255,248,255,245,255,242,255,241,255,244,255,249,255,252,255,253,255,254,255,0,0,0,0,251,255,241,255,231,255,224,255,218,255,214,255,211,255,211,255,215,255,219,255,222,255,222,255,219,255,215,255,213,255,214,255,216, +255,218,255,221,255,225,255,230,255,235,255,240,255,241,255,238,255,234,255,231,255,230,255,227,255,223,255,220,255,220,255,222,255,227,255,233,255,239,255,244,255,248,255,249,255,247,255,242,255,234,255,225,255,217,255,212,255,213,255,220,255,230,255, +238,255,243,255,245,255,242,255,238,255,235,255,232,255,228,255,221,255,214,255,211,255,210,255,212,255,215,255,220,255,224,255,229,255,234,255,239,255,241,255,240,255,237,255,235,255,237,255,243,255,253,255,7,0,14,0,22,0,30,0,37,0,39,0,36,0,30,0,26, +0,28,0,34,0,39,0,42,0,41,0,36,0,29,0,22,0,18,0,16,0,17,0,20,0,22,0,21,0,19,0,18,0,20,0,21,0,19,0,13,0,6,0,2,0,1,0,3,0,6,0,6,0,1,0,250,255,246,255,247,255,252,255,4,0,12,0,20,0,27,0,31,0,35,0,39,0,43,0,46,0,47,0,45,0,42,0,41,0,42,0,44,0,44,0,41,0,38,0, +38,0,42,0,51,0,59,0,62,0,57,0,47,0,37,0,29,0,22,0,17,0,14,0,13,0,12,0,10,0,8,0,5,0,1,0,252,255,246,255,242,255,239,255,238,255,238,255,237,255,239,255,243,255,249,255,255,255,3,0,6,0,8,0,8,0,5,0,255,255,247,255,240,255,237,255,239,255,245,255,0,0,12, +0,24,0,33,0,38,0,37,0,31,0,25,0,21,0,18,0,16,0,17,0,20,0,23,0,24,0,23,0,20,0,18,0,15,0,14,0,14,0,15,0,16,0,17,0,16,0,14,0,11,0,7,0,4,0,1,0,253,255,248,255,242,255,236,255,233,255,232,255,232,255,234,255,236,255,238,255,237,255,232,255,223,255,213,255, +206,255,203,255,203,255,205,255,205,255,203,255,200,255,196,255,194,255,197,255,203,255,212,255,222,255,231,255,239,255,243,255,244,255,241,255,237,255,233,255,227,255,220,255,217,255,218,255,223,255,229,255,234,255,240,255,245,255,247,255,246,255,244, +255,240,255,234,255,227,255,222,255,221,255,221,255,221,255,220,255,222,255,225,255,226,255,222,255,214,255,203,255,192,255,183,255,179,255,181,255,188,255,198,255,210,255,222,255,232,255,239,255,241,255,240,255,237,255,235,255,234,255,235,255,236,255, +239,255,244,255,251,255,3,0,12,0,23,0,35,0,47,0,54,0,54,0,50,0,45,0,44,0,48,0,55,0,60,0,61,0,60,0,56,0,50,0,42,0,36,0,32,0,30,0,28,0,29,0,31,0,33,0,34,0,33,0,28,0,23,0,19,0,17,0,16,0,16,0,14,0,9,0,2,0,251,255,248,255,249,255,255,255,8,0,18,0,26,0,30, +0,32,0,33,0,32,0,30,0,24,0,15,0,8,0,4,0,2,0,2,0,5,0,12,0,21,0,28,0,32,0,34,0,34,0,31,0,26,0,19,0,11,0,6,0,4,0,6,0,11,0,17,0,23,0,27,0,29,0,27,0,20,0,9,0,0,0,250,255,249,255,251,255,1,0,10,0,20,0,30,0,37,0,40,0,38,0,31,0,22,0,12,0,2,0,249,255,242,255, +238,255,237,255,241,255,247,255,255,255,6,0,9,0,9,0,4,0,252,255,242,255,232,255,224,255,219,255,217,255,216,255,215,255,216,255,217,255,219,255,221,255,222,255,224,255,226,255,232,255,240,255,249,255,0,0,4,0,7,0,8,0,7,0,5,0,2,0,253,255,246,255,240,255, +236,255,235,255,237,255,240,255,241,255,241,255,239,255,239,255,241,255,245,255,249,255,251,255,253,255,254,255,0,0,4,0,8,0,11,0,7,0,252,255,236,255,221,255,211,255,207,255,207,255,207,255,208,255,210,255,215,255,223,255,232,255,240,255,245,255,246,255, +243,255,239,255,240,255,241,255,241,255,238,255,235,255,233,255,232,255,232,255,235,255,239,255,242,255,244,255,246,255,252,255,4,0,14,0,23,0,30,0,30,0,27,0,26,0,28,0,31,0,33,0,32,0,28,0,19,0,9,0,0,0,251,255,250,255,251,255,252,255,0,0,9,0,22,0,36,0, +46,0,49,0,46,0,42,0,38,0,36,0,33,0,28,0,23,0,20,0,17,0,16,0,16,0,17,0,19,0,22,0,26,0,30,0,30,0,29,0,27,0,25,0,19,0,11,0,2,0,252,255,251,255,251,255,249,255,246,255,243,255,238,255,236,255,241,255,250,255,5,0,13,0,17,0,20,0,21,0,20,0,17,0,12,0,7,0,3,0, +2,0,4,0,5,0,4,0,3,0,2,0,3,0,6,0,9,0,11,0,12,0,11,0,8,0,3,0,254,255,250,255,247,255,247,255,249,255,252,255,253,255,253,255,253,255,253,255,250,255,244,255,237,255,231,255,226,255,221,255,218,255,217,255,218,255,220,255,222,255,223,255,224,255,224,255, +224,255,224,255,223,255,221,255,220,255,223,255,226,255,230,255,233,255,237,255,240,255,245,255,250,255,254,255,0,0,0,0,255,255,252,255,251,255,252,255,254,255,1,0,5,0,8,0,7,0,3,0,0,0,255,255,1,0,3,0,3,0,1,0,254,255,253,255,254,255,255,255,255,255,251, +255,247,255,245,255,246,255,249,255,252,255,251,255,246,255,242,255,239,255,241,255,243,255,246,255,250,255,1,0,8,0,14,0,17,0,17,0,14,0,11,0,8,0,7,0,7,0,8,0,9,0,9,0,9,0,9,0,8,0,6,0,4,0,2,0,0,0,255,255,253,255,252,255,251,255,253,255,1,0,7,0,13,0,17,0, +17,0,15,0,10,0,2,0,249,255,243,255,243,255,248,255,255,255,8,0,14,0,18,0,18,0,15,0,10,0,3,0,252,255,245,255,241,255,239,255,239,255,240,255,243,255,247,255,250,255,0,0,6,0,10,0,10,0,7,0,4,0,3,0,3,0,6,0,11,0,17,0,23,0,25,0,21,0,13,0,6,0,0,0,250,255,244, +255,241,255,243,255,249,255,3,0,12,0,17,0,18,0,15,0,10,0,4,0,254,255,249,255,246,255,247,255,250,255,253,255,254,255,0,0,1,0,1,0,1,0,0,0,255,255,0,0,2,0,4,0,6,0,8,0,9,0,9,0,9,0,11,0,14,0,17,0,21,0,25,0,28,0,28,0,26,0,23,0,19,0,16,0,14,0,15,0,16,0,16, +0,16,0,17,0,19,0,21,0,22,0,22,0,22,0,20,0,14,0,7,0,255,255,249,255,245,255,243,255,242,255,241,255,240,255,239,255,238,255,239,255,239,255,240,255,240,255,241,255,244,255,247,255,250,255,250,255,248,255,243,255,237,255,232,255,230,255,233,255,236,255, +241,255,247,255,252,255,255,255,254,255,249,255,243,255,236,255,231,255,229,255,230,255,233,255,234,255,236,255,240,255,242,255,243,255,243,255,241,255,239,255,238,255,238,255,237,255,235,255,231,255,229,255,229,255,232,255,237,255,240,255,243,255,244, +255,245,255,248,255,251,255,252,255,252,255,250,255,250,255,250,255,252,255,255,255,4,0,8,0,11,0,13,0,13,0,12,0,9,0,5,0,3,0,1,0,255,255,254,255,255,255,1,0,3,0,4,0,3,0,0,0,251,255,245,255,241,255,240,255,240,255,241,255,243,255,246,255,249,255,251,255, +252,255,252,255,249,255,246,255,244,255,242,255,242,255,243,255,246,255,249,255,252,255,254,255,1,0,7,0,13,0,19,0,25,0,30,0,31,0,30,0,27,0,25,0,25,0,28,0,33,0,37,0,39,0,38,0,35,0,33,0,30,0,26,0,25,0,27,0,31,0,35,0,37,0,36,0,32,0,26,0,19,0,12,0,6,0,3, +0,2,0,255,255,250,255,241,255,230,255,220,255,214,255,214,255,218,255,223,255,227,255,231,255,232,255,232,255,234,255,237,255,240,255,243,255,245,255,245,255,242,255,238,255,234,255,233,255,235,255,242,255,252,255,7,0,18,0,25,0,27,0,25,0,21,0,18,0,18, +0,20,0,23,0,25,0,27,0,29,0,28,0,26,0,24,0,25,0,26,0,26,0,24,0,22,0,16,0,10,0,5,0,3,0,4,0,6,0,6,0,5,0,2,0,253,255,247,255,242,255,238,255,236,255,236,255,235,255,233,255,228,255,224,255,222,255,222,255,223,255,226,255,230,255,235,255,240,255,244,255,248, +255,248,255,248,255,246,255,247,255,248,255,250,255,251,255,254,255,1,0,4,0,7,0,9,0,10,0,10,0,10,0,12,0,16,0,22,0,25,0,25,0,21,0,17,0,13,0,11,0,9,0,7,0,6,0,4,0,4,0,4,0,2,0,255,255,251,255,248,255,247,255,249,255,253,255,0,0,4,0,7,0,7,0,6,0,5,0,7,0,8, +0,8,0,9,0,10,0,10,0,9,0,7,0,6,0,7,0,7,0,7,0,7,0,4,0,1,0,253,255,250,255,248,255,248,255,249,255,251,255,255,255,2,0,1,0,253,255,246,255,241,255,237,255,235,255,234,255,233,255,230,255,226,255,223,255,223,255,225,255,225,255,224,255,222,255,221,255,220, +255,219,255,217,255,214,255,213,255,214,255,219,255,227,255,234,255,238,255,239,255,239,255,238,255,237,255,234,255,232,255,234,255,239,255,244,255,249,255,251,255,253,255,255,255,1,0,3,0,5,0,8,0,12,0,15,0,16,0,15,0,14,0,12,0,12,0,14,0,16,0,18,0,18,0, +18,0,16,0,15,0,14,0,12,0,10,0,7,0,5,0,4,0,6,0,10,0,14,0,17,0,20,0,21,0,22,0,20,0,18,0,14,0,9,0,4,0,0,0,0,0,1,0,2,0,3,0,3,0,2,0,0,0,254,255,253,255,253,255,254,255,255,255,0,0,1,0,2,0,2,0,4,0,5,0,7,0,7,0,7,0,8,0,13,0,21,0,28,0,31,0,30,0,27,0,24,0,22,0, +21,0,20,0,20,0,19,0,16,0,14,0,13,0,13,0,13,0,14,0,15,0,18,0,21,0,22,0,22,0,19,0,16,0,15,0,16,0,18,0,21,0,22,0,22,0,19,0,15,0,10,0,6,0,4,0,4,0,6,0,10,0,12,0,13,0,13,0,10,0,7,0,4,0,3,0,5,0,9,0,13,0,16,0,16,0,15,0,12,0,9,0,6,0,1,0,252,255,246,255,242,255, +240,255,242,255,245,255,246,255,245,255,244,255,242,255,241,255,239,255,236,255,232,255,229,255,227,255,228,255,231,255,233,255,234,255,234,255,233,255,230,255,226,255,222,255,220,255,219,255,218,255,217,255,217,255,217,255,218,255,219,255,221,255,223, +255,225,255,227,255,230,255,233,255,234,255,234,255,232,255,231,255,231,255,233,255,236,255,239,255,242,255,243,255,245,255,247,255,251,255,254,255,1,0,3,0,4,0,7,0,9,0,10,0,10,0,9,0,6,0,2,0,254,255,251,255,250,255,250,255,250,255,249,255,248,255,247, +255,248,255,249,255,249,255,248,255,245,255,243,255,244,255,249,255,255,255,3,0,4,0,5,0,5,0,6,0,6,0,4,0,1,0,253,255,251,255,250,255,251,255,253,255,254,255,255,255,255,255,1,0,4,0,6,0,8,0,8,0,7,0,5,0,2,0,1,0,1,0,1,0,3,0,5,0,7,0,8,0,7,0,6,0,5,0,4,0,3, +0,4,0,4,0,4,0,3,0,5,0,7,0,8,0,6,0,2,0,253,255,250,255,249,255,253,255,3,0,7,0,10,0,12,0,14,0,17,0,19,0,19,0,19,0,17,0,15,0,14,0,13,0,13,0,13,0,13,0,13,0,12,0,9,0,6,0,4,0,5,0,6,0,7,0,8,0,11,0,14,0,18,0,22,0,24,0,26,0,26,0,26,0,25,0,25,0,22,0,18,0,13,0, +8,0,6,0,6,0,8,0,10,0,12,0,13,0,14,0,15,0,17,0,18,0,17,0,16,0,15,0,16,0,19,0,21,0,22,0,23,0,22,0,19,0,15,0,11,0,9,0,6,0,4,0,2,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0,255,255,253,255,251,255,248,255,244,255,241,255,240,255,242,255,244,255,247,255,247,255,246, +255,242,255,239,255,237,255,236,255,235,255,234,255,233,255,231,255,229,255,227,255,226,255,227,255,230,255,234,255,241,255,247,255,251,255,252,255,252,255,251,255,250,255,249,255,249,255,250,255,252,255,252,255,250,255,247,255,244,255,242,255,243,255, +245,255,248,255,250,255,252,255,254,255,255,255,255,255,254,255,253,255,252,255,251,255,248,255,243,255,236,255,227,255,221,255,219,255,221,255,226,255,231,255,236,255,238,255,238,255,238,255,238,255,238,255,238,255,239,255,241,255,243,255,245,255,246, +255,247,255,248,255,248,255,247,255,247,255,246,255,244,255,241,255,240,255,239,255,240,255,242,255,244,255,247,255,251,255,254,255,1,0,4,0,6,0,9,0,14,0,20,0,24,0,24,0,20,0,14,0,9,0,6,0,7,0,8,0,10,0,12,0,15,0,18,0,19,0,17,0,13,0,9,0,5,0,3,0,2,0,0,0,254, +255,254,255,255,255,2,0,2,0,0,0,252,255,249,255,247,255,246,255,248,255,250,255,252,255,253,255,254,255,1,0,4,0,6,0,6,0,6,0,5,0,6,0,8,0,12,0,14,0,15,0,15,0,15,0,16,0,17,0,18,0,18,0,17,0,14,0,11,0,8,0,7,0,9,0,11,0,15,0,19,0,21,0,23,0,25,0,26,0,26,0,26, +0,25,0,22,0,18,0,13,0,8,0,5,0,2,0,2,0,3,0,5,0,7,0,9,0,10,0,10,0,8,0,5,0,1,0,254,255,252,255,252,255,252,255,251,255,250,255,249,255,248,255,249,255,249,255,248,255,248,255,247,255,248,255,249,255,250,255,250,255,251,255,252,255,255,255,255,255,254,255, +249,255,244,255,240,255,239,255,238,255,237,255,238,255,239,255,242,255,246,255,250,255,252,255,252,255,251,255,249,255,249,255,249,255,250,255,249,255,248,255,246,255,244,255,242,255,240,255,237,255,236,255,236,255,239,255,242,255,245,255,246,255,246, +255,246,255,244,255,242,255,241,255,239,255,240,255,243,255,245,255,247,255,248,255,250,255,253,255,0,0,2,0,2,0,2,0,2,0,4,0,7,0,10,0,10,0,8,0,6,0,5,0,5,0,6,0,8,0,8,0,7,0,6,0,5,0,5,0,5,0,6,0,9,0,10,0,10,0,8,0,5,0,0,0,251,255,249,255,249,255,251,255,253, +255,255,255,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,11,0,12,0,13,0,13,0,13,0,13,0,12,0,12,0,12,0,12,0,11,0,12,0,13,0,15,0,16,0,18,0,20,0,21,0,21,0,19,0,17,0,12,0,7,0,2,0,254,255,250,255,248,255,248,255,249,255,249,255,249,255,248,255,249,255,249,255,248,255, +247,255,246,255,246,255,247,255,250,255,253,255,0,0,255,255,252,255,248,255,245,255,242,255,240,255,240,255,243,255,246,255,249,255,249,255,249,255,248,255,248,255,248,255,248,255,249,255,251,255,252,255,255,255,1,0,1,0,0,0,254,255,253,255,253,255,253, +255,253,255,252,255,249,255,246,255,245,255,247,255,249,255,250,255,250,255,250,255,250,255,251,255,252,255,254,255,255,255,0,0,0,0,1,0,2,0,4,0,6,0,7,0,7,0,7,0,6,0,3,0,0,0,254,255,252,255,251,255,252,255,253,255,0,0,3,0,8,0,13,0,15,0,15,0,12,0,10,0,9, +0,10,0,12,0,13,0,13,0,12,0,12,0,11,0,11,0,10,0,8,0,5,0,2,0,254,255,251,255,248,255,247,255,248,255,249,255,250,255,250,255,251,255,251,255,252,255,251,255,250,255,248,255,246,255,245,255,244,255,245,255,246,255,246,255,246,255,243,255,240,255,238,255, +238,255,239,255,239,255,238,255,238,255,239,255,242,255,245,255,248,255,250,255,252,255,252,255,251,255,250,255,249,255,248,255,246,255,245,255,246,255,246,255,245,255,243,255,240,255,238,255,236,255,237,255,239,255,241,255,244,255,246,255,249,255,252, +255,255,255,1,0,2,0,1,0,254,255,251,255,247,255,244,255,242,255,242,255,244,255,247,255,253,255,2,0,8,0,14,0,19,0,23,0,24,0,23,0,19,0,15,0,12,0,9,0,6,0,2,0,255,255,253,255,252,255,254,255,2,0,8,0,13,0,16,0,18,0,19,0,20,0,20,0,21,0,20,0,19,0,17,0,14,0, +12,0,9,0,7,0,5,0,4,0,3,0,3,0,5,0,8,0,10,0,12,0,14,0,16,0,18,0,19,0,20,0,22,0,24,0,26,0,26,0,25,0,22,0,19,0,17,0,17,0,17,0,17,0,17,0,18,0,19,0,20,0,20,0,20,0,18,0,16,0,15,0,14,0,13,0,11,0,8,0,5,0,1,0,254,255,252,255,251,255,250,255,249,255,247,255,246, +255,247,255,248,255,249,255,250,255,249,255,248,255,244,255,240,255,236,255,233,255,233,255,234,255,234,255,234,255,234,255,235,255,238,255,241,255,243,255,244,255,242,255,240,255,239,255,240,255,241,255,242,255,243,255,243,255,243,255,244,255,247,255, +250,255,252,255,255,255,1,0,3,0,4,0,3,0,1,0,0,0,255,255,254,255,253,255,252,255,250,255,249,255,248,255,247,255,246,255,245,255,243,255,241,255,240,255,239,255,240,255,240,255,240,255,241,255,241,255,241,255,242,255,244,255,247,255,251,255,255,255,1, +0,1,0,1,0,0,0,0,0,254,255,253,255,250,255,247,255,244,255,242,255,242,255,244,255,247,255,250,255,251,255,252,255,253,255,254,255,255,255,255,255,252,255,249,255,247,255,247,255,247,255,246,255,243,255,241,255,240,255,241,255,242,255,243,255,243,255, +243,255,243,255,244,255,245,255,247,255,251,255,254,255,2,0,4,0,3,0,0,0,252,255,250,255,251,255,254,255,2,0,4,0,6,0,7,0,8,0,8,0,8,0,9,0,11,0,15,0,20,0,25,0,28,0,29,0,26,0,22,0,18,0,15,0,12,0,10,0,9,0,9,0,8,0,9,0,10,0,12,0,15,0,19,0,22,0,24,0,24,0,21, +0,16,0,10,0,5,0,2,0,1,0,2,0,5,0,9,0,12,0,14,0,15,0,16,0,16,0,16,0,16,0,17,0,17,0,15,0,14,0,13,0,13,0,13,0,12,0,10,0,7,0,3,0,0,0,254,255,253,255,251,255,251,255,251,255,252,255,255,255,1,0,2,0,1,0,0,0,255,255,253,255,252,255,250,255,249,255,248,255,248, +255,248,255,249,255,250,255,251,255,253,255,0,0,3,0,6,0,6,0,5,0,4,0,2,0,1,0,0,0,0,0,1,0,0,0,254,255,253,255,253,255,253,255,254,255,255,255,1,0,3,0,4,0,3,0,1,0,255,255,253,255,252,255,252,255,252,255,253,255,254,255,0,0,2,0,1,0,255,255,254,255,254,255, +252,255,250,255,248,255,246,255,243,255,242,255,242,255,244,255,245,255,246,255,247,255,247,255,248,255,249,255,250,255,250,255,249,255,248,255,247,255,245,255,243,255,240,255,237,255,234,255,231,255,229,255,228,255,229,255,232,255,236,255,241,255,245, +255,249,255,251,255,252,255,251,255,248,255,246,255,244,255,243,255,242,255,242,255,243,255,244,255,246,255,248,255,251,255,254,255,0,0,1,0,1,0,1,0,0,0,0,0,1,0,3,0,3,0,2,0,0,0,253,255,252,255,252,255,251,255,251,255,249,255,247,255,247,255,249,255,251, +255,252,255,252,255,251,255,249,255,247,255,246,255,245,255,245,255,245,255,245,255,246,255,247,255,248,255,250,255,252,255,254,255,0,0,2,0,4,0,7,0,8,0,9,0,9,0,9,0,9,0,9,0,11,0,13,0,14,0,15,0,15,0,16,0,16,0,17,0,17,0,17,0,16,0,15,0,14,0,14,0,13,0,12, +0,10,0,7,0,5,0,5,0,5,0,5,0,5,0,4,0,3,0,3,0,4,0,6,0,7,0,9,0,10,0,10,0,10,0,9,0,9,0,9,0,7,0,4,0,1,0,253,255,252,255,252,255,253,255,0,0,2,0,2,0,2,0,3,0,5,0,8,0,11,0,14,0,17,0,18,0,17,0,15,0,13,0,12,0,11,0,10,0,9,0,8,0,8,0,8,0,7,0,6,0,5,0,4,0,4,0,4,0,3, +0,2,0,2,0,4,0,7,0,9,0,12,0,13,0,13,0,12,0,10,0,8,0,6,0,4,0,1,0,255,255,254,255,255,255,1,0,4,0,8,0,11,0,11,0,10,0,8,0,5,0,2,0,255,255,251,255,248,255,245,255,242,255,241,255,240,255,240,255,240,255,238,255,237,255,236,255,236,255,237,255,239,255,241, +255,243,255,245,255,245,255,246,255,247,255,246,255,245,255,243,255,239,255,237,255,234,255,233,255,232,255,233,255,235,255,237,255,241,255,247,255,253,255,2,0,5,0,6,0,4,0,1,0,254,255,252,255,252,255,251,255,251,255,251,255,252,255,253,255,254,255,255, +255,255,255,255,255,0,0,2,0,2,0,0,0,254,255,252,255,250,255,249,255,248,255,249,255,250,255,250,255,249,255,247,255,245,255,243,255,242,255,241,255,242,255,245,255,247,255,249,255,249,255,250,255,250,255,249,255,248,255,247,255,247,255,247,255,247,255, +247,255,247,255,249,255,252,255,255,255,2,0,4,0,3,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,0,0,255,255,254,255,253,255,252,255,252,255,252,255,254,255,1,0,3,0,4,0,4,0,6,0,8,0,10,0,10,0,9,0,8,0,5,0,3,0,0,0,0,0,1,0,3,0,5,0,6,0,6,0,5,0,4,0,4,0,5,0,6,0,6,0, +7,0,8,0,9,0,9,0,9,0,8,0,6,0,3,0,2,0,2,0,3,0,4,0,6,0,7,0,7,0,8,0,9,0,11,0,12,0,12,0,11,0,9,0,8,0,7,0,6,0,5,0,4,0,3,0,2,0,2,0,3,0,4,0,4,0,5,0,5,0,5,0,5,0,4,0,4,0,4,0,5,0,4,0,4,0,3,0,2,0,1,0,0,0,254,255,251,255,249,255,249,255,251,255,254,255,2,0,4,0,5, +0,5,0,4,0,3,0,2,0,2,0,1,0,1,0,1,0,3,0,5,0,6,0,6,0,5,0,3,0,1,0,255,255,253,255,251,255,249,255,248,255,247,255,247,255,248,255,251,255,253,255,255,255,0,0,0,0,0,0,255,255,0,0,1,0,1,0,255,255,251,255,249,255,249,255,251,255,255,255,2,0,4,0,4,0,3,0,1,0, +255,255,255,255,254,255,254,255,255,255,0,0,2,0,4,0,4,0,1,0,253,255,249,255,245,255,243,255,241,255,241,255,242,255,243,255,244,255,247,255,249,255,251,255,252,255,252,255,251,255,249,255,246,255,243,255,241,255,239,255,239,255,239,255,241,255,243,255, +247,255,251,255,253,255,254,255,253,255,252,255,252,255,252,255,253,255,253,255,252,255,252,255,253,255,254,255,255,255,0,0,255,255,253,255,253,255,255,255,2,0,5,0,7,0,8,0,7,0,6,0,6,0,6,0,7,0,7,0,6,0,5,0,2,0,254,255,250,255,248,255,247,255,247,255,247, +255,249,255,251,255,253,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,254,255,252,255,251,255,250,255,250,255,251,255,253,255,255,255,1,0,3,0,4,0,5,0,6,0,7,0,9,0,11,0,12,0,13,0,13,0,12,0,12,0,11,0,11,0,12,0,12,0,13,0,14, +0,13,0,12,0,10,0,8,0,7,0,6,0,6,0,6,0,7,0,8,0,10,0,12,0,12,0,12,0,10,0,6,0,3,0,1,0,255,255,254,255,252,255,251,255,250,255,250,255,252,255,254,255,255,255,255,255,254,255,253,255,253,255,254,255,1,0,4,0,7,0,8,0,8,0,7,0,6,0,4,0,2,0,255,255,253,255,252, +255,254,255,0,0,2,0,3,0,3,0,3,0,2,0,0,0,254,255,253,255,252,255,251,255,249,255,247,255,245,255,244,255,243,255,244,255,246,255,247,255,247,255,246,255,245,255,245,255,245,255,245,255,244,255,243,255,243,255,243,255,243,255,244,255,244,255,245,255,244, +255,243,255,242,255,241,255,241,255,241,255,241,255,241,255,241,255,242,255,242,255,243,255,244,255,245,255,245,255,245,255,245,255,244,255,244,255,245,255,245,255,245,255,246,255,247,255,249,255,253,255,1,0,4,0,6,0,7,0,8,0,8,0,8,0,9,0,8,0,8,0,9,0,10, +0,10,0,10,0,10,0,10,0,10,0,10,0,9,0,9,0,8,0,9,0,10,0,12,0,13,0,13,0,13,0,11,0,9,0,5,0,2,0,255,255,253,255,252,255,252,255,252,255,251,255,251,255,252,255,255,255,2,0,4,0,4,0,2,0,1,0,0,0,254,255,254,255,253,255,253,255,253,255,254,255,255,255,255,255, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,2,0,3,0,2,0,2,0,3,0,5,0,7,0,8,0,8,0,8,0,8,0,7,0,7,0,5,0,4,0,3,0,2,0,2,0,3,0,4,0,4,0,6,0,7,0,8,0,7,0,6,0,4,0,3,0,2,0,2,0,5,0,8,0,11,0,14,0,15,0,15,0,13,0,12,0,10,0,9,0,10,0,10,0,11,0,12,0,12,0,12,0,10,0,7,0,4,0,1,0,0,0, +0,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,254,255,252,255,250,255,249,255,249,255,250,255,252,255,253,255,254,255,254,255,254,255,253,255,252,255,251,255,250,255,249,255,249,255,249,255,248,255,247,255,246,255,246,255,246,255,246,255,246,255,245,255, +245,255,246,255,247,255,249,255,249,255,249,255,247,255,245,255,245,255,245,255,245,255,244,255,242,255,240,255,238,255,236,255,236,255,236,255,237,255,240,255,243,255,246,255,248,255,249,255,248,255,247,255,245,255,244,255,244,255,245,255,247,255,250, +255,252,255,253,255,254,255,254,255,254,255,255,255,0,0,1,0,1,0,1,0,0,0,254,255,253,255,252,255,252,255,253,255,255,255,1,0,3,0,4,0,5,0,4,0,4,0,4,0,4,0,3,0,2,0,255,255,252,255,249,255,247,255,247,255,247,255,249,255,252,255,255,255,3,0,5,0,5,0,4,0,2, +0,0,0,0,0,1,0,1,0,0,0,255,255,253,255,251,255,251,255,252,255,254,255,0,0,2,0,3,0,4,0,5,0,7,0,9,0,9,0,8,0,6,0,5,0,3,0,2,0,2,0,1,0,0,0,255,255,253,255,251,255,251,255,251,255,253,255,255,255,0,0,1,0,2,0,3,0,6,0,7,0,8,0,6,0,4,0,1,0,0,0,0,0,0,0,0,0,255, +255,255,255,255,255,0,0,1,0,3,0,6,0,8,0,11,0,13,0,14,0,14,0,15,0,15,0,15,0,15,0,13,0,11,0,10,0,9,0,8,0,8,0,6,0,5,0,5,0,5,0,6,0,7,0,8,0,10,0,11,0,11,0,11,0,10,0,8,0,6,0,5,0,4,0,4,0,5,0,6,0,6,0,5,0,4,0,3,0,3,0,2,0,2,0,3,0,4,0,4,0,3,0,2,0,0,0,254,255,253, +255,251,255,250,255,250,255,251,255,252,255,252,255,250,255,249,255,248,255,249,255,250,255,252,255,253,255,254,255,254,255,253,255,251,255,249,255,247,255,247,255,247,255,249,255,250,255,251,255,252,255,252,255,252,255,252,255,252,255,253,255,255,255, +0,0,0,0,0,0,255,255,253,255,252,255,252,255,252,255,253,255,254,255,254,255,253,255,251,255,250,255,248,255,248,255,247,255,248,255,250,255,252,255,253,255,252,255,249,255,247,255,245,255,244,255,243,255,243,255,244,255,244,255,244,255,244,255,243,255, +243,255,242,255,243,255,244,255,245,255,246,255,247,255,248,255,249,255,251,255,252,255,253,255,253,255,253,255,252,255,250,255,248,255,246,255,244,255,244,255,245,255,247,255,249,255,251,255,253,255,254,255,0,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,255,255,253, +255,252,255,252,255,252,255,253,255,254,255,0,0,3,0,6,0,9,0,11,0,12,0,12,0,12,0,12,0,10,0,9,0,7,0,6,0,5,0,4,0,3,0,3,0,3,0,4,0,5,0,6,0,7,0,7,0,8,0,7,0,6,0,6,0,5,0,5,0,5,0,5,0,5,0,3,0,2,0,0,0,255,255,254,255,254,255,255,255,1,0,3,0,4,0,4,0,4,0,4,0,3,0, +2,0,2,0,2,0,3,0,5,0,7,0,7,0,7,0,6,0,5,0,4,0,5,0,5,0,5,0,4,0,3,0,3,0,4,0,5,0,6,0,7,0,7,0,6,0,6,0,5,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,2,0,2,0,2,0,3,0,4,0,4,0,5,0,5,0,6,0,5,0,4,0,3,0,2,0,0,0,255,255,254,255,253,255,253,255,254,255,255,255,0, +0,0,0,0,0,255,255,254,255,253,255,252,255,251,255,251,255,251,255,251,255,251,255,251,255,251,255,251,255,251,255,250,255,249,255,249,255,249,255,250,255,252,255,253,255,253,255,254,255,254,255,253,255,252,255,250,255,248,255,247,255,247,255,248,255, +249,255,249,255,249,255,249,255,248,255,248,255,247,255,247,255,247,255,248,255,249,255,250,255,251,255,252,255,252,255,252,255,251,255,251,255,250,255,250,255,249,255,248,255,248,255,248,255,250,255,251,255,252,255,252,255,251,255,250,255,248,255,246, +255,244,255,244,255,244,255,246,255,248,255,251,255,253,255,252,255,251,255,250,255,248,255,246,255,245,255,245,255,247,255,249,255,251,255,254,255,0,0,2,0,3,0,4,0,5,0,5,0,3,0,2,0,1,0,0,0,0,0,1,0,3,0,6,0,7,0,9,0,9,0,9,0,9,0,8,0,8,0,9,0,10,0,11,0,11,0, +10,0,8,0,5,0,2,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,3,0,5,0,7,0,8,0,8,0,6,0,3,0,0,0,254,255,251,255,250,255,250,255,251,255,253,255,255,255,1,0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,8,0,7,0,6,0,5,0,3,0,2,0,1,0,0,0,254,255,253,255,253,255,254,255,0, +0,2,0,4,0,5,0,5,0,4,0,4,0,3,0,2,0,0,0,254,255,253,255,252,255,252,255,252,255,251,255,251,255,251,255,251,255,250,255,250,255,249,255,249,255,250,255,252,255,255,255,2,0,4,0,5,0,6,0,6,0,5,0,5,0,3,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,3,0,3,0,4,0,4,0, +3,0,3,0,1,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,0,0,255,255,255,255,254,255,253,255,252,255,251,255,250,255,249,255,249,255,249,255,250,255,251,255,251,255,251,255,252,255,253,255,253,255,252,255,250,255,249,255, +249,255,250,255,251,255,253,255,254,255,254,255,254,255,252,255,250,255,248,255,246,255,245,255,245,255,245,255,245,255,246,255,248,255,250,255,253,255,254,255,255,255,254,255,254,255,253,255,253,255,253,255,253,255,252,255,253,255,253,255,253,255,253, +255,254,255,254,255,255,255,0,0,2,0,3,0,4,0,4,0,4,0,3,0,2,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,3,0,5,0,7,0,8,0,7,0,6,0,3,0,0,0,254,255,252,255,252,255,252,255,254,255,255,255,0,0,0,0,0,0,255,255,254,255,254,255,254,255,255,255,0,0,1, +0,1,0,1,0,2,0,3,0,3,0,3,0,2,0,0,0,255,255,255,255,254,255,253,255,253,255,252,255,252,255,253,255,255,255,0,0,2,0,3,0,4,0,4,0,4,0,3,0,2,0,1,0,255,255,255,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,1,0,3,0,4,0,5,0,5,0,4,0,3,0,3,0,3,0,4,0, +5,0,6,0,7,0,7,0,7,0,7,0,7,0,6,0,5,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,4,0,5,0,6,0,6,0,5,0,3,0,1,0,255,255,254,255,252,255,251,255,250,255,250,255,250,255,251,255,253,255,254,255,0,0,2,0,4,0,5,0,5,0,5,0,4,0,4,0,3,0,2,0,1,0,0,0,255,255,255,255,0,0,2,0,4,0,6, +0,6,0,5,0,3,0,1,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,252,255,251,255,249,255,248,255,247,255,248,255,249,255,251,255,252,255,252,255,250,255,247,255,245,255,245,255,245,255,245,255,247,255,249,255,251,255,251,255,251,255,250,255,250, +255,250,255,251,255,251,255,251,255,251,255,252,255,252,255,252,255,252,255,252,255,253,255,253,255,254,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,254,255,252,255,251,255,250,255,249,255,248,255,248,255,249,255,251,255,252,255,252, +255,251,255,249,255,248,255,247,255,246,255,245,255,245,255,245,255,247,255,249,255,251,255,253,255,254,255,255,255,1,0,1,0,2,0,2,0,2,0,3,0,3,0,3,0,4,0,5,0,6,0,8,0,10,0,11,0,11,0,10,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,10,0,10,0,11,0,11,0,11,0,11,0,10,0, +7,0,4,0,1,0,255,255,254,255,254,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,2,0,2,0,2,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,1,0,2,0,3,0,4,0,5,0,6,0,6,0,6,0,5,0,4,0,2,0,0,0,255,255,254,255,255,255,0,0,1,0,1, +0,0,0,254,255,253,255,252,255,251,255,251,255,251,255,251,255,251,255,252,255,253,255,253,255,253,255,254,255,0,0,2,0,3,0,2,0,1,0,0,0,255,255,255,255,0,0,2,0,4,0,5,0,5,0,5,0,4,0,2,0,2,0,1,0,2,0,2,0,3,0,3,0,3,0,3,0,2,0,2,0,0,0,255,255,254,255,253,255, +252,255,252,255,252,255,252,255,253,255,253,255,253,255,253,255,252,255,250,255,249,255,248,255,248,255,248,255,249,255,250,255,250,255,250,255,249,255,248,255,247,255,246,255,245,255,245,255,245,255,245,255,246,255,247,255,248,255,249,255,250,255,251, +255,251,255,251,255,252,255,252,255,253,255,254,255,254,255,255,255,255,255,255,255,0,0,1,0,2,0,3,0,2,0,2,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,253,255, +252,255,252,255,253,255,253,255,254,255,254,255,254,255,255,255,1,0,2,0,3,0,3,0,3,0,4,0,4,0,4,0,3,0,2,0,1,0,255,255,253,255,252,255,252,255,252,255,253,255,255,255,1,0,2,0,3,0,2,0,2,0,1,0,1,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,254,255, +254,255,254,255,255,255,0,0,1,0,1,0,1,0,2,0,2,0,3,0,4,0,4,0,3,0,2,0,1,0,1,0,1,0,3,0,3,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,3,0,3,0,4,0,5,0,5,0,6,0,7,0,7,0,7,0,6,0,5,0,3,0,1,0,255,255,255,255,0,0,1,0,2,0,3,0,4,0,4,0,4,0,4,0,3,0,2,0,1,0,0,0,255,255,254, +255,254,255,255,255,0,0,1,0,1,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,252,255,251,255,251,255,251,255,252,255,254,255,0,0,0,0,0,0,255,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255, +254,255,254,255,255,255,254,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,255,255,253,255,252,255,250,255,249,255,248,255,248,255,249,255,250,255,252,255,253,255,254,255,255,255,255,255,254,255,253,255,252,255,252,255,251,255,252,255,252,255,253,255, +253,255,253,255,254,255,254,255,253,255,253,255,252,255,251,255,251,255,251,255,252,255,252,255,253,255,254,255,255,255,255,255,255,255,254,255,253,255,252,255,251,255,252,255,253,255,255,255,0,0,1,0,3,0,4,0,4,0,4,0,2,0,0,0,254,255,253,255,253,255,253, +255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,3,0,3,0,3,0,2,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,3,0,4,0,4,0,4,0,3,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,2,0,2,0,3,0,3,0,3,0,3,0,4,0,5,0,6,0,6,0,6,0,5,0,4,0,3, +0,2,0,2,0,2,0,3,0,3,0,4,0,5,0,5,0,4,0,2,0,1,0,255,255,254,255,254,255,255,255,0,0,1,0,1,0,2,0,3,0,4,0,4,0,4,0,4,0,3,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,254,255,253,255,252,255,252, +255,252,255,252,255,252,255,253,255,253,255,253,255,253,255,253,255,252,255,251,255,249,255,249,255,248,255,248,255,248,255,248,255,249,255,250,255,251,255,252,255,253,255,254,255,253,255,253,255,252,255,252,255,251,255,251,255,252,255,252,255,253,255, +253,255,253,255,254,255,254,255,254,255,254,255,254,255,0,0,1,0,3,0,4,0,5,0,4,0,3,0,1,0,255,255,253,255,251,255,250,255,250,255,250,255,251,255,253,255,255,255,1,0,3,0,4,0,4,0,4,0,3,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,254,255,253, +255,252,255,251,255,251,255,251,255,252,255,254,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,0, +0,1,0,1,0,1,0,0,0,255,255,255,255,254,255,254,255,253,255,253,255,254,255,255,255,0,0,1,0,2,0,3,0,4,0,4,0,4,0,4,0,3,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,3,0,4,0,5,0,5,0,5,0,5,0,5,0,5,0,4,0,3,0,2,0,3,0,3,0,3,0,4,0,3,0,2,0,1,0,0,0,254,255,253,255, +251,255,250,255,250,255,251,255,252,255,254,255,255,255,255,255,255,255,255,255,254,255,254,255,253,255,253,255,254,255,254,255,255,255,0,0,0,0,1,0,2,0,2,0,2,0,1,0,1,0,2,0,3,0,4,0,5,0,6,0,6,0,6,0,7,0,7,0,7,0,7,0,7,0,7,0,6,0,5,0,4,0,2,0,1,0,0,0,1,0,2, +0,3,0,4,0,3,0,2,0,1,0,254,255,252,255,250,255,249,255,248,255,249,255,250,255,251,255,252,255,252,255,252,255,252,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,252,255,251,255,251, +255,252,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,252,255,252,255,252,255,251,255,251,255,250,255,250,255,250,255,250,255,250,255,251,255,251,255,251,255,251,255,250,255,250,255,251,255,251,255,252,255,252,255,252,255,252,255, +252,255,252,255,252,255,252,255,252,255,252,255,253,255,255,255,0,0,1,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,3,0,4,0,5,0,5,0,5,0,4,0,3,0,2,0,1,0,0,0,0,0,0,0,1,0,2,0,3,0,4,0,4,0,4,0,4,0,3,0,1,0,255,255,254,255,254,255,254,255,254,255,254,255,254,255, +254,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,255,255,254,255,252,255,251,255,250,255,250,255,250,255,251,255,252,255,253,255,254,255,0,0,1,0,2,0,3,0,3,0,3,0,3,0,3,0,4,0,4,0,4,0,4,0,4,0,5,0,5,0,5,0,4,0,3,0,2,0,2,0,1,0,2,0,2,0,2,0,3,0,4, +0,4,0,5,0,5,0,5,0,4,0,2,0,2,0,2,0,2,0,1,0,0,0,255,255,255,255,0,0,2,0,4,0,5,0,5,0,5,0,4,0,4,0,3,0,2,0,1,0,1,0,0,0,0,0,255,255,255,255,254,255,253,255,251,255,250,255,250,255,249,255,250,255,251,255,251,255,252,255,252,255,252,255,252,255,252,255,253, +255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,251,255,251,255,251,255,252,255,253,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,254,255,253,255,253,255,252,255,252,255,252,255,253,255,253,255,253,255,253,255,252,255,251,255,250, +255,249,255,249,255,249,255,250,255,250,255,249,255,248,255,247,255,247,255,247,255,248,255,249,255,250,255,250,255,250,255,250,255,250,255,251,255,252,255,254,255,255,255,1,0,3,0,3,0,3,0,3,0,4,0,4,0,5,0,6,0,6,0,7,0,7,0,7,0,6,0,6,0,6,0,6,0,6,0,6,0,6, +0,5,0,4,0,4,0,3,0,2,0,2,0,3,0,4,0,4,0,4,0,3,0,2,0,1,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,1,0,3,0,4,0,5,0,5,0,5,0,5,0,6,0,6,0,5,0,5,0,3,0,1,0,255,255,253,255,252,255,252,255,253,255,255,255,0,0,2,0, +2,0,2,0,1,0,255,255,253,255,252,255,251,255,251,255,251,255,252,255,253,255,253,255,254,255,254,255,254,255,254,255,253,255,253,255,251,255,251,255,250,255,250,255,250,255,250,255,250,255,252,255,254,255,0,0,1,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,2, +0,3,0,4,0,4,0,3,0,2,0,2,0,2,0,3,0,4,0,4,0,5,0,5,0,4,0,3,0,3,0,3,0,2,0,2,0,2,0,1,0,0,0,255,255,253,255,252,255,252,255,252,255,253,255,254,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,253,255,252,255,252,255,251,255,252, +255,252,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,255,255,0,0,1,0,2,0,3,0,3,0,3,0,3,0,2,0,0,0,255,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255, +255,254,255,253,255,252,255,253,255,253,255,253,255,252,255,251,255,250,255,249,255,249,255,249,255,250,255,252,255,253,255,255,255,1,0,2,0,3,0,3,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +254,255,254,255,254,255,254,255,254,255,255,255,0,0,1,0,2,0,3,0,3,0,2,0,1,0,0,0,255,255,255,255,0,0,1,0,2,0,3,0,4,0,5,0,4,0,3,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,254,255, +253,255,253,255,253,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,253,255,253,255,254,255,255,255,0,0,0,0,0,0,255,255,253,255,252,255,252,255,251,255,251,255,251,255,250,255,250,255,250,255,251,255,252,255,253,255,254,255, +255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,3,0,4,0,5,0,6,0,6,0,7,0,7,0,6,0,6,0,5,0,3,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,254,255, +254,255,253,255,253,255,252,255,252,255,252,255,251,255,251,255,251,255,252,255,252,255,253,255,253,255,253,255,253,255,253,255,254,255,253,255,253,255,252,255,251,255,252,255,252,255,253,255,253,255,253,255,253,255,253,255,252,255,252,255,253,255,253, +255,254,255,0,0,1,0,2,0,2,0,1,0,255,255,254,255,253,255,252,255,251,255,252,255,253,255,254,255,255,255,0,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,0,0,0,0,1,0,1,0,2,0,1,0,1,0,0,0,255,255,254,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255, +255,255,255,0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,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,1,0,2,0,4,0,4,0,5,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, +0,5,0,5,0,4,0,3,0,3,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,3,0,4,0,5,0,6,0,6,0,6,0,6,0,5,0,3,0,1,0,0,0,254,255,253,255,252,255,252,255,252,255,252,255,253,255,254,255,255,255,0,0,0,0,1,0,0,0,255,255,255,255,254,255,254,255,254,255,253,255,253,255,252,255,252, +255,252,255,252,255,252,255,253,255,253,255,253,255,253,255,253,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,251,255,251,255,251,255,250,255,250,255,250,255,250,255,249,255,249,255,249,255,250,255, +250,255,251,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,253,255,253,255,253,255,253,255,253,255,253,255,252,255,252,255,252,255,252,255,253,255,254,255,255,255,255,255,0,0,0,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,3,0,3,0,4,0,4, +0,4,0,4,0,3,0,3,0,3,0,3,0,4,0,4,0,4,0,3,0,3,0,2,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,0,0,0,0,0,0,1,0,2,0,2,0,3,0,3,0,3,0,4,0,4,0,4,0,5,0,4,0,4,0,3,0,2,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0, +3,0,4,0,4,0,4,0,4,0,3,0,2,0,1,0,0,0,255,255,255,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,252,255,252,255,251,255,251,255,251,255,251,255,251,255,251,255,252,255, +253,255,254,255,255,255,0,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,254,255,253,255,253,255,253,255,254,255,254,255,254,255,255,255,255,255,254,255,253,255,252,255,251,255,250,255,249,255,248,255,248, +255,248,255,249,255,251,255,252,255,253,255,254,255,254,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,0,0,0,0,0,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,0,0,0,0,255,255,254,255,253,255,253,255,253,255,253,255, +253,255,253,255,254,255,254,255,255,255,255,255,0,0,0,0,1,0,1,0,2,0,1,0,1,0,0,0,255,255,254,255,254,255,253,255,254,255,254,255,254,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,2,0,2,0,3,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0,3,0,4,0,5,0,5,0,5,0,5, +0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,0,0,255,255,253,255,252,255,252,255,251,255,251,255,251,255,251,255,252,255,252,255,253,255,253,255,254,255,255,255,0,0,0,0,0,0,255,255,255,255,254,255,254, +255,254,255,254,255,254,255,253,255,253,255,253,255,254,255,254,255,255,255,0,0,1,0,2,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254, +255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,254,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,254,255,254,255,254,255,253,255,253,255, +253,255,253,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,253,255,253,255,252,255,252,255,252,255,252,255,252,255,253,255,253,255,252,255,252,255,251,255,251,255,251,255,252,255,254,255,254,255,254,255,254,255,253,255,253,255,252,255,252, +255,252,255,253,255,254,255,255,255,0,0,0,0,0,0,255,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,0,0,1,0,1,0,2,0,2,0,3,0,3,0,4,0,4,0,5,0,5,0,5,0,6,0,6,0,6,0,6,0,5,0,4,0,3,0,3,0,3,0,3,0,3,0,3,0,4,0,4,0,4,0,4,0,3,0,2,0,1,0,0,0,0,0,0,0,0, +0,255,255,254,255,253,255,253,255,253,255,252,255,253,255,253,255,253,255,252,255,252,255,252,255,252,255,253,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,2,0,2,0,3,0,4,0,4,0,4,0,4,0,4,0,4,0, +3,0,3,0,2,0,1,0,1,0,0,0,0,0,255,255,255,255,254,255,253,255,253,255,252,255,252,255,252,255,253,255,253,255,254,255,255,255,255,255,0,0,1,0,1,0,0,0,255,255,254,255,254,255,253,255,252,255,252,255,252,255,252,255,253,255,253,255,254,255,255,255,0,0,1, +0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,0,0,255,255,254,255,253,255,252,255,252,255,252,255,252,255,253,255,254,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255, +255,255,255,255,255,255,0,0,0,0,255,255,255,255,254,255,253,255,252,255,252,255,252,255,252,255,253,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,255,255,255,255, +254,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,3,0,3,0,3,0,2,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,254,255,253,255,253,255,253,255,252, +255,252,255,252,255,252,255,252,255,251,255,251,255,251,255,252,255,253,255,253,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,254,255,255,255,255,255,0,0,2,0,3,0,4,0,5,0,5,0,5,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,1, +0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,253,255,252,255,251,255,250,255,249,255,249,255,249,255,250,255,251,255,251,255,252,255,252,255,253,255,253,255,254,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,3,0,3,0,3,0,3,0,2,0,1,0,1,0, +2,0,3,0,4,0,5,0,5,0,5,0,4,0,3,0,2,0,1,0,255,255,254,255,253,255,253,255,253,255,253,255,253,255,254,255,255,255,255,255,0,0,255,255,255,255,254,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,253,255,253,255,252,255,251,255,251,255, +251,255,251,255,252,255,253,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,253,255,253,255,253,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,255,255,254,255,254,255,254,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,1,0,2,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1, +0,2,0,2,0,2,0,1,0,1,0,0,0,255,255,254,255,253,255,252,255,252,255,252,255,252,255,252,255,252,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,2,0,2,0,3,0,3,0,3,0,2, +0,2,0,2,0,2,0,1,0,1,0,0,0,255,255,253,255,253,255,252,255,252,255,252,255,252,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,252,255,252,255,252,255,253,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0, +0,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255,252,255,252,255,252,255,253,255,253, +255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,254,255,253,255,252,255,252,255,252,255,252,255,253,255,253,255,255,255,0,0,1,0,2,0,3,0,3,0,4,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,2, +0,2,0,1,0,1,0,255,255,254,255,253,255,252,255,252,255,252,255,252,255,253,255,253,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0, +2,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,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,254, +255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,254, +255,254,255,254,255,254,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,0,0,255,255,254,255,253,255,253,255,252,255,252,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,254,255,255, +255,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,1,0,1,0,2,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, +255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,2,0,2,0,3,0,3,0,3,0,3,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,254,255,253,255,254,255,254,255,255,255,255,255,0,0,0, +0,0,0,0,0,255,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255, +254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,254,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,253, +255,253,255,253,255,253,255,253,255,252,255,253,255,253,255,254,255,255,255,255,255,0,0,0,0,1,0,0,0,0,0,255,255,254,255,254,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,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,1,0,1,0,1,0,1,0,1,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,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1, +0,1,0,1,0,2,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,254,255,254,255,253,255,253,255,252,255,252,255,251,255,251,255,252,255,252,255,252,255,252,255,252,255,253,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,254, +255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,254,255,254,255,253,255,253,255,253,255,252,255,253,255,253,255,253,255,254,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,1,0,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,0, +0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,253,255,253,255,252,255,252,255,252,255,253,255,253,255,254,255,254,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,2,0, +2,0,3,0,3,0,3,0,2,0,2,0,1,0,1,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,254,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,254, +255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,1,0,1,0,2,0,2,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,255,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255, +254,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255, +255,0,0,0,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,255,255,254,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254, +255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,0,0,0,0,255,255,255,255,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,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255, +254,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,252,255,252,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,255,255,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,1,0,1,0,1,0,1,0,1,0,1,0,1,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,254,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,254,255,254,255,255, +255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,253, +255,254,255,254,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,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,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254, +255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,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,254,255,254,255,254,255,254,255,254,255,254,255,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,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,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1, +0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,1,0,2,0,2,0,1,0,1,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,255,255,255,255,255,255, +254,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,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,254,255,254,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255, +255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,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,0,0,0,0,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255, +255,255,255,255,255,255,254,255,254,255,253,255,253,255,253,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,254,255,254,255,253,255,253,255,254,255,254, +255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,254,255, +254,255,254,255,255,255,255,255,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,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255, +254,255,254,255,254,255,254,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,1,0,1,0,1,0,1,0,1,0,1, +0,1,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1, +0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255, +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,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,254,255,254,255,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,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +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,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,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,1,0,1,0,1,0,1,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,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,254,255,254,255,254,255,253,255,253,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,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, +0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,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,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255,255,255,255,255,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,255,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255, +254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,0,0,1,0,1,0,1,0,1,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,1,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,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,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,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,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,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,0,0,0,0,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,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255, +255,255,255,255,255,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,254,255,254,255,255,255,255,255,255,255,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,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,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,1,0,1,0,1,0,1,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0, +0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, +255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254, +255,254,255,254,255,254,255,255,255,255,255,255,255,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,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,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,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,254,255, +254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,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,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,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,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255, +255,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,255,255,255,255,255,255,255,255,255,255,255, +255,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,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,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,0,0,0,0,0,0,0,0,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,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,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,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,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,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,1,0,1,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,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,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,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255, +255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,255,255,255,255,255,255,255,255,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,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,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0, +0,0,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,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,0,0,0,0,0,0,0,0,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,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,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255, +255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0, +0,0,0,0,0,0,0,0,0,255,255,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,255,255,255,255,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,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,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,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,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,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,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,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,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +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,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,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,0,0,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,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255, +255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,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,0,0,0,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,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,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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, +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,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,255,255,255,255,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,0,0,0,0,0,0,0, +0,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255, +0,0,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,0,0,0,0,0,0,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,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,0,0,255,255,255,255,255,255,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,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,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,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,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,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,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,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,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,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,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,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,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,0,0,0,0,0,0,0,0,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,0,0,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,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,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,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,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,0,0,0,0,0,0,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,0,0,0,0,0,0,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,0,0,0,0,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,255,255,255,255,255,255,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,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,255,255,255,255,255,255,255,255,255,255,255,255,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,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,0,0,0,0,0,0,0,0,0,0,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,0,0,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,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, +255,255,255,255,255,255,255,255,255,255,255,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,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,255,255,0,0,0,0,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,0,0,255,255,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,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,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,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,255,255,255,255,255,255,255,255,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, +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,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,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,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,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,0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,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,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,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,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,0,0,255,255,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,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,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,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,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255, +255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,0,0,0,0,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,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,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,255,255,255,255,255,255,255,255, +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,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0, +0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,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,255,255,255,255,255,255,255,255,255,255,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,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,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,255,255,255,255,255,255,255,255,255,255,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255, +255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,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,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,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,255,255,255,255,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,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,255,255,255,255,0,0,255,255,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,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,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,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,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,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,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,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,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,0,0,0,0,0,0,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,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,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,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,0,0,0,0,0,0,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,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255, +255,255,255,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,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,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255, +255,255,255,255,255,255,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,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,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,255,255,255, +255,255,255,255,255,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,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,0,0,0,0,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,0,0,0,0,0,0,0,0,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,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,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,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,255,255,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,255,255,255,255,255,255,255,255,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,0,0,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,0,0,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,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,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,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,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,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,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,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,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255, +255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,0,0,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,0,0,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,0,0,255,255,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,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,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,255,255,255,255,255,255,255,255,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,255,255,255, +255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255, +255,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,0,0,0,0,0,0,0,0,0,0,0,0,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,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,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,0,0,0,0,0,0,0,0,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,255,255,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,255,255,255,255,255,255,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,255,255,255,255,255,255,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,255,255,255,255,255,255,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,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255, +255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,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,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,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,0,0, +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0, +0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,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,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,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,0,0,0,0,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,255,255,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,255,255,0,0,255,255,255, +255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,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,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0, +0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,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,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0, +0,0,0,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,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,0,0,0,0,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,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,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,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,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,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,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,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,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,0,0,0,0,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,0,0,0,0,0,0,0,0,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,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,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,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,255,255,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,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,0,0,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,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,0,0,0,0,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,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,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,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,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,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,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,0,0,255,255,0,0,0,0,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,0,0,255,255,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,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,255,255,255,255,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,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,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,255,255,255,255,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,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255, +255,255,255,255,255,255,255,255,255,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,255,255,255,255,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,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255, +255,255,255,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,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,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,0, +0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255, +0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,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,0,0,0,0,255,255,0,0,0,0,0, +0,255,255,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,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,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,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,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,0,0,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0, +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,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,0,0,255,255,255,255,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,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0, +0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,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,0,0,255,255,255,255,255,255,255,255,0,0,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,0,0,0,0,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,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,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,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,255,255,0,0,255,255,255,255,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,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,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255, +255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,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,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,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255, +255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,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,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,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,255,255,255,255,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,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,0,0,0, +0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,0, +0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,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,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255,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,0,0,255,255,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,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,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,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,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,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,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,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255, +255,255,255,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,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255, +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,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,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,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,255,255,255,255,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,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,0,0,0,0,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,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,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,0,0,255,255,0,0,255,255,0,0,0,0,0,0,255,255,255,255,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,0, +0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,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,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,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,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,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,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,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255, +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,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,255,255,255,255,255,255,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,255,255,255,255,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,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,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,0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,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,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,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,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,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,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,0,0,0,0,255,255,0,0,0,0,0,0,0,0,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,0,0,255,255,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,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,255,255,0,0,255,255,0,0,255,255,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255, +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,0,0,255,255,255,255,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,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,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,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,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,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,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,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255, +255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255, +255,255,255,0,0,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,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,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,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,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,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0, +0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,255,255, +0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,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,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255, +255,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,255,255,0,0,0,0,255,255,0, +0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,255,255,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,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,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255, +255,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,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,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255, +255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,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,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,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,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,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255, +0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,255,255,255, +255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255,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,0,0,0, +0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,255, +255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,255,255,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,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255, +255,255,0,0,255,255,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,255,255,255,255,0,0,255,255,255,255,255,255,255,255,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,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,255,255,0,0,255,255,255,255,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,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,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,255,255,255,255,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,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,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,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,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,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,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,0,0,255,255,0,0,255,255,0, +0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,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,255,255,0,0,0,0,0,0,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,255,255,0,0,255,255,0,0,255, +255,0,0,0,0,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,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,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,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,0,0,255,255,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0, +255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255, +255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,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,255,255,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,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,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,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,255,255,255,255,255,255,255,255,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,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,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, +255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,0,0,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,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,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,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,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,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,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,0,0,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,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,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,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,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, +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,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,0,0,255,255,255, +255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,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,0,0,0,0,0,0,0,0,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,255,255,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,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,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255, +255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,255,255,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,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255, +255,0,0,0,0,255,255,255,255,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,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,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,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,0,0,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,0,0,255,255,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,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,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,0,0,255,255,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,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,0,0,0,0,255,255,0,0,255,255,255,255,255,255,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,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,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,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255, +0,0,0,0,255,255,0,0,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,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,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,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0, +255,255,0,0,0,0,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255, +255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,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,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0, +0,255,255,0,0,255,255,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,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,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,0,0,255,255,0, +0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,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,0,0,255,255,255,255,255,255,255,255,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,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,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,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,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,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255, +255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255, +255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,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,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,0,0,255,255,255,255,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,0,0,255,255,0,0,255,255,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,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,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,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,0,0,0,0,255,255,0,0,255,255,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,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,0,0,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,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,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,0,0,255,255,0,0,255, +255,0,0,255,255,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,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,255,255,255,255,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,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,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,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,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,255,255,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,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,255,255,255,255,255,255,255,255,255,255,255,255,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,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,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,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,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,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,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,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,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,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,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255, +255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,255,255,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,0,0,0,0,255,255,0,0,0,0,0,0,0,0,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,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0,0, +255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,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,0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,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,0,0,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,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,0,0,0, +0,0,0,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,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255, +255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,255, +255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,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,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255, +255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,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,0,0,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,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,255,255,0,0,0,0,0,0,0,0,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,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,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0, +0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0, +255,255,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0, +0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0, +0,0,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,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255, +255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,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,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,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,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0, +0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,255,255,255,255,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,0,0,255,255,255,255,0,0,255,255, +255,255,255,255,255,255,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,255,255,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,0,0,255,255,255,255,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,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,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255, +255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,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,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, +255,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0, +0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,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,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,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,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,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,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255, +255,255,255,255,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,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,255,255, +255,255,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,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,255,255,0,0,255,255,0,0,0,0,0,0,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,255,255,255, +255,255,255,255,255,255,255,255,255,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,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,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,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,0, +0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,255,255, +255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,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, +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,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255, +255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,255, +255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,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,255,255,255,255,0,0,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,0,0,255,255,0,0,255,255,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, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0, +0,0,0,255,255,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,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,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,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,0,0,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,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,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,0,0,0, +0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255, +255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,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,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255, +255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,255,255,0,0,255,255,0,0,255,255,255, +255,0,0,255,255,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,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255, +255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,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,255,255,0,0,0,0,255,255,0,0,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,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,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,0,0,255,255,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,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255, +255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255, +255,0,0,255,255,0,0,0,0,255,255,255,255,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,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,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0, +0,255,255,0,0,0,0,255,255,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,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255, +255,255,255,0,0,0,0,255,255,255,255,255,255,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,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0, +0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,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,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,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,0,0,255,255,0,0,255, +255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,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,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,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,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255, +255,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,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,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,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,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,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255, +0,0,255,255,0,0,0,0,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,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,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,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255, +255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,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,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,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,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,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,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255, +255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0, +0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,0, +0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255, +0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,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,0,0,255, +255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,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,0,0,255,255,0,0,0,0,255, +255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255, +255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255, +255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,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,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255, +255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,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,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255, +255,255,255,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,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,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,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,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, +0,0,0,0,0,0,255,255,0,0,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,0,0,255,255,255,255,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,0,0,255,255,255,255,255,255,255,255,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,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,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,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,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,255,255,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,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,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255, +255,255,255,255,0,0,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,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,0,0,0,0,0,0,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,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,255,255,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,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,0,0,255,255, +255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,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,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,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,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,255,255,255,255,255,255,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,255,255,0,0,0,0,0,0,0,0,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,0,0,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,255,255,0,0,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,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,0,0,0,0,255,255,255,255,255,255,255,255,255,255,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,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,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,0,0,0,0,0, +0,0,0,0,0,255,255,255,255,255,255,255,255,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,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,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,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0, +0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,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,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0, +255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,255,255,0,0,0,0,255,255,0, +0,0,0,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,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,0,0,0,0,0,0,0,0,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,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255,0,0,255,255, +255,255,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,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,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,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,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,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,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,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,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,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,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0, +0,0,0,255,255,0,0,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,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,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,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0, +0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255, +255,255,255,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,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,0,0,255,255,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,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,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,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,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255, +255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,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,255,255,255,255,255,255,255,255,255,255,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,0,0,255,255,0,0,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,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,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,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,0, +0,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255,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,0,0,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,255,255,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,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255, +255,0,0,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255, +255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,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,255,255,0, +0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,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,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255, +255,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,255,255,255,255,0,0,255, +255,0,0,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,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,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,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,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,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,0,0,255,255,255,255,0,0,255, +255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,255,255,0, +0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255, +255,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,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,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,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255, +255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,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,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,255,255,255,255,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,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, +255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,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,0,0,255,255,0,0,255,255,255,255,255,255,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,255,255,0,0,0,0,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,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255, +255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255, +255,255,255,255,255,255,255,255,255,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,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,255,255,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,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0, +0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,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, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0, +0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,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,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255, +255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255, +255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255, +255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255, +255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0 }; + +const char* Impulse1_wav = (const char*) temp_binary_data_0; + +//================== Impulse2.wav ================== +static const unsigned char temp_binary_data_1[] = +{ 82,73,70,70,6,148,0,0,87,65,86,69,102,109,116,32,16,0,0,0,1,0,1,0,68,172,0,0,136,88,1,0,2,0,16,0,106,117,110,107,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,100,97,116,97,166,147,0, +0,0,0,254,255,255,255,247,255,1,0,245,255,2,0,235,255,254,255,240,255,24,0,18,0,38,0,254,255,190,252,204,252,200,252,107,253,11,252,41,251,178,251,25,255,143,255,27,1,248,6,177,7,210,7,89,9,156,11,232,9,38,8,8,8,219,6,233,2,42,255,249,251,9,250,154,249, +177,248,51,248,103,249,73,250,232,251,68,253,33,0,48,3,14,6,114,6,117,6,193,7,185,7,166,4,160,0,68,254,104,251,172,249,41,249,134,248,129,248,243,249,175,251,90,252,168,253,178,255,189,0,236,1,141,1,203,255,110,254,5,254,97,253,239,252,221,251,80,250, +201,250,110,252,244,252,221,253,92,255,178,0,31,2,78,2,85,2,19,2,230,2,164,3,175,2,237,1,254,0,21,0,125,255,63,255,44,0,12,2,196,2,106,3,253,4,147,5,4,5,242,4,231,4,54,4,174,3,90,2,154,0,104,254,249,251,18,251,4,250,63,248,150,247,107,247,211,247,103, +249,3,251,206,252,130,255,164,1,214,3,139,5,214,5,202,5,197,5,46,5,32,4,43,2,3,255,127,251,65,249,166,248,78,248,81,248,6,249,16,250,94,251,59,253,176,255,228,2,196,5,105,8,153,10,170,11,27,12,19,12,222,10,230,8,50,6,70,3,52,1,128,254,5,252,41,251,253, +250,152,250,97,251,202,252,132,253,121,254,124,255,194,0,99,2,196,3,157,4,112,4,108,3,101,2,5,1,204,255,196,254,218,253,126,252,119,251,70,251,47,251,169,251,46,252,208,252,243,253,242,254,167,255,38,0,52,0,189,0,7,1,59,1,17,1,165,0,87,1,91,1,99,1,100, +1,175,0,151,0,184,255,193,254,217,254,168,255,234,0,251,1,134,2,99,3,109,4,48,4,25,3,15,2,174,0,22,255,183,253,98,252,199,251,213,251,105,251,72,251,77,252,5,254,64,255,234,255,27,1,121,1,67,1,239,0,134,0,25,0,123,255,149,254,229,253,119,253,122,252, +73,251,0,251,40,251,209,250,141,251,25,253,62,254,81,255,151,0,206,1,216,2,122,3,28,4,51,4,202,3,239,2,254,1,44,1,42,0,17,255,244,253,109,253,184,253,105,254,43,255,114,0,188,1,201,2,148,3,47,4,164,4,133,4,237,3,62,3,64,2,101,1,242,255,106,254,46,253, +3,252,245,250,203,250,87,251,197,251,171,252,189,253,223,254,20,0,119,1,127,2,33,3,160,3,212,3,66,3,56,2,30,1,41,0,43,255,10,254,27,253,10,253,86,253,198,253,82,254,48,255,14,0,168,0,86,1,118,1,153,1,221,1,237,1,45,2,117,2,125,2,128,2,140,2,117,2,15, +2,220,1,141,1,16,1,154,0,52,0,41,0,73,0,237,255,169,255,248,255,106,0,181,0,7,1,72,1,72,1,97,1,165,1,186,1,241,1,32,2,86,2,62,2,236,1,62,1,206,0,38,0,105,255,115,254,31,253,250,252,47,252,88,251,6,251,139,251,7,252,245,251,110,252,94,253,81,254,74,255, +152,255,214,255,76,0,38,0,248,255,39,0,48,0,68,0,42,0,247,255,170,255,15,255,166,254,147,254,188,254,153,254,107,254,167,254,248,254,100,255,228,255,87,0,174,0,45,1,146,1,200,1,15,2,56,2,73,2,156,1,59,1,87,0,153,255,249,254,191,254,176,254,81,254,241, +253,252,253,100,254,9,255,167,255,56,0,220,0,121,1,52,2,122,2,181,2,195,2,108,2,194,1,17,1,70,0,136,255,202,254,118,254,210,253,70,253,48,253,82,253,152,253,16,254,42,254,184,254,170,255,112,0,23,1,250,1,212,2,98,3,227,3,30,4,255,3,123,3,4,3,44,2,43, +1,67,0,177,255,79,255,46,255,237,254,157,254,1,255,141,255,251,255,67,0,137,0,202,0,194,0,181,0,130,0,45,0,220,255,30,255,22,254,106,253,238,252,170,252,160,252,232,252,10,253,49,253,203,253,158,254,96,255,8,0,166,0,255,0,26,1,35,1,29,1,0,1,184,0,65, +0,166,255,16,255,205,254,159,254,134,254,137,254,12,255,147,255,4,0,145,0,78,1,2,2,74,2,96,2,108,2,97,2,23,2,204,1,190,1,145,1,121,1,155,1,198,1,224,1,214,1,222,1,218,1,208,1,165,1,113,1,27,1,178,0,84,0,249,255,179,255,62,255,195,254,86,254,240,253,166, +253,109,253,102,253,166,253,235,253,58,254,174,254,7,255,111,255,210,255,10,0,250,255,211,255,150,255,40,255,179,254,116,254,63,254,21,254,71,254,122,254,172,254,242,254,85,255,190,255,34,0,121,0,237,0,84,1,149,1,202,1,224,1,219,1,179,1,116,1,38,1,213, +0,121,0,24,0,200,255,163,255,128,255,116,255,145,255,227,255,92,0,168,0,5,1,90,1,178,1,234,1,248,1,252,1,208,1,144,1,7,1,107,0,228,255,114,255,246,254,131,254,45,254,242,253,176,253,169,253,164,253,184,253,1,254,76,254,134,254,210,254,58,255,123,255, +181,255,238,255,50,0,81,0,64,0,8,0,224,255,200,255,187,255,143,255,136,255,147,255,145,255,188,255,233,255,23,0,71,0,136,0,178,0,214,0,21,1,61,1,90,1,94,1,93,1,75,1,52,1,17,1,247,0,198,0,145,0,112,0,74,0,48,0,24,0,9,0,230,255,210,255,209,255,241,255, +244,255,227,255,234,255,238,255,249,255,10,0,7,0,15,0,29,0,18,0,247,255,221,255,196,255,182,255,135,255,82,255,59,255,245,254,160,254,129,254,145,254,153,254,191,254,252,254,66,255,171,255,33,0,136,0,231,0,61,1,110,1,151,1,156,1,106,1,24,1,207,0,137, +0,23,0,182,255,108,255,51,255,2,255,239,254,0,255,32,255,97,255,176,255,37,0,152,0,0,1,91,1,177,1,243,1,3,2,0,2,229,1,180,1,102,1,9,1,168,0,59,0,206,255,129,255,50,255,225,254,160,254,112,254,93,254,110,254,134,254,158,254,186,254,218,254,249,254,44, +255,110,255,172,255,234,255,250,255,240,255,220,255,197,255,167,255,157,255,156,255,124,255,117,255,125,255,116,255,135,255,167,255,184,255,198,255,204,255,234,255,25,0,56,0,80,0,96,0,138,0,165,0,162,0,168,0,172,0,171,0,161,0,146,0,121,0,100,0,87,0,101, +0,127,0,152,0,163,0,181,0,218,0,239,0,236,0,209,0,197,0,173,0,135,0,111,0,100,0,82,0,40,0,248,255,219,255,185,255,139,255,104,255,69,255,53,255,54,255,58,255,75,255,98,255,117,255,148,255,191,255,235,255,1,0,12,0,3,0,243,255,226,255,197,255,180,255,156, +255,135,255,120,255,118,255,124,255,126,255,125,255,108,255,93,255,82,255,71,255,86,255,110,255,133,255,172,255,223,255,10,0,36,0,58,0,90,0,131,0,145,0,145,0,154,0,141,0,129,0,116,0,111,0,102,0,105,0,117,0,112,0,100,0,100,0,114,0,114,0,99,0,74,0,52,0, +43,0,46,0,40,0,23,0,1,0,250,255,243,255,246,255,242,255,235,255,228,255,222,255,218,255,209,255,213,255,229,255,247,255,254,255,1,0,251,255,238,255,221,255,215,255,211,255,194,255,163,255,155,255,164,255,178,255,199,255,233,255,1,0,252,255,245,255,1, +0,4,0,238,255,216,255,215,255,211,255,188,255,174,255,183,255,207,255,220,255,236,255,14,0,56,0,112,0,161,0,192,0,208,0,220,0,227,0,228,0,221,0,206,0,181,0,149,0,106,0,64,0,24,0,238,255,207,255,194,255,193,255,190,255,193,255,208,255,222,255,225,255, +227,255,239,255,241,255,231,255,225,255,220,255,215,255,214,255,220,255,229,255,236,255,245,255,253,255,1,0,254,255,244,255,220,255,192,255,165,255,137,255,120,255,100,255,82,255,81,255,93,255,104,255,116,255,138,255,175,255,203,255,222,255,251,255,37, +0,74,0,92,0,98,0,102,0,92,0,75,0,65,0,48,0,29,0,19,0,16,0,5,0,3,0,6,0,13,0,24,0,19,0,14,0,6,0,249,255,224,255,205,255,202,255,191,255,182,255,185,255,202,255,219,255,238,255,6,0,25,0,51,0,73,0,74,0,73,0,85,0,95,0,90,0,88,0,92,0,93,0,79,0,64,0,46,0,29, +0,17,0,5,0,247,255,235,255,237,255,233,255,223,255,219,255,227,255,230,255,223,255,221,255,226,255,235,255,243,255,244,255,246,255,245,255,241,255,238,255,232,255,222,255,210,255,199,255,192,255,186,255,185,255,189,255,198,255,203,255,216,255,228,255, +243,255,5,0,11,0,10,0,9,0,12,0,9,0,7,0,5,0,4,0,7,0,15,0,26,0,38,0,40,0,49,0,68,0,69,0,64,0,66,0,68,0,65,0,60,0,52,0,44,0,44,0,55,0,58,0,57,0,64,0,67,0,59,0,50,0,51,0,52,0,40,0,28,0,15,0,251,255,242,255,239,255,239,255,231,255,227,255,225,255,216,255, +212,255,220,255,227,255,219,255,215,255,221,255,221,255,217,255,221,255,229,255,238,255,238,255,236,255,241,255,248,255,252,255,250,255,247,255,243,255,238,255,229,255,220,255,213,255,203,255,190,255,168,255,150,255,147,255,152,255,152,255,153,255,158, +255,163,255,174,255,187,255,196,255,208,255,219,255,236,255,250,255,8,0,26,0,42,0,55,0,65,0,71,0,74,0,77,0,83,0,83,0,77,0,64,0,58,0,56,0,54,0,52,0,54,0,57,0,57,0,61,0,65,0,70,0,71,0,67,0,63,0,56,0,44,0,32,0,26,0,18,0,3,0,247,255,240,255,236,255,243,255, +252,255,254,255,4,0,14,0,23,0,27,0,38,0,51,0,56,0,52,0,47,0,45,0,35,0,17,0,0,0,242,255,225,255,205,255,194,255,191,255,200,255,208,255,214,255,226,255,241,255,1,0,15,0,18,0,14,0,6,0,248,255,232,255,218,255,206,255,194,255,185,255,174,255,171,255,170, +255,166,255,166,255,175,255,184,255,192,255,195,255,202,255,210,255,216,255,224,255,229,255,233,255,234,255,235,255,233,255,236,255,238,255,239,255,246,255,253,255,253,255,1,0,16,0,30,0,36,0,31,0,32,0,39,0,45,0,48,0,54,0,67,0,78,0,87,0,96,0,113,0,130, +0,132,0,127,0,120,0,107,0,95,0,81,0,58,0,36,0,18,0,0,0,238,255,224,255,216,255,214,255,213,255,217,255,222,255,225,255,229,255,228,255,226,255,225,255,222,255,218,255,210,255,196,255,184,255,180,255,177,255,172,255,167,255,166,255,167,255,171,255,178, +255,189,255,196,255,197,255,202,255,207,255,215,255,232,255,250,255,7,0,19,0,36,0,55,0,71,0,82,0,92,0,98,0,95,0,92,0,89,0,83,0,71,0,51,0,37,0,30,0,26,0,25,0,27,0,33,0,43,0,56,0,70,0,78,0,87,0,98,0,101,0,94,0,81,0,65,0,41,0,8,0,232,255,204,255,176,255, +151,255,134,255,127,255,128,255,137,255,154,255,164,255,173,255,188,255,206,255,220,255,224,255,225,255,224,255,225,255,226,255,225,255,221,255,222,255,223,255,229,255,239,255,249,255,3,0,15,0,26,0,35,0,44,0,57,0,68,0,72,0,71,0,70,0,69,0,69,0,67,0,64, +0,62,0,59,0,61,0,65,0,69,0,70,0,74,0,78,0,79,0,76,0,70,0,62,0,52,0,40,0,24,0,6,0,243,255,229,255,214,255,197,255,187,255,187,255,187,255,185,255,185,255,190,255,191,255,192,255,195,255,194,255,191,255,185,255,176,255,166,255,153,255,144,255,140,255,132, +255,126,255,126,255,132,255,141,255,150,255,161,255,176,255,191,255,205,255,217,255,230,255,246,255,255,255,5,0,5,0,1,0,0,0,2,0,4,0,2,0,6,0,15,0,23,0,32,0,47,0,65,0,79,0,91,0,101,0,111,0,119,0,120,0,122,0,126,0,126,0,117,0,108,0,102,0,97,0,89,0,77,0, +65,0,55,0,49,0,42,0,35,0,25,0,14,0,7,0,1,0,250,255,246,255,245,255,241,255,237,255,239,255,242,255,242,255,242,255,244,255,247,255,249,255,248,255,246,255,246,255,244,255,242,255,241,255,236,255,229,255,226,255,226,255,224,255,222,255,221,255,218,255, +214,255,214,255,215,255,216,255,219,255,225,255,231,255,236,255,242,255,248,255,1,0,4,0,4,0,3,0,1,0,1,0,255,255,249,255,238,255,230,255,226,255,225,255,226,255,228,255,229,255,233,255,241,255,253,255,14,0,31,0,43,0,52,0,58,0,62,0,66,0,68,0,66,0,59,0, +48,0,35,0,24,0,20,0,18,0,14,0,8,0,7,0,9,0,11,0,13,0,15,0,18,0,16,0,10,0,5,0,3,0,1,0,252,255,246,255,239,255,234,255,230,255,228,255,226,255,225,255,223,255,218,255,211,255,208,255,208,255,206,255,202,255,200,255,196,255,192,255,190,255,191,255,196,255, +200,255,202,255,208,255,215,255,216,255,218,255,221,255,222,255,224,255,223,255,222,255,222,255,224,255,226,255,228,255,231,255,238,255,249,255,4,0,12,0,18,0,26,0,36,0,42,0,45,0,46,0,45,0,44,0,43,0,42,0,41,0,40,0,40,0,38,0,35,0,36,0,42,0,48,0,55,0,54, +0,51,0,49,0,49,0,47,0,43,0,37,0,28,0,18,0,10,0,5,0,254,255,251,255,249,255,246,255,243,255,242,255,246,255,252,255,255,255,1,0,3,0,6,0,8,0,11,0,13,0,13,0,12,0,9,0,5,0,2,0,254,255,249,255,245,255,244,255,244,255,245,255,244,255,242,255,242,255,244,255, +244,255,243,255,244,255,245,255,245,255,244,255,246,255,249,255,249,255,246,255,247,255,250,255,253,255,254,255,252,255,250,255,247,255,244,255,242,255,242,255,241,255,240,255,240,255,239,255,241,255,247,255,253,255,2,0,7,0,12,0,17,0,20,0,24,0,30,0,32, +0,33,0,31,0,31,0,32,0,33,0,31,0,31,0,31,0,27,0,22,0,21,0,22,0,20,0,17,0,16,0,16,0,16,0,13,0,9,0,8,0,6,0,1,0,252,255,249,255,246,255,243,255,240,255,235,255,230,255,225,255,219,255,213,255,210,255,207,255,205,255,205,255,205,255,204,255,205,255,210,255, +215,255,218,255,221,255,223,255,225,255,227,255,230,255,234,255,235,255,234,255,234,255,236,255,238,255,240,255,240,255,239,255,240,255,243,255,246,255,249,255,251,255,253,255,253,255,252,255,254,255,0,0,0,0,254,255,251,255,251,255,251,255,254,255,2, +0,6,0,10,0,12,0,18,0,23,0,26,0,29,0,31,0,30,0,29,0,27,0,27,0,27,0,24,0,21,0,18,0,15,0,15,0,16,0,16,0,16,0,17,0,18,0,19,0,21,0,25,0,27,0,27,0,26,0,26,0,27,0,27,0,26,0,24,0,23,0,21,0,21,0,21,0,20,0,18,0,16,0,15,0,13,0,13,0,12,0,12,0,11,0,11,0,10,0,9,0, +8,0,7,0,4,0,253,255,248,255,245,255,241,255,237,255,234,255,232,255,231,255,232,255,236,255,241,255,246,255,249,255,253,255,255,255,0,0,0,0,0,0,254,255,250,255,244,255,236,255,232,255,229,255,229,255,227,255,225,255,222,255,221,255,226,255,232,255,238, +255,243,255,249,255,253,255,3,0,9,0,14,0,18,0,18,0,14,0,9,0,7,0,9,0,9,0,6,0,5,0,5,0,7,0,9,0,10,0,13,0,13,0,12,0,10,0,10,0,9,0,8,0,8,0,5,0,1,0,254,255,252,255,253,255,254,255,252,255,248,255,246,255,244,255,242,255,240,255,236,255,233,255,229,255,226, +255,225,255,224,255,222,255,221,255,220,255,219,255,220,255,223,255,226,255,229,255,232,255,235,255,238,255,242,255,248,255,252,255,0,0,3,0,4,0,6,0,7,0,7,0,7,0,7,0,7,0,8,0,9,0,11,0,11,0,11,0,12,0,15,0,16,0,15,0,14,0,13,0,11,0,10,0,9,0,9,0,8,0,5,0,3,0, +1,0,2,0,3,0,5,0,6,0,8,0,11,0,13,0,16,0,20,0,22,0,22,0,22,0,21,0,18,0,16,0,13,0,9,0,4,0,0,0,254,255,255,255,255,255,255,255,254,255,255,255,1,0,3,0,6,0,8,0,9,0,11,0,11,0,13,0,15,0,15,0,15,0,14,0,11,0,9,0,6,0,5,0,3,0,0,0,254,255,253,255,254,255,1,0,4,0, +5,0,6,0,8,0,11,0,13,0,15,0,17,0,17,0,15,0,12,0,12,0,12,0,10,0,8,0,4,0,255,255,252,255,250,255,249,255,248,255,245,255,242,255,239,255,236,255,236,255,235,255,232,255,229,255,227,255,225,255,223,255,223,255,224,255,224,255,223,255,223,255,223,255,223, +255,224,255,226,255,226,255,227,255,227,255,227,255,228,255,230,255,233,255,236,255,241,255,244,255,247,255,250,255,253,255,2,0,6,0,6,0,6,0,8,0,12,0,14,0,14,0,14,0,13,0,12,0,12,0,12,0,15,0,18,0,18,0,19,0,21,0,23,0,24,0,26,0,26,0,26,0,24,0,21,0,19,0,18, +0,15,0,11,0,8,0,7,0,5,0,2,0,0,0,255,255,253,255,251,255,249,255,247,255,245,255,242,255,240,255,240,255,242,255,242,255,242,255,242,255,243,255,246,255,250,255,255,255,2,0,4,0,4,0,4,0,6,0,7,0,7,0,5,0,3,0,2,0,2,0,2,0,3,0,3,0,3,0,2,0,2,0,3,0,4,0,5,0,5, +0,4,0,5,0,5,0,6,0,7,0,8,0,9,0,9,0,10,0,10,0,11,0,12,0,12,0,10,0,9,0,9,0,8,0,7,0,5,0,5,0,3,0,1,0,255,255,254,255,254,255,253,255,251,255,250,255,249,255,249,255,248,255,247,255,245,255,245,255,244,255,243,255,243,255,243,255,244,255,245,255,245,255,245, +255,244,255,245,255,247,255,247,255,246,255,246,255,246,255,246,255,247,255,247,255,246,255,247,255,248,255,248,255,247,255,247,255,248,255,249,255,249,255,250,255,251,255,252,255,253,255,253,255,255,255,1,0,3,0,5,0,6,0,5,0,5,0,6,0,8,0,8,0,7,0,6,0,5, +0,4,0,4,0,4,0,4,0,2,0,1,0,2,0,3,0,4,0,4,0,5,0,4,0,4,0,5,0,6,0,5,0,4,0,4,0,3,0,2,0,2,0,2,0,3,0,3,0,2,0,0,0,255,255,254,255,255,255,0,0,0,0,255,255,254,255,254,255,255,255,0,0,3,0,6,0,9,0,10,0,10,0,12,0,16,0,18,0,19,0,18,0,15,0,12,0,10,0,8,0,7,0,5,0,3, +0,1,0,255,255,255,255,1,0,2,0,1,0,0,0,0,0,0,0,1,0,2,0,3,0,3,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,253,255,250,255,247,255,245,255,244,255,242,255,240,255,239,255,239,255,239,255,240,255,242,255,244,255,245,255,245, +255,245,255,246,255,247,255,248,255,249,255,248,255,247,255,247,255,248,255,248,255,249,255,249,255,248,255,247,255,245,255,245,255,245,255,245,255,244,255,243,255,243,255,244,255,246,255,249,255,252,255,253,255,255,255,0,0,3,0,5,0,8,0,10,0,11,0,12,0, +12,0,13,0,13,0,13,0,12,0,11,0,10,0,9,0,7,0,7,0,8,0,9,0,10,0,12,0,13,0,14,0,14,0,15,0,17,0,18,0,18,0,16,0,15,0,14,0,14,0,14,0,13,0,12,0,10,0,8,0,7,0,6,0,6,0,4,0,3,0,2,0,1,0,0,0,0,0,255,255,254,255,251,255,250,255,250,255,250,255,249,255,248,255,247,255, +247,255,247,255,247,255,248,255,249,255,249,255,250,255,251,255,251,255,251,255,252,255,252,255,252,255,251,255,251,255,251,255,251,255,251,255,252,255,252,255,254,255,0,0,2,0,3,0,4,0,5,0,7,0,7,0,7,0,7,0,6,0,4,0,2,0,1,0,0,0,253,255,252,255,251,255,250, +255,250,255,250,255,250,255,250,255,249,255,249,255,249,255,249,255,247,255,246,255,244,255,242,255,240,255,239,255,238,255,238,255,239,255,240,255,240,255,241,255,244,255,246,255,249,255,250,255,250,255,251,255,253,255,255,255,255,255,255,255,255,255, +255,255,0,0,1,0,3,0,3,0,2,0,3,0,4,0,6,0,7,0,7,0,7,0,7,0,6,0,6,0,7,0,8,0,8,0,7,0,6,0,7,0,8,0,10,0,10,0,11,0,11,0,10,0,10,0,10,0,9,0,8,0,7,0,5,0,4,0,4,0,5,0,4,0,3,0,2,0,3,0,4,0,5,0,5,0,4,0,3,0,3,0,4,0,4,0,3,0,0,0,255,255,255,255,0,0,0,0,0,0,254,255,253, +255,253,255,254,255,1,0,2,0,1,0,0,0,0,0,0,0,1,0,3,0,2,0,0,0,254,255,254,255,0,0,3,0,5,0,4,0,4,0,5,0,8,0,10,0,12,0,12,0,11,0,10,0,9,0,9,0,9,0,7,0,5,0,2,0,0,0,0,0,254,255,254,255,252,255,250,255,249,255,249,255,250,255,250,255,248,255,247,255,246,255,247, +255,247,255,247,255,246,255,245,255,244,255,244,255,246,255,246,255,245,255,245,255,244,255,244,255,245,255,246,255,246,255,245,255,244,255,244,255,244,255,244,255,243,255,242,255,242,255,243,255,244,255,245,255,246,255,247,255,248,255,250,255,252,255, +255,255,1,0,3,0,3,0,5,0,7,0,9,0,11,0,12,0,12,0,11,0,11,0,11,0,12,0,12,0,10,0,7,0,6,0,6,0,6,0,7,0,6,0,5,0,4,0,3,0,4,0,6,0,8,0,7,0,5,0,4,0,4,0,4,0,6,0,7,0,5,0,3,0,2,0,2,0,3,0,4,0,5,0,4,0,3,0,3,0,4,0,6,0,7,0,8,0,7,0,7,0,6,0,5,0,5,0,5,0,4,0,3,0,2,0,2,0,1, +0,2,0,4,0,6,0,7,0,8,0,9,0,9,0,8,0,8,0,7,0,6,0,4,0,1,0,254,255,252,255,251,255,251,255,250,255,250,255,249,255,249,255,250,255,252,255,253,255,254,255,255,255,255,255,0,0,255,255,0,0,0,0,254,255,252,255,249,255,247,255,247,255,248,255,248,255,247,255, +247,255,247,255,249,255,251,255,254,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,255,255,254,255,253,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,1,0,2,0,2,0,1,0,0,0,255,255,255,255,254,255,253,255,252,255,251,255,249,255,248,255,249,255, +250,255,251,255,251,255,251,255,251,255,252,255,253,255,254,255,254,255,253,255,252,255,251,255,251,255,251,255,252,255,253,255,252,255,252,255,253,255,255,255,1,0,3,0,5,0,5,0,6,0,7,0,8,0,9,0,9,0,9,0,8,0,7,0,8,0,9,0,11,0,12,0,11,0,11,0,11,0,11,0,12,0, +13,0,11,0,10,0,9,0,8,0,8,0,8,0,7,0,4,0,2,0,1,0,1,0,2,0,2,0,1,0,255,255,253,255,253,255,254,255,0,0,255,255,253,255,251,255,250,255,250,255,251,255,252,255,253,255,252,255,251,255,251,255,252,255,254,255,255,255,254,255,253,255,251,255,251,255,252,255, +254,255,254,255,254,255,253,255,253,255,254,255,0,0,1,0,2,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,254,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,255,255,254,255,254,255,253,255,252,255,252,255,252,255,252,255, +252,255,252,255,252,255,252,255,253,255,255,255,0,0,1,0,1,0,1,0,2,0,3,0,4,0,4,0,3,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,255,255,0,0,1,0,1,0,1,0,255,255,254,255,254,255,255,255,0,0,0,0,255,255,254,255,254,255,254,255,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0, +0,255,255,254,255,253,255,253,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,253,255,254,255,255,255,0,0,0,0,1,0,2,0,4,0,4,0,5,0,5,0,5,0,6,0,7,0,7,0,8,0,8,0,8,0,7,0,7,0,7,0,7,0,6,0,6,0,5,0,4,0,4,0,4,0,3,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,255, +255,255,255,254,255,254,255,254,255,254,255,254,255,253,255,254,255,255,255,255,255,0,0,255,255,254,255,254,255,255,255,255,255,255,255,254,255,252,255,251,255,251,255,252,255,254,255,255,255,255,255,255,255,255,255,0,0,3,0,4,0,5,0,4,0,3,0,2,0,2,0,1, +0,0,0,255,255,254,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,255,255,1,0,2,0,1,0,1,0,0,0,255,255,255,255,255,255,254,255,252,255,251,255,250,255,250,255,250,255,251,255,251,255,250,255,250,255,249,255,250,255,250,255,250,255,250,255, +249,255,248,255,247,255,248,255,249,255,250,255,250,255,251,255,252,255,253,255,255,255,1,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,3,0,3,0,4,0,4,0,5,0,7,0,7,0,7,0,8,0,9,0,10,0,9,0,9,0,8,0,8,0,7,0,7,0,7,0,6,0,5,0,4,0,4,0,4,0,5,0,4,0,4,0,4, +0,3,0,3,0,4,0,3,0,3,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,2,0,2,0,3,0,3,0,4,0,4,0,4,0,3,0,3,0,3,0,2,0,2,0,1,0,0,0,254,255,254,255,253,255,253,255,253,255,253,255,252,255,252,255,251,255,251,255,251,255,251,255,252,255,251,255,251, +255,251,255,251,255,252,255,252,255,252,255,252,255,252,255,253,255,254,255,254,255,254,255,254,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,0,0,0,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,254,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,253,255,253,255,253,255,253,255,253,255,252,255,251,255,251,255,251,255,252,255,254,255,254,255,254,255,254,255,254,255,0,0,1,0,3,0,4,0,4,0,3,0,3,0,3,0,3,0,4,0,4,0,3,0,1,0,0, +0,0,0,0,0,1,0,2,0,1,0,0,0,255,255,255,255,0,0,2,0,3,0,3,0,2,0,2,0,1,0,2,0,3,0,3,0,3,0,2,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,2,0,3,0,4,0,5,0,5,0,5,0,6,0,7,0,8,0,8,0,7,0,7,0,7,0,7,0,7,0,6,0,6,0,5,0,4,0,4,0,5,0,5,0,4,0,3,0,2,0,2,0,2,0,3,0,2,0,1,0, +0,0,254,255,255,255,254,255,254,255,254,255,253,255,252,255,252,255,252,255,252,255,253,255,252,255,251,255,251,255,251,255,251,255,251,255,251,255,250,255,249,255,249,255,250,255,250,255,250,255,249,255,248,255,249,255,251,255,252,255,251,255,251,255, +250,255,251,255,252,255,253,255,254,255,253,255,253,255,252,255,253,255,254,255,255,255,0,0,255,255,255,255,255,255,1,0,2,0,2,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,254,255,253,255,253,255,255,255,1,0,1,0,0,0,255,255,255,255,0,0,2,0,2,0,1,0,255,255,253, +255,253,255,253,255,253,255,253,255,252,255,251,255,251,255,253,255,254,255,0,0,0,0,255,255,0,0,0,0,1,0,2,0,2,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,1,0,1,0,3,0,4,0,5,0,5,0,4,0,4,0,4,0,5,0,4,0,4,0,3,0,2,0,2,0,4,0,5,0,6,0,7,0,7,0,6,0,7,0,9,0,10,0,9,0,7,0,5, +0,4,0,3,0,3,0,2,0,1,0,255,255,254,255,254,255,255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,2,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,0,0,1,0,2,0,3,0,2,0,0,0,255,255,255,255,255,255,255,255,254,255,252,255,251,255,250,255,251,255,252,255,252,255,252, +255,252,255,252,255,253,255,253,255,254,255,254,255,254,255,253,255,253,255,252,255,252,255,252,255,251,255,250,255,249,255,249,255,249,255,250,255,250,255,251,255,251,255,251,255,252,255,252,255,253,255,254,255,254,255,255,255,255,255,255,255,255,255, +255,255,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,2,0,4,0,4,0,4,0,5,0,4,0,5,0,5,0,5,0,6,0,5,0,5,0,5,0,4,0,4,0,3,0,3,0,4,0,4,0,3,0,2,0,2,0,3,0,3,0,3,0,3,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0, +0,1,0,1,0,1,0,255,255,254,255,254,255,0,0,0,0,0,0,0,0,255,255,255,255,1,0,2,0,3,0,2,0,1,0,0,0,0,0,2,0,2,0,1,0,0,0,254,255,254,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,1,0,2,0,2,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,254,255,254,255,254,255,255,255,255, +255,255,255,254,255,254,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,1,0,2,0,2,0,0,0,255,255,254,255,254,255,255,255,0,0,0,0,254,255,253,255,253,255,255,255,1,0,2,0,1,0,0,0,255,255,0,0,1,0,2,0,2,0,2,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,254,255,254, +255,254,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,254,255,254,255,255,255,1,0,1,0,1,0,255,255,254,255,254,255,255,255,1,0,1,0,1,0,255,255,255,255,255,255,1,0,3,0,4,0,3,0,1,0,0, +0,0,0,2,0,3,0,4,0,3,0,1,0,0,0,0,0,2,0,4,0,4,0,3,0,1,0,1,0,2,0,3,0,4,0,4,0,2,0,1,0,0,0,1,0,1,0,2,0,1,0,255,255,255,255,255,255,0,0,2,0,2,0,2,0,1,0,0,0,1,0,2,0,3,0,2,0,1,0,255,255,254,255,254,255,255,255,255,255,255,255,253,255,251,255,251,255,252,255, +253,255,254,255,254,255,253,255,253,255,252,255,253,255,254,255,255,255,254,255,253,255,252,255,252,255,252,255,253,255,254,255,254,255,253,255,252,255,252,255,254,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,2,0,2,0,3,0,3,0,4,0,4,0,5,0,4,0,4,0,3,0,2,0,2,0,3,0,3,0,2,0,1,0,0,0,0,0,1,0,2,0,3,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,254,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,254, +255,254,255,255,255,255,255,254,255,253,255,253,255,252,255,252,255,252,255,253,255,252,255,252,255,252,255,252,255,253,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255, +254,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,254,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255, +0,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,2,0,3,0,3,0,3,0,2,0,1,0,1,0,2,0,3,0,3,0,2,0,1,0,2,0,2,0,3,0,3,0,2,0,2,0,1,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0, +0,255,255,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,1,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,255,255,0,0,1,0,0,0,255,255,254,255,254,255,255, +255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,2,0,3,0,3,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,3,0,2,0,2, +0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,253,255,253,255,254,255,254,255,254, +255,253,255,253,255,253,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,253,255,253,255,253,255,254,255,255,255,255,255,255,255,254,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,254,255,254,255,254,255,255, +255,255,255,255,255,254,255,254,255,254,255,255,255,0,0,0,0,254,255,253,255,254,255,254,255,255,255,0,0,255,255,254,255,253,255,254,255,255,255,1,0,1,0,0,0,255,255,255,255,0,0,1,0,2,0,3,0,2,0,1,0,1,0,2,0,4,0,3,0,3,0,2,0,1,0,1,0,2,0,3,0,3,0,2,0,1,0,2, +0,3,0,3,0,4,0,3,0,2,0,2,0,2,0,3,0,3,0,2,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,254,255,254,255,255,255,255,255,255,255,254,255,253,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254, +255,254,255,254,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,254,255,254,255,253,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,2,0,1,0,0,0,255,255,255,255,0,0,1,0,1, +0,0,0,255,255,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,2,0,3,0,3,0,3,0,2,0,2,0,3,0,3,0,4,0,4,0,3,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,2,0,1,0,0,0,255,255,254,255,254,255,254,255,255,255,255,255,255,255,254,255, +254,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,255,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,253,255,253,255,253,255,253,255,254,255,254,255, +255,255,0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,255,255,254,255,255,255,0,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,0,0,255,255,254,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,2,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,1,0,1, +0,0,0,255,255,0,0,1,0,2,0,3,0,2,0,1,0,1,0,1,0,2,0,3,0,3,0,2,0,1,0,0,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,1,0,1,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,1,0,1,0,0,0,255,255,255,255, +255,255,254,255,254,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,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,254,255,255,255,255,255,0,0,0,0,255,255,255, +255,255,255,0,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,254,255,253,255,253,255,254,255,255,255,255,255,254,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0,2,0,1, +0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,3,0,3,0,2,0,1,0,1,0,2,0,2,0,2,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,254,255,254,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,254,255,253,255,253,255,254,255,255,255,254,255,253,255,252,255,252,255,254,255,255,255,0,0,255,255,255, +255,254,255,254,255,255,255,1,0,1,0,0,0,254,255,253,255,253,255,254,255,255,255,255,255,255,255,254,255,253,255,254,255,255,255,1,0,1,0,1,0,0,0,0,0,1,0,2,0,3,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,3,0,3,0,2,0,2,0,1,0,2,0,2,0,2,0,1,0,1, +0,0,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,3,0,3,0,3,0,2,0,1,0,1,0,1,0,0,0,0,0,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,2,0,2,0,1,0,0,0,0,0,0,0, +0,0,0,0,255,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,0,0,0,0,254,255,254,255,254,255,255,255,255,255,0,0,255,255,255,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255, +255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,2,0,3,0,2,0,1,0,1,0,0,0,1,0,2,0,1,0,0,0,255, +255,254,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,1,0,2,0,3,0,3,0,2,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,254,255,254,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1, +0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,255,255,255,255,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,1,0,0,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,3,0,3,0,2,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,2,0,2,0,2,0,2, +0,2,0,2,0,2,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,255,255,255,255,0,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,0,0,255,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,254,255, +254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0, +0,1,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,254,255,254,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,254,255,254,255,254,255,255,255, +255,255,255,255,254,255,254,255,255,255,0,0,1,0,2,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,254,255,254,255,254,255,255,255,0,0,255,255,255,255,255,255,0,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,255,255,254,255,254,255,254,255,254,255,255,255,255,255, +255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,255,255,254,255,254,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,1, +0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,254,255,253,255,252,255,253,255,253,255,254,255,254,255,254,255,254,255,255,255,0,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,255,255,0,0,0,0,1,0,1,0,1,0,2,0,3,0,4,0,3,0,2,0,1,0,0,0,255, +255,0,0,0,0,255,255,254,255,254,255,254,255,254,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,254,255,254,255,253,255,254,255,255,255,255,255,255,255,254,255,254,255,255,255,1,0,2,0,2,0,1,0,1,0,0,0,1,0,2,0,2,0,1,0,0,0,255,255,255,255,0,0,1,0,1, +0,0,0,0,0,255,255,0,0,1,0,2,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,254,255,253,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,254,255,255, +255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255, +255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,2,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,254, +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,254,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0, +0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255, +255,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,254,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0, +0,1,0,2,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255,0, +0,1,0,1,0,1,0,2,0,2,0,3,0,3,0,3,0,3,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0,3,0,3,0,3,0,2,0,2,0,2,0,3,0,3,0,2,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,255, +255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,254,255,254,255,255,255,1,0,2,0,1,0,1,0,0,0,0,0,1,0,2,0,2,0,1,0,255,255,254,255,254,255,255,255,255,255,0,0,255,255,254,255,253,255,254,255,255,255,0,0,0,0,0,0,255,255,255, +255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,254,255,255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,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,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,0,0,255,255,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,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,254,255,255,255,255,255,0,0,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,254,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,1,0,2,0,2,0,2,0,1, +0,1,0,1,0,1,0,2,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,255, +255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,253,255,254,255,255,255,0,0,255,255,255,255,255,255,0,0,1,0,2,0,2,0,1,0,0,0,255,255,0, +0,0,0,0,0,0,0,255,255,254,255,254,255,255,255,0,0,1,0,1,0,1,0,0,0,1,0,1,0,2,0,2,0,2,0,0,0,255,255,255,255,0,0,1,0,2,0,1,0,0,0,0,0,1,0,2,0,2,0,2,0,1,0,0,0,255,255,254,255,255,255,255,255,254,255,254,255,253,255,253,255,254,255,255,255,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0, +0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,254,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,3,0,2,0,1,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,254,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,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,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,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,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,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,254, +255,254,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,1,0,1,0,0,0,0,0,1,0,1,0,2,0,1,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0,1, +0,1,0,1,0,1,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,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0, +1,0,1,0,0,0,1,0,1,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, +0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0, +0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255, +255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,255,255, +0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,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,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1, +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,2,0,2,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,0,0,0,0,1,0,1, +0,1,0,0,0,0,0,1,0,2,0,1,0,0,0,255,255,254,255,255,255,0,0,0,0,255,255,255,255,254,255,254,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0,255,255,0,0,1,0,2,0,2,0,1,0,1,0,1,0,2,0,3,0,3,0, +2,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0,1,0,0,0,255,255,255,255,255,255,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,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,0,0,0,0,255,255,255,255,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,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,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,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,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,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,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,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,0,0,0,0,1,0,1,0,1,0,1,0,1, +0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0,255, +255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,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,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,1,0,2,0,2,0,2,0,1,0,1,0,1, +0,1,0,0,0,255,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,0,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,255,255,254,255,254, +255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255, +255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,254,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,255,255, +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,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255, +255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0, +0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,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,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,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,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,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1, +0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,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,0,0,1,0,2,0, +2,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,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,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,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,254,255,255,255,255,255,0,0,255,255,255,255,255,255,0, +0,0,0,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,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1, +0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,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,0,0,0,0,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,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,0,0,0,0,1,0,1,0,1, +0,1,0,1,0,2,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,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,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,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255, +255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,254,255,254,255,254,255,255,255,255, +255,255,255,255,255,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,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,1,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,1,0,1,0, +1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,1,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0, +0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,0,0,0,0, +255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,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,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1, +0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,2,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255, +255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,1,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,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255, +255,255,255,255,255,0,0,0,0,255,255,255,255,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,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1, +0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,1,0,1,0,1,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,255,255, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0, +0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255, +254,255,254,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0, +0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,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,1,0,1,0,1,0,1,0,1,0,1,0, +2,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255, +255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0, +0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,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,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,1,0,1,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,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,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,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,1,0,1,0,1,0,1,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,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,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,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,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,255,255,255,255,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,255,255,0,0,0,0,0,0,0,0,255,255,255,255,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,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255, +255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,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,255,255,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0, +0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,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,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0, +0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1, +0,1,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,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,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,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,255,255,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,1,0,1,0,1,0,1,0,1,0,1,0,1,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,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1, +0,1,0,0,0,0,0,0,0,255,255,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,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,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,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,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,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0, +0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,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,1,0,0,0,0,0,0,0, +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,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,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,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,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,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,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,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,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,1,0,1,0,1,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1, +0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255, +255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,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,0,0,1,0,1,0,1,0,1,0,1, +0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,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,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,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,1, +0,1,0,1,0,1,0,1,0,1,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,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,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,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,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,1,0,1,0,1,0,1,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,1,0,1,0,1,0,1, +0,1,0,1,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,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,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,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1, +0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,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,1,0,1,0,1,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,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,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1, +0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,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,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,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,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,1,0,1,0,1,0,1,0,1,0,1,0,1,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,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,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,1,0,1,0,1,0,1,0,1,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,1,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,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,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,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,255,255,255,255,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,255, +255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,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,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,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,1,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,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,0,0,255,255,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,255,255,255,255,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,255,255,255,255,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,255,255,0,0,0,0,0,0,255,255,255,255,255, +255,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,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,255,255,255,255,255,255,255,255,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,255,255,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,255,255,255,255,0,0,0,0,0,0,0,0,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,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,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,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,255,255,255,255,255,255,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,255,255,255,255,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,255,255,255,255,0,0,0,0,0,0,0,0,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,0,0,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,255,255,255,255, +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,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,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,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,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,0,0,0,0,0,0,0,0,1,0,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,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,255,255,255,255,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,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,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,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,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,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255, +255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,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,1,0,1,0,1,0,1,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,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,1,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,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,1,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,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0 }; + +const char* Impulse2_wav = (const char*) temp_binary_data_1; + + +const char* getNamedResource (const char*, int&) throw(); +const char* getNamedResource (const char* resourceNameUTF8, int& numBytes) throw() +{ + unsigned int hash = 0; + if (resourceNameUTF8 != 0) + while (*resourceNameUTF8 != 0) + hash = 31 * hash + (unsigned int) *resourceNameUTF8++; + + switch (hash) + { + case 0x8014fa29: numBytes = 90246; return Impulse1_wav; + case 0x802311aa: numBytes = 37902; return Impulse2_wav; + default: break; + } + + numBytes = 0; + return 0; +} + +const char* namedResourceList[] = +{ + "Impulse1_wav", + "Impulse2_wav" +}; + +} diff --git a/examples/DSP module plugin demo/JuceLibraryCode/BinaryData.h b/examples/DSP module plugin demo/JuceLibraryCode/BinaryData.h new file mode 100644 index 0000000000..844e31930e --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/BinaryData.h @@ -0,0 +1,26 @@ +/* ========================================================================================= + + This is an auto-generated file: Any edits you make may be overwritten! + +*/ + +#pragma once + +namespace BinaryData +{ + extern const char* Impulse1_wav; + const int Impulse1_wavSize = 90246; + + extern const char* Impulse2_wav; + const int Impulse2_wavSize = 37902; + + // Points to the start of a list of resource names. + extern const char* namedResourceList[]; + + // Number of elements in the namedResourceList array. + const int namedResourceListSize = 2; + + // If you provide the name of one of the binary resource variables above, this function will + // return the corresponding data and its size (or a null pointer if the name isn't found). + const char* getNamedResource (const char* resourceNameUTF8, int& dataSizeInBytes) throw(); +} diff --git a/examples/DSP module plugin demo/JuceLibraryCode/JuceHeader.h b/examples/DSP module plugin demo/JuceLibraryCode/JuceHeader.h new file mode 100644 index 0000000000..31618910f4 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/JuceHeader.h @@ -0,0 +1,47 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + + This is the header file that your files should include in order to get all the + JUCE library headers. You should avoid including the JUCE headers directly in + your own source files, because that wouldn't pick up the correct configuration + options for your app. + +*/ + +#pragma once + +#include "AppConfig.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "BinaryData.h" + +#if ! DONT_SET_USING_JUCE_NAMESPACE + // If your code uses a lot of JUCE classes, then this will obviously save you + // a lot of typing, but can be disabled by setting DONT_SET_USING_JUCE_NAMESPACE. + using namespace juce; +#endif + +#if ! JUCE_DONT_DECLARE_PROJECTINFO +namespace ProjectInfo +{ + const char* const projectName = "DSPModulePluginDemo"; + const char* const versionString = "1.0.0"; + const int versionNumber = 0x10000; +} +#endif diff --git a/examples/DSP module plugin demo/JuceLibraryCode/ReadMe.txt b/examples/DSP module plugin demo/JuceLibraryCode/ReadMe.txt new file mode 100644 index 0000000000..091a5aa6eb --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/ReadMe.txt @@ -0,0 +1,12 @@ + + Important Note!! + ================ + +The purpose of this folder is to contain files that are auto-generated by the Projucer, +and ALL files in this folder will be mercilessly DELETED and completely re-written whenever +the Projucer saves your project. + +Therefore, it's a bad idea to make any manual changes to the files in here, or to +put any of your own files in here if you don't want to lose them. (Of course you may choose +to add the folder's contents to your version-control system so that you can re-merge your own +modifications after the Projucer has saved its changes). diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_basics.cpp b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_basics.cpp new file mode 100644 index 0000000000..418694873c --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_basics.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_basics.mm b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_basics.mm new file mode 100644 index 0000000000..e0e6c577cc --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_basics.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_devices.cpp b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_devices.cpp new file mode 100644 index 0000000000..fb5c2219d7 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_devices.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_devices.mm b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_devices.mm new file mode 100644 index 0000000000..e58b67ea49 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_devices.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_formats.cpp b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_formats.cpp new file mode 100644 index 0000000000..a3c61170eb --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_formats.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_formats.mm b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_formats.mm new file mode 100644 index 0000000000..f325b8fb67 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_formats.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_AAX.cpp b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_AAX.cpp new file mode 100644 index 0000000000..c599b8759f --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_AAX.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_AAX.mm b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_AAX.mm new file mode 100644 index 0000000000..d4b8c31117 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_AAX.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_AU.r b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_AU.r new file mode 100644 index 0000000000..bfbc613860 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_AU.r @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_AU_1.mm b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_AU_1.mm new file mode 100644 index 0000000000..a4fdf7f366 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_AU_1.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_AU_2.mm b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_AU_2.mm new file mode 100644 index 0000000000..175b30047f --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_AU_2.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_AUv3.mm b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_AUv3.mm new file mode 100644 index 0000000000..0ac2b2f599 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_AUv3.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_RTAS.r b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_RTAS.r new file mode 100644 index 0000000000..a51cf374d9 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_RTAS.r @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_1.cpp b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_1.cpp new file mode 100644 index 0000000000..29d48f3faa --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_1.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_2.cpp b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_2.cpp new file mode 100644 index 0000000000..2da08c6dc3 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_2.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_3.cpp b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_3.cpp new file mode 100644 index 0000000000..72a8426cbe --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_3.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_4.cpp b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_4.cpp new file mode 100644 index 0000000000..6064f99d28 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_4.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_utils.cpp b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_utils.cpp new file mode 100644 index 0000000000..5c5509abde --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_utils.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_utils.mm b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_utils.mm new file mode 100644 index 0000000000..56af9aebab --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_RTAS_utils.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_Standalone.cpp b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_Standalone.cpp new file mode 100644 index 0000000000..d3b6529a80 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_Standalone.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_VST2.cpp b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_VST2.cpp new file mode 100644 index 0000000000..c35394b418 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_VST2.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_VST3.cpp b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_VST3.cpp new file mode 100644 index 0000000000..8e2e5cde2e --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_VST3.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_VST_utils.mm b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_VST_utils.mm new file mode 100644 index 0000000000..ee2f414e66 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_VST_utils.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_utils.cpp b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_utils.cpp new file mode 100644 index 0000000000..183f61b238 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_plugin_client_utils.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_processors.cpp b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_processors.cpp new file mode 100644 index 0000000000..bfe172edd0 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_processors.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_processors.mm b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_processors.mm new file mode 100644 index 0000000000..b80ae9017f --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_processors.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_utils.cpp b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_utils.cpp new file mode 100644 index 0000000000..97bd2c568c --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_utils.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_utils.mm b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_utils.mm new file mode 100644 index 0000000000..8eae7c6e2f --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_audio_utils.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_core.cpp b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_core.cpp new file mode 100644 index 0000000000..d0ce1636f0 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_core.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_core.mm b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_core.mm new file mode 100644 index 0000000000..72b10bf817 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_core.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_data_structures.cpp b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_data_structures.cpp new file mode 100644 index 0000000000..9315aa1686 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_data_structures.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_data_structures.mm b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_data_structures.mm new file mode 100644 index 0000000000..695ec43925 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_data_structures.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_dsp.cpp b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_dsp.cpp new file mode 100644 index 0000000000..430d943f26 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_dsp.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_dsp.mm b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_dsp.mm new file mode 100644 index 0000000000..1dea5d08a6 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_dsp.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_events.cpp b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_events.cpp new file mode 100644 index 0000000000..1bba110a97 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_events.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_events.mm b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_events.mm new file mode 100644 index 0000000000..4cc34fc401 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_events.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_graphics.cpp b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_graphics.cpp new file mode 100644 index 0000000000..319c76de0e --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_graphics.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_graphics.mm b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_graphics.mm new file mode 100644 index 0000000000..b28e6dd056 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_graphics.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_gui_basics.cpp b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_gui_basics.cpp new file mode 100644 index 0000000000..216c76bb05 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_gui_basics.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_gui_basics.mm b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_gui_basics.mm new file mode 100644 index 0000000000..6a9726fa5f --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_gui_basics.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_gui_extra.cpp b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_gui_extra.cpp new file mode 100644 index 0000000000..7226e19833 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_gui_extra.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_gui_extra.mm b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_gui_extra.mm new file mode 100644 index 0000000000..c9b6c3bfc6 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_gui_extra.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_opengl.cpp b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_opengl.cpp new file mode 100644 index 0000000000..d9895bce92 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_opengl.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/JuceLibraryCode/include_juce_opengl.mm b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_opengl.mm new file mode 100644 index 0000000000..6c2c32d095 --- /dev/null +++ b/examples/DSP module plugin demo/JuceLibraryCode/include_juce_opengl.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSP module plugin demo/Resources/Impulse1.wav b/examples/DSP module plugin demo/Resources/Impulse1.wav new file mode 100644 index 0000000000000000000000000000000000000000..98d402cd04dacc98ae3386075de99995f3bf9c37 GIT binary patch literal 90246 zcmeHt3A|lZb^f_|nFj)4M#cyz3Zf$7fLgUU+X7Cgb-<~jVzqUwV-@|Qt#z(L>r`#k zs;G!s2XH_Hiy)JTKm-!z1VR!r=iT%FzVqel+WQRm-uIG7=+Aq8@9wqNyw+ZO?R{=? z{1YGdxVOKsS3K*{&phU3C%St(eBFu90na;j{luT$ z`11dL`*m-+`NW4FbHZUu?s4#ftLOanv~NwhdD^FEe|gr%@{7yPx?-Q-TyxpR>(5=i z$N2Zx{_WBgi+5jq`i-|Oeg5q)TmJXU-+0@qn{K)0o>yFZ*}q->!z=&h+Hc=@*s{M^ z@lUHRT=Cf3k6e1f(vz0YxbxyWpSALSw?BI6gO}a^j^E$;?X|C1`?WhyUh&=AA9mZW zw|(=r$KHO*?MEy>b;X%?p1S5&tADoYq?NB;dD^P^t3R~*^{c#9%JSv? zJvO~}!`cmBAOA@2jHy4K_PMF2P5GPNRmC~QfA-!!wqe@GXFhlKduGp?_3`O{H}$Ns zlc#=o+QR9ZrtLrdyEE>b-JAc$1;_33?OpcW*Z|A&x?tSKca);A)JZHh0oqx3R!UbQPzu&y)&iU-@ z56*tW?8|2@n|b)mU(NW(8B=G>n!bMOL#JLhwtnorQ(rjk;nQc$SUTh4nNOQl%=-0= z1Ezm)>L2|{x#zt8h^(4-0^p9I&I@GH!R$+>xK(99K7l5 z@#D(36&s6R7mqGJQl8UaG`?)pEgMhYaKid~uY1PYTi0B*X2IGwtX;PDxOJzj`{=r_ zulwD)RqJkFciFnL*8OPRdF!rT*I)Ob_3vMQ^ZMO3?7U&xhC9~(c>N33U$O2X>%Ow~ zxoiJn?VjtFt~+b}DH|TT@xqNy+q7)c2gl3td-V_L@6+FCY@bQl4Laqdc};(Z904 zWBIP~=we~-!rplAqTYLZNB8#VJ-4@__m(LaP1$km>0_sj9XR##Q+JJnU-ZA&e`){0{R8@YBI>{Fzp{T+|Fh$pHvMu_Z~VmZ{~AAY z{PW{)AAi&Mr^as@Kc@d)>+L(`HB-Jj<@za`rYxQEr72IEGHc3Zy$|)C(3{^|TdabP zcNPyV?q58;cmp!|vEtLkzZ9nwZ!JDle7Cr?xUN`U%hk1rR(W3khp3}f{ri@$EI(iVclq7&^zw)J`w*zlD4$q9r98fTX8D5hW#voDmzRH6 zzOj5!`H*s_a=gC=&z=1n`WN+o-an^*MSo>~yuTLDj^$I!uav#wvBk@gspEn>>OS` zyF3-^u%bM)cxLg}#fimJ5$gl68v7KR$}7rq%Ztlp%j?T4%iookmA@>{EH5eh<^ILJV0A`uBQ$=c{3tAZ05$ui^6S`jUn<{U z{wU-2od z=j)2UD2|5rFD%|se6BbH&wpY31mgQb@gEr941bO&b}h^&O$`oW;?g}pNluTO`qPnMr3KUn?)a&;2){|%r|Ae-MR zzgB)67N3V|dm(DzJ>dL#c}KZ3D&u}w+b5!uj>BGj6juL8Xg(5_4ug%^#Tu*=eOpq_ z1NPYB`N+XDVfTPyJyzl@#Pc;o`IGYMaw;?(U%V2zdL`EXDEKwMxE)zvfm}WUGSA0O ze=2M|8PW$9v!MIlu=#h$-SLR+R#e(~RpyIg30CJPT*i)z~VW@+lnt0KPbL|9rgft}&kNCMzm5KSNbytbmAU10{j2(` z`v)P1mz75#){mkNzJ;^+%Hp%XCYLI1(!KbIGk>&p4X ze#QQ%kvYXQJoB+;>#+v!Mjv=Y`2akRK_7S*YH~@r19rmU=r|8T77r`#iP(=u2KOtj zFTaY4eIGi>naJyGtp6#+PmA9bKSalTXfd<6xxBQh>kAP1jfnVHSedV4eZGmla~AS( zQ#qs99e1E{#J{XuT3!RcEUI#i_+d&@KPDcoSCW zC|F*KTKW~NE-5!69|xeKo`kwM8S<}%o~IX&M6CN@&yL})HV3}$gNz-B-F~lPZ_LN5 z^;?Bp;$l~v z$jJ||*M0%XOR$cY;_tWky9hbD5D_oN4qgin*J6h(t>EcZ6&?xw2g8%yQHxxa`{H|F zP-Y|ZKSkc&iCy<9bd+PUqDPcRm5(oWd-qGVH1c z!jA>;V-D);Anf0VgL))*4#U298aPgZ=yhSi4iO z3eQCC?^R4KHk6ynv0@(be*|{xBf+%~wDUGS6RWeJ*sWTb-7zbX_v^5xKSa%(g{nCZ zS^NVks>Dv(70=wFU+uRQSi24At1Gedev5PE=lHt}6}AC2ITwD96)RAWS7IH1i>#cE zp7|AY&7XtkI^Zvc?k{6CPeT8CX8Drx&Dc|)LEk(LJK;i9>Q&|Cuzeb``%dKe{aA}{ zLiSSRd2x9wR*}yJRNNtm<{8N6iOBY|(Dfcr>;nH*<5`cInpNzCxbBCnJQ$QCkfS3| zdk10X?Skm1BQIn4UVs(n8CIeW*FkO^nHocFu0{8_6Z7@>UIEISVj(m<8vXlmu=E71 z@MDqjBd~r)7k`d*JRY7Lhx&ga*5v6}ofl)3UsavJN1^8TfQ@@%T_26R(6Lx)?*F1# zhKwzR_BH5hGtonKglGGJdtdmo7MZ;Y&yDb49;);p_Ar?C=0#JZl3Q|c^K?>EpT z{sSHJ-|_vm@(irN*{J2K(NWf5&y?uSGvL=f;P38$R>A5y;QBUp+^^7+#>+k7)sa>8 zJqj6l0;2y5j1PdH`~7cSKMx)Fjp!bq#d-cybepr$>Hi%SdJ;1AL}c&Jk(Y;Kl^$62 z$9<5g2cSxiK~|4LUY`Pej{u#!=rDM(9yN3&;$MkAHwRgpgG{bKm7b3p`8lFGA2oCV zVz{izU4d*Z2lrK|t1D4^x1c&UA+qI|or`nnTu|;r_7~uphniT6F0=@|ze5ggL{D0d z^;r#Dx4^>h@hpOMKG#CmHNgE2mVSo2;Ayzke7gJ>bfnKAqu)V(euTdtBU=~4!eTs& zP}LXVxddn7xsc(l0Zx!(7}!<9c2yY>j2A`7u&H^Hmx zVVj+89oAqIYGhUAAy0}Gm`}x8vBIaImS-TY1*pFRa6;b?Iesv5`(#w;%TS>wqefqj zF7*P;pM_oYDs+x_;w*kMo;TqncoA0M5wO2^m7TfJ)x%Ed!`?dNa4Iy*x2oyWu^vAI%u2Wn>v%o7#%|9dds}Rup$a@+RnBi+jgD$lQ}bKLJ(y zWc1vHu)MnR`+8Wo4!VDjzw6-pQbfD1x~nWe*6)uFaSXH`TUGN3$my%m{oh@^b)1a6 zKOUAJ2#befb=aTwhb2Dy0@@#Sz~=ze$3o2ZM76K4&dDp0pT+QOBkmUqQ9F-=g~wxu z9E2{-KF*G>eajPWcdXz-XxSC(x2&pNR_<@`T#Q`&8Yd_3?cYadI1_*0!4319sOayY zLVu5}-Bhi{9`Z1((1WTjav$uR`y;Q%Am`7;Tg7Wo&2L1tKfgLNp8)=cVK*`3 z4*=I=tDEpEaBF!Dc#nm~eXzFU$SqHiU68v2VCkM%hdodg)2fqm4BzWe<2NHeH^9eL zIFZJ&=HpoTRe06{<}RFC-E&qThGnRXYfvFqRaJ5;YL92lH0;rhsF!8Xu?*uTL^>aK z7UFcf4|eRqc?*?P&0;{kx>{VA{Rc?jsYIL$Ypk*oW*C5xILuS=>`{vp=p9IW}Jpk7t2+M;UTQQ`uu06W(&unvnLa|a}sV&s1O19*RrzpDYM z172UPOi}Iq72sP6?mH3xCghF3)Ui+83BRc2Ht;e>W60=S^o)~n*MNg3ZGpPo z8Ed;g;$^3LP_>$eBMXOA-S2_bO7jHfdGH``9ERu6%{e**@ZnhXy`g0dJh=fLFNU8y zC9ejw6e}`@irN8L!VI;q8^U-LZDNAYc1b`8ot^cCTvB@E))iDD$h#?_AaI?)csf{5)?rLI3KiX1F># zRdqhI$|@sa2Jtf=Jm5~5j%Nxa)U3GG; z0Bsx*%!cpt;Ul}?y-?}A6C8#v$M^dOZ|;1&{~ucIjC*6X7GND`Al}*4da?>wr}&Yq zx)m^YGZ61u_Y_EZq~@cw=}N&M>}T+#eL4PkV#TUQBo|__PC7 zXA|_?UiAv@y=$w=y&QG=YgFsc&~tu*o8>QYQk;X4?@H(4biN$fW2Dz2PdsOC#>1@N zhKIM~CCI^Ij4R+B&uB(`Ff4MN*f&;!!iSJ%cT}r)1LP>l9>AL#b#P79p*A23(~*;z zc-RqGb-O|9eyHRFQO^e>zxT!;-v{?Z7H6PCv#%~ge0RVaZ;*USN8tNVQ1`C(!+d=6ROZRDFZRzoRQ)Pc?joFwmmxEY zkc%}{jPz9e?AnI$;|9Em=3awWm z)2!Fu;q<+{IyZQm<$Z-w@uX#MSb}_AU3K{-$e23%dQ{0u(62)`;@Pdc@v6!$EB0no zD(|HwfH&MjFy99>#dvLSp(`Fn6V!%sve!vi!r|(T7HVV)pu|s`*C%0`~enYW!Q_B zVSXpN!x&=Q9l1Qb>L`34I~05VDD3`6;O`;m1^2-^v99;7D*FJ`?*V|>{TV4^)!D(m zR#xv-dx3lZs#olb{LDv2`Cc*wdFO8mdxOSPg{Q>M$P?dMreoX*I`07+_dq^pp_=(? z!$x$0*_g9_cr)4$D>)aM_&Wsi$WB?}1jj#IRVT|z#Ca|1owrWjHhJH1x49Yl;u*p_ z+D!cM9>!m!bbq=HBm2toDo^}9foC}P)l_hEH8&w=i%{>pL;nW1rAuJp8rb7{@OR1O zn>BEEXtmjUc+*)^)$I<5Z(lt3sP+K6>Hf&Y&Q+`%(Tz8Pi?`3+kZ;~n`EJ1eqHOQ7 zIos}B)WlrvS>=#tjSZXo5#LD|RUfN3t;#v? z&?RR4#f7&;W|$xTR>v&T@OQ@C^NQaA`dZlHDKQ%l_bz>OU2@N}Be5#EE7>i$b9SnB z{%mmb=F1MHTbXXdy~-<|zpQZktn+7AtlZvs_NsOgcM*FBAFlAOr~*E_0M8S9J+i}J zzS&#Zvsk74O^hc1ZSth&ZSUr46}bBBm3nVqg=)B|y1Vd(vkX!z!Mh4P?tZ*~@SW!7 zYW>)Ect7LH@fO5~y0j1GRb6xz){`qp3tCU+izg5>D$lrj+(p#F-0;1CmbJ>P39i!4 z$iu$a*W4F-RypDA`(CL0d!q7rUhr1JZqGAz|Eg#3*2nrS;n@mAd^I}WqTGcW40`G?W zT~fV@)M?=1-9=g?!F|9-rwl8A9az8M@!VO1-0&P`?7IK+mlpnx#S?>XrF>uHz2GXG zB7Em&Rk5qyiX8GJ=k0>~Nh{19%sVyy8v?3wE*{-V_&b_$+&R;#YM%|NdJn630cPyb z{P6#AaBp$XvID3G2(Rv>xMm_dJS|ikToLv${tCd|!aC$TCEt*>TZpH3G3PF4ci;*# z^OW%3o(6yBftxaO0rQTbI|26xdlBEQx#N~&wfWA!1nbQ^CEpU1(LYpKWLM8(hsu5-g( zv{yySI??IIH*)q`Rgdb3`;-~sC_HVCS62D!1aG)pS#}{l?4i!K_dat)Z_SG$lp1*3)IKmGv&M9rPm>Tb`_qbJfCzv z@O?qm&F;l}Kl6SoIGJO19cG8`T7IA7dyiIudz0r9KdeFWvV$&zjz!fv^8JCg|9EsF zu`;-~xkq&iQ%|;c-tjzHcR;o7frnk3@iAY_25Xj?SwpIL zRkdcUz3`o<4sEJaF}A2q-EPz?c>CAG8;^cJ(Ax&zJ9IzdE_5fQPUnHE;nSTr4gQ9s zw|7Rs6HVOe{yO#8HCfH-aqM$C2iXJsn}M>*l?NlZbyHCP;~7V3)+Vc6cr`N~lPcLUdiea-8z3hT%USLfGS^6d9&dL6~jPDFmbt#dc?1)!+%kbB?D8PYa$t z>P+T!&tYv-!jCoa)X}-bQ#PtxU4bj=+U7dzcU1oh#NN%{ig?pwt+LvA+tSU6INrJx zIqQvgA=ZU@i90xR&3l%lbt}?u7nJ8otuDv4rzCIRw5IH-Hr(6Q6V!90GrZA_O(zR0 zh;^giD4AcLe!4yI{=nYAU+wrdw^!8_Tur=7tESjJnB6_F8oC8>b@~3rUvlH7%HETn z53EYQV<;NFkEmy;I($P{c63`|jH+z)Hs0i!N$!Q%IouyS$CPJP4!aF=!=9mgD0hk~ zT>nQzRnCmLgXvsV74w$EbL0Bz-pd=a-uZMAutP};bIVT5zD}>SrwREE!#buEyAZ8u z_Y<3HT;62YXvxU2g%*t?JjmTyQt|(XPdy#(kWSz;5&Lr27cLIAQy;E;gHL0I6-&|eZ+IZG*ElkmQ&Gpe5 zaqnucuzvLD>`8YrbI8+IcP8Ctlrf&${OEq=>eb1k{ifC63C0s%=MpL0i#nH>e`epA z4?f-VxYk+^jihT|_{7ux7N4XQ30GS_=`D@_BBAQ%ZqP|txsRTus^;1;TY7)c{g5lo zo~HAO+0w03Z=>pD>V;{|^S2QFj-neA`x4hq`$WGic=zgGOn5eOHR7I1-SZ@{V5Wgi}XxztAl;ZUH_iIqF}e^ot-Z$)-*j()sS-cUgKjLW9evp2UB6mKcNL%E-UB|5lrhQhbZ2kk-A27e zUh}4=wNO{1En4zUbvIV;*KXIjz`9_?`5i#juiGcTnL%ZZQtTVfss2rdH&)(rbid;X z!Vbb!Va|2>vjV(3wC}vq^dV|cdzc-YIgXQDcPH*u?r+wK_M%Qot$|KB-D!Da*Dqdr zYtXuI)zl+tQ~BX9SF8f{(MmDCxN73i@7y|Z{3gN7$9WJpZR+8_9QlUnQ^FlaCsC|! zR6KL9TMSQTW{}<3>!Y6JU2Q&g24zoPM@=f*l+q1dZw=&CMzv$Ov-EH;@xI3O(%Gvn zrQbDuSMYk0Mhj72TG8A-@8JH;)Rn1UW4MCa?|%DW-qcroX8T>wJ=N!mx~*!O)!_R- zbxPK!z51E8x~^hWzlpV=wAM?jq8lpX^!^ow`=tJG#bQS}`^ptXaLwF~@wkFPKxUBC%S*xFx&e>30Uzgu148h(^h=UbGU9*PY*9(Nk5g z>fUd!tc1MY@}8NVlZ;QNOmu;|Rq;rNt5`cpeYCy{V>iX_U_Q0R+#U5(-r0&Z&hKCJ zK(x4HISbm`tN@)D+$Gu%e7keb^_JlM;WhKVQS4d~+TzFE(DxkeI_tJI-zKDA8eBil zv*LD7_gjN^lFwcDd!4(AieAVYf2%&V$6TMn$*RsR-K~7aQ5Q9l!+SkN0L&ZG4HTUNq%NJxjN1o+GaQh%Y3Zd-?4Z zQ;hb*qx!d2kZZ?}sz&>ns~|m=pha=HPx&_i=8Kt%{Ap*XA5mUws;coiRRR@_yN@~) zlRB#ISN0|Pk$m8Htc&W1`hse@v*}fF-l7iOSK{1tl`8l8jYGMSv@F;2u6%PfwNn&d zcoo@k-6%g=37^Z(sWRfs>4Z||yfRuBTGg&)WvVW9LaHnJR;!v~h1fs)%beLauaH(# zlx7^t1$kT>92KdxbLN%T>eaKBuZUuZo0s;P_dt4@`~3I2U2aLXwEEtUTAhxcqgSa;(|R+v>SX*@rX5S@7q2TMs#Pn;i1b9h?6GRUndN+y zv{K^bx9fpi^j{vj`kWQ518w?=d#q4<1D_KD)Vak@6DE%jyhX59o`H##HZq*OGjwAgEk%N45KqBV{6 zOK+HQt|%_&Pp3`9tlsSXl~)#h*Sc|S;}eykGts`Lw=mnI-;q7)N- zmyuCH#3~}6m=TR5r8Gazs#Y@JYvv)J(IAZMG;b#jw~2M-TW{v`7IB% zt6X2Y|7aCVudgyCwAQLM`k*|hBGM{wRoM%T^us=Ab(}Yi#*vQ_T3yOGt6o!ksyZUS zKGG92^XGP&GeyK*ti74Cge=i_=_D zBWXO^XlOT?!2?zk?5;@;&)_=bXk`* zXF103(KSI2_@PdJLThA*v^t;pW0Y4RrMw2#b+3q`N_a-rxm+=_YPwfSd5-;|T)Q*4 zCphc%8m7*)4%}hwUsRSk9i!&nN!F`fl%9j+*V;%YbCUWl>#FRW!?nc-({-`sSi@LX zLgLOf+9G8gL9AnwS2oNYIVZ$VonoBj!nYK1&v7RTsgz5)m9yxO?j!X*V2jjc-_m{O z6>$Z`j*v}9B6-?Vf6*_t+<9CTubQmcTV~sO)hlw#sspdTc7uJiy>yQ#W=BfPylpDm zwi*6%Ev!>3R55SncV1$>%|nW{IR}&!o!_*W_78Wqyv|f>)+8Eds_1m(ysIKs+M^#F zZCSAJxrf1N9*)G)URYKyGfzs7Rkzo)O@Csi=ecAaO!bbnReP7}l2zJ_k8_jnUukwO z(mk&gu>Y!?)W39H;w(}8>37&wb~tZp^Gb)mg2KKj&a!JgvPnwYhdLBZ`W+c2J(sg4 z%hfqJR}9Wv^k&iYEv@3M=d+E^doHa}`7+a-UG32)UFSCLW#5KZk1Y%&MGgxgDGRa zkPnF3!;>aNui|Oai6K2Q8{Ed#rGi6{Z-)_UUBXtHl3F=`2R+pg85HE4up{_fiteG+ zc7{UM7>&lu4rkWNUZ;#(f>iO*zx2a7eUCoioCT*e$12)CYBi0P@=x7LWX2FV45wC& za|Kbaw1w}s<(MOT_9WIamG{1rjXZMV__6M`Q5khT$CySh9%1CSby~Zz9_yB@L1R!; zE5=GkIeTT1DM z!;bUXHj=BZqb`~9Xyx*qkn?LMoyv+}b8(htD`GQ;HRN;7q^bKmbcGFar}dU=&2tho z+Xzot-YdF`gnQ0ttr8zdKmXj8)K>F0rR&%E|>~mNnCf~O~BNSR9gYwLh z(%B|OKgDY*XU<4PO6Klm_Lq9~F{dc97ag>DcQ-$!#qICS3bUxpJ=xLmvXoexP_OMJXX#IeVQ6`%T0P<>hY4&^ug9cj+myG z!iZbEO+Hawg`PFXu+J3=*oYyk>D4zVA9C;=~^DxM@lUkunIuAJ27TE4=r#u0t zS|$ePxeblE2dU1KCx=t6L2xeRSyRFkj;5x#QQ)Rry3%bLETPdHnt4xgOh4xGn9>BB zqOnO2OwO6lf~y@${cFPQGQ#F|^4YMAk-JTIXc=xJct?ZiQ+(R2kA@2!DKwgF-XWat zQDw=O+7ukp(wEOQOQlRtaqf}nx($L;S?lW>&70>x#oCf_?X^+Y@9ag?Ay25zAM>1V z5NF5)l-uP@pImG36Edxy14pjPY?rZYo1Z}=l*@Z&p0Fjz_(7v}sBU9ss4i=KItEXQ zjVuP%oPikxiF*(SY1Zj6Fd=E0$DjnaX=xUXi_z4;1e9t`;Xxd(t(1RD;jq^Yr8ZKo z6h8<~Wro9{X*h3_!_q-9ra1;rx?580Fu18xm@c`LKX~fcbY6$OQ|frlLuVRM@TPRa zK?$hN)0{W=LCzDp2<5cN&T^fp-X>+D82U638O0!pG@e|?#B_#is<9o8n@dP-ojj-d z1h;#TV@I*w)Yi21$He3j#B5X_LV{2(mD9HEjFtykuxIA+d~1x>8DqQFVRT9b51}?a zIY&CHbEh=Ib$WB2OXT#N=2_0uHZ$ks#x{*zxONM{Eqcr+23dQ%l&NiFyTl-Do0dVi z=G~RrQ;E8@lr{_w*_3mz{*c)cD7CjWVf!>(r#b86aLK_OslGPOlpgTtoFVhah1xvq z#-+XmSBfWft{E+K(E{J*M^FXTdFph}b3S9!G3OXk<>6=Q=GP*whPCyT_0l4eHiJN>fM9-=wFQoHw6|FUN6~ z$`6K{vX*bBGSS)N5+phVjG4y5vOXZ5BdD8&$aAnK-1qB)O)Ay1pjIL@;%2 z?N*yy6S2|cZR$%g;!iPK6K;C5EimD6oA#jQ&|uy+s&ToV$;_-N#@K&>OQFeFkxZ&( z%i-{2kgniTTrp3j0^1&aN++Dk*3ZB?uji?Zaf3%m4Cbl((k7Ey9_9RK*O_Y>KBM2m zxY}b&rJ5Y14%aLlmd zO&qcgj}zAr64ucigQpvEROD!Cm@KBtUTUq$Gg)gP*VH)~Oz4{kG@2!AG`Hu&#?krB zsd1Rz;q+npa(X^Xwda({&$??UwbljOZWp~x`zXA_cvAYHoo4@HOeIq|I8rF(Ae_>+ z4BmR$>OQ8L+h~Dv1bJLRPoasOIM%E&)iXIb*EgA&><*Jmy&KG%at55s1YS^1&1ZF9 z&&B20mW{c^?tMeP!ItWpw!gXjA0A0P&O8!Q2jyZAt*%+~c8_waqiH2q7iV2x%$r^X zZL(0_Kf1LvZ4;C7i$fT5r}Ug+j`lI++UeU08+IoO4fCjLwJA4ITPc5TH>DWPIVNvU zem1oY$Ji5(-4PGhHH^bHCO@VYy0oM`hP!x2#aqvyv8!*SHU`OyChp;U^ED^$qDR0UbaLQpgr~#SQHU^iVHXh^5>v`K~p5fXkopQHn3tY-+IH-n9(P(Tw z<~*F`bk3SQ6U8)jc4=*LcH2sMySdsT3d!LWP2MI~XqXJt?rl?3JKw~yP0hksQybm1 z?lIS4zBXMcj(pA4PdNx%Ta0y%wpAIl)}d)~P}6>jvCb41u&Ew{(gvBUeQcAM2+msD zWlZHrj?pvPrmtQKtr9Z6S)>e^zS>J>bQ*5oE; zutZQ(s9jU4OHt;0sfI2%_o$0&RD5oKknWVTU3<#W21}}qGI3n$!NjGT5~;p6m=bMx z;j|AXuC-fZP6^F9-m{?Bq1Z72)p;g9x7}`?!#Uclc1Z=k8_M;K!q>% z8+1a_8Dmb3S>5*J=Aq9P+x4V;gE-CCu4VN2L*5!aQb$k&GQBwl&tUs0A7R=VtWET~ z+@N_=pE0SFaT-%fz{*0-na_fkP)=*k%-tTf_|2oSsl%9@Z!ov1bs6hwU+p@#SF4FP zrY!=~@-Zyu&}dw_%&=Lia~SV%da8{uB{bG4?ejJZ?VJpyNQaN3-CYLd!8}1&PI=gvEsq^RDbt>mMM>=cc zPH|0ZDK#|b*!nEBD7em%&YRp#FWPvBOZ5mQuF2ixGk23$8d8Zi9^q21I&7&r-t)Sr z^xL%hXkEjs=6val8q@hOI6SCx1|^5;d@;}YI18GgCQloexJTn1jf)!FGH<`?W1H4d zJgu*Gs<%yNO1EsApO($}yDKU8)zWR_=o)jKlFK#Lb$On08P`3UyPKms?rs@tkGWG`!p7G}Q-a5sCTFg57=18zdln^A z*X((&(KAx*vvKv&8tNnY>Yn60bxrBqoGGpjn`+C?jiwY^IuX`!P#-ni9{3HIBj~-ZTPB2PO0jg9c}b(sgf}8tWYP zqscijOdc0!@`hTPv~G;8c5{qQ2@j;T8M`xPt1&jM1TBZ^oH?~^Mn6XTjLtbsU){^? zYaZT*U#gq>8j90grgr7YeDyKxO&&^h*0s3O6hq1xa9u{RSWHMTxOy@X^r!FUrDR%O3nvX$RA_n`b2pnBtodJ*L3r=C~Uf+&J zjq<{G+Yu?DG5a&z94YQr_TQVb=eOBSTT@ZDu} zu04j|fg$9`4S6(vdmQPb|I!#zUrmp=w+~3!Pdz1E_pMIfKIf{Hy6@ZX+?j5#8CT5q znd{NLQvOqZVwyG9y-pM1weFBH#L*d-En%7x;YsRs4og>#YtBaF3b{NlDPEKmQ}>=U z#}X0bkmQAnd`K?m+%~iDzv)TSVx4=U^U!EXuSaAvcv2|OWIjvz3@ewOZTrz4F)qjC z7`t#OeS3nLt@bE#FU^-`*Le@llsY-M%@=z(F^$yJTpj5OO>Oof9z)V&DPy{E>S{H z-Lm;Krrd4*4yJcgb6x379;cW(?3iMtujI099z#SDc=B3aaL^_XjjBnW*5lfK=E`Q9 zKh9a?h+LX^4BFilQcP{}Z~r*0UA|6U8GFxlF>Y(E(J1=b^V;-)y7ZSz*lWizc(e|V zp>43t=u~MP%pV>!V;qK2KJ`7ASFxo$qe!LvIUJT59ck_Q2FEVh;XD)Nus8OMV_ioc zPdaOlB<0w;u)RyQcKc9|zLeJb|M;S;ha!>*Zm2K@?;I&DQd1%^~55g-7N#&Z-nYEhR zvUR*Irm_JCcMfruenKLklx{C_oM!YaybJjp5)W~qBjB93eMY&E2rW63a-@1FtB>>q zoXS($d>)0d)NmiHL!8!<`juK71b54HQ*70vys_7L)TWs?=aLQcL>xIp8GWq9^U03V zXlb%xJXH^w2(SrXS7aiL+p? zz}CG8&QzD+ups#^S>kg`=C}5`WcQqwyQ!m7?2ojiu|-t2l~T7hoLd{F-FcIgX7BFA^rLYIAV1%w7e_{DKO9AF?4nFjl$C{J)AN~ zzi7%@#HG11k<*$pNlomVK8IyOsosg{GWVA2kOu41Xiqt7(us-u2P|I623DN)dB{&3 zvR8v8&6QdvPM>B}bv|k*ZyV=kB@-GZu7?t-51}E&Hk~lFo*zXho#fG(as3 zq!?p=Wy#pC(cGj_;1C8_sfV zv?gv8Zt7BTovyn=+X?HZ{_gr>0<9Fy0oMVD7AZpYnAY;-or^*k~b9`zqd@&?_mem+E zLmbVS;@V(&ApW{smoL)o?>4O|u1kw~@(kGX@Jn8$cu54_nmn2=%c0*oEE)WHERr*q zwTauD)*3n`74*T7<(gcgbkik4y8mR^(Ztw=4-P`3apf{wI%5ou&{1ffV#Q;6GgE&& zjJ*nrgEOF<+J8kbSYi~aw2s0_p45l%JD}|$ugXyPRG&9vbq*rBCeQYOv7c$>&@V?Q zn33DtGz;4vPW>8g&3@;jJ-@q+u?CU-GzR8lV)+@K!O3%MEl(I>>V+b1&p?`uy9eyZ z@)(6>1dh{u+vnKky<@0*JkfP=1|}-EwfMEC>Jf(a+&^*GW8S{!j;%gAGLI26p>}M} zbJxu3p53+CcUJ91eQta{imN?;_4wMkh#j4?TgOBwj3Mk2R#d4cDK>NmpP;VqRQsqh zxi0$>Sm_MEf)Y4KLYiQI2c;g3d4-o;@H8QE_>;oM4I4+5$^DYnrYte!G{tjbb5H7X zaY)uuo@wl|X-SVE9ad9Z_+hLuoKq(K48n-F&2DH+b+zdyJv8Lp!)NwZ8uFQ}$&)Tk z_OpGohFsdb@;hk8d$hEp3m@%gXpjtbnJdLuV=5;&F!CdxTL-a(LwjmDBttso4eJ4Q z$p{~ILc$v5Ns1RG$8grBm-5To+uI6`!oP%hDe?rb)-ho`|~3)Y!x3k|t$ z&GNiiJ~(Z|+|nF610tui#doSbI0czM@PU!l@WOh?Yb>Fd89R|t(y5N7&Xk(k3%sC+ zNnFwtT*T%)oYC9O=#d6-r!nRhWLxymo?=tk6i)S|_^k&|#sX!Or!*S+WNjYhXKztYolNv^sx5Kzhw-0IN9aoC0Yt`IXkJOsxCfBgFXSQX%j;W5PcR9|SqIlLe z4(Di-+V(hSJdKSp`p-FuG0#BYw*+d}*@ca))U#^8gTrxX^mmLYXB%9%Af7fmO=-(| zv@eqOcjS$9VFd-nyiL4$a*Dl_KF`dI$?CXd3eltx(I2lnm($!o{vTr(PeJf@H+TlZUb!dhxuxs?ax&^+bcUNUVT?T@1H ztZPg&nMRf3(|pwNqtEHV=-k0+srndIL5ltqWyqQ*I7sWt#c24Ze2S4pd*d1B{@99W z#ENPe(#7ksZ6;j(JC~?aw`^|z98)?fCS&Y{B5^#DC(mR*xvZ?kx3p?*3!deX%Rk3M zUefg~PUAc?J>?N?TYWcuvZdTNVaXkTYVt89@V9UN%1Kx&lRzx6;%!gJ;w(x zb*8h?;P6%QoOfwT^^42jmI`fMkRlITDPKEQ9Fj}9?I&?<)SS0Di#$?Zv(RK}XqS!L zlI1kkzf)P$!a{gNouu23lvh|&%xBr)Y_nx*I$DF`(6?oCTbfzc9(ZoaTqZOHpP;6E z%0a6C3@OHxYa(#i6O@0ODjT+BtYb4?^Z0J}BP|0uR!wXq^>W$>UetfvZE#qVb_2)nw}EqohaC z(Z-W{VVHb``5~m4q3}!`+s8M(N*FX*9)s7$dd%+ZfG7X^Y;nIc;LIHtnf~QS)!_sW1J6E^#=vF8)+@ zG&r(k{=lS=JP96o(!|I z+}cxHgrz08Q~T0rOpK|dI*Q=TG5?Y+6z|^5!&fZ#X_&8cFwuT;C>dI!CE5RwI9=GSg z6Od^WAE`rnnvgN=xo~vt)QMv!uFn#RfEEq4!`Bbe4*7mO-#GD zdF=A3j@zE*imx6WJ&bh;SbX8Xvoo2oZgaQ}ThBS`dgOci>QFMgZ-Y`fYHs7XYjMMU z5{Dz9w}J&Jdnugf^X@rwZA7dQvopZ4`@^_{n!DJITQmzd@3^zHcVOmKK%_-#g9JMqBHs;nrY18x3I*3hS%_MJ$E*+*@14n&Q zC^Sl|c?OM^_gL3DNOmwS*J!=YLR~iZJ*7&I&%@zpcJc|<1O?dw|}+NX$v88=qz z5pifW>htzB5|=bcXKtfg%KAe?J8u(f$&?Zvq;WYy`xIP3p_Z5#8g&fWT%rpvE>mrr zbK`P7DPCM@)RGq_Vyk0QIqNeItx0|&-*uUEE|}kSY#y2E=8{D4$e)_D6Ph&x-FlM&b4ut>l#yisUMc-D4nT>Cf1l#pCn1)N7|`H zbA2~w;*ibY%=rS}gd`c>nqyQAmbaY7c4=Wl!qExi%%wRAzy1XMDFc7Xz@IYkrwshx m%s|@xCkito>8UXp`R=SrbE-dhCu-^c7C+B=pWTA|{r>?}FM_iG literal 0 HcmV?d00001 diff --git a/examples/DSP module plugin demo/Resources/Impulse2.wav b/examples/DSP module plugin demo/Resources/Impulse2.wav new file mode 100644 index 0000000000000000000000000000000000000000..c548b22cdde8c51043aaf157de895583ff985847 GIT binary patch literal 37902 zcmeHL378#KmA>^}chU)g1P~GuWf>J&0z}9l!pKe#6ck255s&~Pn}`gEpn|xtsC*-$ zvWO0j5D<{f4V2x07*?Z32?>NH5FiUAgiiN+ukM`x{rNe!>b-6nj0#RyeW`ovp8uTl zpXJ_q>AiQGG-=3pLfChQeRetQQ^&76Duj^Pz4KKeocWO~RKlomKoRsudNmTJC4hi4Y_XU z^r0UecF{`nhOOV#)%Ea@XDS=Tp4zb93wy3xw#Bkf_UzU>ueNhzy)dD=%8=uRoG|3} zp*Iel(s6OvIX}F1RnLY!r!PBg*^-`XYWvkMZ(JX54)e3KvwPw(d1pSkv8X<~_QBrY z_a0M!u|B)8f4n}dQ`xif;mYcjrz)3Juc<7^@~}quV%#o{4A}E)0j~J+;+p9lhHv`(F1^-GA)Y9mjSYUHwF*GrKoV&1W`Fsh?PzRNJif zliH^B2kT23i}TCk`e9ID_4g#agM zaXc>El>NT)o$6*CmvnrsV?lM>>h_gSWQ*gG`KFC(eQEDKz5CYgtX)~Zx$$WJrf_0* zYGu9Z#nnGmcdTwzSv%V>Y#fK@;~K*o`!w!q?43`DtAxwLKG|op3$oeSf^3t@36(Ea zzEt_9jUy|wtj43V3oQp5hTXz~_>;IS9vOaN`FOA0le0^+UuQ35>sI!uY+IS1ZJXV1 z{dYwCuY8?GZ+)}+M`}ZA->40(FRdL@Kd`Y^zI!}B&WP_f%(D27Fd^(5HVWPGia0V( z$bmQD!;89UAe<5H7T4Kr{$l`r#B`wCN%bLoZlFgZ*5FErg1_3gFK68$6DMeoE4^pJ1p8ShfTt) zxOQAKKeDl~entJ_`n>w^#ycDLG=7*L6uZKd5X0E)t=U^_qu&sA2vg#ycwhcM`RVyt z`G|OK>_sT)WZ*paH<=*U;>>TTd?`L;qbFvxPBiYRCLCfZ6vT@n<;X|P( z{w!`Af1B@c;=hHH!h-Oj?7P`Cv;J`Qv+Ve6{p`=SIwss5e;mIQkB{fXC*uBA`Oa*=?E384 zY*|(}2H(ntW=Dl5<8kq&{44n;`Qpa4jh{3wvChl#_gg&E^R46O<1gaExOvzsY#+M9 zoOpNqjh!%OTAb&^o8mKZbl5eV8LkgA!W!9o%=&@Z0onVqiB^^FaF=D`*s#0ReoPn^ zp0Y^(5MPKd8kc9yW{<@+G>i;yv2(0D&W=;#FXI_;@3>7|nqQosmY-uCa%*1CcZ^rY z^~}f9;XT;bFS=rlCZG3w;-;UsqW!Gg(vT7w% z=4L<74$FpRmxpb_{qeN8d3?;QADbVLA7c^zF#mNvGw;dA$7AAE#;VuO)miaQ>$4xk zi{cmJ3Gs`Ty)*3nhIm)J*AQ!kt-=SxLE-D+((u2Q(W}Ch;YZ=ymhD5szTp$$RP+C1 z>!O)qQJ5e85bg{=4QGT;n{@B6f$fBcr+37wa zRKt?^xH0&-`9C9mE`HWnoMJ4Fjt5w7c8&WO)2|uVM=g7A3tNZ%!dEQI=Y$Kx+2OQs zym>k-91%{iydP@!adsbK6_^+{4x5_)(e`cXjZ5N7ak2S(GCmS#T21~O=i0X=H~%%O z%k20U>$W?rbG{!hiPy*9S(UR;k4x>@5f;Y3Hsv?PtK+ZY1D37%cBX7){(cm03lG}v zd?GvlW7YwStP`HL*(|d*!=7`^&eGU0AGvkN ztaw|zG@fPgA8JwWWw9S_b@+O`Cf;NEHLLROVgGQj#kzlZpY6d3)!xOBRkPA< z*;!z5KWZ9J#HVbWZB=>BGWVk8ZmDr!80Q(2>6V?_;;+s2&DJ0HSZGs9BvB z+5NP!c+9N-$ujeVar%q#nH?Xpe{+q=Ld)F?c2?J|f4j~9LR+0>RlUbDez~0+=h{hp ze!L+5&}w?M?cb?Zg@;Y2*G{vsb}GNinCxo#*dzR>-Fq01t*xS48jCHB)w{!cOg_mF zJB96ReSBEgv{tiBciV26Z~p4mI~|tq(P5m$xP@URhRy60eXHd%gvG}EKCAz&c6K~y zwSL^VW)|CO%?d5EJkE^woBT%OcBOqErr3Rr?YG?g}E$TTI&oj37p0nqCi*AwC zpwaA=QDJS{1?w22cbLBk#&@T%r|rXo!e{Ip|ElfA&xNC`#(P;rZ!?doQ|;nenmTKDK(NF?qnUKF@MC)Ozb}ma|=LN23Qn zZqJWe-gdRf-)?-yT7QiT>)DRm%CZJF2iv)DpmEs2zN=kfo}DAt#`EIo@l-pT&x#k? zF8isSrT1IS<`@(F1Ebl-=~0V(k)4!P%hy=T=Xk5e&f&f0Ym#-*E*9jO~FXW@Cm$@SEm+qviP)s|B))n%rnyrdV%$D}FP6)lQmI?0L5J z%#UpSR;$}X*8MNpZ_iHa{TCPtHr`UZ$INEmR zWXsAPCV!Xp{6@xoEvxs?=J~@Nw7?=;+`M13uI;h@eaY?@ZRG{4@?6Wo{W!{YElv=eb}t#bXU!tJ<5A=AN9*1PtxD6ZkEdGxkj1Gs zpJuDzHnUl=Iaaer?4Hx)@wBn(vAr?Eyp6T4*~q$dQ~NjGSZ!q8uz}s{8y`p}Sf;kL z9(t$Uo0&bh88^Oc+DOs7>PH`G$g;ET;Ca*H|6 ztfkGBmrM>j-PXko+p|0`ka6VvdAo5ccblwYc^P55_f3|mwXM$USst;=IId&;y{7%b zU(@8P+Nq0sWy@oiaYF9M^?BQ`Pgy-4w!JppcF%py`(Araw|pU6kD3&xD|Ys?c4Kdo z#q-7*Y-`4)(L7(Q^(?+x^UjUm5X%g*I@{DXFOkMvTIl+zzfWJ zEz9#wHrH;P)#%&D?R}v|(ql1HEkCQ6ADnvlDh#uGh;>_Mb3S~z@8QkwMwew0yA2g$ zov=4hC!Dv>H1`J13HX?0`JH8%eB4&&SsoV}3SWX?9nxVQhQ54vnMXvnl0}Hzj5H=I zFOL+pW9L^)uhaC{TcfPPYc_A>lvVC%#%rP5mD@k{BCTU5;aUk2vuA!EKMU z-dWX<$oL40yUV1p*^@X6mRcN(EZX@N6S9h&K5F+IyD@T(GvbNn{iO8~z7F_($^J%< z;O;W(t2A#`7tx~*=!wzR-{^?3Hm+eS=$n;H17Gcm@s5^%?7i+LAM_?qti{d#?6v4| z9^z)Ekwg2@X?L}GbB3t#D*#X6P>Ep{@$hCX5If%Kl~q7y^QP}!^NxIg0rvKi=FJ_A z_oXK3w(j7~dAH%Aff3rh76Up7{fcUV1-YQphBn_A1x-=7bTy#yfG1w`$deqWIc{9Q;X)?x%Legc58xNkqGm0W z2b^h$RZ%l;Wz92(UvE9lT##$0#jh%0_oGAj+YS2$b;2pLa_WJPVZZ4wK;2M>nXx zV2S+ULSC5*d}Y~D?0Nixsx9AxO=uIxy~Dk!RrqElu!8EqAG(w$1^bacC1rO4iFKVK z>1oFEi{BW2LHVW87X}d`YwTok!1;>U5Eo8bb}D=@2l$@_Ig$Y)Q9q%F(~iQ<^LUBm zlX;^i_nbfZ4d0Z2(>p-fgf8`&Rb~@PhDCnZ*%mj0->ZG=bXB~k>Wau>9s0e!;C$P^{ zDfFXqp}MO-=vUpVs&E7wT;RjJ;aR+#g*qG@h7PtTN5hN%__}u1ax#aSt+wo+Zy6yF%wOdjh8s5$X!YuCt6eQl}t3#>8r& zPLTOJ7-9dZipn2P4`v;)66f!%4Le`G#F3f9F68$QPkit7HyiaDcN@D5`BX-on|RVc z>?%6nJ^I=se~5uKS3e?C`kHH>QG-b2h8Mkq1sLICgm~(=DB@GCIkJn?S=uRzP!`DA zZPEv&%tF(lJ-~%sr4v|rM_ghC6mudJY(bmRL!M?AGF+^paJ0tmp;y`vj<#V5y0VzE zpiR{a2wX&yZyF=}j=xedN7nG$6c_iAziD?e7kDEZ*uzYokR3^2gEIOC2H!r^o7HAl zV2)vNM=@oM@qJ3D>Ud4>R zDHw0sE8I`qF}|K=qBtib@nMAIr6*;IfNZo@#$X-xDVH=IQ%y%Hc1d9+tp*}aGf|u~ zOYp0{V*EN=c*3RjfW`UAn-X~-TjwS&#i*Dm@a9E}c)F%z)DPmokx@{lh?u{kL^8&Q zH(atM4Wg6-?S!-kkR9CeE}8O>N>dL_cgsB%=N_v%+w;*rFI<%#Mp)!~8k4W{M5kRo zg;N|DX+!KVDq6)`j68iy?I z(X!*DB^mpHou5Wkob#KCTqr8&rR*{1EoS97VZ-+lBS?1(@NN-uUgh494y2kx*JEC; zm<*7md>|5E_vtI`WPz2YRq~aj%wBa+cgi+! z9w+Ci4VTf2o=vspBh9F!wC+)2#)zEN_)Uh zOU3A{)hCQi5jKNZ{vg)*G#$R|mmqNvcdUYU@!gqI&UZ$P*wS~*=?Pe$;f?Q{=?PD? zLB4vXa?ELodB9wKCEvi1we}V@97mqCK$f00V$+(D2R#$ViUH}qFyn=F`oattMdG7l zHIqyka9gxOOIQW6coD(1wAW-4ITIu0&soV9FgRt=YaSFoM?VxL;+$F_>0IPP>{Fif(<&hgw*g+_L~pdx4woXO!?=`D@szeA0$Q;^ zR>onC7|eKi=K`%v%P%mPx7G_-@=?xH-qIrYH3xAcRuW|stguEK;D%pN+DBL?6IwxZ(7>s{ ztV5Tpm?=i0(skxjJwmK}^Ud?cm{mVm;iWn|K1E`cu@Fs^p7gJ`bS&B+u4uvE(oCl| zG^Z`TNsA-6dsa9H&a2Y|G#|{lP8Bf+GPR)EIL@oa?n~LI!t^4(%$MUJWewR0lryhH zm7lWY)xwHfl$>#@Ys5m`rOE+KBs|LsMs_~AL4sIuNy5r7%izv0miQA1JG9_?P(39( zo=w^p3+@6kqJ%Lh68Ataj3fPSx+nQ+wU%1pPFI|eq#ivotV#+Wij8PUaM2g%loX$o z_)}3}CDj!I+L~*Wj?3tyXu-2bro>POnc*48dNX=QXaPJ0HN0ac_IQ&gBKYQLS@1eaS9p$i65|?u z&s-<m*F$09)@Ayip3KMI0jnf_^covr-*r1%$35l6c5ct9+LRCB>&SFv5mkd~<8+PsIZy zq|}gANy*2b;+5KSsrz#Ot(GJsy7i6rik_U8uNN5;p^ou*h<18KB;J57BJt*zFw|_t5=kko`J9$yAw?GLu-DzEBI8QR#w~j0XIlic7z2^ws;<5MYe#_MSkth%oIg_i~yE& zxfQJdqdwu9FdEAl0SYqxPerj1FT2IjYnfVejQdLE>djVMY7bKOr8B^c>&&_47|C8w zj94q@N|ka?ZXI~Pq*?To?i9yzMh(xqYmyZ`rBCRksItXWD(mG@F><|VA@!v`N)hs% z;xva{Rmx*3Yo}}|lYaaDkyK-=y>!JbVwU>STxi)#N6E?~FfSTKm0s^4fV>)Vw)6wq@I8hCu)c(wNg1GUQwd)lyzUhj8?fO1V+{s zvlK55o)@hUm0EL;u)-^~Ri4WeY^2tTHkoyK^${BKq7iGd<#S09BQ8p0$Ar1xlO)PE|k_V$`aR7 zJqgm$KCqnP#PIO?t9Yd>2~Pq_l_?Bdw<1w8qin(z@H1Uu8`QjVV%V@=TAdn#xo< zx~^uap1f!TE8Ab8jKjn42x0AW8RKt05)lr<$not;}?Z_14zaO#c z7|c?fEViN?*;Gg#w5Emfo7SD9d~ii?!u2)ME}!XnCcI~0An_4hE~cNxWZ$NH=+DYEsTB(GA#g-cBSp8H!)x(!3s|Q$V%#EU@+2OqEy_}y{3uR( z6+&Z?OYseubfv$y6sLI+uhqUsaY{#`6@y~ps`GO>XY%pNmIlI+R^$_7(Vx5xWOU9# z7a41{b#$MpOcADQea&H^|BG^GB#crMsd$xtQ?|2}<|DO1 ztgp29SY+>L&fK3{lRw86QCJs7W2-f33xN?=(N>vV|J@^7vR$@?cgfN*#rZm|@jXSP zR=`KhTe-uVIQb}?d%{febd_Gym3BDiRzwc`%_Ddvo&J%EL1TMsl48`?z>ywvisRf- z>8y-PWuC7TRYVlu90%S0E=OY4dKKkmOxi`#En~FKv45#BMIFzkucy4Y>K!CjDMoW( zCD%TZjH3{#J**W`%vFk^wIT|7+9~qNHMggC$N9=YXYO^N8f9FWU0Kfe6qU~9zrSv4 z*IlU%dT>kb5hz?(kvtu-u3BP_3v%sC%yH3*Ke3kDX@>)*6(uBX5|ch%o~~lvPNLWx z3sgHK5t91onm%)BI&-7m687bx6fK*Pi=aw()x-ok;0^ULX@K+mPle!E$@)x zYWu2{F|F^Zw^k`ufM_QXZ%I>29vfzTU#XP1)Qa@lWuaXj+^aPE8~fu`))RK19@;Z5 zTTSMZZ2HQB&}A#FcFTwr`7RcSu*|%jAK}}{(zX6^ z%BN6zPb~~=?iSkHNadXOW!I68KB zyd`oU7=K|`B#WZw*OEoCdM&yh$%?V!_Wm)m_N?3QyA{Q#{az^VT6iN;vlZq4mF$%J zpfA3!WaqWYnQ(#ob7&Sj(3XAvvhYZ+5ZuSLJ818clA7Ulo!H)WFJKby@P z#ecCI`)1v)=4prbt@-zrwBz;n^*Ct#Unc|qxbE@O^Y5R%fkZXXeZL~u4usFE@w1}s zy&B*BVOxJY^@n~V%U%yB|LY-tuh&j|J>=%~#zDUiUvIny`TQ$p04KxX>F}>u**9KH z|H$8ZZ@labGH#!NSNC_6|3ANd+h=QVbua^i85qpKUname), + outputVolumeLabel ({ }, processor.outputVolumeParam->name), + lowPassFilterFreqLabel ({ }, processor.lowPassFilterFreqParam->name), + highPassFilterFreqLabel ({ }, processor.highPassFilterFreqParam->name), + stereoLabel({}, processor.stereoParam->name), + slopeLabel ({ }, processor.slopeParam->name), + waveshaperLabel({ }, processor.waveshaperParam->name), + cabinetTypeLabel({ }, processor.cabinetTypeParam->name) +{ + //============================================================================== + addAndMakeVisible (inputVolumeSlider = new ParameterSlider (*processor.inputVolumeParam)); + addAndMakeVisible (outputVolumeSlider = new ParameterSlider (*processor.outputVolumeParam)); + addAndMakeVisible (lowPassFilterFreqSlider = new ParameterSlider (*processor.lowPassFilterFreqParam)); + addAndMakeVisible (highPassFilterFreqSlider = new ParameterSlider (*processor.highPassFilterFreqParam)); + + addAndMakeVisible (inputVolumeLabel); + inputVolumeLabel.setJustificationType (Justification::centredLeft); + inputVolumeLabel.attachToComponent (inputVolumeSlider, true); + + addAndMakeVisible (outputVolumeLabel); + outputVolumeLabel.setJustificationType (Justification::centredLeft); + outputVolumeLabel.attachToComponent (outputVolumeSlider, true); + + addAndMakeVisible (lowPassFilterFreqLabel); + lowPassFilterFreqLabel.setJustificationType (Justification::centredLeft); + lowPassFilterFreqLabel.attachToComponent (lowPassFilterFreqSlider, true); + + addAndMakeVisible (highPassFilterFreqLabel); + highPassFilterFreqLabel.setJustificationType (Justification::centredLeft); + highPassFilterFreqLabel.attachToComponent (highPassFilterFreqSlider, true); + + //============================================================================== + addAndMakeVisible (stereoBox); + + auto i = 1; + for (auto choice : processor.stereoParam->choices) + stereoBox.addItem (choice, i++); + + stereoBox.addListener (this); + stereoBox.setSelectedId (processor.stereoParam->getIndex() + 1); + + addAndMakeVisible (stereoLabel); + stereoLabel.setJustificationType (Justification::centredLeft); + stereoLabel.attachToComponent (&stereoBox, true); + + //============================================================================== + addAndMakeVisible(slopeBox); + + i = 1; + for (auto choice : processor.slopeParam->choices) + slopeBox.addItem(choice, i++); + + slopeBox.addListener(this); + slopeBox.setSelectedId(processor.slopeParam->getIndex() + 1); + + addAndMakeVisible(slopeLabel); + slopeLabel.setJustificationType(Justification::centredLeft); + slopeLabel.attachToComponent(&slopeBox, true); + + //============================================================================== + addAndMakeVisible (waveshaperBox); + + i = 1; + for (auto choice : processor.waveshaperParam->choices) + waveshaperBox.addItem (choice, i++); + + waveshaperBox.addListener (this); + waveshaperBox.setSelectedId (processor.waveshaperParam->getIndex() + 1); + + addAndMakeVisible (waveshaperLabel); + waveshaperLabel.setJustificationType (Justification::centredLeft); + waveshaperLabel.attachToComponent (&waveshaperBox, true); + + //============================================================================== + addAndMakeVisible (cabinetTypeBox); + + i = 1; + for (auto choice : processor.cabinetTypeParam->choices) + cabinetTypeBox.addItem (choice, i++); + + cabinetTypeBox.addListener (this); + cabinetTypeBox.setSelectedId (processor.cabinetTypeParam->getIndex() + 1); + + addAndMakeVisible (cabinetTypeLabel); + cabinetTypeLabel.setJustificationType (Justification::centredLeft); + cabinetTypeLabel.attachToComponent (&cabinetTypeBox, true); + + //============================================================================== + addAndMakeVisible (cabinetSimButton); + cabinetSimButton.addListener (this); + cabinetSimButton.setButtonText (processor.cabinetSimParam->name); + + //============================================================================== + setSize (600, 400); +} + +DspModulePluginDemoAudioProcessorEditor::~DspModulePluginDemoAudioProcessorEditor() +{ +} + +//============================================================================== +void DspModulePluginDemoAudioProcessorEditor::paint (Graphics& g) +{ + g.setColour (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); + g.fillAll(); +} + +void DspModulePluginDemoAudioProcessorEditor::resized() +{ + auto bounds = getLocalBounds().reduced (10); + bounds.removeFromTop (10); + bounds.removeFromLeft (125); + + //============================================================================== + inputVolumeSlider->setBounds (bounds.removeFromTop (30)); + bounds.removeFromTop (5); + + outputVolumeSlider->setBounds (bounds.removeFromTop (30)); + bounds.removeFromTop (15); + + highPassFilterFreqSlider->setBounds (bounds.removeFromTop (30)); + bounds.removeFromTop (5); + + lowPassFilterFreqSlider->setBounds (bounds.removeFromTop (30)); + bounds.removeFromTop (15); + + //============================================================================== + stereoBox.setBounds (bounds.removeFromTop(30)); + bounds.removeFromTop (5); + + slopeBox.setBounds (bounds.removeFromTop (30)); + bounds.removeFromTop (5); + + waveshaperBox.setBounds (bounds.removeFromTop (30)); + bounds.removeFromTop (5); + + cabinetTypeBox.setBounds (bounds.removeFromTop (30)); + bounds.removeFromTop (15); + + //============================================================================== + auto buttonSlice = bounds.removeFromTop (30); + cabinetSimButton.setSize (200, bounds.getHeight()); + cabinetSimButton.setCentrePosition (buttonSlice.getCentre()); + bounds.removeFromTop (15); +} +//============================================================================== +void DspModulePluginDemoAudioProcessorEditor::comboBoxChanged (ComboBox* box) +{ + auto index = box->getSelectedItemIndex(); + + if (box == &stereoBox) + { + processor.stereoParam->operator= (index); + } + else if (box == &slopeBox) + { + processor.slopeParam->operator= (index); + } + else if (box == &waveshaperBox) + { + processor.waveshaperParam->operator= (index); + } + else if (box == &cabinetTypeBox) + { + processor.cabinetTypeParam->operator= (index); + } +} diff --git a/examples/DSP module plugin demo/Source/PluginEditor.h b/examples/DSP module plugin demo/Source/PluginEditor.h new file mode 100644 index 0000000000..d2a36b8bbd --- /dev/null +++ b/examples/DSP module plugin demo/Source/PluginEditor.h @@ -0,0 +1,104 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2017 - ROLI Ltd. + + JUCE is an open source library subject to commercial or open-source + licensing. + + By using JUCE, you agree to the terms of both the JUCE 5 End-User License + Agreement and JUCE 5 Privacy Policy (both updated and effective as of the + 27th April 2017). + + End User License Agreement: www.juce.com/juce-5-licence + Privacy Policy: www.juce.com/juce-5-privacy-policy + + Or: You may also use this code under the terms of the GPL v3 (see + www.gnu.org/licenses). + + JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +#pragma once + +#include "../JuceLibraryCode/JuceHeader.h" +#include "PluginProcessor.h" + +struct ParameterSlider : public Slider, + public Timer +{ + ParameterSlider (AudioProcessorParameter& p) + : Slider (p.getName (256)), param (p) + { + setRange (0.0, 1.0, 0.0); + startTimerHz (30); + updateSliderPos(); + } + + void valueChanged() override + { + if (isMouseButtonDown()) + param.setValueNotifyingHost ((float) Slider::getValue()); + else + param.setValue ((float) Slider::getValue()); + } + + void timerCallback() override { updateSliderPos(); } + + void startedDragging() override { param.beginChangeGesture(); } + void stoppedDragging() override { param.endChangeGesture(); } + + double getValueFromText (const String& text) override { return param.getValueForText (text); } + String getTextFromValue (double value) override { return param.getText ((float) value, 1024) + " " + param.getLabel(); } + + void updateSliderPos() + { + const float newValue = param.getValue(); + + if (newValue != (float) Slider::getValue() && ! isMouseButtonDown()) + Slider::setValue (newValue); + } + + AudioProcessorParameter& param; +}; + +//============================================================================== +/** + This is the editor component that will be displayed. +*/ +class DspModulePluginDemoAudioProcessorEditor : public AudioProcessorEditor, + private ComboBox::Listener, + private Button::Listener +{ +public: + DspModulePluginDemoAudioProcessorEditor (DspModulePluginDemoAudioProcessor&); + ~DspModulePluginDemoAudioProcessorEditor(); + + //============================================================================== + void paint (Graphics&) override; + void resized() override; + +private: + //============================================================================== + void comboBoxChanged (ComboBox*) override; + void buttonClicked (Button*) override { processor.cabinetSimParam->operator= (cabinetSimButton.getToggleState()); } + + //============================================================================== + DspModulePluginDemoAudioProcessor& processor; + + ScopedPointer inputVolumeSlider, outputVolumeSlider, + lowPassFilterFreqSlider, highPassFilterFreqSlider; + ComboBox stereoBox, slopeBox, waveshaperBox, cabinetTypeBox; + ToggleButton cabinetSimButton; + + Label inputVolumeLabel, outputVolumeLabel, lowPassFilterFreqLabel, + highPassFilterFreqLabel, stereoLabel, slopeLabel, waveshaperLabel, + cabinetTypeLabel; + + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (DspModulePluginDemoAudioProcessorEditor) +}; diff --git a/examples/DSP module plugin demo/Source/PluginProcessor.cpp b/examples/DSP module plugin demo/Source/PluginProcessor.cpp new file mode 100644 index 0000000000..17ea3d6788 --- /dev/null +++ b/examples/DSP module plugin demo/Source/PluginProcessor.cpp @@ -0,0 +1,256 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2017 - ROLI Ltd. + + JUCE is an open source library subject to commercial or open-source + licensing. + + By using JUCE, you agree to the terms of both the JUCE 5 End-User License + Agreement and JUCE 5 Privacy Policy (both updated and effective as of the + 27th April 2017). + + End User License Agreement: www.juce.com/juce-5-licence + Privacy Policy: www.juce.com/juce-5-privacy-policy + + Or: You may also use this code under the terms of the GPL v3 (see + www.gnu.org/licenses). + + JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +#include "PluginProcessor.h" +#include "PluginEditor.h" + + +//============================================================================== +DspModulePluginDemoAudioProcessor::DspModulePluginDemoAudioProcessor() + : AudioProcessor (BusesProperties() + .withInput ("Input", AudioChannelSet::stereo(), true) + .withOutput ("Output", AudioChannelSet::stereo(), true)), + lowPassFilter (dsp::IIR::Coefficients::makeFirstOrderLowPass (48000.0, 20000.f)), + highPassFilter (dsp::IIR::Coefficients::makeFirstOrderHighPass (48000.0, 20.0f)), + waveShapers { {std::tanh}, {dsp::FastMathApproximations::tanh} }, + clipping { clip } +{ + addParameter (inputVolumeParam = new AudioParameterFloat ("INPUT", "Input Volume", { 0.f, 60.f, 0.f, 1.0f }, 0.f, "dB")); + addParameter (highPassFilterFreqParam = new AudioParameterFloat ("HPFREQ", "Pre Highpass Freq.", { 20.f, 20000.f, 0.f, 0.5f }, 20.f, "Hz")); + addParameter (lowPassFilterFreqParam = new AudioParameterFloat ("LPFREQ", "Post Lowpass Freq.", { 20.f, 20000.f, 0.f, 0.5f }, 20000.f, "Hz")); + + addParameter (stereoParam = new AudioParameterChoice ("STEREO", "Stereo Processing", { "Always mono", "Yes" }, 1)); + addParameter (slopeParam = new AudioParameterChoice ("SLOPE", "Slope", { "-6 dB / octave", "-12 dB / octave" }, 0)); + addParameter (waveshaperParam = new AudioParameterChoice ("WVSHP", "Waveshaper", { "std::tanh", "Fast tanh approx." }, 0)); + + addParameter (cabinetTypeParam = new AudioParameterChoice ("CABTYPE", "Cabinet Type", { "Guitar amplifier 8'' cabinet ", + "Cassette recorder cabinet" }, 0)); + + addParameter (cabinetSimParam = new AudioParameterBool ("CABSIM", "Cabinet Sim", false)); + + addParameter (outputVolumeParam = new AudioParameterFloat ("OUTPUT", "Output Volume", { -40.f, 40.f, 0.f, 1.0f }, 0.f, "dB")); + + cabinetType.set (0); + + +} + +DspModulePluginDemoAudioProcessor::~DspModulePluginDemoAudioProcessor() +{ +} + +//============================================================================== +bool DspModulePluginDemoAudioProcessor::isBusesLayoutSupported (const BusesLayout& layouts) const +{ + // This is the place where you check if the layout is supported. + // In this template code we only support mono or stereo. + if (layouts.getMainOutputChannelSet() != AudioChannelSet::mono() && layouts.getMainOutputChannelSet() != AudioChannelSet::stereo()) + return false; + + // This checks if the input layout matches the output layout + if (layouts.getMainOutputChannelSet() != layouts.getMainInputChannelSet()) + return false; + + return true; +} + +void DspModulePluginDemoAudioProcessor::prepareToPlay (double sampleRate, int samplesPerBlock) +{ + auto channels = static_cast (jmin (getMainBusNumInputChannels(), getMainBusNumOutputChannels())); + dsp::ProcessSpec spec { sampleRate, static_cast (samplesPerBlock), channels }; + + updateParameters(); + + lowPassFilter.prepare (spec); + highPassFilter.prepare (spec); + + inputVolume.prepare (spec); + outputVolume.prepare (spec); + + convolution.prepare (spec); + cabinetType.set (-1); +} + +void DspModulePluginDemoAudioProcessor::reset() +{ + lowPassFilter.reset(); + highPassFilter.reset(); + convolution.reset(); +} + +void DspModulePluginDemoAudioProcessor::releaseResources() +{ + +} + +void DspModulePluginDemoAudioProcessor::process (dsp::ProcessContextReplacing context) noexcept +{ + // Input volume applied with a LinearSmoothedValue + inputVolume.process (context); + + // Pre-highpass filtering, very useful for distortion audio effects + // Note : try frequencies around 700 Hz + highPassFilter.process (context); + + // Waveshaper processing, for distortion generation, thanks to the input gain + // The fast tanh can be used instead of std::tanh to reduce the CPU load + auto waveshaperIndex = waveshaperParam->getIndex(); + + if (isPositiveAndBelow (waveshaperIndex, (int) numWaveShapers) ) + { + waveShapers[waveshaperIndex].process (context); + + if (waveshaperIndex == 1) + clipping.process(context); + + context.getOutputBlock() *= 0.7f; + } + + // Post-lowpass filtering + lowPassFilter.process (context); + + // Convolution with the impulse response of a guitar cabinet + auto wasBypassed = context.isBypassed; + context.isBypassed = context.isBypassed || cabinetIsBypassed; + convolution.process (context); + context.isBypassed = wasBypassed; + + // Output volume applied with a LinearSmoothedValue + outputVolume.process (context); +} + +void DspModulePluginDemoAudioProcessor::processBlock (AudioSampleBuffer& inoutBuffer, MidiBuffer&) +{ + auto totalNumInputChannels = getTotalNumInputChannels(); + auto totalNumOutputChannels = getTotalNumOutputChannels(); + + auto numSamples = inoutBuffer.getNumSamples(); + + for (auto i = jmin (2, totalNumInputChannels); i < totalNumOutputChannels; ++i) + inoutBuffer.clear (i, 0, numSamples); + + updateParameters(); + + dsp::AudioBlock block (inoutBuffer); + + if (stereoParam->getIndex() == 1) + { + // Stereo processing mode: + if (block.getNumChannels() > 2) + block = block.getSubsetChannelBlock (0, 2); + + process (dsp::ProcessContextReplacing (block)); + } + else + { + // Mono processing mode: + auto firstChan = block.getSingleChannelBlock (0); + + process (dsp::ProcessContextReplacing (firstChan)); + + for (size_t chan = 1; chan < block.getNumChannels(); ++chan) + block.getSingleChannelBlock (chan).copy (firstChan); + } +} + +//============================================================================== +bool DspModulePluginDemoAudioProcessor::hasEditor() const +{ + return true; +} + +AudioProcessorEditor* DspModulePluginDemoAudioProcessor::createEditor() +{ + return new DspModulePluginDemoAudioProcessorEditor (*this); +} + +//============================================================================== +bool DspModulePluginDemoAudioProcessor::acceptsMidi() const +{ + #if JucePlugin_WantsMidiInput + return true; + #else + return false; + #endif +} + +bool DspModulePluginDemoAudioProcessor::producesMidi() const +{ + #if JucePlugin_ProducesMidiOutput + return true; + #else + return false; + #endif +} + +//============================================================================== +void DspModulePluginDemoAudioProcessor::updateParameters() +{ + auto inputdB = Decibels::decibelsToGain (inputVolumeParam->get()); + auto outputdB = Decibels::decibelsToGain (outputVolumeParam->get()); + + if (inputVolume.getGainLinear() != inputdB) inputVolume.setGainLinear (inputdB); + if (outputVolume.getGainLinear() != outputdB) outputVolume.setGainLinear (outputdB); + + dsp::IIR::Coefficients::Ptr newHighPassCoeffs, newLowPassCoeffs; + auto newSlopeType = slopeParam->getIndex(); + + if (newSlopeType == 0) + { + *lowPassFilter.state = *dsp::IIR::Coefficients::makeFirstOrderLowPass (getSampleRate(), lowPassFilterFreqParam->get()); + *highPassFilter.state = *dsp::IIR::Coefficients::makeFirstOrderHighPass (getSampleRate(), highPassFilterFreqParam->get()); + } + else + { + *lowPassFilter.state = *dsp::IIR::Coefficients::makeLowPass (getSampleRate(), lowPassFilterFreqParam->get()); + *highPassFilter.state = *dsp::IIR::Coefficients::makeHighPass (getSampleRate(), highPassFilterFreqParam->get()); + } + + //============================================================================== + auto type = cabinetTypeParam->getIndex(); + auto currentType = cabinetType.get(); + + if (type != currentType) + { + cabinetType.set(type); + + auto maxSize = static_cast (roundDoubleToInt (8192 * getSampleRate() / 44100)); + + if (type == 0) + convolution.loadImpulseResponse (BinaryData::Impulse1_wav, BinaryData::Impulse1_wavSize, false, maxSize); + else + convolution.loadImpulseResponse (BinaryData::Impulse2_wav, BinaryData::Impulse2_wavSize, false, maxSize); + } + + cabinetIsBypassed = ! cabinetSimParam->get(); +} + +//============================================================================== +// This creates new instances of the plugin.. +AudioProcessor* JUCE_CALLTYPE createPluginFilter() +{ + return new DspModulePluginDemoAudioProcessor(); +} diff --git a/examples/DSP module plugin demo/Source/PluginProcessor.h b/examples/DSP module plugin demo/Source/PluginProcessor.h new file mode 100644 index 0000000000..2a8fd42ef0 --- /dev/null +++ b/examples/DSP module plugin demo/Source/PluginProcessor.h @@ -0,0 +1,111 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2017 - ROLI Ltd. + + JUCE is an open source library subject to commercial or open-source + licensing. + + By using JUCE, you agree to the terms of both the JUCE 5 End-User License + Agreement and JUCE 5 Privacy Policy (both updated and effective as of the + 27th April 2017). + + End User License Agreement: www.juce.com/juce-5-licence + Privacy Policy: www.juce.com/juce-5-privacy-policy + + Or: You may also use this code under the terms of the GPL v3 (see + www.gnu.org/licenses). + + JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +#pragma once + +#include "../JuceLibraryCode/JuceHeader.h" + + +//============================================================================== +/** + This class handles the audio processing for the DSP module plugin demo. +*/ +class DspModulePluginDemoAudioProcessor : public AudioProcessor +{ +public: + //============================================================================== + DspModulePluginDemoAudioProcessor(); + ~DspModulePluginDemoAudioProcessor(); + + //============================================================================== + #ifndef JucePlugin_PreferredChannelConfigurations + bool isBusesLayoutSupported (const BusesLayout& layouts) const override; + #endif + void prepareToPlay (double sampleRate, int samplesPerBlock) override; + void releaseResources() override; + void processBlock (AudioSampleBuffer&, MidiBuffer&) override; + void reset() override; + + //============================================================================== + bool hasEditor() const override; + AudioProcessorEditor* createEditor() override; + + //============================================================================== + bool acceptsMidi() const override; + bool producesMidi() const override; + + const String getName() const override { return JucePlugin_Name; } + double getTailLengthSeconds() const override { return 0.0; } + + //============================================================================== + int getNumPrograms() override { return 1; } + int getCurrentProgram() override { return 0; } + void setCurrentProgram (int /*index*/) override {} + const String getProgramName (int /*index*/) override { return {}; } + void changeProgramName (int /*index*/, const String& /*newName*/) override {} + + //============================================================================== + void getStateInformation (MemoryBlock& /*destData*/) override {} + void setStateInformation (const void* /*data*/, int /*sizeInBytes*/) override {} + + //============================================================================== + void updateParameters(); + + static inline float clip(float x) { return jmax(-1.f, jmin(1.f, x)); } + + //============================================================================== + AudioParameterFloat* inputVolumeParam; + AudioParameterFloat* outputVolumeParam; + AudioParameterFloat* lowPassFilterFreqParam; + AudioParameterFloat* highPassFilterFreqParam; + + AudioParameterChoice* stereoParam; + AudioParameterChoice* slopeParam; + AudioParameterChoice* waveshaperParam; + AudioParameterChoice* cabinetTypeParam; + + AudioParameterBool* cabinetSimParam; + +private: + //============================================================================== + void process (dsp::ProcessContextReplacing) noexcept; + + //============================================================================== + dsp::ProcessorDuplicator, dsp::IIR::Coefficients> lowPassFilter, highPassFilter; + dsp::Convolution convolution; + + static constexpr size_t numWaveShapers = 2; + dsp::WaveShaper waveShapers[numWaveShapers]; + dsp::WaveShaper clipping; + + dsp::Gain inputVolume, outputVolume; + + Atomic cabinetType; + bool cabinetIsBypassed = false; + + //============================================================================== + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (DspModulePluginDemoAudioProcessor) +}; diff --git a/examples/DSPDemo/Builds/LinuxMakefile/Makefile b/examples/DSPDemo/Builds/LinuxMakefile/Makefile new file mode 100644 index 0000000000..8710d489d7 --- /dev/null +++ b/examples/DSPDemo/Builds/LinuxMakefile/Makefile @@ -0,0 +1,237 @@ +# Automatically generated makefile, created by the Projucer +# Don't edit this file! Your changes will be overwritten when you re-save the Projucer project! + +# build with "V=1" for verbose builds +ifeq ($(V), 1) +V_AT = +else +V_AT = @ +endif + +# (this disables dependency generation if multiple architectures are set) +DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD) + +ifndef STRIP + STRIP=strip +endif + +ifndef AR + AR=ar +endif + +ifndef CONFIG + CONFIG=Debug +endif + +ifeq ($(CONFIG),Debug) + JUCE_BINDIR := build + JUCE_LIBDIR := build + JUCE_OBJDIR := build/intermediate/Debug + JUCE_OUTDIR := build + + ifeq ($(TARGET_ARCH),) + TARGET_ARCH := -march=native + endif + + JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DDEBUG=1 -D_DEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS) + JUCE_CPPFLAGS_APP := -DJucePlugin_Build_VST=0 -DJucePlugin_Build_VST3=0 -DJucePlugin_Build_AU=0 -DJucePlugin_Build_AUv3=0 -DJucePlugin_Build_RTAS=0 -DJucePlugin_Build_AAX=0 -DJucePlugin_Build_Standalone=0 + JUCE_TARGET_APP := DSPDemo + + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 $(CFLAGS) + JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++14 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -ldl -lpthread -lrt $(LDFLAGS) + + CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) +endif + +ifeq ($(CONFIG),Release) + JUCE_BINDIR := build + JUCE_LIBDIR := build + JUCE_OBJDIR := build/intermediate/Release + JUCE_OUTDIR := build + + ifeq ($(TARGET_ARCH),) + TARGET_ARCH := -march=native + endif + + JUCE_CPPFLAGS := $(DEPFLAGS) -DLINUX=1 -DNDEBUG=1 -DJUCER_LINUX_MAKE_6D53C8B4=1 -DJUCE_APP_VERSION=1.0.0 -DJUCE_APP_VERSION_HEX=0x10000 $(shell pkg-config --cflags alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -pthread -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS) + JUCE_CPPFLAGS_APP := -DJucePlugin_Build_VST=0 -DJucePlugin_Build_VST3=0 -DJucePlugin_Build_AU=0 -DJucePlugin_Build_AUv3=0 -DJucePlugin_Build_RTAS=0 -DJucePlugin_Build_AAX=0 -DJucePlugin_Build_Standalone=0 + JUCE_TARGET_APP := DSPDemo + + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -O3 $(CFLAGS) + JUCE_CXXFLAGS += $(CXXFLAGS) $(JUCE_CFLAGS) -std=c++14 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) -fvisibility=hidden $(shell pkg-config --libs alsa freetype2 libcurl x11 xext xinerama webkit2gtk-4.0 gtk+-x11-3.0) -ldl -lpthread -lrt $(LDFLAGS) + + CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(TARGET) $(JUCE_OBJDIR) +endif + +OBJECTS_APP := \ + $(JUCE_OBJDIR)/ConvolutionDemo_ecad51bd.o \ + $(JUCE_OBJDIR)/FIRFilterDemo_8015eecc.o \ + $(JUCE_OBJDIR)/GainDemo_4b61ad6a.o \ + $(JUCE_OBJDIR)/IIRFilterDemo_721388cf.o \ + $(JUCE_OBJDIR)/OscillatorDemo_7470174b.o \ + $(JUCE_OBJDIR)/OverdriveDemo_4b48389b.o \ + $(JUCE_OBJDIR)/SIMDRegisterDemo_1f8435fb.o \ + $(JUCE_OBJDIR)/StateVariableFilterDemo_13f3202a.o \ + $(JUCE_OBJDIR)/WaveShaperTanhDemo_177657c.o \ + $(JUCE_OBJDIR)/Main_90ebc5c2.o \ + $(JUCE_OBJDIR)/MainComponent_a6ffb4a5.o \ + $(JUCE_OBJDIR)/BinaryData_ce4232d4.o \ + $(JUCE_OBJDIR)/include_juce_audio_basics_8a4e984a.o \ + $(JUCE_OBJDIR)/include_juce_audio_devices_63111d02.o \ + $(JUCE_OBJDIR)/include_juce_audio_formats_15f82001.o \ + $(JUCE_OBJDIR)/include_juce_audio_processors_10c03666.o \ + $(JUCE_OBJDIR)/include_juce_audio_utils_9f9fb2d6.o \ + $(JUCE_OBJDIR)/include_juce_core_f26d17db.o \ + $(JUCE_OBJDIR)/include_juce_data_structures_7471b1e3.o \ + $(JUCE_OBJDIR)/include_juce_dsp_aeb2060f.o \ + $(JUCE_OBJDIR)/include_juce_events_fd7d695.o \ + $(JUCE_OBJDIR)/include_juce_graphics_f817e147.o \ + $(JUCE_OBJDIR)/include_juce_gui_basics_e3f79785.o \ + $(JUCE_OBJDIR)/include_juce_gui_extra_6dee1c1a.o \ + +.PHONY: clean all + +all : $(JUCE_OUTDIR)/$(JUCE_TARGET_APP) + +$(JUCE_OUTDIR)/$(JUCE_TARGET_APP) : check-pkg-config $(OBJECTS_APP) $(RESOURCES) + @echo Linking "DSPDemo - App" + -$(V_AT)mkdir -p $(JUCE_BINDIR) + -$(V_AT)mkdir -p $(JUCE_LIBDIR) + -$(V_AT)mkdir -p $(JUCE_OUTDIR) + $(V_AT)$(CXX) -o $(JUCE_OUTDIR)/$(JUCE_TARGET_APP) $(OBJECTS_APP) $(JUCE_LDFLAGS) $(RESOURCES) $(TARGET_ARCH) + +$(JUCE_OBJDIR)/ConvolutionDemo_ecad51bd.o: ../../Source/Demos/ConvolutionDemo.cpp + -$(V_AT)mkdir -p $(JUCE_OBJDIR) + @echo "Compiling ConvolutionDemo.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/FIRFilterDemo_8015eecc.o: ../../Source/Demos/FIRFilterDemo.cpp + -$(V_AT)mkdir -p $(JUCE_OBJDIR) + @echo "Compiling FIRFilterDemo.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/GainDemo_4b61ad6a.o: ../../Source/Demos/GainDemo.cpp + -$(V_AT)mkdir -p $(JUCE_OBJDIR) + @echo "Compiling GainDemo.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/IIRFilterDemo_721388cf.o: ../../Source/Demos/IIRFilterDemo.cpp + -$(V_AT)mkdir -p $(JUCE_OBJDIR) + @echo "Compiling IIRFilterDemo.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/OscillatorDemo_7470174b.o: ../../Source/Demos/OscillatorDemo.cpp + -$(V_AT)mkdir -p $(JUCE_OBJDIR) + @echo "Compiling OscillatorDemo.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/OverdriveDemo_4b48389b.o: ../../Source/Demos/OverdriveDemo.cpp + -$(V_AT)mkdir -p $(JUCE_OBJDIR) + @echo "Compiling OverdriveDemo.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/SIMDRegisterDemo_1f8435fb.o: ../../Source/Demos/SIMDRegisterDemo.cpp + -$(V_AT)mkdir -p $(JUCE_OBJDIR) + @echo "Compiling SIMDRegisterDemo.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/StateVariableFilterDemo_13f3202a.o: ../../Source/Demos/StateVariableFilterDemo.cpp + -$(V_AT)mkdir -p $(JUCE_OBJDIR) + @echo "Compiling StateVariableFilterDemo.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/WaveShaperTanhDemo_177657c.o: ../../Source/Demos/WaveShaperTanhDemo.cpp + -$(V_AT)mkdir -p $(JUCE_OBJDIR) + @echo "Compiling WaveShaperTanhDemo.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/Main_90ebc5c2.o: ../../Source/Main.cpp + -$(V_AT)mkdir -p $(JUCE_OBJDIR) + @echo "Compiling Main.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/MainComponent_a6ffb4a5.o: ../../Source/MainComponent.cpp + -$(V_AT)mkdir -p $(JUCE_OBJDIR) + @echo "Compiling MainComponent.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/BinaryData_ce4232d4.o: ../../JuceLibraryCode/BinaryData.cpp + -$(V_AT)mkdir -p $(JUCE_OBJDIR) + @echo "Compiling BinaryData.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/include_juce_audio_basics_8a4e984a.o: ../../JuceLibraryCode/include_juce_audio_basics.cpp + -$(V_AT)mkdir -p $(JUCE_OBJDIR) + @echo "Compiling include_juce_audio_basics.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/include_juce_audio_devices_63111d02.o: ../../JuceLibraryCode/include_juce_audio_devices.cpp + -$(V_AT)mkdir -p $(JUCE_OBJDIR) + @echo "Compiling include_juce_audio_devices.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/include_juce_audio_formats_15f82001.o: ../../JuceLibraryCode/include_juce_audio_formats.cpp + -$(V_AT)mkdir -p $(JUCE_OBJDIR) + @echo "Compiling include_juce_audio_formats.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/include_juce_audio_processors_10c03666.o: ../../JuceLibraryCode/include_juce_audio_processors.cpp + -$(V_AT)mkdir -p $(JUCE_OBJDIR) + @echo "Compiling include_juce_audio_processors.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/include_juce_audio_utils_9f9fb2d6.o: ../../JuceLibraryCode/include_juce_audio_utils.cpp + -$(V_AT)mkdir -p $(JUCE_OBJDIR) + @echo "Compiling include_juce_audio_utils.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/include_juce_core_f26d17db.o: ../../JuceLibraryCode/include_juce_core.cpp + -$(V_AT)mkdir -p $(JUCE_OBJDIR) + @echo "Compiling include_juce_core.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/include_juce_data_structures_7471b1e3.o: ../../JuceLibraryCode/include_juce_data_structures.cpp + -$(V_AT)mkdir -p $(JUCE_OBJDIR) + @echo "Compiling include_juce_data_structures.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/include_juce_dsp_aeb2060f.o: ../../JuceLibraryCode/include_juce_dsp.cpp + -$(V_AT)mkdir -p $(JUCE_OBJDIR) + @echo "Compiling include_juce_dsp.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/include_juce_events_fd7d695.o: ../../JuceLibraryCode/include_juce_events.cpp + -$(V_AT)mkdir -p $(JUCE_OBJDIR) + @echo "Compiling include_juce_events.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/include_juce_graphics_f817e147.o: ../../JuceLibraryCode/include_juce_graphics.cpp + -$(V_AT)mkdir -p $(JUCE_OBJDIR) + @echo "Compiling include_juce_graphics.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/include_juce_gui_basics_e3f79785.o: ../../JuceLibraryCode/include_juce_gui_basics.cpp + -$(V_AT)mkdir -p $(JUCE_OBJDIR) + @echo "Compiling include_juce_gui_basics.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/include_juce_gui_extra_6dee1c1a.o: ../../JuceLibraryCode/include_juce_gui_extra.cpp + -$(V_AT)mkdir -p $(JUCE_OBJDIR) + @echo "Compiling include_juce_gui_extra.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<" + +check-pkg-config: + @command -v pkg-config >/dev/null 2>&1 || { echo >&2 "pkg-config not installed. Please, install it."; exit 1; } + @pkg-config --print-errors alsa freetype2 libcurl x11 xext xinerama + +clean: + @echo Cleaning DSPDemo + $(V_AT)$(CLEANCMD) + +strip: + @echo Stripping DSPDemo + -$(V_AT)$(STRIP) --strip-unneeded $(JUCE_OUTDIR)/$(TARGET) + +-include $(OBJECTS_APP:%.o=%.d) diff --git a/examples/DSPDemo/Builds/MacOSX/DSPDemo.xcodeproj/project.pbxproj b/examples/DSPDemo/Builds/MacOSX/DSPDemo.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..c314146997 --- /dev/null +++ b/examples/DSPDemo/Builds/MacOSX/DSPDemo.xcodeproj/project.pbxproj @@ -0,0 +1,329 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + + 36AB07C7F15CC24EC22DDB71 = {isa = PBXBuildFile; fileRef = E65A292C57D74320DBADF3E2; }; + 79F4B2BF7879680EBB5B7DBE = {isa = PBXBuildFile; fileRef = 36DC4FECDB1527A540528928; }; + A68C0210E63579CE6AC237AE = {isa = PBXBuildFile; fileRef = 1BFAE533720CF64A048D7594; }; + D63164D4982A647B45B1B35A = {isa = PBXBuildFile; fileRef = 58DFF90DB01544BBA2258FAB; }; + 18D32BCB58F415AB8B915AA6 = {isa = PBXBuildFile; fileRef = D99979809CF3183E9C3EC100; }; + 1FE90DECD30F20F4BD4194E5 = {isa = PBXBuildFile; fileRef = 90DFC174390DB5F49FFDB1C3; }; + 1751CA561F0C689757B48499 = {isa = PBXBuildFile; fileRef = 5F1E4007B8CA56A36AE2A9A8; }; + 67A0FE9B4C958E755BC59CB6 = {isa = PBXBuildFile; fileRef = 055A49508ABAEEB6B203913C; }; + 2007C473FC7B310FAC9120F4 = {isa = PBXBuildFile; fileRef = 1ED0F76740852AAD1E10E589; }; + DDFB4E2EE2BA04B969F91CD8 = {isa = PBXBuildFile; fileRef = 7499E560C79D2899AD1F7EBE; }; + 74DA94C93F0B9F6F8D839F90 = {isa = PBXBuildFile; fileRef = FBB548A1A4C624BDB2212536; }; + DD7CEC23CAF513B19FE69354 = {isa = PBXBuildFile; fileRef = 127F5D34AF2F6FA4D1B244DC; }; + 0997809708D0721BD5B82709 = {isa = PBXBuildFile; fileRef = 02D5C32B097EB318955BAD14; }; + 9762387BB6E55A9A677399FB = {isa = PBXBuildFile; fileRef = 02008353D342DBCDE2F8609B; }; + C9B89B4E158A2C0878062438 = {isa = PBXBuildFile; fileRef = 433721BDA52563DA31C80646; }; + 55620C4E4133FDC86B8704B1 = {isa = PBXBuildFile; fileRef = 9494DEB767CC845A1AD9510D; }; + 147AAD8BE104CA60D82AB311 = {isa = PBXBuildFile; fileRef = 73C765531A971ECA3611E9B1; }; + 75F224C245C8528EBDD957E3 = {isa = PBXBuildFile; fileRef = C4E50C6E6E839D2650538DA2; }; + 860CA02753C336CA6F388F70 = {isa = PBXBuildFile; fileRef = E38A058E16C077B756252A67; }; + 8FB76DEF9AAE508E909C56A3 = {isa = PBXBuildFile; fileRef = 8550A2CAE40095565F8C0AE7; }; + 58601BAE688B1B82AEEA70E8 = {isa = PBXBuildFile; fileRef = 5B02D5BBF8ED6F741B8A6736; }; + 5645E67DE7D9CAD8BB6E1D27 = {isa = PBXBuildFile; fileRef = 35D05B99E462B2B228EC8302; }; + 3170A9354DC65058A387FB9E = {isa = PBXBuildFile; fileRef = 76FBC8DE4524D88CD71A2461; }; + 22E67EE159B5A17C3433A056 = {isa = PBXBuildFile; fileRef = CC1412BBC06218A16A24D5A4; }; + 0EEC72FF172987931C7728A1 = {isa = PBXBuildFile; fileRef = 1237FB4903D3E53902BC2D21; }; + 2FDD63BBA0DF00FDCED31F8B = {isa = PBXBuildFile; fileRef = 4E84E303FA33538296AF0138; }; + 7F32243EF13DE189D0F72284 = {isa = PBXBuildFile; fileRef = BAAE01307738C55C74FB97E2; }; + ABC5C43FA079E18445EDE7EF = {isa = PBXBuildFile; fileRef = C763871EA0E8B2D27A2280D3; }; + 929CAC97D84394062CB24A6F = {isa = PBXBuildFile; fileRef = 9725B565F1BCF0BCF813CA46; }; + B12110B9A5093DE175B084AC = {isa = PBXBuildFile; fileRef = D897B337AD0AA5743A5AE97F; }; + 44AB7F89A1DFC43E3E52F3BA = {isa = PBXBuildFile; fileRef = CF8F7AC0FFFAB9596D5F8D0B; }; + 4C6ED9D462C6AE62D7368626 = {isa = PBXBuildFile; fileRef = D1A9F502AE4D8860C5CF4A42; }; + BD5C77C4C98509A304E1BC43 = {isa = PBXBuildFile; fileRef = 627259D3BE9B73D8080025B4; }; + A1AFAFF71FE3089042177336 = {isa = PBXBuildFile; fileRef = AFB76927D90CA4C02CA006C2; }; + 08D820C1B47703D5C153D6F2 = {isa = PBXBuildFile; fileRef = 1D39E703487A686D0BA870E8; }; + 04F96ABC48723FFD9346F815 = {isa = PBXBuildFile; fileRef = 0F18417C406C01C6F3750011; }; + 02008353D342DBCDE2F8609B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = FIRFilterDemo.cpp; path = ../../Source/Demos/FIRFilterDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 02D5C32B097EB318955BAD14 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ConvolutionDemo.cpp; path = ../../Source/Demos/ConvolutionDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 055A49508ABAEEB6B203913C = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiscRecording.framework; path = System/Library/Frameworks/DiscRecording.framework; sourceTree = SDKROOT; }; + 09466AA1FB1B2B54559499DA = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Info-App.plist"; path = "Info-App.plist"; sourceTree = "SOURCE_ROOT"; }; + 0AAE0DB1E291E8E839660B77 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../JuceLibraryCode/JuceHeader.h; sourceTree = "SOURCE_ROOT"; }; + 0D3E7AE6261F456BF8ED7336 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MainComponent.h; path = ../../Source/MainComponent.h; sourceTree = "SOURCE_ROOT"; }; + 0F18417C406C01C6F3750011 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_gui_extra.mm"; path = "../../JuceLibraryCode/include_juce_gui_extra.mm"; sourceTree = "SOURCE_ROOT"; }; + 1237FB4903D3E53902BC2D21 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_basics.mm"; path = "../../JuceLibraryCode/include_juce_audio_basics.mm"; sourceTree = "SOURCE_ROOT"; }; + 127F5D34AF2F6FA4D1B244DC = {isa = PBXFileReference; lastKnownFileType = file.nib; name = RecentFilesMenuTemplate.nib; path = RecentFilesMenuTemplate.nib; sourceTree = "SOURCE_ROOT"; }; + 173D0DF09B3C17C1F12DC07F = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_core"; path = "../../../../modules/juce_core"; sourceTree = "SOURCE_ROOT"; }; + 1BFAE533720CF64A048D7594 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + 1D39E703487A686D0BA870E8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_gui_basics.mm"; path = "../../JuceLibraryCode/include_juce_gui_basics.mm"; sourceTree = "SOURCE_ROOT"; }; + 1ED0F76740852AAD1E10E589 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; + 2007BEE2849103E59355B196 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_basics"; path = "../../../../modules/juce_audio_basics"; sourceTree = "SOURCE_ROOT"; }; + 203EB56F2769104DA12C0F26 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = ../../JuceLibraryCode/AppConfig.h; sourceTree = "SOURCE_ROOT"; }; + 35D05B99E462B2B228EC8302 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = Main.cpp; path = ../../Source/Main.cpp; sourceTree = "SOURCE_ROOT"; }; + 36DC4FECDB1527A540528928 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; + 3A4131AFD624A518DA9C7720 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_formats"; path = "../../../../modules/juce_audio_formats"; sourceTree = "SOURCE_ROOT"; }; + 433721BDA52563DA31C80646 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = GainDemo.cpp; path = ../../Source/Demos/GainDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 4B446DCE80088D0F1B98AB2A = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_dsp"; path = "../../../../modules/juce_dsp"; sourceTree = "SOURCE_ROOT"; }; + 4DD7BCF876946C02E151FA8E = {isa = PBXFileReference; lastKnownFileType = file.wav; name = "cassette_recorder.wav"; path = "../../Resources/cassette_recorder.wav"; sourceTree = "SOURCE_ROOT"; }; + 4E84E303FA33538296AF0138 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_devices.mm"; path = "../../JuceLibraryCode/include_juce_audio_devices.mm"; sourceTree = "SOURCE_ROOT"; }; + 58DFF90DB01544BBA2258FAB = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; }; + 5B02D5BBF8ED6F741B8A6736 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = WaveShaperTanhDemo.cpp; path = ../../Source/Demos/WaveShaperTanhDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 5F1E4007B8CA56A36AE2A9A8 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; }; + 627259D3BE9B73D8080025B4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_events.mm"; path = "../../JuceLibraryCode/include_juce_events.mm"; sourceTree = "SOURCE_ROOT"; }; + 63F62DCD7D32846A5E6AD643 = {isa = PBXFileReference; lastKnownFileType = file.wav; name = "guitar_amp.wav"; path = "../../Resources/guitar_amp.wav"; sourceTree = "SOURCE_ROOT"; }; + 671451B8F3E7EF14B54E4C85 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_data_structures"; path = "../../../../modules/juce_data_structures"; sourceTree = "SOURCE_ROOT"; }; + 6EE1CBD2012184BE1AC65B20 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = BinaryData.h; path = ../../JuceLibraryCode/BinaryData.h; sourceTree = "SOURCE_ROOT"; }; + 73C765531A971ECA3611E9B1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = OscillatorDemo.cpp; path = ../../Source/Demos/OscillatorDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 7499E560C79D2899AD1F7EBE = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + 76FBC8DE4524D88CD71A2461 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MainComponent.cpp; path = ../../Source/MainComponent.cpp; sourceTree = "SOURCE_ROOT"; }; + 8550A2CAE40095565F8C0AE7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = StateVariableFilterDemo.cpp; path = ../../Source/Demos/StateVariableFilterDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 89F22EF7FA61689A853B075C = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_events"; path = "../../../../modules/juce_events"; sourceTree = "SOURCE_ROOT"; }; + 90DFC174390DB5F49FFDB1C3 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; + 9201659302FE90E5E72B8BE1 = {isa = PBXFileReference; lastKnownFileType = file.xml; name = EditorColourScheme.xml; path = ../../Source/EditorColourScheme.xml; sourceTree = "SOURCE_ROOT"; }; + 9494DEB767CC845A1AD9510D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = IIRFilterDemo.cpp; path = ../../Source/Demos/IIRFilterDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + 9725B565F1BCF0BCF813CA46 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_utils.mm"; path = "../../JuceLibraryCode/include_juce_audio_utils.mm"; sourceTree = "SOURCE_ROOT"; }; + 98A1493C2F510FE4F7BADE6C = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_gui_extra"; path = "../../../../modules/juce_gui_extra"; sourceTree = "SOURCE_ROOT"; }; + ACF39BD78F6577BCE4870008 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Main.h; path = ../../Source/Main.h; sourceTree = "SOURCE_ROOT"; }; + AFB76927D90CA4C02CA006C2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_graphics.mm"; path = "../../JuceLibraryCode/include_juce_graphics.mm"; sourceTree = "SOURCE_ROOT"; }; + B54268B27C98348D707C2F96 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_processors"; path = "../../../../modules/juce_audio_processors"; sourceTree = "SOURCE_ROOT"; }; + BAAE01307738C55C74FB97E2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_formats.mm"; path = "../../JuceLibraryCode/include_juce_audio_formats.mm"; sourceTree = "SOURCE_ROOT"; }; + BBA410B4EF48CA0C81333CDA = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_utils"; path = "../../../../modules/juce_audio_utils"; sourceTree = "SOURCE_ROOT"; }; + C4E50C6E6E839D2650538DA2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = OverdriveDemo.cpp; path = ../../Source/Demos/OverdriveDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + C53B7CE0E5FAE95E9C5B6933 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_gui_basics"; path = "../../../../modules/juce_gui_basics"; sourceTree = "SOURCE_ROOT"; }; + C763871EA0E8B2D27A2280D3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_processors.mm"; path = "../../JuceLibraryCode/include_juce_audio_processors.mm"; sourceTree = "SOURCE_ROOT"; }; + CC1412BBC06218A16A24D5A4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = BinaryData.cpp; path = ../../JuceLibraryCode/BinaryData.cpp; sourceTree = "SOURCE_ROOT"; }; + CF8F7AC0FFFAB9596D5F8D0B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_data_structures.mm"; path = "../../JuceLibraryCode/include_juce_data_structures.mm"; sourceTree = "SOURCE_ROOT"; }; + D1A9F502AE4D8860C5CF4A42 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_dsp.mm"; path = "../../JuceLibraryCode/include_juce_dsp.mm"; sourceTree = "SOURCE_ROOT"; }; + D897B337AD0AA5743A5AE97F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_core.mm"; path = "../../JuceLibraryCode/include_juce_core.mm"; sourceTree = "SOURCE_ROOT"; }; + D99979809CF3183E9C3EC100 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; + E38A058E16C077B756252A67 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = SIMDRegisterDemo.cpp; path = ../../Source/Demos/SIMDRegisterDemo.cpp; sourceTree = "SOURCE_ROOT"; }; + E65A292C57D74320DBADF3E2 = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DSPDemo.app; sourceTree = "BUILT_PRODUCTS_DIR"; }; + EB69A35DA0426F3E08421471 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = DSPDemo.h; path = ../../Source/DSPDemo.h; sourceTree = "SOURCE_ROOT"; }; + F31891672A9861AD9B360E55 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_graphics"; path = "../../../../modules/juce_graphics"; sourceTree = "SOURCE_ROOT"; }; + F5F8A835861C4483A15017CD = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_devices"; path = "../../../../modules/juce_audio_devices"; sourceTree = "SOURCE_ROOT"; }; + FBB548A1A4C624BDB2212536 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; + 160A87BE152187F31E517F24 = {isa = PBXGroup; children = ( + 4DD7BCF876946C02E151FA8E, + 9201659302FE90E5E72B8BE1, + 63F62DCD7D32846A5E6AD643, ); name = Resources; sourceTree = ""; }; + DD4C2FA1894FB7738704E0E9 = {isa = PBXGroup; children = ( + 02D5C32B097EB318955BAD14, + 02008353D342DBCDE2F8609B, + 433721BDA52563DA31C80646, + 9494DEB767CC845A1AD9510D, + 73C765531A971ECA3611E9B1, + C4E50C6E6E839D2650538DA2, + E38A058E16C077B756252A67, + 8550A2CAE40095565F8C0AE7, + 5B02D5BBF8ED6F741B8A6736, ); name = Demos; sourceTree = ""; }; + 85DC2349B9F14ADA2668617A = {isa = PBXGroup; children = ( + 160A87BE152187F31E517F24, + DD4C2FA1894FB7738704E0E9, + EB69A35DA0426F3E08421471, + 35D05B99E462B2B228EC8302, + ACF39BD78F6577BCE4870008, + 76FBC8DE4524D88CD71A2461, + 0D3E7AE6261F456BF8ED7336, ); name = Source; sourceTree = ""; }; + 3F652360BD2B2419E340B88D = {isa = PBXGroup; children = ( + 85DC2349B9F14ADA2668617A, ); name = DSPDemo; sourceTree = ""; }; + 06C2216BF0064825FDFDA294 = {isa = PBXGroup; children = ( + 2007BEE2849103E59355B196, + F5F8A835861C4483A15017CD, + 3A4131AFD624A518DA9C7720, + B54268B27C98348D707C2F96, + BBA410B4EF48CA0C81333CDA, + 173D0DF09B3C17C1F12DC07F, + 671451B8F3E7EF14B54E4C85, + 4B446DCE80088D0F1B98AB2A, + 89F22EF7FA61689A853B075C, + F31891672A9861AD9B360E55, + C53B7CE0E5FAE95E9C5B6933, + 98A1493C2F510FE4F7BADE6C, ); name = "Juce Modules"; sourceTree = ""; }; + F5A65560641B925929FDA8EF = {isa = PBXGroup; children = ( + 203EB56F2769104DA12C0F26, + CC1412BBC06218A16A24D5A4, + 6EE1CBD2012184BE1AC65B20, + 1237FB4903D3E53902BC2D21, + 4E84E303FA33538296AF0138, + BAAE01307738C55C74FB97E2, + C763871EA0E8B2D27A2280D3, + 9725B565F1BCF0BCF813CA46, + D897B337AD0AA5743A5AE97F, + CF8F7AC0FFFAB9596D5F8D0B, + D1A9F502AE4D8860C5CF4A42, + 627259D3BE9B73D8080025B4, + AFB76927D90CA4C02CA006C2, + 1D39E703487A686D0BA870E8, + 0F18417C406C01C6F3750011, + 0AAE0DB1E291E8E839660B77, ); name = "Juce Library Code"; sourceTree = ""; }; + 728B8D1AF5E0A4CC87C837AE = {isa = PBXGroup; children = ( + 09466AA1FB1B2B54559499DA, + 127F5D34AF2F6FA4D1B244DC, ); name = Resources; sourceTree = ""; }; + B63B86F9F433095F2AC4ABA6 = {isa = PBXGroup; children = ( + 36DC4FECDB1527A540528928, + 1BFAE533720CF64A048D7594, + 58DFF90DB01544BBA2258FAB, + D99979809CF3183E9C3EC100, + 90DFC174390DB5F49FFDB1C3, + 5F1E4007B8CA56A36AE2A9A8, + 055A49508ABAEEB6B203913C, + 1ED0F76740852AAD1E10E589, + 7499E560C79D2899AD1F7EBE, + FBB548A1A4C624BDB2212536, ); name = Frameworks; sourceTree = ""; }; + B06D91A3358971D3BD4D83DF = {isa = PBXGroup; children = ( + E65A292C57D74320DBADF3E2, ); name = Products; sourceTree = ""; }; + 58576490CB5917F924F77F96 = {isa = PBXGroup; children = ( + 3F652360BD2B2419E340B88D, + 06C2216BF0064825FDFDA294, + F5A65560641B925929FDA8EF, + 728B8D1AF5E0A4CC87C837AE, + B63B86F9F433095F2AC4ABA6, + B06D91A3358971D3BD4D83DF, ); name = Source; sourceTree = ""; }; + 40ABF132098EAC342145CDE8 = {isa = XCBuildConfiguration; buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_LINK_OBJC_RUNTIME = NO; + COMBINE_HIDPI_IMAGES = YES; + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_DEBUG=1", + "DEBUG=1", + "JUCER_XCODE_MAC_F6D2F4CF=1", + "JUCE_APP_VERSION=1.0.0", + "JUCE_APP_VERSION_HEX=0x10000", + "JucePlugin_Build_VST=0", + "JucePlugin_Build_VST3=0", + "JucePlugin_Build_AU=0", + "JucePlugin_Build_AUv3=0", + "JucePlugin_Build_RTAS=0", + "JucePlugin_Build_AAX=0", + "JucePlugin_Build_Standalone=0", ); + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "$(inherited)"); + INFOPLIST_FILE = Info-App.plist; + INFOPLIST_PREPROCESS = NO; + INSTALL_PATH = "$(HOME)/Applications"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; + OTHER_CPLUSPLUSFLAGS = "-pedantic-errors -Wreorder -Wconstant-conversion -Wint-conversion -Woverloaded-virtual -Wuninitialized -Wunused-parameter -Wshorten-64-to-32 -Wstrict-aliasing -Wshadow -Wconversion -Wsign-compare -Wsign-conversion"; + PRODUCT_BUNDLE_IDENTIFIER = com.roli.DSPDemo; + SDKROOT_ppc = macosx10.5; + USE_HEADERMAP = NO; }; name = Debug; }; + 0BA7559B9A8E7D07DD66DBDE = {isa = XCBuildConfiguration; buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_LINK_OBJC_RUNTIME = NO; + COMBINE_HIDPI_IMAGES = YES; + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; + DEAD_CODE_STRIPPING = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_NDEBUG=1", + "NDEBUG=1", + "JUCER_XCODE_MAC_F6D2F4CF=1", + "JUCE_APP_VERSION=1.0.0", + "JUCE_APP_VERSION_HEX=0x10000", + "JucePlugin_Build_VST=0", + "JucePlugin_Build_VST3=0", + "JucePlugin_Build_AU=0", + "JucePlugin_Build_AUv3=0", + "JucePlugin_Build_RTAS=0", + "JucePlugin_Build_AAX=0", + "JucePlugin_Build_Standalone=0", ); + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "$(inherited)"); + INFOPLIST_FILE = Info-App.plist; + INFOPLIST_PREPROCESS = NO; + INSTALL_PATH = "$(HOME)/Applications"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; + OTHER_CPLUSPLUSFLAGS = "-pedantic-errors -Wreorder -Wconstant-conversion -Wint-conversion -Woverloaded-virtual -Wuninitialized -Wunused-parameter -Wshorten-64-to-32 -Wstrict-aliasing -Wshadow -Wconversion -Wsign-compare -Wsign-conversion"; + PRODUCT_BUNDLE_IDENTIFIER = com.roli.DSPDemo; + SDKROOT_ppc = macosx10.5; + USE_HEADERMAP = NO; }; name = Release; }; + 09801068C2D3FD5A61F113BD = {isa = XCBuildConfiguration; buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf"; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = c11; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + GCC_MODEL_TUNING = G5; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; + GCC_WARN_MISSING_PARENTHESES = YES; + GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; + GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "DSPDemo"; + WARNING_CFLAGS = -Wreorder; + ZERO_LINK = NO; }; name = Debug; }; + 4FDDF0840945A67C7655214D = {isa = XCBuildConfiguration; buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf"; + GCC_C_LANGUAGE_STANDARD = c11; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + GCC_MODEL_TUNING = G5; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; + GCC_WARN_MISSING_PARENTHESES = YES; + GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; + GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PRODUCT_NAME = "DSPDemo"; + WARNING_CFLAGS = -Wreorder; + ZERO_LINK = NO; }; name = Release; }; + C3E80ACFE5F9FDDAB1E06E72 = {isa = PBXTargetDependency; target = F242499B02B0F20F4BC2A204; }; + EA0FBD36E6392D1EACC6E6D0 = {isa = XCConfigurationList; buildConfigurations = ( + 09801068C2D3FD5A61F113BD, + 4FDDF0840945A67C7655214D, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + 39418CAC1E6EC80E233DC4FC = {isa = XCConfigurationList; buildConfigurations = ( + 40ABF132098EAC342145CDE8, + 0BA7559B9A8E7D07DD66DBDE, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + BED42A90D1C7884760EE4C47 = {isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + DD7CEC23CAF513B19FE69354, ); runOnlyForDeploymentPostprocessing = 0; }; + 5EBE0F675FD5F7A6E27DDE6F = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 0997809708D0721BD5B82709, + 9762387BB6E55A9A677399FB, + C9B89B4E158A2C0878062438, + 55620C4E4133FDC86B8704B1, + 147AAD8BE104CA60D82AB311, + 75F224C245C8528EBDD957E3, + 860CA02753C336CA6F388F70, + 8FB76DEF9AAE508E909C56A3, + 58601BAE688B1B82AEEA70E8, + 5645E67DE7D9CAD8BB6E1D27, + 3170A9354DC65058A387FB9E, + 22E67EE159B5A17C3433A056, + 0EEC72FF172987931C7728A1, + 2FDD63BBA0DF00FDCED31F8B, + 7F32243EF13DE189D0F72284, + ABC5C43FA079E18445EDE7EF, + 929CAC97D84394062CB24A6F, + B12110B9A5093DE175B084AC, + 44AB7F89A1DFC43E3E52F3BA, + 4C6ED9D462C6AE62D7368626, + BD5C77C4C98509A304E1BC43, + A1AFAFF71FE3089042177336, + 08D820C1B47703D5C153D6F2, + 04F96ABC48723FFD9346F815, ); runOnlyForDeploymentPostprocessing = 0; }; + F866D841CA0AD769D1DD706C = {isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 79F4B2BF7879680EBB5B7DBE, + A68C0210E63579CE6AC237AE, + D63164D4982A647B45B1B35A, + 18D32BCB58F415AB8B915AA6, + 1FE90DECD30F20F4BD4194E5, + 1751CA561F0C689757B48499, + 67A0FE9B4C958E755BC59CB6, + 2007C473FC7B310FAC9120F4, + DDFB4E2EE2BA04B969F91CD8, + 74DA94C93F0B9F6F8D839F90, ); runOnlyForDeploymentPostprocessing = 0; }; + F242499B02B0F20F4BC2A204 = {isa = PBXNativeTarget; buildConfigurationList = 39418CAC1E6EC80E233DC4FC; buildPhases = ( + BED42A90D1C7884760EE4C47, + 5EBE0F675FD5F7A6E27DDE6F, + F866D841CA0AD769D1DD706C, ); buildRules = ( ); dependencies = ( ); name = "DSPDemo - App"; productName = DSPDemo; productReference = E65A292C57D74320DBADF3E2; productType = "com.apple.product-type.application"; }; + C80D6F4D84A23D8254630291 = {isa = PBXProject; buildConfigurationList = EA0FBD36E6392D1EACC6E6D0; attributes = { LastUpgradeCheck = 0830; TargetAttributes = { F242499B02B0F20F4BC2A204 = { SystemCapabilities = {com.apple.ApplicationGroups.iOS = { enabled = 0; }; com.apple.InAppPurchase = { enabled = 0; }; com.apple.InterAppAudio = { enabled = 0; }; com.apple.Push = { enabled = 0; }; com.apple.Sandbox = { enabled = 0; }; }; }; }; }; compatibilityVersion = "Xcode 3.2"; hasScannedForEncodings = 0; mainGroup = 58576490CB5917F924F77F96; projectDirPath = ""; projectRoot = ""; targets = (F242499B02B0F20F4BC2A204); }; + }; + rootObject = C80D6F4D84A23D8254630291; +} diff --git a/examples/DSPDemo/Builds/MacOSX/Info-App.plist b/examples/DSPDemo/Builds/MacOSX/Info-App.plist new file mode 100644 index 0000000000..842b06a635 --- /dev/null +++ b/examples/DSPDemo/Builds/MacOSX/Info-App.plist @@ -0,0 +1,29 @@ + + + + + + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleName + DSPDemo + CFBundleDisplayName + DSPDemo + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0.0 + CFBundleVersion + 1.0.0 + NSHumanReadableCopyright + ROLI Ltd. + NSHighResolutionCapable + + + diff --git a/examples/DSPDemo/Builds/MacOSX/RecentFilesMenuTemplate.nib b/examples/DSPDemo/Builds/MacOSX/RecentFilesMenuTemplate.nib new file mode 100644 index 0000000000000000000000000000000000000000..cec7f7c72bb7b287e0d493d53b0c487866ed6038 GIT binary patch literal 2842 zcmai03v3kE6}|7xy!Xa&z`M5b4;%lM&tmWg|D6Ew7aQ2M@%n>tur*!}uy{Yt&e%Yj z!V5{9M2(VAB|&M`7EBWqMJYm*Qk147ZPe1JqQtSlrHBH7I0T_IjZ#F@)_t?%Ee=It zN7~t$ckeyto_pVY+c)U<=|*AUI3U0vfeZvFDn(`M9m85!_l1J%9ihIhn%B^~9BSCR z#V203IgHR?JfM+%hit2XfdZM33l3Ne`LGO1p%PYu3*68FouI-XJOW|Z2HRl=JO&&d zhbQ3$coFu%%kV0U!U6axya8{)&*3Qi0*=GG@E)9mKfr1D5GLTya1k!SWw;8Tz^8Bv z#i9%}4`re(l#OywE^?sxXaQP?79l5EjPlSDRDhPXJAy-g|6d>m?t@skA7;U9hyxqg zAs!MS5#~S=Btr_MLK@74bjW~=UYpJB>G0{kKEKxK3-*V$=^NdiW-IkI+77+L?P(2# zjEBWbU%%d=`iC^V!{PO-y1v1BXIcrL+E6ek^b*qPy|%dj#jrejZK-Zgwb!fZ0?Ft1 z89S!ULt$Z^e8-xJWJdjeuiG3r;V~TZa^A$tIOC;!6>sE?VWu%!dWA5EgB)G6@Q+_0~^K?-8y;x)BOkDvSy{=lWhr{ZQ15gGP z;OrD+%}2|n3LfAkKZ6HhIjn${@DNl(4b(y%)I$TTf<|cK_woDrQXa<_@>HJA=kaWw z%k#LC7w~0KMb-)xV!x@vI5dlFT3{Wtf(P25U5Mt=fYA2|)`3%3tXY&QT zh|lV(cB#IgX%)?M5LB%O3Eae3g&<9@V7f2dxg3SVLi^yav z41ga35QI>#&F=Pya@RjH7ukjfz9|JYZG%QTR?|*H}#w^&f>t!FfCQP8jBMcrs6j zn3_={EIo#5XjYir@PtUpTru??h27vh2TuvHM(&X7X(3q6Hza#rv}1K-s|kTTLwx}e zgwGX~pUzw)oz~Xi^J_i2wP+bveH1D9I{3aQ_wzhMR5UGG#l2kF54C*W-6{M)P^c3m zZdYwT&k|jhZYeGBGP|1xwP04O=GB769k93i>@@*=5ccyN0X?5*M#0}S!RvYM-CCt? z2Ivt187Zv*bZn^gYic;l6tLHp)N5AK#I6f@hlC!6ZZ23#AA?^`_tPjG1LxgPW;W!B z88R+vtMB(2XYZ)UOzYpzuwLBJ5DEuW<6a1Vn&Gpgt;45nyO+n=86No^)}a12R)3vg zU)a{D`3Jj&LNm9nIVG=%nNTdYQ$r|dxYVH7W?@UQ3YZ)<2a#2vD)`JCKuO|SK7B<; zkoBA-1~C?h))gH=))S7#_?nj-vc-uQ-!{nby+&CcRH0dsNN6^SLpEeb@hAZ$qB$rD zC8HFSiqggI%~8 zx8N?k2?wx_AHzHGF8mDMi+_w?$A|D?d*2`4pWg6Sed~ARjY?$q3ud*Mq zAF-dX{p<~N5j6 literal 0 HcmV?d00001 diff --git a/examples/DSPDemo/Builds/VisualStudio2017/DSPDemo.sln b/examples/DSPDemo/Builds/VisualStudio2017/DSPDemo.sln new file mode 100644 index 0000000000..b5cc4635f0 --- /dev/null +++ b/examples/DSPDemo/Builds/VisualStudio2017/DSPDemo.sln @@ -0,0 +1,20 @@ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2017 + +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DSPDemo - App", "DSPDemo_App.vcxproj", "{81B1BE31-AC38-E79E-A3F8-F3100611ECD3}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {81B1BE31-AC38-E79E-A3F8-F3100611ECD3}.Debug|x64.ActiveCfg = Debug|x64 + {81B1BE31-AC38-E79E-A3F8-F3100611ECD3}.Debug|x64.Build.0 = Debug|x64 + {81B1BE31-AC38-E79E-A3F8-F3100611ECD3}.Release|x64.ActiveCfg = Release|x64 + {81B1BE31-AC38-E79E-A3F8-F3100611ECD3}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner_ConsoleApp.vcxproj b/examples/DSPDemo/Builds/VisualStudio2017/DSPDemo_App.vcxproj similarity index 88% rename from extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner_ConsoleApp.vcxproj rename to examples/DSPDemo/Builds/VisualStudio2017/DSPDemo_App.vcxproj index f10b2f2bb0..cd4b74ec41 100644 --- a/extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner_ConsoleApp.vcxproj +++ b/examples/DSPDemo/Builds/VisualStudio2017/DSPDemo_App.vcxproj @@ -1,37 +1,40 @@ - + Debug - Win32 + x64 - + Release - Win32 + x64 - {8059D6DB-7FA3-D129-4ADE-B3C1A560027C} - v140 - 8.1 + {81B1BE31-AC38-E79E-A3F8-F3100611ECD3} + v141 + 10.0.15063.0 - Application false - v140 - 8.1 + v141 + v141 + 10.0.15063.0 - Application false - v140 - 8.1 + true + v141 + v141 + 10.0.15063.0 @@ -41,24 +44,24 @@ Label="LocalAppDataPlatform"/> - v140 - 8.1 + v141 + 10.0.15063.0 <_ProjectFileVersion>10.0.30319.1 .exe - $(SolutionDir)$(Platform)\$(Configuration)\ConsoleApp\ - $(Platform)\$(Configuration)\ConsoleApp\ - UnitTestRunner - true - $(SolutionDir)$(Platform)\$(Configuration)\ConsoleApp\ - $(Platform)\$(Configuration)\ConsoleApp\ - UnitTestRunner - true - v140 - 8.1 + $(SolutionDir)$(Platform)\$(Configuration)\App\ + $(Platform)\$(Configuration)\App\ + DSPDemo + true + $(SolutionDir)$(Platform)\$(Configuration)\App\ + $(Platform)\$(Configuration)\App\ + DSPDemo + true + v141 + 10.0.15063.0 - + _DEBUG;%(PreprocessorDefinitions) true @@ -68,9 +71,9 @@ Disabled - EditAndContinue + ProgramDatabase ..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_WARNINGS;_CONSOLE;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCE_UNIT_TESTS=1;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;%(PreprocessorDefinitions) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;%(PreprocessorDefinitions) MultiThreadedDebug true @@ -80,29 +83,26 @@ Level4 true true - true stdcpp14 _DEBUG;%(PreprocessorDefinitions) - $(OutDir)\UnitTestRunner.exe + $(OutDir)\DSPDemo.exe true libcmt.lib; msvcrt.lib;;%(IgnoreSpecificDefaultLibraries) true - $(IntDir)\UnitTestRunner.pdb - Console - MachineX86 - false + $(IntDir)\DSPDemo.pdb + Windows true true - $(IntDir)\UnitTestRunner.bsc + $(IntDir)\DSPDemo.bsc - + NDEBUG;%(PreprocessorDefinitions) true @@ -113,7 +113,7 @@ Full ..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_WARNINGS;_CONSOLE;WIN32;_WINDOWS;NDEBUG;JUCE_UNIT_TESTS=1;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;%(PreprocessorDefinitions) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;%(PreprocessorDefinitions) MultiThreaded true @@ -123,31 +123,39 @@ Level4 true true - true stdcpp14 NDEBUG;%(PreprocessorDefinitions) - $(OutDir)\UnitTestRunner.exe + $(OutDir)\DSPDemo.exe true %(IgnoreSpecificDefaultLibraries) false - $(IntDir)\UnitTestRunner.pdb - Console - MachineX86 + $(IntDir)\DSPDemo.pdb + Windows true true true true - $(IntDir)\UnitTestRunner.bsc + $(IntDir)\DSPDemo.bsc + + + + + + + + + + true @@ -160,9 +168,6 @@ true - - true - true @@ -223,6 +228,9 @@ true + + true + true @@ -568,24 +576,6 @@ true - - true - - - true - - - true - - - true - - - true - - - true - true @@ -871,27 +861,6 @@ true - - true - - - true - - - true - - - true - - - true - - - true - - - true - true @@ -916,6 +885,57 @@ true + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + true @@ -1714,103 +1734,24 @@ true - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - + - - + - - - - + + + @@ -1818,7 +1759,6 @@ - @@ -1842,6 +1782,7 @@ + @@ -2001,29 +1942,6 @@ - - - - - - - - - - - - - - - - - - - - - - - @@ -2155,13 +2073,6 @@ - - - - - - - @@ -2171,6 +2082,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2410,60 +2349,16 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - diff --git a/extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner_ConsoleApp.vcxproj.filters b/examples/DSPDemo/Builds/VisualStudio2017/DSPDemo_App.vcxproj.filters similarity index 88% rename from extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner_ConsoleApp.vcxproj.filters rename to examples/DSPDemo/Builds/VisualStudio2017/DSPDemo_App.vcxproj.filters index bb7eca2df7..08ed83cf55 100644 --- a/extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner_ConsoleApp.vcxproj.filters +++ b/examples/DSPDemo/Builds/VisualStudio2017/DSPDemo_App.vcxproj.filters @@ -1,12 +1,18 @@ - + - - {C4DA93DE-FC1C-C4F1-591F-C92F838860C3} + + {6E87B141-F5A2-7EC7-13E0-7D063D2C466A} - - {D8F766C2-4389-8396-EB11-0E281B84E2C8} + + {8F075350-0D61-7DD2-38A4-2FD8F17A4E75} + + + {8326FF16-2AF2-A979-836B-91F96AA889BE} + + + {41377A6E-A475-CF34-9C12-DEAF77A125AF} {52045BA8-DF89-5074-688D-A0977F25B09C} @@ -131,24 +137,6 @@ {B63F69FD-8A40-8E1E-E7ED-419B8DC1C12B} - - {F00B1208-CE3A-EE5C-C33C-9A016BAD5E70} - - - {31632996-AC68-BCF8-B244-110FC6087A6E} - - - {65A9A26C-02FC-34D8-BEAC-C30A1E255B44} - - - {F61978A2-275C-CD64-3724-AE5945CB8970} - - - {3BF28565-4A19-23EA-96D6-910B5646D6B9} - - - {DFA2DC59-3B2E-1F2A-8661-79D25C3D7F1B} - {0608ADE9-66EF-1A19-6D57-12D07F76EB53} @@ -206,15 +194,6 @@ {95CA1506-2B94-0DEE-0C8D-85EDEBBC4E88} - - {7703D2CE-C32A-936A-0EEF-949FE6E52EB5} - - - {8D283B6C-13BA-9EF6-1B18-B1C393786943} - - - {3C7C8F35-6C08-9866-6663-6FEFE2EFC9FC} - {358AEA11-3F96-36AE-7B32-71373B5C5396} @@ -227,6 +206,27 @@ {928D8FCC-5E00-174B-6538-93E8D75AB396} + + {5E662F89-AD8B-D0D6-9BB6-D42DCFC3C38B} + + + {D272EE9B-CA6A-186E-1C62-0DF893C7A34E} + + + {5C139EFD-6DD2-83E0-C013-24CC03428D81} + + + {03DBA258-F2EF-EC1D-5A86-2CEE402FE021} + + + {8EE92EFE-883B-A2FA-161D-94AC912BF1DE} + + + {16B24975-5792-03FC-64A8-D04E59D077E1} + + + {362ADBDB-6FDF-5BD4-9F06-0A0270832F67} + {B098BC87-3298-7E6B-12DC-D26C09CDCAED} @@ -353,45 +353,6 @@ {8EC9572F-3CCA-E930-74B6-CB6139DE0E17} - - {B3141847-8F13-F67D-45B2-E3ECF6E09088} - - - {151B49D8-6102-F802-1C07-D59931BC0574} - - - {2D8D0E19-E676-83EB-38D9-F73500DD6B79} - - - {9E586194-C056-101C-5311-F2AF5191AC80} - - - {639E16C5-DA8B-ADBA-6E24-7B596378EAB2} - - - {3D19F603-7985-B222-DFDA-9B83329ACA9D} - - - {1A62F82C-C14A-E14A-94DE-8A27E0F8A090} - - - {802F7556-25D6-FBCE-3D15-32F3E1E65513} - - - {2ECAF0DC-881F-89B5-FBAD-78FDEE1907FB} - - - {7F11E7D2-54C0-2A36-5F15-BEC0A5374A08} - - - {EE985DEA-CD83-8132-7219-542BB1DAD560} - - - {0E43EA8A-95EE-4253-E1B7-160F38ACBB00} - - - {72A923E2-C729-DB92-D7BF-A9D4AFAE5896} - {422C46B7-0467-2DB0-BF3C-16DFCAFD69AC} @@ -400,8 +361,38 @@ + + DSPDemo\Source\Demos + + + DSPDemo\Source\Demos + + + DSPDemo\Source\Demos + + + DSPDemo\Source\Demos + + + DSPDemo\Source\Demos + + + DSPDemo\Source\Demos + + + DSPDemo\Source\Demos + + + DSPDemo\Source\Demos + + + DSPDemo\Source\Demos + - UnitTestRunner\Source + DSPDemo\Source + + + DSPDemo\Source Juce Modules\juce_audio_basics\buffers @@ -415,9 +406,6 @@ Juce Modules\juce_audio_basics\effects - - Juce Modules\juce_audio_basics\effects - Juce Modules\juce_audio_basics\effects @@ -478,6 +466,9 @@ Juce Modules\juce_audio_basics\sources + + Juce Modules\juce_audio_basics\sources + Juce Modules\juce_audio_basics\sources @@ -853,24 +844,6 @@ Juce Modules\juce_audio_utils - - Juce Modules\juce_blocks_basics\blocks - - - Juce Modules\juce_blocks_basics\topology - - - Juce Modules\juce_blocks_basics\topology - - - Juce Modules\juce_blocks_basics\visualisers - - - Juce Modules\juce_blocks_basics\visualisers - - - Juce Modules\juce_blocks_basics - Juce Modules\juce_core\containers @@ -1174,30 +1147,6 @@ Juce Modules\juce_core - - Juce Modules\juce_cryptography\encryption - - - Juce Modules\juce_cryptography\encryption - - - Juce Modules\juce_cryptography\encryption - - - Juce Modules\juce_cryptography\hashing - - - Juce Modules\juce_cryptography\hashing - - - Juce Modules\juce_cryptography\hashing - - - Juce Modules\juce_cryptography - - - Juce Modules\juce_cryptography - Juce Modules\juce_data_structures\app_properties @@ -1225,6 +1174,60 @@ Juce Modules\juce_data_structures + + Juce Modules\juce_dsp\containers + + + Juce Modules\juce_dsp\filter_design + + + Juce Modules\juce_dsp\frequency + + + Juce Modules\juce_dsp\frequency + + + Juce Modules\juce_dsp\frequency + + + Juce Modules\juce_dsp\frequency + + + Juce Modules\juce_dsp\maths + + + Juce Modules\juce_dsp\maths + + + Juce Modules\juce_dsp\maths + + + Juce Modules\juce_dsp\maths + + + Juce Modules\juce_dsp\native + + + Juce Modules\juce_dsp\native + + + Juce Modules\juce_dsp\native + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp + + + Juce Modules\juce_dsp + Juce Modules\juce_events\broadcasters @@ -2080,89 +2083,8 @@ Juce Modules\juce_gui_extra - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\utils - - - Juce Modules\juce_opengl - - - Juce Modules\juce_opengl - - - Juce Modules\juce_osc\osc - - - Juce Modules\juce_osc\osc - - - Juce Modules\juce_osc\osc - - - Juce Modules\juce_osc\osc - - - Juce Modules\juce_osc\osc - - - Juce Modules\juce_osc\osc - - - Juce Modules\juce_osc\osc - - - Juce Modules\juce_osc\osc - - - Juce Modules\juce_osc - - - Juce Modules\juce_product_unlocking\marketplace - - - Juce Modules\juce_product_unlocking\marketplace - - - Juce Modules\juce_product_unlocking\marketplace - - - Juce Modules\juce_product_unlocking - - - Juce Modules\juce_video\capture - - - Juce Modules\juce_video\playback - - - Juce Modules\juce_video - - - Juce Modules\juce_video + + Juce Library Code Juce Library Code @@ -2179,16 +2101,13 @@ Juce Library Code - - Juce Library Code - Juce Library Code - + Juce Library Code - + Juce Library Code @@ -2203,20 +2122,17 @@ Juce Library Code - - Juce Library Code - - - Juce Library Code - - - Juce Library Code - - - Juce Library Code - + + DSPDemo\Source + + + DSPDemo\Source + + + DSPDemo\Source + Juce Modules\juce_audio_basics\audio_play_head @@ -2238,9 +2154,6 @@ Juce Modules\juce_audio_basics\effects - - Juce Modules\juce_audio_basics\effects - Juce Modules\juce_audio_basics\effects @@ -2310,6 +2223,9 @@ Juce Modules\juce_audio_basics\sources + + Juce Modules\juce_audio_basics\sources + Juce Modules\juce_audio_basics\sources @@ -2787,75 +2703,6 @@ Juce Modules\juce_audio_utils - - Juce Modules\juce_blocks_basics\blocks - - - Juce Modules\juce_blocks_basics\blocks - - - Juce Modules\juce_blocks_basics\blocks - - - Juce Modules\juce_blocks_basics\blocks - - - Juce Modules\juce_blocks_basics\blocks - - - Juce Modules\juce_blocks_basics\blocks - - - Juce Modules\juce_blocks_basics\blocks - - - Juce Modules\juce_blocks_basics\blocks - - - Juce Modules\juce_blocks_basics\littlefoot - - - Juce Modules\juce_blocks_basics\littlefoot - - - Juce Modules\juce_blocks_basics\littlefoot - - - Juce Modules\juce_blocks_basics\protocol - - - Juce Modules\juce_blocks_basics\protocol - - - Juce Modules\juce_blocks_basics\protocol - - - Juce Modules\juce_blocks_basics\protocol - - - Juce Modules\juce_blocks_basics\protocol - - - Juce Modules\juce_blocks_basics\topology - - - Juce Modules\juce_blocks_basics\topology - - - Juce Modules\juce_blocks_basics\topology - - - Juce Modules\juce_blocks_basics\topology - - - Juce Modules\juce_blocks_basics\visualisers - - - Juce Modules\juce_blocks_basics\visualisers - - - Juce Modules\juce_blocks_basics - Juce Modules\juce_core\containers @@ -3249,27 +3096,6 @@ Juce Modules\juce_core - - Juce Modules\juce_cryptography\encryption - - - Juce Modules\juce_cryptography\encryption - - - Juce Modules\juce_cryptography\encryption - - - Juce Modules\juce_cryptography\hashing - - - Juce Modules\juce_cryptography\hashing - - - Juce Modules\juce_cryptography\hashing - - - Juce Modules\juce_cryptography - Juce Modules\juce_data_structures\app_properties @@ -3297,6 +3123,90 @@ Juce Modules\juce_data_structures + + Juce Modules\juce_dsp\containers + + + Juce Modules\juce_dsp\containers + + + Juce Modules\juce_dsp\filter_design + + + Juce Modules\juce_dsp\frequency + + + Juce Modules\juce_dsp\frequency + + + Juce Modules\juce_dsp\frequency + + + Juce Modules\juce_dsp\maths + + + Juce Modules\juce_dsp\maths + + + Juce Modules\juce_dsp\maths + + + Juce Modules\juce_dsp\maths + + + Juce Modules\juce_dsp\maths + + + Juce Modules\juce_dsp\native + + + Juce Modules\juce_dsp\native + + + Juce Modules\juce_dsp\native + + + Juce Modules\juce_dsp\native + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp\processors + + + Juce Modules\juce_dsp + Juce Modules\juce_events\broadcasters @@ -4014,164 +3924,32 @@ Juce Modules\juce_gui_extra - - Juce Modules\juce_opengl\geometry - - - Juce Modules\juce_opengl\geometry - - - Juce Modules\juce_opengl\geometry - - - Juce Modules\juce_opengl\geometry - - - Juce Modules\juce_opengl\native - - - Juce Modules\juce_opengl\native - - - Juce Modules\juce_opengl\native - - - Juce Modules\juce_opengl\native - - - Juce Modules\juce_opengl\native - - - Juce Modules\juce_opengl\native - - - Juce Modules\juce_opengl\native - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\opengl - - - Juce Modules\juce_opengl\utils - - - Juce Modules\juce_opengl - - - Juce Modules\juce_osc\osc - - - Juce Modules\juce_osc\osc - - - Juce Modules\juce_osc\osc - - - Juce Modules\juce_osc\osc - - - Juce Modules\juce_osc\osc - - - Juce Modules\juce_osc\osc - - - Juce Modules\juce_osc\osc - - - Juce Modules\juce_osc\osc - - - Juce Modules\juce_osc - - - Juce Modules\juce_product_unlocking\marketplace - - - Juce Modules\juce_product_unlocking\marketplace - - - Juce Modules\juce_product_unlocking\marketplace - - - Juce Modules\juce_product_unlocking\marketplace - - - Juce Modules\juce_product_unlocking - - - Juce Modules\juce_video\capture - - - Juce Modules\juce_video\native - - - Juce Modules\juce_video\native - - - Juce Modules\juce_video\native - - - Juce Modules\juce_video\native - - - Juce Modules\juce_video\native - - - Juce Modules\juce_video\playback - - - Juce Modules\juce_video - Juce Library Code + + Juce Library Code + Juce Library Code + + DSPDemo\Source\Resources + + + DSPDemo\Source\Resources + + + DSPDemo\Source\Resources + Juce Modules\juce_audio_formats\codecs\flac Juce Modules\juce_audio_formats\codecs\oggvorbis - - Juce Modules\juce_blocks_basics\littlefoot - - - Juce Modules\juce_blocks_basics\protocol - - - Juce Modules\juce_blocks_basics - - - Juce Modules\juce_blocks_basics - Juce Modules\juce_graphics\image_formats\jpglib diff --git a/extras/UnitTestRunner/Builds/VisualStudio2015/resources.rc b/examples/DSPDemo/Builds/VisualStudio2017/resources.rc similarity index 79% rename from extras/UnitTestRunner/Builds/VisualStudio2015/resources.rc rename to examples/DSPDemo/Builds/VisualStudio2017/resources.rc index 2f07ec796f..f7a8f1ad71 100644 --- a/extras/UnitTestRunner/Builds/VisualStudio2015/resources.rc +++ b/examples/DSPDemo/Builds/VisualStudio2017/resources.rc @@ -14,9 +14,9 @@ BEGIN BLOCK "040904E4" BEGIN VALUE "CompanyName", "ROLI Ltd.\0" - VALUE "FileDescription", "UnitTestRunner\0" + VALUE "FileDescription", "DSPDemo\0" VALUE "FileVersion", "1.0.0\0" - VALUE "ProductName", "UnitTestRunner\0" + VALUE "ProductName", "DSPDemo\0" VALUE "ProductVersion", "1.0.0\0" END END diff --git a/examples/DSPDemo/DSPDemo.jucer b/examples/DSPDemo/DSPDemo.jucer new file mode 100644 index 0000000000..107c5df831 --- /dev/null +++ b/examples/DSPDemo/DSPDemo.jucer @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/DSPDemo/JuceLibraryCode/AppConfig.h b/examples/DSPDemo/JuceLibraryCode/AppConfig.h new file mode 100644 index 0000000000..877ee18bfd --- /dev/null +++ b/examples/DSPDemo/JuceLibraryCode/AppConfig.h @@ -0,0 +1,258 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + + There's a section below where you can add your own custom code safely, and the + Projucer will preserve the contents of that block, but the best way to change + any of these definitions is by using the Projucer's project settings. + + Any commented-out settings will assume their default values. + +*/ + +#pragma once + +//============================================================================== +// [BEGIN_USER_CODE_SECTION] + +// (You can add your own code in this section, and the Projucer will not overwrite it) + +// [END_USER_CODE_SECTION] + +/* + ============================================================================== + + In accordance with the terms of the JUCE 5 End-Use License Agreement, the + JUCE Code in SECTION A cannot be removed, changed or otherwise rendered + ineffective unless you have a JUCE Indie or Pro license, or are using JUCE + under the GPL v3 license. + + End User License Agreement: www.juce.com/juce-5-licence + ============================================================================== +*/ + +// BEGIN SECTION A + +#ifndef JUCE_DISPLAY_SPLASH_SCREEN + #define JUCE_DISPLAY_SPLASH_SCREEN 1 +#endif + +#ifndef JUCE_REPORT_APP_USAGE + #define JUCE_REPORT_APP_USAGE 1 +#endif + + +// END SECTION A + +#define JUCE_USE_DARK_SPLASH_SCREEN 1 + +//============================================================================== +#define JUCE_MODULE_AVAILABLE_juce_audio_basics 1 +#define JUCE_MODULE_AVAILABLE_juce_audio_devices 1 +#define JUCE_MODULE_AVAILABLE_juce_audio_formats 1 +#define JUCE_MODULE_AVAILABLE_juce_audio_processors 1 +#define JUCE_MODULE_AVAILABLE_juce_audio_utils 1 +#define JUCE_MODULE_AVAILABLE_juce_core 1 +#define JUCE_MODULE_AVAILABLE_juce_data_structures 1 +#define JUCE_MODULE_AVAILABLE_juce_dsp 1 +#define JUCE_MODULE_AVAILABLE_juce_events 1 +#define JUCE_MODULE_AVAILABLE_juce_graphics 1 +#define JUCE_MODULE_AVAILABLE_juce_gui_basics 1 +#define JUCE_MODULE_AVAILABLE_juce_gui_extra 1 + +#define JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED 1 + +//============================================================================== +// juce_audio_devices flags: + +#ifndef JUCE_ASIO + //#define JUCE_ASIO 1 +#endif + +#ifndef JUCE_WASAPI + //#define JUCE_WASAPI 1 +#endif + +#ifndef JUCE_WASAPI_EXCLUSIVE + //#define JUCE_WASAPI_EXCLUSIVE 1 +#endif + +#ifndef JUCE_DIRECTSOUND + //#define JUCE_DIRECTSOUND 1 +#endif + +#ifndef JUCE_ALSA + //#define JUCE_ALSA 1 +#endif + +#ifndef JUCE_JACK + //#define JUCE_JACK 1 +#endif + +#ifndef JUCE_USE_ANDROID_OPENSLES + //#define JUCE_USE_ANDROID_OPENSLES 1 +#endif + +#ifndef JUCE_USE_WINRT_MIDI + //#define JUCE_USE_WINRT_MIDI 1 +#endif + +//============================================================================== +// juce_audio_formats flags: + +#ifndef JUCE_USE_FLAC + //#define JUCE_USE_FLAC 1 +#endif + +#ifndef JUCE_USE_OGGVORBIS + //#define JUCE_USE_OGGVORBIS 1 +#endif + +#ifndef JUCE_USE_MP3AUDIOFORMAT + #define JUCE_USE_MP3AUDIOFORMAT 1 +#endif + +#ifndef JUCE_USE_LAME_AUDIO_FORMAT + //#define JUCE_USE_LAME_AUDIO_FORMAT 1 +#endif + +#ifndef JUCE_USE_WINDOWS_MEDIA_FORMAT + //#define JUCE_USE_WINDOWS_MEDIA_FORMAT 1 +#endif + +//============================================================================== +// juce_audio_processors flags: + +#ifndef JUCE_PLUGINHOST_VST + //#define JUCE_PLUGINHOST_VST 1 +#endif + +#ifndef JUCE_PLUGINHOST_VST3 + //#define JUCE_PLUGINHOST_VST3 1 +#endif + +#ifndef JUCE_PLUGINHOST_AU + //#define JUCE_PLUGINHOST_AU 1 +#endif + +//============================================================================== +// juce_audio_utils flags: + +#ifndef JUCE_USE_CDREADER + //#define JUCE_USE_CDREADER 1 +#endif + +#ifndef JUCE_USE_CDBURNER + //#define JUCE_USE_CDBURNER 1 +#endif + +//============================================================================== +// juce_core flags: + +#ifndef JUCE_FORCE_DEBUG + //#define JUCE_FORCE_DEBUG 1 +#endif + +#ifndef JUCE_LOG_ASSERTIONS + //#define JUCE_LOG_ASSERTIONS 1 +#endif + +#ifndef JUCE_CHECK_MEMORY_LEAKS + //#define JUCE_CHECK_MEMORY_LEAKS 1 +#endif + +#ifndef JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES + //#define JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES 1 +#endif + +#ifndef JUCE_INCLUDE_ZLIB_CODE + //#define JUCE_INCLUDE_ZLIB_CODE 1 +#endif + +#ifndef JUCE_USE_CURL + //#define JUCE_USE_CURL 1 +#endif + +#ifndef JUCE_CATCH_UNHANDLED_EXCEPTIONS + //#define JUCE_CATCH_UNHANDLED_EXCEPTIONS 1 +#endif + +#ifndef JUCE_ALLOW_STATIC_NULL_VARIABLES + //#define JUCE_ALLOW_STATIC_NULL_VARIABLES 1 +#endif + +//============================================================================== +// juce_dsp flags: + +#ifndef JUCE_ASSERTION_FIRFILTER + //#define JUCE_ASSERTION_FIRFILTER 1 +#endif + +#ifndef JUCE_DSP_USE_INTEL_MKL + //#define JUCE_DSP_USE_INTEL_MKL 1 +#endif + +#ifndef JUCE_DSP_USE_SHARED_FFTW + //#define JUCE_DSP_USE_SHARED_FFTW 1 +#endif + +#ifndef JUCE_DSP_USE_STATIC_FFTW + //#define JUCE_DSP_USE_STATIC_FFTW 1 +#endif + +//============================================================================== +// juce_events flags: + +#ifndef JUCE_EXECUTE_APP_SUSPEND_ON_IOS_BACKGROUND_TASK + //#define JUCE_EXECUTE_APP_SUSPEND_ON_IOS_BACKGROUND_TASK 1 +#endif + +//============================================================================== +// juce_graphics flags: + +#ifndef JUCE_USE_COREIMAGE_LOADER + //#define JUCE_USE_COREIMAGE_LOADER 1 +#endif + +#ifndef JUCE_USE_DIRECTWRITE + //#define JUCE_USE_DIRECTWRITE 1 +#endif + +//============================================================================== +// juce_gui_basics flags: + +#ifndef JUCE_ENABLE_REPAINT_DEBUGGING + //#define JUCE_ENABLE_REPAINT_DEBUGGING 1 +#endif + +#ifndef JUCE_USE_XSHM + //#define JUCE_USE_XSHM 1 +#endif + +#ifndef JUCE_USE_XRENDER + //#define JUCE_USE_XRENDER 1 +#endif + +#ifndef JUCE_USE_XCURSOR + //#define JUCE_USE_XCURSOR 1 +#endif + +//============================================================================== +// juce_gui_extra flags: + +#ifndef JUCE_WEB_BROWSER + //#define JUCE_WEB_BROWSER 1 +#endif + +#ifndef JUCE_ENABLE_LIVE_CONSTANT_EDITOR + //#define JUCE_ENABLE_LIVE_CONSTANT_EDITOR 1 +#endif +//============================================================================== +#ifndef JUCE_STANDALONE_APPLICATION + #if defined(JucePlugin_Name) && defined(JucePlugin_Build_Standalone) + #define JUCE_STANDALONE_APPLICATION JucePlugin_Build_Standalone + #else + #define JUCE_STANDALONE_APPLICATION 1 + #endif +#endif diff --git a/examples/DSPDemo/JuceLibraryCode/BinaryData.cpp b/examples/DSPDemo/JuceLibraryCode/BinaryData.cpp new file mode 100644 index 0000000000..39f6f02ba4 --- /dev/null +++ b/examples/DSPDemo/JuceLibraryCode/BinaryData.cpp @@ -0,0 +1,2358 @@ +/* ==================================== JUCER_BINARY_RESOURCE ==================================== + + This is an auto-generated file: Any edits you make may be overwritten! + +*/ + +namespace BinaryData +{ + +//================== cassette_recorder.wav ================== +static const unsigned char temp_binary_data_0[] = +{ 82,73,70,70,6,148,0,0,87,65,86,69,102,109,116,32,16,0,0,0,1,0,1,0,68,172,0,0,136,88,1,0,2,0,16,0,106,117,110,107,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,100,97,116,97,166,147,0, +0,0,0,254,255,255,255,247,255,1,0,245,255,2,0,235,255,254,255,240,255,24,0,18,0,38,0,254,255,190,252,204,252,200,252,107,253,11,252,41,251,178,251,25,255,143,255,27,1,248,6,177,7,210,7,89,9,156,11,232,9,38,8,8,8,219,6,233,2,42,255,249,251,9,250,154,249, +177,248,51,248,103,249,73,250,232,251,68,253,33,0,48,3,14,6,114,6,117,6,193,7,185,7,166,4,160,0,68,254,104,251,172,249,41,249,134,248,129,248,243,249,175,251,90,252,168,253,178,255,189,0,236,1,141,1,203,255,110,254,5,254,97,253,239,252,221,251,80,250, +201,250,110,252,244,252,221,253,92,255,178,0,31,2,78,2,85,2,19,2,230,2,164,3,175,2,237,1,254,0,21,0,125,255,63,255,44,0,12,2,196,2,106,3,253,4,147,5,4,5,242,4,231,4,54,4,174,3,90,2,154,0,104,254,249,251,18,251,4,250,63,248,150,247,107,247,211,247,103, +249,3,251,206,252,130,255,164,1,214,3,139,5,214,5,202,5,197,5,46,5,32,4,43,2,3,255,127,251,65,249,166,248,78,248,81,248,6,249,16,250,94,251,59,253,176,255,228,2,196,5,105,8,153,10,170,11,27,12,19,12,222,10,230,8,50,6,70,3,52,1,128,254,5,252,41,251,253, +250,152,250,97,251,202,252,132,253,121,254,124,255,194,0,99,2,196,3,157,4,112,4,108,3,101,2,5,1,204,255,196,254,218,253,126,252,119,251,70,251,47,251,169,251,46,252,208,252,243,253,242,254,167,255,38,0,52,0,189,0,7,1,59,1,17,1,165,0,87,1,91,1,99,1,100, +1,175,0,151,0,184,255,193,254,217,254,168,255,234,0,251,1,134,2,99,3,109,4,48,4,25,3,15,2,174,0,22,255,183,253,98,252,199,251,213,251,105,251,72,251,77,252,5,254,64,255,234,255,27,1,121,1,67,1,239,0,134,0,25,0,123,255,149,254,229,253,119,253,122,252, +73,251,0,251,40,251,209,250,141,251,25,253,62,254,81,255,151,0,206,1,216,2,122,3,28,4,51,4,202,3,239,2,254,1,44,1,42,0,17,255,244,253,109,253,184,253,105,254,43,255,114,0,188,1,201,2,148,3,47,4,164,4,133,4,237,3,62,3,64,2,101,1,242,255,106,254,46,253, +3,252,245,250,203,250,87,251,197,251,171,252,189,253,223,254,20,0,119,1,127,2,33,3,160,3,212,3,66,3,56,2,30,1,41,0,43,255,10,254,27,253,10,253,86,253,198,253,82,254,48,255,14,0,168,0,86,1,118,1,153,1,221,1,237,1,45,2,117,2,125,2,128,2,140,2,117,2,15, +2,220,1,141,1,16,1,154,0,52,0,41,0,73,0,237,255,169,255,248,255,106,0,181,0,7,1,72,1,72,1,97,1,165,1,186,1,241,1,32,2,86,2,62,2,236,1,62,1,206,0,38,0,105,255,115,254,31,253,250,252,47,252,88,251,6,251,139,251,7,252,245,251,110,252,94,253,81,254,74,255, +152,255,214,255,76,0,38,0,248,255,39,0,48,0,68,0,42,0,247,255,170,255,15,255,166,254,147,254,188,254,153,254,107,254,167,254,248,254,100,255,228,255,87,0,174,0,45,1,146,1,200,1,15,2,56,2,73,2,156,1,59,1,87,0,153,255,249,254,191,254,176,254,81,254,241, +253,252,253,100,254,9,255,167,255,56,0,220,0,121,1,52,2,122,2,181,2,195,2,108,2,194,1,17,1,70,0,136,255,202,254,118,254,210,253,70,253,48,253,82,253,152,253,16,254,42,254,184,254,170,255,112,0,23,1,250,1,212,2,98,3,227,3,30,4,255,3,123,3,4,3,44,2,43, +1,67,0,177,255,79,255,46,255,237,254,157,254,1,255,141,255,251,255,67,0,137,0,202,0,194,0,181,0,130,0,45,0,220,255,30,255,22,254,106,253,238,252,170,252,160,252,232,252,10,253,49,253,203,253,158,254,96,255,8,0,166,0,255,0,26,1,35,1,29,1,0,1,184,0,65, +0,166,255,16,255,205,254,159,254,134,254,137,254,12,255,147,255,4,0,145,0,78,1,2,2,74,2,96,2,108,2,97,2,23,2,204,1,190,1,145,1,121,1,155,1,198,1,224,1,214,1,222,1,218,1,208,1,165,1,113,1,27,1,178,0,84,0,249,255,179,255,62,255,195,254,86,254,240,253,166, +253,109,253,102,253,166,253,235,253,58,254,174,254,7,255,111,255,210,255,10,0,250,255,211,255,150,255,40,255,179,254,116,254,63,254,21,254,71,254,122,254,172,254,242,254,85,255,190,255,34,0,121,0,237,0,84,1,149,1,202,1,224,1,219,1,179,1,116,1,38,1,213, +0,121,0,24,0,200,255,163,255,128,255,116,255,145,255,227,255,92,0,168,0,5,1,90,1,178,1,234,1,248,1,252,1,208,1,144,1,7,1,107,0,228,255,114,255,246,254,131,254,45,254,242,253,176,253,169,253,164,253,184,253,1,254,76,254,134,254,210,254,58,255,123,255, +181,255,238,255,50,0,81,0,64,0,8,0,224,255,200,255,187,255,143,255,136,255,147,255,145,255,188,255,233,255,23,0,71,0,136,0,178,0,214,0,21,1,61,1,90,1,94,1,93,1,75,1,52,1,17,1,247,0,198,0,145,0,112,0,74,0,48,0,24,0,9,0,230,255,210,255,209,255,241,255, +244,255,227,255,234,255,238,255,249,255,10,0,7,0,15,0,29,0,18,0,247,255,221,255,196,255,182,255,135,255,82,255,59,255,245,254,160,254,129,254,145,254,153,254,191,254,252,254,66,255,171,255,33,0,136,0,231,0,61,1,110,1,151,1,156,1,106,1,24,1,207,0,137, +0,23,0,182,255,108,255,51,255,2,255,239,254,0,255,32,255,97,255,176,255,37,0,152,0,0,1,91,1,177,1,243,1,3,2,0,2,229,1,180,1,102,1,9,1,168,0,59,0,206,255,129,255,50,255,225,254,160,254,112,254,93,254,110,254,134,254,158,254,186,254,218,254,249,254,44, +255,110,255,172,255,234,255,250,255,240,255,220,255,197,255,167,255,157,255,156,255,124,255,117,255,125,255,116,255,135,255,167,255,184,255,198,255,204,255,234,255,25,0,56,0,80,0,96,0,138,0,165,0,162,0,168,0,172,0,171,0,161,0,146,0,121,0,100,0,87,0,101, +0,127,0,152,0,163,0,181,0,218,0,239,0,236,0,209,0,197,0,173,0,135,0,111,0,100,0,82,0,40,0,248,255,219,255,185,255,139,255,104,255,69,255,53,255,54,255,58,255,75,255,98,255,117,255,148,255,191,255,235,255,1,0,12,0,3,0,243,255,226,255,197,255,180,255,156, +255,135,255,120,255,118,255,124,255,126,255,125,255,108,255,93,255,82,255,71,255,86,255,110,255,133,255,172,255,223,255,10,0,36,0,58,0,90,0,131,0,145,0,145,0,154,0,141,0,129,0,116,0,111,0,102,0,105,0,117,0,112,0,100,0,100,0,114,0,114,0,99,0,74,0,52,0, +43,0,46,0,40,0,23,0,1,0,250,255,243,255,246,255,242,255,235,255,228,255,222,255,218,255,209,255,213,255,229,255,247,255,254,255,1,0,251,255,238,255,221,255,215,255,211,255,194,255,163,255,155,255,164,255,178,255,199,255,233,255,1,0,252,255,245,255,1, +0,4,0,238,255,216,255,215,255,211,255,188,255,174,255,183,255,207,255,220,255,236,255,14,0,56,0,112,0,161,0,192,0,208,0,220,0,227,0,228,0,221,0,206,0,181,0,149,0,106,0,64,0,24,0,238,255,207,255,194,255,193,255,190,255,193,255,208,255,222,255,225,255, +227,255,239,255,241,255,231,255,225,255,220,255,215,255,214,255,220,255,229,255,236,255,245,255,253,255,1,0,254,255,244,255,220,255,192,255,165,255,137,255,120,255,100,255,82,255,81,255,93,255,104,255,116,255,138,255,175,255,203,255,222,255,251,255,37, +0,74,0,92,0,98,0,102,0,92,0,75,0,65,0,48,0,29,0,19,0,16,0,5,0,3,0,6,0,13,0,24,0,19,0,14,0,6,0,249,255,224,255,205,255,202,255,191,255,182,255,185,255,202,255,219,255,238,255,6,0,25,0,51,0,73,0,74,0,73,0,85,0,95,0,90,0,88,0,92,0,93,0,79,0,64,0,46,0,29, +0,17,0,5,0,247,255,235,255,237,255,233,255,223,255,219,255,227,255,230,255,223,255,221,255,226,255,235,255,243,255,244,255,246,255,245,255,241,255,238,255,232,255,222,255,210,255,199,255,192,255,186,255,185,255,189,255,198,255,203,255,216,255,228,255, +243,255,5,0,11,0,10,0,9,0,12,0,9,0,7,0,5,0,4,0,7,0,15,0,26,0,38,0,40,0,49,0,68,0,69,0,64,0,66,0,68,0,65,0,60,0,52,0,44,0,44,0,55,0,58,0,57,0,64,0,67,0,59,0,50,0,51,0,52,0,40,0,28,0,15,0,251,255,242,255,239,255,239,255,231,255,227,255,225,255,216,255, +212,255,220,255,227,255,219,255,215,255,221,255,221,255,217,255,221,255,229,255,238,255,238,255,236,255,241,255,248,255,252,255,250,255,247,255,243,255,238,255,229,255,220,255,213,255,203,255,190,255,168,255,150,255,147,255,152,255,152,255,153,255,158, +255,163,255,174,255,187,255,196,255,208,255,219,255,236,255,250,255,8,0,26,0,42,0,55,0,65,0,71,0,74,0,77,0,83,0,83,0,77,0,64,0,58,0,56,0,54,0,52,0,54,0,57,0,57,0,61,0,65,0,70,0,71,0,67,0,63,0,56,0,44,0,32,0,26,0,18,0,3,0,247,255,240,255,236,255,243,255, +252,255,254,255,4,0,14,0,23,0,27,0,38,0,51,0,56,0,52,0,47,0,45,0,35,0,17,0,0,0,242,255,225,255,205,255,194,255,191,255,200,255,208,255,214,255,226,255,241,255,1,0,15,0,18,0,14,0,6,0,248,255,232,255,218,255,206,255,194,255,185,255,174,255,171,255,170, +255,166,255,166,255,175,255,184,255,192,255,195,255,202,255,210,255,216,255,224,255,229,255,233,255,234,255,235,255,233,255,236,255,238,255,239,255,246,255,253,255,253,255,1,0,16,0,30,0,36,0,31,0,32,0,39,0,45,0,48,0,54,0,67,0,78,0,87,0,96,0,113,0,130, +0,132,0,127,0,120,0,107,0,95,0,81,0,58,0,36,0,18,0,0,0,238,255,224,255,216,255,214,255,213,255,217,255,222,255,225,255,229,255,228,255,226,255,225,255,222,255,218,255,210,255,196,255,184,255,180,255,177,255,172,255,167,255,166,255,167,255,171,255,178, +255,189,255,196,255,197,255,202,255,207,255,215,255,232,255,250,255,7,0,19,0,36,0,55,0,71,0,82,0,92,0,98,0,95,0,92,0,89,0,83,0,71,0,51,0,37,0,30,0,26,0,25,0,27,0,33,0,43,0,56,0,70,0,78,0,87,0,98,0,101,0,94,0,81,0,65,0,41,0,8,0,232,255,204,255,176,255, +151,255,134,255,127,255,128,255,137,255,154,255,164,255,173,255,188,255,206,255,220,255,224,255,225,255,224,255,225,255,226,255,225,255,221,255,222,255,223,255,229,255,239,255,249,255,3,0,15,0,26,0,35,0,44,0,57,0,68,0,72,0,71,0,70,0,69,0,69,0,67,0,64, +0,62,0,59,0,61,0,65,0,69,0,70,0,74,0,78,0,79,0,76,0,70,0,62,0,52,0,40,0,24,0,6,0,243,255,229,255,214,255,197,255,187,255,187,255,187,255,185,255,185,255,190,255,191,255,192,255,195,255,194,255,191,255,185,255,176,255,166,255,153,255,144,255,140,255,132, +255,126,255,126,255,132,255,141,255,150,255,161,255,176,255,191,255,205,255,217,255,230,255,246,255,255,255,5,0,5,0,1,0,0,0,2,0,4,0,2,0,6,0,15,0,23,0,32,0,47,0,65,0,79,0,91,0,101,0,111,0,119,0,120,0,122,0,126,0,126,0,117,0,108,0,102,0,97,0,89,0,77,0, +65,0,55,0,49,0,42,0,35,0,25,0,14,0,7,0,1,0,250,255,246,255,245,255,241,255,237,255,239,255,242,255,242,255,242,255,244,255,247,255,249,255,248,255,246,255,246,255,244,255,242,255,241,255,236,255,229,255,226,255,226,255,224,255,222,255,221,255,218,255, +214,255,214,255,215,255,216,255,219,255,225,255,231,255,236,255,242,255,248,255,1,0,4,0,4,0,3,0,1,0,1,0,255,255,249,255,238,255,230,255,226,255,225,255,226,255,228,255,229,255,233,255,241,255,253,255,14,0,31,0,43,0,52,0,58,0,62,0,66,0,68,0,66,0,59,0, +48,0,35,0,24,0,20,0,18,0,14,0,8,0,7,0,9,0,11,0,13,0,15,0,18,0,16,0,10,0,5,0,3,0,1,0,252,255,246,255,239,255,234,255,230,255,228,255,226,255,225,255,223,255,218,255,211,255,208,255,208,255,206,255,202,255,200,255,196,255,192,255,190,255,191,255,196,255, +200,255,202,255,208,255,215,255,216,255,218,255,221,255,222,255,224,255,223,255,222,255,222,255,224,255,226,255,228,255,231,255,238,255,249,255,4,0,12,0,18,0,26,0,36,0,42,0,45,0,46,0,45,0,44,0,43,0,42,0,41,0,40,0,40,0,38,0,35,0,36,0,42,0,48,0,55,0,54, +0,51,0,49,0,49,0,47,0,43,0,37,0,28,0,18,0,10,0,5,0,254,255,251,255,249,255,246,255,243,255,242,255,246,255,252,255,255,255,1,0,3,0,6,0,8,0,11,0,13,0,13,0,12,0,9,0,5,0,2,0,254,255,249,255,245,255,244,255,244,255,245,255,244,255,242,255,242,255,244,255, +244,255,243,255,244,255,245,255,245,255,244,255,246,255,249,255,249,255,246,255,247,255,250,255,253,255,254,255,252,255,250,255,247,255,244,255,242,255,242,255,241,255,240,255,240,255,239,255,241,255,247,255,253,255,2,0,7,0,12,0,17,0,20,0,24,0,30,0,32, +0,33,0,31,0,31,0,32,0,33,0,31,0,31,0,31,0,27,0,22,0,21,0,22,0,20,0,17,0,16,0,16,0,16,0,13,0,9,0,8,0,6,0,1,0,252,255,249,255,246,255,243,255,240,255,235,255,230,255,225,255,219,255,213,255,210,255,207,255,205,255,205,255,205,255,204,255,205,255,210,255, +215,255,218,255,221,255,223,255,225,255,227,255,230,255,234,255,235,255,234,255,234,255,236,255,238,255,240,255,240,255,239,255,240,255,243,255,246,255,249,255,251,255,253,255,253,255,252,255,254,255,0,0,0,0,254,255,251,255,251,255,251,255,254,255,2, +0,6,0,10,0,12,0,18,0,23,0,26,0,29,0,31,0,30,0,29,0,27,0,27,0,27,0,24,0,21,0,18,0,15,0,15,0,16,0,16,0,16,0,17,0,18,0,19,0,21,0,25,0,27,0,27,0,26,0,26,0,27,0,27,0,26,0,24,0,23,0,21,0,21,0,21,0,20,0,18,0,16,0,15,0,13,0,13,0,12,0,12,0,11,0,11,0,10,0,9,0, +8,0,7,0,4,0,253,255,248,255,245,255,241,255,237,255,234,255,232,255,231,255,232,255,236,255,241,255,246,255,249,255,253,255,255,255,0,0,0,0,0,0,254,255,250,255,244,255,236,255,232,255,229,255,229,255,227,255,225,255,222,255,221,255,226,255,232,255,238, +255,243,255,249,255,253,255,3,0,9,0,14,0,18,0,18,0,14,0,9,0,7,0,9,0,9,0,6,0,5,0,5,0,7,0,9,0,10,0,13,0,13,0,12,0,10,0,10,0,9,0,8,0,8,0,5,0,1,0,254,255,252,255,253,255,254,255,252,255,248,255,246,255,244,255,242,255,240,255,236,255,233,255,229,255,226, +255,225,255,224,255,222,255,221,255,220,255,219,255,220,255,223,255,226,255,229,255,232,255,235,255,238,255,242,255,248,255,252,255,0,0,3,0,4,0,6,0,7,0,7,0,7,0,7,0,7,0,8,0,9,0,11,0,11,0,11,0,12,0,15,0,16,0,15,0,14,0,13,0,11,0,10,0,9,0,9,0,8,0,5,0,3,0, +1,0,2,0,3,0,5,0,6,0,8,0,11,0,13,0,16,0,20,0,22,0,22,0,22,0,21,0,18,0,16,0,13,0,9,0,4,0,0,0,254,255,255,255,255,255,255,255,254,255,255,255,1,0,3,0,6,0,8,0,9,0,11,0,11,0,13,0,15,0,15,0,15,0,14,0,11,0,9,0,6,0,5,0,3,0,0,0,254,255,253,255,254,255,1,0,4,0, +5,0,6,0,8,0,11,0,13,0,15,0,17,0,17,0,15,0,12,0,12,0,12,0,10,0,8,0,4,0,255,255,252,255,250,255,249,255,248,255,245,255,242,255,239,255,236,255,236,255,235,255,232,255,229,255,227,255,225,255,223,255,223,255,224,255,224,255,223,255,223,255,223,255,223, +255,224,255,226,255,226,255,227,255,227,255,227,255,228,255,230,255,233,255,236,255,241,255,244,255,247,255,250,255,253,255,2,0,6,0,6,0,6,0,8,0,12,0,14,0,14,0,14,0,13,0,12,0,12,0,12,0,15,0,18,0,18,0,19,0,21,0,23,0,24,0,26,0,26,0,26,0,24,0,21,0,19,0,18, +0,15,0,11,0,8,0,7,0,5,0,2,0,0,0,255,255,253,255,251,255,249,255,247,255,245,255,242,255,240,255,240,255,242,255,242,255,242,255,242,255,243,255,246,255,250,255,255,255,2,0,4,0,4,0,4,0,6,0,7,0,7,0,5,0,3,0,2,0,2,0,2,0,3,0,3,0,3,0,2,0,2,0,3,0,4,0,5,0,5, +0,4,0,5,0,5,0,6,0,7,0,8,0,9,0,9,0,10,0,10,0,11,0,12,0,12,0,10,0,9,0,9,0,8,0,7,0,5,0,5,0,3,0,1,0,255,255,254,255,254,255,253,255,251,255,250,255,249,255,249,255,248,255,247,255,245,255,245,255,244,255,243,255,243,255,243,255,244,255,245,255,245,255,245, +255,244,255,245,255,247,255,247,255,246,255,246,255,246,255,246,255,247,255,247,255,246,255,247,255,248,255,248,255,247,255,247,255,248,255,249,255,249,255,250,255,251,255,252,255,253,255,253,255,255,255,1,0,3,0,5,0,6,0,5,0,5,0,6,0,8,0,8,0,7,0,6,0,5, +0,4,0,4,0,4,0,4,0,2,0,1,0,2,0,3,0,4,0,4,0,5,0,4,0,4,0,5,0,6,0,5,0,4,0,4,0,3,0,2,0,2,0,2,0,3,0,3,0,2,0,0,0,255,255,254,255,255,255,0,0,0,0,255,255,254,255,254,255,255,255,0,0,3,0,6,0,9,0,10,0,10,0,12,0,16,0,18,0,19,0,18,0,15,0,12,0,10,0,8,0,7,0,5,0,3, +0,1,0,255,255,255,255,1,0,2,0,1,0,0,0,0,0,0,0,1,0,2,0,3,0,3,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,253,255,250,255,247,255,245,255,244,255,242,255,240,255,239,255,239,255,239,255,240,255,242,255,244,255,245,255,245, +255,245,255,246,255,247,255,248,255,249,255,248,255,247,255,247,255,248,255,248,255,249,255,249,255,248,255,247,255,245,255,245,255,245,255,245,255,244,255,243,255,243,255,244,255,246,255,249,255,252,255,253,255,255,255,0,0,3,0,5,0,8,0,10,0,11,0,12,0, +12,0,13,0,13,0,13,0,12,0,11,0,10,0,9,0,7,0,7,0,8,0,9,0,10,0,12,0,13,0,14,0,14,0,15,0,17,0,18,0,18,0,16,0,15,0,14,0,14,0,14,0,13,0,12,0,10,0,8,0,7,0,6,0,6,0,4,0,3,0,2,0,1,0,0,0,0,0,255,255,254,255,251,255,250,255,250,255,250,255,249,255,248,255,247,255, +247,255,247,255,247,255,248,255,249,255,249,255,250,255,251,255,251,255,251,255,252,255,252,255,252,255,251,255,251,255,251,255,251,255,251,255,252,255,252,255,254,255,0,0,2,0,3,0,4,0,5,0,7,0,7,0,7,0,7,0,6,0,4,0,2,0,1,0,0,0,253,255,252,255,251,255,250, +255,250,255,250,255,250,255,250,255,249,255,249,255,249,255,249,255,247,255,246,255,244,255,242,255,240,255,239,255,238,255,238,255,239,255,240,255,240,255,241,255,244,255,246,255,249,255,250,255,250,255,251,255,253,255,255,255,255,255,255,255,255,255, +255,255,0,0,1,0,3,0,3,0,2,0,3,0,4,0,6,0,7,0,7,0,7,0,7,0,6,0,6,0,7,0,8,0,8,0,7,0,6,0,7,0,8,0,10,0,10,0,11,0,11,0,10,0,10,0,10,0,9,0,8,0,7,0,5,0,4,0,4,0,5,0,4,0,3,0,2,0,3,0,4,0,5,0,5,0,4,0,3,0,3,0,4,0,4,0,3,0,0,0,255,255,255,255,0,0,0,0,0,0,254,255,253, +255,253,255,254,255,1,0,2,0,1,0,0,0,0,0,0,0,1,0,3,0,2,0,0,0,254,255,254,255,0,0,3,0,5,0,4,0,4,0,5,0,8,0,10,0,12,0,12,0,11,0,10,0,9,0,9,0,9,0,7,0,5,0,2,0,0,0,0,0,254,255,254,255,252,255,250,255,249,255,249,255,250,255,250,255,248,255,247,255,246,255,247, +255,247,255,247,255,246,255,245,255,244,255,244,255,246,255,246,255,245,255,245,255,244,255,244,255,245,255,246,255,246,255,245,255,244,255,244,255,244,255,244,255,243,255,242,255,242,255,243,255,244,255,245,255,246,255,247,255,248,255,250,255,252,255, +255,255,1,0,3,0,3,0,5,0,7,0,9,0,11,0,12,0,12,0,11,0,11,0,11,0,12,0,12,0,10,0,7,0,6,0,6,0,6,0,7,0,6,0,5,0,4,0,3,0,4,0,6,0,8,0,7,0,5,0,4,0,4,0,4,0,6,0,7,0,5,0,3,0,2,0,2,0,3,0,4,0,5,0,4,0,3,0,3,0,4,0,6,0,7,0,8,0,7,0,7,0,6,0,5,0,5,0,5,0,4,0,3,0,2,0,2,0,1, +0,2,0,4,0,6,0,7,0,8,0,9,0,9,0,8,0,8,0,7,0,6,0,4,0,1,0,254,255,252,255,251,255,251,255,250,255,250,255,249,255,249,255,250,255,252,255,253,255,254,255,255,255,255,255,0,0,255,255,0,0,0,0,254,255,252,255,249,255,247,255,247,255,248,255,248,255,247,255, +247,255,247,255,249,255,251,255,254,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,255,255,254,255,253,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,1,0,2,0,2,0,1,0,0,0,255,255,255,255,254,255,253,255,252,255,251,255,249,255,248,255,249,255, +250,255,251,255,251,255,251,255,251,255,252,255,253,255,254,255,254,255,253,255,252,255,251,255,251,255,251,255,252,255,253,255,252,255,252,255,253,255,255,255,1,0,3,0,5,0,5,0,6,0,7,0,8,0,9,0,9,0,9,0,8,0,7,0,8,0,9,0,11,0,12,0,11,0,11,0,11,0,11,0,12,0, +13,0,11,0,10,0,9,0,8,0,8,0,8,0,7,0,4,0,2,0,1,0,1,0,2,0,2,0,1,0,255,255,253,255,253,255,254,255,0,0,255,255,253,255,251,255,250,255,250,255,251,255,252,255,253,255,252,255,251,255,251,255,252,255,254,255,255,255,254,255,253,255,251,255,251,255,252,255, +254,255,254,255,254,255,253,255,253,255,254,255,0,0,1,0,2,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,254,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,255,255,254,255,254,255,253,255,252,255,252,255,252,255,252,255, +252,255,252,255,252,255,252,255,253,255,255,255,0,0,1,0,1,0,1,0,2,0,3,0,4,0,4,0,3,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,255,255,0,0,1,0,1,0,1,0,255,255,254,255,254,255,255,255,0,0,0,0,255,255,254,255,254,255,254,255,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0, +0,255,255,254,255,253,255,253,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,253,255,254,255,255,255,0,0,0,0,1,0,2,0,4,0,4,0,5,0,5,0,5,0,6,0,7,0,7,0,8,0,8,0,8,0,7,0,7,0,7,0,7,0,6,0,6,0,5,0,4,0,4,0,4,0,3,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,255, +255,255,255,254,255,254,255,254,255,254,255,254,255,253,255,254,255,255,255,255,255,0,0,255,255,254,255,254,255,255,255,255,255,255,255,254,255,252,255,251,255,251,255,252,255,254,255,255,255,255,255,255,255,255,255,0,0,3,0,4,0,5,0,4,0,3,0,2,0,2,0,1, +0,0,0,255,255,254,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,255,255,1,0,2,0,1,0,1,0,0,0,255,255,255,255,255,255,254,255,252,255,251,255,250,255,250,255,250,255,251,255,251,255,250,255,250,255,249,255,250,255,250,255,250,255,250,255, +249,255,248,255,247,255,248,255,249,255,250,255,250,255,251,255,252,255,253,255,255,255,1,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,3,0,3,0,4,0,4,0,5,0,7,0,7,0,7,0,8,0,9,0,10,0,9,0,9,0,8,0,8,0,7,0,7,0,7,0,6,0,5,0,4,0,4,0,4,0,5,0,4,0,4,0,4, +0,3,0,3,0,4,0,3,0,3,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,2,0,2,0,3,0,3,0,4,0,4,0,4,0,3,0,3,0,3,0,2,0,2,0,1,0,0,0,254,255,254,255,253,255,253,255,253,255,253,255,252,255,252,255,251,255,251,255,251,255,251,255,252,255,251,255,251, +255,251,255,251,255,252,255,252,255,252,255,252,255,252,255,253,255,254,255,254,255,254,255,254,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,0,0,0,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,254,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,253,255,253,255,253,255,253,255,253,255,252,255,251,255,251,255,251,255,252,255,254,255,254,255,254,255,254,255,254,255,0,0,1,0,3,0,4,0,4,0,3,0,3,0,3,0,3,0,4,0,4,0,3,0,1,0,0, +0,0,0,0,0,1,0,2,0,1,0,0,0,255,255,255,255,0,0,2,0,3,0,3,0,2,0,2,0,1,0,2,0,3,0,3,0,3,0,2,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,2,0,3,0,4,0,5,0,5,0,5,0,6,0,7,0,8,0,8,0,7,0,7,0,7,0,7,0,7,0,6,0,6,0,5,0,4,0,4,0,5,0,5,0,4,0,3,0,2,0,2,0,2,0,3,0,2,0,1,0, +0,0,254,255,255,255,254,255,254,255,254,255,253,255,252,255,252,255,252,255,252,255,253,255,252,255,251,255,251,255,251,255,251,255,251,255,251,255,250,255,249,255,249,255,250,255,250,255,250,255,249,255,248,255,249,255,251,255,252,255,251,255,251,255, +250,255,251,255,252,255,253,255,254,255,253,255,253,255,252,255,253,255,254,255,255,255,0,0,255,255,255,255,255,255,1,0,2,0,2,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,254,255,253,255,253,255,255,255,1,0,1,0,0,0,255,255,255,255,0,0,2,0,2,0,1,0,255,255,253, +255,253,255,253,255,253,255,253,255,252,255,251,255,251,255,253,255,254,255,0,0,0,0,255,255,0,0,0,0,1,0,2,0,2,0,1,0,0,0,255,255,0,0,0,0,1,0,1,0,1,0,1,0,3,0,4,0,5,0,5,0,4,0,4,0,4,0,5,0,4,0,4,0,3,0,2,0,2,0,4,0,5,0,6,0,7,0,7,0,6,0,7,0,9,0,10,0,9,0,7,0,5, +0,4,0,3,0,3,0,2,0,1,0,255,255,254,255,254,255,255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,2,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,0,0,1,0,2,0,3,0,2,0,0,0,255,255,255,255,255,255,255,255,254,255,252,255,251,255,250,255,251,255,252,255,252,255,252, +255,252,255,252,255,253,255,253,255,254,255,254,255,254,255,253,255,253,255,252,255,252,255,252,255,251,255,250,255,249,255,249,255,249,255,250,255,250,255,251,255,251,255,251,255,252,255,252,255,253,255,254,255,254,255,255,255,255,255,255,255,255,255, +255,255,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,2,0,4,0,4,0,4,0,5,0,4,0,5,0,5,0,5,0,6,0,5,0,5,0,5,0,4,0,4,0,3,0,3,0,4,0,4,0,3,0,2,0,2,0,3,0,3,0,3,0,3,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0, +0,1,0,1,0,1,0,255,255,254,255,254,255,0,0,0,0,0,0,0,0,255,255,255,255,1,0,2,0,3,0,2,0,1,0,0,0,0,0,2,0,2,0,1,0,0,0,254,255,254,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,1,0,2,0,2,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,254,255,254,255,254,255,255,255,255, +255,255,255,254,255,254,255,255,255,0,0,1,0,1,0,0,0,0,0,0,0,1,0,2,0,2,0,0,0,255,255,254,255,254,255,255,255,0,0,0,0,254,255,253,255,253,255,255,255,1,0,2,0,1,0,0,0,255,255,0,0,1,0,2,0,2,0,2,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,254,255,254, +255,254,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,254,255,254,255,255,255,1,0,1,0,1,0,255,255,254,255,254,255,255,255,1,0,1,0,1,0,255,255,255,255,255,255,1,0,3,0,4,0,3,0,1,0,0, +0,0,0,2,0,3,0,4,0,3,0,1,0,0,0,0,0,2,0,4,0,4,0,3,0,1,0,1,0,2,0,3,0,4,0,4,0,2,0,1,0,0,0,1,0,1,0,2,0,1,0,255,255,255,255,255,255,0,0,2,0,2,0,2,0,1,0,0,0,1,0,2,0,3,0,2,0,1,0,255,255,254,255,254,255,255,255,255,255,255,255,253,255,251,255,251,255,252,255, +253,255,254,255,254,255,253,255,253,255,252,255,253,255,254,255,255,255,254,255,253,255,252,255,252,255,252,255,253,255,254,255,254,255,253,255,252,255,252,255,254,255,255,255,0,0,0,0,255,255,255,255,0,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,2,0,2,0,3,0,3,0,4,0,4,0,5,0,4,0,4,0,3,0,2,0,2,0,3,0,3,0,2,0,1,0,0,0,0,0,1,0,2,0,3,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,254,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,254, +255,254,255,255,255,255,255,254,255,253,255,253,255,252,255,252,255,252,255,253,255,252,255,252,255,252,255,252,255,253,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255, +254,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,254,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255, +0,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,2,0,3,0,3,0,3,0,2,0,1,0,1,0,2,0,3,0,3,0,2,0,1,0,2,0,2,0,3,0,3,0,2,0,2,0,1,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0, +0,255,255,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0, +0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,1,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,255,255,0,0,1,0,0,0,255,255,254,255,254,255,255, +255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,2,0,3,0,3,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,3,0,2,0,2, +0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,253,255,253,255,254,255,254,255,254, +255,253,255,253,255,253,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,253,255,253,255,253,255,254,255,255,255,255,255,255,255,254,255,255,255,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,254,255,254,255,254,255,255, +255,255,255,255,255,254,255,254,255,254,255,255,255,0,0,0,0,254,255,253,255,254,255,254,255,255,255,0,0,255,255,254,255,253,255,254,255,255,255,1,0,1,0,0,0,255,255,255,255,0,0,1,0,2,0,3,0,2,0,1,0,1,0,2,0,4,0,3,0,3,0,2,0,1,0,1,0,2,0,3,0,3,0,2,0,1,0,2, +0,3,0,3,0,4,0,3,0,2,0,2,0,2,0,3,0,3,0,2,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,254,255,254,255,255,255,255,255,255,255,254,255,253,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254, +255,254,255,254,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,254,255,254,255,253,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,2,0,1,0,0,0,255,255,255,255,0,0,1,0,1, +0,0,0,255,255,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,2,0,3,0,3,0,3,0,2,0,2,0,3,0,3,0,4,0,4,0,3,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,2,0,1,0,0,0,255,255,254,255,254,255,254,255,255,255,255,255,255,255,254,255, +254,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,255,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,253,255,253,255,253,255,253,255,254,255,254,255, +255,255,0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,255,255,254,255,255,255,0,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,0,0,255,255,254,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,2,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,0,0,0,0,1,0,1, +0,0,0,255,255,0,0,1,0,2,0,3,0,2,0,1,0,1,0,1,0,2,0,3,0,3,0,2,0,1,0,0,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,1,0,1,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,1,0,1,0,0,0,255,255,255,255, +255,255,254,255,254,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,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,254,255,255,255,255,255,0,0,0,0,255,255,255, +255,255,255,0,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,254,255,253,255,253,255,254,255,255,255,255,255,254,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0,2,0,1, +0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,3,0,3,0,2,0,1,0,1,0,2,0,2,0,2,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,254,255,254,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,254,255,253,255,253,255,254,255,255,255,254,255,253,255,252,255,252,255,254,255,255,255,0,0,255,255,255, +255,254,255,254,255,255,255,1,0,1,0,0,0,254,255,253,255,253,255,254,255,255,255,255,255,255,255,254,255,253,255,254,255,255,255,1,0,1,0,1,0,0,0,0,0,1,0,2,0,3,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,3,0,3,0,2,0,2,0,1,0,2,0,2,0,2,0,1,0,1, +0,0,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,3,0,3,0,3,0,2,0,1,0,1,0,1,0,0,0,0,0,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,2,0,2,0,1,0,0,0,0,0,0,0, +0,0,0,0,255,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,0,0,0,0,254,255,254,255,254,255,255,255,255,255,0,0,255,255,255,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255, +255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,0,0,2,0,3,0,2,0,1,0,1,0,0,0,1,0,2,0,1,0,0,0,255, +255,254,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,1,0,2,0,3,0,3,0,2,0,1,0,0,0,0,0,1,0,1,0,0,0,255,255,254,255,254,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1, +0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,0,0,0,0,255,255,255,255,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,1,0,0,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,3,0,3,0,2,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,2,0,2,0,2,0,2, +0,2,0,2,0,2,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,255,255,255,255,0,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,0,0,255,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,254,255, +254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0, +0,1,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,254,255,254,255,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,254,255,254,255,254,255,255,255, +255,255,255,255,254,255,254,255,255,255,0,0,1,0,2,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,254,255,254,255,254,255,255,255,0,0,255,255,255,255,255,255,0,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,255,255,254,255,254,255,254,255,254,255,255,255,255,255, +255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,255,255,254,255,254,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,1, +0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,254,255,253,255,252,255,253,255,253,255,254,255,254,255,254,255,254,255,255,255,0,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,255,255,0,0,0,0,1,0,1,0,1,0,2,0,3,0,4,0,3,0,2,0,1,0,0,0,255, +255,0,0,0,0,255,255,254,255,254,255,254,255,254,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,254,255,254,255,253,255,254,255,255,255,255,255,255,255,254,255,254,255,255,255,1,0,2,0,2,0,1,0,1,0,0,0,1,0,2,0,2,0,1,0,0,0,255,255,255,255,0,0,1,0,1, +0,0,0,0,0,255,255,0,0,1,0,2,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,254,255,253,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,254,255,255, +255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255, +255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,2,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,254, +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,254,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0, +0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255, +255,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,254,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0, +0,1,0,2,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255,0, +0,1,0,1,0,1,0,2,0,2,0,3,0,3,0,3,0,3,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0,3,0,3,0,3,0,2,0,2,0,2,0,3,0,3,0,2,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,255, +255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,1,0,0,0,255,255,0,0,0,0,1,0,0,0,255,255,254,255,254,255,255,255,1,0,2,0,1,0,1,0,0,0,0,0,1,0,2,0,2,0,1,0,255,255,254,255,254,255,255,255,255,255,0,0,255,255,254,255,253,255,254,255,255,255,0,0,0,0,0,0,255,255,255, +255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,254,255,255,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,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,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,0,0,255,255,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,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,254,255,255,255,255,255,0,0,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,254,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,1,0,2,0,2,0,2,0,1, +0,1,0,1,0,1,0,2,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,255, +255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,253,255,254,255,255,255,0,0,255,255,255,255,255,255,0,0,1,0,2,0,2,0,1,0,0,0,255,255,0, +0,0,0,0,0,0,0,255,255,254,255,254,255,255,255,0,0,1,0,1,0,1,0,0,0,1,0,1,0,2,0,2,0,2,0,0,0,255,255,255,255,0,0,1,0,2,0,1,0,0,0,0,0,1,0,2,0,2,0,2,0,1,0,0,0,255,255,254,255,255,255,255,255,254,255,254,255,253,255,253,255,254,255,255,255,0,0,0,0,0,0,0,0, +0,0,1,0,1,0,1,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0, +0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,254,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,3,0,2,0,1,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,254,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,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,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,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255, +255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,2,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,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,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,254, +255,254,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,1,0,1,0,0,0,0,0,1,0,1,0,2,0,1,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0,1, +0,1,0,1,0,1,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,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0, +1,0,1,0,0,0,1,0,1,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, +0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0, +0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255, +255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,255,255, +0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,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,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1, +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,2,0,2,0,1,0,1,0,1,0, +1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,0,0,0,0,1,0,1, +0,1,0,0,0,0,0,1,0,2,0,1,0,0,0,255,255,254,255,255,255,0,0,0,0,255,255,255,255,254,255,254,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0,255,255,0,0,1,0,2,0,2,0,1,0,1,0,1,0,2,0,3,0,3,0, +2,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0,1,0,0,0,255,255,255,255,255,255,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,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,0,0,0,0,255,255,255,255,0,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,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,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,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,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,255,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,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,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,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,0,0,0,0,1,0,1,0,1,0,1,0,1, +0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0,255, +255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,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,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,1,0,2,0,2,0,2,0,1,0,1,0,1, +0,1,0,0,0,255,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,0,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,255,255,254,255,254, +255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255, +255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,254,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,255,255, +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,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255, +255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0, +0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,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,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,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,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,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1, +0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,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,0,0,1,0,2,0, +2,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,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,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,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,254,255,255,255,255,255,0,0,255,255,255,255,255,255,0, +0,0,0,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,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1, +0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,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,0,0,0,0,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,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,0,0,0,0,1,0,1,0,1, +0,1,0,1,0,2,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,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,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,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255, +255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,254,255,254,255,254,255,255,255,255, +255,255,255,255,255,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,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,1,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,1,0,1,0, +1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,1,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0, +0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,0,0,0,0, +255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,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,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1, +0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,2,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255, +255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,1,0,1,0,1,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,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255, +255,255,255,255,255,0,0,0,0,255,255,255,255,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,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1, +0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,1,0,1,0,1,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,255,255, +0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0, +0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255, +254,255,254,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0, +0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,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,1,0,1,0,1,0,1,0,1,0,1,0, +2,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255, +255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0, +0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,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,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,1,0,1,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,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,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,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,1,0,1,0,1,0,1,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,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,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,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,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,255,255,255,255,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,255,255,0,0,0,0,0,0,0,0,255,255,255,255,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,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255, +255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,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,255,255,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0, +0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,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,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0, +0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1, +0,1,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,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,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,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,255,255,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,1,0,1,0,1,0,1,0,1,0,1,0,1,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,1,0,1,0,1,0,1,0,1,0,1,0, +1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1, +0,1,0,0,0,0,0,0,0,255,255,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,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,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,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,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,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0, +1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0, +0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,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,1,0,0,0,0,0,0,0, +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,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,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,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,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,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,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,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,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,1,0,1,0,1,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1, +0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255, +255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,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,0,0,1,0,1,0,1,0,1,0,1, +0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,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,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,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,1, +0,1,0,1,0,1,0,1,0,1,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,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,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,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,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,1,0,1,0,1,0,1,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,1,0,1,0,1,0,1, +0,1,0,1,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,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,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,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1, +0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,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,1,0,1,0,1,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,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,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1, +0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,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,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,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,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,1,0,1,0,1,0,1,0,1,0,1,0,1,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,1,0, +1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,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,1,0,1,0,1,0,1,0,1,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,1,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,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,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,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,255,255,255,255,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,255, +255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,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,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,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,1,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,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,0,0,255,255,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,255,255,255,255,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,255,255,255,255,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,255,255,0,0,0,0,0,0,255,255,255,255,255, +255,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,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,255,255,255,255,255,255,255,255,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,255,255,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,255,255,255,255,0,0,0,0,0,0,0,0,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,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,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,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,255,255,255,255,255,255,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,255,255,255,255,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,255,255,255,255,0,0,0,0,0,0,0,0,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,0,0,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,255,255,255,255, +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,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,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,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,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,0,0,0,0,0,0,0,0,1,0,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,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,255,255,255,255,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,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,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,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,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,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255, +255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,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,1,0,1,0,1,0,1,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,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,1,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,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,1,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,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0 }; + +const char* cassette_recorder_wav = (const char*) temp_binary_data_0; + +//================== EditorColourScheme.xml ================== +static const unsigned char temp_binary_data_1[] = +"\r\n" +"\r\n" +"\r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +" \r\n" +"\r\n"; + +const char* EditorColourScheme_xml = (const char*) temp_binary_data_1; + +//================== guitar_amp.wav ================== +static const unsigned char temp_binary_data_2[] = +{ 82,73,70,70,126,96,1,0,87,65,86,69,102,109,116,32,16,0,0,0,1,0,1,0,68,172,0,0,136,88,1,0,2,0,16,0,100,97,116,97,90,96,1,0,127,21,151,64,230,104,184,126,225,120,232,97,57,69,88,45,227,27,38,18,220,11,103,5,176,2,232,5,154,10,167,9,251,255,163,236,190, +216,29,207,223,212,251,228,199,245,24,253,183,247,114,235,241,226,23,226,178,230,237,235,94,238,102,239,122,239,119,237,243,231,233,223,35,216,224,212,156,214,186,218,111,224,177,230,45,236,78,241,140,243,206,241,67,238,53,235,88,235,105,239,7,244,209, +244,87,242,46,238,65,235,54,236,48,240,217,244,177,247,106,247,171,244,109,241,181,238,58,237,21,237,175,237,67,238,132,238,51,239,136,241,189,244,136,246,201,245,193,243,105,242,110,242,174,243,15,245,144,245,117,245,172,245,12,247,51,250,200,253,107, +255,104,254,24,252,134,250,247,250,172,253,146,1,180,4,188,5,159,4,174,2,111,1,219,0,197,0,166,1,126,3,250,5,149,8,91,10,133,10,9,9,149,6,115,4,190,3,109,4,145,5,34,6,252,5,32,6,181,7,244,10,1,15,119,18,81,20,177,20,30,20,160,18,163,16,0,15,224,13,8, +13,76,12,197,11,166,11,185,11,94,11,40,10,52,8,63,6,61,5,136,5,247,6,1,9,206,10,213,11,104,12,42,13,152,14,174,16,197,18,246,19,187,19,34,18,163,15,31,13,91,11,158,10,143,10,118,10,214,9,236,8,47,8,201,7,139,7,4,7,9,6,249,4,57,4,225,3,249,3,134,4,96, +5,59,6,9,7,235,7,209,8,83,9,0,9,204,7,33,6,143,4,151,3,117,3,197,3,206,3,37,3,232,1,124,0,63,255,97,254,223,253,144,253,85,253,12,253,130,252,174,251,198,250,34,250,21,250,205,250,38,252,195,253,81,255,125,0,251,0,204,0,65,0,146,255,197,254,221,253,236, +252,233,251,178,250,88,249,40,248,85,247,234,246,219,246,18,247,118,247,236,247,81,248,132,248,147,248,172,248,215,248,243,248,238,248,212,248,190,248,187,248,200,248,220,248,254,248,52,249,138,249,232,249,22,250,19,250,5,250,240,249,188,249,95,249,216, +248,56,248,168,247,91,247,129,247,25,248,235,248,190,249,132,250,57,251,206,251,83,252,236,252,143,253,255,253,39,254,41,254,29,254,20,254,34,254,50,254,21,254,201,253,110,253,47,253,27,253,5,253,173,252,28,252,161,251,133,251,206,251,98,252,41,253,252, +253,151,254,206,254,155,254,38,254,199,253,181,253,236,253,100,254,8,255,146,255,203,255,173,255,80,255,241,254,218,254,16,255,130,255,60,0,34,1,206,1,253,1,208,1,134,1,60,1,24,1,91,1,241,1,123,2,208,2,16,3,84,3,174,3,36,4,160,4,23,5,109,5,168,5,14,6, +148,6,230,6,9,7,43,7,66,7,48,7,228,6,90,6,160,5,195,4,234,3,93,3,92,3,235,3,180,4,92,5,183,5,180,5,70,5,141,4,204,3,56,3,239,2,1,3,96,3,220,3,60,4,79,4,253,3,106,3,191,2,34,2,189,1,145,1,124,1,118,1,134,1,136,1,88,1,21,1,229,0,203,0,199,0,214,0,235,0, +249,0,236,0,190,0,140,0,126,0,167,0,236,0,44,1,89,1,127,1,171,1,202,1,195,1,152,1,89,1,23,1,236,0,214,0,187,0,138,0,66,0,235,255,153,255,87,255,33,255,238,254,173,254,89,254,5,254,199,253,176,253,207,253,20,254,95,254,149,254,177,254,193,254,196,254, +163,254,101,254,54,254,33,254,25,254,38,254,79,254,107,254,55,254,158,253,252,252,198,252,1,253,97,253,170,253,189,253,160,253,126,253,120,253,153,253,231,253,69,254,134,254,155,254,153,254,148,254,152,254,159,254,150,254,120,254,89,254,80,254,107,254, +154,254,198,254,221,254,195,254,137,254,94,254,70,254,51,254,42,254,49,254,49,254,26,254,8,254,22,254,53,254,62,254,32,254,226,253,170,253,160,253,205,253,44,254,189,254,80,255,185,255,12,0,72,0,88,0,85,0,74,0,45,0,18,0,11,0,26,0,63,0,106,0,122,0,76, +0,212,255,62,255,212,254,211,254,76,255,26,0,240,0,178,1,125,2,47,3,84,3,155,2,14,1,55,255,230,253,102,253,123,253,243,253,131,254,0,255,123,255,188,255,113,255,188,254,253,253,132,253,144,253,37,254,240,254,189,255,134,0,15,1,48,1,16,1,223,0,209,0,10, +1,82,1,130,1,176,1,205,1,180,1,126,1,97,1,107,1,138,1,174,1,198,1,221,1,13,2,57,2,48,2,0,2,236,1,30,2,112,2,181,2,228,2,252,2,235,2,164,2,74,2,9,2,212,1,144,1,72,1,15,1,247,0,243,0,209,0,128,0,57,0,48,0,84,0,118,0,138,0,148,0,154,0,150,0,132,0,124,0, +144,0,181,0,211,0,225,0,239,0,13,1,46,1,57,1,44,1,13,1,235,0,209,0,188,0,147,0,69,0,220,255,109,255,9,255,200,254,186,254,206,254,243,254,43,255,107,255,160,255,184,255,181,255,178,255,186,255,178,255,144,255,109,255,85,255,73,255,76,255,82,255,86,255, +95,255,102,255,101,255,104,255,115,255,119,255,98,255,56,255,17,255,253,254,246,254,246,254,244,254,229,254,208,254,194,254,197,254,216,254,242,254,253,254,247,254,247,254,16,255,77,255,168,255,1,0,67,0,104,0,106,0,81,0,36,0,229,255,155,255,84,255,27, +255,250,254,247,254,254,254,9,255,32,255,70,255,127,255,205,255,38,0,130,0,203,0,227,0,193,0,119,0,36,0,225,255,179,255,145,255,123,255,113,255,101,255,82,255,62,255,34,255,11,255,17,255,47,255,89,255,136,255,185,255,241,255,44,0,86,0,103,0,97,0,77,0, +57,0,49,0,45,0,29,0,252,255,216,255,199,255,209,255,236,255,10,0,37,0,59,0,79,0,99,0,101,0,69,0,11,0,201,255,152,255,136,255,145,255,154,255,161,255,175,255,196,255,226,255,11,0,56,0,89,0,104,0,103,0,99,0,99,0,96,0,83,0,79,0,95,0,124,0,152,0,169,0,182, +0,195,0,196,0,176,0,144,0,108,0,71,0,42,0,25,0,12,0,253,255,239,255,228,255,218,255,215,255,212,255,198,255,189,255,210,255,254,255,32,0,39,0,29,0,7,0,230,255,196,255,168,255,147,255,136,255,141,255,153,255,164,255,172,255,173,255,164,255,138,255,114, +255,114,255,140,255,176,255,216,255,0,0,42,0,85,0,113,0,117,0,109,0,101,0,105,0,131,0,163,0,188,0,200,0,193,0,178,0,179,0,195,0,205,0,193,0,158,0,117,0,82,0,49,0,14,0,234,255,200,255,182,255,192,255,222,255,245,255,243,255,219,255,193,255,186,255,192, +255,196,255,193,255,175,255,137,255,98,255,77,255,62,255,56,255,73,255,106,255,138,255,162,255,176,255,191,255,217,255,249,255,23,0,51,0,80,0,110,0,137,0,153,0,147,0,116,0,78,0,60,0,71,0,96,0,127,0,159,0,180,0,180,0,170,0,159,0,151,0,152,0,161,0,165, +0,151,0,121,0,85,0,51,0,21,0,255,255,242,255,236,255,237,255,246,255,253,255,242,255,212,255,177,255,157,255,157,255,167,255,179,255,183,255,183,255,183,255,182,255,174,255,156,255,141,255,136,255,132,255,117,255,104,255,101,255,106,255,126,255,165,255, +198,255,210,255,206,255,195,255,193,255,213,255,246,255,17,0,33,0,43,0,53,0,63,0,74,0,79,0,67,0,37,0,11,0,7,0,24,0,43,0,52,0,44,0,25,0,10,0,12,0,30,0,51,0,65,0,66,0,54,0,37,0,26,0,18,0,253,255,217,255,178,255,157,255,152,255,151,255,143,255,129,255,114, +255,105,255,104,255,111,255,129,255,151,255,168,255,176,255,171,255,149,255,117,255,93,255,86,255,96,255,113,255,133,255,157,255,194,255,240,255,19,0,36,0,46,0,59,0,73,0,81,0,81,0,72,0,63,0,57,0,53,0,51,0,53,0,52,0,45,0,30,0,10,0,246,255,228,255,210, +255,206,255,227,255,13,0,53,0,80,0,94,0,96,0,86,0,66,0,33,0,249,255,216,255,190,255,174,255,171,255,177,255,191,255,220,255,4,0,46,0,82,0,107,0,116,0,107,0,83,0,55,0,37,0,15,0,238,255,222,255,241,255,23,0,61,0,86,0,94,0,88,0,77,0,72,0,75,0,66,0,36,0, +9,0,10,0,40,0,81,0,115,0,121,0,82,0,24,0,234,255,209,255,200,255,217,255,249,255,0,0,227,255,196,255,191,255,207,255,227,255,244,255,5,0,27,0,47,0,52,0,43,0,26,0,255,255,224,255,209,255,220,255,2,0,50,0,90,0,125,0,164,0,185,0,173,0,148,0,121,0,90,0,58, +0,25,0,1,0,237,255,231,255,228,255,226,255,218,255,204,255,204,255,221,255,241,255,254,255,6,0,255,255,239,255,224,255,227,255,239,255,246,255,243,255,242,255,242,255,238,255,229,255,218,255,201,255,188,255,185,255,183,255,174,255,162,255,157,255,172, +255,206,255,243,255,12,0,27,0,54,0,106,0,161,0,200,0,216,0,214,0,206,0,199,0,177,0,126,0,41,0,192,255,89,255,12,255,225,254,219,254,245,254,37,255,113,255,212,255,51,0,116,0,147,0,159,0,176,0,197,0,218,0,237,0,245,0,226,0,169,0,85,0,245,255,135,255,15, +255,163,254,102,254,118,254,205,254,54,255,142,255,208,255,248,255,15,0,31,0,32,0,21,0,11,0,5,0,5,0,15,0,18,0,249,255,194,255,131,255,85,255,61,255,49,255,49,255,66,255,95,255,130,255,175,255,227,255,14,0,39,0,47,0,48,0,52,0,55,0,45,0,35,0,43,0,60,0, +61,0,31,0,228,255,169,255,137,255,137,255,160,255,189,255,222,255,10,0,65,0,132,0,192,0,215,0,186,0,122,0,57,0,8,0,232,255,211,255,196,255,193,255,205,255,221,255,230,255,224,255,201,255,177,255,169,255,171,255,175,255,181,255,190,255,204,255,231,255, +7,0,23,0,16,0,253,255,238,255,236,255,235,255,223,255,208,255,205,255,218,255,239,255,1,0,5,0,242,255,205,255,169,255,151,255,156,255,172,255,183,255,197,255,216,255,231,255,232,255,215,255,182,255,147,255,131,255,149,255,200,255,11,0,74,0,124,0,157, +0,181,0,197,0,192,0,164,0,129,0,103,0,96,0,103,0,112,0,116,0,118,0,119,0,122,0,129,0,133,0,128,0,114,0,99,0,95,0,105,0,121,0,136,0,146,0,150,0,142,0,120,0,90,0,55,0,16,0,235,255,210,255,201,255,208,255,227,255,251,255,15,0,33,0,53,0,74,0,94,0,109,0,116, +0,113,0,103,0,84,0,62,0,43,0,29,0,14,0,3,0,2,0,11,0,23,0,29,0,32,0,36,0,42,0,39,0,28,0,11,0,253,255,246,255,243,255,243,255,248,255,0,0,0,0,247,255,238,255,232,255,222,255,210,255,202,255,205,255,220,255,245,255,20,0,47,0,57,0,49,0,30,0,5,0,225,255,186, +255,154,255,137,255,132,255,133,255,139,255,139,255,132,255,127,255,133,255,144,255,152,255,154,255,160,255,171,255,185,255,193,255,196,255,202,255,210,255,212,255,211,255,212,255,213,255,212,255,208,255,204,255,206,255,215,255,226,255,237,255,247,255, +251,255,247,255,240,255,235,255,237,255,247,255,6,0,27,0,47,0,53,0,47,0,38,0,28,0,23,0,26,0,35,0,43,0,43,0,35,0,30,0,27,0,10,0,232,255,192,255,156,255,128,255,114,255,108,255,98,255,80,255,61,255,51,255,55,255,71,255,90,255,105,255,112,255,111,255,105, +255,102,255,105,255,112,255,125,255,148,255,181,255,209,255,221,255,217,255,204,255,194,255,196,255,211,255,237,255,13,0,45,0,71,0,94,0,110,0,110,0,100,0,85,0,69,0,57,0,55,0,62,0,72,0,78,0,81,0,86,0,95,0,107,0,119,0,123,0,115,0,98,0,75,0,52,0,38,0,37, +0,46,0,60,0,78,0,99,0,110,0,102,0,77,0,50,0,30,0,18,0,10,0,11,0,21,0,37,0,51,0,59,0,60,0,53,0,46,0,45,0,58,0,83,0,102,0,105,0,98,0,90,0,85,0,83,0,77,0,70,0,64,0,58,0,55,0,57,0,59,0,56,0,47,0,44,0,60,0,93,0,122,0,132,0,116,0,86,0,54,0,26,0,4,0,250,255, +252,255,3,0,13,0,29,0,51,0,66,0,62,0,47,0,29,0,10,0,0,0,1,0,8,0,14,0,18,0,22,0,29,0,32,0,23,0,8,0,255,255,245,255,225,255,201,255,186,255,183,255,190,255,197,255,200,255,208,255,222,255,239,255,255,255,12,0,21,0,21,0,12,0,254,255,242,255,238,255,241, +255,246,255,250,255,249,255,242,255,229,255,213,255,199,255,194,255,199,255,212,255,231,255,250,255,7,0,12,0,11,0,3,0,241,255,223,255,218,255,220,255,213,255,196,255,178,255,167,255,168,255,179,255,194,255,212,255,225,255,223,255,209,255,190,255,167, +255,137,255,105,255,86,255,86,255,100,255,121,255,142,255,157,255,165,255,174,255,189,255,206,255,216,255,219,255,214,255,197,255,174,255,148,255,128,255,125,255,138,255,156,255,175,255,194,255,211,255,221,255,226,255,234,255,240,255,240,255,240,255, +250,255,15,0,41,0,66,0,85,0,95,0,97,0,94,0,87,0,73,0,49,0,20,0,254,255,245,255,245,255,249,255,0,0,9,0,17,0,29,0,46,0,56,0,54,0,49,0,51,0,55,0,51,0,42,0,37,0,31,0,20,0,10,0,6,0,4,0,3,0,6,0,18,0,27,0,25,0,12,0,255,255,248,255,248,255,249,255,253,255,3, +0,3,0,253,255,247,255,243,255,244,255,249,255,249,255,244,255,241,255,248,255,11,0,34,0,55,0,65,0,67,0,70,0,73,0,72,0,71,0,67,0,59,0,51,0,52,0,60,0,68,0,75,0,82,0,85,0,81,0,74,0,73,0,77,0,84,0,90,0,99,0,107,0,108,0,97,0,77,0,55,0,36,0,24,0,25,0,35,0, +50,0,65,0,76,0,80,0,78,0,61,0,31,0,0,0,236,255,231,255,235,255,241,255,246,255,254,255,8,0,15,0,16,0,20,0,29,0,36,0,30,0,12,0,247,255,229,255,219,255,219,255,230,255,249,255,13,0,28,0,37,0,42,0,44,0,43,0,34,0,17,0,251,255,235,255,227,255,221,255,218, +255,213,255,205,255,193,255,183,255,177,255,175,255,172,255,160,255,140,255,123,255,116,255,115,255,116,255,120,255,124,255,128,255,133,255,140,255,144,255,143,255,141,255,139,255,139,255,141,255,146,255,154,255,168,255,186,255,200,255,203,255,198,255, +190,255,181,255,173,255,169,255,165,255,162,255,162,255,165,255,171,255,180,255,189,255,195,255,204,255,220,255,236,255,246,255,251,255,255,255,2,0,7,0,16,0,27,0,31,0,23,0,7,0,243,255,221,255,197,255,180,255,177,255,185,255,201,255,224,255,253,255,25, +0,44,0,53,0,57,0,59,0,63,0,67,0,72,0,77,0,78,0,67,0,49,0,34,0,31,0,37,0,46,0,60,0,78,0,93,0,106,0,119,0,136,0,158,0,179,0,192,0,197,0,195,0,185,0,162,0,132,0,105,0,84,0,73,0,68,0,68,0,65,0,59,0,54,0,50,0,45,0,35,0,29,0,35,0,49,0,62,0,69,0,75,0,81,0,82, +0,76,0,67,0,61,0,59,0,57,0,55,0,45,0,23,0,249,255,225,255,218,255,227,255,242,255,1,0,11,0,15,0,11,0,0,0,241,255,222,255,203,255,194,255,194,255,198,255,203,255,206,255,205,255,204,255,212,255,230,255,249,255,0,0,251,255,239,255,227,255,219,255,216,255, +218,255,223,255,233,255,245,255,252,255,251,255,239,255,218,255,199,255,191,255,199,255,219,255,244,255,8,0,18,0,18,0,13,0,4,0,247,255,232,255,221,255,216,255,215,255,220,255,230,255,238,255,239,255,241,255,245,255,242,255,233,255,222,255,217,255,217, +255,221,255,225,255,225,255,225,255,224,255,223,255,223,255,222,255,215,255,204,255,193,255,184,255,174,255,164,255,154,255,150,255,152,255,159,255,169,255,179,255,185,255,187,255,185,255,188,255,197,255,209,255,219,255,226,255,226,255,221,255,214,255, +208,255,208,255,210,255,207,255,199,255,193,255,192,255,196,255,207,255,219,255,231,255,247,255,13,0,35,0,53,0,61,0,59,0,50,0,39,0,30,0,27,0,31,0,39,0,44,0,43,0,39,0,39,0,42,0,44,0,44,0,47,0,51,0,48,0,34,0,14,0,252,255,239,255,228,255,222,255,226,255, +237,255,248,255,253,255,252,255,249,255,243,255,233,255,222,255,221,255,230,255,241,255,252,255,4,0,7,0,6,0,4,0,2,0,3,0,7,0,13,0,18,0,25,0,33,0,40,0,46,0,50,0,54,0,62,0,75,0,90,0,102,0,107,0,109,0,108,0,104,0,100,0,95,0,90,0,87,0,94,0,108,0,122,0,128, +0,125,0,121,0,121,0,120,0,112,0,98,0,81,0,61,0,42,0,28,0,18,0,13,0,12,0,7,0,1,0,255,255,254,255,249,255,248,255,251,255,4,0,13,0,15,0,12,0,8,0,4,0,255,255,249,255,239,255,224,255,208,255,200,255,203,255,214,255,227,255,239,255,247,255,253,255,2,0,4,0, +5,0,255,255,242,255,224,255,208,255,200,255,196,255,194,255,194,255,196,255,194,255,189,255,187,255,192,255,200,255,211,255,222,255,231,255,232,255,227,255,222,255,222,255,223,255,225,255,229,255,230,255,227,255,221,255,213,255,205,255,199,255,191,255, +179,255,166,255,158,255,160,255,168,255,178,255,191,255,208,255,225,255,240,255,250,255,2,0,9,0,16,0,16,0,9,0,255,255,246,255,236,255,223,255,210,255,199,255,190,255,181,255,178,255,184,255,193,255,199,255,203,255,206,255,212,255,220,255,228,255,234, +255,237,255,235,255,229,255,220,255,208,255,199,255,200,255,208,255,216,255,225,255,235,255,245,255,251,255,255,255,7,0,20,0,36,0,57,0,76,0,88,0,87,0,77,0,62,0,47,0,32,0,15,0,0,0,244,255,234,255,231,255,236,255,247,255,6,0,29,0,54,0,75,0,87,0,88,0,84, +0,75,0,58,0,34,0,9,0,245,255,232,255,227,255,228,255,228,255,225,255,220,255,217,255,220,255,225,255,230,255,235,255,242,255,248,255,254,255,6,0,18,0,33,0,48,0,60,0,69,0,77,0,80,0,81,0,82,0,88,0,98,0,110,0,123,0,131,0,132,0,124,0,109,0,90,0,71,0,57,0, +50,0,47,0,47,0,46,0,42,0,37,0,32,0,29,0,29,0,29,0,30,0,32,0,32,0,31,0,31,0,31,0,33,0,35,0,34,0,32,0,25,0,11,0,249,255,232,255,222,255,218,255,221,255,226,255,236,255,251,255,14,0,34,0,53,0,70,0,77,0,71,0,55,0,37,0,21,0,8,0,255,255,252,255,3,0,16,0,27, +0,31,0,28,0,23,0,23,0,28,0,34,0,33,0,21,0,1,0,236,255,224,255,223,255,222,255,215,255,207,255,207,255,209,255,208,255,204,255,202,255,198,255,189,255,183,255,186,255,189,255,186,255,179,255,176,255,175,255,174,255,179,255,196,255,217,255,229,255,231, +255,227,255,221,255,214,255,211,255,216,255,224,255,227,255,222,255,210,255,194,255,180,255,172,255,170,255,170,255,175,255,186,255,199,255,211,255,218,255,219,255,216,255,211,255,205,255,200,255,196,255,190,255,181,255,171,255,166,255,168,255,174,255, +183,255,191,255,200,255,209,255,215,255,217,255,216,255,214,255,212,255,212,255,213,255,215,255,216,255,212,255,205,255,193,255,180,255,171,255,171,255,176,255,183,255,191,255,208,255,232,255,3,0,22,0,29,0,24,0,11,0,250,255,238,255,234,255,238,255,249, +255,6,0,17,0,27,0,33,0,33,0,30,0,27,0,23,0,20,0,19,0,26,0,36,0,47,0,55,0,61,0,66,0,68,0,65,0,58,0,54,0,52,0,50,0,45,0,42,0,43,0,48,0,57,0,69,0,81,0,91,0,101,0,112,0,120,0,119,0,109,0,94,0,83,0,77,0,72,0,66,0,58,0,51,0,47,0,46,0,49,0,57,0,67,0,80,0,94, +0,106,0,113,0,112,0,101,0,80,0,55,0,29,0,9,0,253,255,251,255,0,0,9,0,20,0,28,0,33,0,36,0,35,0,31,0,24,0,15,0,5,0,0,0,1,0,3,0,0,0,248,255,239,255,232,255,229,255,229,255,234,255,243,255,250,255,253,255,254,255,253,255,248,255,243,255,243,255,247,255,254, +255,4,0,7,0,4,0,253,255,246,255,241,255,238,255,236,255,230,255,223,255,220,255,219,255,220,255,225,255,234,255,245,255,253,255,3,0,5,0,2,0,251,255,242,255,236,255,234,255,236,255,242,255,252,255,6,0,15,0,24,0,34,0,41,0,42,0,40,0,38,0,38,0,35,0,28,0, +19,0,15,0,15,0,18,0,22,0,23,0,18,0,10,0,3,0,252,255,243,255,231,255,221,255,216,255,218,255,224,255,234,255,242,255,245,255,244,255,240,255,236,255,235,255,231,255,223,255,217,255,214,255,217,255,223,255,231,255,237,255,239,255,233,255,222,255,210,255, +198,255,189,255,186,255,190,255,197,255,204,255,211,255,217,255,219,255,218,255,219,255,221,255,222,255,223,255,223,255,217,255,205,255,191,255,185,255,187,255,196,255,208,255,221,255,233,255,240,255,239,255,235,255,233,255,230,255,227,255,222,255,218, +255,217,255,218,255,220,255,222,255,225,255,225,255,224,255,228,255,238,255,249,255,0,0,255,255,249,255,241,255,235,255,235,255,239,255,244,255,248,255,252,255,0,0,1,0,1,0,254,255,249,255,244,255,242,255,240,255,239,255,237,255,238,255,243,255,250,255, +3,0,9,0,12,0,13,0,14,0,13,0,9,0,3,0,253,255,246,255,242,255,244,255,249,255,0,0,8,0,19,0,27,0,32,0,35,0,40,0,46,0,52,0,54,0,52,0,47,0,42,0,41,0,44,0,47,0,50,0,55,0,61,0,65,0,67,0,67,0,61,0,52,0,46,0,45,0,45,0,44,0,40,0,38,0,38,0,41,0,45,0,47,0,43,0,28, +0,8,0,246,255,235,255,229,255,227,255,226,255,225,255,221,255,218,255,220,255,226,255,235,255,247,255,3,0,11,0,14,0,15,0,10,0,0,0,245,255,236,255,229,255,228,255,235,255,247,255,2,0,8,0,6,0,253,255,247,255,251,255,6,0,18,0,27,0,31,0,29,0,24,0,22,0,25, +0,30,0,33,0,37,0,42,0,46,0,46,0,42,0,34,0,27,0,27,0,32,0,36,0,36,0,28,0,17,0,7,0,0,0,252,255,250,255,251,255,0,0,7,0,14,0,16,0,11,0,1,0,247,255,245,255,250,255,255,255,0,0,255,255,255,255,253,255,251,255,253,255,5,0,17,0,27,0,34,0,40,0,44,0,43,0,34,0, +22,0,10,0,2,0,254,255,252,255,248,255,241,255,234,255,228,255,219,255,207,255,201,255,205,255,214,255,223,255,229,255,230,255,229,255,226,255,223,255,221,255,217,255,209,255,198,255,187,255,178,255,172,255,170,255,172,255,178,255,187,255,198,255,210, +255,223,255,235,255,244,255,250,255,251,255,249,255,248,255,250,255,253,255,254,255,253,255,252,255,254,255,2,0,8,0,15,0,22,0,24,0,20,0,10,0,0,0,250,255,248,255,247,255,243,255,237,255,233,255,231,255,231,255,230,255,226,255,223,255,224,255,225,255,226, +255,225,255,225,255,225,255,225,255,227,255,232,255,241,255,252,255,4,0,9,0,11,0,9,0,2,0,251,255,245,255,242,255,242,255,246,255,255,255,9,0,18,0,24,0,30,0,34,0,34,0,29,0,24,0,22,0,21,0,23,0,28,0,34,0,38,0,37,0,34,0,29,0,23,0,19,0,20,0,25,0,29,0,33,0, +37,0,41,0,41,0,39,0,36,0,35,0,34,0,31,0,26,0,20,0,15,0,14,0,15,0,19,0,22,0,23,0,23,0,22,0,22,0,19,0,13,0,4,0,252,255,246,255,245,255,248,255,252,255,3,0,11,0,17,0,19,0,15,0,8,0,0,0,252,255,252,255,254,255,0,0,255,255,253,255,253,255,255,255,3,0,5,0,6, +0,6,0,2,0,252,255,247,255,246,255,249,255,0,0,7,0,10,0,11,0,10,0,11,0,13,0,15,0,16,0,12,0,6,0,254,255,246,255,238,255,230,255,224,255,222,255,224,255,229,255,235,255,242,255,251,255,4,0,12,0,15,0,15,0,14,0,13,0,8,0,1,0,250,255,244,255,237,255,235,255, +238,255,244,255,252,255,6,0,15,0,22,0,25,0,21,0,11,0,255,255,245,255,237,255,233,255,233,255,234,255,234,255,236,255,243,255,250,255,252,255,252,255,250,255,245,255,237,255,230,255,225,255,223,255,223,255,223,255,226,255,229,255,230,255,227,255,222,255, +219,255,218,255,219,255,224,255,231,255,240,255,247,255,249,255,250,255,250,255,250,255,245,255,236,255,225,255,222,255,226,255,232,255,235,255,239,255,243,255,248,255,253,255,255,255,254,255,248,255,239,255,234,255,235,255,241,255,245,255,247,255,248, +255,249,255,249,255,248,255,247,255,245,255,242,255,240,255,238,255,235,255,231,255,225,255,221,255,222,255,225,255,228,255,234,255,241,255,247,255,253,255,4,0,10,0,13,0,15,0,21,0,27,0,33,0,39,0,43,0,44,0,44,0,45,0,48,0,51,0,53,0,54,0,54,0,52,0,50,0, +47,0,44,0,44,0,46,0,45,0,40,0,30,0,18,0,9,0,7,0,8,0,10,0,9,0,2,0,250,255,248,255,251,255,0,0,2,0,2,0,3,0,7,0,10,0,11,0,7,0,255,255,247,255,244,255,245,255,250,255,1,0,12,0,26,0,38,0,46,0,46,0,40,0,31,0,25,0,27,0,35,0,44,0,50,0,54,0,58,0,60,0,59,0,56, +0,48,0,40,0,32,0,29,0,28,0,31,0,33,0,33,0,32,0,29,0,26,0,21,0,14,0,5,0,252,255,244,255,238,255,233,255,230,255,229,255,227,255,224,255,221,255,217,255,214,255,210,255,204,255,198,255,193,255,190,255,191,255,195,255,198,255,199,255,197,255,195,255,194, +255,196,255,200,255,206,255,214,255,219,255,221,255,222,255,224,255,226,255,229,255,231,255,232,255,232,255,234,255,236,255,237,255,237,255,236,255,231,255,227,255,225,255,226,255,231,255,241,255,1,0,20,0,36,0,44,0,45,0,38,0,26,0,11,0,255,255,246,255, +242,255,242,255,241,255,241,255,241,255,242,255,242,255,242,255,242,255,241,255,240,255,237,255,233,255,229,255,225,255,225,255,226,255,227,255,226,255,224,255,223,255,226,255,231,255,233,255,233,255,235,255,239,255,244,255,250,255,0,0,6,0,9,0,8,0,8, +0,11,0,14,0,17,0,19,0,22,0,26,0,31,0,34,0,36,0,37,0,38,0,39,0,40,0,39,0,35,0,30,0,25,0,18,0,7,0,251,255,240,255,236,255,236,255,238,255,240,255,241,255,245,255,252,255,3,0,6,0,7,0,10,0,17,0,28,0,39,0,45,0,45,0,41,0,38,0,36,0,38,0,38,0,37,0,36,0,36,0, +34,0,32,0,30,0,29,0,31,0,36,0,43,0,49,0,51,0,51,0,49,0,44,0,37,0,28,0,20,0,15,0,15,0,20,0,28,0,34,0,36,0,35,0,30,0,23,0,13,0,0,0,243,255,230,255,221,255,215,255,212,255,214,255,221,255,232,255,246,255,4,0,12,0,14,0,10,0,7,0,7,0,10,0,11,0,11,0,12,0,14, +0,16,0,18,0,16,0,12,0,7,0,2,0,253,255,248,255,245,255,242,255,241,255,244,255,249,255,252,255,253,255,254,255,0,0,0,0,251,255,241,255,231,255,224,255,218,255,214,255,211,255,211,255,215,255,219,255,222,255,222,255,219,255,215,255,213,255,214,255,216, +255,218,255,221,255,225,255,230,255,235,255,240,255,241,255,238,255,234,255,231,255,230,255,227,255,223,255,220,255,220,255,222,255,227,255,233,255,239,255,244,255,248,255,249,255,247,255,242,255,234,255,225,255,217,255,212,255,213,255,220,255,230,255, +238,255,243,255,245,255,242,255,238,255,235,255,232,255,228,255,221,255,214,255,211,255,210,255,212,255,215,255,220,255,224,255,229,255,234,255,239,255,241,255,240,255,237,255,235,255,237,255,243,255,253,255,7,0,14,0,22,0,30,0,37,0,39,0,36,0,30,0,26, +0,28,0,34,0,39,0,42,0,41,0,36,0,29,0,22,0,18,0,16,0,17,0,20,0,22,0,21,0,19,0,18,0,20,0,21,0,19,0,13,0,6,0,2,0,1,0,3,0,6,0,6,0,1,0,250,255,246,255,247,255,252,255,4,0,12,0,20,0,27,0,31,0,35,0,39,0,43,0,46,0,47,0,45,0,42,0,41,0,42,0,44,0,44,0,41,0,38,0, +38,0,42,0,51,0,59,0,62,0,57,0,47,0,37,0,29,0,22,0,17,0,14,0,13,0,12,0,10,0,8,0,5,0,1,0,252,255,246,255,242,255,239,255,238,255,238,255,237,255,239,255,243,255,249,255,255,255,3,0,6,0,8,0,8,0,5,0,255,255,247,255,240,255,237,255,239,255,245,255,0,0,12, +0,24,0,33,0,38,0,37,0,31,0,25,0,21,0,18,0,16,0,17,0,20,0,23,0,24,0,23,0,20,0,18,0,15,0,14,0,14,0,15,0,16,0,17,0,16,0,14,0,11,0,7,0,4,0,1,0,253,255,248,255,242,255,236,255,233,255,232,255,232,255,234,255,236,255,238,255,237,255,232,255,223,255,213,255, +206,255,203,255,203,255,205,255,205,255,203,255,200,255,196,255,194,255,197,255,203,255,212,255,222,255,231,255,239,255,243,255,244,255,241,255,237,255,233,255,227,255,220,255,217,255,218,255,223,255,229,255,234,255,240,255,245,255,247,255,246,255,244, +255,240,255,234,255,227,255,222,255,221,255,221,255,221,255,220,255,222,255,225,255,226,255,222,255,214,255,203,255,192,255,183,255,179,255,181,255,188,255,198,255,210,255,222,255,232,255,239,255,241,255,240,255,237,255,235,255,234,255,235,255,236,255, +239,255,244,255,251,255,3,0,12,0,23,0,35,0,47,0,54,0,54,0,50,0,45,0,44,0,48,0,55,0,60,0,61,0,60,0,56,0,50,0,42,0,36,0,32,0,30,0,28,0,29,0,31,0,33,0,34,0,33,0,28,0,23,0,19,0,17,0,16,0,16,0,14,0,9,0,2,0,251,255,248,255,249,255,255,255,8,0,18,0,26,0,30, +0,32,0,33,0,32,0,30,0,24,0,15,0,8,0,4,0,2,0,2,0,5,0,12,0,21,0,28,0,32,0,34,0,34,0,31,0,26,0,19,0,11,0,6,0,4,0,6,0,11,0,17,0,23,0,27,0,29,0,27,0,20,0,9,0,0,0,250,255,249,255,251,255,1,0,10,0,20,0,30,0,37,0,40,0,38,0,31,0,22,0,12,0,2,0,249,255,242,255, +238,255,237,255,241,255,247,255,255,255,6,0,9,0,9,0,4,0,252,255,242,255,232,255,224,255,219,255,217,255,216,255,215,255,216,255,217,255,219,255,221,255,222,255,224,255,226,255,232,255,240,255,249,255,0,0,4,0,7,0,8,0,7,0,5,0,2,0,253,255,246,255,240,255, +236,255,235,255,237,255,240,255,241,255,241,255,239,255,239,255,241,255,245,255,249,255,251,255,253,255,254,255,0,0,4,0,8,0,11,0,7,0,252,255,236,255,221,255,211,255,207,255,207,255,207,255,208,255,210,255,215,255,223,255,232,255,240,255,245,255,246,255, +243,255,239,255,240,255,241,255,241,255,238,255,235,255,233,255,232,255,232,255,235,255,239,255,242,255,244,255,246,255,252,255,4,0,14,0,23,0,30,0,30,0,27,0,26,0,28,0,31,0,33,0,32,0,28,0,19,0,9,0,0,0,251,255,250,255,251,255,252,255,0,0,9,0,22,0,36,0, +46,0,49,0,46,0,42,0,38,0,36,0,33,0,28,0,23,0,20,0,17,0,16,0,16,0,17,0,19,0,22,0,26,0,30,0,30,0,29,0,27,0,25,0,19,0,11,0,2,0,252,255,251,255,251,255,249,255,246,255,243,255,238,255,236,255,241,255,250,255,5,0,13,0,17,0,20,0,21,0,20,0,17,0,12,0,7,0,3,0, +2,0,4,0,5,0,4,0,3,0,2,0,3,0,6,0,9,0,11,0,12,0,11,0,8,0,3,0,254,255,250,255,247,255,247,255,249,255,252,255,253,255,253,255,253,255,253,255,250,255,244,255,237,255,231,255,226,255,221,255,218,255,217,255,218,255,220,255,222,255,223,255,224,255,224,255, +224,255,224,255,223,255,221,255,220,255,223,255,226,255,230,255,233,255,237,255,240,255,245,255,250,255,254,255,0,0,0,0,255,255,252,255,251,255,252,255,254,255,1,0,5,0,8,0,7,0,3,0,0,0,255,255,1,0,3,0,3,0,1,0,254,255,253,255,254,255,255,255,255,255,251, +255,247,255,245,255,246,255,249,255,252,255,251,255,246,255,242,255,239,255,241,255,243,255,246,255,250,255,1,0,8,0,14,0,17,0,17,0,14,0,11,0,8,0,7,0,7,0,8,0,9,0,9,0,9,0,9,0,8,0,6,0,4,0,2,0,0,0,255,255,253,255,252,255,251,255,253,255,1,0,7,0,13,0,17,0, +17,0,15,0,10,0,2,0,249,255,243,255,243,255,248,255,255,255,8,0,14,0,18,0,18,0,15,0,10,0,3,0,252,255,245,255,241,255,239,255,239,255,240,255,243,255,247,255,250,255,0,0,6,0,10,0,10,0,7,0,4,0,3,0,3,0,6,0,11,0,17,0,23,0,25,0,21,0,13,0,6,0,0,0,250,255,244, +255,241,255,243,255,249,255,3,0,12,0,17,0,18,0,15,0,10,0,4,0,254,255,249,255,246,255,247,255,250,255,253,255,254,255,0,0,1,0,1,0,1,0,0,0,255,255,0,0,2,0,4,0,6,0,8,0,9,0,9,0,9,0,11,0,14,0,17,0,21,0,25,0,28,0,28,0,26,0,23,0,19,0,16,0,14,0,15,0,16,0,16, +0,16,0,17,0,19,0,21,0,22,0,22,0,22,0,20,0,14,0,7,0,255,255,249,255,245,255,243,255,242,255,241,255,240,255,239,255,238,255,239,255,239,255,240,255,240,255,241,255,244,255,247,255,250,255,250,255,248,255,243,255,237,255,232,255,230,255,233,255,236,255, +241,255,247,255,252,255,255,255,254,255,249,255,243,255,236,255,231,255,229,255,230,255,233,255,234,255,236,255,240,255,242,255,243,255,243,255,241,255,239,255,238,255,238,255,237,255,235,255,231,255,229,255,229,255,232,255,237,255,240,255,243,255,244, +255,245,255,248,255,251,255,252,255,252,255,250,255,250,255,250,255,252,255,255,255,4,0,8,0,11,0,13,0,13,0,12,0,9,0,5,0,3,0,1,0,255,255,254,255,255,255,1,0,3,0,4,0,3,0,0,0,251,255,245,255,241,255,240,255,240,255,241,255,243,255,246,255,249,255,251,255, +252,255,252,255,249,255,246,255,244,255,242,255,242,255,243,255,246,255,249,255,252,255,254,255,1,0,7,0,13,0,19,0,25,0,30,0,31,0,30,0,27,0,25,0,25,0,28,0,33,0,37,0,39,0,38,0,35,0,33,0,30,0,26,0,25,0,27,0,31,0,35,0,37,0,36,0,32,0,26,0,19,0,12,0,6,0,3, +0,2,0,255,255,250,255,241,255,230,255,220,255,214,255,214,255,218,255,223,255,227,255,231,255,232,255,232,255,234,255,237,255,240,255,243,255,245,255,245,255,242,255,238,255,234,255,233,255,235,255,242,255,252,255,7,0,18,0,25,0,27,0,25,0,21,0,18,0,18, +0,20,0,23,0,25,0,27,0,29,0,28,0,26,0,24,0,25,0,26,0,26,0,24,0,22,0,16,0,10,0,5,0,3,0,4,0,6,0,6,0,5,0,2,0,253,255,247,255,242,255,238,255,236,255,236,255,235,255,233,255,228,255,224,255,222,255,222,255,223,255,226,255,230,255,235,255,240,255,244,255,248, +255,248,255,248,255,246,255,247,255,248,255,250,255,251,255,254,255,1,0,4,0,7,0,9,0,10,0,10,0,10,0,12,0,16,0,22,0,25,0,25,0,21,0,17,0,13,0,11,0,9,0,7,0,6,0,4,0,4,0,4,0,2,0,255,255,251,255,248,255,247,255,249,255,253,255,0,0,4,0,7,0,7,0,6,0,5,0,7,0,8, +0,8,0,9,0,10,0,10,0,9,0,7,0,6,0,7,0,7,0,7,0,7,0,4,0,1,0,253,255,250,255,248,255,248,255,249,255,251,255,255,255,2,0,1,0,253,255,246,255,241,255,237,255,235,255,234,255,233,255,230,255,226,255,223,255,223,255,225,255,225,255,224,255,222,255,221,255,220, +255,219,255,217,255,214,255,213,255,214,255,219,255,227,255,234,255,238,255,239,255,239,255,238,255,237,255,234,255,232,255,234,255,239,255,244,255,249,255,251,255,253,255,255,255,1,0,3,0,5,0,8,0,12,0,15,0,16,0,15,0,14,0,12,0,12,0,14,0,16,0,18,0,18,0, +18,0,16,0,15,0,14,0,12,0,10,0,7,0,5,0,4,0,6,0,10,0,14,0,17,0,20,0,21,0,22,0,20,0,18,0,14,0,9,0,4,0,0,0,0,0,1,0,2,0,3,0,3,0,2,0,0,0,254,255,253,255,253,255,254,255,255,255,0,0,1,0,2,0,2,0,4,0,5,0,7,0,7,0,7,0,8,0,13,0,21,0,28,0,31,0,30,0,27,0,24,0,22,0, +21,0,20,0,20,0,19,0,16,0,14,0,13,0,13,0,13,0,14,0,15,0,18,0,21,0,22,0,22,0,19,0,16,0,15,0,16,0,18,0,21,0,22,0,22,0,19,0,15,0,10,0,6,0,4,0,4,0,6,0,10,0,12,0,13,0,13,0,10,0,7,0,4,0,3,0,5,0,9,0,13,0,16,0,16,0,15,0,12,0,9,0,6,0,1,0,252,255,246,255,242,255, +240,255,242,255,245,255,246,255,245,255,244,255,242,255,241,255,239,255,236,255,232,255,229,255,227,255,228,255,231,255,233,255,234,255,234,255,233,255,230,255,226,255,222,255,220,255,219,255,218,255,217,255,217,255,217,255,218,255,219,255,221,255,223, +255,225,255,227,255,230,255,233,255,234,255,234,255,232,255,231,255,231,255,233,255,236,255,239,255,242,255,243,255,245,255,247,255,251,255,254,255,1,0,3,0,4,0,7,0,9,0,10,0,10,0,9,0,6,0,2,0,254,255,251,255,250,255,250,255,250,255,249,255,248,255,247, +255,248,255,249,255,249,255,248,255,245,255,243,255,244,255,249,255,255,255,3,0,4,0,5,0,5,0,6,0,6,0,4,0,1,0,253,255,251,255,250,255,251,255,253,255,254,255,255,255,255,255,1,0,4,0,6,0,8,0,8,0,7,0,5,0,2,0,1,0,1,0,1,0,3,0,5,0,7,0,8,0,7,0,6,0,5,0,4,0,3, +0,4,0,4,0,4,0,3,0,5,0,7,0,8,0,6,0,2,0,253,255,250,255,249,255,253,255,3,0,7,0,10,0,12,0,14,0,17,0,19,0,19,0,19,0,17,0,15,0,14,0,13,0,13,0,13,0,13,0,13,0,12,0,9,0,6,0,4,0,5,0,6,0,7,0,8,0,11,0,14,0,18,0,22,0,24,0,26,0,26,0,26,0,25,0,25,0,22,0,18,0,13,0, +8,0,6,0,6,0,8,0,10,0,12,0,13,0,14,0,15,0,17,0,18,0,17,0,16,0,15,0,16,0,19,0,21,0,22,0,23,0,22,0,19,0,15,0,11,0,9,0,6,0,4,0,2,0,1,0,0,0,255,255,0,0,1,0,1,0,1,0,255,255,253,255,251,255,248,255,244,255,241,255,240,255,242,255,244,255,247,255,247,255,246, +255,242,255,239,255,237,255,236,255,235,255,234,255,233,255,231,255,229,255,227,255,226,255,227,255,230,255,234,255,241,255,247,255,251,255,252,255,252,255,251,255,250,255,249,255,249,255,250,255,252,255,252,255,250,255,247,255,244,255,242,255,243,255, +245,255,248,255,250,255,252,255,254,255,255,255,255,255,254,255,253,255,252,255,251,255,248,255,243,255,236,255,227,255,221,255,219,255,221,255,226,255,231,255,236,255,238,255,238,255,238,255,238,255,238,255,238,255,239,255,241,255,243,255,245,255,246, +255,247,255,248,255,248,255,247,255,247,255,246,255,244,255,241,255,240,255,239,255,240,255,242,255,244,255,247,255,251,255,254,255,1,0,4,0,6,0,9,0,14,0,20,0,24,0,24,0,20,0,14,0,9,0,6,0,7,0,8,0,10,0,12,0,15,0,18,0,19,0,17,0,13,0,9,0,5,0,3,0,2,0,0,0,254, +255,254,255,255,255,2,0,2,0,0,0,252,255,249,255,247,255,246,255,248,255,250,255,252,255,253,255,254,255,1,0,4,0,6,0,6,0,6,0,5,0,6,0,8,0,12,0,14,0,15,0,15,0,15,0,16,0,17,0,18,0,18,0,17,0,14,0,11,0,8,0,7,0,9,0,11,0,15,0,19,0,21,0,23,0,25,0,26,0,26,0,26, +0,25,0,22,0,18,0,13,0,8,0,5,0,2,0,2,0,3,0,5,0,7,0,9,0,10,0,10,0,8,0,5,0,1,0,254,255,252,255,252,255,252,255,251,255,250,255,249,255,248,255,249,255,249,255,248,255,248,255,247,255,248,255,249,255,250,255,250,255,251,255,252,255,255,255,255,255,254,255, +249,255,244,255,240,255,239,255,238,255,237,255,238,255,239,255,242,255,246,255,250,255,252,255,252,255,251,255,249,255,249,255,249,255,250,255,249,255,248,255,246,255,244,255,242,255,240,255,237,255,236,255,236,255,239,255,242,255,245,255,246,255,246, +255,246,255,244,255,242,255,241,255,239,255,240,255,243,255,245,255,247,255,248,255,250,255,253,255,0,0,2,0,2,0,2,0,2,0,4,0,7,0,10,0,10,0,8,0,6,0,5,0,5,0,6,0,8,0,8,0,7,0,6,0,5,0,5,0,5,0,6,0,9,0,10,0,10,0,8,0,5,0,0,0,251,255,249,255,249,255,251,255,253, +255,255,255,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,11,0,12,0,13,0,13,0,13,0,13,0,12,0,12,0,12,0,12,0,11,0,12,0,13,0,15,0,16,0,18,0,20,0,21,0,21,0,19,0,17,0,12,0,7,0,2,0,254,255,250,255,248,255,248,255,249,255,249,255,249,255,248,255,249,255,249,255,248,255, +247,255,246,255,246,255,247,255,250,255,253,255,0,0,255,255,252,255,248,255,245,255,242,255,240,255,240,255,243,255,246,255,249,255,249,255,249,255,248,255,248,255,248,255,248,255,249,255,251,255,252,255,255,255,1,0,1,0,0,0,254,255,253,255,253,255,253, +255,253,255,252,255,249,255,246,255,245,255,247,255,249,255,250,255,250,255,250,255,250,255,251,255,252,255,254,255,255,255,0,0,0,0,1,0,2,0,4,0,6,0,7,0,7,0,7,0,6,0,3,0,0,0,254,255,252,255,251,255,252,255,253,255,0,0,3,0,8,0,13,0,15,0,15,0,12,0,10,0,9, +0,10,0,12,0,13,0,13,0,12,0,12,0,11,0,11,0,10,0,8,0,5,0,2,0,254,255,251,255,248,255,247,255,248,255,249,255,250,255,250,255,251,255,251,255,252,255,251,255,250,255,248,255,246,255,245,255,244,255,245,255,246,255,246,255,246,255,243,255,240,255,238,255, +238,255,239,255,239,255,238,255,238,255,239,255,242,255,245,255,248,255,250,255,252,255,252,255,251,255,250,255,249,255,248,255,246,255,245,255,246,255,246,255,245,255,243,255,240,255,238,255,236,255,237,255,239,255,241,255,244,255,246,255,249,255,252, +255,255,255,1,0,2,0,1,0,254,255,251,255,247,255,244,255,242,255,242,255,244,255,247,255,253,255,2,0,8,0,14,0,19,0,23,0,24,0,23,0,19,0,15,0,12,0,9,0,6,0,2,0,255,255,253,255,252,255,254,255,2,0,8,0,13,0,16,0,18,0,19,0,20,0,20,0,21,0,20,0,19,0,17,0,14,0, +12,0,9,0,7,0,5,0,4,0,3,0,3,0,5,0,8,0,10,0,12,0,14,0,16,0,18,0,19,0,20,0,22,0,24,0,26,0,26,0,25,0,22,0,19,0,17,0,17,0,17,0,17,0,17,0,18,0,19,0,20,0,20,0,20,0,18,0,16,0,15,0,14,0,13,0,11,0,8,0,5,0,1,0,254,255,252,255,251,255,250,255,249,255,247,255,246, +255,247,255,248,255,249,255,250,255,249,255,248,255,244,255,240,255,236,255,233,255,233,255,234,255,234,255,234,255,234,255,235,255,238,255,241,255,243,255,244,255,242,255,240,255,239,255,240,255,241,255,242,255,243,255,243,255,243,255,244,255,247,255, +250,255,252,255,255,255,1,0,3,0,4,0,3,0,1,0,0,0,255,255,254,255,253,255,252,255,250,255,249,255,248,255,247,255,246,255,245,255,243,255,241,255,240,255,239,255,240,255,240,255,240,255,241,255,241,255,241,255,242,255,244,255,247,255,251,255,255,255,1, +0,1,0,1,0,0,0,0,0,254,255,253,255,250,255,247,255,244,255,242,255,242,255,244,255,247,255,250,255,251,255,252,255,253,255,254,255,255,255,255,255,252,255,249,255,247,255,247,255,247,255,246,255,243,255,241,255,240,255,241,255,242,255,243,255,243,255, +243,255,243,255,244,255,245,255,247,255,251,255,254,255,2,0,4,0,3,0,0,0,252,255,250,255,251,255,254,255,2,0,4,0,6,0,7,0,8,0,8,0,8,0,9,0,11,0,15,0,20,0,25,0,28,0,29,0,26,0,22,0,18,0,15,0,12,0,10,0,9,0,9,0,8,0,9,0,10,0,12,0,15,0,19,0,22,0,24,0,24,0,21, +0,16,0,10,0,5,0,2,0,1,0,2,0,5,0,9,0,12,0,14,0,15,0,16,0,16,0,16,0,16,0,17,0,17,0,15,0,14,0,13,0,13,0,13,0,12,0,10,0,7,0,3,0,0,0,254,255,253,255,251,255,251,255,251,255,252,255,255,255,1,0,2,0,1,0,0,0,255,255,253,255,252,255,250,255,249,255,248,255,248, +255,248,255,249,255,250,255,251,255,253,255,0,0,3,0,6,0,6,0,5,0,4,0,2,0,1,0,0,0,0,0,1,0,0,0,254,255,253,255,253,255,253,255,254,255,255,255,1,0,3,0,4,0,3,0,1,0,255,255,253,255,252,255,252,255,252,255,253,255,254,255,0,0,2,0,1,0,255,255,254,255,254,255, +252,255,250,255,248,255,246,255,243,255,242,255,242,255,244,255,245,255,246,255,247,255,247,255,248,255,249,255,250,255,250,255,249,255,248,255,247,255,245,255,243,255,240,255,237,255,234,255,231,255,229,255,228,255,229,255,232,255,236,255,241,255,245, +255,249,255,251,255,252,255,251,255,248,255,246,255,244,255,243,255,242,255,242,255,243,255,244,255,246,255,248,255,251,255,254,255,0,0,1,0,1,0,1,0,0,0,0,0,1,0,3,0,3,0,2,0,0,0,253,255,252,255,252,255,251,255,251,255,249,255,247,255,247,255,249,255,251, +255,252,255,252,255,251,255,249,255,247,255,246,255,245,255,245,255,245,255,245,255,246,255,247,255,248,255,250,255,252,255,254,255,0,0,2,0,4,0,7,0,8,0,9,0,9,0,9,0,9,0,9,0,11,0,13,0,14,0,15,0,15,0,16,0,16,0,17,0,17,0,17,0,16,0,15,0,14,0,14,0,13,0,12, +0,10,0,7,0,5,0,5,0,5,0,5,0,5,0,4,0,3,0,3,0,4,0,6,0,7,0,9,0,10,0,10,0,10,0,9,0,9,0,9,0,7,0,4,0,1,0,253,255,252,255,252,255,253,255,0,0,2,0,2,0,2,0,3,0,5,0,8,0,11,0,14,0,17,0,18,0,17,0,15,0,13,0,12,0,11,0,10,0,9,0,8,0,8,0,8,0,7,0,6,0,5,0,4,0,4,0,4,0,3, +0,2,0,2,0,4,0,7,0,9,0,12,0,13,0,13,0,12,0,10,0,8,0,6,0,4,0,1,0,255,255,254,255,255,255,1,0,4,0,8,0,11,0,11,0,10,0,8,0,5,0,2,0,255,255,251,255,248,255,245,255,242,255,241,255,240,255,240,255,240,255,238,255,237,255,236,255,236,255,237,255,239,255,241, +255,243,255,245,255,245,255,246,255,247,255,246,255,245,255,243,255,239,255,237,255,234,255,233,255,232,255,233,255,235,255,237,255,241,255,247,255,253,255,2,0,5,0,6,0,4,0,1,0,254,255,252,255,252,255,251,255,251,255,251,255,252,255,253,255,254,255,255, +255,255,255,255,255,0,0,2,0,2,0,0,0,254,255,252,255,250,255,249,255,248,255,249,255,250,255,250,255,249,255,247,255,245,255,243,255,242,255,241,255,242,255,245,255,247,255,249,255,249,255,250,255,250,255,249,255,248,255,247,255,247,255,247,255,247,255, +247,255,247,255,249,255,252,255,255,255,2,0,4,0,3,0,2,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,0,0,255,255,254,255,253,255,252,255,252,255,252,255,254,255,1,0,3,0,4,0,4,0,6,0,8,0,10,0,10,0,9,0,8,0,5,0,3,0,0,0,0,0,1,0,3,0,5,0,6,0,6,0,5,0,4,0,4,0,5,0,6,0,6,0, +7,0,8,0,9,0,9,0,9,0,8,0,6,0,3,0,2,0,2,0,3,0,4,0,6,0,7,0,7,0,8,0,9,0,11,0,12,0,12,0,11,0,9,0,8,0,7,0,6,0,5,0,4,0,3,0,2,0,2,0,3,0,4,0,4,0,5,0,5,0,5,0,5,0,4,0,4,0,4,0,5,0,4,0,4,0,3,0,2,0,1,0,0,0,254,255,251,255,249,255,249,255,251,255,254,255,2,0,4,0,5, +0,5,0,4,0,3,0,2,0,2,0,1,0,1,0,1,0,3,0,5,0,6,0,6,0,5,0,3,0,1,0,255,255,253,255,251,255,249,255,248,255,247,255,247,255,248,255,251,255,253,255,255,255,0,0,0,0,0,0,255,255,0,0,1,0,1,0,255,255,251,255,249,255,249,255,251,255,255,255,2,0,4,0,4,0,3,0,1,0, +255,255,255,255,254,255,254,255,255,255,0,0,2,0,4,0,4,0,1,0,253,255,249,255,245,255,243,255,241,255,241,255,242,255,243,255,244,255,247,255,249,255,251,255,252,255,252,255,251,255,249,255,246,255,243,255,241,255,239,255,239,255,239,255,241,255,243,255, +247,255,251,255,253,255,254,255,253,255,252,255,252,255,252,255,253,255,253,255,252,255,252,255,253,255,254,255,255,255,0,0,255,255,253,255,253,255,255,255,2,0,5,0,7,0,8,0,7,0,6,0,6,0,6,0,7,0,7,0,6,0,5,0,2,0,254,255,250,255,248,255,247,255,247,255,247, +255,249,255,251,255,253,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,254,255,252,255,251,255,250,255,250,255,251,255,253,255,255,255,1,0,3,0,4,0,5,0,6,0,7,0,9,0,11,0,12,0,13,0,13,0,12,0,12,0,11,0,11,0,12,0,12,0,13,0,14, +0,13,0,12,0,10,0,8,0,7,0,6,0,6,0,6,0,7,0,8,0,10,0,12,0,12,0,12,0,10,0,6,0,3,0,1,0,255,255,254,255,252,255,251,255,250,255,250,255,252,255,254,255,255,255,255,255,254,255,253,255,253,255,254,255,1,0,4,0,7,0,8,0,8,0,7,0,6,0,4,0,2,0,255,255,253,255,252, +255,254,255,0,0,2,0,3,0,3,0,3,0,2,0,0,0,254,255,253,255,252,255,251,255,249,255,247,255,245,255,244,255,243,255,244,255,246,255,247,255,247,255,246,255,245,255,245,255,245,255,245,255,244,255,243,255,243,255,243,255,243,255,244,255,244,255,245,255,244, +255,243,255,242,255,241,255,241,255,241,255,241,255,241,255,241,255,242,255,242,255,243,255,244,255,245,255,245,255,245,255,245,255,244,255,244,255,245,255,245,255,245,255,246,255,247,255,249,255,253,255,1,0,4,0,6,0,7,0,8,0,8,0,8,0,9,0,8,0,8,0,9,0,10, +0,10,0,10,0,10,0,10,0,10,0,10,0,9,0,9,0,8,0,9,0,10,0,12,0,13,0,13,0,13,0,11,0,9,0,5,0,2,0,255,255,253,255,252,255,252,255,252,255,251,255,251,255,252,255,255,255,2,0,4,0,4,0,2,0,1,0,0,0,254,255,254,255,253,255,253,255,253,255,254,255,255,255,255,255, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,2,0,3,0,2,0,2,0,3,0,5,0,7,0,8,0,8,0,8,0,8,0,7,0,7,0,5,0,4,0,3,0,2,0,2,0,3,0,4,0,4,0,6,0,7,0,8,0,7,0,6,0,4,0,3,0,2,0,2,0,5,0,8,0,11,0,14,0,15,0,15,0,13,0,12,0,10,0,9,0,10,0,10,0,11,0,12,0,12,0,12,0,10,0,7,0,4,0,1,0,0,0, +0,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,254,255,252,255,250,255,249,255,249,255,250,255,252,255,253,255,254,255,254,255,254,255,253,255,252,255,251,255,250,255,249,255,249,255,249,255,248,255,247,255,246,255,246,255,246,255,246,255,246,255,245,255, +245,255,246,255,247,255,249,255,249,255,249,255,247,255,245,255,245,255,245,255,245,255,244,255,242,255,240,255,238,255,236,255,236,255,236,255,237,255,240,255,243,255,246,255,248,255,249,255,248,255,247,255,245,255,244,255,244,255,245,255,247,255,250, +255,252,255,253,255,254,255,254,255,254,255,255,255,0,0,1,0,1,0,1,0,0,0,254,255,253,255,252,255,252,255,253,255,255,255,1,0,3,0,4,0,5,0,4,0,4,0,4,0,4,0,3,0,2,0,255,255,252,255,249,255,247,255,247,255,247,255,249,255,252,255,255,255,3,0,5,0,5,0,4,0,2, +0,0,0,0,0,1,0,1,0,0,0,255,255,253,255,251,255,251,255,252,255,254,255,0,0,2,0,3,0,4,0,5,0,7,0,9,0,9,0,8,0,6,0,5,0,3,0,2,0,2,0,1,0,0,0,255,255,253,255,251,255,251,255,251,255,253,255,255,255,0,0,1,0,2,0,3,0,6,0,7,0,8,0,6,0,4,0,1,0,0,0,0,0,0,0,0,0,255, +255,255,255,255,255,0,0,1,0,3,0,6,0,8,0,11,0,13,0,14,0,14,0,15,0,15,0,15,0,15,0,13,0,11,0,10,0,9,0,8,0,8,0,6,0,5,0,5,0,5,0,6,0,7,0,8,0,10,0,11,0,11,0,11,0,10,0,8,0,6,0,5,0,4,0,4,0,5,0,6,0,6,0,5,0,4,0,3,0,3,0,2,0,2,0,3,0,4,0,4,0,3,0,2,0,0,0,254,255,253, +255,251,255,250,255,250,255,251,255,252,255,252,255,250,255,249,255,248,255,249,255,250,255,252,255,253,255,254,255,254,255,253,255,251,255,249,255,247,255,247,255,247,255,249,255,250,255,251,255,252,255,252,255,252,255,252,255,252,255,253,255,255,255, +0,0,0,0,0,0,255,255,253,255,252,255,252,255,252,255,253,255,254,255,254,255,253,255,251,255,250,255,248,255,248,255,247,255,248,255,250,255,252,255,253,255,252,255,249,255,247,255,245,255,244,255,243,255,243,255,244,255,244,255,244,255,244,255,243,255, +243,255,242,255,243,255,244,255,245,255,246,255,247,255,248,255,249,255,251,255,252,255,253,255,253,255,253,255,252,255,250,255,248,255,246,255,244,255,244,255,245,255,247,255,249,255,251,255,253,255,254,255,0,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,255,255,253, +255,252,255,252,255,252,255,253,255,254,255,0,0,3,0,6,0,9,0,11,0,12,0,12,0,12,0,12,0,10,0,9,0,7,0,6,0,5,0,4,0,3,0,3,0,3,0,4,0,5,0,6,0,7,0,7,0,8,0,7,0,6,0,6,0,5,0,5,0,5,0,5,0,5,0,3,0,2,0,0,0,255,255,254,255,254,255,255,255,1,0,3,0,4,0,4,0,4,0,4,0,3,0, +2,0,2,0,2,0,3,0,5,0,7,0,7,0,7,0,6,0,5,0,4,0,5,0,5,0,5,0,4,0,3,0,3,0,4,0,5,0,6,0,7,0,7,0,6,0,6,0,5,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,2,0,2,0,2,0,3,0,4,0,4,0,5,0,5,0,6,0,5,0,4,0,3,0,2,0,0,0,255,255,254,255,253,255,253,255,254,255,255,255,0, +0,0,0,0,0,255,255,254,255,253,255,252,255,251,255,251,255,251,255,251,255,251,255,251,255,251,255,251,255,251,255,250,255,249,255,249,255,249,255,250,255,252,255,253,255,253,255,254,255,254,255,253,255,252,255,250,255,248,255,247,255,247,255,248,255, +249,255,249,255,249,255,249,255,248,255,248,255,247,255,247,255,247,255,248,255,249,255,250,255,251,255,252,255,252,255,252,255,251,255,251,255,250,255,250,255,249,255,248,255,248,255,248,255,250,255,251,255,252,255,252,255,251,255,250,255,248,255,246, +255,244,255,244,255,244,255,246,255,248,255,251,255,253,255,252,255,251,255,250,255,248,255,246,255,245,255,245,255,247,255,249,255,251,255,254,255,0,0,2,0,3,0,4,0,5,0,5,0,3,0,2,0,1,0,0,0,0,0,1,0,3,0,6,0,7,0,9,0,9,0,9,0,9,0,8,0,8,0,9,0,10,0,11,0,11,0, +10,0,8,0,5,0,2,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,3,0,5,0,7,0,8,0,8,0,6,0,3,0,0,0,254,255,251,255,250,255,250,255,251,255,253,255,255,255,1,0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,8,0,7,0,6,0,5,0,3,0,2,0,1,0,0,0,254,255,253,255,253,255,254,255,0, +0,2,0,4,0,5,0,5,0,4,0,4,0,3,0,2,0,0,0,254,255,253,255,252,255,252,255,252,255,251,255,251,255,251,255,251,255,250,255,250,255,249,255,249,255,250,255,252,255,255,255,2,0,4,0,5,0,6,0,6,0,5,0,5,0,3,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,3,0,3,0,4,0,4,0, +3,0,3,0,1,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,0,0,255,255,255,255,254,255,253,255,252,255,251,255,250,255,249,255,249,255,249,255,250,255,251,255,251,255,251,255,252,255,253,255,253,255,252,255,250,255,249,255, +249,255,250,255,251,255,253,255,254,255,254,255,254,255,252,255,250,255,248,255,246,255,245,255,245,255,245,255,245,255,246,255,248,255,250,255,253,255,254,255,255,255,254,255,254,255,253,255,253,255,253,255,253,255,252,255,253,255,253,255,253,255,253, +255,254,255,254,255,255,255,0,0,2,0,3,0,4,0,4,0,4,0,3,0,2,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,1,0,3,0,5,0,7,0,8,0,7,0,6,0,3,0,0,0,254,255,252,255,252,255,252,255,254,255,255,255,0,0,0,0,0,0,255,255,254,255,254,255,254,255,255,255,0,0,1, +0,1,0,1,0,2,0,3,0,3,0,3,0,2,0,0,0,255,255,255,255,254,255,253,255,253,255,252,255,252,255,253,255,255,255,0,0,2,0,3,0,4,0,4,0,4,0,3,0,2,0,1,0,255,255,255,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,1,0,3,0,4,0,5,0,5,0,4,0,3,0,3,0,3,0,4,0, +5,0,6,0,7,0,7,0,7,0,7,0,7,0,6,0,5,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,4,0,5,0,6,0,6,0,5,0,3,0,1,0,255,255,254,255,252,255,251,255,250,255,250,255,250,255,251,255,253,255,254,255,0,0,2,0,4,0,5,0,5,0,5,0,4,0,4,0,3,0,2,0,1,0,0,0,255,255,255,255,0,0,2,0,4,0,6, +0,6,0,5,0,3,0,1,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,252,255,251,255,249,255,248,255,247,255,248,255,249,255,251,255,252,255,252,255,250,255,247,255,245,255,245,255,245,255,245,255,247,255,249,255,251,255,251,255,251,255,250,255,250, +255,250,255,251,255,251,255,251,255,251,255,252,255,252,255,252,255,252,255,252,255,253,255,253,255,254,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,254,255,252,255,251,255,250,255,249,255,248,255,248,255,249,255,251,255,252,255,252, +255,251,255,249,255,248,255,247,255,246,255,245,255,245,255,245,255,247,255,249,255,251,255,253,255,254,255,255,255,1,0,1,0,2,0,2,0,2,0,3,0,3,0,3,0,4,0,5,0,6,0,8,0,10,0,11,0,11,0,10,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,10,0,10,0,11,0,11,0,11,0,11,0,10,0, +7,0,4,0,1,0,255,255,254,255,254,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,2,0,2,0,2,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,1,0,1,0,2,0,3,0,4,0,5,0,6,0,6,0,6,0,5,0,4,0,2,0,0,0,255,255,254,255,255,255,0,0,1,0,1, +0,0,0,254,255,253,255,252,255,251,255,251,255,251,255,251,255,251,255,252,255,253,255,253,255,253,255,254,255,0,0,2,0,3,0,2,0,1,0,0,0,255,255,255,255,0,0,2,0,4,0,5,0,5,0,5,0,4,0,2,0,2,0,1,0,2,0,2,0,3,0,3,0,3,0,3,0,2,0,2,0,0,0,255,255,254,255,253,255, +252,255,252,255,252,255,252,255,253,255,253,255,253,255,253,255,252,255,250,255,249,255,248,255,248,255,248,255,249,255,250,255,250,255,250,255,249,255,248,255,247,255,246,255,245,255,245,255,245,255,245,255,246,255,247,255,248,255,249,255,250,255,251, +255,251,255,251,255,252,255,252,255,253,255,254,255,254,255,255,255,255,255,255,255,0,0,1,0,2,0,3,0,2,0,2,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,253,255, +252,255,252,255,253,255,253,255,254,255,254,255,254,255,255,255,1,0,2,0,3,0,3,0,3,0,4,0,4,0,4,0,3,0,2,0,1,0,255,255,253,255,252,255,252,255,252,255,253,255,255,255,1,0,2,0,3,0,2,0,2,0,1,0,1,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,254,255, +254,255,254,255,255,255,0,0,1,0,1,0,1,0,2,0,2,0,3,0,4,0,4,0,3,0,2,0,1,0,1,0,1,0,3,0,3,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,3,0,3,0,4,0,5,0,5,0,6,0,7,0,7,0,7,0,6,0,5,0,3,0,1,0,255,255,255,255,0,0,1,0,2,0,3,0,4,0,4,0,4,0,4,0,3,0,2,0,1,0,0,0,255,255,254, +255,254,255,255,255,0,0,1,0,1,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,252,255,251,255,251,255,251,255,252,255,254,255,0,0,0,0,0,0,255,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255, +254,255,254,255,255,255,254,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,255,255,253,255,252,255,250,255,249,255,248,255,248,255,249,255,250,255,252,255,253,255,254,255,255,255,255,255,254,255,253,255,252,255,252,255,251,255,252,255,252,255,253,255, +253,255,253,255,254,255,254,255,253,255,253,255,252,255,251,255,251,255,251,255,252,255,252,255,253,255,254,255,255,255,255,255,255,255,254,255,253,255,252,255,251,255,252,255,253,255,255,255,0,0,1,0,3,0,4,0,4,0,4,0,2,0,0,0,254,255,253,255,253,255,253, +255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,3,0,3,0,3,0,2,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,3,0,4,0,4,0,4,0,3,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,2,0,2,0,3,0,3,0,3,0,3,0,4,0,5,0,6,0,6,0,6,0,5,0,4,0,3, +0,2,0,2,0,2,0,3,0,3,0,4,0,5,0,5,0,4,0,2,0,1,0,255,255,254,255,254,255,255,255,0,0,1,0,1,0,2,0,3,0,4,0,4,0,4,0,4,0,3,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,254,255,253,255,252,255,252, +255,252,255,252,255,252,255,253,255,253,255,253,255,253,255,253,255,252,255,251,255,249,255,249,255,248,255,248,255,248,255,248,255,249,255,250,255,251,255,252,255,253,255,254,255,253,255,253,255,252,255,252,255,251,255,251,255,252,255,252,255,253,255, +253,255,253,255,254,255,254,255,254,255,254,255,254,255,0,0,1,0,3,0,4,0,5,0,4,0,3,0,1,0,255,255,253,255,251,255,250,255,250,255,250,255,251,255,253,255,255,255,1,0,3,0,4,0,4,0,4,0,3,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,254,255,253, +255,252,255,251,255,251,255,251,255,252,255,254,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,0, +0,1,0,1,0,1,0,0,0,255,255,255,255,254,255,254,255,253,255,253,255,254,255,255,255,0,0,1,0,2,0,3,0,4,0,4,0,4,0,4,0,3,0,1,0,0,0,255,255,255,255,255,255,0,0,1,0,3,0,4,0,5,0,5,0,5,0,5,0,5,0,5,0,4,0,3,0,2,0,3,0,3,0,3,0,4,0,3,0,2,0,1,0,0,0,254,255,253,255, +251,255,250,255,250,255,251,255,252,255,254,255,255,255,255,255,255,255,255,255,254,255,254,255,253,255,253,255,254,255,254,255,255,255,0,0,0,0,1,0,2,0,2,0,2,0,1,0,1,0,2,0,3,0,4,0,5,0,6,0,6,0,6,0,7,0,7,0,7,0,7,0,7,0,7,0,6,0,5,0,4,0,2,0,1,0,0,0,1,0,2, +0,3,0,4,0,3,0,2,0,1,0,254,255,252,255,250,255,249,255,248,255,249,255,250,255,251,255,252,255,252,255,252,255,252,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,252,255,251,255,251, +255,252,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,252,255,252,255,252,255,251,255,251,255,250,255,250,255,250,255,250,255,250,255,251,255,251,255,251,255,251,255,250,255,250,255,251,255,251,255,252,255,252,255,252,255,252,255, +252,255,252,255,252,255,252,255,252,255,252,255,253,255,255,255,0,0,1,0,2,0,2,0,2,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,3,0,4,0,5,0,5,0,5,0,4,0,3,0,2,0,1,0,0,0,0,0,0,0,1,0,2,0,3,0,4,0,4,0,4,0,4,0,3,0,1,0,255,255,254,255,254,255,254,255,254,255,254,255,254,255, +254,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,255,255,254,255,252,255,251,255,250,255,250,255,250,255,251,255,252,255,253,255,254,255,0,0,1,0,2,0,3,0,3,0,3,0,3,0,3,0,4,0,4,0,4,0,4,0,4,0,5,0,5,0,5,0,4,0,3,0,2,0,2,0,1,0,2,0,2,0,2,0,3,0,4, +0,4,0,5,0,5,0,5,0,4,0,2,0,2,0,2,0,2,0,1,0,0,0,255,255,255,255,0,0,2,0,4,0,5,0,5,0,5,0,4,0,4,0,3,0,2,0,1,0,1,0,0,0,0,0,255,255,255,255,254,255,253,255,251,255,250,255,250,255,249,255,250,255,251,255,251,255,252,255,252,255,252,255,252,255,252,255,253, +255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,251,255,251,255,251,255,252,255,253,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,254,255,253,255,253,255,252,255,252,255,252,255,253,255,253,255,253,255,253,255,252,255,251,255,250, +255,249,255,249,255,249,255,250,255,250,255,249,255,248,255,247,255,247,255,247,255,248,255,249,255,250,255,250,255,250,255,250,255,250,255,251,255,252,255,254,255,255,255,1,0,3,0,3,0,3,0,3,0,4,0,4,0,5,0,6,0,6,0,7,0,7,0,7,0,6,0,6,0,6,0,6,0,6,0,6,0,6, +0,5,0,4,0,4,0,3,0,2,0,2,0,3,0,4,0,4,0,4,0,3,0,2,0,1,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,1,0,3,0,4,0,5,0,5,0,5,0,5,0,6,0,6,0,5,0,5,0,3,0,1,0,255,255,253,255,252,255,252,255,253,255,255,255,0,0,2,0, +2,0,2,0,1,0,255,255,253,255,252,255,251,255,251,255,251,255,252,255,253,255,253,255,254,255,254,255,254,255,254,255,253,255,253,255,251,255,251,255,250,255,250,255,250,255,250,255,250,255,252,255,254,255,0,0,1,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,2, +0,3,0,4,0,4,0,3,0,2,0,2,0,2,0,3,0,4,0,4,0,5,0,5,0,4,0,3,0,3,0,3,0,2,0,2,0,2,0,1,0,0,0,255,255,253,255,252,255,252,255,252,255,253,255,254,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,253,255,252,255,252,255,251,255,252, +255,252,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,255,255,0,0,1,0,2,0,3,0,3,0,3,0,3,0,2,0,0,0,255,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255, +255,254,255,253,255,252,255,253,255,253,255,253,255,252,255,251,255,250,255,249,255,249,255,249,255,250,255,252,255,253,255,255,255,1,0,2,0,3,0,3,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +254,255,254,255,254,255,254,255,254,255,255,255,0,0,1,0,2,0,3,0,3,0,2,0,1,0,0,0,255,255,255,255,0,0,1,0,2,0,3,0,4,0,5,0,4,0,3,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,254,255, +253,255,253,255,253,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,253,255,253,255,254,255,255,255,0,0,0,0,0,0,255,255,253,255,252,255,252,255,251,255,251,255,251,255,250,255,250,255,250,255,251,255,252,255,253,255,254,255, +255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,3,0,4,0,5,0,6,0,6,0,7,0,7,0,6,0,6,0,5,0,3,0,2,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,254,255, +254,255,253,255,253,255,252,255,252,255,252,255,251,255,251,255,251,255,252,255,252,255,253,255,253,255,253,255,253,255,253,255,254,255,253,255,253,255,252,255,251,255,252,255,252,255,253,255,253,255,253,255,253,255,253,255,252,255,252,255,253,255,253, +255,254,255,0,0,1,0,2,0,2,0,1,0,255,255,254,255,253,255,252,255,251,255,252,255,253,255,254,255,255,255,0,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,0,0,0,0,1,0,1,0,2,0,1,0,1,0,0,0,255,255,254,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255, +255,255,255,0,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,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,1,0,2,0,4,0,4,0,5,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, +0,5,0,5,0,4,0,3,0,3,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,3,0,4,0,5,0,6,0,6,0,6,0,6,0,5,0,3,0,1,0,0,0,254,255,253,255,252,255,252,255,252,255,252,255,253,255,254,255,255,255,0,0,0,0,1,0,0,0,255,255,255,255,254,255,254,255,254,255,253,255,253,255,252,255,252, +255,252,255,252,255,252,255,253,255,253,255,253,255,253,255,253,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,251,255,251,255,251,255,250,255,250,255,250,255,250,255,249,255,249,255,249,255,250,255, +250,255,251,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,253,255,253,255,253,255,253,255,253,255,253,255,252,255,252,255,252,255,252,255,253,255,254,255,255,255,255,255,0,0,0,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,3,0,3,0,4,0,4, +0,4,0,4,0,3,0,3,0,3,0,3,0,4,0,4,0,4,0,3,0,3,0,2,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,0,0,0,0,0,0,1,0,2,0,2,0,3,0,3,0,3,0,4,0,4,0,4,0,5,0,4,0,4,0,3,0,2,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0, +3,0,4,0,4,0,4,0,4,0,3,0,2,0,1,0,0,0,255,255,255,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,252,255,252,255,251,255,251,255,251,255,251,255,251,255,251,255,252,255, +253,255,254,255,255,255,0,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,254,255,253,255,253,255,253,255,254,255,254,255,254,255,255,255,255,255,254,255,253,255,252,255,251,255,250,255,249,255,248,255,248, +255,248,255,249,255,251,255,252,255,253,255,254,255,254,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,0,0,0,0,0,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,0,0,0,0,255,255,254,255,253,255,253,255,253,255,253,255, +253,255,253,255,254,255,254,255,255,255,255,255,0,0,0,0,1,0,1,0,2,0,1,0,1,0,0,0,255,255,254,255,254,255,253,255,254,255,254,255,254,255,255,255,0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,2,0,2,0,3,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0,3,0,4,0,5,0,5,0,5,0,5, +0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,0,0,255,255,253,255,252,255,252,255,251,255,251,255,251,255,251,255,252,255,252,255,253,255,253,255,254,255,255,255,0,0,0,0,0,0,255,255,255,255,254,255,254, +255,254,255,254,255,254,255,253,255,253,255,253,255,254,255,254,255,255,255,0,0,1,0,2,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254, +255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,254,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,254,255,254,255,254,255,253,255,253,255, +253,255,253,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,253,255,253,255,252,255,252,255,252,255,252,255,252,255,253,255,253,255,252,255,252,255,251,255,251,255,251,255,252,255,254,255,254,255,254,255,254,255,253,255,253,255,252,255,252, +255,252,255,253,255,254,255,255,255,0,0,0,0,0,0,255,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,0,0,1,0,1,0,2,0,2,0,3,0,3,0,4,0,4,0,5,0,5,0,5,0,6,0,6,0,6,0,6,0,5,0,4,0,3,0,3,0,3,0,3,0,3,0,3,0,4,0,4,0,4,0,4,0,3,0,2,0,1,0,0,0,0,0,0,0,0, +0,255,255,254,255,253,255,253,255,253,255,252,255,253,255,253,255,253,255,252,255,252,255,252,255,252,255,253,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,2,0,2,0,3,0,4,0,4,0,4,0,4,0,4,0,4,0, +3,0,3,0,2,0,1,0,1,0,0,0,0,0,255,255,255,255,254,255,253,255,253,255,252,255,252,255,252,255,253,255,253,255,254,255,255,255,255,255,0,0,1,0,1,0,0,0,255,255,254,255,254,255,253,255,252,255,252,255,252,255,252,255,253,255,253,255,254,255,255,255,0,0,1, +0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,0,0,255,255,254,255,253,255,252,255,252,255,252,255,252,255,253,255,254,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255, +255,255,255,255,255,255,0,0,0,0,255,255,255,255,254,255,253,255,252,255,252,255,252,255,252,255,253,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,255,255,255,255, +254,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,3,0,3,0,3,0,2,0,1,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,254,255,253,255,253,255,253,255,252, +255,252,255,252,255,252,255,252,255,251,255,251,255,251,255,252,255,253,255,253,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,254,255,255,255,255,255,0,0,2,0,3,0,4,0,5,0,5,0,5,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,1, +0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,253,255,252,255,251,255,250,255,249,255,249,255,249,255,250,255,251,255,251,255,252,255,252,255,253,255,253,255,254,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,3,0,3,0,3,0,3,0,2,0,1,0,1,0, +2,0,3,0,4,0,5,0,5,0,5,0,4,0,3,0,2,0,1,0,255,255,254,255,253,255,253,255,253,255,253,255,253,255,254,255,255,255,255,255,0,0,255,255,255,255,254,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,253,255,253,255,252,255,251,255,251,255, +251,255,251,255,252,255,253,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,253,255,253,255,253,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,255,255,254,255,254,255,254,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255,0,0,1,0,2,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1, +0,2,0,2,0,2,0,1,0,1,0,0,0,255,255,254,255,253,255,252,255,252,255,252,255,252,255,252,255,252,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,2,0,2,0,3,0,3,0,3,0,2, +0,2,0,2,0,2,0,1,0,1,0,0,0,255,255,253,255,253,255,252,255,252,255,252,255,252,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,252,255,252,255,252,255,253,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0, +0,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255,252,255,252,255,252,255,253,255,253, +255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,254,255,253,255,252,255,252,255,252,255,252,255,253,255,253,255,255,255,0,0,1,0,2,0,3,0,3,0,4,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,2, +0,2,0,1,0,1,0,255,255,254,255,253,255,252,255,252,255,252,255,252,255,253,255,253,255,254,255,254,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0, +2,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,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,254, +255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,254, +255,254,255,254,255,254,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,0,0,255,255,254,255,253,255,253,255,252,255,252,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,254,255,255, +255,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,1,0,1,0,2,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, +255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,2,0,2,0,3,0,3,0,3,0,3,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,2,0,2,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,254,255,253,255,254,255,254,255,255,255,255,255,0,0,0, +0,0,0,0,0,255,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255, +254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,254,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,253, +255,253,255,253,255,253,255,253,255,252,255,253,255,253,255,254,255,255,255,255,255,0,0,0,0,1,0,0,0,0,0,255,255,254,255,254,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,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,1,0,1,0,1,0,1,0,1,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,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1, +0,1,0,1,0,2,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,254,255,254,255,253,255,253,255,252,255,252,255,251,255,251,255,252,255,252,255,252,255,252,255,252,255,253,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,254, +255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,254,255,254,255,253,255,253,255,253,255,252,255,253,255,253,255,253,255,254,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,1,0,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,1,0,0, +0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,253,255,253,255,252,255,252,255,252,255,253,255,253,255,254,255,254,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,2,0, +2,0,3,0,3,0,3,0,2,0,2,0,1,0,1,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,254,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,254, +255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,1,0,1,0,2,0,2,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,255,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255, +254,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255, +255,0,0,0,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,255,255,254,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254, +255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,0,0,0,0,255,255,255,255,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,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0,2,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255, +254,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,253,255,252,255,252,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,254,255,255,255,0,0,0,0,0,0,255,255,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,1,0,1,0,1,0,1,0,1,0,1,0,1,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,254,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,254,255,254,255,255, +255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,253, +255,254,255,254,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,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,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254, +255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,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,254,255,254,255,254,255,254,255,254,255,254,255,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,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,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1, +0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,1,0,1,0,2,0,2,0,1,0,1,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,255,255,255,255,255,255, +254,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,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,254,255,254,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,253,255,253,255,254,255,254,255,254,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255, +255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,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,0,0,0,0,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,255,255,255,255, +255,255,255,255,255,255,254,255,254,255,253,255,253,255,253,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,254,255,254,255,253,255,253,255,254,255,254, +255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255, +255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255,253,255,253,255,253,255,253,255,253,255,253,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255,254,255,254,255, +254,255,254,255,255,255,255,255,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,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255, +254,255,254,255,254,255,254,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,1,0,1,0,1,0,1,0,1,0,1, +0,1,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1, +0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255, +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,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,254,255,254,255,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,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0, +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,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,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,1,0,1,0,1,0,1,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,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,254,255,254,255,254,255,253,255,253,255,254,255,254,255,254,255,255,255,255,255,255,255,0,0,0,0,0,0,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, +0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,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,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,254,255,254,255,254,255,255,255,255,255,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,255,255,255,255,255,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255, +254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,0,0,1,0,1,0,1,0,1,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,1,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,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,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,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,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,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,0,0,0,0,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,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255, +255,255,255,255,255,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,254,255,254,255,255,255,255,255,255,255,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,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,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,1,0,1,0,1,0,1,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0, +0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, +255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254, +255,254,255,254,255,254,255,255,255,255,255,255,255,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,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,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,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,254,255, +254,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,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,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,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,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,255,254,255,254,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,255,254,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255, +255,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,255,255,255,255,255,255,255,255,255,255,255, +255,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,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,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,0,0,0,0,0,0,0,0,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,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,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,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,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,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,1,0,1,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,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,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,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255, +255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,255,255,255,255,255,255,255,255,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,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,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0, +0,0,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,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,0,0,0,0,0,0,0,0,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,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,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255, +255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0, +0,0,0,0,0,0,0,0,0,255,255,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,255,255,255,255,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,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,255,254,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,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,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,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,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,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,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +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,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,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,0,0,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,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255, +255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,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,0,0,0,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,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,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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, +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,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,255,255,255,255,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,0,0,0,0,0,0,0, +0,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255, +0,0,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,0,0,0,0,0,0,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,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,0,0,255,255,255,255,255,255,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,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,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,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255, +255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,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,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,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,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,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,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,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,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,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,0,0,0,0,0,0,0,0,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,0,0,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,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,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,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,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,0,0,0,0,0,0,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,0,0,0,0,0,0,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,0,0,0,0,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,255,255,255,255,255,255,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,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,255,255,255,255,255,255,255,255,255,255,255,255,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,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,0,0,0,0,0,0,0,0,0,0,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,0,0,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,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, +255,255,255,255,255,255,255,255,255,255,255,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,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,255,255,0,0,0,0,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,0,0,255,255,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,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,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,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,255,255,255,255,255,255,255,255,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, +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,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,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,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,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,0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,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,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,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,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,0,0,255,255,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,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,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,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,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255, +255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,0,0,0,0,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,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,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,255,255,255,255,255,255,255,255, +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,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0, +0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,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,255,255,255,255,255,255,255,255,255,255,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,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,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,255,255,255,255,255,255,255,255,255,255,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255, +255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,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,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,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,255,255,255,255,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,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,255,255,255,255,0,0,255,255,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,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,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,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,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,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,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,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,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,0,0,0,0,0,0,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,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,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,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,0,0,0,0,0,0,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,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255, +255,255,255,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,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,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255, +255,255,255,255,255,255,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,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,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,255,255,255, +255,255,255,255,255,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,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,0,0,0,0,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,0,0,0,0,0,0,0,0,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,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,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,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,255,255,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,255,255,255,255,255,255,255,255,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,0,0,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,0,0,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,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,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,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,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,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,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,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,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255, +255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,0,0,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,0,0,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,0,0,255,255,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,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,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,255,255,255,255,255,255,255,255,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,255,255,255, +255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255, +255,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,0,0,0,0,0,0,0,0,0,0,0,0,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,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,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,0,0,0,0,0,0,0,0,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,255,255,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,255,255,255,255,255,255,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,255,255,255,255,255,255,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,255,255,255,255,255,255,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,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255, +255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,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,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,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,0,0, +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0, +0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,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,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,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,0,0,0,0,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,255,255,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,255,255,0,0,255,255,255, +255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,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,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0, +0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,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,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0, +0,0,0,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,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,0,0,0,0,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,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,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,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,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,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,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,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,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,0,0,0,0,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,0,0,0,0,0,0,0,0,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,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, +255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,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,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,255,255,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,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,0,0,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,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,0,0,0,0,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,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,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,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,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,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,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,0,0,255,255,0,0,0,0,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,0,0,255,255,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,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,255,255,255,255,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,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,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,255,255,255,255,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,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255, +255,255,255,255,255,255,255,255,255,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,255,255,255,255,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,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255, +255,255,255,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,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,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,0, +0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255, +0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,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,0,0,0,0,255,255,0,0,0,0,0, +0,255,255,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,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,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,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,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,0,0,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255, +0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0, +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,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,0,0,255,255,255,255,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,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, +255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0, +0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,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,0,0,255,255,255,255,255,255,255,255,0,0,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,0,0,0,0,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,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,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,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,255,255,0,0,255,255,255,255,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,0,0,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,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,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255, +255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,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,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,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255, +255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,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,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,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0, +0,0,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,255,255,255,255,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,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,0,0,0, +0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,0, +0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,0,0,0,0, +0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,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,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255,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,0,0,255,255,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,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,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,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,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,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,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,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255, +255,255,255,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,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255, +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,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,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,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,255,255,255,255,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,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,0,0,0,0,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,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,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,0,0,255,255,0,0,255,255,0,0,0,0,0,0,255,255,255,255,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,0, +0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,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,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,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,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,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,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,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255, +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,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,255,255,255,255,255,255,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,255,255,255,255,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,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,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,0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,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,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,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,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,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,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,0,0,0,0,255,255,0,0,0,0,0,0,0,0,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,0,0,255,255,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,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,255,255,0,0,255,255,0,0,255,255,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255, +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,0,0,255,255,255,255,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,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,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,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,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,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,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,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255, +255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255, +255,255,255,0,0,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,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,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,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,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,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0, +0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,255,255, +0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,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,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255, +255,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,255,255,0,0,0,0,255,255,0, +0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,255,255,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,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,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255, +255,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,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,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255, +255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,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,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,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,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,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255, +0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,255,255,255, +255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255,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,0,0,0, +0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,255, +255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,255,255,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,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255, +255,255,0,0,255,255,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,255,255,255,255,0,0,255,255,255,255,255,255,255,255,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,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,255,255,0,0,255,255,255,255,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,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,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,255,255,255,255,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,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,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,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,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,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,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,0,0,255,255,0,0,255,255,0, +0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,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,255,255,0,0,0,0,0,0,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,255,255,0,0,255,255,0,0,255, +255,0,0,0,0,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,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,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,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,0,0,255,255,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0, +255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255, +255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,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,255,255,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255, +255,255,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,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,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,255,255,255,255,255,255,255,255,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,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,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, +255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,0,0,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,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,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,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,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,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,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,0,0,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,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,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,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,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, +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,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,0,0,255,255,255, +255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,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,0,0,0,0,0,0,0,0,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,255,255,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,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,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255, +255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,255,255,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,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255, +255,0,0,0,0,255,255,255,255,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,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,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,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,0,0,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,0,0,255,255,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,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,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,0,0,255,255,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,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,0,0,0,0,255,255,0,0,255,255,255,255,255,255,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,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,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,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255, +0,0,0,0,255,255,0,0,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,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,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,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0, +255,255,0,0,0,0,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255, +255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,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,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0, +0,255,255,0,0,255,255,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,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,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,0,0,255,255,0, +0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,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,0,0,255,255,255,255,255,255,255,255,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,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,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,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,255,255,255,255,255,255,255,255,255,255,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,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,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255, +255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255, +255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,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,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,0,0,255,255,255,255,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,0,0,255,255,0,0,255,255,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,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,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,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,0,0,0,0,255,255,0,0,255,255,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,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,0,0,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,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,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,0,0,255,255,0,0,255, +255,0,0,255,255,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,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,255,255,255,255,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,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,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,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,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,255,255,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,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,255,255,255,255,255,255,255,255,255,255,255,255,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,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,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255, +255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,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,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,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,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,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,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,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,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255, +255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,255,255,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,0,0,0,0,255,255,0,0,0,0,0,0,0,0,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,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0,0, +255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,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,0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,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,0,0,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,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,0,0,0, +0,0,0,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,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0, +0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255, +255,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,255, +255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,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,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255, +255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,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,0,0,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,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,255,255,0,0,0,0,0,0,0,0,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,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,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0, +0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0, +255,255,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0, +0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0, +0,0,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,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255, +255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,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,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,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,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0, +0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,255,255,255,255,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,0,0,255,255,255,255,0,0,255,255, +255,255,255,255,255,255,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,255,255,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,0,0,255,255,255,255,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,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,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255, +255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,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,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, +255,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0, +0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,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,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,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,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,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,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,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,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255, +255,255,255,255,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,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,255,255, +255,255,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,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,255,255,0,0,255,255,0,0,0,0,0,0,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,255,255,255, +255,255,255,255,255,255,255,255,255,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,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,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,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,0, +0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,255,255, +255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,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, +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,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255, +255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,255, +255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255, +0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,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,255,255,255,255,0,0,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,0,0,255,255,0,0,255,255,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, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255, +255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0, +0,0,0,255,255,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,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,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,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,0,0,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,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,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,0,0,0, +0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255, +255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,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,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255, +255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,255,255,0,0,255,255,0,0,255,255,255, +255,0,0,255,255,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,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255, +255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,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,255,255,0,0,0,0,255,255,0,0,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255, +0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,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,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,0,0,255,255,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,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255, +255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255, +255,0,0,255,255,0,0,0,0,255,255,255,255,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,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,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0, +0,255,255,0,0,0,0,255,255,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,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255, +255,255,255,0,0,0,0,255,255,255,255,255,255,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,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0, +0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,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,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,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,0,0,255,255,0,0,255, +255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,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,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,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,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255, +255,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,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,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,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,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,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,255, +0,0,255,255,0,0,0,0,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,0,0,255,255,255,255,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,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,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255, +255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,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,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,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,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,255,255,255,255, +255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,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,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255, +255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0, +0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,0, +0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255, +0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,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,0,0,255, +255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,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,0,0,255,255,0,0,0,0,255, +255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255, +255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255, +255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,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,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255, +255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,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,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255, +255,255,255,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,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,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,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,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, +0,0,0,0,0,0,255,255,0,0,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,0,0,255,255,255,255,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,0,0,255,255,255,255,255,255,255,255,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,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,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,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,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,255,255,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,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,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255, +255,255,255,255,0,0,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,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,0,0,0,0,0,0,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,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,255,255,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,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,0,0,255,255, +255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,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,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,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,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,255,255,255,255,255,255,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,255,255,0,0,0,0,0,0,0,0,255,255,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,0,0,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,255,255,0,0,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,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,0,0,0,0,255,255,255,255,255,255,255,255,255,255,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,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,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,0,0,0,0,0, +0,0,0,0,0,255,255,255,255,255,255,255,255,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,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,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,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0, +0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,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,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0, +255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,255,255,0,0,0,0,255,255,0, +0,0,0,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,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,0,0,0,0,0,0,0,0,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,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255,0,0,255,255, +255,255,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,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,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,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,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,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,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0,255,255,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,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,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,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,255,255,255,255,0, +0,0,0,255,255,0,0,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,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,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,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0, +0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255, +255,255,255,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,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,0,0,255,255,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,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,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,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,255,255,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255, +255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,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,255,255,255,255,255,255,255,255,255,255,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,0,0,255,255,0,0,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,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,255,255,0,0,0,0,0,0, +0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,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,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,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,0, +0,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255,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,0,0,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,255,255,0,0,0,0,0,0,255,255,255,255, +0,0,0,0,255,255,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,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255, +255,0,0,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0,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,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255, +255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,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,255,255,0, +0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255,255,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0, +0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,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,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255, +255,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,255,255,255,255,0,0,255, +255,0,0,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,255,255,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,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,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,0,0,255,255,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0,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,0,0,255,255,255,255,0,0,255, +255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,0,0,255,255,0, +0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255, +255,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,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,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,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,255,255,255, +255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,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,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,255,255,255,255,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,255,255,0,0,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, +255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,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,0,0,255,255,0,0,255,255,255,255,255,255,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,255,255,0,0,0,0,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,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,255,255, +255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255, +255,255,255,255,255,255,255,255,255,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,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, +255,255,255,255,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,0,0,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0, +0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,255,255,255,255,0,0,255,255,0,0,0,0,255,255,0,0,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,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, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0, +0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,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,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255, +255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255, +255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255, +255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255, +255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0 }; + +const char* guitar_amp_wav = (const char*) temp_binary_data_2; + +//================== ConvolutionDemo.cpp ================== +static const unsigned char temp_binary_data_3[] = +"/*\r\n" +" ==============================================================================\r\n" +"\r\n" +" This file is part of the JUCE library.\r\n" +" Copyright (c) 2017 - ROLI Ltd.\r\n" +"\r\n" +" JUCE is an open source library subject to commercial or open-source\r\n" +" licensing.\r\n" +"\r\n" +" By using JUCE, you agree to the terms of both the JUCE 5 End-User License\r\n" +" Agreement and JUCE 5 Privacy Policy (both updated and effective as of the\r\n" +" 27th April 2017).\r\n" +"\r\n" +" End User License Agreement: www.juce.com/juce-5-licence\r\n" +" Privacy Policy: www.juce.com/juce-5-privacy-policy\r\n" +"\r\n" +" Or: You may also use this code under the terms of the GPL v3 (see\r\n" +" www.gnu.org/licenses).\r\n" +"\r\n" +" JUCE IS PROVIDED \"AS IS\" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER\r\n" +" EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE\r\n" +" DISCLAIMED.\r\n" +"\r\n" +" ==============================================================================\r\n" +"*/\r\n" +"\r\n" +"#include \"../DSPDemo.h\"\r\n" +"\r\n" +"//==============================================================================\r\n" +"// @@ START_DEMO\r\n" +"struct ConvolutionDemo\r\n" +"{\r\n" +" void prepare (const ProcessSpec& spec)\r\n" +" {\r\n" +" sampleRate = spec.sampleRate;\r\n" +" convolution.prepare (spec);\r\n" +" updateParameters();\r\n" +" }\r\n" +"\r\n" +" void process (const ProcessContextReplacing& context)\r\n" +" {\r\n" +" if (! bypass)\r\n" +" convolution.process (context);\r\n" +" }\r\n" +"\r\n" +" void reset()\r\n" +" {\r\n" +" convolution.reset();\r\n" +" }\r\n" +"\r\n" +" void updateParameters()\r\n" +" {\r\n" +" if (auto* cabinetTypeParameter = dynamic_cast (parameters[0]))\r\n" +" {\r\n" +" if (cabinetTypeParameter->getCurrentSelectedID() == 1)\r\n" +" {\r\n" +" bypass = true;\r\n" +" }\r\n" +" else\r\n" +" {\r\n" +" bypass = false;\r\n" +"\r\n" +" auto maxSize = static_cast (roundDoubleToInt (8192.0 * sampleRate / 44100.0));\r\n" +"\r\n" +" if (cabinetTypeParameter->getCurrentSelectedID() == 2)\r\n" +" convolution.loadImpulseResponse (BinaryData::guitar_amp_wav,\r\n" +" BinaryData::guitar_amp_wavSize,\r\n" +" false, maxSize);\r\n" +" else\r\n" +" convolution.loadImpulseResponse (BinaryData::cassette_recorder_wav,\r\n" +" BinaryData::cassette_recorder_wavSize,\r\n" +" false, maxSize);\r\n" +" }\r\n" +" }\r\n" +" }\r\n" +"\r\n" +" //==============================================================================\r\n" +" double sampleRate = 0;\r\n" +" bool bypass = false;\r\n" +"\r\n" +" Convolution convolution;\r\n" +"\r\n" +" ChoiceParameter cabinetParam { {\"Bypass\", \"Guitar amplifier 8''\", \"Cassette recorder\"}, 1, \"Cabinet Type\" };\r\n" +"\r\n" +" std::vector parameters { &cabinetParam };\r\n" +"};\r\n" +"// @@ END_DEMO\r\n" +"\r\n" +"RegisterDSPDemo convolutionDemo (\"Convolution\", BinaryData::ConvolutionDemo_cpp);\r\n"; + +const char* ConvolutionDemo_cpp = (const char*) temp_binary_data_3; + +//================== FIRFilterDemo.cpp ================== +static const unsigned char temp_binary_data_4[] = +"/*\r\n" +" ==============================================================================\r\n" +"\r\n" +" This file is part of the JUCE library.\r\n" +" Copyright (c) 2017 - ROLI Ltd.\r\n" +"\r\n" +" JUCE is an open source library subject to commercial or open-source\r\n" +" licensing.\r\n" +"\r\n" +" By using JUCE, you agree to the terms of both the JUCE 5 End-User License\r\n" +" Agreement and JUCE 5 Privacy Policy (both updated and effective as of the\r\n" +" 27th April 2017).\r\n" +"\r\n" +" End User License Agreement: www.juce.com/juce-5-licence\r\n" +" Privacy Policy: www.juce.com/juce-5-privacy-policy\r\n" +"\r\n" +" Or: You may also use this code under the terms of the GPL v3 (see\r\n" +" www.gnu.org/licenses).\r\n" +"\r\n" +" JUCE IS PROVIDED \"AS IS\" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER\r\n" +" EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE\r\n" +" DISCLAIMED.\r\n" +"\r\n" +" ==============================================================================\r\n" +"*/\r\n" +"\r\n" +"#include \"../DSPDemo.h\"\r\n" +"\r\n" +"//==============================================================================\r\n" +"// @@ START_DEMO\r\n" +"struct FIRFilterDemo\r\n" +"{\r\n" +" void prepare (const ProcessSpec& spec)\r\n" +" {\r\n" +" sampleRate = spec.sampleRate;\r\n" +"\r\n" +" fir.state = FilterDesign::designFIRLowpassWindowMethod (440.0f, sampleRate, 21,\r\n" +" WindowingFunction::blackmann);\r\n" +" fir.prepare (spec);\r\n" +" }\r\n" +"\r\n" +" void process (const ProcessContextReplacing& context)\r\n" +" {\r\n" +" fir.process (context);\r\n" +" }\r\n" +"\r\n" +" void reset()\r\n" +" {\r\n" +" fir.reset();\r\n" +" }\r\n" +"\r\n" +" void updateParameters()\r\n" +" {\r\n" +" if (sampleRate != 0)\r\n" +" {\r\n" +" auto cutoff = static_cast (cutoffParam.getCurrentValue());\r\n" +" auto windowingMethod = static_cast::WindowingMethod> (typeParam.getCurrentSelectedID() - 1);\r\n" +"\r\n" +" *fir.state = *FilterDesign::designFIRLowpassWindowMethod (cutoff, sampleRate, 21, windowingMethod);\r\n" +" }\r\n" +" }\r\n" +"\r\n" +" //==============================================================================\r\n" +" ProcessorDuplicator, FIR::Coefficients> fir;\r\n" +"\r\n" +" double sampleRate = 0;\r\n" +"\r\n" +" SliderParameter cutoffParam { { 20.0, 20000.0 }, 0.4, 440.0f, \"Cutoff\", \"Hz\" };\r\n" +" ChoiceParameter typeParam { { \"Rectangular\", \"Triangular\", \"Hann\", \"Hamming\", \"Blackmann\", \"Blackmann-Harris\", \"Flat Top\", \"Kaiser\" },\r\n" +" 5, \"Windowing Function\" };\r\n" +"\r\n" +" std::vector parameters { &cutoffParam, &typeParam };\r\n" +"};\r\n" +"// @@ END_DEMO\r\n" +"\r\n" +"RegisterDSPDemo firDemo (\"FIR Filter\", BinaryData::FIRFilterDemo_cpp);\r\n"; + +const char* FIRFilterDemo_cpp = (const char*) temp_binary_data_4; + +//================== GainDemo.cpp ================== +static const unsigned char temp_binary_data_5[] = +"/*\r\n" +" ==============================================================================\r\n" +"\r\n" +" This file is part of the JUCE library.\r\n" +" Copyright (c) 2017 - ROLI Ltd.\r\n" +"\r\n" +" JUCE is an open source library subject to commercial or open-source\r\n" +" licensing.\r\n" +"\r\n" +" By using JUCE, you agree to the terms of both the JUCE 5 End-User License\r\n" +" Agreement and JUCE 5 Privacy Policy (both updated and effective as of the\r\n" +" 27th April 2017).\r\n" +"\r\n" +" End User License Agreement: www.juce.com/juce-5-licence\r\n" +" Privacy Policy: www.juce.com/juce-5-privacy-policy\r\n" +"\r\n" +" Or: You may also use this code under the terms of the GPL v3 (see\r\n" +" www.gnu.org/licenses).\r\n" +"\r\n" +" JUCE IS PROVIDED \"AS IS\" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER\r\n" +" EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE\r\n" +" DISCLAIMED.\r\n" +"\r\n" +" ==============================================================================\r\n" +"*/\r\n" +"\r\n" +"#include \"../DSPDemo.h\"\r\n" +"\r\n" +"//==============================================================================\r\n" +"// @@ START_DEMO\r\n" +"struct GainDemo\r\n" +"{\r\n" +" void prepare (const ProcessSpec&)\r\n" +" {\r\n" +" gain.setGainDecibels (-6.0f);\r\n" +" }\r\n" +"\r\n" +" void process (const ProcessContextReplacing& context)\r\n" +" {\r\n" +" gain.process (context);\r\n" +" }\r\n" +"\r\n" +" void reset()\r\n" +" {\r\n" +" gain.reset();\r\n" +" }\r\n" +"\r\n" +" void updateParameters()\r\n" +" {\r\n" +" gain.setGainDecibels (static_cast (gainParam.getCurrentValue()));\r\n" +" }\r\n" +"\r\n" +" //==============================================================================\r\n" +" Gain gain;\r\n" +" SliderParameter gainParam { { -100.0, 20.0 }, 3.0, -6.0, \"Gain\", \"dB\" };\r\n" +"\r\n" +" std::vector parameters { &gainParam };\r\n" +"};\r\n" +"// @@ END_DEMO\r\n" +"\r\n" +"RegisterDSPDemo gainDemo (\"Gain\", BinaryData::GainDemo_cpp);\r\n"; + +const char* GainDemo_cpp = (const char*) temp_binary_data_5; + +//================== IIRFilterDemo.cpp ================== +static const unsigned char temp_binary_data_6[] = +"/*\r\n" +" ==============================================================================\r\n" +"\r\n" +" This file is part of the JUCE library.\r\n" +" Copyright (c) 2017 - ROLI Ltd.\r\n" +"\r\n" +" JUCE is an open source library subject to commercial or open-source\r\n" +" licensing.\r\n" +"\r\n" +" By using JUCE, you agree to the terms of both the JUCE 5 End-User License\r\n" +" Agreement and JUCE 5 Privacy Policy (both updated and effective as of the\r\n" +" 27th April 2017).\r\n" +"\r\n" +" End User License Agreement: www.juce.com/juce-5-licence\r\n" +" Privacy Policy: www.juce.com/juce-5-privacy-policy\r\n" +"\r\n" +" Or: You may also use this code under the terms of the GPL v3 (see\r\n" +" www.gnu.org/licenses).\r\n" +"\r\n" +" JUCE IS PROVIDED \"AS IS\" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER\r\n" +" EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE\r\n" +" DISCLAIMED.\r\n" +"\r\n" +" ==============================================================================\r\n" +"*/\r\n" +"\r\n" +"#include \"../DSPDemo.h\"\r\n" +"\r\n" +"//==============================================================================\r\n" +"// @@ START_DEMO\r\n" +"struct IIRFilterDemo\r\n" +"{\r\n" +" void prepare (const ProcessSpec& spec)\r\n" +" {\r\n" +" sampleRate = spec.sampleRate;\r\n" +"\r\n" +" iir.state = IIR::Coefficients::makeLowPass (sampleRate, 440.0);\r\n" +" iir.prepare (spec);\r\n" +" }\r\n" +"\r\n" +" void process (const ProcessContextReplacing& context)\r\n" +" {\r\n" +" iir.process (context);\r\n" +" }\r\n" +"\r\n" +" void reset()\r\n" +" {\r\n" +" iir.reset();\r\n" +" }\r\n" +"\r\n" +" void updateParameters()\r\n" +" {\r\n" +" if (sampleRate != 0)\r\n" +" {\r\n" +" auto cutoff = static_cast (cutoffParam.getCurrentValue());\r\n" +" auto qVal = static_cast (qParam.getCurrentValue());\r\n" +"\r\n" +" switch (typeParam.getCurrentSelectedID())\r\n" +" {\r\n" +" case 1: *iir.state = *IIR::Coefficients::makeLowPass (sampleRate, cutoff, qVal); break;\r\n" +" case 2: *iir.state = *IIR::Coefficients::makeHighPass (sampleRate, cutoff, qVal); break;\r\n" +" case 3: *iir.state = *IIR::Coefficients::makeBandPass (sampleRate, cutoff, qVal); break;\r\n" +" default: break;\r\n" +" }\r\n" +" }\r\n" +" }\r\n" +"\r\n" +" //==============================================================================\r\n" +" ProcessorDuplicator, IIR::Coefficients> iir;\r\n" +"\r\n" +" ChoiceParameter typeParam { { \"Low-pass\", \"High-pass\", \"Band-pass\"}, 1, \"Type\" };\r\n" +" SliderParameter cutoffParam { { 20.0, 20000.0 }, 0.5, 440.0f, \"Cutoff\", \"Hz\" };\r\n" +" SliderParameter qParam { { 0.3, 20.0 }, 0.5, 1.0 / std::sqrt(2.0), \"Q\" };\r\n" +"\r\n" +" std::vector parameters { &typeParam, &cutoffParam, &qParam };\r\n" +" double sampleRate = 0;\r\n" +"};\r\n" +"// @@ END_DEMO\r\n" +"\r\n" +"RegisterDSPDemo iirDemo (\"IIR Filter\", BinaryData::IIRFilterDemo_cpp);\r\n"; + +const char* IIRFilterDemo_cpp = (const char*) temp_binary_data_6; + +//================== OscillatorDemo.cpp ================== +static const unsigned char temp_binary_data_7[] = +"/*\r\n" +" ==============================================================================\r\n" +"\r\n" +" This file is part of the JUCE library.\r\n" +" Copyright (c) 2017 - ROLI Ltd.\r\n" +"\r\n" +" JUCE is an open source library subject to commercial or open-source\r\n" +" licensing.\r\n" +"\r\n" +" By using JUCE, you agree to the terms of both the JUCE 5 End-User License\r\n" +" Agreement and JUCE 5 Privacy Policy (both updated and effective as of the\r\n" +" 27th April 2017).\r\n" +"\r\n" +" End User License Agreement: www.juce.com/juce-5-licence\r\n" +" Privacy Policy: www.juce.com/juce-5-privacy-policy\r\n" +"\r\n" +" Or: You may also use this code under the terms of the GPL v3 (see\r\n" +" www.gnu.org/licenses).\r\n" +"\r\n" +" JUCE IS PROVIDED \"AS IS\" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER\r\n" +" EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE\r\n" +" DISCLAIMED.\r\n" +"\r\n" +" ==============================================================================\r\n" +"*/\r\n" +"\r\n" +"#include \"../DSPDemo.h\"\r\n" +"\r\n" +"//==============================================================================\r\n" +"// @@ START_DEMO\r\n" +"struct OscillatorDemo\r\n" +"{\r\n" +" void prepare (const ProcessSpec& spec)\r\n" +" {\r\n" +" gain.setGainDecibels (-6.0f);\r\n" +"\r\n" +" for (auto&& oscillator : oscillators)\r\n" +" {\r\n" +" oscillator.setFrequency (440.f);\r\n" +" oscillator.prepare (spec);\r\n" +" }\r\n" +"\r\n" +" tempBuffer = AudioBlock (tempBufferMemory, spec.numChannels, spec.maximumBlockSize);\r\n" +" }\r\n" +"\r\n" +" void process (const ProcessContextReplacing& context)\r\n" +" {\r\n" +" tempBuffer.copy (context.getInputBlock());\r\n" +" tempBuffer.multiply (static_cast (fileMix));\r\n" +"\r\n" +" oscillators[currentOscillatorIdx].process (context);\r\n" +" context.getOutputBlock().multiply (static_cast (1.0 - fileMix));\r\n" +"\r\n" +" context.getOutputBlock().add (tempBuffer);\r\n" +"\r\n" +" gain.process (context);\r\n" +" }\r\n" +"\r\n" +" void reset()\r\n" +" {\r\n" +" oscillators[currentOscillatorIdx].reset();\r\n" +" }\r\n" +"\r\n" +" void updateParameters()\r\n" +" {\r\n" +" currentOscillatorIdx = jmin (numElementsInArray (oscillators),\r\n" +" 3 * (accuracy.getCurrentSelectedID() - 1) + (typeParam.getCurrentSelectedID() - 1));\r\n" +"\r\n" +" auto freq = static_cast (freqParam.getCurrentValue());\r\n" +"\r\n" +" for (auto&& oscillator : oscillators)\r\n" +" oscillator.setFrequency (freq);\r\n" +"\r\n" +" gain.setGainDecibels (static_cast (gainParam.getCurrentValue()));\r\n" +"\r\n" +" fileMix = mixParam.getCurrentValue();\r\n" +" }\r\n" +"\r\n" +" //==============================================================================\r\n" +" Oscillator oscillators[6] =\r\n" +" {\r\n" +" // No Approximation\r\n" +" {[] (float x) { return std::sin (x); }}, // sine\r\n" +" {[] (float x) { return x / float_Pi; }}, // saw\r\n" +" {[] (float x) { return x < 0.0f ? -1.0f : 1.0f; }}, // square\r\n" +"\r\n" +" // Approximated by a wave-table\r\n" +" {[] (float x) { return std::sin (x); }, 100}, // sine\r\n" +" {[] (float x) { return x / float_Pi; }, 100}, // saw\r\n" +" {[] (float x) { return x < 0.0f ? -1.0f : 1.0f; }, 100} // square\r\n" +" };\r\n" +"\r\n" +" int currentOscillatorIdx = 0;\r\n" +" Gain gain;\r\n" +"\r\n" +" ChoiceParameter typeParam { {\"sine\", \"saw\", \"square\"}, 1, \"Type\" };\r\n" +" ChoiceParameter accuracy { {\"No Approximation\", \"Use Wavetable\"}, 1, \"Accuracy\" };\r\n" +" SliderParameter freqParam { { 20.0, 24000.0 }, 0.4, 440.0, \"Frequency\", \"Hz\" };\r\n" +" SliderParameter gainParam { { -100.0, 20.0 }, 3.0, -20.0, \"Gain\", \"dB\" };\r\n" +" SliderParameter mixParam { { 0.0, 1.0 }, 1.0, 0.0, \"File mix\" };\r\n" +"\r\n" +" HeapBlock tempBufferMemory;\r\n" +" AudioBlock tempBuffer;\r\n" +" double fileMix;\r\n" +"\r\n" +" std::vector parameters { &typeParam, &accuracy, &freqParam, &gainParam, &mixParam };\r\n" +"};\r\n" +"// @@ END_DEMO\r\n" +"\r\n" +"RegisterDSPDemo oscillatorDemo (\"Oscillator\", BinaryData::OscillatorDemo_cpp);\r\n"; + +const char* OscillatorDemo_cpp = (const char*) temp_binary_data_7; + +//================== OverdriveDemo.cpp ================== +static const unsigned char temp_binary_data_8[] = +"/*\r\n" +" ==============================================================================\r\n" +"\r\n" +" This file is part of the JUCE library.\r\n" +" Copyright (c) 2017 - ROLI Ltd.\r\n" +"\r\n" +" JUCE is an open source library subject to commercial or open-source\r\n" +" licensing.\r\n" +"\r\n" +" By using JUCE, you agree to the terms of both the JUCE 5 End-User License\r\n" +" Agreement and JUCE 5 Privacy Policy (both updated and effective as of the\r\n" +" 27th April 2017).\r\n" +"\r\n" +" End User License Agreement: www.juce.com/juce-5-licence\r\n" +" Privacy Policy: www.juce.com/juce-5-privacy-policy\r\n" +"\r\n" +" Or: You may also use this code under the terms of the GPL v3 (see\r\n" +" www.gnu.org/licenses).\r\n" +"\r\n" +" JUCE IS PROVIDED \"AS IS\" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER\r\n" +" EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE\r\n" +" DISCLAIMED.\r\n" +"\r\n" +" ==============================================================================\r\n" +"*/\r\n" +"\r\n" +"#include \"../DSPDemo.h\"\r\n" +"\r\n" +"//==============================================================================\r\n" +"// @@ START_DEMO\r\n" +"struct OverdriveDemo\r\n" +"{\r\n" +" void prepare (const ProcessSpec& spec)\r\n" +" {\r\n" +" sampleRate = spec.sampleRate;\r\n" +"\r\n" +" auto& gainUp = overdrive.get<0>();\r\n" +" gainUp.setGainDecibels (24);\r\n" +"\r\n" +" auto& bias = overdrive.get<1>();\r\n" +" bias.setBias (0.4f);\r\n" +"\r\n" +" auto& wavShaper = overdrive.get<2>();\r\n" +" wavShaper.functionToUse = std::tanh;\r\n" +"\r\n" +" auto& dcFilter = overdrive.get<3>();\r\n" +" dcFilter.state = IIR::Coefficients::makeHighPass (sampleRate, 5.0);\r\n" +"\r\n" +" auto& gainDown = overdrive.get<4>();\r\n" +" gainDown.setGainDecibels (-18.0f);\r\n" +"\r\n" +" overdrive.prepare (spec);\r\n" +" }\r\n" +"\r\n" +" void process (const ProcessContextReplacing& context)\r\n" +" {\r\n" +" overdrive.process (context);\r\n" +" }\r\n" +"\r\n" +" void reset()\r\n" +" {\r\n" +" overdrive.reset();\r\n" +" }\r\n" +"\r\n" +" void updateParameters()\r\n" +" {\r\n" +" if (sampleRate != 0)\r\n" +" {\r\n" +" overdrive.get<0>().setGainDecibels (static_cast (inGainParam.getCurrentValue()));\r\n" +" overdrive.get<4>().setGainDecibels (static_cast (outGainParam.getCurrentValue()));\r\n" +" }\r\n" +" }\r\n" +"\r\n" +" //==============================================================================\r\n" +" using GainProcessor = Gain;\r\n" +" using BiasProcessor = Bias;\r\n" +" using DriveProcessor = WaveShaper;\r\n" +" using DCFilter = ProcessorDuplicator,\r\n" +" IIR::Coefficients>;\r\n" +"\r\n" +" ProcessorChain overdrive;\r\n" +"\r\n" +" SliderParameter inGainParam { { -100.0, 60.0 }, 3, 24.0, \"Input Gain\", \"dB\" };\r\n" +" SliderParameter outGainParam { { -100.0, 20.0 }, 3, -18.0, \"Output Gain\", \"dB\" };\r\n" +"\r\n" +" std::vector parameters { &inGainParam, &outGainParam };\r\n" +" double sampleRate = 0;\r\n" +"};\r\n" +"// @@ END_DEMO\r\n" +"\r\n" +"RegisterDSPDemo overdriveDemo (\"Overdrive\", BinaryData::OverdriveDemo_cpp);\r\n"; + +const char* OverdriveDemo_cpp = (const char*) temp_binary_data_8; + +//================== SIMDRegisterDemo.cpp ================== +static const unsigned char temp_binary_data_9[] = +"/*\r\n" +" ==============================================================================\r\n" +"\r\n" +" This file is part of the JUCE library.\r\n" +" Copyright (c) 2017 - ROLI Ltd.\r\n" +"\r\n" +" JUCE is an open source library subject to commercial or open-source\r\n" +" licensing.\r\n" +"\r\n" +" By using JUCE, you agree to the terms of both the JUCE 5 End-User License\r\n" +" Agreement and JUCE 5 Privacy Policy (both updated and effective as of the\r\n" +" 27th April 2017).\r\n" +"\r\n" +" End User License Agreement: www.juce.com/juce-5-licence\r\n" +" Privacy Policy: www.juce.com/juce-5-privacy-policy\r\n" +"\r\n" +" Or: You may also use this code under the terms of the GPL v3 (see\r\n" +" www.gnu.org/licenses).\r\n" +"\r\n" +" JUCE IS PROVIDED \"AS IS\" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER\r\n" +" EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE\r\n" +" DISCLAIMED.\r\n" +"\r\n" +" ==============================================================================\r\n" +"*/\r\n" +"\r\n" +"#include \"../DSPDemo.h\"\r\n" +"\r\n" +"#if JUCE_USE_SIMD\r\n" +"\r\n" +"//==============================================================================\r\n" +"// @@ START_DEMO\r\n" +"struct SIMDRegisterDemo\r\n" +"{\r\n" +" void prepare (const ProcessSpec& spec)\r\n" +" {\r\n" +" sampleRate = spec.sampleRate;\r\n" +"\r\n" +" iirCoefficients = IIR::Coefficients::makeLowPass (sampleRate, 440.0f);\r\n" +" iir.reset (new IIR::Filter> (iirCoefficients));\r\n" +"\r\n" +" interleaved = AudioBlock> (interleavedBlockData, 1, spec.maximumBlockSize);\r\n" +" zero = AudioBlock (zeroData, SIMDRegister::size(), spec.maximumBlockSize);\r\n" +"\r\n" +" zero.clear();\r\n" +"\r\n" +" auto monoSpec = spec;\r\n" +" monoSpec.numChannels = 1;\r\n" +" iir->prepare (monoSpec);\r\n" +" }\r\n" +"\r\n" +" void process (const ProcessContextReplacing& context)\r\n" +" {\r\n" +" jassert (context.getInputBlock().getNumSamples() == context.getOutputBlock().getNumSamples());\r\n" +" jassert (context.getInputBlock().getNumChannels() == context.getOutputBlock().getNumChannels());\r\n" +"\r\n" +" auto& input = context.getInputBlock();\r\n" +" auto& output = context.getOutputBlock();\r\n" +" auto n = input.getNumSamples();\r\n" +" auto* inout = channelPointers.getData();\r\n" +"\r\n" +"\r\n" +" for (size_t ch = 0; ch < SIMDRegister::size(); ++ch)\r\n" +" inout[ch] = (ch < input.getNumChannels() ? const_cast (input.getChannelPointer (ch)) : zero.getChannelPointer (ch));\r\n" +"\r\n" +" AudioDataConverters::interleaveSamples (inout, reinterpret_cast (interleaved.getChannelPointer (0)),\r\n" +" static_cast (n), static_cast (SIMDRegister::size()));\r\n" +"\r\n" +"\r\n" +" iir->process (ProcessContextReplacing> (interleaved));\r\n" +"\r\n" +"\r\n" +" for (size_t ch = 0; ch < input.getNumChannels(); ++ch)\r\n" +" inout[ch] = output.getChannelPointer (ch);\r\n" +"\r\n" +" AudioDataConverters::deinterleaveSamples (reinterpret_cast (interleaved.getChannelPointer (0)),\r\n" +" const_cast (inout),\r\n" +" static_cast (n), static_cast (SIMDRegister::size()));\r\n" +" }\r\n" +"\r\n" +" void reset()\r\n" +" {\r\n" +" iir.reset();\r\n" +" }\r\n" +"\r\n" +" void updateParameters()\r\n" +" {\r\n" +" if (sampleRate != 0)\r\n" +" {\r\n" +" auto cutoff = static_cast (cutoffParam.getCurrentValue());\r\n" +" auto qVal = static_cast (qParam.getCurrentValue());\r\n" +"\r\n" +" switch (typeParam.getCurrentSelectedID())\r\n" +" {\r\n" +" case 1: *iirCoefficients = *IIR::Coefficients::makeLowPass (sampleRate, cutoff, qVal); break;\r\n" +" case 2: *iirCoefficients = *IIR::Coefficients::makeHighPass (sampleRate, cutoff, qVal); break;\r\n" +" case 3: *iirCoefficients = *IIR::Coefficients::makeBandPass (sampleRate, cutoff, qVal); break;\r\n" +" default: break;\r\n" +" }\r\n" +" }\r\n" +" }\r\n" +"\r\n" +" //==============================================================================\r\n" +" IIR::Coefficients::Ptr iirCoefficients;\r\n" +" std::unique_ptr>> iir;\r\n" +"\r\n" +" AudioBlock> interleaved;\r\n" +" AudioBlock zero;\r\n" +"\r\n" +" HeapBlock interleavedBlockData, zeroData;\r\n" +" HeapBlock channelPointers { SIMDRegister::size() };\r\n" +"\r\n" +" ChoiceParameter typeParam { { \"Low-pass\", \"High-pass\", \"Band-pass\"}, 1, \"Type\" };\r\n" +" SliderParameter cutoffParam { { 20.0, 20000.0 }, 0.5, 440.0f, \"Cutoff\", \"Hz\" };\r\n" +" SliderParameter qParam { { 0.3, 20.0 }, 0.5, 0.7, \"Q\" };\r\n" +"\r\n" +" std::vector parameters { &typeParam, &cutoffParam, &qParam };\r\n" +" double sampleRate = 0;\r\n" +"};\r\n" +"// @@ END_DEMO\r\n" +"\r\n" +"RegisterDSPDemo simdDemo (\"SIMD Filter\", BinaryData::SIMDRegisterDemo_cpp);\r\n" +"\r\n" +"#endif\r\n"; + +const char* SIMDRegisterDemo_cpp = (const char*) temp_binary_data_9; + +//================== StateVariableFilterDemo.cpp ================== +static const unsigned char temp_binary_data_10[] = +"/*\r\n" +" ==============================================================================\r\n" +"\r\n" +" This file is part of the JUCE library.\r\n" +" Copyright (c) 2017 - ROLI Ltd.\r\n" +"\r\n" +" JUCE is an open source library subject to commercial or open-source\r\n" +" licensing.\r\n" +"\r\n" +" By using JUCE, you agree to the terms of both the JUCE 5 End-User License\r\n" +" Agreement and JUCE 5 Privacy Policy (both updated and effective as of the\r\n" +" 27th April 2017).\r\n" +"\r\n" +" End User License Agreement: www.juce.com/juce-5-licence\r\n" +" Privacy Policy: www.juce.com/juce-5-privacy-policy\r\n" +"\r\n" +" Or: You may also use this code under the terms of the GPL v3 (see\r\n" +" www.gnu.org/licenses).\r\n" +"\r\n" +" JUCE IS PROVIDED \"AS IS\" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER\r\n" +" EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE\r\n" +" DISCLAIMED.\r\n" +"\r\n" +" ==============================================================================\r\n" +"*/\r\n" +"\r\n" +"#include \"../DSPDemo.h\"\r\n" +"\r\n" +"//==============================================================================\r\n" +"// @@ START_DEMO\r\n" +"struct StateVariableFilterDemo\r\n" +"{\r\n" +" void prepare (const ProcessSpec& spec)\r\n" +" {\r\n" +" sampleRate = spec.sampleRate;\r\n" +"\r\n" +" filter.state = new StateVariableFilter::Parameters;\r\n" +" filter.prepare (spec);\r\n" +" }\r\n" +"\r\n" +" void process (const ProcessContextReplacing& context)\r\n" +" {\r\n" +" filter.process (context);\r\n" +" }\r\n" +"\r\n" +" void reset()\r\n" +" {\r\n" +" filter.reset();\r\n" +" }\r\n" +"\r\n" +" void updateParameters()\r\n" +" {\r\n" +" if (sampleRate != 0)\r\n" +" {\r\n" +" auto cutoff = static_cast (cutoffParam.getCurrentValue());\r\n" +" auto resonance = static_cast (qParam.getCurrentValue());\r\n" +" auto type = static_cast::Type> (typeParam.getCurrentSelectedID() - 1);\r\n" +"\r\n" +" filter.state->type = type;\r\n" +" filter.state->setCutOffFrequency (sampleRate, cutoff, resonance);\r\n" +" }\r\n" +" }\r\n" +"\r\n" +" //==============================================================================\r\n" +" ProcessorDuplicator,\r\n" +" StateVariableFilter::Parameters> filter;\r\n" +"\r\n" +" ChoiceParameter typeParam {{ \"Low-pass\", \"Band-pass\", \"High-pass\"}, 1, \"Type\" };\r\n" +" SliderParameter cutoffParam {{ 20.0, 20000.0 }, 0.5, 440.0f, \"Cutoff\", \"Hz\" };\r\n" +" SliderParameter qParam {{ 0.3, 20.0 }, 0.5, 1.0 / std::sqrt (2.0), \"Resonance\" };\r\n" +"\r\n" +" std::vector parameters { &typeParam, &cutoffParam, &qParam };\r\n" +" double sampleRate = 0;\r\n" +"};\r\n" +"// @@ END_DEMO\r\n" +"\r\n" +"RegisterDSPDemo stateVariableFilterDemo (\"State Variable Filter\", BinaryData::StateVariableFilterDemo_cpp);\r\n"; + +const char* StateVariableFilterDemo_cpp = (const char*) temp_binary_data_10; + +//================== WaveShaperTanhDemo.cpp ================== +static const unsigned char temp_binary_data_11[] = +"/*\r\n" +" ==============================================================================\r\n" +"\r\n" +" This file is part of the JUCE library.\r\n" +" Copyright (c) 2017 - ROLI Ltd.\r\n" +"\r\n" +" JUCE is an open source library subject to commercial or open-source\r\n" +" licensing.\r\n" +"\r\n" +" By using JUCE, you agree to the terms of both the JUCE 5 End-User License\r\n" +" Agreement and JUCE 5 Privacy Policy (both updated and effective as of the\r\n" +" 27th April 2017).\r\n" +"\r\n" +" End User License Agreement: www.juce.com/juce-5-licence\r\n" +" Privacy Policy: www.juce.com/juce-5-privacy-policy\r\n" +"\r\n" +" Or: You may also use this code under the terms of the GPL v3 (see\r\n" +" www.gnu.org/licenses).\r\n" +"\r\n" +" JUCE IS PROVIDED \"AS IS\" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER\r\n" +" EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE\r\n" +" DISCLAIMED.\r\n" +"\r\n" +" ==============================================================================\r\n" +"*/\r\n" +"\r\n" +"#include \"../DSPDemo.h\"\r\n" +"\r\n" +"//==============================================================================\r\n" +"// @@ START_DEMO\r\n" +"struct WaveShaperTanhDemo\r\n" +"{\r\n" +" void prepare (const ProcessSpec&) {}\r\n" +"\r\n" +" void process (const ProcessContextReplacing& context)\r\n" +" {\r\n" +" shapers[currentShaperIdx].process (context);\r\n" +" }\r\n" +"\r\n" +" void reset()\r\n" +" {\r\n" +" for (auto&& shaper : shapers)\r\n" +" shaper.reset();\r\n" +" }\r\n" +"\r\n" +" void updateParameters()\r\n" +" {\r\n" +" currentShaperIdx = jmin (numElementsInArray (shapers), accuracy.getCurrentSelectedID() - 1);\r\n" +" }\r\n" +"\r\n" +" //==============================================================================\r\n" +" WaveShaper shapers[2] { { std::tanh }, { FastMathApproximations::tanh } };\r\n" +" int currentShaperIdx = 0;\r\n" +"\r\n" +" ChoiceParameter accuracy {{ \"No Approximation\", \"Use fast-math approximation\"}, 1, \"Accuracy\" };\r\n" +" std::vector parameters { &accuracy }; // no params for this demo\r\n" +"};\r\n" +"// @@ END_DEMO\r\n" +"\r\n" +"RegisterDSPDemo waveshaperDemo (\"WaveShaperTanh\", BinaryData::WaveShaperTanhDemo_cpp);\r\n"; + +const char* WaveShaperTanhDemo_cpp = (const char*) temp_binary_data_11; + + +const char* getNamedResource (const char*, int&) throw(); +const char* getNamedResource (const char* resourceNameUTF8, int& numBytes) throw() +{ + unsigned int hash = 0; + if (resourceNameUTF8 != 0) + while (*resourceNameUTF8 != 0) + hash = 31 * hash + (unsigned int) *resourceNameUTF8++; + + switch (hash) + { + case 0x409ff6ec: numBytes = 37902; return cassette_recorder_wav; + case 0x69523d16: numBytes = 628; return EditorColourScheme_xml; + case 0x700ccf3c: numBytes = 90246; return guitar_amp_wav; + case 0x5922ccdf: numBytes = 2995; return ConvolutionDemo_cpp; + case 0x14aa0aae: numBytes = 2677; return FIRFilterDemo_cpp; + case 0xab621a06: numBytes = 1809; return GainDemo_cpp; + case 0x06a7a4b1: numBytes = 2819; return IIRFilterDemo_cpp; + case 0x6fc33e27: numBytes = 3943; return OscillatorDemo_cpp; + case 0xdfdc547d: numBytes = 3039; return OverdriveDemo_cpp; + case 0x3f21e597: numBytes = 4849; return SIMDRegisterDemo_cpp; + case 0x54e9f84c: numBytes = 2718; return StateVariableFilterDemo_cpp; + case 0x5ce06dd8: numBytes = 2037; return WaveShaperTanhDemo_cpp; + default: break; + } + + numBytes = 0; + return 0; +} + +const char* namedResourceList[] = +{ + "cassette_recorder_wav", + "EditorColourScheme_xml", + "guitar_amp_wav", + "ConvolutionDemo_cpp", + "FIRFilterDemo_cpp", + "GainDemo_cpp", + "IIRFilterDemo_cpp", + "OscillatorDemo_cpp", + "OverdriveDemo_cpp", + "SIMDRegisterDemo_cpp", + "StateVariableFilterDemo_cpp", + "WaveShaperTanhDemo_cpp" +}; + +} diff --git a/examples/DSPDemo/JuceLibraryCode/BinaryData.h b/examples/DSPDemo/JuceLibraryCode/BinaryData.h new file mode 100644 index 0000000000..680b71a2ab --- /dev/null +++ b/examples/DSPDemo/JuceLibraryCode/BinaryData.h @@ -0,0 +1,56 @@ +/* ========================================================================================= + + This is an auto-generated file: Any edits you make may be overwritten! + +*/ + +#pragma once + +namespace BinaryData +{ + extern const char* cassette_recorder_wav; + const int cassette_recorder_wavSize = 37902; + + extern const char* EditorColourScheme_xml; + const int EditorColourScheme_xmlSize = 628; + + extern const char* guitar_amp_wav; + const int guitar_amp_wavSize = 90246; + + extern const char* ConvolutionDemo_cpp; + const int ConvolutionDemo_cppSize = 2995; + + extern const char* FIRFilterDemo_cpp; + const int FIRFilterDemo_cppSize = 2677; + + extern const char* GainDemo_cpp; + const int GainDemo_cppSize = 1809; + + extern const char* IIRFilterDemo_cpp; + const int IIRFilterDemo_cppSize = 2819; + + extern const char* OscillatorDemo_cpp; + const int OscillatorDemo_cppSize = 3943; + + extern const char* OverdriveDemo_cpp; + const int OverdriveDemo_cppSize = 3039; + + extern const char* SIMDRegisterDemo_cpp; + const int SIMDRegisterDemo_cppSize = 4849; + + extern const char* StateVariableFilterDemo_cpp; + const int StateVariableFilterDemo_cppSize = 2718; + + extern const char* WaveShaperTanhDemo_cpp; + const int WaveShaperTanhDemo_cppSize = 2037; + + // Points to the start of a list of resource names. + extern const char* namedResourceList[]; + + // Number of elements in the namedResourceList array. + const int namedResourceListSize = 12; + + // If you provide the name of one of the binary resource variables above, this function will + // return the corresponding data and its size (or a null pointer if the name isn't found). + const char* getNamedResource (const char* resourceNameUTF8, int& dataSizeInBytes) throw(); +} diff --git a/examples/DSPDemo/JuceLibraryCode/JuceHeader.h b/examples/DSPDemo/JuceLibraryCode/JuceHeader.h new file mode 100644 index 0000000000..e8eadc491e --- /dev/null +++ b/examples/DSPDemo/JuceLibraryCode/JuceHeader.h @@ -0,0 +1,45 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + + This is the header file that your files should include in order to get all the + JUCE library headers. You should avoid including the JUCE headers directly in + your own source files, because that wouldn't pick up the correct configuration + options for your app. + +*/ + +#pragma once + +#include "AppConfig.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "BinaryData.h" + +#if ! DONT_SET_USING_JUCE_NAMESPACE + // If your code uses a lot of JUCE classes, then this will obviously save you + // a lot of typing, but can be disabled by setting DONT_SET_USING_JUCE_NAMESPACE. + using namespace juce; +#endif + +#if ! JUCE_DONT_DECLARE_PROJECTINFO +namespace ProjectInfo +{ + const char* const projectName = "DSPDemo"; + const char* const versionString = "1.0.0"; + const int versionNumber = 0x10000; +} +#endif diff --git a/examples/DSPDemo/JuceLibraryCode/ReadMe.txt b/examples/DSPDemo/JuceLibraryCode/ReadMe.txt new file mode 100644 index 0000000000..091a5aa6eb --- /dev/null +++ b/examples/DSPDemo/JuceLibraryCode/ReadMe.txt @@ -0,0 +1,12 @@ + + Important Note!! + ================ + +The purpose of this folder is to contain files that are auto-generated by the Projucer, +and ALL files in this folder will be mercilessly DELETED and completely re-written whenever +the Projucer saves your project. + +Therefore, it's a bad idea to make any manual changes to the files in here, or to +put any of your own files in here if you don't want to lose them. (Of course you may choose +to add the folder's contents to your version-control system so that you can re-merge your own +modifications after the Projucer has saved its changes). diff --git a/examples/DSPDemo/JuceLibraryCode/include_juce_audio_basics.cpp b/examples/DSPDemo/JuceLibraryCode/include_juce_audio_basics.cpp new file mode 100644 index 0000000000..418694873c --- /dev/null +++ b/examples/DSPDemo/JuceLibraryCode/include_juce_audio_basics.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSPDemo/JuceLibraryCode/include_juce_audio_basics.mm b/examples/DSPDemo/JuceLibraryCode/include_juce_audio_basics.mm new file mode 100644 index 0000000000..e0e6c577cc --- /dev/null +++ b/examples/DSPDemo/JuceLibraryCode/include_juce_audio_basics.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSPDemo/JuceLibraryCode/include_juce_audio_devices.cpp b/examples/DSPDemo/JuceLibraryCode/include_juce_audio_devices.cpp new file mode 100644 index 0000000000..fb5c2219d7 --- /dev/null +++ b/examples/DSPDemo/JuceLibraryCode/include_juce_audio_devices.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSPDemo/JuceLibraryCode/include_juce_audio_devices.mm b/examples/DSPDemo/JuceLibraryCode/include_juce_audio_devices.mm new file mode 100644 index 0000000000..e58b67ea49 --- /dev/null +++ b/examples/DSPDemo/JuceLibraryCode/include_juce_audio_devices.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSPDemo/JuceLibraryCode/include_juce_audio_formats.cpp b/examples/DSPDemo/JuceLibraryCode/include_juce_audio_formats.cpp new file mode 100644 index 0000000000..a3c61170eb --- /dev/null +++ b/examples/DSPDemo/JuceLibraryCode/include_juce_audio_formats.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSPDemo/JuceLibraryCode/include_juce_audio_formats.mm b/examples/DSPDemo/JuceLibraryCode/include_juce_audio_formats.mm new file mode 100644 index 0000000000..f325b8fb67 --- /dev/null +++ b/examples/DSPDemo/JuceLibraryCode/include_juce_audio_formats.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSPDemo/JuceLibraryCode/include_juce_audio_processors.cpp b/examples/DSPDemo/JuceLibraryCode/include_juce_audio_processors.cpp new file mode 100644 index 0000000000..bfe172edd0 --- /dev/null +++ b/examples/DSPDemo/JuceLibraryCode/include_juce_audio_processors.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSPDemo/JuceLibraryCode/include_juce_audio_processors.mm b/examples/DSPDemo/JuceLibraryCode/include_juce_audio_processors.mm new file mode 100644 index 0000000000..b80ae9017f --- /dev/null +++ b/examples/DSPDemo/JuceLibraryCode/include_juce_audio_processors.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSPDemo/JuceLibraryCode/include_juce_audio_utils.cpp b/examples/DSPDemo/JuceLibraryCode/include_juce_audio_utils.cpp new file mode 100644 index 0000000000..97bd2c568c --- /dev/null +++ b/examples/DSPDemo/JuceLibraryCode/include_juce_audio_utils.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSPDemo/JuceLibraryCode/include_juce_audio_utils.mm b/examples/DSPDemo/JuceLibraryCode/include_juce_audio_utils.mm new file mode 100644 index 0000000000..8eae7c6e2f --- /dev/null +++ b/examples/DSPDemo/JuceLibraryCode/include_juce_audio_utils.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSPDemo/JuceLibraryCode/include_juce_core.cpp b/examples/DSPDemo/JuceLibraryCode/include_juce_core.cpp new file mode 100644 index 0000000000..d0ce1636f0 --- /dev/null +++ b/examples/DSPDemo/JuceLibraryCode/include_juce_core.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSPDemo/JuceLibraryCode/include_juce_core.mm b/examples/DSPDemo/JuceLibraryCode/include_juce_core.mm new file mode 100644 index 0000000000..72b10bf817 --- /dev/null +++ b/examples/DSPDemo/JuceLibraryCode/include_juce_core.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSPDemo/JuceLibraryCode/include_juce_data_structures.cpp b/examples/DSPDemo/JuceLibraryCode/include_juce_data_structures.cpp new file mode 100644 index 0000000000..9315aa1686 --- /dev/null +++ b/examples/DSPDemo/JuceLibraryCode/include_juce_data_structures.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSPDemo/JuceLibraryCode/include_juce_data_structures.mm b/examples/DSPDemo/JuceLibraryCode/include_juce_data_structures.mm new file mode 100644 index 0000000000..695ec43925 --- /dev/null +++ b/examples/DSPDemo/JuceLibraryCode/include_juce_data_structures.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSPDemo/JuceLibraryCode/include_juce_dsp.cpp b/examples/DSPDemo/JuceLibraryCode/include_juce_dsp.cpp new file mode 100644 index 0000000000..430d943f26 --- /dev/null +++ b/examples/DSPDemo/JuceLibraryCode/include_juce_dsp.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSPDemo/JuceLibraryCode/include_juce_dsp.mm b/examples/DSPDemo/JuceLibraryCode/include_juce_dsp.mm new file mode 100644 index 0000000000..1dea5d08a6 --- /dev/null +++ b/examples/DSPDemo/JuceLibraryCode/include_juce_dsp.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSPDemo/JuceLibraryCode/include_juce_events.cpp b/examples/DSPDemo/JuceLibraryCode/include_juce_events.cpp new file mode 100644 index 0000000000..1bba110a97 --- /dev/null +++ b/examples/DSPDemo/JuceLibraryCode/include_juce_events.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSPDemo/JuceLibraryCode/include_juce_events.mm b/examples/DSPDemo/JuceLibraryCode/include_juce_events.mm new file mode 100644 index 0000000000..4cc34fc401 --- /dev/null +++ b/examples/DSPDemo/JuceLibraryCode/include_juce_events.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSPDemo/JuceLibraryCode/include_juce_graphics.cpp b/examples/DSPDemo/JuceLibraryCode/include_juce_graphics.cpp new file mode 100644 index 0000000000..319c76de0e --- /dev/null +++ b/examples/DSPDemo/JuceLibraryCode/include_juce_graphics.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSPDemo/JuceLibraryCode/include_juce_graphics.mm b/examples/DSPDemo/JuceLibraryCode/include_juce_graphics.mm new file mode 100644 index 0000000000..b28e6dd056 --- /dev/null +++ b/examples/DSPDemo/JuceLibraryCode/include_juce_graphics.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSPDemo/JuceLibraryCode/include_juce_gui_basics.cpp b/examples/DSPDemo/JuceLibraryCode/include_juce_gui_basics.cpp new file mode 100644 index 0000000000..216c76bb05 --- /dev/null +++ b/examples/DSPDemo/JuceLibraryCode/include_juce_gui_basics.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSPDemo/JuceLibraryCode/include_juce_gui_basics.mm b/examples/DSPDemo/JuceLibraryCode/include_juce_gui_basics.mm new file mode 100644 index 0000000000..6a9726fa5f --- /dev/null +++ b/examples/DSPDemo/JuceLibraryCode/include_juce_gui_basics.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSPDemo/JuceLibraryCode/include_juce_gui_extra.cpp b/examples/DSPDemo/JuceLibraryCode/include_juce_gui_extra.cpp new file mode 100644 index 0000000000..7226e19833 --- /dev/null +++ b/examples/DSPDemo/JuceLibraryCode/include_juce_gui_extra.cpp @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSPDemo/JuceLibraryCode/include_juce_gui_extra.mm b/examples/DSPDemo/JuceLibraryCode/include_juce_gui_extra.mm new file mode 100644 index 0000000000..c9b6c3bfc6 --- /dev/null +++ b/examples/DSPDemo/JuceLibraryCode/include_juce_gui_extra.mm @@ -0,0 +1,9 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include "AppConfig.h" +#include diff --git a/examples/DSPDemo/Resources/cassette_recorder.wav b/examples/DSPDemo/Resources/cassette_recorder.wav new file mode 100644 index 0000000000000000000000000000000000000000..c548b22cdde8c51043aaf157de895583ff985847 GIT binary patch literal 37902 zcmeHL378#KmA>^}chU)g1P~GuWf>J&0z}9l!pKe#6ck255s&~Pn}`gEpn|xtsC*-$ zvWO0j5D<{f4V2x07*?Z32?>NH5FiUAgiiN+ukM`x{rNe!>b-6nj0#RyeW`ovp8uTl zpXJ_q>AiQGG-=3pLfChQeRetQQ^&76Duj^Pz4KKeocWO~RKlomKoRsudNmTJC4hi4Y_XU z^r0UecF{`nhOOV#)%Ea@XDS=Tp4zb93wy3xw#Bkf_UzU>ueNhzy)dD=%8=uRoG|3} zp*Iel(s6OvIX}F1RnLY!r!PBg*^-`XYWvkMZ(JX54)e3KvwPw(d1pSkv8X<~_QBrY z_a0M!u|B)8f4n}dQ`xif;mYcjrz)3Juc<7^@~}quV%#o{4A}E)0j~J+;+p9lhHv`(F1^-GA)Y9mjSYUHwF*GrKoV&1W`Fsh?PzRNJif zliH^B2kT23i}TCk`e9ID_4g#agM zaXc>El>NT)o$6*CmvnrsV?lM>>h_gSWQ*gG`KFC(eQEDKz5CYgtX)~Zx$$WJrf_0* zYGu9Z#nnGmcdTwzSv%V>Y#fK@;~K*o`!w!q?43`DtAxwLKG|op3$oeSf^3t@36(Ea zzEt_9jUy|wtj43V3oQp5hTXz~_>;IS9vOaN`FOA0le0^+UuQ35>sI!uY+IS1ZJXV1 z{dYwCuY8?GZ+)}+M`}ZA->40(FRdL@Kd`Y^zI!}B&WP_f%(D27Fd^(5HVWPGia0V( z$bmQD!;89UAe<5H7T4Kr{$l`r#B`wCN%bLoZlFgZ*5FErg1_3gFK68$6DMeoE4^pJ1p8ShfTt) zxOQAKKeDl~entJ_`n>w^#ycDLG=7*L6uZKd5X0E)t=U^_qu&sA2vg#ycwhcM`RVyt z`G|OK>_sT)WZ*paH<=*U;>>TTd?`L;qbFvxPBiYRCLCfZ6vT@n<;X|P( z{w!`Af1B@c;=hHH!h-Oj?7P`Cv;J`Qv+Ve6{p`=SIwss5e;mIQkB{fXC*uBA`Oa*=?E384 zY*|(}2H(ntW=Dl5<8kq&{44n;`Qpa4jh{3wvChl#_gg&E^R46O<1gaExOvzsY#+M9 zoOpNqjh!%OTAb&^o8mKZbl5eV8LkgA!W!9o%=&@Z0onVqiB^^FaF=D`*s#0ReoPn^ zp0Y^(5MPKd8kc9yW{<@+G>i;yv2(0D&W=;#FXI_;@3>7|nqQosmY-uCa%*1CcZ^rY z^~}f9;XT;bFS=rlCZG3w;-;UsqW!Gg(vT7w% z=4L<74$FpRmxpb_{qeN8d3?;QADbVLA7c^zF#mNvGw;dA$7AAE#;VuO)miaQ>$4xk zi{cmJ3Gs`Ty)*3nhIm)J*AQ!kt-=SxLE-D+((u2Q(W}Ch;YZ=ymhD5szTp$$RP+C1 z>!O)qQJ5e85bg{=4QGT;n{@B6f$fBcr+37wa zRKt?^xH0&-`9C9mE`HWnoMJ4Fjt5w7c8&WO)2|uVM=g7A3tNZ%!dEQI=Y$Kx+2OQs zym>k-91%{iydP@!adsbK6_^+{4x5_)(e`cXjZ5N7ak2S(GCmS#T21~O=i0X=H~%%O z%k20U>$W?rbG{!hiPy*9S(UR;k4x>@5f;Y3Hsv?PtK+ZY1D37%cBX7){(cm03lG}v zd?GvlW7YwStP`HL*(|d*!=7`^&eGU0AGvkN ztaw|zG@fPgA8JwWWw9S_b@+O`Cf;NEHLLROVgGQj#kzlZpY6d3)!xOBRkPA< z*;!z5KWZ9J#HVbWZB=>BGWVk8ZmDr!80Q(2>6V?_;;+s2&DJ0HSZGs9BvB z+5NP!c+9N-$ujeVar%q#nH?Xpe{+q=Ld)F?c2?J|f4j~9LR+0>RlUbDez~0+=h{hp ze!L+5&}w?M?cb?Zg@;Y2*G{vsb}GNinCxo#*dzR>-Fq01t*xS48jCHB)w{!cOg_mF zJB96ReSBEgv{tiBciV26Z~p4mI~|tq(P5m$xP@URhRy60eXHd%gvG}EKCAz&c6K~y zwSL^VW)|CO%?d5EJkE^woBT%OcBOqErr3Rr?YG?g}E$TTI&oj37p0nqCi*AwC zpwaA=QDJS{1?w22cbLBk#&@T%r|rXo!e{Ip|ElfA&xNC`#(P;rZ!?doQ|;nenmTKDK(NF?qnUKF@MC)Ozb}ma|=LN23Qn zZqJWe-gdRf-)?-yT7QiT>)DRm%CZJF2iv)DpmEs2zN=kfo}DAt#`EIo@l-pT&x#k? zF8isSrT1IS<`@(F1Ebl-=~0V(k)4!P%hy=T=Xk5e&f&f0Ym#-*E*9jO~FXW@Cm$@SEm+qviP)s|B))n%rnyrdV%$D}FP6)lQmI?0L5J z%#UpSR;$}X*8MNpZ_iHa{TCPtHr`UZ$INEmR zWXsAPCV!Xp{6@xoEvxs?=J~@Nw7?=;+`M13uI;h@eaY?@ZRG{4@?6Wo{W!{YElv=eb}t#bXU!tJ<5A=AN9*1PtxD6ZkEdGxkj1Gs zpJuDzHnUl=Iaaer?4Hx)@wBn(vAr?Eyp6T4*~q$dQ~NjGSZ!q8uz}s{8y`p}Sf;kL z9(t$Uo0&bh88^Oc+DOs7>PH`G$g;ET;Ca*H|6 ztfkGBmrM>j-PXko+p|0`ka6VvdAo5ccblwYc^P55_f3|mwXM$USst;=IId&;y{7%b zU(@8P+Nq0sWy@oiaYF9M^?BQ`Pgy-4w!JppcF%py`(Araw|pU6kD3&xD|Ys?c4Kdo z#q-7*Y-`4)(L7(Q^(?+x^UjUm5X%g*I@{DXFOkMvTIl+zzfWJ zEz9#wHrH;P)#%&D?R}v|(ql1HEkCQ6ADnvlDh#uGh;>_Mb3S~z@8QkwMwew0yA2g$ zov=4hC!Dv>H1`J13HX?0`JH8%eB4&&SsoV}3SWX?9nxVQhQ54vnMXvnl0}Hzj5H=I zFOL+pW9L^)uhaC{TcfPPYc_A>lvVC%#%rP5mD@k{BCTU5;aUk2vuA!EKMU z-dWX<$oL40yUV1p*^@X6mRcN(EZX@N6S9h&K5F+IyD@T(GvbNn{iO8~z7F_($^J%< z;O;W(t2A#`7tx~*=!wzR-{^?3Hm+eS=$n;H17Gcm@s5^%?7i+LAM_?qti{d#?6v4| z9^z)Ekwg2@X?L}GbB3t#D*#X6P>Ep{@$hCX5If%Kl~q7y^QP}!^NxIg0rvKi=FJ_A z_oXK3w(j7~dAH%Aff3rh76Up7{fcUV1-YQphBn_A1x-=7bTy#yfG1w`$deqWIc{9Q;X)?x%Legc58xNkqGm0W z2b^h$RZ%l;Wz92(UvE9lT##$0#jh%0_oGAj+YS2$b;2pLa_WJPVZZ4wK;2M>nXx zV2S+ULSC5*d}Y~D?0Nixsx9AxO=uIxy~Dk!RrqElu!8EqAG(w$1^bacC1rO4iFKVK z>1oFEi{BW2LHVW87X}d`YwTok!1;>U5Eo8bb}D=@2l$@_Ig$Y)Q9q%F(~iQ<^LUBm zlX;^i_nbfZ4d0Z2(>p-fgf8`&Rb~@PhDCnZ*%mj0->ZG=bXB~k>Wau>9s0e!;C$P^{ zDfFXqp}MO-=vUpVs&E7wT;RjJ;aR+#g*qG@h7PtTN5hN%__}u1ax#aSt+wo+Zy6yF%wOdjh8s5$X!YuCt6eQl}t3#>8r& zPLTOJ7-9dZipn2P4`v;)66f!%4Le`G#F3f9F68$QPkit7HyiaDcN@D5`BX-on|RVc z>?%6nJ^I=se~5uKS3e?C`kHH>QG-b2h8Mkq1sLICgm~(=DB@GCIkJn?S=uRzP!`DA zZPEv&%tF(lJ-~%sr4v|rM_ghC6mudJY(bmRL!M?AGF+^paJ0tmp;y`vj<#V5y0VzE zpiR{a2wX&yZyF=}j=xedN7nG$6c_iAziD?e7kDEZ*uzYokR3^2gEIOC2H!r^o7HAl zV2)vNM=@oM@qJ3D>Ud4>R zDHw0sE8I`qF}|K=qBtib@nMAIr6*;IfNZo@#$X-xDVH=IQ%y%Hc1d9+tp*}aGf|u~ zOYp0{V*EN=c*3RjfW`UAn-X~-TjwS&#i*Dm@a9E}c)F%z)DPmokx@{lh?u{kL^8&Q zH(atM4Wg6-?S!-kkR9CeE}8O>N>dL_cgsB%=N_v%+w;*rFI<%#Mp)!~8k4W{M5kRo zg;N|DX+!KVDq6)`j68iy?I z(X!*DB^mpHou5Wkob#KCTqr8&rR*{1EoS97VZ-+lBS?1(@NN-uUgh494y2kx*JEC; zm<*7md>|5E_vtI`WPz2YRq~aj%wBa+cgi+! z9w+Ci4VTf2o=vspBh9F!wC+)2#)zEN_)Uh zOU3A{)hCQi5jKNZ{vg)*G#$R|mmqNvcdUYU@!gqI&UZ$P*wS~*=?Pe$;f?Q{=?PD? zLB4vXa?ELodB9wKCEvi1we}V@97mqCK$f00V$+(D2R#$ViUH}qFyn=F`oattMdG7l zHIqyka9gxOOIQW6coD(1wAW-4ITIu0&soV9FgRt=YaSFoM?VxL;+$F_>0IPP>{Fif(<&hgw*g+_L~pdx4woXO!?=`D@szeA0$Q;^ zR>onC7|eKi=K`%v%P%mPx7G_-@=?xH-qIrYH3xAcRuW|stguEK;D%pN+DBL?6IwxZ(7>s{ ztV5Tpm?=i0(skxjJwmK}^Ud?cm{mVm;iWn|K1E`cu@Fs^p7gJ`bS&B+u4uvE(oCl| zG^Z`TNsA-6dsa9H&a2Y|G#|{lP8Bf+GPR)EIL@oa?n~LI!t^4(%$MUJWewR0lryhH zm7lWY)xwHfl$>#@Ys5m`rOE+KBs|LsMs_~AL4sIuNy5r7%izv0miQA1JG9_?P(39( zo=w^p3+@6kqJ%Lh68Ataj3fPSx+nQ+wU%1pPFI|eq#ivotV#+Wij8PUaM2g%loX$o z_)}3}CDj!I+L~*Wj?3tyXu-2bro>POnc*48dNX=QXaPJ0HN0ac_IQ&gBKYQLS@1eaS9p$i65|?u z&s-<m*F$09)@Ayip3KMI0jnf_^covr-*r1%$35l6c5ct9+LRCB>&SFv5mkd~<8+PsIZy zq|}gANy*2b;+5KSsrz#Ot(GJsy7i6rik_U8uNN5;p^ou*h<18KB;J57BJt*zFw|_t5=kko`J9$yAw?GLu-DzEBI8QR#w~j0XIlic7z2^ws;<5MYe#_MSkth%oIg_i~yE& zxfQJdqdwu9FdEAl0SYqxPerj1FT2IjYnfVejQdLE>djVMY7bKOr8B^c>&&_47|C8w zj94q@N|ka?ZXI~Pq*?To?i9yzMh(xqYmyZ`rBCRksItXWD(mG@F><|VA@!v`N)hs% z;xva{Rmx*3Yo}}|lYaaDkyK-=y>!JbVwU>STxi)#N6E?~FfSTKm0s^4fV>)Vw)6wq@I8hCu)c(wNg1GUQwd)lyzUhj8?fO1V+{s zvlK55o)@hUm0EL;u)-^~Ri4WeY^2tTHkoyK^${BKq7iGd<#S09BQ8p0$Ar1xlO)PE|k_V$`aR7 zJqgm$KCqnP#PIO?t9Yd>2~Pq_l_?Bdw<1w8qin(z@H1Uu8`QjVV%V@=TAdn#xo< zx~^uap1f!TE8Ab8jKjn42x0AW8RKt05)lr<$not;}?Z_14zaO#c z7|c?fEViN?*;Gg#w5Emfo7SD9d~ii?!u2)ME}!XnCcI~0An_4hE~cNxWZ$NH=+DYEsTB(GA#g-cBSp8H!)x(!3s|Q$V%#EU@+2OqEy_}y{3uR( z6+&Z?OYseubfv$y6sLI+uhqUsaY{#`6@y~ps`GO>XY%pNmIlI+R^$_7(Vx5xWOU9# z7a41{b#$MpOcADQea&H^|BG^GB#crMsd$xtQ?|2}<|DO1 ztgp29SY+>L&fK3{lRw86QCJs7W2-f33xN?=(N>vV|J@^7vR$@?cgfN*#rZm|@jXSP zR=`KhTe-uVIQb}?d%{febd_Gym3BDiRzwc`%_Ddvo&J%EL1TMsl48`?z>ywvisRf- z>8y-PWuC7TRYVlu90%S0E=OY4dKKkmOxi`#En~FKv45#BMIFzkucy4Y>K!CjDMoW( zCD%TZjH3{#J**W`%vFk^wIT|7+9~qNHMggC$N9=YXYO^N8f9FWU0Kfe6qU~9zrSv4 z*IlU%dT>kb5hz?(kvtu-u3BP_3v%sC%yH3*Ke3kDX@>)*6(uBX5|ch%o~~lvPNLWx z3sgHK5t91onm%)BI&-7m687bx6fK*Pi=aw()x-ok;0^ULX@K+mPle!E$@)x zYWu2{F|F^Zw^k`ufM_QXZ%I>29vfzTU#XP1)Qa@lWuaXj+^aPE8~fu`))RK19@;Z5 zTTSMZZ2HQB&}A#FcFTwr`7RcSu*|%jAK}}{(zX6^ z%BN6zPb~~=?iSkHNadXOW!I68KB zyd`oU7=K|`B#WZw*OEoCdM&yh$%?V!_Wm)m_N?3QyA{Q#{az^VT6iN;vlZq4mF$%J zpfA3!WaqWYnQ(#ob7&Sj(3XAvvhYZ+5ZuSLJ818clA7Ulo!H)WFJKby@P z#ecCI`)1v)=4prbt@-zrwBz;n^*Ct#Unc|qxbE@O^Y5R%fkZXXeZL~u4usFE@w1}s zy&B*BVOxJY^@n~V%U%yB|LY-tuh&j|J>=%~#zDUiUvIny`TQ$p04KxX>F}>u**9KH z|H$8ZZ@labGH#!NSNC_6|3ANd+h=QVbua^i85qpKUr`#k zs;G!s2XH_Hiy)JTKm-!z1VR!r=iT%FzVqel+WQRm-uIG7=+Aq8@9wqNyw+ZO?R{=? z{1YGdxVOKsS3K*{&phU3C%St(eBFu90na;j{luT$ z`11dL`*m-+`NW4FbHZUu?s4#ftLOanv~NwhdD^FEe|gr%@{7yPx?-Q-TyxpR>(5=i z$N2Zx{_WBgi+5jq`i-|Oeg5q)TmJXU-+0@qn{K)0o>yFZ*}q->!z=&h+Hc=@*s{M^ z@lUHRT=Cf3k6e1f(vz0YxbxyWpSALSw?BI6gO}a^j^E$;?X|C1`?WhyUh&=AA9mZW zw|(=r$KHO*?MEy>b;X%?p1S5&tADoYq?NB;dD^P^t3R~*^{c#9%JSv? zJvO~}!`cmBAOA@2jHy4K_PMF2P5GPNRmC~QfA-!!wqe@GXFhlKduGp?_3`O{H}$Ns zlc#=o+QR9ZrtLrdyEE>b-JAc$1;_33?OpcW*Z|A&x?tSKca);A)JZHh0oqx3R!UbQPzu&y)&iU-@ z56*tW?8|2@n|b)mU(NW(8B=G>n!bMOL#JLhwtnorQ(rjk;nQc$SUTh4nNOQl%=-0= z1Ezm)>L2|{x#zt8h^(4-0^p9I&I@GH!R$+>xK(99K7l5 z@#D(36&s6R7mqGJQl8UaG`?)pEgMhYaKid~uY1PYTi0B*X2IGwtX;PDxOJzj`{=r_ zulwD)RqJkFciFnL*8OPRdF!rT*I)Ob_3vMQ^ZMO3?7U&xhC9~(c>N33U$O2X>%Ow~ zxoiJn?VjtFt~+b}DH|TT@xqNy+q7)c2gl3td-V_L@6+FCY@bQl4Laqdc};(Z904 zWBIP~=we~-!rplAqTYLZNB8#VJ-4@__m(LaP1$km>0_sj9XR##Q+JJnU-ZA&e`){0{R8@YBI>{Fzp{T+|Fh$pHvMu_Z~VmZ{~AAY z{PW{)AAi&Mr^as@Kc@d)>+L(`HB-Jj<@za`rYxQEr72IEGHc3Zy$|)C(3{^|TdabP zcNPyV?q58;cmp!|vEtLkzZ9nwZ!JDle7Cr?xUN`U%hk1rR(W3khp3}f{ri@$EI(iVclq7&^zw)J`w*zlD4$q9r98fTX8D5hW#voDmzRH6 zzOj5!`H*s_a=gC=&z=1n`WN+o-an^*MSo>~yuTLDj^$I!uav#wvBk@gspEn>>OS` zyF3-^u%bM)cxLg}#fimJ5$gl68v7KR$}7rq%Ztlp%j?T4%iookmA@>{EH5eh<^ILJV0A`uBQ$=c{3tAZ05$ui^6S`jUn<{U z{wU-2od z=j)2UD2|5rFD%|se6BbH&wpY31mgQb@gEr941bO&b}h^&O$`oW;?g}pNluTO`qPnMr3KUn?)a&;2){|%r|Ae-MR zzgB)67N3V|dm(DzJ>dL#c}KZ3D&u}w+b5!uj>BGj6juL8Xg(5_4ug%^#Tu*=eOpq_ z1NPYB`N+XDVfTPyJyzl@#Pc;o`IGYMaw;?(U%V2zdL`EXDEKwMxE)zvfm}WUGSA0O ze=2M|8PW$9v!MIlu=#h$-SLR+R#e(~RpyIg30CJPT*i)z~VW@+lnt0KPbL|9rgft}&kNCMzm5KSNbytbmAU10{j2(` z`v)P1mz75#){mkNzJ;^+%Hp%XCYLI1(!KbIGk>&p4X ze#QQ%kvYXQJoB+;>#+v!Mjv=Y`2akRK_7S*YH~@r19rmU=r|8T77r`#iP(=u2KOtj zFTaY4eIGi>naJyGtp6#+PmA9bKSalTXfd<6xxBQh>kAP1jfnVHSedV4eZGmla~AS( zQ#qs99e1E{#J{XuT3!RcEUI#i_+d&@KPDcoSCW zC|F*KTKW~NE-5!69|xeKo`kwM8S<}%o~IX&M6CN@&yL})HV3}$gNz-B-F~lPZ_LN5 z^;?Bp;$l~v z$jJ||*M0%XOR$cY;_tWky9hbD5D_oN4qgin*J6h(t>EcZ6&?xw2g8%yQHxxa`{H|F zP-Y|ZKSkc&iCy<9bd+PUqDPcRm5(oWd-qGVH1c z!jA>;V-D);Anf0VgL))*4#U298aPgZ=yhSi4iO z3eQCC?^R4KHk6ynv0@(be*|{xBf+%~wDUGS6RWeJ*sWTb-7zbX_v^5xKSa%(g{nCZ zS^NVks>Dv(70=wFU+uRQSi24At1Gedev5PE=lHt}6}AC2ITwD96)RAWS7IH1i>#cE zp7|AY&7XtkI^Zvc?k{6CPeT8CX8Drx&Dc|)LEk(LJK;i9>Q&|Cuzeb``%dKe{aA}{ zLiSSRd2x9wR*}yJRNNtm<{8N6iOBY|(Dfcr>;nH*<5`cInpNzCxbBCnJQ$QCkfS3| zdk10X?Skm1BQIn4UVs(n8CIeW*FkO^nHocFu0{8_6Z7@>UIEISVj(m<8vXlmu=E71 z@MDqjBd~r)7k`d*JRY7Lhx&ga*5v6}ofl)3UsavJN1^8TfQ@@%T_26R(6Lx)?*F1# zhKwzR_BH5hGtonKglGGJdtdmo7MZ;Y&yDb49;);p_Ar?C=0#JZl3Q|c^K?>EpT z{sSHJ-|_vm@(irN*{J2K(NWf5&y?uSGvL=f;P38$R>A5y;QBUp+^^7+#>+k7)sa>8 zJqj6l0;2y5j1PdH`~7cSKMx)Fjp!bq#d-cybepr$>Hi%SdJ;1AL}c&Jk(Y;Kl^$62 z$9<5g2cSxiK~|4LUY`Pej{u#!=rDM(9yN3&;$MkAHwRgpgG{bKm7b3p`8lFGA2oCV zVz{izU4d*Z2lrK|t1D4^x1c&UA+qI|or`nnTu|;r_7~uphniT6F0=@|ze5ggL{D0d z^;r#Dx4^>h@hpOMKG#CmHNgE2mVSo2;Ayzke7gJ>bfnKAqu)V(euTdtBU=~4!eTs& zP}LXVxddn7xsc(l0Zx!(7}!<9c2yY>j2A`7u&H^Hmx zVVj+89oAqIYGhUAAy0}Gm`}x8vBIaImS-TY1*pFRa6;b?Iesv5`(#w;%TS>wqefqj zF7*P;pM_oYDs+x_;w*kMo;TqncoA0M5wO2^m7TfJ)x%Ed!`?dNa4Iy*x2oyWu^vAI%u2Wn>v%o7#%|9dds}Rup$a@+RnBi+jgD$lQ}bKLJ(y zWc1vHu)MnR`+8Wo4!VDjzw6-pQbfD1x~nWe*6)uFaSXH`TUGN3$my%m{oh@^b)1a6 zKOUAJ2#befb=aTwhb2Dy0@@#Sz~=ze$3o2ZM76K4&dDp0pT+QOBkmUqQ9F-=g~wxu z9E2{-KF*G>eajPWcdXz-XxSC(x2&pNR_<@`T#Q`&8Yd_3?cYadI1_*0!4319sOayY zLVu5}-Bhi{9`Z1((1WTjav$uR`y;Q%Am`7;Tg7Wo&2L1tKfgLNp8)=cVK*`3 z4*=I=tDEpEaBF!Dc#nm~eXzFU$SqHiU68v2VCkM%hdodg)2fqm4BzWe<2NHeH^9eL zIFZJ&=HpoTRe06{<}RFC-E&qThGnRXYfvFqRaJ5;YL92lH0;rhsF!8Xu?*uTL^>aK z7UFcf4|eRqc?*?P&0;{kx>{VA{Rc?jsYIL$Ypk*oW*C5xILuS=>`{vp=p9IW}Jpk7t2+M;UTQQ`uu06W(&unvnLa|a}sV&s1O19*RrzpDYM z172UPOi}Iq72sP6?mH3xCghF3)Ui+83BRc2Ht;e>W60=S^o)~n*MNg3ZGpPo z8Ed;g;$^3LP_>$eBMXOA-S2_bO7jHfdGH``9ERu6%{e**@ZnhXy`g0dJh=fLFNU8y zC9ejw6e}`@irN8L!VI;q8^U-LZDNAYc1b`8ot^cCTvB@E))iDD$h#?_AaI?)csf{5)?rLI3KiX1F># zRdqhI$|@sa2Jtf=Jm5~5j%Nxa)U3GG; z0Bsx*%!cpt;Ul}?y-?}A6C8#v$M^dOZ|;1&{~ucIjC*6X7GND`Al}*4da?>wr}&Yq zx)m^YGZ61u_Y_EZq~@cw=}N&M>}T+#eL4PkV#TUQBo|__PC7 zXA|_?UiAv@y=$w=y&QG=YgFsc&~tu*o8>QYQk;X4?@H(4biN$fW2Dz2PdsOC#>1@N zhKIM~CCI^Ij4R+B&uB(`Ff4MN*f&;!!iSJ%cT}r)1LP>l9>AL#b#P79p*A23(~*;z zc-RqGb-O|9eyHRFQO^e>zxT!;-v{?Z7H6PCv#%~ge0RVaZ;*USN8tNVQ1`C(!+d=6ROZRDFZRzoRQ)Pc?joFwmmxEY zkc%}{jPz9e?AnI$;|9Em=3awWm z)2!Fu;q<+{IyZQm<$Z-w@uX#MSb}_AU3K{-$e23%dQ{0u(62)`;@Pdc@v6!$EB0no zD(|HwfH&MjFy99>#dvLSp(`Fn6V!%sve!vi!r|(T7HVV)pu|s`*C%0`~enYW!Q_B zVSXpN!x&=Q9l1Qb>L`34I~05VDD3`6;O`;m1^2-^v99;7D*FJ`?*V|>{TV4^)!D(m zR#xv-dx3lZs#olb{LDv2`Cc*wdFO8mdxOSPg{Q>M$P?dMreoX*I`07+_dq^pp_=(? z!$x$0*_g9_cr)4$D>)aM_&Wsi$WB?}1jj#IRVT|z#Ca|1owrWjHhJH1x49Yl;u*p_ z+D!cM9>!m!bbq=HBm2toDo^}9foC}P)l_hEH8&w=i%{>pL;nW1rAuJp8rb7{@OR1O zn>BEEXtmjUc+*)^)$I<5Z(lt3sP+K6>Hf&Y&Q+`%(Tz8Pi?`3+kZ;~n`EJ1eqHOQ7 zIos}B)WlrvS>=#tjSZXo5#LD|RUfN3t;#v? z&?RR4#f7&;W|$xTR>v&T@OQ@C^NQaA`dZlHDKQ%l_bz>OU2@N}Be5#EE7>i$b9SnB z{%mmb=F1MHTbXXdy~-<|zpQZktn+7AtlZvs_NsOgcM*FBAFlAOr~*E_0M8S9J+i}J zzS&#Zvsk74O^hc1ZSth&ZSUr46}bBBm3nVqg=)B|y1Vd(vkX!z!Mh4P?tZ*~@SW!7 zYW>)Ect7LH@fO5~y0j1GRb6xz){`qp3tCU+izg5>D$lrj+(p#F-0;1CmbJ>P39i!4 z$iu$a*W4F-RypDA`(CL0d!q7rUhr1JZqGAz|Eg#3*2nrS;n@mAd^I}WqTGcW40`G?W zT~fV@)M?=1-9=g?!F|9-rwl8A9az8M@!VO1-0&P`?7IK+mlpnx#S?>XrF>uHz2GXG zB7Em&Rk5qyiX8GJ=k0>~Nh{19%sVyy8v?3wE*{-V_&b_$+&R;#YM%|NdJn630cPyb z{P6#AaBp$XvID3G2(Rv>xMm_dJS|ikToLv${tCd|!aC$TCEt*>TZpH3G3PF4ci;*# z^OW%3o(6yBftxaO0rQTbI|26xdlBEQx#N~&wfWA!1nbQ^CEpU1(LYpKWLM8(hsu5-g( zv{yySI??IIH*)q`Rgdb3`;-~sC_HVCS62D!1aG)pS#}{l?4i!K_dat)Z_SG$lp1*3)IKmGv&M9rPm>Tb`_qbJfCzv z@O?qm&F;l}Kl6SoIGJO19cG8`T7IA7dyiIudz0r9KdeFWvV$&zjz!fv^8JCg|9EsF zu`;-~xkq&iQ%|;c-tjzHcR;o7frnk3@iAY_25Xj?SwpIL zRkdcUz3`o<4sEJaF}A2q-EPz?c>CAG8;^cJ(Ax&zJ9IzdE_5fQPUnHE;nSTr4gQ9s zw|7Rs6HVOe{yO#8HCfH-aqM$C2iXJsn}M>*l?NlZbyHCP;~7V3)+Vc6cr`N~lPcLUdiea-8z3hT%USLfGS^6d9&dL6~jPDFmbt#dc?1)!+%kbB?D8PYa$t z>P+T!&tYv-!jCoa)X}-bQ#PtxU4bj=+U7dzcU1oh#NN%{ig?pwt+LvA+tSU6INrJx zIqQvgA=ZU@i90xR&3l%lbt}?u7nJ8otuDv4rzCIRw5IH-Hr(6Q6V!90GrZA_O(zR0 zh;^giD4AcLe!4yI{=nYAU+wrdw^!8_Tur=7tESjJnB6_F8oC8>b@~3rUvlH7%HETn z53EYQV<;NFkEmy;I($P{c63`|jH+z)Hs0i!N$!Q%IouyS$CPJP4!aF=!=9mgD0hk~ zT>nQzRnCmLgXvsV74w$EbL0Bz-pd=a-uZMAutP};bIVT5zD}>SrwREE!#buEyAZ8u z_Y<3HT;62YXvxU2g%*t?JjmTyQt|(XPdy#(kWSz;5&Lr27cLIAQy;E;gHL0I6-&|eZ+IZG*ElkmQ&Gpe5 zaqnucuzvLD>`8YrbI8+IcP8Ctlrf&${OEq=>eb1k{ifC63C0s%=MpL0i#nH>e`epA z4?f-VxYk+^jihT|_{7ux7N4XQ30GS_=`D@_BBAQ%ZqP|txsRTus^;1;TY7)c{g5lo zo~HAO+0w03Z=>pD>V;{|^S2QFj-neA`x4hq`$WGic=zgGOn5eOHR7I1-SZ@{V5Wgi}XxztAl;ZUH_iIqF}e^ot-Z$)-*j()sS-cUgKjLW9evp2UB6mKcNL%E-UB|5lrhQhbZ2kk-A27e zUh}4=wNO{1En4zUbvIV;*KXIjz`9_?`5i#juiGcTnL%ZZQtTVfss2rdH&)(rbid;X z!Vbb!Va|2>vjV(3wC}vq^dV|cdzc-YIgXQDcPH*u?r+wK_M%Qot$|KB-D!Da*Dqdr zYtXuI)zl+tQ~BX9SF8f{(MmDCxN73i@7y|Z{3gN7$9WJpZR+8_9QlUnQ^FlaCsC|! zR6KL9TMSQTW{}<3>!Y6JU2Q&g24zoPM@=f*l+q1dZw=&CMzv$Ov-EH;@xI3O(%Gvn zrQbDuSMYk0Mhj72TG8A-@8JH;)Rn1UW4MCa?|%DW-qcroX8T>wJ=N!mx~*!O)!_R- zbxPK!z51E8x~^hWzlpV=wAM?jq8lpX^!^ow`=tJG#bQS}`^ptXaLwF~@wkFPKxUBC%S*xFx&e>30Uzgu148h(^h=UbGU9*PY*9(Nk5g z>fUd!tc1MY@}8NVlZ;QNOmu;|Rq;rNt5`cpeYCy{V>iX_U_Q0R+#U5(-r0&Z&hKCJ zK(x4HISbm`tN@)D+$Gu%e7keb^_JlM;WhKVQS4d~+TzFE(DxkeI_tJI-zKDA8eBil zv*LD7_gjN^lFwcDd!4(AieAVYf2%&V$6TMn$*RsR-K~7aQ5Q9l!+SkN0L&ZG4HTUNq%NJxjN1o+GaQh%Y3Zd-?4Z zQ;hb*qx!d2kZZ?}sz&>ns~|m=pha=HPx&_i=8Kt%{Ap*XA5mUws;coiRRR@_yN@~) zlRB#ISN0|Pk$m8Htc&W1`hse@v*}fF-l7iOSK{1tl`8l8jYGMSv@F;2u6%PfwNn&d zcoo@k-6%g=37^Z(sWRfs>4Z||yfRuBTGg&)WvVW9LaHnJR;!v~h1fs)%beLauaH(# zlx7^t1$kT>92KdxbLN%T>eaKBuZUuZo0s;P_dt4@`~3I2U2aLXwEEtUTAhxcqgSa;(|R+v>SX*@rX5S@7q2TMs#Pn;i1b9h?6GRUndN+y zv{K^bx9fpi^j{vj`kWQ518w?=d#q4<1D_KD)Vak@6DE%jyhX59o`H##HZq*OGjwAgEk%N45KqBV{6 zOK+HQt|%_&Pp3`9tlsSXl~)#h*Sc|S;}eykGts`Lw=mnI-;q7)N- zmyuCH#3~}6m=TR5r8Gazs#Y@JYvv)J(IAZMG;b#jw~2M-TW{v`7IB% zt6X2Y|7aCVudgyCwAQLM`k*|hBGM{wRoM%T^us=Ab(}Yi#*vQ_T3yOGt6o!ksyZUS zKGG92^XGP&GeyK*ti74Cge=i_=_D zBWXO^XlOT?!2?zk?5;@;&)_=bXk`* zXF103(KSI2_@PdJLThA*v^t;pW0Y4RrMw2#b+3q`N_a-rxm+=_YPwfSd5-;|T)Q*4 zCphc%8m7*)4%}hwUsRSk9i!&nN!F`fl%9j+*V;%YbCUWl>#FRW!?nc-({-`sSi@LX zLgLOf+9G8gL9AnwS2oNYIVZ$VonoBj!nYK1&v7RTsgz5)m9yxO?j!X*V2jjc-_m{O z6>$Z`j*v}9B6-?Vf6*_t+<9CTubQmcTV~sO)hlw#sspdTc7uJiy>yQ#W=BfPylpDm zwi*6%Ev!>3R55SncV1$>%|nW{IR}&!o!_*W_78Wqyv|f>)+8Eds_1m(ysIKs+M^#F zZCSAJxrf1N9*)G)URYKyGfzs7Rkzo)O@Csi=ecAaO!bbnReP7}l2zJ_k8_jnUukwO z(mk&gu>Y!?)W39H;w(}8>37&wb~tZp^Gb)mg2KKj&a!JgvPnwYhdLBZ`W+c2J(sg4 z%hfqJR}9Wv^k&iYEv@3M=d+E^doHa}`7+a-UG32)UFSCLW#5KZk1Y%&MGgxgDGRa zkPnF3!;>aNui|Oai6K2Q8{Ed#rGi6{Z-)_UUBXtHl3F=`2R+pg85HE4up{_fiteG+ zc7{UM7>&lu4rkWNUZ;#(f>iO*zx2a7eUCoioCT*e$12)CYBi0P@=x7LWX2FV45wC& za|Kbaw1w}s<(MOT_9WIamG{1rjXZMV__6M`Q5khT$CySh9%1CSby~Zz9_yB@L1R!; zE5=GkIeTT1DM z!;bUXHj=BZqb`~9Xyx*qkn?LMoyv+}b8(htD`GQ;HRN;7q^bKmbcGFar}dU=&2tho z+Xzot-YdF`gnQ0ttr8zdKmXj8)K>F0rR&%E|>~mNnCf~O~BNSR9gYwLh z(%B|OKgDY*XU<4PO6Klm_Lq9~F{dc97ag>DcQ-$!#qICS3bUxpJ=xLmvXoexP_OMJXX#IeVQ6`%T0P<>hY4&^ug9cj+myG z!iZbEO+Hawg`PFXu+J3=*oYyk>D4zVA9C;=~^DxM@lUkunIuAJ27TE4=r#u0t zS|$ePxeblE2dU1KCx=t6L2xeRSyRFkj;5x#QQ)Rry3%bLETPdHnt4xgOh4xGn9>BB zqOnO2OwO6lf~y@${cFPQGQ#F|^4YMAk-JTIXc=xJct?ZiQ+(R2kA@2!DKwgF-XWat zQDw=O+7ukp(wEOQOQlRtaqf}nx($L;S?lW>&70>x#oCf_?X^+Y@9ag?Ay25zAM>1V z5NF5)l-uP@pImG36Edxy14pjPY?rZYo1Z}=l*@Z&p0Fjz_(7v}sBU9ss4i=KItEXQ zjVuP%oPikxiF*(SY1Zj6Fd=E0$DjnaX=xUXi_z4;1e9t`;Xxd(t(1RD;jq^Yr8ZKo z6h8<~Wro9{X*h3_!_q-9ra1;rx?580Fu18xm@c`LKX~fcbY6$OQ|frlLuVRM@TPRa zK?$hN)0{W=LCzDp2<5cN&T^fp-X>+D82U638O0!pG@e|?#B_#is<9o8n@dP-ojj-d z1h;#TV@I*w)Yi21$He3j#B5X_LV{2(mD9HEjFtykuxIA+d~1x>8DqQFVRT9b51}?a zIY&CHbEh=Ib$WB2OXT#N=2_0uHZ$ks#x{*zxONM{Eqcr+23dQ%l&NiFyTl-Do0dVi z=G~RrQ;E8@lr{_w*_3mz{*c)cD7CjWVf!>(r#b86aLK_OslGPOlpgTtoFVhah1xvq z#-+XmSBfWft{E+K(E{J*M^FXTdFph}b3S9!G3OXk<>6=Q=GP*whPCyT_0l4eHiJN>fM9-=wFQoHw6|FUN6~ z$`6K{vX*bBGSS)N5+phVjG4y5vOXZ5BdD8&$aAnK-1qB)O)Ay1pjIL@;%2 z?N*yy6S2|cZR$%g;!iPK6K;C5EimD6oA#jQ&|uy+s&ToV$;_-N#@K&>OQFeFkxZ&( z%i-{2kgniTTrp3j0^1&aN++Dk*3ZB?uji?Zaf3%m4Cbl((k7Ey9_9RK*O_Y>KBM2m zxY}b&rJ5Y14%aLlmd zO&qcgj}zAr64ucigQpvEROD!Cm@KBtUTUq$Gg)gP*VH)~Oz4{kG@2!AG`Hu&#?krB zsd1Rz;q+npa(X^Xwda({&$??UwbljOZWp~x`zXA_cvAYHoo4@HOeIq|I8rF(Ae_>+ z4BmR$>OQ8L+h~Dv1bJLRPoasOIM%E&)iXIb*EgA&><*Jmy&KG%at55s1YS^1&1ZF9 z&&B20mW{c^?tMeP!ItWpw!gXjA0A0P&O8!Q2jyZAt*%+~c8_waqiH2q7iV2x%$r^X zZL(0_Kf1LvZ4;C7i$fT5r}Ug+j`lI++UeU08+IoO4fCjLwJA4ITPc5TH>DWPIVNvU zem1oY$Ji5(-4PGhHH^bHCO@VYy0oM`hP!x2#aqvyv8!*SHU`OyChp;U^ED^$qDR0UbaLQpgr~#SQHU^iVHXh^5>v`K~p5fXkopQHn3tY-+IH-n9(P(Tw z<~*F`bk3SQ6U8)jc4=*LcH2sMySdsT3d!LWP2MI~XqXJt?rl?3JKw~yP0hksQybm1 z?lIS4zBXMcj(pA4PdNx%Ta0y%wpAIl)}d)~P}6>jvCb41u&Ew{(gvBUeQcAM2+msD zWlZHrj?pvPrmtQKtr9Z6S)>e^zS>J>bQ*5oE; zutZQ(s9jU4OHt;0sfI2%_o$0&RD5oKknWVTU3<#W21}}qGI3n$!NjGT5~;p6m=bMx z;j|AXuC-fZP6^F9-m{?Bq1Z72)p;g9x7}`?!#Uclc1Z=k8_M;K!q>% z8+1a_8Dmb3S>5*J=Aq9P+x4V;gE-CCu4VN2L*5!aQb$k&GQBwl&tUs0A7R=VtWET~ z+@N_=pE0SFaT-%fz{*0-na_fkP)=*k%-tTf_|2oSsl%9@Z!ov1bs6hwU+p@#SF4FP zrY!=~@-Zyu&}dw_%&=Lia~SV%da8{uB{bG4?ejJZ?VJpyNQaN3-CYLd!8}1&PI=gvEsq^RDbt>mMM>=cc zPH|0ZDK#|b*!nEBD7em%&YRp#FWPvBOZ5mQuF2ixGk23$8d8Zi9^q21I&7&r-t)Sr z^xL%hXkEjs=6val8q@hOI6SCx1|^5;d@;}YI18GgCQloexJTn1jf)!FGH<`?W1H4d zJgu*Gs<%yNO1EsApO($}yDKU8)zWR_=o)jKlFK#Lb$On08P`3UyPKms?rs@tkGWG`!p7G}Q-a5sCTFg57=18zdln^A z*X((&(KAx*vvKv&8tNnY>Yn60bxrBqoGGpjn`+C?jiwY^IuX`!P#-ni9{3HIBj~-ZTPB2PO0jg9c}b(sgf}8tWYP zqscijOdc0!@`hTPv~G;8c5{qQ2@j;T8M`xPt1&jM1TBZ^oH?~^Mn6XTjLtbsU){^? zYaZT*U#gq>8j90grgr7YeDyKxO&&^h*0s3O6hq1xa9u{RSWHMTxOy@X^r!FUrDR%O3nvX$RA_n`b2pnBtodJ*L3r=C~Uf+&J zjq<{G+Yu?DG5a&z94YQr_TQVb=eOBSTT@ZDu} zu04j|fg$9`4S6(vdmQPb|I!#zUrmp=w+~3!Pdz1E_pMIfKIf{Hy6@ZX+?j5#8CT5q znd{NLQvOqZVwyG9y-pM1weFBH#L*d-En%7x;YsRs4og>#YtBaF3b{NlDPEKmQ}>=U z#}X0bkmQAnd`K?m+%~iDzv)TSVx4=U^U!EXuSaAvcv2|OWIjvz3@ewOZTrz4F)qjC z7`t#OeS3nLt@bE#FU^-`*Le@llsY-M%@=z(F^$yJTpj5OO>Oof9z)V&DPy{E>S{H z-Lm;Krrd4*4yJcgb6x379;cW(?3iMtujI099z#SDc=B3aaL^_XjjBnW*5lfK=E`Q9 zKh9a?h+LX^4BFilQcP{}Z~r*0UA|6U8GFxlF>Y(E(J1=b^V;-)y7ZSz*lWizc(e|V zp>43t=u~MP%pV>!V;qK2KJ`7ASFxo$qe!LvIUJT59ck_Q2FEVh;XD)Nus8OMV_ioc zPdaOlB<0w;u)RyQcKc9|zLeJb|M;S;ha!>*Zm2K@?;I&DQd1%^~55g-7N#&Z-nYEhR zvUR*Irm_JCcMfruenKLklx{C_oM!YaybJjp5)W~qBjB93eMY&E2rW63a-@1FtB>>q zoXS($d>)0d)NmiHL!8!<`juK71b54HQ*70vys_7L)TWs?=aLQcL>xIp8GWq9^U03V zXlb%xJXH^w2(SrXS7aiL+p? zz}CG8&QzD+ups#^S>kg`=C}5`WcQqwyQ!m7?2ojiu|-t2l~T7hoLd{F-FcIgX7BFA^rLYIAV1%w7e_{DKO9AF?4nFjl$C{J)AN~ zzi7%@#HG11k<*$pNlomVK8IyOsosg{GWVA2kOu41Xiqt7(us-u2P|I623DN)dB{&3 zvR8v8&6QdvPM>B}bv|k*ZyV=kB@-GZu7?t-51}E&Hk~lFo*zXho#fG(as3 zq!?p=Wy#pC(cGj_;1C8_sfV zv?gv8Zt7BTovyn=+X?HZ{_gr>0<9Fy0oMVD7AZpYnAY;-or^*k~b9`zqd@&?_mem+E zLmbVS;@V(&ApW{smoL)o?>4O|u1kw~@(kGX@Jn8$cu54_nmn2=%c0*oEE)WHERr*q zwTauD)*3n`74*T7<(gcgbkik4y8mR^(Ztw=4-P`3apf{wI%5ou&{1ffV#Q;6GgE&& zjJ*nrgEOF<+J8kbSYi~aw2s0_p45l%JD}|$ugXyPRG&9vbq*rBCeQYOv7c$>&@V?Q zn33DtGz;4vPW>8g&3@;jJ-@q+u?CU-GzR8lV)+@K!O3%MEl(I>>V+b1&p?`uy9eyZ z@)(6>1dh{u+vnKky<@0*JkfP=1|}-EwfMEC>Jf(a+&^*GW8S{!j;%gAGLI26p>}M} zbJxu3p53+CcUJ91eQta{imN?;_4wMkh#j4?TgOBwj3Mk2R#d4cDK>NmpP;VqRQsqh zxi0$>Sm_MEf)Y4KLYiQI2c;g3d4-o;@H8QE_>;oM4I4+5$^DYnrYte!G{tjbb5H7X zaY)uuo@wl|X-SVE9ad9Z_+hLuoKq(K48n-F&2DH+b+zdyJv8Lp!)NwZ8uFQ}$&)Tk z_OpGohFsdb@;hk8d$hEp3m@%gXpjtbnJdLuV=5;&F!CdxTL-a(LwjmDBttso4eJ4Q z$p{~ILc$v5Ns1RG$8grBm-5To+uI6`!oP%hDe?rb)-ho`|~3)Y!x3k|t$ z&GNiiJ~(Z|+|nF610tui#doSbI0czM@PU!l@WOh?Yb>Fd89R|t(y5N7&Xk(k3%sC+ zNnFwtT*T%)oYC9O=#d6-r!nRhWLxymo?=tk6i)S|_^k&|#sX!Or!*S+WNjYhXKztYolNv^sx5Kzhw-0IN9aoC0Yt`IXkJOsxCfBgFXSQX%j;W5PcR9|SqIlLe z4(Di-+V(hSJdKSp`p-FuG0#BYw*+d}*@ca))U#^8gTrxX^mmLYXB%9%Af7fmO=-(| zv@eqOcjS$9VFd-nyiL4$a*Dl_KF`dI$?CXd3eltx(I2lnm($!o{vTr(PeJf@H+TlZUb!dhxuxs?ax&^+bcUNUVT?T@1H ztZPg&nMRf3(|pwNqtEHV=-k0+srndIL5ltqWyqQ*I7sWt#c24Ze2S4pd*d1B{@99W z#ENPe(#7ksZ6;j(JC~?aw`^|z98)?fCS&Y{B5^#DC(mR*xvZ?kx3p?*3!deX%Rk3M zUefg~PUAc?J>?N?TYWcuvZdTNVaXkTYVt89@V9UN%1Kx&lRzx6;%!gJ;w(x zb*8h?;P6%QoOfwT^^42jmI`fMkRlITDPKEQ9Fj}9?I&?<)SS0Di#$?Zv(RK}XqS!L zlI1kkzf)P$!a{gNouu23lvh|&%xBr)Y_nx*I$DF`(6?oCTbfzc9(ZoaTqZOHpP;6E z%0a6C3@OHxYa(#i6O@0ODjT+BtYb4?^Z0J}BP|0uR!wXq^>W$>UetfvZE#qVb_2)nw}EqohaC z(Z-W{VVHb``5~m4q3}!`+s8M(N*FX*9)s7$dd%+ZfG7X^Y;nIc;LIHtnf~QS)!_sW1J6E^#=vF8)+@ zG&r(k{=lS=JP96o(!|I z+}cxHgrz08Q~T0rOpK|dI*Q=TG5?Y+6z|^5!&fZ#X_&8cFwuT;C>dI!CE5RwI9=GSg z6Od^WAE`rnnvgN=xo~vt)QMv!uFn#RfEEq4!`Bbe4*7mO-#GD zdF=A3j@zE*imx6WJ&bh;SbX8Xvoo2oZgaQ}ThBS`dgOci>QFMgZ-Y`fYHs7XYjMMU z5{Dz9w}J&Jdnugf^X@rwZA7dQvopZ4`@^_{n!DJITQmzd@3^zHcVOmKK%_-#g9JMqBHs;nrY18x3I*3hS%_MJ$E*+*@14n&Q zC^Sl|c?OM^_gL3DNOmwS*J!=YLR~iZJ*7&I&%@zpcJc|<1O?dw|}+NX$v88=qz z5pifW>htzB5|=bcXKtfg%KAe?J8u(f$&?Zvq;WYy`xIP3p_Z5#8g&fWT%rpvE>mrr zbK`P7DPCM@)RGq_Vyk0QIqNeItx0|&-*uUEE|}kSY#y2E=8{D4$e)_D6Ph&x-FlM&b4ut>l#yisUMc-D4nT>Cf1l#pCn1)N7|`H zbA2~w;*ibY%=rS}gd`c>nqyQAmbaY7c4=Wl!qExi%%wRAzy1XMDFc7Xz@IYkrwshx m%s|@xCkito>8UXp`R=SrbE-dhCu-^c7C+B=pWTA|{r>?}FM_iG literal 0 HcmV?d00001 diff --git a/examples/DSPDemo/Source/DSPDemo.h b/examples/DSPDemo/Source/DSPDemo.h new file mode 100644 index 0000000000..78e34f5259 --- /dev/null +++ b/examples/DSPDemo/Source/DSPDemo.h @@ -0,0 +1,198 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2017 - ROLI Ltd. + + JUCE is an open source library subject to commercial or open-source + licensing. + + By using JUCE, you agree to the terms of both the JUCE 5 End-User License + Agreement and JUCE 5 Privacy Policy (both updated and effective as of the + 27th April 2017). + + End User License Agreement: www.juce.com/juce-5-licence + Privacy Policy: www.juce.com/juce-5-privacy-policy + + Or: You may also use this code under the terms of the GPL v3 (see + www.gnu.org/licenses). + + JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +#pragma once + +#include "../JuceLibraryCode/JuceHeader.h" + +using namespace dsp; + +//============================================================================== +struct DSPDemoParameterBase : public ChangeBroadcaster +{ + DSPDemoParameterBase (const String& labelName) : name (labelName) {} + virtual ~DSPDemoParameterBase() {} + + virtual Component* getComponent() = 0; + + virtual int getPreferredHeight() = 0; + virtual int getPreferredWidth() = 0; + + String name; + + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (DSPDemoParameterBase) +}; + +//============================================================================== +struct SliderParameter : public DSPDemoParameterBase, + private Slider::Listener +{ + SliderParameter (Range range, double skew, double initialValue, + const String& labelName, const String& suffix = {}) + : DSPDemoParameterBase (labelName) + { + slider.setRange (range.getStart(), range.getEnd(), 0.01); + slider.setSkewFactor (skew); + slider.setValue (initialValue); + + if (suffix.isNotEmpty()) + slider.setTextValueSuffix (suffix); + + slider.addListener (this); + } + + Component* getComponent() override { return &slider; } + + int getPreferredHeight() override { return 40; } + int getPreferredWidth() override { return 500; } + + double getCurrentValue() const { return slider.getValue(); } + +private: + Slider slider; + + void sliderValueChanged (Slider*) override { sendChangeMessage(); } +}; + +//============================================================================== +struct ChoiceParameter : public DSPDemoParameterBase, + private ComboBox::Listener +{ + ChoiceParameter (const StringArray& options, int initialId, const String& labelName) + : DSPDemoParameterBase (labelName) + { + parameterBox.addItemList (options, 1); + parameterBox.addListener (this); + + parameterBox.setSelectedId (initialId); + } + + Component* getComponent() override { return ¶meterBox; } + + int getPreferredHeight() override { return 25; } + int getPreferredWidth() override { return 250; } + + int getCurrentSelectedID() const { return parameterBox.getSelectedId(); } + +private: + ComboBox parameterBox; + + void comboBoxChanged (ComboBox*) override { sendChangeMessage(); } +}; + +//============================================================================== +// This is just a base class for the demos which exposes them as an AudioSource with +// an array of parameters +struct DSPDemoBase : public AudioSource +{ + virtual const std::vector& getParameters() = 0; + + AudioSource* inputSource = nullptr; +}; + +//============================================================================== +template +struct DSPDemo : public DSPDemoBase, + public ProcessorWrapper, + private ChangeListener +{ + DSPDemo() + { + for (auto* p : getParameters()) + p->addChangeListener (this); + } + + void prepareToPlay (int blockSize, double sampleRate) override + { + inputSource->prepareToPlay (blockSize, sampleRate); + this->prepare ({ sampleRate, (uint32) blockSize, 2 }); + } + + void releaseResources() override + { + inputSource->releaseResources(); + } + + void getNextAudioBlock (const AudioSourceChannelInfo& bufferToFill) override + { + jassert (bufferToFill.buffer != nullptr); + + inputSource->getNextAudioBlock (bufferToFill); + + dsp::AudioBlock block (*bufferToFill.buffer, + (size_t) bufferToFill.startSample); + + ScopedLock audioLock (audioCallbackLock); + this->process (ProcessContextReplacing (block)); + } + + const std::vector& getParameters() override + { + return this->processor.parameters; + } + + void changeListenerCallback (ChangeBroadcaster*) override + { + ScopedLock audioLock (audioCallbackLock); + static_cast (this->processor).updateParameters(); + } + + CriticalSection audioCallbackLock; +}; + + +//============================================================================== +struct Demo +{ + using CreateDemoFn = std::function; + + String name, code; + CreateDemoFn createDemo; + + Demo (const char* nameToUse, const char* codeToUse, CreateDemoFn create) + : name (nameToUse), code (codeToUse), createDemo (create) + { + code = code.fromFirstOccurrenceOf ("// @@ START_DEMO", false, false) + .upToLastOccurrenceOf ("// @@ END_DEMO", false, false) + .trim(); + + getList().add (this); + } + + static Array& getList() + { + static Array demos; + return demos; + } +}; + +template +struct RegisterDSPDemo : public Demo +{ + RegisterDSPDemo (const char* nameToUse, const char* codeToUse) + : Demo (nameToUse, codeToUse, [](AudioSource& input) { auto* demo = new DSPDemo(); demo->inputSource = &input; return demo; }) + {} +}; diff --git a/examples/DSPDemo/Source/Demos/ConvolutionDemo.cpp b/examples/DSPDemo/Source/Demos/ConvolutionDemo.cpp new file mode 100644 index 0000000000..148b55194f --- /dev/null +++ b/examples/DSPDemo/Source/Demos/ConvolutionDemo.cpp @@ -0,0 +1,89 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2017 - ROLI Ltd. + + JUCE is an open source library subject to commercial or open-source + licensing. + + By using JUCE, you agree to the terms of both the JUCE 5 End-User License + Agreement and JUCE 5 Privacy Policy (both updated and effective as of the + 27th April 2017). + + End User License Agreement: www.juce.com/juce-5-licence + Privacy Policy: www.juce.com/juce-5-privacy-policy + + Or: You may also use this code under the terms of the GPL v3 (see + www.gnu.org/licenses). + + JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +#include "../DSPDemo.h" + +//============================================================================== +// @@ START_DEMO +struct ConvolutionDemo +{ + void prepare (const ProcessSpec& spec) + { + sampleRate = spec.sampleRate; + convolution.prepare (spec); + updateParameters(); + } + + void process (ProcessContextReplacing context) + { + context.isBypassed = bypass; + convolution.process (context); + } + + void reset() + { + convolution.reset(); + } + + void updateParameters() + { + if (auto* cabinetTypeParameter = dynamic_cast (parameters[0])) + { + if (cabinetTypeParameter->getCurrentSelectedID() == 1) + { + bypass = true; + } + else + { + bypass = false; + + auto maxSize = static_cast (roundDoubleToInt (8192.0 * sampleRate / 44100.0)); + + if (cabinetTypeParameter->getCurrentSelectedID() == 2) + convolution.loadImpulseResponse (BinaryData::guitar_amp_wav, + BinaryData::guitar_amp_wavSize, + false, maxSize); + else + convolution.loadImpulseResponse (BinaryData::cassette_recorder_wav, + BinaryData::cassette_recorder_wavSize, + false, maxSize); + } + } + } + + //============================================================================== + double sampleRate = 0; + bool bypass = false; + + Convolution convolution; + + ChoiceParameter cabinetParam { {"Bypass", "Guitar amplifier 8''", "Cassette recorder"}, 1, "Cabinet Type" }; + + std::vector parameters { &cabinetParam }; +}; +// @@ END_DEMO + +RegisterDSPDemo convolutionDemo ("Convolution", BinaryData::ConvolutionDemo_cpp); diff --git a/examples/DSPDemo/Source/Demos/FIRFilterDemo.cpp b/examples/DSPDemo/Source/Demos/FIRFilterDemo.cpp new file mode 100644 index 0000000000..b383717a9a --- /dev/null +++ b/examples/DSPDemo/Source/Demos/FIRFilterDemo.cpp @@ -0,0 +1,76 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2017 - ROLI Ltd. + + JUCE is an open source library subject to commercial or open-source + licensing. + + By using JUCE, you agree to the terms of both the JUCE 5 End-User License + Agreement and JUCE 5 Privacy Policy (both updated and effective as of the + 27th April 2017). + + End User License Agreement: www.juce.com/juce-5-licence + Privacy Policy: www.juce.com/juce-5-privacy-policy + + Or: You may also use this code under the terms of the GPL v3 (see + www.gnu.org/licenses). + + JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +#include "../DSPDemo.h" + +//============================================================================== +// @@ START_DEMO +struct FIRFilterDemo +{ + void prepare (const ProcessSpec& spec) + { + sampleRate = spec.sampleRate; + + fir.state = FilterDesign::designFIRLowpassWindowMethod (440.0f, sampleRate, 21, + WindowingFunction::blackmann); + fir.prepare (spec); + } + + void process (const ProcessContextReplacing& context) + { + fir.process (context); + } + + void reset() + { + fir.reset(); + } + + void updateParameters() + { + if (sampleRate != 0) + { + auto cutoff = static_cast (cutoffParam.getCurrentValue()); + auto windowingMethod = static_cast::WindowingMethod> (typeParam.getCurrentSelectedID() - 1); + + *fir.state = *FilterDesign::designFIRLowpassWindowMethod (cutoff, sampleRate, 21, windowingMethod); + } + } + + //============================================================================== + ProcessorDuplicator, FIR::Coefficients> fir; + + double sampleRate = 0; + + SliderParameter cutoffParam { { 20.0, 20000.0 }, 0.4, 440.0f, "Cutoff", "Hz" }; + ChoiceParameter typeParam { { "Rectangular", "Triangular", "Hann", "Hamming", "Blackmann", "Blackmann-Harris", "Flat Top", "Kaiser" }, + 5, "Windowing Function" }; + + std::vector parameters { &cutoffParam, &typeParam }; +}; +// @@ END_DEMO + +RegisterDSPDemo firDemo ("FIR Filter", BinaryData::FIRFilterDemo_cpp); diff --git a/examples/DSPDemo/Source/Demos/GainDemo.cpp b/examples/DSPDemo/Source/Demos/GainDemo.cpp new file mode 100644 index 0000000000..6ba26390c6 --- /dev/null +++ b/examples/DSPDemo/Source/Demos/GainDemo.cpp @@ -0,0 +1,61 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2017 - ROLI Ltd. + + JUCE is an open source library subject to commercial or open-source + licensing. + + By using JUCE, you agree to the terms of both the JUCE 5 End-User License + Agreement and JUCE 5 Privacy Policy (both updated and effective as of the + 27th April 2017). + + End User License Agreement: www.juce.com/juce-5-licence + Privacy Policy: www.juce.com/juce-5-privacy-policy + + Or: You may also use this code under the terms of the GPL v3 (see + www.gnu.org/licenses). + + JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +#include "../DSPDemo.h" + +//============================================================================== +// @@ START_DEMO +struct GainDemo +{ + void prepare (const ProcessSpec&) + { + gain.setGainDecibels (-6.0f); + } + + void process (const ProcessContextReplacing& context) + { + gain.process (context); + } + + void reset() + { + gain.reset(); + } + + void updateParameters() + { + gain.setGainDecibels (static_cast (gainParam.getCurrentValue())); + } + + //============================================================================== + Gain gain; + SliderParameter gainParam { { -100.0, 20.0 }, 3.0, -6.0, "Gain", "dB" }; + + std::vector parameters { &gainParam }; +}; +// @@ END_DEMO + +RegisterDSPDemo gainDemo ("Gain", BinaryData::GainDemo_cpp); diff --git a/examples/DSPDemo/Source/Demos/IIRFilterDemo.cpp b/examples/DSPDemo/Source/Demos/IIRFilterDemo.cpp new file mode 100644 index 0000000000..b815dfc90e --- /dev/null +++ b/examples/DSPDemo/Source/Demos/IIRFilterDemo.cpp @@ -0,0 +1,80 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2017 - ROLI Ltd. + + JUCE is an open source library subject to commercial or open-source + licensing. + + By using JUCE, you agree to the terms of both the JUCE 5 End-User License + Agreement and JUCE 5 Privacy Policy (both updated and effective as of the + 27th April 2017). + + End User License Agreement: www.juce.com/juce-5-licence + Privacy Policy: www.juce.com/juce-5-privacy-policy + + Or: You may also use this code under the terms of the GPL v3 (see + www.gnu.org/licenses). + + JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +#include "../DSPDemo.h" + +//============================================================================== +// @@ START_DEMO +struct IIRFilterDemo +{ + void prepare (const ProcessSpec& spec) + { + sampleRate = spec.sampleRate; + + iir.state = IIR::Coefficients::makeLowPass (sampleRate, 440.0); + iir.prepare (spec); + } + + void process (const ProcessContextReplacing& context) + { + iir.process (context); + } + + void reset() + { + iir.reset(); + } + + void updateParameters() + { + if (sampleRate != 0) + { + auto cutoff = static_cast (cutoffParam.getCurrentValue()); + auto qVal = static_cast (qParam.getCurrentValue()); + + switch (typeParam.getCurrentSelectedID()) + { + case 1: *iir.state = *IIR::Coefficients::makeLowPass (sampleRate, cutoff, qVal); break; + case 2: *iir.state = *IIR::Coefficients::makeHighPass (sampleRate, cutoff, qVal); break; + case 3: *iir.state = *IIR::Coefficients::makeBandPass (sampleRate, cutoff, qVal); break; + default: break; + } + } + } + + //============================================================================== + ProcessorDuplicator, IIR::Coefficients> iir; + + ChoiceParameter typeParam { { "Low-pass", "High-pass", "Band-pass"}, 1, "Type" }; + SliderParameter cutoffParam { { 20.0, 20000.0 }, 0.5, 440.0f, "Cutoff", "Hz" }; + SliderParameter qParam { { 0.3, 20.0 }, 0.5, 1.0 / std::sqrt(2.0), "Q" }; + + std::vector parameters { &typeParam, &cutoffParam, &qParam }; + double sampleRate = 0; +}; +// @@ END_DEMO + +RegisterDSPDemo iirDemo ("IIR Filter", BinaryData::IIRFilterDemo_cpp); diff --git a/examples/DSPDemo/Source/Demos/OscillatorDemo.cpp b/examples/DSPDemo/Source/Demos/OscillatorDemo.cpp new file mode 100644 index 0000000000..388e0d6f06 --- /dev/null +++ b/examples/DSPDemo/Source/Demos/OscillatorDemo.cpp @@ -0,0 +1,112 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2017 - ROLI Ltd. + + JUCE is an open source library subject to commercial or open-source + licensing. + + By using JUCE, you agree to the terms of both the JUCE 5 End-User License + Agreement and JUCE 5 Privacy Policy (both updated and effective as of the + 27th April 2017). + + End User License Agreement: www.juce.com/juce-5-licence + Privacy Policy: www.juce.com/juce-5-privacy-policy + + Or: You may also use this code under the terms of the GPL v3 (see + www.gnu.org/licenses). + + JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +#include "../DSPDemo.h" + +//============================================================================== +// @@ START_DEMO +struct OscillatorDemo +{ + void prepare (const ProcessSpec& spec) + { + gain.setGainDecibels (-6.0f); + + for (auto&& oscillator : oscillators) + { + oscillator.setFrequency (440.f); + oscillator.prepare (spec); + } + + updateParameters(); + + tempBuffer = AudioBlock (tempBufferMemory, spec.numChannels, spec.maximumBlockSize); + } + + void process (const ProcessContextReplacing& context) + { + tempBuffer.copy (context.getInputBlock()); + tempBuffer.multiply (static_cast (fileMix)); + + oscillators[currentOscillatorIdx].process (context); + context.getOutputBlock().multiply (static_cast (1.0 - fileMix)); + + context.getOutputBlock().add (tempBuffer); + + gain.process (context); + } + + void reset() + { + oscillators[currentOscillatorIdx].reset(); + } + + void updateParameters() + { + currentOscillatorIdx = jmin (numElementsInArray (oscillators), + 3 * (accuracy.getCurrentSelectedID() - 1) + (typeParam.getCurrentSelectedID() - 1)); + + auto freq = static_cast (freqParam.getCurrentValue()); + + for (auto&& oscillator : oscillators) + oscillator.setFrequency (freq); + + gain.setGainDecibels (static_cast (gainParam.getCurrentValue())); + + fileMix = mixParam.getCurrentValue(); + } + + //============================================================================== + Oscillator oscillators[6] = + { + // No Approximation + {[] (float x) { return std::sin (x); }}, // sine + {[] (float x) { return x / float_Pi; }}, // saw + {[] (float x) { return x < 0.0f ? -1.0f : 1.0f; }}, // square + + // Approximated by a wave-table + {[] (float x) { return std::sin (x); }, 100}, // sine + {[] (float x) { return x / float_Pi; }, 100}, // saw + {[] (float x) { return x < 0.0f ? -1.0f : 1.0f; }, 100} // square + }; + + int currentOscillatorIdx = 0; + Gain gain; + + ChoiceParameter typeParam { {"sine", "saw", "square"}, 1, "Type" }; + ChoiceParameter accuracy { {"No Approximation", "Use Wavetable"}, 1, "Accuracy" }; + SliderParameter freqParam { { 20.0, 24000.0 }, 0.4, 440.0, "Frequency", "Hz" }; + SliderParameter gainParam { { -100.0, 20.0 }, 3.0, -20.0, "Gain", "dB" }; + SliderParameter mixParam { { 0.0, 1.0 }, 1.0, 0.0, "File mix" }; + + HeapBlock tempBufferMemory; + AudioBlock tempBuffer; + double fileMix; + + std::vector parameters { &typeParam, &accuracy, &freqParam, &gainParam, &mixParam }; +}; +// @@ END_DEMO + +RegisterDSPDemo oscillatorDemo ("Oscillator", BinaryData::OscillatorDemo_cpp); diff --git a/examples/DSPDemo/Source/Demos/OverdriveDemo.cpp b/examples/DSPDemo/Source/Demos/OverdriveDemo.cpp new file mode 100644 index 0000000000..3604520cb7 --- /dev/null +++ b/examples/DSPDemo/Source/Demos/OverdriveDemo.cpp @@ -0,0 +1,91 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2017 - ROLI Ltd. + + JUCE is an open source library subject to commercial or open-source + licensing. + + By using JUCE, you agree to the terms of both the JUCE 5 End-User License + Agreement and JUCE 5 Privacy Policy (both updated and effective as of the + 27th April 2017). + + End User License Agreement: www.juce.com/juce-5-licence + Privacy Policy: www.juce.com/juce-5-privacy-policy + + Or: You may also use this code under the terms of the GPL v3 (see + www.gnu.org/licenses). + + JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +#include "../DSPDemo.h" + +//============================================================================== +// @@ START_DEMO +struct OverdriveDemo +{ + void prepare (const ProcessSpec& spec) + { + sampleRate = spec.sampleRate; + + auto& gainUp = overdrive.get<0>(); + gainUp.setGainDecibels (24); + + auto& bias = overdrive.get<1>(); + bias.setBias (0.4f); + + auto& wavShaper = overdrive.get<2>(); + wavShaper.functionToUse = std::tanh; + + auto& dcFilter = overdrive.get<3>(); + dcFilter.state = IIR::Coefficients::makeHighPass (sampleRate, 5.0); + + auto& gainDown = overdrive.get<4>(); + gainDown.setGainDecibels (-18.0f); + + overdrive.prepare (spec); + } + + void process (const ProcessContextReplacing& context) + { + overdrive.process (context); + } + + void reset() + { + overdrive.reset(); + } + + void updateParameters() + { + if (sampleRate != 0) + { + overdrive.get<0>().setGainDecibels (static_cast (inGainParam.getCurrentValue())); + overdrive.get<4>().setGainDecibels (static_cast (outGainParam.getCurrentValue())); + } + } + + //============================================================================== + using GainProcessor = Gain; + using BiasProcessor = Bias; + using DriveProcessor = WaveShaper; + using DCFilter = ProcessorDuplicator, + IIR::Coefficients>; + + ProcessorChain overdrive; + + SliderParameter inGainParam { { -100.0, 60.0 }, 3, 24.0, "Input Gain", "dB" }; + SliderParameter outGainParam { { -100.0, 20.0 }, 3, -18.0, "Output Gain", "dB" }; + + std::vector parameters { &inGainParam, &outGainParam }; + double sampleRate = 0; +}; +// @@ END_DEMO + +RegisterDSPDemo overdriveDemo ("Overdrive", BinaryData::OverdriveDemo_cpp); diff --git a/examples/DSPDemo/Source/Demos/SIMDRegisterDemo.cpp b/examples/DSPDemo/Source/Demos/SIMDRegisterDemo.cpp new file mode 100644 index 0000000000..0649a26d7c --- /dev/null +++ b/examples/DSPDemo/Source/Demos/SIMDRegisterDemo.cpp @@ -0,0 +1,124 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2017 - ROLI Ltd. + + JUCE is an open source library subject to commercial or open-source + licensing. + + By using JUCE, you agree to the terms of both the JUCE 5 End-User License + Agreement and JUCE 5 Privacy Policy (both updated and effective as of the + 27th April 2017). + + End User License Agreement: www.juce.com/juce-5-licence + Privacy Policy: www.juce.com/juce-5-privacy-policy + + Or: You may also use this code under the terms of the GPL v3 (see + www.gnu.org/licenses). + + JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +#include "../DSPDemo.h" + +#if JUCE_USE_SIMD + +//============================================================================== +// @@ START_DEMO +struct SIMDRegisterDemo +{ + void prepare (const ProcessSpec& spec) + { + sampleRate = spec.sampleRate; + + iirCoefficients = IIR::Coefficients::makeLowPass (sampleRate, 440.0f); + iir.reset (new IIR::Filter> (iirCoefficients)); + + interleaved = AudioBlock> (interleavedBlockData, 1, spec.maximumBlockSize); + zero = AudioBlock (zeroData, SIMDRegister::size(), spec.maximumBlockSize); + + zero.clear(); + + auto monoSpec = spec; + monoSpec.numChannels = 1; + iir->prepare (monoSpec); + } + + void process (const ProcessContextReplacing& context) + { + jassert (context.getInputBlock().getNumSamples() == context.getOutputBlock().getNumSamples()); + jassert (context.getInputBlock().getNumChannels() == context.getOutputBlock().getNumChannels()); + + auto& input = context.getInputBlock(); + auto& output = context.getOutputBlock(); + auto n = input.getNumSamples(); + auto* inout = channelPointers.getData(); + + + for (size_t ch = 0; ch < SIMDRegister::size(); ++ch) + inout[ch] = (ch < input.getNumChannels() ? const_cast (input.getChannelPointer (ch)) : zero.getChannelPointer (ch)); + + AudioDataConverters::interleaveSamples (inout, reinterpret_cast (interleaved.getChannelPointer (0)), + static_cast (n), static_cast (SIMDRegister::size())); + + + iir->process (ProcessContextReplacing> (interleaved)); + + + for (size_t ch = 0; ch < input.getNumChannels(); ++ch) + inout[ch] = output.getChannelPointer (ch); + + AudioDataConverters::deinterleaveSamples (reinterpret_cast (interleaved.getChannelPointer (0)), + const_cast (inout), + static_cast (n), static_cast (SIMDRegister::size())); + } + + void reset() + { + iir.reset(); + } + + void updateParameters() + { + if (sampleRate != 0) + { + auto cutoff = static_cast (cutoffParam.getCurrentValue()); + auto qVal = static_cast (qParam.getCurrentValue()); + + switch (typeParam.getCurrentSelectedID()) + { + case 1: *iirCoefficients = *IIR::Coefficients::makeLowPass (sampleRate, cutoff, qVal); break; + case 2: *iirCoefficients = *IIR::Coefficients::makeHighPass (sampleRate, cutoff, qVal); break; + case 3: *iirCoefficients = *IIR::Coefficients::makeBandPass (sampleRate, cutoff, qVal); break; + default: break; + } + } + } + + //============================================================================== + IIR::Coefficients::Ptr iirCoefficients; + std::unique_ptr>> iir; + + AudioBlock> interleaved; + AudioBlock zero; + + HeapBlock interleavedBlockData, zeroData; + HeapBlock channelPointers { SIMDRegister::size() }; + + ChoiceParameter typeParam { { "Low-pass", "High-pass", "Band-pass"}, 1, "Type" }; + SliderParameter cutoffParam { { 20.0, 20000.0 }, 0.5, 440.0f, "Cutoff", "Hz" }; + SliderParameter qParam { { 0.3, 20.0 }, 0.5, 0.7, "Q" }; + + std::vector parameters { &typeParam, &cutoffParam, &qParam }; + double sampleRate = 0; +}; +// @@ END_DEMO + +RegisterDSPDemo simdDemo ("SIMD Filter", BinaryData::SIMDRegisterDemo_cpp); + +#endif diff --git a/examples/DSPDemo/Source/Demos/StateVariableFilterDemo.cpp b/examples/DSPDemo/Source/Demos/StateVariableFilterDemo.cpp new file mode 100644 index 0000000000..77f8757379 --- /dev/null +++ b/examples/DSPDemo/Source/Demos/StateVariableFilterDemo.cpp @@ -0,0 +1,77 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2017 - ROLI Ltd. + + JUCE is an open source library subject to commercial or open-source + licensing. + + By using JUCE, you agree to the terms of both the JUCE 5 End-User License + Agreement and JUCE 5 Privacy Policy (both updated and effective as of the + 27th April 2017). + + End User License Agreement: www.juce.com/juce-5-licence + Privacy Policy: www.juce.com/juce-5-privacy-policy + + Or: You may also use this code under the terms of the GPL v3 (see + www.gnu.org/licenses). + + JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +#include "../DSPDemo.h" + +//============================================================================== +// @@ START_DEMO +struct StateVariableFilterDemo +{ + void prepare (const ProcessSpec& spec) + { + sampleRate = spec.sampleRate; + + filter.state = new StateVariableFilter::Parameters; + filter.prepare (spec); + } + + void process (const ProcessContextReplacing& context) + { + filter.process (context); + } + + void reset() + { + filter.reset(); + } + + void updateParameters() + { + if (sampleRate != 0) + { + auto cutoff = static_cast (cutoffParam.getCurrentValue()); + auto resonance = static_cast (qParam.getCurrentValue()); + auto type = static_cast::Type> (typeParam.getCurrentSelectedID() - 1); + + filter.state->type = type; + filter.state->setCutOffFrequency (sampleRate, cutoff, resonance); + } + } + + //============================================================================== + ProcessorDuplicator, + StateVariableFilter::Parameters> filter; + + ChoiceParameter typeParam {{ "Low-pass", "Band-pass", "High-pass"}, 1, "Type" }; + SliderParameter cutoffParam {{ 20.0, 20000.0 }, 0.5, 440.0f, "Cutoff", "Hz" }; + SliderParameter qParam {{ 0.3, 20.0 }, 0.5, 1.0 / std::sqrt (2.0), "Resonance" }; + + std::vector parameters { &typeParam, &cutoffParam, &qParam }; + double sampleRate = 0; +}; +// @@ END_DEMO + +RegisterDSPDemo stateVariableFilterDemo ("State Variable Filter", BinaryData::StateVariableFilterDemo_cpp); diff --git a/examples/DSPDemo/Source/Demos/WaveShaperTanhDemo.cpp b/examples/DSPDemo/Source/Demos/WaveShaperTanhDemo.cpp new file mode 100644 index 0000000000..d2e98a87c0 --- /dev/null +++ b/examples/DSPDemo/Source/Demos/WaveShaperTanhDemo.cpp @@ -0,0 +1,60 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2017 - ROLI Ltd. + + JUCE is an open source library subject to commercial or open-source + licensing. + + By using JUCE, you agree to the terms of both the JUCE 5 End-User License + Agreement and JUCE 5 Privacy Policy (both updated and effective as of the + 27th April 2017). + + End User License Agreement: www.juce.com/juce-5-licence + Privacy Policy: www.juce.com/juce-5-privacy-policy + + Or: You may also use this code under the terms of the GPL v3 (see + www.gnu.org/licenses). + + JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +#include "../DSPDemo.h" + +//============================================================================== +// @@ START_DEMO +struct WaveShaperTanhDemo +{ + void prepare (const ProcessSpec&) {} + + void process (const ProcessContextReplacing& context) + { + shapers[currentShaperIdx].process (context); + } + + void reset() + { + for (auto&& shaper : shapers) + shaper.reset(); + } + + void updateParameters() + { + currentShaperIdx = jmin (numElementsInArray (shapers), accuracy.getCurrentSelectedID() - 1); + } + + //============================================================================== + WaveShaper shapers[2] { { std::tanh }, { FastMathApproximations::tanh } }; + int currentShaperIdx = 0; + + ChoiceParameter accuracy {{ "No Approximation", "Use fast-math approximation"}, 1, "Accuracy" }; + std::vector parameters { &accuracy }; // no params for this demo +}; +// @@ END_DEMO + +RegisterDSPDemo waveshaperDemo ("WaveShaperTanh", BinaryData::WaveShaperTanhDemo_cpp); diff --git a/examples/DSPDemo/Source/EditorColourScheme.xml b/examples/DSPDemo/Source/EditorColourScheme.xml new file mode 100644 index 0000000000..86b2ea95d3 --- /dev/null +++ b/examples/DSPDemo/Source/EditorColourScheme.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/examples/DSPDemo/Source/Main.cpp b/examples/DSPDemo/Source/Main.cpp new file mode 100644 index 0000000000..dad4f3aad7 --- /dev/null +++ b/examples/DSPDemo/Source/Main.cpp @@ -0,0 +1,186 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2017 - ROLI Ltd. + + JUCE is an open source library subject to commercial or open-source + licensing. + + By using JUCE, you agree to the terms of both the JUCE 5 End-User License + Agreement and JUCE 5 Privacy Policy (both updated and effective as of the + 27th April 2017). + + End User License Agreement: www.juce.com/juce-5-licence + Privacy Policy: www.juce.com/juce-5-privacy-policy + + Or: You may also use this code under the terms of the GPL v3 (see + www.gnu.org/licenses). + + JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +#include "Main.h" + +DSPSamplesApplication::DSPSamplesApplication() + : TimeSliceThread ("Audio File Reader Thread"), demoIndex (-1) +{ + loopState.addListener (this); +} + +void DSPSamplesApplication::initialise (const String&) +{ + formatManager.registerBasicFormats(); + audioDeviceManager.addAudioCallback (&audioSourcePlayer); + audioDeviceManager.initialiseWithDefaultDevices (0, 2); + + setCurrentDemo (0); + startThread(); + + mainWindow = new MainWindow (getApplicationName()); +} + +void DSPSamplesApplication::shutdown() +{ + signalThreadShouldExit(); + stop(); + audioDeviceManager.removeAudioCallback (&audioSourcePlayer); + waitForThreadToExit (10000); + mainWindow = nullptr; +} + +//============================================================================== +DSPSamplesApplication& DSPSamplesApplication::getApp() +{ + auto* app = dynamic_cast (JUCEApplication::getInstance()); + jassert (app != nullptr); + return *app; +} + +//============================================================================== +bool DSPSamplesApplication::loadFile (const File& fileToPlay) +{ + stop(); + + audioSourcePlayer.setSource (nullptr); + mainWindow->setTransportSource (nullptr); + transportSource = nullptr; + readerSource = nullptr; + + reader = formatManager.createReaderFor (fileToPlay); + + if (reader != nullptr) + { + readerSource = new AudioFormatReaderSource (reader, false); + readerSource->setLooping (loopState.getValue()); + + init(); + + return true; + } + + return false; +} + +void DSPSamplesApplication::togglePlay() +{ + if (playState.getValue()) + stop(); + else + play(); +} + +void DSPSamplesApplication::stop() +{ + playState = false; + + if (transportSource != nullptr) + { + transportSource->stop(); + transportSource->setPosition (0); + } +} + +void DSPSamplesApplication::init() +{ + if (transportSource == nullptr) + { + transportSource = new AudioTransportSource(); + transportSource->addChangeListener (this); + + if (readerSource != nullptr) + { + if (auto* device = audioDeviceManager.getCurrentAudioDevice()) + { + transportSource->setSource (readerSource, roundToInt (device->getCurrentSampleRate()), this, reader->sampleRate); + + // tell the main window about this so that it can do the seeking behaviour... + mainWindow->setTransportSource (transportSource); + } + } + } + + audioSourcePlayer.setSource (nullptr); + currentDemo = nullptr; + + if (currentDemo == nullptr) + if (auto demo = Demo::getList()[demoIndex]) + if (demo->name.isNotEmpty()) + currentDemo = demo->createDemo (*transportSource); + + audioSourcePlayer.setSource (currentDemo); + + if (mainWindow != nullptr) + mainWindow->initParameters(); +} + +void DSPSamplesApplication::play() +{ + if (readerSource == nullptr) + return; + + if (transportSource->getCurrentPosition() >= transportSource->getLengthInSeconds() + || transportSource->getCurrentPosition() < 0) + transportSource->setPosition (0); + + transportSource->start(); + playState = true; +} + +void DSPSamplesApplication::setLooping (bool shouldLoop) +{ + if (readerSource != nullptr) + readerSource->setLooping (shouldLoop); +} + +void DSPSamplesApplication::changeListenerCallback (ChangeBroadcaster*) +{ + if (playState.getValue() && ! transportSource->isPlaying()) + stop(); +} + +void DSPSamplesApplication::setCurrentDemo (int index, bool force) +{ + if ((index != demoIndex || force) && isPositiveAndBelow (index, Demo::getList().size())) + { + demoIndex = index; + init(); + + if (playState.getValue()) + play(); + } +} + +void DSPSamplesApplication::valueChanged (Value& v) +{ + if (readerSource != nullptr) + readerSource->setLooping (v.getValue()); +} + +//============================================================================== +// This macro generates the main() routine that launches the app. +START_JUCE_APPLICATION (DSPSamplesApplication) diff --git a/examples/DSPDemo/Source/Main.h b/examples/DSPDemo/Source/Main.h new file mode 100644 index 0000000000..ed4aa17954 --- /dev/null +++ b/examples/DSPDemo/Source/Main.h @@ -0,0 +1,143 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2017 - ROLI Ltd. + + JUCE is an open source library subject to commercial or open-source + licensing. + + By using JUCE, you agree to the terms of both the JUCE 5 End-User License + Agreement and JUCE 5 Privacy Policy (both updated and effective as of the + 27th April 2017). + + End User License Agreement: www.juce.com/juce-5-licence + Privacy Policy: www.juce.com/juce-5-privacy-policy + + Or: You may also use this code under the terms of the GPL v3 (see + www.gnu.org/licenses). + + JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +#pragma once + +#include "DSPDemo.h" +#include "MainComponent.h" + +//============================================================================== +class DSPSamplesApplication : public JUCEApplication, + private TimeSliceThread, + private Value::Listener, + private ChangeListener +{ +public: + //============================================================================== + DSPSamplesApplication(); + + const String getApplicationName() override { return ProjectInfo::projectName; } + const String getApplicationVersion() override { return ProjectInfo::versionString; } + + //============================================================================== + void initialise (const String&) override; + void shutdown() override; + + //============================================================================== + static DSPSamplesApplication& getApp(); + + //============================================================================== + bool loadFile (const File&); + void togglePlay(); + void stop(); + void init(); + void play(); + void setLooping (bool); + + //============================================================================== + void setCurrentDemo (int index, bool force = false); + int getCurrentDemoIndex() const { return demoIndex; } + const std::vector& getCurrentDemoParameters() { return currentDemo->getParameters(); } + + AudioDeviceManager& getDeviceManager() { return audioDeviceManager; } + AudioFormatManager& getFormatManager() { return formatManager; } + AudioTransportSource* getTransportSource() { return transportSource; } + + Value& getPlayState() { return playState; } + Value& getLoopState() { return loopState; } + + //============================================================================== + struct MainWindow : public DocumentWindow + { + MainWindow (String name) + : DocumentWindow (name, + Desktop::getInstance().getDefaultLookAndFeel() + .findColour (ResizableWindow::backgroundColourId), + DocumentWindow::allButtons) + { + setUsingNativeTitleBar (true); + setContentOwned (mainComponent = new MainContentComponent(), true); + + #if JUCE_ANDROID || JUCE_IOS + setFullScreen (true); + #else + centreWithSize (getWidth(), getHeight()); + setResizable (true, false); + setResizeLimits (500, 400, 32000, 32000); + #endif + setVisible (true); + } + + void closeButtonPressed() override + { + JUCEApplication::getInstance()->systemRequestedQuit(); + } + + void setTransportSource (AudioTransportSource* source) + { + mainComponent->getThumbnailComponent().setTransportSource (source); + } + + void initParameters() + { + mainComponent->initParameters(); + } + + private: + ScopedPointer mainComponent; + + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainWindow) + }; + + +private: + //============================================================================== + void valueChanged (Value&) override; + void changeListenerCallback (ChangeBroadcaster*) override; + + //============================================================================== + AudioDeviceManager audioDeviceManager; + AudioFormatManager formatManager; + Value playState { var (false) }; + Value loopState { var (false) }; + + double currentSampleRate = 44100.0; + uint32 currentBlockSize = 512; + uint32 currentNumChannels = 2; + + ScopedPointer reader; + ScopedPointer readerSource; + ScopedPointer transportSource; + ScopedPointer currentDemo; + + AudioSourcePlayer audioSourcePlayer; + + ScopedPointer mainWindow; + + int demoIndex = -1; + + AudioBuffer fileReadBuffer; +}; diff --git a/examples/DSPDemo/Source/MainComponent.cpp b/examples/DSPDemo/Source/MainComponent.cpp new file mode 100644 index 0000000000..1524501f66 --- /dev/null +++ b/examples/DSPDemo/Source/MainComponent.cpp @@ -0,0 +1,249 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2017 - ROLI Ltd. + + JUCE is an open source library subject to commercial or open-source + licensing. + + By using JUCE, you agree to the terms of both the JUCE 5 End-User License + Agreement and JUCE 5 Privacy Policy (both updated and effective as of the + 27th April 2017). + + End User License Agreement: www.juce.com/juce-5-licence + Privacy Policy: www.juce.com/juce-5-privacy-policy + + Or: You may also use this code under the terms of the GPL v3 (see + www.gnu.org/licenses). + + JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +#include "Main.h" +#include "MainComponent.h" + +//============================================================================== +AudioPlayerHeader::AudioPlayerHeader() + : thumbnailComp (DSPSamplesApplication::getApp().getDeviceManager(), + DSPSamplesApplication::getApp().getFormatManager()) +{ + setOpaque (true); + + addAndMakeVisible (loadButton); + addAndMakeVisible (playButton); + addAndMakeVisible (loopButton); + + loadButton.addListener (this); + playButton.addListener (this); + + addAndMakeVisible (thumbnailComp); + thumbnailComp.addChangeListener (this); + + DSPSamplesApplication::getApp().getPlayState().addListener (this); + loopButton.getToggleStateValue().referTo (DSPSamplesApplication::getApp().getLoopState()); +} + +AudioPlayerHeader::~AudioPlayerHeader() +{ + playButton.removeListener (this); + loadButton.removeListener (this); + loopButton.removeListener (this); + + DSPSamplesApplication::getApp().getPlayState().removeListener (this); +} + +void AudioPlayerHeader::paint (Graphics& g) +{ + g.setColour (getLookAndFeel().findColour (ResizableWindow::backgroundColourId).darker()); + g.fillRect (getLocalBounds()); +} + +void AudioPlayerHeader::resized() +{ + auto bounds = getLocalBounds(); + + auto buttonBounds = bounds.removeFromLeft (jmin (250, bounds.getWidth() / 4)); + auto top = buttonBounds.removeFromTop (40); + + loadButton.setBounds (top.removeFromLeft (buttonBounds.getWidth() / 2).reduced (10, 10)); + playButton.setBounds (top.reduced (10, 10)); + + loopButton.setSize (0, 25); + loopButton.changeWidthToFitText(); + loopButton.setCentrePosition (buttonBounds.getCentre()); + + thumbnailComp.setBounds (bounds); +} + +void AudioPlayerHeader::buttonClicked (Button* button) +{ + auto& app = DSPSamplesApplication::getApp(); + + if (button == &loadButton) + { + app.stop(); + + FileChooser fc ("Select an audio file...", File(), "*.wav;*.mp3;*.aif;"); + + if (fc.browseForFileToOpen()) + { + auto f = fc.getResult(); + + if (! app.loadFile (f)) + NativeMessageBox::showOkCancelBox (AlertWindow::WarningIcon, "Error loading file", "Unable to load audio file", nullptr, nullptr); + else + thumbnailComp.setCurrentFile (f); + } + } + else if (button == &playButton) + { + app.togglePlay(); + } +} + +void AudioPlayerHeader::changeListenerCallback (ChangeBroadcaster*) +{ + auto& app = DSPSamplesApplication::getApp(); + + if (app.getPlayState().getValue()) + app.stop(); + + app.loadFile (thumbnailComp.getCurrentFile()); +} + +void AudioPlayerHeader::valueChanged (Value& v) +{ + playButton.setButtonText (v.getValue() ? "Stop" : "Play"); +} + +//============================================================================== +MainContentComponent::MainContentComponent() +{ + setSize (1000, 800); + setOpaque (true); + + codeEditor.setEnabled (false); + + auto currentDemoIndex = DSPSamplesApplication::getApp().getCurrentDemoIndex(); + demoList.setModel (this); + demoList.updateContent(); + demoList.selectRow (currentDemoIndex); + + addAndMakeVisible (header); + addAndMakeVisible (demoList); + addAndMakeVisible (codeEditor); + + setupDemoColours(); +} + +void MainContentComponent::paint (Graphics& g) +{ + g.setColour (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); + g.fillRect (getLocalBounds()); +} + +void MainContentComponent::resized() +{ + auto r = getLocalBounds(); + auto listWidth = jmin (250, r.getWidth() / 4); + + header.setBounds (r.removeFromTop (80)); + + demoList.setBounds (r.removeFromLeft (listWidth)); + + r.removeFromTop (5); + + if (parametersComponent != nullptr) + parametersComponent->setBounds (r.removeFromTop (parametersComponent->getHeightNeeded()).reduced (20, 0)); + + r.removeFromBottom (10); + + codeEditor.setBounds (r); +} + +void MainContentComponent::paintListBoxItem (int rowNumber, Graphics& g, int width, int height, bool rowIsSelected) +{ + Rectangle r { 0, 0, width, height }; + auto& lf = getLookAndFeel(); + + g.setColour (lf.findColour (rowIsSelected ? static_cast (TextEditor::highlightColourId) : static_cast (ListBox::backgroundColourId))); + g.fillRect (r); + + if (auto demo = Demo::getList()[rowNumber]) + { + g.setColour (lf.findColour (rowIsSelected ? static_cast (TextEditor::highlightedTextColourId) : static_cast (ListBox::textColourId))); + g.drawFittedText (demo->name, r.reduced (10, 2), Justification::centredLeft, 1); + } +} + +int MainContentComponent::getNumRows() +{ + return Demo::getList().size(); +} + +void MainContentComponent::selectedRowsChanged (int lastRowSelected) +{ + if (lastRowSelected >= 0) + { + DSPSamplesApplication::getApp().setCurrentDemo (lastRowSelected); + + if (auto demo = Demo::getList()[DSPSamplesApplication::getApp().getCurrentDemoIndex()]) + { + if (demo->code.isNotEmpty()) + codeDocument.replaceAllContent (demo->code); + + codeEditor.scrollToLine (0); + initParameters(); + } + } +} + +void MainContentComponent::setupDemoColours() +{ + auto& lf = getLookAndFeel(); + + lf.setColour (CodeEditorComponent::backgroundColourId, Colour (0xff263238)); + lf.setColour (CodeEditorComponent::lineNumberTextId, Colour (0xffaaaaaa)); + lf.setColour (CodeEditorComponent::lineNumberBackgroundId, Colour (0xff323e44)); + lf.setColour (CodeEditorComponent::highlightColourId, Colour (0xffe0ec65).withAlpha (0.5f)); + lf.setColour (ScrollBar::ColourIds::thumbColourId, Colour (0xffd0d8e0)); + + lf.setColour (TextEditor::highlightColourId, Colour (0xffe0ec65).withAlpha (0.75f)); + lf.setColour (TextEditor::highlightedTextColourId, Colours::black); + + ScopedPointer xml (XmlDocument::parse (BinaryData::EditorColourScheme_xml)); + + if (xml != nullptr) + { + auto colourSchemeTree = ValueTree::fromXml (*xml); + auto& scheme = codeEditor.getColourScheme(); + + for (auto& type : scheme.types) + { + auto colour = colourSchemeTree.getChildWithProperty ("name", type.name); + + if (colour.isValid()) + type.colour = Colour::fromString (colour ["colour"].toString()); + } + } + + codeEditor.setScrollbarThickness (6); +} + +void MainContentComponent::initParameters() +{ + auto& parameters = DSPSamplesApplication::getApp().getCurrentDemoParameters(); + + if (parametersComponent != nullptr) + parametersComponent = nullptr; + + if (parameters.size() > 0) + addAndMakeVisible (parametersComponent = new DemoParametersComponent (parameters)); + + resized(); +} diff --git a/examples/DSPDemo/Source/MainComponent.h b/examples/DSPDemo/Source/MainComponent.h new file mode 100644 index 0000000000..a3f2a48626 --- /dev/null +++ b/examples/DSPDemo/Source/MainComponent.h @@ -0,0 +1,266 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2017 - ROLI Ltd. + + JUCE is an open source library subject to commercial or open-source + licensing. + + By using JUCE, you agree to the terms of both the JUCE 5 End-User License + Agreement and JUCE 5 Privacy Policy (both updated and effective as of the + 27th April 2017). + + End User License Agreement: www.juce.com/juce-5-licence + Privacy Policy: www.juce.com/juce-5-privacy-policy + + Or: You may also use this code under the terms of the GPL v3 (see + www.gnu.org/licenses). + + JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +#pragma once + +#include "../JuceLibraryCode/JuceHeader.h" + +//============================================================================== +class AudioThumbnailComponent : public Component, + public FileDragAndDropTarget, + public ChangeBroadcaster, + private ChangeListener, + private Timer +{ +public: + AudioThumbnailComponent (AudioDeviceManager& adm, AudioFormatManager& afm) + : audioDeviceManager (adm), + thumbnailCache (5), + thumbnail (128, afm, thumbnailCache) + { + thumbnail.addChangeListener (this); + } + + ~AudioThumbnailComponent() + { + thumbnail.removeChangeListener (this); + } + + void paint (Graphics& g) override + { + g.fillAll (Colour (0xff495358)); + + g.setColour (Colours::white); + + if (thumbnail.getTotalLength() > 0.0) + { + thumbnail.drawChannels (g, getLocalBounds().reduced (2), + 0.0, thumbnail.getTotalLength(), 1.0f); + + g.setColour (Colours::black); + g.fillRect (static_cast (currentPosition * getWidth()), 0.0f, + 1.0f, static_cast (getHeight())); + } + else + { + g.drawFittedText ("No audio file loaded.\nDrop a file here or click the \"Load File...\" button.", getLocalBounds(), + Justification::centred, 2); + } + } + + bool isInterestedInFileDrag (const StringArray&) override { return true; } + void filesDropped (const StringArray& files, int, int) override { loadFile (File (files[0]), true); } + + void setCurrentFile (const File& f) + { + if (currentFile == f) + return; + + loadFile (f); + } + + File getCurrentFile() { return currentFile; } + + void setTransportSource (AudioTransportSource* newSource) + { + transportSource = newSource; + + struct ResetCallback : public CallbackMessage + { + ResetCallback (AudioThumbnailComponent& o) : owner (o) {} + void messageCallback() override { owner.reset(); } + + AudioThumbnailComponent& owner; + }; + + (new ResetCallback (*this))->post(); + } + +private: + AudioDeviceManager& audioDeviceManager; + AudioThumbnailCache thumbnailCache; + AudioThumbnail thumbnail; + AudioTransportSource* transportSource = nullptr; + + File currentFile; + double currentPosition = 0.0; + + //============================================================================== + void changeListenerCallback (ChangeBroadcaster*) override { repaint(); } + + void reset() + { + currentPosition = 0.0; + repaint(); + + if (transportSource == nullptr) + stopTimer(); + else + startTimerHz (25); + } + + void loadFile (const File& f, bool notify = false) + { + if (currentFile == f || ! f.existsAsFile()) + return; + + currentFile = f; + thumbnail.setSource (new FileInputSource (f)); + + if (notify) + sendChangeMessage(); + } + + void timerCallback() override + { + if (transportSource != nullptr) + { + currentPosition = transportSource->getCurrentPosition() / thumbnail.getTotalLength(); + repaint(); + } + } + + void mouseDrag (const MouseEvent& e) override + { + if (transportSource != nullptr) + { + const ScopedLock sl (audioDeviceManager.getAudioCallbackLock()); + + transportSource->setPosition ((jmax (static_cast (e.x), 0.0) / getWidth()) + * thumbnail.getTotalLength()); + } + } +}; + +//============================================================================== +class AudioPlayerHeader : public Component, + private Button::Listener, + private ChangeListener, + private Value::Listener +{ +public: + AudioPlayerHeader(); + ~AudioPlayerHeader(); + + void paint (Graphics&) override; + void resized() override; + + AudioThumbnailComponent thumbnailComp; + +private: + //============================================================================== + void buttonClicked (Button*) override; + void changeListenerCallback (ChangeBroadcaster*) override; + void valueChanged (Value& value) override; + + //============================================================================== + TextButton loadButton { "Load File..." }, playButton { "Play" }; + ToggleButton loopButton { "Loop File" }; +}; + +//============================================================================== +class DemoParametersComponent : public Component +{ +public: + DemoParametersComponent (const std::vector& demoParams) + { + parameters = demoParams; + + for (auto demoParameter : parameters) + { + addAndMakeVisible (demoParameter->getComponent()); + + auto* paramLabel = new Label ({}, demoParameter->name); + + paramLabel->attachToComponent (demoParameter->getComponent(), true); + paramLabel->setJustificationType (Justification::centredLeft); + addAndMakeVisible (paramLabel); + labels.add (paramLabel); + } + } + + void resized() override + { + auto bounds = getLocalBounds(); + bounds.removeFromLeft (100); + + for (auto* p : parameters) + { + auto* comp = p->getComponent(); + + comp->setSize (jmin (bounds.getWidth(), p->getPreferredWidth()), p->getPreferredHeight()); + + auto compBounds = bounds.removeFromTop (p->getPreferredHeight()); + comp->setCentrePosition (compBounds.getCentre()); + } + } + + int getHeightNeeded() + { + auto height = 0; + + for (auto* p : parameters) + height += p->getPreferredHeight(); + + return height + 10; + } + +private: + std::vector parameters; + OwnedArray